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-deploymentmanager
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.0.1`
+
+
+## Description
+
+A client library for the Google Cloud Deployment Manager.
+
+
+## Contribute
+
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+
+> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+
+
+## Licence
+
+`gogol-deploymentmanager` 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/DeploymentManager.hs b/gen/Network/Google/DeploymentManager.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DeploymentManager.hs
@@ -0,0 +1,337 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module      : Network.Google.DeploymentManager
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- The Deployment Manager API allows users to declaratively configure,
+-- deploy and run complex solutions on the Google Cloud Platform.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference>
+module Network.Google.DeploymentManager
+    (
+    -- * Service Configuration
+      deploymentManagerService
+
+    -- * API Declaration
+    , DeploymentManagerAPI
+
+    -- * Resources
+
+    -- ** deploymentmanager.deployments.cancelPreview
+    , module Network.Google.Resource.DeploymentManager.Deployments.CancelPreview
+
+    -- ** deploymentmanager.deployments.delete
+    , module Network.Google.Resource.DeploymentManager.Deployments.Delete
+
+    -- ** deploymentmanager.deployments.get
+    , module Network.Google.Resource.DeploymentManager.Deployments.Get
+
+    -- ** deploymentmanager.deployments.insert
+    , module Network.Google.Resource.DeploymentManager.Deployments.Insert
+
+    -- ** deploymentmanager.deployments.list
+    , module Network.Google.Resource.DeploymentManager.Deployments.List
+
+    -- ** deploymentmanager.deployments.patch
+    , module Network.Google.Resource.DeploymentManager.Deployments.Patch
+
+    -- ** deploymentmanager.deployments.stop
+    , module Network.Google.Resource.DeploymentManager.Deployments.Stop
+
+    -- ** deploymentmanager.deployments.update
+    , module Network.Google.Resource.DeploymentManager.Deployments.Update
+
+    -- ** deploymentmanager.manifests.get
+    , module Network.Google.Resource.DeploymentManager.Manifests.Get
+
+    -- ** deploymentmanager.manifests.list
+    , module Network.Google.Resource.DeploymentManager.Manifests.List
+
+    -- ** deploymentmanager.operations.get
+    , module Network.Google.Resource.DeploymentManager.Operations.Get
+
+    -- ** deploymentmanager.operations.list
+    , module Network.Google.Resource.DeploymentManager.Operations.List
+
+    -- ** deploymentmanager.resources.get
+    , module Network.Google.Resource.DeploymentManager.Resources.Get
+
+    -- ** deploymentmanager.resources.list
+    , module Network.Google.Resource.DeploymentManager.Resources.List
+
+    -- ** deploymentmanager.types.list
+    , module Network.Google.Resource.DeploymentManager.Types.List
+
+    -- * Types
+
+    -- ** OperationWarningsItemDataItem
+    , OperationWarningsItemDataItem
+    , operationWarningsItemDataItem
+    , owidiValue
+    , owidiKey
+
+    -- ** ConfigFile
+    , ConfigFile
+    , configFile
+    , cfContent
+
+    -- ** DeploymentsUpdateCreatePolicy
+    , DeploymentsUpdateCreatePolicy (..)
+
+    -- ** OperationsListResponse
+    , OperationsListResponse
+    , operationsListResponse
+    , olrNextPageToken
+    , olrOperations
+
+    -- ** ResourceUpdateWarningsItemDataItem
+    , ResourceUpdateWarningsItemDataItem
+    , resourceUpdateWarningsItemDataItem
+    , ruwidiValue
+    , ruwidiKey
+
+    -- ** TypesListResponse
+    , TypesListResponse
+    , typesListResponse
+    , tlrNextPageToken
+    , tlrTypes
+
+    -- ** DeploymentsUpdateDeletePolicy
+    , DeploymentsUpdateDeletePolicy (..)
+
+    -- ** DeploymentsPatchDeletePolicy
+    , DeploymentsPatchDeletePolicy (..)
+
+    -- ** Operation
+    , Operation
+    , operation
+    , oTargetId
+    , oStatus
+    , oInsertTime
+    , oProgress
+    , oStartTime
+    , oKind
+    , oError
+    , oHTTPErrorMessage
+    , oZone
+    , oWarnings
+    , oHTTPErrorStatusCode
+    , oUser
+    , oSelfLink
+    , oName
+    , oStatusMessage
+    , oCreationTimestamp
+    , oEndTime
+    , oId
+    , oOperationType
+    , oRegion
+    , oTargetLink
+    , oClientOperationId
+
+    -- ** DeploymentsPatchCreatePolicy
+    , DeploymentsPatchCreatePolicy (..)
+
+    -- ** ResourcesListResponse
+    , ResourcesListResponse
+    , resourcesListResponse
+    , rlrNextPageToken
+    , rlrResources
+
+    -- ** DeploymentUpdate
+    , DeploymentUpdate
+    , deploymentUpdate
+    , duManifest
+
+    -- ** ResourceUpdate
+    , ResourceUpdate
+    , resourceUpdate
+    , ruState
+    , ruError
+    , ruWarnings
+    , ruIntent
+    , ruManifest
+    , ruFinalProperties
+    , ruProperties
+
+    -- ** Manifest
+    , Manifest
+    , manifest
+    , mInsertTime
+    , mLayout
+    , mConfig
+    , mExpandedConfig
+    , mImports
+    , mSelfLink
+    , mName
+    , mId
+
+    -- ** ResourceUpdateWarningsItem
+    , ResourceUpdateWarningsItem
+    , resourceUpdateWarningsItem
+    , ruwiData
+    , ruwiCode
+    , ruwiMessage
+
+    -- ** DeploymentsCancelPreviewRequest
+    , DeploymentsCancelPreviewRequest
+    , deploymentsCancelPreviewRequest
+    , dcprFingerprint
+
+    -- ** Resource
+    , Resource
+    , resource
+    , rInsertTime
+    , rURL
+    , rWarnings
+    , rUpdateTime
+    , rName
+    , rManifest
+    , rFinalProperties
+    , rId
+    , rType
+    , rUpdate
+    , rProperties
+
+    -- ** ResourceUpdateErrorErrorsItem
+    , ResourceUpdateErrorErrorsItem
+    , resourceUpdateErrorErrorsItem
+    , rueeiLocation
+    , rueeiCode
+    , rueeiMessage
+
+    -- ** ManifestsListResponse
+    , ManifestsListResponse
+    , manifestsListResponse
+    , mlrNextPageToken
+    , mlrManifests
+
+    -- ** OperationError
+    , OperationError
+    , operationError
+    , oeErrors
+
+    -- ** Type
+    , Type
+    , type'
+    , tInsertTime
+    , tSelfLink
+    , tName
+    , tId
+
+    -- ** ImportFile
+    , ImportFile
+    , importFile
+    , ifContent
+    , ifName
+
+    -- ** OperationErrorErrorsItem
+    , OperationErrorErrorsItem
+    , operationErrorErrorsItem
+    , oeeiLocation
+    , oeeiCode
+    , oeeiMessage
+
+    -- ** DeploymentsStopRequest
+    , DeploymentsStopRequest
+    , deploymentsStopRequest
+    , dsrFingerprint
+
+    -- ** ResourceWarningsItemDataItem
+    , ResourceWarningsItemDataItem
+    , resourceWarningsItemDataItem
+    , rwidiValue
+    , rwidiKey
+
+    -- ** ResourceUpdateError
+    , ResourceUpdateError
+    , resourceUpdateError
+    , rueErrors
+
+    -- ** DeploymentsListResponse
+    , DeploymentsListResponse
+    , deploymentsListResponse
+    , dlrNextPageToken
+    , dlrDeployments
+
+    -- ** ResourceWarningsItem
+    , ResourceWarningsItem
+    , resourceWarningsItem
+    , rwiData
+    , rwiCode
+    , rwiMessage
+
+    -- ** TargetConfiguration
+    , TargetConfiguration
+    , targetConfiguration
+    , tcConfig
+    , tcImports
+
+    -- ** OperationWarningsItem
+    , OperationWarningsItem
+    , operationWarningsItem
+    , owiData
+    , owiCode
+    , owiMessage
+
+    -- ** Deployment
+    , Deployment
+    , deployment
+    , dInsertTime
+    , dOperation
+    , dFingerprint
+    , dName
+    , dManifest
+    , dId
+    , dDescription
+    , dUpdate
+    , dTarget
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+import           Network.Google.Resource.DeploymentManager.Deployments.CancelPreview
+import           Network.Google.Resource.DeploymentManager.Deployments.Delete
+import           Network.Google.Resource.DeploymentManager.Deployments.Get
+import           Network.Google.Resource.DeploymentManager.Deployments.Insert
+import           Network.Google.Resource.DeploymentManager.Deployments.List
+import           Network.Google.Resource.DeploymentManager.Deployments.Patch
+import           Network.Google.Resource.DeploymentManager.Deployments.Stop
+import           Network.Google.Resource.DeploymentManager.Deployments.Update
+import           Network.Google.Resource.DeploymentManager.Manifests.Get
+import           Network.Google.Resource.DeploymentManager.Manifests.List
+import           Network.Google.Resource.DeploymentManager.Operations.Get
+import           Network.Google.Resource.DeploymentManager.Operations.List
+import           Network.Google.Resource.DeploymentManager.Resources.Get
+import           Network.Google.Resource.DeploymentManager.Resources.List
+import           Network.Google.Resource.DeploymentManager.Types.List
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the Google Cloud Deployment Manager API service.
+type DeploymentManagerAPI =
+     TypesListResource :<|> ResourcesListResource :<|>
+       ResourcesGetResource
+       :<|> ManifestsListResource
+       :<|> ManifestsGetResource
+       :<|> DeploymentsInsertResource
+       :<|> DeploymentsListResource
+       :<|> DeploymentsPatchResource
+       :<|> DeploymentsGetResource
+       :<|> DeploymentsCancelPreviewResource
+       :<|> DeploymentsStopResource
+       :<|> DeploymentsDeleteResource
+       :<|> DeploymentsUpdateResource
+       :<|> OperationsListResource
+       :<|> OperationsGetResource
diff --git a/gen/Network/Google/DeploymentManager/Types.hs b/gen/Network/Google/DeploymentManager/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DeploymentManager/Types.hs
@@ -0,0 +1,276 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.DeploymentManager.Types
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.DeploymentManager.Types
+    (
+    -- * Service Configuration
+      deploymentManagerService
+
+    -- * OAuth Scopes
+    , cloudPlatformReadOnlyScope
+    , cloudPlatformScope
+    , ndevCloudmanScope
+    , ndevCloudmanReadonlyScope
+
+    -- * OperationWarningsItemDataItem
+    , OperationWarningsItemDataItem
+    , operationWarningsItemDataItem
+    , owidiValue
+    , owidiKey
+
+    -- * ConfigFile
+    , ConfigFile
+    , configFile
+    , cfContent
+
+    -- * DeploymentsUpdateCreatePolicy
+    , DeploymentsUpdateCreatePolicy (..)
+
+    -- * OperationsListResponse
+    , OperationsListResponse
+    , operationsListResponse
+    , olrNextPageToken
+    , olrOperations
+
+    -- * ResourceUpdateWarningsItemDataItem
+    , ResourceUpdateWarningsItemDataItem
+    , resourceUpdateWarningsItemDataItem
+    , ruwidiValue
+    , ruwidiKey
+
+    -- * TypesListResponse
+    , TypesListResponse
+    , typesListResponse
+    , tlrNextPageToken
+    , tlrTypes
+
+    -- * DeploymentsUpdateDeletePolicy
+    , DeploymentsUpdateDeletePolicy (..)
+
+    -- * DeploymentsPatchDeletePolicy
+    , DeploymentsPatchDeletePolicy (..)
+
+    -- * Operation
+    , Operation
+    , operation
+    , oTargetId
+    , oStatus
+    , oInsertTime
+    , oProgress
+    , oStartTime
+    , oKind
+    , oError
+    , oHTTPErrorMessage
+    , oZone
+    , oWarnings
+    , oHTTPErrorStatusCode
+    , oUser
+    , oSelfLink
+    , oName
+    , oStatusMessage
+    , oCreationTimestamp
+    , oEndTime
+    , oId
+    , oOperationType
+    , oRegion
+    , oTargetLink
+    , oClientOperationId
+
+    -- * DeploymentsPatchCreatePolicy
+    , DeploymentsPatchCreatePolicy (..)
+
+    -- * ResourcesListResponse
+    , ResourcesListResponse
+    , resourcesListResponse
+    , rlrNextPageToken
+    , rlrResources
+
+    -- * DeploymentUpdate
+    , DeploymentUpdate
+    , deploymentUpdate
+    , duManifest
+
+    -- * ResourceUpdate
+    , ResourceUpdate
+    , resourceUpdate
+    , ruState
+    , ruError
+    , ruWarnings
+    , ruIntent
+    , ruManifest
+    , ruFinalProperties
+    , ruProperties
+
+    -- * Manifest
+    , Manifest
+    , manifest
+    , mInsertTime
+    , mLayout
+    , mConfig
+    , mExpandedConfig
+    , mImports
+    , mSelfLink
+    , mName
+    , mId
+
+    -- * ResourceUpdateWarningsItem
+    , ResourceUpdateWarningsItem
+    , resourceUpdateWarningsItem
+    , ruwiData
+    , ruwiCode
+    , ruwiMessage
+
+    -- * DeploymentsCancelPreviewRequest
+    , DeploymentsCancelPreviewRequest
+    , deploymentsCancelPreviewRequest
+    , dcprFingerprint
+
+    -- * Resource
+    , Resource
+    , resource
+    , rInsertTime
+    , rURL
+    , rWarnings
+    , rUpdateTime
+    , rName
+    , rManifest
+    , rFinalProperties
+    , rId
+    , rType
+    , rUpdate
+    , rProperties
+
+    -- * ResourceUpdateErrorErrorsItem
+    , ResourceUpdateErrorErrorsItem
+    , resourceUpdateErrorErrorsItem
+    , rueeiLocation
+    , rueeiCode
+    , rueeiMessage
+
+    -- * ManifestsListResponse
+    , ManifestsListResponse
+    , manifestsListResponse
+    , mlrNextPageToken
+    , mlrManifests
+
+    -- * OperationError
+    , OperationError
+    , operationError
+    , oeErrors
+
+    -- * Type
+    , Type
+    , type'
+    , tInsertTime
+    , tSelfLink
+    , tName
+    , tId
+
+    -- * ImportFile
+    , ImportFile
+    , importFile
+    , ifContent
+    , ifName
+
+    -- * OperationErrorErrorsItem
+    , OperationErrorErrorsItem
+    , operationErrorErrorsItem
+    , oeeiLocation
+    , oeeiCode
+    , oeeiMessage
+
+    -- * DeploymentsStopRequest
+    , DeploymentsStopRequest
+    , deploymentsStopRequest
+    , dsrFingerprint
+
+    -- * ResourceWarningsItemDataItem
+    , ResourceWarningsItemDataItem
+    , resourceWarningsItemDataItem
+    , rwidiValue
+    , rwidiKey
+
+    -- * ResourceUpdateError
+    , ResourceUpdateError
+    , resourceUpdateError
+    , rueErrors
+
+    -- * DeploymentsListResponse
+    , DeploymentsListResponse
+    , deploymentsListResponse
+    , dlrNextPageToken
+    , dlrDeployments
+
+    -- * ResourceWarningsItem
+    , ResourceWarningsItem
+    , resourceWarningsItem
+    , rwiData
+    , rwiCode
+    , rwiMessage
+
+    -- * TargetConfiguration
+    , TargetConfiguration
+    , targetConfiguration
+    , tcConfig
+    , tcImports
+
+    -- * OperationWarningsItem
+    , OperationWarningsItem
+    , operationWarningsItem
+    , owiData
+    , owiCode
+    , owiMessage
+
+    -- * Deployment
+    , Deployment
+    , deployment
+    , dInsertTime
+    , dOperation
+    , dFingerprint
+    , dName
+    , dManifest
+    , dId
+    , dDescription
+    , dUpdate
+    , dTarget
+    ) where
+
+import           Network.Google.DeploymentManager.Types.Product
+import           Network.Google.DeploymentManager.Types.Sum
+import           Network.Google.Prelude
+
+-- | Default request referring to version 'v2' of the Google Cloud Deployment Manager API. This contains the host and root path used as a starting point for constructing service requests.
+deploymentManagerService :: Service
+deploymentManagerService
+  = defaultService (ServiceId "deploymentmanager:v2")
+      "www.googleapis.com"
+
+-- | View your data across Google Cloud Platform services
+cloudPlatformReadOnlyScope :: OAuthScope
+cloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+-- | View and manage your data across Google Cloud Platform services
+cloudPlatformScope :: OAuthScope
+cloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform";
+
+-- | View and manage your Google Cloud Platform management resources and
+-- deployment status information
+ndevCloudmanScope :: OAuthScope
+ndevCloudmanScope = "https://www.googleapis.com/auth/ndev.cloudman";
+
+-- | View your Google Cloud Platform management resources and deployment
+-- status information
+ndevCloudmanReadonlyScope :: OAuthScope
+ndevCloudmanReadonlyScope = "https://www.googleapis.com/auth/ndev.cloudman.readonly";
diff --git a/gen/Network/Google/DeploymentManager/Types/Product.hs b/gen/Network/Google/DeploymentManager/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DeploymentManager/Types/Product.hs
@@ -0,0 +1,1903 @@
+{-# 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.DeploymentManager.Types.Product
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.DeploymentManager.Types.Product where
+
+import           Network.Google.DeploymentManager.Types.Sum
+import           Network.Google.Prelude
+
+--
+-- /See:/ 'operationWarningsItemDataItem' smart constructor.
+data OperationWarningsItemDataItem = OperationWarningsItemDataItem
+    { _owidiValue :: !(Maybe Text)
+    , _owidiKey   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationWarningsItemDataItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'owidiValue'
+--
+-- * 'owidiKey'
+operationWarningsItemDataItem
+    :: OperationWarningsItemDataItem
+operationWarningsItemDataItem =
+    OperationWarningsItemDataItem
+    { _owidiValue = Nothing
+    , _owidiKey = Nothing
+    }
+
+-- | [Output Only] A warning data value corresponding to the key.
+owidiValue :: Lens' OperationWarningsItemDataItem (Maybe Text)
+owidiValue
+  = lens _owidiValue (\ s a -> s{_owidiValue = a})
+
+-- | [Output Only] A key for the warning data.
+owidiKey :: Lens' OperationWarningsItemDataItem (Maybe Text)
+owidiKey = lens _owidiKey (\ s a -> s{_owidiKey = a})
+
+instance FromJSON OperationWarningsItemDataItem where
+        parseJSON
+          = withObject "OperationWarningsItemDataItem"
+              (\ o ->
+                 OperationWarningsItemDataItem <$>
+                   (o .:? "value") <*> (o .:? "key"))
+
+instance ToJSON OperationWarningsItemDataItem where
+        toJSON OperationWarningsItemDataItem{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _owidiValue,
+                  ("key" .=) <$> _owidiKey])
+
+-- |
+--
+-- /See:/ 'configFile' smart constructor.
+newtype ConfigFile = ConfigFile
+    { _cfContent :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConfigFile' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfContent'
+configFile
+    :: ConfigFile
+configFile =
+    ConfigFile
+    { _cfContent = Nothing
+    }
+
+-- | The contents of the file.
+cfContent :: Lens' ConfigFile (Maybe Text)
+cfContent
+  = lens _cfContent (\ s a -> s{_cfContent = a})
+
+instance FromJSON ConfigFile where
+        parseJSON
+          = withObject "ConfigFile"
+              (\ o -> ConfigFile <$> (o .:? "content"))
+
+instance ToJSON ConfigFile where
+        toJSON ConfigFile{..}
+          = object (catMaybes [("content" .=) <$> _cfContent])
+
+-- | A response containing a partial list of operations and a page token used
+-- to build the next request if the request has been truncated.
+--
+-- /See:/ 'operationsListResponse' smart constructor.
+data OperationsListResponse = OperationsListResponse
+    { _olrNextPageToken :: !(Maybe Text)
+    , _olrOperations    :: !(Maybe [Operation])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'olrNextPageToken'
+--
+-- * 'olrOperations'
+operationsListResponse
+    :: OperationsListResponse
+operationsListResponse =
+    OperationsListResponse
+    { _olrNextPageToken = Nothing
+    , _olrOperations = Nothing
+    }
+
+-- | [Output Only] A token used to continue a truncated list request.
+olrNextPageToken :: Lens' OperationsListResponse (Maybe Text)
+olrNextPageToken
+  = lens _olrNextPageToken
+      (\ s a -> s{_olrNextPageToken = a})
+
+-- | [Output Only] Operations contained in this list response.
+olrOperations :: Lens' OperationsListResponse [Operation]
+olrOperations
+  = lens _olrOperations
+      (\ s a -> s{_olrOperations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON OperationsListResponse where
+        parseJSON
+          = withObject "OperationsListResponse"
+              (\ o ->
+                 OperationsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "operations" .!= mempty))
+
+instance ToJSON OperationsListResponse where
+        toJSON OperationsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _olrNextPageToken,
+                  ("operations" .=) <$> _olrOperations])
+
+--
+-- /See:/ 'resourceUpdateWarningsItemDataItem' smart constructor.
+data ResourceUpdateWarningsItemDataItem = ResourceUpdateWarningsItemDataItem
+    { _ruwidiValue :: !(Maybe Text)
+    , _ruwidiKey   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceUpdateWarningsItemDataItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ruwidiValue'
+--
+-- * 'ruwidiKey'
+resourceUpdateWarningsItemDataItem
+    :: ResourceUpdateWarningsItemDataItem
+resourceUpdateWarningsItemDataItem =
+    ResourceUpdateWarningsItemDataItem
+    { _ruwidiValue = Nothing
+    , _ruwidiKey = Nothing
+    }
+
+-- | [Output Only] A warning data value corresponding to the key.
+ruwidiValue :: Lens' ResourceUpdateWarningsItemDataItem (Maybe Text)
+ruwidiValue
+  = lens _ruwidiValue (\ s a -> s{_ruwidiValue = a})
+
+-- | [Output Only] A key for the warning data.
+ruwidiKey :: Lens' ResourceUpdateWarningsItemDataItem (Maybe Text)
+ruwidiKey
+  = lens _ruwidiKey (\ s a -> s{_ruwidiKey = a})
+
+instance FromJSON ResourceUpdateWarningsItemDataItem
+         where
+        parseJSON
+          = withObject "ResourceUpdateWarningsItemDataItem"
+              (\ o ->
+                 ResourceUpdateWarningsItemDataItem <$>
+                   (o .:? "value") <*> (o .:? "key"))
+
+instance ToJSON ResourceUpdateWarningsItemDataItem
+         where
+        toJSON ResourceUpdateWarningsItemDataItem{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _ruwidiValue,
+                  ("key" .=) <$> _ruwidiKey])
+
+-- | A response that returns all Types supported by Deployment Manager
+--
+-- /See:/ 'typesListResponse' smart constructor.
+data TypesListResponse = TypesListResponse
+    { _tlrNextPageToken :: !(Maybe Text)
+    , _tlrTypes         :: !(Maybe [Type])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TypesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tlrNextPageToken'
+--
+-- * 'tlrTypes'
+typesListResponse
+    :: TypesListResponse
+typesListResponse =
+    TypesListResponse
+    { _tlrNextPageToken = Nothing
+    , _tlrTypes = Nothing
+    }
+
+-- | A token used to continue a truncated list request.
+tlrNextPageToken :: Lens' TypesListResponse (Maybe Text)
+tlrNextPageToken
+  = lens _tlrNextPageToken
+      (\ s a -> s{_tlrNextPageToken = a})
+
+-- | [Output Only] A list of resource types supported by Deployment Manager.
+tlrTypes :: Lens' TypesListResponse [Type]
+tlrTypes
+  = lens _tlrTypes (\ s a -> s{_tlrTypes = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON TypesListResponse where
+        parseJSON
+          = withObject "TypesListResponse"
+              (\ o ->
+                 TypesListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "types" .!= mempty))
+
+instance ToJSON TypesListResponse where
+        toJSON TypesListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _tlrNextPageToken,
+                  ("types" .=) <$> _tlrTypes])
+
+-- | An Operation resource, used to manage asynchronous API requests.
+--
+-- /See:/ 'operation' smart constructor.
+data Operation = Operation
+    { _oTargetId            :: !(Maybe (Textual Word64))
+    , _oStatus              :: !(Maybe Text)
+    , _oInsertTime          :: !(Maybe Text)
+    , _oProgress            :: !(Maybe (Textual Int32))
+    , _oStartTime           :: !(Maybe Text)
+    , _oKind                :: !Text
+    , _oError               :: !(Maybe OperationError)
+    , _oHTTPErrorMessage    :: !(Maybe Text)
+    , _oZone                :: !(Maybe Text)
+    , _oWarnings            :: !(Maybe [OperationWarningsItem])
+    , _oHTTPErrorStatusCode :: !(Maybe (Textual Int32))
+    , _oUser                :: !(Maybe Text)
+    , _oSelfLink            :: !(Maybe Text)
+    , _oName                :: !(Maybe Text)
+    , _oStatusMessage       :: !(Maybe Text)
+    , _oCreationTimestamp   :: !(Maybe Text)
+    , _oEndTime             :: !(Maybe Text)
+    , _oId                  :: !(Maybe (Textual Word64))
+    , _oOperationType       :: !(Maybe Text)
+    , _oRegion              :: !(Maybe Text)
+    , _oTargetLink          :: !(Maybe Text)
+    , _oClientOperationId   :: !(Maybe Text)
+    } 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:
+--
+-- * 'oTargetId'
+--
+-- * 'oStatus'
+--
+-- * 'oInsertTime'
+--
+-- * 'oProgress'
+--
+-- * 'oStartTime'
+--
+-- * 'oKind'
+--
+-- * 'oError'
+--
+-- * 'oHTTPErrorMessage'
+--
+-- * 'oZone'
+--
+-- * 'oWarnings'
+--
+-- * 'oHTTPErrorStatusCode'
+--
+-- * 'oUser'
+--
+-- * 'oSelfLink'
+--
+-- * 'oName'
+--
+-- * 'oStatusMessage'
+--
+-- * 'oCreationTimestamp'
+--
+-- * 'oEndTime'
+--
+-- * 'oId'
+--
+-- * 'oOperationType'
+--
+-- * 'oRegion'
+--
+-- * 'oTargetLink'
+--
+-- * 'oClientOperationId'
+operation
+    :: Operation
+operation =
+    Operation
+    { _oTargetId = Nothing
+    , _oStatus = Nothing
+    , _oInsertTime = Nothing
+    , _oProgress = Nothing
+    , _oStartTime = Nothing
+    , _oKind = "deploymentmanager#operation"
+    , _oError = Nothing
+    , _oHTTPErrorMessage = Nothing
+    , _oZone = Nothing
+    , _oWarnings = Nothing
+    , _oHTTPErrorStatusCode = Nothing
+    , _oUser = Nothing
+    , _oSelfLink = Nothing
+    , _oName = Nothing
+    , _oStatusMessage = Nothing
+    , _oCreationTimestamp = Nothing
+    , _oEndTime = Nothing
+    , _oId = Nothing
+    , _oOperationType = Nothing
+    , _oRegion = Nothing
+    , _oTargetLink = Nothing
+    , _oClientOperationId = Nothing
+    }
+
+-- | [Output Only] Unique target ID which identifies a particular incarnation
+-- of the target.
+oTargetId :: Lens' Operation (Maybe Word64)
+oTargetId
+  = lens _oTargetId (\ s a -> s{_oTargetId = a}) .
+      mapping _Coerce
+
+-- | [Output Only] Status of the operation. Can be one of the following:
+-- PENDING, RUNNING, or DONE.
+oStatus :: Lens' Operation (Maybe Text)
+oStatus = lens _oStatus (\ s a -> s{_oStatus = a})
+
+-- | [Output Only] The time that this operation was requested. This is in
+-- RFC3339 text format.
+oInsertTime :: Lens' Operation (Maybe Text)
+oInsertTime
+  = lens _oInsertTime (\ s a -> s{_oInsertTime = a})
+
+-- | [Output Only] An optional progress indicator that ranges from 0 to 100.
+-- There is no requirement that this be linear or support any granularity
+-- of operations. This should not be used to guess at when the operation
+-- will be complete. This number should monotonically increase as the
+-- operation progresses.
+oProgress :: Lens' Operation (Maybe Int32)
+oProgress
+  = lens _oProgress (\ s a -> s{_oProgress = a}) .
+      mapping _Coerce
+
+-- | [Output Only] The time that this operation was started by the server.
+-- This is in RFC3339 text format.
+oStartTime :: Lens' Operation (Maybe Text)
+oStartTime
+  = lens _oStartTime (\ s a -> s{_oStartTime = a})
+
+-- | [Output Only] Type of the resource. Always compute#Operation for
+-- Operation resources.
+oKind :: Lens' Operation Text
+oKind = lens _oKind (\ s a -> s{_oKind = a})
+
+-- | [Output Only] If errors are generated during processing of the
+-- operation, this field will be populated.
+oError :: Lens' Operation (Maybe OperationError)
+oError = lens _oError (\ s a -> s{_oError = a})
+
+-- | [Output Only] If the operation fails, this field contains the HTTP error
+-- message that was returned, such as NOT FOUND.
+oHTTPErrorMessage :: Lens' Operation (Maybe Text)
+oHTTPErrorMessage
+  = lens _oHTTPErrorMessage
+      (\ s a -> s{_oHTTPErrorMessage = a})
+
+-- | [Output Only] URL of the zone where the operation resides.
+oZone :: Lens' Operation (Maybe Text)
+oZone = lens _oZone (\ s a -> s{_oZone = a})
+
+-- | [Output Only] If warning messages are generated during processing of the
+-- operation, this field will be populated.
+oWarnings :: Lens' Operation [OperationWarningsItem]
+oWarnings
+  = lens _oWarnings (\ s a -> s{_oWarnings = a}) .
+      _Default
+      . _Coerce
+
+-- | [Output Only] If the operation fails, this field contains the HTTP error
+-- message that was returned, such as 404.
+oHTTPErrorStatusCode :: Lens' Operation (Maybe Int32)
+oHTTPErrorStatusCode
+  = lens _oHTTPErrorStatusCode
+      (\ s a -> s{_oHTTPErrorStatusCode = a})
+      . mapping _Coerce
+
+-- | [Output Only] User who requested the operation, for example:
+-- user\'example.com.
+oUser :: Lens' Operation (Maybe Text)
+oUser = lens _oUser (\ s a -> s{_oUser = a})
+
+-- | [Output Only] Server-defined URL for the resource.
+oSelfLink :: Lens' Operation (Maybe Text)
+oSelfLink
+  = lens _oSelfLink (\ s a -> s{_oSelfLink = a})
+
+-- | [Output Only] Name of the resource.
+oName :: Lens' Operation (Maybe Text)
+oName = lens _oName (\ s a -> s{_oName = a})
+
+-- | [Output Only] An optional textual description of the current status of
+-- the operation.
+oStatusMessage :: Lens' Operation (Maybe Text)
+oStatusMessage
+  = lens _oStatusMessage
+      (\ s a -> s{_oStatusMessage = a})
+
+-- | [Output Only] Creation timestamp in RFC3339 text format.
+oCreationTimestamp :: Lens' Operation (Maybe Text)
+oCreationTimestamp
+  = lens _oCreationTimestamp
+      (\ s a -> s{_oCreationTimestamp = a})
+
+-- | [Output Only] The time that this operation was completed. This is in
+-- RFC3339 text format.
+oEndTime :: Lens' Operation (Maybe Text)
+oEndTime = lens _oEndTime (\ s a -> s{_oEndTime = a})
+
+-- | [Output Only] Unique identifier for the resource; defined by the server.
+oId :: Lens' Operation (Maybe Word64)
+oId
+  = lens _oId (\ s a -> s{_oId = a}) . mapping _Coerce
+
+-- | [Output Only] Type of the operation, such as insert, update, and delete.
+oOperationType :: Lens' Operation (Maybe Text)
+oOperationType
+  = lens _oOperationType
+      (\ s a -> s{_oOperationType = a})
+
+-- | [Output Only] URL of the region where the operation resides. Only
+-- applicable for regional resources.
+oRegion :: Lens' Operation (Maybe Text)
+oRegion = lens _oRegion (\ s a -> s{_oRegion = a})
+
+-- | [Output Only] URL of the resource the operation is mutating.
+oTargetLink :: Lens' Operation (Maybe Text)
+oTargetLink
+  = lens _oTargetLink (\ s a -> s{_oTargetLink = a})
+
+-- | [Output Only] An optional identifier specified by the client when the
+-- mutation was initiated. Must be unique for all Operation resources in
+-- the project.
+oClientOperationId :: Lens' Operation (Maybe Text)
+oClientOperationId
+  = lens _oClientOperationId
+      (\ s a -> s{_oClientOperationId = a})
+
+instance FromJSON Operation where
+        parseJSON
+          = withObject "Operation"
+              (\ o ->
+                 Operation <$>
+                   (o .:? "targetId") <*> (o .:? "status") <*>
+                     (o .:? "insertTime")
+                     <*> (o .:? "progress")
+                     <*> (o .:? "startTime")
+                     <*> (o .:? "kind" .!= "deploymentmanager#operation")
+                     <*> (o .:? "error")
+                     <*> (o .:? "httpErrorMessage")
+                     <*> (o .:? "zone")
+                     <*> (o .:? "warnings" .!= mempty)
+                     <*> (o .:? "httpErrorStatusCode")
+                     <*> (o .:? "user")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "name")
+                     <*> (o .:? "statusMessage")
+                     <*> (o .:? "creationTimestamp")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "id")
+                     <*> (o .:? "operationType")
+                     <*> (o .:? "region")
+                     <*> (o .:? "targetLink")
+                     <*> (o .:? "clientOperationId"))
+
+instance ToJSON Operation where
+        toJSON Operation{..}
+          = object
+              (catMaybes
+                 [("targetId" .=) <$> _oTargetId,
+                  ("status" .=) <$> _oStatus,
+                  ("insertTime" .=) <$> _oInsertTime,
+                  ("progress" .=) <$> _oProgress,
+                  ("startTime" .=) <$> _oStartTime,
+                  Just ("kind" .= _oKind), ("error" .=) <$> _oError,
+                  ("httpErrorMessage" .=) <$> _oHTTPErrorMessage,
+                  ("zone" .=) <$> _oZone,
+                  ("warnings" .=) <$> _oWarnings,
+                  ("httpErrorStatusCode" .=) <$> _oHTTPErrorStatusCode,
+                  ("user" .=) <$> _oUser,
+                  ("selfLink" .=) <$> _oSelfLink,
+                  ("name" .=) <$> _oName,
+                  ("statusMessage" .=) <$> _oStatusMessage,
+                  ("creationTimestamp" .=) <$> _oCreationTimestamp,
+                  ("endTime" .=) <$> _oEndTime, ("id" .=) <$> _oId,
+                  ("operationType" .=) <$> _oOperationType,
+                  ("region" .=) <$> _oRegion,
+                  ("targetLink" .=) <$> _oTargetLink,
+                  ("clientOperationId" .=) <$> _oClientOperationId])
+
+-- | A response containing a partial list of resources and a page token used
+-- to build the next request if the request has been truncated.
+--
+-- /See:/ 'resourcesListResponse' smart constructor.
+data ResourcesListResponse = ResourcesListResponse
+    { _rlrNextPageToken :: !(Maybe Text)
+    , _rlrResources     :: !(Maybe [Resource])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourcesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlrNextPageToken'
+--
+-- * 'rlrResources'
+resourcesListResponse
+    :: ResourcesListResponse
+resourcesListResponse =
+    ResourcesListResponse
+    { _rlrNextPageToken = Nothing
+    , _rlrResources = Nothing
+    }
+
+-- | A token used to continue a truncated list request.
+rlrNextPageToken :: Lens' ResourcesListResponse (Maybe Text)
+rlrNextPageToken
+  = lens _rlrNextPageToken
+      (\ s a -> s{_rlrNextPageToken = a})
+
+-- | Resources contained in this list response.
+rlrResources :: Lens' ResourcesListResponse [Resource]
+rlrResources
+  = lens _rlrResources (\ s a -> s{_rlrResources = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ResourcesListResponse where
+        parseJSON
+          = withObject "ResourcesListResponse"
+              (\ o ->
+                 ResourcesListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "resources" .!= mempty))
+
+instance ToJSON ResourcesListResponse where
+        toJSON ResourcesListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _rlrNextPageToken,
+                  ("resources" .=) <$> _rlrResources])
+
+-- |
+--
+-- /See:/ 'deploymentUpdate' smart constructor.
+newtype DeploymentUpdate = DeploymentUpdate
+    { _duManifest :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'duManifest'
+deploymentUpdate
+    :: DeploymentUpdate
+deploymentUpdate =
+    DeploymentUpdate
+    { _duManifest = Nothing
+    }
+
+-- | [Output Only] URL of the manifest representing the update configuration
+-- of this deployment.
+duManifest :: Lens' DeploymentUpdate (Maybe Text)
+duManifest
+  = lens _duManifest (\ s a -> s{_duManifest = a})
+
+instance FromJSON DeploymentUpdate where
+        parseJSON
+          = withObject "DeploymentUpdate"
+              (\ o -> DeploymentUpdate <$> (o .:? "manifest"))
+
+instance ToJSON DeploymentUpdate where
+        toJSON DeploymentUpdate{..}
+          = object
+              (catMaybes [("manifest" .=) <$> _duManifest])
+
+-- |
+--
+-- /See:/ 'resourceUpdate' smart constructor.
+data ResourceUpdate = ResourceUpdate
+    { _ruState           :: !(Maybe Text)
+    , _ruError           :: !(Maybe ResourceUpdateError)
+    , _ruWarnings        :: !(Maybe [ResourceUpdateWarningsItem])
+    , _ruIntent          :: !(Maybe Text)
+    , _ruManifest        :: !(Maybe Text)
+    , _ruFinalProperties :: !(Maybe Text)
+    , _ruProperties      :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ruState'
+--
+-- * 'ruError'
+--
+-- * 'ruWarnings'
+--
+-- * 'ruIntent'
+--
+-- * 'ruManifest'
+--
+-- * 'ruFinalProperties'
+--
+-- * 'ruProperties'
+resourceUpdate
+    :: ResourceUpdate
+resourceUpdate =
+    ResourceUpdate
+    { _ruState = Nothing
+    , _ruError = Nothing
+    , _ruWarnings = Nothing
+    , _ruIntent = Nothing
+    , _ruManifest = Nothing
+    , _ruFinalProperties = Nothing
+    , _ruProperties = Nothing
+    }
+
+-- | [Output Only] The state of the resource.
+ruState :: Lens' ResourceUpdate (Maybe Text)
+ruState = lens _ruState (\ s a -> s{_ruState = a})
+
+-- | [Output Only] If errors are generated during update of the resource,
+-- this field will be populated.
+ruError :: Lens' ResourceUpdate (Maybe ResourceUpdateError)
+ruError = lens _ruError (\ s a -> s{_ruError = a})
+
+-- | [Output Only] If warning messages are generated during processing of
+-- this resource, this field will be populated.
+ruWarnings :: Lens' ResourceUpdate [ResourceUpdateWarningsItem]
+ruWarnings
+  = lens _ruWarnings (\ s a -> s{_ruWarnings = a}) .
+      _Default
+      . _Coerce
+
+-- | [Output Only] The intent of the resource: PREVIEW, UPDATE, or CANCEL.
+ruIntent :: Lens' ResourceUpdate (Maybe Text)
+ruIntent = lens _ruIntent (\ s a -> s{_ruIntent = a})
+
+-- | [Output Only] URL of the manifest representing the update configuration
+-- of this resource.
+ruManifest :: Lens' ResourceUpdate (Maybe Text)
+ruManifest
+  = lens _ruManifest (\ s a -> s{_ruManifest = a})
+
+-- | [Output Only] The expanded properties of the resource with reference
+-- values expanded. Returned as serialized YAML.
+ruFinalProperties :: Lens' ResourceUpdate (Maybe Text)
+ruFinalProperties
+  = lens _ruFinalProperties
+      (\ s a -> s{_ruFinalProperties = a})
+
+-- | [Output Only] The set of updated properties for this resource, before
+-- references are expanded. Returned as serialized YAML.
+ruProperties :: Lens' ResourceUpdate (Maybe Text)
+ruProperties
+  = lens _ruProperties (\ s a -> s{_ruProperties = a})
+
+instance FromJSON ResourceUpdate where
+        parseJSON
+          = withObject "ResourceUpdate"
+              (\ o ->
+                 ResourceUpdate <$>
+                   (o .:? "state") <*> (o .:? "error") <*>
+                     (o .:? "warnings" .!= mempty)
+                     <*> (o .:? "intent")
+                     <*> (o .:? "manifest")
+                     <*> (o .:? "finalProperties")
+                     <*> (o .:? "properties"))
+
+instance ToJSON ResourceUpdate where
+        toJSON ResourceUpdate{..}
+          = object
+              (catMaybes
+                 [("state" .=) <$> _ruState,
+                  ("error" .=) <$> _ruError,
+                  ("warnings" .=) <$> _ruWarnings,
+                  ("intent" .=) <$> _ruIntent,
+                  ("manifest" .=) <$> _ruManifest,
+                  ("finalProperties" .=) <$> _ruFinalProperties,
+                  ("properties" .=) <$> _ruProperties])
+
+-- |
+--
+-- /See:/ 'manifest' smart constructor.
+data Manifest = Manifest
+    { _mInsertTime     :: !(Maybe Text)
+    , _mLayout         :: !(Maybe Text)
+    , _mConfig         :: !(Maybe ConfigFile)
+    , _mExpandedConfig :: !(Maybe Text)
+    , _mImports        :: !(Maybe [ImportFile])
+    , _mSelfLink       :: !(Maybe Text)
+    , _mName           :: !(Maybe Text)
+    , _mId             :: !(Maybe (Textual Word64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Manifest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mInsertTime'
+--
+-- * 'mLayout'
+--
+-- * 'mConfig'
+--
+-- * 'mExpandedConfig'
+--
+-- * 'mImports'
+--
+-- * 'mSelfLink'
+--
+-- * 'mName'
+--
+-- * 'mId'
+manifest
+    :: Manifest
+manifest =
+    Manifest
+    { _mInsertTime = Nothing
+    , _mLayout = Nothing
+    , _mConfig = Nothing
+    , _mExpandedConfig = Nothing
+    , _mImports = Nothing
+    , _mSelfLink = Nothing
+    , _mName = Nothing
+    , _mId = Nothing
+    }
+
+-- | [Output Only] Timestamp when the manifest was created, in RFC3339 text
+-- format.
+mInsertTime :: Lens' Manifest (Maybe Text)
+mInsertTime
+  = lens _mInsertTime (\ s a -> s{_mInsertTime = a})
+
+-- | [Output Only] The YAML layout for this manifest.
+mLayout :: Lens' Manifest (Maybe Text)
+mLayout = lens _mLayout (\ s a -> s{_mLayout = a})
+
+-- | [Output Only] The YAML configuration for this manifest.
+mConfig :: Lens' Manifest (Maybe ConfigFile)
+mConfig = lens _mConfig (\ s a -> s{_mConfig = a})
+
+-- | [Output Only] The fully-expanded configuration file, including any
+-- templates and references.
+mExpandedConfig :: Lens' Manifest (Maybe Text)
+mExpandedConfig
+  = lens _mExpandedConfig
+      (\ s a -> s{_mExpandedConfig = a})
+
+-- | [Output Only] The imported files for this manifest.
+mImports :: Lens' Manifest [ImportFile]
+mImports
+  = lens _mImports (\ s a -> s{_mImports = a}) .
+      _Default
+      . _Coerce
+
+-- | [Output Only] Self link for the manifest.
+mSelfLink :: Lens' Manifest (Maybe Text)
+mSelfLink
+  = lens _mSelfLink (\ s a -> s{_mSelfLink = a})
+
+-- | [Output Only] The name of the manifest.
+mName :: Lens' Manifest (Maybe Text)
+mName = lens _mName (\ s a -> s{_mName = a})
+
+-- | [Output Only] Unique identifier for the resource; defined by the server.
+mId :: Lens' Manifest (Maybe Word64)
+mId
+  = lens _mId (\ s a -> s{_mId = a}) . mapping _Coerce
+
+instance FromJSON Manifest where
+        parseJSON
+          = withObject "Manifest"
+              (\ o ->
+                 Manifest <$>
+                   (o .:? "insertTime") <*> (o .:? "layout") <*>
+                     (o .:? "config")
+                     <*> (o .:? "expandedConfig")
+                     <*> (o .:? "imports" .!= mempty)
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON Manifest where
+        toJSON Manifest{..}
+          = object
+              (catMaybes
+                 [("insertTime" .=) <$> _mInsertTime,
+                  ("layout" .=) <$> _mLayout,
+                  ("config" .=) <$> _mConfig,
+                  ("expandedConfig" .=) <$> _mExpandedConfig,
+                  ("imports" .=) <$> _mImports,
+                  ("selfLink" .=) <$> _mSelfLink,
+                  ("name" .=) <$> _mName, ("id" .=) <$> _mId])
+
+--
+-- /See:/ 'resourceUpdateWarningsItem' smart constructor.
+data ResourceUpdateWarningsItem = ResourceUpdateWarningsItem
+    { _ruwiData    :: !(Maybe [ResourceUpdateWarningsItemDataItem])
+    , _ruwiCode    :: !(Maybe Text)
+    , _ruwiMessage :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceUpdateWarningsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ruwiData'
+--
+-- * 'ruwiCode'
+--
+-- * 'ruwiMessage'
+resourceUpdateWarningsItem
+    :: ResourceUpdateWarningsItem
+resourceUpdateWarningsItem =
+    ResourceUpdateWarningsItem
+    { _ruwiData = Nothing
+    , _ruwiCode = Nothing
+    , _ruwiMessage = Nothing
+    }
+
+-- | [Output Only] Metadata for this warning in key: value format.
+ruwiData :: Lens' ResourceUpdateWarningsItem [ResourceUpdateWarningsItemDataItem]
+ruwiData
+  = lens _ruwiData (\ s a -> s{_ruwiData = a}) .
+      _Default
+      . _Coerce
+
+-- | [Output Only] The warning type identifier for this warning.
+ruwiCode :: Lens' ResourceUpdateWarningsItem (Maybe Text)
+ruwiCode = lens _ruwiCode (\ s a -> s{_ruwiCode = a})
+
+-- | [Output Only] Optional human-readable details for this warning.
+ruwiMessage :: Lens' ResourceUpdateWarningsItem (Maybe Text)
+ruwiMessage
+  = lens _ruwiMessage (\ s a -> s{_ruwiMessage = a})
+
+instance FromJSON ResourceUpdateWarningsItem where
+        parseJSON
+          = withObject "ResourceUpdateWarningsItem"
+              (\ o ->
+                 ResourceUpdateWarningsItem <$>
+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
+                     (o .:? "message"))
+
+instance ToJSON ResourceUpdateWarningsItem where
+        toJSON ResourceUpdateWarningsItem{..}
+          = object
+              (catMaybes
+                 [("data" .=) <$> _ruwiData,
+                  ("code" .=) <$> _ruwiCode,
+                  ("message" .=) <$> _ruwiMessage])
+
+-- |
+--
+-- /See:/ 'deploymentsCancelPreviewRequest' smart constructor.
+newtype DeploymentsCancelPreviewRequest = DeploymentsCancelPreviewRequest
+    { _dcprFingerprint :: Maybe (Textual Word8)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsCancelPreviewRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dcprFingerprint'
+deploymentsCancelPreviewRequest
+    :: DeploymentsCancelPreviewRequest
+deploymentsCancelPreviewRequest =
+    DeploymentsCancelPreviewRequest
+    { _dcprFingerprint = Nothing
+    }
+
+-- | Specifies a fingerprint for cancelPreview() requests. A fingerprint is a
+-- randomly generated value that must be provided in cancelPreview()
+-- requests to perform optimistic locking. This ensures optimistic
+-- concurrency so that the deployment does not have conflicting requests
+-- (e.g. if someone attempts to make a new update request while another
+-- user attempts to cancel a preview, this would prevent one of the
+-- requests). The fingerprint is initially generated by Deployment Manager
+-- and changes after every request to modify a deployment. To get the
+-- latest fingerprint value, perform a get() request to a deployment.
+dcprFingerprint :: Lens' DeploymentsCancelPreviewRequest (Maybe Word8)
+dcprFingerprint
+  = lens _dcprFingerprint
+      (\ s a -> s{_dcprFingerprint = a})
+      . mapping _Coerce
+
+instance FromJSON DeploymentsCancelPreviewRequest
+         where
+        parseJSON
+          = withObject "DeploymentsCancelPreviewRequest"
+              (\ o ->
+                 DeploymentsCancelPreviewRequest <$>
+                   (o .:? "fingerprint"))
+
+instance ToJSON DeploymentsCancelPreviewRequest where
+        toJSON DeploymentsCancelPreviewRequest{..}
+          = object
+              (catMaybes [("fingerprint" .=) <$> _dcprFingerprint])
+
+-- |
+--
+-- /See:/ 'resource' smart constructor.
+data Resource = Resource
+    { _rInsertTime      :: !(Maybe Text)
+    , _rURL             :: !(Maybe Text)
+    , _rWarnings        :: !(Maybe [ResourceWarningsItem])
+    , _rUpdateTime      :: !(Maybe Text)
+    , _rName            :: !(Maybe Text)
+    , _rManifest        :: !(Maybe Text)
+    , _rFinalProperties :: !(Maybe Text)
+    , _rId              :: !(Maybe (Textual Word64))
+    , _rType            :: !(Maybe Text)
+    , _rUpdate          :: !(Maybe ResourceUpdate)
+    , _rProperties      :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Resource' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rInsertTime'
+--
+-- * 'rURL'
+--
+-- * 'rWarnings'
+--
+-- * 'rUpdateTime'
+--
+-- * 'rName'
+--
+-- * 'rManifest'
+--
+-- * 'rFinalProperties'
+--
+-- * 'rId'
+--
+-- * 'rType'
+--
+-- * 'rUpdate'
+--
+-- * 'rProperties'
+resource
+    :: Resource
+resource =
+    Resource
+    { _rInsertTime = Nothing
+    , _rURL = Nothing
+    , _rWarnings = Nothing
+    , _rUpdateTime = Nothing
+    , _rName = Nothing
+    , _rManifest = Nothing
+    , _rFinalProperties = Nothing
+    , _rId = Nothing
+    , _rType = Nothing
+    , _rUpdate = Nothing
+    , _rProperties = Nothing
+    }
+
+-- | [Output Only] Timestamp when the resource was created or acquired, in
+-- RFC3339 text format .
+rInsertTime :: Lens' Resource (Maybe Text)
+rInsertTime
+  = lens _rInsertTime (\ s a -> s{_rInsertTime = a})
+
+-- | [Output Only] The URL of the actual resource.
+rURL :: Lens' Resource (Maybe Text)
+rURL = lens _rURL (\ s a -> s{_rURL = a})
+
+-- | [Output Only] If warning messages are generated during processing of
+-- this resource, this field will be populated.
+rWarnings :: Lens' Resource [ResourceWarningsItem]
+rWarnings
+  = lens _rWarnings (\ s a -> s{_rWarnings = a}) .
+      _Default
+      . _Coerce
+
+-- | [Output Only] Timestamp when the resource was updated, in RFC3339 text
+-- format .
+rUpdateTime :: Lens' Resource (Maybe Text)
+rUpdateTime
+  = lens _rUpdateTime (\ s a -> s{_rUpdateTime = a})
+
+-- | [Output Only] The name of the resource as it appears in the YAML config.
+rName :: Lens' Resource (Maybe Text)
+rName = lens _rName (\ s a -> s{_rName = a})
+
+-- | [Output Only] URL of the manifest representing the current configuration
+-- of this resource.
+rManifest :: Lens' Resource (Maybe Text)
+rManifest
+  = lens _rManifest (\ s a -> s{_rManifest = a})
+
+-- | [Output Only] The evaluated properties of the resource with references
+-- expanded. Returned as serialized YAML.
+rFinalProperties :: Lens' Resource (Maybe Text)
+rFinalProperties
+  = lens _rFinalProperties
+      (\ s a -> s{_rFinalProperties = a})
+
+-- | [Output Only] Unique identifier for the resource; defined by the server.
+rId :: Lens' Resource (Maybe Word64)
+rId
+  = lens _rId (\ s a -> s{_rId = a}) . mapping _Coerce
+
+-- | [Output Only] The type of the resource, for example compute.v1.instance,
+-- or replicaPools.v1beta2.instanceGroupManager.
+rType :: Lens' Resource (Maybe Text)
+rType = lens _rType (\ s a -> s{_rType = a})
+
+-- | [Output Only] If Deployment Manager is currently updating or previewing
+-- an update to this resource, the updated configuration appears here.
+rUpdate :: Lens' Resource (Maybe ResourceUpdate)
+rUpdate = lens _rUpdate (\ s a -> s{_rUpdate = a})
+
+-- | [Output Only] The current properties of the resource before any
+-- references have been filled in. Returned as serialized YAML.
+rProperties :: Lens' Resource (Maybe Text)
+rProperties
+  = lens _rProperties (\ s a -> s{_rProperties = a})
+
+instance FromJSON Resource where
+        parseJSON
+          = withObject "Resource"
+              (\ o ->
+                 Resource <$>
+                   (o .:? "insertTime") <*> (o .:? "url") <*>
+                     (o .:? "warnings" .!= mempty)
+                     <*> (o .:? "updateTime")
+                     <*> (o .:? "name")
+                     <*> (o .:? "manifest")
+                     <*> (o .:? "finalProperties")
+                     <*> (o .:? "id")
+                     <*> (o .:? "type")
+                     <*> (o .:? "update")
+                     <*> (o .:? "properties"))
+
+instance ToJSON Resource where
+        toJSON Resource{..}
+          = object
+              (catMaybes
+                 [("insertTime" .=) <$> _rInsertTime,
+                  ("url" .=) <$> _rURL, ("warnings" .=) <$> _rWarnings,
+                  ("updateTime" .=) <$> _rUpdateTime,
+                  ("name" .=) <$> _rName,
+                  ("manifest" .=) <$> _rManifest,
+                  ("finalProperties" .=) <$> _rFinalProperties,
+                  ("id" .=) <$> _rId, ("type" .=) <$> _rType,
+                  ("update" .=) <$> _rUpdate,
+                  ("properties" .=) <$> _rProperties])
+
+--
+-- /See:/ 'resourceUpdateErrorErrorsItem' smart constructor.
+data ResourceUpdateErrorErrorsItem = ResourceUpdateErrorErrorsItem
+    { _rueeiLocation :: !(Maybe Text)
+    , _rueeiCode     :: !(Maybe Text)
+    , _rueeiMessage  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceUpdateErrorErrorsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rueeiLocation'
+--
+-- * 'rueeiCode'
+--
+-- * 'rueeiMessage'
+resourceUpdateErrorErrorsItem
+    :: ResourceUpdateErrorErrorsItem
+resourceUpdateErrorErrorsItem =
+    ResourceUpdateErrorErrorsItem
+    { _rueeiLocation = Nothing
+    , _rueeiCode = Nothing
+    , _rueeiMessage = Nothing
+    }
+
+-- | [Output Only] Indicates the field in the request which caused the error.
+-- This property is optional.
+rueeiLocation :: Lens' ResourceUpdateErrorErrorsItem (Maybe Text)
+rueeiLocation
+  = lens _rueeiLocation
+      (\ s a -> s{_rueeiLocation = a})
+
+-- | [Output Only] The error type identifier for this error.
+rueeiCode :: Lens' ResourceUpdateErrorErrorsItem (Maybe Text)
+rueeiCode
+  = lens _rueeiCode (\ s a -> s{_rueeiCode = a})
+
+-- | [Output Only] An optional, human-readable error message.
+rueeiMessage :: Lens' ResourceUpdateErrorErrorsItem (Maybe Text)
+rueeiMessage
+  = lens _rueeiMessage (\ s a -> s{_rueeiMessage = a})
+
+instance FromJSON ResourceUpdateErrorErrorsItem where
+        parseJSON
+          = withObject "ResourceUpdateErrorErrorsItem"
+              (\ o ->
+                 ResourceUpdateErrorErrorsItem <$>
+                   (o .:? "location") <*> (o .:? "code") <*>
+                     (o .:? "message"))
+
+instance ToJSON ResourceUpdateErrorErrorsItem where
+        toJSON ResourceUpdateErrorErrorsItem{..}
+          = object
+              (catMaybes
+                 [("location" .=) <$> _rueeiLocation,
+                  ("code" .=) <$> _rueeiCode,
+                  ("message" .=) <$> _rueeiMessage])
+
+-- | A response containing a partial list of manifests and a page token used
+-- to build the next request if the request has been truncated.
+--
+-- /See:/ 'manifestsListResponse' smart constructor.
+data ManifestsListResponse = ManifestsListResponse
+    { _mlrNextPageToken :: !(Maybe Text)
+    , _mlrManifests     :: !(Maybe [Manifest])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ManifestsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mlrNextPageToken'
+--
+-- * 'mlrManifests'
+manifestsListResponse
+    :: ManifestsListResponse
+manifestsListResponse =
+    ManifestsListResponse
+    { _mlrNextPageToken = Nothing
+    , _mlrManifests = Nothing
+    }
+
+-- | [Output Only] A token used to continue a truncated list request.
+mlrNextPageToken :: Lens' ManifestsListResponse (Maybe Text)
+mlrNextPageToken
+  = lens _mlrNextPageToken
+      (\ s a -> s{_mlrNextPageToken = a})
+
+-- | [Output Only] Manifests contained in this list response.
+mlrManifests :: Lens' ManifestsListResponse [Manifest]
+mlrManifests
+  = lens _mlrManifests (\ s a -> s{_mlrManifests = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ManifestsListResponse where
+        parseJSON
+          = withObject "ManifestsListResponse"
+              (\ o ->
+                 ManifestsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "manifests" .!= mempty))
+
+instance ToJSON ManifestsListResponse where
+        toJSON ManifestsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _mlrNextPageToken,
+                  ("manifests" .=) <$> _mlrManifests])
+
+-- | [Output Only] If errors are generated during processing of the
+-- operation, this field will be populated.
+--
+-- /See:/ 'operationError' smart constructor.
+newtype OperationError = OperationError
+    { _oeErrors :: Maybe [OperationErrorErrorsItem]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationError' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'oeErrors'
+operationError
+    :: OperationError
+operationError =
+    OperationError
+    { _oeErrors = Nothing
+    }
+
+-- | [Output Only] The array of errors encountered while processing this
+-- operation.
+oeErrors :: Lens' OperationError [OperationErrorErrorsItem]
+oeErrors
+  = lens _oeErrors (\ s a -> s{_oeErrors = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON OperationError where
+        parseJSON
+          = withObject "OperationError"
+              (\ o ->
+                 OperationError <$> (o .:? "errors" .!= mempty))
+
+instance ToJSON OperationError where
+        toJSON OperationError{..}
+          = object (catMaybes [("errors" .=) <$> _oeErrors])
+
+-- | A resource type supported by Deployment Manager.
+--
+-- /See:/ 'type'' smart constructor.
+data Type = Type
+    { _tInsertTime :: !(Maybe Text)
+    , _tSelfLink   :: !(Maybe Text)
+    , _tName       :: !(Maybe Text)
+    , _tId         :: !(Maybe (Textual Word64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Type' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tInsertTime'
+--
+-- * 'tSelfLink'
+--
+-- * 'tName'
+--
+-- * 'tId'
+type'
+    :: Type
+type' =
+    Type
+    { _tInsertTime = Nothing
+    , _tSelfLink = Nothing
+    , _tName = Nothing
+    , _tId = Nothing
+    }
+
+-- | [Output Only] Timestamp when the type was created, in RFC3339 text
+-- format.
+tInsertTime :: Lens' Type (Maybe Text)
+tInsertTime
+  = lens _tInsertTime (\ s a -> s{_tInsertTime = a})
+
+-- | [Output Only] Self link for the type.
+tSelfLink :: Lens' Type (Maybe Text)
+tSelfLink
+  = lens _tSelfLink (\ s a -> s{_tSelfLink = a})
+
+-- | Name of the type.
+tName :: Lens' Type (Maybe Text)
+tName = lens _tName (\ s a -> s{_tName = a})
+
+-- | [Output Only] Unique identifier for the resource; defined by the server.
+tId :: Lens' Type (Maybe Word64)
+tId
+  = lens _tId (\ s a -> s{_tId = a}) . mapping _Coerce
+
+instance FromJSON Type where
+        parseJSON
+          = withObject "Type"
+              (\ o ->
+                 Type <$>
+                   (o .:? "insertTime") <*> (o .:? "selfLink") <*>
+                     (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON Type where
+        toJSON Type{..}
+          = object
+              (catMaybes
+                 [("insertTime" .=) <$> _tInsertTime,
+                  ("selfLink" .=) <$> _tSelfLink,
+                  ("name" .=) <$> _tName, ("id" .=) <$> _tId])
+
+-- |
+--
+-- /See:/ 'importFile' smart constructor.
+data ImportFile = ImportFile
+    { _ifContent :: !(Maybe Text)
+    , _ifName    :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ImportFile' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ifContent'
+--
+-- * 'ifName'
+importFile
+    :: ImportFile
+importFile =
+    ImportFile
+    { _ifContent = Nothing
+    , _ifName = Nothing
+    }
+
+-- | The contents of the file.
+ifContent :: Lens' ImportFile (Maybe Text)
+ifContent
+  = lens _ifContent (\ s a -> s{_ifContent = a})
+
+-- | The name of the file.
+ifName :: Lens' ImportFile (Maybe Text)
+ifName = lens _ifName (\ s a -> s{_ifName = a})
+
+instance FromJSON ImportFile where
+        parseJSON
+          = withObject "ImportFile"
+              (\ o ->
+                 ImportFile <$> (o .:? "content") <*> (o .:? "name"))
+
+instance ToJSON ImportFile where
+        toJSON ImportFile{..}
+          = object
+              (catMaybes
+                 [("content" .=) <$> _ifContent,
+                  ("name" .=) <$> _ifName])
+
+--
+-- /See:/ 'operationErrorErrorsItem' smart constructor.
+data OperationErrorErrorsItem = OperationErrorErrorsItem
+    { _oeeiLocation :: !(Maybe Text)
+    , _oeeiCode     :: !(Maybe Text)
+    , _oeeiMessage  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationErrorErrorsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'oeeiLocation'
+--
+-- * 'oeeiCode'
+--
+-- * 'oeeiMessage'
+operationErrorErrorsItem
+    :: OperationErrorErrorsItem
+operationErrorErrorsItem =
+    OperationErrorErrorsItem
+    { _oeeiLocation = Nothing
+    , _oeeiCode = Nothing
+    , _oeeiMessage = Nothing
+    }
+
+-- | [Output Only] Indicates the field in the request which caused the error.
+-- This property is optional.
+oeeiLocation :: Lens' OperationErrorErrorsItem (Maybe Text)
+oeeiLocation
+  = lens _oeeiLocation (\ s a -> s{_oeeiLocation = a})
+
+-- | [Output Only] The error type identifier for this error.
+oeeiCode :: Lens' OperationErrorErrorsItem (Maybe Text)
+oeeiCode = lens _oeeiCode (\ s a -> s{_oeeiCode = a})
+
+-- | [Output Only] An optional, human-readable error message.
+oeeiMessage :: Lens' OperationErrorErrorsItem (Maybe Text)
+oeeiMessage
+  = lens _oeeiMessage (\ s a -> s{_oeeiMessage = a})
+
+instance FromJSON OperationErrorErrorsItem where
+        parseJSON
+          = withObject "OperationErrorErrorsItem"
+              (\ o ->
+                 OperationErrorErrorsItem <$>
+                   (o .:? "location") <*> (o .:? "code") <*>
+                     (o .:? "message"))
+
+instance ToJSON OperationErrorErrorsItem where
+        toJSON OperationErrorErrorsItem{..}
+          = object
+              (catMaybes
+                 [("location" .=) <$> _oeeiLocation,
+                  ("code" .=) <$> _oeeiCode,
+                  ("message" .=) <$> _oeeiMessage])
+
+-- |
+--
+-- /See:/ 'deploymentsStopRequest' smart constructor.
+newtype DeploymentsStopRequest = DeploymentsStopRequest
+    { _dsrFingerprint :: Maybe (Textual Word8)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsStopRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsrFingerprint'
+deploymentsStopRequest
+    :: DeploymentsStopRequest
+deploymentsStopRequest =
+    DeploymentsStopRequest
+    { _dsrFingerprint = Nothing
+    }
+
+-- | Specifies a fingerprint for stop() requests. A fingerprint is a randomly
+-- generated value that must be provided in stop() requests to perform
+-- optimistic locking. This ensures optimistic concurrency so that the
+-- deployment does not have conflicting requests (e.g. if someone attempts
+-- to make a new update request while another user attempts to stop an
+-- ongoing update request, this would prevent a collision). The fingerprint
+-- is initially generated by Deployment Manager and changes after every
+-- request to modify a deployment. To get the latest fingerprint value,
+-- perform a get() request to a deployment.
+dsrFingerprint :: Lens' DeploymentsStopRequest (Maybe Word8)
+dsrFingerprint
+  = lens _dsrFingerprint
+      (\ s a -> s{_dsrFingerprint = a})
+      . mapping _Coerce
+
+instance FromJSON DeploymentsStopRequest where
+        parseJSON
+          = withObject "DeploymentsStopRequest"
+              (\ o ->
+                 DeploymentsStopRequest <$> (o .:? "fingerprint"))
+
+instance ToJSON DeploymentsStopRequest where
+        toJSON DeploymentsStopRequest{..}
+          = object
+              (catMaybes [("fingerprint" .=) <$> _dsrFingerprint])
+
+--
+-- /See:/ 'resourceWarningsItemDataItem' smart constructor.
+data ResourceWarningsItemDataItem = ResourceWarningsItemDataItem
+    { _rwidiValue :: !(Maybe Text)
+    , _rwidiKey   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceWarningsItemDataItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rwidiValue'
+--
+-- * 'rwidiKey'
+resourceWarningsItemDataItem
+    :: ResourceWarningsItemDataItem
+resourceWarningsItemDataItem =
+    ResourceWarningsItemDataItem
+    { _rwidiValue = Nothing
+    , _rwidiKey = Nothing
+    }
+
+-- | [Output Only] A warning data value corresponding to the key.
+rwidiValue :: Lens' ResourceWarningsItemDataItem (Maybe Text)
+rwidiValue
+  = lens _rwidiValue (\ s a -> s{_rwidiValue = a})
+
+-- | [Output Only] A key for the warning data.
+rwidiKey :: Lens' ResourceWarningsItemDataItem (Maybe Text)
+rwidiKey = lens _rwidiKey (\ s a -> s{_rwidiKey = a})
+
+instance FromJSON ResourceWarningsItemDataItem where
+        parseJSON
+          = withObject "ResourceWarningsItemDataItem"
+              (\ o ->
+                 ResourceWarningsItemDataItem <$>
+                   (o .:? "value") <*> (o .:? "key"))
+
+instance ToJSON ResourceWarningsItemDataItem where
+        toJSON ResourceWarningsItemDataItem{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _rwidiValue,
+                  ("key" .=) <$> _rwidiKey])
+
+-- | [Output Only] If errors are generated during update of the resource,
+-- this field will be populated.
+--
+-- /See:/ 'resourceUpdateError' smart constructor.
+newtype ResourceUpdateError = ResourceUpdateError
+    { _rueErrors :: Maybe [ResourceUpdateErrorErrorsItem]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceUpdateError' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rueErrors'
+resourceUpdateError
+    :: ResourceUpdateError
+resourceUpdateError =
+    ResourceUpdateError
+    { _rueErrors = Nothing
+    }
+
+-- | [Output Only] The array of errors encountered while processing this
+-- operation.
+rueErrors :: Lens' ResourceUpdateError [ResourceUpdateErrorErrorsItem]
+rueErrors
+  = lens _rueErrors (\ s a -> s{_rueErrors = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ResourceUpdateError where
+        parseJSON
+          = withObject "ResourceUpdateError"
+              (\ o ->
+                 ResourceUpdateError <$> (o .:? "errors" .!= mempty))
+
+instance ToJSON ResourceUpdateError where
+        toJSON ResourceUpdateError{..}
+          = object (catMaybes [("errors" .=) <$> _rueErrors])
+
+-- | A response containing a partial list of deployments and a page token
+-- used to build the next request if the request has been truncated.
+--
+-- /See:/ 'deploymentsListResponse' smart constructor.
+data DeploymentsListResponse = DeploymentsListResponse
+    { _dlrNextPageToken :: !(Maybe Text)
+    , _dlrDeployments   :: !(Maybe [Deployment])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dlrNextPageToken'
+--
+-- * 'dlrDeployments'
+deploymentsListResponse
+    :: DeploymentsListResponse
+deploymentsListResponse =
+    DeploymentsListResponse
+    { _dlrNextPageToken = Nothing
+    , _dlrDeployments = Nothing
+    }
+
+-- | [Output Only] A token used to continue a truncated list request.
+dlrNextPageToken :: Lens' DeploymentsListResponse (Maybe Text)
+dlrNextPageToken
+  = lens _dlrNextPageToken
+      (\ s a -> s{_dlrNextPageToken = a})
+
+-- | [Output Only] The deployments contained in this response.
+dlrDeployments :: Lens' DeploymentsListResponse [Deployment]
+dlrDeployments
+  = lens _dlrDeployments
+      (\ s a -> s{_dlrDeployments = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON DeploymentsListResponse where
+        parseJSON
+          = withObject "DeploymentsListResponse"
+              (\ o ->
+                 DeploymentsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "deployments" .!= mempty))
+
+instance ToJSON DeploymentsListResponse where
+        toJSON DeploymentsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _dlrNextPageToken,
+                  ("deployments" .=) <$> _dlrDeployments])
+
+--
+-- /See:/ 'resourceWarningsItem' smart constructor.
+data ResourceWarningsItem = ResourceWarningsItem
+    { _rwiData    :: !(Maybe [ResourceWarningsItemDataItem])
+    , _rwiCode    :: !(Maybe Text)
+    , _rwiMessage :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceWarningsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rwiData'
+--
+-- * 'rwiCode'
+--
+-- * 'rwiMessage'
+resourceWarningsItem
+    :: ResourceWarningsItem
+resourceWarningsItem =
+    ResourceWarningsItem
+    { _rwiData = Nothing
+    , _rwiCode = Nothing
+    , _rwiMessage = Nothing
+    }
+
+-- | [Output Only] Metadata for this warning in key: value format.
+rwiData :: Lens' ResourceWarningsItem [ResourceWarningsItemDataItem]
+rwiData
+  = lens _rwiData (\ s a -> s{_rwiData = a}) . _Default
+      . _Coerce
+
+-- | [Output Only] The warning type identifier for this warning.
+rwiCode :: Lens' ResourceWarningsItem (Maybe Text)
+rwiCode = lens _rwiCode (\ s a -> s{_rwiCode = a})
+
+-- | [Output Only] Optional human-readable details for this warning.
+rwiMessage :: Lens' ResourceWarningsItem (Maybe Text)
+rwiMessage
+  = lens _rwiMessage (\ s a -> s{_rwiMessage = a})
+
+instance FromJSON ResourceWarningsItem where
+        parseJSON
+          = withObject "ResourceWarningsItem"
+              (\ o ->
+                 ResourceWarningsItem <$>
+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
+                     (o .:? "message"))
+
+instance ToJSON ResourceWarningsItem where
+        toJSON ResourceWarningsItem{..}
+          = object
+              (catMaybes
+                 [("data" .=) <$> _rwiData, ("code" .=) <$> _rwiCode,
+                  ("message" .=) <$> _rwiMessage])
+
+-- |
+--
+-- /See:/ 'targetConfiguration' smart constructor.
+data TargetConfiguration = TargetConfiguration
+    { _tcConfig  :: !(Maybe ConfigFile)
+    , _tcImports :: !(Maybe [ImportFile])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tcConfig'
+--
+-- * 'tcImports'
+targetConfiguration
+    :: TargetConfiguration
+targetConfiguration =
+    TargetConfiguration
+    { _tcConfig = Nothing
+    , _tcImports = Nothing
+    }
+
+-- | The configuration to use for this deployment.
+tcConfig :: Lens' TargetConfiguration (Maybe ConfigFile)
+tcConfig = lens _tcConfig (\ s a -> s{_tcConfig = a})
+
+-- | Specifies any files to import for this configuration. This can be used
+-- to import templates or other files. For example, you might import a text
+-- file in order to use the file in a template.
+tcImports :: Lens' TargetConfiguration [ImportFile]
+tcImports
+  = lens _tcImports (\ s a -> s{_tcImports = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON TargetConfiguration where
+        parseJSON
+          = withObject "TargetConfiguration"
+              (\ o ->
+                 TargetConfiguration <$>
+                   (o .:? "config") <*> (o .:? "imports" .!= mempty))
+
+instance ToJSON TargetConfiguration where
+        toJSON TargetConfiguration{..}
+          = object
+              (catMaybes
+                 [("config" .=) <$> _tcConfig,
+                  ("imports" .=) <$> _tcImports])
+
+--
+-- /See:/ 'operationWarningsItem' smart constructor.
+data OperationWarningsItem = OperationWarningsItem
+    { _owiData    :: !(Maybe [OperationWarningsItemDataItem])
+    , _owiCode    :: !(Maybe Text)
+    , _owiMessage :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationWarningsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'owiData'
+--
+-- * 'owiCode'
+--
+-- * 'owiMessage'
+operationWarningsItem
+    :: OperationWarningsItem
+operationWarningsItem =
+    OperationWarningsItem
+    { _owiData = Nothing
+    , _owiCode = Nothing
+    , _owiMessage = Nothing
+    }
+
+-- | [Output Only] Metadata for this warning in key: value format.
+owiData :: Lens' OperationWarningsItem [OperationWarningsItemDataItem]
+owiData
+  = lens _owiData (\ s a -> s{_owiData = a}) . _Default
+      . _Coerce
+
+-- | [Output Only] The warning type identifier for this warning.
+owiCode :: Lens' OperationWarningsItem (Maybe Text)
+owiCode = lens _owiCode (\ s a -> s{_owiCode = a})
+
+-- | [Output Only] Optional human-readable details for this warning.
+owiMessage :: Lens' OperationWarningsItem (Maybe Text)
+owiMessage
+  = lens _owiMessage (\ s a -> s{_owiMessage = a})
+
+instance FromJSON OperationWarningsItem where
+        parseJSON
+          = withObject "OperationWarningsItem"
+              (\ o ->
+                 OperationWarningsItem <$>
+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
+                     (o .:? "message"))
+
+instance ToJSON OperationWarningsItem where
+        toJSON OperationWarningsItem{..}
+          = object
+              (catMaybes
+                 [("data" .=) <$> _owiData, ("code" .=) <$> _owiCode,
+                  ("message" .=) <$> _owiMessage])
+
+-- |
+--
+-- /See:/ 'deployment' smart constructor.
+data Deployment = Deployment
+    { _dInsertTime  :: !(Maybe Text)
+    , _dOperation   :: !(Maybe Operation)
+    , _dFingerprint :: !(Maybe (Textual Word8))
+    , _dName        :: !(Maybe Text)
+    , _dManifest    :: !(Maybe Text)
+    , _dId          :: !(Maybe (Textual Word64))
+    , _dDescription :: !(Maybe Text)
+    , _dUpdate      :: !(Maybe DeploymentUpdate)
+    , _dTarget      :: !(Maybe TargetConfiguration)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Deployment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dInsertTime'
+--
+-- * 'dOperation'
+--
+-- * 'dFingerprint'
+--
+-- * 'dName'
+--
+-- * 'dManifest'
+--
+-- * 'dId'
+--
+-- * 'dDescription'
+--
+-- * 'dUpdate'
+--
+-- * 'dTarget'
+deployment
+    :: Deployment
+deployment =
+    Deployment
+    { _dInsertTime = Nothing
+    , _dOperation = Nothing
+    , _dFingerprint = Nothing
+    , _dName = Nothing
+    , _dManifest = Nothing
+    , _dId = Nothing
+    , _dDescription = Nothing
+    , _dUpdate = Nothing
+    , _dTarget = Nothing
+    }
+
+-- | [Output Only] Timestamp when the deployment was created, in RFC3339 text
+-- format .
+dInsertTime :: Lens' Deployment (Maybe Text)
+dInsertTime
+  = lens _dInsertTime (\ s a -> s{_dInsertTime = a})
+
+-- | [Output Only] The Operation that most recently ran, or is currently
+-- running, on this deployment.
+dOperation :: Lens' Deployment (Maybe Operation)
+dOperation
+  = lens _dOperation (\ s a -> s{_dOperation = a})
+
+-- | Provides a fingerprint to use in requests to modify a deployment, such
+-- as update(), stop(), and cancelPreview() requests. A fingerprint is a
+-- randomly generated value that must be provided with update(), stop(),
+-- and cancelPreview() requests to perform optimistic locking. This ensures
+-- optimistic concurrency so that only one request happens at a time. The
+-- fingerprint is initially generated by Deployment Manager and changes
+-- after every request to modify data. To get the latest fingerprint value,
+-- perform a get() request to a deployment.
+dFingerprint :: Lens' Deployment (Maybe Word8)
+dFingerprint
+  = lens _dFingerprint (\ s a -> s{_dFingerprint = a})
+      . mapping _Coerce
+
+-- | Name of the resource; provided by the client when the resource is
+-- created. The name must be 1-63 characters long, and comply with RFC1035.
+-- Specifically, the name must be 1-63 characters long and match the
+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first
+-- character must be a lowercase letter, and all following characters must
+-- be a dash, lowercase letter, or digit, except the last character, which
+-- cannot be a dash.
+dName :: Lens' Deployment (Maybe Text)
+dName = lens _dName (\ s a -> s{_dName = a})
+
+-- | [Output Only] URL of the manifest representing the last manifest that
+-- was successfully deployed.
+dManifest :: Lens' Deployment (Maybe Text)
+dManifest
+  = lens _dManifest (\ s a -> s{_dManifest = a})
+
+-- | [Output Only] Unique identifier for the resource; defined by the server.
+dId :: Lens' Deployment (Maybe Word64)
+dId
+  = lens _dId (\ s a -> s{_dId = a}) . mapping _Coerce
+
+-- | An optional user-provided description of the deployment.
+dDescription :: Lens' Deployment (Maybe Text)
+dDescription
+  = lens _dDescription (\ s a -> s{_dDescription = a})
+
+-- | [Output Only] If Deployment Manager is currently updating or previewing
+-- an update to this deployment, the updated configuration appears here.
+dUpdate :: Lens' Deployment (Maybe DeploymentUpdate)
+dUpdate = lens _dUpdate (\ s a -> s{_dUpdate = a})
+
+-- | [Input Only] The parameters that define your deployment, including the
+-- deployment configuration and relevant templates.
+dTarget :: Lens' Deployment (Maybe TargetConfiguration)
+dTarget = lens _dTarget (\ s a -> s{_dTarget = a})
+
+instance FromJSON Deployment where
+        parseJSON
+          = withObject "Deployment"
+              (\ o ->
+                 Deployment <$>
+                   (o .:? "insertTime") <*> (o .:? "operation") <*>
+                     (o .:? "fingerprint")
+                     <*> (o .:? "name")
+                     <*> (o .:? "manifest")
+                     <*> (o .:? "id")
+                     <*> (o .:? "description")
+                     <*> (o .:? "update")
+                     <*> (o .:? "target"))
+
+instance ToJSON Deployment where
+        toJSON Deployment{..}
+          = object
+              (catMaybes
+                 [("insertTime" .=) <$> _dInsertTime,
+                  ("operation" .=) <$> _dOperation,
+                  ("fingerprint" .=) <$> _dFingerprint,
+                  ("name" .=) <$> _dName,
+                  ("manifest" .=) <$> _dManifest, ("id" .=) <$> _dId,
+                  ("description" .=) <$> _dDescription,
+                  ("update" .=) <$> _dUpdate,
+                  ("target" .=) <$> _dTarget])
diff --git a/gen/Network/Google/DeploymentManager/Types/Sum.hs b/gen/Network/Google/DeploymentManager/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DeploymentManager/Types/Sum.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE LambdaCase         #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.DeploymentManager.Types.Sum
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.DeploymentManager.Types.Sum where
+
+import           Network.Google.Prelude
+
+-- | Sets the policy to use for creating new resources.
+data DeploymentsUpdateCreatePolicy
+    = Acquire
+      -- ^ @ACQUIRE@
+    | CreateOrAcquire
+      -- ^ @CREATE_OR_ACQUIRE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DeploymentsUpdateCreatePolicy
+
+instance FromText DeploymentsUpdateCreatePolicy where
+    fromText = \case
+        "ACQUIRE" -> Just Acquire
+        "CREATE_OR_ACQUIRE" -> Just CreateOrAcquire
+        _ -> Nothing
+
+instance ToText DeploymentsUpdateCreatePolicy where
+    toText = \case
+        Acquire -> "ACQUIRE"
+        CreateOrAcquire -> "CREATE_OR_ACQUIRE"
+
+instance FromJSON DeploymentsUpdateCreatePolicy where
+    parseJSON = parseJSONText "DeploymentsUpdateCreatePolicy"
+
+instance ToJSON DeploymentsUpdateCreatePolicy where
+    toJSON = toJSONText
+
+-- | Sets the policy to use for deleting resources.
+data DeploymentsUpdateDeletePolicy
+    = Abandon
+      -- ^ @ABANDON@
+    | Delete'
+      -- ^ @DELETE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DeploymentsUpdateDeletePolicy
+
+instance FromText DeploymentsUpdateDeletePolicy where
+    fromText = \case
+        "ABANDON" -> Just Abandon
+        "DELETE" -> Just Delete'
+        _ -> Nothing
+
+instance ToText DeploymentsUpdateDeletePolicy where
+    toText = \case
+        Abandon -> "ABANDON"
+        Delete' -> "DELETE"
+
+instance FromJSON DeploymentsUpdateDeletePolicy where
+    parseJSON = parseJSONText "DeploymentsUpdateDeletePolicy"
+
+instance ToJSON DeploymentsUpdateDeletePolicy where
+    toJSON = toJSONText
+
+-- | Sets the policy to use for deleting resources.
+data DeploymentsPatchDeletePolicy
+    = DPDPAbandon
+      -- ^ @ABANDON@
+    | DPDPDelete'
+      -- ^ @DELETE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DeploymentsPatchDeletePolicy
+
+instance FromText DeploymentsPatchDeletePolicy where
+    fromText = \case
+        "ABANDON" -> Just DPDPAbandon
+        "DELETE" -> Just DPDPDelete'
+        _ -> Nothing
+
+instance ToText DeploymentsPatchDeletePolicy where
+    toText = \case
+        DPDPAbandon -> "ABANDON"
+        DPDPDelete' -> "DELETE"
+
+instance FromJSON DeploymentsPatchDeletePolicy where
+    parseJSON = parseJSONText "DeploymentsPatchDeletePolicy"
+
+instance ToJSON DeploymentsPatchDeletePolicy where
+    toJSON = toJSONText
+
+-- | Sets the policy to use for creating new resources.
+data DeploymentsPatchCreatePolicy
+    = DPCPAcquire
+      -- ^ @ACQUIRE@
+    | DPCPCreateOrAcquire
+      -- ^ @CREATE_OR_ACQUIRE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DeploymentsPatchCreatePolicy
+
+instance FromText DeploymentsPatchCreatePolicy where
+    fromText = \case
+        "ACQUIRE" -> Just DPCPAcquire
+        "CREATE_OR_ACQUIRE" -> Just DPCPCreateOrAcquire
+        _ -> Nothing
+
+instance ToText DeploymentsPatchCreatePolicy where
+    toText = \case
+        DPCPAcquire -> "ACQUIRE"
+        DPCPCreateOrAcquire -> "CREATE_OR_ACQUIRE"
+
+instance FromJSON DeploymentsPatchCreatePolicy where
+    parseJSON = parseJSONText "DeploymentsPatchCreatePolicy"
+
+instance ToJSON DeploymentsPatchCreatePolicy where
+    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/DeploymentManager/Deployments/CancelPreview.hs b/gen/Network/Google/Resource/DeploymentManager/Deployments/CancelPreview.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Deployments/CancelPreview.hs
@@ -0,0 +1,116 @@
+{-# 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.DeploymentManager.Deployments.CancelPreview
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Cancels and removes the preview currently associated with the
+-- deployment.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.deployments.cancelPreview@.
+module Network.Google.Resource.DeploymentManager.Deployments.CancelPreview
+    (
+    -- * REST Resource
+      DeploymentsCancelPreviewResource
+
+    -- * Creating a Request
+    , deploymentsCancelPreview
+    , DeploymentsCancelPreview
+
+    -- * Request Lenses
+    , dcpProject
+    , dcpPayload
+    , dcpDeployment
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.deployments.cancelPreview@ method which the
+-- 'DeploymentsCancelPreview' request conforms to.
+type DeploymentsCancelPreviewResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 Capture "deployment" Text :>
+                   "cancelPreview" :>
+                     QueryParam "alt" AltJSON :>
+                       ReqBody '[JSON] DeploymentsCancelPreviewRequest :>
+                         Post '[JSON] Operation
+
+-- | Cancels and removes the preview currently associated with the
+-- deployment.
+--
+-- /See:/ 'deploymentsCancelPreview' smart constructor.
+data DeploymentsCancelPreview = DeploymentsCancelPreview
+    { _dcpProject    :: !Text
+    , _dcpPayload    :: !DeploymentsCancelPreviewRequest
+    , _dcpDeployment :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsCancelPreview' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dcpProject'
+--
+-- * 'dcpPayload'
+--
+-- * 'dcpDeployment'
+deploymentsCancelPreview
+    :: Text -- ^ 'dcpProject'
+    -> DeploymentsCancelPreviewRequest -- ^ 'dcpPayload'
+    -> Text -- ^ 'dcpDeployment'
+    -> DeploymentsCancelPreview
+deploymentsCancelPreview pDcpProject_ pDcpPayload_ pDcpDeployment_ =
+    DeploymentsCancelPreview
+    { _dcpProject = pDcpProject_
+    , _dcpPayload = pDcpPayload_
+    , _dcpDeployment = pDcpDeployment_
+    }
+
+-- | The project ID for this request.
+dcpProject :: Lens' DeploymentsCancelPreview Text
+dcpProject
+  = lens _dcpProject (\ s a -> s{_dcpProject = a})
+
+-- | Multipart request metadata.
+dcpPayload :: Lens' DeploymentsCancelPreview DeploymentsCancelPreviewRequest
+dcpPayload
+  = lens _dcpPayload (\ s a -> s{_dcpPayload = a})
+
+-- | The name of the deployment for this request.
+dcpDeployment :: Lens' DeploymentsCancelPreview Text
+dcpDeployment
+  = lens _dcpDeployment
+      (\ s a -> s{_dcpDeployment = a})
+
+instance GoogleRequest DeploymentsCancelPreview where
+        type Rs DeploymentsCancelPreview = Operation
+        requestClient DeploymentsCancelPreview{..}
+          = go _dcpProject _dcpDeployment (Just AltJSON)
+              _dcpPayload
+              deploymentManagerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DeploymentsCancelPreviewResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Deployments/Delete.hs b/gen/Network/Google/Resource/DeploymentManager/Deployments/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Deployments/Delete.hs
@@ -0,0 +1,98 @@
+{-# 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.DeploymentManager.Deployments.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a deployment and all of the resources in the deployment.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.deployments.delete@.
+module Network.Google.Resource.DeploymentManager.Deployments.Delete
+    (
+    -- * REST Resource
+      DeploymentsDeleteResource
+
+    -- * Creating a Request
+    , deploymentsDelete
+    , DeploymentsDelete
+
+    -- * Request Lenses
+    , ddProject
+    , ddDeployment
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.deployments.delete@ method which the
+-- 'DeploymentsDelete' request conforms to.
+type DeploymentsDeleteResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 Capture "deployment" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation
+
+-- | Deletes a deployment and all of the resources in the deployment.
+--
+-- /See:/ 'deploymentsDelete' smart constructor.
+data DeploymentsDelete = DeploymentsDelete
+    { _ddProject    :: !Text
+    , _ddDeployment :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddProject'
+--
+-- * 'ddDeployment'
+deploymentsDelete
+    :: Text -- ^ 'ddProject'
+    -> Text -- ^ 'ddDeployment'
+    -> DeploymentsDelete
+deploymentsDelete pDdProject_ pDdDeployment_ =
+    DeploymentsDelete
+    { _ddProject = pDdProject_
+    , _ddDeployment = pDdDeployment_
+    }
+
+-- | The project ID for this request.
+ddProject :: Lens' DeploymentsDelete Text
+ddProject
+  = lens _ddProject (\ s a -> s{_ddProject = a})
+
+-- | The name of the deployment for this request.
+ddDeployment :: Lens' DeploymentsDelete Text
+ddDeployment
+  = lens _ddDeployment (\ s a -> s{_ddDeployment = a})
+
+instance GoogleRequest DeploymentsDelete where
+        type Rs DeploymentsDelete = Operation
+        requestClient DeploymentsDelete{..}
+          = go _ddProject _ddDeployment (Just AltJSON)
+              deploymentManagerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DeploymentsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Deployments/Get.hs b/gen/Network/Google/Resource/DeploymentManager/Deployments/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Deployments/Get.hs
@@ -0,0 +1,97 @@
+{-# 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.DeploymentManager.Deployments.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets information about a specific deployment.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.deployments.get@.
+module Network.Google.Resource.DeploymentManager.Deployments.Get
+    (
+    -- * REST Resource
+      DeploymentsGetResource
+
+    -- * Creating a Request
+    , deploymentsGet
+    , DeploymentsGet
+
+    -- * Request Lenses
+    , dgProject
+    , dgDeployment
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.deployments.get@ method which the
+-- 'DeploymentsGet' request conforms to.
+type DeploymentsGetResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 Capture "deployment" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] Deployment
+
+-- | Gets information about a specific deployment.
+--
+-- /See:/ 'deploymentsGet' smart constructor.
+data DeploymentsGet = DeploymentsGet
+    { _dgProject    :: !Text
+    , _dgDeployment :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dgProject'
+--
+-- * 'dgDeployment'
+deploymentsGet
+    :: Text -- ^ 'dgProject'
+    -> Text -- ^ 'dgDeployment'
+    -> DeploymentsGet
+deploymentsGet pDgProject_ pDgDeployment_ =
+    DeploymentsGet
+    { _dgProject = pDgProject_
+    , _dgDeployment = pDgDeployment_
+    }
+
+-- | The project ID for this request.
+dgProject :: Lens' DeploymentsGet Text
+dgProject
+  = lens _dgProject (\ s a -> s{_dgProject = a})
+
+-- | The name of the deployment for this request.
+dgDeployment :: Lens' DeploymentsGet Text
+dgDeployment
+  = lens _dgDeployment (\ s a -> s{_dgDeployment = a})
+
+instance GoogleRequest DeploymentsGet where
+        type Rs DeploymentsGet = Deployment
+        requestClient DeploymentsGet{..}
+          = go _dgProject _dgDeployment (Just AltJSON)
+              deploymentManagerService
+          where go
+                  = buildClient (Proxy :: Proxy DeploymentsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Deployments/Insert.hs b/gen/Network/Google/Resource/DeploymentManager/Deployments/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Deployments/Insert.hs
@@ -0,0 +1,118 @@
+{-# 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.DeploymentManager.Deployments.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a deployment and all of the resources described by the
+-- deployment manifest.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.deployments.insert@.
+module Network.Google.Resource.DeploymentManager.Deployments.Insert
+    (
+    -- * REST Resource
+      DeploymentsInsertResource
+
+    -- * Creating a Request
+    , deploymentsInsert
+    , DeploymentsInsert
+
+    -- * Request Lenses
+    , diProject
+    , diPayload
+    , diPreview
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.deployments.insert@ method which the
+-- 'DeploymentsInsert' request conforms to.
+type DeploymentsInsertResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 QueryParam "preview" Bool :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] Deployment :> Post '[JSON] Operation
+
+-- | Creates a deployment and all of the resources described by the
+-- deployment manifest.
+--
+-- /See:/ 'deploymentsInsert' smart constructor.
+data DeploymentsInsert = DeploymentsInsert
+    { _diProject :: !Text
+    , _diPayload :: !Deployment
+    , _diPreview :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'diProject'
+--
+-- * 'diPayload'
+--
+-- * 'diPreview'
+deploymentsInsert
+    :: Text -- ^ 'diProject'
+    -> Deployment -- ^ 'diPayload'
+    -> DeploymentsInsert
+deploymentsInsert pDiProject_ pDiPayload_ =
+    DeploymentsInsert
+    { _diProject = pDiProject_
+    , _diPayload = pDiPayload_
+    , _diPreview = Nothing
+    }
+
+-- | The project ID for this request.
+diProject :: Lens' DeploymentsInsert Text
+diProject
+  = lens _diProject (\ s a -> s{_diProject = a})
+
+-- | Multipart request metadata.
+diPayload :: Lens' DeploymentsInsert Deployment
+diPayload
+  = lens _diPayload (\ s a -> s{_diPayload = a})
+
+-- | If set to true, creates a deployment and creates \"shell\" resources but
+-- does not actually instantiate these resources. This allows you to
+-- preview what your deployment looks like. After previewing a deployment,
+-- you can deploy your resources by making a request with the update()
+-- method or you can use the cancelPreview() method to cancel the preview
+-- altogether. Note that the deployment will still exist after you cancel
+-- the preview and you must separately delete this deployment if you want
+-- to remove it.
+diPreview :: Lens' DeploymentsInsert (Maybe Bool)
+diPreview
+  = lens _diPreview (\ s a -> s{_diPreview = a})
+
+instance GoogleRequest DeploymentsInsert where
+        type Rs DeploymentsInsert = Operation
+        requestClient DeploymentsInsert{..}
+          = go _diProject _diPreview (Just AltJSON) _diPayload
+              deploymentManagerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DeploymentsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Deployments/List.hs b/gen/Network/Google/Resource/DeploymentManager/Deployments/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Deployments/List.hs
@@ -0,0 +1,134 @@
+{-# 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.DeploymentManager.Deployments.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all deployments for a given project.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.deployments.list@.
+module Network.Google.Resource.DeploymentManager.Deployments.List
+    (
+    -- * REST Resource
+      DeploymentsListResource
+
+    -- * Creating a Request
+    , deploymentsList
+    , DeploymentsList
+
+    -- * Request Lenses
+    , dlProject
+    , dlFilter
+    , dlPageToken
+    , dlMaxResults
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.deployments.list@ method which the
+-- 'DeploymentsList' request conforms to.
+type DeploymentsListResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 QueryParam "filter" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "maxResults" (Textual Word32) :>
+                       QueryParam "alt" AltJSON :>
+                         Get '[JSON] DeploymentsListResponse
+
+-- | Lists all deployments for a given project.
+--
+-- /See:/ 'deploymentsList' smart constructor.
+data DeploymentsList = DeploymentsList
+    { _dlProject    :: !Text
+    , _dlFilter     :: !(Maybe Text)
+    , _dlPageToken  :: !(Maybe Text)
+    , _dlMaxResults :: !(Textual Word32)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dlProject'
+--
+-- * 'dlFilter'
+--
+-- * 'dlPageToken'
+--
+-- * 'dlMaxResults'
+deploymentsList
+    :: Text -- ^ 'dlProject'
+    -> DeploymentsList
+deploymentsList pDlProject_ =
+    DeploymentsList
+    { _dlProject = pDlProject_
+    , _dlFilter = Nothing
+    , _dlPageToken = Nothing
+    , _dlMaxResults = 500
+    }
+
+-- | The project ID for this request.
+dlProject :: Lens' DeploymentsList Text
+dlProject
+  = lens _dlProject (\ s a -> s{_dlProject = a})
+
+-- | Sets a filter expression for filtering listed resources, in the form
+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME
+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the
+-- field you want to compare. Only atomic field types are supported
+-- (string, number, boolean). The COMPARISON_STRING must be either eq
+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to
+-- filter to. The literal value must be valid for the type of field
+-- (string, number, boolean). For string fields, the literal value is
+-- interpreted as a regular expression using RE2 syntax. The literal value
+-- must match the entire field. For example, filter=name ne
+-- example-instance.
+dlFilter :: Lens' DeploymentsList (Maybe Text)
+dlFilter = lens _dlFilter (\ s a -> s{_dlFilter = a})
+
+-- | Specifies a page token to use. Use this parameter if you want to list
+-- the next page of results. Set pageToken to the nextPageToken returned by
+-- a previous list request.
+dlPageToken :: Lens' DeploymentsList (Maybe Text)
+dlPageToken
+  = lens _dlPageToken (\ s a -> s{_dlPageToken = a})
+
+-- | Maximum count of results to be returned.
+dlMaxResults :: Lens' DeploymentsList Word32
+dlMaxResults
+  = lens _dlMaxResults (\ s a -> s{_dlMaxResults = a})
+      . _Coerce
+
+instance GoogleRequest DeploymentsList where
+        type Rs DeploymentsList = DeploymentsListResponse
+        requestClient DeploymentsList{..}
+          = go _dlProject _dlFilter _dlPageToken
+              (Just _dlMaxResults)
+              (Just AltJSON)
+              deploymentManagerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DeploymentsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Deployments/Patch.hs b/gen/Network/Google/Resource/DeploymentManager/Deployments/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Deployments/Patch.hs
@@ -0,0 +1,164 @@
+{-# 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.DeploymentManager.Deployments.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a deployment and all of the resources described by the
+-- deployment manifest. This method supports patch semantics.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.deployments.patch@.
+module Network.Google.Resource.DeploymentManager.Deployments.Patch
+    (
+    -- * REST Resource
+      DeploymentsPatchResource
+
+    -- * Creating a Request
+    , deploymentsPatch
+    , DeploymentsPatch
+
+    -- * Request Lenses
+    , dpCreatePolicy
+    , dpProject
+    , dpPayload
+    , dpDeletePolicy
+    , dpPreview
+    , dpDeployment
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.deployments.patch@ method which the
+-- 'DeploymentsPatch' request conforms to.
+type DeploymentsPatchResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 Capture "deployment" Text :>
+                   QueryParam "createPolicy"
+                     DeploymentsPatchCreatePolicy
+                     :>
+                     QueryParam "deletePolicy"
+                       DeploymentsPatchDeletePolicy
+                       :>
+                       QueryParam "preview" Bool :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] Deployment :> Patch '[JSON] Operation
+
+-- | Updates a deployment and all of the resources described by the
+-- deployment manifest. This method supports patch semantics.
+--
+-- /See:/ 'deploymentsPatch' smart constructor.
+data DeploymentsPatch = DeploymentsPatch
+    { _dpCreatePolicy :: !DeploymentsPatchCreatePolicy
+    , _dpProject      :: !Text
+    , _dpPayload      :: !Deployment
+    , _dpDeletePolicy :: !DeploymentsPatchDeletePolicy
+    , _dpPreview      :: !Bool
+    , _dpDeployment   :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dpCreatePolicy'
+--
+-- * 'dpProject'
+--
+-- * 'dpPayload'
+--
+-- * 'dpDeletePolicy'
+--
+-- * 'dpPreview'
+--
+-- * 'dpDeployment'
+deploymentsPatch
+    :: Text -- ^ 'dpProject'
+    -> Deployment -- ^ 'dpPayload'
+    -> Text -- ^ 'dpDeployment'
+    -> DeploymentsPatch
+deploymentsPatch pDpProject_ pDpPayload_ pDpDeployment_ =
+    DeploymentsPatch
+    { _dpCreatePolicy = DPCPCreateOrAcquire
+    , _dpProject = pDpProject_
+    , _dpPayload = pDpPayload_
+    , _dpDeletePolicy = DPDPDelete'
+    , _dpPreview = False
+    , _dpDeployment = pDpDeployment_
+    }
+
+-- | Sets the policy to use for creating new resources.
+dpCreatePolicy :: Lens' DeploymentsPatch DeploymentsPatchCreatePolicy
+dpCreatePolicy
+  = lens _dpCreatePolicy
+      (\ s a -> s{_dpCreatePolicy = a})
+
+-- | The project ID for this request.
+dpProject :: Lens' DeploymentsPatch Text
+dpProject
+  = lens _dpProject (\ s a -> s{_dpProject = a})
+
+-- | Multipart request metadata.
+dpPayload :: Lens' DeploymentsPatch Deployment
+dpPayload
+  = lens _dpPayload (\ s a -> s{_dpPayload = a})
+
+-- | Sets the policy to use for deleting resources.
+dpDeletePolicy :: Lens' DeploymentsPatch DeploymentsPatchDeletePolicy
+dpDeletePolicy
+  = lens _dpDeletePolicy
+      (\ s a -> s{_dpDeletePolicy = a})
+
+-- | If set to true, updates the deployment and creates and updates the
+-- \"shell\" resources but does not actually alter or instantiate these
+-- resources. This allows you to preview what your deployment looks like.
+-- You can use this intent to preview how an update would affect your
+-- deployment. You must provide a target.config with a configuration if
+-- this is set to true. After previewing a deployment, you can deploy your
+-- resources by making a request with the update() or you can
+-- cancelPreview() to remove the preview altogether. Note that the
+-- deployment will still exist after you cancel the preview and you must
+-- separately delete this deployment if you want to remove it.
+dpPreview :: Lens' DeploymentsPatch Bool
+dpPreview
+  = lens _dpPreview (\ s a -> s{_dpPreview = a})
+
+-- | The name of the deployment for this request.
+dpDeployment :: Lens' DeploymentsPatch Text
+dpDeployment
+  = lens _dpDeployment (\ s a -> s{_dpDeployment = a})
+
+instance GoogleRequest DeploymentsPatch where
+        type Rs DeploymentsPatch = Operation
+        requestClient DeploymentsPatch{..}
+          = go _dpProject _dpDeployment (Just _dpCreatePolicy)
+              (Just _dpDeletePolicy)
+              (Just _dpPreview)
+              (Just AltJSON)
+              _dpPayload
+              deploymentManagerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DeploymentsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Deployments/Stop.hs b/gen/Network/Google/Resource/DeploymentManager/Deployments/Stop.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Deployments/Stop.hs
@@ -0,0 +1,115 @@
+{-# 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.DeploymentManager.Deployments.Stop
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Stops an ongoing operation. This does not roll back any work that has
+-- already been completed, but prevents any new work from being started.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.deployments.stop@.
+module Network.Google.Resource.DeploymentManager.Deployments.Stop
+    (
+    -- * REST Resource
+      DeploymentsStopResource
+
+    -- * Creating a Request
+    , deploymentsStop
+    , DeploymentsStop
+
+    -- * Request Lenses
+    , dsProject
+    , dsPayload
+    , dsDeployment
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.deployments.stop@ method which the
+-- 'DeploymentsStop' request conforms to.
+type DeploymentsStopResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 Capture "deployment" Text :>
+                   "stop" :>
+                     QueryParam "alt" AltJSON :>
+                       ReqBody '[JSON] DeploymentsStopRequest :>
+                         Post '[JSON] Operation
+
+-- | Stops an ongoing operation. This does not roll back any work that has
+-- already been completed, but prevents any new work from being started.
+--
+-- /See:/ 'deploymentsStop' smart constructor.
+data DeploymentsStop = DeploymentsStop
+    { _dsProject    :: !Text
+    , _dsPayload    :: !DeploymentsStopRequest
+    , _dsDeployment :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsStop' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsProject'
+--
+-- * 'dsPayload'
+--
+-- * 'dsDeployment'
+deploymentsStop
+    :: Text -- ^ 'dsProject'
+    -> DeploymentsStopRequest -- ^ 'dsPayload'
+    -> Text -- ^ 'dsDeployment'
+    -> DeploymentsStop
+deploymentsStop pDsProject_ pDsPayload_ pDsDeployment_ =
+    DeploymentsStop
+    { _dsProject = pDsProject_
+    , _dsPayload = pDsPayload_
+    , _dsDeployment = pDsDeployment_
+    }
+
+-- | The project ID for this request.
+dsProject :: Lens' DeploymentsStop Text
+dsProject
+  = lens _dsProject (\ s a -> s{_dsProject = a})
+
+-- | Multipart request metadata.
+dsPayload :: Lens' DeploymentsStop DeploymentsStopRequest
+dsPayload
+  = lens _dsPayload (\ s a -> s{_dsPayload = a})
+
+-- | The name of the deployment for this request.
+dsDeployment :: Lens' DeploymentsStop Text
+dsDeployment
+  = lens _dsDeployment (\ s a -> s{_dsDeployment = a})
+
+instance GoogleRequest DeploymentsStop where
+        type Rs DeploymentsStop = Operation
+        requestClient DeploymentsStop{..}
+          = go _dsProject _dsDeployment (Just AltJSON)
+              _dsPayload
+              deploymentManagerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DeploymentsStopResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Deployments/Update.hs b/gen/Network/Google/Resource/DeploymentManager/Deployments/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Deployments/Update.hs
@@ -0,0 +1,164 @@
+{-# 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.DeploymentManager.Deployments.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a deployment and all of the resources described by the
+-- deployment manifest.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.deployments.update@.
+module Network.Google.Resource.DeploymentManager.Deployments.Update
+    (
+    -- * REST Resource
+      DeploymentsUpdateResource
+
+    -- * Creating a Request
+    , deploymentsUpdate
+    , DeploymentsUpdate
+
+    -- * Request Lenses
+    , duCreatePolicy
+    , duProject
+    , duPayload
+    , duDeletePolicy
+    , duPreview
+    , duDeployment
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.deployments.update@ method which the
+-- 'DeploymentsUpdate' request conforms to.
+type DeploymentsUpdateResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 Capture "deployment" Text :>
+                   QueryParam "createPolicy"
+                     DeploymentsUpdateCreatePolicy
+                     :>
+                     QueryParam "deletePolicy"
+                       DeploymentsUpdateDeletePolicy
+                       :>
+                       QueryParam "preview" Bool :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] Deployment :> Put '[JSON] Operation
+
+-- | Updates a deployment and all of the resources described by the
+-- deployment manifest.
+--
+-- /See:/ 'deploymentsUpdate' smart constructor.
+data DeploymentsUpdate = DeploymentsUpdate
+    { _duCreatePolicy :: !DeploymentsUpdateCreatePolicy
+    , _duProject      :: !Text
+    , _duPayload      :: !Deployment
+    , _duDeletePolicy :: !DeploymentsUpdateDeletePolicy
+    , _duPreview      :: !Bool
+    , _duDeployment   :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'duCreatePolicy'
+--
+-- * 'duProject'
+--
+-- * 'duPayload'
+--
+-- * 'duDeletePolicy'
+--
+-- * 'duPreview'
+--
+-- * 'duDeployment'
+deploymentsUpdate
+    :: Text -- ^ 'duProject'
+    -> Deployment -- ^ 'duPayload'
+    -> Text -- ^ 'duDeployment'
+    -> DeploymentsUpdate
+deploymentsUpdate pDuProject_ pDuPayload_ pDuDeployment_ =
+    DeploymentsUpdate
+    { _duCreatePolicy = CreateOrAcquire
+    , _duProject = pDuProject_
+    , _duPayload = pDuPayload_
+    , _duDeletePolicy = Delete'
+    , _duPreview = False
+    , _duDeployment = pDuDeployment_
+    }
+
+-- | Sets the policy to use for creating new resources.
+duCreatePolicy :: Lens' DeploymentsUpdate DeploymentsUpdateCreatePolicy
+duCreatePolicy
+  = lens _duCreatePolicy
+      (\ s a -> s{_duCreatePolicy = a})
+
+-- | The project ID for this request.
+duProject :: Lens' DeploymentsUpdate Text
+duProject
+  = lens _duProject (\ s a -> s{_duProject = a})
+
+-- | Multipart request metadata.
+duPayload :: Lens' DeploymentsUpdate Deployment
+duPayload
+  = lens _duPayload (\ s a -> s{_duPayload = a})
+
+-- | Sets the policy to use for deleting resources.
+duDeletePolicy :: Lens' DeploymentsUpdate DeploymentsUpdateDeletePolicy
+duDeletePolicy
+  = lens _duDeletePolicy
+      (\ s a -> s{_duDeletePolicy = a})
+
+-- | If set to true, updates the deployment and creates and updates the
+-- \"shell\" resources but does not actually alter or instantiate these
+-- resources. This allows you to preview what your deployment looks like.
+-- You can use this intent to preview how an update would affect your
+-- deployment. You must provide a target.config with a configuration if
+-- this is set to true. After previewing a deployment, you can deploy your
+-- resources by making a request with the update() or you can
+-- cancelPreview() to remove the preview altogether. Note that the
+-- deployment will still exist after you cancel the preview and you must
+-- separately delete this deployment if you want to remove it.
+duPreview :: Lens' DeploymentsUpdate Bool
+duPreview
+  = lens _duPreview (\ s a -> s{_duPreview = a})
+
+-- | The name of the deployment for this request.
+duDeployment :: Lens' DeploymentsUpdate Text
+duDeployment
+  = lens _duDeployment (\ s a -> s{_duDeployment = a})
+
+instance GoogleRequest DeploymentsUpdate where
+        type Rs DeploymentsUpdate = Operation
+        requestClient DeploymentsUpdate{..}
+          = go _duProject _duDeployment (Just _duCreatePolicy)
+              (Just _duDeletePolicy)
+              (Just _duPreview)
+              (Just AltJSON)
+              _duPayload
+              deploymentManagerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DeploymentsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Manifests/Get.hs b/gen/Network/Google/Resource/DeploymentManager/Manifests/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Manifests/Get.hs
@@ -0,0 +1,111 @@
+{-# 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.DeploymentManager.Manifests.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets information about a specific manifest.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.manifests.get@.
+module Network.Google.Resource.DeploymentManager.Manifests.Get
+    (
+    -- * REST Resource
+      ManifestsGetResource
+
+    -- * Creating a Request
+    , manifestsGet
+    , ManifestsGet
+
+    -- * Request Lenses
+    , mgProject
+    , mgManifest
+    , mgDeployment
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.manifests.get@ method which the
+-- 'ManifestsGet' request conforms to.
+type ManifestsGetResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 Capture "deployment" Text :>
+                   "manifests" :>
+                     Capture "manifest" Text :>
+                       QueryParam "alt" AltJSON :> Get '[JSON] Manifest
+
+-- | Gets information about a specific manifest.
+--
+-- /See:/ 'manifestsGet' smart constructor.
+data ManifestsGet = ManifestsGet
+    { _mgProject    :: !Text
+    , _mgManifest   :: !Text
+    , _mgDeployment :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ManifestsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mgProject'
+--
+-- * 'mgManifest'
+--
+-- * 'mgDeployment'
+manifestsGet
+    :: Text -- ^ 'mgProject'
+    -> Text -- ^ 'mgManifest'
+    -> Text -- ^ 'mgDeployment'
+    -> ManifestsGet
+manifestsGet pMgProject_ pMgManifest_ pMgDeployment_ =
+    ManifestsGet
+    { _mgProject = pMgProject_
+    , _mgManifest = pMgManifest_
+    , _mgDeployment = pMgDeployment_
+    }
+
+-- | The project ID for this request.
+mgProject :: Lens' ManifestsGet Text
+mgProject
+  = lens _mgProject (\ s a -> s{_mgProject = a})
+
+-- | The name of the manifest for this request.
+mgManifest :: Lens' ManifestsGet Text
+mgManifest
+  = lens _mgManifest (\ s a -> s{_mgManifest = a})
+
+-- | The name of the deployment for this request.
+mgDeployment :: Lens' ManifestsGet Text
+mgDeployment
+  = lens _mgDeployment (\ s a -> s{_mgDeployment = a})
+
+instance GoogleRequest ManifestsGet where
+        type Rs ManifestsGet = Manifest
+        requestClient ManifestsGet{..}
+          = go _mgProject _mgDeployment _mgManifest
+              (Just AltJSON)
+              deploymentManagerService
+          where go
+                  = buildClient (Proxy :: Proxy ManifestsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Manifests/List.hs b/gen/Network/Google/Resource/DeploymentManager/Manifests/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Manifests/List.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DeploymentManager.Manifests.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all manifests for a given deployment.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.manifests.list@.
+module Network.Google.Resource.DeploymentManager.Manifests.List
+    (
+    -- * REST Resource
+      ManifestsListResource
+
+    -- * Creating a Request
+    , manifestsList
+    , ManifestsList
+
+    -- * Request Lenses
+    , mlProject
+    , mlFilter
+    , mlPageToken
+    , mlMaxResults
+    , mlDeployment
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.manifests.list@ method which the
+-- 'ManifestsList' request conforms to.
+type ManifestsListResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 Capture "deployment" Text :>
+                   "manifests" :>
+                     QueryParam "filter" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "maxResults" (Textual Word32) :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ManifestsListResponse
+
+-- | Lists all manifests for a given deployment.
+--
+-- /See:/ 'manifestsList' smart constructor.
+data ManifestsList = ManifestsList
+    { _mlProject    :: !Text
+    , _mlFilter     :: !(Maybe Text)
+    , _mlPageToken  :: !(Maybe Text)
+    , _mlMaxResults :: !(Textual Word32)
+    , _mlDeployment :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ManifestsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mlProject'
+--
+-- * 'mlFilter'
+--
+-- * 'mlPageToken'
+--
+-- * 'mlMaxResults'
+--
+-- * 'mlDeployment'
+manifestsList
+    :: Text -- ^ 'mlProject'
+    -> Text -- ^ 'mlDeployment'
+    -> ManifestsList
+manifestsList pMlProject_ pMlDeployment_ =
+    ManifestsList
+    { _mlProject = pMlProject_
+    , _mlFilter = Nothing
+    , _mlPageToken = Nothing
+    , _mlMaxResults = 500
+    , _mlDeployment = pMlDeployment_
+    }
+
+-- | The project ID for this request.
+mlProject :: Lens' ManifestsList Text
+mlProject
+  = lens _mlProject (\ s a -> s{_mlProject = a})
+
+-- | Sets a filter expression for filtering listed resources, in the form
+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME
+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the
+-- field you want to compare. Only atomic field types are supported
+-- (string, number, boolean). The COMPARISON_STRING must be either eq
+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to
+-- filter to. The literal value must be valid for the type of field
+-- (string, number, boolean). For string fields, the literal value is
+-- interpreted as a regular expression using RE2 syntax. The literal value
+-- must match the entire field. For example, filter=name ne
+-- example-instance.
+mlFilter :: Lens' ManifestsList (Maybe Text)
+mlFilter = lens _mlFilter (\ s a -> s{_mlFilter = a})
+
+-- | Specifies a page token to use. Use this parameter if you want to list
+-- the next page of results. Set pageToken to the nextPageToken returned by
+-- a previous list request.
+mlPageToken :: Lens' ManifestsList (Maybe Text)
+mlPageToken
+  = lens _mlPageToken (\ s a -> s{_mlPageToken = a})
+
+-- | Maximum count of results to be returned.
+mlMaxResults :: Lens' ManifestsList Word32
+mlMaxResults
+  = lens _mlMaxResults (\ s a -> s{_mlMaxResults = a})
+      . _Coerce
+
+-- | The name of the deployment for this request.
+mlDeployment :: Lens' ManifestsList Text
+mlDeployment
+  = lens _mlDeployment (\ s a -> s{_mlDeployment = a})
+
+instance GoogleRequest ManifestsList where
+        type Rs ManifestsList = ManifestsListResponse
+        requestClient ManifestsList{..}
+          = go _mlProject _mlDeployment _mlFilter _mlPageToken
+              (Just _mlMaxResults)
+              (Just AltJSON)
+              deploymentManagerService
+          where go
+                  = buildClient (Proxy :: Proxy ManifestsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Operations/Get.hs b/gen/Network/Google/Resource/DeploymentManager/Operations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Operations/Get.hs
@@ -0,0 +1,97 @@
+{-# 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.DeploymentManager.Operations.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets information about a specific operation.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.operations.get@.
+module Network.Google.Resource.DeploymentManager.Operations.Get
+    (
+    -- * REST Resource
+      OperationsGetResource
+
+    -- * Creating a Request
+    , operationsGet
+    , OperationsGet
+
+    -- * Request Lenses
+    , ogProject
+    , ogOperation
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.operations.get@ method which the
+-- 'OperationsGet' request conforms to.
+type OperationsGetResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "operations" :>
+                 Capture "operation" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] Operation
+
+-- | Gets information about a specific operation.
+--
+-- /See:/ 'operationsGet' smart constructor.
+data OperationsGet = OperationsGet
+    { _ogProject   :: !Text
+    , _ogOperation :: !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:
+--
+-- * 'ogProject'
+--
+-- * 'ogOperation'
+operationsGet
+    :: Text -- ^ 'ogProject'
+    -> Text -- ^ 'ogOperation'
+    -> OperationsGet
+operationsGet pOgProject_ pOgOperation_ =
+    OperationsGet
+    { _ogProject = pOgProject_
+    , _ogOperation = pOgOperation_
+    }
+
+-- | The project ID for this request.
+ogProject :: Lens' OperationsGet Text
+ogProject
+  = lens _ogProject (\ s a -> s{_ogProject = a})
+
+-- | The name of the operation for this request.
+ogOperation :: Lens' OperationsGet Text
+ogOperation
+  = lens _ogOperation (\ s a -> s{_ogOperation = a})
+
+instance GoogleRequest OperationsGet where
+        type Rs OperationsGet = Operation
+        requestClient OperationsGet{..}
+          = go _ogProject _ogOperation (Just AltJSON)
+              deploymentManagerService
+          where go
+                  = buildClient (Proxy :: Proxy OperationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Operations/List.hs b/gen/Network/Google/Resource/DeploymentManager/Operations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Operations/List.hs
@@ -0,0 +1,133 @@
+{-# 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.DeploymentManager.Operations.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all operations for a project.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.operations.list@.
+module Network.Google.Resource.DeploymentManager.Operations.List
+    (
+    -- * REST Resource
+      OperationsListResource
+
+    -- * Creating a Request
+    , operationsList
+    , OperationsList
+
+    -- * Request Lenses
+    , olProject
+    , olFilter
+    , olPageToken
+    , olMaxResults
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.operations.list@ method which the
+-- 'OperationsList' request conforms to.
+type OperationsListResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "operations" :>
+                 QueryParam "filter" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "maxResults" (Textual Word32) :>
+                       QueryParam "alt" AltJSON :>
+                         Get '[JSON] OperationsListResponse
+
+-- | Lists all operations for a project.
+--
+-- /See:/ 'operationsList' smart constructor.
+data OperationsList = OperationsList
+    { _olProject    :: !Text
+    , _olFilter     :: !(Maybe Text)
+    , _olPageToken  :: !(Maybe Text)
+    , _olMaxResults :: !(Textual Word32)
+    } 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:
+--
+-- * 'olProject'
+--
+-- * 'olFilter'
+--
+-- * 'olPageToken'
+--
+-- * 'olMaxResults'
+operationsList
+    :: Text -- ^ 'olProject'
+    -> OperationsList
+operationsList pOlProject_ =
+    OperationsList
+    { _olProject = pOlProject_
+    , _olFilter = Nothing
+    , _olPageToken = Nothing
+    , _olMaxResults = 500
+    }
+
+-- | The project ID for this request.
+olProject :: Lens' OperationsList Text
+olProject
+  = lens _olProject (\ s a -> s{_olProject = a})
+
+-- | Sets a filter expression for filtering listed resources, in the form
+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME
+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the
+-- field you want to compare. Only atomic field types are supported
+-- (string, number, boolean). The COMPARISON_STRING must be either eq
+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to
+-- filter to. The literal value must be valid for the type of field
+-- (string, number, boolean). For string fields, the literal value is
+-- interpreted as a regular expression using RE2 syntax. The literal value
+-- must match the entire field. For example, filter=name ne
+-- example-instance.
+olFilter :: Lens' OperationsList (Maybe Text)
+olFilter = lens _olFilter (\ s a -> s{_olFilter = a})
+
+-- | Specifies a page token to use. Use this parameter if you want to list
+-- the next page of results. Set pageToken to the nextPageToken returned by
+-- a previous list request.
+olPageToken :: Lens' OperationsList (Maybe Text)
+olPageToken
+  = lens _olPageToken (\ s a -> s{_olPageToken = a})
+
+-- | Maximum count of results to be returned.
+olMaxResults :: Lens' OperationsList Word32
+olMaxResults
+  = lens _olMaxResults (\ s a -> s{_olMaxResults = a})
+      . _Coerce
+
+instance GoogleRequest OperationsList where
+        type Rs OperationsList = OperationsListResponse
+        requestClient OperationsList{..}
+          = go _olProject _olFilter _olPageToken
+              (Just _olMaxResults)
+              (Just AltJSON)
+              deploymentManagerService
+          where go
+                  = buildClient (Proxy :: Proxy OperationsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Resources/Get.hs b/gen/Network/Google/Resource/DeploymentManager/Resources/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Resources/Get.hs
@@ -0,0 +1,111 @@
+{-# 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.DeploymentManager.Resources.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets information about a single resource.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.resources.get@.
+module Network.Google.Resource.DeploymentManager.Resources.Get
+    (
+    -- * REST Resource
+      ResourcesGetResource
+
+    -- * Creating a Request
+    , resourcesGet
+    , ResourcesGet
+
+    -- * Request Lenses
+    , rgProject
+    , rgResource
+    , rgDeployment
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.resources.get@ method which the
+-- 'ResourcesGet' request conforms to.
+type ResourcesGetResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 Capture "deployment" Text :>
+                   "resources" :>
+                     Capture "resource" Text :>
+                       QueryParam "alt" AltJSON :> Get '[JSON] Resource
+
+-- | Gets information about a single resource.
+--
+-- /See:/ 'resourcesGet' smart constructor.
+data ResourcesGet = ResourcesGet
+    { _rgProject    :: !Text
+    , _rgResource   :: !Text
+    , _rgDeployment :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourcesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rgProject'
+--
+-- * 'rgResource'
+--
+-- * 'rgDeployment'
+resourcesGet
+    :: Text -- ^ 'rgProject'
+    -> Text -- ^ 'rgResource'
+    -> Text -- ^ 'rgDeployment'
+    -> ResourcesGet
+resourcesGet pRgProject_ pRgResource_ pRgDeployment_ =
+    ResourcesGet
+    { _rgProject = pRgProject_
+    , _rgResource = pRgResource_
+    , _rgDeployment = pRgDeployment_
+    }
+
+-- | The project ID for this request.
+rgProject :: Lens' ResourcesGet Text
+rgProject
+  = lens _rgProject (\ s a -> s{_rgProject = a})
+
+-- | The name of the resource for this request.
+rgResource :: Lens' ResourcesGet Text
+rgResource
+  = lens _rgResource (\ s a -> s{_rgResource = a})
+
+-- | The name of the deployment for this request.
+rgDeployment :: Lens' ResourcesGet Text
+rgDeployment
+  = lens _rgDeployment (\ s a -> s{_rgDeployment = a})
+
+instance GoogleRequest ResourcesGet where
+        type Rs ResourcesGet = Resource
+        requestClient ResourcesGet{..}
+          = go _rgProject _rgDeployment _rgResource
+              (Just AltJSON)
+              deploymentManagerService
+          where go
+                  = buildClient (Proxy :: Proxy ResourcesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Resources/List.hs b/gen/Network/Google/Resource/DeploymentManager/Resources/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Resources/List.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DeploymentManager.Resources.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all resources in a given deployment.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.resources.list@.
+module Network.Google.Resource.DeploymentManager.Resources.List
+    (
+    -- * REST Resource
+      ResourcesListResource
+
+    -- * Creating a Request
+    , resourcesList
+    , ResourcesList
+
+    -- * Request Lenses
+    , rlProject
+    , rlFilter
+    , rlPageToken
+    , rlMaxResults
+    , rlDeployment
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.resources.list@ method which the
+-- 'ResourcesList' request conforms to.
+type ResourcesListResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "deployments" :>
+                 Capture "deployment" Text :>
+                   "resources" :>
+                     QueryParam "filter" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "maxResults" (Textual Word32) :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ResourcesListResponse
+
+-- | Lists all resources in a given deployment.
+--
+-- /See:/ 'resourcesList' smart constructor.
+data ResourcesList = ResourcesList
+    { _rlProject    :: !Text
+    , _rlFilter     :: !(Maybe Text)
+    , _rlPageToken  :: !(Maybe Text)
+    , _rlMaxResults :: !(Textual Word32)
+    , _rlDeployment :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourcesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlProject'
+--
+-- * 'rlFilter'
+--
+-- * 'rlPageToken'
+--
+-- * 'rlMaxResults'
+--
+-- * 'rlDeployment'
+resourcesList
+    :: Text -- ^ 'rlProject'
+    -> Text -- ^ 'rlDeployment'
+    -> ResourcesList
+resourcesList pRlProject_ pRlDeployment_ =
+    ResourcesList
+    { _rlProject = pRlProject_
+    , _rlFilter = Nothing
+    , _rlPageToken = Nothing
+    , _rlMaxResults = 500
+    , _rlDeployment = pRlDeployment_
+    }
+
+-- | The project ID for this request.
+rlProject :: Lens' ResourcesList Text
+rlProject
+  = lens _rlProject (\ s a -> s{_rlProject = a})
+
+-- | Sets a filter expression for filtering listed resources, in the form
+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME
+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the
+-- field you want to compare. Only atomic field types are supported
+-- (string, number, boolean). The COMPARISON_STRING must be either eq
+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to
+-- filter to. The literal value must be valid for the type of field
+-- (string, number, boolean). For string fields, the literal value is
+-- interpreted as a regular expression using RE2 syntax. The literal value
+-- must match the entire field. For example, filter=name ne
+-- example-instance.
+rlFilter :: Lens' ResourcesList (Maybe Text)
+rlFilter = lens _rlFilter (\ s a -> s{_rlFilter = a})
+
+-- | Specifies a page token to use. Use this parameter if you want to list
+-- the next page of results. Set pageToken to the nextPageToken returned by
+-- a previous list request.
+rlPageToken :: Lens' ResourcesList (Maybe Text)
+rlPageToken
+  = lens _rlPageToken (\ s a -> s{_rlPageToken = a})
+
+-- | Maximum count of results to be returned.
+rlMaxResults :: Lens' ResourcesList Word32
+rlMaxResults
+  = lens _rlMaxResults (\ s a -> s{_rlMaxResults = a})
+      . _Coerce
+
+-- | The name of the deployment for this request.
+rlDeployment :: Lens' ResourcesList Text
+rlDeployment
+  = lens _rlDeployment (\ s a -> s{_rlDeployment = a})
+
+instance GoogleRequest ResourcesList where
+        type Rs ResourcesList = ResourcesListResponse
+        requestClient ResourcesList{..}
+          = go _rlProject _rlDeployment _rlFilter _rlPageToken
+              (Just _rlMaxResults)
+              (Just AltJSON)
+              deploymentManagerService
+          where go
+                  = buildClient (Proxy :: Proxy ResourcesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DeploymentManager/Types/List.hs b/gen/Network/Google/Resource/DeploymentManager/Types/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DeploymentManager/Types/List.hs
@@ -0,0 +1,133 @@
+{-# 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.DeploymentManager.Types.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all resource types for Deployment Manager.
+--
+-- /See:/ <https://cloud.google.com/deployment-manager/ Google Cloud Deployment Manager API Reference> for @deploymentmanager.types.list@.
+module Network.Google.Resource.DeploymentManager.Types.List
+    (
+    -- * REST Resource
+      TypesListResource
+
+    -- * Creating a Request
+    , typesList
+    , TypesList
+
+    -- * Request Lenses
+    , tlProject
+    , tlFilter
+    , tlPageToken
+    , tlMaxResults
+    ) where
+
+import           Network.Google.DeploymentManager.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @deploymentmanager.types.list@ method which the
+-- 'TypesList' request conforms to.
+type TypesListResource =
+     "deploymentmanager" :>
+       "v2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "global" :>
+               "types" :>
+                 QueryParam "filter" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "maxResults" (Textual Word32) :>
+                       QueryParam "alt" AltJSON :>
+                         Get '[JSON] TypesListResponse
+
+-- | Lists all resource types for Deployment Manager.
+--
+-- /See:/ 'typesList' smart constructor.
+data TypesList = TypesList
+    { _tlProject    :: !Text
+    , _tlFilter     :: !(Maybe Text)
+    , _tlPageToken  :: !(Maybe Text)
+    , _tlMaxResults :: !(Textual Word32)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TypesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tlProject'
+--
+-- * 'tlFilter'
+--
+-- * 'tlPageToken'
+--
+-- * 'tlMaxResults'
+typesList
+    :: Text -- ^ 'tlProject'
+    -> TypesList
+typesList pTlProject_ =
+    TypesList
+    { _tlProject = pTlProject_
+    , _tlFilter = Nothing
+    , _tlPageToken = Nothing
+    , _tlMaxResults = 500
+    }
+
+-- | The project ID for this request.
+tlProject :: Lens' TypesList Text
+tlProject
+  = lens _tlProject (\ s a -> s{_tlProject = a})
+
+-- | Sets a filter expression for filtering listed resources, in the form
+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME
+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the
+-- field you want to compare. Only atomic field types are supported
+-- (string, number, boolean). The COMPARISON_STRING must be either eq
+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to
+-- filter to. The literal value must be valid for the type of field
+-- (string, number, boolean). For string fields, the literal value is
+-- interpreted as a regular expression using RE2 syntax. The literal value
+-- must match the entire field. For example, filter=name ne
+-- example-instance.
+tlFilter :: Lens' TypesList (Maybe Text)
+tlFilter = lens _tlFilter (\ s a -> s{_tlFilter = a})
+
+-- | Specifies a page token to use. Use this parameter if you want to list
+-- the next page of results. Set pageToken to the nextPageToken returned by
+-- a previous list request.
+tlPageToken :: Lens' TypesList (Maybe Text)
+tlPageToken
+  = lens _tlPageToken (\ s a -> s{_tlPageToken = a})
+
+-- | Maximum count of results to be returned.
+tlMaxResults :: Lens' TypesList Word32
+tlMaxResults
+  = lens _tlMaxResults (\ s a -> s{_tlMaxResults = a})
+      . _Coerce
+
+instance GoogleRequest TypesList where
+        type Rs TypesList = TypesListResponse
+        requestClient TypesList{..}
+          = go _tlProject _tlFilter _tlPageToken
+              (Just _tlMaxResults)
+              (Just AltJSON)
+              deploymentManagerService
+          where go
+                  = buildClient (Proxy :: Proxy TypesListResource)
+                      mempty
diff --git a/gogol-deploymentmanager.cabal b/gogol-deploymentmanager.cabal
new file mode 100644
--- /dev/null
+++ b/gogol-deploymentmanager.cabal
@@ -0,0 +1,61 @@
+name:                  gogol-deploymentmanager
+version:               0.0.1
+synopsis:              Google Cloud Deployment Manager SDK.
+homepage:              https://github.com/brendanhay/gogol
+bug-reports:           https://github.com/brendanhay/gogol/issues
+license:               OtherLicense
+license-file:          LICENSE
+author:                Brendan Hay
+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
+copyright:             Copyright (c) 2015 Brendan Hay
+category:              Network, Google, Cloud
+build-type:            Simple
+cabal-version:         >= 1.10
+extra-source-files:    README.md
+
+description:
+    The Deployment Manager API allows users to declaratively configure,
+    deploy and run complex solutions on the Google Cloud Platform.
+    .
+    /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 @v2@
+    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.DeploymentManager
+        , Network.Google.DeploymentManager.Types
+        , Network.Google.Resource.DeploymentManager.Deployments.CancelPreview
+        , Network.Google.Resource.DeploymentManager.Deployments.Delete
+        , Network.Google.Resource.DeploymentManager.Deployments.Get
+        , Network.Google.Resource.DeploymentManager.Deployments.Insert
+        , Network.Google.Resource.DeploymentManager.Deployments.List
+        , Network.Google.Resource.DeploymentManager.Deployments.Patch
+        , Network.Google.Resource.DeploymentManager.Deployments.Stop
+        , Network.Google.Resource.DeploymentManager.Deployments.Update
+        , Network.Google.Resource.DeploymentManager.Manifests.Get
+        , Network.Google.Resource.DeploymentManager.Manifests.List
+        , Network.Google.Resource.DeploymentManager.Operations.Get
+        , Network.Google.Resource.DeploymentManager.Operations.List
+        , Network.Google.Resource.DeploymentManager.Resources.Get
+        , Network.Google.Resource.DeploymentManager.Resources.List
+        , Network.Google.Resource.DeploymentManager.Types.List
+
+    other-modules:
+          Network.Google.DeploymentManager.Types.Product
+        , Network.Google.DeploymentManager.Types.Sum
+
+    build-depends:
+          gogol-core == 0.0.1.*
+        , base       >= 4.7 && < 5
