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-debugger
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.0.1`
+
+
+## Description
+
+A client library for the Google Cloud Debugger.
+
+
+## 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-debugger` 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/Debugger.hs b/gen/Network/Google/Debugger.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Debugger.hs
@@ -0,0 +1,258 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module      : Network.Google.Debugger
+-- 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)
+--
+-- Lets you examine the stack and variables of your running application
+-- without stopping or slowing it down.
+--
+-- /See:/ <https://cloud.google.com/tools/cloud-debugger Google Cloud Debugger API Reference>
+module Network.Google.Debugger
+    (
+    -- * Service Configuration
+      debuggerService
+
+    -- * API Declaration
+    , DebuggerAPI
+
+    -- * Resources
+
+    -- ** clouddebugger.controller.debuggees.breakpoints.list
+    , module Network.Google.Resource.CloudDebugger.Controller.Debuggees.Breakpoints.List
+
+    -- ** clouddebugger.controller.debuggees.breakpoints.update
+    , module Network.Google.Resource.CloudDebugger.Controller.Debuggees.Breakpoints.Update
+
+    -- ** clouddebugger.controller.debuggees.register
+    , module Network.Google.Resource.CloudDebugger.Controller.Debuggees.Register
+
+    -- ** clouddebugger.debugger.debuggees.breakpoints.delete
+    , module Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Delete
+
+    -- ** clouddebugger.debugger.debuggees.breakpoints.get
+    , module Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Get
+
+    -- ** clouddebugger.debugger.debuggees.breakpoints.list
+    , module Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.List
+
+    -- ** clouddebugger.debugger.debuggees.breakpoints.set
+    , module Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Set
+
+    -- ** clouddebugger.debugger.debuggees.list
+    , module Network.Google.Resource.CloudDebugger.Debugger.Debuggees.List
+
+    -- * Types
+
+    -- ** RegisterDebuggeeResponse
+    , RegisterDebuggeeResponse
+    , registerDebuggeeResponse
+    , rdrDebuggee
+
+    -- ** SourceContext
+    , SourceContext
+    , sourceContext
+    , scCloudWorkspace
+    , scCloudRepo
+    , scGerrit
+    , scGit
+
+    -- ** SetBreakpointResponse
+    , SetBreakpointResponse
+    , setBreakpointResponse
+    , sbrBreakpoint
+
+    -- ** Empty
+    , Empty
+    , empty
+
+    -- ** UpdateActiveBreakpointResponse
+    , UpdateActiveBreakpointResponse
+    , updateActiveBreakpointResponse
+
+    -- ** GerritSourceContext
+    , GerritSourceContext
+    , gerritSourceContext
+    , gscGerritProject
+    , gscAliasName
+    , gscRevisionId
+    , gscHostURI
+
+    -- ** RepoId
+    , RepoId
+    , repoId
+    , riUid
+    , riProjectRepoId
+
+    -- ** ProjectRepoId
+    , ProjectRepoId
+    , projectRepoId
+    , priRepoName
+    , priProjectId
+
+    -- ** FormatMessage
+    , FormatMessage
+    , formatMessage
+    , fmFormat
+    , fmParameters
+
+    -- ** Breakpoint
+    , Breakpoint
+    , breakpoint
+    , bStatus
+    , bLogLevel
+    , bLocation
+    , bAction
+    , bFinalTime
+    , bExpressions
+    , bLogMessageFormat
+    , bId
+    , bUserEmail
+    , bVariableTable
+    , bStackFrames
+    , bCondition
+    , bEvaluatedExpressions
+    , bCreateTime
+    , bIsFinalState
+
+    -- ** GetBreakpointResponse
+    , GetBreakpointResponse
+    , getBreakpointResponse
+    , gbrBreakpoint
+
+    -- ** Variable
+    , Variable
+    , variable
+    , vStatus
+    , vVarTableIndex
+    , vMembers
+    , vValue
+    , vName
+
+    -- ** ListBreakpointsResponse
+    , ListBreakpointsResponse
+    , listBreakpointsResponse
+    , lbrNextWaitToken
+    , lbrBreakpoints
+
+    -- ** ListDebuggeesResponse
+    , ListDebuggeesResponse
+    , listDebuggeesResponse
+    , ldrDebuggees
+
+    -- ** UpdateActiveBreakpointRequest
+    , UpdateActiveBreakpointRequest
+    , updateActiveBreakpointRequest
+    , uabrBreakpoint
+
+    -- ** StatusMessage
+    , StatusMessage
+    , statusMessage
+    , smRefersTo
+    , smIsError
+    , smDescription
+
+    -- ** ListActiveBreakpointsResponse
+    , ListActiveBreakpointsResponse
+    , listActiveBreakpointsResponse
+    , labrNextWaitToken
+    , labrBreakpoints
+
+    -- ** GitSourceContext
+    , GitSourceContext
+    , gitSourceContext
+    , gURL
+    , gRevisionId
+
+    -- ** SourceLocation
+    , SourceLocation
+    , sourceLocation
+    , slPath
+    , slLine
+
+    -- ** StackFrame
+    , StackFrame
+    , stackFrame
+    , sfFunction
+    , sfLocation
+    , sfArguments
+    , sfLocals
+
+    -- ** CloudRepoSourceContext
+    , CloudRepoSourceContext
+    , cloudRepoSourceContext
+    , crscRepoId
+    , crscAliasName
+    , crscRevisionId
+
+    -- ** DebuggeeLabels
+    , DebuggeeLabels
+    , debuggeeLabels
+    , dlAddtional
+
+    -- ** Debuggee
+    , Debuggee
+    , debuggee
+    , dStatus
+    , dUniquifier
+    , dProject
+    , dAgentVersion
+    , dIsDisabled
+    , dId
+    , dLabels
+    , dDescription
+    , dIsInactive
+    , dSourceContexts
+
+    -- ** CloudWorkspaceSourceContext
+    , CloudWorkspaceSourceContext
+    , cloudWorkspaceSourceContext
+    , cwscWorkspaceId
+    , cwscSnapshotId
+
+    -- ** RegisterDebuggeeRequest
+    , RegisterDebuggeeRequest
+    , registerDebuggeeRequest
+    , rDebuggee
+
+    -- ** CloudWorkspaceId
+    , CloudWorkspaceId
+    , cloudWorkspaceId
+    , cwiRepoId
+    , cwiName
+    ) where
+
+import           Network.Google.Debugger.Types
+import           Network.Google.Prelude
+import           Network.Google.Resource.CloudDebugger.Controller.Debuggees.Breakpoints.List
+import           Network.Google.Resource.CloudDebugger.Controller.Debuggees.Breakpoints.Update
+import           Network.Google.Resource.CloudDebugger.Controller.Debuggees.Register
+import           Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Delete
+import           Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Get
+import           Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.List
+import           Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Set
+import           Network.Google.Resource.CloudDebugger.Debugger.Debuggees.List
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the Google Cloud Debugger API service.
+type DebuggerAPI =
+     ControllerDebuggeesBreakpointsListResource :<|>
+       ControllerDebuggeesBreakpointsUpdateResource
+       :<|> ControllerDebuggeesRegisterResource
+       :<|> DebuggerDebuggeesBreakpointsSetResource
+       :<|> DebuggerDebuggeesBreakpointsListResource
+       :<|> DebuggerDebuggeesBreakpointsGetResource
+       :<|> DebuggerDebuggeesBreakpointsDeleteResource
+       :<|> DebuggerDebuggeesListResource
diff --git a/gen/Network/Google/Debugger/Types.hs b/gen/Network/Google/Debugger/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Debugger/Types.hs
@@ -0,0 +1,224 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.Debugger.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.Debugger.Types
+    (
+    -- * Service Configuration
+      debuggerService
+
+    -- * OAuth Scopes
+    , cloudDebuggerScope
+    , cloudDebugletcontrollerScope
+    , cloudPlatformScope
+
+    -- * RegisterDebuggeeResponse
+    , RegisterDebuggeeResponse
+    , registerDebuggeeResponse
+    , rdrDebuggee
+
+    -- * SourceContext
+    , SourceContext
+    , sourceContext
+    , scCloudWorkspace
+    , scCloudRepo
+    , scGerrit
+    , scGit
+
+    -- * SetBreakpointResponse
+    , SetBreakpointResponse
+    , setBreakpointResponse
+    , sbrBreakpoint
+
+    -- * Empty
+    , Empty
+    , empty
+
+    -- * UpdateActiveBreakpointResponse
+    , UpdateActiveBreakpointResponse
+    , updateActiveBreakpointResponse
+
+    -- * GerritSourceContext
+    , GerritSourceContext
+    , gerritSourceContext
+    , gscGerritProject
+    , gscAliasName
+    , gscRevisionId
+    , gscHostURI
+
+    -- * RepoId
+    , RepoId
+    , repoId
+    , riUid
+    , riProjectRepoId
+
+    -- * ProjectRepoId
+    , ProjectRepoId
+    , projectRepoId
+    , priRepoName
+    , priProjectId
+
+    -- * FormatMessage
+    , FormatMessage
+    , formatMessage
+    , fmFormat
+    , fmParameters
+
+    -- * Breakpoint
+    , Breakpoint
+    , breakpoint
+    , bStatus
+    , bLogLevel
+    , bLocation
+    , bAction
+    , bFinalTime
+    , bExpressions
+    , bLogMessageFormat
+    , bId
+    , bUserEmail
+    , bVariableTable
+    , bStackFrames
+    , bCondition
+    , bEvaluatedExpressions
+    , bCreateTime
+    , bIsFinalState
+
+    -- * GetBreakpointResponse
+    , GetBreakpointResponse
+    , getBreakpointResponse
+    , gbrBreakpoint
+
+    -- * Variable
+    , Variable
+    , variable
+    , vStatus
+    , vVarTableIndex
+    , vMembers
+    , vValue
+    , vName
+
+    -- * ListBreakpointsResponse
+    , ListBreakpointsResponse
+    , listBreakpointsResponse
+    , lbrNextWaitToken
+    , lbrBreakpoints
+
+    -- * ListDebuggeesResponse
+    , ListDebuggeesResponse
+    , listDebuggeesResponse
+    , ldrDebuggees
+
+    -- * UpdateActiveBreakpointRequest
+    , UpdateActiveBreakpointRequest
+    , updateActiveBreakpointRequest
+    , uabrBreakpoint
+
+    -- * StatusMessage
+    , StatusMessage
+    , statusMessage
+    , smRefersTo
+    , smIsError
+    , smDescription
+
+    -- * ListActiveBreakpointsResponse
+    , ListActiveBreakpointsResponse
+    , listActiveBreakpointsResponse
+    , labrNextWaitToken
+    , labrBreakpoints
+
+    -- * GitSourceContext
+    , GitSourceContext
+    , gitSourceContext
+    , gURL
+    , gRevisionId
+
+    -- * SourceLocation
+    , SourceLocation
+    , sourceLocation
+    , slPath
+    , slLine
+
+    -- * StackFrame
+    , StackFrame
+    , stackFrame
+    , sfFunction
+    , sfLocation
+    , sfArguments
+    , sfLocals
+
+    -- * CloudRepoSourceContext
+    , CloudRepoSourceContext
+    , cloudRepoSourceContext
+    , crscRepoId
+    , crscAliasName
+    , crscRevisionId
+
+    -- * DebuggeeLabels
+    , DebuggeeLabels
+    , debuggeeLabels
+    , dlAddtional
+
+    -- * Debuggee
+    , Debuggee
+    , debuggee
+    , dStatus
+    , dUniquifier
+    , dProject
+    , dAgentVersion
+    , dIsDisabled
+    , dId
+    , dLabels
+    , dDescription
+    , dIsInactive
+    , dSourceContexts
+
+    -- * CloudWorkspaceSourceContext
+    , CloudWorkspaceSourceContext
+    , cloudWorkspaceSourceContext
+    , cwscWorkspaceId
+    , cwscSnapshotId
+
+    -- * RegisterDebuggeeRequest
+    , RegisterDebuggeeRequest
+    , registerDebuggeeRequest
+    , rDebuggee
+
+    -- * CloudWorkspaceId
+    , CloudWorkspaceId
+    , cloudWorkspaceId
+    , cwiRepoId
+    , cwiName
+    ) where
+
+import           Network.Google.Debugger.Types.Product
+import           Network.Google.Debugger.Types.Sum
+import           Network.Google.Prelude
+
+-- | Default request referring to version 'v2' of the Google Cloud Debugger API. This contains the host and root path used as a starting point for constructing service requests.
+debuggerService :: Service
+debuggerService
+  = defaultService (ServiceId "clouddebugger:v2")
+      "clouddebugger.googleapis.com"
+
+-- | Manage cloud debugger
+cloudDebuggerScope :: OAuthScope
+cloudDebuggerScope = "https://www.googleapis.com/auth/cloud_debugger";
+
+-- | Manage active breakpoints in cloud debugger
+cloudDebugletcontrollerScope :: OAuthScope
+cloudDebugletcontrollerScope = "https://www.googleapis.com/auth/cloud_debugletcontroller";
+
+-- | View and manage your data across Google Cloud Platform services
+cloudPlatformScope :: OAuthScope
+cloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform";
diff --git a/gen/Network/Google/Debugger/Types/Product.hs b/gen/Network/Google/Debugger/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Debugger/Types/Product.hs
@@ -0,0 +1,1620 @@
+{-# 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.Debugger.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.Debugger.Types.Product where
+
+import           Network.Google.Debugger.Types.Sum
+import           Network.Google.Prelude
+
+-- | The response of registering a debuggee.
+--
+-- /See:/ 'registerDebuggeeResponse' smart constructor.
+newtype RegisterDebuggeeResponse = RegisterDebuggeeResponse
+    { _rdrDebuggee :: Maybe Debuggee
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RegisterDebuggeeResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdrDebuggee'
+registerDebuggeeResponse
+    :: RegisterDebuggeeResponse
+registerDebuggeeResponse =
+    RegisterDebuggeeResponse
+    { _rdrDebuggee = Nothing
+    }
+
+-- | The debuggee resource. The field \'id\' is guranteed to be set (in
+-- addition to the echoed fields).
+rdrDebuggee :: Lens' RegisterDebuggeeResponse (Maybe Debuggee)
+rdrDebuggee
+  = lens _rdrDebuggee (\ s a -> s{_rdrDebuggee = a})
+
+instance FromJSON RegisterDebuggeeResponse where
+        parseJSON
+          = withObject "RegisterDebuggeeResponse"
+              (\ o ->
+                 RegisterDebuggeeResponse <$> (o .:? "debuggee"))
+
+instance ToJSON RegisterDebuggeeResponse where
+        toJSON RegisterDebuggeeResponse{..}
+          = object
+              (catMaybes [("debuggee" .=) <$> _rdrDebuggee])
+
+-- | A SourceContext is a reference to a tree of files. A SourceContext
+-- together with a path point to a unique revision of a single file or
+-- directory.
+--
+-- /See:/ 'sourceContext' smart constructor.
+data SourceContext = SourceContext
+    { _scCloudWorkspace :: !(Maybe CloudWorkspaceSourceContext)
+    , _scCloudRepo      :: !(Maybe CloudRepoSourceContext)
+    , _scGerrit         :: !(Maybe GerritSourceContext)
+    , _scGit            :: !(Maybe GitSourceContext)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'scCloudWorkspace'
+--
+-- * 'scCloudRepo'
+--
+-- * 'scGerrit'
+--
+-- * 'scGit'
+sourceContext
+    :: SourceContext
+sourceContext =
+    SourceContext
+    { _scCloudWorkspace = Nothing
+    , _scCloudRepo = Nothing
+    , _scGerrit = Nothing
+    , _scGit = Nothing
+    }
+
+-- | A SourceContext referring to a snapshot in a cloud workspace.
+scCloudWorkspace :: Lens' SourceContext (Maybe CloudWorkspaceSourceContext)
+scCloudWorkspace
+  = lens _scCloudWorkspace
+      (\ s a -> s{_scCloudWorkspace = a})
+
+-- | A SourceContext referring to a revision in a cloud repo.
+scCloudRepo :: Lens' SourceContext (Maybe CloudRepoSourceContext)
+scCloudRepo
+  = lens _scCloudRepo (\ s a -> s{_scCloudRepo = a})
+
+-- | A SourceContext referring to a Gerrit project.
+scGerrit :: Lens' SourceContext (Maybe GerritSourceContext)
+scGerrit = lens _scGerrit (\ s a -> s{_scGerrit = a})
+
+-- | A SourceContext referring to any third party Git repo (e.g. GitHub).
+scGit :: Lens' SourceContext (Maybe GitSourceContext)
+scGit = lens _scGit (\ s a -> s{_scGit = a})
+
+instance FromJSON SourceContext where
+        parseJSON
+          = withObject "SourceContext"
+              (\ o ->
+                 SourceContext <$>
+                   (o .:? "cloudWorkspace") <*> (o .:? "cloudRepo") <*>
+                     (o .:? "gerrit")
+                     <*> (o .:? "git"))
+
+instance ToJSON SourceContext where
+        toJSON SourceContext{..}
+          = object
+              (catMaybes
+                 [("cloudWorkspace" .=) <$> _scCloudWorkspace,
+                  ("cloudRepo" .=) <$> _scCloudRepo,
+                  ("gerrit" .=) <$> _scGerrit, ("git" .=) <$> _scGit])
+
+-- | The response of setting a breakpoint.
+--
+-- /See:/ 'setBreakpointResponse' smart constructor.
+newtype SetBreakpointResponse = SetBreakpointResponse
+    { _sbrBreakpoint :: Maybe Breakpoint
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SetBreakpointResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sbrBreakpoint'
+setBreakpointResponse
+    :: SetBreakpointResponse
+setBreakpointResponse =
+    SetBreakpointResponse
+    { _sbrBreakpoint = Nothing
+    }
+
+-- | The breakpoint resource. The field \'id\' is guranteed to be set (in
+-- addition to the echoed fileds).
+sbrBreakpoint :: Lens' SetBreakpointResponse (Maybe Breakpoint)
+sbrBreakpoint
+  = lens _sbrBreakpoint
+      (\ s a -> s{_sbrBreakpoint = a})
+
+instance FromJSON SetBreakpointResponse where
+        parseJSON
+          = withObject "SetBreakpointResponse"
+              (\ o ->
+                 SetBreakpointResponse <$> (o .:? "breakpoint"))
+
+instance ToJSON SetBreakpointResponse where
+        toJSON SetBreakpointResponse{..}
+          = object
+              (catMaybes [("breakpoint" .=) <$> _sbrBreakpoint])
+
+-- | A generic empty message that you can re-use to avoid defining duplicated
+-- empty messages in your APIs. A typical example is to use it as the
+-- request or the response type of an API method. For instance: service Foo
+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The
+-- JSON representation for \`Empty\` is empty JSON object \`{}\`.
+--
+-- /See:/ 'empty' smart constructor.
+data Empty =
+    Empty
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Empty' with the minimum fields required to make a request.
+--
+empty
+    :: Empty
+empty = Empty
+
+instance FromJSON Empty where
+        parseJSON = withObject "Empty" (\ o -> pure Empty)
+
+instance ToJSON Empty where
+        toJSON = const emptyObject
+
+-- | The response of updating an active breakpoint. The message is defined to
+-- allow future extensions.
+--
+-- /See:/ 'updateActiveBreakpointResponse' smart constructor.
+data UpdateActiveBreakpointResponse =
+    UpdateActiveBreakpointResponse
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UpdateActiveBreakpointResponse' with the minimum fields required to make a request.
+--
+updateActiveBreakpointResponse
+    :: UpdateActiveBreakpointResponse
+updateActiveBreakpointResponse = UpdateActiveBreakpointResponse
+
+instance FromJSON UpdateActiveBreakpointResponse
+         where
+        parseJSON
+          = withObject "UpdateActiveBreakpointResponse"
+              (\ o -> pure UpdateActiveBreakpointResponse)
+
+instance ToJSON UpdateActiveBreakpointResponse where
+        toJSON = const emptyObject
+
+-- | A SourceContext referring to a Gerrit project.
+--
+-- /See:/ 'gerritSourceContext' smart constructor.
+data GerritSourceContext = GerritSourceContext
+    { _gscGerritProject :: !(Maybe Text)
+    , _gscAliasName     :: !(Maybe Text)
+    , _gscRevisionId    :: !(Maybe Text)
+    , _gscHostURI       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GerritSourceContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gscGerritProject'
+--
+-- * 'gscAliasName'
+--
+-- * 'gscRevisionId'
+--
+-- * 'gscHostURI'
+gerritSourceContext
+    :: GerritSourceContext
+gerritSourceContext =
+    GerritSourceContext
+    { _gscGerritProject = Nothing
+    , _gscAliasName = Nothing
+    , _gscRevisionId = Nothing
+    , _gscHostURI = Nothing
+    }
+
+-- | The full project name within the host. Projects may be nested, so
+-- \"project\/subproject\" is a valid project name. The \"repo name\" is
+-- hostURI\/project.
+gscGerritProject :: Lens' GerritSourceContext (Maybe Text)
+gscGerritProject
+  = lens _gscGerritProject
+      (\ s a -> s{_gscGerritProject = a})
+
+-- | The name of an alias (branch, tag, etc.).
+gscAliasName :: Lens' GerritSourceContext (Maybe Text)
+gscAliasName
+  = lens _gscAliasName (\ s a -> s{_gscAliasName = a})
+
+-- | A revision (commit) ID.
+gscRevisionId :: Lens' GerritSourceContext (Maybe Text)
+gscRevisionId
+  = lens _gscRevisionId
+      (\ s a -> s{_gscRevisionId = a})
+
+-- | The URI of a running Gerrit instance.
+gscHostURI :: Lens' GerritSourceContext (Maybe Text)
+gscHostURI
+  = lens _gscHostURI (\ s a -> s{_gscHostURI = a})
+
+instance FromJSON GerritSourceContext where
+        parseJSON
+          = withObject "GerritSourceContext"
+              (\ o ->
+                 GerritSourceContext <$>
+                   (o .:? "gerritProject") <*> (o .:? "aliasName") <*>
+                     (o .:? "revisionId")
+                     <*> (o .:? "hostUri"))
+
+instance ToJSON GerritSourceContext where
+        toJSON GerritSourceContext{..}
+          = object
+              (catMaybes
+                 [("gerritProject" .=) <$> _gscGerritProject,
+                  ("aliasName" .=) <$> _gscAliasName,
+                  ("revisionId" .=) <$> _gscRevisionId,
+                  ("hostUri" .=) <$> _gscHostURI])
+
+-- | A unique identifier for a cloud repo.
+--
+-- /See:/ 'repoId' smart constructor.
+data RepoId = RepoId
+    { _riUid           :: !(Maybe Text)
+    , _riProjectRepoId :: !(Maybe ProjectRepoId)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RepoId' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'riUid'
+--
+-- * 'riProjectRepoId'
+repoId
+    :: RepoId
+repoId =
+    RepoId
+    { _riUid = Nothing
+    , _riProjectRepoId = Nothing
+    }
+
+-- | A server-assigned, globally unique identifier.
+riUid :: Lens' RepoId (Maybe Text)
+riUid = lens _riUid (\ s a -> s{_riUid = a})
+
+-- | A combination of a project ID and a repo name.
+riProjectRepoId :: Lens' RepoId (Maybe ProjectRepoId)
+riProjectRepoId
+  = lens _riProjectRepoId
+      (\ s a -> s{_riProjectRepoId = a})
+
+instance FromJSON RepoId where
+        parseJSON
+          = withObject "RepoId"
+              (\ o ->
+                 RepoId <$> (o .:? "uid") <*> (o .:? "projectRepoId"))
+
+instance ToJSON RepoId where
+        toJSON RepoId{..}
+          = object
+              (catMaybes
+                 [("uid" .=) <$> _riUid,
+                  ("projectRepoId" .=) <$> _riProjectRepoId])
+
+-- | Selects a repo using a Google Cloud Platform project ID (e.g.
+-- winged-cargo-31) and a repo name within that project.
+--
+-- /See:/ 'projectRepoId' smart constructor.
+data ProjectRepoId = ProjectRepoId
+    { _priRepoName  :: !(Maybe Text)
+    , _priProjectId :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectRepoId' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'priRepoName'
+--
+-- * 'priProjectId'
+projectRepoId
+    :: ProjectRepoId
+projectRepoId =
+    ProjectRepoId
+    { _priRepoName = Nothing
+    , _priProjectId = Nothing
+    }
+
+-- | The name of the repo. Leave empty for the default repo.
+priRepoName :: Lens' ProjectRepoId (Maybe Text)
+priRepoName
+  = lens _priRepoName (\ s a -> s{_priRepoName = a})
+
+-- | The ID of the project.
+priProjectId :: Lens' ProjectRepoId (Maybe Text)
+priProjectId
+  = lens _priProjectId (\ s a -> s{_priProjectId = a})
+
+instance FromJSON ProjectRepoId where
+        parseJSON
+          = withObject "ProjectRepoId"
+              (\ o ->
+                 ProjectRepoId <$>
+                   (o .:? "repoName") <*> (o .:? "projectId"))
+
+instance ToJSON ProjectRepoId where
+        toJSON ProjectRepoId{..}
+          = object
+              (catMaybes
+                 [("repoName" .=) <$> _priRepoName,
+                  ("projectId" .=) <$> _priProjectId])
+
+-- | Represents a message with parameters.
+--
+-- /See:/ 'formatMessage' smart constructor.
+data FormatMessage = FormatMessage
+    { _fmFormat     :: !(Maybe Text)
+    , _fmParameters :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FormatMessage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fmFormat'
+--
+-- * 'fmParameters'
+formatMessage
+    :: FormatMessage
+formatMessage =
+    FormatMessage
+    { _fmFormat = Nothing
+    , _fmParameters = Nothing
+    }
+
+-- | Format template of the message. The \"format\" uses placeholders \"$0\",
+-- \"$1\", etc. to reference parameters. \"$$\" can be used to denote the \'$\'
+-- character. Examples: \"Failed to load \'$0\' which helps debug $1 the
+-- first time it is loaded. Again, $0 is very important.\" \"Please pay
+-- $$10 to use $0 instead of $1.\"
+fmFormat :: Lens' FormatMessage (Maybe Text)
+fmFormat = lens _fmFormat (\ s a -> s{_fmFormat = a})
+
+-- | Optional parameters to be embedded into the message.
+fmParameters :: Lens' FormatMessage [Text]
+fmParameters
+  = lens _fmParameters (\ s a -> s{_fmParameters = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON FormatMessage where
+        parseJSON
+          = withObject "FormatMessage"
+              (\ o ->
+                 FormatMessage <$>
+                   (o .:? "format") <*> (o .:? "parameters" .!= mempty))
+
+instance ToJSON FormatMessage where
+        toJSON FormatMessage{..}
+          = object
+              (catMaybes
+                 [("format" .=) <$> _fmFormat,
+                  ("parameters" .=) <$> _fmParameters])
+
+-- | Represents the breakpoint specification, status and results.
+--
+-- /See:/ 'breakpoint' smart constructor.
+data Breakpoint = Breakpoint
+    { _bStatus               :: !(Maybe StatusMessage)
+    , _bLogLevel             :: !(Maybe Text)
+    , _bLocation             :: !(Maybe SourceLocation)
+    , _bAction               :: !(Maybe Text)
+    , _bFinalTime            :: !(Maybe Text)
+    , _bExpressions          :: !(Maybe [Text])
+    , _bLogMessageFormat     :: !(Maybe Text)
+    , _bId                   :: !(Maybe Text)
+    , _bUserEmail            :: !(Maybe Text)
+    , _bVariableTable        :: !(Maybe [Variable])
+    , _bStackFrames          :: !(Maybe [StackFrame])
+    , _bCondition            :: !(Maybe Text)
+    , _bEvaluatedExpressions :: !(Maybe [Variable])
+    , _bCreateTime           :: !(Maybe Text)
+    , _bIsFinalState         :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Breakpoint' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bStatus'
+--
+-- * 'bLogLevel'
+--
+-- * 'bLocation'
+--
+-- * 'bAction'
+--
+-- * 'bFinalTime'
+--
+-- * 'bExpressions'
+--
+-- * 'bLogMessageFormat'
+--
+-- * 'bId'
+--
+-- * 'bUserEmail'
+--
+-- * 'bVariableTable'
+--
+-- * 'bStackFrames'
+--
+-- * 'bCondition'
+--
+-- * 'bEvaluatedExpressions'
+--
+-- * 'bCreateTime'
+--
+-- * 'bIsFinalState'
+breakpoint
+    :: Breakpoint
+breakpoint =
+    Breakpoint
+    { _bStatus = Nothing
+    , _bLogLevel = Nothing
+    , _bLocation = Nothing
+    , _bAction = Nothing
+    , _bFinalTime = Nothing
+    , _bExpressions = Nothing
+    , _bLogMessageFormat = Nothing
+    , _bId = Nothing
+    , _bUserEmail = Nothing
+    , _bVariableTable = Nothing
+    , _bStackFrames = Nothing
+    , _bCondition = Nothing
+    , _bEvaluatedExpressions = Nothing
+    , _bCreateTime = Nothing
+    , _bIsFinalState = Nothing
+    }
+
+-- | Breakpoint status. The status includes an error flag and a human
+-- readable message. This field will usually stay unset. The message can be
+-- either informational or error. Nevertheless, clients should always
+-- display the text message back to the user. Error status of a breakpoint
+-- indicates complete failure. Example (non-final state): \'Still loading
+-- symbols...\' Examples (final state): \'Failed to insert breakpoint\'
+-- referring to breakpoint, \'Field f not found in class C\' referring to
+-- condition, ...
+bStatus :: Lens' Breakpoint (Maybe StatusMessage)
+bStatus = lens _bStatus (\ s a -> s{_bStatus = a})
+
+-- | Indicates the severity of the log. Only relevant when action is \"LOG\".
+bLogLevel :: Lens' Breakpoint (Maybe Text)
+bLogLevel
+  = lens _bLogLevel (\ s a -> s{_bLogLevel = a})
+
+-- | The breakpoint source location.
+bLocation :: Lens' Breakpoint (Maybe SourceLocation)
+bLocation
+  = lens _bLocation (\ s a -> s{_bLocation = a})
+
+-- | Defines what to do when the breakpoint hits.
+bAction :: Lens' Breakpoint (Maybe Text)
+bAction = lens _bAction (\ s a -> s{_bAction = a})
+
+-- | The time this breakpoint was finalized as seen by the server. The value
+-- is in seconds resolution.
+bFinalTime :: Lens' Breakpoint (Maybe Text)
+bFinalTime
+  = lens _bFinalTime (\ s a -> s{_bFinalTime = a})
+
+-- | A list of read-only expressions to evaluate at the breakpoint location.
+-- The expressions are composed using expressions in the programming
+-- language at the source location. If the breakpoint action is \"LOG\",
+-- the evaluated expressions are included in log statements.
+bExpressions :: Lens' Breakpoint [Text]
+bExpressions
+  = lens _bExpressions (\ s a -> s{_bExpressions = a})
+      . _Default
+      . _Coerce
+
+-- | Only relevant when action is \"LOG\". Defines the message to log when
+-- the breakpoint hits. The message may include parameter placeholders
+-- \"$0\", \"$1\", etc. These placeholders will be replaced with the
+-- evaluated value of the appropriate expression. Expressions not
+-- referenced in \"log_message_format\" will not be logged. Example:
+-- \"Poisonous message received, id = $0, count = $1\" with expressions = [
+-- \"message.id\", \"message.count\" ].
+bLogMessageFormat :: Lens' Breakpoint (Maybe Text)
+bLogMessageFormat
+  = lens _bLogMessageFormat
+      (\ s a -> s{_bLogMessageFormat = a})
+
+-- | Breakpoint identifier, unique in the scope of the debuggee.
+bId :: Lens' Breakpoint (Maybe Text)
+bId = lens _bId (\ s a -> s{_bId = a})
+
+-- | The e-mail of the user that created this breakpoint
+bUserEmail :: Lens' Breakpoint (Maybe Text)
+bUserEmail
+  = lens _bUserEmail (\ s a -> s{_bUserEmail = a})
+
+-- | The variable_table exists to aid with computation, memory and network
+-- traffic optimization. It enables storing a variable once and reference
+-- it from multiple variables, including variables stored in the
+-- variable_table itself. For example, the object \'this\', which may
+-- appear at many levels of the stack, can have all of it\'s data stored
+-- once in this table. The stack frame variables then would hold only a
+-- reference to it. The variable var_index field is an index into this
+-- repeated field. The stored objects are nameless and get their name from
+-- the referencing variable. The effective variable is a merge of the
+-- referencing veariable and the referenced variable.
+bVariableTable :: Lens' Breakpoint [Variable]
+bVariableTable
+  = lens _bVariableTable
+      (\ s a -> s{_bVariableTable = a})
+      . _Default
+      . _Coerce
+
+-- | The stack at breakpoint time.
+bStackFrames :: Lens' Breakpoint [StackFrame]
+bStackFrames
+  = lens _bStackFrames (\ s a -> s{_bStackFrames = a})
+      . _Default
+      . _Coerce
+
+-- | A condition to trigger the breakpoint. The condition is a compound
+-- boolean expression composed using expressions in a programming language
+-- at the source location.
+bCondition :: Lens' Breakpoint (Maybe Text)
+bCondition
+  = lens _bCondition (\ s a -> s{_bCondition = a})
+
+-- | The evaluated expressions\' values at breakpoint time. The evaluated
+-- expressions appear in exactly the same order they are listed in the
+-- \'expressions\' field. The \'name\' field holds the original expression
+-- text, the \'value\'\/\'members\' field holds the result of the evaluated
+-- expression. If the expression can not be evaluated, an error text is
+-- placed in the value field.
+bEvaluatedExpressions :: Lens' Breakpoint [Variable]
+bEvaluatedExpressions
+  = lens _bEvaluatedExpressions
+      (\ s a -> s{_bEvaluatedExpressions = a})
+      . _Default
+      . _Coerce
+
+-- | The time this breakpoint was created by the server. The value is in
+-- seconds resolution.
+bCreateTime :: Lens' Breakpoint (Maybe Text)
+bCreateTime
+  = lens _bCreateTime (\ s a -> s{_bCreateTime = a})
+
+-- | When true, indicates that this is a final result and the breakpoint
+-- state will not change from here on.
+bIsFinalState :: Lens' Breakpoint (Maybe Bool)
+bIsFinalState
+  = lens _bIsFinalState
+      (\ s a -> s{_bIsFinalState = a})
+
+instance FromJSON Breakpoint where
+        parseJSON
+          = withObject "Breakpoint"
+              (\ o ->
+                 Breakpoint <$>
+                   (o .:? "status") <*> (o .:? "logLevel") <*>
+                     (o .:? "location")
+                     <*> (o .:? "action")
+                     <*> (o .:? "finalTime")
+                     <*> (o .:? "expressions" .!= mempty)
+                     <*> (o .:? "logMessageFormat")
+                     <*> (o .:? "id")
+                     <*> (o .:? "userEmail")
+                     <*> (o .:? "variableTable" .!= mempty)
+                     <*> (o .:? "stackFrames" .!= mempty)
+                     <*> (o .:? "condition")
+                     <*> (o .:? "evaluatedExpressions" .!= mempty)
+                     <*> (o .:? "createTime")
+                     <*> (o .:? "isFinalState"))
+
+instance ToJSON Breakpoint where
+        toJSON Breakpoint{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _bStatus,
+                  ("logLevel" .=) <$> _bLogLevel,
+                  ("location" .=) <$> _bLocation,
+                  ("action" .=) <$> _bAction,
+                  ("finalTime" .=) <$> _bFinalTime,
+                  ("expressions" .=) <$> _bExpressions,
+                  ("logMessageFormat" .=) <$> _bLogMessageFormat,
+                  ("id" .=) <$> _bId, ("userEmail" .=) <$> _bUserEmail,
+                  ("variableTable" .=) <$> _bVariableTable,
+                  ("stackFrames" .=) <$> _bStackFrames,
+                  ("condition" .=) <$> _bCondition,
+                  ("evaluatedExpressions" .=) <$>
+                    _bEvaluatedExpressions,
+                  ("createTime" .=) <$> _bCreateTime,
+                  ("isFinalState" .=) <$> _bIsFinalState])
+
+-- | The response of getting breakpoint information.
+--
+-- /See:/ 'getBreakpointResponse' smart constructor.
+newtype GetBreakpointResponse = GetBreakpointResponse
+    { _gbrBreakpoint :: Maybe Breakpoint
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GetBreakpointResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gbrBreakpoint'
+getBreakpointResponse
+    :: GetBreakpointResponse
+getBreakpointResponse =
+    GetBreakpointResponse
+    { _gbrBreakpoint = Nothing
+    }
+
+-- | The complete breakpoint state. The fields \'id\' and \'location\' are
+-- guranteed to be set.
+gbrBreakpoint :: Lens' GetBreakpointResponse (Maybe Breakpoint)
+gbrBreakpoint
+  = lens _gbrBreakpoint
+      (\ s a -> s{_gbrBreakpoint = a})
+
+instance FromJSON GetBreakpointResponse where
+        parseJSON
+          = withObject "GetBreakpointResponse"
+              (\ o ->
+                 GetBreakpointResponse <$> (o .:? "breakpoint"))
+
+instance ToJSON GetBreakpointResponse where
+        toJSON GetBreakpointResponse{..}
+          = object
+              (catMaybes [("breakpoint" .=) <$> _gbrBreakpoint])
+
+-- | Represents a variable or an argument possibly of a compound object type.
+-- 1. A simple variable such as, int x = 5 is represented as: { name:
+-- \"x\", value: \"5\" } 2. A compound object such as, struct T { int m1;
+-- int m2; }; T x = { 3, 7 }; is represented as: { name: \"x\", members {
+-- name: \"m1\", value: \"3\" }, members { name: \"m2\", value: \"7\" } }
+-- 3. A pointer where the pointee was captured such as, T x = { 3, 7 }; T*
+-- p = &x; is represented as: { name: \"p\", value: \"0x00500500\", members
+-- { name: \"m1\", value: \"3\" }, members { name: \"m2\", value: \"7\" } }
+-- 4. A pointer where the pointee was not captured or is inaccessible such
+-- as, T* p = new T; is represented as: { name: \"p\", value:
+-- \"0x00400400\", members { value: \"\" } } the value text should decribe
+-- the reason for the missing value. such as , , . note that a null pointer
+-- should not have members. 5. An unnamed value such as, int* p = new
+-- int(7); is represented as, { name: \"p\", value: \"0x00500500\", members
+-- { value: \"7\" } } 6. An unnamed pointer where the pointee was not
+-- captured such as, int* p = new int(7); int** pp = &p; is represented as:
+-- { name: \"pp\", value: \"0x00500500\", members { value: \"0x00400400\",
+-- members { value: \"\" } } } To optimize computation, memory and network
+-- traffic, variables that repeat in the output multiple times can be
+-- stored once in a shared variable table and be referenced using the
+-- var_index field. The variables stored in the shared table are nameless
+-- and are essentially a partition of the complete variable. To reconstruct
+-- the complete variable merge the referencing variable with the referenced
+-- variable. When using the shared variable table, variables can be
+-- represented as: T x = { 3, 7 }; T* p = &x; T& r = x; are represented as,
+-- { name: \"x\", var_index: 3 } { name: \"p\", value \"0x00500500\",
+-- var_index: 3 } { name: \"r\", var_index: 3 } with shared variable table
+-- entry #3: { members { name: \"m1\", value: \"3\" }, members { name:
+-- \"m2\", value: \"7\" } } Note that the pointer address is stored with
+-- the referencing variable and not with the referenced variable, to allow
+-- the referenced variable to be shared between pointer and references.
+--
+-- /See:/ 'variable' smart constructor.
+data Variable = Variable
+    { _vStatus        :: !(Maybe StatusMessage)
+    , _vVarTableIndex :: !(Maybe (Textual Int32))
+    , _vMembers       :: !(Maybe [Variable])
+    , _vValue         :: !(Maybe Text)
+    , _vName          :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Variable' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vStatus'
+--
+-- * 'vVarTableIndex'
+--
+-- * 'vMembers'
+--
+-- * 'vValue'
+--
+-- * 'vName'
+variable
+    :: Variable
+variable =
+    Variable
+    { _vStatus = Nothing
+    , _vVarTableIndex = Nothing
+    , _vMembers = Nothing
+    , _vValue = Nothing
+    , _vName = Nothing
+    }
+
+-- | Status associated with the variable. This field will usually stay unset.
+-- A status of a single variable only applies to that variable or
+-- expression. The rest of breakpoint data still remains valid. Variables
+-- might be reported in error state even when breakpoint is not in final
+-- state. The message may refer to variable name with \"refers_to\" set to
+-- \"VARIABLE_NAME\". Alternatively \"refers_to\" will be set to
+-- \"VARIABLE_VALUE\". In either case variable value and members will be
+-- unset. Example of error message applied to name: \"Invalid expression
+-- syntax\". Example of information message applied to value: \"Not
+-- captured\". Examples of error message applied to value: \"Malformed
+-- string\", \"Field f not found in class C\", \"Null pointer
+-- dereference\".
+vStatus :: Lens' Variable (Maybe StatusMessage)
+vStatus = lens _vStatus (\ s a -> s{_vStatus = a})
+
+-- | This is a reference to a variable in the shared variable table. More
+-- than one variable can reference the same variable in the table. The
+-- var_index field is an index into variable_table in Breakpoint.
+vVarTableIndex :: Lens' Variable (Maybe Int32)
+vVarTableIndex
+  = lens _vVarTableIndex
+      (\ s a -> s{_vVarTableIndex = a})
+      . mapping _Coerce
+
+-- | The members contained or pointed to by the variable.
+vMembers :: Lens' Variable [Variable]
+vMembers
+  = lens _vMembers (\ s a -> s{_vMembers = a}) .
+      _Default
+      . _Coerce
+
+-- | The simple value of the variable.
+vValue :: Lens' Variable (Maybe Text)
+vValue = lens _vValue (\ s a -> s{_vValue = a})
+
+-- | The name of the variable, if any.
+vName :: Lens' Variable (Maybe Text)
+vName = lens _vName (\ s a -> s{_vName = a})
+
+instance FromJSON Variable where
+        parseJSON
+          = withObject "Variable"
+              (\ o ->
+                 Variable <$>
+                   (o .:? "status") <*> (o .:? "varTableIndex") <*>
+                     (o .:? "members" .!= mempty)
+                     <*> (o .:? "value")
+                     <*> (o .:? "name"))
+
+instance ToJSON Variable where
+        toJSON Variable{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _vStatus,
+                  ("varTableIndex" .=) <$> _vVarTableIndex,
+                  ("members" .=) <$> _vMembers,
+                  ("value" .=) <$> _vValue, ("name" .=) <$> _vName])
+
+-- | The response of listing breakpoints.
+--
+-- /See:/ 'listBreakpointsResponse' smart constructor.
+data ListBreakpointsResponse = ListBreakpointsResponse
+    { _lbrNextWaitToken :: !(Maybe Text)
+    , _lbrBreakpoints   :: !(Maybe [Breakpoint])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListBreakpointsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lbrNextWaitToken'
+--
+-- * 'lbrBreakpoints'
+listBreakpointsResponse
+    :: ListBreakpointsResponse
+listBreakpointsResponse =
+    ListBreakpointsResponse
+    { _lbrNextWaitToken = Nothing
+    , _lbrBreakpoints = Nothing
+    }
+
+-- | A wait token that can be used in the next call to ListBreakpoints to
+-- block until the list of breakpoints has changes.
+lbrNextWaitToken :: Lens' ListBreakpointsResponse (Maybe Text)
+lbrNextWaitToken
+  = lens _lbrNextWaitToken
+      (\ s a -> s{_lbrNextWaitToken = a})
+
+-- | List of all breakpoints with complete state. The fields \'id\' and
+-- \'location\' are guranteed to be set on each breakpoint.
+lbrBreakpoints :: Lens' ListBreakpointsResponse [Breakpoint]
+lbrBreakpoints
+  = lens _lbrBreakpoints
+      (\ s a -> s{_lbrBreakpoints = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListBreakpointsResponse where
+        parseJSON
+          = withObject "ListBreakpointsResponse"
+              (\ o ->
+                 ListBreakpointsResponse <$>
+                   (o .:? "nextWaitToken") <*>
+                     (o .:? "breakpoints" .!= mempty))
+
+instance ToJSON ListBreakpointsResponse where
+        toJSON ListBreakpointsResponse{..}
+          = object
+              (catMaybes
+                 [("nextWaitToken" .=) <$> _lbrNextWaitToken,
+                  ("breakpoints" .=) <$> _lbrBreakpoints])
+
+-- | The response of listing debuggees.
+--
+-- /See:/ 'listDebuggeesResponse' smart constructor.
+newtype ListDebuggeesResponse = ListDebuggeesResponse
+    { _ldrDebuggees :: Maybe [Debuggee]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListDebuggeesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ldrDebuggees'
+listDebuggeesResponse
+    :: ListDebuggeesResponse
+listDebuggeesResponse =
+    ListDebuggeesResponse
+    { _ldrDebuggees = Nothing
+    }
+
+-- | The list of debuggees accessible to the calling user. Note that the
+-- description field is the only human readable field that should be
+-- displayed to the user. The fields \'debuggee.id\' and \'description\'
+-- are guranteed to be set on each debuggee.
+ldrDebuggees :: Lens' ListDebuggeesResponse [Debuggee]
+ldrDebuggees
+  = lens _ldrDebuggees (\ s a -> s{_ldrDebuggees = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListDebuggeesResponse where
+        parseJSON
+          = withObject "ListDebuggeesResponse"
+              (\ o ->
+                 ListDebuggeesResponse <$>
+                   (o .:? "debuggees" .!= mempty))
+
+instance ToJSON ListDebuggeesResponse where
+        toJSON ListDebuggeesResponse{..}
+          = object
+              (catMaybes [("debuggees" .=) <$> _ldrDebuggees])
+
+-- | The request to update an active breakpoint.
+--
+-- /See:/ 'updateActiveBreakpointRequest' smart constructor.
+newtype UpdateActiveBreakpointRequest = UpdateActiveBreakpointRequest
+    { _uabrBreakpoint :: Maybe Breakpoint
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UpdateActiveBreakpointRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'uabrBreakpoint'
+updateActiveBreakpointRequest
+    :: UpdateActiveBreakpointRequest
+updateActiveBreakpointRequest =
+    UpdateActiveBreakpointRequest
+    { _uabrBreakpoint = Nothing
+    }
+
+-- | The updated breakpoint information. The field \'id\' must be set.
+uabrBreakpoint :: Lens' UpdateActiveBreakpointRequest (Maybe Breakpoint)
+uabrBreakpoint
+  = lens _uabrBreakpoint
+      (\ s a -> s{_uabrBreakpoint = a})
+
+instance FromJSON UpdateActiveBreakpointRequest where
+        parseJSON
+          = withObject "UpdateActiveBreakpointRequest"
+              (\ o ->
+                 UpdateActiveBreakpointRequest <$>
+                   (o .:? "breakpoint"))
+
+instance ToJSON UpdateActiveBreakpointRequest where
+        toJSON UpdateActiveBreakpointRequest{..}
+          = object
+              (catMaybes [("breakpoint" .=) <$> _uabrBreakpoint])
+
+-- | Represents a contextual status message. The message can indicate an
+-- error or informational status, and refer to specific parts of the
+-- containing object. For example, the Breakpoint.status field can indicate
+-- an error referring to the BREAKPOINT_SOURCE_LOCATION with the message
+-- \"Location not found\".
+--
+-- /See:/ 'statusMessage' smart constructor.
+data StatusMessage = StatusMessage
+    { _smRefersTo    :: !(Maybe Text)
+    , _smIsError     :: !(Maybe Bool)
+    , _smDescription :: !(Maybe FormatMessage)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StatusMessage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'smRefersTo'
+--
+-- * 'smIsError'
+--
+-- * 'smDescription'
+statusMessage
+    :: StatusMessage
+statusMessage =
+    StatusMessage
+    { _smRefersTo = Nothing
+    , _smIsError = Nothing
+    , _smDescription = Nothing
+    }
+
+-- | Reference to which the message applies.
+smRefersTo :: Lens' StatusMessage (Maybe Text)
+smRefersTo
+  = lens _smRefersTo (\ s a -> s{_smRefersTo = a})
+
+-- | Distinguishes errors from informational messages.
+smIsError :: Lens' StatusMessage (Maybe Bool)
+smIsError
+  = lens _smIsError (\ s a -> s{_smIsError = a})
+
+-- | Status message text.
+smDescription :: Lens' StatusMessage (Maybe FormatMessage)
+smDescription
+  = lens _smDescription
+      (\ s a -> s{_smDescription = a})
+
+instance FromJSON StatusMessage where
+        parseJSON
+          = withObject "StatusMessage"
+              (\ o ->
+                 StatusMessage <$>
+                   (o .:? "refersTo") <*> (o .:? "isError") <*>
+                     (o .:? "description"))
+
+instance ToJSON StatusMessage where
+        toJSON StatusMessage{..}
+          = object
+              (catMaybes
+                 [("refersTo" .=) <$> _smRefersTo,
+                  ("isError" .=) <$> _smIsError,
+                  ("description" .=) <$> _smDescription])
+
+-- | The response of listing active breakpoints.
+--
+-- /See:/ 'listActiveBreakpointsResponse' smart constructor.
+data ListActiveBreakpointsResponse = ListActiveBreakpointsResponse
+    { _labrNextWaitToken :: !(Maybe Text)
+    , _labrBreakpoints   :: !(Maybe [Breakpoint])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListActiveBreakpointsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'labrNextWaitToken'
+--
+-- * 'labrBreakpoints'
+listActiveBreakpointsResponse
+    :: ListActiveBreakpointsResponse
+listActiveBreakpointsResponse =
+    ListActiveBreakpointsResponse
+    { _labrNextWaitToken = Nothing
+    , _labrBreakpoints = Nothing
+    }
+
+-- | A wait token that can be used in the next method call to block until the
+-- list of breakpoints changes.
+labrNextWaitToken :: Lens' ListActiveBreakpointsResponse (Maybe Text)
+labrNextWaitToken
+  = lens _labrNextWaitToken
+      (\ s a -> s{_labrNextWaitToken = a})
+
+-- | List of all active breakpoints. The fields \'id\' and \'location\' are
+-- guranteed to be set on each breakpoint.
+labrBreakpoints :: Lens' ListActiveBreakpointsResponse [Breakpoint]
+labrBreakpoints
+  = lens _labrBreakpoints
+      (\ s a -> s{_labrBreakpoints = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListActiveBreakpointsResponse where
+        parseJSON
+          = withObject "ListActiveBreakpointsResponse"
+              (\ o ->
+                 ListActiveBreakpointsResponse <$>
+                   (o .:? "nextWaitToken") <*>
+                     (o .:? "breakpoints" .!= mempty))
+
+instance ToJSON ListActiveBreakpointsResponse where
+        toJSON ListActiveBreakpointsResponse{..}
+          = object
+              (catMaybes
+                 [("nextWaitToken" .=) <$> _labrNextWaitToken,
+                  ("breakpoints" .=) <$> _labrBreakpoints])
+
+-- | A GitSourceContext denotes a particular revision in a third party Git
+-- repository (e.g. GitHub).
+--
+-- /See:/ 'gitSourceContext' smart constructor.
+data GitSourceContext = GitSourceContext
+    { _gURL        :: !(Maybe Text)
+    , _gRevisionId :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GitSourceContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gURL'
+--
+-- * 'gRevisionId'
+gitSourceContext
+    :: GitSourceContext
+gitSourceContext =
+    GitSourceContext
+    { _gURL = Nothing
+    , _gRevisionId = Nothing
+    }
+
+-- | Git repository URL.
+gURL :: Lens' GitSourceContext (Maybe Text)
+gURL = lens _gURL (\ s a -> s{_gURL = a})
+
+-- | Git commit hash. required.
+gRevisionId :: Lens' GitSourceContext (Maybe Text)
+gRevisionId
+  = lens _gRevisionId (\ s a -> s{_gRevisionId = a})
+
+instance FromJSON GitSourceContext where
+        parseJSON
+          = withObject "GitSourceContext"
+              (\ o ->
+                 GitSourceContext <$>
+                   (o .:? "url") <*> (o .:? "revisionId"))
+
+instance ToJSON GitSourceContext where
+        toJSON GitSourceContext{..}
+          = object
+              (catMaybes
+                 [("url" .=) <$> _gURL,
+                  ("revisionId" .=) <$> _gRevisionId])
+
+-- | Represents a location in the source code.
+--
+-- /See:/ 'sourceLocation' smart constructor.
+data SourceLocation = SourceLocation
+    { _slPath :: !(Maybe Text)
+    , _slLine :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceLocation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'slPath'
+--
+-- * 'slLine'
+sourceLocation
+    :: SourceLocation
+sourceLocation =
+    SourceLocation
+    { _slPath = Nothing
+    , _slLine = Nothing
+    }
+
+-- | A path to the source file within the source context of the target
+-- binary.
+slPath :: Lens' SourceLocation (Maybe Text)
+slPath = lens _slPath (\ s a -> s{_slPath = a})
+
+-- | The line inside the file (first line value is \'1\').
+slLine :: Lens' SourceLocation (Maybe Int32)
+slLine
+  = lens _slLine (\ s a -> s{_slLine = a}) .
+      mapping _Coerce
+
+instance FromJSON SourceLocation where
+        parseJSON
+          = withObject "SourceLocation"
+              (\ o ->
+                 SourceLocation <$> (o .:? "path") <*> (o .:? "line"))
+
+instance ToJSON SourceLocation where
+        toJSON SourceLocation{..}
+          = object
+              (catMaybes
+                 [("path" .=) <$> _slPath, ("line" .=) <$> _slLine])
+
+-- | Represents a stack frame context.
+--
+-- /See:/ 'stackFrame' smart constructor.
+data StackFrame = StackFrame
+    { _sfFunction  :: !(Maybe Text)
+    , _sfLocation  :: !(Maybe SourceLocation)
+    , _sfArguments :: !(Maybe [Variable])
+    , _sfLocals    :: !(Maybe [Variable])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StackFrame' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sfFunction'
+--
+-- * 'sfLocation'
+--
+-- * 'sfArguments'
+--
+-- * 'sfLocals'
+stackFrame
+    :: StackFrame
+stackFrame =
+    StackFrame
+    { _sfFunction = Nothing
+    , _sfLocation = Nothing
+    , _sfArguments = Nothing
+    , _sfLocals = Nothing
+    }
+
+-- | The unmangled function name at the call site.
+sfFunction :: Lens' StackFrame (Maybe Text)
+sfFunction
+  = lens _sfFunction (\ s a -> s{_sfFunction = a})
+
+-- | The source location of the call site.
+sfLocation :: Lens' StackFrame (Maybe SourceLocation)
+sfLocation
+  = lens _sfLocation (\ s a -> s{_sfLocation = a})
+
+-- | The set of arguments passed to this function Note that this might not be
+-- populated for all stack frames.
+sfArguments :: Lens' StackFrame [Variable]
+sfArguments
+  = lens _sfArguments (\ s a -> s{_sfArguments = a}) .
+      _Default
+      . _Coerce
+
+-- | The set of local variables at the stack frame location. Note that this
+-- might not be populated for all stack frames.
+sfLocals :: Lens' StackFrame [Variable]
+sfLocals
+  = lens _sfLocals (\ s a -> s{_sfLocals = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON StackFrame where
+        parseJSON
+          = withObject "StackFrame"
+              (\ o ->
+                 StackFrame <$>
+                   (o .:? "function") <*> (o .:? "location") <*>
+                     (o .:? "arguments" .!= mempty)
+                     <*> (o .:? "locals" .!= mempty))
+
+instance ToJSON StackFrame where
+        toJSON StackFrame{..}
+          = object
+              (catMaybes
+                 [("function" .=) <$> _sfFunction,
+                  ("location" .=) <$> _sfLocation,
+                  ("arguments" .=) <$> _sfArguments,
+                  ("locals" .=) <$> _sfLocals])
+
+-- | A CloudRepoSourceContext denotes a particular revision in a cloud repo
+-- (a repo hosted by the Google Cloud Platform).
+--
+-- /See:/ 'cloudRepoSourceContext' smart constructor.
+data CloudRepoSourceContext = CloudRepoSourceContext
+    { _crscRepoId     :: !(Maybe RepoId)
+    , _crscAliasName  :: !(Maybe Text)
+    , _crscRevisionId :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CloudRepoSourceContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crscRepoId'
+--
+-- * 'crscAliasName'
+--
+-- * 'crscRevisionId'
+cloudRepoSourceContext
+    :: CloudRepoSourceContext
+cloudRepoSourceContext =
+    CloudRepoSourceContext
+    { _crscRepoId = Nothing
+    , _crscAliasName = Nothing
+    , _crscRevisionId = Nothing
+    }
+
+-- | The ID of the repo.
+crscRepoId :: Lens' CloudRepoSourceContext (Maybe RepoId)
+crscRepoId
+  = lens _crscRepoId (\ s a -> s{_crscRepoId = a})
+
+-- | The name of an alias (branch, tag, etc.).
+crscAliasName :: Lens' CloudRepoSourceContext (Maybe Text)
+crscAliasName
+  = lens _crscAliasName
+      (\ s a -> s{_crscAliasName = a})
+
+-- | A revision ID.
+crscRevisionId :: Lens' CloudRepoSourceContext (Maybe Text)
+crscRevisionId
+  = lens _crscRevisionId
+      (\ s a -> s{_crscRevisionId = a})
+
+instance FromJSON CloudRepoSourceContext where
+        parseJSON
+          = withObject "CloudRepoSourceContext"
+              (\ o ->
+                 CloudRepoSourceContext <$>
+                   (o .:? "repoId") <*> (o .:? "aliasName") <*>
+                     (o .:? "revisionId"))
+
+instance ToJSON CloudRepoSourceContext where
+        toJSON CloudRepoSourceContext{..}
+          = object
+              (catMaybes
+                 [("repoId" .=) <$> _crscRepoId,
+                  ("aliasName" .=) <$> _crscAliasName,
+                  ("revisionId" .=) <$> _crscRevisionId])
+
+-- | A set of custom debuggee properties, populated by the agent, to be
+-- displayed to the user.
+--
+-- /See:/ 'debuggeeLabels' smart constructor.
+newtype DebuggeeLabels = DebuggeeLabels
+    { _dlAddtional :: HashMap Text Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DebuggeeLabels' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dlAddtional'
+debuggeeLabels
+    :: HashMap Text Text -- ^ 'dlAddtional'
+    -> DebuggeeLabels
+debuggeeLabels pDlAddtional_ =
+    DebuggeeLabels
+    { _dlAddtional = _Coerce # pDlAddtional_
+    }
+
+dlAddtional :: Lens' DebuggeeLabels (HashMap Text Text)
+dlAddtional
+  = lens _dlAddtional (\ s a -> s{_dlAddtional = a}) .
+      _Coerce
+
+instance FromJSON DebuggeeLabels where
+        parseJSON
+          = withObject "DebuggeeLabels"
+              (\ o -> DebuggeeLabels <$> (parseJSONObject o))
+
+instance ToJSON DebuggeeLabels where
+        toJSON = toJSON . _dlAddtional
+
+-- | Represents the application to debug. The application may include one or
+-- more replicated processes executing the same code. Each of these
+-- processes is attached with a debugger agent, carrying out the debugging
+-- commands. The agents attached to the same debuggee are identified by
+-- using exactly the same fields\' values when registering.
+--
+-- /See:/ 'debuggee' smart constructor.
+data Debuggee = Debuggee
+    { _dStatus         :: !(Maybe StatusMessage)
+    , _dUniquifier     :: !(Maybe Text)
+    , _dProject        :: !(Maybe Text)
+    , _dAgentVersion   :: !(Maybe Text)
+    , _dIsDisabled     :: !(Maybe Bool)
+    , _dId             :: !(Maybe Text)
+    , _dLabels         :: !(Maybe DebuggeeLabels)
+    , _dDescription    :: !(Maybe Text)
+    , _dIsInactive     :: !(Maybe Bool)
+    , _dSourceContexts :: !(Maybe [SourceContext])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Debuggee' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dStatus'
+--
+-- * 'dUniquifier'
+--
+-- * 'dProject'
+--
+-- * 'dAgentVersion'
+--
+-- * 'dIsDisabled'
+--
+-- * 'dId'
+--
+-- * 'dLabels'
+--
+-- * 'dDescription'
+--
+-- * 'dIsInactive'
+--
+-- * 'dSourceContexts'
+debuggee
+    :: Debuggee
+debuggee =
+    Debuggee
+    { _dStatus = Nothing
+    , _dUniquifier = Nothing
+    , _dProject = Nothing
+    , _dAgentVersion = Nothing
+    , _dIsDisabled = Nothing
+    , _dId = Nothing
+    , _dLabels = Nothing
+    , _dDescription = Nothing
+    , _dIsInactive = Nothing
+    , _dSourceContexts = Nothing
+    }
+
+-- | Human readable message to be displayed to the user about this debuggee.
+-- Absense of this field indicates no message. The message can be either
+-- informational or error.
+dStatus :: Lens' Debuggee (Maybe StatusMessage)
+dStatus = lens _dStatus (\ s a -> s{_dStatus = a})
+
+-- | The debuggee uniqifier within the project. Any string that id the
+-- application within the project can be used. Recomended to include
+-- environement and version or build id\'s.
+dUniquifier :: Lens' Debuggee (Maybe Text)
+dUniquifier
+  = lens _dUniquifier (\ s a -> s{_dUniquifier = a})
+
+-- | The project the debuggee is associated with. Use the project number when
+-- registering a Google Cloud Platform project.
+dProject :: Lens' Debuggee (Maybe Text)
+dProject = lens _dProject (\ s a -> s{_dProject = a})
+
+-- | Version ID of the agent release. The version ID is structured as
+-- following: \"domain\/type\/vmajor.minor\" (for example
+-- \"google.com\/gcp-java\/v1.1\").
+dAgentVersion :: Lens' Debuggee (Maybe Text)
+dAgentVersion
+  = lens _dAgentVersion
+      (\ s a -> s{_dAgentVersion = a})
+
+-- | If set to true, indicates that the agent should disable itself and
+-- detach from the debuggee.
+dIsDisabled :: Lens' Debuggee (Maybe Bool)
+dIsDisabled
+  = lens _dIsDisabled (\ s a -> s{_dIsDisabled = a})
+
+-- | Debuggee unique identifer generated by the server.
+dId :: Lens' Debuggee (Maybe Text)
+dId = lens _dId (\ s a -> s{_dId = a})
+
+-- | A set of custom debuggee properties, populated by the agent, to be
+-- displayed to the user.
+dLabels :: Lens' Debuggee (Maybe DebuggeeLabels)
+dLabels = lens _dLabels (\ s a -> s{_dLabels = a})
+
+-- | A human readable description of the debuggee. Recommended to include
+-- human readable project name, environment name, and version information .
+dDescription :: Lens' Debuggee (Maybe Text)
+dDescription
+  = lens _dDescription (\ s a -> s{_dDescription = a})
+
+-- | If set to true indicates that the debuggee has not been seen by the
+-- Controller service in the last active time period (defined by the
+-- server).
+dIsInactive :: Lens' Debuggee (Maybe Bool)
+dIsInactive
+  = lens _dIsInactive (\ s a -> s{_dIsInactive = a})
+
+-- | Repository snapshots containing the source code of the project.
+dSourceContexts :: Lens' Debuggee [SourceContext]
+dSourceContexts
+  = lens _dSourceContexts
+      (\ s a -> s{_dSourceContexts = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Debuggee where
+        parseJSON
+          = withObject "Debuggee"
+              (\ o ->
+                 Debuggee <$>
+                   (o .:? "status") <*> (o .:? "uniquifier") <*>
+                     (o .:? "project")
+                     <*> (o .:? "agentVersion")
+                     <*> (o .:? "isDisabled")
+                     <*> (o .:? "id")
+                     <*> (o .:? "labels")
+                     <*> (o .:? "description")
+                     <*> (o .:? "isInactive")
+                     <*> (o .:? "sourceContexts" .!= mempty))
+
+instance ToJSON Debuggee where
+        toJSON Debuggee{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _dStatus,
+                  ("uniquifier" .=) <$> _dUniquifier,
+                  ("project" .=) <$> _dProject,
+                  ("agentVersion" .=) <$> _dAgentVersion,
+                  ("isDisabled" .=) <$> _dIsDisabled,
+                  ("id" .=) <$> _dId, ("labels" .=) <$> _dLabels,
+                  ("description" .=) <$> _dDescription,
+                  ("isInactive" .=) <$> _dIsInactive,
+                  ("sourceContexts" .=) <$> _dSourceContexts])
+
+-- | A CloudWorkspaceSourceContext denotes a workspace at a particular
+-- snapshot.
+--
+-- /See:/ 'cloudWorkspaceSourceContext' smart constructor.
+data CloudWorkspaceSourceContext = CloudWorkspaceSourceContext
+    { _cwscWorkspaceId :: !(Maybe CloudWorkspaceId)
+    , _cwscSnapshotId  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CloudWorkspaceSourceContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cwscWorkspaceId'
+--
+-- * 'cwscSnapshotId'
+cloudWorkspaceSourceContext
+    :: CloudWorkspaceSourceContext
+cloudWorkspaceSourceContext =
+    CloudWorkspaceSourceContext
+    { _cwscWorkspaceId = Nothing
+    , _cwscSnapshotId = Nothing
+    }
+
+-- | The ID of the workspace.
+cwscWorkspaceId :: Lens' CloudWorkspaceSourceContext (Maybe CloudWorkspaceId)
+cwscWorkspaceId
+  = lens _cwscWorkspaceId
+      (\ s a -> s{_cwscWorkspaceId = a})
+
+-- | The ID of the snapshot. An empty snapshot_id refers to the most recent
+-- snapshot.
+cwscSnapshotId :: Lens' CloudWorkspaceSourceContext (Maybe Text)
+cwscSnapshotId
+  = lens _cwscSnapshotId
+      (\ s a -> s{_cwscSnapshotId = a})
+
+instance FromJSON CloudWorkspaceSourceContext where
+        parseJSON
+          = withObject "CloudWorkspaceSourceContext"
+              (\ o ->
+                 CloudWorkspaceSourceContext <$>
+                   (o .:? "workspaceId") <*> (o .:? "snapshotId"))
+
+instance ToJSON CloudWorkspaceSourceContext where
+        toJSON CloudWorkspaceSourceContext{..}
+          = object
+              (catMaybes
+                 [("workspaceId" .=) <$> _cwscWorkspaceId,
+                  ("snapshotId" .=) <$> _cwscSnapshotId])
+
+-- | The request to register a debuggee.
+--
+-- /See:/ 'registerDebuggeeRequest' smart constructor.
+newtype RegisterDebuggeeRequest = RegisterDebuggeeRequest
+    { _rDebuggee :: Maybe Debuggee
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RegisterDebuggeeRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rDebuggee'
+registerDebuggeeRequest
+    :: RegisterDebuggeeRequest
+registerDebuggeeRequest =
+    RegisterDebuggeeRequest
+    { _rDebuggee = Nothing
+    }
+
+-- | The debuggee information to register. The fields \'project\',
+-- \'uniquifier\', \'description\' and \'agent_version\' of the debuggee
+-- must be set.
+rDebuggee :: Lens' RegisterDebuggeeRequest (Maybe Debuggee)
+rDebuggee
+  = lens _rDebuggee (\ s a -> s{_rDebuggee = a})
+
+instance FromJSON RegisterDebuggeeRequest where
+        parseJSON
+          = withObject "RegisterDebuggeeRequest"
+              (\ o ->
+                 RegisterDebuggeeRequest <$> (o .:? "debuggee"))
+
+instance ToJSON RegisterDebuggeeRequest where
+        toJSON RegisterDebuggeeRequest{..}
+          = object (catMaybes [("debuggee" .=) <$> _rDebuggee])
+
+-- | A CloudWorkspaceId is a unique identifier for a cloud workspace. A cloud
+-- workspace is a place associated with a repo where modified files can be
+-- stored before they are committed.
+--
+-- /See:/ 'cloudWorkspaceId' smart constructor.
+data CloudWorkspaceId = CloudWorkspaceId
+    { _cwiRepoId :: !(Maybe RepoId)
+    , _cwiName   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CloudWorkspaceId' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cwiRepoId'
+--
+-- * 'cwiName'
+cloudWorkspaceId
+    :: CloudWorkspaceId
+cloudWorkspaceId =
+    CloudWorkspaceId
+    { _cwiRepoId = Nothing
+    , _cwiName = Nothing
+    }
+
+-- | The ID of the repo containing the workspace.
+cwiRepoId :: Lens' CloudWorkspaceId (Maybe RepoId)
+cwiRepoId
+  = lens _cwiRepoId (\ s a -> s{_cwiRepoId = a})
+
+-- | The unique name of the workspace within the repo. This is the name
+-- chosen by the client in the Source API\'s CreateWorkspace method.
+cwiName :: Lens' CloudWorkspaceId (Maybe Text)
+cwiName = lens _cwiName (\ s a -> s{_cwiName = a})
+
+instance FromJSON CloudWorkspaceId where
+        parseJSON
+          = withObject "CloudWorkspaceId"
+              (\ o ->
+                 CloudWorkspaceId <$>
+                   (o .:? "repoId") <*> (o .:? "name"))
+
+instance ToJSON CloudWorkspaceId where
+        toJSON CloudWorkspaceId{..}
+          = object
+              (catMaybes
+                 [("repoId" .=) <$> _cwiRepoId,
+                  ("name" .=) <$> _cwiName])
diff --git a/gen/Network/Google/Debugger/Types/Sum.hs b/gen/Network/Google/Debugger/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Debugger/Types/Sum.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE LambdaCase         #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.Debugger.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.Debugger.Types.Sum where
+
+import           Network.Google.Prelude
diff --git a/gen/Network/Google/Resource/CloudDebugger/Controller/Debuggees/Breakpoints/List.hs b/gen/Network/Google/Resource/CloudDebugger/Controller/Debuggees/Breakpoints/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/CloudDebugger/Controller/Debuggees/Breakpoints/List.hs
@@ -0,0 +1,211 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.CloudDebugger.Controller.Debuggees.Breakpoints.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)
+--
+-- Returns the list of all active breakpoints for the specified debuggee.
+-- The breakpoint specification (location, condition, and expression
+-- fields) is semantically immutable, although the field values may change.
+-- For example, an agent may update the location line number to reflect the
+-- actual line the breakpoint was set to, but that doesn\'t change the
+-- breakpoint semantics. Thus, an agent does not need to check if a
+-- breakpoint has changed when it encounters the same breakpoint on a
+-- successive call. Moreover, an agent should remember breakpoints that are
+-- complete until the controller removes them from the active list to avoid
+-- setting those breakpoints again.
+--
+-- /See:/ <https://cloud.google.com/tools/cloud-debugger Google Cloud Debugger API Reference> for @clouddebugger.controller.debuggees.breakpoints.list@.
+module Network.Google.Resource.CloudDebugger.Controller.Debuggees.Breakpoints.List
+    (
+    -- * REST Resource
+      ControllerDebuggeesBreakpointsListResource
+
+    -- * Creating a Request
+    , controllerDebuggeesBreakpointsList
+    , ControllerDebuggeesBreakpointsList
+
+    -- * Request Lenses
+    , cdblXgafv
+    , cdblUploadProtocol
+    , cdblPp
+    , cdblAccessToken
+    , cdblUploadType
+    , cdblBearerToken
+    , cdblWaitToken
+    , cdblDebuggeeId
+    , cdblCallback
+    ) where
+
+import           Network.Google.Debugger.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @clouddebugger.controller.debuggees.breakpoints.list@ method which the
+-- 'ControllerDebuggeesBreakpointsList' request conforms to.
+type ControllerDebuggeesBreakpointsListResource =
+     "v2" :>
+       "controller" :>
+         "debuggees" :>
+           Capture "debuggeeId" Text :>
+             "breakpoints" :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "waitToken" Text :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] ListActiveBreakpointsResponse
+
+-- | Returns the list of all active breakpoints for the specified debuggee.
+-- The breakpoint specification (location, condition, and expression
+-- fields) is semantically immutable, although the field values may change.
+-- For example, an agent may update the location line number to reflect the
+-- actual line the breakpoint was set to, but that doesn\'t change the
+-- breakpoint semantics. Thus, an agent does not need to check if a
+-- breakpoint has changed when it encounters the same breakpoint on a
+-- successive call. Moreover, an agent should remember breakpoints that are
+-- complete until the controller removes them from the active list to avoid
+-- setting those breakpoints again.
+--
+-- /See:/ 'controllerDebuggeesBreakpointsList' smart constructor.
+data ControllerDebuggeesBreakpointsList = ControllerDebuggeesBreakpointsList
+    { _cdblXgafv          :: !(Maybe Text)
+    , _cdblUploadProtocol :: !(Maybe Text)
+    , _cdblPp             :: !Bool
+    , _cdblAccessToken    :: !(Maybe Text)
+    , _cdblUploadType     :: !(Maybe Text)
+    , _cdblBearerToken    :: !(Maybe Text)
+    , _cdblWaitToken      :: !(Maybe Text)
+    , _cdblDebuggeeId     :: !Text
+    , _cdblCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ControllerDebuggeesBreakpointsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdblXgafv'
+--
+-- * 'cdblUploadProtocol'
+--
+-- * 'cdblPp'
+--
+-- * 'cdblAccessToken'
+--
+-- * 'cdblUploadType'
+--
+-- * 'cdblBearerToken'
+--
+-- * 'cdblWaitToken'
+--
+-- * 'cdblDebuggeeId'
+--
+-- * 'cdblCallback'
+controllerDebuggeesBreakpointsList
+    :: Text -- ^ 'cdblDebuggeeId'
+    -> ControllerDebuggeesBreakpointsList
+controllerDebuggeesBreakpointsList pCdblDebuggeeId_ =
+    ControllerDebuggeesBreakpointsList
+    { _cdblXgafv = Nothing
+    , _cdblUploadProtocol = Nothing
+    , _cdblPp = True
+    , _cdblAccessToken = Nothing
+    , _cdblUploadType = Nothing
+    , _cdblBearerToken = Nothing
+    , _cdblWaitToken = Nothing
+    , _cdblDebuggeeId = pCdblDebuggeeId_
+    , _cdblCallback = Nothing
+    }
+
+-- | V1 error format.
+cdblXgafv :: Lens' ControllerDebuggeesBreakpointsList (Maybe Text)
+cdblXgafv
+  = lens _cdblXgafv (\ s a -> s{_cdblXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+cdblUploadProtocol :: Lens' ControllerDebuggeesBreakpointsList (Maybe Text)
+cdblUploadProtocol
+  = lens _cdblUploadProtocol
+      (\ s a -> s{_cdblUploadProtocol = a})
+
+-- | Pretty-print response.
+cdblPp :: Lens' ControllerDebuggeesBreakpointsList Bool
+cdblPp = lens _cdblPp (\ s a -> s{_cdblPp = a})
+
+-- | OAuth access token.
+cdblAccessToken :: Lens' ControllerDebuggeesBreakpointsList (Maybe Text)
+cdblAccessToken
+  = lens _cdblAccessToken
+      (\ s a -> s{_cdblAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+cdblUploadType :: Lens' ControllerDebuggeesBreakpointsList (Maybe Text)
+cdblUploadType
+  = lens _cdblUploadType
+      (\ s a -> s{_cdblUploadType = a})
+
+-- | OAuth bearer token.
+cdblBearerToken :: Lens' ControllerDebuggeesBreakpointsList (Maybe Text)
+cdblBearerToken
+  = lens _cdblBearerToken
+      (\ s a -> s{_cdblBearerToken = a})
+
+-- | A wait token that, if specified, blocks the method call until the list
+-- of active breakpoints has changed, or a server selected timeout has
+-- expired. The value should be set from the last returned response. The
+-- error code google.rpc.Code.ABORTED is returned on wait timeout (which
+-- does not require the agent to re-register with the server)
+cdblWaitToken :: Lens' ControllerDebuggeesBreakpointsList (Maybe Text)
+cdblWaitToken
+  = lens _cdblWaitToken
+      (\ s a -> s{_cdblWaitToken = a})
+
+-- | Identifies the debuggee.
+cdblDebuggeeId :: Lens' ControllerDebuggeesBreakpointsList Text
+cdblDebuggeeId
+  = lens _cdblDebuggeeId
+      (\ s a -> s{_cdblDebuggeeId = a})
+
+-- | JSONP
+cdblCallback :: Lens' ControllerDebuggeesBreakpointsList (Maybe Text)
+cdblCallback
+  = lens _cdblCallback (\ s a -> s{_cdblCallback = a})
+
+instance GoogleRequest
+         ControllerDebuggeesBreakpointsList where
+        type Rs ControllerDebuggeesBreakpointsList =
+             ListActiveBreakpointsResponse
+        requestClient ControllerDebuggeesBreakpointsList{..}
+          = go _cdblDebuggeeId _cdblXgafv _cdblUploadProtocol
+              (Just _cdblPp)
+              _cdblAccessToken
+              _cdblUploadType
+              _cdblBearerToken
+              _cdblWaitToken
+              _cdblCallback
+              (Just AltJSON)
+              debuggerService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ControllerDebuggeesBreakpointsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/CloudDebugger/Controller/Debuggees/Breakpoints/Update.hs b/gen/Network/Google/Resource/CloudDebugger/Controller/Debuggees/Breakpoints/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/CloudDebugger/Controller/Debuggees/Breakpoints/Update.hs
@@ -0,0 +1,214 @@
+{-# 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.CloudDebugger.Controller.Debuggees.Breakpoints.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 the breakpoint state or mutable fields. The entire Breakpoint
+-- protobuf must be sent back to the controller. Updates to active
+-- breakpoint fields are only allowed if the new value does not change the
+-- breakpoint specification. Updates to the \'location\', \'condition\' and
+-- \'expression\' fields should not alter the breakpoint semantics. They
+-- are restricted to changes such as canonicalizing a value or snapping the
+-- location to the correct line of code.
+--
+-- /See:/ <https://cloud.google.com/tools/cloud-debugger Google Cloud Debugger API Reference> for @clouddebugger.controller.debuggees.breakpoints.update@.
+module Network.Google.Resource.CloudDebugger.Controller.Debuggees.Breakpoints.Update
+    (
+    -- * REST Resource
+      ControllerDebuggeesBreakpointsUpdateResource
+
+    -- * Creating a Request
+    , controllerDebuggeesBreakpointsUpdate
+    , ControllerDebuggeesBreakpointsUpdate
+
+    -- * Request Lenses
+    , cdbuXgafv
+    , cdbuUploadProtocol
+    , cdbuPp
+    , cdbuAccessToken
+    , cdbuUploadType
+    , cdbuPayload
+    , cdbuBearerToken
+    , cdbuId
+    , cdbuDebuggeeId
+    , cdbuCallback
+    ) where
+
+import           Network.Google.Debugger.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @clouddebugger.controller.debuggees.breakpoints.update@ method which the
+-- 'ControllerDebuggeesBreakpointsUpdate' request conforms to.
+type ControllerDebuggeesBreakpointsUpdateResource =
+     "v2" :>
+       "controller" :>
+         "debuggees" :>
+           Capture "debuggeeId" Text :>
+             "breakpoints" :>
+               Capture "id" Text :>
+                 QueryParam "$.xgafv" Text :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "pp" Bool :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "bearer_token" Text :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 ReqBody '[JSON] UpdateActiveBreakpointRequest
+                                   :> Put '[JSON] UpdateActiveBreakpointResponse
+
+-- | Updates the breakpoint state or mutable fields. The entire Breakpoint
+-- protobuf must be sent back to the controller. Updates to active
+-- breakpoint fields are only allowed if the new value does not change the
+-- breakpoint specification. Updates to the \'location\', \'condition\' and
+-- \'expression\' fields should not alter the breakpoint semantics. They
+-- are restricted to changes such as canonicalizing a value or snapping the
+-- location to the correct line of code.
+--
+-- /See:/ 'controllerDebuggeesBreakpointsUpdate' smart constructor.
+data ControllerDebuggeesBreakpointsUpdate = ControllerDebuggeesBreakpointsUpdate
+    { _cdbuXgafv          :: !(Maybe Text)
+    , _cdbuUploadProtocol :: !(Maybe Text)
+    , _cdbuPp             :: !Bool
+    , _cdbuAccessToken    :: !(Maybe Text)
+    , _cdbuUploadType     :: !(Maybe Text)
+    , _cdbuPayload        :: !UpdateActiveBreakpointRequest
+    , _cdbuBearerToken    :: !(Maybe Text)
+    , _cdbuId             :: !Text
+    , _cdbuDebuggeeId     :: !Text
+    , _cdbuCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ControllerDebuggeesBreakpointsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdbuXgafv'
+--
+-- * 'cdbuUploadProtocol'
+--
+-- * 'cdbuPp'
+--
+-- * 'cdbuAccessToken'
+--
+-- * 'cdbuUploadType'
+--
+-- * 'cdbuPayload'
+--
+-- * 'cdbuBearerToken'
+--
+-- * 'cdbuId'
+--
+-- * 'cdbuDebuggeeId'
+--
+-- * 'cdbuCallback'
+controllerDebuggeesBreakpointsUpdate
+    :: UpdateActiveBreakpointRequest -- ^ 'cdbuPayload'
+    -> Text -- ^ 'cdbuId'
+    -> Text -- ^ 'cdbuDebuggeeId'
+    -> ControllerDebuggeesBreakpointsUpdate
+controllerDebuggeesBreakpointsUpdate pCdbuPayload_ pCdbuId_ pCdbuDebuggeeId_ =
+    ControllerDebuggeesBreakpointsUpdate
+    { _cdbuXgafv = Nothing
+    , _cdbuUploadProtocol = Nothing
+    , _cdbuPp = True
+    , _cdbuAccessToken = Nothing
+    , _cdbuUploadType = Nothing
+    , _cdbuPayload = pCdbuPayload_
+    , _cdbuBearerToken = Nothing
+    , _cdbuId = pCdbuId_
+    , _cdbuDebuggeeId = pCdbuDebuggeeId_
+    , _cdbuCallback = Nothing
+    }
+
+-- | V1 error format.
+cdbuXgafv :: Lens' ControllerDebuggeesBreakpointsUpdate (Maybe Text)
+cdbuXgafv
+  = lens _cdbuXgafv (\ s a -> s{_cdbuXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+cdbuUploadProtocol :: Lens' ControllerDebuggeesBreakpointsUpdate (Maybe Text)
+cdbuUploadProtocol
+  = lens _cdbuUploadProtocol
+      (\ s a -> s{_cdbuUploadProtocol = a})
+
+-- | Pretty-print response.
+cdbuPp :: Lens' ControllerDebuggeesBreakpointsUpdate Bool
+cdbuPp = lens _cdbuPp (\ s a -> s{_cdbuPp = a})
+
+-- | OAuth access token.
+cdbuAccessToken :: Lens' ControllerDebuggeesBreakpointsUpdate (Maybe Text)
+cdbuAccessToken
+  = lens _cdbuAccessToken
+      (\ s a -> s{_cdbuAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+cdbuUploadType :: Lens' ControllerDebuggeesBreakpointsUpdate (Maybe Text)
+cdbuUploadType
+  = lens _cdbuUploadType
+      (\ s a -> s{_cdbuUploadType = a})
+
+-- | Multipart request metadata.
+cdbuPayload :: Lens' ControllerDebuggeesBreakpointsUpdate UpdateActiveBreakpointRequest
+cdbuPayload
+  = lens _cdbuPayload (\ s a -> s{_cdbuPayload = a})
+
+-- | OAuth bearer token.
+cdbuBearerToken :: Lens' ControllerDebuggeesBreakpointsUpdate (Maybe Text)
+cdbuBearerToken
+  = lens _cdbuBearerToken
+      (\ s a -> s{_cdbuBearerToken = a})
+
+-- | Breakpoint identifier, unique in the scope of the debuggee.
+cdbuId :: Lens' ControllerDebuggeesBreakpointsUpdate Text
+cdbuId = lens _cdbuId (\ s a -> s{_cdbuId = a})
+
+-- | Identifies the debuggee being debugged.
+cdbuDebuggeeId :: Lens' ControllerDebuggeesBreakpointsUpdate Text
+cdbuDebuggeeId
+  = lens _cdbuDebuggeeId
+      (\ s a -> s{_cdbuDebuggeeId = a})
+
+-- | JSONP
+cdbuCallback :: Lens' ControllerDebuggeesBreakpointsUpdate (Maybe Text)
+cdbuCallback
+  = lens _cdbuCallback (\ s a -> s{_cdbuCallback = a})
+
+instance GoogleRequest
+         ControllerDebuggeesBreakpointsUpdate where
+        type Rs ControllerDebuggeesBreakpointsUpdate =
+             UpdateActiveBreakpointResponse
+        requestClient
+          ControllerDebuggeesBreakpointsUpdate{..}
+          = go _cdbuDebuggeeId _cdbuId _cdbuXgafv
+              _cdbuUploadProtocol
+              (Just _cdbuPp)
+              _cdbuAccessToken
+              _cdbuUploadType
+              _cdbuBearerToken
+              _cdbuCallback
+              (Just AltJSON)
+              _cdbuPayload
+              debuggerService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ControllerDebuggeesBreakpointsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/CloudDebugger/Controller/Debuggees/Register.hs b/gen/Network/Google/Resource/CloudDebugger/Controller/Debuggees/Register.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/CloudDebugger/Controller/Debuggees/Register.hs
@@ -0,0 +1,185 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.CloudDebugger.Controller.Debuggees.Register
+-- 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)
+--
+-- Registers the debuggee with the controller. All agents should call this
+-- API with the same request content to get back the same stable
+-- \'debuggee_id\'. Agents should call this API again whenever
+-- ListActiveBreakpoints or UpdateActiveBreakpoint return the error
+-- google.rpc.Code.NOT_FOUND. It allows the server to disable the agent or
+-- recover from any registration loss. If the debuggee is disabled server,
+-- the response will have is_disabled\' set to true.
+--
+-- /See:/ <https://cloud.google.com/tools/cloud-debugger Google Cloud Debugger API Reference> for @clouddebugger.controller.debuggees.register@.
+module Network.Google.Resource.CloudDebugger.Controller.Debuggees.Register
+    (
+    -- * REST Resource
+      ControllerDebuggeesRegisterResource
+
+    -- * Creating a Request
+    , controllerDebuggeesRegister
+    , ControllerDebuggeesRegister
+
+    -- * Request Lenses
+    , cdrXgafv
+    , cdrUploadProtocol
+    , cdrPp
+    , cdrAccessToken
+    , cdrUploadType
+    , cdrPayload
+    , cdrBearerToken
+    , cdrCallback
+    ) where
+
+import           Network.Google.Debugger.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @clouddebugger.controller.debuggees.register@ method which the
+-- 'ControllerDebuggeesRegister' request conforms to.
+type ControllerDebuggeesRegisterResource =
+     "v2" :>
+       "controller" :>
+         "debuggees" :>
+           "register" :>
+             QueryParam "$.xgafv" Text :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] RegisterDebuggeeRequest :>
+                               Post '[JSON] RegisterDebuggeeResponse
+
+-- | Registers the debuggee with the controller. All agents should call this
+-- API with the same request content to get back the same stable
+-- \'debuggee_id\'. Agents should call this API again whenever
+-- ListActiveBreakpoints or UpdateActiveBreakpoint return the error
+-- google.rpc.Code.NOT_FOUND. It allows the server to disable the agent or
+-- recover from any registration loss. If the debuggee is disabled server,
+-- the response will have is_disabled\' set to true.
+--
+-- /See:/ 'controllerDebuggeesRegister' smart constructor.
+data ControllerDebuggeesRegister = ControllerDebuggeesRegister
+    { _cdrXgafv          :: !(Maybe Text)
+    , _cdrUploadProtocol :: !(Maybe Text)
+    , _cdrPp             :: !Bool
+    , _cdrAccessToken    :: !(Maybe Text)
+    , _cdrUploadType     :: !(Maybe Text)
+    , _cdrPayload        :: !RegisterDebuggeeRequest
+    , _cdrBearerToken    :: !(Maybe Text)
+    , _cdrCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ControllerDebuggeesRegister' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdrXgafv'
+--
+-- * 'cdrUploadProtocol'
+--
+-- * 'cdrPp'
+--
+-- * 'cdrAccessToken'
+--
+-- * 'cdrUploadType'
+--
+-- * 'cdrPayload'
+--
+-- * 'cdrBearerToken'
+--
+-- * 'cdrCallback'
+controllerDebuggeesRegister
+    :: RegisterDebuggeeRequest -- ^ 'cdrPayload'
+    -> ControllerDebuggeesRegister
+controllerDebuggeesRegister pCdrPayload_ =
+    ControllerDebuggeesRegister
+    { _cdrXgafv = Nothing
+    , _cdrUploadProtocol = Nothing
+    , _cdrPp = True
+    , _cdrAccessToken = Nothing
+    , _cdrUploadType = Nothing
+    , _cdrPayload = pCdrPayload_
+    , _cdrBearerToken = Nothing
+    , _cdrCallback = Nothing
+    }
+
+-- | V1 error format.
+cdrXgafv :: Lens' ControllerDebuggeesRegister (Maybe Text)
+cdrXgafv = lens _cdrXgafv (\ s a -> s{_cdrXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+cdrUploadProtocol :: Lens' ControllerDebuggeesRegister (Maybe Text)
+cdrUploadProtocol
+  = lens _cdrUploadProtocol
+      (\ s a -> s{_cdrUploadProtocol = a})
+
+-- | Pretty-print response.
+cdrPp :: Lens' ControllerDebuggeesRegister Bool
+cdrPp = lens _cdrPp (\ s a -> s{_cdrPp = a})
+
+-- | OAuth access token.
+cdrAccessToken :: Lens' ControllerDebuggeesRegister (Maybe Text)
+cdrAccessToken
+  = lens _cdrAccessToken
+      (\ s a -> s{_cdrAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+cdrUploadType :: Lens' ControllerDebuggeesRegister (Maybe Text)
+cdrUploadType
+  = lens _cdrUploadType
+      (\ s a -> s{_cdrUploadType = a})
+
+-- | Multipart request metadata.
+cdrPayload :: Lens' ControllerDebuggeesRegister RegisterDebuggeeRequest
+cdrPayload
+  = lens _cdrPayload (\ s a -> s{_cdrPayload = a})
+
+-- | OAuth bearer token.
+cdrBearerToken :: Lens' ControllerDebuggeesRegister (Maybe Text)
+cdrBearerToken
+  = lens _cdrBearerToken
+      (\ s a -> s{_cdrBearerToken = a})
+
+-- | JSONP
+cdrCallback :: Lens' ControllerDebuggeesRegister (Maybe Text)
+cdrCallback
+  = lens _cdrCallback (\ s a -> s{_cdrCallback = a})
+
+instance GoogleRequest ControllerDebuggeesRegister
+         where
+        type Rs ControllerDebuggeesRegister =
+             RegisterDebuggeeResponse
+        requestClient ControllerDebuggeesRegister{..}
+          = go _cdrXgafv _cdrUploadProtocol (Just _cdrPp)
+              _cdrAccessToken
+              _cdrUploadType
+              _cdrBearerToken
+              _cdrCallback
+              (Just AltJSON)
+              _cdrPayload
+              debuggerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ControllerDebuggeesRegisterResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/Delete.hs b/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/Delete.hs
@@ -0,0 +1,188 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.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 the breakpoint from the debuggee.
+--
+-- /See:/ <https://cloud.google.com/tools/cloud-debugger Google Cloud Debugger API Reference> for @clouddebugger.debugger.debuggees.breakpoints.delete@.
+module Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Delete
+    (
+    -- * REST Resource
+      DebuggerDebuggeesBreakpointsDeleteResource
+
+    -- * Creating a Request
+    , debuggerDebuggeesBreakpointsDelete
+    , DebuggerDebuggeesBreakpointsDelete
+
+    -- * Request Lenses
+    , ddbdXgafv
+    , ddbdUploadProtocol
+    , ddbdPp
+    , ddbdAccessToken
+    , ddbdUploadType
+    , ddbdBreakpointId
+    , ddbdBearerToken
+    , ddbdDebuggeeId
+    , ddbdCallback
+    ) where
+
+import           Network.Google.Debugger.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @clouddebugger.debugger.debuggees.breakpoints.delete@ method which the
+-- 'DebuggerDebuggeesBreakpointsDelete' request conforms to.
+type DebuggerDebuggeesBreakpointsDeleteResource =
+     "v2" :>
+       "debugger" :>
+         "debuggees" :>
+           Capture "debuggeeId" Text :>
+             "breakpoints" :>
+               Capture "breakpointId" Text :>
+                 QueryParam "$.xgafv" Text :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "pp" Bool :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "bearer_token" Text :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes the breakpoint from the debuggee.
+--
+-- /See:/ 'debuggerDebuggeesBreakpointsDelete' smart constructor.
+data DebuggerDebuggeesBreakpointsDelete = DebuggerDebuggeesBreakpointsDelete
+    { _ddbdXgafv          :: !(Maybe Text)
+    , _ddbdUploadProtocol :: !(Maybe Text)
+    , _ddbdPp             :: !Bool
+    , _ddbdAccessToken    :: !(Maybe Text)
+    , _ddbdUploadType     :: !(Maybe Text)
+    , _ddbdBreakpointId   :: !Text
+    , _ddbdBearerToken    :: !(Maybe Text)
+    , _ddbdDebuggeeId     :: !Text
+    , _ddbdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DebuggerDebuggeesBreakpointsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddbdXgafv'
+--
+-- * 'ddbdUploadProtocol'
+--
+-- * 'ddbdPp'
+--
+-- * 'ddbdAccessToken'
+--
+-- * 'ddbdUploadType'
+--
+-- * 'ddbdBreakpointId'
+--
+-- * 'ddbdBearerToken'
+--
+-- * 'ddbdDebuggeeId'
+--
+-- * 'ddbdCallback'
+debuggerDebuggeesBreakpointsDelete
+    :: Text -- ^ 'ddbdBreakpointId'
+    -> Text -- ^ 'ddbdDebuggeeId'
+    -> DebuggerDebuggeesBreakpointsDelete
+debuggerDebuggeesBreakpointsDelete pDdbdBreakpointId_ pDdbdDebuggeeId_ =
+    DebuggerDebuggeesBreakpointsDelete
+    { _ddbdXgafv = Nothing
+    , _ddbdUploadProtocol = Nothing
+    , _ddbdPp = True
+    , _ddbdAccessToken = Nothing
+    , _ddbdUploadType = Nothing
+    , _ddbdBreakpointId = pDdbdBreakpointId_
+    , _ddbdBearerToken = Nothing
+    , _ddbdDebuggeeId = pDdbdDebuggeeId_
+    , _ddbdCallback = Nothing
+    }
+
+-- | V1 error format.
+ddbdXgafv :: Lens' DebuggerDebuggeesBreakpointsDelete (Maybe Text)
+ddbdXgafv
+  = lens _ddbdXgafv (\ s a -> s{_ddbdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ddbdUploadProtocol :: Lens' DebuggerDebuggeesBreakpointsDelete (Maybe Text)
+ddbdUploadProtocol
+  = lens _ddbdUploadProtocol
+      (\ s a -> s{_ddbdUploadProtocol = a})
+
+-- | Pretty-print response.
+ddbdPp :: Lens' DebuggerDebuggeesBreakpointsDelete Bool
+ddbdPp = lens _ddbdPp (\ s a -> s{_ddbdPp = a})
+
+-- | OAuth access token.
+ddbdAccessToken :: Lens' DebuggerDebuggeesBreakpointsDelete (Maybe Text)
+ddbdAccessToken
+  = lens _ddbdAccessToken
+      (\ s a -> s{_ddbdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ddbdUploadType :: Lens' DebuggerDebuggeesBreakpointsDelete (Maybe Text)
+ddbdUploadType
+  = lens _ddbdUploadType
+      (\ s a -> s{_ddbdUploadType = a})
+
+-- | The breakpoint to delete.
+ddbdBreakpointId :: Lens' DebuggerDebuggeesBreakpointsDelete Text
+ddbdBreakpointId
+  = lens _ddbdBreakpointId
+      (\ s a -> s{_ddbdBreakpointId = a})
+
+-- | OAuth bearer token.
+ddbdBearerToken :: Lens' DebuggerDebuggeesBreakpointsDelete (Maybe Text)
+ddbdBearerToken
+  = lens _ddbdBearerToken
+      (\ s a -> s{_ddbdBearerToken = a})
+
+-- | The debuggee id to delete the breakpoint from.
+ddbdDebuggeeId :: Lens' DebuggerDebuggeesBreakpointsDelete Text
+ddbdDebuggeeId
+  = lens _ddbdDebuggeeId
+      (\ s a -> s{_ddbdDebuggeeId = a})
+
+-- | JSONP
+ddbdCallback :: Lens' DebuggerDebuggeesBreakpointsDelete (Maybe Text)
+ddbdCallback
+  = lens _ddbdCallback (\ s a -> s{_ddbdCallback = a})
+
+instance GoogleRequest
+         DebuggerDebuggeesBreakpointsDelete where
+        type Rs DebuggerDebuggeesBreakpointsDelete = Empty
+        requestClient DebuggerDebuggeesBreakpointsDelete{..}
+          = go _ddbdDebuggeeId _ddbdBreakpointId _ddbdXgafv
+              _ddbdUploadProtocol
+              (Just _ddbdPp)
+              _ddbdAccessToken
+              _ddbdUploadType
+              _ddbdBearerToken
+              _ddbdCallback
+              (Just AltJSON)
+              debuggerService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy DebuggerDebuggeesBreakpointsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/Get.hs b/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/Get.hs
@@ -0,0 +1,190 @@
+{-# 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.CloudDebugger.Debugger.Debuggees.Breakpoints.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 breakpoint information.
+--
+-- /See:/ <https://cloud.google.com/tools/cloud-debugger Google Cloud Debugger API Reference> for @clouddebugger.debugger.debuggees.breakpoints.get@.
+module Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Get
+    (
+    -- * REST Resource
+      DebuggerDebuggeesBreakpointsGetResource
+
+    -- * Creating a Request
+    , debuggerDebuggeesBreakpointsGet
+    , DebuggerDebuggeesBreakpointsGet
+
+    -- * Request Lenses
+    , ddbgXgafv
+    , ddbgUploadProtocol
+    , ddbgPp
+    , ddbgAccessToken
+    , ddbgUploadType
+    , ddbgBreakpointId
+    , ddbgBearerToken
+    , ddbgDebuggeeId
+    , ddbgCallback
+    ) where
+
+import           Network.Google.Debugger.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @clouddebugger.debugger.debuggees.breakpoints.get@ method which the
+-- 'DebuggerDebuggeesBreakpointsGet' request conforms to.
+type DebuggerDebuggeesBreakpointsGetResource =
+     "v2" :>
+       "debugger" :>
+         "debuggees" :>
+           Capture "debuggeeId" Text :>
+             "breakpoints" :>
+               Capture "breakpointId" Text :>
+                 QueryParam "$.xgafv" Text :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "pp" Bool :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "bearer_token" Text :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] GetBreakpointResponse
+
+-- | Gets breakpoint information.
+--
+-- /See:/ 'debuggerDebuggeesBreakpointsGet' smart constructor.
+data DebuggerDebuggeesBreakpointsGet = DebuggerDebuggeesBreakpointsGet
+    { _ddbgXgafv          :: !(Maybe Text)
+    , _ddbgUploadProtocol :: !(Maybe Text)
+    , _ddbgPp             :: !Bool
+    , _ddbgAccessToken    :: !(Maybe Text)
+    , _ddbgUploadType     :: !(Maybe Text)
+    , _ddbgBreakpointId   :: !Text
+    , _ddbgBearerToken    :: !(Maybe Text)
+    , _ddbgDebuggeeId     :: !Text
+    , _ddbgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DebuggerDebuggeesBreakpointsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddbgXgafv'
+--
+-- * 'ddbgUploadProtocol'
+--
+-- * 'ddbgPp'
+--
+-- * 'ddbgAccessToken'
+--
+-- * 'ddbgUploadType'
+--
+-- * 'ddbgBreakpointId'
+--
+-- * 'ddbgBearerToken'
+--
+-- * 'ddbgDebuggeeId'
+--
+-- * 'ddbgCallback'
+debuggerDebuggeesBreakpointsGet
+    :: Text -- ^ 'ddbgBreakpointId'
+    -> Text -- ^ 'ddbgDebuggeeId'
+    -> DebuggerDebuggeesBreakpointsGet
+debuggerDebuggeesBreakpointsGet pDdbgBreakpointId_ pDdbgDebuggeeId_ =
+    DebuggerDebuggeesBreakpointsGet
+    { _ddbgXgafv = Nothing
+    , _ddbgUploadProtocol = Nothing
+    , _ddbgPp = True
+    , _ddbgAccessToken = Nothing
+    , _ddbgUploadType = Nothing
+    , _ddbgBreakpointId = pDdbgBreakpointId_
+    , _ddbgBearerToken = Nothing
+    , _ddbgDebuggeeId = pDdbgDebuggeeId_
+    , _ddbgCallback = Nothing
+    }
+
+-- | V1 error format.
+ddbgXgafv :: Lens' DebuggerDebuggeesBreakpointsGet (Maybe Text)
+ddbgXgafv
+  = lens _ddbgXgafv (\ s a -> s{_ddbgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ddbgUploadProtocol :: Lens' DebuggerDebuggeesBreakpointsGet (Maybe Text)
+ddbgUploadProtocol
+  = lens _ddbgUploadProtocol
+      (\ s a -> s{_ddbgUploadProtocol = a})
+
+-- | Pretty-print response.
+ddbgPp :: Lens' DebuggerDebuggeesBreakpointsGet Bool
+ddbgPp = lens _ddbgPp (\ s a -> s{_ddbgPp = a})
+
+-- | OAuth access token.
+ddbgAccessToken :: Lens' DebuggerDebuggeesBreakpointsGet (Maybe Text)
+ddbgAccessToken
+  = lens _ddbgAccessToken
+      (\ s a -> s{_ddbgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ddbgUploadType :: Lens' DebuggerDebuggeesBreakpointsGet (Maybe Text)
+ddbgUploadType
+  = lens _ddbgUploadType
+      (\ s a -> s{_ddbgUploadType = a})
+
+-- | The breakpoint to get.
+ddbgBreakpointId :: Lens' DebuggerDebuggeesBreakpointsGet Text
+ddbgBreakpointId
+  = lens _ddbgBreakpointId
+      (\ s a -> s{_ddbgBreakpointId = a})
+
+-- | OAuth bearer token.
+ddbgBearerToken :: Lens' DebuggerDebuggeesBreakpointsGet (Maybe Text)
+ddbgBearerToken
+  = lens _ddbgBearerToken
+      (\ s a -> s{_ddbgBearerToken = a})
+
+-- | The debuggee id to get the breakpoint from.
+ddbgDebuggeeId :: Lens' DebuggerDebuggeesBreakpointsGet Text
+ddbgDebuggeeId
+  = lens _ddbgDebuggeeId
+      (\ s a -> s{_ddbgDebuggeeId = a})
+
+-- | JSONP
+ddbgCallback :: Lens' DebuggerDebuggeesBreakpointsGet (Maybe Text)
+ddbgCallback
+  = lens _ddbgCallback (\ s a -> s{_ddbgCallback = a})
+
+instance GoogleRequest
+         DebuggerDebuggeesBreakpointsGet where
+        type Rs DebuggerDebuggeesBreakpointsGet =
+             GetBreakpointResponse
+        requestClient DebuggerDebuggeesBreakpointsGet{..}
+          = go _ddbgDebuggeeId _ddbgBreakpointId _ddbgXgafv
+              _ddbgUploadProtocol
+              (Just _ddbgPp)
+              _ddbgAccessToken
+              _ddbgUploadType
+              _ddbgBearerToken
+              _ddbgCallback
+              (Just AltJSON)
+              debuggerService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy DebuggerDebuggeesBreakpointsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/List.hs b/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/List.hs
@@ -0,0 +1,248 @@
+{-# 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.CloudDebugger.Debugger.Debuggees.Breakpoints.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 breakpoints of the debuggee that the user has access to.
+--
+-- /See:/ <https://cloud.google.com/tools/cloud-debugger Google Cloud Debugger API Reference> for @clouddebugger.debugger.debuggees.breakpoints.list@.
+module Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.List
+    (
+    -- * REST Resource
+      DebuggerDebuggeesBreakpointsListResource
+
+    -- * Creating a Request
+    , debuggerDebuggeesBreakpointsList
+    , DebuggerDebuggeesBreakpointsList
+
+    -- * Request Lenses
+    , ddblXgafv
+    , ddblIncludeInactive
+    , ddblUploadProtocol
+    , ddblPp
+    , ddblAccessToken
+    , ddblActionValue
+    , ddblUploadType
+    , ddblStripResults
+    , ddblBearerToken
+    , ddblIncludeAllUsers
+    , ddblWaitToken
+    , ddblDebuggeeId
+    , ddblCallback
+    ) where
+
+import           Network.Google.Debugger.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @clouddebugger.debugger.debuggees.breakpoints.list@ method which the
+-- 'DebuggerDebuggeesBreakpointsList' request conforms to.
+type DebuggerDebuggeesBreakpointsListResource =
+     "v2" :>
+       "debugger" :>
+         "debuggees" :>
+           Capture "debuggeeId" Text :>
+             "breakpoints" :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "includeInactive" Bool :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "pp" Bool :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "action.value" Text :>
+                           QueryParam "uploadType" Text :>
+                             QueryParam "stripResults" Bool :>
+                               QueryParam "bearer_token" Text :>
+                                 QueryParam "includeAllUsers" Bool :>
+                                   QueryParam "waitToken" Text :>
+                                     QueryParam "callback" Text :>
+                                       QueryParam "alt" AltJSON :>
+                                         Get '[JSON] ListBreakpointsResponse
+
+-- | Lists all breakpoints of the debuggee that the user has access to.
+--
+-- /See:/ 'debuggerDebuggeesBreakpointsList' smart constructor.
+data DebuggerDebuggeesBreakpointsList = DebuggerDebuggeesBreakpointsList
+    { _ddblXgafv           :: !(Maybe Text)
+    , _ddblIncludeInactive :: !(Maybe Bool)
+    , _ddblUploadProtocol  :: !(Maybe Text)
+    , _ddblPp              :: !Bool
+    , _ddblAccessToken     :: !(Maybe Text)
+    , _ddblActionValue     :: !(Maybe Text)
+    , _ddblUploadType      :: !(Maybe Text)
+    , _ddblStripResults    :: !(Maybe Bool)
+    , _ddblBearerToken     :: !(Maybe Text)
+    , _ddblIncludeAllUsers :: !(Maybe Bool)
+    , _ddblWaitToken       :: !(Maybe Text)
+    , _ddblDebuggeeId      :: !Text
+    , _ddblCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DebuggerDebuggeesBreakpointsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddblXgafv'
+--
+-- * 'ddblIncludeInactive'
+--
+-- * 'ddblUploadProtocol'
+--
+-- * 'ddblPp'
+--
+-- * 'ddblAccessToken'
+--
+-- * 'ddblActionValue'
+--
+-- * 'ddblUploadType'
+--
+-- * 'ddblStripResults'
+--
+-- * 'ddblBearerToken'
+--
+-- * 'ddblIncludeAllUsers'
+--
+-- * 'ddblWaitToken'
+--
+-- * 'ddblDebuggeeId'
+--
+-- * 'ddblCallback'
+debuggerDebuggeesBreakpointsList
+    :: Text -- ^ 'ddblDebuggeeId'
+    -> DebuggerDebuggeesBreakpointsList
+debuggerDebuggeesBreakpointsList pDdblDebuggeeId_ =
+    DebuggerDebuggeesBreakpointsList
+    { _ddblXgafv = Nothing
+    , _ddblIncludeInactive = Nothing
+    , _ddblUploadProtocol = Nothing
+    , _ddblPp = True
+    , _ddblAccessToken = Nothing
+    , _ddblActionValue = Nothing
+    , _ddblUploadType = Nothing
+    , _ddblStripResults = Nothing
+    , _ddblBearerToken = Nothing
+    , _ddblIncludeAllUsers = Nothing
+    , _ddblWaitToken = Nothing
+    , _ddblDebuggeeId = pDdblDebuggeeId_
+    , _ddblCallback = Nothing
+    }
+
+-- | V1 error format.
+ddblXgafv :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Text)
+ddblXgafv
+  = lens _ddblXgafv (\ s a -> s{_ddblXgafv = a})
+
+-- | When set to true the response includes active and inactive breakpoints,
+-- otherwise only active breakpoints are returned.
+ddblIncludeInactive :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Bool)
+ddblIncludeInactive
+  = lens _ddblIncludeInactive
+      (\ s a -> s{_ddblIncludeInactive = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ddblUploadProtocol :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Text)
+ddblUploadProtocol
+  = lens _ddblUploadProtocol
+      (\ s a -> s{_ddblUploadProtocol = a})
+
+-- | Pretty-print response.
+ddblPp :: Lens' DebuggerDebuggeesBreakpointsList Bool
+ddblPp = lens _ddblPp (\ s a -> s{_ddblPp = a})
+
+-- | OAuth access token.
+ddblAccessToken :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Text)
+ddblAccessToken
+  = lens _ddblAccessToken
+      (\ s a -> s{_ddblAccessToken = a})
+
+-- | Only breakpoints with the specified action will pass the filter.
+ddblActionValue :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Text)
+ddblActionValue
+  = lens _ddblActionValue
+      (\ s a -> s{_ddblActionValue = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ddblUploadType :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Text)
+ddblUploadType
+  = lens _ddblUploadType
+      (\ s a -> s{_ddblUploadType = a})
+
+-- | When set to true the response breakpoints will be stripped of the
+-- results fields: stack_frames, evaluated_expressions and variable_table.
+ddblStripResults :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Bool)
+ddblStripResults
+  = lens _ddblStripResults
+      (\ s a -> s{_ddblStripResults = a})
+
+-- | OAuth bearer token.
+ddblBearerToken :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Text)
+ddblBearerToken
+  = lens _ddblBearerToken
+      (\ s a -> s{_ddblBearerToken = a})
+
+-- | When set to true the response includes the list of breakpoints set by
+-- any user, otherwise only breakpoints set by the caller.
+ddblIncludeAllUsers :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Bool)
+ddblIncludeAllUsers
+  = lens _ddblIncludeAllUsers
+      (\ s a -> s{_ddblIncludeAllUsers = a})
+
+-- | A wait token that, if specified, blocks the call until the breakpoints
+-- list has changed, or a server selected timeout has expired. The value
+-- should be set from the last response to ListBreakpoints. The error code
+-- ABORTED is returned on wait timeout, which should be called again with
+-- the same wait_token.
+ddblWaitToken :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Text)
+ddblWaitToken
+  = lens _ddblWaitToken
+      (\ s a -> s{_ddblWaitToken = a})
+
+-- | The debuggee id to list breakpoint from.
+ddblDebuggeeId :: Lens' DebuggerDebuggeesBreakpointsList Text
+ddblDebuggeeId
+  = lens _ddblDebuggeeId
+      (\ s a -> s{_ddblDebuggeeId = a})
+
+-- | JSONP
+ddblCallback :: Lens' DebuggerDebuggeesBreakpointsList (Maybe Text)
+ddblCallback
+  = lens _ddblCallback (\ s a -> s{_ddblCallback = a})
+
+instance GoogleRequest
+         DebuggerDebuggeesBreakpointsList where
+        type Rs DebuggerDebuggeesBreakpointsList =
+             ListBreakpointsResponse
+        requestClient DebuggerDebuggeesBreakpointsList{..}
+          = go _ddblDebuggeeId _ddblXgafv _ddblIncludeInactive
+              _ddblUploadProtocol
+              (Just _ddblPp)
+              _ddblAccessToken
+              _ddblActionValue
+              _ddblUploadType
+              _ddblStripResults
+              _ddblBearerToken
+              _ddblIncludeAllUsers
+              _ddblWaitToken
+              _ddblCallback
+              (Just AltJSON)
+              debuggerService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy DebuggerDebuggeesBreakpointsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/Set.hs b/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/Set.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/Breakpoints/Set.hs
@@ -0,0 +1,190 @@
+{-# 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.CloudDebugger.Debugger.Debuggees.Breakpoints.Set
+-- 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)
+--
+-- Sets the breakpoint to the debuggee.
+--
+-- /See:/ <https://cloud.google.com/tools/cloud-debugger Google Cloud Debugger API Reference> for @clouddebugger.debugger.debuggees.breakpoints.set@.
+module Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Set
+    (
+    -- * REST Resource
+      DebuggerDebuggeesBreakpointsSetResource
+
+    -- * Creating a Request
+    , debuggerDebuggeesBreakpointsSet
+    , DebuggerDebuggeesBreakpointsSet
+
+    -- * Request Lenses
+    , ddbsXgafv
+    , ddbsUploadProtocol
+    , ddbsPp
+    , ddbsAccessToken
+    , ddbsUploadType
+    , ddbsPayload
+    , ddbsBearerToken
+    , ddbsDebuggeeId
+    , ddbsCallback
+    ) where
+
+import           Network.Google.Debugger.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @clouddebugger.debugger.debuggees.breakpoints.set@ method which the
+-- 'DebuggerDebuggeesBreakpointsSet' request conforms to.
+type DebuggerDebuggeesBreakpointsSetResource =
+     "v2" :>
+       "debugger" :>
+         "debuggees" :>
+           Capture "debuggeeId" Text :>
+             "breakpoints" :>
+               "set" :>
+                 QueryParam "$.xgafv" Text :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "pp" Bool :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "bearer_token" Text :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 ReqBody '[JSON] Breakpoint :>
+                                   Post '[JSON] SetBreakpointResponse
+
+-- | Sets the breakpoint to the debuggee.
+--
+-- /See:/ 'debuggerDebuggeesBreakpointsSet' smart constructor.
+data DebuggerDebuggeesBreakpointsSet = DebuggerDebuggeesBreakpointsSet
+    { _ddbsXgafv          :: !(Maybe Text)
+    , _ddbsUploadProtocol :: !(Maybe Text)
+    , _ddbsPp             :: !Bool
+    , _ddbsAccessToken    :: !(Maybe Text)
+    , _ddbsUploadType     :: !(Maybe Text)
+    , _ddbsPayload        :: !Breakpoint
+    , _ddbsBearerToken    :: !(Maybe Text)
+    , _ddbsDebuggeeId     :: !Text
+    , _ddbsCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DebuggerDebuggeesBreakpointsSet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddbsXgafv'
+--
+-- * 'ddbsUploadProtocol'
+--
+-- * 'ddbsPp'
+--
+-- * 'ddbsAccessToken'
+--
+-- * 'ddbsUploadType'
+--
+-- * 'ddbsPayload'
+--
+-- * 'ddbsBearerToken'
+--
+-- * 'ddbsDebuggeeId'
+--
+-- * 'ddbsCallback'
+debuggerDebuggeesBreakpointsSet
+    :: Breakpoint -- ^ 'ddbsPayload'
+    -> Text -- ^ 'ddbsDebuggeeId'
+    -> DebuggerDebuggeesBreakpointsSet
+debuggerDebuggeesBreakpointsSet pDdbsPayload_ pDdbsDebuggeeId_ =
+    DebuggerDebuggeesBreakpointsSet
+    { _ddbsXgafv = Nothing
+    , _ddbsUploadProtocol = Nothing
+    , _ddbsPp = True
+    , _ddbsAccessToken = Nothing
+    , _ddbsUploadType = Nothing
+    , _ddbsPayload = pDdbsPayload_
+    , _ddbsBearerToken = Nothing
+    , _ddbsDebuggeeId = pDdbsDebuggeeId_
+    , _ddbsCallback = Nothing
+    }
+
+-- | V1 error format.
+ddbsXgafv :: Lens' DebuggerDebuggeesBreakpointsSet (Maybe Text)
+ddbsXgafv
+  = lens _ddbsXgafv (\ s a -> s{_ddbsXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ddbsUploadProtocol :: Lens' DebuggerDebuggeesBreakpointsSet (Maybe Text)
+ddbsUploadProtocol
+  = lens _ddbsUploadProtocol
+      (\ s a -> s{_ddbsUploadProtocol = a})
+
+-- | Pretty-print response.
+ddbsPp :: Lens' DebuggerDebuggeesBreakpointsSet Bool
+ddbsPp = lens _ddbsPp (\ s a -> s{_ddbsPp = a})
+
+-- | OAuth access token.
+ddbsAccessToken :: Lens' DebuggerDebuggeesBreakpointsSet (Maybe Text)
+ddbsAccessToken
+  = lens _ddbsAccessToken
+      (\ s a -> s{_ddbsAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ddbsUploadType :: Lens' DebuggerDebuggeesBreakpointsSet (Maybe Text)
+ddbsUploadType
+  = lens _ddbsUploadType
+      (\ s a -> s{_ddbsUploadType = a})
+
+-- | Multipart request metadata.
+ddbsPayload :: Lens' DebuggerDebuggeesBreakpointsSet Breakpoint
+ddbsPayload
+  = lens _ddbsPayload (\ s a -> s{_ddbsPayload = a})
+
+-- | OAuth bearer token.
+ddbsBearerToken :: Lens' DebuggerDebuggeesBreakpointsSet (Maybe Text)
+ddbsBearerToken
+  = lens _ddbsBearerToken
+      (\ s a -> s{_ddbsBearerToken = a})
+
+-- | The debuggee id to set the breakpoint to.
+ddbsDebuggeeId :: Lens' DebuggerDebuggeesBreakpointsSet Text
+ddbsDebuggeeId
+  = lens _ddbsDebuggeeId
+      (\ s a -> s{_ddbsDebuggeeId = a})
+
+-- | JSONP
+ddbsCallback :: Lens' DebuggerDebuggeesBreakpointsSet (Maybe Text)
+ddbsCallback
+  = lens _ddbsCallback (\ s a -> s{_ddbsCallback = a})
+
+instance GoogleRequest
+         DebuggerDebuggeesBreakpointsSet where
+        type Rs DebuggerDebuggeesBreakpointsSet =
+             SetBreakpointResponse
+        requestClient DebuggerDebuggeesBreakpointsSet{..}
+          = go _ddbsDebuggeeId _ddbsXgafv _ddbsUploadProtocol
+              (Just _ddbsPp)
+              _ddbsAccessToken
+              _ddbsUploadType
+              _ddbsBearerToken
+              _ddbsCallback
+              (Just AltJSON)
+              _ddbsPayload
+              debuggerService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy DebuggerDebuggeesBreakpointsSetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/List.hs b/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/CloudDebugger/Debugger/Debuggees/List.hs
@@ -0,0 +1,184 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.CloudDebugger.Debugger.Debuggees.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 the debuggees that the user can set breakpoints to.
+--
+-- /See:/ <https://cloud.google.com/tools/cloud-debugger Google Cloud Debugger API Reference> for @clouddebugger.debugger.debuggees.list@.
+module Network.Google.Resource.CloudDebugger.Debugger.Debuggees.List
+    (
+    -- * REST Resource
+      DebuggerDebuggeesListResource
+
+    -- * Creating a Request
+    , debuggerDebuggeesList
+    , DebuggerDebuggeesList
+
+    -- * Request Lenses
+    , ddlXgafv
+    , ddlIncludeInactive
+    , ddlUploadProtocol
+    , ddlProject
+    , ddlPp
+    , ddlAccessToken
+    , ddlUploadType
+    , ddlBearerToken
+    , ddlCallback
+    ) where
+
+import           Network.Google.Debugger.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @clouddebugger.debugger.debuggees.list@ method which the
+-- 'DebuggerDebuggeesList' request conforms to.
+type DebuggerDebuggeesListResource =
+     "v2" :>
+       "debugger" :>
+         "debuggees" :>
+           QueryParam "$.xgafv" Text :>
+             QueryParam "includeInactive" Bool :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "project" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ListDebuggeesResponse
+
+-- | Lists all the debuggees that the user can set breakpoints to.
+--
+-- /See:/ 'debuggerDebuggeesList' smart constructor.
+data DebuggerDebuggeesList = DebuggerDebuggeesList
+    { _ddlXgafv           :: !(Maybe Text)
+    , _ddlIncludeInactive :: !(Maybe Bool)
+    , _ddlUploadProtocol  :: !(Maybe Text)
+    , _ddlProject         :: !(Maybe Text)
+    , _ddlPp              :: !Bool
+    , _ddlAccessToken     :: !(Maybe Text)
+    , _ddlUploadType      :: !(Maybe Text)
+    , _ddlBearerToken     :: !(Maybe Text)
+    , _ddlCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DebuggerDebuggeesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddlXgafv'
+--
+-- * 'ddlIncludeInactive'
+--
+-- * 'ddlUploadProtocol'
+--
+-- * 'ddlProject'
+--
+-- * 'ddlPp'
+--
+-- * 'ddlAccessToken'
+--
+-- * 'ddlUploadType'
+--
+-- * 'ddlBearerToken'
+--
+-- * 'ddlCallback'
+debuggerDebuggeesList
+    :: DebuggerDebuggeesList
+debuggerDebuggeesList =
+    DebuggerDebuggeesList
+    { _ddlXgafv = Nothing
+    , _ddlIncludeInactive = Nothing
+    , _ddlUploadProtocol = Nothing
+    , _ddlProject = Nothing
+    , _ddlPp = True
+    , _ddlAccessToken = Nothing
+    , _ddlUploadType = Nothing
+    , _ddlBearerToken = Nothing
+    , _ddlCallback = Nothing
+    }
+
+-- | V1 error format.
+ddlXgafv :: Lens' DebuggerDebuggeesList (Maybe Text)
+ddlXgafv = lens _ddlXgafv (\ s a -> s{_ddlXgafv = a})
+
+-- | When set to true the result includes all debuggees, otherwise only
+-- debugees that are active.
+ddlIncludeInactive :: Lens' DebuggerDebuggeesList (Maybe Bool)
+ddlIncludeInactive
+  = lens _ddlIncludeInactive
+      (\ s a -> s{_ddlIncludeInactive = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ddlUploadProtocol :: Lens' DebuggerDebuggeesList (Maybe Text)
+ddlUploadProtocol
+  = lens _ddlUploadProtocol
+      (\ s a -> s{_ddlUploadProtocol = a})
+
+-- | Set to the project number of the Google Cloud Platform to list the
+-- debuggees that are part of that project.
+ddlProject :: Lens' DebuggerDebuggeesList (Maybe Text)
+ddlProject
+  = lens _ddlProject (\ s a -> s{_ddlProject = a})
+
+-- | Pretty-print response.
+ddlPp :: Lens' DebuggerDebuggeesList Bool
+ddlPp = lens _ddlPp (\ s a -> s{_ddlPp = a})
+
+-- | OAuth access token.
+ddlAccessToken :: Lens' DebuggerDebuggeesList (Maybe Text)
+ddlAccessToken
+  = lens _ddlAccessToken
+      (\ s a -> s{_ddlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ddlUploadType :: Lens' DebuggerDebuggeesList (Maybe Text)
+ddlUploadType
+  = lens _ddlUploadType
+      (\ s a -> s{_ddlUploadType = a})
+
+-- | OAuth bearer token.
+ddlBearerToken :: Lens' DebuggerDebuggeesList (Maybe Text)
+ddlBearerToken
+  = lens _ddlBearerToken
+      (\ s a -> s{_ddlBearerToken = a})
+
+-- | JSONP
+ddlCallback :: Lens' DebuggerDebuggeesList (Maybe Text)
+ddlCallback
+  = lens _ddlCallback (\ s a -> s{_ddlCallback = a})
+
+instance GoogleRequest DebuggerDebuggeesList where
+        type Rs DebuggerDebuggeesList = ListDebuggeesResponse
+        requestClient DebuggerDebuggeesList{..}
+          = go _ddlXgafv _ddlIncludeInactive _ddlUploadProtocol
+              _ddlProject
+              (Just _ddlPp)
+              _ddlAccessToken
+              _ddlUploadType
+              _ddlBearerToken
+              _ddlCallback
+              (Just AltJSON)
+              debuggerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DebuggerDebuggeesListResource)
+                      mempty
diff --git a/gogol-debugger.cabal b/gogol-debugger.cabal
new file mode 100644
--- /dev/null
+++ b/gogol-debugger.cabal
@@ -0,0 +1,54 @@
+name:                  gogol-debugger
+version:               0.0.1
+synopsis:              Google Cloud Debugger 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:
+    Lets you examine the stack and variables of your running application
+    without stopping or slowing it down.
+    .
+    /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.Debugger
+        , Network.Google.Debugger.Types
+        , Network.Google.Resource.CloudDebugger.Controller.Debuggees.Breakpoints.List
+        , Network.Google.Resource.CloudDebugger.Controller.Debuggees.Breakpoints.Update
+        , Network.Google.Resource.CloudDebugger.Controller.Debuggees.Register
+        , Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Delete
+        , Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Get
+        , Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.List
+        , Network.Google.Resource.CloudDebugger.Debugger.Debuggees.Breakpoints.Set
+        , Network.Google.Resource.CloudDebugger.Debugger.Debuggees.List
+
+    other-modules:
+          Network.Google.Debugger.Types.Product
+        , Network.Google.Debugger.Types.Sum
+
+    build-depends:
+          gogol-core == 0.0.1.*
+        , base       >= 4.7 && < 5
