diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,367 @@
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,28 @@
+# gogol-bigquerydatatransfer
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.3.0`
+
+
+## Description
+
+A client library for the Google BigQuery Data Transfer.
+
+
+## Contribute
+
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).
+
+> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.
+
+
+## Licence
+
+`gogol-bigquerydatatransfer` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import           Distribution.Simple
+main = defaultMain
diff --git a/gen/Network/Google/BigQueryDataTransfer.hs b/gen/Network/Google/BigQueryDataTransfer.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/BigQueryDataTransfer.hs
@@ -0,0 +1,392 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module      : Network.Google.BigQueryDataTransfer
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Transfers data from partner SaaS applications to Google BigQuery on a
+-- scheduled, managed basis.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference>
+module Network.Google.BigQueryDataTransfer
+    (
+    -- * Service Configuration
+      bigQueryDataTransferService
+
+    -- * OAuth Scopes
+    , cloudPlatformReadOnlyScope
+    , cloudPlatformScope
+    , bigQueryScope
+
+    -- * API Declaration
+    , BigQueryDataTransferAPI
+
+    -- * Resources
+
+    -- ** bigquerydatatransfer.projects.dataSources.checkValidCreds
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.CheckValidCreds
+
+    -- ** bigquerydatatransfer.projects.dataSources.get
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.Get
+
+    -- ** bigquerydatatransfer.projects.dataSources.list
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.List
+
+    -- ** bigquerydatatransfer.projects.locations.dataSources.checkValidCreds
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.CheckValidCreds
+
+    -- ** bigquerydatatransfer.projects.locations.dataSources.get
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.Get
+
+    -- ** bigquerydatatransfer.projects.locations.dataSources.list
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.List
+
+    -- ** bigquerydatatransfer.projects.locations.get
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.Get
+
+    -- ** bigquerydatatransfer.projects.locations.list
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.List
+
+    -- ** bigquerydatatransfer.projects.locations.transferConfigs.create
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Create
+
+    -- ** bigquerydatatransfer.projects.locations.transferConfigs.delete
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Delete
+
+    -- ** bigquerydatatransfer.projects.locations.transferConfigs.get
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Get
+
+    -- ** bigquerydatatransfer.projects.locations.transferConfigs.list
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.List
+
+    -- ** bigquerydatatransfer.projects.locations.transferConfigs.patch
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Patch
+
+    -- ** bigquerydatatransfer.projects.locations.transferConfigs.runs.delete
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.Delete
+
+    -- ** bigquerydatatransfer.projects.locations.transferConfigs.runs.get
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.Get
+
+    -- ** bigquerydatatransfer.projects.locations.transferConfigs.runs.list
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.List
+
+    -- ** bigquerydatatransfer.projects.locations.transferConfigs.runs.transferLogs.list
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.TransferLogs.List
+
+    -- ** bigquerydatatransfer.projects.locations.transferConfigs.scheduleRuns
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.ScheduleRuns
+
+    -- ** bigquerydatatransfer.projects.transferConfigs.create
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Create
+
+    -- ** bigquerydatatransfer.projects.transferConfigs.delete
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Delete
+
+    -- ** bigquerydatatransfer.projects.transferConfigs.get
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Get
+
+    -- ** bigquerydatatransfer.projects.transferConfigs.list
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.List
+
+    -- ** bigquerydatatransfer.projects.transferConfigs.patch
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Patch
+
+    -- ** bigquerydatatransfer.projects.transferConfigs.runs.delete
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.Delete
+
+    -- ** bigquerydatatransfer.projects.transferConfigs.runs.get
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.Get
+
+    -- ** bigquerydatatransfer.projects.transferConfigs.runs.list
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.List
+
+    -- ** bigquerydatatransfer.projects.transferConfigs.runs.transferLogs.list
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.TransferLogs.List
+
+    -- ** bigquerydatatransfer.projects.transferConfigs.scheduleRuns
+    , module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.ScheduleRuns
+
+    -- * Types
+
+    -- ** DataSourceParameterType
+    , DataSourceParameterType (..)
+
+    -- ** Status
+    , Status
+    , status
+    , sDetails
+    , sCode
+    , sMessage
+
+    -- ** ListLocationsResponse
+    , ListLocationsResponse
+    , listLocationsResponse
+    , llrNextPageToken
+    , llrLocations
+
+    -- ** TransferRun
+    , TransferRun
+    , transferRun
+    , trRunTime
+    , trErrorStatus
+    , trState
+    , trSchedule
+    , trStartTime
+    , trScheduleTime
+    , trDataSourceId
+    , trParams
+    , trUserId
+    , trUpdateTime
+    , trName
+    , trEndTime
+    , trDestinationDataSetId
+
+    -- ** CheckValidCredsRequest
+    , CheckValidCredsRequest
+    , checkValidCredsRequest
+
+    -- ** TransferConfigParams
+    , TransferConfigParams
+    , transferConfigParams
+    , tcpAddtional
+
+    -- ** ScheduleTransferRunsRequest
+    , ScheduleTransferRunsRequest
+    , scheduleTransferRunsRequest
+    , strrStartTime
+    , strrEndTime
+
+    -- ** Location
+    , Location
+    , location
+    , lName
+    , lMetadata
+    , lDisplayName
+    , lLabels
+    , lLocationId
+
+    -- ** Empty
+    , Empty
+    , empty
+
+    -- ** TransferRunState
+    , TransferRunState (..)
+
+    -- ** ListTransferLogsResponse
+    , ListTransferLogsResponse
+    , listTransferLogsResponse
+    , ltlrNextPageToken
+    , ltlrTransferMessages
+
+    -- ** CheckValidCredsResponse
+    , CheckValidCredsResponse
+    , checkValidCredsResponse
+    , cvcrHasValidCreds
+
+    -- ** StatusDetailsItem
+    , StatusDetailsItem
+    , statusDetailsItem
+    , sdiAddtional
+
+    -- ** DataSourceTransferType
+    , DataSourceTransferType (..)
+
+    -- ** DataSourceAuthorizationType
+    , DataSourceAuthorizationType (..)
+
+    -- ** TransferRunParams
+    , TransferRunParams
+    , transferRunParams
+    , trpAddtional
+
+    -- ** DataSourceParameter
+    , DataSourceParameter
+    , dataSourceParameter
+    , dspMaxValue
+    , dspParamId
+    , dspImmutable
+    , dspRecurse
+    , dspValidationDescription
+    , dspRequired
+    , dspDisplayName
+    , dspType
+    , dspAllowedValues
+    , dspRepeated
+    , dspDescription
+    , dspValidationRegex
+    , dspMinValue
+    , dspValidationHelpURL
+    , dspFields
+
+    -- ** ScheduleTransferRunsResponse
+    , ScheduleTransferRunsResponse
+    , scheduleTransferRunsResponse
+    , strrRuns
+
+    -- ** ListDataSourcesResponse
+    , ListDataSourcesResponse
+    , listDataSourcesResponse
+    , ldsrNextPageToken
+    , ldsrDataSources
+
+    -- ** Xgafv
+    , Xgafv (..)
+
+    -- ** DataSource
+    , DataSource
+    , dataSource
+    , dsClientId
+    , dsMinimumScheduleInterval
+    , dsSupportsCustomSchedule
+    , dsUpdateDeadlineSeconds
+    , dsManualRunsDisabled
+    , dsDataSourceId
+    , dsTransferType
+    , dsScopes
+    , dsSupportsMultipleTransfers
+    , dsName
+    , dsParameters
+    , dsHelpURL
+    , dsDefaultDataRefreshWindowDays
+    , dsDisplayName
+    , dsDataRefreshType
+    , dsAuthorizationType
+    , dsDefaultSchedule
+    , dsDescription
+
+    -- ** DataSourceDataRefreshType
+    , DataSourceDataRefreshType (..)
+
+    -- ** ListTransferRunsResponse
+    , ListTransferRunsResponse
+    , listTransferRunsResponse
+    , ltrrNextPageToken
+    , ltrrTransferRuns
+
+    -- ** TransferMessage
+    , TransferMessage
+    , transferMessage
+    , tmSeverity
+    , tmMessageTime
+    , tmMessageText
+
+    -- ** LocationLabels
+    , LocationLabels
+    , locationLabels
+    , llAddtional
+
+    -- ** LocationMetadata
+    , LocationMetadata
+    , locationMetadata
+    , lmAddtional
+
+    -- ** TransferMessageSeverity
+    , TransferMessageSeverity (..)
+
+    -- ** ListTransferConfigsResponse
+    , ListTransferConfigsResponse
+    , listTransferConfigsResponse
+    , ltcrNextPageToken
+    , ltcrTransferConfigs
+
+    -- ** TransferConfigState
+    , TransferConfigState (..)
+
+    -- ** TransferConfig
+    , TransferConfig
+    , transferConfig
+    , tcState
+    , tcSchedule
+    , tcDisabled
+    , tcDataSourceId
+    , tcParams
+    , tcUserId
+    , tcUpdateTime
+    , tcName
+    , tcDataSetRegion
+    , tcDisplayName
+    , tcNextRunTime
+    , tcDestinationDataSetId
+    , tcDataRefreshWindowDays
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.CheckValidCreds
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.Get
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.List
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.CheckValidCreds
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.Get
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.List
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.Get
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.List
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Create
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Delete
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Get
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.List
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Patch
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.Delete
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.Get
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.List
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.TransferLogs.List
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.ScheduleRuns
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Create
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Delete
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Get
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.List
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Patch
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.Delete
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.Get
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.List
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.TransferLogs.List
+import           Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.ScheduleRuns
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the BigQuery Data Transfer API service.
+type BigQueryDataTransferAPI =
+     ProjectsDataSourcesListResource :<|>
+       ProjectsDataSourcesCheckValidCredsResource
+       :<|> ProjectsDataSourcesGetResource
+       :<|>
+       ProjectsTransferConfigsRunsTransferLogsListResource
+       :<|> ProjectsTransferConfigsRunsListResource
+       :<|> ProjectsTransferConfigsRunsGetResource
+       :<|> ProjectsTransferConfigsRunsDeleteResource
+       :<|> ProjectsTransferConfigsScheduleRunsResource
+       :<|> ProjectsTransferConfigsListResource
+       :<|> ProjectsTransferConfigsPatchResource
+       :<|> ProjectsTransferConfigsGetResource
+       :<|> ProjectsTransferConfigsCreateResource
+       :<|> ProjectsTransferConfigsDeleteResource
+       :<|> ProjectsLocationsDataSourcesListResource
+       :<|>
+       ProjectsLocationsDataSourcesCheckValidCredsResource
+       :<|> ProjectsLocationsDataSourcesGetResource
+       :<|>
+       ProjectsLocationsTransferConfigsRunsTransferLogsListResource
+       :<|> ProjectsLocationsTransferConfigsRunsListResource
+       :<|> ProjectsLocationsTransferConfigsRunsGetResource
+       :<|>
+       ProjectsLocationsTransferConfigsRunsDeleteResource
+       :<|>
+       ProjectsLocationsTransferConfigsScheduleRunsResource
+       :<|> ProjectsLocationsTransferConfigsListResource
+       :<|> ProjectsLocationsTransferConfigsPatchResource
+       :<|> ProjectsLocationsTransferConfigsGetResource
+       :<|> ProjectsLocationsTransferConfigsCreateResource
+       :<|> ProjectsLocationsTransferConfigsDeleteResource
+       :<|> ProjectsLocationsListResource
+       :<|> ProjectsLocationsGetResource
diff --git a/gen/Network/Google/BigQueryDataTransfer/Types.hs b/gen/Network/Google/BigQueryDataTransfer/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/BigQueryDataTransfer/Types.hs
@@ -0,0 +1,250 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.BigQueryDataTransfer.Types
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.BigQueryDataTransfer.Types
+    (
+    -- * Service Configuration
+      bigQueryDataTransferService
+
+    -- * OAuth Scopes
+    , cloudPlatformReadOnlyScope
+    , cloudPlatformScope
+    , bigQueryScope
+
+    -- * DataSourceParameterType
+    , DataSourceParameterType (..)
+
+    -- * Status
+    , Status
+    , status
+    , sDetails
+    , sCode
+    , sMessage
+
+    -- * ListLocationsResponse
+    , ListLocationsResponse
+    , listLocationsResponse
+    , llrNextPageToken
+    , llrLocations
+
+    -- * TransferRun
+    , TransferRun
+    , transferRun
+    , trRunTime
+    , trErrorStatus
+    , trState
+    , trSchedule
+    , trStartTime
+    , trScheduleTime
+    , trDataSourceId
+    , trParams
+    , trUserId
+    , trUpdateTime
+    , trName
+    , trEndTime
+    , trDestinationDataSetId
+
+    -- * CheckValidCredsRequest
+    , CheckValidCredsRequest
+    , checkValidCredsRequest
+
+    -- * TransferConfigParams
+    , TransferConfigParams
+    , transferConfigParams
+    , tcpAddtional
+
+    -- * ScheduleTransferRunsRequest
+    , ScheduleTransferRunsRequest
+    , scheduleTransferRunsRequest
+    , strrStartTime
+    , strrEndTime
+
+    -- * Location
+    , Location
+    , location
+    , lName
+    , lMetadata
+    , lDisplayName
+    , lLabels
+    , lLocationId
+
+    -- * Empty
+    , Empty
+    , empty
+
+    -- * TransferRunState
+    , TransferRunState (..)
+
+    -- * ListTransferLogsResponse
+    , ListTransferLogsResponse
+    , listTransferLogsResponse
+    , ltlrNextPageToken
+    , ltlrTransferMessages
+
+    -- * CheckValidCredsResponse
+    , CheckValidCredsResponse
+    , checkValidCredsResponse
+    , cvcrHasValidCreds
+
+    -- * StatusDetailsItem
+    , StatusDetailsItem
+    , statusDetailsItem
+    , sdiAddtional
+
+    -- * DataSourceTransferType
+    , DataSourceTransferType (..)
+
+    -- * DataSourceAuthorizationType
+    , DataSourceAuthorizationType (..)
+
+    -- * TransferRunParams
+    , TransferRunParams
+    , transferRunParams
+    , trpAddtional
+
+    -- * DataSourceParameter
+    , DataSourceParameter
+    , dataSourceParameter
+    , dspMaxValue
+    , dspParamId
+    , dspImmutable
+    , dspRecurse
+    , dspValidationDescription
+    , dspRequired
+    , dspDisplayName
+    , dspType
+    , dspAllowedValues
+    , dspRepeated
+    , dspDescription
+    , dspValidationRegex
+    , dspMinValue
+    , dspValidationHelpURL
+    , dspFields
+
+    -- * ScheduleTransferRunsResponse
+    , ScheduleTransferRunsResponse
+    , scheduleTransferRunsResponse
+    , strrRuns
+
+    -- * ListDataSourcesResponse
+    , ListDataSourcesResponse
+    , listDataSourcesResponse
+    , ldsrNextPageToken
+    , ldsrDataSources
+
+    -- * Xgafv
+    , Xgafv (..)
+
+    -- * DataSource
+    , DataSource
+    , dataSource
+    , dsClientId
+    , dsMinimumScheduleInterval
+    , dsSupportsCustomSchedule
+    , dsUpdateDeadlineSeconds
+    , dsManualRunsDisabled
+    , dsDataSourceId
+    , dsTransferType
+    , dsScopes
+    , dsSupportsMultipleTransfers
+    , dsName
+    , dsParameters
+    , dsHelpURL
+    , dsDefaultDataRefreshWindowDays
+    , dsDisplayName
+    , dsDataRefreshType
+    , dsAuthorizationType
+    , dsDefaultSchedule
+    , dsDescription
+
+    -- * DataSourceDataRefreshType
+    , DataSourceDataRefreshType (..)
+
+    -- * ListTransferRunsResponse
+    , ListTransferRunsResponse
+    , listTransferRunsResponse
+    , ltrrNextPageToken
+    , ltrrTransferRuns
+
+    -- * TransferMessage
+    , TransferMessage
+    , transferMessage
+    , tmSeverity
+    , tmMessageTime
+    , tmMessageText
+
+    -- * LocationLabels
+    , LocationLabels
+    , locationLabels
+    , llAddtional
+
+    -- * LocationMetadata
+    , LocationMetadata
+    , locationMetadata
+    , lmAddtional
+
+    -- * TransferMessageSeverity
+    , TransferMessageSeverity (..)
+
+    -- * ListTransferConfigsResponse
+    , ListTransferConfigsResponse
+    , listTransferConfigsResponse
+    , ltcrNextPageToken
+    , ltcrTransferConfigs
+
+    -- * TransferConfigState
+    , TransferConfigState (..)
+
+    -- * TransferConfig
+    , TransferConfig
+    , transferConfig
+    , tcState
+    , tcSchedule
+    , tcDisabled
+    , tcDataSourceId
+    , tcParams
+    , tcUserId
+    , tcUpdateTime
+    , tcName
+    , tcDataSetRegion
+    , tcDisplayName
+    , tcNextRunTime
+    , tcDestinationDataSetId
+    , tcDataRefreshWindowDays
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types.Product
+import           Network.Google.BigQueryDataTransfer.Types.Sum
+import           Network.Google.Prelude
+
+-- | Default request referring to version 'v1' of the BigQuery Data Transfer API. This contains the host and root path used as a starting point for constructing service requests.
+bigQueryDataTransferService :: ServiceConfig
+bigQueryDataTransferService
+  = defaultService
+      (ServiceId "bigquerydatatransfer:v1")
+      "bigquerydatatransfer.googleapis.com"
+
+-- | View your data across Google Cloud Platform services
+cloudPlatformReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform.read-only"]
+cloudPlatformReadOnlyScope = Proxy;
+
+-- | View and manage your data across Google Cloud Platform services
+cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]
+cloudPlatformScope = Proxy;
+
+-- | View and manage your data in Google BigQuery
+bigQueryScope :: Proxy '["https://www.googleapis.com/auth/bigquery"]
+bigQueryScope = Proxy;
diff --git a/gen/Network/Google/BigQueryDataTransfer/Types/Product.hs b/gen/Network/Google/BigQueryDataTransfer/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/BigQueryDataTransfer/Types/Product.hs
@@ -0,0 +1,1727 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.BigQueryDataTransfer.Types.Product
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.BigQueryDataTransfer.Types.Product where
+
+import           Network.Google.BigQueryDataTransfer.Types.Sum
+import           Network.Google.Prelude
+
+-- | The \`Status\` type defines a logical error model that is suitable for
+-- different programming environments, including REST APIs and RPC APIs. It
+-- is used by [gRPC](https:\/\/github.com\/grpc). The error model is
+-- designed to be: - Simple to use and understand for most users - Flexible
+-- enough to meet unexpected needs # Overview The \`Status\` message
+-- contains three pieces of data: error code, error message, and error
+-- details. The error code should be an enum value of google.rpc.Code, but
+-- it may accept additional error codes if needed. The error message should
+-- be a developer-facing English message that helps developers *understand*
+-- and *resolve* the error. If a localized user-facing error message is
+-- needed, put the localized message in the error details or localize it in
+-- the client. The optional error details may contain arbitrary information
+-- about the error. There is a predefined set of error detail types in the
+-- package \`google.rpc\` that can be used for common error conditions. #
+-- Language mapping The \`Status\` message is the logical representation of
+-- the error model, but it is not necessarily the actual wire format. When
+-- the \`Status\` message is exposed in different client libraries and
+-- different wire protocols, it can be mapped differently. For example, it
+-- will likely be mapped to some exceptions in Java, but more likely mapped
+-- to some error codes in C. # Other uses The error model and the
+-- \`Status\` message can be used in a variety of environments, either with
+-- or without APIs, to provide a consistent developer experience across
+-- different environments. Example uses of this error model include: -
+-- Partial errors. If a service needs to return partial errors to the
+-- client, it may embed the \`Status\` in the normal response to indicate
+-- the partial errors. - Workflow errors. A typical workflow has multiple
+-- steps. Each step may have a \`Status\` message for error reporting. -
+-- Batch operations. If a client uses batch request and batch response, the
+-- \`Status\` message should be used directly inside batch response, one
+-- for each error sub-response. - Asynchronous operations. If an API call
+-- embeds asynchronous operation results in its response, the status of
+-- those operations should be represented directly using the \`Status\`
+-- message. - Logging. If some API errors are stored in logs, the message
+-- \`Status\` could be used directly after any stripping needed for
+-- security\/privacy reasons.
+--
+-- /See:/ 'status' smart constructor.
+data Status = Status'
+    { _sDetails :: !(Maybe [StatusDetailsItem])
+    , _sCode    :: !(Maybe (Textual Int32))
+    , _sMessage :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Status' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sDetails'
+--
+-- * 'sCode'
+--
+-- * 'sMessage'
+status
+    :: Status
+status =
+    Status'
+    { _sDetails = Nothing
+    , _sCode = Nothing
+    , _sMessage = Nothing
+    }
+
+-- | A list of messages that carry the error details. There is a common set
+-- of message types for APIs to use.
+sDetails :: Lens' Status [StatusDetailsItem]
+sDetails
+  = lens _sDetails (\ s a -> s{_sDetails = a}) .
+      _Default
+      . _Coerce
+
+-- | The status code, which should be an enum value of google.rpc.Code.
+sCode :: Lens' Status (Maybe Int32)
+sCode
+  = lens _sCode (\ s a -> s{_sCode = a}) .
+      mapping _Coerce
+
+-- | A developer-facing error message, which should be in English. Any
+-- user-facing error message should be localized and sent in the
+-- google.rpc.Status.details field, or localized by the client.
+sMessage :: Lens' Status (Maybe Text)
+sMessage = lens _sMessage (\ s a -> s{_sMessage = a})
+
+instance FromJSON Status where
+        parseJSON
+          = withObject "Status"
+              (\ o ->
+                 Status' <$>
+                   (o .:? "details" .!= mempty) <*> (o .:? "code") <*>
+                     (o .:? "message"))
+
+instance ToJSON Status where
+        toJSON Status'{..}
+          = object
+              (catMaybes
+                 [("details" .=) <$> _sDetails,
+                  ("code" .=) <$> _sCode,
+                  ("message" .=) <$> _sMessage])
+
+-- | The response message for Locations.ListLocations.
+--
+-- /See:/ 'listLocationsResponse' smart constructor.
+data ListLocationsResponse = ListLocationsResponse'
+    { _llrNextPageToken :: !(Maybe Text)
+    , _llrLocations     :: !(Maybe [Location])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListLocationsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'llrNextPageToken'
+--
+-- * 'llrLocations'
+listLocationsResponse
+    :: ListLocationsResponse
+listLocationsResponse =
+    ListLocationsResponse'
+    { _llrNextPageToken = Nothing
+    , _llrLocations = Nothing
+    }
+
+-- | The standard List next-page token.
+llrNextPageToken :: Lens' ListLocationsResponse (Maybe Text)
+llrNextPageToken
+  = lens _llrNextPageToken
+      (\ s a -> s{_llrNextPageToken = a})
+
+-- | A list of locations that matches the specified filter in the request.
+llrLocations :: Lens' ListLocationsResponse [Location]
+llrLocations
+  = lens _llrLocations (\ s a -> s{_llrLocations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListLocationsResponse where
+        parseJSON
+          = withObject "ListLocationsResponse"
+              (\ o ->
+                 ListLocationsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "locations" .!= mempty))
+
+instance ToJSON ListLocationsResponse where
+        toJSON ListLocationsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _llrNextPageToken,
+                  ("locations" .=) <$> _llrLocations])
+
+-- | Represents a data transfer run.
+--
+-- /See:/ 'transferRun' smart constructor.
+data TransferRun = TransferRun'
+    { _trRunTime              :: !(Maybe DateTime')
+    , _trErrorStatus          :: !(Maybe Status)
+    , _trState                :: !(Maybe TransferRunState)
+    , _trSchedule             :: !(Maybe Text)
+    , _trStartTime            :: !(Maybe DateTime')
+    , _trScheduleTime         :: !(Maybe DateTime')
+    , _trDataSourceId         :: !(Maybe Text)
+    , _trParams               :: !(Maybe TransferRunParams)
+    , _trUserId               :: !(Maybe (Textual Int64))
+    , _trUpdateTime           :: !(Maybe DateTime')
+    , _trName                 :: !(Maybe Text)
+    , _trEndTime              :: !(Maybe DateTime')
+    , _trDestinationDataSetId :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TransferRun' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trRunTime'
+--
+-- * 'trErrorStatus'
+--
+-- * 'trState'
+--
+-- * 'trSchedule'
+--
+-- * 'trStartTime'
+--
+-- * 'trScheduleTime'
+--
+-- * 'trDataSourceId'
+--
+-- * 'trParams'
+--
+-- * 'trUserId'
+--
+-- * 'trUpdateTime'
+--
+-- * 'trName'
+--
+-- * 'trEndTime'
+--
+-- * 'trDestinationDataSetId'
+transferRun
+    :: TransferRun
+transferRun =
+    TransferRun'
+    { _trRunTime = Nothing
+    , _trErrorStatus = Nothing
+    , _trState = Nothing
+    , _trSchedule = Nothing
+    , _trStartTime = Nothing
+    , _trScheduleTime = Nothing
+    , _trDataSourceId = Nothing
+    , _trParams = Nothing
+    , _trUserId = Nothing
+    , _trUpdateTime = Nothing
+    , _trName = Nothing
+    , _trEndTime = Nothing
+    , _trDestinationDataSetId = Nothing
+    }
+
+-- | For batch transfer runs, specifies the date and time that data should be
+-- ingested.
+trRunTime :: Lens' TransferRun (Maybe UTCTime)
+trRunTime
+  = lens _trRunTime (\ s a -> s{_trRunTime = a}) .
+      mapping _DateTime
+
+-- | Status of the transfer run.
+trErrorStatus :: Lens' TransferRun (Maybe Status)
+trErrorStatus
+  = lens _trErrorStatus
+      (\ s a -> s{_trErrorStatus = a})
+
+-- | Data transfer run state. Ignored for input requests.
+trState :: Lens' TransferRun (Maybe TransferRunState)
+trState = lens _trState (\ s a -> s{_trState = a})
+
+-- | Output only. Describes the schedule of this transfer run if it was
+-- created as part of a regular schedule. For batch transfer runs that are
+-- scheduled manually, this is empty. NOTE: the system might choose to
+-- delay the schedule depending on the current load, so \`schedule_time\`
+-- doesn\'t always match this.
+trSchedule :: Lens' TransferRun (Maybe Text)
+trSchedule
+  = lens _trSchedule (\ s a -> s{_trSchedule = a})
+
+-- | Output only. Time when transfer run was started. Parameter ignored by
+-- server for input requests.
+trStartTime :: Lens' TransferRun (Maybe UTCTime)
+trStartTime
+  = lens _trStartTime (\ s a -> s{_trStartTime = a}) .
+      mapping _DateTime
+
+-- | Minimum time after which a transfer run can be started.
+trScheduleTime :: Lens' TransferRun (Maybe UTCTime)
+trScheduleTime
+  = lens _trScheduleTime
+      (\ s a -> s{_trScheduleTime = a})
+      . mapping _DateTime
+
+-- | Output only. Data source id.
+trDataSourceId :: Lens' TransferRun (Maybe Text)
+trDataSourceId
+  = lens _trDataSourceId
+      (\ s a -> s{_trDataSourceId = a})
+
+-- | Output only. Data transfer specific parameters.
+trParams :: Lens' TransferRun (Maybe TransferRunParams)
+trParams = lens _trParams (\ s a -> s{_trParams = a})
+
+-- | Deprecated. Unique ID of the user on whose behalf transfer is done.
+trUserId :: Lens' TransferRun (Maybe Int64)
+trUserId
+  = lens _trUserId (\ s a -> s{_trUserId = a}) .
+      mapping _Coerce
+
+-- | Output only. Last time the data transfer run state was updated.
+trUpdateTime :: Lens' TransferRun (Maybe UTCTime)
+trUpdateTime
+  = lens _trUpdateTime (\ s a -> s{_trUpdateTime = a})
+      . mapping _DateTime
+
+-- | The resource name of the transfer run. Transfer run names have the form
+-- \`projects\/{project_id}\/locations\/{location}\/transferConfigs\/{config_id}\/runs\/{run_id}\`.
+-- The name is ignored when creating a transfer run.
+trName :: Lens' TransferRun (Maybe Text)
+trName = lens _trName (\ s a -> s{_trName = a})
+
+-- | Output only. Time when transfer run ended. Parameter ignored by server
+-- for input requests.
+trEndTime :: Lens' TransferRun (Maybe UTCTime)
+trEndTime
+  = lens _trEndTime (\ s a -> s{_trEndTime = a}) .
+      mapping _DateTime
+
+-- | Output only. The BigQuery target dataset id.
+trDestinationDataSetId :: Lens' TransferRun (Maybe Text)
+trDestinationDataSetId
+  = lens _trDestinationDataSetId
+      (\ s a -> s{_trDestinationDataSetId = a})
+
+instance FromJSON TransferRun where
+        parseJSON
+          = withObject "TransferRun"
+              (\ o ->
+                 TransferRun' <$>
+                   (o .:? "runTime") <*> (o .:? "errorStatus") <*>
+                     (o .:? "state")
+                     <*> (o .:? "schedule")
+                     <*> (o .:? "startTime")
+                     <*> (o .:? "scheduleTime")
+                     <*> (o .:? "dataSourceId")
+                     <*> (o .:? "params")
+                     <*> (o .:? "userId")
+                     <*> (o .:? "updateTime")
+                     <*> (o .:? "name")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "destinationDatasetId"))
+
+instance ToJSON TransferRun where
+        toJSON TransferRun'{..}
+          = object
+              (catMaybes
+                 [("runTime" .=) <$> _trRunTime,
+                  ("errorStatus" .=) <$> _trErrorStatus,
+                  ("state" .=) <$> _trState,
+                  ("schedule" .=) <$> _trSchedule,
+                  ("startTime" .=) <$> _trStartTime,
+                  ("scheduleTime" .=) <$> _trScheduleTime,
+                  ("dataSourceId" .=) <$> _trDataSourceId,
+                  ("params" .=) <$> _trParams,
+                  ("userId" .=) <$> _trUserId,
+                  ("updateTime" .=) <$> _trUpdateTime,
+                  ("name" .=) <$> _trName,
+                  ("endTime" .=) <$> _trEndTime,
+                  ("destinationDatasetId" .=) <$>
+                    _trDestinationDataSetId])
+
+-- | A request to determine whether the user has valid credentials. This
+-- method is used to limit the number of OAuth popups in the user
+-- interface. The user id is inferred from the API call context. If the
+-- data source has the Google+ authorization type, this method returns
+-- false, as it cannot be determined whether the credentials are already
+-- valid merely based on the user id.
+--
+-- /See:/ 'checkValidCredsRequest' smart constructor.
+data CheckValidCredsRequest =
+    CheckValidCredsRequest'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CheckValidCredsRequest' with the minimum fields required to make a request.
+--
+checkValidCredsRequest
+    :: CheckValidCredsRequest
+checkValidCredsRequest = CheckValidCredsRequest'
+
+instance FromJSON CheckValidCredsRequest where
+        parseJSON
+          = withObject "CheckValidCredsRequest"
+              (\ o -> pure CheckValidCredsRequest')
+
+instance ToJSON CheckValidCredsRequest where
+        toJSON = const emptyObject
+
+-- | Data transfer specific parameters.
+--
+-- /See:/ 'transferConfigParams' smart constructor.
+newtype TransferConfigParams = TransferConfigParams'
+    { _tcpAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TransferConfigParams' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tcpAddtional'
+transferConfigParams
+    :: HashMap Text JSONValue -- ^ 'tcpAddtional'
+    -> TransferConfigParams
+transferConfigParams pTcpAddtional_ =
+    TransferConfigParams'
+    { _tcpAddtional = _Coerce # pTcpAddtional_
+    }
+
+-- | Properties of the object.
+tcpAddtional :: Lens' TransferConfigParams (HashMap Text JSONValue)
+tcpAddtional
+  = lens _tcpAddtional (\ s a -> s{_tcpAddtional = a})
+      . _Coerce
+
+instance FromJSON TransferConfigParams where
+        parseJSON
+          = withObject "TransferConfigParams"
+              (\ o ->
+                 TransferConfigParams' <$> (parseJSONObject o))
+
+instance ToJSON TransferConfigParams where
+        toJSON = toJSON . _tcpAddtional
+
+-- | A request to schedule transfer runs for a time range.
+--
+-- /See:/ 'scheduleTransferRunsRequest' smart constructor.
+data ScheduleTransferRunsRequest = ScheduleTransferRunsRequest'
+    { _strrStartTime :: !(Maybe DateTime')
+    , _strrEndTime   :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ScheduleTransferRunsRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'strrStartTime'
+--
+-- * 'strrEndTime'
+scheduleTransferRunsRequest
+    :: ScheduleTransferRunsRequest
+scheduleTransferRunsRequest =
+    ScheduleTransferRunsRequest'
+    { _strrStartTime = Nothing
+    , _strrEndTime = Nothing
+    }
+
+-- | Start time of the range of transfer runs. For example,
+-- \`\"2017-05-25T00:00:00+00:00\"\`.
+strrStartTime :: Lens' ScheduleTransferRunsRequest (Maybe UTCTime)
+strrStartTime
+  = lens _strrStartTime
+      (\ s a -> s{_strrStartTime = a})
+      . mapping _DateTime
+
+-- | End time of the range of transfer runs. For example,
+-- \`\"2017-05-30T00:00:00+00:00\"\`.
+strrEndTime :: Lens' ScheduleTransferRunsRequest (Maybe UTCTime)
+strrEndTime
+  = lens _strrEndTime (\ s a -> s{_strrEndTime = a}) .
+      mapping _DateTime
+
+instance FromJSON ScheduleTransferRunsRequest where
+        parseJSON
+          = withObject "ScheduleTransferRunsRequest"
+              (\ o ->
+                 ScheduleTransferRunsRequest' <$>
+                   (o .:? "startTime") <*> (o .:? "endTime"))
+
+instance ToJSON ScheduleTransferRunsRequest where
+        toJSON ScheduleTransferRunsRequest'{..}
+          = object
+              (catMaybes
+                 [("startTime" .=) <$> _strrStartTime,
+                  ("endTime" .=) <$> _strrEndTime])
+
+-- | A resource that represents Google Cloud Platform location.
+--
+-- /See:/ 'location' smart constructor.
+data Location = Location'
+    { _lName        :: !(Maybe Text)
+    , _lMetadata    :: !(Maybe LocationMetadata)
+    , _lDisplayName :: !(Maybe Text)
+    , _lLabels      :: !(Maybe LocationLabels)
+    , _lLocationId  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Location' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lName'
+--
+-- * 'lMetadata'
+--
+-- * 'lDisplayName'
+--
+-- * 'lLabels'
+--
+-- * 'lLocationId'
+location
+    :: Location
+location =
+    Location'
+    { _lName = Nothing
+    , _lMetadata = Nothing
+    , _lDisplayName = Nothing
+    , _lLabels = Nothing
+    , _lLocationId = Nothing
+    }
+
+-- | Resource name for the location, which may vary between implementations.
+-- For example: \`\"projects\/example-project\/locations\/us-east1\"\`
+lName :: Lens' Location (Maybe Text)
+lName = lens _lName (\ s a -> s{_lName = a})
+
+-- | Service-specific metadata. For example the available capacity at the
+-- given location.
+lMetadata :: Lens' Location (Maybe LocationMetadata)
+lMetadata
+  = lens _lMetadata (\ s a -> s{_lMetadata = a})
+
+-- | The friendly name for this location, typically a nearby city name. For
+-- example, \"Tokyo\".
+lDisplayName :: Lens' Location (Maybe Text)
+lDisplayName
+  = lens _lDisplayName (\ s a -> s{_lDisplayName = a})
+
+-- | Cross-service attributes for the location. For example
+-- {\"cloud.googleapis.com\/region\": \"us-east1\"}
+lLabels :: Lens' Location (Maybe LocationLabels)
+lLabels = lens _lLabels (\ s a -> s{_lLabels = a})
+
+-- | The canonical id for this location. For example: \`\"us-east1\"\`.
+lLocationId :: Lens' Location (Maybe Text)
+lLocationId
+  = lens _lLocationId (\ s a -> s{_lLocationId = a})
+
+instance FromJSON Location where
+        parseJSON
+          = withObject "Location"
+              (\ o ->
+                 Location' <$>
+                   (o .:? "name") <*> (o .:? "metadata") <*>
+                     (o .:? "displayName")
+                     <*> (o .:? "labels")
+                     <*> (o .:? "locationId"))
+
+instance ToJSON Location where
+        toJSON Location'{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _lName,
+                  ("metadata" .=) <$> _lMetadata,
+                  ("displayName" .=) <$> _lDisplayName,
+                  ("labels" .=) <$> _lLabels,
+                  ("locationId" .=) <$> _lLocationId])
+
+-- | A generic empty message that you can re-use to avoid defining duplicated
+-- empty messages in your APIs. A typical example is to use it as the
+-- request or the response type of an API method. For instance: service Foo
+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The
+-- JSON representation for \`Empty\` is empty JSON object \`{}\`.
+--
+-- /See:/ 'empty' smart constructor.
+data Empty =
+    Empty'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Empty' with the minimum fields required to make a request.
+--
+empty
+    :: Empty
+empty = Empty'
+
+instance FromJSON Empty where
+        parseJSON = withObject "Empty" (\ o -> pure Empty')
+
+instance ToJSON Empty where
+        toJSON = const emptyObject
+
+-- | The returned list transfer run messages.
+--
+-- /See:/ 'listTransferLogsResponse' smart constructor.
+data ListTransferLogsResponse = ListTransferLogsResponse'
+    { _ltlrNextPageToken    :: !(Maybe Text)
+    , _ltlrTransferMessages :: !(Maybe [TransferMessage])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListTransferLogsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltlrNextPageToken'
+--
+-- * 'ltlrTransferMessages'
+listTransferLogsResponse
+    :: ListTransferLogsResponse
+listTransferLogsResponse =
+    ListTransferLogsResponse'
+    { _ltlrNextPageToken = Nothing
+    , _ltlrTransferMessages = Nothing
+    }
+
+-- | Output only. The next-pagination token. For multiple-page list results,
+-- this token can be used as the \`GetTransferRunLogRequest.page_token\` to
+-- request the next page of list results.
+ltlrNextPageToken :: Lens' ListTransferLogsResponse (Maybe Text)
+ltlrNextPageToken
+  = lens _ltlrNextPageToken
+      (\ s a -> s{_ltlrNextPageToken = a})
+
+-- | Output only. The stored pipeline transfer messages.
+ltlrTransferMessages :: Lens' ListTransferLogsResponse [TransferMessage]
+ltlrTransferMessages
+  = lens _ltlrTransferMessages
+      (\ s a -> s{_ltlrTransferMessages = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListTransferLogsResponse where
+        parseJSON
+          = withObject "ListTransferLogsResponse"
+              (\ o ->
+                 ListTransferLogsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "transferMessages" .!= mempty))
+
+instance ToJSON ListTransferLogsResponse where
+        toJSON ListTransferLogsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _ltlrNextPageToken,
+                  ("transferMessages" .=) <$> _ltlrTransferMessages])
+
+-- | A response indicating whether the credentials exist and are valid.
+--
+-- /See:/ 'checkValidCredsResponse' smart constructor.
+newtype CheckValidCredsResponse = CheckValidCredsResponse'
+    { _cvcrHasValidCreds :: Maybe Bool
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CheckValidCredsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cvcrHasValidCreds'
+checkValidCredsResponse
+    :: CheckValidCredsResponse
+checkValidCredsResponse =
+    CheckValidCredsResponse'
+    { _cvcrHasValidCreds = Nothing
+    }
+
+-- | If set to \`true\`, the credentials exist and are valid.
+cvcrHasValidCreds :: Lens' CheckValidCredsResponse (Maybe Bool)
+cvcrHasValidCreds
+  = lens _cvcrHasValidCreds
+      (\ s a -> s{_cvcrHasValidCreds = a})
+
+instance FromJSON CheckValidCredsResponse where
+        parseJSON
+          = withObject "CheckValidCredsResponse"
+              (\ o ->
+                 CheckValidCredsResponse' <$> (o .:? "hasValidCreds"))
+
+instance ToJSON CheckValidCredsResponse where
+        toJSON CheckValidCredsResponse'{..}
+          = object
+              (catMaybes
+                 [("hasValidCreds" .=) <$> _cvcrHasValidCreds])
+
+--
+-- /See:/ 'statusDetailsItem' smart constructor.
+newtype StatusDetailsItem = StatusDetailsItem'
+    { _sdiAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StatusDetailsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sdiAddtional'
+statusDetailsItem
+    :: HashMap Text JSONValue -- ^ 'sdiAddtional'
+    -> StatusDetailsItem
+statusDetailsItem pSdiAddtional_ =
+    StatusDetailsItem'
+    { _sdiAddtional = _Coerce # pSdiAddtional_
+    }
+
+-- | Properties of the object. Contains field \'type with type URL.
+sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)
+sdiAddtional
+  = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a})
+      . _Coerce
+
+instance FromJSON StatusDetailsItem where
+        parseJSON
+          = withObject "StatusDetailsItem"
+              (\ o -> StatusDetailsItem' <$> (parseJSONObject o))
+
+instance ToJSON StatusDetailsItem where
+        toJSON = toJSON . _sdiAddtional
+
+-- | Output only. Data transfer specific parameters.
+--
+-- /See:/ 'transferRunParams' smart constructor.
+newtype TransferRunParams = TransferRunParams'
+    { _trpAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TransferRunParams' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trpAddtional'
+transferRunParams
+    :: HashMap Text JSONValue -- ^ 'trpAddtional'
+    -> TransferRunParams
+transferRunParams pTrpAddtional_ =
+    TransferRunParams'
+    { _trpAddtional = _Coerce # pTrpAddtional_
+    }
+
+-- | Properties of the object.
+trpAddtional :: Lens' TransferRunParams (HashMap Text JSONValue)
+trpAddtional
+  = lens _trpAddtional (\ s a -> s{_trpAddtional = a})
+      . _Coerce
+
+instance FromJSON TransferRunParams where
+        parseJSON
+          = withObject "TransferRunParams"
+              (\ o -> TransferRunParams' <$> (parseJSONObject o))
+
+instance ToJSON TransferRunParams where
+        toJSON = toJSON . _trpAddtional
+
+-- | Represents a data source parameter with validation rules, so that
+-- parameters can be rendered in the UI. These parameters are given to us
+-- by supported data sources, and include all needed information for
+-- rendering and validation. Thus, whoever uses this api can decide to
+-- generate either generic ui, or custom data source specific forms.
+--
+-- /See:/ 'dataSourceParameter' smart constructor.
+data DataSourceParameter = DataSourceParameter'
+    { _dspMaxValue              :: !(Maybe (Textual Double))
+    , _dspParamId               :: !(Maybe Text)
+    , _dspImmutable             :: !(Maybe Bool)
+    , _dspRecurse               :: !(Maybe Bool)
+    , _dspValidationDescription :: !(Maybe Text)
+    , _dspRequired              :: !(Maybe Bool)
+    , _dspDisplayName           :: !(Maybe Text)
+    , _dspType                  :: !(Maybe DataSourceParameterType)
+    , _dspAllowedValues         :: !(Maybe [Text])
+    , _dspRepeated              :: !(Maybe Bool)
+    , _dspDescription           :: !(Maybe Text)
+    , _dspValidationRegex       :: !(Maybe Text)
+    , _dspMinValue              :: !(Maybe (Textual Double))
+    , _dspValidationHelpURL     :: !(Maybe Text)
+    , _dspFields                :: !(Maybe [DataSourceParameter])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DataSourceParameter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dspMaxValue'
+--
+-- * 'dspParamId'
+--
+-- * 'dspImmutable'
+--
+-- * 'dspRecurse'
+--
+-- * 'dspValidationDescription'
+--
+-- * 'dspRequired'
+--
+-- * 'dspDisplayName'
+--
+-- * 'dspType'
+--
+-- * 'dspAllowedValues'
+--
+-- * 'dspRepeated'
+--
+-- * 'dspDescription'
+--
+-- * 'dspValidationRegex'
+--
+-- * 'dspMinValue'
+--
+-- * 'dspValidationHelpURL'
+--
+-- * 'dspFields'
+dataSourceParameter
+    :: DataSourceParameter
+dataSourceParameter =
+    DataSourceParameter'
+    { _dspMaxValue = Nothing
+    , _dspParamId = Nothing
+    , _dspImmutable = Nothing
+    , _dspRecurse = Nothing
+    , _dspValidationDescription = Nothing
+    , _dspRequired = Nothing
+    , _dspDisplayName = Nothing
+    , _dspType = Nothing
+    , _dspAllowedValues = Nothing
+    , _dspRepeated = Nothing
+    , _dspDescription = Nothing
+    , _dspValidationRegex = Nothing
+    , _dspMinValue = Nothing
+    , _dspValidationHelpURL = Nothing
+    , _dspFields = Nothing
+    }
+
+-- | For integer and double values specifies maxminum allowed value.
+dspMaxValue :: Lens' DataSourceParameter (Maybe Double)
+dspMaxValue
+  = lens _dspMaxValue (\ s a -> s{_dspMaxValue = a}) .
+      mapping _Coerce
+
+-- | Parameter identifier.
+dspParamId :: Lens' DataSourceParameter (Maybe Text)
+dspParamId
+  = lens _dspParamId (\ s a -> s{_dspParamId = a})
+
+-- | Cannot be changed after initial creation.
+dspImmutable :: Lens' DataSourceParameter (Maybe Bool)
+dspImmutable
+  = lens _dspImmutable (\ s a -> s{_dspImmutable = a})
+
+-- | Deprecated. This field has no effect.
+dspRecurse :: Lens' DataSourceParameter (Maybe Bool)
+dspRecurse
+  = lens _dspRecurse (\ s a -> s{_dspRecurse = a})
+
+-- | Description of the requirements for this field, in case the user input
+-- does not fulfill the regex pattern or min\/max values.
+dspValidationDescription :: Lens' DataSourceParameter (Maybe Text)
+dspValidationDescription
+  = lens _dspValidationDescription
+      (\ s a -> s{_dspValidationDescription = a})
+
+-- | Is parameter required.
+dspRequired :: Lens' DataSourceParameter (Maybe Bool)
+dspRequired
+  = lens _dspRequired (\ s a -> s{_dspRequired = a})
+
+-- | Parameter display name in the user interface.
+dspDisplayName :: Lens' DataSourceParameter (Maybe Text)
+dspDisplayName
+  = lens _dspDisplayName
+      (\ s a -> s{_dspDisplayName = a})
+
+-- | Parameter type.
+dspType :: Lens' DataSourceParameter (Maybe DataSourceParameterType)
+dspType = lens _dspType (\ s a -> s{_dspType = a})
+
+-- | All possible values for the parameter.
+dspAllowedValues :: Lens' DataSourceParameter [Text]
+dspAllowedValues
+  = lens _dspAllowedValues
+      (\ s a -> s{_dspAllowedValues = a})
+      . _Default
+      . _Coerce
+
+-- | Deprecated. This field has no effect.
+dspRepeated :: Lens' DataSourceParameter (Maybe Bool)
+dspRepeated
+  = lens _dspRepeated (\ s a -> s{_dspRepeated = a})
+
+-- | Parameter description.
+dspDescription :: Lens' DataSourceParameter (Maybe Text)
+dspDescription
+  = lens _dspDescription
+      (\ s a -> s{_dspDescription = a})
+
+-- | Regular expression which can be used for parameter validation.
+dspValidationRegex :: Lens' DataSourceParameter (Maybe Text)
+dspValidationRegex
+  = lens _dspValidationRegex
+      (\ s a -> s{_dspValidationRegex = a})
+
+-- | For integer and double values specifies minimum allowed value.
+dspMinValue :: Lens' DataSourceParameter (Maybe Double)
+dspMinValue
+  = lens _dspMinValue (\ s a -> s{_dspMinValue = a}) .
+      mapping _Coerce
+
+-- | URL to a help document to further explain the naming requirements.
+dspValidationHelpURL :: Lens' DataSourceParameter (Maybe Text)
+dspValidationHelpURL
+  = lens _dspValidationHelpURL
+      (\ s a -> s{_dspValidationHelpURL = a})
+
+-- | Deprecated. This field has no effect.
+dspFields :: Lens' DataSourceParameter [DataSourceParameter]
+dspFields
+  = lens _dspFields (\ s a -> s{_dspFields = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON DataSourceParameter where
+        parseJSON
+          = withObject "DataSourceParameter"
+              (\ o ->
+                 DataSourceParameter' <$>
+                   (o .:? "maxValue") <*> (o .:? "paramId") <*>
+                     (o .:? "immutable")
+                     <*> (o .:? "recurse")
+                     <*> (o .:? "validationDescription")
+                     <*> (o .:? "required")
+                     <*> (o .:? "displayName")
+                     <*> (o .:? "type")
+                     <*> (o .:? "allowedValues" .!= mempty)
+                     <*> (o .:? "repeated")
+                     <*> (o .:? "description")
+                     <*> (o .:? "validationRegex")
+                     <*> (o .:? "minValue")
+                     <*> (o .:? "validationHelpUrl")
+                     <*> (o .:? "fields" .!= mempty))
+
+instance ToJSON DataSourceParameter where
+        toJSON DataSourceParameter'{..}
+          = object
+              (catMaybes
+                 [("maxValue" .=) <$> _dspMaxValue,
+                  ("paramId" .=) <$> _dspParamId,
+                  ("immutable" .=) <$> _dspImmutable,
+                  ("recurse" .=) <$> _dspRecurse,
+                  ("validationDescription" .=) <$>
+                    _dspValidationDescription,
+                  ("required" .=) <$> _dspRequired,
+                  ("displayName" .=) <$> _dspDisplayName,
+                  ("type" .=) <$> _dspType,
+                  ("allowedValues" .=) <$> _dspAllowedValues,
+                  ("repeated" .=) <$> _dspRepeated,
+                  ("description" .=) <$> _dspDescription,
+                  ("validationRegex" .=) <$> _dspValidationRegex,
+                  ("minValue" .=) <$> _dspMinValue,
+                  ("validationHelpUrl" .=) <$> _dspValidationHelpURL,
+                  ("fields" .=) <$> _dspFields])
+
+-- | A response to schedule transfer runs for a time range.
+--
+-- /See:/ 'scheduleTransferRunsResponse' smart constructor.
+newtype ScheduleTransferRunsResponse = ScheduleTransferRunsResponse'
+    { _strrRuns :: Maybe [TransferRun]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ScheduleTransferRunsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'strrRuns'
+scheduleTransferRunsResponse
+    :: ScheduleTransferRunsResponse
+scheduleTransferRunsResponse =
+    ScheduleTransferRunsResponse'
+    { _strrRuns = Nothing
+    }
+
+-- | The transfer runs that were scheduled.
+strrRuns :: Lens' ScheduleTransferRunsResponse [TransferRun]
+strrRuns
+  = lens _strrRuns (\ s a -> s{_strrRuns = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ScheduleTransferRunsResponse where
+        parseJSON
+          = withObject "ScheduleTransferRunsResponse"
+              (\ o ->
+                 ScheduleTransferRunsResponse' <$>
+                   (o .:? "runs" .!= mempty))
+
+instance ToJSON ScheduleTransferRunsResponse where
+        toJSON ScheduleTransferRunsResponse'{..}
+          = object (catMaybes [("runs" .=) <$> _strrRuns])
+
+-- | Returns list of supported data sources and their metadata.
+--
+-- /See:/ 'listDataSourcesResponse' smart constructor.
+data ListDataSourcesResponse = ListDataSourcesResponse'
+    { _ldsrNextPageToken :: !(Maybe Text)
+    , _ldsrDataSources   :: !(Maybe [DataSource])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListDataSourcesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ldsrNextPageToken'
+--
+-- * 'ldsrDataSources'
+listDataSourcesResponse
+    :: ListDataSourcesResponse
+listDataSourcesResponse =
+    ListDataSourcesResponse'
+    { _ldsrNextPageToken = Nothing
+    , _ldsrDataSources = Nothing
+    }
+
+-- | Output only. The next-pagination token. For multiple-page list results,
+-- this token can be used as the \`ListDataSourcesRequest.page_token\` to
+-- request the next page of list results.
+ldsrNextPageToken :: Lens' ListDataSourcesResponse (Maybe Text)
+ldsrNextPageToken
+  = lens _ldsrNextPageToken
+      (\ s a -> s{_ldsrNextPageToken = a})
+
+-- | List of supported data sources and their transfer settings.
+ldsrDataSources :: Lens' ListDataSourcesResponse [DataSource]
+ldsrDataSources
+  = lens _ldsrDataSources
+      (\ s a -> s{_ldsrDataSources = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListDataSourcesResponse where
+        parseJSON
+          = withObject "ListDataSourcesResponse"
+              (\ o ->
+                 ListDataSourcesResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "dataSources" .!= mempty))
+
+instance ToJSON ListDataSourcesResponse where
+        toJSON ListDataSourcesResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _ldsrNextPageToken,
+                  ("dataSources" .=) <$> _ldsrDataSources])
+
+-- | Represents data source metadata. Metadata is sufficient to render UI and
+-- request proper OAuth tokens.
+--
+-- /See:/ 'dataSource' smart constructor.
+data DataSource = DataSource'
+    { _dsClientId                     :: !(Maybe Text)
+    , _dsMinimumScheduleInterval      :: !(Maybe GDuration)
+    , _dsSupportsCustomSchedule       :: !(Maybe Bool)
+    , _dsUpdateDeadlineSeconds        :: !(Maybe (Textual Int32))
+    , _dsManualRunsDisabled           :: !(Maybe Bool)
+    , _dsDataSourceId                 :: !(Maybe Text)
+    , _dsTransferType                 :: !(Maybe DataSourceTransferType)
+    , _dsScopes                       :: !(Maybe [Text])
+    , _dsSupportsMultipleTransfers    :: !(Maybe Bool)
+    , _dsName                         :: !(Maybe Text)
+    , _dsParameters                   :: !(Maybe [DataSourceParameter])
+    , _dsHelpURL                      :: !(Maybe Text)
+    , _dsDefaultDataRefreshWindowDays :: !(Maybe (Textual Int32))
+    , _dsDisplayName                  :: !(Maybe Text)
+    , _dsDataRefreshType              :: !(Maybe DataSourceDataRefreshType)
+    , _dsAuthorizationType            :: !(Maybe DataSourceAuthorizationType)
+    , _dsDefaultSchedule              :: !(Maybe Text)
+    , _dsDescription                  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DataSource' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsClientId'
+--
+-- * 'dsMinimumScheduleInterval'
+--
+-- * 'dsSupportsCustomSchedule'
+--
+-- * 'dsUpdateDeadlineSeconds'
+--
+-- * 'dsManualRunsDisabled'
+--
+-- * 'dsDataSourceId'
+--
+-- * 'dsTransferType'
+--
+-- * 'dsScopes'
+--
+-- * 'dsSupportsMultipleTransfers'
+--
+-- * 'dsName'
+--
+-- * 'dsParameters'
+--
+-- * 'dsHelpURL'
+--
+-- * 'dsDefaultDataRefreshWindowDays'
+--
+-- * 'dsDisplayName'
+--
+-- * 'dsDataRefreshType'
+--
+-- * 'dsAuthorizationType'
+--
+-- * 'dsDefaultSchedule'
+--
+-- * 'dsDescription'
+dataSource
+    :: DataSource
+dataSource =
+    DataSource'
+    { _dsClientId = Nothing
+    , _dsMinimumScheduleInterval = Nothing
+    , _dsSupportsCustomSchedule = Nothing
+    , _dsUpdateDeadlineSeconds = Nothing
+    , _dsManualRunsDisabled = Nothing
+    , _dsDataSourceId = Nothing
+    , _dsTransferType = Nothing
+    , _dsScopes = Nothing
+    , _dsSupportsMultipleTransfers = Nothing
+    , _dsName = Nothing
+    , _dsParameters = Nothing
+    , _dsHelpURL = Nothing
+    , _dsDefaultDataRefreshWindowDays = Nothing
+    , _dsDisplayName = Nothing
+    , _dsDataRefreshType = Nothing
+    , _dsAuthorizationType = Nothing
+    , _dsDefaultSchedule = Nothing
+    , _dsDescription = Nothing
+    }
+
+-- | Data source client id which should be used to receive refresh token.
+dsClientId :: Lens' DataSource (Maybe Text)
+dsClientId
+  = lens _dsClientId (\ s a -> s{_dsClientId = a})
+
+-- | The minimum interval for scheduler to schedule runs.
+dsMinimumScheduleInterval :: Lens' DataSource (Maybe Scientific)
+dsMinimumScheduleInterval
+  = lens _dsMinimumScheduleInterval
+      (\ s a -> s{_dsMinimumScheduleInterval = a})
+      . mapping _GDuration
+
+-- | Specifies whether the data source supports a user defined schedule, or
+-- operates on the default schedule. When set to \`true\`, user can
+-- override default schedule.
+dsSupportsCustomSchedule :: Lens' DataSource (Maybe Bool)
+dsSupportsCustomSchedule
+  = lens _dsSupportsCustomSchedule
+      (\ s a -> s{_dsSupportsCustomSchedule = a})
+
+-- | The number of seconds to wait for an update from the data source before
+-- the Data Transfer Service marks the transfer as FAILED.
+dsUpdateDeadlineSeconds :: Lens' DataSource (Maybe Int32)
+dsUpdateDeadlineSeconds
+  = lens _dsUpdateDeadlineSeconds
+      (\ s a -> s{_dsUpdateDeadlineSeconds = a})
+      . mapping _Coerce
+
+-- | Disables backfilling and manual run scheduling for the data source.
+dsManualRunsDisabled :: Lens' DataSource (Maybe Bool)
+dsManualRunsDisabled
+  = lens _dsManualRunsDisabled
+      (\ s a -> s{_dsManualRunsDisabled = a})
+
+-- | Data source id.
+dsDataSourceId :: Lens' DataSource (Maybe Text)
+dsDataSourceId
+  = lens _dsDataSourceId
+      (\ s a -> s{_dsDataSourceId = a})
+
+-- | Deprecated. This field has no effect.
+dsTransferType :: Lens' DataSource (Maybe DataSourceTransferType)
+dsTransferType
+  = lens _dsTransferType
+      (\ s a -> s{_dsTransferType = a})
+
+-- | Api auth scopes for which refresh token needs to be obtained. These are
+-- scopes needed by a data source to prepare data and ingest them into
+-- BigQuery, e.g., https:\/\/www.googleapis.com\/auth\/bigquery
+dsScopes :: Lens' DataSource [Text]
+dsScopes
+  = lens _dsScopes (\ s a -> s{_dsScopes = a}) .
+      _Default
+      . _Coerce
+
+-- | Deprecated. This field has no effect.
+dsSupportsMultipleTransfers :: Lens' DataSource (Maybe Bool)
+dsSupportsMultipleTransfers
+  = lens _dsSupportsMultipleTransfers
+      (\ s a -> s{_dsSupportsMultipleTransfers = a})
+
+-- | Output only. Data source resource name.
+dsName :: Lens' DataSource (Maybe Text)
+dsName = lens _dsName (\ s a -> s{_dsName = a})
+
+-- | Data source parameters.
+dsParameters :: Lens' DataSource [DataSourceParameter]
+dsParameters
+  = lens _dsParameters (\ s a -> s{_dsParameters = a})
+      . _Default
+      . _Coerce
+
+-- | Url for the help document for this data source.
+dsHelpURL :: Lens' DataSource (Maybe Text)
+dsHelpURL
+  = lens _dsHelpURL (\ s a -> s{_dsHelpURL = a})
+
+-- | Default data refresh window on days. Only meaningful when
+-- \`data_refresh_type\` = \`SLIDING_WINDOW\`.
+dsDefaultDataRefreshWindowDays :: Lens' DataSource (Maybe Int32)
+dsDefaultDataRefreshWindowDays
+  = lens _dsDefaultDataRefreshWindowDays
+      (\ s a -> s{_dsDefaultDataRefreshWindowDays = a})
+      . mapping _Coerce
+
+-- | User friendly data source name.
+dsDisplayName :: Lens' DataSource (Maybe Text)
+dsDisplayName
+  = lens _dsDisplayName
+      (\ s a -> s{_dsDisplayName = a})
+
+-- | Specifies whether the data source supports automatic data refresh for
+-- the past few days, and how it\'s supported. For some data sources, data
+-- might not be complete until a few days later, so it\'s useful to refresh
+-- data automatically.
+dsDataRefreshType :: Lens' DataSource (Maybe DataSourceDataRefreshType)
+dsDataRefreshType
+  = lens _dsDataRefreshType
+      (\ s a -> s{_dsDataRefreshType = a})
+
+-- | Indicates the type of authorization.
+dsAuthorizationType :: Lens' DataSource (Maybe DataSourceAuthorizationType)
+dsAuthorizationType
+  = lens _dsAuthorizationType
+      (\ s a -> s{_dsAuthorizationType = a})
+
+-- | Default data transfer schedule. Examples of valid schedules include:
+-- \`1st,3rd monday of month 15:30\`, \`every wed,fri of jan,jun 13:15\`,
+-- and \`first sunday of quarter 00:00\`.
+dsDefaultSchedule :: Lens' DataSource (Maybe Text)
+dsDefaultSchedule
+  = lens _dsDefaultSchedule
+      (\ s a -> s{_dsDefaultSchedule = a})
+
+-- | User friendly data source description string.
+dsDescription :: Lens' DataSource (Maybe Text)
+dsDescription
+  = lens _dsDescription
+      (\ s a -> s{_dsDescription = a})
+
+instance FromJSON DataSource where
+        parseJSON
+          = withObject "DataSource"
+              (\ o ->
+                 DataSource' <$>
+                   (o .:? "clientId") <*>
+                     (o .:? "minimumScheduleInterval")
+                     <*> (o .:? "supportsCustomSchedule")
+                     <*> (o .:? "updateDeadlineSeconds")
+                     <*> (o .:? "manualRunsDisabled")
+                     <*> (o .:? "dataSourceId")
+                     <*> (o .:? "transferType")
+                     <*> (o .:? "scopes" .!= mempty)
+                     <*> (o .:? "supportsMultipleTransfers")
+                     <*> (o .:? "name")
+                     <*> (o .:? "parameters" .!= mempty)
+                     <*> (o .:? "helpUrl")
+                     <*> (o .:? "defaultDataRefreshWindowDays")
+                     <*> (o .:? "displayName")
+                     <*> (o .:? "dataRefreshType")
+                     <*> (o .:? "authorizationType")
+                     <*> (o .:? "defaultSchedule")
+                     <*> (o .:? "description"))
+
+instance ToJSON DataSource where
+        toJSON DataSource'{..}
+          = object
+              (catMaybes
+                 [("clientId" .=) <$> _dsClientId,
+                  ("minimumScheduleInterval" .=) <$>
+                    _dsMinimumScheduleInterval,
+                  ("supportsCustomSchedule" .=) <$>
+                    _dsSupportsCustomSchedule,
+                  ("updateDeadlineSeconds" .=) <$>
+                    _dsUpdateDeadlineSeconds,
+                  ("manualRunsDisabled" .=) <$> _dsManualRunsDisabled,
+                  ("dataSourceId" .=) <$> _dsDataSourceId,
+                  ("transferType" .=) <$> _dsTransferType,
+                  ("scopes" .=) <$> _dsScopes,
+                  ("supportsMultipleTransfers" .=) <$>
+                    _dsSupportsMultipleTransfers,
+                  ("name" .=) <$> _dsName,
+                  ("parameters" .=) <$> _dsParameters,
+                  ("helpUrl" .=) <$> _dsHelpURL,
+                  ("defaultDataRefreshWindowDays" .=) <$>
+                    _dsDefaultDataRefreshWindowDays,
+                  ("displayName" .=) <$> _dsDisplayName,
+                  ("dataRefreshType" .=) <$> _dsDataRefreshType,
+                  ("authorizationType" .=) <$> _dsAuthorizationType,
+                  ("defaultSchedule" .=) <$> _dsDefaultSchedule,
+                  ("description" .=) <$> _dsDescription])
+
+-- | The returned list of pipelines in the project.
+--
+-- /See:/ 'listTransferRunsResponse' smart constructor.
+data ListTransferRunsResponse = ListTransferRunsResponse'
+    { _ltrrNextPageToken :: !(Maybe Text)
+    , _ltrrTransferRuns  :: !(Maybe [TransferRun])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListTransferRunsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltrrNextPageToken'
+--
+-- * 'ltrrTransferRuns'
+listTransferRunsResponse
+    :: ListTransferRunsResponse
+listTransferRunsResponse =
+    ListTransferRunsResponse'
+    { _ltrrNextPageToken = Nothing
+    , _ltrrTransferRuns = Nothing
+    }
+
+-- | Output only. The next-pagination token. For multiple-page list results,
+-- this token can be used as the \`ListTransferRunsRequest.page_token\` to
+-- request the next page of list results.
+ltrrNextPageToken :: Lens' ListTransferRunsResponse (Maybe Text)
+ltrrNextPageToken
+  = lens _ltrrNextPageToken
+      (\ s a -> s{_ltrrNextPageToken = a})
+
+-- | Output only. The stored pipeline transfer runs.
+ltrrTransferRuns :: Lens' ListTransferRunsResponse [TransferRun]
+ltrrTransferRuns
+  = lens _ltrrTransferRuns
+      (\ s a -> s{_ltrrTransferRuns = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListTransferRunsResponse where
+        parseJSON
+          = withObject "ListTransferRunsResponse"
+              (\ o ->
+                 ListTransferRunsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "transferRuns" .!= mempty))
+
+instance ToJSON ListTransferRunsResponse where
+        toJSON ListTransferRunsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _ltrrNextPageToken,
+                  ("transferRuns" .=) <$> _ltrrTransferRuns])
+
+-- | Represents a user facing message for a particular data transfer run.
+--
+-- /See:/ 'transferMessage' smart constructor.
+data TransferMessage = TransferMessage'
+    { _tmSeverity    :: !(Maybe TransferMessageSeverity)
+    , _tmMessageTime :: !(Maybe DateTime')
+    , _tmMessageText :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TransferMessage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tmSeverity'
+--
+-- * 'tmMessageTime'
+--
+-- * 'tmMessageText'
+transferMessage
+    :: TransferMessage
+transferMessage =
+    TransferMessage'
+    { _tmSeverity = Nothing
+    , _tmMessageTime = Nothing
+    , _tmMessageText = Nothing
+    }
+
+-- | Message severity.
+tmSeverity :: Lens' TransferMessage (Maybe TransferMessageSeverity)
+tmSeverity
+  = lens _tmSeverity (\ s a -> s{_tmSeverity = a})
+
+-- | Time when message was logged.
+tmMessageTime :: Lens' TransferMessage (Maybe UTCTime)
+tmMessageTime
+  = lens _tmMessageTime
+      (\ s a -> s{_tmMessageTime = a})
+      . mapping _DateTime
+
+-- | Message text.
+tmMessageText :: Lens' TransferMessage (Maybe Text)
+tmMessageText
+  = lens _tmMessageText
+      (\ s a -> s{_tmMessageText = a})
+
+instance FromJSON TransferMessage where
+        parseJSON
+          = withObject "TransferMessage"
+              (\ o ->
+                 TransferMessage' <$>
+                   (o .:? "severity") <*> (o .:? "messageTime") <*>
+                     (o .:? "messageText"))
+
+instance ToJSON TransferMessage where
+        toJSON TransferMessage'{..}
+          = object
+              (catMaybes
+                 [("severity" .=) <$> _tmSeverity,
+                  ("messageTime" .=) <$> _tmMessageTime,
+                  ("messageText" .=) <$> _tmMessageText])
+
+-- | Cross-service attributes for the location. For example
+-- {\"cloud.googleapis.com\/region\": \"us-east1\"}
+--
+-- /See:/ 'locationLabels' smart constructor.
+newtype LocationLabels = LocationLabels'
+    { _llAddtional :: HashMap Text Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LocationLabels' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'llAddtional'
+locationLabels
+    :: HashMap Text Text -- ^ 'llAddtional'
+    -> LocationLabels
+locationLabels pLlAddtional_ =
+    LocationLabels'
+    { _llAddtional = _Coerce # pLlAddtional_
+    }
+
+llAddtional :: Lens' LocationLabels (HashMap Text Text)
+llAddtional
+  = lens _llAddtional (\ s a -> s{_llAddtional = a}) .
+      _Coerce
+
+instance FromJSON LocationLabels where
+        parseJSON
+          = withObject "LocationLabels"
+              (\ o -> LocationLabels' <$> (parseJSONObject o))
+
+instance ToJSON LocationLabels where
+        toJSON = toJSON . _llAddtional
+
+-- | Service-specific metadata. For example the available capacity at the
+-- given location.
+--
+-- /See:/ 'locationMetadata' smart constructor.
+newtype LocationMetadata = LocationMetadata'
+    { _lmAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LocationMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lmAddtional'
+locationMetadata
+    :: HashMap Text JSONValue -- ^ 'lmAddtional'
+    -> LocationMetadata
+locationMetadata pLmAddtional_ =
+    LocationMetadata'
+    { _lmAddtional = _Coerce # pLmAddtional_
+    }
+
+-- | Properties of the object. Contains field \'type with type URL.
+lmAddtional :: Lens' LocationMetadata (HashMap Text JSONValue)
+lmAddtional
+  = lens _lmAddtional (\ s a -> s{_lmAddtional = a}) .
+      _Coerce
+
+instance FromJSON LocationMetadata where
+        parseJSON
+          = withObject "LocationMetadata"
+              (\ o -> LocationMetadata' <$> (parseJSONObject o))
+
+instance ToJSON LocationMetadata where
+        toJSON = toJSON . _lmAddtional
+
+-- | The returned list of pipelines in the project.
+--
+-- /See:/ 'listTransferConfigsResponse' smart constructor.
+data ListTransferConfigsResponse = ListTransferConfigsResponse'
+    { _ltcrNextPageToken   :: !(Maybe Text)
+    , _ltcrTransferConfigs :: !(Maybe [TransferConfig])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListTransferConfigsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltcrNextPageToken'
+--
+-- * 'ltcrTransferConfigs'
+listTransferConfigsResponse
+    :: ListTransferConfigsResponse
+listTransferConfigsResponse =
+    ListTransferConfigsResponse'
+    { _ltcrNextPageToken = Nothing
+    , _ltcrTransferConfigs = Nothing
+    }
+
+-- | Output only. The next-pagination token. For multiple-page list results,
+-- this token can be used as the \`ListTransferConfigsRequest.page_token\`
+-- to request the next page of list results.
+ltcrNextPageToken :: Lens' ListTransferConfigsResponse (Maybe Text)
+ltcrNextPageToken
+  = lens _ltcrNextPageToken
+      (\ s a -> s{_ltcrNextPageToken = a})
+
+-- | Output only. The stored pipeline transfer configurations.
+ltcrTransferConfigs :: Lens' ListTransferConfigsResponse [TransferConfig]
+ltcrTransferConfigs
+  = lens _ltcrTransferConfigs
+      (\ s a -> s{_ltcrTransferConfigs = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListTransferConfigsResponse where
+        parseJSON
+          = withObject "ListTransferConfigsResponse"
+              (\ o ->
+                 ListTransferConfigsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "transferConfigs" .!= mempty))
+
+instance ToJSON ListTransferConfigsResponse where
+        toJSON ListTransferConfigsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _ltcrNextPageToken,
+                  ("transferConfigs" .=) <$> _ltcrTransferConfigs])
+
+-- | Represents a data transfer configuration. A transfer configuration
+-- contains all metadata needed to perform a data transfer. For example,
+-- \`destination_dataset_id\` specifies where data should be stored. When a
+-- new transfer configuration is created, the specified
+-- \`destination_dataset_id\` is created when needed and shared with the
+-- appropriate data source service account.
+--
+-- /See:/ 'transferConfig' smart constructor.
+data TransferConfig = TransferConfig'
+    { _tcState                 :: !(Maybe TransferConfigState)
+    , _tcSchedule              :: !(Maybe Text)
+    , _tcDisabled              :: !(Maybe Bool)
+    , _tcDataSourceId          :: !(Maybe Text)
+    , _tcParams                :: !(Maybe TransferConfigParams)
+    , _tcUserId                :: !(Maybe (Textual Int64))
+    , _tcUpdateTime            :: !(Maybe DateTime')
+    , _tcName                  :: !(Maybe Text)
+    , _tcDataSetRegion         :: !(Maybe Text)
+    , _tcDisplayName           :: !(Maybe Text)
+    , _tcNextRunTime           :: !(Maybe DateTime')
+    , _tcDestinationDataSetId  :: !(Maybe Text)
+    , _tcDataRefreshWindowDays :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TransferConfig' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tcState'
+--
+-- * 'tcSchedule'
+--
+-- * 'tcDisabled'
+--
+-- * 'tcDataSourceId'
+--
+-- * 'tcParams'
+--
+-- * 'tcUserId'
+--
+-- * 'tcUpdateTime'
+--
+-- * 'tcName'
+--
+-- * 'tcDataSetRegion'
+--
+-- * 'tcDisplayName'
+--
+-- * 'tcNextRunTime'
+--
+-- * 'tcDestinationDataSetId'
+--
+-- * 'tcDataRefreshWindowDays'
+transferConfig
+    :: TransferConfig
+transferConfig =
+    TransferConfig'
+    { _tcState = Nothing
+    , _tcSchedule = Nothing
+    , _tcDisabled = Nothing
+    , _tcDataSourceId = Nothing
+    , _tcParams = Nothing
+    , _tcUserId = Nothing
+    , _tcUpdateTime = Nothing
+    , _tcName = Nothing
+    , _tcDataSetRegion = Nothing
+    , _tcDisplayName = Nothing
+    , _tcNextRunTime = Nothing
+    , _tcDestinationDataSetId = Nothing
+    , _tcDataRefreshWindowDays = Nothing
+    }
+
+-- | Output only. State of the most recently updated transfer run.
+tcState :: Lens' TransferConfig (Maybe TransferConfigState)
+tcState = lens _tcState (\ s a -> s{_tcState = a})
+
+-- | Data transfer schedule. If the data source does not support a custom
+-- schedule, this should be empty. If it is empty, the default value for
+-- the data source will be used. The specified times are in UTC. Examples
+-- of valid format: \`1st,3rd monday of month 15:30\`, \`every wed,fri of
+-- jan,jun 13:15\`, and \`first sunday of quarter 00:00\`. See more
+-- explanation about the format here:
+-- https:\/\/cloud.google.com\/appengine\/docs\/flexible\/python\/scheduling-jobs-with-cron-yaml#the_schedule_format
+-- NOTE: the granularity should be at least 8 hours, or less frequent.
+tcSchedule :: Lens' TransferConfig (Maybe Text)
+tcSchedule
+  = lens _tcSchedule (\ s a -> s{_tcSchedule = a})
+
+-- | Is this config disabled. When set to true, no runs are scheduled for a
+-- given transfer.
+tcDisabled :: Lens' TransferConfig (Maybe Bool)
+tcDisabled
+  = lens _tcDisabled (\ s a -> s{_tcDisabled = a})
+
+-- | Data source id. Cannot be changed once data transfer is created.
+tcDataSourceId :: Lens' TransferConfig (Maybe Text)
+tcDataSourceId
+  = lens _tcDataSourceId
+      (\ s a -> s{_tcDataSourceId = a})
+
+-- | Data transfer specific parameters.
+tcParams :: Lens' TransferConfig (Maybe TransferConfigParams)
+tcParams = lens _tcParams (\ s a -> s{_tcParams = a})
+
+-- | Deprecated. Unique ID of the user on whose behalf transfer is done.
+tcUserId :: Lens' TransferConfig (Maybe Int64)
+tcUserId
+  = lens _tcUserId (\ s a -> s{_tcUserId = a}) .
+      mapping _Coerce
+
+-- | Output only. Data transfer modification time. Ignored by server on
+-- input.
+tcUpdateTime :: Lens' TransferConfig (Maybe UTCTime)
+tcUpdateTime
+  = lens _tcUpdateTime (\ s a -> s{_tcUpdateTime = a})
+      . mapping _DateTime
+
+-- | The resource name of the transfer config. Transfer config names have the
+-- form of
+-- \`projects\/{project_id}\/locations\/{region}\/transferConfigs\/{config_id}\`.
+-- The name is automatically generated based on the config_id specified in
+-- CreateTransferConfigRequest along with project_id and region. If
+-- config_id is not provided, usually a uuid, even though it is not
+-- guaranteed or required, will be generated for config_id.
+tcName :: Lens' TransferConfig (Maybe Text)
+tcName = lens _tcName (\ s a -> s{_tcName = a})
+
+-- | Output only. Region in which BigQuery dataset is located.
+tcDataSetRegion :: Lens' TransferConfig (Maybe Text)
+tcDataSetRegion
+  = lens _tcDataSetRegion
+      (\ s a -> s{_tcDataSetRegion = a})
+
+-- | User specified display name for the data transfer.
+tcDisplayName :: Lens' TransferConfig (Maybe Text)
+tcDisplayName
+  = lens _tcDisplayName
+      (\ s a -> s{_tcDisplayName = a})
+
+-- | Output only. Next time when data transfer will run.
+tcNextRunTime :: Lens' TransferConfig (Maybe UTCTime)
+tcNextRunTime
+  = lens _tcNextRunTime
+      (\ s a -> s{_tcNextRunTime = a})
+      . mapping _DateTime
+
+-- | The BigQuery target dataset id.
+tcDestinationDataSetId :: Lens' TransferConfig (Maybe Text)
+tcDestinationDataSetId
+  = lens _tcDestinationDataSetId
+      (\ s a -> s{_tcDestinationDataSetId = a})
+
+-- | The number of days to look back to automatically refresh the data. For
+-- example, if \`data_refresh_window_days = 10\`, then every day BigQuery
+-- reingests data for [today-10, today-1], rather than ingesting data for
+-- just [today-1]. Only valid if the data source supports the feature. Set
+-- the value to 0 to use the default value.
+tcDataRefreshWindowDays :: Lens' TransferConfig (Maybe Int32)
+tcDataRefreshWindowDays
+  = lens _tcDataRefreshWindowDays
+      (\ s a -> s{_tcDataRefreshWindowDays = a})
+      . mapping _Coerce
+
+instance FromJSON TransferConfig where
+        parseJSON
+          = withObject "TransferConfig"
+              (\ o ->
+                 TransferConfig' <$>
+                   (o .:? "state") <*> (o .:? "schedule") <*>
+                     (o .:? "disabled")
+                     <*> (o .:? "dataSourceId")
+                     <*> (o .:? "params")
+                     <*> (o .:? "userId")
+                     <*> (o .:? "updateTime")
+                     <*> (o .:? "name")
+                     <*> (o .:? "datasetRegion")
+                     <*> (o .:? "displayName")
+                     <*> (o .:? "nextRunTime")
+                     <*> (o .:? "destinationDatasetId")
+                     <*> (o .:? "dataRefreshWindowDays"))
+
+instance ToJSON TransferConfig where
+        toJSON TransferConfig'{..}
+          = object
+              (catMaybes
+                 [("state" .=) <$> _tcState,
+                  ("schedule" .=) <$> _tcSchedule,
+                  ("disabled" .=) <$> _tcDisabled,
+                  ("dataSourceId" .=) <$> _tcDataSourceId,
+                  ("params" .=) <$> _tcParams,
+                  ("userId" .=) <$> _tcUserId,
+                  ("updateTime" .=) <$> _tcUpdateTime,
+                  ("name" .=) <$> _tcName,
+                  ("datasetRegion" .=) <$> _tcDataSetRegion,
+                  ("displayName" .=) <$> _tcDisplayName,
+                  ("nextRunTime" .=) <$> _tcNextRunTime,
+                  ("destinationDatasetId" .=) <$>
+                    _tcDestinationDataSetId,
+                  ("dataRefreshWindowDays" .=) <$>
+                    _tcDataRefreshWindowDays])
diff --git a/gen/Network/Google/BigQueryDataTransfer/Types/Sum.hs b/gen/Network/Google/BigQueryDataTransfer/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/BigQueryDataTransfer/Types/Sum.hs
@@ -0,0 +1,354 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE LambdaCase         #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.BigQueryDataTransfer.Types.Sum
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.BigQueryDataTransfer.Types.Sum where
+
+import           Network.Google.Prelude hiding (Bytes)
+
+-- | Parameter type.
+data DataSourceParameterType
+    = TypeUnspecified
+      -- ^ @TYPE_UNSPECIFIED@
+      -- Type unspecified.
+    | String
+      -- ^ @STRING@
+      -- String parameter.
+    | Integer
+      -- ^ @INTEGER@
+      -- Integer parameter (64-bits). Will be serialized to json as string.
+    | Double
+      -- ^ @DOUBLE@
+      -- Double precision floating point parameter.
+    | Boolean
+      -- ^ @BOOLEAN@
+      -- Boolean parameter.
+    | Record
+      -- ^ @RECORD@
+      -- Deprecated. This field has no effect.
+    | PlusPage
+      -- ^ @PLUS_PAGE@
+      -- Page ID for a Google+ Page.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DataSourceParameterType
+
+instance FromHttpApiData DataSourceParameterType where
+    parseQueryParam = \case
+        "TYPE_UNSPECIFIED" -> Right TypeUnspecified
+        "STRING" -> Right String
+        "INTEGER" -> Right Integer
+        "DOUBLE" -> Right Double
+        "BOOLEAN" -> Right Boolean
+        "RECORD" -> Right Record
+        "PLUS_PAGE" -> Right PlusPage
+        x -> Left ("Unable to parse DataSourceParameterType from: " <> x)
+
+instance ToHttpApiData DataSourceParameterType where
+    toQueryParam = \case
+        TypeUnspecified -> "TYPE_UNSPECIFIED"
+        String -> "STRING"
+        Integer -> "INTEGER"
+        Double -> "DOUBLE"
+        Boolean -> "BOOLEAN"
+        Record -> "RECORD"
+        PlusPage -> "PLUS_PAGE"
+
+instance FromJSON DataSourceParameterType where
+    parseJSON = parseJSONText "DataSourceParameterType"
+
+instance ToJSON DataSourceParameterType where
+    toJSON = toJSONText
+
+-- | Data transfer run state. Ignored for input requests.
+data TransferRunState
+    = TransferStateUnspecified
+      -- ^ @TRANSFER_STATE_UNSPECIFIED@
+      -- State placeholder.
+    | Pending
+      -- ^ @PENDING@
+      -- Data transfer is scheduled and is waiting to be picked up by data
+      -- transfer backend.
+    | Running
+      -- ^ @RUNNING@
+      -- Data transfer is in progress.
+    | Succeeded
+      -- ^ @SUCCEEDED@
+      -- Data transfer completed successfully.
+    | Failed
+      -- ^ @FAILED@
+      -- Data transfer failed.
+    | Cancelled
+      -- ^ @CANCELLED@
+      -- Data transfer is cancelled.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable TransferRunState
+
+instance FromHttpApiData TransferRunState where
+    parseQueryParam = \case
+        "TRANSFER_STATE_UNSPECIFIED" -> Right TransferStateUnspecified
+        "PENDING" -> Right Pending
+        "RUNNING" -> Right Running
+        "SUCCEEDED" -> Right Succeeded
+        "FAILED" -> Right Failed
+        "CANCELLED" -> Right Cancelled
+        x -> Left ("Unable to parse TransferRunState from: " <> x)
+
+instance ToHttpApiData TransferRunState where
+    toQueryParam = \case
+        TransferStateUnspecified -> "TRANSFER_STATE_UNSPECIFIED"
+        Pending -> "PENDING"
+        Running -> "RUNNING"
+        Succeeded -> "SUCCEEDED"
+        Failed -> "FAILED"
+        Cancelled -> "CANCELLED"
+
+instance FromJSON TransferRunState where
+    parseJSON = parseJSONText "TransferRunState"
+
+instance ToJSON TransferRunState where
+    toJSON = toJSONText
+
+-- | Deprecated. This field has no effect.
+data DataSourceTransferType
+    = TransferTypeUnspecified
+      -- ^ @TRANSFER_TYPE_UNSPECIFIED@
+      -- Invalid or Unknown transfer type placeholder.
+    | Batch
+      -- ^ @BATCH@
+      -- Batch data transfer.
+    | Streaming
+      -- ^ @STREAMING@
+      -- Streaming data transfer. Streaming data source currently doesn\'t
+      -- support multiple transfer configs per project.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DataSourceTransferType
+
+instance FromHttpApiData DataSourceTransferType where
+    parseQueryParam = \case
+        "TRANSFER_TYPE_UNSPECIFIED" -> Right TransferTypeUnspecified
+        "BATCH" -> Right Batch
+        "STREAMING" -> Right Streaming
+        x -> Left ("Unable to parse DataSourceTransferType from: " <> x)
+
+instance ToHttpApiData DataSourceTransferType where
+    toQueryParam = \case
+        TransferTypeUnspecified -> "TRANSFER_TYPE_UNSPECIFIED"
+        Batch -> "BATCH"
+        Streaming -> "STREAMING"
+
+instance FromJSON DataSourceTransferType where
+    parseJSON = parseJSONText "DataSourceTransferType"
+
+instance ToJSON DataSourceTransferType where
+    toJSON = toJSONText
+
+-- | Indicates the type of authorization.
+data DataSourceAuthorizationType
+    = AuthorizationTypeUnspecified
+      -- ^ @AUTHORIZATION_TYPE_UNSPECIFIED@
+      -- Type unspecified.
+    | AuthorizationCode
+      -- ^ @AUTHORIZATION_CODE@
+      -- Use OAuth 2 authorization codes that can be exchanged for a refresh
+      -- token on the backend.
+    | GooglePlusAuthorizationCode
+      -- ^ @GOOGLE_PLUS_AUTHORIZATION_CODE@
+      -- Return an authorization code for a given Google+ page that can then be
+      -- exchanged for a refresh token on the backend.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DataSourceAuthorizationType
+
+instance FromHttpApiData DataSourceAuthorizationType where
+    parseQueryParam = \case
+        "AUTHORIZATION_TYPE_UNSPECIFIED" -> Right AuthorizationTypeUnspecified
+        "AUTHORIZATION_CODE" -> Right AuthorizationCode
+        "GOOGLE_PLUS_AUTHORIZATION_CODE" -> Right GooglePlusAuthorizationCode
+        x -> Left ("Unable to parse DataSourceAuthorizationType from: " <> x)
+
+instance ToHttpApiData DataSourceAuthorizationType where
+    toQueryParam = \case
+        AuthorizationTypeUnspecified -> "AUTHORIZATION_TYPE_UNSPECIFIED"
+        AuthorizationCode -> "AUTHORIZATION_CODE"
+        GooglePlusAuthorizationCode -> "GOOGLE_PLUS_AUTHORIZATION_CODE"
+
+instance FromJSON DataSourceAuthorizationType where
+    parseJSON = parseJSONText "DataSourceAuthorizationType"
+
+instance ToJSON DataSourceAuthorizationType where
+    toJSON = toJSONText
+
+-- | V1 error format.
+data Xgafv
+    = X1
+      -- ^ @1@
+      -- v1 error format
+    | X2
+      -- ^ @2@
+      -- v2 error format
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable Xgafv
+
+instance FromHttpApiData Xgafv where
+    parseQueryParam = \case
+        "1" -> Right X1
+        "2" -> Right X2
+        x -> Left ("Unable to parse Xgafv from: " <> x)
+
+instance ToHttpApiData Xgafv where
+    toQueryParam = \case
+        X1 -> "1"
+        X2 -> "2"
+
+instance FromJSON Xgafv where
+    parseJSON = parseJSONText "Xgafv"
+
+instance ToJSON Xgafv where
+    toJSON = toJSONText
+
+-- | Specifies whether the data source supports automatic data refresh for
+-- the past few days, and how it\'s supported. For some data sources, data
+-- might not be complete until a few days later, so it\'s useful to refresh
+-- data automatically.
+data DataSourceDataRefreshType
+    = DataRefreshTypeUnspecified
+      -- ^ @DATA_REFRESH_TYPE_UNSPECIFIED@
+      -- The data source won\'t support data auto refresh, which is default
+      -- value.
+    | SlidingWindow
+      -- ^ @SLIDING_WINDOW@
+      -- The data source supports data auto refresh, and runs will be scheduled
+      -- for the past few days. Does not allow custom values to be set for each
+      -- transfer config.
+    | CustomSlidingWindow
+      -- ^ @CUSTOM_SLIDING_WINDOW@
+      -- The data source supports data auto refresh, and runs will be scheduled
+      -- for the past few days. Allows custom values to be set for each transfer
+      -- config.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DataSourceDataRefreshType
+
+instance FromHttpApiData DataSourceDataRefreshType where
+    parseQueryParam = \case
+        "DATA_REFRESH_TYPE_UNSPECIFIED" -> Right DataRefreshTypeUnspecified
+        "SLIDING_WINDOW" -> Right SlidingWindow
+        "CUSTOM_SLIDING_WINDOW" -> Right CustomSlidingWindow
+        x -> Left ("Unable to parse DataSourceDataRefreshType from: " <> x)
+
+instance ToHttpApiData DataSourceDataRefreshType where
+    toQueryParam = \case
+        DataRefreshTypeUnspecified -> "DATA_REFRESH_TYPE_UNSPECIFIED"
+        SlidingWindow -> "SLIDING_WINDOW"
+        CustomSlidingWindow -> "CUSTOM_SLIDING_WINDOW"
+
+instance FromJSON DataSourceDataRefreshType where
+    parseJSON = parseJSONText "DataSourceDataRefreshType"
+
+instance ToJSON DataSourceDataRefreshType where
+    toJSON = toJSONText
+
+-- | Message severity.
+data TransferMessageSeverity
+    = MessageSeverityUnspecified
+      -- ^ @MESSAGE_SEVERITY_UNSPECIFIED@
+      -- No severity specified.
+    | Info
+      -- ^ @INFO@
+      -- Informational message.
+    | Warning
+      -- ^ @WARNING@
+      -- Warning message.
+    | Error'
+      -- ^ @ERROR@
+      -- Error message.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable TransferMessageSeverity
+
+instance FromHttpApiData TransferMessageSeverity where
+    parseQueryParam = \case
+        "MESSAGE_SEVERITY_UNSPECIFIED" -> Right MessageSeverityUnspecified
+        "INFO" -> Right Info
+        "WARNING" -> Right Warning
+        "ERROR" -> Right Error'
+        x -> Left ("Unable to parse TransferMessageSeverity from: " <> x)
+
+instance ToHttpApiData TransferMessageSeverity where
+    toQueryParam = \case
+        MessageSeverityUnspecified -> "MESSAGE_SEVERITY_UNSPECIFIED"
+        Info -> "INFO"
+        Warning -> "WARNING"
+        Error' -> "ERROR"
+
+instance FromJSON TransferMessageSeverity where
+    parseJSON = parseJSONText "TransferMessageSeverity"
+
+instance ToJSON TransferMessageSeverity where
+    toJSON = toJSONText
+
+-- | Output only. State of the most recently updated transfer run.
+data TransferConfigState
+    = TCSTransferStateUnspecified
+      -- ^ @TRANSFER_STATE_UNSPECIFIED@
+      -- State placeholder.
+    | TCSPending
+      -- ^ @PENDING@
+      -- Data transfer is scheduled and is waiting to be picked up by data
+      -- transfer backend.
+    | TCSRunning
+      -- ^ @RUNNING@
+      -- Data transfer is in progress.
+    | TCSSucceeded
+      -- ^ @SUCCEEDED@
+      -- Data transfer completed successfully.
+    | TCSFailed
+      -- ^ @FAILED@
+      -- Data transfer failed.
+    | TCSCancelled
+      -- ^ @CANCELLED@
+      -- Data transfer is cancelled.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable TransferConfigState
+
+instance FromHttpApiData TransferConfigState where
+    parseQueryParam = \case
+        "TRANSFER_STATE_UNSPECIFIED" -> Right TCSTransferStateUnspecified
+        "PENDING" -> Right TCSPending
+        "RUNNING" -> Right TCSRunning
+        "SUCCEEDED" -> Right TCSSucceeded
+        "FAILED" -> Right TCSFailed
+        "CANCELLED" -> Right TCSCancelled
+        x -> Left ("Unable to parse TransferConfigState from: " <> x)
+
+instance ToHttpApiData TransferConfigState where
+    toQueryParam = \case
+        TCSTransferStateUnspecified -> "TRANSFER_STATE_UNSPECIFIED"
+        TCSPending -> "PENDING"
+        TCSRunning -> "RUNNING"
+        TCSSucceeded -> "SUCCEEDED"
+        TCSFailed -> "FAILED"
+        TCSCancelled -> "CANCELLED"
+
+instance FromJSON TransferConfigState where
+    parseJSON = parseJSONText "TransferConfigState"
+
+instance ToJSON TransferConfigState where
+    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/DataSources/CheckValidCreds.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/DataSources/CheckValidCreds.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/DataSources/CheckValidCreds.hs
@@ -0,0 +1,176 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.CheckValidCreds
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns true if valid credentials exist for the given data source and
+-- requesting user. Some data sources doesn\'t support service account, so
+-- we need to talk to them on behalf of the end user. This API just checks
+-- whether we have OAuth token for the particular user, which is a
+-- pre-requisite before user can create a transfer config.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.dataSources.checkValidCreds@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.CheckValidCreds
+    (
+    -- * REST Resource
+      ProjectsDataSourcesCheckValidCredsResource
+
+    -- * Creating a Request
+    , projectsDataSourcesCheckValidCreds
+    , ProjectsDataSourcesCheckValidCreds
+
+    -- * Request Lenses
+    , pdscvcXgafv
+    , pdscvcUploadProtocol
+    , pdscvcAccessToken
+    , pdscvcUploadType
+    , pdscvcPayload
+    , pdscvcName
+    , pdscvcCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.dataSources.checkValidCreds@ method which the
+-- 'ProjectsDataSourcesCheckValidCreds' request conforms to.
+type ProjectsDataSourcesCheckValidCredsResource =
+     "v1" :>
+       CaptureMode "name" "checkValidCreds" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] CheckValidCredsRequest :>
+                       Post '[JSON] CheckValidCredsResponse
+
+-- | Returns true if valid credentials exist for the given data source and
+-- requesting user. Some data sources doesn\'t support service account, so
+-- we need to talk to them on behalf of the end user. This API just checks
+-- whether we have OAuth token for the particular user, which is a
+-- pre-requisite before user can create a transfer config.
+--
+-- /See:/ 'projectsDataSourcesCheckValidCreds' smart constructor.
+data ProjectsDataSourcesCheckValidCreds = ProjectsDataSourcesCheckValidCreds'
+    { _pdscvcXgafv          :: !(Maybe Xgafv)
+    , _pdscvcUploadProtocol :: !(Maybe Text)
+    , _pdscvcAccessToken    :: !(Maybe Text)
+    , _pdscvcUploadType     :: !(Maybe Text)
+    , _pdscvcPayload        :: !CheckValidCredsRequest
+    , _pdscvcName           :: !Text
+    , _pdscvcCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsDataSourcesCheckValidCreds' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pdscvcXgafv'
+--
+-- * 'pdscvcUploadProtocol'
+--
+-- * 'pdscvcAccessToken'
+--
+-- * 'pdscvcUploadType'
+--
+-- * 'pdscvcPayload'
+--
+-- * 'pdscvcName'
+--
+-- * 'pdscvcCallback'
+projectsDataSourcesCheckValidCreds
+    :: CheckValidCredsRequest -- ^ 'pdscvcPayload'
+    -> Text -- ^ 'pdscvcName'
+    -> ProjectsDataSourcesCheckValidCreds
+projectsDataSourcesCheckValidCreds pPdscvcPayload_ pPdscvcName_ =
+    ProjectsDataSourcesCheckValidCreds'
+    { _pdscvcXgafv = Nothing
+    , _pdscvcUploadProtocol = Nothing
+    , _pdscvcAccessToken = Nothing
+    , _pdscvcUploadType = Nothing
+    , _pdscvcPayload = pPdscvcPayload_
+    , _pdscvcName = pPdscvcName_
+    , _pdscvcCallback = Nothing
+    }
+
+-- | V1 error format.
+pdscvcXgafv :: Lens' ProjectsDataSourcesCheckValidCreds (Maybe Xgafv)
+pdscvcXgafv
+  = lens _pdscvcXgafv (\ s a -> s{_pdscvcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pdscvcUploadProtocol :: Lens' ProjectsDataSourcesCheckValidCreds (Maybe Text)
+pdscvcUploadProtocol
+  = lens _pdscvcUploadProtocol
+      (\ s a -> s{_pdscvcUploadProtocol = a})
+
+-- | OAuth access token.
+pdscvcAccessToken :: Lens' ProjectsDataSourcesCheckValidCreds (Maybe Text)
+pdscvcAccessToken
+  = lens _pdscvcAccessToken
+      (\ s a -> s{_pdscvcAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pdscvcUploadType :: Lens' ProjectsDataSourcesCheckValidCreds (Maybe Text)
+pdscvcUploadType
+  = lens _pdscvcUploadType
+      (\ s a -> s{_pdscvcUploadType = a})
+
+-- | Multipart request metadata.
+pdscvcPayload :: Lens' ProjectsDataSourcesCheckValidCreds CheckValidCredsRequest
+pdscvcPayload
+  = lens _pdscvcPayload
+      (\ s a -> s{_pdscvcPayload = a})
+
+-- | The data source in the form:
+-- \`projects\/{project_id}\/dataSources\/{data_source_id}\`
+pdscvcName :: Lens' ProjectsDataSourcesCheckValidCreds Text
+pdscvcName
+  = lens _pdscvcName (\ s a -> s{_pdscvcName = a})
+
+-- | JSONP
+pdscvcCallback :: Lens' ProjectsDataSourcesCheckValidCreds (Maybe Text)
+pdscvcCallback
+  = lens _pdscvcCallback
+      (\ s a -> s{_pdscvcCallback = a})
+
+instance GoogleRequest
+         ProjectsDataSourcesCheckValidCreds where
+        type Rs ProjectsDataSourcesCheckValidCreds =
+             CheckValidCredsResponse
+        type Scopes ProjectsDataSourcesCheckValidCreds =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsDataSourcesCheckValidCreds'{..}
+          = go _pdscvcName _pdscvcXgafv _pdscvcUploadProtocol
+              _pdscvcAccessToken
+              _pdscvcUploadType
+              _pdscvcCallback
+              (Just AltJSON)
+              _pdscvcPayload
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsDataSourcesCheckValidCredsResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/DataSources/Get.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/DataSources/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/DataSources/Get.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a supported data source and returns its settings, which can be
+-- used for UI rendering.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.dataSources.get@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.Get
+    (
+    -- * REST Resource
+      ProjectsDataSourcesGetResource
+
+    -- * Creating a Request
+    , projectsDataSourcesGet
+    , ProjectsDataSourcesGet
+
+    -- * Request Lenses
+    , pdsgXgafv
+    , pdsgUploadProtocol
+    , pdsgAccessToken
+    , pdsgUploadType
+    , pdsgName
+    , pdsgCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.dataSources.get@ method which the
+-- 'ProjectsDataSourcesGet' request conforms to.
+type ProjectsDataSourcesGetResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] DataSource
+
+-- | Retrieves a supported data source and returns its settings, which can be
+-- used for UI rendering.
+--
+-- /See:/ 'projectsDataSourcesGet' smart constructor.
+data ProjectsDataSourcesGet = ProjectsDataSourcesGet'
+    { _pdsgXgafv          :: !(Maybe Xgafv)
+    , _pdsgUploadProtocol :: !(Maybe Text)
+    , _pdsgAccessToken    :: !(Maybe Text)
+    , _pdsgUploadType     :: !(Maybe Text)
+    , _pdsgName           :: !Text
+    , _pdsgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsDataSourcesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pdsgXgafv'
+--
+-- * 'pdsgUploadProtocol'
+--
+-- * 'pdsgAccessToken'
+--
+-- * 'pdsgUploadType'
+--
+-- * 'pdsgName'
+--
+-- * 'pdsgCallback'
+projectsDataSourcesGet
+    :: Text -- ^ 'pdsgName'
+    -> ProjectsDataSourcesGet
+projectsDataSourcesGet pPdsgName_ =
+    ProjectsDataSourcesGet'
+    { _pdsgXgafv = Nothing
+    , _pdsgUploadProtocol = Nothing
+    , _pdsgAccessToken = Nothing
+    , _pdsgUploadType = Nothing
+    , _pdsgName = pPdsgName_
+    , _pdsgCallback = Nothing
+    }
+
+-- | V1 error format.
+pdsgXgafv :: Lens' ProjectsDataSourcesGet (Maybe Xgafv)
+pdsgXgafv
+  = lens _pdsgXgafv (\ s a -> s{_pdsgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pdsgUploadProtocol :: Lens' ProjectsDataSourcesGet (Maybe Text)
+pdsgUploadProtocol
+  = lens _pdsgUploadProtocol
+      (\ s a -> s{_pdsgUploadProtocol = a})
+
+-- | OAuth access token.
+pdsgAccessToken :: Lens' ProjectsDataSourcesGet (Maybe Text)
+pdsgAccessToken
+  = lens _pdsgAccessToken
+      (\ s a -> s{_pdsgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pdsgUploadType :: Lens' ProjectsDataSourcesGet (Maybe Text)
+pdsgUploadType
+  = lens _pdsgUploadType
+      (\ s a -> s{_pdsgUploadType = a})
+
+-- | The field will contain name of the resource requested, for example:
+-- \`projects\/{project_id}\/dataSources\/{data_source_id}\`
+pdsgName :: Lens' ProjectsDataSourcesGet Text
+pdsgName = lens _pdsgName (\ s a -> s{_pdsgName = a})
+
+-- | JSONP
+pdsgCallback :: Lens' ProjectsDataSourcesGet (Maybe Text)
+pdsgCallback
+  = lens _pdsgCallback (\ s a -> s{_pdsgCallback = a})
+
+instance GoogleRequest ProjectsDataSourcesGet where
+        type Rs ProjectsDataSourcesGet = DataSource
+        type Scopes ProjectsDataSourcesGet =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsDataSourcesGet'{..}
+          = go _pdsgName _pdsgXgafv _pdsgUploadProtocol
+              _pdsgAccessToken
+              _pdsgUploadType
+              _pdsgCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsDataSourcesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/DataSources/List.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/DataSources/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/DataSources/List.hs
@@ -0,0 +1,184 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists supported data sources and returns their settings, which can be
+-- used for UI rendering.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.dataSources.list@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.List
+    (
+    -- * REST Resource
+      ProjectsDataSourcesListResource
+
+    -- * Creating a Request
+    , projectsDataSourcesList
+    , ProjectsDataSourcesList
+
+    -- * Request Lenses
+    , pdslParent
+    , pdslXgafv
+    , pdslUploadProtocol
+    , pdslAccessToken
+    , pdslUploadType
+    , pdslPageToken
+    , pdslPageSize
+    , pdslCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.dataSources.list@ method which the
+-- 'ProjectsDataSourcesList' request conforms to.
+type ProjectsDataSourcesListResource =
+     "v1" :>
+       Capture "parent" Text :>
+         "dataSources" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListDataSourcesResponse
+
+-- | Lists supported data sources and returns their settings, which can be
+-- used for UI rendering.
+--
+-- /See:/ 'projectsDataSourcesList' smart constructor.
+data ProjectsDataSourcesList = ProjectsDataSourcesList'
+    { _pdslParent         :: !Text
+    , _pdslXgafv          :: !(Maybe Xgafv)
+    , _pdslUploadProtocol :: !(Maybe Text)
+    , _pdslAccessToken    :: !(Maybe Text)
+    , _pdslUploadType     :: !(Maybe Text)
+    , _pdslPageToken      :: !(Maybe Text)
+    , _pdslPageSize       :: !(Maybe (Textual Int32))
+    , _pdslCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsDataSourcesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pdslParent'
+--
+-- * 'pdslXgafv'
+--
+-- * 'pdslUploadProtocol'
+--
+-- * 'pdslAccessToken'
+--
+-- * 'pdslUploadType'
+--
+-- * 'pdslPageToken'
+--
+-- * 'pdslPageSize'
+--
+-- * 'pdslCallback'
+projectsDataSourcesList
+    :: Text -- ^ 'pdslParent'
+    -> ProjectsDataSourcesList
+projectsDataSourcesList pPdslParent_ =
+    ProjectsDataSourcesList'
+    { _pdslParent = pPdslParent_
+    , _pdslXgafv = Nothing
+    , _pdslUploadProtocol = Nothing
+    , _pdslAccessToken = Nothing
+    , _pdslUploadType = Nothing
+    , _pdslPageToken = Nothing
+    , _pdslPageSize = Nothing
+    , _pdslCallback = Nothing
+    }
+
+-- | The BigQuery project id for which data sources should be returned. Must
+-- be in the form: \`projects\/{project_id}\`
+pdslParent :: Lens' ProjectsDataSourcesList Text
+pdslParent
+  = lens _pdslParent (\ s a -> s{_pdslParent = a})
+
+-- | V1 error format.
+pdslXgafv :: Lens' ProjectsDataSourcesList (Maybe Xgafv)
+pdslXgafv
+  = lens _pdslXgafv (\ s a -> s{_pdslXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pdslUploadProtocol :: Lens' ProjectsDataSourcesList (Maybe Text)
+pdslUploadProtocol
+  = lens _pdslUploadProtocol
+      (\ s a -> s{_pdslUploadProtocol = a})
+
+-- | OAuth access token.
+pdslAccessToken :: Lens' ProjectsDataSourcesList (Maybe Text)
+pdslAccessToken
+  = lens _pdslAccessToken
+      (\ s a -> s{_pdslAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pdslUploadType :: Lens' ProjectsDataSourcesList (Maybe Text)
+pdslUploadType
+  = lens _pdslUploadType
+      (\ s a -> s{_pdslUploadType = a})
+
+-- | Pagination token, which can be used to request a specific page of
+-- \`ListDataSourcesRequest\` list results. For multiple-page results,
+-- \`ListDataSourcesResponse\` outputs a \`next_page\` token, which can be
+-- used as the \`page_token\` value to request the next page of list
+-- results.
+pdslPageToken :: Lens' ProjectsDataSourcesList (Maybe Text)
+pdslPageToken
+  = lens _pdslPageToken
+      (\ s a -> s{_pdslPageToken = a})
+
+-- | Page size. The default page size is the maximum value of 1000 results.
+pdslPageSize :: Lens' ProjectsDataSourcesList (Maybe Int32)
+pdslPageSize
+  = lens _pdslPageSize (\ s a -> s{_pdslPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+pdslCallback :: Lens' ProjectsDataSourcesList (Maybe Text)
+pdslCallback
+  = lens _pdslCallback (\ s a -> s{_pdslCallback = a})
+
+instance GoogleRequest ProjectsDataSourcesList where
+        type Rs ProjectsDataSourcesList =
+             ListDataSourcesResponse
+        type Scopes ProjectsDataSourcesList =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsDataSourcesList'{..}
+          = go _pdslParent _pdslXgafv _pdslUploadProtocol
+              _pdslAccessToken
+              _pdslUploadType
+              _pdslPageToken
+              _pdslPageSize
+              _pdslCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsDataSourcesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/DataSources/CheckValidCreds.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/DataSources/CheckValidCreds.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/DataSources/CheckValidCreds.hs
@@ -0,0 +1,182 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.CheckValidCreds
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns true if valid credentials exist for the given data source and
+-- requesting user. Some data sources doesn\'t support service account, so
+-- we need to talk to them on behalf of the end user. This API just checks
+-- whether we have OAuth token for the particular user, which is a
+-- pre-requisite before user can create a transfer config.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.dataSources.checkValidCreds@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.CheckValidCreds
+    (
+    -- * REST Resource
+      ProjectsLocationsDataSourcesCheckValidCredsResource
+
+    -- * Creating a Request
+    , projectsLocationsDataSourcesCheckValidCreds
+    , ProjectsLocationsDataSourcesCheckValidCreds
+
+    -- * Request Lenses
+    , pldscvcXgafv
+    , pldscvcUploadProtocol
+    , pldscvcAccessToken
+    , pldscvcUploadType
+    , pldscvcPayload
+    , pldscvcName
+    , pldscvcCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.dataSources.checkValidCreds@ method which the
+-- 'ProjectsLocationsDataSourcesCheckValidCreds' request conforms to.
+type ProjectsLocationsDataSourcesCheckValidCredsResource
+     =
+     "v1" :>
+       CaptureMode "name" "checkValidCreds" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] CheckValidCredsRequest :>
+                       Post '[JSON] CheckValidCredsResponse
+
+-- | Returns true if valid credentials exist for the given data source and
+-- requesting user. Some data sources doesn\'t support service account, so
+-- we need to talk to them on behalf of the end user. This API just checks
+-- whether we have OAuth token for the particular user, which is a
+-- pre-requisite before user can create a transfer config.
+--
+-- /See:/ 'projectsLocationsDataSourcesCheckValidCreds' smart constructor.
+data ProjectsLocationsDataSourcesCheckValidCreds = ProjectsLocationsDataSourcesCheckValidCreds'
+    { _pldscvcXgafv          :: !(Maybe Xgafv)
+    , _pldscvcUploadProtocol :: !(Maybe Text)
+    , _pldscvcAccessToken    :: !(Maybe Text)
+    , _pldscvcUploadType     :: !(Maybe Text)
+    , _pldscvcPayload        :: !CheckValidCredsRequest
+    , _pldscvcName           :: !Text
+    , _pldscvcCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsDataSourcesCheckValidCreds' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pldscvcXgafv'
+--
+-- * 'pldscvcUploadProtocol'
+--
+-- * 'pldscvcAccessToken'
+--
+-- * 'pldscvcUploadType'
+--
+-- * 'pldscvcPayload'
+--
+-- * 'pldscvcName'
+--
+-- * 'pldscvcCallback'
+projectsLocationsDataSourcesCheckValidCreds
+    :: CheckValidCredsRequest -- ^ 'pldscvcPayload'
+    -> Text -- ^ 'pldscvcName'
+    -> ProjectsLocationsDataSourcesCheckValidCreds
+projectsLocationsDataSourcesCheckValidCreds pPldscvcPayload_ pPldscvcName_ =
+    ProjectsLocationsDataSourcesCheckValidCreds'
+    { _pldscvcXgafv = Nothing
+    , _pldscvcUploadProtocol = Nothing
+    , _pldscvcAccessToken = Nothing
+    , _pldscvcUploadType = Nothing
+    , _pldscvcPayload = pPldscvcPayload_
+    , _pldscvcName = pPldscvcName_
+    , _pldscvcCallback = Nothing
+    }
+
+-- | V1 error format.
+pldscvcXgafv :: Lens' ProjectsLocationsDataSourcesCheckValidCreds (Maybe Xgafv)
+pldscvcXgafv
+  = lens _pldscvcXgafv (\ s a -> s{_pldscvcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pldscvcUploadProtocol :: Lens' ProjectsLocationsDataSourcesCheckValidCreds (Maybe Text)
+pldscvcUploadProtocol
+  = lens _pldscvcUploadProtocol
+      (\ s a -> s{_pldscvcUploadProtocol = a})
+
+-- | OAuth access token.
+pldscvcAccessToken :: Lens' ProjectsLocationsDataSourcesCheckValidCreds (Maybe Text)
+pldscvcAccessToken
+  = lens _pldscvcAccessToken
+      (\ s a -> s{_pldscvcAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pldscvcUploadType :: Lens' ProjectsLocationsDataSourcesCheckValidCreds (Maybe Text)
+pldscvcUploadType
+  = lens _pldscvcUploadType
+      (\ s a -> s{_pldscvcUploadType = a})
+
+-- | Multipart request metadata.
+pldscvcPayload :: Lens' ProjectsLocationsDataSourcesCheckValidCreds CheckValidCredsRequest
+pldscvcPayload
+  = lens _pldscvcPayload
+      (\ s a -> s{_pldscvcPayload = a})
+
+-- | The data source in the form:
+-- \`projects\/{project_id}\/dataSources\/{data_source_id}\`
+pldscvcName :: Lens' ProjectsLocationsDataSourcesCheckValidCreds Text
+pldscvcName
+  = lens _pldscvcName (\ s a -> s{_pldscvcName = a})
+
+-- | JSONP
+pldscvcCallback :: Lens' ProjectsLocationsDataSourcesCheckValidCreds (Maybe Text)
+pldscvcCallback
+  = lens _pldscvcCallback
+      (\ s a -> s{_pldscvcCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsDataSourcesCheckValidCreds where
+        type Rs ProjectsLocationsDataSourcesCheckValidCreds =
+             CheckValidCredsResponse
+        type Scopes
+               ProjectsLocationsDataSourcesCheckValidCreds
+             =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient
+          ProjectsLocationsDataSourcesCheckValidCreds'{..}
+          = go _pldscvcName _pldscvcXgafv
+              _pldscvcUploadProtocol
+              _pldscvcAccessToken
+              _pldscvcUploadType
+              _pldscvcCallback
+              (Just AltJSON)
+              _pldscvcPayload
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           ProjectsLocationsDataSourcesCheckValidCredsResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/DataSources/Get.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/DataSources/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/DataSources/Get.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a supported data source and returns its settings, which can be
+-- used for UI rendering.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.dataSources.get@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.Get
+    (
+    -- * REST Resource
+      ProjectsLocationsDataSourcesGetResource
+
+    -- * Creating a Request
+    , projectsLocationsDataSourcesGet
+    , ProjectsLocationsDataSourcesGet
+
+    -- * Request Lenses
+    , pldsgXgafv
+    , pldsgUploadProtocol
+    , pldsgAccessToken
+    , pldsgUploadType
+    , pldsgName
+    , pldsgCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.dataSources.get@ method which the
+-- 'ProjectsLocationsDataSourcesGet' request conforms to.
+type ProjectsLocationsDataSourcesGetResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] DataSource
+
+-- | Retrieves a supported data source and returns its settings, which can be
+-- used for UI rendering.
+--
+-- /See:/ 'projectsLocationsDataSourcesGet' smart constructor.
+data ProjectsLocationsDataSourcesGet = ProjectsLocationsDataSourcesGet'
+    { _pldsgXgafv          :: !(Maybe Xgafv)
+    , _pldsgUploadProtocol :: !(Maybe Text)
+    , _pldsgAccessToken    :: !(Maybe Text)
+    , _pldsgUploadType     :: !(Maybe Text)
+    , _pldsgName           :: !Text
+    , _pldsgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsDataSourcesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pldsgXgafv'
+--
+-- * 'pldsgUploadProtocol'
+--
+-- * 'pldsgAccessToken'
+--
+-- * 'pldsgUploadType'
+--
+-- * 'pldsgName'
+--
+-- * 'pldsgCallback'
+projectsLocationsDataSourcesGet
+    :: Text -- ^ 'pldsgName'
+    -> ProjectsLocationsDataSourcesGet
+projectsLocationsDataSourcesGet pPldsgName_ =
+    ProjectsLocationsDataSourcesGet'
+    { _pldsgXgafv = Nothing
+    , _pldsgUploadProtocol = Nothing
+    , _pldsgAccessToken = Nothing
+    , _pldsgUploadType = Nothing
+    , _pldsgName = pPldsgName_
+    , _pldsgCallback = Nothing
+    }
+
+-- | V1 error format.
+pldsgXgafv :: Lens' ProjectsLocationsDataSourcesGet (Maybe Xgafv)
+pldsgXgafv
+  = lens _pldsgXgafv (\ s a -> s{_pldsgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pldsgUploadProtocol :: Lens' ProjectsLocationsDataSourcesGet (Maybe Text)
+pldsgUploadProtocol
+  = lens _pldsgUploadProtocol
+      (\ s a -> s{_pldsgUploadProtocol = a})
+
+-- | OAuth access token.
+pldsgAccessToken :: Lens' ProjectsLocationsDataSourcesGet (Maybe Text)
+pldsgAccessToken
+  = lens _pldsgAccessToken
+      (\ s a -> s{_pldsgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pldsgUploadType :: Lens' ProjectsLocationsDataSourcesGet (Maybe Text)
+pldsgUploadType
+  = lens _pldsgUploadType
+      (\ s a -> s{_pldsgUploadType = a})
+
+-- | The field will contain name of the resource requested, for example:
+-- \`projects\/{project_id}\/dataSources\/{data_source_id}\`
+pldsgName :: Lens' ProjectsLocationsDataSourcesGet Text
+pldsgName
+  = lens _pldsgName (\ s a -> s{_pldsgName = a})
+
+-- | JSONP
+pldsgCallback :: Lens' ProjectsLocationsDataSourcesGet (Maybe Text)
+pldsgCallback
+  = lens _pldsgCallback
+      (\ s a -> s{_pldsgCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsDataSourcesGet where
+        type Rs ProjectsLocationsDataSourcesGet = DataSource
+        type Scopes ProjectsLocationsDataSourcesGet =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsLocationsDataSourcesGet'{..}
+          = go _pldsgName _pldsgXgafv _pldsgUploadProtocol
+              _pldsgAccessToken
+              _pldsgUploadType
+              _pldsgCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsDataSourcesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/DataSources/List.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/DataSources/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/DataSources/List.hs
@@ -0,0 +1,188 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists supported data sources and returns their settings, which can be
+-- used for UI rendering.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.dataSources.list@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.List
+    (
+    -- * REST Resource
+      ProjectsLocationsDataSourcesListResource
+
+    -- * Creating a Request
+    , projectsLocationsDataSourcesList
+    , ProjectsLocationsDataSourcesList
+
+    -- * Request Lenses
+    , pldslParent
+    , pldslXgafv
+    , pldslUploadProtocol
+    , pldslAccessToken
+    , pldslUploadType
+    , pldslPageToken
+    , pldslPageSize
+    , pldslCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.dataSources.list@ method which the
+-- 'ProjectsLocationsDataSourcesList' request conforms to.
+type ProjectsLocationsDataSourcesListResource =
+     "v1" :>
+       Capture "parent" Text :>
+         "dataSources" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListDataSourcesResponse
+
+-- | Lists supported data sources and returns their settings, which can be
+-- used for UI rendering.
+--
+-- /See:/ 'projectsLocationsDataSourcesList' smart constructor.
+data ProjectsLocationsDataSourcesList = ProjectsLocationsDataSourcesList'
+    { _pldslParent         :: !Text
+    , _pldslXgafv          :: !(Maybe Xgafv)
+    , _pldslUploadProtocol :: !(Maybe Text)
+    , _pldslAccessToken    :: !(Maybe Text)
+    , _pldslUploadType     :: !(Maybe Text)
+    , _pldslPageToken      :: !(Maybe Text)
+    , _pldslPageSize       :: !(Maybe (Textual Int32))
+    , _pldslCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsDataSourcesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pldslParent'
+--
+-- * 'pldslXgafv'
+--
+-- * 'pldslUploadProtocol'
+--
+-- * 'pldslAccessToken'
+--
+-- * 'pldslUploadType'
+--
+-- * 'pldslPageToken'
+--
+-- * 'pldslPageSize'
+--
+-- * 'pldslCallback'
+projectsLocationsDataSourcesList
+    :: Text -- ^ 'pldslParent'
+    -> ProjectsLocationsDataSourcesList
+projectsLocationsDataSourcesList pPldslParent_ =
+    ProjectsLocationsDataSourcesList'
+    { _pldslParent = pPldslParent_
+    , _pldslXgafv = Nothing
+    , _pldslUploadProtocol = Nothing
+    , _pldslAccessToken = Nothing
+    , _pldslUploadType = Nothing
+    , _pldslPageToken = Nothing
+    , _pldslPageSize = Nothing
+    , _pldslCallback = Nothing
+    }
+
+-- | The BigQuery project id for which data sources should be returned. Must
+-- be in the form: \`projects\/{project_id}\`
+pldslParent :: Lens' ProjectsLocationsDataSourcesList Text
+pldslParent
+  = lens _pldslParent (\ s a -> s{_pldslParent = a})
+
+-- | V1 error format.
+pldslXgafv :: Lens' ProjectsLocationsDataSourcesList (Maybe Xgafv)
+pldslXgafv
+  = lens _pldslXgafv (\ s a -> s{_pldslXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pldslUploadProtocol :: Lens' ProjectsLocationsDataSourcesList (Maybe Text)
+pldslUploadProtocol
+  = lens _pldslUploadProtocol
+      (\ s a -> s{_pldslUploadProtocol = a})
+
+-- | OAuth access token.
+pldslAccessToken :: Lens' ProjectsLocationsDataSourcesList (Maybe Text)
+pldslAccessToken
+  = lens _pldslAccessToken
+      (\ s a -> s{_pldslAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pldslUploadType :: Lens' ProjectsLocationsDataSourcesList (Maybe Text)
+pldslUploadType
+  = lens _pldslUploadType
+      (\ s a -> s{_pldslUploadType = a})
+
+-- | Pagination token, which can be used to request a specific page of
+-- \`ListDataSourcesRequest\` list results. For multiple-page results,
+-- \`ListDataSourcesResponse\` outputs a \`next_page\` token, which can be
+-- used as the \`page_token\` value to request the next page of list
+-- results.
+pldslPageToken :: Lens' ProjectsLocationsDataSourcesList (Maybe Text)
+pldslPageToken
+  = lens _pldslPageToken
+      (\ s a -> s{_pldslPageToken = a})
+
+-- | Page size. The default page size is the maximum value of 1000 results.
+pldslPageSize :: Lens' ProjectsLocationsDataSourcesList (Maybe Int32)
+pldslPageSize
+  = lens _pldslPageSize
+      (\ s a -> s{_pldslPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+pldslCallback :: Lens' ProjectsLocationsDataSourcesList (Maybe Text)
+pldslCallback
+  = lens _pldslCallback
+      (\ s a -> s{_pldslCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsDataSourcesList where
+        type Rs ProjectsLocationsDataSourcesList =
+             ListDataSourcesResponse
+        type Scopes ProjectsLocationsDataSourcesList =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsLocationsDataSourcesList'{..}
+          = go _pldslParent _pldslXgafv _pldslUploadProtocol
+              _pldslAccessToken
+              _pldslUploadType
+              _pldslPageToken
+              _pldslPageSize
+              _pldslCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsDataSourcesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/Get.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/Get.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets information about a location.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.get@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.Get
+    (
+    -- * REST Resource
+      ProjectsLocationsGetResource
+
+    -- * Creating a Request
+    , projectsLocationsGet
+    , ProjectsLocationsGet
+
+    -- * Request Lenses
+    , plgXgafv
+    , plgUploadProtocol
+    , plgAccessToken
+    , plgUploadType
+    , plgName
+    , plgCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.get@ method which the
+-- 'ProjectsLocationsGet' request conforms to.
+type ProjectsLocationsGetResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] Location
+
+-- | Gets information about a location.
+--
+-- /See:/ 'projectsLocationsGet' smart constructor.
+data ProjectsLocationsGet = ProjectsLocationsGet'
+    { _plgXgafv          :: !(Maybe Xgafv)
+    , _plgUploadProtocol :: !(Maybe Text)
+    , _plgAccessToken    :: !(Maybe Text)
+    , _plgUploadType     :: !(Maybe Text)
+    , _plgName           :: !Text
+    , _plgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plgXgafv'
+--
+-- * 'plgUploadProtocol'
+--
+-- * 'plgAccessToken'
+--
+-- * 'plgUploadType'
+--
+-- * 'plgName'
+--
+-- * 'plgCallback'
+projectsLocationsGet
+    :: Text -- ^ 'plgName'
+    -> ProjectsLocationsGet
+projectsLocationsGet pPlgName_ =
+    ProjectsLocationsGet'
+    { _plgXgafv = Nothing
+    , _plgUploadProtocol = Nothing
+    , _plgAccessToken = Nothing
+    , _plgUploadType = Nothing
+    , _plgName = pPlgName_
+    , _plgCallback = Nothing
+    }
+
+-- | V1 error format.
+plgXgafv :: Lens' ProjectsLocationsGet (Maybe Xgafv)
+plgXgafv = lens _plgXgafv (\ s a -> s{_plgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plgUploadProtocol :: Lens' ProjectsLocationsGet (Maybe Text)
+plgUploadProtocol
+  = lens _plgUploadProtocol
+      (\ s a -> s{_plgUploadProtocol = a})
+
+-- | OAuth access token.
+plgAccessToken :: Lens' ProjectsLocationsGet (Maybe Text)
+plgAccessToken
+  = lens _plgAccessToken
+      (\ s a -> s{_plgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plgUploadType :: Lens' ProjectsLocationsGet (Maybe Text)
+plgUploadType
+  = lens _plgUploadType
+      (\ s a -> s{_plgUploadType = a})
+
+-- | Resource name for the location.
+plgName :: Lens' ProjectsLocationsGet Text
+plgName = lens _plgName (\ s a -> s{_plgName = a})
+
+-- | JSONP
+plgCallback :: Lens' ProjectsLocationsGet (Maybe Text)
+plgCallback
+  = lens _plgCallback (\ s a -> s{_plgCallback = a})
+
+instance GoogleRequest ProjectsLocationsGet where
+        type Rs ProjectsLocationsGet = Location
+        type Scopes ProjectsLocationsGet =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsLocationsGet'{..}
+          = go _plgName _plgXgafv _plgUploadProtocol
+              _plgAccessToken
+              _plgUploadType
+              _plgCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsLocationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/List.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/List.hs
@@ -0,0 +1,185 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists information about the supported locations for this service.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.list@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.List
+    (
+    -- * REST Resource
+      ProjectsLocationsListResource
+
+    -- * Creating a Request
+    , projectsLocationsList
+    , ProjectsLocationsList
+
+    -- * Request Lenses
+    , pllXgafv
+    , pllUploadProtocol
+    , pllAccessToken
+    , pllUploadType
+    , pllName
+    , pllFilter
+    , pllPageToken
+    , pllPageSize
+    , pllCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.list@ method which the
+-- 'ProjectsLocationsList' request conforms to.
+type ProjectsLocationsListResource =
+     "v1" :>
+       Capture "name" Text :>
+         "locations" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "filter" Text :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListLocationsResponse
+
+-- | Lists information about the supported locations for this service.
+--
+-- /See:/ 'projectsLocationsList' smart constructor.
+data ProjectsLocationsList = ProjectsLocationsList'
+    { _pllXgafv          :: !(Maybe Xgafv)
+    , _pllUploadProtocol :: !(Maybe Text)
+    , _pllAccessToken    :: !(Maybe Text)
+    , _pllUploadType     :: !(Maybe Text)
+    , _pllName           :: !Text
+    , _pllFilter         :: !(Maybe Text)
+    , _pllPageToken      :: !(Maybe Text)
+    , _pllPageSize       :: !(Maybe (Textual Int32))
+    , _pllCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pllXgafv'
+--
+-- * 'pllUploadProtocol'
+--
+-- * 'pllAccessToken'
+--
+-- * 'pllUploadType'
+--
+-- * 'pllName'
+--
+-- * 'pllFilter'
+--
+-- * 'pllPageToken'
+--
+-- * 'pllPageSize'
+--
+-- * 'pllCallback'
+projectsLocationsList
+    :: Text -- ^ 'pllName'
+    -> ProjectsLocationsList
+projectsLocationsList pPllName_ =
+    ProjectsLocationsList'
+    { _pllXgafv = Nothing
+    , _pllUploadProtocol = Nothing
+    , _pllAccessToken = Nothing
+    , _pllUploadType = Nothing
+    , _pllName = pPllName_
+    , _pllFilter = Nothing
+    , _pllPageToken = Nothing
+    , _pllPageSize = Nothing
+    , _pllCallback = Nothing
+    }
+
+-- | V1 error format.
+pllXgafv :: Lens' ProjectsLocationsList (Maybe Xgafv)
+pllXgafv = lens _pllXgafv (\ s a -> s{_pllXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pllUploadProtocol :: Lens' ProjectsLocationsList (Maybe Text)
+pllUploadProtocol
+  = lens _pllUploadProtocol
+      (\ s a -> s{_pllUploadProtocol = a})
+
+-- | OAuth access token.
+pllAccessToken :: Lens' ProjectsLocationsList (Maybe Text)
+pllAccessToken
+  = lens _pllAccessToken
+      (\ s a -> s{_pllAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pllUploadType :: Lens' ProjectsLocationsList (Maybe Text)
+pllUploadType
+  = lens _pllUploadType
+      (\ s a -> s{_pllUploadType = a})
+
+-- | The resource that owns the locations collection, if applicable.
+pllName :: Lens' ProjectsLocationsList Text
+pllName = lens _pllName (\ s a -> s{_pllName = a})
+
+-- | The standard list filter.
+pllFilter :: Lens' ProjectsLocationsList (Maybe Text)
+pllFilter
+  = lens _pllFilter (\ s a -> s{_pllFilter = a})
+
+-- | The standard list page token.
+pllPageToken :: Lens' ProjectsLocationsList (Maybe Text)
+pllPageToken
+  = lens _pllPageToken (\ s a -> s{_pllPageToken = a})
+
+-- | The standard list page size.
+pllPageSize :: Lens' ProjectsLocationsList (Maybe Int32)
+pllPageSize
+  = lens _pllPageSize (\ s a -> s{_pllPageSize = a}) .
+      mapping _Coerce
+
+-- | JSONP
+pllCallback :: Lens' ProjectsLocationsList (Maybe Text)
+pllCallback
+  = lens _pllCallback (\ s a -> s{_pllCallback = a})
+
+instance GoogleRequest ProjectsLocationsList where
+        type Rs ProjectsLocationsList = ListLocationsResponse
+        type Scopes ProjectsLocationsList =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsLocationsList'{..}
+          = go _pllName _pllXgafv _pllUploadProtocol
+              _pllAccessToken
+              _pllUploadType
+              _pllFilter
+              _pllPageToken
+              _pllPageSize
+              _pllCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsLocationsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Create.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Create.hs
@@ -0,0 +1,196 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new data transfer configuration.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.transferConfigs.create@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Create
+    (
+    -- * REST Resource
+      ProjectsLocationsTransferConfigsCreateResource
+
+    -- * Creating a Request
+    , projectsLocationsTransferConfigsCreate
+    , ProjectsLocationsTransferConfigsCreate
+
+    -- * Request Lenses
+    , pltccParent
+    , pltccXgafv
+    , pltccUploadProtocol
+    , pltccAccessToken
+    , pltccUploadType
+    , pltccAuthorizationCode
+    , pltccPayload
+    , pltccCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.transferConfigs.create@ method which the
+-- 'ProjectsLocationsTransferConfigsCreate' request conforms to.
+type ProjectsLocationsTransferConfigsCreateResource =
+     "v1" :>
+       Capture "parent" Text :>
+         "transferConfigs" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "authorizationCode" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] TransferConfig :>
+                           Post '[JSON] TransferConfig
+
+-- | Creates a new data transfer configuration.
+--
+-- /See:/ 'projectsLocationsTransferConfigsCreate' smart constructor.
+data ProjectsLocationsTransferConfigsCreate = ProjectsLocationsTransferConfigsCreate'
+    { _pltccParent            :: !Text
+    , _pltccXgafv             :: !(Maybe Xgafv)
+    , _pltccUploadProtocol    :: !(Maybe Text)
+    , _pltccAccessToken       :: !(Maybe Text)
+    , _pltccUploadType        :: !(Maybe Text)
+    , _pltccAuthorizationCode :: !(Maybe Text)
+    , _pltccPayload           :: !TransferConfig
+    , _pltccCallback          :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsTransferConfigsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pltccParent'
+--
+-- * 'pltccXgafv'
+--
+-- * 'pltccUploadProtocol'
+--
+-- * 'pltccAccessToken'
+--
+-- * 'pltccUploadType'
+--
+-- * 'pltccAuthorizationCode'
+--
+-- * 'pltccPayload'
+--
+-- * 'pltccCallback'
+projectsLocationsTransferConfigsCreate
+    :: Text -- ^ 'pltccParent'
+    -> TransferConfig -- ^ 'pltccPayload'
+    -> ProjectsLocationsTransferConfigsCreate
+projectsLocationsTransferConfigsCreate pPltccParent_ pPltccPayload_ =
+    ProjectsLocationsTransferConfigsCreate'
+    { _pltccParent = pPltccParent_
+    , _pltccXgafv = Nothing
+    , _pltccUploadProtocol = Nothing
+    , _pltccAccessToken = Nothing
+    , _pltccUploadType = Nothing
+    , _pltccAuthorizationCode = Nothing
+    , _pltccPayload = pPltccPayload_
+    , _pltccCallback = Nothing
+    }
+
+-- | The BigQuery project id where the transfer configuration should be
+-- created. Must be in the format
+-- projects\/{project_id}\/locations\/{location_id} If specified location
+-- and location of the destination bigquery dataset do not match - the
+-- request will fail.
+pltccParent :: Lens' ProjectsLocationsTransferConfigsCreate Text
+pltccParent
+  = lens _pltccParent (\ s a -> s{_pltccParent = a})
+
+-- | V1 error format.
+pltccXgafv :: Lens' ProjectsLocationsTransferConfigsCreate (Maybe Xgafv)
+pltccXgafv
+  = lens _pltccXgafv (\ s a -> s{_pltccXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pltccUploadProtocol :: Lens' ProjectsLocationsTransferConfigsCreate (Maybe Text)
+pltccUploadProtocol
+  = lens _pltccUploadProtocol
+      (\ s a -> s{_pltccUploadProtocol = a})
+
+-- | OAuth access token.
+pltccAccessToken :: Lens' ProjectsLocationsTransferConfigsCreate (Maybe Text)
+pltccAccessToken
+  = lens _pltccAccessToken
+      (\ s a -> s{_pltccAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pltccUploadType :: Lens' ProjectsLocationsTransferConfigsCreate (Maybe Text)
+pltccUploadType
+  = lens _pltccUploadType
+      (\ s a -> s{_pltccUploadType = a})
+
+-- | Optional OAuth2 authorization code to use with this transfer
+-- configuration. This is required if new credentials are needed, as
+-- indicated by \`CheckValidCreds\`. In order to obtain authorization_code,
+-- please make a request to
+-- https:\/\/www.gstatic.com\/bigquerydatatransfer\/oauthz\/auth?client_id=&scope=&redirect_uri=
+-- * client_id should be OAuth client_id of BigQuery DTS API for the given
+-- data source returned by ListDataSources method. * data_source_scopes are
+-- the scopes returned by ListDataSources method. * redirect_uri is an
+-- optional parameter. If not specified, then authorization code is posted
+-- to the opener of authorization flow window. Otherwise it will be sent to
+-- the redirect uri. A special value of urn:ietf:wg:oauth:2.0:oob means
+-- that authorization code should be returned in the title bar of the
+-- browser, with the page text prompting the user to copy the code and
+-- paste it in the application.
+pltccAuthorizationCode :: Lens' ProjectsLocationsTransferConfigsCreate (Maybe Text)
+pltccAuthorizationCode
+  = lens _pltccAuthorizationCode
+      (\ s a -> s{_pltccAuthorizationCode = a})
+
+-- | Multipart request metadata.
+pltccPayload :: Lens' ProjectsLocationsTransferConfigsCreate TransferConfig
+pltccPayload
+  = lens _pltccPayload (\ s a -> s{_pltccPayload = a})
+
+-- | JSONP
+pltccCallback :: Lens' ProjectsLocationsTransferConfigsCreate (Maybe Text)
+pltccCallback
+  = lens _pltccCallback
+      (\ s a -> s{_pltccCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsTransferConfigsCreate where
+        type Rs ProjectsLocationsTransferConfigsCreate =
+             TransferConfig
+        type Scopes ProjectsLocationsTransferConfigsCreate =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient
+          ProjectsLocationsTransferConfigsCreate'{..}
+          = go _pltccParent _pltccXgafv _pltccUploadProtocol
+              _pltccAccessToken
+              _pltccUploadType
+              _pltccAuthorizationCode
+              _pltccCallback
+              (Just AltJSON)
+              _pltccPayload
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsTransferConfigsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Delete.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Delete.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a data transfer configuration, including any associated transfer
+-- runs and logs.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.transferConfigs.delete@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Delete
+    (
+    -- * REST Resource
+      ProjectsLocationsTransferConfigsDeleteResource
+
+    -- * Creating a Request
+    , projectsLocationsTransferConfigsDelete
+    , ProjectsLocationsTransferConfigsDelete
+
+    -- * Request Lenses
+    , pltcdXgafv
+    , pltcdUploadProtocol
+    , pltcdAccessToken
+    , pltcdUploadType
+    , pltcdName
+    , pltcdCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.transferConfigs.delete@ method which the
+-- 'ProjectsLocationsTransferConfigsDelete' request conforms to.
+type ProjectsLocationsTransferConfigsDeleteResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes a data transfer configuration, including any associated transfer
+-- runs and logs.
+--
+-- /See:/ 'projectsLocationsTransferConfigsDelete' smart constructor.
+data ProjectsLocationsTransferConfigsDelete = ProjectsLocationsTransferConfigsDelete'
+    { _pltcdXgafv          :: !(Maybe Xgafv)
+    , _pltcdUploadProtocol :: !(Maybe Text)
+    , _pltcdAccessToken    :: !(Maybe Text)
+    , _pltcdUploadType     :: !(Maybe Text)
+    , _pltcdName           :: !Text
+    , _pltcdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsTransferConfigsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pltcdXgafv'
+--
+-- * 'pltcdUploadProtocol'
+--
+-- * 'pltcdAccessToken'
+--
+-- * 'pltcdUploadType'
+--
+-- * 'pltcdName'
+--
+-- * 'pltcdCallback'
+projectsLocationsTransferConfigsDelete
+    :: Text -- ^ 'pltcdName'
+    -> ProjectsLocationsTransferConfigsDelete
+projectsLocationsTransferConfigsDelete pPltcdName_ =
+    ProjectsLocationsTransferConfigsDelete'
+    { _pltcdXgafv = Nothing
+    , _pltcdUploadProtocol = Nothing
+    , _pltcdAccessToken = Nothing
+    , _pltcdUploadType = Nothing
+    , _pltcdName = pPltcdName_
+    , _pltcdCallback = Nothing
+    }
+
+-- | V1 error format.
+pltcdXgafv :: Lens' ProjectsLocationsTransferConfigsDelete (Maybe Xgafv)
+pltcdXgafv
+  = lens _pltcdXgafv (\ s a -> s{_pltcdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pltcdUploadProtocol :: Lens' ProjectsLocationsTransferConfigsDelete (Maybe Text)
+pltcdUploadProtocol
+  = lens _pltcdUploadProtocol
+      (\ s a -> s{_pltcdUploadProtocol = a})
+
+-- | OAuth access token.
+pltcdAccessToken :: Lens' ProjectsLocationsTransferConfigsDelete (Maybe Text)
+pltcdAccessToken
+  = lens _pltcdAccessToken
+      (\ s a -> s{_pltcdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pltcdUploadType :: Lens' ProjectsLocationsTransferConfigsDelete (Maybe Text)
+pltcdUploadType
+  = lens _pltcdUploadType
+      (\ s a -> s{_pltcdUploadType = a})
+
+-- | The field will contain name of the resource requested, for example:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\`
+pltcdName :: Lens' ProjectsLocationsTransferConfigsDelete Text
+pltcdName
+  = lens _pltcdName (\ s a -> s{_pltcdName = a})
+
+-- | JSONP
+pltcdCallback :: Lens' ProjectsLocationsTransferConfigsDelete (Maybe Text)
+pltcdCallback
+  = lens _pltcdCallback
+      (\ s a -> s{_pltcdCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsTransferConfigsDelete where
+        type Rs ProjectsLocationsTransferConfigsDelete =
+             Empty
+        type Scopes ProjectsLocationsTransferConfigsDelete =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform"]
+        requestClient
+          ProjectsLocationsTransferConfigsDelete'{..}
+          = go _pltcdName _pltcdXgafv _pltcdUploadProtocol
+              _pltcdAccessToken
+              _pltcdUploadType
+              _pltcdCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsTransferConfigsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Get.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Get.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about a data transfer config.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.transferConfigs.get@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Get
+    (
+    -- * REST Resource
+      ProjectsLocationsTransferConfigsGetResource
+
+    -- * Creating a Request
+    , projectsLocationsTransferConfigsGet
+    , ProjectsLocationsTransferConfigsGet
+
+    -- * Request Lenses
+    , pltcgXgafv
+    , pltcgUploadProtocol
+    , pltcgAccessToken
+    , pltcgUploadType
+    , pltcgName
+    , pltcgCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.transferConfigs.get@ method which the
+-- 'ProjectsLocationsTransferConfigsGet' request conforms to.
+type ProjectsLocationsTransferConfigsGetResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :>
+                     Get '[JSON] TransferConfig
+
+-- | Returns information about a data transfer config.
+--
+-- /See:/ 'projectsLocationsTransferConfigsGet' smart constructor.
+data ProjectsLocationsTransferConfigsGet = ProjectsLocationsTransferConfigsGet'
+    { _pltcgXgafv          :: !(Maybe Xgafv)
+    , _pltcgUploadProtocol :: !(Maybe Text)
+    , _pltcgAccessToken    :: !(Maybe Text)
+    , _pltcgUploadType     :: !(Maybe Text)
+    , _pltcgName           :: !Text
+    , _pltcgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsTransferConfigsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pltcgXgafv'
+--
+-- * 'pltcgUploadProtocol'
+--
+-- * 'pltcgAccessToken'
+--
+-- * 'pltcgUploadType'
+--
+-- * 'pltcgName'
+--
+-- * 'pltcgCallback'
+projectsLocationsTransferConfigsGet
+    :: Text -- ^ 'pltcgName'
+    -> ProjectsLocationsTransferConfigsGet
+projectsLocationsTransferConfigsGet pPltcgName_ =
+    ProjectsLocationsTransferConfigsGet'
+    { _pltcgXgafv = Nothing
+    , _pltcgUploadProtocol = Nothing
+    , _pltcgAccessToken = Nothing
+    , _pltcgUploadType = Nothing
+    , _pltcgName = pPltcgName_
+    , _pltcgCallback = Nothing
+    }
+
+-- | V1 error format.
+pltcgXgafv :: Lens' ProjectsLocationsTransferConfigsGet (Maybe Xgafv)
+pltcgXgafv
+  = lens _pltcgXgafv (\ s a -> s{_pltcgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pltcgUploadProtocol :: Lens' ProjectsLocationsTransferConfigsGet (Maybe Text)
+pltcgUploadProtocol
+  = lens _pltcgUploadProtocol
+      (\ s a -> s{_pltcgUploadProtocol = a})
+
+-- | OAuth access token.
+pltcgAccessToken :: Lens' ProjectsLocationsTransferConfigsGet (Maybe Text)
+pltcgAccessToken
+  = lens _pltcgAccessToken
+      (\ s a -> s{_pltcgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pltcgUploadType :: Lens' ProjectsLocationsTransferConfigsGet (Maybe Text)
+pltcgUploadType
+  = lens _pltcgUploadType
+      (\ s a -> s{_pltcgUploadType = a})
+
+-- | The field will contain name of the resource requested, for example:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\`
+pltcgName :: Lens' ProjectsLocationsTransferConfigsGet Text
+pltcgName
+  = lens _pltcgName (\ s a -> s{_pltcgName = a})
+
+-- | JSONP
+pltcgCallback :: Lens' ProjectsLocationsTransferConfigsGet (Maybe Text)
+pltcgCallback
+  = lens _pltcgCallback
+      (\ s a -> s{_pltcgCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsTransferConfigsGet where
+        type Rs ProjectsLocationsTransferConfigsGet =
+             TransferConfig
+        type Scopes ProjectsLocationsTransferConfigsGet =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient
+          ProjectsLocationsTransferConfigsGet'{..}
+          = go _pltcgName _pltcgXgafv _pltcgUploadProtocol
+              _pltcgAccessToken
+              _pltcgUploadType
+              _pltcgCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsTransferConfigsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/List.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/List.hs
@@ -0,0 +1,203 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about all data transfers in the project.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.transferConfigs.list@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.List
+    (
+    -- * REST Resource
+      ProjectsLocationsTransferConfigsListResource
+
+    -- * Creating a Request
+    , projectsLocationsTransferConfigsList
+    , ProjectsLocationsTransferConfigsList
+
+    -- * Request Lenses
+    , pltclParent
+    , pltclXgafv
+    , pltclUploadProtocol
+    , pltclAccessToken
+    , pltclUploadType
+    , pltclPageToken
+    , pltclDataSourceIds
+    , pltclPageSize
+    , pltclCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.transferConfigs.list@ method which the
+-- 'ProjectsLocationsTransferConfigsList' request conforms to.
+type ProjectsLocationsTransferConfigsListResource =
+     "v1" :>
+       Capture "parent" Text :>
+         "transferConfigs" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParams "dataSourceIds" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListTransferConfigsResponse
+
+-- | Returns information about all data transfers in the project.
+--
+-- /See:/ 'projectsLocationsTransferConfigsList' smart constructor.
+data ProjectsLocationsTransferConfigsList = ProjectsLocationsTransferConfigsList'
+    { _pltclParent         :: !Text
+    , _pltclXgafv          :: !(Maybe Xgafv)
+    , _pltclUploadProtocol :: !(Maybe Text)
+    , _pltclAccessToken    :: !(Maybe Text)
+    , _pltclUploadType     :: !(Maybe Text)
+    , _pltclPageToken      :: !(Maybe Text)
+    , _pltclDataSourceIds  :: !(Maybe [Text])
+    , _pltclPageSize       :: !(Maybe (Textual Int32))
+    , _pltclCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsTransferConfigsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pltclParent'
+--
+-- * 'pltclXgafv'
+--
+-- * 'pltclUploadProtocol'
+--
+-- * 'pltclAccessToken'
+--
+-- * 'pltclUploadType'
+--
+-- * 'pltclPageToken'
+--
+-- * 'pltclDataSourceIds'
+--
+-- * 'pltclPageSize'
+--
+-- * 'pltclCallback'
+projectsLocationsTransferConfigsList
+    :: Text -- ^ 'pltclParent'
+    -> ProjectsLocationsTransferConfigsList
+projectsLocationsTransferConfigsList pPltclParent_ =
+    ProjectsLocationsTransferConfigsList'
+    { _pltclParent = pPltclParent_
+    , _pltclXgafv = Nothing
+    , _pltclUploadProtocol = Nothing
+    , _pltclAccessToken = Nothing
+    , _pltclUploadType = Nothing
+    , _pltclPageToken = Nothing
+    , _pltclDataSourceIds = Nothing
+    , _pltclPageSize = Nothing
+    , _pltclCallback = Nothing
+    }
+
+-- | The BigQuery project id for which data sources should be returned:
+-- \`projects\/{project_id}\`.
+pltclParent :: Lens' ProjectsLocationsTransferConfigsList Text
+pltclParent
+  = lens _pltclParent (\ s a -> s{_pltclParent = a})
+
+-- | V1 error format.
+pltclXgafv :: Lens' ProjectsLocationsTransferConfigsList (Maybe Xgafv)
+pltclXgafv
+  = lens _pltclXgafv (\ s a -> s{_pltclXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pltclUploadProtocol :: Lens' ProjectsLocationsTransferConfigsList (Maybe Text)
+pltclUploadProtocol
+  = lens _pltclUploadProtocol
+      (\ s a -> s{_pltclUploadProtocol = a})
+
+-- | OAuth access token.
+pltclAccessToken :: Lens' ProjectsLocationsTransferConfigsList (Maybe Text)
+pltclAccessToken
+  = lens _pltclAccessToken
+      (\ s a -> s{_pltclAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pltclUploadType :: Lens' ProjectsLocationsTransferConfigsList (Maybe Text)
+pltclUploadType
+  = lens _pltclUploadType
+      (\ s a -> s{_pltclUploadType = a})
+
+-- | Pagination token, which can be used to request a specific page of
+-- \`ListTransfersRequest\` list results. For multiple-page results,
+-- \`ListTransfersResponse\` outputs a \`next_page\` token, which can be
+-- used as the \`page_token\` value to request the next page of list
+-- results.
+pltclPageToken :: Lens' ProjectsLocationsTransferConfigsList (Maybe Text)
+pltclPageToken
+  = lens _pltclPageToken
+      (\ s a -> s{_pltclPageToken = a})
+
+-- | When specified, only configurations of requested data sources are
+-- returned.
+pltclDataSourceIds :: Lens' ProjectsLocationsTransferConfigsList [Text]
+pltclDataSourceIds
+  = lens _pltclDataSourceIds
+      (\ s a -> s{_pltclDataSourceIds = a})
+      . _Default
+      . _Coerce
+
+-- | Page size. The default page size is the maximum value of 1000 results.
+pltclPageSize :: Lens' ProjectsLocationsTransferConfigsList (Maybe Int32)
+pltclPageSize
+  = lens _pltclPageSize
+      (\ s a -> s{_pltclPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+pltclCallback :: Lens' ProjectsLocationsTransferConfigsList (Maybe Text)
+pltclCallback
+  = lens _pltclCallback
+      (\ s a -> s{_pltclCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsTransferConfigsList where
+        type Rs ProjectsLocationsTransferConfigsList =
+             ListTransferConfigsResponse
+        type Scopes ProjectsLocationsTransferConfigsList =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient
+          ProjectsLocationsTransferConfigsList'{..}
+          = go _pltclParent _pltclXgafv _pltclUploadProtocol
+              _pltclAccessToken
+              _pltclUploadType
+              _pltclPageToken
+              (_pltclDataSourceIds ^. _Default)
+              _pltclPageSize
+              _pltclCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsTransferConfigsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Patch.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Patch.hs
@@ -0,0 +1,212 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Patch
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a data transfer configuration. All fields must be set, even if
+-- they are not updated.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.transferConfigs.patch@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Patch
+    (
+    -- * REST Resource
+      ProjectsLocationsTransferConfigsPatchResource
+
+    -- * Creating a Request
+    , projectsLocationsTransferConfigsPatch
+    , ProjectsLocationsTransferConfigsPatch
+
+    -- * Request Lenses
+    , pltcpXgafv
+    , pltcpUploadProtocol
+    , pltcpUpdateMask
+    , pltcpAccessToken
+    , pltcpUploadType
+    , pltcpAuthorizationCode
+    , pltcpPayload
+    , pltcpName
+    , pltcpCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.transferConfigs.patch@ method which the
+-- 'ProjectsLocationsTransferConfigsPatch' request conforms to.
+type ProjectsLocationsTransferConfigsPatchResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "updateMask" GFieldMask :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "authorizationCode" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] TransferConfig :>
+                           Patch '[JSON] TransferConfig
+
+-- | Updates a data transfer configuration. All fields must be set, even if
+-- they are not updated.
+--
+-- /See:/ 'projectsLocationsTransferConfigsPatch' smart constructor.
+data ProjectsLocationsTransferConfigsPatch = ProjectsLocationsTransferConfigsPatch'
+    { _pltcpXgafv             :: !(Maybe Xgafv)
+    , _pltcpUploadProtocol    :: !(Maybe Text)
+    , _pltcpUpdateMask        :: !(Maybe GFieldMask)
+    , _pltcpAccessToken       :: !(Maybe Text)
+    , _pltcpUploadType        :: !(Maybe Text)
+    , _pltcpAuthorizationCode :: !(Maybe Text)
+    , _pltcpPayload           :: !TransferConfig
+    , _pltcpName              :: !Text
+    , _pltcpCallback          :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsTransferConfigsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pltcpXgafv'
+--
+-- * 'pltcpUploadProtocol'
+--
+-- * 'pltcpUpdateMask'
+--
+-- * 'pltcpAccessToken'
+--
+-- * 'pltcpUploadType'
+--
+-- * 'pltcpAuthorizationCode'
+--
+-- * 'pltcpPayload'
+--
+-- * 'pltcpName'
+--
+-- * 'pltcpCallback'
+projectsLocationsTransferConfigsPatch
+    :: TransferConfig -- ^ 'pltcpPayload'
+    -> Text -- ^ 'pltcpName'
+    -> ProjectsLocationsTransferConfigsPatch
+projectsLocationsTransferConfigsPatch pPltcpPayload_ pPltcpName_ =
+    ProjectsLocationsTransferConfigsPatch'
+    { _pltcpXgafv = Nothing
+    , _pltcpUploadProtocol = Nothing
+    , _pltcpUpdateMask = Nothing
+    , _pltcpAccessToken = Nothing
+    , _pltcpUploadType = Nothing
+    , _pltcpAuthorizationCode = Nothing
+    , _pltcpPayload = pPltcpPayload_
+    , _pltcpName = pPltcpName_
+    , _pltcpCallback = Nothing
+    }
+
+-- | V1 error format.
+pltcpXgafv :: Lens' ProjectsLocationsTransferConfigsPatch (Maybe Xgafv)
+pltcpXgafv
+  = lens _pltcpXgafv (\ s a -> s{_pltcpXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pltcpUploadProtocol :: Lens' ProjectsLocationsTransferConfigsPatch (Maybe Text)
+pltcpUploadProtocol
+  = lens _pltcpUploadProtocol
+      (\ s a -> s{_pltcpUploadProtocol = a})
+
+-- | Required list of fields to be updated in this request.
+pltcpUpdateMask :: Lens' ProjectsLocationsTransferConfigsPatch (Maybe GFieldMask)
+pltcpUpdateMask
+  = lens _pltcpUpdateMask
+      (\ s a -> s{_pltcpUpdateMask = a})
+
+-- | OAuth access token.
+pltcpAccessToken :: Lens' ProjectsLocationsTransferConfigsPatch (Maybe Text)
+pltcpAccessToken
+  = lens _pltcpAccessToken
+      (\ s a -> s{_pltcpAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pltcpUploadType :: Lens' ProjectsLocationsTransferConfigsPatch (Maybe Text)
+pltcpUploadType
+  = lens _pltcpUploadType
+      (\ s a -> s{_pltcpUploadType = a})
+
+-- | Optional OAuth2 authorization code to use with this transfer
+-- configuration. If it is provided, the transfer configuration will be
+-- associated with the authorizing user. In order to obtain
+-- authorization_code, please make a request to
+-- https:\/\/www.gstatic.com\/bigquerydatatransfer\/oauthz\/auth?client_id=&scope=&redirect_uri=
+-- * client_id should be OAuth client_id of BigQuery DTS API for the given
+-- data source returned by ListDataSources method. * data_source_scopes are
+-- the scopes returned by ListDataSources method. * redirect_uri is an
+-- optional parameter. If not specified, then authorization code is posted
+-- to the opener of authorization flow window. Otherwise it will be sent to
+-- the redirect uri. A special value of urn:ietf:wg:oauth:2.0:oob means
+-- that authorization code should be returned in the title bar of the
+-- browser, with the page text prompting the user to copy the code and
+-- paste it in the application.
+pltcpAuthorizationCode :: Lens' ProjectsLocationsTransferConfigsPatch (Maybe Text)
+pltcpAuthorizationCode
+  = lens _pltcpAuthorizationCode
+      (\ s a -> s{_pltcpAuthorizationCode = a})
+
+-- | Multipart request metadata.
+pltcpPayload :: Lens' ProjectsLocationsTransferConfigsPatch TransferConfig
+pltcpPayload
+  = lens _pltcpPayload (\ s a -> s{_pltcpPayload = a})
+
+-- | The resource name of the transfer config. Transfer config names have the
+-- form of
+-- \`projects\/{project_id}\/locations\/{region}\/transferConfigs\/{config_id}\`.
+-- The name is automatically generated based on the config_id specified in
+-- CreateTransferConfigRequest along with project_id and region. If
+-- config_id is not provided, usually a uuid, even though it is not
+-- guaranteed or required, will be generated for config_id.
+pltcpName :: Lens' ProjectsLocationsTransferConfigsPatch Text
+pltcpName
+  = lens _pltcpName (\ s a -> s{_pltcpName = a})
+
+-- | JSONP
+pltcpCallback :: Lens' ProjectsLocationsTransferConfigsPatch (Maybe Text)
+pltcpCallback
+  = lens _pltcpCallback
+      (\ s a -> s{_pltcpCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsTransferConfigsPatch where
+        type Rs ProjectsLocationsTransferConfigsPatch =
+             TransferConfig
+        type Scopes ProjectsLocationsTransferConfigsPatch =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient
+          ProjectsLocationsTransferConfigsPatch'{..}
+          = go _pltcpName _pltcpXgafv _pltcpUploadProtocol
+              _pltcpUpdateMask
+              _pltcpAccessToken
+              _pltcpUploadType
+              _pltcpAuthorizationCode
+              _pltcpCallback
+              (Just AltJSON)
+              _pltcpPayload
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsTransferConfigsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/Delete.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/Delete.hs
@@ -0,0 +1,157 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified transfer run.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.transferConfigs.runs.delete@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.Delete
+    (
+    -- * REST Resource
+      ProjectsLocationsTransferConfigsRunsDeleteResource
+
+    -- * Creating a Request
+    , projectsLocationsTransferConfigsRunsDelete
+    , ProjectsLocationsTransferConfigsRunsDelete
+
+    -- * Request Lenses
+    , pltcrdXgafv
+    , pltcrdUploadProtocol
+    , pltcrdAccessToken
+    , pltcrdUploadType
+    , pltcrdName
+    , pltcrdCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.transferConfigs.runs.delete@ method which the
+-- 'ProjectsLocationsTransferConfigsRunsDelete' request conforms to.
+type ProjectsLocationsTransferConfigsRunsDeleteResource
+     =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes the specified transfer run.
+--
+-- /See:/ 'projectsLocationsTransferConfigsRunsDelete' smart constructor.
+data ProjectsLocationsTransferConfigsRunsDelete = ProjectsLocationsTransferConfigsRunsDelete'
+    { _pltcrdXgafv          :: !(Maybe Xgafv)
+    , _pltcrdUploadProtocol :: !(Maybe Text)
+    , _pltcrdAccessToken    :: !(Maybe Text)
+    , _pltcrdUploadType     :: !(Maybe Text)
+    , _pltcrdName           :: !Text
+    , _pltcrdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsTransferConfigsRunsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pltcrdXgafv'
+--
+-- * 'pltcrdUploadProtocol'
+--
+-- * 'pltcrdAccessToken'
+--
+-- * 'pltcrdUploadType'
+--
+-- * 'pltcrdName'
+--
+-- * 'pltcrdCallback'
+projectsLocationsTransferConfigsRunsDelete
+    :: Text -- ^ 'pltcrdName'
+    -> ProjectsLocationsTransferConfigsRunsDelete
+projectsLocationsTransferConfigsRunsDelete pPltcrdName_ =
+    ProjectsLocationsTransferConfigsRunsDelete'
+    { _pltcrdXgafv = Nothing
+    , _pltcrdUploadProtocol = Nothing
+    , _pltcrdAccessToken = Nothing
+    , _pltcrdUploadType = Nothing
+    , _pltcrdName = pPltcrdName_
+    , _pltcrdCallback = Nothing
+    }
+
+-- | V1 error format.
+pltcrdXgafv :: Lens' ProjectsLocationsTransferConfigsRunsDelete (Maybe Xgafv)
+pltcrdXgafv
+  = lens _pltcrdXgafv (\ s a -> s{_pltcrdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pltcrdUploadProtocol :: Lens' ProjectsLocationsTransferConfigsRunsDelete (Maybe Text)
+pltcrdUploadProtocol
+  = lens _pltcrdUploadProtocol
+      (\ s a -> s{_pltcrdUploadProtocol = a})
+
+-- | OAuth access token.
+pltcrdAccessToken :: Lens' ProjectsLocationsTransferConfigsRunsDelete (Maybe Text)
+pltcrdAccessToken
+  = lens _pltcrdAccessToken
+      (\ s a -> s{_pltcrdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pltcrdUploadType :: Lens' ProjectsLocationsTransferConfigsRunsDelete (Maybe Text)
+pltcrdUploadType
+  = lens _pltcrdUploadType
+      (\ s a -> s{_pltcrdUploadType = a})
+
+-- | The field will contain name of the resource requested, for example:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\/runs\/{run_id}\`
+pltcrdName :: Lens' ProjectsLocationsTransferConfigsRunsDelete Text
+pltcrdName
+  = lens _pltcrdName (\ s a -> s{_pltcrdName = a})
+
+-- | JSONP
+pltcrdCallback :: Lens' ProjectsLocationsTransferConfigsRunsDelete (Maybe Text)
+pltcrdCallback
+  = lens _pltcrdCallback
+      (\ s a -> s{_pltcrdCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsTransferConfigsRunsDelete where
+        type Rs ProjectsLocationsTransferConfigsRunsDelete =
+             Empty
+        type Scopes
+               ProjectsLocationsTransferConfigsRunsDelete
+             =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform"]
+        requestClient
+          ProjectsLocationsTransferConfigsRunsDelete'{..}
+          = go _pltcrdName _pltcrdXgafv _pltcrdUploadProtocol
+              _pltcrdAccessToken
+              _pltcrdUploadType
+              _pltcrdCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           ProjectsLocationsTransferConfigsRunsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/Get.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/Get.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about the particular transfer run.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.transferConfigs.runs.get@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.Get
+    (
+    -- * REST Resource
+      ProjectsLocationsTransferConfigsRunsGetResource
+
+    -- * Creating a Request
+    , projectsLocationsTransferConfigsRunsGet
+    , ProjectsLocationsTransferConfigsRunsGet
+
+    -- * Request Lenses
+    , pltcrgXgafv
+    , pltcrgUploadProtocol
+    , pltcrgAccessToken
+    , pltcrgUploadType
+    , pltcrgName
+    , pltcrgCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.transferConfigs.runs.get@ method which the
+-- 'ProjectsLocationsTransferConfigsRunsGet' request conforms to.
+type ProjectsLocationsTransferConfigsRunsGetResource
+     =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] TransferRun
+
+-- | Returns information about the particular transfer run.
+--
+-- /See:/ 'projectsLocationsTransferConfigsRunsGet' smart constructor.
+data ProjectsLocationsTransferConfigsRunsGet = ProjectsLocationsTransferConfigsRunsGet'
+    { _pltcrgXgafv          :: !(Maybe Xgafv)
+    , _pltcrgUploadProtocol :: !(Maybe Text)
+    , _pltcrgAccessToken    :: !(Maybe Text)
+    , _pltcrgUploadType     :: !(Maybe Text)
+    , _pltcrgName           :: !Text
+    , _pltcrgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsTransferConfigsRunsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pltcrgXgafv'
+--
+-- * 'pltcrgUploadProtocol'
+--
+-- * 'pltcrgAccessToken'
+--
+-- * 'pltcrgUploadType'
+--
+-- * 'pltcrgName'
+--
+-- * 'pltcrgCallback'
+projectsLocationsTransferConfigsRunsGet
+    :: Text -- ^ 'pltcrgName'
+    -> ProjectsLocationsTransferConfigsRunsGet
+projectsLocationsTransferConfigsRunsGet pPltcrgName_ =
+    ProjectsLocationsTransferConfigsRunsGet'
+    { _pltcrgXgafv = Nothing
+    , _pltcrgUploadProtocol = Nothing
+    , _pltcrgAccessToken = Nothing
+    , _pltcrgUploadType = Nothing
+    , _pltcrgName = pPltcrgName_
+    , _pltcrgCallback = Nothing
+    }
+
+-- | V1 error format.
+pltcrgXgafv :: Lens' ProjectsLocationsTransferConfigsRunsGet (Maybe Xgafv)
+pltcrgXgafv
+  = lens _pltcrgXgafv (\ s a -> s{_pltcrgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pltcrgUploadProtocol :: Lens' ProjectsLocationsTransferConfigsRunsGet (Maybe Text)
+pltcrgUploadProtocol
+  = lens _pltcrgUploadProtocol
+      (\ s a -> s{_pltcrgUploadProtocol = a})
+
+-- | OAuth access token.
+pltcrgAccessToken :: Lens' ProjectsLocationsTransferConfigsRunsGet (Maybe Text)
+pltcrgAccessToken
+  = lens _pltcrgAccessToken
+      (\ s a -> s{_pltcrgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pltcrgUploadType :: Lens' ProjectsLocationsTransferConfigsRunsGet (Maybe Text)
+pltcrgUploadType
+  = lens _pltcrgUploadType
+      (\ s a -> s{_pltcrgUploadType = a})
+
+-- | The field will contain name of the resource requested, for example:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\/runs\/{run_id}\`
+pltcrgName :: Lens' ProjectsLocationsTransferConfigsRunsGet Text
+pltcrgName
+  = lens _pltcrgName (\ s a -> s{_pltcrgName = a})
+
+-- | JSONP
+pltcrgCallback :: Lens' ProjectsLocationsTransferConfigsRunsGet (Maybe Text)
+pltcrgCallback
+  = lens _pltcrgCallback
+      (\ s a -> s{_pltcrgCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsTransferConfigsRunsGet where
+        type Rs ProjectsLocationsTransferConfigsRunsGet =
+             TransferRun
+        type Scopes ProjectsLocationsTransferConfigsRunsGet =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient
+          ProjectsLocationsTransferConfigsRunsGet'{..}
+          = go _pltcrgName _pltcrgXgafv _pltcrgUploadProtocol
+              _pltcrgAccessToken
+              _pltcrgUploadType
+              _pltcrgCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           ProjectsLocationsTransferConfigsRunsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/List.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/List.hs
@@ -0,0 +1,219 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about running and completed jobs.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.transferConfigs.runs.list@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.List
+    (
+    -- * REST Resource
+      ProjectsLocationsTransferConfigsRunsListResource
+
+    -- * Creating a Request
+    , projectsLocationsTransferConfigsRunsList
+    , ProjectsLocationsTransferConfigsRunsList
+
+    -- * Request Lenses
+    , pltcrlRunAttempt
+    , pltcrlParent
+    , pltcrlStates
+    , pltcrlXgafv
+    , pltcrlUploadProtocol
+    , pltcrlAccessToken
+    , pltcrlUploadType
+    , pltcrlPageToken
+    , pltcrlPageSize
+    , pltcrlCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.transferConfigs.runs.list@ method which the
+-- 'ProjectsLocationsTransferConfigsRunsList' request conforms to.
+type ProjectsLocationsTransferConfigsRunsListResource
+     =
+     "v1" :>
+       Capture "parent" Text :>
+         "runs" :>
+           QueryParam "runAttempt" Text :>
+             QueryParams "states" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ListTransferRunsResponse
+
+-- | Returns information about running and completed jobs.
+--
+-- /See:/ 'projectsLocationsTransferConfigsRunsList' smart constructor.
+data ProjectsLocationsTransferConfigsRunsList = ProjectsLocationsTransferConfigsRunsList'
+    { _pltcrlRunAttempt     :: !(Maybe Text)
+    , _pltcrlParent         :: !Text
+    , _pltcrlStates         :: !(Maybe [Text])
+    , _pltcrlXgafv          :: !(Maybe Xgafv)
+    , _pltcrlUploadProtocol :: !(Maybe Text)
+    , _pltcrlAccessToken    :: !(Maybe Text)
+    , _pltcrlUploadType     :: !(Maybe Text)
+    , _pltcrlPageToken      :: !(Maybe Text)
+    , _pltcrlPageSize       :: !(Maybe (Textual Int32))
+    , _pltcrlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsTransferConfigsRunsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pltcrlRunAttempt'
+--
+-- * 'pltcrlParent'
+--
+-- * 'pltcrlStates'
+--
+-- * 'pltcrlXgafv'
+--
+-- * 'pltcrlUploadProtocol'
+--
+-- * 'pltcrlAccessToken'
+--
+-- * 'pltcrlUploadType'
+--
+-- * 'pltcrlPageToken'
+--
+-- * 'pltcrlPageSize'
+--
+-- * 'pltcrlCallback'
+projectsLocationsTransferConfigsRunsList
+    :: Text -- ^ 'pltcrlParent'
+    -> ProjectsLocationsTransferConfigsRunsList
+projectsLocationsTransferConfigsRunsList pPltcrlParent_ =
+    ProjectsLocationsTransferConfigsRunsList'
+    { _pltcrlRunAttempt = Nothing
+    , _pltcrlParent = pPltcrlParent_
+    , _pltcrlStates = Nothing
+    , _pltcrlXgafv = Nothing
+    , _pltcrlUploadProtocol = Nothing
+    , _pltcrlAccessToken = Nothing
+    , _pltcrlUploadType = Nothing
+    , _pltcrlPageToken = Nothing
+    , _pltcrlPageSize = Nothing
+    , _pltcrlCallback = Nothing
+    }
+
+-- | Indicates how run attempts are to be pulled.
+pltcrlRunAttempt :: Lens' ProjectsLocationsTransferConfigsRunsList (Maybe Text)
+pltcrlRunAttempt
+  = lens _pltcrlRunAttempt
+      (\ s a -> s{_pltcrlRunAttempt = a})
+
+-- | Name of transfer configuration for which transfer runs should be
+-- retrieved. Format of transfer configuration resource name is:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\`.
+pltcrlParent :: Lens' ProjectsLocationsTransferConfigsRunsList Text
+pltcrlParent
+  = lens _pltcrlParent (\ s a -> s{_pltcrlParent = a})
+
+-- | When specified, only transfer runs with requested states are returned.
+pltcrlStates :: Lens' ProjectsLocationsTransferConfigsRunsList [Text]
+pltcrlStates
+  = lens _pltcrlStates (\ s a -> s{_pltcrlStates = a})
+      . _Default
+      . _Coerce
+
+-- | V1 error format.
+pltcrlXgafv :: Lens' ProjectsLocationsTransferConfigsRunsList (Maybe Xgafv)
+pltcrlXgafv
+  = lens _pltcrlXgafv (\ s a -> s{_pltcrlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pltcrlUploadProtocol :: Lens' ProjectsLocationsTransferConfigsRunsList (Maybe Text)
+pltcrlUploadProtocol
+  = lens _pltcrlUploadProtocol
+      (\ s a -> s{_pltcrlUploadProtocol = a})
+
+-- | OAuth access token.
+pltcrlAccessToken :: Lens' ProjectsLocationsTransferConfigsRunsList (Maybe Text)
+pltcrlAccessToken
+  = lens _pltcrlAccessToken
+      (\ s a -> s{_pltcrlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pltcrlUploadType :: Lens' ProjectsLocationsTransferConfigsRunsList (Maybe Text)
+pltcrlUploadType
+  = lens _pltcrlUploadType
+      (\ s a -> s{_pltcrlUploadType = a})
+
+-- | Pagination token, which can be used to request a specific page of
+-- \`ListTransferRunsRequest\` list results. For multiple-page results,
+-- \`ListTransferRunsResponse\` outputs a \`next_page\` token, which can be
+-- used as the \`page_token\` value to request the next page of list
+-- results.
+pltcrlPageToken :: Lens' ProjectsLocationsTransferConfigsRunsList (Maybe Text)
+pltcrlPageToken
+  = lens _pltcrlPageToken
+      (\ s a -> s{_pltcrlPageToken = a})
+
+-- | Page size. The default page size is the maximum value of 1000 results.
+pltcrlPageSize :: Lens' ProjectsLocationsTransferConfigsRunsList (Maybe Int32)
+pltcrlPageSize
+  = lens _pltcrlPageSize
+      (\ s a -> s{_pltcrlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+pltcrlCallback :: Lens' ProjectsLocationsTransferConfigsRunsList (Maybe Text)
+pltcrlCallback
+  = lens _pltcrlCallback
+      (\ s a -> s{_pltcrlCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsTransferConfigsRunsList where
+        type Rs ProjectsLocationsTransferConfigsRunsList =
+             ListTransferRunsResponse
+        type Scopes ProjectsLocationsTransferConfigsRunsList
+             =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient
+          ProjectsLocationsTransferConfigsRunsList'{..}
+          = go _pltcrlParent _pltcrlRunAttempt
+              (_pltcrlStates ^. _Default)
+              _pltcrlXgafv
+              _pltcrlUploadProtocol
+              _pltcrlAccessToken
+              _pltcrlUploadType
+              _pltcrlPageToken
+              _pltcrlPageSize
+              _pltcrlCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           ProjectsLocationsTransferConfigsRunsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/TransferLogs/List.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/TransferLogs/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/Runs/TransferLogs/List.hs
@@ -0,0 +1,212 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.TransferLogs.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns user facing log messages for the data transfer run.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.transferConfigs.runs.transferLogs.list@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.TransferLogs.List
+    (
+    -- * REST Resource
+      ProjectsLocationsTransferConfigsRunsTransferLogsListResource
+
+    -- * Creating a Request
+    , projectsLocationsTransferConfigsRunsTransferLogsList
+    , ProjectsLocationsTransferConfigsRunsTransferLogsList
+
+    -- * Request Lenses
+    , pltcrtllParent
+    , pltcrtllXgafv
+    , pltcrtllUploadProtocol
+    , pltcrtllMessageTypes
+    , pltcrtllAccessToken
+    , pltcrtllUploadType
+    , pltcrtllPageToken
+    , pltcrtllPageSize
+    , pltcrtllCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.transferConfigs.runs.transferLogs.list@ method which the
+-- 'ProjectsLocationsTransferConfigsRunsTransferLogsList' request conforms to.
+type ProjectsLocationsTransferConfigsRunsTransferLogsListResource
+     =
+     "v1" :>
+       Capture "parent" Text :>
+         "transferLogs" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParams "messageTypes" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListTransferLogsResponse
+
+-- | Returns user facing log messages for the data transfer run.
+--
+-- /See:/ 'projectsLocationsTransferConfigsRunsTransferLogsList' smart constructor.
+data ProjectsLocationsTransferConfigsRunsTransferLogsList = ProjectsLocationsTransferConfigsRunsTransferLogsList'
+    { _pltcrtllParent         :: !Text
+    , _pltcrtllXgafv          :: !(Maybe Xgafv)
+    , _pltcrtllUploadProtocol :: !(Maybe Text)
+    , _pltcrtllMessageTypes   :: !(Maybe [Text])
+    , _pltcrtllAccessToken    :: !(Maybe Text)
+    , _pltcrtllUploadType     :: !(Maybe Text)
+    , _pltcrtllPageToken      :: !(Maybe Text)
+    , _pltcrtllPageSize       :: !(Maybe (Textual Int32))
+    , _pltcrtllCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsTransferConfigsRunsTransferLogsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pltcrtllParent'
+--
+-- * 'pltcrtllXgafv'
+--
+-- * 'pltcrtllUploadProtocol'
+--
+-- * 'pltcrtllMessageTypes'
+--
+-- * 'pltcrtllAccessToken'
+--
+-- * 'pltcrtllUploadType'
+--
+-- * 'pltcrtllPageToken'
+--
+-- * 'pltcrtllPageSize'
+--
+-- * 'pltcrtllCallback'
+projectsLocationsTransferConfigsRunsTransferLogsList
+    :: Text -- ^ 'pltcrtllParent'
+    -> ProjectsLocationsTransferConfigsRunsTransferLogsList
+projectsLocationsTransferConfigsRunsTransferLogsList pPltcrtllParent_ =
+    ProjectsLocationsTransferConfigsRunsTransferLogsList'
+    { _pltcrtllParent = pPltcrtllParent_
+    , _pltcrtllXgafv = Nothing
+    , _pltcrtllUploadProtocol = Nothing
+    , _pltcrtllMessageTypes = Nothing
+    , _pltcrtllAccessToken = Nothing
+    , _pltcrtllUploadType = Nothing
+    , _pltcrtllPageToken = Nothing
+    , _pltcrtllPageSize = Nothing
+    , _pltcrtllCallback = Nothing
+    }
+
+-- | Transfer run name in the form:
+-- \`projects\/{project_id}\/transferConfigs\/{config_Id}\/runs\/{run_id}\`.
+pltcrtllParent :: Lens' ProjectsLocationsTransferConfigsRunsTransferLogsList Text
+pltcrtllParent
+  = lens _pltcrtllParent
+      (\ s a -> s{_pltcrtllParent = a})
+
+-- | V1 error format.
+pltcrtllXgafv :: Lens' ProjectsLocationsTransferConfigsRunsTransferLogsList (Maybe Xgafv)
+pltcrtllXgafv
+  = lens _pltcrtllXgafv
+      (\ s a -> s{_pltcrtllXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pltcrtllUploadProtocol :: Lens' ProjectsLocationsTransferConfigsRunsTransferLogsList (Maybe Text)
+pltcrtllUploadProtocol
+  = lens _pltcrtllUploadProtocol
+      (\ s a -> s{_pltcrtllUploadProtocol = a})
+
+-- | Message types to return. If not populated - INFO, WARNING and ERROR
+-- messages are returned.
+pltcrtllMessageTypes :: Lens' ProjectsLocationsTransferConfigsRunsTransferLogsList [Text]
+pltcrtllMessageTypes
+  = lens _pltcrtllMessageTypes
+      (\ s a -> s{_pltcrtllMessageTypes = a})
+      . _Default
+      . _Coerce
+
+-- | OAuth access token.
+pltcrtllAccessToken :: Lens' ProjectsLocationsTransferConfigsRunsTransferLogsList (Maybe Text)
+pltcrtllAccessToken
+  = lens _pltcrtllAccessToken
+      (\ s a -> s{_pltcrtllAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pltcrtllUploadType :: Lens' ProjectsLocationsTransferConfigsRunsTransferLogsList (Maybe Text)
+pltcrtllUploadType
+  = lens _pltcrtllUploadType
+      (\ s a -> s{_pltcrtllUploadType = a})
+
+-- | Pagination token, which can be used to request a specific page of
+-- \`ListTransferLogsRequest\` list results. For multiple-page results,
+-- \`ListTransferLogsResponse\` outputs a \`next_page\` token, which can be
+-- used as the \`page_token\` value to request the next page of list
+-- results.
+pltcrtllPageToken :: Lens' ProjectsLocationsTransferConfigsRunsTransferLogsList (Maybe Text)
+pltcrtllPageToken
+  = lens _pltcrtllPageToken
+      (\ s a -> s{_pltcrtllPageToken = a})
+
+-- | Page size. The default page size is the maximum value of 1000 results.
+pltcrtllPageSize :: Lens' ProjectsLocationsTransferConfigsRunsTransferLogsList (Maybe Int32)
+pltcrtllPageSize
+  = lens _pltcrtllPageSize
+      (\ s a -> s{_pltcrtllPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+pltcrtllCallback :: Lens' ProjectsLocationsTransferConfigsRunsTransferLogsList (Maybe Text)
+pltcrtllCallback
+  = lens _pltcrtllCallback
+      (\ s a -> s{_pltcrtllCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsTransferConfigsRunsTransferLogsList
+         where
+        type Rs
+               ProjectsLocationsTransferConfigsRunsTransferLogsList
+             = ListTransferLogsResponse
+        type Scopes
+               ProjectsLocationsTransferConfigsRunsTransferLogsList
+             =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient
+          ProjectsLocationsTransferConfigsRunsTransferLogsList'{..}
+          = go _pltcrtllParent _pltcrtllXgafv
+              _pltcrtllUploadProtocol
+              (_pltcrtllMessageTypes ^. _Default)
+              _pltcrtllAccessToken
+              _pltcrtllUploadType
+              _pltcrtllPageToken
+              _pltcrtllPageSize
+              _pltcrtllCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           ProjectsLocationsTransferConfigsRunsTransferLogsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/ScheduleRuns.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/ScheduleRuns.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/Locations/TransferConfigs/ScheduleRuns.hs
@@ -0,0 +1,178 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.ScheduleRuns
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates transfer runs for a time range [start_time, end_time]. For each
+-- date - or whatever granularity the data source supports - in the range,
+-- one transfer run is created. Note that runs are created per UTC time in
+-- the time range.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.locations.transferConfigs.scheduleRuns@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.ScheduleRuns
+    (
+    -- * REST Resource
+      ProjectsLocationsTransferConfigsScheduleRunsResource
+
+    -- * Creating a Request
+    , projectsLocationsTransferConfigsScheduleRuns
+    , ProjectsLocationsTransferConfigsScheduleRuns
+
+    -- * Request Lenses
+    , pltcsrParent
+    , pltcsrXgafv
+    , pltcsrUploadProtocol
+    , pltcsrAccessToken
+    , pltcsrUploadType
+    , pltcsrPayload
+    , pltcsrCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.locations.transferConfigs.scheduleRuns@ method which the
+-- 'ProjectsLocationsTransferConfigsScheduleRuns' request conforms to.
+type ProjectsLocationsTransferConfigsScheduleRunsResource
+     =
+     "v1" :>
+       CaptureMode "parent" "scheduleRuns" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] ScheduleTransferRunsRequest :>
+                       Post '[JSON] ScheduleTransferRunsResponse
+
+-- | Creates transfer runs for a time range [start_time, end_time]. For each
+-- date - or whatever granularity the data source supports - in the range,
+-- one transfer run is created. Note that runs are created per UTC time in
+-- the time range.
+--
+-- /See:/ 'projectsLocationsTransferConfigsScheduleRuns' smart constructor.
+data ProjectsLocationsTransferConfigsScheduleRuns = ProjectsLocationsTransferConfigsScheduleRuns'
+    { _pltcsrParent         :: !Text
+    , _pltcsrXgafv          :: !(Maybe Xgafv)
+    , _pltcsrUploadProtocol :: !(Maybe Text)
+    , _pltcsrAccessToken    :: !(Maybe Text)
+    , _pltcsrUploadType     :: !(Maybe Text)
+    , _pltcsrPayload        :: !ScheduleTransferRunsRequest
+    , _pltcsrCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsTransferConfigsScheduleRuns' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pltcsrParent'
+--
+-- * 'pltcsrXgafv'
+--
+-- * 'pltcsrUploadProtocol'
+--
+-- * 'pltcsrAccessToken'
+--
+-- * 'pltcsrUploadType'
+--
+-- * 'pltcsrPayload'
+--
+-- * 'pltcsrCallback'
+projectsLocationsTransferConfigsScheduleRuns
+    :: Text -- ^ 'pltcsrParent'
+    -> ScheduleTransferRunsRequest -- ^ 'pltcsrPayload'
+    -> ProjectsLocationsTransferConfigsScheduleRuns
+projectsLocationsTransferConfigsScheduleRuns pPltcsrParent_ pPltcsrPayload_ =
+    ProjectsLocationsTransferConfigsScheduleRuns'
+    { _pltcsrParent = pPltcsrParent_
+    , _pltcsrXgafv = Nothing
+    , _pltcsrUploadProtocol = Nothing
+    , _pltcsrAccessToken = Nothing
+    , _pltcsrUploadType = Nothing
+    , _pltcsrPayload = pPltcsrPayload_
+    , _pltcsrCallback = Nothing
+    }
+
+-- | Transfer configuration name in the form:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\`.
+pltcsrParent :: Lens' ProjectsLocationsTransferConfigsScheduleRuns Text
+pltcsrParent
+  = lens _pltcsrParent (\ s a -> s{_pltcsrParent = a})
+
+-- | V1 error format.
+pltcsrXgafv :: Lens' ProjectsLocationsTransferConfigsScheduleRuns (Maybe Xgafv)
+pltcsrXgafv
+  = lens _pltcsrXgafv (\ s a -> s{_pltcsrXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pltcsrUploadProtocol :: Lens' ProjectsLocationsTransferConfigsScheduleRuns (Maybe Text)
+pltcsrUploadProtocol
+  = lens _pltcsrUploadProtocol
+      (\ s a -> s{_pltcsrUploadProtocol = a})
+
+-- | OAuth access token.
+pltcsrAccessToken :: Lens' ProjectsLocationsTransferConfigsScheduleRuns (Maybe Text)
+pltcsrAccessToken
+  = lens _pltcsrAccessToken
+      (\ s a -> s{_pltcsrAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pltcsrUploadType :: Lens' ProjectsLocationsTransferConfigsScheduleRuns (Maybe Text)
+pltcsrUploadType
+  = lens _pltcsrUploadType
+      (\ s a -> s{_pltcsrUploadType = a})
+
+-- | Multipart request metadata.
+pltcsrPayload :: Lens' ProjectsLocationsTransferConfigsScheduleRuns ScheduleTransferRunsRequest
+pltcsrPayload
+  = lens _pltcsrPayload
+      (\ s a -> s{_pltcsrPayload = a})
+
+-- | JSONP
+pltcsrCallback :: Lens' ProjectsLocationsTransferConfigsScheduleRuns (Maybe Text)
+pltcsrCallback
+  = lens _pltcsrCallback
+      (\ s a -> s{_pltcsrCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsTransferConfigsScheduleRuns where
+        type Rs ProjectsLocationsTransferConfigsScheduleRuns
+             = ScheduleTransferRunsResponse
+        type Scopes
+               ProjectsLocationsTransferConfigsScheduleRuns
+             =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform"]
+        requestClient
+          ProjectsLocationsTransferConfigsScheduleRuns'{..}
+          = go _pltcsrParent _pltcsrXgafv _pltcsrUploadProtocol
+              _pltcsrAccessToken
+              _pltcsrUploadType
+              _pltcsrCallback
+              (Just AltJSON)
+              _pltcsrPayload
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           ProjectsLocationsTransferConfigsScheduleRunsResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Create.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Create.hs
@@ -0,0 +1,194 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new data transfer configuration.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.transferConfigs.create@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Create
+    (
+    -- * REST Resource
+      ProjectsTransferConfigsCreateResource
+
+    -- * Creating a Request
+    , projectsTransferConfigsCreate
+    , ProjectsTransferConfigsCreate
+
+    -- * Request Lenses
+    , ptccParent
+    , ptccXgafv
+    , ptccUploadProtocol
+    , ptccAccessToken
+    , ptccUploadType
+    , ptccAuthorizationCode
+    , ptccPayload
+    , ptccCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.transferConfigs.create@ method which the
+-- 'ProjectsTransferConfigsCreate' request conforms to.
+type ProjectsTransferConfigsCreateResource =
+     "v1" :>
+       Capture "parent" Text :>
+         "transferConfigs" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "authorizationCode" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] TransferConfig :>
+                           Post '[JSON] TransferConfig
+
+-- | Creates a new data transfer configuration.
+--
+-- /See:/ 'projectsTransferConfigsCreate' smart constructor.
+data ProjectsTransferConfigsCreate = ProjectsTransferConfigsCreate'
+    { _ptccParent            :: !Text
+    , _ptccXgafv             :: !(Maybe Xgafv)
+    , _ptccUploadProtocol    :: !(Maybe Text)
+    , _ptccAccessToken       :: !(Maybe Text)
+    , _ptccUploadType        :: !(Maybe Text)
+    , _ptccAuthorizationCode :: !(Maybe Text)
+    , _ptccPayload           :: !TransferConfig
+    , _ptccCallback          :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTransferConfigsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptccParent'
+--
+-- * 'ptccXgafv'
+--
+-- * 'ptccUploadProtocol'
+--
+-- * 'ptccAccessToken'
+--
+-- * 'ptccUploadType'
+--
+-- * 'ptccAuthorizationCode'
+--
+-- * 'ptccPayload'
+--
+-- * 'ptccCallback'
+projectsTransferConfigsCreate
+    :: Text -- ^ 'ptccParent'
+    -> TransferConfig -- ^ 'ptccPayload'
+    -> ProjectsTransferConfigsCreate
+projectsTransferConfigsCreate pPtccParent_ pPtccPayload_ =
+    ProjectsTransferConfigsCreate'
+    { _ptccParent = pPtccParent_
+    , _ptccXgafv = Nothing
+    , _ptccUploadProtocol = Nothing
+    , _ptccAccessToken = Nothing
+    , _ptccUploadType = Nothing
+    , _ptccAuthorizationCode = Nothing
+    , _ptccPayload = pPtccPayload_
+    , _ptccCallback = Nothing
+    }
+
+-- | The BigQuery project id where the transfer configuration should be
+-- created. Must be in the format
+-- projects\/{project_id}\/locations\/{location_id} If specified location
+-- and location of the destination bigquery dataset do not match - the
+-- request will fail.
+ptccParent :: Lens' ProjectsTransferConfigsCreate Text
+ptccParent
+  = lens _ptccParent (\ s a -> s{_ptccParent = a})
+
+-- | V1 error format.
+ptccXgafv :: Lens' ProjectsTransferConfigsCreate (Maybe Xgafv)
+ptccXgafv
+  = lens _ptccXgafv (\ s a -> s{_ptccXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptccUploadProtocol :: Lens' ProjectsTransferConfigsCreate (Maybe Text)
+ptccUploadProtocol
+  = lens _ptccUploadProtocol
+      (\ s a -> s{_ptccUploadProtocol = a})
+
+-- | OAuth access token.
+ptccAccessToken :: Lens' ProjectsTransferConfigsCreate (Maybe Text)
+ptccAccessToken
+  = lens _ptccAccessToken
+      (\ s a -> s{_ptccAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptccUploadType :: Lens' ProjectsTransferConfigsCreate (Maybe Text)
+ptccUploadType
+  = lens _ptccUploadType
+      (\ s a -> s{_ptccUploadType = a})
+
+-- | Optional OAuth2 authorization code to use with this transfer
+-- configuration. This is required if new credentials are needed, as
+-- indicated by \`CheckValidCreds\`. In order to obtain authorization_code,
+-- please make a request to
+-- https:\/\/www.gstatic.com\/bigquerydatatransfer\/oauthz\/auth?client_id=&scope=&redirect_uri=
+-- * client_id should be OAuth client_id of BigQuery DTS API for the given
+-- data source returned by ListDataSources method. * data_source_scopes are
+-- the scopes returned by ListDataSources method. * redirect_uri is an
+-- optional parameter. If not specified, then authorization code is posted
+-- to the opener of authorization flow window. Otherwise it will be sent to
+-- the redirect uri. A special value of urn:ietf:wg:oauth:2.0:oob means
+-- that authorization code should be returned in the title bar of the
+-- browser, with the page text prompting the user to copy the code and
+-- paste it in the application.
+ptccAuthorizationCode :: Lens' ProjectsTransferConfigsCreate (Maybe Text)
+ptccAuthorizationCode
+  = lens _ptccAuthorizationCode
+      (\ s a -> s{_ptccAuthorizationCode = a})
+
+-- | Multipart request metadata.
+ptccPayload :: Lens' ProjectsTransferConfigsCreate TransferConfig
+ptccPayload
+  = lens _ptccPayload (\ s a -> s{_ptccPayload = a})
+
+-- | JSONP
+ptccCallback :: Lens' ProjectsTransferConfigsCreate (Maybe Text)
+ptccCallback
+  = lens _ptccCallback (\ s a -> s{_ptccCallback = a})
+
+instance GoogleRequest ProjectsTransferConfigsCreate
+         where
+        type Rs ProjectsTransferConfigsCreate =
+             TransferConfig
+        type Scopes ProjectsTransferConfigsCreate =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsTransferConfigsCreate'{..}
+          = go _ptccParent _ptccXgafv _ptccUploadProtocol
+              _ptccAccessToken
+              _ptccUploadType
+              _ptccAuthorizationCode
+              _ptccCallback
+              (Just AltJSON)
+              _ptccPayload
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsTransferConfigsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Delete.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Delete.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a data transfer configuration, including any associated transfer
+-- runs and logs.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.transferConfigs.delete@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Delete
+    (
+    -- * REST Resource
+      ProjectsTransferConfigsDeleteResource
+
+    -- * Creating a Request
+    , projectsTransferConfigsDelete
+    , ProjectsTransferConfigsDelete
+
+    -- * Request Lenses
+    , ptcdXgafv
+    , ptcdUploadProtocol
+    , ptcdAccessToken
+    , ptcdUploadType
+    , ptcdName
+    , ptcdCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.transferConfigs.delete@ method which the
+-- 'ProjectsTransferConfigsDelete' request conforms to.
+type ProjectsTransferConfigsDeleteResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes a data transfer configuration, including any associated transfer
+-- runs and logs.
+--
+-- /See:/ 'projectsTransferConfigsDelete' smart constructor.
+data ProjectsTransferConfigsDelete = ProjectsTransferConfigsDelete'
+    { _ptcdXgafv          :: !(Maybe Xgafv)
+    , _ptcdUploadProtocol :: !(Maybe Text)
+    , _ptcdAccessToken    :: !(Maybe Text)
+    , _ptcdUploadType     :: !(Maybe Text)
+    , _ptcdName           :: !Text
+    , _ptcdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTransferConfigsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcdXgafv'
+--
+-- * 'ptcdUploadProtocol'
+--
+-- * 'ptcdAccessToken'
+--
+-- * 'ptcdUploadType'
+--
+-- * 'ptcdName'
+--
+-- * 'ptcdCallback'
+projectsTransferConfigsDelete
+    :: Text -- ^ 'ptcdName'
+    -> ProjectsTransferConfigsDelete
+projectsTransferConfigsDelete pPtcdName_ =
+    ProjectsTransferConfigsDelete'
+    { _ptcdXgafv = Nothing
+    , _ptcdUploadProtocol = Nothing
+    , _ptcdAccessToken = Nothing
+    , _ptcdUploadType = Nothing
+    , _ptcdName = pPtcdName_
+    , _ptcdCallback = Nothing
+    }
+
+-- | V1 error format.
+ptcdXgafv :: Lens' ProjectsTransferConfigsDelete (Maybe Xgafv)
+ptcdXgafv
+  = lens _ptcdXgafv (\ s a -> s{_ptcdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptcdUploadProtocol :: Lens' ProjectsTransferConfigsDelete (Maybe Text)
+ptcdUploadProtocol
+  = lens _ptcdUploadProtocol
+      (\ s a -> s{_ptcdUploadProtocol = a})
+
+-- | OAuth access token.
+ptcdAccessToken :: Lens' ProjectsTransferConfigsDelete (Maybe Text)
+ptcdAccessToken
+  = lens _ptcdAccessToken
+      (\ s a -> s{_ptcdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptcdUploadType :: Lens' ProjectsTransferConfigsDelete (Maybe Text)
+ptcdUploadType
+  = lens _ptcdUploadType
+      (\ s a -> s{_ptcdUploadType = a})
+
+-- | The field will contain name of the resource requested, for example:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\`
+ptcdName :: Lens' ProjectsTransferConfigsDelete Text
+ptcdName = lens _ptcdName (\ s a -> s{_ptcdName = a})
+
+-- | JSONP
+ptcdCallback :: Lens' ProjectsTransferConfigsDelete (Maybe Text)
+ptcdCallback
+  = lens _ptcdCallback (\ s a -> s{_ptcdCallback = a})
+
+instance GoogleRequest ProjectsTransferConfigsDelete
+         where
+        type Rs ProjectsTransferConfigsDelete = Empty
+        type Scopes ProjectsTransferConfigsDelete =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsTransferConfigsDelete'{..}
+          = go _ptcdName _ptcdXgafv _ptcdUploadProtocol
+              _ptcdAccessToken
+              _ptcdUploadType
+              _ptcdCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsTransferConfigsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Get.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Get.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about a data transfer config.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.transferConfigs.get@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Get
+    (
+    -- * REST Resource
+      ProjectsTransferConfigsGetResource
+
+    -- * Creating a Request
+    , projectsTransferConfigsGet
+    , ProjectsTransferConfigsGet
+
+    -- * Request Lenses
+    , ptcgXgafv
+    , ptcgUploadProtocol
+    , ptcgAccessToken
+    , ptcgUploadType
+    , ptcgName
+    , ptcgCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.transferConfigs.get@ method which the
+-- 'ProjectsTransferConfigsGet' request conforms to.
+type ProjectsTransferConfigsGetResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :>
+                     Get '[JSON] TransferConfig
+
+-- | Returns information about a data transfer config.
+--
+-- /See:/ 'projectsTransferConfigsGet' smart constructor.
+data ProjectsTransferConfigsGet = ProjectsTransferConfigsGet'
+    { _ptcgXgafv          :: !(Maybe Xgafv)
+    , _ptcgUploadProtocol :: !(Maybe Text)
+    , _ptcgAccessToken    :: !(Maybe Text)
+    , _ptcgUploadType     :: !(Maybe Text)
+    , _ptcgName           :: !Text
+    , _ptcgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTransferConfigsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcgXgafv'
+--
+-- * 'ptcgUploadProtocol'
+--
+-- * 'ptcgAccessToken'
+--
+-- * 'ptcgUploadType'
+--
+-- * 'ptcgName'
+--
+-- * 'ptcgCallback'
+projectsTransferConfigsGet
+    :: Text -- ^ 'ptcgName'
+    -> ProjectsTransferConfigsGet
+projectsTransferConfigsGet pPtcgName_ =
+    ProjectsTransferConfigsGet'
+    { _ptcgXgafv = Nothing
+    , _ptcgUploadProtocol = Nothing
+    , _ptcgAccessToken = Nothing
+    , _ptcgUploadType = Nothing
+    , _ptcgName = pPtcgName_
+    , _ptcgCallback = Nothing
+    }
+
+-- | V1 error format.
+ptcgXgafv :: Lens' ProjectsTransferConfigsGet (Maybe Xgafv)
+ptcgXgafv
+  = lens _ptcgXgafv (\ s a -> s{_ptcgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptcgUploadProtocol :: Lens' ProjectsTransferConfigsGet (Maybe Text)
+ptcgUploadProtocol
+  = lens _ptcgUploadProtocol
+      (\ s a -> s{_ptcgUploadProtocol = a})
+
+-- | OAuth access token.
+ptcgAccessToken :: Lens' ProjectsTransferConfigsGet (Maybe Text)
+ptcgAccessToken
+  = lens _ptcgAccessToken
+      (\ s a -> s{_ptcgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptcgUploadType :: Lens' ProjectsTransferConfigsGet (Maybe Text)
+ptcgUploadType
+  = lens _ptcgUploadType
+      (\ s a -> s{_ptcgUploadType = a})
+
+-- | The field will contain name of the resource requested, for example:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\`
+ptcgName :: Lens' ProjectsTransferConfigsGet Text
+ptcgName = lens _ptcgName (\ s a -> s{_ptcgName = a})
+
+-- | JSONP
+ptcgCallback :: Lens' ProjectsTransferConfigsGet (Maybe Text)
+ptcgCallback
+  = lens _ptcgCallback (\ s a -> s{_ptcgCallback = a})
+
+instance GoogleRequest ProjectsTransferConfigsGet
+         where
+        type Rs ProjectsTransferConfigsGet = TransferConfig
+        type Scopes ProjectsTransferConfigsGet =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsTransferConfigsGet'{..}
+          = go _ptcgName _ptcgXgafv _ptcgUploadProtocol
+              _ptcgAccessToken
+              _ptcgUploadType
+              _ptcgCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsTransferConfigsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/List.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/List.hs
@@ -0,0 +1,199 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about all data transfers in the project.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.transferConfigs.list@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.List
+    (
+    -- * REST Resource
+      ProjectsTransferConfigsListResource
+
+    -- * Creating a Request
+    , projectsTransferConfigsList
+    , ProjectsTransferConfigsList
+
+    -- * Request Lenses
+    , ptclParent
+    , ptclXgafv
+    , ptclUploadProtocol
+    , ptclAccessToken
+    , ptclUploadType
+    , ptclPageToken
+    , ptclDataSourceIds
+    , ptclPageSize
+    , ptclCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.transferConfigs.list@ method which the
+-- 'ProjectsTransferConfigsList' request conforms to.
+type ProjectsTransferConfigsListResource =
+     "v1" :>
+       Capture "parent" Text :>
+         "transferConfigs" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParams "dataSourceIds" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListTransferConfigsResponse
+
+-- | Returns information about all data transfers in the project.
+--
+-- /See:/ 'projectsTransferConfigsList' smart constructor.
+data ProjectsTransferConfigsList = ProjectsTransferConfigsList'
+    { _ptclParent         :: !Text
+    , _ptclXgafv          :: !(Maybe Xgafv)
+    , _ptclUploadProtocol :: !(Maybe Text)
+    , _ptclAccessToken    :: !(Maybe Text)
+    , _ptclUploadType     :: !(Maybe Text)
+    , _ptclPageToken      :: !(Maybe Text)
+    , _ptclDataSourceIds  :: !(Maybe [Text])
+    , _ptclPageSize       :: !(Maybe (Textual Int32))
+    , _ptclCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTransferConfigsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptclParent'
+--
+-- * 'ptclXgafv'
+--
+-- * 'ptclUploadProtocol'
+--
+-- * 'ptclAccessToken'
+--
+-- * 'ptclUploadType'
+--
+-- * 'ptclPageToken'
+--
+-- * 'ptclDataSourceIds'
+--
+-- * 'ptclPageSize'
+--
+-- * 'ptclCallback'
+projectsTransferConfigsList
+    :: Text -- ^ 'ptclParent'
+    -> ProjectsTransferConfigsList
+projectsTransferConfigsList pPtclParent_ =
+    ProjectsTransferConfigsList'
+    { _ptclParent = pPtclParent_
+    , _ptclXgafv = Nothing
+    , _ptclUploadProtocol = Nothing
+    , _ptclAccessToken = Nothing
+    , _ptclUploadType = Nothing
+    , _ptclPageToken = Nothing
+    , _ptclDataSourceIds = Nothing
+    , _ptclPageSize = Nothing
+    , _ptclCallback = Nothing
+    }
+
+-- | The BigQuery project id for which data sources should be returned:
+-- \`projects\/{project_id}\`.
+ptclParent :: Lens' ProjectsTransferConfigsList Text
+ptclParent
+  = lens _ptclParent (\ s a -> s{_ptclParent = a})
+
+-- | V1 error format.
+ptclXgafv :: Lens' ProjectsTransferConfigsList (Maybe Xgafv)
+ptclXgafv
+  = lens _ptclXgafv (\ s a -> s{_ptclXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptclUploadProtocol :: Lens' ProjectsTransferConfigsList (Maybe Text)
+ptclUploadProtocol
+  = lens _ptclUploadProtocol
+      (\ s a -> s{_ptclUploadProtocol = a})
+
+-- | OAuth access token.
+ptclAccessToken :: Lens' ProjectsTransferConfigsList (Maybe Text)
+ptclAccessToken
+  = lens _ptclAccessToken
+      (\ s a -> s{_ptclAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptclUploadType :: Lens' ProjectsTransferConfigsList (Maybe Text)
+ptclUploadType
+  = lens _ptclUploadType
+      (\ s a -> s{_ptclUploadType = a})
+
+-- | Pagination token, which can be used to request a specific page of
+-- \`ListTransfersRequest\` list results. For multiple-page results,
+-- \`ListTransfersResponse\` outputs a \`next_page\` token, which can be
+-- used as the \`page_token\` value to request the next page of list
+-- results.
+ptclPageToken :: Lens' ProjectsTransferConfigsList (Maybe Text)
+ptclPageToken
+  = lens _ptclPageToken
+      (\ s a -> s{_ptclPageToken = a})
+
+-- | When specified, only configurations of requested data sources are
+-- returned.
+ptclDataSourceIds :: Lens' ProjectsTransferConfigsList [Text]
+ptclDataSourceIds
+  = lens _ptclDataSourceIds
+      (\ s a -> s{_ptclDataSourceIds = a})
+      . _Default
+      . _Coerce
+
+-- | Page size. The default page size is the maximum value of 1000 results.
+ptclPageSize :: Lens' ProjectsTransferConfigsList (Maybe Int32)
+ptclPageSize
+  = lens _ptclPageSize (\ s a -> s{_ptclPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+ptclCallback :: Lens' ProjectsTransferConfigsList (Maybe Text)
+ptclCallback
+  = lens _ptclCallback (\ s a -> s{_ptclCallback = a})
+
+instance GoogleRequest ProjectsTransferConfigsList
+         where
+        type Rs ProjectsTransferConfigsList =
+             ListTransferConfigsResponse
+        type Scopes ProjectsTransferConfigsList =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsTransferConfigsList'{..}
+          = go _ptclParent _ptclXgafv _ptclUploadProtocol
+              _ptclAccessToken
+              _ptclUploadType
+              _ptclPageToken
+              (_ptclDataSourceIds ^. _Default)
+              _ptclPageSize
+              _ptclCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsTransferConfigsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Patch.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Patch.hs
@@ -0,0 +1,207 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Patch
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a data transfer configuration. All fields must be set, even if
+-- they are not updated.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.transferConfigs.patch@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Patch
+    (
+    -- * REST Resource
+      ProjectsTransferConfigsPatchResource
+
+    -- * Creating a Request
+    , projectsTransferConfigsPatch
+    , ProjectsTransferConfigsPatch
+
+    -- * Request Lenses
+    , ptcpXgafv
+    , ptcpUploadProtocol
+    , ptcpUpdateMask
+    , ptcpAccessToken
+    , ptcpUploadType
+    , ptcpAuthorizationCode
+    , ptcpPayload
+    , ptcpName
+    , ptcpCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.transferConfigs.patch@ method which the
+-- 'ProjectsTransferConfigsPatch' request conforms to.
+type ProjectsTransferConfigsPatchResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "updateMask" GFieldMask :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "authorizationCode" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] TransferConfig :>
+                           Patch '[JSON] TransferConfig
+
+-- | Updates a data transfer configuration. All fields must be set, even if
+-- they are not updated.
+--
+-- /See:/ 'projectsTransferConfigsPatch' smart constructor.
+data ProjectsTransferConfigsPatch = ProjectsTransferConfigsPatch'
+    { _ptcpXgafv             :: !(Maybe Xgafv)
+    , _ptcpUploadProtocol    :: !(Maybe Text)
+    , _ptcpUpdateMask        :: !(Maybe GFieldMask)
+    , _ptcpAccessToken       :: !(Maybe Text)
+    , _ptcpUploadType        :: !(Maybe Text)
+    , _ptcpAuthorizationCode :: !(Maybe Text)
+    , _ptcpPayload           :: !TransferConfig
+    , _ptcpName              :: !Text
+    , _ptcpCallback          :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTransferConfigsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcpXgafv'
+--
+-- * 'ptcpUploadProtocol'
+--
+-- * 'ptcpUpdateMask'
+--
+-- * 'ptcpAccessToken'
+--
+-- * 'ptcpUploadType'
+--
+-- * 'ptcpAuthorizationCode'
+--
+-- * 'ptcpPayload'
+--
+-- * 'ptcpName'
+--
+-- * 'ptcpCallback'
+projectsTransferConfigsPatch
+    :: TransferConfig -- ^ 'ptcpPayload'
+    -> Text -- ^ 'ptcpName'
+    -> ProjectsTransferConfigsPatch
+projectsTransferConfigsPatch pPtcpPayload_ pPtcpName_ =
+    ProjectsTransferConfigsPatch'
+    { _ptcpXgafv = Nothing
+    , _ptcpUploadProtocol = Nothing
+    , _ptcpUpdateMask = Nothing
+    , _ptcpAccessToken = Nothing
+    , _ptcpUploadType = Nothing
+    , _ptcpAuthorizationCode = Nothing
+    , _ptcpPayload = pPtcpPayload_
+    , _ptcpName = pPtcpName_
+    , _ptcpCallback = Nothing
+    }
+
+-- | V1 error format.
+ptcpXgafv :: Lens' ProjectsTransferConfigsPatch (Maybe Xgafv)
+ptcpXgafv
+  = lens _ptcpXgafv (\ s a -> s{_ptcpXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptcpUploadProtocol :: Lens' ProjectsTransferConfigsPatch (Maybe Text)
+ptcpUploadProtocol
+  = lens _ptcpUploadProtocol
+      (\ s a -> s{_ptcpUploadProtocol = a})
+
+-- | Required list of fields to be updated in this request.
+ptcpUpdateMask :: Lens' ProjectsTransferConfigsPatch (Maybe GFieldMask)
+ptcpUpdateMask
+  = lens _ptcpUpdateMask
+      (\ s a -> s{_ptcpUpdateMask = a})
+
+-- | OAuth access token.
+ptcpAccessToken :: Lens' ProjectsTransferConfigsPatch (Maybe Text)
+ptcpAccessToken
+  = lens _ptcpAccessToken
+      (\ s a -> s{_ptcpAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptcpUploadType :: Lens' ProjectsTransferConfigsPatch (Maybe Text)
+ptcpUploadType
+  = lens _ptcpUploadType
+      (\ s a -> s{_ptcpUploadType = a})
+
+-- | Optional OAuth2 authorization code to use with this transfer
+-- configuration. If it is provided, the transfer configuration will be
+-- associated with the authorizing user. In order to obtain
+-- authorization_code, please make a request to
+-- https:\/\/www.gstatic.com\/bigquerydatatransfer\/oauthz\/auth?client_id=&scope=&redirect_uri=
+-- * client_id should be OAuth client_id of BigQuery DTS API for the given
+-- data source returned by ListDataSources method. * data_source_scopes are
+-- the scopes returned by ListDataSources method. * redirect_uri is an
+-- optional parameter. If not specified, then authorization code is posted
+-- to the opener of authorization flow window. Otherwise it will be sent to
+-- the redirect uri. A special value of urn:ietf:wg:oauth:2.0:oob means
+-- that authorization code should be returned in the title bar of the
+-- browser, with the page text prompting the user to copy the code and
+-- paste it in the application.
+ptcpAuthorizationCode :: Lens' ProjectsTransferConfigsPatch (Maybe Text)
+ptcpAuthorizationCode
+  = lens _ptcpAuthorizationCode
+      (\ s a -> s{_ptcpAuthorizationCode = a})
+
+-- | Multipart request metadata.
+ptcpPayload :: Lens' ProjectsTransferConfigsPatch TransferConfig
+ptcpPayload
+  = lens _ptcpPayload (\ s a -> s{_ptcpPayload = a})
+
+-- | The resource name of the transfer config. Transfer config names have the
+-- form of
+-- \`projects\/{project_id}\/locations\/{region}\/transferConfigs\/{config_id}\`.
+-- The name is automatically generated based on the config_id specified in
+-- CreateTransferConfigRequest along with project_id and region. If
+-- config_id is not provided, usually a uuid, even though it is not
+-- guaranteed or required, will be generated for config_id.
+ptcpName :: Lens' ProjectsTransferConfigsPatch Text
+ptcpName = lens _ptcpName (\ s a -> s{_ptcpName = a})
+
+-- | JSONP
+ptcpCallback :: Lens' ProjectsTransferConfigsPatch (Maybe Text)
+ptcpCallback
+  = lens _ptcpCallback (\ s a -> s{_ptcpCallback = a})
+
+instance GoogleRequest ProjectsTransferConfigsPatch
+         where
+        type Rs ProjectsTransferConfigsPatch = TransferConfig
+        type Scopes ProjectsTransferConfigsPatch =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsTransferConfigsPatch'{..}
+          = go _ptcpName _ptcpXgafv _ptcpUploadProtocol
+              _ptcpUpdateMask
+              _ptcpAccessToken
+              _ptcpUploadType
+              _ptcpAuthorizationCode
+              _ptcpCallback
+              (Just AltJSON)
+              _ptcpPayload
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsTransferConfigsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/Delete.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/Delete.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified transfer run.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.transferConfigs.runs.delete@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.Delete
+    (
+    -- * REST Resource
+      ProjectsTransferConfigsRunsDeleteResource
+
+    -- * Creating a Request
+    , projectsTransferConfigsRunsDelete
+    , ProjectsTransferConfigsRunsDelete
+
+    -- * Request Lenses
+    , ptcrdXgafv
+    , ptcrdUploadProtocol
+    , ptcrdAccessToken
+    , ptcrdUploadType
+    , ptcrdName
+    , ptcrdCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.transferConfigs.runs.delete@ method which the
+-- 'ProjectsTransferConfigsRunsDelete' request conforms to.
+type ProjectsTransferConfigsRunsDeleteResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes the specified transfer run.
+--
+-- /See:/ 'projectsTransferConfigsRunsDelete' smart constructor.
+data ProjectsTransferConfigsRunsDelete = ProjectsTransferConfigsRunsDelete'
+    { _ptcrdXgafv          :: !(Maybe Xgafv)
+    , _ptcrdUploadProtocol :: !(Maybe Text)
+    , _ptcrdAccessToken    :: !(Maybe Text)
+    , _ptcrdUploadType     :: !(Maybe Text)
+    , _ptcrdName           :: !Text
+    , _ptcrdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTransferConfigsRunsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcrdXgafv'
+--
+-- * 'ptcrdUploadProtocol'
+--
+-- * 'ptcrdAccessToken'
+--
+-- * 'ptcrdUploadType'
+--
+-- * 'ptcrdName'
+--
+-- * 'ptcrdCallback'
+projectsTransferConfigsRunsDelete
+    :: Text -- ^ 'ptcrdName'
+    -> ProjectsTransferConfigsRunsDelete
+projectsTransferConfigsRunsDelete pPtcrdName_ =
+    ProjectsTransferConfigsRunsDelete'
+    { _ptcrdXgafv = Nothing
+    , _ptcrdUploadProtocol = Nothing
+    , _ptcrdAccessToken = Nothing
+    , _ptcrdUploadType = Nothing
+    , _ptcrdName = pPtcrdName_
+    , _ptcrdCallback = Nothing
+    }
+
+-- | V1 error format.
+ptcrdXgafv :: Lens' ProjectsTransferConfigsRunsDelete (Maybe Xgafv)
+ptcrdXgafv
+  = lens _ptcrdXgafv (\ s a -> s{_ptcrdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptcrdUploadProtocol :: Lens' ProjectsTransferConfigsRunsDelete (Maybe Text)
+ptcrdUploadProtocol
+  = lens _ptcrdUploadProtocol
+      (\ s a -> s{_ptcrdUploadProtocol = a})
+
+-- | OAuth access token.
+ptcrdAccessToken :: Lens' ProjectsTransferConfigsRunsDelete (Maybe Text)
+ptcrdAccessToken
+  = lens _ptcrdAccessToken
+      (\ s a -> s{_ptcrdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptcrdUploadType :: Lens' ProjectsTransferConfigsRunsDelete (Maybe Text)
+ptcrdUploadType
+  = lens _ptcrdUploadType
+      (\ s a -> s{_ptcrdUploadType = a})
+
+-- | The field will contain name of the resource requested, for example:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\/runs\/{run_id}\`
+ptcrdName :: Lens' ProjectsTransferConfigsRunsDelete Text
+ptcrdName
+  = lens _ptcrdName (\ s a -> s{_ptcrdName = a})
+
+-- | JSONP
+ptcrdCallback :: Lens' ProjectsTransferConfigsRunsDelete (Maybe Text)
+ptcrdCallback
+  = lens _ptcrdCallback
+      (\ s a -> s{_ptcrdCallback = a})
+
+instance GoogleRequest
+         ProjectsTransferConfigsRunsDelete where
+        type Rs ProjectsTransferConfigsRunsDelete = Empty
+        type Scopes ProjectsTransferConfigsRunsDelete =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsTransferConfigsRunsDelete'{..}
+          = go _ptcrdName _ptcrdXgafv _ptcrdUploadProtocol
+              _ptcrdAccessToken
+              _ptcrdUploadType
+              _ptcrdCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsTransferConfigsRunsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/Get.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/Get.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about the particular transfer run.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.transferConfigs.runs.get@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.Get
+    (
+    -- * REST Resource
+      ProjectsTransferConfigsRunsGetResource
+
+    -- * Creating a Request
+    , projectsTransferConfigsRunsGet
+    , ProjectsTransferConfigsRunsGet
+
+    -- * Request Lenses
+    , ptcrgXgafv
+    , ptcrgUploadProtocol
+    , ptcrgAccessToken
+    , ptcrgUploadType
+    , ptcrgName
+    , ptcrgCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.transferConfigs.runs.get@ method which the
+-- 'ProjectsTransferConfigsRunsGet' request conforms to.
+type ProjectsTransferConfigsRunsGetResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] TransferRun
+
+-- | Returns information about the particular transfer run.
+--
+-- /See:/ 'projectsTransferConfigsRunsGet' smart constructor.
+data ProjectsTransferConfigsRunsGet = ProjectsTransferConfigsRunsGet'
+    { _ptcrgXgafv          :: !(Maybe Xgafv)
+    , _ptcrgUploadProtocol :: !(Maybe Text)
+    , _ptcrgAccessToken    :: !(Maybe Text)
+    , _ptcrgUploadType     :: !(Maybe Text)
+    , _ptcrgName           :: !Text
+    , _ptcrgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTransferConfigsRunsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcrgXgafv'
+--
+-- * 'ptcrgUploadProtocol'
+--
+-- * 'ptcrgAccessToken'
+--
+-- * 'ptcrgUploadType'
+--
+-- * 'ptcrgName'
+--
+-- * 'ptcrgCallback'
+projectsTransferConfigsRunsGet
+    :: Text -- ^ 'ptcrgName'
+    -> ProjectsTransferConfigsRunsGet
+projectsTransferConfigsRunsGet pPtcrgName_ =
+    ProjectsTransferConfigsRunsGet'
+    { _ptcrgXgafv = Nothing
+    , _ptcrgUploadProtocol = Nothing
+    , _ptcrgAccessToken = Nothing
+    , _ptcrgUploadType = Nothing
+    , _ptcrgName = pPtcrgName_
+    , _ptcrgCallback = Nothing
+    }
+
+-- | V1 error format.
+ptcrgXgafv :: Lens' ProjectsTransferConfigsRunsGet (Maybe Xgafv)
+ptcrgXgafv
+  = lens _ptcrgXgafv (\ s a -> s{_ptcrgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptcrgUploadProtocol :: Lens' ProjectsTransferConfigsRunsGet (Maybe Text)
+ptcrgUploadProtocol
+  = lens _ptcrgUploadProtocol
+      (\ s a -> s{_ptcrgUploadProtocol = a})
+
+-- | OAuth access token.
+ptcrgAccessToken :: Lens' ProjectsTransferConfigsRunsGet (Maybe Text)
+ptcrgAccessToken
+  = lens _ptcrgAccessToken
+      (\ s a -> s{_ptcrgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptcrgUploadType :: Lens' ProjectsTransferConfigsRunsGet (Maybe Text)
+ptcrgUploadType
+  = lens _ptcrgUploadType
+      (\ s a -> s{_ptcrgUploadType = a})
+
+-- | The field will contain name of the resource requested, for example:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\/runs\/{run_id}\`
+ptcrgName :: Lens' ProjectsTransferConfigsRunsGet Text
+ptcrgName
+  = lens _ptcrgName (\ s a -> s{_ptcrgName = a})
+
+-- | JSONP
+ptcrgCallback :: Lens' ProjectsTransferConfigsRunsGet (Maybe Text)
+ptcrgCallback
+  = lens _ptcrgCallback
+      (\ s a -> s{_ptcrgCallback = a})
+
+instance GoogleRequest ProjectsTransferConfigsRunsGet
+         where
+        type Rs ProjectsTransferConfigsRunsGet = TransferRun
+        type Scopes ProjectsTransferConfigsRunsGet =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsTransferConfigsRunsGet'{..}
+          = go _ptcrgName _ptcrgXgafv _ptcrgUploadProtocol
+              _ptcrgAccessToken
+              _ptcrgUploadType
+              _ptcrgCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsTransferConfigsRunsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/List.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/List.hs
@@ -0,0 +1,215 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about running and completed jobs.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.transferConfigs.runs.list@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.List
+    (
+    -- * REST Resource
+      ProjectsTransferConfigsRunsListResource
+
+    -- * Creating a Request
+    , projectsTransferConfigsRunsList
+    , ProjectsTransferConfigsRunsList
+
+    -- * Request Lenses
+    , ptcrlRunAttempt
+    , ptcrlParent
+    , ptcrlStates
+    , ptcrlXgafv
+    , ptcrlUploadProtocol
+    , ptcrlAccessToken
+    , ptcrlUploadType
+    , ptcrlPageToken
+    , ptcrlPageSize
+    , ptcrlCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.transferConfigs.runs.list@ method which the
+-- 'ProjectsTransferConfigsRunsList' request conforms to.
+type ProjectsTransferConfigsRunsListResource =
+     "v1" :>
+       Capture "parent" Text :>
+         "runs" :>
+           QueryParam "runAttempt" Text :>
+             QueryParams "states" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ListTransferRunsResponse
+
+-- | Returns information about running and completed jobs.
+--
+-- /See:/ 'projectsTransferConfigsRunsList' smart constructor.
+data ProjectsTransferConfigsRunsList = ProjectsTransferConfigsRunsList'
+    { _ptcrlRunAttempt     :: !(Maybe Text)
+    , _ptcrlParent         :: !Text
+    , _ptcrlStates         :: !(Maybe [Text])
+    , _ptcrlXgafv          :: !(Maybe Xgafv)
+    , _ptcrlUploadProtocol :: !(Maybe Text)
+    , _ptcrlAccessToken    :: !(Maybe Text)
+    , _ptcrlUploadType     :: !(Maybe Text)
+    , _ptcrlPageToken      :: !(Maybe Text)
+    , _ptcrlPageSize       :: !(Maybe (Textual Int32))
+    , _ptcrlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTransferConfigsRunsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcrlRunAttempt'
+--
+-- * 'ptcrlParent'
+--
+-- * 'ptcrlStates'
+--
+-- * 'ptcrlXgafv'
+--
+-- * 'ptcrlUploadProtocol'
+--
+-- * 'ptcrlAccessToken'
+--
+-- * 'ptcrlUploadType'
+--
+-- * 'ptcrlPageToken'
+--
+-- * 'ptcrlPageSize'
+--
+-- * 'ptcrlCallback'
+projectsTransferConfigsRunsList
+    :: Text -- ^ 'ptcrlParent'
+    -> ProjectsTransferConfigsRunsList
+projectsTransferConfigsRunsList pPtcrlParent_ =
+    ProjectsTransferConfigsRunsList'
+    { _ptcrlRunAttempt = Nothing
+    , _ptcrlParent = pPtcrlParent_
+    , _ptcrlStates = Nothing
+    , _ptcrlXgafv = Nothing
+    , _ptcrlUploadProtocol = Nothing
+    , _ptcrlAccessToken = Nothing
+    , _ptcrlUploadType = Nothing
+    , _ptcrlPageToken = Nothing
+    , _ptcrlPageSize = Nothing
+    , _ptcrlCallback = Nothing
+    }
+
+-- | Indicates how run attempts are to be pulled.
+ptcrlRunAttempt :: Lens' ProjectsTransferConfigsRunsList (Maybe Text)
+ptcrlRunAttempt
+  = lens _ptcrlRunAttempt
+      (\ s a -> s{_ptcrlRunAttempt = a})
+
+-- | Name of transfer configuration for which transfer runs should be
+-- retrieved. Format of transfer configuration resource name is:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\`.
+ptcrlParent :: Lens' ProjectsTransferConfigsRunsList Text
+ptcrlParent
+  = lens _ptcrlParent (\ s a -> s{_ptcrlParent = a})
+
+-- | When specified, only transfer runs with requested states are returned.
+ptcrlStates :: Lens' ProjectsTransferConfigsRunsList [Text]
+ptcrlStates
+  = lens _ptcrlStates (\ s a -> s{_ptcrlStates = a}) .
+      _Default
+      . _Coerce
+
+-- | V1 error format.
+ptcrlXgafv :: Lens' ProjectsTransferConfigsRunsList (Maybe Xgafv)
+ptcrlXgafv
+  = lens _ptcrlXgafv (\ s a -> s{_ptcrlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptcrlUploadProtocol :: Lens' ProjectsTransferConfigsRunsList (Maybe Text)
+ptcrlUploadProtocol
+  = lens _ptcrlUploadProtocol
+      (\ s a -> s{_ptcrlUploadProtocol = a})
+
+-- | OAuth access token.
+ptcrlAccessToken :: Lens' ProjectsTransferConfigsRunsList (Maybe Text)
+ptcrlAccessToken
+  = lens _ptcrlAccessToken
+      (\ s a -> s{_ptcrlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptcrlUploadType :: Lens' ProjectsTransferConfigsRunsList (Maybe Text)
+ptcrlUploadType
+  = lens _ptcrlUploadType
+      (\ s a -> s{_ptcrlUploadType = a})
+
+-- | Pagination token, which can be used to request a specific page of
+-- \`ListTransferRunsRequest\` list results. For multiple-page results,
+-- \`ListTransferRunsResponse\` outputs a \`next_page\` token, which can be
+-- used as the \`page_token\` value to request the next page of list
+-- results.
+ptcrlPageToken :: Lens' ProjectsTransferConfigsRunsList (Maybe Text)
+ptcrlPageToken
+  = lens _ptcrlPageToken
+      (\ s a -> s{_ptcrlPageToken = a})
+
+-- | Page size. The default page size is the maximum value of 1000 results.
+ptcrlPageSize :: Lens' ProjectsTransferConfigsRunsList (Maybe Int32)
+ptcrlPageSize
+  = lens _ptcrlPageSize
+      (\ s a -> s{_ptcrlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+ptcrlCallback :: Lens' ProjectsTransferConfigsRunsList (Maybe Text)
+ptcrlCallback
+  = lens _ptcrlCallback
+      (\ s a -> s{_ptcrlCallback = a})
+
+instance GoogleRequest
+         ProjectsTransferConfigsRunsList where
+        type Rs ProjectsTransferConfigsRunsList =
+             ListTransferRunsResponse
+        type Scopes ProjectsTransferConfigsRunsList =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient ProjectsTransferConfigsRunsList'{..}
+          = go _ptcrlParent _ptcrlRunAttempt
+              (_ptcrlStates ^. _Default)
+              _ptcrlXgafv
+              _ptcrlUploadProtocol
+              _ptcrlAccessToken
+              _ptcrlUploadType
+              _ptcrlPageToken
+              _ptcrlPageSize
+              _ptcrlCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsTransferConfigsRunsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/TransferLogs/List.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/TransferLogs/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/Runs/TransferLogs/List.hs
@@ -0,0 +1,209 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.TransferLogs.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns user facing log messages for the data transfer run.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.transferConfigs.runs.transferLogs.list@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.TransferLogs.List
+    (
+    -- * REST Resource
+      ProjectsTransferConfigsRunsTransferLogsListResource
+
+    -- * Creating a Request
+    , projectsTransferConfigsRunsTransferLogsList
+    , ProjectsTransferConfigsRunsTransferLogsList
+
+    -- * Request Lenses
+    , ptcrtllParent
+    , ptcrtllXgafv
+    , ptcrtllUploadProtocol
+    , ptcrtllMessageTypes
+    , ptcrtllAccessToken
+    , ptcrtllUploadType
+    , ptcrtllPageToken
+    , ptcrtllPageSize
+    , ptcrtllCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.transferConfigs.runs.transferLogs.list@ method which the
+-- 'ProjectsTransferConfigsRunsTransferLogsList' request conforms to.
+type ProjectsTransferConfigsRunsTransferLogsListResource
+     =
+     "v1" :>
+       Capture "parent" Text :>
+         "transferLogs" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParams "messageTypes" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListTransferLogsResponse
+
+-- | Returns user facing log messages for the data transfer run.
+--
+-- /See:/ 'projectsTransferConfigsRunsTransferLogsList' smart constructor.
+data ProjectsTransferConfigsRunsTransferLogsList = ProjectsTransferConfigsRunsTransferLogsList'
+    { _ptcrtllParent         :: !Text
+    , _ptcrtllXgafv          :: !(Maybe Xgafv)
+    , _ptcrtllUploadProtocol :: !(Maybe Text)
+    , _ptcrtllMessageTypes   :: !(Maybe [Text])
+    , _ptcrtllAccessToken    :: !(Maybe Text)
+    , _ptcrtllUploadType     :: !(Maybe Text)
+    , _ptcrtllPageToken      :: !(Maybe Text)
+    , _ptcrtllPageSize       :: !(Maybe (Textual Int32))
+    , _ptcrtllCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTransferConfigsRunsTransferLogsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcrtllParent'
+--
+-- * 'ptcrtllXgafv'
+--
+-- * 'ptcrtllUploadProtocol'
+--
+-- * 'ptcrtllMessageTypes'
+--
+-- * 'ptcrtllAccessToken'
+--
+-- * 'ptcrtllUploadType'
+--
+-- * 'ptcrtllPageToken'
+--
+-- * 'ptcrtllPageSize'
+--
+-- * 'ptcrtllCallback'
+projectsTransferConfigsRunsTransferLogsList
+    :: Text -- ^ 'ptcrtllParent'
+    -> ProjectsTransferConfigsRunsTransferLogsList
+projectsTransferConfigsRunsTransferLogsList pPtcrtllParent_ =
+    ProjectsTransferConfigsRunsTransferLogsList'
+    { _ptcrtllParent = pPtcrtllParent_
+    , _ptcrtllXgafv = Nothing
+    , _ptcrtllUploadProtocol = Nothing
+    , _ptcrtllMessageTypes = Nothing
+    , _ptcrtllAccessToken = Nothing
+    , _ptcrtllUploadType = Nothing
+    , _ptcrtllPageToken = Nothing
+    , _ptcrtllPageSize = Nothing
+    , _ptcrtllCallback = Nothing
+    }
+
+-- | Transfer run name in the form:
+-- \`projects\/{project_id}\/transferConfigs\/{config_Id}\/runs\/{run_id}\`.
+ptcrtllParent :: Lens' ProjectsTransferConfigsRunsTransferLogsList Text
+ptcrtllParent
+  = lens _ptcrtllParent
+      (\ s a -> s{_ptcrtllParent = a})
+
+-- | V1 error format.
+ptcrtllXgafv :: Lens' ProjectsTransferConfigsRunsTransferLogsList (Maybe Xgafv)
+ptcrtllXgafv
+  = lens _ptcrtllXgafv (\ s a -> s{_ptcrtllXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptcrtllUploadProtocol :: Lens' ProjectsTransferConfigsRunsTransferLogsList (Maybe Text)
+ptcrtllUploadProtocol
+  = lens _ptcrtllUploadProtocol
+      (\ s a -> s{_ptcrtllUploadProtocol = a})
+
+-- | Message types to return. If not populated - INFO, WARNING and ERROR
+-- messages are returned.
+ptcrtllMessageTypes :: Lens' ProjectsTransferConfigsRunsTransferLogsList [Text]
+ptcrtllMessageTypes
+  = lens _ptcrtllMessageTypes
+      (\ s a -> s{_ptcrtllMessageTypes = a})
+      . _Default
+      . _Coerce
+
+-- | OAuth access token.
+ptcrtllAccessToken :: Lens' ProjectsTransferConfigsRunsTransferLogsList (Maybe Text)
+ptcrtllAccessToken
+  = lens _ptcrtllAccessToken
+      (\ s a -> s{_ptcrtllAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptcrtllUploadType :: Lens' ProjectsTransferConfigsRunsTransferLogsList (Maybe Text)
+ptcrtllUploadType
+  = lens _ptcrtllUploadType
+      (\ s a -> s{_ptcrtllUploadType = a})
+
+-- | Pagination token, which can be used to request a specific page of
+-- \`ListTransferLogsRequest\` list results. For multiple-page results,
+-- \`ListTransferLogsResponse\` outputs a \`next_page\` token, which can be
+-- used as the \`page_token\` value to request the next page of list
+-- results.
+ptcrtllPageToken :: Lens' ProjectsTransferConfigsRunsTransferLogsList (Maybe Text)
+ptcrtllPageToken
+  = lens _ptcrtllPageToken
+      (\ s a -> s{_ptcrtllPageToken = a})
+
+-- | Page size. The default page size is the maximum value of 1000 results.
+ptcrtllPageSize :: Lens' ProjectsTransferConfigsRunsTransferLogsList (Maybe Int32)
+ptcrtllPageSize
+  = lens _ptcrtllPageSize
+      (\ s a -> s{_ptcrtllPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+ptcrtllCallback :: Lens' ProjectsTransferConfigsRunsTransferLogsList (Maybe Text)
+ptcrtllCallback
+  = lens _ptcrtllCallback
+      (\ s a -> s{_ptcrtllCallback = a})
+
+instance GoogleRequest
+         ProjectsTransferConfigsRunsTransferLogsList where
+        type Rs ProjectsTransferConfigsRunsTransferLogsList =
+             ListTransferLogsResponse
+        type Scopes
+               ProjectsTransferConfigsRunsTransferLogsList
+             =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient
+          ProjectsTransferConfigsRunsTransferLogsList'{..}
+          = go _ptcrtllParent _ptcrtllXgafv
+              _ptcrtllUploadProtocol
+              (_ptcrtllMessageTypes ^. _Default)
+              _ptcrtllAccessToken
+              _ptcrtllUploadType
+              _ptcrtllPageToken
+              _ptcrtllPageSize
+              _ptcrtllCallback
+              (Just AltJSON)
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           ProjectsTransferConfigsRunsTransferLogsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/ScheduleRuns.hs b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/ScheduleRuns.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/BigQueryDataTransfer/Projects/TransferConfigs/ScheduleRuns.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.ScheduleRuns
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates transfer runs for a time range [start_time, end_time]. For each
+-- date - or whatever granularity the data source supports - in the range,
+-- one transfer run is created. Note that runs are created per UTC time in
+-- the time range.
+--
+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery Data Transfer API Reference> for @bigquerydatatransfer.projects.transferConfigs.scheduleRuns@.
+module Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.ScheduleRuns
+    (
+    -- * REST Resource
+      ProjectsTransferConfigsScheduleRunsResource
+
+    -- * Creating a Request
+    , projectsTransferConfigsScheduleRuns
+    , ProjectsTransferConfigsScheduleRuns
+
+    -- * Request Lenses
+    , ptcsrParent
+    , ptcsrXgafv
+    , ptcsrUploadProtocol
+    , ptcsrAccessToken
+    , ptcsrUploadType
+    , ptcsrPayload
+    , ptcsrCallback
+    ) where
+
+import           Network.Google.BigQueryDataTransfer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @bigquerydatatransfer.projects.transferConfigs.scheduleRuns@ method which the
+-- 'ProjectsTransferConfigsScheduleRuns' request conforms to.
+type ProjectsTransferConfigsScheduleRunsResource =
+     "v1" :>
+       CaptureMode "parent" "scheduleRuns" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] ScheduleTransferRunsRequest :>
+                       Post '[JSON] ScheduleTransferRunsResponse
+
+-- | Creates transfer runs for a time range [start_time, end_time]. For each
+-- date - or whatever granularity the data source supports - in the range,
+-- one transfer run is created. Note that runs are created per UTC time in
+-- the time range.
+--
+-- /See:/ 'projectsTransferConfigsScheduleRuns' smart constructor.
+data ProjectsTransferConfigsScheduleRuns = ProjectsTransferConfigsScheduleRuns'
+    { _ptcsrParent         :: !Text
+    , _ptcsrXgafv          :: !(Maybe Xgafv)
+    , _ptcsrUploadProtocol :: !(Maybe Text)
+    , _ptcsrAccessToken    :: !(Maybe Text)
+    , _ptcsrUploadType     :: !(Maybe Text)
+    , _ptcsrPayload        :: !ScheduleTransferRunsRequest
+    , _ptcsrCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTransferConfigsScheduleRuns' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcsrParent'
+--
+-- * 'ptcsrXgafv'
+--
+-- * 'ptcsrUploadProtocol'
+--
+-- * 'ptcsrAccessToken'
+--
+-- * 'ptcsrUploadType'
+--
+-- * 'ptcsrPayload'
+--
+-- * 'ptcsrCallback'
+projectsTransferConfigsScheduleRuns
+    :: Text -- ^ 'ptcsrParent'
+    -> ScheduleTransferRunsRequest -- ^ 'ptcsrPayload'
+    -> ProjectsTransferConfigsScheduleRuns
+projectsTransferConfigsScheduleRuns pPtcsrParent_ pPtcsrPayload_ =
+    ProjectsTransferConfigsScheduleRuns'
+    { _ptcsrParent = pPtcsrParent_
+    , _ptcsrXgafv = Nothing
+    , _ptcsrUploadProtocol = Nothing
+    , _ptcsrAccessToken = Nothing
+    , _ptcsrUploadType = Nothing
+    , _ptcsrPayload = pPtcsrPayload_
+    , _ptcsrCallback = Nothing
+    }
+
+-- | Transfer configuration name in the form:
+-- \`projects\/{project_id}\/transferConfigs\/{config_id}\`.
+ptcsrParent :: Lens' ProjectsTransferConfigsScheduleRuns Text
+ptcsrParent
+  = lens _ptcsrParent (\ s a -> s{_ptcsrParent = a})
+
+-- | V1 error format.
+ptcsrXgafv :: Lens' ProjectsTransferConfigsScheduleRuns (Maybe Xgafv)
+ptcsrXgafv
+  = lens _ptcsrXgafv (\ s a -> s{_ptcsrXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptcsrUploadProtocol :: Lens' ProjectsTransferConfigsScheduleRuns (Maybe Text)
+ptcsrUploadProtocol
+  = lens _ptcsrUploadProtocol
+      (\ s a -> s{_ptcsrUploadProtocol = a})
+
+-- | OAuth access token.
+ptcsrAccessToken :: Lens' ProjectsTransferConfigsScheduleRuns (Maybe Text)
+ptcsrAccessToken
+  = lens _ptcsrAccessToken
+      (\ s a -> s{_ptcsrAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptcsrUploadType :: Lens' ProjectsTransferConfigsScheduleRuns (Maybe Text)
+ptcsrUploadType
+  = lens _ptcsrUploadType
+      (\ s a -> s{_ptcsrUploadType = a})
+
+-- | Multipart request metadata.
+ptcsrPayload :: Lens' ProjectsTransferConfigsScheduleRuns ScheduleTransferRunsRequest
+ptcsrPayload
+  = lens _ptcsrPayload (\ s a -> s{_ptcsrPayload = a})
+
+-- | JSONP
+ptcsrCallback :: Lens' ProjectsTransferConfigsScheduleRuns (Maybe Text)
+ptcsrCallback
+  = lens _ptcsrCallback
+      (\ s a -> s{_ptcsrCallback = a})
+
+instance GoogleRequest
+         ProjectsTransferConfigsScheduleRuns where
+        type Rs ProjectsTransferConfigsScheduleRuns =
+             ScheduleTransferRunsResponse
+        type Scopes ProjectsTransferConfigsScheduleRuns =
+             '["https://www.googleapis.com/auth/bigquery",
+               "https://www.googleapis.com/auth/cloud-platform"]
+        requestClient
+          ProjectsTransferConfigsScheduleRuns'{..}
+          = go _ptcsrParent _ptcsrXgafv _ptcsrUploadProtocol
+              _ptcsrAccessToken
+              _ptcsrUploadType
+              _ptcsrCallback
+              (Just AltJSON)
+              _ptcsrPayload
+              bigQueryDataTransferService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsTransferConfigsScheduleRunsResource)
+                      mempty
diff --git a/gogol-bigquerydatatransfer.cabal b/gogol-bigquerydatatransfer.cabal
new file mode 100644
--- /dev/null
+++ b/gogol-bigquerydatatransfer.cabal
@@ -0,0 +1,74 @@
+name:                  gogol-bigquerydatatransfer
+version:               0.4.0
+synopsis:              Google BigQuery Data Transfer SDK.
+homepage:              https://github.com/brendanhay/gogol
+bug-reports:           https://github.com/brendanhay/gogol/issues
+license:               OtherLicense
+license-file:          LICENSE
+author:                Brendan Hay
+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
+copyright:             Copyright (c) 2015-2016 Brendan Hay
+category:              Network, Google, Cloud
+build-type:            Simple
+cabal-version:         >= 1.10
+extra-source-files:    README.md src/.gitkeep
+
+description:
+    Transfers data from partner SaaS applications to Google BigQuery on a
+    scheduled, managed basis.
+    .
+    /Warning:/ This is an experimental prototype/preview release which is still
+    under exploratory development and not intended for public use, caveat emptor!
+    .
+    This library is compatible with version @v1@
+    of the API.
+
+source-repository head
+    type:     git
+    location: git://github.com/brendanhay/gogol.git
+
+library
+    default-language:  Haskell2010
+    hs-source-dirs:    src gen
+
+    ghc-options:       -Wall
+
+    exposed-modules:
+          Network.Google.BigQueryDataTransfer
+        , Network.Google.BigQueryDataTransfer.Types
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.CheckValidCreds
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.Get
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.DataSources.List
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.CheckValidCreds
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.Get
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.DataSources.List
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.Get
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.List
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Create
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Delete
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Get
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.List
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Patch
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.Delete
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.Get
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.List
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.Runs.TransferLogs.List
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.Locations.TransferConfigs.ScheduleRuns
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Create
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Delete
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Get
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.List
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Patch
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.Delete
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.Get
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.List
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.Runs.TransferLogs.List
+        , Network.Google.Resource.BigQueryDataTransfer.Projects.TransferConfigs.ScheduleRuns
+
+    other-modules:
+          Network.Google.BigQueryDataTransfer.Types.Product
+        , Network.Google.BigQueryDataTransfer.Types.Sum
+
+    build-depends:
+          gogol-core == 0.4.0.*
+        , base       >= 4.7 && < 5
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
