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-containerbuilder
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.1.1`
+
+
+## Description
+
+A client library for the Google Cloud Container Builder.
+
+
+## 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-containerbuilder` 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/ContainerBuilder.hs b/gen/Network/Google/ContainerBuilder.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/ContainerBuilder.hs
@@ -0,0 +1,274 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module      : Network.Google.ContainerBuilder
+-- 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)
+--
+-- Builds container images in the cloud.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference>
+module Network.Google.ContainerBuilder
+    (
+    -- * Service Configuration
+      containerBuilderService
+
+    -- * OAuth Scopes
+    , cloudPlatformScope
+
+    -- * API Declaration
+    , ContainerBuilderAPI
+
+    -- * Resources
+
+    -- ** cloudbuild.operations.get
+    , module Network.Google.Resource.Cloudbuild.Operations.Get
+
+    -- ** cloudbuild.operations.list
+    , module Network.Google.Resource.Cloudbuild.Operations.List
+
+    -- ** cloudbuild.projects.builds.cancel
+    , module Network.Google.Resource.Cloudbuild.Projects.Builds.Cancel
+
+    -- ** cloudbuild.projects.builds.create
+    , module Network.Google.Resource.Cloudbuild.Projects.Builds.Create
+
+    -- ** cloudbuild.projects.builds.get
+    , module Network.Google.Resource.Cloudbuild.Projects.Builds.Get
+
+    -- ** cloudbuild.projects.builds.list
+    , module Network.Google.Resource.Cloudbuild.Projects.Builds.List
+
+    -- ** cloudbuild.projects.triggers.create
+    , module Network.Google.Resource.Cloudbuild.Projects.Triggers.Create
+
+    -- ** cloudbuild.projects.triggers.delete
+    , module Network.Google.Resource.Cloudbuild.Projects.Triggers.Delete
+
+    -- ** cloudbuild.projects.triggers.get
+    , module Network.Google.Resource.Cloudbuild.Projects.Triggers.Get
+
+    -- ** cloudbuild.projects.triggers.list
+    , module Network.Google.Resource.Cloudbuild.Projects.Triggers.List
+
+    -- ** cloudbuild.projects.triggers.patch
+    , module Network.Google.Resource.Cloudbuild.Projects.Triggers.Patch
+
+    -- * Types
+
+    -- ** BuildStep
+    , BuildStep
+    , buildStep
+    , bsDir
+    , bsArgs
+    , bsEnv
+    , bsWaitFor
+    , bsName
+    , bsId
+
+    -- ** SourceProvenance
+    , SourceProvenance
+    , sourceProvenance
+    , spResolvedRepoSource
+    , spResolvedStorageSource
+    , spFileHashes
+
+    -- ** ListBuildsResponse
+    , ListBuildsResponse
+    , listBuildsResponse
+    , lbrNextPageToken
+    , lbrBuilds
+
+    -- ** Status
+    , Status
+    , status
+    , sDetails
+    , sCode
+    , sMessage
+
+    -- ** ListOperationsResponse
+    , ListOperationsResponse
+    , listOperationsResponse
+    , lorNextPageToken
+    , lorOperations
+
+    -- ** Hash
+    , Hash
+    , hash
+    , hValue
+    , hType
+
+    -- ** Results
+    , Results
+    , results
+    , rImages
+    , rBuildStepImages
+
+    -- ** RepoSource
+    , RepoSource
+    , repoSource
+    , rsRepoName
+    , rsCommitSha
+    , rsBranchName
+    , rsTagName
+    , rsProjectId
+
+    -- ** Operation
+    , Operation
+    , operation
+    , oDone
+    , oError
+    , oResponse
+    , oName
+    , oMetadata
+
+    -- ** Empty
+    , Empty
+    , empty
+
+    -- ** StatusDetailsItem
+    , StatusDetailsItem
+    , statusDetailsItem
+    , sdiAddtional
+
+    -- ** Build
+    , Build
+    , build
+    , bImages
+    , bStatus
+    , bSourceProvenance
+    , bLogURL
+    , bResults
+    , bStartTime
+    , bLogsBucket
+    , bSteps
+    , bStatusDetail
+    , bSource
+    , bId
+    , bOptions
+    , bProjectId
+    , bTimeout
+    , bFinishTime
+    , bCreateTime
+
+    -- ** SourceProvenanceFileHashes
+    , SourceProvenanceFileHashes
+    , sourceProvenanceFileHashes
+    , spfhAddtional
+
+    -- ** CancelBuildRequest
+    , CancelBuildRequest
+    , cancelBuildRequest
+
+    -- ** StorageSource
+    , StorageSource
+    , storageSource
+    , ssBucket
+    , ssObject
+    , ssGeneration
+
+    -- ** ListBuildTriggersResponse
+    , ListBuildTriggersResponse
+    , listBuildTriggersResponse
+    , lbtrTriggers
+
+    -- ** BuildOptionsRequestedVerifyOption
+    , BuildOptionsRequestedVerifyOption (..)
+
+    -- ** FileHashes
+    , FileHashes
+    , fileHashes
+    , fhFileHash
+
+    -- ** Xgafv
+    , Xgafv (..)
+
+    -- ** BuildStatus
+    , BuildStatus (..)
+
+    -- ** HashType
+    , HashType (..)
+
+    -- ** Source
+    , Source
+    , source
+    , sRepoSource
+    , sStorageSource
+
+    -- ** OperationMetadata
+    , OperationMetadata
+    , operationMetadata
+    , omAddtional
+
+    -- ** BuildOperationMetadata
+    , BuildOperationMetadata
+    , buildOperationMetadata
+    , bomBuild
+
+    -- ** BuildOptions
+    , BuildOptions
+    , buildOptions
+    , boRequestedVerifyOption
+    , boSourceProvenanceHash
+
+    -- ** OperationResponse
+    , OperationResponse
+    , operationResponse
+    , orAddtional
+
+    -- ** BuildTrigger
+    , BuildTrigger
+    , buildTrigger
+    , btDisabled
+    , btTriggerTemplate
+    , btBuild
+    , btId
+    , btDescription
+    , btFilename
+    , btCreateTime
+
+    -- ** BuiltImage
+    , BuiltImage
+    , builtImage
+    , biName
+    , biDigest
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+import           Network.Google.Resource.Cloudbuild.Operations.Get
+import           Network.Google.Resource.Cloudbuild.Operations.List
+import           Network.Google.Resource.Cloudbuild.Projects.Builds.Cancel
+import           Network.Google.Resource.Cloudbuild.Projects.Builds.Create
+import           Network.Google.Resource.Cloudbuild.Projects.Builds.Get
+import           Network.Google.Resource.Cloudbuild.Projects.Builds.List
+import           Network.Google.Resource.Cloudbuild.Projects.Triggers.Create
+import           Network.Google.Resource.Cloudbuild.Projects.Triggers.Delete
+import           Network.Google.Resource.Cloudbuild.Projects.Triggers.Get
+import           Network.Google.Resource.Cloudbuild.Projects.Triggers.List
+import           Network.Google.Resource.Cloudbuild.Projects.Triggers.Patch
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the Google Cloud Container Builder API service.
+type ContainerBuilderAPI =
+     OperationsListResource :<|> OperationsGetResource
+       :<|> ProjectsBuildsListResource
+       :<|> ProjectsBuildsGetResource
+       :<|> ProjectsBuildsCreateResource
+       :<|> ProjectsBuildsCancelResource
+       :<|> ProjectsTriggersListResource
+       :<|> ProjectsTriggersPatchResource
+       :<|> ProjectsTriggersGetResource
+       :<|> ProjectsTriggersCreateResource
+       :<|> ProjectsTriggersDeleteResource
diff --git a/gen/Network/Google/ContainerBuilder/Types.hs b/gen/Network/Google/ContainerBuilder/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/ContainerBuilder/Types.hs
@@ -0,0 +1,215 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.ContainerBuilder.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.ContainerBuilder.Types
+    (
+    -- * Service Configuration
+      containerBuilderService
+
+    -- * OAuth Scopes
+    , cloudPlatformScope
+
+    -- * BuildStep
+    , BuildStep
+    , buildStep
+    , bsDir
+    , bsArgs
+    , bsEnv
+    , bsWaitFor
+    , bsName
+    , bsId
+
+    -- * SourceProvenance
+    , SourceProvenance
+    , sourceProvenance
+    , spResolvedRepoSource
+    , spResolvedStorageSource
+    , spFileHashes
+
+    -- * ListBuildsResponse
+    , ListBuildsResponse
+    , listBuildsResponse
+    , lbrNextPageToken
+    , lbrBuilds
+
+    -- * Status
+    , Status
+    , status
+    , sDetails
+    , sCode
+    , sMessage
+
+    -- * ListOperationsResponse
+    , ListOperationsResponse
+    , listOperationsResponse
+    , lorNextPageToken
+    , lorOperations
+
+    -- * Hash
+    , Hash
+    , hash
+    , hValue
+    , hType
+
+    -- * Results
+    , Results
+    , results
+    , rImages
+    , rBuildStepImages
+
+    -- * RepoSource
+    , RepoSource
+    , repoSource
+    , rsRepoName
+    , rsCommitSha
+    , rsBranchName
+    , rsTagName
+    , rsProjectId
+
+    -- * Operation
+    , Operation
+    , operation
+    , oDone
+    , oError
+    , oResponse
+    , oName
+    , oMetadata
+
+    -- * Empty
+    , Empty
+    , empty
+
+    -- * StatusDetailsItem
+    , StatusDetailsItem
+    , statusDetailsItem
+    , sdiAddtional
+
+    -- * Build
+    , Build
+    , build
+    , bImages
+    , bStatus
+    , bSourceProvenance
+    , bLogURL
+    , bResults
+    , bStartTime
+    , bLogsBucket
+    , bSteps
+    , bStatusDetail
+    , bSource
+    , bId
+    , bOptions
+    , bProjectId
+    , bTimeout
+    , bFinishTime
+    , bCreateTime
+
+    -- * SourceProvenanceFileHashes
+    , SourceProvenanceFileHashes
+    , sourceProvenanceFileHashes
+    , spfhAddtional
+
+    -- * CancelBuildRequest
+    , CancelBuildRequest
+    , cancelBuildRequest
+
+    -- * StorageSource
+    , StorageSource
+    , storageSource
+    , ssBucket
+    , ssObject
+    , ssGeneration
+
+    -- * ListBuildTriggersResponse
+    , ListBuildTriggersResponse
+    , listBuildTriggersResponse
+    , lbtrTriggers
+
+    -- * BuildOptionsRequestedVerifyOption
+    , BuildOptionsRequestedVerifyOption (..)
+
+    -- * FileHashes
+    , FileHashes
+    , fileHashes
+    , fhFileHash
+
+    -- * Xgafv
+    , Xgafv (..)
+
+    -- * BuildStatus
+    , BuildStatus (..)
+
+    -- * HashType
+    , HashType (..)
+
+    -- * Source
+    , Source
+    , source
+    , sRepoSource
+    , sStorageSource
+
+    -- * OperationMetadata
+    , OperationMetadata
+    , operationMetadata
+    , omAddtional
+
+    -- * BuildOperationMetadata
+    , BuildOperationMetadata
+    , buildOperationMetadata
+    , bomBuild
+
+    -- * BuildOptions
+    , BuildOptions
+    , buildOptions
+    , boRequestedVerifyOption
+    , boSourceProvenanceHash
+
+    -- * OperationResponse
+    , OperationResponse
+    , operationResponse
+    , orAddtional
+
+    -- * BuildTrigger
+    , BuildTrigger
+    , buildTrigger
+    , btDisabled
+    , btTriggerTemplate
+    , btBuild
+    , btId
+    , btDescription
+    , btFilename
+    , btCreateTime
+
+    -- * BuiltImage
+    , BuiltImage
+    , builtImage
+    , biName
+    , biDigest
+    ) where
+
+import           Network.Google.ContainerBuilder.Types.Product
+import           Network.Google.ContainerBuilder.Types.Sum
+import           Network.Google.Prelude
+
+-- | Default request referring to version 'v1' of the Google Cloud Container Builder API. This contains the host and root path used as a starting point for constructing service requests.
+containerBuilderService :: ServiceConfig
+containerBuilderService
+  = defaultService (ServiceId "cloudbuild:v1")
+      "cloudbuild.googleapis.com"
+
+-- | View and manage your data across Google Cloud Platform services
+cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]
+cloudPlatformScope = Proxy;
diff --git a/gen/Network/Google/ContainerBuilder/Types/Product.hs b/gen/Network/Google/ContainerBuilder/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/ContainerBuilder/Types/Product.hs
@@ -0,0 +1,1520 @@
+{-# 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.ContainerBuilder.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.ContainerBuilder.Types.Product where
+
+import           Network.Google.ContainerBuilder.Types.Sum
+import           Network.Google.Prelude
+
+-- | BuildStep describes a step to perform in the build pipeline.
+--
+-- /See:/ 'buildStep' smart constructor.
+data BuildStep = BuildStep'
+    { _bsDir     :: !(Maybe Text)
+    , _bsArgs    :: !(Maybe [Text])
+    , _bsEnv     :: !(Maybe [Text])
+    , _bsWaitFor :: !(Maybe [Text])
+    , _bsName    :: !(Maybe Text)
+    , _bsId      :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BuildStep' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bsDir'
+--
+-- * 'bsArgs'
+--
+-- * 'bsEnv'
+--
+-- * 'bsWaitFor'
+--
+-- * 'bsName'
+--
+-- * 'bsId'
+buildStep
+    :: BuildStep
+buildStep =
+    BuildStep'
+    { _bsDir = Nothing
+    , _bsArgs = Nothing
+    , _bsEnv = Nothing
+    , _bsWaitFor = Nothing
+    , _bsName = Nothing
+    , _bsId = Nothing
+    }
+
+-- | Working directory (relative to project source root) to use when running
+-- this operation\'s container.
+bsDir :: Lens' BuildStep (Maybe Text)
+bsDir = lens _bsDir (\ s a -> s{_bsDir = a})
+
+-- | A list of arguments that will be presented to the step when it is
+-- started. If the image used to run the step\'s container has an
+-- entrypoint, these args will be used as arguments to that entrypoint. If
+-- the image does not define an entrypoint, the first element in args will
+-- be used as the entrypoint, and the remainder will be used as arguments.
+bsArgs :: Lens' BuildStep [Text]
+bsArgs
+  = lens _bsArgs (\ s a -> s{_bsArgs = a}) . _Default .
+      _Coerce
+
+-- | A list of environment variable definitions to be used when running a
+-- step. The elements are of the form \"KEY=VALUE\" for the environment
+-- variable \"KEY\" being given the value \"VALUE\".
+bsEnv :: Lens' BuildStep [Text]
+bsEnv
+  = lens _bsEnv (\ s a -> s{_bsEnv = a}) . _Default .
+      _Coerce
+
+-- | The ID(s) of the step(s) that this build step depends on. This build
+-- step will not start until all the build steps in wait_for have completed
+-- successfully. If wait_for is empty, this build step will start when all
+-- previous build steps in the Build.Steps list have completed
+-- successfully.
+bsWaitFor :: Lens' BuildStep [Text]
+bsWaitFor
+  = lens _bsWaitFor (\ s a -> s{_bsWaitFor = a}) .
+      _Default
+      . _Coerce
+
+-- | The name of the container image that will run this particular build
+-- step. If the image is already available in the host\'s Docker daemon\'s
+-- cache, it will be run directly. If not, the host will attempt to pull
+-- the image first, using the builder service account\'s credentials if
+-- necessary. The Docker daemon\'s cache will already have the latest
+-- versions of all of the officially supported build steps
+-- (https:\/\/github.com\/GoogleCloudPlatform\/cloud-builders). The Docker
+-- daemon will also have cached many of the layers for some popular images,
+-- like \"ubuntu\", \"debian\", but they will be refreshed at the time you
+-- attempt to use them. If you built an image in a previous build step, it
+-- will be stored in the host\'s Docker daemon\'s cache and is available to
+-- use as the name for a later build step.
+bsName :: Lens' BuildStep (Maybe Text)
+bsName = lens _bsName (\ s a -> s{_bsName = a})
+
+-- | Optional unique identifier for this build step, used in wait_for to
+-- reference this build step as a dependency.
+bsId :: Lens' BuildStep (Maybe Text)
+bsId = lens _bsId (\ s a -> s{_bsId = a})
+
+instance FromJSON BuildStep where
+        parseJSON
+          = withObject "BuildStep"
+              (\ o ->
+                 BuildStep' <$>
+                   (o .:? "dir") <*> (o .:? "args" .!= mempty) <*>
+                     (o .:? "env" .!= mempty)
+                     <*> (o .:? "waitFor" .!= mempty)
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON BuildStep where
+        toJSON BuildStep'{..}
+          = object
+              (catMaybes
+                 [("dir" .=) <$> _bsDir, ("args" .=) <$> _bsArgs,
+                  ("env" .=) <$> _bsEnv, ("waitFor" .=) <$> _bsWaitFor,
+                  ("name" .=) <$> _bsName, ("id" .=) <$> _bsId])
+
+-- | Provenance of the source. Ways to find the original source, or verify
+-- that some source was used for this build.
+--
+-- /See:/ 'sourceProvenance' smart constructor.
+data SourceProvenance = SourceProvenance'
+    { _spResolvedRepoSource    :: !(Maybe RepoSource)
+    , _spResolvedStorageSource :: !(Maybe StorageSource)
+    , _spFileHashes            :: !(Maybe SourceProvenanceFileHashes)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceProvenance' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'spResolvedRepoSource'
+--
+-- * 'spResolvedStorageSource'
+--
+-- * 'spFileHashes'
+sourceProvenance
+    :: SourceProvenance
+sourceProvenance =
+    SourceProvenance'
+    { _spResolvedRepoSource = Nothing
+    , _spResolvedStorageSource = Nothing
+    , _spFileHashes = Nothing
+    }
+
+-- | A copy of the build\'s source.repo_source, if exists, with any revisions
+-- resolved.
+spResolvedRepoSource :: Lens' SourceProvenance (Maybe RepoSource)
+spResolvedRepoSource
+  = lens _spResolvedRepoSource
+      (\ s a -> s{_spResolvedRepoSource = a})
+
+-- | A copy of the build\'s source.storage_source, if exists, with any
+-- generations resolved.
+spResolvedStorageSource :: Lens' SourceProvenance (Maybe StorageSource)
+spResolvedStorageSource
+  = lens _spResolvedStorageSource
+      (\ s a -> s{_spResolvedStorageSource = a})
+
+-- | Hash(es) of the build source, which can be used to verify that the
+-- original source integrity was maintained in the build. Note that
+-- FileHashes will only be populated if BuildOptions has requested a
+-- SourceProvenanceHash. The keys to this map are file paths used as build
+-- source and the values contain the hash values for those files. If the
+-- build source came in a single package such as a gzipped tarfile
+-- (.tar.gz), the FileHash will be for the single path to that file.
+-- \'OutputOnly
+spFileHashes :: Lens' SourceProvenance (Maybe SourceProvenanceFileHashes)
+spFileHashes
+  = lens _spFileHashes (\ s a -> s{_spFileHashes = a})
+
+instance FromJSON SourceProvenance where
+        parseJSON
+          = withObject "SourceProvenance"
+              (\ o ->
+                 SourceProvenance' <$>
+                   (o .:? "resolvedRepoSource") <*>
+                     (o .:? "resolvedStorageSource")
+                     <*> (o .:? "fileHashes"))
+
+instance ToJSON SourceProvenance where
+        toJSON SourceProvenance'{..}
+          = object
+              (catMaybes
+                 [("resolvedRepoSource" .=) <$> _spResolvedRepoSource,
+                  ("resolvedStorageSource" .=) <$>
+                    _spResolvedStorageSource,
+                  ("fileHashes" .=) <$> _spFileHashes])
+
+-- | Response including listed builds.
+--
+-- /See:/ 'listBuildsResponse' smart constructor.
+data ListBuildsResponse = ListBuildsResponse'
+    { _lbrNextPageToken :: !(Maybe Text)
+    , _lbrBuilds        :: !(Maybe [Build])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListBuildsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lbrNextPageToken'
+--
+-- * 'lbrBuilds'
+listBuildsResponse
+    :: ListBuildsResponse
+listBuildsResponse =
+    ListBuildsResponse'
+    { _lbrNextPageToken = Nothing
+    , _lbrBuilds = Nothing
+    }
+
+-- | Token to receive the next page of results.
+lbrNextPageToken :: Lens' ListBuildsResponse (Maybe Text)
+lbrNextPageToken
+  = lens _lbrNextPageToken
+      (\ s a -> s{_lbrNextPageToken = a})
+
+-- | Builds will be sorted by create_time, descending.
+lbrBuilds :: Lens' ListBuildsResponse [Build]
+lbrBuilds
+  = lens _lbrBuilds (\ s a -> s{_lbrBuilds = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListBuildsResponse where
+        parseJSON
+          = withObject "ListBuildsResponse"
+              (\ o ->
+                 ListBuildsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "builds" .!= mempty))
+
+instance ToJSON ListBuildsResponse where
+        toJSON ListBuildsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lbrNextPageToken,
+                  ("builds" .=) <$> _lbrBuilds])
+
+-- | The \`Status\` type defines a logical error model that is suitable for
+-- different programming environments, including REST APIs and RPC APIs. It
+-- is used by [gRPC](https:\/\/github.com\/grpc). The error model is
+-- designed to be: - Simple to use and understand for most users - Flexible
+-- enough to meet unexpected needs # Overview The \`Status\` message
+-- contains three pieces of data: error code, error message, and error
+-- details. The error code should be an enum value of google.rpc.Code, but
+-- it may accept additional error codes if needed. The error message should
+-- be a developer-facing English message that helps developers *understand*
+-- and *resolve* the error. If a localized user-facing error message is
+-- needed, put the localized message in the error details or localize it in
+-- the client. The optional error details may contain arbitrary information
+-- about the error. There is a predefined set of error detail types in the
+-- package \`google.rpc\` which can be used for common error conditions. #
+-- Language mapping The \`Status\` message is the logical representation of
+-- the error model, but it is not necessarily the actual wire format. When
+-- the \`Status\` message is exposed in different client libraries and
+-- different wire protocols, it can be mapped differently. For example, it
+-- will likely be mapped to some exceptions in Java, but more likely mapped
+-- to some error codes in C. # Other uses The error model and the
+-- \`Status\` message can be used in a variety of environments, either with
+-- or without APIs, to provide a consistent developer experience across
+-- different environments. Example uses of this error model include: -
+-- Partial errors. If a service needs to return partial errors to the
+-- client, it may embed the \`Status\` in the normal response to indicate
+-- the partial errors. - Workflow errors. A typical workflow has multiple
+-- steps. Each step may have a \`Status\` message for error reporting
+-- purpose. - Batch operations. If a client uses batch request and batch
+-- response, the \`Status\` message should be used directly inside batch
+-- response, one for each error sub-response. - Asynchronous operations. If
+-- an API call embeds asynchronous operation results in its response, the
+-- status of those operations should be represented directly using the
+-- \`Status\` message. - Logging. If some API errors are stored in logs,
+-- the message \`Status\` could be used directly after any stripping needed
+-- for security\/privacy reasons.
+--
+-- /See:/ 'status' smart constructor.
+data Status = Status'
+    { _sDetails :: !(Maybe [StatusDetailsItem])
+    , _sCode    :: !(Maybe (Textual Int32))
+    , _sMessage :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Status' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sDetails'
+--
+-- * 'sCode'
+--
+-- * 'sMessage'
+status
+    :: Status
+status =
+    Status'
+    { _sDetails = Nothing
+    , _sCode = Nothing
+    , _sMessage = Nothing
+    }
+
+-- | A list of messages that carry the error details. There will be a common
+-- set of message types for APIs to use.
+sDetails :: Lens' Status [StatusDetailsItem]
+sDetails
+  = lens _sDetails (\ s a -> s{_sDetails = a}) .
+      _Default
+      . _Coerce
+
+-- | The status code, which should be an enum value of google.rpc.Code.
+sCode :: Lens' Status (Maybe Int32)
+sCode
+  = lens _sCode (\ s a -> s{_sCode = a}) .
+      mapping _Coerce
+
+-- | A developer-facing error message, which should be in English. Any
+-- user-facing error message should be localized and sent in the
+-- google.rpc.Status.details 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 Operations.ListOperations.
+--
+-- /See:/ 'listOperationsResponse' smart constructor.
+data ListOperationsResponse = ListOperationsResponse'
+    { _lorNextPageToken :: !(Maybe Text)
+    , _lorOperations    :: !(Maybe [Operation])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListOperationsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lorNextPageToken'
+--
+-- * 'lorOperations'
+listOperationsResponse
+    :: ListOperationsResponse
+listOperationsResponse =
+    ListOperationsResponse'
+    { _lorNextPageToken = Nothing
+    , _lorOperations = Nothing
+    }
+
+-- | The standard List next-page token.
+lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text)
+lorNextPageToken
+  = lens _lorNextPageToken
+      (\ s a -> s{_lorNextPageToken = a})
+
+-- | A list of operations that matches the specified filter in the request.
+lorOperations :: Lens' ListOperationsResponse [Operation]
+lorOperations
+  = lens _lorOperations
+      (\ s a -> s{_lorOperations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListOperationsResponse where
+        parseJSON
+          = withObject "ListOperationsResponse"
+              (\ o ->
+                 ListOperationsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "operations" .!= mempty))
+
+instance ToJSON ListOperationsResponse where
+        toJSON ListOperationsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lorNextPageToken,
+                  ("operations" .=) <$> _lorOperations])
+
+-- | Container message for hash values.
+--
+-- /See:/ 'hash' smart constructor.
+data Hash = Hash'
+    { _hValue :: !(Maybe Base64)
+    , _hType  :: !(Maybe HashType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Hash' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'hValue'
+--
+-- * 'hType'
+hash
+    :: Hash
+hash =
+    Hash'
+    { _hValue = Nothing
+    , _hType = Nothing
+    }
+
+-- | The hash value.
+hValue :: Lens' Hash (Maybe ByteString)
+hValue
+  = lens _hValue (\ s a -> s{_hValue = a}) .
+      mapping _Base64
+
+-- | The type of hash that was performed.
+hType :: Lens' Hash (Maybe HashType)
+hType = lens _hType (\ s a -> s{_hType = a})
+
+instance FromJSON Hash where
+        parseJSON
+          = withObject "Hash"
+              (\ o -> Hash' <$> (o .:? "value") <*> (o .:? "type"))
+
+instance ToJSON Hash where
+        toJSON Hash'{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _hValue, ("type" .=) <$> _hType])
+
+-- | Results describes the artifacts created by the build pipeline.
+--
+-- /See:/ 'results' smart constructor.
+data Results = Results'
+    { _rImages          :: !(Maybe [BuiltImage])
+    , _rBuildStepImages :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Results' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rImages'
+--
+-- * 'rBuildStepImages'
+results
+    :: Results
+results =
+    Results'
+    { _rImages = Nothing
+    , _rBuildStepImages = Nothing
+    }
+
+-- | Images that were built as a part of the build.
+rImages :: Lens' Results [BuiltImage]
+rImages
+  = lens _rImages (\ s a -> s{_rImages = a}) . _Default
+      . _Coerce
+
+-- | List of build step digests, in order corresponding to build step
+-- indices.
+rBuildStepImages :: Lens' Results [Text]
+rBuildStepImages
+  = lens _rBuildStepImages
+      (\ s a -> s{_rBuildStepImages = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Results where
+        parseJSON
+          = withObject "Results"
+              (\ o ->
+                 Results' <$>
+                   (o .:? "images" .!= mempty) <*>
+                     (o .:? "buildStepImages" .!= mempty))
+
+instance ToJSON Results where
+        toJSON Results'{..}
+          = object
+              (catMaybes
+                 [("images" .=) <$> _rImages,
+                  ("buildStepImages" .=) <$> _rBuildStepImages])
+
+-- | RepoSource describes the location of the source in a Google Cloud Source
+-- Repository.
+--
+-- /See:/ 'repoSource' smart constructor.
+data RepoSource = RepoSource'
+    { _rsRepoName   :: !(Maybe Text)
+    , _rsCommitSha  :: !(Maybe Text)
+    , _rsBranchName :: !(Maybe Text)
+    , _rsTagName    :: !(Maybe Text)
+    , _rsProjectId  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RepoSource' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rsRepoName'
+--
+-- * 'rsCommitSha'
+--
+-- * 'rsBranchName'
+--
+-- * 'rsTagName'
+--
+-- * 'rsProjectId'
+repoSource
+    :: RepoSource
+repoSource =
+    RepoSource'
+    { _rsRepoName = Nothing
+    , _rsCommitSha = Nothing
+    , _rsBranchName = Nothing
+    , _rsTagName = Nothing
+    , _rsProjectId = Nothing
+    }
+
+-- | Name of the repo. If omitted, the name \"default\" is assumed.
+rsRepoName :: Lens' RepoSource (Maybe Text)
+rsRepoName
+  = lens _rsRepoName (\ s a -> s{_rsRepoName = a})
+
+-- | Explicit commit SHA to build.
+rsCommitSha :: Lens' RepoSource (Maybe Text)
+rsCommitSha
+  = lens _rsCommitSha (\ s a -> s{_rsCommitSha = a})
+
+-- | Name of the branch to build.
+rsBranchName :: Lens' RepoSource (Maybe Text)
+rsBranchName
+  = lens _rsBranchName (\ s a -> s{_rsBranchName = a})
+
+-- | Name of the tag to build.
+rsTagName :: Lens' RepoSource (Maybe Text)
+rsTagName
+  = lens _rsTagName (\ s a -> s{_rsTagName = a})
+
+-- | ID of the project that owns the repo. If omitted, the project ID
+-- requesting the build is assumed.
+rsProjectId :: Lens' RepoSource (Maybe Text)
+rsProjectId
+  = lens _rsProjectId (\ s a -> s{_rsProjectId = a})
+
+instance FromJSON RepoSource where
+        parseJSON
+          = withObject "RepoSource"
+              (\ o ->
+                 RepoSource' <$>
+                   (o .:? "repoName") <*> (o .:? "commitSha") <*>
+                     (o .:? "branchName")
+                     <*> (o .:? "tagName")
+                     <*> (o .:? "projectId"))
+
+instance ToJSON RepoSource where
+        toJSON RepoSource'{..}
+          = object
+              (catMaybes
+                 [("repoName" .=) <$> _rsRepoName,
+                  ("commitSha" .=) <$> _rsCommitSha,
+                  ("branchName" .=) <$> _rsBranchName,
+                  ("tagName" .=) <$> _rsTagName,
+                  ("projectId" .=) <$> _rsProjectId])
+
+-- | This resource represents a long-running operation that is the result of
+-- a network API call.
+--
+-- /See:/ 'operation' smart constructor.
+data Operation = Operation'
+    { _oDone     :: !(Maybe Bool)
+    , _oError    :: !(Maybe Status)
+    , _oResponse :: !(Maybe OperationResponse)
+    , _oName     :: !(Maybe Text)
+    , _oMetadata :: !(Maybe OperationMetadata)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Operation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'oDone'
+--
+-- * 'oError'
+--
+-- * 'oResponse'
+--
+-- * 'oName'
+--
+-- * 'oMetadata'
+operation
+    :: Operation
+operation =
+    Operation'
+    { _oDone = Nothing
+    , _oError = Nothing
+    , _oResponse = Nothing
+    , _oName = Nothing
+    , _oMetadata = Nothing
+    }
+
+-- | If the value is \`false\`, it means the operation is still in progress.
+-- If true, the operation is completed, and either \`error\` or
+-- \`response\` is available.
+oDone :: Lens' Operation (Maybe Bool)
+oDone = lens _oDone (\ s a -> s{_oDone = a})
+
+-- | The error result of the operation in case of failure or cancellation.
+oError :: Lens' Operation (Maybe Status)
+oError = lens _oError (\ s a -> s{_oError = a})
+
+-- | The normal response of the operation in case of success. If the original
+-- method returns no data on success, such as \`Delete\`, the response is
+-- \`google.protobuf.Empty\`. If the original method is standard
+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.
+-- For other methods, the response should have the type \`XxxResponse\`,
+-- where \`Xxx\` is the original method name. For example, if the original
+-- method name is \`TakeSnapshot()\`, the inferred response type is
+-- \`TakeSnapshotResponse\`.
+oResponse :: Lens' Operation (Maybe OperationResponse)
+oResponse
+  = lens _oResponse (\ s a -> s{_oResponse = a})
+
+-- | The server-assigned name, which is only unique within the same service
+-- that originally returns it. If you use the default HTTP mapping, the
+-- \`name\` should have the format of \`operations\/some\/unique\/name\`.
+oName :: Lens' Operation (Maybe Text)
+oName = lens _oName (\ s a -> s{_oName = a})
+
+-- | Service-specific metadata associated with the operation. It typically
+-- contains progress information and common metadata such as create time.
+-- Some services might not provide such metadata. Any method that returns a
+-- long-running operation should document the metadata type, if any.
+oMetadata :: Lens' Operation (Maybe OperationMetadata)
+oMetadata
+  = lens _oMetadata (\ s a -> s{_oMetadata = a})
+
+instance FromJSON Operation where
+        parseJSON
+          = withObject "Operation"
+              (\ o ->
+                 Operation' <$>
+                   (o .:? "done") <*> (o .:? "error") <*>
+                     (o .:? "response")
+                     <*> (o .:? "name")
+                     <*> (o .:? "metadata"))
+
+instance ToJSON Operation where
+        toJSON Operation'{..}
+          = object
+              (catMaybes
+                 [("done" .=) <$> _oDone, ("error" .=) <$> _oError,
+                  ("response" .=) <$> _oResponse,
+                  ("name" .=) <$> _oName,
+                  ("metadata" .=) <$> _oMetadata])
+
+-- | 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
+
+--
+-- /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
+
+-- | A build resource in the Container Builder API. At a high level, a Build
+-- describes where to find source code, how to build it (for example, the
+-- builder image to run on the source), and what tag to apply to the built
+-- image when it is pushed to Google Container Registry. Fields can include
+-- the following variables which will be expanded when the build is
+-- created: - $PROJECT_ID: the project ID of the build. - $BUILD_ID: the
+-- autogenerated ID of the build. - $REPO_NAME: the source repository name
+-- specified by RepoSource. - $BRANCH_NAME: the branch name specified by
+-- RepoSource. - $TAG_NAME: the tag name specified by RepoSource. -
+-- $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
+-- resolved from the specified branch or tag.
+--
+-- /See:/ 'build' smart constructor.
+data Build = Build'
+    { _bImages           :: !(Maybe [Text])
+    , _bStatus           :: !(Maybe BuildStatus)
+    , _bSourceProvenance :: !(Maybe SourceProvenance)
+    , _bLogURL           :: !(Maybe Text)
+    , _bResults          :: !(Maybe Results)
+    , _bStartTime        :: !(Maybe DateTime')
+    , _bLogsBucket       :: !(Maybe Text)
+    , _bSteps            :: !(Maybe [BuildStep])
+    , _bStatusDetail     :: !(Maybe Text)
+    , _bSource           :: !(Maybe Source)
+    , _bId               :: !(Maybe Text)
+    , _bOptions          :: !(Maybe BuildOptions)
+    , _bProjectId        :: !(Maybe Text)
+    , _bTimeout          :: !(Maybe Duration)
+    , _bFinishTime       :: !(Maybe DateTime')
+    , _bCreateTime       :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Build' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bImages'
+--
+-- * 'bStatus'
+--
+-- * 'bSourceProvenance'
+--
+-- * 'bLogURL'
+--
+-- * 'bResults'
+--
+-- * 'bStartTime'
+--
+-- * 'bLogsBucket'
+--
+-- * 'bSteps'
+--
+-- * 'bStatusDetail'
+--
+-- * 'bSource'
+--
+-- * 'bId'
+--
+-- * 'bOptions'
+--
+-- * 'bProjectId'
+--
+-- * 'bTimeout'
+--
+-- * 'bFinishTime'
+--
+-- * 'bCreateTime'
+build
+    :: Build
+build =
+    Build'
+    { _bImages = Nothing
+    , _bStatus = Nothing
+    , _bSourceProvenance = Nothing
+    , _bLogURL = Nothing
+    , _bResults = Nothing
+    , _bStartTime = Nothing
+    , _bLogsBucket = Nothing
+    , _bSteps = Nothing
+    , _bStatusDetail = Nothing
+    , _bSource = Nothing
+    , _bId = Nothing
+    , _bOptions = Nothing
+    , _bProjectId = Nothing
+    , _bTimeout = Nothing
+    , _bFinishTime = Nothing
+    , _bCreateTime = Nothing
+    }
+
+-- | A list of images to be pushed upon the successful completion of all
+-- build steps. The images will be pushed using the builder service
+-- account\'s credentials. The digests of the pushed images will be stored
+-- in the Build resource\'s results field. If any of the images fail to be
+-- pushed, the build is marked FAILURE.
+bImages :: Lens' Build [Text]
+bImages
+  = lens _bImages (\ s a -> s{_bImages = a}) . _Default
+      . _Coerce
+
+-- | Status of the build. \'OutputOnly
+bStatus :: Lens' Build (Maybe BuildStatus)
+bStatus = lens _bStatus (\ s a -> s{_bStatus = a})
+
+-- | A permanent fixed identifier for source. \'OutputOnly
+bSourceProvenance :: Lens' Build (Maybe SourceProvenance)
+bSourceProvenance
+  = lens _bSourceProvenance
+      (\ s a -> s{_bSourceProvenance = a})
+
+-- | URL to logs for this build in Google Cloud Logging. \'OutputOnly
+bLogURL :: Lens' Build (Maybe Text)
+bLogURL = lens _bLogURL (\ s a -> s{_bLogURL = a})
+
+-- | Results of the build. \'OutputOnly
+bResults :: Lens' Build (Maybe Results)
+bResults = lens _bResults (\ s a -> s{_bResults = a})
+
+-- | Time at which execution of the build was started. \'OutputOnly
+bStartTime :: Lens' Build (Maybe UTCTime)
+bStartTime
+  = lens _bStartTime (\ s a -> s{_bStartTime = a}) .
+      mapping _DateTime
+
+-- | Google Cloud Storage bucket where logs should be written (see [Bucket
+-- Name
+-- Requirements](https:\/\/cloud.google.com\/storage\/docs\/bucket-naming#requirements)).
+-- Logs file names will be of the format
+-- \`/l//o//g//s//b//u//c//k//e//t/\//l//o//g/−{build_id}.txt\`.
+bLogsBucket :: Lens' Build (Maybe Text)
+bLogsBucket
+  = lens _bLogsBucket (\ s a -> s{_bLogsBucket = a})
+
+-- | Describes the operations to be performed on the workspace.
+bSteps :: Lens' Build [BuildStep]
+bSteps
+  = lens _bSteps (\ s a -> s{_bSteps = a}) . _Default .
+      _Coerce
+
+-- | Customer-readable message about the current status. \'OutputOnly
+bStatusDetail :: Lens' Build (Maybe Text)
+bStatusDetail
+  = lens _bStatusDetail
+      (\ s a -> s{_bStatusDetail = a})
+
+-- | Describes where to find the source files to build.
+bSource :: Lens' Build (Maybe Source)
+bSource = lens _bSource (\ s a -> s{_bSource = a})
+
+-- | Unique identifier of the build. \'OutputOnly
+bId :: Lens' Build (Maybe Text)
+bId = lens _bId (\ s a -> s{_bId = a})
+
+-- | Special options for this build.
+bOptions :: Lens' Build (Maybe BuildOptions)
+bOptions = lens _bOptions (\ s a -> s{_bOptions = a})
+
+-- | ID of the project. \'OutputOnly.
+bProjectId :: Lens' Build (Maybe Text)
+bProjectId
+  = lens _bProjectId (\ s a -> s{_bProjectId = a})
+
+-- | Amount of time that this build should be allowed to run, to second
+-- granularity. If this amount of time elapses, work on the build will
+-- cease and the build status will be TIMEOUT. Default time is ten minutes.
+bTimeout :: Lens' Build (Maybe Scientific)
+bTimeout
+  = lens _bTimeout (\ s a -> s{_bTimeout = a}) .
+      mapping _Duration
+
+-- | Time at which execution of the build was finished. \'OutputOnly
+bFinishTime :: Lens' Build (Maybe UTCTime)
+bFinishTime
+  = lens _bFinishTime (\ s a -> s{_bFinishTime = a}) .
+      mapping _DateTime
+
+-- | Time at which the build was created. \'OutputOnly
+bCreateTime :: Lens' Build (Maybe UTCTime)
+bCreateTime
+  = lens _bCreateTime (\ s a -> s{_bCreateTime = a}) .
+      mapping _DateTime
+
+instance FromJSON Build where
+        parseJSON
+          = withObject "Build"
+              (\ o ->
+                 Build' <$>
+                   (o .:? "images" .!= mempty) <*> (o .:? "status") <*>
+                     (o .:? "sourceProvenance")
+                     <*> (o .:? "logUrl")
+                     <*> (o .:? "results")
+                     <*> (o .:? "startTime")
+                     <*> (o .:? "logsBucket")
+                     <*> (o .:? "steps" .!= mempty)
+                     <*> (o .:? "statusDetail")
+                     <*> (o .:? "source")
+                     <*> (o .:? "id")
+                     <*> (o .:? "options")
+                     <*> (o .:? "projectId")
+                     <*> (o .:? "timeout")
+                     <*> (o .:? "finishTime")
+                     <*> (o .:? "createTime"))
+
+instance ToJSON Build where
+        toJSON Build'{..}
+          = object
+              (catMaybes
+                 [("images" .=) <$> _bImages,
+                  ("status" .=) <$> _bStatus,
+                  ("sourceProvenance" .=) <$> _bSourceProvenance,
+                  ("logUrl" .=) <$> _bLogURL,
+                  ("results" .=) <$> _bResults,
+                  ("startTime" .=) <$> _bStartTime,
+                  ("logsBucket" .=) <$> _bLogsBucket,
+                  ("steps" .=) <$> _bSteps,
+                  ("statusDetail" .=) <$> _bStatusDetail,
+                  ("source" .=) <$> _bSource, ("id" .=) <$> _bId,
+                  ("options" .=) <$> _bOptions,
+                  ("projectId" .=) <$> _bProjectId,
+                  ("timeout" .=) <$> _bTimeout,
+                  ("finishTime" .=) <$> _bFinishTime,
+                  ("createTime" .=) <$> _bCreateTime])
+
+-- | Hash(es) of the build source, which can be used to verify that the
+-- original source integrity was maintained in the build. Note that
+-- FileHashes will only be populated if BuildOptions has requested a
+-- SourceProvenanceHash. The keys to this map are file paths used as build
+-- source and the values contain the hash values for those files. If the
+-- build source came in a single package such as a gzipped tarfile
+-- (.tar.gz), the FileHash will be for the single path to that file.
+-- \'OutputOnly
+--
+-- /See:/ 'sourceProvenanceFileHashes' smart constructor.
+newtype SourceProvenanceFileHashes = SourceProvenanceFileHashes'
+    { _spfhAddtional :: HashMap Text FileHashes
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceProvenanceFileHashes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'spfhAddtional'
+sourceProvenanceFileHashes
+    :: HashMap Text FileHashes -- ^ 'spfhAddtional'
+    -> SourceProvenanceFileHashes
+sourceProvenanceFileHashes pSpfhAddtional_ =
+    SourceProvenanceFileHashes'
+    { _spfhAddtional = _Coerce # pSpfhAddtional_
+    }
+
+spfhAddtional :: Lens' SourceProvenanceFileHashes (HashMap Text FileHashes)
+spfhAddtional
+  = lens _spfhAddtional
+      (\ s a -> s{_spfhAddtional = a})
+      . _Coerce
+
+instance FromJSON SourceProvenanceFileHashes where
+        parseJSON
+          = withObject "SourceProvenanceFileHashes"
+              (\ o ->
+                 SourceProvenanceFileHashes' <$> (parseJSONObject o))
+
+instance ToJSON SourceProvenanceFileHashes where
+        toJSON = toJSON . _spfhAddtional
+
+-- | Request to cancel an ongoing build.
+--
+-- /See:/ 'cancelBuildRequest' smart constructor.
+data CancelBuildRequest =
+    CancelBuildRequest'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CancelBuildRequest' with the minimum fields required to make a request.
+--
+cancelBuildRequest
+    :: CancelBuildRequest
+cancelBuildRequest = CancelBuildRequest'
+
+instance FromJSON CancelBuildRequest where
+        parseJSON
+          = withObject "CancelBuildRequest"
+              (\ o -> pure CancelBuildRequest')
+
+instance ToJSON CancelBuildRequest where
+        toJSON = const emptyObject
+
+-- | StorageSource describes the location of the source in an archive file in
+-- Google Cloud Storage.
+--
+-- /See:/ 'storageSource' smart constructor.
+data StorageSource = StorageSource'
+    { _ssBucket     :: !(Maybe Text)
+    , _ssObject     :: !(Maybe Text)
+    , _ssGeneration :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StorageSource' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssBucket'
+--
+-- * 'ssObject'
+--
+-- * 'ssGeneration'
+storageSource
+    :: StorageSource
+storageSource =
+    StorageSource'
+    { _ssBucket = Nothing
+    , _ssObject = Nothing
+    , _ssGeneration = Nothing
+    }
+
+-- | Google Cloud Storage bucket containing source (see [Bucket Name
+-- Requirements](https:\/\/cloud.google.com\/storage\/docs\/bucket-naming#requirements)).
+ssBucket :: Lens' StorageSource (Maybe Text)
+ssBucket = lens _ssBucket (\ s a -> s{_ssBucket = a})
+
+-- | Google Cloud Storage object containing source. This object must be a
+-- gzipped archive file (.tar.gz) containing source to build.
+ssObject :: Lens' StorageSource (Maybe Text)
+ssObject = lens _ssObject (\ s a -> s{_ssObject = a})
+
+-- | Google Cloud Storage generation for the object. If the generation is
+-- omitted, the latest generation will be used.
+ssGeneration :: Lens' StorageSource (Maybe Int64)
+ssGeneration
+  = lens _ssGeneration (\ s a -> s{_ssGeneration = a})
+      . mapping _Coerce
+
+instance FromJSON StorageSource where
+        parseJSON
+          = withObject "StorageSource"
+              (\ o ->
+                 StorageSource' <$>
+                   (o .:? "bucket") <*> (o .:? "object") <*>
+                     (o .:? "generation"))
+
+instance ToJSON StorageSource where
+        toJSON StorageSource'{..}
+          = object
+              (catMaybes
+                 [("bucket" .=) <$> _ssBucket,
+                  ("object" .=) <$> _ssObject,
+                  ("generation" .=) <$> _ssGeneration])
+
+-- | Response containing existing BuildTriggers.
+--
+-- /See:/ 'listBuildTriggersResponse' smart constructor.
+newtype ListBuildTriggersResponse = ListBuildTriggersResponse'
+    { _lbtrTriggers :: Maybe [BuildTrigger]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListBuildTriggersResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lbtrTriggers'
+listBuildTriggersResponse
+    :: ListBuildTriggersResponse
+listBuildTriggersResponse =
+    ListBuildTriggersResponse'
+    { _lbtrTriggers = Nothing
+    }
+
+-- | BuildTriggers for the project, sorted by create_time descending.
+lbtrTriggers :: Lens' ListBuildTriggersResponse [BuildTrigger]
+lbtrTriggers
+  = lens _lbtrTriggers (\ s a -> s{_lbtrTriggers = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListBuildTriggersResponse where
+        parseJSON
+          = withObject "ListBuildTriggersResponse"
+              (\ o ->
+                 ListBuildTriggersResponse' <$>
+                   (o .:? "triggers" .!= mempty))
+
+instance ToJSON ListBuildTriggersResponse where
+        toJSON ListBuildTriggersResponse'{..}
+          = object
+              (catMaybes [("triggers" .=) <$> _lbtrTriggers])
+
+-- | Container message for hashes of byte content of files, used in
+-- SourceProvenance messages to verify integrity of source input to the
+-- build.
+--
+-- /See:/ 'fileHashes' smart constructor.
+newtype FileHashes = FileHashes'
+    { _fhFileHash :: Maybe [Hash]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FileHashes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fhFileHash'
+fileHashes
+    :: FileHashes
+fileHashes =
+    FileHashes'
+    { _fhFileHash = Nothing
+    }
+
+-- | Collection of file hashes.
+fhFileHash :: Lens' FileHashes [Hash]
+fhFileHash
+  = lens _fhFileHash (\ s a -> s{_fhFileHash = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON FileHashes where
+        parseJSON
+          = withObject "FileHashes"
+              (\ o ->
+                 FileHashes' <$> (o .:? "fileHash" .!= mempty))
+
+instance ToJSON FileHashes where
+        toJSON FileHashes'{..}
+          = object
+              (catMaybes [("fileHash" .=) <$> _fhFileHash])
+
+-- | Source describes the location of the source in a supported storage
+-- service.
+--
+-- /See:/ 'source' smart constructor.
+data Source = Source'
+    { _sRepoSource    :: !(Maybe RepoSource)
+    , _sStorageSource :: !(Maybe StorageSource)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Source' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sRepoSource'
+--
+-- * 'sStorageSource'
+source
+    :: Source
+source =
+    Source'
+    { _sRepoSource = Nothing
+    , _sStorageSource = Nothing
+    }
+
+-- | If provided, get source from this location in a Cloud Repo.
+sRepoSource :: Lens' Source (Maybe RepoSource)
+sRepoSource
+  = lens _sRepoSource (\ s a -> s{_sRepoSource = a})
+
+-- | If provided, get the source from this location in in Google Cloud
+-- Storage.
+sStorageSource :: Lens' Source (Maybe StorageSource)
+sStorageSource
+  = lens _sStorageSource
+      (\ s a -> s{_sStorageSource = a})
+
+instance FromJSON Source where
+        parseJSON
+          = withObject "Source"
+              (\ o ->
+                 Source' <$>
+                   (o .:? "repoSource") <*> (o .:? "storageSource"))
+
+instance ToJSON Source where
+        toJSON Source'{..}
+          = object
+              (catMaybes
+                 [("repoSource" .=) <$> _sRepoSource,
+                  ("storageSource" .=) <$> _sStorageSource])
+
+-- | Service-specific metadata associated with the operation. It typically
+-- contains progress information and common metadata such as create time.
+-- Some services might not provide such metadata. Any method that returns a
+-- long-running operation should document the metadata type, if any.
+--
+-- /See:/ 'operationMetadata' smart constructor.
+newtype OperationMetadata = OperationMetadata'
+    { _omAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'omAddtional'
+operationMetadata
+    :: HashMap Text JSONValue -- ^ 'omAddtional'
+    -> OperationMetadata
+operationMetadata pOmAddtional_ =
+    OperationMetadata'
+    { _omAddtional = _Coerce # pOmAddtional_
+    }
+
+-- | Properties of the object. Contains field \'type with type URL.
+omAddtional :: Lens' OperationMetadata (HashMap Text JSONValue)
+omAddtional
+  = lens _omAddtional (\ s a -> s{_omAddtional = a}) .
+      _Coerce
+
+instance FromJSON OperationMetadata where
+        parseJSON
+          = withObject "OperationMetadata"
+              (\ o -> OperationMetadata' <$> (parseJSONObject o))
+
+instance ToJSON OperationMetadata where
+        toJSON = toJSON . _omAddtional
+
+-- | Metadata for build operations.
+--
+-- /See:/ 'buildOperationMetadata' smart constructor.
+newtype BuildOperationMetadata = BuildOperationMetadata'
+    { _bomBuild :: Maybe Build
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BuildOperationMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bomBuild'
+buildOperationMetadata
+    :: BuildOperationMetadata
+buildOperationMetadata =
+    BuildOperationMetadata'
+    { _bomBuild = Nothing
+    }
+
+-- | The build that the operation is tracking.
+bomBuild :: Lens' BuildOperationMetadata (Maybe Build)
+bomBuild = lens _bomBuild (\ s a -> s{_bomBuild = a})
+
+instance FromJSON BuildOperationMetadata where
+        parseJSON
+          = withObject "BuildOperationMetadata"
+              (\ o -> BuildOperationMetadata' <$> (o .:? "build"))
+
+instance ToJSON BuildOperationMetadata where
+        toJSON BuildOperationMetadata'{..}
+          = object (catMaybes [("build" .=) <$> _bomBuild])
+
+-- | Optional arguments to enable specific features of builds.
+--
+-- /See:/ 'buildOptions' smart constructor.
+data BuildOptions = BuildOptions'
+    { _boRequestedVerifyOption :: !(Maybe BuildOptionsRequestedVerifyOption)
+    , _boSourceProvenanceHash  :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BuildOptions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'boRequestedVerifyOption'
+--
+-- * 'boSourceProvenanceHash'
+buildOptions
+    :: BuildOptions
+buildOptions =
+    BuildOptions'
+    { _boRequestedVerifyOption = Nothing
+    , _boSourceProvenanceHash = Nothing
+    }
+
+-- | Requested verifiability options.
+boRequestedVerifyOption :: Lens' BuildOptions (Maybe BuildOptionsRequestedVerifyOption)
+boRequestedVerifyOption
+  = lens _boRequestedVerifyOption
+      (\ s a -> s{_boRequestedVerifyOption = a})
+
+-- | Requested hash for SourceProvenance.
+boSourceProvenanceHash :: Lens' BuildOptions [Text]
+boSourceProvenanceHash
+  = lens _boSourceProvenanceHash
+      (\ s a -> s{_boSourceProvenanceHash = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON BuildOptions where
+        parseJSON
+          = withObject "BuildOptions"
+              (\ o ->
+                 BuildOptions' <$>
+                   (o .:? "requestedVerifyOption") <*>
+                     (o .:? "sourceProvenanceHash" .!= mempty))
+
+instance ToJSON BuildOptions where
+        toJSON BuildOptions'{..}
+          = object
+              (catMaybes
+                 [("requestedVerifyOption" .=) <$>
+                    _boRequestedVerifyOption,
+                  ("sourceProvenanceHash" .=) <$>
+                    _boSourceProvenanceHash])
+
+-- | The normal response of the operation in case of success. If the original
+-- method returns no data on success, such as \`Delete\`, the response is
+-- \`google.protobuf.Empty\`. If the original method is standard
+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.
+-- For other methods, the response should have the type \`XxxResponse\`,
+-- where \`Xxx\` is the original method name. For example, if the original
+-- method name is \`TakeSnapshot()\`, the inferred response type is
+-- \`TakeSnapshotResponse\`.
+--
+-- /See:/ 'operationResponse' smart constructor.
+newtype OperationResponse = OperationResponse'
+    { _orAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'orAddtional'
+operationResponse
+    :: HashMap Text JSONValue -- ^ 'orAddtional'
+    -> OperationResponse
+operationResponse pOrAddtional_ =
+    OperationResponse'
+    { _orAddtional = _Coerce # pOrAddtional_
+    }
+
+-- | Properties of the object. Contains field \'type with type URL.
+orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)
+orAddtional
+  = lens _orAddtional (\ s a -> s{_orAddtional = a}) .
+      _Coerce
+
+instance FromJSON OperationResponse where
+        parseJSON
+          = withObject "OperationResponse"
+              (\ o -> OperationResponse' <$> (parseJSONObject o))
+
+instance ToJSON OperationResponse where
+        toJSON = toJSON . _orAddtional
+
+-- | Configuration for an automated build in response to source repository
+-- changes.
+--
+-- /See:/ 'buildTrigger' smart constructor.
+data BuildTrigger = BuildTrigger'
+    { _btDisabled        :: !(Maybe Bool)
+    , _btTriggerTemplate :: !(Maybe RepoSource)
+    , _btBuild           :: !(Maybe Build)
+    , _btId              :: !(Maybe Text)
+    , _btDescription     :: !(Maybe Text)
+    , _btFilename        :: !(Maybe Text)
+    , _btCreateTime      :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BuildTrigger' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'btDisabled'
+--
+-- * 'btTriggerTemplate'
+--
+-- * 'btBuild'
+--
+-- * 'btId'
+--
+-- * 'btDescription'
+--
+-- * 'btFilename'
+--
+-- * 'btCreateTime'
+buildTrigger
+    :: BuildTrigger
+buildTrigger =
+    BuildTrigger'
+    { _btDisabled = Nothing
+    , _btTriggerTemplate = Nothing
+    , _btBuild = Nothing
+    , _btId = Nothing
+    , _btDescription = Nothing
+    , _btFilename = Nothing
+    , _btCreateTime = Nothing
+    }
+
+-- | If true, the trigger will never result in a build.
+btDisabled :: Lens' BuildTrigger (Maybe Bool)
+btDisabled
+  = lens _btDisabled (\ s a -> s{_btDisabled = a})
+
+-- | Template describing the types of source changes to trigger a build.
+-- Branch and tag names in trigger templates are interpreted as regular
+-- expressions. Any branch or tag change that matches that regular
+-- expression will trigger a build.
+btTriggerTemplate :: Lens' BuildTrigger (Maybe RepoSource)
+btTriggerTemplate
+  = lens _btTriggerTemplate
+      (\ s a -> s{_btTriggerTemplate = a})
+
+-- | Contents of the build template.
+btBuild :: Lens' BuildTrigger (Maybe Build)
+btBuild = lens _btBuild (\ s a -> s{_btBuild = a})
+
+-- | Unique identifier of the trigger. \'OutputOnly
+btId :: Lens' BuildTrigger (Maybe Text)
+btId = lens _btId (\ s a -> s{_btId = a})
+
+-- | Human-readable description of this trigger.
+btDescription :: Lens' BuildTrigger (Maybe Text)
+btDescription
+  = lens _btDescription
+      (\ s a -> s{_btDescription = a})
+
+-- | Path, from the source root, to a file whose contents is used for the
+-- template.
+btFilename :: Lens' BuildTrigger (Maybe Text)
+btFilename
+  = lens _btFilename (\ s a -> s{_btFilename = a})
+
+-- | Time when the trigger was created. \'OutputOnly
+btCreateTime :: Lens' BuildTrigger (Maybe UTCTime)
+btCreateTime
+  = lens _btCreateTime (\ s a -> s{_btCreateTime = a})
+      . mapping _DateTime
+
+instance FromJSON BuildTrigger where
+        parseJSON
+          = withObject "BuildTrigger"
+              (\ o ->
+                 BuildTrigger' <$>
+                   (o .:? "disabled") <*> (o .:? "triggerTemplate") <*>
+                     (o .:? "build")
+                     <*> (o .:? "id")
+                     <*> (o .:? "description")
+                     <*> (o .:? "filename")
+                     <*> (o .:? "createTime"))
+
+instance ToJSON BuildTrigger where
+        toJSON BuildTrigger'{..}
+          = object
+              (catMaybes
+                 [("disabled" .=) <$> _btDisabled,
+                  ("triggerTemplate" .=) <$> _btTriggerTemplate,
+                  ("build" .=) <$> _btBuild, ("id" .=) <$> _btId,
+                  ("description" .=) <$> _btDescription,
+                  ("filename" .=) <$> _btFilename,
+                  ("createTime" .=) <$> _btCreateTime])
+
+-- | BuiltImage describes an image built by the pipeline.
+--
+-- /See:/ 'builtImage' smart constructor.
+data BuiltImage = BuiltImage'
+    { _biName   :: !(Maybe Text)
+    , _biDigest :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BuiltImage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'biName'
+--
+-- * 'biDigest'
+builtImage
+    :: BuiltImage
+builtImage =
+    BuiltImage'
+    { _biName = Nothing
+    , _biDigest = Nothing
+    }
+
+-- | Name used to push the container image to Google Container Registry, as
+-- presented to \`docker push\`.
+biName :: Lens' BuiltImage (Maybe Text)
+biName = lens _biName (\ s a -> s{_biName = a})
+
+-- | Docker Registry 2.0 digest.
+biDigest :: Lens' BuiltImage (Maybe Text)
+biDigest = lens _biDigest (\ s a -> s{_biDigest = a})
+
+instance FromJSON BuiltImage where
+        parseJSON
+          = withObject "BuiltImage"
+              (\ o ->
+                 BuiltImage' <$> (o .:? "name") <*> (o .:? "digest"))
+
+instance ToJSON BuiltImage where
+        toJSON BuiltImage'{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _biName,
+                  ("digest" .=) <$> _biDigest])
diff --git a/gen/Network/Google/ContainerBuilder/Types/Sum.hs b/gen/Network/Google/ContainerBuilder/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/ContainerBuilder/Types/Sum.hs
@@ -0,0 +1,170 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE LambdaCase         #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.ContainerBuilder.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.ContainerBuilder.Types.Sum where
+
+import           Network.Google.Prelude
+
+-- | Requested verifiability options.
+data BuildOptionsRequestedVerifyOption
+    = NotVerified
+      -- ^ @NOT_VERIFIED@
+      -- Not a verifiable build. (default)
+    | Verified
+      -- ^ @VERIFIED@
+      -- Verified build.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable BuildOptionsRequestedVerifyOption
+
+instance FromHttpApiData BuildOptionsRequestedVerifyOption where
+    parseQueryParam = \case
+        "NOT_VERIFIED" -> Right NotVerified
+        "VERIFIED" -> Right Verified
+        x -> Left ("Unable to parse BuildOptionsRequestedVerifyOption from: " <> x)
+
+instance ToHttpApiData BuildOptionsRequestedVerifyOption where
+    toQueryParam = \case
+        NotVerified -> "NOT_VERIFIED"
+        Verified -> "VERIFIED"
+
+instance FromJSON BuildOptionsRequestedVerifyOption where
+    parseJSON = parseJSONText "BuildOptionsRequestedVerifyOption"
+
+instance ToJSON BuildOptionsRequestedVerifyOption 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
+
+-- | Status of the build. \'OutputOnly
+data BuildStatus
+    = StatusUnknown
+      -- ^ @STATUS_UNKNOWN@
+      -- Status of the build is unknown.
+    | Queuing
+      -- ^ @QUEUING@
+      -- Build has been received and is being queued.
+    | Queued
+      -- ^ @QUEUED@
+      -- Build is queued; work has not yet begun.
+    | Working
+      -- ^ @WORKING@
+      -- Build is being executed.
+    | Success
+      -- ^ @SUCCESS@
+      -- Build finished successfully.
+    | Failure
+      -- ^ @FAILURE@
+      -- Build failed to complete successfully.
+    | InternalError
+      -- ^ @INTERNAL_ERROR@
+      -- Build failed due to an internal cause.
+    | Timeout
+      -- ^ @TIMEOUT@
+      -- Build took longer than was allowed.
+    | Cancelled
+      -- ^ @CANCELLED@
+      -- Build was canceled by a user.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable BuildStatus
+
+instance FromHttpApiData BuildStatus where
+    parseQueryParam = \case
+        "STATUS_UNKNOWN" -> Right StatusUnknown
+        "QUEUING" -> Right Queuing
+        "QUEUED" -> Right Queued
+        "WORKING" -> Right Working
+        "SUCCESS" -> Right Success
+        "FAILURE" -> Right Failure
+        "INTERNAL_ERROR" -> Right InternalError
+        "TIMEOUT" -> Right Timeout
+        "CANCELLED" -> Right Cancelled
+        x -> Left ("Unable to parse BuildStatus from: " <> x)
+
+instance ToHttpApiData BuildStatus where
+    toQueryParam = \case
+        StatusUnknown -> "STATUS_UNKNOWN"
+        Queuing -> "QUEUING"
+        Queued -> "QUEUED"
+        Working -> "WORKING"
+        Success -> "SUCCESS"
+        Failure -> "FAILURE"
+        InternalError -> "INTERNAL_ERROR"
+        Timeout -> "TIMEOUT"
+        Cancelled -> "CANCELLED"
+
+instance FromJSON BuildStatus where
+    parseJSON = parseJSONText "BuildStatus"
+
+instance ToJSON BuildStatus where
+    toJSON = toJSONText
+
+-- | The type of hash that was performed.
+data HashType
+    = None
+      -- ^ @NONE@
+      -- No hash requested.
+    | SHA256
+      -- ^ @SHA256@
+      -- Use a sha256 hash.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable HashType
+
+instance FromHttpApiData HashType where
+    parseQueryParam = \case
+        "NONE" -> Right None
+        "SHA256" -> Right SHA256
+        x -> Left ("Unable to parse HashType from: " <> x)
+
+instance ToHttpApiData HashType where
+    toQueryParam = \case
+        None -> "NONE"
+        SHA256 -> "SHA256"
+
+instance FromJSON HashType where
+    parseJSON = parseJSONText "HashType"
+
+instance ToJSON HashType where
+    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/Cloudbuild/Operations/Get.hs b/gen/Network/Google/Resource/Cloudbuild/Operations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Operations/Get.hs
@@ -0,0 +1,169 @@
+{-# 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.Cloudbuild.Operations.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 the latest state of a long-running operation. Clients can use this
+-- method to poll the operation result at intervals as recommended by the
+-- API service.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.operations.get@.
+module Network.Google.Resource.Cloudbuild.Operations.Get
+    (
+    -- * REST Resource
+      OperationsGetResource
+
+    -- * Creating a Request
+    , operationsGet
+    , OperationsGet
+
+    -- * Request Lenses
+    , ogXgafv
+    , ogUploadProtocol
+    , ogPp
+    , ogAccessToken
+    , ogUploadType
+    , ogBearerToken
+    , ogName
+    , ogCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.operations.get@ method which the
+-- 'OperationsGet' request conforms to.
+type OperationsGetResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "pp" Bool :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "bearer_token" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :> Get '[JSON] Operation
+
+-- | Gets the latest state of a long-running operation. Clients can use this
+-- method to poll the operation result at intervals as recommended by the
+-- API service.
+--
+-- /See:/ 'operationsGet' smart constructor.
+data OperationsGet = OperationsGet'
+    { _ogXgafv          :: !(Maybe Xgafv)
+    , _ogUploadProtocol :: !(Maybe Text)
+    , _ogPp             :: !Bool
+    , _ogAccessToken    :: !(Maybe Text)
+    , _ogUploadType     :: !(Maybe Text)
+    , _ogBearerToken    :: !(Maybe Text)
+    , _ogName           :: !Text
+    , _ogCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ogXgafv'
+--
+-- * 'ogUploadProtocol'
+--
+-- * 'ogPp'
+--
+-- * 'ogAccessToken'
+--
+-- * 'ogUploadType'
+--
+-- * 'ogBearerToken'
+--
+-- * 'ogName'
+--
+-- * 'ogCallback'
+operationsGet
+    :: Text -- ^ 'ogName'
+    -> OperationsGet
+operationsGet pOgName_ =
+    OperationsGet'
+    { _ogXgafv = Nothing
+    , _ogUploadProtocol = Nothing
+    , _ogPp = True
+    , _ogAccessToken = Nothing
+    , _ogUploadType = Nothing
+    , _ogBearerToken = Nothing
+    , _ogName = pOgName_
+    , _ogCallback = Nothing
+    }
+
+-- | V1 error format.
+ogXgafv :: Lens' OperationsGet (Maybe Xgafv)
+ogXgafv = lens _ogXgafv (\ s a -> s{_ogXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ogUploadProtocol :: Lens' OperationsGet (Maybe Text)
+ogUploadProtocol
+  = lens _ogUploadProtocol
+      (\ s a -> s{_ogUploadProtocol = a})
+
+-- | Pretty-print response.
+ogPp :: Lens' OperationsGet Bool
+ogPp = lens _ogPp (\ s a -> s{_ogPp = a})
+
+-- | OAuth access token.
+ogAccessToken :: Lens' OperationsGet (Maybe Text)
+ogAccessToken
+  = lens _ogAccessToken
+      (\ s a -> s{_ogAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ogUploadType :: Lens' OperationsGet (Maybe Text)
+ogUploadType
+  = lens _ogUploadType (\ s a -> s{_ogUploadType = a})
+
+-- | OAuth bearer token.
+ogBearerToken :: Lens' OperationsGet (Maybe Text)
+ogBearerToken
+  = lens _ogBearerToken
+      (\ s a -> s{_ogBearerToken = a})
+
+-- | The name of the operation resource.
+ogName :: Lens' OperationsGet Text
+ogName = lens _ogName (\ s a -> s{_ogName = a})
+
+-- | JSONP
+ogCallback :: Lens' OperationsGet (Maybe Text)
+ogCallback
+  = lens _ogCallback (\ s a -> s{_ogCallback = a})
+
+instance GoogleRequest OperationsGet where
+        type Rs OperationsGet = Operation
+        type Scopes OperationsGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient OperationsGet'{..}
+          = go _ogName _ogXgafv _ogUploadProtocol (Just _ogPp)
+              _ogAccessToken
+              _ogUploadType
+              _ogBearerToken
+              _ogCallback
+              (Just AltJSON)
+              containerBuilderService
+          where go
+                  = buildClient (Proxy :: Proxy OperationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Cloudbuild/Operations/List.hs b/gen/Network/Google/Resource/Cloudbuild/Operations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Operations/List.hs
@@ -0,0 +1,210 @@
+{-# 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.Cloudbuild.Operations.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 operations that match the specified filter in the request. If the
+-- server doesn\'t support this method, it returns \`UNIMPLEMENTED\`. NOTE:
+-- the \`name\` binding below allows API services to override the binding
+-- to use different resource name schemes, such as
+-- \`users\/*\/operations\`.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.operations.list@.
+module Network.Google.Resource.Cloudbuild.Operations.List
+    (
+    -- * REST Resource
+      OperationsListResource
+
+    -- * Creating a Request
+    , operationsList
+    , OperationsList
+
+    -- * Request Lenses
+    , olXgafv
+    , olUploadProtocol
+    , olPp
+    , olAccessToken
+    , olUploadType
+    , olBearerToken
+    , olName
+    , olFilter
+    , olPageToken
+    , olPageSize
+    , olCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.operations.list@ method which the
+-- 'OperationsList' request conforms to.
+type OperationsListResource =
+     "v1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "pp" Bool :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "bearer_token" Text :>
+                     QueryParam "filter" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ListOperationsResponse
+
+-- | Lists operations that match the specified filter in the request. If the
+-- server doesn\'t support this method, it returns \`UNIMPLEMENTED\`. NOTE:
+-- the \`name\` binding below allows API services to override the binding
+-- to use different resource name schemes, such as
+-- \`users\/*\/operations\`.
+--
+-- /See:/ 'operationsList' smart constructor.
+data OperationsList = OperationsList'
+    { _olXgafv          :: !(Maybe Xgafv)
+    , _olUploadProtocol :: !(Maybe Text)
+    , _olPp             :: !Bool
+    , _olAccessToken    :: !(Maybe Text)
+    , _olUploadType     :: !(Maybe Text)
+    , _olBearerToken    :: !(Maybe Text)
+    , _olName           :: !Text
+    , _olFilter         :: !(Maybe Text)
+    , _olPageToken      :: !(Maybe Text)
+    , _olPageSize       :: !(Maybe (Textual Int32))
+    , _olCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'olXgafv'
+--
+-- * 'olUploadProtocol'
+--
+-- * 'olPp'
+--
+-- * 'olAccessToken'
+--
+-- * 'olUploadType'
+--
+-- * 'olBearerToken'
+--
+-- * 'olName'
+--
+-- * 'olFilter'
+--
+-- * 'olPageToken'
+--
+-- * 'olPageSize'
+--
+-- * 'olCallback'
+operationsList
+    :: Text -- ^ 'olName'
+    -> OperationsList
+operationsList pOlName_ =
+    OperationsList'
+    { _olXgafv = Nothing
+    , _olUploadProtocol = Nothing
+    , _olPp = True
+    , _olAccessToken = Nothing
+    , _olUploadType = Nothing
+    , _olBearerToken = Nothing
+    , _olName = pOlName_
+    , _olFilter = Nothing
+    , _olPageToken = Nothing
+    , _olPageSize = Nothing
+    , _olCallback = Nothing
+    }
+
+-- | V1 error format.
+olXgafv :: Lens' OperationsList (Maybe Xgafv)
+olXgafv = lens _olXgafv (\ s a -> s{_olXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+olUploadProtocol :: Lens' OperationsList (Maybe Text)
+olUploadProtocol
+  = lens _olUploadProtocol
+      (\ s a -> s{_olUploadProtocol = a})
+
+-- | Pretty-print response.
+olPp :: Lens' OperationsList Bool
+olPp = lens _olPp (\ s a -> s{_olPp = a})
+
+-- | OAuth access token.
+olAccessToken :: Lens' OperationsList (Maybe Text)
+olAccessToken
+  = lens _olAccessToken
+      (\ s a -> s{_olAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+olUploadType :: Lens' OperationsList (Maybe Text)
+olUploadType
+  = lens _olUploadType (\ s a -> s{_olUploadType = a})
+
+-- | OAuth bearer token.
+olBearerToken :: Lens' OperationsList (Maybe Text)
+olBearerToken
+  = lens _olBearerToken
+      (\ s a -> s{_olBearerToken = a})
+
+-- | The name of the operation collection.
+olName :: Lens' OperationsList Text
+olName = lens _olName (\ s a -> s{_olName = a})
+
+-- | The standard list filter.
+olFilter :: Lens' OperationsList (Maybe Text)
+olFilter = lens _olFilter (\ s a -> s{_olFilter = a})
+
+-- | The standard list page token.
+olPageToken :: Lens' OperationsList (Maybe Text)
+olPageToken
+  = lens _olPageToken (\ s a -> s{_olPageToken = a})
+
+-- | The standard list page size.
+olPageSize :: Lens' OperationsList (Maybe Int32)
+olPageSize
+  = lens _olPageSize (\ s a -> s{_olPageSize = a}) .
+      mapping _Coerce
+
+-- | JSONP
+olCallback :: Lens' OperationsList (Maybe Text)
+olCallback
+  = lens _olCallback (\ s a -> s{_olCallback = a})
+
+instance GoogleRequest OperationsList where
+        type Rs OperationsList = ListOperationsResponse
+        type Scopes OperationsList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient OperationsList'{..}
+          = go _olName _olXgafv _olUploadProtocol (Just _olPp)
+              _olAccessToken
+              _olUploadType
+              _olBearerToken
+              _olFilter
+              _olPageToken
+              _olPageSize
+              _olCallback
+              (Just AltJSON)
+              containerBuilderService
+          where go
+                  = buildClient (Proxy :: Proxy OperationsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/Cancel.hs b/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/Cancel.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/Cancel.hs
@@ -0,0 +1,197 @@
+{-# 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.Cloudbuild.Projects.Builds.Cancel
+-- 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)
+--
+-- Cancels a requested build in progress.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.projects.builds.cancel@.
+module Network.Google.Resource.Cloudbuild.Projects.Builds.Cancel
+    (
+    -- * REST Resource
+      ProjectsBuildsCancelResource
+
+    -- * Creating a Request
+    , projectsBuildsCancel
+    , ProjectsBuildsCancel
+
+    -- * Request Lenses
+    , pbcXgafv
+    , pbcUploadProtocol
+    , pbcPp
+    , pbcAccessToken
+    , pbcUploadType
+    , pbcPayload
+    , pbcBearerToken
+    , pbcId
+    , pbcProjectId
+    , pbcCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.projects.builds.cancel@ method which the
+-- 'ProjectsBuildsCancel' request conforms to.
+type ProjectsBuildsCancelResource =
+     "v1" :>
+       "projects" :>
+         Capture "projectId" Text :>
+           "builds" :>
+             CaptureMode "id" "cancel" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               ReqBody '[JSON] CancelBuildRequest :>
+                                 Post '[JSON] Build
+
+-- | Cancels a requested build in progress.
+--
+-- /See:/ 'projectsBuildsCancel' smart constructor.
+data ProjectsBuildsCancel = ProjectsBuildsCancel'
+    { _pbcXgafv          :: !(Maybe Xgafv)
+    , _pbcUploadProtocol :: !(Maybe Text)
+    , _pbcPp             :: !Bool
+    , _pbcAccessToken    :: !(Maybe Text)
+    , _pbcUploadType     :: !(Maybe Text)
+    , _pbcPayload        :: !CancelBuildRequest
+    , _pbcBearerToken    :: !(Maybe Text)
+    , _pbcId             :: !Text
+    , _pbcProjectId      :: !Text
+    , _pbcCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsBuildsCancel' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pbcXgafv'
+--
+-- * 'pbcUploadProtocol'
+--
+-- * 'pbcPp'
+--
+-- * 'pbcAccessToken'
+--
+-- * 'pbcUploadType'
+--
+-- * 'pbcPayload'
+--
+-- * 'pbcBearerToken'
+--
+-- * 'pbcId'
+--
+-- * 'pbcProjectId'
+--
+-- * 'pbcCallback'
+projectsBuildsCancel
+    :: CancelBuildRequest -- ^ 'pbcPayload'
+    -> Text -- ^ 'pbcId'
+    -> Text -- ^ 'pbcProjectId'
+    -> ProjectsBuildsCancel
+projectsBuildsCancel pPbcPayload_ pPbcId_ pPbcProjectId_ =
+    ProjectsBuildsCancel'
+    { _pbcXgafv = Nothing
+    , _pbcUploadProtocol = Nothing
+    , _pbcPp = True
+    , _pbcAccessToken = Nothing
+    , _pbcUploadType = Nothing
+    , _pbcPayload = pPbcPayload_
+    , _pbcBearerToken = Nothing
+    , _pbcId = pPbcId_
+    , _pbcProjectId = pPbcProjectId_
+    , _pbcCallback = Nothing
+    }
+
+-- | V1 error format.
+pbcXgafv :: Lens' ProjectsBuildsCancel (Maybe Xgafv)
+pbcXgafv = lens _pbcXgafv (\ s a -> s{_pbcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pbcUploadProtocol :: Lens' ProjectsBuildsCancel (Maybe Text)
+pbcUploadProtocol
+  = lens _pbcUploadProtocol
+      (\ s a -> s{_pbcUploadProtocol = a})
+
+-- | Pretty-print response.
+pbcPp :: Lens' ProjectsBuildsCancel Bool
+pbcPp = lens _pbcPp (\ s a -> s{_pbcPp = a})
+
+-- | OAuth access token.
+pbcAccessToken :: Lens' ProjectsBuildsCancel (Maybe Text)
+pbcAccessToken
+  = lens _pbcAccessToken
+      (\ s a -> s{_pbcAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pbcUploadType :: Lens' ProjectsBuildsCancel (Maybe Text)
+pbcUploadType
+  = lens _pbcUploadType
+      (\ s a -> s{_pbcUploadType = a})
+
+-- | Multipart request metadata.
+pbcPayload :: Lens' ProjectsBuildsCancel CancelBuildRequest
+pbcPayload
+  = lens _pbcPayload (\ s a -> s{_pbcPayload = a})
+
+-- | OAuth bearer token.
+pbcBearerToken :: Lens' ProjectsBuildsCancel (Maybe Text)
+pbcBearerToken
+  = lens _pbcBearerToken
+      (\ s a -> s{_pbcBearerToken = a})
+
+-- | ID of the build.
+pbcId :: Lens' ProjectsBuildsCancel Text
+pbcId = lens _pbcId (\ s a -> s{_pbcId = a})
+
+-- | ID of the project.
+pbcProjectId :: Lens' ProjectsBuildsCancel Text
+pbcProjectId
+  = lens _pbcProjectId (\ s a -> s{_pbcProjectId = a})
+
+-- | JSONP
+pbcCallback :: Lens' ProjectsBuildsCancel (Maybe Text)
+pbcCallback
+  = lens _pbcCallback (\ s a -> s{_pbcCallback = a})
+
+instance GoogleRequest ProjectsBuildsCancel where
+        type Rs ProjectsBuildsCancel = Build
+        type Scopes ProjectsBuildsCancel =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsBuildsCancel'{..}
+          = go _pbcProjectId _pbcId _pbcXgafv
+              _pbcUploadProtocol
+              (Just _pbcPp)
+              _pbcAccessToken
+              _pbcUploadType
+              _pbcBearerToken
+              _pbcCallback
+              (Just AltJSON)
+              _pbcPayload
+              containerBuilderService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsBuildsCancelResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/Create.hs b/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/Create.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.Cloudbuild.Projects.Builds.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)
+--
+-- Starts a build with the specified configuration. The long-running
+-- Operation returned by this method will include the ID of the build,
+-- which can be passed to GetBuild to determine its status (e.g., success
+-- or failure).
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.projects.builds.create@.
+module Network.Google.Resource.Cloudbuild.Projects.Builds.Create
+    (
+    -- * REST Resource
+      ProjectsBuildsCreateResource
+
+    -- * Creating a Request
+    , projectsBuildsCreate
+    , ProjectsBuildsCreate
+
+    -- * Request Lenses
+    , pXgafv
+    , pUploadProtocol
+    , pPp
+    , pAccessToken
+    , pUploadType
+    , pPayload
+    , pBearerToken
+    , pProjectId
+    , pCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.projects.builds.create@ method which the
+-- 'ProjectsBuildsCreate' request conforms to.
+type ProjectsBuildsCreateResource =
+     "v1" :>
+       "projects" :>
+         Capture "projectId" Text :>
+           "builds" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] Build :> Post '[JSON] Operation
+
+-- | Starts a build with the specified configuration. The long-running
+-- Operation returned by this method will include the ID of the build,
+-- which can be passed to GetBuild to determine its status (e.g., success
+-- or failure).
+--
+-- /See:/ 'projectsBuildsCreate' smart constructor.
+data ProjectsBuildsCreate = ProjectsBuildsCreate'
+    { _pXgafv          :: !(Maybe Xgafv)
+    , _pUploadProtocol :: !(Maybe Text)
+    , _pPp             :: !Bool
+    , _pAccessToken    :: !(Maybe Text)
+    , _pUploadType     :: !(Maybe Text)
+    , _pPayload        :: !Build
+    , _pBearerToken    :: !(Maybe Text)
+    , _pProjectId      :: !Text
+    , _pCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsBuildsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pXgafv'
+--
+-- * 'pUploadProtocol'
+--
+-- * 'pPp'
+--
+-- * 'pAccessToken'
+--
+-- * 'pUploadType'
+--
+-- * 'pPayload'
+--
+-- * 'pBearerToken'
+--
+-- * 'pProjectId'
+--
+-- * 'pCallback'
+projectsBuildsCreate
+    :: Build -- ^ 'pPayload'
+    -> Text -- ^ 'pProjectId'
+    -> ProjectsBuildsCreate
+projectsBuildsCreate pPPayload_ pPProjectId_ =
+    ProjectsBuildsCreate'
+    { _pXgafv = Nothing
+    , _pUploadProtocol = Nothing
+    , _pPp = True
+    , _pAccessToken = Nothing
+    , _pUploadType = Nothing
+    , _pPayload = pPPayload_
+    , _pBearerToken = Nothing
+    , _pProjectId = pPProjectId_
+    , _pCallback = Nothing
+    }
+
+-- | V1 error format.
+pXgafv :: Lens' ProjectsBuildsCreate (Maybe Xgafv)
+pXgafv = lens _pXgafv (\ s a -> s{_pXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pUploadProtocol :: Lens' ProjectsBuildsCreate (Maybe Text)
+pUploadProtocol
+  = lens _pUploadProtocol
+      (\ s a -> s{_pUploadProtocol = a})
+
+-- | Pretty-print response.
+pPp :: Lens' ProjectsBuildsCreate Bool
+pPp = lens _pPp (\ s a -> s{_pPp = a})
+
+-- | OAuth access token.
+pAccessToken :: Lens' ProjectsBuildsCreate (Maybe Text)
+pAccessToken
+  = lens _pAccessToken (\ s a -> s{_pAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pUploadType :: Lens' ProjectsBuildsCreate (Maybe Text)
+pUploadType
+  = lens _pUploadType (\ s a -> s{_pUploadType = a})
+
+-- | Multipart request metadata.
+pPayload :: Lens' ProjectsBuildsCreate Build
+pPayload = lens _pPayload (\ s a -> s{_pPayload = a})
+
+-- | OAuth bearer token.
+pBearerToken :: Lens' ProjectsBuildsCreate (Maybe Text)
+pBearerToken
+  = lens _pBearerToken (\ s a -> s{_pBearerToken = a})
+
+-- | ID of the project.
+pProjectId :: Lens' ProjectsBuildsCreate Text
+pProjectId
+  = lens _pProjectId (\ s a -> s{_pProjectId = a})
+
+-- | JSONP
+pCallback :: Lens' ProjectsBuildsCreate (Maybe Text)
+pCallback
+  = lens _pCallback (\ s a -> s{_pCallback = a})
+
+instance GoogleRequest ProjectsBuildsCreate where
+        type Rs ProjectsBuildsCreate = Operation
+        type Scopes ProjectsBuildsCreate =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsBuildsCreate'{..}
+          = go _pProjectId _pXgafv _pUploadProtocol (Just _pPp)
+              _pAccessToken
+              _pUploadType
+              _pBearerToken
+              _pCallback
+              (Just AltJSON)
+              _pPayload
+              containerBuilderService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsBuildsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/Get.hs b/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/Get.hs
@@ -0,0 +1,187 @@
+{-# 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.Cloudbuild.Projects.Builds.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 previously requested build. The Build that
+-- is returned includes its status (e.g., success or failure, or
+-- in-progress), and timing information.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.projects.builds.get@.
+module Network.Google.Resource.Cloudbuild.Projects.Builds.Get
+    (
+    -- * REST Resource
+      ProjectsBuildsGetResource
+
+    -- * Creating a Request
+    , projectsBuildsGet
+    , ProjectsBuildsGet
+
+    -- * Request Lenses
+    , pbgXgafv
+    , pbgUploadProtocol
+    , pbgPp
+    , pbgAccessToken
+    , pbgUploadType
+    , pbgBearerToken
+    , pbgId
+    , pbgProjectId
+    , pbgCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.projects.builds.get@ method which the
+-- 'ProjectsBuildsGet' request conforms to.
+type ProjectsBuildsGetResource =
+     "v1" :>
+       "projects" :>
+         Capture "projectId" Text :>
+           "builds" :>
+             Capture "id" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :> Get '[JSON] Build
+
+-- | Returns information about a previously requested build. The Build that
+-- is returned includes its status (e.g., success or failure, or
+-- in-progress), and timing information.
+--
+-- /See:/ 'projectsBuildsGet' smart constructor.
+data ProjectsBuildsGet = ProjectsBuildsGet'
+    { _pbgXgafv          :: !(Maybe Xgafv)
+    , _pbgUploadProtocol :: !(Maybe Text)
+    , _pbgPp             :: !Bool
+    , _pbgAccessToken    :: !(Maybe Text)
+    , _pbgUploadType     :: !(Maybe Text)
+    , _pbgBearerToken    :: !(Maybe Text)
+    , _pbgId             :: !Text
+    , _pbgProjectId      :: !Text
+    , _pbgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsBuildsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pbgXgafv'
+--
+-- * 'pbgUploadProtocol'
+--
+-- * 'pbgPp'
+--
+-- * 'pbgAccessToken'
+--
+-- * 'pbgUploadType'
+--
+-- * 'pbgBearerToken'
+--
+-- * 'pbgId'
+--
+-- * 'pbgProjectId'
+--
+-- * 'pbgCallback'
+projectsBuildsGet
+    :: Text -- ^ 'pbgId'
+    -> Text -- ^ 'pbgProjectId'
+    -> ProjectsBuildsGet
+projectsBuildsGet pPbgId_ pPbgProjectId_ =
+    ProjectsBuildsGet'
+    { _pbgXgafv = Nothing
+    , _pbgUploadProtocol = Nothing
+    , _pbgPp = True
+    , _pbgAccessToken = Nothing
+    , _pbgUploadType = Nothing
+    , _pbgBearerToken = Nothing
+    , _pbgId = pPbgId_
+    , _pbgProjectId = pPbgProjectId_
+    , _pbgCallback = Nothing
+    }
+
+-- | V1 error format.
+pbgXgafv :: Lens' ProjectsBuildsGet (Maybe Xgafv)
+pbgXgafv = lens _pbgXgafv (\ s a -> s{_pbgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pbgUploadProtocol :: Lens' ProjectsBuildsGet (Maybe Text)
+pbgUploadProtocol
+  = lens _pbgUploadProtocol
+      (\ s a -> s{_pbgUploadProtocol = a})
+
+-- | Pretty-print response.
+pbgPp :: Lens' ProjectsBuildsGet Bool
+pbgPp = lens _pbgPp (\ s a -> s{_pbgPp = a})
+
+-- | OAuth access token.
+pbgAccessToken :: Lens' ProjectsBuildsGet (Maybe Text)
+pbgAccessToken
+  = lens _pbgAccessToken
+      (\ s a -> s{_pbgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pbgUploadType :: Lens' ProjectsBuildsGet (Maybe Text)
+pbgUploadType
+  = lens _pbgUploadType
+      (\ s a -> s{_pbgUploadType = a})
+
+-- | OAuth bearer token.
+pbgBearerToken :: Lens' ProjectsBuildsGet (Maybe Text)
+pbgBearerToken
+  = lens _pbgBearerToken
+      (\ s a -> s{_pbgBearerToken = a})
+
+-- | ID of the build.
+pbgId :: Lens' ProjectsBuildsGet Text
+pbgId = lens _pbgId (\ s a -> s{_pbgId = a})
+
+-- | ID of the project.
+pbgProjectId :: Lens' ProjectsBuildsGet Text
+pbgProjectId
+  = lens _pbgProjectId (\ s a -> s{_pbgProjectId = a})
+
+-- | JSONP
+pbgCallback :: Lens' ProjectsBuildsGet (Maybe Text)
+pbgCallback
+  = lens _pbgCallback (\ s a -> s{_pbgCallback = a})
+
+instance GoogleRequest ProjectsBuildsGet where
+        type Rs ProjectsBuildsGet = Build
+        type Scopes ProjectsBuildsGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsBuildsGet'{..}
+          = go _pbgProjectId _pbgId _pbgXgafv
+              _pbgUploadProtocol
+              (Just _pbgPp)
+              _pbgAccessToken
+              _pbgUploadType
+              _pbgBearerToken
+              _pbgCallback
+              (Just AltJSON)
+              containerBuilderService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsBuildsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/List.hs b/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Projects/Builds/List.hs
@@ -0,0 +1,211 @@
+{-# 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.Cloudbuild.Projects.Builds.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 previously requested builds. Previously requested builds may still
+-- be in-progress, or may have finished successfully or unsuccessfully.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.projects.builds.list@.
+module Network.Google.Resource.Cloudbuild.Projects.Builds.List
+    (
+    -- * REST Resource
+      ProjectsBuildsListResource
+
+    -- * Creating a Request
+    , projectsBuildsList
+    , ProjectsBuildsList
+
+    -- * Request Lenses
+    , pblXgafv
+    , pblUploadProtocol
+    , pblPp
+    , pblAccessToken
+    , pblUploadType
+    , pblBearerToken
+    , pblFilter
+    , pblPageToken
+    , pblProjectId
+    , pblPageSize
+    , pblCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.projects.builds.list@ method which the
+-- 'ProjectsBuildsList' request conforms to.
+type ProjectsBuildsListResource =
+     "v1" :>
+       "projects" :>
+         Capture "projectId" Text :>
+           "builds" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "filter" Text :>
+                           QueryParam "pageToken" Text :>
+                             QueryParam "pageSize" (Textual Int32) :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] ListBuildsResponse
+
+-- | Lists previously requested builds. Previously requested builds may still
+-- be in-progress, or may have finished successfully or unsuccessfully.
+--
+-- /See:/ 'projectsBuildsList' smart constructor.
+data ProjectsBuildsList = ProjectsBuildsList'
+    { _pblXgafv          :: !(Maybe Xgafv)
+    , _pblUploadProtocol :: !(Maybe Text)
+    , _pblPp             :: !Bool
+    , _pblAccessToken    :: !(Maybe Text)
+    , _pblUploadType     :: !(Maybe Text)
+    , _pblBearerToken    :: !(Maybe Text)
+    , _pblFilter         :: !(Maybe Text)
+    , _pblPageToken      :: !(Maybe Text)
+    , _pblProjectId      :: !Text
+    , _pblPageSize       :: !(Maybe (Textual Int32))
+    , _pblCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsBuildsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pblXgafv'
+--
+-- * 'pblUploadProtocol'
+--
+-- * 'pblPp'
+--
+-- * 'pblAccessToken'
+--
+-- * 'pblUploadType'
+--
+-- * 'pblBearerToken'
+--
+-- * 'pblFilter'
+--
+-- * 'pblPageToken'
+--
+-- * 'pblProjectId'
+--
+-- * 'pblPageSize'
+--
+-- * 'pblCallback'
+projectsBuildsList
+    :: Text -- ^ 'pblProjectId'
+    -> ProjectsBuildsList
+projectsBuildsList pPblProjectId_ =
+    ProjectsBuildsList'
+    { _pblXgafv = Nothing
+    , _pblUploadProtocol = Nothing
+    , _pblPp = True
+    , _pblAccessToken = Nothing
+    , _pblUploadType = Nothing
+    , _pblBearerToken = Nothing
+    , _pblFilter = Nothing
+    , _pblPageToken = Nothing
+    , _pblProjectId = pPblProjectId_
+    , _pblPageSize = Nothing
+    , _pblCallback = Nothing
+    }
+
+-- | V1 error format.
+pblXgafv :: Lens' ProjectsBuildsList (Maybe Xgafv)
+pblXgafv = lens _pblXgafv (\ s a -> s{_pblXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pblUploadProtocol :: Lens' ProjectsBuildsList (Maybe Text)
+pblUploadProtocol
+  = lens _pblUploadProtocol
+      (\ s a -> s{_pblUploadProtocol = a})
+
+-- | Pretty-print response.
+pblPp :: Lens' ProjectsBuildsList Bool
+pblPp = lens _pblPp (\ s a -> s{_pblPp = a})
+
+-- | OAuth access token.
+pblAccessToken :: Lens' ProjectsBuildsList (Maybe Text)
+pblAccessToken
+  = lens _pblAccessToken
+      (\ s a -> s{_pblAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pblUploadType :: Lens' ProjectsBuildsList (Maybe Text)
+pblUploadType
+  = lens _pblUploadType
+      (\ s a -> s{_pblUploadType = a})
+
+-- | OAuth bearer token.
+pblBearerToken :: Lens' ProjectsBuildsList (Maybe Text)
+pblBearerToken
+  = lens _pblBearerToken
+      (\ s a -> s{_pblBearerToken = a})
+
+-- | The raw filter text to constrain the results.
+pblFilter :: Lens' ProjectsBuildsList (Maybe Text)
+pblFilter
+  = lens _pblFilter (\ s a -> s{_pblFilter = a})
+
+-- | Token to provide to skip to a particular spot in the list.
+pblPageToken :: Lens' ProjectsBuildsList (Maybe Text)
+pblPageToken
+  = lens _pblPageToken (\ s a -> s{_pblPageToken = a})
+
+-- | ID of the project.
+pblProjectId :: Lens' ProjectsBuildsList Text
+pblProjectId
+  = lens _pblProjectId (\ s a -> s{_pblProjectId = a})
+
+-- | Number of results to return in the list.
+pblPageSize :: Lens' ProjectsBuildsList (Maybe Int32)
+pblPageSize
+  = lens _pblPageSize (\ s a -> s{_pblPageSize = a}) .
+      mapping _Coerce
+
+-- | JSONP
+pblCallback :: Lens' ProjectsBuildsList (Maybe Text)
+pblCallback
+  = lens _pblCallback (\ s a -> s{_pblCallback = a})
+
+instance GoogleRequest ProjectsBuildsList where
+        type Rs ProjectsBuildsList = ListBuildsResponse
+        type Scopes ProjectsBuildsList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsBuildsList'{..}
+          = go _pblProjectId _pblXgafv _pblUploadProtocol
+              (Just _pblPp)
+              _pblAccessToken
+              _pblUploadType
+              _pblBearerToken
+              _pblFilter
+              _pblPageToken
+              _pblPageSize
+              _pblCallback
+              (Just AltJSON)
+              containerBuilderService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsBuildsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Create.hs b/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Create.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.Cloudbuild.Projects.Triggers.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 BuildTrigger. This API is experimental.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.projects.triggers.create@.
+module Network.Google.Resource.Cloudbuild.Projects.Triggers.Create
+    (
+    -- * REST Resource
+      ProjectsTriggersCreateResource
+
+    -- * Creating a Request
+    , projectsTriggersCreate
+    , ProjectsTriggersCreate
+
+    -- * Request Lenses
+    , ptcXgafv
+    , ptcUploadProtocol
+    , ptcPp
+    , ptcAccessToken
+    , ptcUploadType
+    , ptcPayload
+    , ptcBearerToken
+    , ptcProjectId
+    , ptcCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.projects.triggers.create@ method which the
+-- 'ProjectsTriggersCreate' request conforms to.
+type ProjectsTriggersCreateResource =
+     "v1" :>
+       "projects" :>
+         Capture "projectId" Text :>
+           "triggers" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] BuildTrigger :>
+                               Post '[JSON] BuildTrigger
+
+-- | Creates a new BuildTrigger. This API is experimental.
+--
+-- /See:/ 'projectsTriggersCreate' smart constructor.
+data ProjectsTriggersCreate = ProjectsTriggersCreate'
+    { _ptcXgafv          :: !(Maybe Xgafv)
+    , _ptcUploadProtocol :: !(Maybe Text)
+    , _ptcPp             :: !Bool
+    , _ptcAccessToken    :: !(Maybe Text)
+    , _ptcUploadType     :: !(Maybe Text)
+    , _ptcPayload        :: !BuildTrigger
+    , _ptcBearerToken    :: !(Maybe Text)
+    , _ptcProjectId      :: !Text
+    , _ptcCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTriggersCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcXgafv'
+--
+-- * 'ptcUploadProtocol'
+--
+-- * 'ptcPp'
+--
+-- * 'ptcAccessToken'
+--
+-- * 'ptcUploadType'
+--
+-- * 'ptcPayload'
+--
+-- * 'ptcBearerToken'
+--
+-- * 'ptcProjectId'
+--
+-- * 'ptcCallback'
+projectsTriggersCreate
+    :: BuildTrigger -- ^ 'ptcPayload'
+    -> Text -- ^ 'ptcProjectId'
+    -> ProjectsTriggersCreate
+projectsTriggersCreate pPtcPayload_ pPtcProjectId_ =
+    ProjectsTriggersCreate'
+    { _ptcXgafv = Nothing
+    , _ptcUploadProtocol = Nothing
+    , _ptcPp = True
+    , _ptcAccessToken = Nothing
+    , _ptcUploadType = Nothing
+    , _ptcPayload = pPtcPayload_
+    , _ptcBearerToken = Nothing
+    , _ptcProjectId = pPtcProjectId_
+    , _ptcCallback = Nothing
+    }
+
+-- | V1 error format.
+ptcXgafv :: Lens' ProjectsTriggersCreate (Maybe Xgafv)
+ptcXgafv = lens _ptcXgafv (\ s a -> s{_ptcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptcUploadProtocol :: Lens' ProjectsTriggersCreate (Maybe Text)
+ptcUploadProtocol
+  = lens _ptcUploadProtocol
+      (\ s a -> s{_ptcUploadProtocol = a})
+
+-- | Pretty-print response.
+ptcPp :: Lens' ProjectsTriggersCreate Bool
+ptcPp = lens _ptcPp (\ s a -> s{_ptcPp = a})
+
+-- | OAuth access token.
+ptcAccessToken :: Lens' ProjectsTriggersCreate (Maybe Text)
+ptcAccessToken
+  = lens _ptcAccessToken
+      (\ s a -> s{_ptcAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptcUploadType :: Lens' ProjectsTriggersCreate (Maybe Text)
+ptcUploadType
+  = lens _ptcUploadType
+      (\ s a -> s{_ptcUploadType = a})
+
+-- | Multipart request metadata.
+ptcPayload :: Lens' ProjectsTriggersCreate BuildTrigger
+ptcPayload
+  = lens _ptcPayload (\ s a -> s{_ptcPayload = a})
+
+-- | OAuth bearer token.
+ptcBearerToken :: Lens' ProjectsTriggersCreate (Maybe Text)
+ptcBearerToken
+  = lens _ptcBearerToken
+      (\ s a -> s{_ptcBearerToken = a})
+
+-- | ID of the project for which to configure automatic builds.
+ptcProjectId :: Lens' ProjectsTriggersCreate Text
+ptcProjectId
+  = lens _ptcProjectId (\ s a -> s{_ptcProjectId = a})
+
+-- | JSONP
+ptcCallback :: Lens' ProjectsTriggersCreate (Maybe Text)
+ptcCallback
+  = lens _ptcCallback (\ s a -> s{_ptcCallback = a})
+
+instance GoogleRequest ProjectsTriggersCreate where
+        type Rs ProjectsTriggersCreate = BuildTrigger
+        type Scopes ProjectsTriggersCreate =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsTriggersCreate'{..}
+          = go _ptcProjectId _ptcXgafv _ptcUploadProtocol
+              (Just _ptcPp)
+              _ptcAccessToken
+              _ptcUploadType
+              _ptcBearerToken
+              _ptcCallback
+              (Just AltJSON)
+              _ptcPayload
+              containerBuilderService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsTriggersCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Delete.hs b/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Delete.hs
@@ -0,0 +1,186 @@
+{-# 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.Cloudbuild.Projects.Triggers.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 an BuildTrigger by its project ID and trigger ID. This API is
+-- experimental.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.projects.triggers.delete@.
+module Network.Google.Resource.Cloudbuild.Projects.Triggers.Delete
+    (
+    -- * REST Resource
+      ProjectsTriggersDeleteResource
+
+    -- * Creating a Request
+    , projectsTriggersDelete
+    , ProjectsTriggersDelete
+
+    -- * Request Lenses
+    , ptdXgafv
+    , ptdUploadProtocol
+    , ptdTriggerId
+    , ptdPp
+    , ptdAccessToken
+    , ptdUploadType
+    , ptdBearerToken
+    , ptdProjectId
+    , ptdCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.projects.triggers.delete@ method which the
+-- 'ProjectsTriggersDelete' request conforms to.
+type ProjectsTriggersDeleteResource =
+     "v1" :>
+       "projects" :>
+         Capture "projectId" Text :>
+           "triggers" :>
+             Capture "triggerId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes an BuildTrigger by its project ID and trigger ID. This API is
+-- experimental.
+--
+-- /See:/ 'projectsTriggersDelete' smart constructor.
+data ProjectsTriggersDelete = ProjectsTriggersDelete'
+    { _ptdXgafv          :: !(Maybe Xgafv)
+    , _ptdUploadProtocol :: !(Maybe Text)
+    , _ptdTriggerId      :: !Text
+    , _ptdPp             :: !Bool
+    , _ptdAccessToken    :: !(Maybe Text)
+    , _ptdUploadType     :: !(Maybe Text)
+    , _ptdBearerToken    :: !(Maybe Text)
+    , _ptdProjectId      :: !Text
+    , _ptdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTriggersDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptdXgafv'
+--
+-- * 'ptdUploadProtocol'
+--
+-- * 'ptdTriggerId'
+--
+-- * 'ptdPp'
+--
+-- * 'ptdAccessToken'
+--
+-- * 'ptdUploadType'
+--
+-- * 'ptdBearerToken'
+--
+-- * 'ptdProjectId'
+--
+-- * 'ptdCallback'
+projectsTriggersDelete
+    :: Text -- ^ 'ptdTriggerId'
+    -> Text -- ^ 'ptdProjectId'
+    -> ProjectsTriggersDelete
+projectsTriggersDelete pPtdTriggerId_ pPtdProjectId_ =
+    ProjectsTriggersDelete'
+    { _ptdXgafv = Nothing
+    , _ptdUploadProtocol = Nothing
+    , _ptdTriggerId = pPtdTriggerId_
+    , _ptdPp = True
+    , _ptdAccessToken = Nothing
+    , _ptdUploadType = Nothing
+    , _ptdBearerToken = Nothing
+    , _ptdProjectId = pPtdProjectId_
+    , _ptdCallback = Nothing
+    }
+
+-- | V1 error format.
+ptdXgafv :: Lens' ProjectsTriggersDelete (Maybe Xgafv)
+ptdXgafv = lens _ptdXgafv (\ s a -> s{_ptdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptdUploadProtocol :: Lens' ProjectsTriggersDelete (Maybe Text)
+ptdUploadProtocol
+  = lens _ptdUploadProtocol
+      (\ s a -> s{_ptdUploadProtocol = a})
+
+-- | ID of the BuildTrigger to delete.
+ptdTriggerId :: Lens' ProjectsTriggersDelete Text
+ptdTriggerId
+  = lens _ptdTriggerId (\ s a -> s{_ptdTriggerId = a})
+
+-- | Pretty-print response.
+ptdPp :: Lens' ProjectsTriggersDelete Bool
+ptdPp = lens _ptdPp (\ s a -> s{_ptdPp = a})
+
+-- | OAuth access token.
+ptdAccessToken :: Lens' ProjectsTriggersDelete (Maybe Text)
+ptdAccessToken
+  = lens _ptdAccessToken
+      (\ s a -> s{_ptdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptdUploadType :: Lens' ProjectsTriggersDelete (Maybe Text)
+ptdUploadType
+  = lens _ptdUploadType
+      (\ s a -> s{_ptdUploadType = a})
+
+-- | OAuth bearer token.
+ptdBearerToken :: Lens' ProjectsTriggersDelete (Maybe Text)
+ptdBearerToken
+  = lens _ptdBearerToken
+      (\ s a -> s{_ptdBearerToken = a})
+
+-- | ID of the project that owns the trigger.
+ptdProjectId :: Lens' ProjectsTriggersDelete Text
+ptdProjectId
+  = lens _ptdProjectId (\ s a -> s{_ptdProjectId = a})
+
+-- | JSONP
+ptdCallback :: Lens' ProjectsTriggersDelete (Maybe Text)
+ptdCallback
+  = lens _ptdCallback (\ s a -> s{_ptdCallback = a})
+
+instance GoogleRequest ProjectsTriggersDelete where
+        type Rs ProjectsTriggersDelete = Empty
+        type Scopes ProjectsTriggersDelete =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsTriggersDelete'{..}
+          = go _ptdProjectId _ptdTriggerId _ptdXgafv
+              _ptdUploadProtocol
+              (Just _ptdPp)
+              _ptdAccessToken
+              _ptdUploadType
+              _ptdBearerToken
+              _ptdCallback
+              (Just AltJSON)
+              containerBuilderService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsTriggersDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Get.hs b/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Get.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.Cloudbuild.Projects.Triggers.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 BuildTrigger. This API is experimental.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.projects.triggers.get@.
+module Network.Google.Resource.Cloudbuild.Projects.Triggers.Get
+    (
+    -- * REST Resource
+      ProjectsTriggersGetResource
+
+    -- * Creating a Request
+    , projectsTriggersGet
+    , ProjectsTriggersGet
+
+    -- * Request Lenses
+    , ptgXgafv
+    , ptgUploadProtocol
+    , ptgTriggerId
+    , ptgPp
+    , ptgAccessToken
+    , ptgUploadType
+    , ptgBearerToken
+    , ptgProjectId
+    , ptgCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.projects.triggers.get@ method which the
+-- 'ProjectsTriggersGet' request conforms to.
+type ProjectsTriggersGetResource =
+     "v1" :>
+       "projects" :>
+         Capture "projectId" Text :>
+           "triggers" :>
+             Capture "triggerId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] BuildTrigger
+
+-- | Gets information about a BuildTrigger. This API is experimental.
+--
+-- /See:/ 'projectsTriggersGet' smart constructor.
+data ProjectsTriggersGet = ProjectsTriggersGet'
+    { _ptgXgafv          :: !(Maybe Xgafv)
+    , _ptgUploadProtocol :: !(Maybe Text)
+    , _ptgTriggerId      :: !Text
+    , _ptgPp             :: !Bool
+    , _ptgAccessToken    :: !(Maybe Text)
+    , _ptgUploadType     :: !(Maybe Text)
+    , _ptgBearerToken    :: !(Maybe Text)
+    , _ptgProjectId      :: !Text
+    , _ptgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTriggersGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptgXgafv'
+--
+-- * 'ptgUploadProtocol'
+--
+-- * 'ptgTriggerId'
+--
+-- * 'ptgPp'
+--
+-- * 'ptgAccessToken'
+--
+-- * 'ptgUploadType'
+--
+-- * 'ptgBearerToken'
+--
+-- * 'ptgProjectId'
+--
+-- * 'ptgCallback'
+projectsTriggersGet
+    :: Text -- ^ 'ptgTriggerId'
+    -> Text -- ^ 'ptgProjectId'
+    -> ProjectsTriggersGet
+projectsTriggersGet pPtgTriggerId_ pPtgProjectId_ =
+    ProjectsTriggersGet'
+    { _ptgXgafv = Nothing
+    , _ptgUploadProtocol = Nothing
+    , _ptgTriggerId = pPtgTriggerId_
+    , _ptgPp = True
+    , _ptgAccessToken = Nothing
+    , _ptgUploadType = Nothing
+    , _ptgBearerToken = Nothing
+    , _ptgProjectId = pPtgProjectId_
+    , _ptgCallback = Nothing
+    }
+
+-- | V1 error format.
+ptgXgafv :: Lens' ProjectsTriggersGet (Maybe Xgafv)
+ptgXgafv = lens _ptgXgafv (\ s a -> s{_ptgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptgUploadProtocol :: Lens' ProjectsTriggersGet (Maybe Text)
+ptgUploadProtocol
+  = lens _ptgUploadProtocol
+      (\ s a -> s{_ptgUploadProtocol = a})
+
+-- | ID of the BuildTrigger to get.
+ptgTriggerId :: Lens' ProjectsTriggersGet Text
+ptgTriggerId
+  = lens _ptgTriggerId (\ s a -> s{_ptgTriggerId = a})
+
+-- | Pretty-print response.
+ptgPp :: Lens' ProjectsTriggersGet Bool
+ptgPp = lens _ptgPp (\ s a -> s{_ptgPp = a})
+
+-- | OAuth access token.
+ptgAccessToken :: Lens' ProjectsTriggersGet (Maybe Text)
+ptgAccessToken
+  = lens _ptgAccessToken
+      (\ s a -> s{_ptgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptgUploadType :: Lens' ProjectsTriggersGet (Maybe Text)
+ptgUploadType
+  = lens _ptgUploadType
+      (\ s a -> s{_ptgUploadType = a})
+
+-- | OAuth bearer token.
+ptgBearerToken :: Lens' ProjectsTriggersGet (Maybe Text)
+ptgBearerToken
+  = lens _ptgBearerToken
+      (\ s a -> s{_ptgBearerToken = a})
+
+-- | ID of the project that owns the trigger.
+ptgProjectId :: Lens' ProjectsTriggersGet Text
+ptgProjectId
+  = lens _ptgProjectId (\ s a -> s{_ptgProjectId = a})
+
+-- | JSONP
+ptgCallback :: Lens' ProjectsTriggersGet (Maybe Text)
+ptgCallback
+  = lens _ptgCallback (\ s a -> s{_ptgCallback = a})
+
+instance GoogleRequest ProjectsTriggersGet where
+        type Rs ProjectsTriggersGet = BuildTrigger
+        type Scopes ProjectsTriggersGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsTriggersGet'{..}
+          = go _ptgProjectId _ptgTriggerId _ptgXgafv
+              _ptgUploadProtocol
+              (Just _ptgPp)
+              _ptgAccessToken
+              _ptgUploadType
+              _ptgBearerToken
+              _ptgCallback
+              (Just AltJSON)
+              containerBuilderService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsTriggersGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/List.hs b/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/List.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.Cloudbuild.Projects.Triggers.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 existing BuildTrigger. This API is experimental.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.projects.triggers.list@.
+module Network.Google.Resource.Cloudbuild.Projects.Triggers.List
+    (
+    -- * REST Resource
+      ProjectsTriggersListResource
+
+    -- * Creating a Request
+    , projectsTriggersList
+    , ProjectsTriggersList
+
+    -- * Request Lenses
+    , ptlXgafv
+    , ptlUploadProtocol
+    , ptlPp
+    , ptlAccessToken
+    , ptlUploadType
+    , ptlBearerToken
+    , ptlProjectId
+    , ptlCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.projects.triggers.list@ method which the
+-- 'ProjectsTriggersList' request conforms to.
+type ProjectsTriggersListResource =
+     "v1" :>
+       "projects" :>
+         Capture "projectId" Text :>
+           "triggers" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListBuildTriggersResponse
+
+-- | Lists existing BuildTrigger. This API is experimental.
+--
+-- /See:/ 'projectsTriggersList' smart constructor.
+data ProjectsTriggersList = ProjectsTriggersList'
+    { _ptlXgafv          :: !(Maybe Xgafv)
+    , _ptlUploadProtocol :: !(Maybe Text)
+    , _ptlPp             :: !Bool
+    , _ptlAccessToken    :: !(Maybe Text)
+    , _ptlUploadType     :: !(Maybe Text)
+    , _ptlBearerToken    :: !(Maybe Text)
+    , _ptlProjectId      :: !Text
+    , _ptlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTriggersList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptlXgafv'
+--
+-- * 'ptlUploadProtocol'
+--
+-- * 'ptlPp'
+--
+-- * 'ptlAccessToken'
+--
+-- * 'ptlUploadType'
+--
+-- * 'ptlBearerToken'
+--
+-- * 'ptlProjectId'
+--
+-- * 'ptlCallback'
+projectsTriggersList
+    :: Text -- ^ 'ptlProjectId'
+    -> ProjectsTriggersList
+projectsTriggersList pPtlProjectId_ =
+    ProjectsTriggersList'
+    { _ptlXgafv = Nothing
+    , _ptlUploadProtocol = Nothing
+    , _ptlPp = True
+    , _ptlAccessToken = Nothing
+    , _ptlUploadType = Nothing
+    , _ptlBearerToken = Nothing
+    , _ptlProjectId = pPtlProjectId_
+    , _ptlCallback = Nothing
+    }
+
+-- | V1 error format.
+ptlXgafv :: Lens' ProjectsTriggersList (Maybe Xgafv)
+ptlXgafv = lens _ptlXgafv (\ s a -> s{_ptlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptlUploadProtocol :: Lens' ProjectsTriggersList (Maybe Text)
+ptlUploadProtocol
+  = lens _ptlUploadProtocol
+      (\ s a -> s{_ptlUploadProtocol = a})
+
+-- | Pretty-print response.
+ptlPp :: Lens' ProjectsTriggersList Bool
+ptlPp = lens _ptlPp (\ s a -> s{_ptlPp = a})
+
+-- | OAuth access token.
+ptlAccessToken :: Lens' ProjectsTriggersList (Maybe Text)
+ptlAccessToken
+  = lens _ptlAccessToken
+      (\ s a -> s{_ptlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptlUploadType :: Lens' ProjectsTriggersList (Maybe Text)
+ptlUploadType
+  = lens _ptlUploadType
+      (\ s a -> s{_ptlUploadType = a})
+
+-- | OAuth bearer token.
+ptlBearerToken :: Lens' ProjectsTriggersList (Maybe Text)
+ptlBearerToken
+  = lens _ptlBearerToken
+      (\ s a -> s{_ptlBearerToken = a})
+
+-- | ID of the project for which to list BuildTriggers.
+ptlProjectId :: Lens' ProjectsTriggersList Text
+ptlProjectId
+  = lens _ptlProjectId (\ s a -> s{_ptlProjectId = a})
+
+-- | JSONP
+ptlCallback :: Lens' ProjectsTriggersList (Maybe Text)
+ptlCallback
+  = lens _ptlCallback (\ s a -> s{_ptlCallback = a})
+
+instance GoogleRequest ProjectsTriggersList where
+        type Rs ProjectsTriggersList =
+             ListBuildTriggersResponse
+        type Scopes ProjectsTriggersList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsTriggersList'{..}
+          = go _ptlProjectId _ptlXgafv _ptlUploadProtocol
+              (Just _ptlPp)
+              _ptlAccessToken
+              _ptlUploadType
+              _ptlBearerToken
+              _ptlCallback
+              (Just AltJSON)
+              containerBuilderService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsTriggersListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Patch.hs b/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Cloudbuild/Projects/Triggers/Patch.hs
@@ -0,0 +1,200 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Cloudbuild.Projects.Triggers.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 an BuildTrigger by its project ID and trigger ID. This API is
+-- experimental.
+--
+-- /See:/ <https://cloud.google.com/container-builder/docs/ Google Cloud Container Builder API Reference> for @cloudbuild.projects.triggers.patch@.
+module Network.Google.Resource.Cloudbuild.Projects.Triggers.Patch
+    (
+    -- * REST Resource
+      ProjectsTriggersPatchResource
+
+    -- * Creating a Request
+    , projectsTriggersPatch
+    , ProjectsTriggersPatch
+
+    -- * Request Lenses
+    , ptpXgafv
+    , ptpUploadProtocol
+    , ptpTriggerId
+    , ptpPp
+    , ptpAccessToken
+    , ptpUploadType
+    , ptpPayload
+    , ptpBearerToken
+    , ptpProjectId
+    , ptpCallback
+    ) where
+
+import           Network.Google.ContainerBuilder.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @cloudbuild.projects.triggers.patch@ method which the
+-- 'ProjectsTriggersPatch' request conforms to.
+type ProjectsTriggersPatchResource =
+     "v1" :>
+       "projects" :>
+         Capture "projectId" Text :>
+           "triggers" :>
+             Capture "triggerId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               ReqBody '[JSON] BuildTrigger :>
+                                 Patch '[JSON] BuildTrigger
+
+-- | Updates an BuildTrigger by its project ID and trigger ID. This API is
+-- experimental.
+--
+-- /See:/ 'projectsTriggersPatch' smart constructor.
+data ProjectsTriggersPatch = ProjectsTriggersPatch'
+    { _ptpXgafv          :: !(Maybe Xgafv)
+    , _ptpUploadProtocol :: !(Maybe Text)
+    , _ptpTriggerId      :: !Text
+    , _ptpPp             :: !Bool
+    , _ptpAccessToken    :: !(Maybe Text)
+    , _ptpUploadType     :: !(Maybe Text)
+    , _ptpPayload        :: !BuildTrigger
+    , _ptpBearerToken    :: !(Maybe Text)
+    , _ptpProjectId      :: !Text
+    , _ptpCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsTriggersPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptpXgafv'
+--
+-- * 'ptpUploadProtocol'
+--
+-- * 'ptpTriggerId'
+--
+-- * 'ptpPp'
+--
+-- * 'ptpAccessToken'
+--
+-- * 'ptpUploadType'
+--
+-- * 'ptpPayload'
+--
+-- * 'ptpBearerToken'
+--
+-- * 'ptpProjectId'
+--
+-- * 'ptpCallback'
+projectsTriggersPatch
+    :: Text -- ^ 'ptpTriggerId'
+    -> BuildTrigger -- ^ 'ptpPayload'
+    -> Text -- ^ 'ptpProjectId'
+    -> ProjectsTriggersPatch
+projectsTriggersPatch pPtpTriggerId_ pPtpPayload_ pPtpProjectId_ =
+    ProjectsTriggersPatch'
+    { _ptpXgafv = Nothing
+    , _ptpUploadProtocol = Nothing
+    , _ptpTriggerId = pPtpTriggerId_
+    , _ptpPp = True
+    , _ptpAccessToken = Nothing
+    , _ptpUploadType = Nothing
+    , _ptpPayload = pPtpPayload_
+    , _ptpBearerToken = Nothing
+    , _ptpProjectId = pPtpProjectId_
+    , _ptpCallback = Nothing
+    }
+
+-- | V1 error format.
+ptpXgafv :: Lens' ProjectsTriggersPatch (Maybe Xgafv)
+ptpXgafv = lens _ptpXgafv (\ s a -> s{_ptpXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ptpUploadProtocol :: Lens' ProjectsTriggersPatch (Maybe Text)
+ptpUploadProtocol
+  = lens _ptpUploadProtocol
+      (\ s a -> s{_ptpUploadProtocol = a})
+
+-- | ID of the BuildTrigger to update.
+ptpTriggerId :: Lens' ProjectsTriggersPatch Text
+ptpTriggerId
+  = lens _ptpTriggerId (\ s a -> s{_ptpTriggerId = a})
+
+-- | Pretty-print response.
+ptpPp :: Lens' ProjectsTriggersPatch Bool
+ptpPp = lens _ptpPp (\ s a -> s{_ptpPp = a})
+
+-- | OAuth access token.
+ptpAccessToken :: Lens' ProjectsTriggersPatch (Maybe Text)
+ptpAccessToken
+  = lens _ptpAccessToken
+      (\ s a -> s{_ptpAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ptpUploadType :: Lens' ProjectsTriggersPatch (Maybe Text)
+ptpUploadType
+  = lens _ptpUploadType
+      (\ s a -> s{_ptpUploadType = a})
+
+-- | Multipart request metadata.
+ptpPayload :: Lens' ProjectsTriggersPatch BuildTrigger
+ptpPayload
+  = lens _ptpPayload (\ s a -> s{_ptpPayload = a})
+
+-- | OAuth bearer token.
+ptpBearerToken :: Lens' ProjectsTriggersPatch (Maybe Text)
+ptpBearerToken
+  = lens _ptpBearerToken
+      (\ s a -> s{_ptpBearerToken = a})
+
+-- | ID of the project that owns the trigger.
+ptpProjectId :: Lens' ProjectsTriggersPatch Text
+ptpProjectId
+  = lens _ptpProjectId (\ s a -> s{_ptpProjectId = a})
+
+-- | JSONP
+ptpCallback :: Lens' ProjectsTriggersPatch (Maybe Text)
+ptpCallback
+  = lens _ptpCallback (\ s a -> s{_ptpCallback = a})
+
+instance GoogleRequest ProjectsTriggersPatch where
+        type Rs ProjectsTriggersPatch = BuildTrigger
+        type Scopes ProjectsTriggersPatch =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsTriggersPatch'{..}
+          = go _ptpProjectId _ptpTriggerId _ptpXgafv
+              _ptpUploadProtocol
+              (Just _ptpPp)
+              _ptpAccessToken
+              _ptpUploadType
+              _ptpBearerToken
+              _ptpCallback
+              (Just AltJSON)
+              _ptpPayload
+              containerBuilderService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsTriggersPatchResource)
+                      mempty
diff --git a/gogol-containerbuilder.cabal b/gogol-containerbuilder.cabal
new file mode 100644
--- /dev/null
+++ b/gogol-containerbuilder.cabal
@@ -0,0 +1,56 @@
+name:                  gogol-containerbuilder
+version:               0.1.1
+synopsis:              Google Cloud Container Builder 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:
+    Builds container images in the cloud.
+    .
+    /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.ContainerBuilder
+        , Network.Google.ContainerBuilder.Types
+        , Network.Google.Resource.Cloudbuild.Operations.Get
+        , Network.Google.Resource.Cloudbuild.Operations.List
+        , Network.Google.Resource.Cloudbuild.Projects.Builds.Cancel
+        , Network.Google.Resource.Cloudbuild.Projects.Builds.Create
+        , Network.Google.Resource.Cloudbuild.Projects.Builds.Get
+        , Network.Google.Resource.Cloudbuild.Projects.Builds.List
+        , Network.Google.Resource.Cloudbuild.Projects.Triggers.Create
+        , Network.Google.Resource.Cloudbuild.Projects.Triggers.Delete
+        , Network.Google.Resource.Cloudbuild.Projects.Triggers.Get
+        , Network.Google.Resource.Cloudbuild.Projects.Triggers.List
+        , Network.Google.Resource.Cloudbuild.Projects.Triggers.Patch
+
+    other-modules:
+          Network.Google.ContainerBuilder.Types.Product
+        , Network.Google.ContainerBuilder.Types.Sum
+
+    build-depends:
+          gogol-core == 0.1.1.*
+        , base       >= 4.7 && < 5
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
