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-adexchange-seller
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.0.1`
+
+
+## Description
+
+A client library for the Google Ad Exchange Seller.
+
+
+## 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-adexchange-seller` 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/AdExchangeSeller.hs b/gen/Network/Google/AdExchangeSeller.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/AdExchangeSeller.hs
@@ -0,0 +1,266 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module      : Network.Google.AdExchangeSeller
+-- 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)
+--
+-- Gives Ad Exchange seller users access to their inventory and the ability
+-- to generate reports
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference>
+module Network.Google.AdExchangeSeller
+    (
+    -- * Service Configuration
+      adExchangeSellerService
+
+    -- * API Declaration
+    , AdExchangeSellerAPI
+
+    -- * Resources
+
+    -- ** adexchangeseller.accounts.adclients.list
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.AdClients.List
+
+    -- ** adexchangeseller.accounts.alerts.list
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.Alerts.List
+
+    -- ** adexchangeseller.accounts.customchannels.get
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.CustomChannels.Get
+
+    -- ** adexchangeseller.accounts.customchannels.list
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.CustomChannels.List
+
+    -- ** adexchangeseller.accounts.get
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.Get
+
+    -- ** adexchangeseller.accounts.list
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.List
+
+    -- ** adexchangeseller.accounts.metadata.dimensions.list
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.Metadata.Dimensions.List
+
+    -- ** adexchangeseller.accounts.metadata.metrics.list
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.Metadata.Metrics.List
+
+    -- ** adexchangeseller.accounts.preferreddeals.get
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.PreferredDeals.Get
+
+    -- ** adexchangeseller.accounts.preferreddeals.list
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.PreferredDeals.List
+
+    -- ** adexchangeseller.accounts.reports.generate
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Generate
+
+    -- ** adexchangeseller.accounts.reports.saved.generate
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Saved.Generate
+
+    -- ** adexchangeseller.accounts.reports.saved.list
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Saved.List
+
+    -- ** adexchangeseller.accounts.urlchannels.list
+    , module Network.Google.Resource.AdExchangeSeller.Accounts.URLChannels.List
+
+    -- * Types
+
+    -- ** AdClients
+    , AdClients
+    , adClients
+    , acEtag
+    , acNextPageToken
+    , acKind
+    , acItems
+
+    -- ** ReportingMetadataEntry
+    , ReportingMetadataEntry
+    , reportingMetadataEntry
+    , rmeKind
+    , rmeRequiredMetrics
+    , rmeCompatibleMetrics
+    , rmeRequiredDimensions
+    , rmeId
+    , rmeCompatibleDimensions
+    , rmeSupportedProducts
+
+    -- ** Accounts
+    , Accounts
+    , accounts
+    , aEtag
+    , aNextPageToken
+    , aKind
+    , aItems
+
+    -- ** Alerts
+    , Alerts
+    , alerts
+    , aleKind
+    , aleItems
+
+    -- ** SavedReports
+    , SavedReports
+    , savedReports
+    , srEtag
+    , srNextPageToken
+    , srKind
+    , srItems
+
+    -- ** SavedReport
+    , SavedReport
+    , savedReport
+    , sKind
+    , sName
+    , sId
+
+    -- ** URLChannels
+    , URLChannels
+    , urlChannels
+    , ucEtag
+    , ucNextPageToken
+    , ucKind
+    , ucItems
+
+    -- ** CustomChannels
+    , CustomChannels
+    , customChannels
+    , ccEtag
+    , ccNextPageToken
+    , ccKind
+    , ccItems
+
+    -- ** Report
+    , Report
+    , report
+    , rKind
+    , rAverages
+    , rWarnings
+    , rRows
+    , rTotals
+    , rHeaders
+    , rTotalMatchedRows
+
+    -- ** Alert
+    , Alert
+    , alert
+    , aaKind
+    , aaSeverity
+    , aaId
+    , aaType
+    , aaMessage
+
+    -- ** Account
+    , Account
+    , account
+    , accKind
+    , accName
+    , accId
+
+    -- ** AdClient
+    , AdClient
+    , adClient
+    , adKind
+    , adArcOptIn
+    , adSupportsReporting
+    , adId
+    , adProductCode
+
+    -- ** ReportHeadersItem
+    , ReportHeadersItem
+    , reportHeadersItem
+    , rhiName
+    , rhiCurrency
+    , rhiType
+
+    -- ** CustomChannelTargetingInfo
+    , CustomChannelTargetingInfo
+    , customChannelTargetingInfo
+    , cctiLocation
+    , cctiSiteLanguage
+    , cctiAdsAppearOn
+    , cctiDescription
+
+    -- ** PreferredDeals
+    , PreferredDeals
+    , preferredDeals
+    , pdKind
+    , pdItems
+
+    -- ** Metadata
+    , Metadata
+    , metadata
+    , mKind
+    , mItems
+
+    -- ** CustomChannel
+    , CustomChannel
+    , customChannel
+    , cTargetingInfo
+    , cKind
+    , cName
+    , cCode
+    , cId
+
+    -- ** URLChannel
+    , URLChannel
+    , urlChannel
+    , urlcKind
+    , urlcId
+    , urlcURLPattern
+
+    -- ** PreferredDeal
+    , PreferredDeal
+    , preferredDeal
+    , pAdvertiserName
+    , pCurrencyCode
+    , pStartTime
+    , pKind
+    , pBuyerNetworkName
+    , pEndTime
+    , pId
+    , pFixedCpm
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+import           Network.Google.Resource.AdExchangeSeller.Accounts.AdClients.List
+import           Network.Google.Resource.AdExchangeSeller.Accounts.Alerts.List
+import           Network.Google.Resource.AdExchangeSeller.Accounts.CustomChannels.Get
+import           Network.Google.Resource.AdExchangeSeller.Accounts.CustomChannels.List
+import           Network.Google.Resource.AdExchangeSeller.Accounts.Get
+import           Network.Google.Resource.AdExchangeSeller.Accounts.List
+import           Network.Google.Resource.AdExchangeSeller.Accounts.Metadata.Dimensions.List
+import           Network.Google.Resource.AdExchangeSeller.Accounts.Metadata.Metrics.List
+import           Network.Google.Resource.AdExchangeSeller.Accounts.PreferredDeals.Get
+import           Network.Google.Resource.AdExchangeSeller.Accounts.PreferredDeals.List
+import           Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Generate
+import           Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Saved.Generate
+import           Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Saved.List
+import           Network.Google.Resource.AdExchangeSeller.Accounts.URLChannels.List
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the Ad Exchange Seller API service.
+type AdExchangeSellerAPI =
+     AccountsAdClientsListResource :<|>
+       AccountsReportsSavedListResource
+       :<|> AccountsReportsSavedGenerateResource
+       :<|> AccountsReportsGenerateResource
+       :<|> AccountsAlertsListResource
+       :<|> AccountsURLChannelsListResource
+       :<|> AccountsCustomChannelsListResource
+       :<|> AccountsCustomChannelsGetResource
+       :<|> AccountsPreferredDealsListResource
+       :<|> AccountsPreferredDealsGetResource
+       :<|> AccountsMetadataMetricsListResource
+       :<|> AccountsMetadataDimensionsListResource
+       :<|> AccountsListResource
+       :<|> AccountsGetResource
diff --git a/gen/Network/Google/AdExchangeSeller/Types.hs b/gen/Network/Google/AdExchangeSeller/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/AdExchangeSeller/Types.hs
@@ -0,0 +1,197 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.AdExchangeSeller.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.AdExchangeSeller.Types
+    (
+    -- * Service Configuration
+      adExchangeSellerService
+
+    -- * OAuth Scopes
+    , adexchangeSellerReadonlyScope
+    , adexchangeSellerScope
+
+    -- * AdClients
+    , AdClients
+    , adClients
+    , acEtag
+    , acNextPageToken
+    , acKind
+    , acItems
+
+    -- * ReportingMetadataEntry
+    , ReportingMetadataEntry
+    , reportingMetadataEntry
+    , rmeKind
+    , rmeRequiredMetrics
+    , rmeCompatibleMetrics
+    , rmeRequiredDimensions
+    , rmeId
+    , rmeCompatibleDimensions
+    , rmeSupportedProducts
+
+    -- * Accounts
+    , Accounts
+    , accounts
+    , aEtag
+    , aNextPageToken
+    , aKind
+    , aItems
+
+    -- * Alerts
+    , Alerts
+    , alerts
+    , aleKind
+    , aleItems
+
+    -- * SavedReports
+    , SavedReports
+    , savedReports
+    , srEtag
+    , srNextPageToken
+    , srKind
+    , srItems
+
+    -- * SavedReport
+    , SavedReport
+    , savedReport
+    , sKind
+    , sName
+    , sId
+
+    -- * URLChannels
+    , URLChannels
+    , urlChannels
+    , ucEtag
+    , ucNextPageToken
+    , ucKind
+    , ucItems
+
+    -- * CustomChannels
+    , CustomChannels
+    , customChannels
+    , ccEtag
+    , ccNextPageToken
+    , ccKind
+    , ccItems
+
+    -- * Report
+    , Report
+    , report
+    , rKind
+    , rAverages
+    , rWarnings
+    , rRows
+    , rTotals
+    , rHeaders
+    , rTotalMatchedRows
+
+    -- * Alert
+    , Alert
+    , alert
+    , aaKind
+    , aaSeverity
+    , aaId
+    , aaType
+    , aaMessage
+
+    -- * Account
+    , Account
+    , account
+    , accKind
+    , accName
+    , accId
+
+    -- * AdClient
+    , AdClient
+    , adClient
+    , adKind
+    , adArcOptIn
+    , adSupportsReporting
+    , adId
+    , adProductCode
+
+    -- * ReportHeadersItem
+    , ReportHeadersItem
+    , reportHeadersItem
+    , rhiName
+    , rhiCurrency
+    , rhiType
+
+    -- * CustomChannelTargetingInfo
+    , CustomChannelTargetingInfo
+    , customChannelTargetingInfo
+    , cctiLocation
+    , cctiSiteLanguage
+    , cctiAdsAppearOn
+    , cctiDescription
+
+    -- * PreferredDeals
+    , PreferredDeals
+    , preferredDeals
+    , pdKind
+    , pdItems
+
+    -- * Metadata
+    , Metadata
+    , metadata
+    , mKind
+    , mItems
+
+    -- * CustomChannel
+    , CustomChannel
+    , customChannel
+    , cTargetingInfo
+    , cKind
+    , cName
+    , cCode
+    , cId
+
+    -- * URLChannel
+    , URLChannel
+    , urlChannel
+    , urlcKind
+    , urlcId
+    , urlcURLPattern
+
+    -- * PreferredDeal
+    , PreferredDeal
+    , preferredDeal
+    , pAdvertiserName
+    , pCurrencyCode
+    , pStartTime
+    , pKind
+    , pBuyerNetworkName
+    , pEndTime
+    , pId
+    , pFixedCpm
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types.Product
+import           Network.Google.AdExchangeSeller.Types.Sum
+import           Network.Google.Prelude
+
+-- | Default request referring to version 'v2.0' of the Ad Exchange Seller API. This contains the host and root path used as a starting point for constructing service requests.
+adExchangeSellerService :: Service
+adExchangeSellerService
+  = defaultService (ServiceId "adexchangeseller:v2.0")
+      "www.googleapis.com"
+
+-- | View your Ad Exchange data
+adexchangeSellerReadonlyScope :: OAuthScope
+adexchangeSellerReadonlyScope = "https://www.googleapis.com/auth/adexchange.seller.readonly";
+
+-- | View and manage your Ad Exchange data
+adexchangeSellerScope :: OAuthScope
+adexchangeSellerScope = "https://www.googleapis.com/auth/adexchange.seller";
diff --git a/gen/Network/Google/AdExchangeSeller/Types/Product.hs b/gen/Network/Google/AdExchangeSeller/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/AdExchangeSeller/Types/Product.hs
@@ -0,0 +1,1414 @@
+{-# 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.AdExchangeSeller.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.AdExchangeSeller.Types.Product where
+
+import           Network.Google.AdExchangeSeller.Types.Sum
+import           Network.Google.Prelude
+
+--
+-- /See:/ 'adClients' smart constructor.
+data AdClients = AdClients
+    { _acEtag          :: !(Maybe Text)
+    , _acNextPageToken :: !(Maybe Text)
+    , _acKind          :: !Text
+    , _acItems         :: !(Maybe [AdClient])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdClients' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acEtag'
+--
+-- * 'acNextPageToken'
+--
+-- * 'acKind'
+--
+-- * 'acItems'
+adClients
+    :: AdClients
+adClients =
+    AdClients
+    { _acEtag = Nothing
+    , _acNextPageToken = Nothing
+    , _acKind = "adexchangeseller#adClients"
+    , _acItems = Nothing
+    }
+
+-- | ETag of this response for caching purposes.
+acEtag :: Lens' AdClients (Maybe Text)
+acEtag = lens _acEtag (\ s a -> s{_acEtag = a})
+
+-- | Continuation token used to page through ad clients. To retrieve the next
+-- page of results, set the next request\'s \"pageToken\" value to this.
+acNextPageToken :: Lens' AdClients (Maybe Text)
+acNextPageToken
+  = lens _acNextPageToken
+      (\ s a -> s{_acNextPageToken = a})
+
+-- | Kind of list this is, in this case adexchangeseller#adClients.
+acKind :: Lens' AdClients Text
+acKind = lens _acKind (\ s a -> s{_acKind = a})
+
+-- | The ad clients returned in this list response.
+acItems :: Lens' AdClients [AdClient]
+acItems
+  = lens _acItems (\ s a -> s{_acItems = a}) . _Default
+      . _Coerce
+
+instance FromJSON AdClients where
+        parseJSON
+          = withObject "AdClients"
+              (\ o ->
+                 AdClients <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "adexchangeseller#adClients")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON AdClients where
+        toJSON AdClients{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _acEtag,
+                  ("nextPageToken" .=) <$> _acNextPageToken,
+                  Just ("kind" .= _acKind), ("items" .=) <$> _acItems])
+
+--
+-- /See:/ 'reportingMetadataEntry' smart constructor.
+data ReportingMetadataEntry = ReportingMetadataEntry
+    { _rmeKind                 :: !Text
+    , _rmeRequiredMetrics      :: !(Maybe [Text])
+    , _rmeCompatibleMetrics    :: !(Maybe [Text])
+    , _rmeRequiredDimensions   :: !(Maybe [Text])
+    , _rmeId                   :: !(Maybe Text)
+    , _rmeCompatibleDimensions :: !(Maybe [Text])
+    , _rmeSupportedProducts    :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportingMetadataEntry' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rmeKind'
+--
+-- * 'rmeRequiredMetrics'
+--
+-- * 'rmeCompatibleMetrics'
+--
+-- * 'rmeRequiredDimensions'
+--
+-- * 'rmeId'
+--
+-- * 'rmeCompatibleDimensions'
+--
+-- * 'rmeSupportedProducts'
+reportingMetadataEntry
+    :: ReportingMetadataEntry
+reportingMetadataEntry =
+    ReportingMetadataEntry
+    { _rmeKind = "adexchangeseller#reportingMetadataEntry"
+    , _rmeRequiredMetrics = Nothing
+    , _rmeCompatibleMetrics = Nothing
+    , _rmeRequiredDimensions = Nothing
+    , _rmeId = Nothing
+    , _rmeCompatibleDimensions = Nothing
+    , _rmeSupportedProducts = Nothing
+    }
+
+-- | Kind of resource this is, in this case
+-- adexchangeseller#reportingMetadataEntry.
+rmeKind :: Lens' ReportingMetadataEntry Text
+rmeKind = lens _rmeKind (\ s a -> s{_rmeKind = a})
+
+-- | The names of the metrics which the dimension or metric this reporting
+-- metadata entry describes requires to also be present in order for the
+-- report to be valid. Omitting these will not cause an error or warning,
+-- but may result in data which cannot be correctly interpreted.
+rmeRequiredMetrics :: Lens' ReportingMetadataEntry [Text]
+rmeRequiredMetrics
+  = lens _rmeRequiredMetrics
+      (\ s a -> s{_rmeRequiredMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | The names of the metrics the dimension or metric this reporting metadata
+-- entry describes is compatible with.
+rmeCompatibleMetrics :: Lens' ReportingMetadataEntry [Text]
+rmeCompatibleMetrics
+  = lens _rmeCompatibleMetrics
+      (\ s a -> s{_rmeCompatibleMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | The names of the dimensions which the dimension or metric this reporting
+-- metadata entry describes requires to also be present in order for the
+-- report to be valid. Omitting these will not cause an error or warning,
+-- but may result in data which cannot be correctly interpreted.
+rmeRequiredDimensions :: Lens' ReportingMetadataEntry [Text]
+rmeRequiredDimensions
+  = lens _rmeRequiredDimensions
+      (\ s a -> s{_rmeRequiredDimensions = a})
+      . _Default
+      . _Coerce
+
+-- | Unique identifier of this reporting metadata entry, corresponding to the
+-- name of the appropriate dimension or metric.
+rmeId :: Lens' ReportingMetadataEntry (Maybe Text)
+rmeId = lens _rmeId (\ s a -> s{_rmeId = a})
+
+-- | For metrics this is a list of dimension IDs which the metric is
+-- compatible with, for dimensions it is a list of compatibility groups the
+-- dimension belongs to.
+rmeCompatibleDimensions :: Lens' ReportingMetadataEntry [Text]
+rmeCompatibleDimensions
+  = lens _rmeCompatibleDimensions
+      (\ s a -> s{_rmeCompatibleDimensions = a})
+      . _Default
+      . _Coerce
+
+-- | The codes of the projects supported by the dimension or metric this
+-- reporting metadata entry describes.
+rmeSupportedProducts :: Lens' ReportingMetadataEntry [Text]
+rmeSupportedProducts
+  = lens _rmeSupportedProducts
+      (\ s a -> s{_rmeSupportedProducts = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportingMetadataEntry where
+        parseJSON
+          = withObject "ReportingMetadataEntry"
+              (\ o ->
+                 ReportingMetadataEntry <$>
+                   (o .:? "kind" .!=
+                      "adexchangeseller#reportingMetadataEntry")
+                     <*> (o .:? "requiredMetrics" .!= mempty)
+                     <*> (o .:? "compatibleMetrics" .!= mempty)
+                     <*> (o .:? "requiredDimensions" .!= mempty)
+                     <*> (o .:? "id")
+                     <*> (o .:? "compatibleDimensions" .!= mempty)
+                     <*> (o .:? "supportedProducts" .!= mempty))
+
+instance ToJSON ReportingMetadataEntry where
+        toJSON ReportingMetadataEntry{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _rmeKind),
+                  ("requiredMetrics" .=) <$> _rmeRequiredMetrics,
+                  ("compatibleMetrics" .=) <$> _rmeCompatibleMetrics,
+                  ("requiredDimensions" .=) <$> _rmeRequiredDimensions,
+                  ("id" .=) <$> _rmeId,
+                  ("compatibleDimensions" .=) <$>
+                    _rmeCompatibleDimensions,
+                  ("supportedProducts" .=) <$> _rmeSupportedProducts])
+
+--
+-- /See:/ 'accounts' smart constructor.
+data Accounts = Accounts
+    { _aEtag          :: !(Maybe Text)
+    , _aNextPageToken :: !(Maybe Text)
+    , _aKind          :: !Text
+    , _aItems         :: !(Maybe [Account])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Accounts' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aEtag'
+--
+-- * 'aNextPageToken'
+--
+-- * 'aKind'
+--
+-- * 'aItems'
+accounts
+    :: Accounts
+accounts =
+    Accounts
+    { _aEtag = Nothing
+    , _aNextPageToken = Nothing
+    , _aKind = "adexchangeseller#accounts"
+    , _aItems = Nothing
+    }
+
+-- | ETag of this response for caching purposes.
+aEtag :: Lens' Accounts (Maybe Text)
+aEtag = lens _aEtag (\ s a -> s{_aEtag = a})
+
+-- | Continuation token used to page through accounts. To retrieve the next
+-- page of results, set the next request\'s \"pageToken\" value to this.
+aNextPageToken :: Lens' Accounts (Maybe Text)
+aNextPageToken
+  = lens _aNextPageToken
+      (\ s a -> s{_aNextPageToken = a})
+
+-- | Kind of list this is, in this case adexchangeseller#accounts.
+aKind :: Lens' Accounts Text
+aKind = lens _aKind (\ s a -> s{_aKind = a})
+
+-- | The accounts returned in this list response.
+aItems :: Lens' Accounts [Account]
+aItems
+  = lens _aItems (\ s a -> s{_aItems = a}) . _Default .
+      _Coerce
+
+instance FromJSON Accounts where
+        parseJSON
+          = withObject "Accounts"
+              (\ o ->
+                 Accounts <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "adexchangeseller#accounts")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON Accounts where
+        toJSON Accounts{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _aEtag,
+                  ("nextPageToken" .=) <$> _aNextPageToken,
+                  Just ("kind" .= _aKind), ("items" .=) <$> _aItems])
+
+--
+-- /See:/ 'alerts' smart constructor.
+data Alerts = Alerts
+    { _aleKind  :: !Text
+    , _aleItems :: !(Maybe [Alert])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Alerts' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aleKind'
+--
+-- * 'aleItems'
+alerts
+    :: Alerts
+alerts =
+    Alerts
+    { _aleKind = "adexchangeseller#alerts"
+    , _aleItems = Nothing
+    }
+
+-- | Kind of list this is, in this case adexchangeseller#alerts.
+aleKind :: Lens' Alerts Text
+aleKind = lens _aleKind (\ s a -> s{_aleKind = a})
+
+-- | The alerts returned in this list response.
+aleItems :: Lens' Alerts [Alert]
+aleItems
+  = lens _aleItems (\ s a -> s{_aleItems = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON Alerts where
+        parseJSON
+          = withObject "Alerts"
+              (\ o ->
+                 Alerts <$>
+                   (o .:? "kind" .!= "adexchangeseller#alerts") <*>
+                     (o .:? "items" .!= mempty))
+
+instance ToJSON Alerts where
+        toJSON Alerts{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _aleKind),
+                  ("items" .=) <$> _aleItems])
+
+--
+-- /See:/ 'savedReports' smart constructor.
+data SavedReports = SavedReports
+    { _srEtag          :: !(Maybe Text)
+    , _srNextPageToken :: !(Maybe Text)
+    , _srKind          :: !Text
+    , _srItems         :: !(Maybe [SavedReport])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SavedReports' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'srEtag'
+--
+-- * 'srNextPageToken'
+--
+-- * 'srKind'
+--
+-- * 'srItems'
+savedReports
+    :: SavedReports
+savedReports =
+    SavedReports
+    { _srEtag = Nothing
+    , _srNextPageToken = Nothing
+    , _srKind = "adexchangeseller#savedReports"
+    , _srItems = Nothing
+    }
+
+-- | ETag of this response for caching purposes.
+srEtag :: Lens' SavedReports (Maybe Text)
+srEtag = lens _srEtag (\ s a -> s{_srEtag = a})
+
+-- | Continuation token used to page through saved reports. To retrieve the
+-- next page of results, set the next request\'s \"pageToken\" value to
+-- this.
+srNextPageToken :: Lens' SavedReports (Maybe Text)
+srNextPageToken
+  = lens _srNextPageToken
+      (\ s a -> s{_srNextPageToken = a})
+
+-- | Kind of list this is, in this case adexchangeseller#savedReports.
+srKind :: Lens' SavedReports Text
+srKind = lens _srKind (\ s a -> s{_srKind = a})
+
+-- | The saved reports returned in this list response.
+srItems :: Lens' SavedReports [SavedReport]
+srItems
+  = lens _srItems (\ s a -> s{_srItems = a}) . _Default
+      . _Coerce
+
+instance FromJSON SavedReports where
+        parseJSON
+          = withObject "SavedReports"
+              (\ o ->
+                 SavedReports <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "adexchangeseller#savedReports")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON SavedReports where
+        toJSON SavedReports{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _srEtag,
+                  ("nextPageToken" .=) <$> _srNextPageToken,
+                  Just ("kind" .= _srKind), ("items" .=) <$> _srItems])
+
+--
+-- /See:/ 'savedReport' smart constructor.
+data SavedReport = SavedReport
+    { _sKind :: !Text
+    , _sName :: !(Maybe Text)
+    , _sId   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SavedReport' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sKind'
+--
+-- * 'sName'
+--
+-- * 'sId'
+savedReport
+    :: SavedReport
+savedReport =
+    SavedReport
+    { _sKind = "adexchangeseller#savedReport"
+    , _sName = Nothing
+    , _sId = Nothing
+    }
+
+-- | Kind of resource this is, in this case adexchangeseller#savedReport.
+sKind :: Lens' SavedReport Text
+sKind = lens _sKind (\ s a -> s{_sKind = a})
+
+-- | This saved report\'s name.
+sName :: Lens' SavedReport (Maybe Text)
+sName = lens _sName (\ s a -> s{_sName = a})
+
+-- | Unique identifier of this saved report.
+sId :: Lens' SavedReport (Maybe Text)
+sId = lens _sId (\ s a -> s{_sId = a})
+
+instance FromJSON SavedReport where
+        parseJSON
+          = withObject "SavedReport"
+              (\ o ->
+                 SavedReport <$>
+                   (o .:? "kind" .!= "adexchangeseller#savedReport") <*>
+                     (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON SavedReport where
+        toJSON SavedReport{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _sKind), ("name" .=) <$> _sName,
+                  ("id" .=) <$> _sId])
+
+--
+-- /See:/ 'urlChannels' smart constructor.
+data URLChannels = URLChannels
+    { _ucEtag          :: !(Maybe Text)
+    , _ucNextPageToken :: !(Maybe Text)
+    , _ucKind          :: !Text
+    , _ucItems         :: !(Maybe [URLChannel])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'URLChannels' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ucEtag'
+--
+-- * 'ucNextPageToken'
+--
+-- * 'ucKind'
+--
+-- * 'ucItems'
+urlChannels
+    :: URLChannels
+urlChannels =
+    URLChannels
+    { _ucEtag = Nothing
+    , _ucNextPageToken = Nothing
+    , _ucKind = "adexchangeseller#urlChannels"
+    , _ucItems = Nothing
+    }
+
+-- | ETag of this response for caching purposes.
+ucEtag :: Lens' URLChannels (Maybe Text)
+ucEtag = lens _ucEtag (\ s a -> s{_ucEtag = a})
+
+-- | Continuation token used to page through URL channels. To retrieve the
+-- next page of results, set the next request\'s \"pageToken\" value to
+-- this.
+ucNextPageToken :: Lens' URLChannels (Maybe Text)
+ucNextPageToken
+  = lens _ucNextPageToken
+      (\ s a -> s{_ucNextPageToken = a})
+
+-- | Kind of list this is, in this case adexchangeseller#urlChannels.
+ucKind :: Lens' URLChannels Text
+ucKind = lens _ucKind (\ s a -> s{_ucKind = a})
+
+-- | The URL channels returned in this list response.
+ucItems :: Lens' URLChannels [URLChannel]
+ucItems
+  = lens _ucItems (\ s a -> s{_ucItems = a}) . _Default
+      . _Coerce
+
+instance FromJSON URLChannels where
+        parseJSON
+          = withObject "URLChannels"
+              (\ o ->
+                 URLChannels <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "adexchangeseller#urlChannels")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON URLChannels where
+        toJSON URLChannels{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _ucEtag,
+                  ("nextPageToken" .=) <$> _ucNextPageToken,
+                  Just ("kind" .= _ucKind), ("items" .=) <$> _ucItems])
+
+--
+-- /See:/ 'customChannels' smart constructor.
+data CustomChannels = CustomChannels
+    { _ccEtag          :: !(Maybe Text)
+    , _ccNextPageToken :: !(Maybe Text)
+    , _ccKind          :: !Text
+    , _ccItems         :: !(Maybe [CustomChannel])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CustomChannels' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccEtag'
+--
+-- * 'ccNextPageToken'
+--
+-- * 'ccKind'
+--
+-- * 'ccItems'
+customChannels
+    :: CustomChannels
+customChannels =
+    CustomChannels
+    { _ccEtag = Nothing
+    , _ccNextPageToken = Nothing
+    , _ccKind = "adexchangeseller#customChannels"
+    , _ccItems = Nothing
+    }
+
+-- | ETag of this response for caching purposes.
+ccEtag :: Lens' CustomChannels (Maybe Text)
+ccEtag = lens _ccEtag (\ s a -> s{_ccEtag = a})
+
+-- | Continuation token used to page through custom channels. To retrieve the
+-- next page of results, set the next request\'s \"pageToken\" value to
+-- this.
+ccNextPageToken :: Lens' CustomChannels (Maybe Text)
+ccNextPageToken
+  = lens _ccNextPageToken
+      (\ s a -> s{_ccNextPageToken = a})
+
+-- | Kind of list this is, in this case adexchangeseller#customChannels.
+ccKind :: Lens' CustomChannels Text
+ccKind = lens _ccKind (\ s a -> s{_ccKind = a})
+
+-- | The custom channels returned in this list response.
+ccItems :: Lens' CustomChannels [CustomChannel]
+ccItems
+  = lens _ccItems (\ s a -> s{_ccItems = a}) . _Default
+      . _Coerce
+
+instance FromJSON CustomChannels where
+        parseJSON
+          = withObject "CustomChannels"
+              (\ o ->
+                 CustomChannels <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "adexchangeseller#customChannels")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON CustomChannels where
+        toJSON CustomChannels{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _ccEtag,
+                  ("nextPageToken" .=) <$> _ccNextPageToken,
+                  Just ("kind" .= _ccKind), ("items" .=) <$> _ccItems])
+
+--
+-- /See:/ 'report' smart constructor.
+data Report = Report
+    { _rKind             :: !Text
+    , _rAverages         :: !(Maybe [Text])
+    , _rWarnings         :: !(Maybe [Text])
+    , _rRows             :: !(Maybe [[Text]])
+    , _rTotals           :: !(Maybe [Text])
+    , _rHeaders          :: !(Maybe [ReportHeadersItem])
+    , _rTotalMatchedRows :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Report' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rKind'
+--
+-- * 'rAverages'
+--
+-- * 'rWarnings'
+--
+-- * 'rRows'
+--
+-- * 'rTotals'
+--
+-- * 'rHeaders'
+--
+-- * 'rTotalMatchedRows'
+report
+    :: Report
+report =
+    Report
+    { _rKind = "adexchangeseller#report"
+    , _rAverages = Nothing
+    , _rWarnings = Nothing
+    , _rRows = Nothing
+    , _rTotals = Nothing
+    , _rHeaders = Nothing
+    , _rTotalMatchedRows = Nothing
+    }
+
+-- | Kind this is, in this case adexchangeseller#report.
+rKind :: Lens' Report Text
+rKind = lens _rKind (\ s a -> s{_rKind = a})
+
+-- | The averages of the report. This is the same length as any other row in
+-- the report; cells corresponding to dimension columns are empty.
+rAverages :: Lens' Report [Text]
+rAverages
+  = lens _rAverages (\ s a -> s{_rAverages = a}) .
+      _Default
+      . _Coerce
+
+-- | Any warnings associated with generation of the report.
+rWarnings :: Lens' Report [Text]
+rWarnings
+  = lens _rWarnings (\ s a -> s{_rWarnings = a}) .
+      _Default
+      . _Coerce
+
+-- | The output rows of the report. Each row is a list of cells; one for each
+-- dimension in the request, followed by one for each metric in the
+-- request. The dimension cells contain strings, and the metric cells
+-- contain numbers.
+rRows :: Lens' Report [[Text]]
+rRows
+  = lens _rRows (\ s a -> s{_rRows = a}) . _Default .
+      _Coerce
+
+-- | The totals of the report. This is the same length as any other row in
+-- the report; cells corresponding to dimension columns are empty.
+rTotals :: Lens' Report [Text]
+rTotals
+  = lens _rTotals (\ s a -> s{_rTotals = a}) . _Default
+      . _Coerce
+
+-- | The header information of the columns requested in the report. This is a
+-- list of headers; one for each dimension in the request, followed by one
+-- for each metric in the request.
+rHeaders :: Lens' Report [ReportHeadersItem]
+rHeaders
+  = lens _rHeaders (\ s a -> s{_rHeaders = a}) .
+      _Default
+      . _Coerce
+
+-- | The total number of rows matched by the report request. Fewer rows may
+-- be returned in the response due to being limited by the row count
+-- requested or the report row limit.
+rTotalMatchedRows :: Lens' Report (Maybe Int64)
+rTotalMatchedRows
+  = lens _rTotalMatchedRows
+      (\ s a -> s{_rTotalMatchedRows = a})
+      . mapping _Coerce
+
+instance FromJSON Report where
+        parseJSON
+          = withObject "Report"
+              (\ o ->
+                 Report <$>
+                   (o .:? "kind" .!= "adexchangeseller#report") <*>
+                     (o .:? "averages" .!= mempty)
+                     <*> (o .:? "warnings" .!= mempty)
+                     <*> (o .:? "rows" .!= mempty)
+                     <*> (o .:? "totals" .!= mempty)
+                     <*> (o .:? "headers" .!= mempty)
+                     <*> (o .:? "totalMatchedRows"))
+
+instance ToJSON Report where
+        toJSON Report{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _rKind),
+                  ("averages" .=) <$> _rAverages,
+                  ("warnings" .=) <$> _rWarnings,
+                  ("rows" .=) <$> _rRows, ("totals" .=) <$> _rTotals,
+                  ("headers" .=) <$> _rHeaders,
+                  ("totalMatchedRows" .=) <$> _rTotalMatchedRows])
+
+--
+-- /See:/ 'alert' smart constructor.
+data Alert = Alert
+    { _aaKind     :: !Text
+    , _aaSeverity :: !(Maybe Text)
+    , _aaId       :: !(Maybe Text)
+    , _aaType     :: !(Maybe Text)
+    , _aaMessage  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Alert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aaKind'
+--
+-- * 'aaSeverity'
+--
+-- * 'aaId'
+--
+-- * 'aaType'
+--
+-- * 'aaMessage'
+alert
+    :: Alert
+alert =
+    Alert
+    { _aaKind = "adexchangeseller#alert"
+    , _aaSeverity = Nothing
+    , _aaId = Nothing
+    , _aaType = Nothing
+    , _aaMessage = Nothing
+    }
+
+-- | Kind of resource this is, in this case adexchangeseller#alert.
+aaKind :: Lens' Alert Text
+aaKind = lens _aaKind (\ s a -> s{_aaKind = a})
+
+-- | Severity of this alert. Possible values: INFO, WARNING, SEVERE.
+aaSeverity :: Lens' Alert (Maybe Text)
+aaSeverity
+  = lens _aaSeverity (\ s a -> s{_aaSeverity = a})
+
+-- | Unique identifier of this alert. This should be considered an opaque
+-- identifier; it is not safe to rely on it being in any particular format.
+aaId :: Lens' Alert (Maybe Text)
+aaId = lens _aaId (\ s a -> s{_aaId = a})
+
+-- | Type of this alert. Possible values: SELF_HOLD, MIGRATED_TO_BILLING3,
+-- ADDRESS_PIN_VERIFICATION, PHONE_PIN_VERIFICATION, CORPORATE_ENTITY,
+-- GRAYLISTED_PUBLISHER, API_HOLD.
+aaType :: Lens' Alert (Maybe Text)
+aaType = lens _aaType (\ s a -> s{_aaType = a})
+
+-- | The localized alert message.
+aaMessage :: Lens' Alert (Maybe Text)
+aaMessage
+  = lens _aaMessage (\ s a -> s{_aaMessage = a})
+
+instance FromJSON Alert where
+        parseJSON
+          = withObject "Alert"
+              (\ o ->
+                 Alert <$>
+                   (o .:? "kind" .!= "adexchangeseller#alert") <*>
+                     (o .:? "severity")
+                     <*> (o .:? "id")
+                     <*> (o .:? "type")
+                     <*> (o .:? "message"))
+
+instance ToJSON Alert where
+        toJSON Alert{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _aaKind),
+                  ("severity" .=) <$> _aaSeverity, ("id" .=) <$> _aaId,
+                  ("type" .=) <$> _aaType,
+                  ("message" .=) <$> _aaMessage])
+
+--
+-- /See:/ 'account' smart constructor.
+data Account = Account
+    { _accKind :: !Text
+    , _accName :: !(Maybe Text)
+    , _accId   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Account' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'accKind'
+--
+-- * 'accName'
+--
+-- * 'accId'
+account
+    :: Account
+account =
+    Account
+    { _accKind = "adexchangeseller#account"
+    , _accName = Nothing
+    , _accId = Nothing
+    }
+
+-- | Kind of resource this is, in this case adexchangeseller#account.
+accKind :: Lens' Account Text
+accKind = lens _accKind (\ s a -> s{_accKind = a})
+
+-- | Name of this account.
+accName :: Lens' Account (Maybe Text)
+accName = lens _accName (\ s a -> s{_accName = a})
+
+-- | Unique identifier of this account.
+accId :: Lens' Account (Maybe Text)
+accId = lens _accId (\ s a -> s{_accId = a})
+
+instance FromJSON Account where
+        parseJSON
+          = withObject "Account"
+              (\ o ->
+                 Account <$>
+                   (o .:? "kind" .!= "adexchangeseller#account") <*>
+                     (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON Account where
+        toJSON Account{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _accKind), ("name" .=) <$> _accName,
+                  ("id" .=) <$> _accId])
+
+--
+-- /See:/ 'adClient' smart constructor.
+data AdClient = AdClient
+    { _adKind              :: !Text
+    , _adArcOptIn          :: !(Maybe Bool)
+    , _adSupportsReporting :: !(Maybe Bool)
+    , _adId                :: !(Maybe Text)
+    , _adProductCode       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdClient' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'adKind'
+--
+-- * 'adArcOptIn'
+--
+-- * 'adSupportsReporting'
+--
+-- * 'adId'
+--
+-- * 'adProductCode'
+adClient
+    :: AdClient
+adClient =
+    AdClient
+    { _adKind = "adexchangeseller#adClient"
+    , _adArcOptIn = Nothing
+    , _adSupportsReporting = Nothing
+    , _adId = Nothing
+    , _adProductCode = Nothing
+    }
+
+-- | Kind of resource this is, in this case adexchangeseller#adClient.
+adKind :: Lens' AdClient Text
+adKind = lens _adKind (\ s a -> s{_adKind = a})
+
+-- | Whether this ad client is opted in to ARC.
+adArcOptIn :: Lens' AdClient (Maybe Bool)
+adArcOptIn
+  = lens _adArcOptIn (\ s a -> s{_adArcOptIn = a})
+
+-- | Whether this ad client supports being reported on.
+adSupportsReporting :: Lens' AdClient (Maybe Bool)
+adSupportsReporting
+  = lens _adSupportsReporting
+      (\ s a -> s{_adSupportsReporting = a})
+
+-- | Unique identifier of this ad client.
+adId :: Lens' AdClient (Maybe Text)
+adId = lens _adId (\ s a -> s{_adId = a})
+
+-- | This ad client\'s product code, which corresponds to the PRODUCT_CODE
+-- report dimension.
+adProductCode :: Lens' AdClient (Maybe Text)
+adProductCode
+  = lens _adProductCode
+      (\ s a -> s{_adProductCode = a})
+
+instance FromJSON AdClient where
+        parseJSON
+          = withObject "AdClient"
+              (\ o ->
+                 AdClient <$>
+                   (o .:? "kind" .!= "adexchangeseller#adClient") <*>
+                     (o .:? "arcOptIn")
+                     <*> (o .:? "supportsReporting")
+                     <*> (o .:? "id")
+                     <*> (o .:? "productCode"))
+
+instance ToJSON AdClient where
+        toJSON AdClient{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _adKind),
+                  ("arcOptIn" .=) <$> _adArcOptIn,
+                  ("supportsReporting" .=) <$> _adSupportsReporting,
+                  ("id" .=) <$> _adId,
+                  ("productCode" .=) <$> _adProductCode])
+
+--
+-- /See:/ 'reportHeadersItem' smart constructor.
+data ReportHeadersItem = ReportHeadersItem
+    { _rhiName     :: !(Maybe Text)
+    , _rhiCurrency :: !(Maybe Text)
+    , _rhiType     :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportHeadersItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rhiName'
+--
+-- * 'rhiCurrency'
+--
+-- * 'rhiType'
+reportHeadersItem
+    :: ReportHeadersItem
+reportHeadersItem =
+    ReportHeadersItem
+    { _rhiName = Nothing
+    , _rhiCurrency = Nothing
+    , _rhiType = Nothing
+    }
+
+-- | The name of the header.
+rhiName :: Lens' ReportHeadersItem (Maybe Text)
+rhiName = lens _rhiName (\ s a -> s{_rhiName = a})
+
+-- | The currency of this column. Only present if the header type is
+-- METRIC_CURRENCY.
+rhiCurrency :: Lens' ReportHeadersItem (Maybe Text)
+rhiCurrency
+  = lens _rhiCurrency (\ s a -> s{_rhiCurrency = a})
+
+-- | The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or
+-- METRIC_CURRENCY.
+rhiType :: Lens' ReportHeadersItem (Maybe Text)
+rhiType = lens _rhiType (\ s a -> s{_rhiType = a})
+
+instance FromJSON ReportHeadersItem where
+        parseJSON
+          = withObject "ReportHeadersItem"
+              (\ o ->
+                 ReportHeadersItem <$>
+                   (o .:? "name") <*> (o .:? "currency") <*>
+                     (o .:? "type"))
+
+instance ToJSON ReportHeadersItem where
+        toJSON ReportHeadersItem{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _rhiName,
+                  ("currency" .=) <$> _rhiCurrency,
+                  ("type" .=) <$> _rhiType])
+
+-- | The targeting information of this custom channel, if activated.
+--
+-- /See:/ 'customChannelTargetingInfo' smart constructor.
+data CustomChannelTargetingInfo = CustomChannelTargetingInfo
+    { _cctiLocation     :: !(Maybe Text)
+    , _cctiSiteLanguage :: !(Maybe Text)
+    , _cctiAdsAppearOn  :: !(Maybe Text)
+    , _cctiDescription  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CustomChannelTargetingInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cctiLocation'
+--
+-- * 'cctiSiteLanguage'
+--
+-- * 'cctiAdsAppearOn'
+--
+-- * 'cctiDescription'
+customChannelTargetingInfo
+    :: CustomChannelTargetingInfo
+customChannelTargetingInfo =
+    CustomChannelTargetingInfo
+    { _cctiLocation = Nothing
+    , _cctiSiteLanguage = Nothing
+    , _cctiAdsAppearOn = Nothing
+    , _cctiDescription = Nothing
+    }
+
+-- | The locations in which ads appear. (Only valid for content and mobile
+-- content ads). Acceptable values for content ads are: TOP_LEFT,
+-- TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT,
+-- BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable
+-- values for mobile content ads are: TOP, MIDDLE, BOTTOM,
+-- MULTIPLE_LOCATIONS.
+cctiLocation :: Lens' CustomChannelTargetingInfo (Maybe Text)
+cctiLocation
+  = lens _cctiLocation (\ s a -> s{_cctiLocation = a})
+
+-- | The language of the sites ads will be displayed on.
+cctiSiteLanguage :: Lens' CustomChannelTargetingInfo (Maybe Text)
+cctiSiteLanguage
+  = lens _cctiSiteLanguage
+      (\ s a -> s{_cctiSiteLanguage = a})
+
+-- | The name used to describe this channel externally.
+cctiAdsAppearOn :: Lens' CustomChannelTargetingInfo (Maybe Text)
+cctiAdsAppearOn
+  = lens _cctiAdsAppearOn
+      (\ s a -> s{_cctiAdsAppearOn = a})
+
+-- | The external description of the channel.
+cctiDescription :: Lens' CustomChannelTargetingInfo (Maybe Text)
+cctiDescription
+  = lens _cctiDescription
+      (\ s a -> s{_cctiDescription = a})
+
+instance FromJSON CustomChannelTargetingInfo where
+        parseJSON
+          = withObject "CustomChannelTargetingInfo"
+              (\ o ->
+                 CustomChannelTargetingInfo <$>
+                   (o .:? "location") <*> (o .:? "siteLanguage") <*>
+                     (o .:? "adsAppearOn")
+                     <*> (o .:? "description"))
+
+instance ToJSON CustomChannelTargetingInfo where
+        toJSON CustomChannelTargetingInfo{..}
+          = object
+              (catMaybes
+                 [("location" .=) <$> _cctiLocation,
+                  ("siteLanguage" .=) <$> _cctiSiteLanguage,
+                  ("adsAppearOn" .=) <$> _cctiAdsAppearOn,
+                  ("description" .=) <$> _cctiDescription])
+
+--
+-- /See:/ 'preferredDeals' smart constructor.
+data PreferredDeals = PreferredDeals
+    { _pdKind  :: !Text
+    , _pdItems :: !(Maybe [PreferredDeal])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PreferredDeals' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pdKind'
+--
+-- * 'pdItems'
+preferredDeals
+    :: PreferredDeals
+preferredDeals =
+    PreferredDeals
+    { _pdKind = "adexchangeseller#preferredDeals"
+    , _pdItems = Nothing
+    }
+
+-- | Kind of list this is, in this case adexchangeseller#preferredDeals.
+pdKind :: Lens' PreferredDeals Text
+pdKind = lens _pdKind (\ s a -> s{_pdKind = a})
+
+-- | The preferred deals returned in this list response.
+pdItems :: Lens' PreferredDeals [PreferredDeal]
+pdItems
+  = lens _pdItems (\ s a -> s{_pdItems = a}) . _Default
+      . _Coerce
+
+instance FromJSON PreferredDeals where
+        parseJSON
+          = withObject "PreferredDeals"
+              (\ o ->
+                 PreferredDeals <$>
+                   (o .:? "kind" .!= "adexchangeseller#preferredDeals")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON PreferredDeals where
+        toJSON PreferredDeals{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _pdKind),
+                  ("items" .=) <$> _pdItems])
+
+--
+-- /See:/ 'metadata' smart constructor.
+data Metadata = Metadata
+    { _mKind  :: !Text
+    , _mItems :: !(Maybe [ReportingMetadataEntry])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Metadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mKind'
+--
+-- * 'mItems'
+metadata
+    :: Metadata
+metadata =
+    Metadata
+    { _mKind = "adexchangeseller#metadata"
+    , _mItems = Nothing
+    }
+
+-- | Kind of list this is, in this case adexchangeseller#metadata.
+mKind :: Lens' Metadata Text
+mKind = lens _mKind (\ s a -> s{_mKind = a})
+
+mItems :: Lens' Metadata [ReportingMetadataEntry]
+mItems
+  = lens _mItems (\ s a -> s{_mItems = a}) . _Default .
+      _Coerce
+
+instance FromJSON Metadata where
+        parseJSON
+          = withObject "Metadata"
+              (\ o ->
+                 Metadata <$>
+                   (o .:? "kind" .!= "adexchangeseller#metadata") <*>
+                     (o .:? "items" .!= mempty))
+
+instance ToJSON Metadata where
+        toJSON Metadata{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _mKind), ("items" .=) <$> _mItems])
+
+--
+-- /See:/ 'customChannel' smart constructor.
+data CustomChannel = CustomChannel
+    { _cTargetingInfo :: !(Maybe CustomChannelTargetingInfo)
+    , _cKind          :: !Text
+    , _cName          :: !(Maybe Text)
+    , _cCode          :: !(Maybe Text)
+    , _cId            :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CustomChannel' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cTargetingInfo'
+--
+-- * 'cKind'
+--
+-- * 'cName'
+--
+-- * 'cCode'
+--
+-- * 'cId'
+customChannel
+    :: CustomChannel
+customChannel =
+    CustomChannel
+    { _cTargetingInfo = Nothing
+    , _cKind = "adexchangeseller#customChannel"
+    , _cName = Nothing
+    , _cCode = Nothing
+    , _cId = Nothing
+    }
+
+-- | The targeting information of this custom channel, if activated.
+cTargetingInfo :: Lens' CustomChannel (Maybe CustomChannelTargetingInfo)
+cTargetingInfo
+  = lens _cTargetingInfo
+      (\ s a -> s{_cTargetingInfo = a})
+
+-- | Kind of resource this is, in this case adexchangeseller#customChannel.
+cKind :: Lens' CustomChannel Text
+cKind = lens _cKind (\ s a -> s{_cKind = a})
+
+-- | Name of this custom channel.
+cName :: Lens' CustomChannel (Maybe Text)
+cName = lens _cName (\ s a -> s{_cName = a})
+
+-- | Code of this custom channel, not necessarily unique across ad clients.
+cCode :: Lens' CustomChannel (Maybe Text)
+cCode = lens _cCode (\ s a -> s{_cCode = a})
+
+-- | Unique identifier of this custom channel. This should be considered an
+-- opaque identifier; it is not safe to rely on it being in any particular
+-- format.
+cId :: Lens' CustomChannel (Maybe Text)
+cId = lens _cId (\ s a -> s{_cId = a})
+
+instance FromJSON CustomChannel where
+        parseJSON
+          = withObject "CustomChannel"
+              (\ o ->
+                 CustomChannel <$>
+                   (o .:? "targetingInfo") <*>
+                     (o .:? "kind" .!= "adexchangeseller#customChannel")
+                     <*> (o .:? "name")
+                     <*> (o .:? "code")
+                     <*> (o .:? "id"))
+
+instance ToJSON CustomChannel where
+        toJSON CustomChannel{..}
+          = object
+              (catMaybes
+                 [("targetingInfo" .=) <$> _cTargetingInfo,
+                  Just ("kind" .= _cKind), ("name" .=) <$> _cName,
+                  ("code" .=) <$> _cCode, ("id" .=) <$> _cId])
+
+--
+-- /See:/ 'urlChannel' smart constructor.
+data URLChannel = URLChannel
+    { _urlcKind       :: !Text
+    , _urlcId         :: !(Maybe Text)
+    , _urlcURLPattern :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'URLChannel' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urlcKind'
+--
+-- * 'urlcId'
+--
+-- * 'urlcURLPattern'
+urlChannel
+    :: URLChannel
+urlChannel =
+    URLChannel
+    { _urlcKind = "adexchangeseller#urlChannel"
+    , _urlcId = Nothing
+    , _urlcURLPattern = Nothing
+    }
+
+-- | Kind of resource this is, in this case adexchangeseller#urlChannel.
+urlcKind :: Lens' URLChannel Text
+urlcKind = lens _urlcKind (\ s a -> s{_urlcKind = a})
+
+-- | Unique identifier of this URL channel. This should be considered an
+-- opaque identifier; it is not safe to rely on it being in any particular
+-- format.
+urlcId :: Lens' URLChannel (Maybe Text)
+urlcId = lens _urlcId (\ s a -> s{_urlcId = a})
+
+-- | URL Pattern of this URL channel. Does not include \"http:\/\/\" or
+-- \"https:\/\/\". Example: www.example.com\/home
+urlcURLPattern :: Lens' URLChannel (Maybe Text)
+urlcURLPattern
+  = lens _urlcURLPattern
+      (\ s a -> s{_urlcURLPattern = a})
+
+instance FromJSON URLChannel where
+        parseJSON
+          = withObject "URLChannel"
+              (\ o ->
+                 URLChannel <$>
+                   (o .:? "kind" .!= "adexchangeseller#urlChannel") <*>
+                     (o .:? "id")
+                     <*> (o .:? "urlPattern"))
+
+instance ToJSON URLChannel where
+        toJSON URLChannel{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _urlcKind), ("id" .=) <$> _urlcId,
+                  ("urlPattern" .=) <$> _urlcURLPattern])
+
+--
+-- /See:/ 'preferredDeal' smart constructor.
+data PreferredDeal = PreferredDeal
+    { _pAdvertiserName   :: !(Maybe Text)
+    , _pCurrencyCode     :: !(Maybe Text)
+    , _pStartTime        :: !(Maybe (Textual Word64))
+    , _pKind             :: !Text
+    , _pBuyerNetworkName :: !(Maybe Text)
+    , _pEndTime          :: !(Maybe (Textual Word64))
+    , _pId               :: !(Maybe (Textual Int64))
+    , _pFixedCpm         :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PreferredDeal' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pAdvertiserName'
+--
+-- * 'pCurrencyCode'
+--
+-- * 'pStartTime'
+--
+-- * 'pKind'
+--
+-- * 'pBuyerNetworkName'
+--
+-- * 'pEndTime'
+--
+-- * 'pId'
+--
+-- * 'pFixedCpm'
+preferredDeal
+    :: PreferredDeal
+preferredDeal =
+    PreferredDeal
+    { _pAdvertiserName = Nothing
+    , _pCurrencyCode = Nothing
+    , _pStartTime = Nothing
+    , _pKind = "adexchangeseller#preferredDeal"
+    , _pBuyerNetworkName = Nothing
+    , _pEndTime = Nothing
+    , _pId = Nothing
+    , _pFixedCpm = Nothing
+    }
+
+-- | The name of the advertiser this deal is for.
+pAdvertiserName :: Lens' PreferredDeal (Maybe Text)
+pAdvertiserName
+  = lens _pAdvertiserName
+      (\ s a -> s{_pAdvertiserName = a})
+
+-- | The currency code that applies to the fixed_cpm value. If not set then
+-- assumed to be USD.
+pCurrencyCode :: Lens' PreferredDeal (Maybe Text)
+pCurrencyCode
+  = lens _pCurrencyCode
+      (\ s a -> s{_pCurrencyCode = a})
+
+-- | Time when this deal becomes active in seconds since the epoch (GMT). If
+-- not set then this deal is active immediately upon creation.
+pStartTime :: Lens' PreferredDeal (Maybe Word64)
+pStartTime
+  = lens _pStartTime (\ s a -> s{_pStartTime = a}) .
+      mapping _Coerce
+
+-- | Kind of resource this is, in this case adexchangeseller#preferredDeal.
+pKind :: Lens' PreferredDeal Text
+pKind = lens _pKind (\ s a -> s{_pKind = a})
+
+-- | The name of the buyer network this deal is for.
+pBuyerNetworkName :: Lens' PreferredDeal (Maybe Text)
+pBuyerNetworkName
+  = lens _pBuyerNetworkName
+      (\ s a -> s{_pBuyerNetworkName = a})
+
+-- | Time when this deal stops being active in seconds since the epoch (GMT).
+-- If not set then this deal is valid until manually disabled by the
+-- publisher.
+pEndTime :: Lens' PreferredDeal (Maybe Word64)
+pEndTime
+  = lens _pEndTime (\ s a -> s{_pEndTime = a}) .
+      mapping _Coerce
+
+-- | Unique identifier of this preferred deal.
+pId :: Lens' PreferredDeal (Maybe Int64)
+pId
+  = lens _pId (\ s a -> s{_pId = a}) . mapping _Coerce
+
+-- | The fixed price for this preferred deal. In cpm micros of currency
+-- according to currencyCode. If set, then this preferred deal is eligible
+-- for the fixed price tier of buying (highest priority, pay exactly the
+-- configured fixed price).
+pFixedCpm :: Lens' PreferredDeal (Maybe Int64)
+pFixedCpm
+  = lens _pFixedCpm (\ s a -> s{_pFixedCpm = a}) .
+      mapping _Coerce
+
+instance FromJSON PreferredDeal where
+        parseJSON
+          = withObject "PreferredDeal"
+              (\ o ->
+                 PreferredDeal <$>
+                   (o .:? "advertiserName") <*> (o .:? "currencyCode")
+                     <*> (o .:? "startTime")
+                     <*>
+                     (o .:? "kind" .!= "adexchangeseller#preferredDeal")
+                     <*> (o .:? "buyerNetworkName")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "id")
+                     <*> (o .:? "fixedCpm"))
+
+instance ToJSON PreferredDeal where
+        toJSON PreferredDeal{..}
+          = object
+              (catMaybes
+                 [("advertiserName" .=) <$> _pAdvertiserName,
+                  ("currencyCode" .=) <$> _pCurrencyCode,
+                  ("startTime" .=) <$> _pStartTime,
+                  Just ("kind" .= _pKind),
+                  ("buyerNetworkName" .=) <$> _pBuyerNetworkName,
+                  ("endTime" .=) <$> _pEndTime, ("id" .=) <$> _pId,
+                  ("fixedCpm" .=) <$> _pFixedCpm])
diff --git a/gen/Network/Google/AdExchangeSeller/Types/Sum.hs b/gen/Network/Google/AdExchangeSeller/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/AdExchangeSeller/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.AdExchangeSeller.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.AdExchangeSeller.Types.Sum where
+
+import           Network.Google.Prelude
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/AdClients/List.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/AdClients/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/AdClients/List.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeSeller.Accounts.AdClients.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)
+--
+-- List all ad clients in this Ad Exchange account.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.adclients.list@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.AdClients.List
+    (
+    -- * REST Resource
+      AccountsAdClientsListResource
+
+    -- * Creating a Request
+    , accountsAdClientsList
+    , AccountsAdClientsList
+
+    -- * Request Lenses
+    , aaclAccountId
+    , aaclPageToken
+    , aaclMaxResults
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.adclients.list@ method which the
+-- 'AccountsAdClientsList' request conforms to.
+type AccountsAdClientsListResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "adclients" :>
+               QueryParam "pageToken" Text :>
+                 QueryParam "maxResults" (Textual Word32) :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] AdClients
+
+-- | List all ad clients in this Ad Exchange account.
+--
+-- /See:/ 'accountsAdClientsList' smart constructor.
+data AccountsAdClientsList = AccountsAdClientsList
+    { _aaclAccountId  :: !Text
+    , _aaclPageToken  :: !(Maybe Text)
+    , _aaclMaxResults :: !(Maybe (Textual Word32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsAdClientsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aaclAccountId'
+--
+-- * 'aaclPageToken'
+--
+-- * 'aaclMaxResults'
+accountsAdClientsList
+    :: Text -- ^ 'aaclAccountId'
+    -> AccountsAdClientsList
+accountsAdClientsList pAaclAccountId_ =
+    AccountsAdClientsList
+    { _aaclAccountId = pAaclAccountId_
+    , _aaclPageToken = Nothing
+    , _aaclMaxResults = Nothing
+    }
+
+-- | Account to which the ad client belongs.
+aaclAccountId :: Lens' AccountsAdClientsList Text
+aaclAccountId
+  = lens _aaclAccountId
+      (\ s a -> s{_aaclAccountId = a})
+
+-- | A continuation token, used to page through ad clients. To retrieve the
+-- next page, set this parameter to the value of \"nextPageToken\" from the
+-- previous response.
+aaclPageToken :: Lens' AccountsAdClientsList (Maybe Text)
+aaclPageToken
+  = lens _aaclPageToken
+      (\ s a -> s{_aaclPageToken = a})
+
+-- | The maximum number of ad clients to include in the response, used for
+-- paging.
+aaclMaxResults :: Lens' AccountsAdClientsList (Maybe Word32)
+aaclMaxResults
+  = lens _aaclMaxResults
+      (\ s a -> s{_aaclMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AccountsAdClientsList where
+        type Rs AccountsAdClientsList = AdClients
+        requestClient AccountsAdClientsList{..}
+          = go _aaclAccountId _aaclPageToken _aaclMaxResults
+              (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsAdClientsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Alerts/List.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Alerts/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Alerts/List.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeSeller.Accounts.Alerts.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)
+--
+-- List the alerts for this Ad Exchange account.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.alerts.list@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.Alerts.List
+    (
+    -- * REST Resource
+      AccountsAlertsListResource
+
+    -- * Creating a Request
+    , accountsAlertsList
+    , AccountsAlertsList
+
+    -- * Request Lenses
+    , aalLocale
+    , aalAccountId
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.alerts.list@ method which the
+-- 'AccountsAlertsList' request conforms to.
+type AccountsAlertsListResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "alerts" :>
+               QueryParam "locale" Text :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Alerts
+
+-- | List the alerts for this Ad Exchange account.
+--
+-- /See:/ 'accountsAlertsList' smart constructor.
+data AccountsAlertsList = AccountsAlertsList
+    { _aalLocale    :: !(Maybe Text)
+    , _aalAccountId :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsAlertsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aalLocale'
+--
+-- * 'aalAccountId'
+accountsAlertsList
+    :: Text -- ^ 'aalAccountId'
+    -> AccountsAlertsList
+accountsAlertsList pAalAccountId_ =
+    AccountsAlertsList
+    { _aalLocale = Nothing
+    , _aalAccountId = pAalAccountId_
+    }
+
+-- | The locale to use for translating alert messages. The account locale
+-- will be used if this is not supplied. The AdSense default (English) will
+-- be used if the supplied locale is invalid or unsupported.
+aalLocale :: Lens' AccountsAlertsList (Maybe Text)
+aalLocale
+  = lens _aalLocale (\ s a -> s{_aalLocale = a})
+
+-- | Account owning the alerts.
+aalAccountId :: Lens' AccountsAlertsList Text
+aalAccountId
+  = lens _aalAccountId (\ s a -> s{_aalAccountId = a})
+
+instance GoogleRequest AccountsAlertsList where
+        type Rs AccountsAlertsList = Alerts
+        requestClient AccountsAlertsList{..}
+          = go _aalAccountId _aalLocale (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsAlertsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/CustomChannels/Get.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/CustomChannels/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/CustomChannels/Get.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeSeller.Accounts.CustomChannels.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)
+--
+-- Get the specified custom channel from the specified ad client.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.customchannels.get@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.CustomChannels.Get
+    (
+    -- * REST Resource
+      AccountsCustomChannelsGetResource
+
+    -- * Creating a Request
+    , accountsCustomChannelsGet
+    , AccountsCustomChannelsGet
+
+    -- * Request Lenses
+    , accgCustomChannelId
+    , accgAdClientId
+    , accgAccountId
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.customchannels.get@ method which the
+-- 'AccountsCustomChannelsGet' request conforms to.
+type AccountsCustomChannelsGetResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "adclients" :>
+               Capture "adClientId" Text :>
+                 "customchannels" :>
+                   Capture "customChannelId" Text :>
+                     QueryParam "alt" AltJSON :> Get '[JSON] CustomChannel
+
+-- | Get the specified custom channel from the specified ad client.
+--
+-- /See:/ 'accountsCustomChannelsGet' smart constructor.
+data AccountsCustomChannelsGet = AccountsCustomChannelsGet
+    { _accgCustomChannelId :: !Text
+    , _accgAdClientId      :: !Text
+    , _accgAccountId       :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCustomChannelsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'accgCustomChannelId'
+--
+-- * 'accgAdClientId'
+--
+-- * 'accgAccountId'
+accountsCustomChannelsGet
+    :: Text -- ^ 'accgCustomChannelId'
+    -> Text -- ^ 'accgAdClientId'
+    -> Text -- ^ 'accgAccountId'
+    -> AccountsCustomChannelsGet
+accountsCustomChannelsGet pAccgCustomChannelId_ pAccgAdClientId_ pAccgAccountId_ =
+    AccountsCustomChannelsGet
+    { _accgCustomChannelId = pAccgCustomChannelId_
+    , _accgAdClientId = pAccgAdClientId_
+    , _accgAccountId = pAccgAccountId_
+    }
+
+-- | Custom channel to retrieve.
+accgCustomChannelId :: Lens' AccountsCustomChannelsGet Text
+accgCustomChannelId
+  = lens _accgCustomChannelId
+      (\ s a -> s{_accgCustomChannelId = a})
+
+-- | Ad client which contains the custom channel.
+accgAdClientId :: Lens' AccountsCustomChannelsGet Text
+accgAdClientId
+  = lens _accgAdClientId
+      (\ s a -> s{_accgAdClientId = a})
+
+-- | Account to which the ad client belongs.
+accgAccountId :: Lens' AccountsCustomChannelsGet Text
+accgAccountId
+  = lens _accgAccountId
+      (\ s a -> s{_accgAccountId = a})
+
+instance GoogleRequest AccountsCustomChannelsGet
+         where
+        type Rs AccountsCustomChannelsGet = CustomChannel
+        requestClient AccountsCustomChannelsGet{..}
+          = go _accgAccountId _accgAdClientId
+              _accgCustomChannelId
+              (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsCustomChannelsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/CustomChannels/List.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/CustomChannels/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/CustomChannels/List.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeSeller.Accounts.CustomChannels.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)
+--
+-- List all custom channels in the specified ad client for this Ad Exchange
+-- account.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.customchannels.list@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.CustomChannels.List
+    (
+    -- * REST Resource
+      AccountsCustomChannelsListResource
+
+    -- * Creating a Request
+    , accountsCustomChannelsList
+    , AccountsCustomChannelsList
+
+    -- * Request Lenses
+    , acclAdClientId
+    , acclAccountId
+    , acclPageToken
+    , acclMaxResults
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.customchannels.list@ method which the
+-- 'AccountsCustomChannelsList' request conforms to.
+type AccountsCustomChannelsListResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "adclients" :>
+               Capture "adClientId" Text :>
+                 "customchannels" :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "maxResults" (Textual Word32) :>
+                       QueryParam "alt" AltJSON :>
+                         Get '[JSON] CustomChannels
+
+-- | List all custom channels in the specified ad client for this Ad Exchange
+-- account.
+--
+-- /See:/ 'accountsCustomChannelsList' smart constructor.
+data AccountsCustomChannelsList = AccountsCustomChannelsList
+    { _acclAdClientId :: !Text
+    , _acclAccountId  :: !Text
+    , _acclPageToken  :: !(Maybe Text)
+    , _acclMaxResults :: !(Maybe (Textual Word32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCustomChannelsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acclAdClientId'
+--
+-- * 'acclAccountId'
+--
+-- * 'acclPageToken'
+--
+-- * 'acclMaxResults'
+accountsCustomChannelsList
+    :: Text -- ^ 'acclAdClientId'
+    -> Text -- ^ 'acclAccountId'
+    -> AccountsCustomChannelsList
+accountsCustomChannelsList pAcclAdClientId_ pAcclAccountId_ =
+    AccountsCustomChannelsList
+    { _acclAdClientId = pAcclAdClientId_
+    , _acclAccountId = pAcclAccountId_
+    , _acclPageToken = Nothing
+    , _acclMaxResults = Nothing
+    }
+
+-- | Ad client for which to list custom channels.
+acclAdClientId :: Lens' AccountsCustomChannelsList Text
+acclAdClientId
+  = lens _acclAdClientId
+      (\ s a -> s{_acclAdClientId = a})
+
+-- | Account to which the ad client belongs.
+acclAccountId :: Lens' AccountsCustomChannelsList Text
+acclAccountId
+  = lens _acclAccountId
+      (\ s a -> s{_acclAccountId = a})
+
+-- | A continuation token, used to page through custom channels. To retrieve
+-- the next page, set this parameter to the value of \"nextPageToken\" from
+-- the previous response.
+acclPageToken :: Lens' AccountsCustomChannelsList (Maybe Text)
+acclPageToken
+  = lens _acclPageToken
+      (\ s a -> s{_acclPageToken = a})
+
+-- | The maximum number of custom channels to include in the response, used
+-- for paging.
+acclMaxResults :: Lens' AccountsCustomChannelsList (Maybe Word32)
+acclMaxResults
+  = lens _acclMaxResults
+      (\ s a -> s{_acclMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AccountsCustomChannelsList
+         where
+        type Rs AccountsCustomChannelsList = CustomChannels
+        requestClient AccountsCustomChannelsList{..}
+          = go _acclAccountId _acclAdClientId _acclPageToken
+              _acclMaxResults
+              (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsCustomChannelsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Get.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Get.hs
@@ -0,0 +1,83 @@
+{-# 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.AdExchangeSeller.Accounts.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)
+--
+-- Get information about the selected Ad Exchange account.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.get@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.Get
+    (
+    -- * REST Resource
+      AccountsGetResource
+
+    -- * Creating a Request
+    , accountsGet
+    , AccountsGet
+
+    -- * Request Lenses
+    , agAccountId
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.get@ method which the
+-- 'AccountsGet' request conforms to.
+type AccountsGetResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             QueryParam "alt" AltJSON :> Get '[JSON] Account
+
+-- | Get information about the selected Ad Exchange account.
+--
+-- /See:/ 'accountsGet' smart constructor.
+newtype AccountsGet = AccountsGet
+    { _agAccountId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'agAccountId'
+accountsGet
+    :: Text -- ^ 'agAccountId'
+    -> AccountsGet
+accountsGet pAgAccountId_ =
+    AccountsGet
+    { _agAccountId = pAgAccountId_
+    }
+
+-- | Account to get information about. Tip: \'myaccount\' is a valid ID.
+agAccountId :: Lens' AccountsGet Text
+agAccountId
+  = lens _agAccountId (\ s a -> s{_agAccountId = a})
+
+instance GoogleRequest AccountsGet where
+        type Rs AccountsGet = Account
+        requestClient AccountsGet{..}
+          = go _agAccountId (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient (Proxy :: Proxy AccountsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/List.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/List.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeSeller.Accounts.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)
+--
+-- List all accounts available to this Ad Exchange account.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.list@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.List
+    (
+    -- * REST Resource
+      AccountsListResource
+
+    -- * Creating a Request
+    , accountsList
+    , AccountsList
+
+    -- * Request Lenses
+    , alPageToken
+    , alMaxResults
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.list@ method which the
+-- 'AccountsList' request conforms to.
+type AccountsListResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           QueryParam "pageToken" Text :>
+             QueryParam "maxResults" (Textual Int32) :>
+               QueryParam "alt" AltJSON :> Get '[JSON] Accounts
+
+-- | List all accounts available to this Ad Exchange account.
+--
+-- /See:/ 'accountsList' smart constructor.
+data AccountsList = AccountsList
+    { _alPageToken  :: !(Maybe Text)
+    , _alMaxResults :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'alPageToken'
+--
+-- * 'alMaxResults'
+accountsList
+    :: AccountsList
+accountsList =
+    AccountsList
+    { _alPageToken = Nothing
+    , _alMaxResults = Nothing
+    }
+
+-- | A continuation token, used to page through accounts. To retrieve the
+-- next page, set this parameter to the value of \"nextPageToken\" from the
+-- previous response.
+alPageToken :: Lens' AccountsList (Maybe Text)
+alPageToken
+  = lens _alPageToken (\ s a -> s{_alPageToken = a})
+
+-- | The maximum number of accounts to include in the response, used for
+-- paging.
+alMaxResults :: Lens' AccountsList (Maybe Int32)
+alMaxResults
+  = lens _alMaxResults (\ s a -> s{_alMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AccountsList where
+        type Rs AccountsList = Accounts
+        requestClient AccountsList{..}
+          = go _alPageToken _alMaxResults (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient (Proxy :: Proxy AccountsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Metadata/Dimensions/List.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Metadata/Dimensions/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Metadata/Dimensions/List.hs
@@ -0,0 +1,91 @@
+{-# 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.AdExchangeSeller.Accounts.Metadata.Dimensions.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)
+--
+-- List the metadata for the dimensions available to this AdExchange
+-- account.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.metadata.dimensions.list@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.Metadata.Dimensions.List
+    (
+    -- * REST Resource
+      AccountsMetadataDimensionsListResource
+
+    -- * Creating a Request
+    , accountsMetadataDimensionsList
+    , AccountsMetadataDimensionsList
+
+    -- * Request Lenses
+    , amdlAccountId
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.metadata.dimensions.list@ method which the
+-- 'AccountsMetadataDimensionsList' request conforms to.
+type AccountsMetadataDimensionsListResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "metadata" :>
+               "dimensions" :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Metadata
+
+-- | List the metadata for the dimensions available to this AdExchange
+-- account.
+--
+-- /See:/ 'accountsMetadataDimensionsList' smart constructor.
+newtype AccountsMetadataDimensionsList = AccountsMetadataDimensionsList
+    { _amdlAccountId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsMetadataDimensionsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'amdlAccountId'
+accountsMetadataDimensionsList
+    :: Text -- ^ 'amdlAccountId'
+    -> AccountsMetadataDimensionsList
+accountsMetadataDimensionsList pAmdlAccountId_ =
+    AccountsMetadataDimensionsList
+    { _amdlAccountId = pAmdlAccountId_
+    }
+
+-- | Account with visibility to the dimensions.
+amdlAccountId :: Lens' AccountsMetadataDimensionsList Text
+amdlAccountId
+  = lens _amdlAccountId
+      (\ s a -> s{_amdlAccountId = a})
+
+instance GoogleRequest AccountsMetadataDimensionsList
+         where
+        type Rs AccountsMetadataDimensionsList = Metadata
+        requestClient AccountsMetadataDimensionsList{..}
+          = go _amdlAccountId (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsMetadataDimensionsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Metadata/Metrics/List.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Metadata/Metrics/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Metadata/Metrics/List.hs
@@ -0,0 +1,88 @@
+{-# 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.AdExchangeSeller.Accounts.Metadata.Metrics.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)
+--
+-- List the metadata for the metrics available to this AdExchange account.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.metadata.metrics.list@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.Metadata.Metrics.List
+    (
+    -- * REST Resource
+      AccountsMetadataMetricsListResource
+
+    -- * Creating a Request
+    , accountsMetadataMetricsList
+    , AccountsMetadataMetricsList
+
+    -- * Request Lenses
+    , ammlAccountId
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.metadata.metrics.list@ method which the
+-- 'AccountsMetadataMetricsList' request conforms to.
+type AccountsMetadataMetricsListResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "metadata" :>
+               "metrics" :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Metadata
+
+-- | List the metadata for the metrics available to this AdExchange account.
+--
+-- /See:/ 'accountsMetadataMetricsList' smart constructor.
+newtype AccountsMetadataMetricsList = AccountsMetadataMetricsList
+    { _ammlAccountId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsMetadataMetricsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ammlAccountId'
+accountsMetadataMetricsList
+    :: Text -- ^ 'ammlAccountId'
+    -> AccountsMetadataMetricsList
+accountsMetadataMetricsList pAmmlAccountId_ =
+    AccountsMetadataMetricsList
+    { _ammlAccountId = pAmmlAccountId_
+    }
+
+-- | Account with visibility to the metrics.
+ammlAccountId :: Lens' AccountsMetadataMetricsList Text
+ammlAccountId
+  = lens _ammlAccountId
+      (\ s a -> s{_ammlAccountId = a})
+
+instance GoogleRequest AccountsMetadataMetricsList
+         where
+        type Rs AccountsMetadataMetricsList = Metadata
+        requestClient AccountsMetadataMetricsList{..}
+          = go _ammlAccountId (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsMetadataMetricsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/PreferredDeals/Get.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/PreferredDeals/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/PreferredDeals/Get.hs
@@ -0,0 +1,99 @@
+{-# 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.AdExchangeSeller.Accounts.PreferredDeals.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)
+--
+-- Get information about the selected Ad Exchange Preferred Deal.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.preferreddeals.get@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.PreferredDeals.Get
+    (
+    -- * REST Resource
+      AccountsPreferredDealsGetResource
+
+    -- * Creating a Request
+    , accountsPreferredDealsGet
+    , AccountsPreferredDealsGet
+
+    -- * Request Lenses
+    , apdgDealId
+    , apdgAccountId
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.preferreddeals.get@ method which the
+-- 'AccountsPreferredDealsGet' request conforms to.
+type AccountsPreferredDealsGetResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "preferreddeals" :>
+               Capture "dealId" Text :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] PreferredDeal
+
+-- | Get information about the selected Ad Exchange Preferred Deal.
+--
+-- /See:/ 'accountsPreferredDealsGet' smart constructor.
+data AccountsPreferredDealsGet = AccountsPreferredDealsGet
+    { _apdgDealId    :: !Text
+    , _apdgAccountId :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsPreferredDealsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apdgDealId'
+--
+-- * 'apdgAccountId'
+accountsPreferredDealsGet
+    :: Text -- ^ 'apdgDealId'
+    -> Text -- ^ 'apdgAccountId'
+    -> AccountsPreferredDealsGet
+accountsPreferredDealsGet pApdgDealId_ pApdgAccountId_ =
+    AccountsPreferredDealsGet
+    { _apdgDealId = pApdgDealId_
+    , _apdgAccountId = pApdgAccountId_
+    }
+
+-- | Preferred deal to get information about.
+apdgDealId :: Lens' AccountsPreferredDealsGet Text
+apdgDealId
+  = lens _apdgDealId (\ s a -> s{_apdgDealId = a})
+
+-- | Account owning the deal.
+apdgAccountId :: Lens' AccountsPreferredDealsGet Text
+apdgAccountId
+  = lens _apdgAccountId
+      (\ s a -> s{_apdgAccountId = a})
+
+instance GoogleRequest AccountsPreferredDealsGet
+         where
+        type Rs AccountsPreferredDealsGet = PreferredDeal
+        requestClient AccountsPreferredDealsGet{..}
+          = go _apdgAccountId _apdgDealId (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsPreferredDealsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/PreferredDeals/List.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/PreferredDeals/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/PreferredDeals/List.hs
@@ -0,0 +1,88 @@
+{-# 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.AdExchangeSeller.Accounts.PreferredDeals.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)
+--
+-- List the preferred deals for this Ad Exchange account.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.preferreddeals.list@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.PreferredDeals.List
+    (
+    -- * REST Resource
+      AccountsPreferredDealsListResource
+
+    -- * Creating a Request
+    , accountsPreferredDealsList
+    , AccountsPreferredDealsList
+
+    -- * Request Lenses
+    , apdlAccountId
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.preferreddeals.list@ method which the
+-- 'AccountsPreferredDealsList' request conforms to.
+type AccountsPreferredDealsListResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "preferreddeals" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] PreferredDeals
+
+-- | List the preferred deals for this Ad Exchange account.
+--
+-- /See:/ 'accountsPreferredDealsList' smart constructor.
+newtype AccountsPreferredDealsList = AccountsPreferredDealsList
+    { _apdlAccountId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsPreferredDealsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apdlAccountId'
+accountsPreferredDealsList
+    :: Text -- ^ 'apdlAccountId'
+    -> AccountsPreferredDealsList
+accountsPreferredDealsList pApdlAccountId_ =
+    AccountsPreferredDealsList
+    { _apdlAccountId = pApdlAccountId_
+    }
+
+-- | Account owning the deals.
+apdlAccountId :: Lens' AccountsPreferredDealsList Text
+apdlAccountId
+  = lens _apdlAccountId
+      (\ s a -> s{_apdlAccountId = a})
+
+instance GoogleRequest AccountsPreferredDealsList
+         where
+        type Rs AccountsPreferredDealsList = PreferredDeals
+        requestClient AccountsPreferredDealsList{..}
+          = go _apdlAccountId (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsPreferredDealsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Reports/Generate.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Reports/Generate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Reports/Generate.hs
@@ -0,0 +1,253 @@
+{-# 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.AdExchangeSeller.Accounts.Reports.Generate
+-- 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)
+--
+-- Generate an Ad Exchange report based on the report request sent in the
+-- query parameters. Returns the result as JSON; to retrieve output in CSV
+-- format specify \"alt=csv\" as a query parameter.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.reports.generate@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Generate
+    (
+    -- * REST Resource
+      AccountsReportsGenerateResource
+
+    -- * Creating a Request
+    , accountsReportsGenerate
+    , AccountsReportsGenerate
+
+    -- * Request Lenses
+    , argDimension
+    , argLocale
+    , argEndDate
+    , argStartDate
+    , argAccountId
+    , argMetric
+    , argSort
+    , argFilter
+    , argStartIndex
+    , argMaxResults
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.reports.generate@ method which the
+-- 'AccountsReportsGenerate' request conforms to.
+type AccountsReportsGenerateResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "reports" :>
+               QueryParam "startDate" Text :>
+                 QueryParam "endDate" Text :>
+                   QueryParams "dimension" Text :>
+                     QueryParam "locale" Text :>
+                       QueryParams "metric" Text :>
+                         QueryParams "sort" Text :>
+                           QueryParams "filter" Text :>
+                             QueryParam "startIndex" (Textual Word32) :>
+                               QueryParam "maxResults" (Textual Word32) :>
+                                 QueryParam "alt" AltJSON :> Get '[JSON] Report
+       :<|>
+       "adexchangeseller" :>
+         "v2.0" :>
+           "accounts" :>
+             Capture "accountId" Text :>
+               "reports" :>
+                 QueryParam "startDate" Text :>
+                   QueryParam "endDate" Text :>
+                     QueryParams "dimension" Text :>
+                       QueryParam "locale" Text :>
+                         QueryParams "metric" Text :>
+                           QueryParams "sort" Text :>
+                             QueryParams "filter" Text :>
+                               QueryParam "startIndex" (Textual Word32) :>
+                                 QueryParam "maxResults" (Textual Word32) :>
+                                   QueryParam "alt" AltMedia :>
+                                     Get '[OctetStream] Stream
+
+-- | Generate an Ad Exchange report based on the report request sent in the
+-- query parameters. Returns the result as JSON; to retrieve output in CSV
+-- format specify \"alt=csv\" as a query parameter.
+--
+-- /See:/ 'accountsReportsGenerate' smart constructor.
+data AccountsReportsGenerate = AccountsReportsGenerate
+    { _argDimension  :: !(Maybe [Text])
+    , _argLocale     :: !(Maybe Text)
+    , _argEndDate    :: !Text
+    , _argStartDate  :: !Text
+    , _argAccountId  :: !Text
+    , _argMetric     :: !(Maybe [Text])
+    , _argSort       :: !(Maybe [Text])
+    , _argFilter     :: !(Maybe [Text])
+    , _argStartIndex :: !(Maybe (Textual Word32))
+    , _argMaxResults :: !(Maybe (Textual Word32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsReportsGenerate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'argDimension'
+--
+-- * 'argLocale'
+--
+-- * 'argEndDate'
+--
+-- * 'argStartDate'
+--
+-- * 'argAccountId'
+--
+-- * 'argMetric'
+--
+-- * 'argSort'
+--
+-- * 'argFilter'
+--
+-- * 'argStartIndex'
+--
+-- * 'argMaxResults'
+accountsReportsGenerate
+    :: Text -- ^ 'argEndDate'
+    -> Text -- ^ 'argStartDate'
+    -> Text -- ^ 'argAccountId'
+    -> AccountsReportsGenerate
+accountsReportsGenerate pArgEndDate_ pArgStartDate_ pArgAccountId_ =
+    AccountsReportsGenerate
+    { _argDimension = Nothing
+    , _argLocale = Nothing
+    , _argEndDate = pArgEndDate_
+    , _argStartDate = pArgStartDate_
+    , _argAccountId = pArgAccountId_
+    , _argMetric = Nothing
+    , _argSort = Nothing
+    , _argFilter = Nothing
+    , _argStartIndex = Nothing
+    , _argMaxResults = Nothing
+    }
+
+-- | Dimensions to base the report on.
+argDimension :: Lens' AccountsReportsGenerate [Text]
+argDimension
+  = lens _argDimension (\ s a -> s{_argDimension = a})
+      . _Default
+      . _Coerce
+
+-- | Optional locale to use for translating report output to a local
+-- language. Defaults to \"en_US\" if not specified.
+argLocale :: Lens' AccountsReportsGenerate (Maybe Text)
+argLocale
+  = lens _argLocale (\ s a -> s{_argLocale = a})
+
+-- | End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.
+argEndDate :: Lens' AccountsReportsGenerate Text
+argEndDate
+  = lens _argEndDate (\ s a -> s{_argEndDate = a})
+
+-- | Start of the date range to report on in \"YYYY-MM-DD\" format,
+-- inclusive.
+argStartDate :: Lens' AccountsReportsGenerate Text
+argStartDate
+  = lens _argStartDate (\ s a -> s{_argStartDate = a})
+
+-- | Account which owns the generated report.
+argAccountId :: Lens' AccountsReportsGenerate Text
+argAccountId
+  = lens _argAccountId (\ s a -> s{_argAccountId = a})
+
+-- | Numeric columns to include in the report.
+argMetric :: Lens' AccountsReportsGenerate [Text]
+argMetric
+  = lens _argMetric (\ s a -> s{_argMetric = a}) .
+      _Default
+      . _Coerce
+
+-- | The name of a dimension or metric to sort the resulting report on,
+-- optionally prefixed with \"+\" to sort ascending or \"-\" to sort
+-- descending. If no prefix is specified, the column is sorted ascending.
+argSort :: Lens' AccountsReportsGenerate [Text]
+argSort
+  = lens _argSort (\ s a -> s{_argSort = a}) . _Default
+      . _Coerce
+
+-- | Filters to be run on the report.
+argFilter :: Lens' AccountsReportsGenerate [Text]
+argFilter
+  = lens _argFilter (\ s a -> s{_argFilter = a}) .
+      _Default
+      . _Coerce
+
+-- | Index of the first row of report data to return.
+argStartIndex :: Lens' AccountsReportsGenerate (Maybe Word32)
+argStartIndex
+  = lens _argStartIndex
+      (\ s a -> s{_argStartIndex = a})
+      . mapping _Coerce
+
+-- | The maximum number of rows of report data to return.
+argMaxResults :: Lens' AccountsReportsGenerate (Maybe Word32)
+argMaxResults
+  = lens _argMaxResults
+      (\ s a -> s{_argMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AccountsReportsGenerate where
+        type Rs AccountsReportsGenerate = Report
+        requestClient AccountsReportsGenerate{..}
+          = go _argAccountId (Just _argStartDate)
+              (Just _argEndDate)
+              (_argDimension ^. _Default)
+              _argLocale
+              (_argMetric ^. _Default)
+              (_argSort ^. _Default)
+              (_argFilter ^. _Default)
+              _argStartIndex
+              _argMaxResults
+              (Just AltJSON)
+              adExchangeSellerService
+          where go :<|> _
+                  = buildClient
+                      (Proxy :: Proxy AccountsReportsGenerateResource)
+                      mempty
+
+instance GoogleRequest
+         (MediaDownload AccountsReportsGenerate) where
+        type Rs (MediaDownload AccountsReportsGenerate) =
+             Stream
+        requestClient
+          (MediaDownload AccountsReportsGenerate{..})
+          = go _argAccountId (Just _argStartDate)
+              (Just _argEndDate)
+              (_argDimension ^. _Default)
+              _argLocale
+              (_argMetric ^. _Default)
+              (_argSort ^. _Default)
+              (_argFilter ^. _Default)
+              _argStartIndex
+              _argMaxResults
+              (Just AltMedia)
+              adExchangeSellerService
+          where _ :<|> go
+                  = buildClient
+                      (Proxy :: Proxy AccountsReportsGenerateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Reports/Saved/Generate.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Reports/Saved/Generate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Reports/Saved/Generate.hs
@@ -0,0 +1,143 @@
+{-# 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.AdExchangeSeller.Accounts.Reports.Saved.Generate
+-- 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)
+--
+-- Generate an Ad Exchange report based on the saved report ID sent in the
+-- query parameters.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.reports.saved.generate@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Saved.Generate
+    (
+    -- * REST Resource
+      AccountsReportsSavedGenerateResource
+
+    -- * Creating a Request
+    , accountsReportsSavedGenerate
+    , AccountsReportsSavedGenerate
+
+    -- * Request Lenses
+    , arsgLocale
+    , arsgSavedReportId
+    , arsgAccountId
+    , arsgStartIndex
+    , arsgMaxResults
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.reports.saved.generate@ method which the
+-- 'AccountsReportsSavedGenerate' request conforms to.
+type AccountsReportsSavedGenerateResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "reports" :>
+               Capture "savedReportId" Text :>
+                 QueryParam "locale" Text :>
+                   QueryParam "startIndex" (Textual Int32) :>
+                     QueryParam "maxResults" (Textual Int32) :>
+                       QueryParam "alt" AltJSON :> Get '[JSON] Report
+
+-- | Generate an Ad Exchange report based on the saved report ID sent in the
+-- query parameters.
+--
+-- /See:/ 'accountsReportsSavedGenerate' smart constructor.
+data AccountsReportsSavedGenerate = AccountsReportsSavedGenerate
+    { _arsgLocale        :: !(Maybe Text)
+    , _arsgSavedReportId :: !Text
+    , _arsgAccountId     :: !Text
+    , _arsgStartIndex    :: !(Maybe (Textual Int32))
+    , _arsgMaxResults    :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsReportsSavedGenerate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'arsgLocale'
+--
+-- * 'arsgSavedReportId'
+--
+-- * 'arsgAccountId'
+--
+-- * 'arsgStartIndex'
+--
+-- * 'arsgMaxResults'
+accountsReportsSavedGenerate
+    :: Text -- ^ 'arsgSavedReportId'
+    -> Text -- ^ 'arsgAccountId'
+    -> AccountsReportsSavedGenerate
+accountsReportsSavedGenerate pArsgSavedReportId_ pArsgAccountId_ =
+    AccountsReportsSavedGenerate
+    { _arsgLocale = Nothing
+    , _arsgSavedReportId = pArsgSavedReportId_
+    , _arsgAccountId = pArsgAccountId_
+    , _arsgStartIndex = Nothing
+    , _arsgMaxResults = Nothing
+    }
+
+-- | Optional locale to use for translating report output to a local
+-- language. Defaults to \"en_US\" if not specified.
+arsgLocale :: Lens' AccountsReportsSavedGenerate (Maybe Text)
+arsgLocale
+  = lens _arsgLocale (\ s a -> s{_arsgLocale = a})
+
+-- | The saved report to retrieve.
+arsgSavedReportId :: Lens' AccountsReportsSavedGenerate Text
+arsgSavedReportId
+  = lens _arsgSavedReportId
+      (\ s a -> s{_arsgSavedReportId = a})
+
+-- | Account owning the saved report.
+arsgAccountId :: Lens' AccountsReportsSavedGenerate Text
+arsgAccountId
+  = lens _arsgAccountId
+      (\ s a -> s{_arsgAccountId = a})
+
+-- | Index of the first row of report data to return.
+arsgStartIndex :: Lens' AccountsReportsSavedGenerate (Maybe Int32)
+arsgStartIndex
+  = lens _arsgStartIndex
+      (\ s a -> s{_arsgStartIndex = a})
+      . mapping _Coerce
+
+-- | The maximum number of rows of report data to return.
+arsgMaxResults :: Lens' AccountsReportsSavedGenerate (Maybe Int32)
+arsgMaxResults
+  = lens _arsgMaxResults
+      (\ s a -> s{_arsgMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AccountsReportsSavedGenerate
+         where
+        type Rs AccountsReportsSavedGenerate = Report
+        requestClient AccountsReportsSavedGenerate{..}
+          = go _arsgAccountId _arsgSavedReportId _arsgLocale
+              _arsgStartIndex
+              _arsgMaxResults
+              (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsReportsSavedGenerateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Reports/Saved/List.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Reports/Saved/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/Reports/Saved/List.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Saved.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)
+--
+-- List all saved reports in this Ad Exchange account.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.reports.saved.list@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Saved.List
+    (
+    -- * REST Resource
+      AccountsReportsSavedListResource
+
+    -- * Creating a Request
+    , accountsReportsSavedList
+    , AccountsReportsSavedList
+
+    -- * Request Lenses
+    , arslAccountId
+    , arslPageToken
+    , arslMaxResults
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.reports.saved.list@ method which the
+-- 'AccountsReportsSavedList' request conforms to.
+type AccountsReportsSavedListResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "reports" :>
+               "saved" :>
+                 QueryParam "pageToken" Text :>
+                   QueryParam "maxResults" (Textual Int32) :>
+                     QueryParam "alt" AltJSON :> Get '[JSON] SavedReports
+
+-- | List all saved reports in this Ad Exchange account.
+--
+-- /See:/ 'accountsReportsSavedList' smart constructor.
+data AccountsReportsSavedList = AccountsReportsSavedList
+    { _arslAccountId  :: !Text
+    , _arslPageToken  :: !(Maybe Text)
+    , _arslMaxResults :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsReportsSavedList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'arslAccountId'
+--
+-- * 'arslPageToken'
+--
+-- * 'arslMaxResults'
+accountsReportsSavedList
+    :: Text -- ^ 'arslAccountId'
+    -> AccountsReportsSavedList
+accountsReportsSavedList pArslAccountId_ =
+    AccountsReportsSavedList
+    { _arslAccountId = pArslAccountId_
+    , _arslPageToken = Nothing
+    , _arslMaxResults = Nothing
+    }
+
+-- | Account owning the saved reports.
+arslAccountId :: Lens' AccountsReportsSavedList Text
+arslAccountId
+  = lens _arslAccountId
+      (\ s a -> s{_arslAccountId = a})
+
+-- | A continuation token, used to page through saved reports. To retrieve
+-- the next page, set this parameter to the value of \"nextPageToken\" from
+-- the previous response.
+arslPageToken :: Lens' AccountsReportsSavedList (Maybe Text)
+arslPageToken
+  = lens _arslPageToken
+      (\ s a -> s{_arslPageToken = a})
+
+-- | The maximum number of saved reports to include in the response, used for
+-- paging.
+arslMaxResults :: Lens' AccountsReportsSavedList (Maybe Int32)
+arslMaxResults
+  = lens _arslMaxResults
+      (\ s a -> s{_arslMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AccountsReportsSavedList where
+        type Rs AccountsReportsSavedList = SavedReports
+        requestClient AccountsReportsSavedList{..}
+          = go _arslAccountId _arslPageToken _arslMaxResults
+              (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsReportsSavedListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeSeller/Accounts/URLChannels/List.hs b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/URLChannels/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeSeller/Accounts/URLChannels/List.hs
@@ -0,0 +1,132 @@
+{-# 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.AdExchangeSeller.Accounts.URLChannels.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)
+--
+-- List all URL channels in the specified ad client for this Ad Exchange
+-- account.
+--
+-- /See:/ <https://developers.google.com/ad-exchange/seller-rest/ Ad Exchange Seller API Reference> for @adexchangeseller.accounts.urlchannels.list@.
+module Network.Google.Resource.AdExchangeSeller.Accounts.URLChannels.List
+    (
+    -- * REST Resource
+      AccountsURLChannelsListResource
+
+    -- * Creating a Request
+    , accountsURLChannelsList
+    , AccountsURLChannelsList
+
+    -- * Request Lenses
+    , auclAdClientId
+    , auclAccountId
+    , auclPageToken
+    , auclMaxResults
+    ) where
+
+import           Network.Google.AdExchangeSeller.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangeseller.accounts.urlchannels.list@ method which the
+-- 'AccountsURLChannelsList' request conforms to.
+type AccountsURLChannelsListResource =
+     "adexchangeseller" :>
+       "v2.0" :>
+         "accounts" :>
+           Capture "accountId" Text :>
+             "adclients" :>
+               Capture "adClientId" Text :>
+                 "urlchannels" :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "maxResults" (Textual Word32) :>
+                       QueryParam "alt" AltJSON :> Get '[JSON] URLChannels
+
+-- | List all URL channels in the specified ad client for this Ad Exchange
+-- account.
+--
+-- /See:/ 'accountsURLChannelsList' smart constructor.
+data AccountsURLChannelsList = AccountsURLChannelsList
+    { _auclAdClientId :: !Text
+    , _auclAccountId  :: !Text
+    , _auclPageToken  :: !(Maybe Text)
+    , _auclMaxResults :: !(Maybe (Textual Word32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsURLChannelsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'auclAdClientId'
+--
+-- * 'auclAccountId'
+--
+-- * 'auclPageToken'
+--
+-- * 'auclMaxResults'
+accountsURLChannelsList
+    :: Text -- ^ 'auclAdClientId'
+    -> Text -- ^ 'auclAccountId'
+    -> AccountsURLChannelsList
+accountsURLChannelsList pAuclAdClientId_ pAuclAccountId_ =
+    AccountsURLChannelsList
+    { _auclAdClientId = pAuclAdClientId_
+    , _auclAccountId = pAuclAccountId_
+    , _auclPageToken = Nothing
+    , _auclMaxResults = Nothing
+    }
+
+-- | Ad client for which to list URL channels.
+auclAdClientId :: Lens' AccountsURLChannelsList Text
+auclAdClientId
+  = lens _auclAdClientId
+      (\ s a -> s{_auclAdClientId = a})
+
+-- | Account to which the ad client belongs.
+auclAccountId :: Lens' AccountsURLChannelsList Text
+auclAccountId
+  = lens _auclAccountId
+      (\ s a -> s{_auclAccountId = a})
+
+-- | A continuation token, used to page through URL channels. To retrieve the
+-- next page, set this parameter to the value of \"nextPageToken\" from the
+-- previous response.
+auclPageToken :: Lens' AccountsURLChannelsList (Maybe Text)
+auclPageToken
+  = lens _auclPageToken
+      (\ s a -> s{_auclPageToken = a})
+
+-- | The maximum number of URL channels to include in the response, used for
+-- paging.
+auclMaxResults :: Lens' AccountsURLChannelsList (Maybe Word32)
+auclMaxResults
+  = lens _auclMaxResults
+      (\ s a -> s{_auclMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AccountsURLChannelsList where
+        type Rs AccountsURLChannelsList = URLChannels
+        requestClient AccountsURLChannelsList{..}
+          = go _auclAccountId _auclAdClientId _auclPageToken
+              _auclMaxResults
+              (Just AltJSON)
+              adExchangeSellerService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsURLChannelsListResource)
+                      mempty
diff --git a/gogol-adexchange-seller.cabal b/gogol-adexchange-seller.cabal
new file mode 100644
--- /dev/null
+++ b/gogol-adexchange-seller.cabal
@@ -0,0 +1,60 @@
+name:                  gogol-adexchange-seller
+version:               0.0.1
+synopsis:              Google Ad Exchange Seller 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:
+    Gives Ad Exchange seller users access to their inventory and the ability
+    to generate reports
+    .
+    /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.0@
+    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.AdExchangeSeller
+        , Network.Google.AdExchangeSeller.Types
+        , Network.Google.Resource.AdExchangeSeller.Accounts.AdClients.List
+        , Network.Google.Resource.AdExchangeSeller.Accounts.Alerts.List
+        , Network.Google.Resource.AdExchangeSeller.Accounts.CustomChannels.Get
+        , Network.Google.Resource.AdExchangeSeller.Accounts.CustomChannels.List
+        , Network.Google.Resource.AdExchangeSeller.Accounts.Get
+        , Network.Google.Resource.AdExchangeSeller.Accounts.List
+        , Network.Google.Resource.AdExchangeSeller.Accounts.Metadata.Dimensions.List
+        , Network.Google.Resource.AdExchangeSeller.Accounts.Metadata.Metrics.List
+        , Network.Google.Resource.AdExchangeSeller.Accounts.PreferredDeals.Get
+        , Network.Google.Resource.AdExchangeSeller.Accounts.PreferredDeals.List
+        , Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Generate
+        , Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Saved.Generate
+        , Network.Google.Resource.AdExchangeSeller.Accounts.Reports.Saved.List
+        , Network.Google.Resource.AdExchangeSeller.Accounts.URLChannels.List
+
+    other-modules:
+          Network.Google.AdExchangeSeller.Types.Product
+        , Network.Google.AdExchangeSeller.Types.Sum
+
+    build-depends:
+          gogol-core == 0.0.1.*
+        , base       >= 4.7 && < 5
