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-adexchangebuyer2
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.3.0`
+
+
+## Description
+
+A client library for the Google Ad Exchange Buyer API II.
+
+
+## Contribute
+
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).
+
+> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.
+
+
+## Licence
+
+`gogol-adexchangebuyer2` 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/AdExchangeBuyer2.hs b/gen/Network/Google/AdExchangeBuyer2.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/AdExchangeBuyer2.hs
@@ -0,0 +1,1278 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module      : Network.Google.AdExchangeBuyer2
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Accesses the latest features for managing Authorized Buyers accounts,
+-- Real-Time Bidding configurations and auction metrics, and Marketplace
+-- programmatic deals.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference>
+module Network.Google.AdExchangeBuyer2
+    (
+    -- * Service Configuration
+      adExchangeBuyer2Service
+
+    -- * OAuth Scopes
+    , adExchangeBuyerScope
+
+    -- * API Declaration
+    , AdExchangeBuyer2API
+
+    -- * Resources
+
+    -- ** adexchangebuyer2.accounts.clients.create
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Create
+
+    -- ** adexchangebuyer2.accounts.clients.get
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Get
+
+    -- ** adexchangebuyer2.accounts.clients.invitations.create
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.Create
+
+    -- ** adexchangebuyer2.accounts.clients.invitations.get
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.Get
+
+    -- ** adexchangebuyer2.accounts.clients.invitations.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.List
+
+    -- ** adexchangebuyer2.accounts.clients.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.List
+
+    -- ** adexchangebuyer2.accounts.clients.update
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Update
+
+    -- ** adexchangebuyer2.accounts.clients.users.get
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.Get
+
+    -- ** adexchangebuyer2.accounts.clients.users.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.List
+
+    -- ** adexchangebuyer2.accounts.clients.users.update
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.Update
+
+    -- ** adexchangebuyer2.accounts.creatives.create
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Create
+
+    -- ** adexchangebuyer2.accounts.creatives.dealAssociations.add
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.Add
+
+    -- ** adexchangebuyer2.accounts.creatives.dealAssociations.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.List
+
+    -- ** adexchangebuyer2.accounts.creatives.dealAssociations.remove
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.Remove
+
+    -- ** adexchangebuyer2.accounts.creatives.get
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Get
+
+    -- ** adexchangebuyer2.accounts.creatives.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.List
+
+    -- ** adexchangebuyer2.accounts.creatives.stopWatching
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.StopWatching
+
+    -- ** adexchangebuyer2.accounts.creatives.update
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Update
+
+    -- ** adexchangebuyer2.accounts.creatives.watch
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Watch
+
+    -- ** adexchangebuyer2.accounts.finalizedProposals.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.FinalizedProposals.List
+
+    -- ** adexchangebuyer2.accounts.products.get
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Products.Get
+
+    -- ** adexchangebuyer2.accounts.products.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Products.List
+
+    -- ** adexchangebuyer2.accounts.proposals.accept
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Accept
+
+    -- ** adexchangebuyer2.accounts.proposals.addNote
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.AddNote
+
+    -- ** adexchangebuyer2.accounts.proposals.cancelNegotiation
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.CancelNegotiation
+
+    -- ** adexchangebuyer2.accounts.proposals.completeSetup
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.CompleteSetup
+
+    -- ** adexchangebuyer2.accounts.proposals.create
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Create
+
+    -- ** adexchangebuyer2.accounts.proposals.get
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Get
+
+    -- ** adexchangebuyer2.accounts.proposals.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.List
+
+    -- ** adexchangebuyer2.accounts.proposals.pause
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Pause
+
+    -- ** adexchangebuyer2.accounts.proposals.resume
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Resume
+
+    -- ** adexchangebuyer2.accounts.proposals.update
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Update
+
+    -- ** adexchangebuyer2.accounts.publisherProfiles.get
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.PublisherProFiles.Get
+
+    -- ** adexchangebuyer2.accounts.publisherProfiles.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Accounts.PublisherProFiles.List
+
+    -- ** adexchangebuyer2.bidders.accounts.creatives.delete
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.Creatives.Delete
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.bidMetrics.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidMetrics.List
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.bidResponseErrors.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidResponseErrors.List
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.bidResponsesWithoutBids.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidResponsesWithoutBids.List
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.create
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Create
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.delete
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Delete
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.filteredBidRequests.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBidRequests.List
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.filteredBids.creatives.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.Creatives.List
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.filteredBids.details.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.Details.List
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.filteredBids.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.List
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.get
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Get
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.impressionMetrics.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.ImpressionMetrics.List
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.List
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.losingBids.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.LosingBids.List
+
+    -- ** adexchangebuyer2.bidders.accounts.filterSets.nonBillableWinningBids.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.NonBillableWinningBids.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.bidMetrics.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidMetrics.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.bidResponseErrors.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidResponseErrors.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.bidResponsesWithoutBids.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidResponsesWithoutBids.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.create
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Create
+
+    -- ** adexchangebuyer2.bidders.filterSets.delete
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Delete
+
+    -- ** adexchangebuyer2.bidders.filterSets.filteredBidRequests.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBidRequests.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.filteredBids.creatives.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.Creatives.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.filteredBids.details.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.Details.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.filteredBids.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.get
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Get
+
+    -- ** adexchangebuyer2.bidders.filterSets.impressionMetrics.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.ImpressionMetrics.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.losingBids.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.LosingBids.List
+
+    -- ** adexchangebuyer2.bidders.filterSets.nonBillableWinningBids.list
+    , module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.NonBillableWinningBids.List
+
+    -- * Types
+
+    -- ** HTMLContent
+    , HTMLContent
+    , htmlContent
+    , hcHeight
+    , hcSnippet
+    , hcWidth
+
+    -- ** ListFilteredBidsResponse
+    , ListFilteredBidsResponse
+    , listFilteredBidsResponse
+    , lfbrNextPageToken
+    , lfbrCreativeStatusRows
+
+    -- ** ResumeProposalRequest
+    , ResumeProposalRequest
+    , resumeProposalRequest
+
+    -- ** DealProgrammaticCreativeSource
+    , DealProgrammaticCreativeSource (..)
+
+    -- ** DealCreativePreApprovalPolicy
+    , DealCreativePreApprovalPolicy (..)
+
+    -- ** NonGuaranteedFixedPriceTerms
+    , NonGuaranteedFixedPriceTerms
+    , nonGuaranteedFixedPriceTerms
+    , ngfptFixedPrices
+
+    -- ** DeliveryControlCreativeBlockingLevel
+    , DeliveryControlCreativeBlockingLevel (..)
+
+    -- ** ListDealAssociationsResponse
+    , ListDealAssociationsResponse
+    , listDealAssociationsResponse
+    , ldarNextPageToken
+    , ldarAssociations
+
+    -- ** ProposalProposalState
+    , ProposalProposalState (..)
+
+    -- ** Image
+    , Image
+    , image
+    , iHeight
+    , iURL
+    , iWidth
+
+    -- ** TechnologyTargeting
+    , TechnologyTargeting
+    , technologyTargeting
+    , ttDeviceCategoryTargeting
+    , ttOperatingSystemTargeting
+    , ttDeviceCapabilityTargeting
+
+    -- ** ProductSyndicationProduct
+    , ProductSyndicationProduct (..)
+
+    -- ** ListPublisherProFilesResponse
+    , ListPublisherProFilesResponse
+    , listPublisherProFilesResponse
+    , lppfrNextPageToken
+    , lppfrPublisherProFiles
+
+    -- ** NonGuaranteedAuctionTerms
+    , NonGuaranteedAuctionTerms
+    , nonGuaranteedAuctionTerms
+    , ngatReservePricesPerBuyer
+    , ngatAutoOptimizePrivateAuction
+
+    -- ** CreativeRestrictionsSkippableAdType
+    , CreativeRestrictionsSkippableAdType (..)
+
+    -- ** ListClientUsersResponse
+    , ListClientUsersResponse
+    , listClientUsersResponse
+    , lcurNextPageToken
+    , lcurUsers
+
+    -- ** BidMetricsRow
+    , BidMetricsRow
+    , bidMetricsRow
+    , bmrBids
+    , bmrBidsInAuction
+    , bmrImpressionsWon
+    , bmrRowDimensions
+    , bmrMeasurableImpressions
+    , bmrViewableImpressions
+    , bmrBilledImpressions
+
+    -- ** ServingRestrictionStatus
+    , ServingRestrictionStatus (..)
+
+    -- ** DayPartTargeting
+    , DayPartTargeting
+    , dayPartTargeting
+    , dptTimeZoneType
+    , dptDayParts
+
+    -- ** CriteriaTargeting
+    , CriteriaTargeting
+    , criteriaTargeting
+    , ctExcludedCriteriaIds
+    , ctTargetedCriteriaIds
+
+    -- ** DealPauseStatus
+    , DealPauseStatus
+    , dealPauseStatus
+    , dpsFirstPausedBy
+    , dpsBuyerPauseReason
+    , dpsHasBuyerPaused
+    , dpsSellerPauseReason
+    , dpsHasSellerPaused
+
+    -- ** DisApprovalReason
+    , DisApprovalReason (..)
+
+    -- ** FilteredBidDetailRow
+    , FilteredBidDetailRow
+    , filteredBidDetailRow
+    , fbdrDetailId
+    , fbdrRowDimensions
+    , fbdrBidCount
+
+    -- ** PrivateData
+    , PrivateData
+    , privateData
+    , pdReferenceId
+
+    -- ** ClientRole
+    , ClientRole (..)
+
+    -- ** DealCreativeSafeFrameCompatibility
+    , DealCreativeSafeFrameCompatibility (..)
+
+    -- ** DeliveryControlDeliveryRateType
+    , DeliveryControlDeliveryRateType (..)
+
+    -- ** Empty
+    , Empty
+    , empty
+
+    -- ** ServingContext
+    , ServingContext
+    , servingContext
+    , scPlatform
+    , scLocation
+    , scSecurityType
+    , scAll
+    , scAuctionType
+    , scAppType
+
+    -- ** PublisherProFile
+    , PublisherProFile
+    , publisherProFile
+    , ppfDirectDealsContact
+    , ppfAudienceDescription
+    , ppfLogoURL
+    , ppfOverview
+    , ppfSamplePageURL
+    , ppfSeller
+    , ppfMediaKitURL
+    , ppfBuyerPitchStatement
+    , ppfDisplayName
+    , ppfPublisherProFileId
+    , ppfGooglePlusURL
+    , ppfDomains
+    , ppfRateCardInfoURL
+    , ppfTopHeadlines
+    , ppfProgrammaticDealsContact
+
+    -- ** AcceptProposalRequest
+    , AcceptProposalRequest
+    , acceptProposalRequest
+    , aprProposalRevision
+
+    -- ** Size
+    , Size
+    , size
+    , sHeight
+    , sWidth
+
+    -- ** ListFilteredBidRequestsResponse
+    , ListFilteredBidRequestsResponse
+    , listFilteredBidRequestsResponse
+    , lfbrrNextPageToken
+    , lfbrrCalloutStatusRows
+
+    -- ** AddDealAssociationRequest
+    , AddDealAssociationRequest
+    , addDealAssociationRequest
+    , adarAssociation
+
+    -- ** CreativeStatusRow
+    , CreativeStatusRow
+    , creativeStatusRow
+    , csrRowDimensions
+    , csrBidCount
+    , csrCreativeStatusId
+
+    -- ** RealtimeTimeRange
+    , RealtimeTimeRange
+    , realtimeTimeRange
+    , rtrStartTimestamp
+
+    -- ** DealPauseStatusFirstPausedBy
+    , DealPauseStatusFirstPausedBy (..)
+
+    -- ** Note
+    , Note
+    , note
+    , nProposalRevision
+    , nNote
+    , nNoteId
+    , nCreatorRole
+    , nCreateTime
+
+    -- ** CreativeOpenAuctionStatus
+    , CreativeOpenAuctionStatus (..)
+
+    -- ** DealSyndicationProduct
+    , DealSyndicationProduct (..)
+
+    -- ** ListFilterSetsResponse
+    , ListFilterSetsResponse
+    , listFilterSetsResponse
+    , lfsrNextPageToken
+    , lfsrFilterSets
+
+    -- ** Money
+    , Money
+    , money
+    , mCurrencyCode
+    , mNanos
+    , mUnits
+
+    -- ** AddNoteRequest
+    , AddNoteRequest
+    , addNoteRequest
+    , anrNote
+
+    -- ** PlacementTargeting
+    , PlacementTargeting
+    , placementTargeting
+    , ptURLTargeting
+    , ptMobileApplicationTargeting
+
+    -- ** FilterSetTimeSeriesGranularity
+    , FilterSetTimeSeriesGranularity (..)
+
+    -- ** ListCreativeStatusBreakdownByDetailResponseDetailType
+    , ListCreativeStatusBreakdownByDetailResponseDetailType (..)
+
+    -- ** AdSize
+    , AdSize
+    , adSize
+    , asHeight
+    , asWidth
+    , asSizeType
+
+    -- ** StopWatchingCreativeRequest
+    , StopWatchingCreativeRequest
+    , stopWatchingCreativeRequest
+
+    -- ** WatchCreativeRequest
+    , WatchCreativeRequest
+    , watchCreativeRequest
+    , wcrTopic
+
+    -- ** DealServingMetadata
+    , DealServingMetadata
+    , dealServingMetadata
+    , dsmDealPauseStatus
+
+    -- ** DeliveryControl
+    , DeliveryControl
+    , deliveryControl
+    , dcCreativeBlockingLevel
+    , dcFrequencyCaps
+    , dcDeliveryRateType
+
+    -- ** PricePerBuyer
+    , PricePerBuyer
+    , pricePerBuyer
+    , ppbPrice
+    , ppbAdvertiserIds
+    , ppbBuyer
+
+    -- ** Creative
+    , Creative
+    , creative
+    , cAPIUpdateTime
+    , cDetectedLanguages
+    , cAdvertiserName
+    , cAdChoicesDestinationURL
+    , cAgencyId
+    , cCorrections
+    , cClickThroughURLs
+    , cRestrictedCategories
+    , cDetectedProductCategories
+    , cDealsStatus
+    , cCreativeId
+    , cVideo
+    , cNATive
+    , cDetectedSensitiveCategories
+    , cImpressionTrackingURLs
+    , cAccountId
+    , cAttributes
+    , cVersion
+    , cVendorIds
+    , cDetectedAdvertiserIds
+    , cHTML
+    , cServingRestrictions
+    , cDetectedDomains
+    , cOpenAuctionStatus
+    , cFilteringStats
+    , cDeclaredClickThroughURLs
+
+    -- ** AppContext
+    , AppContext
+    , appContext
+    , acAppTypes
+
+    -- ** MarketplaceTargeting
+    , MarketplaceTargeting
+    , marketplaceTargeting
+    , mtGeoTargeting
+    , mtTechnologyTargeting
+    , mtPlacementTargeting
+    , mtVideoTargeting
+    , mtInventorySizeTargeting
+
+    -- ** BidResponseWithoutBidsStatusRowStatus
+    , BidResponseWithoutBidsStatusRowStatus (..)
+
+    -- ** ListBidResponseErrorsResponse
+    , ListBidResponseErrorsResponse
+    , listBidResponseErrorsResponse
+    , lbrerNextPageToken
+    , lbrerCalloutStatusRows
+
+    -- ** Correction
+    , Correction
+    , correction
+    , cContexts
+    , cDetails
+    , cType
+
+    -- ** CreativeDealAssociation
+    , CreativeDealAssociation
+    , creativeDealAssociation
+    , cdaCreativeId
+    , cdaAccountId
+    , cdaDealsId
+
+    -- ** Seller
+    , Seller
+    , seller
+    , sAccountId
+    , sSubAccountId
+
+    -- ** ListCreativesResponse
+    , ListCreativesResponse
+    , listCreativesResponse
+    , lcrNextPageToken
+    , lcrCreatives
+
+    -- ** RowDimensions
+    , RowDimensions
+    , rowDimensions
+    , rdPublisherIdentifier
+    , rdTimeInterval
+
+    -- ** OperatingSystemTargeting
+    , OperatingSystemTargeting
+    , operatingSystemTargeting
+    , ostOperatingSystemVersionCriteria
+    , ostOperatingSystemCriteria
+
+    -- ** ListCreativeStatusBreakdownByDetailResponse
+    , ListCreativeStatusBreakdownByDetailResponse
+    , listCreativeStatusBreakdownByDetailResponse
+    , lcsbbdrNextPageToken
+    , lcsbbdrDetailType
+    , lcsbbdrFilteredBidDetailRows
+
+    -- ** DayPartTargetingTimeZoneType
+    , DayPartTargetingTimeZoneType (..)
+
+    -- ** SecurityContext
+    , SecurityContext
+    , securityContext
+    , scSecurities
+
+    -- ** Date
+    , Date
+    , date
+    , dDay
+    , dYear
+    , dMonth
+
+    -- ** ClientUserStatus
+    , ClientUserStatus (..)
+
+    -- ** CancelNegotiationRequest
+    , CancelNegotiationRequest
+    , cancelNegotiationRequest
+
+    -- ** ContactInformation
+    , ContactInformation
+    , contactInformation
+    , ciEmail
+    , ciName
+
+    -- ** ServingContextAll
+    , ServingContextAll (..)
+
+    -- ** AbsoluteDateRange
+    , AbsoluteDateRange
+    , absoluteDateRange
+    , adrEndDate
+    , adrStartDate
+
+    -- ** CreativeRestrictionsCreativeFormat
+    , CreativeRestrictionsCreativeFormat (..)
+
+    -- ** Reason
+    , Reason
+    , reason
+    , rStatus
+    , rCount
+
+    -- ** AuctionContext
+    , AuctionContext
+    , auctionContext
+    , acAuctionTypes
+
+    -- ** Deal
+    , Deal
+    , deal
+    , dAvailableStartTime
+    , dExternalDealId
+    , dBuyerPrivateData
+    , dIsSetupComplete
+    , dWebPropertyCode
+    , dDeliveryControl
+    , dDealServingMetadata
+    , dProposalId
+    , dTargeting
+    , dDealId
+    , dCreativeRestrictions
+    , dSyndicationProduct
+    , dCreateProductRevision
+    , dUpdateTime
+    , dTargetingCriterion
+    , dSellerContacts
+    , dCreateProductId
+    , dDisplayName
+    , dProgrammaticCreativeSource
+    , dAvailableEndTime
+    , dCreativePreApprovalPolicy
+    , dDescription
+    , dCreateTime
+    , dCreativeSafeFrameCompatibility
+    , dDealTerms
+
+    -- ** CreativeRestrictions
+    , CreativeRestrictions
+    , creativeRestrictions
+    , crCreativeFormat
+    , crSkippableAdType
+    , crCreativeSpecifications
+
+    -- ** ProposalOriginatorRole
+    , ProposalOriginatorRole (..)
+
+    -- ** Proposal
+    , Proposal
+    , proposal
+    , pBuyerPrivateData
+    , pIsSetupComplete
+    , pDeals
+    , pProposalRevision
+    , pBuyerContacts
+    , pOriginatorRole
+    , pBilledBuyer
+    , pPrivateAuctionId
+    , pIsRenegotiating
+    , pSeller
+    , pProposalId
+    , pUpdateTime
+    , pSellerContacts
+    , pDisplayName
+    , pNotes
+    , pProposalState
+    , pLastUpdaterOrCommentorRole
+    , pBuyer
+
+    -- ** RelativeDateRange
+    , RelativeDateRange
+    , relativeDateRange
+    , rdrOffSetDays
+    , rdrDurationDays
+
+    -- ** CreativeSizeNATiveTemplate
+    , CreativeSizeNATiveTemplate (..)
+
+    -- ** PauseProposalRequest
+    , PauseProposalRequest
+    , pauseProposalRequest
+    , pprReason
+
+    -- ** FirstPartyMobileApplicationTargeting
+    , FirstPartyMobileApplicationTargeting
+    , firstPartyMobileApplicationTargeting
+    , fpmatTargetedAppIds
+    , fpmatExcludedAppIds
+
+    -- ** MetricValue
+    , MetricValue
+    , metricValue
+    , mvValue
+    , mvVariance
+
+    -- ** FilterSetEnvironment
+    , FilterSetEnvironment (..)
+
+    -- ** CompleteSetupRequest
+    , CompleteSetupRequest
+    , completeSetupRequest
+
+    -- ** FilteredBidCreativeRow
+    , FilteredBidCreativeRow
+    , filteredBidCreativeRow
+    , fbcrCreativeId
+    , fbcrRowDimensions
+    , fbcrBidCount
+
+    -- ** LocationContext
+    , LocationContext
+    , locationContext
+    , lcGeoCriteriaIds
+
+    -- ** DayPartDayOfWeek
+    , DayPartDayOfWeek (..)
+
+    -- ** Xgafv
+    , Xgafv (..)
+
+    -- ** TargetingCriteria
+    , TargetingCriteria
+    , targetingCriteria
+    , tcKey
+    , tcExclusions
+    , tcInclusions
+
+    -- ** DealTermsBrandingType
+    , DealTermsBrandingType (..)
+
+    -- ** CalloutStatusRow
+    , CalloutStatusRow
+    , calloutStatusRow
+    , cRowDimensions
+    , cCalloutStatusId
+    , cImpressionCount
+
+    -- ** URLTargeting
+    , URLTargeting
+    , urlTargeting
+    , utTargetedURLs
+    , utExcludedURLs
+
+    -- ** BidResponseWithoutBidsStatusRow
+    , BidResponseWithoutBidsStatusRow
+    , bidResponseWithoutBidsStatusRow
+    , brwbsrStatus
+    , brwbsrRowDimensions
+    , brwbsrImpressionCount
+
+    -- ** FilterSet
+    , FilterSet
+    , filterSet
+    , fsPlatforms
+    , fsRealtimeTimeRange
+    , fsEnvironment
+    , fsFormats
+    , fsCreativeId
+    , fsBreakdownDimensions
+    , fsSellerNetworkIds
+    , fsDealId
+    , fsAbsoluteDateRange
+    , fsName
+    , fsRelativeDateRange
+    , fsTimeSeriesGranularity
+    , fsPublisherIdentifiers
+
+    -- ** TimeInterval
+    , TimeInterval
+    , timeInterval
+    , tiStartTime
+    , tiEndTime
+
+    -- ** ProposalLastUpdaterOrCommentorRole
+    , ProposalLastUpdaterOrCommentorRole (..)
+
+    -- ** RemoveDealAssociationRequest
+    , RemoveDealAssociationRequest
+    , removeDealAssociationRequest
+    , rdarAssociation
+
+    -- ** ClientEntityType
+    , ClientEntityType (..)
+
+    -- ** TargetingValue
+    , TargetingValue
+    , targetingValue
+    , tvCreativeSizeValue
+    , tvStringValue
+    , tvLongValue
+    , tvDayPartTargetingValue
+
+    -- ** ListNonBillableWinningBidsResponse
+    , ListNonBillableWinningBidsResponse
+    , listNonBillableWinningBidsResponse
+    , lnbwbrNextPageToken
+    , lnbwbrNonBillableWinningBidStatusRows
+
+    -- ** FrequencyCapTimeUnitType
+    , FrequencyCapTimeUnitType (..)
+
+    -- ** ListLosingBidsResponse
+    , ListLosingBidsResponse
+    , listLosingBidsResponse
+    , llbrNextPageToken
+    , llbrCreativeStatusRows
+
+    -- ** PricePricingType
+    , PricePricingType (..)
+
+    -- ** NonBillableWinningBidStatusRowStatus
+    , NonBillableWinningBidStatusRowStatus (..)
+
+    -- ** ClientStatus
+    , ClientStatus (..)
+
+    -- ** Price
+    , Price
+    , price
+    , pAmount
+    , pPricingType
+
+    -- ** ListImpressionMetricsResponse
+    , ListImpressionMetricsResponse
+    , listImpressionMetricsResponse
+    , limrNextPageToken
+    , limrImpressionMetricsRows
+
+    -- ** AdSizeSizeType
+    , AdSizeSizeType (..)
+
+    -- ** CreativeDealsStatus
+    , CreativeDealsStatus (..)
+
+    -- ** CreativeSizeSkippableAdType
+    , CreativeSizeSkippableAdType (..)
+
+    -- ** PlatformContext
+    , PlatformContext
+    , platformContext
+    , pcPlatforms
+
+    -- ** VideoContent
+    , VideoContent
+    , videoContent
+    , vcVideoVastXML
+    , vcVideoURL
+
+    -- ** TimeOfDay'
+    , TimeOfDay'
+    , timeOfDay
+    , todNanos
+    , todHours
+    , todMinutes
+    , todSeconds
+
+    -- ** NoteCreatorRole
+    , NoteCreatorRole (..)
+
+    -- ** CreativeSizeCreativeSizeType
+    , CreativeSizeCreativeSizeType (..)
+
+    -- ** GuaranteedFixedPriceTerms
+    , GuaranteedFixedPriceTerms
+    , guaranteedFixedPriceTerms
+    , gfptGuaranteedLooks
+    , gfptGuaranteedImpressions
+    , gfptFixedPrices
+    , gfptMinimumDailyLooks
+
+    -- ** NATiveContent
+    , NATiveContent
+    , nATiveContent
+    , natcStoreURL
+    , natcImage
+    , natcAdvertiserName
+    , natcAppIcon
+    , natcPriceDisplayText
+    , natcClickTrackingURL
+    , natcClickLinkURL
+    , natcBody
+    , natcHeadline
+    , natcCallToAction
+    , natcVideoURL
+    , natcStarRating
+    , natcLogo
+
+    -- ** VideoTargeting
+    , VideoTargeting
+    , videoTargeting
+    , vtTargetedPositionTypes
+    , vtExcludedPositionTypes
+
+    -- ** ClientUser
+    , ClientUser
+    , clientUser
+    , cuEmail
+    , cuStatus
+    , cuUserId
+    , cuClientAccountId
+
+    -- ** Product
+    , Product
+    , product
+    , proAvailableStartTime
+    , proWebPropertyCode
+    , proTerms
+    , proProductRevision
+    , proHasCreatorSignedOff
+    , proSeller
+    , proSyndicationProduct
+    , proUpdateTime
+    , proCreatorContacts
+    , proTargetingCriterion
+    , proDisplayName
+    , proPublisherProFileId
+    , proAvailableEndTime
+    , proProductId
+    , proCreateTime
+
+    -- ** ListClientUserInvitationsResponse
+    , ListClientUserInvitationsResponse
+    , listClientUserInvitationsResponse
+    , lcuirNextPageToken
+    , lcuirInvitations
+
+    -- ** DayPart
+    , DayPart
+    , dayPart
+    , dpStartTime
+    , dpEndTime
+    , dpDayOfWeek
+
+    -- ** MobileApplicationTargeting
+    , MobileApplicationTargeting
+    , mobileApplicationTargeting
+    , matFirstPartyTargeting
+
+    -- ** ListClientsResponse
+    , ListClientsResponse
+    , listClientsResponse
+    , lNextPageToken
+    , lClients
+
+    -- ** ListCreativeStatusBreakdownByCreativeResponse
+    , ListCreativeStatusBreakdownByCreativeResponse
+    , listCreativeStatusBreakdownByCreativeResponse
+    , lcsbbcrNextPageToken
+    , lcsbbcrFilteredBidCreativeRows
+
+    -- ** FrequencyCap
+    , FrequencyCap
+    , frequencyCap
+    , fcMaxImpressions
+    , fcNumTimeUnits
+    , fcTimeUnitType
+
+    -- ** ListBidResponsesWithoutBidsResponse
+    , ListBidResponsesWithoutBidsResponse
+    , listBidResponsesWithoutBidsResponse
+    , lbrwbrNextPageToken
+    , lbrwbrBidResponseWithoutBidsStatusRows
+
+    -- ** ServingRestriction
+    , ServingRestriction
+    , servingRestriction
+    , srStatus
+    , srContexts
+    , srDisApprovalReasons
+    , srDisApproval
+
+    -- ** CreativeSpecification
+    , CreativeSpecification
+    , creativeSpecification
+    , csCreativeCompanionSizes
+    , csCreativeSize
+
+    -- ** ImpressionMetricsRow
+    , ImpressionMetricsRow
+    , impressionMetricsRow
+    , imrRowDimensions
+    , imrAvailableImpressions
+    , imrSuccessfulResponses
+    , imrInventoryMatches
+    , imrBidRequests
+    , imrResponsesWithBids
+
+    -- ** CreativeSize
+    , CreativeSize
+    , creativeSize
+    , csSize
+    , csCompanionSizes
+    , csSkippableAdType
+    , csCreativeSizeType
+    , csAllowedFormats
+    , csNATiveTemplate
+
+    -- ** CorrectionType
+    , CorrectionType (..)
+
+    -- ** ListProposalsResponse
+    , ListProposalsResponse
+    , listProposalsResponse
+    , lprProposals
+    , lprNextPageToken
+
+    -- ** InventorySizeTargeting
+    , InventorySizeTargeting
+    , inventorySizeTargeting
+    , istTargetedInventorySizes
+    , istExcludedInventorySizes
+
+    -- ** DealTerms
+    , DealTerms
+    , dealTerms
+    , dtEstimatedGrossSpend
+    , dtNonGuaranteedFixedPriceTerms
+    , dtNonGuaranteedAuctionTerms
+    , dtBrandingType
+    , dtEstimatedImpressionsPerDay
+    , dtSellerTimeZone
+    , dtGuaranteedFixedPriceTerms
+    , dtDescription
+
+    -- ** FilteringStats
+    , FilteringStats
+    , filteringStats
+    , fsReasons
+    , fsDate
+
+    -- ** ClientUserInvitation
+    , ClientUserInvitation
+    , clientUserInvitation
+    , cuiEmail
+    , cuiInvitationId
+    , cuiClientAccountId
+
+    -- ** NonBillableWinningBidStatusRow
+    , NonBillableWinningBidStatusRow
+    , nonBillableWinningBidStatusRow
+    , nbwbsrStatus
+    , nbwbsrRowDimensions
+    , nbwbsrBidCount
+
+    -- ** ListProductsResponse
+    , ListProductsResponse
+    , listProductsResponse
+    , lisNextPageToken
+    , lisProducts
+
+    -- ** Buyer
+    , Buyer
+    , buyer
+    , bAccountId
+
+    -- ** ListBidMetricsResponse
+    , ListBidMetricsResponse
+    , listBidMetricsResponse
+    , lbmrNextPageToken
+    , lbmrBidMetricsRows
+
+    -- ** Client
+    , Client
+    , client
+    , cEntityName
+    , cStatus
+    , cEntityType
+    , cRole
+    , cVisibleToSeller
+    , cPartnerClientId
+    , cClientAccountId
+    , cClientName
+    , cEntityId
+
+    -- ** DisApproval
+    , DisApproval
+    , disApproval
+    , daReason
+    , daDetails
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Create
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Get
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.Create
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.Get
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.List
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.List
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Update
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.Get
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.List
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.Update
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Create
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.Add
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.List
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.Remove
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Get
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.List
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.StopWatching
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Update
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Watch
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.FinalizedProposals.List
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Products.Get
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Products.List
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Accept
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.AddNote
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.CancelNegotiation
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.CompleteSetup
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Create
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Get
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.List
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Pause
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Resume
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Update
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.PublisherProFiles.Get
+import           Network.Google.Resource.AdExchangeBuyer2.Accounts.PublisherProFiles.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.Creatives.Delete
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidMetrics.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidResponseErrors.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidResponsesWithoutBids.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Create
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Delete
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBidRequests.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.Creatives.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.Details.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Get
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.ImpressionMetrics.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.LosingBids.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.NonBillableWinningBids.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidMetrics.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidResponseErrors.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidResponsesWithoutBids.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Create
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Delete
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBidRequests.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.Creatives.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.Details.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Get
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.ImpressionMetrics.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.LosingBids.List
+import           Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.NonBillableWinningBids.List
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the Ad Exchange Buyer API II service.
+type AdExchangeBuyer2API =
+     BiddersAccountsCreativesDeleteResource :<|>
+       BiddersAccountsFilterSetsFilteredBidRequestsListResource
+       :<|>
+       BiddersAccountsFilterSetsBidResponsesWithoutBidsListResource
+       :<|>
+       BiddersAccountsFilterSetsFilteredBidsCreativesListResource
+       :<|>
+       BiddersAccountsFilterSetsFilteredBidsDetailsListResource
+       :<|>
+       BiddersAccountsFilterSetsFilteredBidsListResource
+       :<|>
+       BiddersAccountsFilterSetsNonBillableWinningBidsListResource
+       :<|> BiddersAccountsFilterSetsLosingBidsListResource
+       :<|>
+       BiddersAccountsFilterSetsImpressionMetricsListResource
+       :<|>
+       BiddersAccountsFilterSetsBidResponseErrorsListResource
+       :<|> BiddersAccountsFilterSetsBidMetricsListResource
+       :<|> BiddersAccountsFilterSetsListResource
+       :<|> BiddersAccountsFilterSetsGetResource
+       :<|> BiddersAccountsFilterSetsCreateResource
+       :<|> BiddersAccountsFilterSetsDeleteResource
+       :<|> BiddersFilterSetsFilteredBidRequestsListResource
+       :<|>
+       BiddersFilterSetsBidResponsesWithoutBidsListResource
+       :<|>
+       BiddersFilterSetsFilteredBidsCreativesListResource
+       :<|> BiddersFilterSetsFilteredBidsDetailsListResource
+       :<|> BiddersFilterSetsFilteredBidsListResource
+       :<|>
+       BiddersFilterSetsNonBillableWinningBidsListResource
+       :<|> BiddersFilterSetsLosingBidsListResource
+       :<|> BiddersFilterSetsImpressionMetricsListResource
+       :<|> BiddersFilterSetsBidResponseErrorsListResource
+       :<|> BiddersFilterSetsBidMetricsListResource
+       :<|> BiddersFilterSetsListResource
+       :<|> BiddersFilterSetsGetResource
+       :<|> BiddersFilterSetsCreateResource
+       :<|> BiddersFilterSetsDeleteResource
+       :<|> AccountsProposalsListResource
+       :<|> AccountsProposalsAcceptResource
+       :<|> AccountsProposalsGetResource
+       :<|> AccountsProposalsAddNoteResource
+       :<|> AccountsProposalsCreateResource
+       :<|> AccountsProposalsPauseResource
+       :<|> AccountsProposalsCancelNegotiationResource
+       :<|> AccountsProposalsCompleteSetupResource
+       :<|> AccountsProposalsUpdateResource
+       :<|> AccountsProposalsResumeResource
+       :<|> AccountsCreativesDealAssociationsListResource
+       :<|> AccountsCreativesDealAssociationsRemoveResource
+       :<|> AccountsCreativesDealAssociationsAddResource
+       :<|> AccountsCreativesListResource
+       :<|> AccountsCreativesGetResource
+       :<|> AccountsCreativesCreateResource
+       :<|> AccountsCreativesUpdateResource
+       :<|> AccountsCreativesWatchResource
+       :<|> AccountsCreativesStopWatchingResource
+       :<|> AccountsClientsInvitationsListResource
+       :<|> AccountsClientsInvitationsGetResource
+       :<|> AccountsClientsInvitationsCreateResource
+       :<|> AccountsClientsUsersListResource
+       :<|> AccountsClientsUsersGetResource
+       :<|> AccountsClientsUsersUpdateResource
+       :<|> AccountsClientsListResource
+       :<|> AccountsClientsGetResource
+       :<|> AccountsClientsCreateResource
+       :<|> AccountsClientsUpdateResource
+       :<|> AccountsProductsListResource
+       :<|> AccountsProductsGetResource
+       :<|> AccountsPublisherProFilesListResource
+       :<|> AccountsPublisherProFilesGetResource
+       :<|> AccountsFinalizedProposalsListResource
diff --git a/gen/Network/Google/AdExchangeBuyer2/Types.hs b/gen/Network/Google/AdExchangeBuyer2/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/AdExchangeBuyer2/Types.hs
@@ -0,0 +1,947 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.AdExchangeBuyer2.Types
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.AdExchangeBuyer2.Types
+    (
+    -- * Service Configuration
+      adExchangeBuyer2Service
+
+    -- * OAuth Scopes
+    , adExchangeBuyerScope
+
+    -- * HTMLContent
+    , HTMLContent
+    , htmlContent
+    , hcHeight
+    , hcSnippet
+    , hcWidth
+
+    -- * ListFilteredBidsResponse
+    , ListFilteredBidsResponse
+    , listFilteredBidsResponse
+    , lfbrNextPageToken
+    , lfbrCreativeStatusRows
+
+    -- * ResumeProposalRequest
+    , ResumeProposalRequest
+    , resumeProposalRequest
+
+    -- * DealProgrammaticCreativeSource
+    , DealProgrammaticCreativeSource (..)
+
+    -- * DealCreativePreApprovalPolicy
+    , DealCreativePreApprovalPolicy (..)
+
+    -- * NonGuaranteedFixedPriceTerms
+    , NonGuaranteedFixedPriceTerms
+    , nonGuaranteedFixedPriceTerms
+    , ngfptFixedPrices
+
+    -- * DeliveryControlCreativeBlockingLevel
+    , DeliveryControlCreativeBlockingLevel (..)
+
+    -- * ListDealAssociationsResponse
+    , ListDealAssociationsResponse
+    , listDealAssociationsResponse
+    , ldarNextPageToken
+    , ldarAssociations
+
+    -- * ProposalProposalState
+    , ProposalProposalState (..)
+
+    -- * Image
+    , Image
+    , image
+    , iHeight
+    , iURL
+    , iWidth
+
+    -- * TechnologyTargeting
+    , TechnologyTargeting
+    , technologyTargeting
+    , ttDeviceCategoryTargeting
+    , ttOperatingSystemTargeting
+    , ttDeviceCapabilityTargeting
+
+    -- * ProductSyndicationProduct
+    , ProductSyndicationProduct (..)
+
+    -- * ListPublisherProFilesResponse
+    , ListPublisherProFilesResponse
+    , listPublisherProFilesResponse
+    , lppfrNextPageToken
+    , lppfrPublisherProFiles
+
+    -- * NonGuaranteedAuctionTerms
+    , NonGuaranteedAuctionTerms
+    , nonGuaranteedAuctionTerms
+    , ngatReservePricesPerBuyer
+    , ngatAutoOptimizePrivateAuction
+
+    -- * CreativeRestrictionsSkippableAdType
+    , CreativeRestrictionsSkippableAdType (..)
+
+    -- * ListClientUsersResponse
+    , ListClientUsersResponse
+    , listClientUsersResponse
+    , lcurNextPageToken
+    , lcurUsers
+
+    -- * BidMetricsRow
+    , BidMetricsRow
+    , bidMetricsRow
+    , bmrBids
+    , bmrBidsInAuction
+    , bmrImpressionsWon
+    , bmrRowDimensions
+    , bmrMeasurableImpressions
+    , bmrViewableImpressions
+    , bmrBilledImpressions
+
+    -- * ServingRestrictionStatus
+    , ServingRestrictionStatus (..)
+
+    -- * DayPartTargeting
+    , DayPartTargeting
+    , dayPartTargeting
+    , dptTimeZoneType
+    , dptDayParts
+
+    -- * CriteriaTargeting
+    , CriteriaTargeting
+    , criteriaTargeting
+    , ctExcludedCriteriaIds
+    , ctTargetedCriteriaIds
+
+    -- * DealPauseStatus
+    , DealPauseStatus
+    , dealPauseStatus
+    , dpsFirstPausedBy
+    , dpsBuyerPauseReason
+    , dpsHasBuyerPaused
+    , dpsSellerPauseReason
+    , dpsHasSellerPaused
+
+    -- * DisApprovalReason
+    , DisApprovalReason (..)
+
+    -- * FilteredBidDetailRow
+    , FilteredBidDetailRow
+    , filteredBidDetailRow
+    , fbdrDetailId
+    , fbdrRowDimensions
+    , fbdrBidCount
+
+    -- * PrivateData
+    , PrivateData
+    , privateData
+    , pdReferenceId
+
+    -- * ClientRole
+    , ClientRole (..)
+
+    -- * DealCreativeSafeFrameCompatibility
+    , DealCreativeSafeFrameCompatibility (..)
+
+    -- * DeliveryControlDeliveryRateType
+    , DeliveryControlDeliveryRateType (..)
+
+    -- * Empty
+    , Empty
+    , empty
+
+    -- * ServingContext
+    , ServingContext
+    , servingContext
+    , scPlatform
+    , scLocation
+    , scSecurityType
+    , scAll
+    , scAuctionType
+    , scAppType
+
+    -- * PublisherProFile
+    , PublisherProFile
+    , publisherProFile
+    , ppfDirectDealsContact
+    , ppfAudienceDescription
+    , ppfLogoURL
+    , ppfOverview
+    , ppfSamplePageURL
+    , ppfSeller
+    , ppfMediaKitURL
+    , ppfBuyerPitchStatement
+    , ppfDisplayName
+    , ppfPublisherProFileId
+    , ppfGooglePlusURL
+    , ppfDomains
+    , ppfRateCardInfoURL
+    , ppfTopHeadlines
+    , ppfProgrammaticDealsContact
+
+    -- * AcceptProposalRequest
+    , AcceptProposalRequest
+    , acceptProposalRequest
+    , aprProposalRevision
+
+    -- * Size
+    , Size
+    , size
+    , sHeight
+    , sWidth
+
+    -- * ListFilteredBidRequestsResponse
+    , ListFilteredBidRequestsResponse
+    , listFilteredBidRequestsResponse
+    , lfbrrNextPageToken
+    , lfbrrCalloutStatusRows
+
+    -- * AddDealAssociationRequest
+    , AddDealAssociationRequest
+    , addDealAssociationRequest
+    , adarAssociation
+
+    -- * CreativeStatusRow
+    , CreativeStatusRow
+    , creativeStatusRow
+    , csrRowDimensions
+    , csrBidCount
+    , csrCreativeStatusId
+
+    -- * RealtimeTimeRange
+    , RealtimeTimeRange
+    , realtimeTimeRange
+    , rtrStartTimestamp
+
+    -- * DealPauseStatusFirstPausedBy
+    , DealPauseStatusFirstPausedBy (..)
+
+    -- * Note
+    , Note
+    , note
+    , nProposalRevision
+    , nNote
+    , nNoteId
+    , nCreatorRole
+    , nCreateTime
+
+    -- * CreativeOpenAuctionStatus
+    , CreativeOpenAuctionStatus (..)
+
+    -- * DealSyndicationProduct
+    , DealSyndicationProduct (..)
+
+    -- * ListFilterSetsResponse
+    , ListFilterSetsResponse
+    , listFilterSetsResponse
+    , lfsrNextPageToken
+    , lfsrFilterSets
+
+    -- * Money
+    , Money
+    , money
+    , mCurrencyCode
+    , mNanos
+    , mUnits
+
+    -- * AddNoteRequest
+    , AddNoteRequest
+    , addNoteRequest
+    , anrNote
+
+    -- * PlacementTargeting
+    , PlacementTargeting
+    , placementTargeting
+    , ptURLTargeting
+    , ptMobileApplicationTargeting
+
+    -- * FilterSetTimeSeriesGranularity
+    , FilterSetTimeSeriesGranularity (..)
+
+    -- * ListCreativeStatusBreakdownByDetailResponseDetailType
+    , ListCreativeStatusBreakdownByDetailResponseDetailType (..)
+
+    -- * AdSize
+    , AdSize
+    , adSize
+    , asHeight
+    , asWidth
+    , asSizeType
+
+    -- * StopWatchingCreativeRequest
+    , StopWatchingCreativeRequest
+    , stopWatchingCreativeRequest
+
+    -- * WatchCreativeRequest
+    , WatchCreativeRequest
+    , watchCreativeRequest
+    , wcrTopic
+
+    -- * DealServingMetadata
+    , DealServingMetadata
+    , dealServingMetadata
+    , dsmDealPauseStatus
+
+    -- * DeliveryControl
+    , DeliveryControl
+    , deliveryControl
+    , dcCreativeBlockingLevel
+    , dcFrequencyCaps
+    , dcDeliveryRateType
+
+    -- * PricePerBuyer
+    , PricePerBuyer
+    , pricePerBuyer
+    , ppbPrice
+    , ppbAdvertiserIds
+    , ppbBuyer
+
+    -- * Creative
+    , Creative
+    , creative
+    , cAPIUpdateTime
+    , cDetectedLanguages
+    , cAdvertiserName
+    , cAdChoicesDestinationURL
+    , cAgencyId
+    , cCorrections
+    , cClickThroughURLs
+    , cRestrictedCategories
+    , cDetectedProductCategories
+    , cDealsStatus
+    , cCreativeId
+    , cVideo
+    , cNATive
+    , cDetectedSensitiveCategories
+    , cImpressionTrackingURLs
+    , cAccountId
+    , cAttributes
+    , cVersion
+    , cVendorIds
+    , cDetectedAdvertiserIds
+    , cHTML
+    , cServingRestrictions
+    , cDetectedDomains
+    , cOpenAuctionStatus
+    , cFilteringStats
+    , cDeclaredClickThroughURLs
+
+    -- * AppContext
+    , AppContext
+    , appContext
+    , acAppTypes
+
+    -- * MarketplaceTargeting
+    , MarketplaceTargeting
+    , marketplaceTargeting
+    , mtGeoTargeting
+    , mtTechnologyTargeting
+    , mtPlacementTargeting
+    , mtVideoTargeting
+    , mtInventorySizeTargeting
+
+    -- * BidResponseWithoutBidsStatusRowStatus
+    , BidResponseWithoutBidsStatusRowStatus (..)
+
+    -- * ListBidResponseErrorsResponse
+    , ListBidResponseErrorsResponse
+    , listBidResponseErrorsResponse
+    , lbrerNextPageToken
+    , lbrerCalloutStatusRows
+
+    -- * Correction
+    , Correction
+    , correction
+    , cContexts
+    , cDetails
+    , cType
+
+    -- * CreativeDealAssociation
+    , CreativeDealAssociation
+    , creativeDealAssociation
+    , cdaCreativeId
+    , cdaAccountId
+    , cdaDealsId
+
+    -- * Seller
+    , Seller
+    , seller
+    , sAccountId
+    , sSubAccountId
+
+    -- * ListCreativesResponse
+    , ListCreativesResponse
+    , listCreativesResponse
+    , lcrNextPageToken
+    , lcrCreatives
+
+    -- * RowDimensions
+    , RowDimensions
+    , rowDimensions
+    , rdPublisherIdentifier
+    , rdTimeInterval
+
+    -- * OperatingSystemTargeting
+    , OperatingSystemTargeting
+    , operatingSystemTargeting
+    , ostOperatingSystemVersionCriteria
+    , ostOperatingSystemCriteria
+
+    -- * ListCreativeStatusBreakdownByDetailResponse
+    , ListCreativeStatusBreakdownByDetailResponse
+    , listCreativeStatusBreakdownByDetailResponse
+    , lcsbbdrNextPageToken
+    , lcsbbdrDetailType
+    , lcsbbdrFilteredBidDetailRows
+
+    -- * DayPartTargetingTimeZoneType
+    , DayPartTargetingTimeZoneType (..)
+
+    -- * SecurityContext
+    , SecurityContext
+    , securityContext
+    , scSecurities
+
+    -- * Date
+    , Date
+    , date
+    , dDay
+    , dYear
+    , dMonth
+
+    -- * ClientUserStatus
+    , ClientUserStatus (..)
+
+    -- * CancelNegotiationRequest
+    , CancelNegotiationRequest
+    , cancelNegotiationRequest
+
+    -- * ContactInformation
+    , ContactInformation
+    , contactInformation
+    , ciEmail
+    , ciName
+
+    -- * ServingContextAll
+    , ServingContextAll (..)
+
+    -- * AbsoluteDateRange
+    , AbsoluteDateRange
+    , absoluteDateRange
+    , adrEndDate
+    , adrStartDate
+
+    -- * CreativeRestrictionsCreativeFormat
+    , CreativeRestrictionsCreativeFormat (..)
+
+    -- * Reason
+    , Reason
+    , reason
+    , rStatus
+    , rCount
+
+    -- * AuctionContext
+    , AuctionContext
+    , auctionContext
+    , acAuctionTypes
+
+    -- * Deal
+    , Deal
+    , deal
+    , dAvailableStartTime
+    , dExternalDealId
+    , dBuyerPrivateData
+    , dIsSetupComplete
+    , dWebPropertyCode
+    , dDeliveryControl
+    , dDealServingMetadata
+    , dProposalId
+    , dTargeting
+    , dDealId
+    , dCreativeRestrictions
+    , dSyndicationProduct
+    , dCreateProductRevision
+    , dUpdateTime
+    , dTargetingCriterion
+    , dSellerContacts
+    , dCreateProductId
+    , dDisplayName
+    , dProgrammaticCreativeSource
+    , dAvailableEndTime
+    , dCreativePreApprovalPolicy
+    , dDescription
+    , dCreateTime
+    , dCreativeSafeFrameCompatibility
+    , dDealTerms
+
+    -- * CreativeRestrictions
+    , CreativeRestrictions
+    , creativeRestrictions
+    , crCreativeFormat
+    , crSkippableAdType
+    , crCreativeSpecifications
+
+    -- * ProposalOriginatorRole
+    , ProposalOriginatorRole (..)
+
+    -- * Proposal
+    , Proposal
+    , proposal
+    , pBuyerPrivateData
+    , pIsSetupComplete
+    , pDeals
+    , pProposalRevision
+    , pBuyerContacts
+    , pOriginatorRole
+    , pBilledBuyer
+    , pPrivateAuctionId
+    , pIsRenegotiating
+    , pSeller
+    , pProposalId
+    , pUpdateTime
+    , pSellerContacts
+    , pDisplayName
+    , pNotes
+    , pProposalState
+    , pLastUpdaterOrCommentorRole
+    , pBuyer
+
+    -- * RelativeDateRange
+    , RelativeDateRange
+    , relativeDateRange
+    , rdrOffSetDays
+    , rdrDurationDays
+
+    -- * CreativeSizeNATiveTemplate
+    , CreativeSizeNATiveTemplate (..)
+
+    -- * PauseProposalRequest
+    , PauseProposalRequest
+    , pauseProposalRequest
+    , pprReason
+
+    -- * FirstPartyMobileApplicationTargeting
+    , FirstPartyMobileApplicationTargeting
+    , firstPartyMobileApplicationTargeting
+    , fpmatTargetedAppIds
+    , fpmatExcludedAppIds
+
+    -- * MetricValue
+    , MetricValue
+    , metricValue
+    , mvValue
+    , mvVariance
+
+    -- * FilterSetEnvironment
+    , FilterSetEnvironment (..)
+
+    -- * CompleteSetupRequest
+    , CompleteSetupRequest
+    , completeSetupRequest
+
+    -- * FilteredBidCreativeRow
+    , FilteredBidCreativeRow
+    , filteredBidCreativeRow
+    , fbcrCreativeId
+    , fbcrRowDimensions
+    , fbcrBidCount
+
+    -- * LocationContext
+    , LocationContext
+    , locationContext
+    , lcGeoCriteriaIds
+
+    -- * DayPartDayOfWeek
+    , DayPartDayOfWeek (..)
+
+    -- * Xgafv
+    , Xgafv (..)
+
+    -- * TargetingCriteria
+    , TargetingCriteria
+    , targetingCriteria
+    , tcKey
+    , tcExclusions
+    , tcInclusions
+
+    -- * DealTermsBrandingType
+    , DealTermsBrandingType (..)
+
+    -- * CalloutStatusRow
+    , CalloutStatusRow
+    , calloutStatusRow
+    , cRowDimensions
+    , cCalloutStatusId
+    , cImpressionCount
+
+    -- * URLTargeting
+    , URLTargeting
+    , urlTargeting
+    , utTargetedURLs
+    , utExcludedURLs
+
+    -- * BidResponseWithoutBidsStatusRow
+    , BidResponseWithoutBidsStatusRow
+    , bidResponseWithoutBidsStatusRow
+    , brwbsrStatus
+    , brwbsrRowDimensions
+    , brwbsrImpressionCount
+
+    -- * FilterSet
+    , FilterSet
+    , filterSet
+    , fsPlatforms
+    , fsRealtimeTimeRange
+    , fsEnvironment
+    , fsFormats
+    , fsCreativeId
+    , fsBreakdownDimensions
+    , fsSellerNetworkIds
+    , fsDealId
+    , fsAbsoluteDateRange
+    , fsName
+    , fsRelativeDateRange
+    , fsTimeSeriesGranularity
+    , fsPublisherIdentifiers
+
+    -- * TimeInterval
+    , TimeInterval
+    , timeInterval
+    , tiStartTime
+    , tiEndTime
+
+    -- * ProposalLastUpdaterOrCommentorRole
+    , ProposalLastUpdaterOrCommentorRole (..)
+
+    -- * RemoveDealAssociationRequest
+    , RemoveDealAssociationRequest
+    , removeDealAssociationRequest
+    , rdarAssociation
+
+    -- * ClientEntityType
+    , ClientEntityType (..)
+
+    -- * TargetingValue
+    , TargetingValue
+    , targetingValue
+    , tvCreativeSizeValue
+    , tvStringValue
+    , tvLongValue
+    , tvDayPartTargetingValue
+
+    -- * ListNonBillableWinningBidsResponse
+    , ListNonBillableWinningBidsResponse
+    , listNonBillableWinningBidsResponse
+    , lnbwbrNextPageToken
+    , lnbwbrNonBillableWinningBidStatusRows
+
+    -- * FrequencyCapTimeUnitType
+    , FrequencyCapTimeUnitType (..)
+
+    -- * ListLosingBidsResponse
+    , ListLosingBidsResponse
+    , listLosingBidsResponse
+    , llbrNextPageToken
+    , llbrCreativeStatusRows
+
+    -- * PricePricingType
+    , PricePricingType (..)
+
+    -- * NonBillableWinningBidStatusRowStatus
+    , NonBillableWinningBidStatusRowStatus (..)
+
+    -- * ClientStatus
+    , ClientStatus (..)
+
+    -- * Price
+    , Price
+    , price
+    , pAmount
+    , pPricingType
+
+    -- * ListImpressionMetricsResponse
+    , ListImpressionMetricsResponse
+    , listImpressionMetricsResponse
+    , limrNextPageToken
+    , limrImpressionMetricsRows
+
+    -- * AdSizeSizeType
+    , AdSizeSizeType (..)
+
+    -- * CreativeDealsStatus
+    , CreativeDealsStatus (..)
+
+    -- * CreativeSizeSkippableAdType
+    , CreativeSizeSkippableAdType (..)
+
+    -- * PlatformContext
+    , PlatformContext
+    , platformContext
+    , pcPlatforms
+
+    -- * VideoContent
+    , VideoContent
+    , videoContent
+    , vcVideoVastXML
+    , vcVideoURL
+
+    -- * TimeOfDay'
+    , TimeOfDay'
+    , timeOfDay
+    , todNanos
+    , todHours
+    , todMinutes
+    , todSeconds
+
+    -- * NoteCreatorRole
+    , NoteCreatorRole (..)
+
+    -- * CreativeSizeCreativeSizeType
+    , CreativeSizeCreativeSizeType (..)
+
+    -- * GuaranteedFixedPriceTerms
+    , GuaranteedFixedPriceTerms
+    , guaranteedFixedPriceTerms
+    , gfptGuaranteedLooks
+    , gfptGuaranteedImpressions
+    , gfptFixedPrices
+    , gfptMinimumDailyLooks
+
+    -- * NATiveContent
+    , NATiveContent
+    , nATiveContent
+    , natcStoreURL
+    , natcImage
+    , natcAdvertiserName
+    , natcAppIcon
+    , natcPriceDisplayText
+    , natcClickTrackingURL
+    , natcClickLinkURL
+    , natcBody
+    , natcHeadline
+    , natcCallToAction
+    , natcVideoURL
+    , natcStarRating
+    , natcLogo
+
+    -- * VideoTargeting
+    , VideoTargeting
+    , videoTargeting
+    , vtTargetedPositionTypes
+    , vtExcludedPositionTypes
+
+    -- * ClientUser
+    , ClientUser
+    , clientUser
+    , cuEmail
+    , cuStatus
+    , cuUserId
+    , cuClientAccountId
+
+    -- * Product
+    , Product
+    , product
+    , proAvailableStartTime
+    , proWebPropertyCode
+    , proTerms
+    , proProductRevision
+    , proHasCreatorSignedOff
+    , proSeller
+    , proSyndicationProduct
+    , proUpdateTime
+    , proCreatorContacts
+    , proTargetingCriterion
+    , proDisplayName
+    , proPublisherProFileId
+    , proAvailableEndTime
+    , proProductId
+    , proCreateTime
+
+    -- * ListClientUserInvitationsResponse
+    , ListClientUserInvitationsResponse
+    , listClientUserInvitationsResponse
+    , lcuirNextPageToken
+    , lcuirInvitations
+
+    -- * DayPart
+    , DayPart
+    , dayPart
+    , dpStartTime
+    , dpEndTime
+    , dpDayOfWeek
+
+    -- * MobileApplicationTargeting
+    , MobileApplicationTargeting
+    , mobileApplicationTargeting
+    , matFirstPartyTargeting
+
+    -- * ListClientsResponse
+    , ListClientsResponse
+    , listClientsResponse
+    , lNextPageToken
+    , lClients
+
+    -- * ListCreativeStatusBreakdownByCreativeResponse
+    , ListCreativeStatusBreakdownByCreativeResponse
+    , listCreativeStatusBreakdownByCreativeResponse
+    , lcsbbcrNextPageToken
+    , lcsbbcrFilteredBidCreativeRows
+
+    -- * FrequencyCap
+    , FrequencyCap
+    , frequencyCap
+    , fcMaxImpressions
+    , fcNumTimeUnits
+    , fcTimeUnitType
+
+    -- * ListBidResponsesWithoutBidsResponse
+    , ListBidResponsesWithoutBidsResponse
+    , listBidResponsesWithoutBidsResponse
+    , lbrwbrNextPageToken
+    , lbrwbrBidResponseWithoutBidsStatusRows
+
+    -- * ServingRestriction
+    , ServingRestriction
+    , servingRestriction
+    , srStatus
+    , srContexts
+    , srDisApprovalReasons
+    , srDisApproval
+
+    -- * CreativeSpecification
+    , CreativeSpecification
+    , creativeSpecification
+    , csCreativeCompanionSizes
+    , csCreativeSize
+
+    -- * ImpressionMetricsRow
+    , ImpressionMetricsRow
+    , impressionMetricsRow
+    , imrRowDimensions
+    , imrAvailableImpressions
+    , imrSuccessfulResponses
+    , imrInventoryMatches
+    , imrBidRequests
+    , imrResponsesWithBids
+
+    -- * CreativeSize
+    , CreativeSize
+    , creativeSize
+    , csSize
+    , csCompanionSizes
+    , csSkippableAdType
+    , csCreativeSizeType
+    , csAllowedFormats
+    , csNATiveTemplate
+
+    -- * CorrectionType
+    , CorrectionType (..)
+
+    -- * ListProposalsResponse
+    , ListProposalsResponse
+    , listProposalsResponse
+    , lprProposals
+    , lprNextPageToken
+
+    -- * InventorySizeTargeting
+    , InventorySizeTargeting
+    , inventorySizeTargeting
+    , istTargetedInventorySizes
+    , istExcludedInventorySizes
+
+    -- * DealTerms
+    , DealTerms
+    , dealTerms
+    , dtEstimatedGrossSpend
+    , dtNonGuaranteedFixedPriceTerms
+    , dtNonGuaranteedAuctionTerms
+    , dtBrandingType
+    , dtEstimatedImpressionsPerDay
+    , dtSellerTimeZone
+    , dtGuaranteedFixedPriceTerms
+    , dtDescription
+
+    -- * FilteringStats
+    , FilteringStats
+    , filteringStats
+    , fsReasons
+    , fsDate
+
+    -- * ClientUserInvitation
+    , ClientUserInvitation
+    , clientUserInvitation
+    , cuiEmail
+    , cuiInvitationId
+    , cuiClientAccountId
+
+    -- * NonBillableWinningBidStatusRow
+    , NonBillableWinningBidStatusRow
+    , nonBillableWinningBidStatusRow
+    , nbwbsrStatus
+    , nbwbsrRowDimensions
+    , nbwbsrBidCount
+
+    -- * ListProductsResponse
+    , ListProductsResponse
+    , listProductsResponse
+    , lisNextPageToken
+    , lisProducts
+
+    -- * Buyer
+    , Buyer
+    , buyer
+    , bAccountId
+
+    -- * ListBidMetricsResponse
+    , ListBidMetricsResponse
+    , listBidMetricsResponse
+    , lbmrNextPageToken
+    , lbmrBidMetricsRows
+
+    -- * Client
+    , Client
+    , client
+    , cEntityName
+    , cStatus
+    , cEntityType
+    , cRole
+    , cVisibleToSeller
+    , cPartnerClientId
+    , cClientAccountId
+    , cClientName
+    , cEntityId
+
+    -- * DisApproval
+    , DisApproval
+    , disApproval
+    , daReason
+    , daDetails
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types.Product
+import           Network.Google.AdExchangeBuyer2.Types.Sum
+import           Network.Google.Prelude
+
+-- | Default request referring to version 'v2beta1' of the Ad Exchange Buyer API II. This contains the host and root path used as a starting point for constructing service requests.
+adExchangeBuyer2Service :: ServiceConfig
+adExchangeBuyer2Service
+  = defaultService
+      (ServiceId "adexchangebuyer2:v2beta1")
+      "adexchangebuyer.googleapis.com"
+
+-- | Manage your Ad Exchange buyer account configuration
+adExchangeBuyerScope :: Proxy '["https://www.googleapis.com/auth/adexchange.buyer"]
+adExchangeBuyerScope = Proxy;
diff --git a/gen/Network/Google/AdExchangeBuyer2/Types/Product.hs b/gen/Network/Google/AdExchangeBuyer2/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/AdExchangeBuyer2/Types/Product.hs
@@ -0,0 +1,7628 @@
+{-# 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.AdExchangeBuyer2.Types.Product
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.AdExchangeBuyer2.Types.Product where
+
+import           Network.Google.AdExchangeBuyer2.Types.Sum
+import           Network.Google.Prelude
+
+-- | HTML content for a creative.
+--
+-- /See:/ 'htmlContent' smart constructor.
+data HTMLContent = HTMLContent'
+    { _hcHeight  :: !(Maybe (Textual Int32))
+    , _hcSnippet :: !(Maybe Text)
+    , _hcWidth   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'HTMLContent' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'hcHeight'
+--
+-- * 'hcSnippet'
+--
+-- * 'hcWidth'
+htmlContent
+    :: HTMLContent
+htmlContent =
+    HTMLContent'
+    { _hcHeight = Nothing
+    , _hcSnippet = Nothing
+    , _hcWidth = Nothing
+    }
+
+-- | The height of the HTML snippet in pixels.
+hcHeight :: Lens' HTMLContent (Maybe Int32)
+hcHeight
+  = lens _hcHeight (\ s a -> s{_hcHeight = a}) .
+      mapping _Coerce
+
+-- | The HTML snippet that displays the ad when inserted in the web page.
+hcSnippet :: Lens' HTMLContent (Maybe Text)
+hcSnippet
+  = lens _hcSnippet (\ s a -> s{_hcSnippet = a})
+
+-- | The width of the HTML snippet in pixels.
+hcWidth :: Lens' HTMLContent (Maybe Int32)
+hcWidth
+  = lens _hcWidth (\ s a -> s{_hcWidth = a}) .
+      mapping _Coerce
+
+instance FromJSON HTMLContent where
+        parseJSON
+          = withObject "HTMLContent"
+              (\ o ->
+                 HTMLContent' <$>
+                   (o .:? "height") <*> (o .:? "snippet") <*>
+                     (o .:? "width"))
+
+instance ToJSON HTMLContent where
+        toJSON HTMLContent'{..}
+          = object
+              (catMaybes
+                 [("height" .=) <$> _hcHeight,
+                  ("snippet" .=) <$> _hcSnippet,
+                  ("width" .=) <$> _hcWidth])
+
+-- | Response message for listing all reasons that bids were filtered from
+-- the auction.
+--
+-- /See:/ 'listFilteredBidsResponse' smart constructor.
+data ListFilteredBidsResponse = ListFilteredBidsResponse'
+    { _lfbrNextPageToken      :: !(Maybe Text)
+    , _lfbrCreativeStatusRows :: !(Maybe [CreativeStatusRow])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListFilteredBidsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfbrNextPageToken'
+--
+-- * 'lfbrCreativeStatusRows'
+listFilteredBidsResponse
+    :: ListFilteredBidsResponse
+listFilteredBidsResponse =
+    ListFilteredBidsResponse'
+    { _lfbrNextPageToken = Nothing
+    , _lfbrCreativeStatusRows = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListFilteredBidsRequest.pageToken field in the subsequent call to the
+-- filteredBids.list method to retrieve the next page of results.
+lfbrNextPageToken :: Lens' ListFilteredBidsResponse (Maybe Text)
+lfbrNextPageToken
+  = lens _lfbrNextPageToken
+      (\ s a -> s{_lfbrNextPageToken = a})
+
+-- | List of rows, with counts of filtered bids aggregated by filtering
+-- reason (i.e. creative status).
+lfbrCreativeStatusRows :: Lens' ListFilteredBidsResponse [CreativeStatusRow]
+lfbrCreativeStatusRows
+  = lens _lfbrCreativeStatusRows
+      (\ s a -> s{_lfbrCreativeStatusRows = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListFilteredBidsResponse where
+        parseJSON
+          = withObject "ListFilteredBidsResponse"
+              (\ o ->
+                 ListFilteredBidsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "creativeStatusRows" .!= mempty))
+
+instance ToJSON ListFilteredBidsResponse where
+        toJSON ListFilteredBidsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lfbrNextPageToken,
+                  ("creativeStatusRows" .=) <$>
+                    _lfbrCreativeStatusRows])
+
+-- | Request message to resume (unpause) serving for an already-finalized
+-- proposal.
+--
+-- /See:/ 'resumeProposalRequest' smart constructor.
+data ResumeProposalRequest =
+    ResumeProposalRequest'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResumeProposalRequest' with the minimum fields required to make a request.
+--
+resumeProposalRequest
+    :: ResumeProposalRequest
+resumeProposalRequest = ResumeProposalRequest'
+
+instance FromJSON ResumeProposalRequest where
+        parseJSON
+          = withObject "ResumeProposalRequest"
+              (\ o -> pure ResumeProposalRequest')
+
+instance ToJSON ResumeProposalRequest where
+        toJSON = const emptyObject
+
+-- | Terms for Preferred Deals. Note that Preferred Deals cannot be created
+-- via the API at this time, but can be returned in a get or list request.
+--
+-- /See:/ 'nonGuaranteedFixedPriceTerms' smart constructor.
+newtype NonGuaranteedFixedPriceTerms = NonGuaranteedFixedPriceTerms'
+    { _ngfptFixedPrices :: Maybe [PricePerBuyer]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'NonGuaranteedFixedPriceTerms' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ngfptFixedPrices'
+nonGuaranteedFixedPriceTerms
+    :: NonGuaranteedFixedPriceTerms
+nonGuaranteedFixedPriceTerms =
+    NonGuaranteedFixedPriceTerms'
+    { _ngfptFixedPrices = Nothing
+    }
+
+-- | Fixed price for the specified buyer.
+ngfptFixedPrices :: Lens' NonGuaranteedFixedPriceTerms [PricePerBuyer]
+ngfptFixedPrices
+  = lens _ngfptFixedPrices
+      (\ s a -> s{_ngfptFixedPrices = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON NonGuaranteedFixedPriceTerms where
+        parseJSON
+          = withObject "NonGuaranteedFixedPriceTerms"
+              (\ o ->
+                 NonGuaranteedFixedPriceTerms' <$>
+                   (o .:? "fixedPrices" .!= mempty))
+
+instance ToJSON NonGuaranteedFixedPriceTerms where
+        toJSON NonGuaranteedFixedPriceTerms'{..}
+          = object
+              (catMaybes
+                 [("fixedPrices" .=) <$> _ngfptFixedPrices])
+
+-- | A response for listing creative and deal associations
+--
+-- /See:/ 'listDealAssociationsResponse' smart constructor.
+data ListDealAssociationsResponse = ListDealAssociationsResponse'
+    { _ldarNextPageToken :: !(Maybe Text)
+    , _ldarAssociations  :: !(Maybe [CreativeDealAssociation])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListDealAssociationsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ldarNextPageToken'
+--
+-- * 'ldarAssociations'
+listDealAssociationsResponse
+    :: ListDealAssociationsResponse
+listDealAssociationsResponse =
+    ListDealAssociationsResponse'
+    { _ldarNextPageToken = Nothing
+    , _ldarAssociations = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListDealAssociationsRequest.page_token field in the subsequent call to
+-- \'ListDealAssociation\' method to retrieve the next page of results.
+ldarNextPageToken :: Lens' ListDealAssociationsResponse (Maybe Text)
+ldarNextPageToken
+  = lens _ldarNextPageToken
+      (\ s a -> s{_ldarNextPageToken = a})
+
+-- | The list of associations.
+ldarAssociations :: Lens' ListDealAssociationsResponse [CreativeDealAssociation]
+ldarAssociations
+  = lens _ldarAssociations
+      (\ s a -> s{_ldarAssociations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListDealAssociationsResponse where
+        parseJSON
+          = withObject "ListDealAssociationsResponse"
+              (\ o ->
+                 ListDealAssociationsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "associations" .!= mempty))
+
+instance ToJSON ListDealAssociationsResponse where
+        toJSON ListDealAssociationsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _ldarNextPageToken,
+                  ("associations" .=) <$> _ldarAssociations])
+
+-- | An image resource. You may provide a larger image than was requested, so
+-- long as the aspect ratio is preserved.
+--
+-- /See:/ 'image' smart constructor.
+data Image = Image'
+    { _iHeight :: !(Maybe (Textual Int32))
+    , _iURL    :: !(Maybe Text)
+    , _iWidth  :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Image' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iHeight'
+--
+-- * 'iURL'
+--
+-- * 'iWidth'
+image
+    :: Image
+image =
+    Image'
+    { _iHeight = Nothing
+    , _iURL = Nothing
+    , _iWidth = Nothing
+    }
+
+-- | Image height in pixels.
+iHeight :: Lens' Image (Maybe Int32)
+iHeight
+  = lens _iHeight (\ s a -> s{_iHeight = a}) .
+      mapping _Coerce
+
+-- | The URL of the image.
+iURL :: Lens' Image (Maybe Text)
+iURL = lens _iURL (\ s a -> s{_iURL = a})
+
+-- | Image width in pixels.
+iWidth :: Lens' Image (Maybe Int32)
+iWidth
+  = lens _iWidth (\ s a -> s{_iWidth = a}) .
+      mapping _Coerce
+
+instance FromJSON Image where
+        parseJSON
+          = withObject "Image"
+              (\ o ->
+                 Image' <$>
+                   (o .:? "height") <*> (o .:? "url") <*>
+                     (o .:? "width"))
+
+instance ToJSON Image where
+        toJSON Image'{..}
+          = object
+              (catMaybes
+                 [("height" .=) <$> _iHeight, ("url" .=) <$> _iURL,
+                  ("width" .=) <$> _iWidth])
+
+-- | Represents targeting about various types of technology.
+--
+-- /See:/ 'technologyTargeting' smart constructor.
+data TechnologyTargeting = TechnologyTargeting'
+    { _ttDeviceCategoryTargeting   :: !(Maybe CriteriaTargeting)
+    , _ttOperatingSystemTargeting  :: !(Maybe OperatingSystemTargeting)
+    , _ttDeviceCapabilityTargeting :: !(Maybe CriteriaTargeting)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TechnologyTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ttDeviceCategoryTargeting'
+--
+-- * 'ttOperatingSystemTargeting'
+--
+-- * 'ttDeviceCapabilityTargeting'
+technologyTargeting
+    :: TechnologyTargeting
+technologyTargeting =
+    TechnologyTargeting'
+    { _ttDeviceCategoryTargeting = Nothing
+    , _ttOperatingSystemTargeting = Nothing
+    , _ttDeviceCapabilityTargeting = Nothing
+    }
+
+-- | IDs of device categories to be included\/excluded.
+ttDeviceCategoryTargeting :: Lens' TechnologyTargeting (Maybe CriteriaTargeting)
+ttDeviceCategoryTargeting
+  = lens _ttDeviceCategoryTargeting
+      (\ s a -> s{_ttDeviceCategoryTargeting = a})
+
+-- | Operating system related targeting information.
+ttOperatingSystemTargeting :: Lens' TechnologyTargeting (Maybe OperatingSystemTargeting)
+ttOperatingSystemTargeting
+  = lens _ttOperatingSystemTargeting
+      (\ s a -> s{_ttOperatingSystemTargeting = a})
+
+-- | IDs of device capabilities to be included\/excluded.
+ttDeviceCapabilityTargeting :: Lens' TechnologyTargeting (Maybe CriteriaTargeting)
+ttDeviceCapabilityTargeting
+  = lens _ttDeviceCapabilityTargeting
+      (\ s a -> s{_ttDeviceCapabilityTargeting = a})
+
+instance FromJSON TechnologyTargeting where
+        parseJSON
+          = withObject "TechnologyTargeting"
+              (\ o ->
+                 TechnologyTargeting' <$>
+                   (o .:? "deviceCategoryTargeting") <*>
+                     (o .:? "operatingSystemTargeting")
+                     <*> (o .:? "deviceCapabilityTargeting"))
+
+instance ToJSON TechnologyTargeting where
+        toJSON TechnologyTargeting'{..}
+          = object
+              (catMaybes
+                 [("deviceCategoryTargeting" .=) <$>
+                    _ttDeviceCategoryTargeting,
+                  ("operatingSystemTargeting" .=) <$>
+                    _ttOperatingSystemTargeting,
+                  ("deviceCapabilityTargeting" .=) <$>
+                    _ttDeviceCapabilityTargeting])
+
+-- | Response message for profiles visible to the buyer.
+--
+-- /See:/ 'listPublisherProFilesResponse' smart constructor.
+data ListPublisherProFilesResponse = ListPublisherProFilesResponse'
+    { _lppfrNextPageToken     :: !(Maybe Text)
+    , _lppfrPublisherProFiles :: !(Maybe [PublisherProFile])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListPublisherProFilesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lppfrNextPageToken'
+--
+-- * 'lppfrPublisherProFiles'
+listPublisherProFilesResponse
+    :: ListPublisherProFilesResponse
+listPublisherProFilesResponse =
+    ListPublisherProFilesResponse'
+    { _lppfrNextPageToken = Nothing
+    , _lppfrPublisherProFiles = Nothing
+    }
+
+-- | List pagination support
+lppfrNextPageToken :: Lens' ListPublisherProFilesResponse (Maybe Text)
+lppfrNextPageToken
+  = lens _lppfrNextPageToken
+      (\ s a -> s{_lppfrNextPageToken = a})
+
+-- | The list of matching publisher profiles.
+lppfrPublisherProFiles :: Lens' ListPublisherProFilesResponse [PublisherProFile]
+lppfrPublisherProFiles
+  = lens _lppfrPublisherProFiles
+      (\ s a -> s{_lppfrPublisherProFiles = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListPublisherProFilesResponse where
+        parseJSON
+          = withObject "ListPublisherProFilesResponse"
+              (\ o ->
+                 ListPublisherProFilesResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "publisherProfiles" .!= mempty))
+
+instance ToJSON ListPublisherProFilesResponse where
+        toJSON ListPublisherProFilesResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lppfrNextPageToken,
+                  ("publisherProfiles" .=) <$>
+                    _lppfrPublisherProFiles])
+
+-- | Terms for Private Auctions. Note that Private Auctions can be created
+-- only by the seller, but they can be returned in a get or list request.
+--
+-- /See:/ 'nonGuaranteedAuctionTerms' smart constructor.
+data NonGuaranteedAuctionTerms = NonGuaranteedAuctionTerms'
+    { _ngatReservePricesPerBuyer      :: !(Maybe [PricePerBuyer])
+    , _ngatAutoOptimizePrivateAuction :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'NonGuaranteedAuctionTerms' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ngatReservePricesPerBuyer'
+--
+-- * 'ngatAutoOptimizePrivateAuction'
+nonGuaranteedAuctionTerms
+    :: NonGuaranteedAuctionTerms
+nonGuaranteedAuctionTerms =
+    NonGuaranteedAuctionTerms'
+    { _ngatReservePricesPerBuyer = Nothing
+    , _ngatAutoOptimizePrivateAuction = Nothing
+    }
+
+-- | Reserve price for the specified buyer.
+ngatReservePricesPerBuyer :: Lens' NonGuaranteedAuctionTerms [PricePerBuyer]
+ngatReservePricesPerBuyer
+  = lens _ngatReservePricesPerBuyer
+      (\ s a -> s{_ngatReservePricesPerBuyer = a})
+      . _Default
+      . _Coerce
+
+-- | True if open auction buyers are allowed to compete with invited buyers
+-- in this private auction.
+ngatAutoOptimizePrivateAuction :: Lens' NonGuaranteedAuctionTerms (Maybe Bool)
+ngatAutoOptimizePrivateAuction
+  = lens _ngatAutoOptimizePrivateAuction
+      (\ s a -> s{_ngatAutoOptimizePrivateAuction = a})
+
+instance FromJSON NonGuaranteedAuctionTerms where
+        parseJSON
+          = withObject "NonGuaranteedAuctionTerms"
+              (\ o ->
+                 NonGuaranteedAuctionTerms' <$>
+                   (o .:? "reservePricesPerBuyer" .!= mempty) <*>
+                     (o .:? "autoOptimizePrivateAuction"))
+
+instance ToJSON NonGuaranteedAuctionTerms where
+        toJSON NonGuaranteedAuctionTerms'{..}
+          = object
+              (catMaybes
+                 [("reservePricesPerBuyer" .=) <$>
+                    _ngatReservePricesPerBuyer,
+                  ("autoOptimizePrivateAuction" .=) <$>
+                    _ngatAutoOptimizePrivateAuction])
+
+--
+-- /See:/ 'listClientUsersResponse' smart constructor.
+data ListClientUsersResponse = ListClientUsersResponse'
+    { _lcurNextPageToken :: !(Maybe Text)
+    , _lcurUsers         :: !(Maybe [ClientUser])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListClientUsersResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lcurNextPageToken'
+--
+-- * 'lcurUsers'
+listClientUsersResponse
+    :: ListClientUsersResponse
+listClientUsersResponse =
+    ListClientUsersResponse'
+    { _lcurNextPageToken = Nothing
+    , _lcurUsers = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListClientUsersRequest.pageToken field in the subsequent call to the
+-- clients.invitations.list method to retrieve the next page of results.
+lcurNextPageToken :: Lens' ListClientUsersResponse (Maybe Text)
+lcurNextPageToken
+  = lens _lcurNextPageToken
+      (\ s a -> s{_lcurNextPageToken = a})
+
+-- | The returned list of client users.
+lcurUsers :: Lens' ListClientUsersResponse [ClientUser]
+lcurUsers
+  = lens _lcurUsers (\ s a -> s{_lcurUsers = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListClientUsersResponse where
+        parseJSON
+          = withObject "ListClientUsersResponse"
+              (\ o ->
+                 ListClientUsersResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "users" .!= mempty))
+
+instance ToJSON ListClientUsersResponse where
+        toJSON ListClientUsersResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lcurNextPageToken,
+                  ("users" .=) <$> _lcurUsers])
+
+-- | The set of metrics that are measured in numbers of bids, representing
+-- how many bids with the specified dimension values were considered
+-- eligible at each stage of the bidding funnel;
+--
+-- /See:/ 'bidMetricsRow' smart constructor.
+data BidMetricsRow = BidMetricsRow'
+    { _bmrBids                  :: !(Maybe MetricValue)
+    , _bmrBidsInAuction         :: !(Maybe MetricValue)
+    , _bmrImpressionsWon        :: !(Maybe MetricValue)
+    , _bmrRowDimensions         :: !(Maybe RowDimensions)
+    , _bmrMeasurableImpressions :: !(Maybe MetricValue)
+    , _bmrViewableImpressions   :: !(Maybe MetricValue)
+    , _bmrBilledImpressions     :: !(Maybe MetricValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BidMetricsRow' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bmrBids'
+--
+-- * 'bmrBidsInAuction'
+--
+-- * 'bmrImpressionsWon'
+--
+-- * 'bmrRowDimensions'
+--
+-- * 'bmrMeasurableImpressions'
+--
+-- * 'bmrViewableImpressions'
+--
+-- * 'bmrBilledImpressions'
+bidMetricsRow
+    :: BidMetricsRow
+bidMetricsRow =
+    BidMetricsRow'
+    { _bmrBids = Nothing
+    , _bmrBidsInAuction = Nothing
+    , _bmrImpressionsWon = Nothing
+    , _bmrRowDimensions = Nothing
+    , _bmrMeasurableImpressions = Nothing
+    , _bmrViewableImpressions = Nothing
+    , _bmrBilledImpressions = Nothing
+    }
+
+-- | The number of bids that Ad Exchange received from the buyer.
+bmrBids :: Lens' BidMetricsRow (Maybe MetricValue)
+bmrBids = lens _bmrBids (\ s a -> s{_bmrBids = a})
+
+-- | The number of bids that were permitted to compete in the auction.
+bmrBidsInAuction :: Lens' BidMetricsRow (Maybe MetricValue)
+bmrBidsInAuction
+  = lens _bmrBidsInAuction
+      (\ s a -> s{_bmrBidsInAuction = a})
+
+-- | The number of bids that won an impression.
+bmrImpressionsWon :: Lens' BidMetricsRow (Maybe MetricValue)
+bmrImpressionsWon
+  = lens _bmrImpressionsWon
+      (\ s a -> s{_bmrImpressionsWon = a})
+
+-- | The values of all dimensions associated with metric values in this row.
+bmrRowDimensions :: Lens' BidMetricsRow (Maybe RowDimensions)
+bmrRowDimensions
+  = lens _bmrRowDimensions
+      (\ s a -> s{_bmrRowDimensions = a})
+
+-- | The number of bids for which the corresponding impression was measurable
+-- for viewability (as defined by Active View).
+bmrMeasurableImpressions :: Lens' BidMetricsRow (Maybe MetricValue)
+bmrMeasurableImpressions
+  = lens _bmrMeasurableImpressions
+      (\ s a -> s{_bmrMeasurableImpressions = a})
+
+-- | The number of bids for which the corresponding impression was viewable
+-- (as defined by Active View).
+bmrViewableImpressions :: Lens' BidMetricsRow (Maybe MetricValue)
+bmrViewableImpressions
+  = lens _bmrViewableImpressions
+      (\ s a -> s{_bmrViewableImpressions = a})
+
+-- | The number of bids for which the buyer was billed.
+bmrBilledImpressions :: Lens' BidMetricsRow (Maybe MetricValue)
+bmrBilledImpressions
+  = lens _bmrBilledImpressions
+      (\ s a -> s{_bmrBilledImpressions = a})
+
+instance FromJSON BidMetricsRow where
+        parseJSON
+          = withObject "BidMetricsRow"
+              (\ o ->
+                 BidMetricsRow' <$>
+                   (o .:? "bids") <*> (o .:? "bidsInAuction") <*>
+                     (o .:? "impressionsWon")
+                     <*> (o .:? "rowDimensions")
+                     <*> (o .:? "measurableImpressions")
+                     <*> (o .:? "viewableImpressions")
+                     <*> (o .:? "billedImpressions"))
+
+instance ToJSON BidMetricsRow where
+        toJSON BidMetricsRow'{..}
+          = object
+              (catMaybes
+                 [("bids" .=) <$> _bmrBids,
+                  ("bidsInAuction" .=) <$> _bmrBidsInAuction,
+                  ("impressionsWon" .=) <$> _bmrImpressionsWon,
+                  ("rowDimensions" .=) <$> _bmrRowDimensions,
+                  ("measurableImpressions" .=) <$>
+                    _bmrMeasurableImpressions,
+                  ("viewableImpressions" .=) <$>
+                    _bmrViewableImpressions,
+                  ("billedImpressions" .=) <$> _bmrBilledImpressions])
+
+-- | Specifies the day part targeting criteria.
+--
+-- /See:/ 'dayPartTargeting' smart constructor.
+data DayPartTargeting = DayPartTargeting'
+    { _dptTimeZoneType :: !(Maybe DayPartTargetingTimeZoneType)
+    , _dptDayParts     :: !(Maybe [DayPart])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DayPartTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dptTimeZoneType'
+--
+-- * 'dptDayParts'
+dayPartTargeting
+    :: DayPartTargeting
+dayPartTargeting =
+    DayPartTargeting'
+    { _dptTimeZoneType = Nothing
+    , _dptDayParts = Nothing
+    }
+
+-- | The timezone to use for interpreting the day part targeting.
+dptTimeZoneType :: Lens' DayPartTargeting (Maybe DayPartTargetingTimeZoneType)
+dptTimeZoneType
+  = lens _dptTimeZoneType
+      (\ s a -> s{_dptTimeZoneType = a})
+
+-- | A list of day part targeting criterion.
+dptDayParts :: Lens' DayPartTargeting [DayPart]
+dptDayParts
+  = lens _dptDayParts (\ s a -> s{_dptDayParts = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON DayPartTargeting where
+        parseJSON
+          = withObject "DayPartTargeting"
+              (\ o ->
+                 DayPartTargeting' <$>
+                   (o .:? "timeZoneType") <*>
+                     (o .:? "dayParts" .!= mempty))
+
+instance ToJSON DayPartTargeting where
+        toJSON DayPartTargeting'{..}
+          = object
+              (catMaybes
+                 [("timeZoneType" .=) <$> _dptTimeZoneType,
+                  ("dayParts" .=) <$> _dptDayParts])
+
+-- | Generic targeting used for targeting dimensions that contains a list of
+-- included and excluded numeric IDs.
+--
+-- /See:/ 'criteriaTargeting' smart constructor.
+data CriteriaTargeting = CriteriaTargeting'
+    { _ctExcludedCriteriaIds :: !(Maybe [Textual Int64])
+    , _ctTargetedCriteriaIds :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CriteriaTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctExcludedCriteriaIds'
+--
+-- * 'ctTargetedCriteriaIds'
+criteriaTargeting
+    :: CriteriaTargeting
+criteriaTargeting =
+    CriteriaTargeting'
+    { _ctExcludedCriteriaIds = Nothing
+    , _ctTargetedCriteriaIds = Nothing
+    }
+
+-- | A list of numeric IDs to be excluded.
+ctExcludedCriteriaIds :: Lens' CriteriaTargeting [Int64]
+ctExcludedCriteriaIds
+  = lens _ctExcludedCriteriaIds
+      (\ s a -> s{_ctExcludedCriteriaIds = a})
+      . _Default
+      . _Coerce
+
+-- | A list of numeric IDs to be included.
+ctTargetedCriteriaIds :: Lens' CriteriaTargeting [Int64]
+ctTargetedCriteriaIds
+  = lens _ctTargetedCriteriaIds
+      (\ s a -> s{_ctTargetedCriteriaIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CriteriaTargeting where
+        parseJSON
+          = withObject "CriteriaTargeting"
+              (\ o ->
+                 CriteriaTargeting' <$>
+                   (o .:? "excludedCriteriaIds" .!= mempty) <*>
+                     (o .:? "targetedCriteriaIds" .!= mempty))
+
+instance ToJSON CriteriaTargeting where
+        toJSON CriteriaTargeting'{..}
+          = object
+              (catMaybes
+                 [("excludedCriteriaIds" .=) <$>
+                    _ctExcludedCriteriaIds,
+                  ("targetedCriteriaIds" .=) <$>
+                    _ctTargetedCriteriaIds])
+
+-- | Tracks which parties (if any) have paused a deal. The deal is considered
+-- paused if either hasBuyerPaused or hasSellPaused is true.
+--
+-- /See:/ 'dealPauseStatus' smart constructor.
+data DealPauseStatus = DealPauseStatus'
+    { _dpsFirstPausedBy     :: !(Maybe DealPauseStatusFirstPausedBy)
+    , _dpsBuyerPauseReason  :: !(Maybe Text)
+    , _dpsHasBuyerPaused    :: !(Maybe Bool)
+    , _dpsSellerPauseReason :: !(Maybe Text)
+    , _dpsHasSellerPaused   :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DealPauseStatus' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dpsFirstPausedBy'
+--
+-- * 'dpsBuyerPauseReason'
+--
+-- * 'dpsHasBuyerPaused'
+--
+-- * 'dpsSellerPauseReason'
+--
+-- * 'dpsHasSellerPaused'
+dealPauseStatus
+    :: DealPauseStatus
+dealPauseStatus =
+    DealPauseStatus'
+    { _dpsFirstPausedBy = Nothing
+    , _dpsBuyerPauseReason = Nothing
+    , _dpsHasBuyerPaused = Nothing
+    , _dpsSellerPauseReason = Nothing
+    , _dpsHasSellerPaused = Nothing
+    }
+
+-- | The role of the person who first paused this deal.
+dpsFirstPausedBy :: Lens' DealPauseStatus (Maybe DealPauseStatusFirstPausedBy)
+dpsFirstPausedBy
+  = lens _dpsFirstPausedBy
+      (\ s a -> s{_dpsFirstPausedBy = a})
+
+-- | The buyer\'s reason for pausing, if the buyer paused the deal.
+dpsBuyerPauseReason :: Lens' DealPauseStatus (Maybe Text)
+dpsBuyerPauseReason
+  = lens _dpsBuyerPauseReason
+      (\ s a -> s{_dpsBuyerPauseReason = a})
+
+-- | True, if the buyer has paused the deal unilaterally.
+dpsHasBuyerPaused :: Lens' DealPauseStatus (Maybe Bool)
+dpsHasBuyerPaused
+  = lens _dpsHasBuyerPaused
+      (\ s a -> s{_dpsHasBuyerPaused = a})
+
+-- | The seller\'s reason for pausing, if the seller paused the deal.
+dpsSellerPauseReason :: Lens' DealPauseStatus (Maybe Text)
+dpsSellerPauseReason
+  = lens _dpsSellerPauseReason
+      (\ s a -> s{_dpsSellerPauseReason = a})
+
+-- | True, if the seller has paused the deal unilaterally.
+dpsHasSellerPaused :: Lens' DealPauseStatus (Maybe Bool)
+dpsHasSellerPaused
+  = lens _dpsHasSellerPaused
+      (\ s a -> s{_dpsHasSellerPaused = a})
+
+instance FromJSON DealPauseStatus where
+        parseJSON
+          = withObject "DealPauseStatus"
+              (\ o ->
+                 DealPauseStatus' <$>
+                   (o .:? "firstPausedBy") <*>
+                     (o .:? "buyerPauseReason")
+                     <*> (o .:? "hasBuyerPaused")
+                     <*> (o .:? "sellerPauseReason")
+                     <*> (o .:? "hasSellerPaused"))
+
+instance ToJSON DealPauseStatus where
+        toJSON DealPauseStatus'{..}
+          = object
+              (catMaybes
+                 [("firstPausedBy" .=) <$> _dpsFirstPausedBy,
+                  ("buyerPauseReason" .=) <$> _dpsBuyerPauseReason,
+                  ("hasBuyerPaused" .=) <$> _dpsHasBuyerPaused,
+                  ("sellerPauseReason" .=) <$> _dpsSellerPauseReason,
+                  ("hasSellerPaused" .=) <$> _dpsHasSellerPaused])
+
+-- | The number of filtered bids with the specified dimension values, among
+-- those filtered due to the requested filtering reason (i.e. creative
+-- status), that have the specified detail.
+--
+-- /See:/ 'filteredBidDetailRow' smart constructor.
+data FilteredBidDetailRow = FilteredBidDetailRow'
+    { _fbdrDetailId      :: !(Maybe (Textual Int32))
+    , _fbdrRowDimensions :: !(Maybe RowDimensions)
+    , _fbdrBidCount      :: !(Maybe MetricValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FilteredBidDetailRow' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fbdrDetailId'
+--
+-- * 'fbdrRowDimensions'
+--
+-- * 'fbdrBidCount'
+filteredBidDetailRow
+    :: FilteredBidDetailRow
+filteredBidDetailRow =
+    FilteredBidDetailRow'
+    { _fbdrDetailId = Nothing
+    , _fbdrRowDimensions = Nothing
+    , _fbdrBidCount = Nothing
+    }
+
+-- | The ID of the detail. The associated value can be looked up in the
+-- dictionary file corresponding to the DetailType in the response message.
+fbdrDetailId :: Lens' FilteredBidDetailRow (Maybe Int32)
+fbdrDetailId
+  = lens _fbdrDetailId (\ s a -> s{_fbdrDetailId = a})
+      . mapping _Coerce
+
+-- | The values of all dimensions associated with metric values in this row.
+fbdrRowDimensions :: Lens' FilteredBidDetailRow (Maybe RowDimensions)
+fbdrRowDimensions
+  = lens _fbdrRowDimensions
+      (\ s a -> s{_fbdrRowDimensions = a})
+
+-- | The number of bids with the specified detail.
+fbdrBidCount :: Lens' FilteredBidDetailRow (Maybe MetricValue)
+fbdrBidCount
+  = lens _fbdrBidCount (\ s a -> s{_fbdrBidCount = a})
+
+instance FromJSON FilteredBidDetailRow where
+        parseJSON
+          = withObject "FilteredBidDetailRow"
+              (\ o ->
+                 FilteredBidDetailRow' <$>
+                   (o .:? "detailId") <*> (o .:? "rowDimensions") <*>
+                     (o .:? "bidCount"))
+
+instance ToJSON FilteredBidDetailRow where
+        toJSON FilteredBidDetailRow'{..}
+          = object
+              (catMaybes
+                 [("detailId" .=) <$> _fbdrDetailId,
+                  ("rowDimensions" .=) <$> _fbdrRowDimensions,
+                  ("bidCount" .=) <$> _fbdrBidCount])
+
+-- | Buyers are allowed to store certain types of private data in a
+-- proposal\/deal.
+--
+-- /See:/ 'privateData' smart constructor.
+newtype PrivateData = PrivateData'
+    { _pdReferenceId :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PrivateData' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pdReferenceId'
+privateData
+    :: PrivateData
+privateData =
+    PrivateData'
+    { _pdReferenceId = Nothing
+    }
+
+-- | A buyer or seller specified reference ID. This can be queried in the
+-- list operations (max-length: 1024 unicode code units).
+pdReferenceId :: Lens' PrivateData (Maybe Text)
+pdReferenceId
+  = lens _pdReferenceId
+      (\ s a -> s{_pdReferenceId = a})
+
+instance FromJSON PrivateData where
+        parseJSON
+          = withObject "PrivateData"
+              (\ o -> PrivateData' <$> (o .:? "referenceId"))
+
+instance ToJSON PrivateData where
+        toJSON PrivateData'{..}
+          = object
+              (catMaybes [("referenceId" .=) <$> _pdReferenceId])
+
+-- | A generic empty message that you can re-use to avoid defining duplicated
+-- empty messages in your APIs. A typical example is to use it as the
+-- request or the response type of an API method. For instance: service Foo
+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The
+-- JSON representation for \`Empty\` is empty JSON object \`{}\`.
+--
+-- /See:/ 'empty' smart constructor.
+data Empty =
+    Empty'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Empty' with the minimum fields required to make a request.
+--
+empty
+    :: Empty
+empty = Empty'
+
+instance FromJSON Empty where
+        parseJSON = withObject "Empty" (\ o -> pure Empty')
+
+instance ToJSON Empty where
+        toJSON = const emptyObject
+
+-- | The serving context for this restriction.
+--
+-- /See:/ 'servingContext' smart constructor.
+data ServingContext = ServingContext'
+    { _scPlatform     :: !(Maybe PlatformContext)
+    , _scLocation     :: !(Maybe LocationContext)
+    , _scSecurityType :: !(Maybe SecurityContext)
+    , _scAll          :: !(Maybe ServingContextAll)
+    , _scAuctionType  :: !(Maybe AuctionContext)
+    , _scAppType      :: !(Maybe AppContext)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ServingContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'scPlatform'
+--
+-- * 'scLocation'
+--
+-- * 'scSecurityType'
+--
+-- * 'scAll'
+--
+-- * 'scAuctionType'
+--
+-- * 'scAppType'
+servingContext
+    :: ServingContext
+servingContext =
+    ServingContext'
+    { _scPlatform = Nothing
+    , _scLocation = Nothing
+    , _scSecurityType = Nothing
+    , _scAll = Nothing
+    , _scAuctionType = Nothing
+    , _scAppType = Nothing
+    }
+
+-- | Matches impressions coming from a particular platform.
+scPlatform :: Lens' ServingContext (Maybe PlatformContext)
+scPlatform
+  = lens _scPlatform (\ s a -> s{_scPlatform = a})
+
+-- | Matches impressions coming from users *or* publishers in a specific
+-- location.
+scLocation :: Lens' ServingContext (Maybe LocationContext)
+scLocation
+  = lens _scLocation (\ s a -> s{_scLocation = a})
+
+-- | Matches impressions for a particular security type.
+scSecurityType :: Lens' ServingContext (Maybe SecurityContext)
+scSecurityType
+  = lens _scSecurityType
+      (\ s a -> s{_scSecurityType = a})
+
+-- | Matches all contexts.
+scAll :: Lens' ServingContext (Maybe ServingContextAll)
+scAll = lens _scAll (\ s a -> s{_scAll = a})
+
+-- | Matches impressions for a particular auction type.
+scAuctionType :: Lens' ServingContext (Maybe AuctionContext)
+scAuctionType
+  = lens _scAuctionType
+      (\ s a -> s{_scAuctionType = a})
+
+-- | Matches impressions for a particular app type.
+scAppType :: Lens' ServingContext (Maybe AppContext)
+scAppType
+  = lens _scAppType (\ s a -> s{_scAppType = a})
+
+instance FromJSON ServingContext where
+        parseJSON
+          = withObject "ServingContext"
+              (\ o ->
+                 ServingContext' <$>
+                   (o .:? "platform") <*> (o .:? "location") <*>
+                     (o .:? "securityType")
+                     <*> (o .:? "all")
+                     <*> (o .:? "auctionType")
+                     <*> (o .:? "appType"))
+
+instance ToJSON ServingContext where
+        toJSON ServingContext'{..}
+          = object
+              (catMaybes
+                 [("platform" .=) <$> _scPlatform,
+                  ("location" .=) <$> _scLocation,
+                  ("securityType" .=) <$> _scSecurityType,
+                  ("all" .=) <$> _scAll,
+                  ("auctionType" .=) <$> _scAuctionType,
+                  ("appType" .=) <$> _scAppType])
+
+-- | Note: this resource requires whitelisting for access. Please contact
+-- your account manager for access to Marketplace resources. Represents a
+-- publisher profile in Marketplace. All fields are read only. All string
+-- fields are free-form text entered by the publisher unless noted
+-- otherwise.
+--
+-- /See:/ 'publisherProFile' smart constructor.
+data PublisherProFile = PublisherProFile'
+    { _ppfDirectDealsContact       :: !(Maybe Text)
+    , _ppfAudienceDescription      :: !(Maybe Text)
+    , _ppfLogoURL                  :: !(Maybe Text)
+    , _ppfOverview                 :: !(Maybe Text)
+    , _ppfSamplePageURL            :: !(Maybe Text)
+    , _ppfSeller                   :: !(Maybe Seller)
+    , _ppfMediaKitURL              :: !(Maybe Text)
+    , _ppfBuyerPitchStatement      :: !(Maybe Text)
+    , _ppfDisplayName              :: !(Maybe Text)
+    , _ppfPublisherProFileId       :: !(Maybe Text)
+    , _ppfGooglePlusURL            :: !(Maybe Text)
+    , _ppfDomains                  :: !(Maybe [Text])
+    , _ppfRateCardInfoURL          :: !(Maybe Text)
+    , _ppfTopHeadlines             :: !(Maybe [Text])
+    , _ppfProgrammaticDealsContact :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PublisherProFile' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ppfDirectDealsContact'
+--
+-- * 'ppfAudienceDescription'
+--
+-- * 'ppfLogoURL'
+--
+-- * 'ppfOverview'
+--
+-- * 'ppfSamplePageURL'
+--
+-- * 'ppfSeller'
+--
+-- * 'ppfMediaKitURL'
+--
+-- * 'ppfBuyerPitchStatement'
+--
+-- * 'ppfDisplayName'
+--
+-- * 'ppfPublisherProFileId'
+--
+-- * 'ppfGooglePlusURL'
+--
+-- * 'ppfDomains'
+--
+-- * 'ppfRateCardInfoURL'
+--
+-- * 'ppfTopHeadlines'
+--
+-- * 'ppfProgrammaticDealsContact'
+publisherProFile
+    :: PublisherProFile
+publisherProFile =
+    PublisherProFile'
+    { _ppfDirectDealsContact = Nothing
+    , _ppfAudienceDescription = Nothing
+    , _ppfLogoURL = Nothing
+    , _ppfOverview = Nothing
+    , _ppfSamplePageURL = Nothing
+    , _ppfSeller = Nothing
+    , _ppfMediaKitURL = Nothing
+    , _ppfBuyerPitchStatement = Nothing
+    , _ppfDisplayName = Nothing
+    , _ppfPublisherProFileId = Nothing
+    , _ppfGooglePlusURL = Nothing
+    , _ppfDomains = Nothing
+    , _ppfRateCardInfoURL = Nothing
+    , _ppfTopHeadlines = Nothing
+    , _ppfProgrammaticDealsContact = Nothing
+    }
+
+-- | Contact information for direct reservation deals. This is free text
+-- entered by the publisher and may include information like names, phone
+-- numbers and email addresses.
+ppfDirectDealsContact :: Lens' PublisherProFile (Maybe Text)
+ppfDirectDealsContact
+  = lens _ppfDirectDealsContact
+      (\ s a -> s{_ppfDirectDealsContact = a})
+
+-- | Description on the publisher\'s audience.
+ppfAudienceDescription :: Lens' PublisherProFile (Maybe Text)
+ppfAudienceDescription
+  = lens _ppfAudienceDescription
+      (\ s a -> s{_ppfAudienceDescription = a})
+
+-- | A Google public URL to the logo for this publisher profile. The logo is
+-- stored as a PNG, JPG, or GIF image.
+ppfLogoURL :: Lens' PublisherProFile (Maybe Text)
+ppfLogoURL
+  = lens _ppfLogoURL (\ s a -> s{_ppfLogoURL = a})
+
+-- | Overview of the publisher.
+ppfOverview :: Lens' PublisherProFile (Maybe Text)
+ppfOverview
+  = lens _ppfOverview (\ s a -> s{_ppfOverview = a})
+
+-- | URL to a sample content page.
+ppfSamplePageURL :: Lens' PublisherProFile (Maybe Text)
+ppfSamplePageURL
+  = lens _ppfSamplePageURL
+      (\ s a -> s{_ppfSamplePageURL = a})
+
+-- | Seller of the publisher profile.
+ppfSeller :: Lens' PublisherProFile (Maybe Seller)
+ppfSeller
+  = lens _ppfSeller (\ s a -> s{_ppfSeller = a})
+
+-- | URL to additional marketing and sales materials.
+ppfMediaKitURL :: Lens' PublisherProFile (Maybe Text)
+ppfMediaKitURL
+  = lens _ppfMediaKitURL
+      (\ s a -> s{_ppfMediaKitURL = a})
+
+-- | Statement explaining what\'s unique about publisher\'s business, and why
+-- buyers should partner with the publisher.
+ppfBuyerPitchStatement :: Lens' PublisherProFile (Maybe Text)
+ppfBuyerPitchStatement
+  = lens _ppfBuyerPitchStatement
+      (\ s a -> s{_ppfBuyerPitchStatement = a})
+
+-- | Name of the publisher profile.
+ppfDisplayName :: Lens' PublisherProFile (Maybe Text)
+ppfDisplayName
+  = lens _ppfDisplayName
+      (\ s a -> s{_ppfDisplayName = a})
+
+-- | Unique ID for publisher profile.
+ppfPublisherProFileId :: Lens' PublisherProFile (Maybe Text)
+ppfPublisherProFileId
+  = lens _ppfPublisherProFileId
+      (\ s a -> s{_ppfPublisherProFileId = a})
+
+-- | URL to publisher\'s Google+ page.
+ppfGooglePlusURL :: Lens' PublisherProFile (Maybe Text)
+ppfGooglePlusURL
+  = lens _ppfGooglePlusURL
+      (\ s a -> s{_ppfGooglePlusURL = a})
+
+-- | The list of domains represented in this publisher profile. Empty if this
+-- is a parent profile. These are top private domains, meaning that these
+-- will not contain a string like \"photos.google.co.uk\/123\", but will
+-- instead contain \"google.co.uk\".
+ppfDomains :: Lens' PublisherProFile [Text]
+ppfDomains
+  = lens _ppfDomains (\ s a -> s{_ppfDomains = a}) .
+      _Default
+      . _Coerce
+
+-- | URL to a publisher rate card.
+ppfRateCardInfoURL :: Lens' PublisherProFile (Maybe Text)
+ppfRateCardInfoURL
+  = lens _ppfRateCardInfoURL
+      (\ s a -> s{_ppfRateCardInfoURL = a})
+
+-- | Up to three key metrics and rankings. Max 100 characters each. For
+-- example \"#1 Mobile News Site for 20 Straight Months\".
+ppfTopHeadlines :: Lens' PublisherProFile [Text]
+ppfTopHeadlines
+  = lens _ppfTopHeadlines
+      (\ s a -> s{_ppfTopHeadlines = a})
+      . _Default
+      . _Coerce
+
+-- | Contact information for programmatic deals. This is free text entered by
+-- the publisher and may include information like names, phone numbers and
+-- email addresses.
+ppfProgrammaticDealsContact :: Lens' PublisherProFile (Maybe Text)
+ppfProgrammaticDealsContact
+  = lens _ppfProgrammaticDealsContact
+      (\ s a -> s{_ppfProgrammaticDealsContact = a})
+
+instance FromJSON PublisherProFile where
+        parseJSON
+          = withObject "PublisherProFile"
+              (\ o ->
+                 PublisherProFile' <$>
+                   (o .:? "directDealsContact") <*>
+                     (o .:? "audienceDescription")
+                     <*> (o .:? "logoUrl")
+                     <*> (o .:? "overview")
+                     <*> (o .:? "samplePageUrl")
+                     <*> (o .:? "seller")
+                     <*> (o .:? "mediaKitUrl")
+                     <*> (o .:? "buyerPitchStatement")
+                     <*> (o .:? "displayName")
+                     <*> (o .:? "publisherProfileId")
+                     <*> (o .:? "googlePlusUrl")
+                     <*> (o .:? "domains" .!= mempty)
+                     <*> (o .:? "rateCardInfoUrl")
+                     <*> (o .:? "topHeadlines" .!= mempty)
+                     <*> (o .:? "programmaticDealsContact"))
+
+instance ToJSON PublisherProFile where
+        toJSON PublisherProFile'{..}
+          = object
+              (catMaybes
+                 [("directDealsContact" .=) <$>
+                    _ppfDirectDealsContact,
+                  ("audienceDescription" .=) <$>
+                    _ppfAudienceDescription,
+                  ("logoUrl" .=) <$> _ppfLogoURL,
+                  ("overview" .=) <$> _ppfOverview,
+                  ("samplePageUrl" .=) <$> _ppfSamplePageURL,
+                  ("seller" .=) <$> _ppfSeller,
+                  ("mediaKitUrl" .=) <$> _ppfMediaKitURL,
+                  ("buyerPitchStatement" .=) <$>
+                    _ppfBuyerPitchStatement,
+                  ("displayName" .=) <$> _ppfDisplayName,
+                  ("publisherProfileId" .=) <$> _ppfPublisherProFileId,
+                  ("googlePlusUrl" .=) <$> _ppfGooglePlusURL,
+                  ("domains" .=) <$> _ppfDomains,
+                  ("rateCardInfoUrl" .=) <$> _ppfRateCardInfoURL,
+                  ("topHeadlines" .=) <$> _ppfTopHeadlines,
+                  ("programmaticDealsContact" .=) <$>
+                    _ppfProgrammaticDealsContact])
+
+-- | Request to accept a proposal.
+--
+-- /See:/ 'acceptProposalRequest' smart constructor.
+newtype AcceptProposalRequest = AcceptProposalRequest'
+    { _aprProposalRevision :: Maybe (Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AcceptProposalRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aprProposalRevision'
+acceptProposalRequest
+    :: AcceptProposalRequest
+acceptProposalRequest =
+    AcceptProposalRequest'
+    { _aprProposalRevision = Nothing
+    }
+
+-- | The last known client revision number of the proposal.
+aprProposalRevision :: Lens' AcceptProposalRequest (Maybe Int64)
+aprProposalRevision
+  = lens _aprProposalRevision
+      (\ s a -> s{_aprProposalRevision = a})
+      . mapping _Coerce
+
+instance FromJSON AcceptProposalRequest where
+        parseJSON
+          = withObject "AcceptProposalRequest"
+              (\ o ->
+                 AcceptProposalRequest' <$>
+                   (o .:? "proposalRevision"))
+
+instance ToJSON AcceptProposalRequest where
+        toJSON AcceptProposalRequest'{..}
+          = object
+              (catMaybes
+                 [("proposalRevision" .=) <$> _aprProposalRevision])
+
+-- | Message depicting the size of the creative. The units of width and
+-- height depend on the type of the targeting.
+--
+-- /See:/ 'size' smart constructor.
+data Size = Size'
+    { _sHeight :: !(Maybe (Textual Int32))
+    , _sWidth  :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Size' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sHeight'
+--
+-- * 'sWidth'
+size
+    :: Size
+size =
+    Size'
+    { _sHeight = Nothing
+    , _sWidth = Nothing
+    }
+
+-- | The height of the creative.
+sHeight :: Lens' Size (Maybe Int32)
+sHeight
+  = lens _sHeight (\ s a -> s{_sHeight = a}) .
+      mapping _Coerce
+
+-- | The width of the creative
+sWidth :: Lens' Size (Maybe Int32)
+sWidth
+  = lens _sWidth (\ s a -> s{_sWidth = a}) .
+      mapping _Coerce
+
+instance FromJSON Size where
+        parseJSON
+          = withObject "Size"
+              (\ o ->
+                 Size' <$> (o .:? "height") <*> (o .:? "width"))
+
+instance ToJSON Size where
+        toJSON Size'{..}
+          = object
+              (catMaybes
+                 [("height" .=) <$> _sHeight,
+                  ("width" .=) <$> _sWidth])
+
+-- | Response message for listing all reasons that bid requests were filtered
+-- and not sent to the buyer.
+--
+-- /See:/ 'listFilteredBidRequestsResponse' smart constructor.
+data ListFilteredBidRequestsResponse = ListFilteredBidRequestsResponse'
+    { _lfbrrNextPageToken     :: !(Maybe Text)
+    , _lfbrrCalloutStatusRows :: !(Maybe [CalloutStatusRow])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListFilteredBidRequestsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfbrrNextPageToken'
+--
+-- * 'lfbrrCalloutStatusRows'
+listFilteredBidRequestsResponse
+    :: ListFilteredBidRequestsResponse
+listFilteredBidRequestsResponse =
+    ListFilteredBidRequestsResponse'
+    { _lfbrrNextPageToken = Nothing
+    , _lfbrrCalloutStatusRows = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListFilteredBidRequestsRequest.pageToken field in the subsequent call to
+-- the filteredBidRequests.list method to retrieve the next page of
+-- results.
+lfbrrNextPageToken :: Lens' ListFilteredBidRequestsResponse (Maybe Text)
+lfbrrNextPageToken
+  = lens _lfbrrNextPageToken
+      (\ s a -> s{_lfbrrNextPageToken = a})
+
+-- | List of rows, with counts of filtered bid requests aggregated by callout
+-- status.
+lfbrrCalloutStatusRows :: Lens' ListFilteredBidRequestsResponse [CalloutStatusRow]
+lfbrrCalloutStatusRows
+  = lens _lfbrrCalloutStatusRows
+      (\ s a -> s{_lfbrrCalloutStatusRows = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListFilteredBidRequestsResponse
+         where
+        parseJSON
+          = withObject "ListFilteredBidRequestsResponse"
+              (\ o ->
+                 ListFilteredBidRequestsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "calloutStatusRows" .!= mempty))
+
+instance ToJSON ListFilteredBidRequestsResponse where
+        toJSON ListFilteredBidRequestsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lfbrrNextPageToken,
+                  ("calloutStatusRows" .=) <$>
+                    _lfbrrCalloutStatusRows])
+
+-- | A request for associating a deal and a creative.
+--
+-- /See:/ 'addDealAssociationRequest' smart constructor.
+newtype AddDealAssociationRequest = AddDealAssociationRequest'
+    { _adarAssociation :: Maybe CreativeDealAssociation
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AddDealAssociationRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'adarAssociation'
+addDealAssociationRequest
+    :: AddDealAssociationRequest
+addDealAssociationRequest =
+    AddDealAssociationRequest'
+    { _adarAssociation = Nothing
+    }
+
+-- | The association between a creative and a deal that should be added.
+adarAssociation :: Lens' AddDealAssociationRequest (Maybe CreativeDealAssociation)
+adarAssociation
+  = lens _adarAssociation
+      (\ s a -> s{_adarAssociation = a})
+
+instance FromJSON AddDealAssociationRequest where
+        parseJSON
+          = withObject "AddDealAssociationRequest"
+              (\ o ->
+                 AddDealAssociationRequest' <$> (o .:? "association"))
+
+instance ToJSON AddDealAssociationRequest where
+        toJSON AddDealAssociationRequest'{..}
+          = object
+              (catMaybes [("association" .=) <$> _adarAssociation])
+
+-- | The number of bids with the specified dimension values that did not win
+-- the auction (either were filtered pre-auction or lost the auction), as
+-- described by the specified creative status.
+--
+-- /See:/ 'creativeStatusRow' smart constructor.
+data CreativeStatusRow = CreativeStatusRow'
+    { _csrRowDimensions    :: !(Maybe RowDimensions)
+    , _csrBidCount         :: !(Maybe MetricValue)
+    , _csrCreativeStatusId :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeStatusRow' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'csrRowDimensions'
+--
+-- * 'csrBidCount'
+--
+-- * 'csrCreativeStatusId'
+creativeStatusRow
+    :: CreativeStatusRow
+creativeStatusRow =
+    CreativeStatusRow'
+    { _csrRowDimensions = Nothing
+    , _csrBidCount = Nothing
+    , _csrCreativeStatusId = Nothing
+    }
+
+-- | The values of all dimensions associated with metric values in this row.
+csrRowDimensions :: Lens' CreativeStatusRow (Maybe RowDimensions)
+csrRowDimensions
+  = lens _csrRowDimensions
+      (\ s a -> s{_csrRowDimensions = a})
+
+-- | The number of bids with the specified status.
+csrBidCount :: Lens' CreativeStatusRow (Maybe MetricValue)
+csrBidCount
+  = lens _csrBidCount (\ s a -> s{_csrBidCount = a})
+
+-- | The ID of the creative status. See
+-- [creative-status-codes](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/creative-status-codes).
+csrCreativeStatusId :: Lens' CreativeStatusRow (Maybe Int32)
+csrCreativeStatusId
+  = lens _csrCreativeStatusId
+      (\ s a -> s{_csrCreativeStatusId = a})
+      . mapping _Coerce
+
+instance FromJSON CreativeStatusRow where
+        parseJSON
+          = withObject "CreativeStatusRow"
+              (\ o ->
+                 CreativeStatusRow' <$>
+                   (o .:? "rowDimensions") <*> (o .:? "bidCount") <*>
+                     (o .:? "creativeStatusId"))
+
+instance ToJSON CreativeStatusRow where
+        toJSON CreativeStatusRow'{..}
+          = object
+              (catMaybes
+                 [("rowDimensions" .=) <$> _csrRowDimensions,
+                  ("bidCount" .=) <$> _csrBidCount,
+                  ("creativeStatusId" .=) <$> _csrCreativeStatusId])
+
+-- | An open-ended realtime time range specified by the start timestamp. For
+-- filter sets that specify a realtime time range RTB metrics continue to
+-- be aggregated throughout the lifetime of the filter set.
+--
+-- /See:/ 'realtimeTimeRange' smart constructor.
+newtype RealtimeTimeRange = RealtimeTimeRange'
+    { _rtrStartTimestamp :: Maybe DateTime'
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RealtimeTimeRange' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rtrStartTimestamp'
+realtimeTimeRange
+    :: RealtimeTimeRange
+realtimeTimeRange =
+    RealtimeTimeRange'
+    { _rtrStartTimestamp = Nothing
+    }
+
+-- | The start timestamp of the real-time RTB metrics aggregation.
+rtrStartTimestamp :: Lens' RealtimeTimeRange (Maybe UTCTime)
+rtrStartTimestamp
+  = lens _rtrStartTimestamp
+      (\ s a -> s{_rtrStartTimestamp = a})
+      . mapping _DateTime
+
+instance FromJSON RealtimeTimeRange where
+        parseJSON
+          = withObject "RealtimeTimeRange"
+              (\ o ->
+                 RealtimeTimeRange' <$> (o .:? "startTimestamp"))
+
+instance ToJSON RealtimeTimeRange where
+        toJSON RealtimeTimeRange'{..}
+          = object
+              (catMaybes
+                 [("startTimestamp" .=) <$> _rtrStartTimestamp])
+
+-- | A proposal may be associated to several notes.
+--
+-- /See:/ 'note' smart constructor.
+data Note = Note'
+    { _nProposalRevision :: !(Maybe (Textual Int64))
+    , _nNote             :: !(Maybe Text)
+    , _nNoteId           :: !(Maybe Text)
+    , _nCreatorRole      :: !(Maybe NoteCreatorRole)
+    , _nCreateTime       :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Note' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'nProposalRevision'
+--
+-- * 'nNote'
+--
+-- * 'nNoteId'
+--
+-- * 'nCreatorRole'
+--
+-- * 'nCreateTime'
+note
+    :: Note
+note =
+    Note'
+    { _nProposalRevision = Nothing
+    , _nNote = Nothing
+    , _nNoteId = Nothing
+    , _nCreatorRole = Nothing
+    , _nCreateTime = Nothing
+    }
+
+-- | The revision number of the proposal when the note is created.
+-- \'OutputOnly
+nProposalRevision :: Lens' Note (Maybe Int64)
+nProposalRevision
+  = lens _nProposalRevision
+      (\ s a -> s{_nProposalRevision = a})
+      . mapping _Coerce
+
+-- | The actual note to attach. (max-length: 1024 unicode code units) Note:
+-- This field may be set only when creating the resource. Modifying this
+-- field while updating the resource will result in an error.
+nNote :: Lens' Note (Maybe Text)
+nNote = lens _nNote (\ s a -> s{_nNote = a})
+
+-- | The unique ID for the note. \'OutputOnly
+nNoteId :: Lens' Note (Maybe Text)
+nNoteId = lens _nNoteId (\ s a -> s{_nNoteId = a})
+
+-- | The role of the person (buyer\/seller) creating the note. \'OutputOnly
+nCreatorRole :: Lens' Note (Maybe NoteCreatorRole)
+nCreatorRole
+  = lens _nCreatorRole (\ s a -> s{_nCreatorRole = a})
+
+-- | The timestamp for when this note was created. \'OutputOnly
+nCreateTime :: Lens' Note (Maybe UTCTime)
+nCreateTime
+  = lens _nCreateTime (\ s a -> s{_nCreateTime = a}) .
+      mapping _DateTime
+
+instance FromJSON Note where
+        parseJSON
+          = withObject "Note"
+              (\ o ->
+                 Note' <$>
+                   (o .:? "proposalRevision") <*> (o .:? "note") <*>
+                     (o .:? "noteId")
+                     <*> (o .:? "creatorRole")
+                     <*> (o .:? "createTime"))
+
+instance ToJSON Note where
+        toJSON Note'{..}
+          = object
+              (catMaybes
+                 [("proposalRevision" .=) <$> _nProposalRevision,
+                  ("note" .=) <$> _nNote, ("noteId" .=) <$> _nNoteId,
+                  ("creatorRole" .=) <$> _nCreatorRole,
+                  ("createTime" .=) <$> _nCreateTime])
+
+-- | Response message for listing filter sets.
+--
+-- /See:/ 'listFilterSetsResponse' smart constructor.
+data ListFilterSetsResponse = ListFilterSetsResponse'
+    { _lfsrNextPageToken :: !(Maybe Text)
+    , _lfsrFilterSets    :: !(Maybe [FilterSet])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListFilterSetsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfsrNextPageToken'
+--
+-- * 'lfsrFilterSets'
+listFilterSetsResponse
+    :: ListFilterSetsResponse
+listFilterSetsResponse =
+    ListFilterSetsResponse'
+    { _lfsrNextPageToken = Nothing
+    , _lfsrFilterSets = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListFilterSetsRequest.pageToken field in the subsequent call to the
+-- accounts.filterSets.list method to retrieve the next page of results.
+lfsrNextPageToken :: Lens' ListFilterSetsResponse (Maybe Text)
+lfsrNextPageToken
+  = lens _lfsrNextPageToken
+      (\ s a -> s{_lfsrNextPageToken = a})
+
+-- | The filter sets belonging to the buyer.
+lfsrFilterSets :: Lens' ListFilterSetsResponse [FilterSet]
+lfsrFilterSets
+  = lens _lfsrFilterSets
+      (\ s a -> s{_lfsrFilterSets = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListFilterSetsResponse where
+        parseJSON
+          = withObject "ListFilterSetsResponse"
+              (\ o ->
+                 ListFilterSetsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "filterSets" .!= mempty))
+
+instance ToJSON ListFilterSetsResponse where
+        toJSON ListFilterSetsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lfsrNextPageToken,
+                  ("filterSets" .=) <$> _lfsrFilterSets])
+
+-- | Represents an amount of money with its currency type.
+--
+-- /See:/ 'money' smart constructor.
+data Money = Money'
+    { _mCurrencyCode :: !(Maybe Text)
+    , _mNanos        :: !(Maybe (Textual Int32))
+    , _mUnits        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Money' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mCurrencyCode'
+--
+-- * 'mNanos'
+--
+-- * 'mUnits'
+money
+    :: Money
+money =
+    Money'
+    { _mCurrencyCode = Nothing
+    , _mNanos = Nothing
+    , _mUnits = Nothing
+    }
+
+-- | The 3-letter currency code defined in ISO 4217.
+mCurrencyCode :: Lens' Money (Maybe Text)
+mCurrencyCode
+  = lens _mCurrencyCode
+      (\ s a -> s{_mCurrencyCode = a})
+
+-- | Number of nano (10^-9) units of the amount. The value must be between
+-- -999,999,999 and +999,999,999 inclusive. If \`units\` is positive,
+-- \`nanos\` must be positive or zero. If \`units\` is zero, \`nanos\` can
+-- be positive, zero, or negative. If \`units\` is negative, \`nanos\` must
+-- be negative or zero. For example $-1.75 is represented as \`units\`=-1
+-- and \`nanos\`=-750,000,000.
+mNanos :: Lens' Money (Maybe Int32)
+mNanos
+  = lens _mNanos (\ s a -> s{_mNanos = a}) .
+      mapping _Coerce
+
+-- | The whole units of the amount. For example if \`currencyCode\` is
+-- \`\"USD\"\`, then 1 unit is one US dollar.
+mUnits :: Lens' Money (Maybe Int64)
+mUnits
+  = lens _mUnits (\ s a -> s{_mUnits = a}) .
+      mapping _Coerce
+
+instance FromJSON Money where
+        parseJSON
+          = withObject "Money"
+              (\ o ->
+                 Money' <$>
+                   (o .:? "currencyCode") <*> (o .:? "nanos") <*>
+                     (o .:? "units"))
+
+instance ToJSON Money where
+        toJSON Money'{..}
+          = object
+              (catMaybes
+                 [("currencyCode" .=) <$> _mCurrencyCode,
+                  ("nanos" .=) <$> _mNanos, ("units" .=) <$> _mUnits])
+
+-- | Request message for adding a note to a given proposal.
+--
+-- /See:/ 'addNoteRequest' smart constructor.
+newtype AddNoteRequest = AddNoteRequest'
+    { _anrNote :: Maybe Note
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AddNoteRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'anrNote'
+addNoteRequest
+    :: AddNoteRequest
+addNoteRequest =
+    AddNoteRequest'
+    { _anrNote = Nothing
+    }
+
+-- | Details of the note to add.
+anrNote :: Lens' AddNoteRequest (Maybe Note)
+anrNote = lens _anrNote (\ s a -> s{_anrNote = a})
+
+instance FromJSON AddNoteRequest where
+        parseJSON
+          = withObject "AddNoteRequest"
+              (\ o -> AddNoteRequest' <$> (o .:? "note"))
+
+instance ToJSON AddNoteRequest where
+        toJSON AddNoteRequest'{..}
+          = object (catMaybes [("note" .=) <$> _anrNote])
+
+-- | Represents targeting about where the ads can appear, e.g., certain sites
+-- or mobile applications. Different placement targeting types will be
+-- logically OR\'ed.
+--
+-- /See:/ 'placementTargeting' smart constructor.
+data PlacementTargeting = PlacementTargeting'
+    { _ptURLTargeting               :: !(Maybe URLTargeting)
+    , _ptMobileApplicationTargeting :: !(Maybe MobileApplicationTargeting)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptURLTargeting'
+--
+-- * 'ptMobileApplicationTargeting'
+placementTargeting
+    :: PlacementTargeting
+placementTargeting =
+    PlacementTargeting'
+    { _ptURLTargeting = Nothing
+    , _ptMobileApplicationTargeting = Nothing
+    }
+
+-- | URLs to be included\/excluded.
+ptURLTargeting :: Lens' PlacementTargeting (Maybe URLTargeting)
+ptURLTargeting
+  = lens _ptURLTargeting
+      (\ s a -> s{_ptURLTargeting = a})
+
+-- | Mobile application targeting information in a deal. This doesn\'t apply
+-- to Auction Packages.
+ptMobileApplicationTargeting :: Lens' PlacementTargeting (Maybe MobileApplicationTargeting)
+ptMobileApplicationTargeting
+  = lens _ptMobileApplicationTargeting
+      (\ s a -> s{_ptMobileApplicationTargeting = a})
+
+instance FromJSON PlacementTargeting where
+        parseJSON
+          = withObject "PlacementTargeting"
+              (\ o ->
+                 PlacementTargeting' <$>
+                   (o .:? "urlTargeting") <*>
+                     (o .:? "mobileApplicationTargeting"))
+
+instance ToJSON PlacementTargeting where
+        toJSON PlacementTargeting'{..}
+          = object
+              (catMaybes
+                 [("urlTargeting" .=) <$> _ptURLTargeting,
+                  ("mobileApplicationTargeting" .=) <$>
+                    _ptMobileApplicationTargeting])
+
+-- | Represents size of a single ad slot, or a creative.
+--
+-- /See:/ 'adSize' smart constructor.
+data AdSize = AdSize'
+    { _asHeight   :: !(Maybe (Textual Int64))
+    , _asWidth    :: !(Maybe (Textual Int64))
+    , _asSizeType :: !(Maybe AdSizeSizeType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdSize' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asHeight'
+--
+-- * 'asWidth'
+--
+-- * 'asSizeType'
+adSize
+    :: AdSize
+adSize =
+    AdSize'
+    { _asHeight = Nothing
+    , _asWidth = Nothing
+    , _asSizeType = Nothing
+    }
+
+-- | The height of the ad slot in pixels. This field will be present only
+-- when size type is \`PIXEL\`.
+asHeight :: Lens' AdSize (Maybe Int64)
+asHeight
+  = lens _asHeight (\ s a -> s{_asHeight = a}) .
+      mapping _Coerce
+
+-- | The width of the ad slot in pixels. This field will be present only when
+-- size type is \`PIXEL\`.
+asWidth :: Lens' AdSize (Maybe Int64)
+asWidth
+  = lens _asWidth (\ s a -> s{_asWidth = a}) .
+      mapping _Coerce
+
+-- | The size type of the ad slot.
+asSizeType :: Lens' AdSize (Maybe AdSizeSizeType)
+asSizeType
+  = lens _asSizeType (\ s a -> s{_asSizeType = a})
+
+instance FromJSON AdSize where
+        parseJSON
+          = withObject "AdSize"
+              (\ o ->
+                 AdSize' <$>
+                   (o .:? "height") <*> (o .:? "width") <*>
+                     (o .:? "sizeType"))
+
+instance ToJSON AdSize where
+        toJSON AdSize'{..}
+          = object
+              (catMaybes
+                 [("height" .=) <$> _asHeight,
+                  ("width" .=) <$> _asWidth,
+                  ("sizeType" .=) <$> _asSizeType])
+
+-- | A request for stopping notifications for changes to creative Status.
+--
+-- /See:/ 'stopWatchingCreativeRequest' smart constructor.
+data StopWatchingCreativeRequest =
+    StopWatchingCreativeRequest'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StopWatchingCreativeRequest' with the minimum fields required to make a request.
+--
+stopWatchingCreativeRequest
+    :: StopWatchingCreativeRequest
+stopWatchingCreativeRequest = StopWatchingCreativeRequest'
+
+instance FromJSON StopWatchingCreativeRequest where
+        parseJSON
+          = withObject "StopWatchingCreativeRequest"
+              (\ o -> pure StopWatchingCreativeRequest')
+
+instance ToJSON StopWatchingCreativeRequest where
+        toJSON = const emptyObject
+
+-- | A request for watching changes to creative Status.
+--
+-- /See:/ 'watchCreativeRequest' smart constructor.
+newtype WatchCreativeRequest = WatchCreativeRequest'
+    { _wcrTopic :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'WatchCreativeRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wcrTopic'
+watchCreativeRequest
+    :: WatchCreativeRequest
+watchCreativeRequest =
+    WatchCreativeRequest'
+    { _wcrTopic = Nothing
+    }
+
+-- | The Pub\/Sub topic to publish notifications to. This topic must already
+-- exist and must give permission to
+-- ad-exchange-buyside-reports\'google.com to write to the topic. This
+-- should be the full resource name in
+-- \"projects\/{project_id}\/topics\/{topic_id}\" format.
+wcrTopic :: Lens' WatchCreativeRequest (Maybe Text)
+wcrTopic = lens _wcrTopic (\ s a -> s{_wcrTopic = a})
+
+instance FromJSON WatchCreativeRequest where
+        parseJSON
+          = withObject "WatchCreativeRequest"
+              (\ o -> WatchCreativeRequest' <$> (o .:? "topic"))
+
+instance ToJSON WatchCreativeRequest where
+        toJSON WatchCreativeRequest'{..}
+          = object (catMaybes [("topic" .=) <$> _wcrTopic])
+
+-- | Message captures metadata about the serving status of a deal.
+--
+-- /See:/ 'dealServingMetadata' smart constructor.
+newtype DealServingMetadata = DealServingMetadata'
+    { _dsmDealPauseStatus :: Maybe DealPauseStatus
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DealServingMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsmDealPauseStatus'
+dealServingMetadata
+    :: DealServingMetadata
+dealServingMetadata =
+    DealServingMetadata'
+    { _dsmDealPauseStatus = Nothing
+    }
+
+-- | Tracks which parties (if any) have paused a deal. \'OutputOnly
+dsmDealPauseStatus :: Lens' DealServingMetadata (Maybe DealPauseStatus)
+dsmDealPauseStatus
+  = lens _dsmDealPauseStatus
+      (\ s a -> s{_dsmDealPauseStatus = a})
+
+instance FromJSON DealServingMetadata where
+        parseJSON
+          = withObject "DealServingMetadata"
+              (\ o ->
+                 DealServingMetadata' <$> (o .:? "dealPauseStatus"))
+
+instance ToJSON DealServingMetadata where
+        toJSON DealServingMetadata'{..}
+          = object
+              (catMaybes
+                 [("dealPauseStatus" .=) <$> _dsmDealPauseStatus])
+
+-- | Message contains details about how the deals will be paced.
+--
+-- /See:/ 'deliveryControl' smart constructor.
+data DeliveryControl = DeliveryControl'
+    { _dcCreativeBlockingLevel :: !(Maybe DeliveryControlCreativeBlockingLevel)
+    , _dcFrequencyCaps         :: !(Maybe [FrequencyCap])
+    , _dcDeliveryRateType      :: !(Maybe DeliveryControlDeliveryRateType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeliveryControl' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dcCreativeBlockingLevel'
+--
+-- * 'dcFrequencyCaps'
+--
+-- * 'dcDeliveryRateType'
+deliveryControl
+    :: DeliveryControl
+deliveryControl =
+    DeliveryControl'
+    { _dcCreativeBlockingLevel = Nothing
+    , _dcFrequencyCaps = Nothing
+    , _dcDeliveryRateType = Nothing
+    }
+
+-- | Specified the creative blocking levels to be applied. \'OutputOnly
+dcCreativeBlockingLevel :: Lens' DeliveryControl (Maybe DeliveryControlCreativeBlockingLevel)
+dcCreativeBlockingLevel
+  = lens _dcCreativeBlockingLevel
+      (\ s a -> s{_dcCreativeBlockingLevel = a})
+
+-- | Specifies any frequency caps. \'OutputOnly
+dcFrequencyCaps :: Lens' DeliveryControl [FrequencyCap]
+dcFrequencyCaps
+  = lens _dcFrequencyCaps
+      (\ s a -> s{_dcFrequencyCaps = a})
+      . _Default
+      . _Coerce
+
+-- | Specifies how the impression delivery will be paced. \'OutputOnly
+dcDeliveryRateType :: Lens' DeliveryControl (Maybe DeliveryControlDeliveryRateType)
+dcDeliveryRateType
+  = lens _dcDeliveryRateType
+      (\ s a -> s{_dcDeliveryRateType = a})
+
+instance FromJSON DeliveryControl where
+        parseJSON
+          = withObject "DeliveryControl"
+              (\ o ->
+                 DeliveryControl' <$>
+                   (o .:? "creativeBlockingLevel") <*>
+                     (o .:? "frequencyCaps" .!= mempty)
+                     <*> (o .:? "deliveryRateType"))
+
+instance ToJSON DeliveryControl where
+        toJSON DeliveryControl'{..}
+          = object
+              (catMaybes
+                 [("creativeBlockingLevel" .=) <$>
+                    _dcCreativeBlockingLevel,
+                  ("frequencyCaps" .=) <$> _dcFrequencyCaps,
+                  ("deliveryRateType" .=) <$> _dcDeliveryRateType])
+
+-- | Used to specify pricing rules for buyers\/advertisers. Each
+-- PricePerBuyer in a product can become 0 or 1 deals. To check if there is
+-- a PricePerBuyer for a particular buyer or buyer\/advertiser pair, we
+-- look for the most specific matching rule - we first look for a rule
+-- matching the buyer and advertiser, next a rule with the buyer but an
+-- empty advertiser list, and otherwise look for a matching rule where no
+-- buyer is set.
+--
+-- /See:/ 'pricePerBuyer' smart constructor.
+data PricePerBuyer = PricePerBuyer'
+    { _ppbPrice         :: !(Maybe Price)
+    , _ppbAdvertiserIds :: !(Maybe [Text])
+    , _ppbBuyer         :: !(Maybe Buyer)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PricePerBuyer' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ppbPrice'
+--
+-- * 'ppbAdvertiserIds'
+--
+-- * 'ppbBuyer'
+pricePerBuyer
+    :: PricePerBuyer
+pricePerBuyer =
+    PricePerBuyer'
+    { _ppbPrice = Nothing
+    , _ppbAdvertiserIds = Nothing
+    , _ppbBuyer = Nothing
+    }
+
+-- | The specified price.
+ppbPrice :: Lens' PricePerBuyer (Maybe Price)
+ppbPrice = lens _ppbPrice (\ s a -> s{_ppbPrice = a})
+
+-- | The list of advertisers for this price when associated with this buyer.
+-- If empty, all advertisers with this buyer pay this price.
+ppbAdvertiserIds :: Lens' PricePerBuyer [Text]
+ppbAdvertiserIds
+  = lens _ppbAdvertiserIds
+      (\ s a -> s{_ppbAdvertiserIds = a})
+      . _Default
+      . _Coerce
+
+-- | The buyer who will pay this price. If unset, all buyers can pay this
+-- price (if the advertisers match, and there\'s no more specific rule
+-- matching the buyer).
+ppbBuyer :: Lens' PricePerBuyer (Maybe Buyer)
+ppbBuyer = lens _ppbBuyer (\ s a -> s{_ppbBuyer = a})
+
+instance FromJSON PricePerBuyer where
+        parseJSON
+          = withObject "PricePerBuyer"
+              (\ o ->
+                 PricePerBuyer' <$>
+                   (o .:? "price") <*>
+                     (o .:? "advertiserIds" .!= mempty)
+                     <*> (o .:? "buyer"))
+
+instance ToJSON PricePerBuyer where
+        toJSON PricePerBuyer'{..}
+          = object
+              (catMaybes
+                 [("price" .=) <$> _ppbPrice,
+                  ("advertiserIds" .=) <$> _ppbAdvertiserIds,
+                  ("buyer" .=) <$> _ppbBuyer])
+
+-- | A creative and its classification data. Next ID: 39
+--
+-- /See:/ 'creative' smart constructor.
+data Creative = Creative'
+    { _cAPIUpdateTime               :: !(Maybe DateTime')
+    , _cDetectedLanguages           :: !(Maybe [Text])
+    , _cAdvertiserName              :: !(Maybe Text)
+    , _cAdChoicesDestinationURL     :: !(Maybe Text)
+    , _cAgencyId                    :: !(Maybe (Textual Int64))
+    , _cCorrections                 :: !(Maybe [Correction])
+    , _cClickThroughURLs            :: !(Maybe [Text])
+    , _cRestrictedCategories        :: !(Maybe [Text])
+    , _cDetectedProductCategories   :: !(Maybe [Textual Int32])
+    , _cDealsStatus                 :: !(Maybe CreativeDealsStatus)
+    , _cCreativeId                  :: !(Maybe Text)
+    , _cVideo                       :: !(Maybe VideoContent)
+    , _cNATive                      :: !(Maybe NATiveContent)
+    , _cDetectedSensitiveCategories :: !(Maybe [Textual Int32])
+    , _cImpressionTrackingURLs      :: !(Maybe [Text])
+    , _cAccountId                   :: !(Maybe Text)
+    , _cAttributes                  :: !(Maybe [Text])
+    , _cVersion                     :: !(Maybe (Textual Int32))
+    , _cVendorIds                   :: !(Maybe [Textual Int32])
+    , _cDetectedAdvertiserIds       :: !(Maybe [Textual Int64])
+    , _cHTML                        :: !(Maybe HTMLContent)
+    , _cServingRestrictions         :: !(Maybe [ServingRestriction])
+    , _cDetectedDomains             :: !(Maybe [Text])
+    , _cOpenAuctionStatus           :: !(Maybe CreativeOpenAuctionStatus)
+    , _cFilteringStats              :: !(Maybe FilteringStats)
+    , _cDeclaredClickThroughURLs    :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Creative' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cAPIUpdateTime'
+--
+-- * 'cDetectedLanguages'
+--
+-- * 'cAdvertiserName'
+--
+-- * 'cAdChoicesDestinationURL'
+--
+-- * 'cAgencyId'
+--
+-- * 'cCorrections'
+--
+-- * 'cClickThroughURLs'
+--
+-- * 'cRestrictedCategories'
+--
+-- * 'cDetectedProductCategories'
+--
+-- * 'cDealsStatus'
+--
+-- * 'cCreativeId'
+--
+-- * 'cVideo'
+--
+-- * 'cNATive'
+--
+-- * 'cDetectedSensitiveCategories'
+--
+-- * 'cImpressionTrackingURLs'
+--
+-- * 'cAccountId'
+--
+-- * 'cAttributes'
+--
+-- * 'cVersion'
+--
+-- * 'cVendorIds'
+--
+-- * 'cDetectedAdvertiserIds'
+--
+-- * 'cHTML'
+--
+-- * 'cServingRestrictions'
+--
+-- * 'cDetectedDomains'
+--
+-- * 'cOpenAuctionStatus'
+--
+-- * 'cFilteringStats'
+--
+-- * 'cDeclaredClickThroughURLs'
+creative
+    :: Creative
+creative =
+    Creative'
+    { _cAPIUpdateTime = Nothing
+    , _cDetectedLanguages = Nothing
+    , _cAdvertiserName = Nothing
+    , _cAdChoicesDestinationURL = Nothing
+    , _cAgencyId = Nothing
+    , _cCorrections = Nothing
+    , _cClickThroughURLs = Nothing
+    , _cRestrictedCategories = Nothing
+    , _cDetectedProductCategories = Nothing
+    , _cDealsStatus = Nothing
+    , _cCreativeId = Nothing
+    , _cVideo = Nothing
+    , _cNATive = Nothing
+    , _cDetectedSensitiveCategories = Nothing
+    , _cImpressionTrackingURLs = Nothing
+    , _cAccountId = Nothing
+    , _cAttributes = Nothing
+    , _cVersion = Nothing
+    , _cVendorIds = Nothing
+    , _cDetectedAdvertiserIds = Nothing
+    , _cHTML = Nothing
+    , _cServingRestrictions = Nothing
+    , _cDetectedDomains = Nothing
+    , _cOpenAuctionStatus = Nothing
+    , _cFilteringStats = Nothing
+    , _cDeclaredClickThroughURLs = Nothing
+    }
+
+-- | \'OutputOnly The last update timestamp of the creative via API.
+cAPIUpdateTime :: Lens' Creative (Maybe UTCTime)
+cAPIUpdateTime
+  = lens _cAPIUpdateTime
+      (\ s a -> s{_cAPIUpdateTime = a})
+      . mapping _DateTime
+
+-- | \'OutputOnly The detected languages for this creative. The order is
+-- arbitrary. The codes are 2 or 5 characters and are documented at
+-- https:\/\/developers.google.com\/adwords\/api\/docs\/appendix\/languagecodes.
+cDetectedLanguages :: Lens' Creative [Text]
+cDetectedLanguages
+  = lens _cDetectedLanguages
+      (\ s a -> s{_cDetectedLanguages = a})
+      . _Default
+      . _Coerce
+
+-- | The name of the company being advertised in the creative.
+cAdvertiserName :: Lens' Creative (Maybe Text)
+cAdvertiserName
+  = lens _cAdvertiserName
+      (\ s a -> s{_cAdvertiserName = a})
+
+-- | The link to AdChoices destination page.
+cAdChoicesDestinationURL :: Lens' Creative (Maybe Text)
+cAdChoicesDestinationURL
+  = lens _cAdChoicesDestinationURL
+      (\ s a -> s{_cAdChoicesDestinationURL = a})
+
+-- | The agency ID for this creative.
+cAgencyId :: Lens' Creative (Maybe Int64)
+cAgencyId
+  = lens _cAgencyId (\ s a -> s{_cAgencyId = a}) .
+      mapping _Coerce
+
+-- | \'OutputOnly Shows any corrections that were applied to this creative.
+cCorrections :: Lens' Creative [Correction]
+cCorrections
+  = lens _cCorrections (\ s a -> s{_cCorrections = a})
+      . _Default
+      . _Coerce
+
+-- | The set of destination URLs for the creative.
+cClickThroughURLs :: Lens' Creative [Text]
+cClickThroughURLs
+  = lens _cClickThroughURLs
+      (\ s a -> s{_cClickThroughURLs = a})
+      . _Default
+      . _Coerce
+
+-- | All restricted categories for the ads that may be shown from this
+-- creative.
+cRestrictedCategories :: Lens' Creative [Text]
+cRestrictedCategories
+  = lens _cRestrictedCategories
+      (\ s a -> s{_cRestrictedCategories = a})
+      . _Default
+      . _Coerce
+
+-- | \'OutputOnly Detected product categories, if any. See the
+-- ad-product-categories.txt file in the technical documentation for a list
+-- of IDs.
+cDetectedProductCategories :: Lens' Creative [Int32]
+cDetectedProductCategories
+  = lens _cDetectedProductCategories
+      (\ s a -> s{_cDetectedProductCategories = a})
+      . _Default
+      . _Coerce
+
+-- | \'OutputOnly The top-level deals status of this creative. If
+-- disapproved, an entry for \'auctionType=DIRECT_DEALS\' (or \'ALL\') in
+-- serving_restrictions will also exist. Note that this may be nuanced with
+-- other contextual restrictions, in which case, it may be preferable to
+-- read from serving_restrictions directly. Can be used to filter the
+-- response of the creatives.list method.
+cDealsStatus :: Lens' Creative (Maybe CreativeDealsStatus)
+cDealsStatus
+  = lens _cDealsStatus (\ s a -> s{_cDealsStatus = a})
+
+-- | The buyer-defined creative ID of this creative. Can be used to filter
+-- the response of the creatives.list method.
+cCreativeId :: Lens' Creative (Maybe Text)
+cCreativeId
+  = lens _cCreativeId (\ s a -> s{_cCreativeId = a})
+
+-- | A video creative.
+cVideo :: Lens' Creative (Maybe VideoContent)
+cVideo = lens _cVideo (\ s a -> s{_cVideo = a})
+
+-- | A native creative.
+cNATive :: Lens' Creative (Maybe NATiveContent)
+cNATive = lens _cNATive (\ s a -> s{_cNATive = a})
+
+-- | \'OutputOnly Detected sensitive categories, if any. See the
+-- ad-sensitive-categories.txt file in the technical documentation for a
+-- list of IDs. You should use these IDs along with the
+-- excluded-sensitive-category field in the bid request to filter your
+-- bids.
+cDetectedSensitiveCategories :: Lens' Creative [Int32]
+cDetectedSensitiveCategories
+  = lens _cDetectedSensitiveCategories
+      (\ s a -> s{_cDetectedSensitiveCategories = a})
+      . _Default
+      . _Coerce
+
+-- | The set of URLs to be called to record an impression.
+cImpressionTrackingURLs :: Lens' Creative [Text]
+cImpressionTrackingURLs
+  = lens _cImpressionTrackingURLs
+      (\ s a -> s{_cImpressionTrackingURLs = a})
+      . _Default
+      . _Coerce
+
+-- | The account that this creative belongs to. Can be used to filter the
+-- response of the creatives.list method.
+cAccountId :: Lens' Creative (Maybe Text)
+cAccountId
+  = lens _cAccountId (\ s a -> s{_cAccountId = a})
+
+-- | All attributes for the ads that may be shown from this creative. Can be
+-- used to filter the response of the creatives.list method.
+cAttributes :: Lens' Creative [Text]
+cAttributes
+  = lens _cAttributes (\ s a -> s{_cAttributes = a}) .
+      _Default
+      . _Coerce
+
+-- | \'OutputOnly The version of this creative.
+cVersion :: Lens' Creative (Maybe Int32)
+cVersion
+  = lens _cVersion (\ s a -> s{_cVersion = a}) .
+      mapping _Coerce
+
+-- | All vendor IDs for the ads that may be shown from this creative. See
+-- https:\/\/storage.googleapis.com\/adx-rtb-dictionaries\/vendors.txt for
+-- possible values.
+cVendorIds :: Lens' Creative [Int32]
+cVendorIds
+  = lens _cVendorIds (\ s a -> s{_cVendorIds = a}) .
+      _Default
+      . _Coerce
+
+-- | \'OutputOnly Detected advertiser IDs, if any.
+cDetectedAdvertiserIds :: Lens' Creative [Int64]
+cDetectedAdvertiserIds
+  = lens _cDetectedAdvertiserIds
+      (\ s a -> s{_cDetectedAdvertiserIds = a})
+      . _Default
+      . _Coerce
+
+-- | An HTML creative.
+cHTML :: Lens' Creative (Maybe HTMLContent)
+cHTML = lens _cHTML (\ s a -> s{_cHTML = a})
+
+-- | \'OutputOnly The granular status of this ad in specific contexts. A
+-- context here relates to where something ultimately serves (for example,
+-- a physical location, a platform, an HTTPS vs HTTP request, or the type
+-- of auction).
+cServingRestrictions :: Lens' Creative [ServingRestriction]
+cServingRestrictions
+  = lens _cServingRestrictions
+      (\ s a -> s{_cServingRestrictions = a})
+      . _Default
+      . _Coerce
+
+-- | \'OutputOnly The detected domains for this creative.
+cDetectedDomains :: Lens' Creative [Text]
+cDetectedDomains
+  = lens _cDetectedDomains
+      (\ s a -> s{_cDetectedDomains = a})
+      . _Default
+      . _Coerce
+
+-- | \'OutputOnly The top-level open auction status of this creative. If
+-- disapproved, an entry for \'auctionType = OPEN_AUCTION\' (or \'ALL\') in
+-- serving_restrictions will also exist. Note that this may be nuanced with
+-- other contextual restrictions, in which case, it may be preferable to
+-- read from serving_restrictions directly. Can be used to filter the
+-- response of the creatives.list method.
+cOpenAuctionStatus :: Lens' Creative (Maybe CreativeOpenAuctionStatus)
+cOpenAuctionStatus
+  = lens _cOpenAuctionStatus
+      (\ s a -> s{_cOpenAuctionStatus = a})
+
+-- | \'OutputOnly The filtering stats for this creative.
+cFilteringStats :: Lens' Creative (Maybe FilteringStats)
+cFilteringStats
+  = lens _cFilteringStats
+      (\ s a -> s{_cFilteringStats = a})
+
+-- | The set of declared destination URLs for the creative.
+cDeclaredClickThroughURLs :: Lens' Creative [Text]
+cDeclaredClickThroughURLs
+  = lens _cDeclaredClickThroughURLs
+      (\ s a -> s{_cDeclaredClickThroughURLs = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Creative where
+        parseJSON
+          = withObject "Creative"
+              (\ o ->
+                 Creative' <$>
+                   (o .:? "apiUpdateTime") <*>
+                     (o .:? "detectedLanguages" .!= mempty)
+                     <*> (o .:? "advertiserName")
+                     <*> (o .:? "adChoicesDestinationUrl")
+                     <*> (o .:? "agencyId")
+                     <*> (o .:? "corrections" .!= mempty)
+                     <*> (o .:? "clickThroughUrls" .!= mempty)
+                     <*> (o .:? "restrictedCategories" .!= mempty)
+                     <*> (o .:? "detectedProductCategories" .!= mempty)
+                     <*> (o .:? "dealsStatus")
+                     <*> (o .:? "creativeId")
+                     <*> (o .:? "video")
+                     <*> (o .:? "native")
+                     <*> (o .:? "detectedSensitiveCategories" .!= mempty)
+                     <*> (o .:? "impressionTrackingUrls" .!= mempty)
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "attributes" .!= mempty)
+                     <*> (o .:? "version")
+                     <*> (o .:? "vendorIds" .!= mempty)
+                     <*> (o .:? "detectedAdvertiserIds" .!= mempty)
+                     <*> (o .:? "html")
+                     <*> (o .:? "servingRestrictions" .!= mempty)
+                     <*> (o .:? "detectedDomains" .!= mempty)
+                     <*> (o .:? "openAuctionStatus")
+                     <*> (o .:? "filteringStats")
+                     <*> (o .:? "declaredClickThroughUrls" .!= mempty))
+
+instance ToJSON Creative where
+        toJSON Creative'{..}
+          = object
+              (catMaybes
+                 [("apiUpdateTime" .=) <$> _cAPIUpdateTime,
+                  ("detectedLanguages" .=) <$> _cDetectedLanguages,
+                  ("advertiserName" .=) <$> _cAdvertiserName,
+                  ("adChoicesDestinationUrl" .=) <$>
+                    _cAdChoicesDestinationURL,
+                  ("agencyId" .=) <$> _cAgencyId,
+                  ("corrections" .=) <$> _cCorrections,
+                  ("clickThroughUrls" .=) <$> _cClickThroughURLs,
+                  ("restrictedCategories" .=) <$>
+                    _cRestrictedCategories,
+                  ("detectedProductCategories" .=) <$>
+                    _cDetectedProductCategories,
+                  ("dealsStatus" .=) <$> _cDealsStatus,
+                  ("creativeId" .=) <$> _cCreativeId,
+                  ("video" .=) <$> _cVideo, ("native" .=) <$> _cNATive,
+                  ("detectedSensitiveCategories" .=) <$>
+                    _cDetectedSensitiveCategories,
+                  ("impressionTrackingUrls" .=) <$>
+                    _cImpressionTrackingURLs,
+                  ("accountId" .=) <$> _cAccountId,
+                  ("attributes" .=) <$> _cAttributes,
+                  ("version" .=) <$> _cVersion,
+                  ("vendorIds" .=) <$> _cVendorIds,
+                  ("detectedAdvertiserIds" .=) <$>
+                    _cDetectedAdvertiserIds,
+                  ("html" .=) <$> _cHTML,
+                  ("servingRestrictions" .=) <$> _cServingRestrictions,
+                  ("detectedDomains" .=) <$> _cDetectedDomains,
+                  ("openAuctionStatus" .=) <$> _cOpenAuctionStatus,
+                  ("filteringStats" .=) <$> _cFilteringStats,
+                  ("declaredClickThroughUrls" .=) <$>
+                    _cDeclaredClickThroughURLs])
+
+-- | \'OutputOnly The app type the restriction applies to for mobile device.
+--
+-- /See:/ 'appContext' smart constructor.
+newtype AppContext = AppContext'
+    { _acAppTypes :: Maybe [Text]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acAppTypes'
+appContext
+    :: AppContext
+appContext =
+    AppContext'
+    { _acAppTypes = Nothing
+    }
+
+-- | The app types this restriction applies to.
+acAppTypes :: Lens' AppContext [Text]
+acAppTypes
+  = lens _acAppTypes (\ s a -> s{_acAppTypes = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON AppContext where
+        parseJSON
+          = withObject "AppContext"
+              (\ o ->
+                 AppContext' <$> (o .:? "appTypes" .!= mempty))
+
+instance ToJSON AppContext where
+        toJSON AppContext'{..}
+          = object
+              (catMaybes [("appTypes" .=) <$> _acAppTypes])
+
+-- | Targeting represents different criteria that can be used by advertisers
+-- to target ad inventory. For example, they can choose to target ad
+-- requests only if the user is in the US. Multiple types of targeting are
+-- always applied as a logical AND, unless noted otherwise.
+--
+-- /See:/ 'marketplaceTargeting' smart constructor.
+data MarketplaceTargeting = MarketplaceTargeting'
+    { _mtGeoTargeting           :: !(Maybe CriteriaTargeting)
+    , _mtTechnologyTargeting    :: !(Maybe TechnologyTargeting)
+    , _mtPlacementTargeting     :: !(Maybe PlacementTargeting)
+    , _mtVideoTargeting         :: !(Maybe VideoTargeting)
+    , _mtInventorySizeTargeting :: !(Maybe InventorySizeTargeting)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MarketplaceTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mtGeoTargeting'
+--
+-- * 'mtTechnologyTargeting'
+--
+-- * 'mtPlacementTargeting'
+--
+-- * 'mtVideoTargeting'
+--
+-- * 'mtInventorySizeTargeting'
+marketplaceTargeting
+    :: MarketplaceTargeting
+marketplaceTargeting =
+    MarketplaceTargeting'
+    { _mtGeoTargeting = Nothing
+    , _mtTechnologyTargeting = Nothing
+    , _mtPlacementTargeting = Nothing
+    , _mtVideoTargeting = Nothing
+    , _mtInventorySizeTargeting = Nothing
+    }
+
+-- | Geo criteria IDs to be included\/excluded.
+mtGeoTargeting :: Lens' MarketplaceTargeting (Maybe CriteriaTargeting)
+mtGeoTargeting
+  = lens _mtGeoTargeting
+      (\ s a -> s{_mtGeoTargeting = a})
+
+-- | Technology targeting information, e.g., operating system, device
+-- category.
+mtTechnologyTargeting :: Lens' MarketplaceTargeting (Maybe TechnologyTargeting)
+mtTechnologyTargeting
+  = lens _mtTechnologyTargeting
+      (\ s a -> s{_mtTechnologyTargeting = a})
+
+-- | Placement targeting information, e.g., URL, mobile applications.
+mtPlacementTargeting :: Lens' MarketplaceTargeting (Maybe PlacementTargeting)
+mtPlacementTargeting
+  = lens _mtPlacementTargeting
+      (\ s a -> s{_mtPlacementTargeting = a})
+
+-- | Video targeting information.
+mtVideoTargeting :: Lens' MarketplaceTargeting (Maybe VideoTargeting)
+mtVideoTargeting
+  = lens _mtVideoTargeting
+      (\ s a -> s{_mtVideoTargeting = a})
+
+-- | Inventory sizes to be included\/excluded.
+mtInventorySizeTargeting :: Lens' MarketplaceTargeting (Maybe InventorySizeTargeting)
+mtInventorySizeTargeting
+  = lens _mtInventorySizeTargeting
+      (\ s a -> s{_mtInventorySizeTargeting = a})
+
+instance FromJSON MarketplaceTargeting where
+        parseJSON
+          = withObject "MarketplaceTargeting"
+              (\ o ->
+                 MarketplaceTargeting' <$>
+                   (o .:? "geoTargeting") <*>
+                     (o .:? "technologyTargeting")
+                     <*> (o .:? "placementTargeting")
+                     <*> (o .:? "videoTargeting")
+                     <*> (o .:? "inventorySizeTargeting"))
+
+instance ToJSON MarketplaceTargeting where
+        toJSON MarketplaceTargeting'{..}
+          = object
+              (catMaybes
+                 [("geoTargeting" .=) <$> _mtGeoTargeting,
+                  ("technologyTargeting" .=) <$>
+                    _mtTechnologyTargeting,
+                  ("placementTargeting" .=) <$> _mtPlacementTargeting,
+                  ("videoTargeting" .=) <$> _mtVideoTargeting,
+                  ("inventorySizeTargeting" .=) <$>
+                    _mtInventorySizeTargeting])
+
+-- | Response message for listing all reasons that bid responses resulted in
+-- an error.
+--
+-- /See:/ 'listBidResponseErrorsResponse' smart constructor.
+data ListBidResponseErrorsResponse = ListBidResponseErrorsResponse'
+    { _lbrerNextPageToken     :: !(Maybe Text)
+    , _lbrerCalloutStatusRows :: !(Maybe [CalloutStatusRow])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListBidResponseErrorsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lbrerNextPageToken'
+--
+-- * 'lbrerCalloutStatusRows'
+listBidResponseErrorsResponse
+    :: ListBidResponseErrorsResponse
+listBidResponseErrorsResponse =
+    ListBidResponseErrorsResponse'
+    { _lbrerNextPageToken = Nothing
+    , _lbrerCalloutStatusRows = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListBidResponseErrorsRequest.pageToken field in the subsequent call to
+-- the bidResponseErrors.list method to retrieve the next page of results.
+lbrerNextPageToken :: Lens' ListBidResponseErrorsResponse (Maybe Text)
+lbrerNextPageToken
+  = lens _lbrerNextPageToken
+      (\ s a -> s{_lbrerNextPageToken = a})
+
+-- | List of rows, with counts of bid responses aggregated by callout status.
+lbrerCalloutStatusRows :: Lens' ListBidResponseErrorsResponse [CalloutStatusRow]
+lbrerCalloutStatusRows
+  = lens _lbrerCalloutStatusRows
+      (\ s a -> s{_lbrerCalloutStatusRows = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListBidResponseErrorsResponse where
+        parseJSON
+          = withObject "ListBidResponseErrorsResponse"
+              (\ o ->
+                 ListBidResponseErrorsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "calloutStatusRows" .!= mempty))
+
+instance ToJSON ListBidResponseErrorsResponse where
+        toJSON ListBidResponseErrorsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lbrerNextPageToken,
+                  ("calloutStatusRows" .=) <$>
+                    _lbrerCalloutStatusRows])
+
+-- | \'OutputOnly Shows any corrections that were applied to this creative.
+--
+-- /See:/ 'correction' smart constructor.
+data Correction = Correction'
+    { _cContexts :: !(Maybe [ServingContext])
+    , _cDetails  :: !(Maybe [Text])
+    , _cType     :: !(Maybe CorrectionType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Correction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cContexts'
+--
+-- * 'cDetails'
+--
+-- * 'cType'
+correction
+    :: Correction
+correction =
+    Correction'
+    { _cContexts = Nothing
+    , _cDetails = Nothing
+    , _cType = Nothing
+    }
+
+-- | The contexts for the correction.
+cContexts :: Lens' Correction [ServingContext]
+cContexts
+  = lens _cContexts (\ s a -> s{_cContexts = a}) .
+      _Default
+      . _Coerce
+
+-- | Additional details about what was corrected.
+cDetails :: Lens' Correction [Text]
+cDetails
+  = lens _cDetails (\ s a -> s{_cDetails = a}) .
+      _Default
+      . _Coerce
+
+-- | The type of correction that was applied to the creative.
+cType :: Lens' Correction (Maybe CorrectionType)
+cType = lens _cType (\ s a -> s{_cType = a})
+
+instance FromJSON Correction where
+        parseJSON
+          = withObject "Correction"
+              (\ o ->
+                 Correction' <$>
+                   (o .:? "contexts" .!= mempty) <*>
+                     (o .:? "details" .!= mempty)
+                     <*> (o .:? "type"))
+
+instance ToJSON Correction where
+        toJSON Correction'{..}
+          = object
+              (catMaybes
+                 [("contexts" .=) <$> _cContexts,
+                  ("details" .=) <$> _cDetails,
+                  ("type" .=) <$> _cType])
+
+-- | The association between a creative and a deal.
+--
+-- /See:/ 'creativeDealAssociation' smart constructor.
+data CreativeDealAssociation = CreativeDealAssociation'
+    { _cdaCreativeId :: !(Maybe Text)
+    , _cdaAccountId  :: !(Maybe Text)
+    , _cdaDealsId    :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeDealAssociation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdaCreativeId'
+--
+-- * 'cdaAccountId'
+--
+-- * 'cdaDealsId'
+creativeDealAssociation
+    :: CreativeDealAssociation
+creativeDealAssociation =
+    CreativeDealAssociation'
+    { _cdaCreativeId = Nothing
+    , _cdaAccountId = Nothing
+    , _cdaDealsId = Nothing
+    }
+
+-- | The ID of the creative associated with the deal.
+cdaCreativeId :: Lens' CreativeDealAssociation (Maybe Text)
+cdaCreativeId
+  = lens _cdaCreativeId
+      (\ s a -> s{_cdaCreativeId = a})
+
+-- | The account the creative belongs to.
+cdaAccountId :: Lens' CreativeDealAssociation (Maybe Text)
+cdaAccountId
+  = lens _cdaAccountId (\ s a -> s{_cdaAccountId = a})
+
+-- | The externalDealId for the deal associated with the creative.
+cdaDealsId :: Lens' CreativeDealAssociation (Maybe Text)
+cdaDealsId
+  = lens _cdaDealsId (\ s a -> s{_cdaDealsId = a})
+
+instance FromJSON CreativeDealAssociation where
+        parseJSON
+          = withObject "CreativeDealAssociation"
+              (\ o ->
+                 CreativeDealAssociation' <$>
+                   (o .:? "creativeId") <*> (o .:? "accountId") <*>
+                     (o .:? "dealsId"))
+
+instance ToJSON CreativeDealAssociation where
+        toJSON CreativeDealAssociation'{..}
+          = object
+              (catMaybes
+                 [("creativeId" .=) <$> _cdaCreativeId,
+                  ("accountId" .=) <$> _cdaAccountId,
+                  ("dealsId" .=) <$> _cdaDealsId])
+
+-- | Represents a seller of inventory. Each seller is identified by a unique
+-- Ad Manager account ID.
+--
+-- /See:/ 'seller' smart constructor.
+data Seller = Seller'
+    { _sAccountId    :: !(Maybe Text)
+    , _sSubAccountId :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Seller' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sAccountId'
+--
+-- * 'sSubAccountId'
+seller
+    :: Seller
+seller =
+    Seller'
+    { _sAccountId = Nothing
+    , _sSubAccountId = Nothing
+    }
+
+-- | The unique ID for the seller. The seller fills in this field. The seller
+-- account ID is then available to buyer in the product.
+sAccountId :: Lens' Seller (Maybe Text)
+sAccountId
+  = lens _sAccountId (\ s a -> s{_sAccountId = a})
+
+-- | Optional sub-account ID for the seller.
+sSubAccountId :: Lens' Seller (Maybe Text)
+sSubAccountId
+  = lens _sSubAccountId
+      (\ s a -> s{_sSubAccountId = a})
+
+instance FromJSON Seller where
+        parseJSON
+          = withObject "Seller"
+              (\ o ->
+                 Seller' <$>
+                   (o .:? "accountId") <*> (o .:? "subAccountId"))
+
+instance ToJSON Seller where
+        toJSON Seller'{..}
+          = object
+              (catMaybes
+                 [("accountId" .=) <$> _sAccountId,
+                  ("subAccountId" .=) <$> _sSubAccountId])
+
+-- | A response for listing creatives.
+--
+-- /See:/ 'listCreativesResponse' smart constructor.
+data ListCreativesResponse = ListCreativesResponse'
+    { _lcrNextPageToken :: !(Maybe Text)
+    , _lcrCreatives     :: !(Maybe [Creative])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListCreativesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lcrNextPageToken'
+--
+-- * 'lcrCreatives'
+listCreativesResponse
+    :: ListCreativesResponse
+listCreativesResponse =
+    ListCreativesResponse'
+    { _lcrNextPageToken = Nothing
+    , _lcrCreatives = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListCreativesRequest.page_token field in the subsequent call to
+-- \`ListCreatives\` method to retrieve the next page of results.
+lcrNextPageToken :: Lens' ListCreativesResponse (Maybe Text)
+lcrNextPageToken
+  = lens _lcrNextPageToken
+      (\ s a -> s{_lcrNextPageToken = a})
+
+-- | The list of creatives.
+lcrCreatives :: Lens' ListCreativesResponse [Creative]
+lcrCreatives
+  = lens _lcrCreatives (\ s a -> s{_lcrCreatives = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListCreativesResponse where
+        parseJSON
+          = withObject "ListCreativesResponse"
+              (\ o ->
+                 ListCreativesResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "creatives" .!= mempty))
+
+instance ToJSON ListCreativesResponse where
+        toJSON ListCreativesResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lcrNextPageToken,
+                  ("creatives" .=) <$> _lcrCreatives])
+
+-- | A response may include multiple rows, breaking down along various
+-- dimensions. Encapsulates the values of all dimensions for a given row.
+--
+-- /See:/ 'rowDimensions' smart constructor.
+data RowDimensions = RowDimensions'
+    { _rdPublisherIdentifier :: !(Maybe Text)
+    , _rdTimeInterval        :: !(Maybe TimeInterval)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RowDimensions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdPublisherIdentifier'
+--
+-- * 'rdTimeInterval'
+rowDimensions
+    :: RowDimensions
+rowDimensions =
+    RowDimensions'
+    { _rdPublisherIdentifier = Nothing
+    , _rdTimeInterval = Nothing
+    }
+
+-- | The publisher identifier for this row, if a breakdown by
+-- [BreakdownDimension.PUBLISHER_IDENTIFIER](https:\/\/developers.google.com\/authorized-buyers\/apis\/reference\/rest\/v2beta1\/bidders.accounts.filterSets#FilterSet.BreakdownDimension)
+-- was requested.
+rdPublisherIdentifier :: Lens' RowDimensions (Maybe Text)
+rdPublisherIdentifier
+  = lens _rdPublisherIdentifier
+      (\ s a -> s{_rdPublisherIdentifier = a})
+
+-- | The time interval that this row represents.
+rdTimeInterval :: Lens' RowDimensions (Maybe TimeInterval)
+rdTimeInterval
+  = lens _rdTimeInterval
+      (\ s a -> s{_rdTimeInterval = a})
+
+instance FromJSON RowDimensions where
+        parseJSON
+          = withObject "RowDimensions"
+              (\ o ->
+                 RowDimensions' <$>
+                   (o .:? "publisherIdentifier") <*>
+                     (o .:? "timeInterval"))
+
+instance ToJSON RowDimensions where
+        toJSON RowDimensions'{..}
+          = object
+              (catMaybes
+                 [("publisherIdentifier" .=) <$>
+                    _rdPublisherIdentifier,
+                  ("timeInterval" .=) <$> _rdTimeInterval])
+
+-- | Represents targeting information for operating systems.
+--
+-- /See:/ 'operatingSystemTargeting' smart constructor.
+data OperatingSystemTargeting = OperatingSystemTargeting'
+    { _ostOperatingSystemVersionCriteria :: !(Maybe CriteriaTargeting)
+    , _ostOperatingSystemCriteria        :: !(Maybe CriteriaTargeting)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ostOperatingSystemVersionCriteria'
+--
+-- * 'ostOperatingSystemCriteria'
+operatingSystemTargeting
+    :: OperatingSystemTargeting
+operatingSystemTargeting =
+    OperatingSystemTargeting'
+    { _ostOperatingSystemVersionCriteria = Nothing
+    , _ostOperatingSystemCriteria = Nothing
+    }
+
+-- | IDs of operating system versions to be included\/excluded.
+ostOperatingSystemVersionCriteria :: Lens' OperatingSystemTargeting (Maybe CriteriaTargeting)
+ostOperatingSystemVersionCriteria
+  = lens _ostOperatingSystemVersionCriteria
+      (\ s a -> s{_ostOperatingSystemVersionCriteria = a})
+
+-- | IDs of operating systems to be included\/excluded.
+ostOperatingSystemCriteria :: Lens' OperatingSystemTargeting (Maybe CriteriaTargeting)
+ostOperatingSystemCriteria
+  = lens _ostOperatingSystemCriteria
+      (\ s a -> s{_ostOperatingSystemCriteria = a})
+
+instance FromJSON OperatingSystemTargeting where
+        parseJSON
+          = withObject "OperatingSystemTargeting"
+              (\ o ->
+                 OperatingSystemTargeting' <$>
+                   (o .:? "operatingSystemVersionCriteria") <*>
+                     (o .:? "operatingSystemCriteria"))
+
+instance ToJSON OperatingSystemTargeting where
+        toJSON OperatingSystemTargeting'{..}
+          = object
+              (catMaybes
+                 [("operatingSystemVersionCriteria" .=) <$>
+                    _ostOperatingSystemVersionCriteria,
+                  ("operatingSystemCriteria" .=) <$>
+                    _ostOperatingSystemCriteria])
+
+-- | Response message for listing all details associated with a given
+-- filtered bid reason.
+--
+-- /See:/ 'listCreativeStatusBreakdownByDetailResponse' smart constructor.
+data ListCreativeStatusBreakdownByDetailResponse = ListCreativeStatusBreakdownByDetailResponse'
+    { _lcsbbdrNextPageToken         :: !(Maybe Text)
+    , _lcsbbdrDetailType            :: !(Maybe ListCreativeStatusBreakdownByDetailResponseDetailType)
+    , _lcsbbdrFilteredBidDetailRows :: !(Maybe [FilteredBidDetailRow])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListCreativeStatusBreakdownByDetailResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lcsbbdrNextPageToken'
+--
+-- * 'lcsbbdrDetailType'
+--
+-- * 'lcsbbdrFilteredBidDetailRows'
+listCreativeStatusBreakdownByDetailResponse
+    :: ListCreativeStatusBreakdownByDetailResponse
+listCreativeStatusBreakdownByDetailResponse =
+    ListCreativeStatusBreakdownByDetailResponse'
+    { _lcsbbdrNextPageToken = Nothing
+    , _lcsbbdrDetailType = Nothing
+    , _lcsbbdrFilteredBidDetailRows = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListCreativeStatusBreakdownByDetailRequest.pageToken field in the
+-- subsequent call to the filteredBids.details.list method to retrieve the
+-- next page of results.
+lcsbbdrNextPageToken :: Lens' ListCreativeStatusBreakdownByDetailResponse (Maybe Text)
+lcsbbdrNextPageToken
+  = lens _lcsbbdrNextPageToken
+      (\ s a -> s{_lcsbbdrNextPageToken = a})
+
+-- | The type of detail that the detail IDs represent.
+lcsbbdrDetailType :: Lens' ListCreativeStatusBreakdownByDetailResponse (Maybe ListCreativeStatusBreakdownByDetailResponseDetailType)
+lcsbbdrDetailType
+  = lens _lcsbbdrDetailType
+      (\ s a -> s{_lcsbbdrDetailType = a})
+
+-- | List of rows, with counts of bids with a given creative status
+-- aggregated by detail.
+lcsbbdrFilteredBidDetailRows :: Lens' ListCreativeStatusBreakdownByDetailResponse [FilteredBidDetailRow]
+lcsbbdrFilteredBidDetailRows
+  = lens _lcsbbdrFilteredBidDetailRows
+      (\ s a -> s{_lcsbbdrFilteredBidDetailRows = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         ListCreativeStatusBreakdownByDetailResponse where
+        parseJSON
+          = withObject
+              "ListCreativeStatusBreakdownByDetailResponse"
+              (\ o ->
+                 ListCreativeStatusBreakdownByDetailResponse' <$>
+                   (o .:? "nextPageToken") <*> (o .:? "detailType") <*>
+                     (o .:? "filteredBidDetailRows" .!= mempty))
+
+instance ToJSON
+         ListCreativeStatusBreakdownByDetailResponse where
+        toJSON
+          ListCreativeStatusBreakdownByDetailResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lcsbbdrNextPageToken,
+                  ("detailType" .=) <$> _lcsbbdrDetailType,
+                  ("filteredBidDetailRows" .=) <$>
+                    _lcsbbdrFilteredBidDetailRows])
+
+-- | \'OutputOnly A security context.
+--
+-- /See:/ 'securityContext' smart constructor.
+newtype SecurityContext = SecurityContext'
+    { _scSecurities :: Maybe [Text]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SecurityContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'scSecurities'
+securityContext
+    :: SecurityContext
+securityContext =
+    SecurityContext'
+    { _scSecurities = Nothing
+    }
+
+-- | The security types in this context.
+scSecurities :: Lens' SecurityContext [Text]
+scSecurities
+  = lens _scSecurities (\ s a -> s{_scSecurities = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON SecurityContext where
+        parseJSON
+          = withObject "SecurityContext"
+              (\ o ->
+                 SecurityContext' <$> (o .:? "securities" .!= mempty))
+
+instance ToJSON SecurityContext where
+        toJSON SecurityContext'{..}
+          = object
+              (catMaybes [("securities" .=) <$> _scSecurities])
+
+-- | Represents a whole or partial calendar date, e.g. a birthday. The time
+-- of day and time zone are either specified elsewhere or are not
+-- significant. The date is relative to the Proleptic Gregorian Calendar.
+-- This can represent: * A full date, with non-zero year, month and day
+-- values * A month and day value, with a zero year, e.g. an anniversary *
+-- A year on its own, with zero month and day values * A year and month
+-- value, with a zero day, e.g. a credit card expiration date Related types
+-- are google.type.TimeOfDay and \`google.protobuf.Timestamp\`.
+--
+-- /See:/ 'date' smart constructor.
+data Date = Date'
+    { _dDay   :: !(Maybe (Textual Int32))
+    , _dYear  :: !(Maybe (Textual Int32))
+    , _dMonth :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Date' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dDay'
+--
+-- * 'dYear'
+--
+-- * 'dMonth'
+date
+    :: Date
+date =
+    Date'
+    { _dDay = Nothing
+    , _dYear = Nothing
+    , _dMonth = Nothing
+    }
+
+-- | Day of month. Must be from 1 to 31 and valid for the year and month, or
+-- 0 if specifying a year by itself or a year and month where the day is
+-- not significant.
+dDay :: Lens' Date (Maybe Int32)
+dDay
+  = lens _dDay (\ s a -> s{_dDay = a}) .
+      mapping _Coerce
+
+-- | Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+-- a year.
+dYear :: Lens' Date (Maybe Int32)
+dYear
+  = lens _dYear (\ s a -> s{_dYear = a}) .
+      mapping _Coerce
+
+-- | Month of year. Must be from 1 to 12, or 0 if specifying a year without a
+-- month and day.
+dMonth :: Lens' Date (Maybe Int32)
+dMonth
+  = lens _dMonth (\ s a -> s{_dMonth = a}) .
+      mapping _Coerce
+
+instance FromJSON Date where
+        parseJSON
+          = withObject "Date"
+              (\ o ->
+                 Date' <$>
+                   (o .:? "day") <*> (o .:? "year") <*> (o .:? "month"))
+
+instance ToJSON Date where
+        toJSON Date'{..}
+          = object
+              (catMaybes
+                 [("day" .=) <$> _dDay, ("year" .=) <$> _dYear,
+                  ("month" .=) <$> _dMonth])
+
+-- | Request to cancel an ongoing negotiation.
+--
+-- /See:/ 'cancelNegotiationRequest' smart constructor.
+data CancelNegotiationRequest =
+    CancelNegotiationRequest'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CancelNegotiationRequest' with the minimum fields required to make a request.
+--
+cancelNegotiationRequest
+    :: CancelNegotiationRequest
+cancelNegotiationRequest = CancelNegotiationRequest'
+
+instance FromJSON CancelNegotiationRequest where
+        parseJSON
+          = withObject "CancelNegotiationRequest"
+              (\ o -> pure CancelNegotiationRequest')
+
+instance ToJSON CancelNegotiationRequest where
+        toJSON = const emptyObject
+
+-- | Contains information on how a buyer or seller can be reached.
+--
+-- /See:/ 'contactInformation' smart constructor.
+data ContactInformation = ContactInformation'
+    { _ciEmail :: !(Maybe Text)
+    , _ciName  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContactInformation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ciEmail'
+--
+-- * 'ciName'
+contactInformation
+    :: ContactInformation
+contactInformation =
+    ContactInformation'
+    { _ciEmail = Nothing
+    , _ciName = Nothing
+    }
+
+-- | Email address for the contact.
+ciEmail :: Lens' ContactInformation (Maybe Text)
+ciEmail = lens _ciEmail (\ s a -> s{_ciEmail = a})
+
+-- | The name of the contact.
+ciName :: Lens' ContactInformation (Maybe Text)
+ciName = lens _ciName (\ s a -> s{_ciName = a})
+
+instance FromJSON ContactInformation where
+        parseJSON
+          = withObject "ContactInformation"
+              (\ o ->
+                 ContactInformation' <$>
+                   (o .:? "email") <*> (o .:? "name"))
+
+instance ToJSON ContactInformation where
+        toJSON ContactInformation'{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _ciEmail, ("name" .=) <$> _ciName])
+
+-- | An absolute date range, specified by its start date and end date. The
+-- supported range of dates begins 30 days before today and ends today.
+-- Validity checked upon filter set creation. If a filter set with an
+-- absolute date range is run at a later date more than 30 days after
+-- start_date, it will fail.
+--
+-- /See:/ 'absoluteDateRange' smart constructor.
+data AbsoluteDateRange = AbsoluteDateRange'
+    { _adrEndDate   :: !(Maybe Date)
+    , _adrStartDate :: !(Maybe Date)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AbsoluteDateRange' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'adrEndDate'
+--
+-- * 'adrStartDate'
+absoluteDateRange
+    :: AbsoluteDateRange
+absoluteDateRange =
+    AbsoluteDateRange'
+    { _adrEndDate = Nothing
+    , _adrStartDate = Nothing
+    }
+
+-- | The end date of the range (inclusive). Must be within the 30 days
+-- leading up to current date, and must be equal to or after start_date.
+adrEndDate :: Lens' AbsoluteDateRange (Maybe Date)
+adrEndDate
+  = lens _adrEndDate (\ s a -> s{_adrEndDate = a})
+
+-- | The start date of the range (inclusive). Must be within the 30 days
+-- leading up to current date, and must be equal to or before end_date.
+adrStartDate :: Lens' AbsoluteDateRange (Maybe Date)
+adrStartDate
+  = lens _adrStartDate (\ s a -> s{_adrStartDate = a})
+
+instance FromJSON AbsoluteDateRange where
+        parseJSON
+          = withObject "AbsoluteDateRange"
+              (\ o ->
+                 AbsoluteDateRange' <$>
+                   (o .:? "endDate") <*> (o .:? "startDate"))
+
+instance ToJSON AbsoluteDateRange where
+        toJSON AbsoluteDateRange'{..}
+          = object
+              (catMaybes
+                 [("endDate" .=) <$> _adrEndDate,
+                  ("startDate" .=) <$> _adrStartDate])
+
+-- | A specific filtering status and how many times it occurred.
+--
+-- /See:/ 'reason' smart constructor.
+data Reason = Reason'
+    { _rStatus :: !(Maybe (Textual Int32))
+    , _rCount  :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Reason' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rStatus'
+--
+-- * 'rCount'
+reason
+    :: Reason
+reason =
+    Reason'
+    { _rStatus = Nothing
+    , _rCount = Nothing
+    }
+
+-- | The filtering status code. Please refer to the
+-- [creative-status-codes.txt](https:\/\/storage.googleapis.com\/adx-rtb-dictionaries\/creative-status-codes.txt)
+-- file for different statuses.
+rStatus :: Lens' Reason (Maybe Int32)
+rStatus
+  = lens _rStatus (\ s a -> s{_rStatus = a}) .
+      mapping _Coerce
+
+-- | The number of times the creative was filtered for the status. The count
+-- is aggregated across all publishers on the exchange.
+rCount :: Lens' Reason (Maybe Int64)
+rCount
+  = lens _rCount (\ s a -> s{_rCount = a}) .
+      mapping _Coerce
+
+instance FromJSON Reason where
+        parseJSON
+          = withObject "Reason"
+              (\ o ->
+                 Reason' <$> (o .:? "status") <*> (o .:? "count"))
+
+instance ToJSON Reason where
+        toJSON Reason'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _rStatus,
+                  ("count" .=) <$> _rCount])
+
+-- | \'OutputOnly The auction type the restriction applies to.
+--
+-- /See:/ 'auctionContext' smart constructor.
+newtype AuctionContext = AuctionContext'
+    { _acAuctionTypes :: Maybe [Text]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AuctionContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acAuctionTypes'
+auctionContext
+    :: AuctionContext
+auctionContext =
+    AuctionContext'
+    { _acAuctionTypes = Nothing
+    }
+
+-- | The auction types this restriction applies to.
+acAuctionTypes :: Lens' AuctionContext [Text]
+acAuctionTypes
+  = lens _acAuctionTypes
+      (\ s a -> s{_acAuctionTypes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON AuctionContext where
+        parseJSON
+          = withObject "AuctionContext"
+              (\ o ->
+                 AuctionContext' <$>
+                   (o .:? "auctionTypes" .!= mempty))
+
+instance ToJSON AuctionContext where
+        toJSON AuctionContext'{..}
+          = object
+              (catMaybes [("auctionTypes" .=) <$> _acAuctionTypes])
+
+-- | A deal represents a segment of inventory for displaying ads on. A
+-- proposal can contain multiple deals. A deal contains the terms and
+-- targeting information that is used for serving.
+--
+-- /See:/ 'deal' smart constructor.
+data Deal = Deal'
+    { _dAvailableStartTime             :: !(Maybe DateTime')
+    , _dExternalDealId                 :: !(Maybe Text)
+    , _dBuyerPrivateData               :: !(Maybe PrivateData)
+    , _dIsSetupComplete                :: !(Maybe Bool)
+    , _dWebPropertyCode                :: !(Maybe Text)
+    , _dDeliveryControl                :: !(Maybe DeliveryControl)
+    , _dDealServingMetadata            :: !(Maybe DealServingMetadata)
+    , _dProposalId                     :: !(Maybe Text)
+    , _dTargeting                      :: !(Maybe MarketplaceTargeting)
+    , _dDealId                         :: !(Maybe Text)
+    , _dCreativeRestrictions           :: !(Maybe CreativeRestrictions)
+    , _dSyndicationProduct             :: !(Maybe DealSyndicationProduct)
+    , _dCreateProductRevision          :: !(Maybe (Textual Int64))
+    , _dUpdateTime                     :: !(Maybe DateTime')
+    , _dTargetingCriterion             :: !(Maybe [TargetingCriteria])
+    , _dSellerContacts                 :: !(Maybe [ContactInformation])
+    , _dCreateProductId                :: !(Maybe Text)
+    , _dDisplayName                    :: !(Maybe Text)
+    , _dProgrammaticCreativeSource     :: !(Maybe DealProgrammaticCreativeSource)
+    , _dAvailableEndTime               :: !(Maybe DateTime')
+    , _dCreativePreApprovalPolicy      :: !(Maybe DealCreativePreApprovalPolicy)
+    , _dDescription                    :: !(Maybe Text)
+    , _dCreateTime                     :: !(Maybe DateTime')
+    , _dCreativeSafeFrameCompatibility :: !(Maybe DealCreativeSafeFrameCompatibility)
+    , _dDealTerms                      :: !(Maybe DealTerms)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Deal' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dAvailableStartTime'
+--
+-- * 'dExternalDealId'
+--
+-- * 'dBuyerPrivateData'
+--
+-- * 'dIsSetupComplete'
+--
+-- * 'dWebPropertyCode'
+--
+-- * 'dDeliveryControl'
+--
+-- * 'dDealServingMetadata'
+--
+-- * 'dProposalId'
+--
+-- * 'dTargeting'
+--
+-- * 'dDealId'
+--
+-- * 'dCreativeRestrictions'
+--
+-- * 'dSyndicationProduct'
+--
+-- * 'dCreateProductRevision'
+--
+-- * 'dUpdateTime'
+--
+-- * 'dTargetingCriterion'
+--
+-- * 'dSellerContacts'
+--
+-- * 'dCreateProductId'
+--
+-- * 'dDisplayName'
+--
+-- * 'dProgrammaticCreativeSource'
+--
+-- * 'dAvailableEndTime'
+--
+-- * 'dCreativePreApprovalPolicy'
+--
+-- * 'dDescription'
+--
+-- * 'dCreateTime'
+--
+-- * 'dCreativeSafeFrameCompatibility'
+--
+-- * 'dDealTerms'
+deal
+    :: Deal
+deal =
+    Deal'
+    { _dAvailableStartTime = Nothing
+    , _dExternalDealId = Nothing
+    , _dBuyerPrivateData = Nothing
+    , _dIsSetupComplete = Nothing
+    , _dWebPropertyCode = Nothing
+    , _dDeliveryControl = Nothing
+    , _dDealServingMetadata = Nothing
+    , _dProposalId = Nothing
+    , _dTargeting = Nothing
+    , _dDealId = Nothing
+    , _dCreativeRestrictions = Nothing
+    , _dSyndicationProduct = Nothing
+    , _dCreateProductRevision = Nothing
+    , _dUpdateTime = Nothing
+    , _dTargetingCriterion = Nothing
+    , _dSellerContacts = Nothing
+    , _dCreateProductId = Nothing
+    , _dDisplayName = Nothing
+    , _dProgrammaticCreativeSource = Nothing
+    , _dAvailableEndTime = Nothing
+    , _dCreativePreApprovalPolicy = Nothing
+    , _dDescription = Nothing
+    , _dCreateTime = Nothing
+    , _dCreativeSafeFrameCompatibility = Nothing
+    , _dDealTerms = Nothing
+    }
+
+-- | Optional proposed flight start time of the deal. This will generally be
+-- stored in the granularity of one second since deal serving starts at
+-- seconds boundary. Any time specified with more granularity (e.g., in
+-- milliseconds) will be truncated towards the start of time in seconds.
+dAvailableStartTime :: Lens' Deal (Maybe UTCTime)
+dAvailableStartTime
+  = lens _dAvailableStartTime
+      (\ s a -> s{_dAvailableStartTime = a})
+      . mapping _DateTime
+
+-- | The external deal ID assigned to this deal once the deal is finalized.
+-- This is the deal ID that shows up in serving\/reporting etc.
+-- \'OutputOnly
+dExternalDealId :: Lens' Deal (Maybe Text)
+dExternalDealId
+  = lens _dExternalDealId
+      (\ s a -> s{_dExternalDealId = a})
+
+-- | Buyer private data (hidden from seller).
+dBuyerPrivateData :: Lens' Deal (Maybe PrivateData)
+dBuyerPrivateData
+  = lens _dBuyerPrivateData
+      (\ s a -> s{_dBuyerPrivateData = a})
+
+-- | True, if the buyside inventory setup is complete for this deal.
+-- \'OutputOnly
+dIsSetupComplete :: Lens' Deal (Maybe Bool)
+dIsSetupComplete
+  = lens _dIsSetupComplete
+      (\ s a -> s{_dIsSetupComplete = a})
+
+-- | The web property code for the seller copied over from the product.
+dWebPropertyCode :: Lens' Deal (Maybe Text)
+dWebPropertyCode
+  = lens _dWebPropertyCode
+      (\ s a -> s{_dWebPropertyCode = a})
+
+-- | The set of fields around delivery control that are interesting for a
+-- buyer to see but are non-negotiable. These are set by the publisher.
+dDeliveryControl :: Lens' Deal (Maybe DeliveryControl)
+dDeliveryControl
+  = lens _dDeliveryControl
+      (\ s a -> s{_dDeliveryControl = a})
+
+-- | Metadata about the serving status of this deal. \'OutputOnly
+dDealServingMetadata :: Lens' Deal (Maybe DealServingMetadata)
+dDealServingMetadata
+  = lens _dDealServingMetadata
+      (\ s a -> s{_dDealServingMetadata = a})
+
+-- | ID of the proposal that this deal is part of. \'OutputOnly
+dProposalId :: Lens' Deal (Maybe Text)
+dProposalId
+  = lens _dProposalId (\ s a -> s{_dProposalId = a})
+
+-- | Specifies the subset of inventory targeted by the deal. \'OutputOnly
+dTargeting :: Lens' Deal (Maybe MarketplaceTargeting)
+dTargeting
+  = lens _dTargeting (\ s a -> s{_dTargeting = a})
+
+-- | A unique deal ID for the deal (server-assigned). \'OutputOnly
+dDealId :: Lens' Deal (Maybe Text)
+dDealId = lens _dDealId (\ s a -> s{_dDealId = a})
+
+-- | Restricitions about the creatives associated with the deal (i.e., size)
+-- This is available for Programmatic Guaranteed\/Preferred Deals in Ad
+-- Manager. \'OutputOnly
+dCreativeRestrictions :: Lens' Deal (Maybe CreativeRestrictions)
+dCreativeRestrictions
+  = lens _dCreativeRestrictions
+      (\ s a -> s{_dCreativeRestrictions = a})
+
+-- | The syndication product associated with the deal. Note: This field may
+-- be set only when creating the resource. Modifying this field while
+-- updating the resource will result in an error.
+dSyndicationProduct :: Lens' Deal (Maybe DealSyndicationProduct)
+dSyndicationProduct
+  = lens _dSyndicationProduct
+      (\ s a -> s{_dSyndicationProduct = a})
+
+-- | Optional revision number of the product that the deal was created from.
+-- If present on create, and the server \`product_revision\` has advanced
+-- sinced the passed-in \`create_product_revision\`, an \`ABORTED\` error
+-- will be returned. Note: This field may be set only when creating the
+-- resource. Modifying this field while updating the resource will result
+-- in an error.
+dCreateProductRevision :: Lens' Deal (Maybe Int64)
+dCreateProductRevision
+  = lens _dCreateProductRevision
+      (\ s a -> s{_dCreateProductRevision = a})
+      . mapping _Coerce
+
+-- | The time when the deal was last updated. \'OutputOnly
+dUpdateTime :: Lens' Deal (Maybe UTCTime)
+dUpdateTime
+  = lens _dUpdateTime (\ s a -> s{_dUpdateTime = a}) .
+      mapping _DateTime
+
+-- | The shared targeting visible to buyers and sellers. Each shared
+-- targeting entity is AND\'d together.
+dTargetingCriterion :: Lens' Deal [TargetingCriteria]
+dTargetingCriterion
+  = lens _dTargetingCriterion
+      (\ s a -> s{_dTargetingCriterion = a})
+      . _Default
+      . _Coerce
+
+-- | Seller contact information for the deal. \'OutputOnly
+dSellerContacts :: Lens' Deal [ContactInformation]
+dSellerContacts
+  = lens _dSellerContacts
+      (\ s a -> s{_dSellerContacts = a})
+      . _Default
+      . _Coerce
+
+-- | The product ID from which this deal was created. Note: This field may be
+-- set only when creating the resource. Modifying this field while updating
+-- the resource will result in an error.
+dCreateProductId :: Lens' Deal (Maybe Text)
+dCreateProductId
+  = lens _dCreateProductId
+      (\ s a -> s{_dCreateProductId = a})
+
+-- | The name of the deal.
+dDisplayName :: Lens' Deal (Maybe Text)
+dDisplayName
+  = lens _dDisplayName (\ s a -> s{_dDisplayName = a})
+
+-- | Specifies the creative source for programmatic deals. PUBLISHER means
+-- creative is provided by seller and ADVERTISER means creative is provided
+-- by buyer. \'OutputOnly
+dProgrammaticCreativeSource :: Lens' Deal (Maybe DealProgrammaticCreativeSource)
+dProgrammaticCreativeSource
+  = lens _dProgrammaticCreativeSource
+      (\ s a -> s{_dProgrammaticCreativeSource = a})
+
+-- | Proposed flight end time of the deal. This will generally be stored in a
+-- granularity of a second. A value is not required for Private Auction
+-- deals or Preferred Deals.
+dAvailableEndTime :: Lens' Deal (Maybe UTCTime)
+dAvailableEndTime
+  = lens _dAvailableEndTime
+      (\ s a -> s{_dAvailableEndTime = a})
+      . mapping _DateTime
+
+-- | Specifies the creative pre-approval policy. \'OutputOnly
+dCreativePreApprovalPolicy :: Lens' Deal (Maybe DealCreativePreApprovalPolicy)
+dCreativePreApprovalPolicy
+  = lens _dCreativePreApprovalPolicy
+      (\ s a -> s{_dCreativePreApprovalPolicy = a})
+
+-- | Description for the deal terms.
+dDescription :: Lens' Deal (Maybe Text)
+dDescription
+  = lens _dDescription (\ s a -> s{_dDescription = a})
+
+-- | The time of the deal creation. \'OutputOnly
+dCreateTime :: Lens' Deal (Maybe UTCTime)
+dCreateTime
+  = lens _dCreateTime (\ s a -> s{_dCreateTime = a}) .
+      mapping _DateTime
+
+-- | Specifies whether the creative is safeFrame compatible. \'OutputOnly
+dCreativeSafeFrameCompatibility :: Lens' Deal (Maybe DealCreativeSafeFrameCompatibility)
+dCreativeSafeFrameCompatibility
+  = lens _dCreativeSafeFrameCompatibility
+      (\ s a -> s{_dCreativeSafeFrameCompatibility = a})
+
+-- | The negotiable terms of the deal.
+dDealTerms :: Lens' Deal (Maybe DealTerms)
+dDealTerms
+  = lens _dDealTerms (\ s a -> s{_dDealTerms = a})
+
+instance FromJSON Deal where
+        parseJSON
+          = withObject "Deal"
+              (\ o ->
+                 Deal' <$>
+                   (o .:? "availableStartTime") <*>
+                     (o .:? "externalDealId")
+                     <*> (o .:? "buyerPrivateData")
+                     <*> (o .:? "isSetupComplete")
+                     <*> (o .:? "webPropertyCode")
+                     <*> (o .:? "deliveryControl")
+                     <*> (o .:? "dealServingMetadata")
+                     <*> (o .:? "proposalId")
+                     <*> (o .:? "targeting")
+                     <*> (o .:? "dealId")
+                     <*> (o .:? "creativeRestrictions")
+                     <*> (o .:? "syndicationProduct")
+                     <*> (o .:? "createProductRevision")
+                     <*> (o .:? "updateTime")
+                     <*> (o .:? "targetingCriterion" .!= mempty)
+                     <*> (o .:? "sellerContacts" .!= mempty)
+                     <*> (o .:? "createProductId")
+                     <*> (o .:? "displayName")
+                     <*> (o .:? "programmaticCreativeSource")
+                     <*> (o .:? "availableEndTime")
+                     <*> (o .:? "creativePreApprovalPolicy")
+                     <*> (o .:? "description")
+                     <*> (o .:? "createTime")
+                     <*> (o .:? "creativeSafeFrameCompatibility")
+                     <*> (o .:? "dealTerms"))
+
+instance ToJSON Deal where
+        toJSON Deal'{..}
+          = object
+              (catMaybes
+                 [("availableStartTime" .=) <$> _dAvailableStartTime,
+                  ("externalDealId" .=) <$> _dExternalDealId,
+                  ("buyerPrivateData" .=) <$> _dBuyerPrivateData,
+                  ("isSetupComplete" .=) <$> _dIsSetupComplete,
+                  ("webPropertyCode" .=) <$> _dWebPropertyCode,
+                  ("deliveryControl" .=) <$> _dDeliveryControl,
+                  ("dealServingMetadata" .=) <$> _dDealServingMetadata,
+                  ("proposalId" .=) <$> _dProposalId,
+                  ("targeting" .=) <$> _dTargeting,
+                  ("dealId" .=) <$> _dDealId,
+                  ("creativeRestrictions" .=) <$>
+                    _dCreativeRestrictions,
+                  ("syndicationProduct" .=) <$> _dSyndicationProduct,
+                  ("createProductRevision" .=) <$>
+                    _dCreateProductRevision,
+                  ("updateTime" .=) <$> _dUpdateTime,
+                  ("targetingCriterion" .=) <$> _dTargetingCriterion,
+                  ("sellerContacts" .=) <$> _dSellerContacts,
+                  ("createProductId" .=) <$> _dCreateProductId,
+                  ("displayName" .=) <$> _dDisplayName,
+                  ("programmaticCreativeSource" .=) <$>
+                    _dProgrammaticCreativeSource,
+                  ("availableEndTime" .=) <$> _dAvailableEndTime,
+                  ("creativePreApprovalPolicy" .=) <$>
+                    _dCreativePreApprovalPolicy,
+                  ("description" .=) <$> _dDescription,
+                  ("createTime" .=) <$> _dCreateTime,
+                  ("creativeSafeFrameCompatibility" .=) <$>
+                    _dCreativeSafeFrameCompatibility,
+                  ("dealTerms" .=) <$> _dDealTerms])
+
+-- | Represents creative restrictions associated to Programmatic Guaranteed\/
+-- Preferred Deal in Ad Manager. This doesn\'t apply to Private Auction and
+-- AdX Preferred Deals.
+--
+-- /See:/ 'creativeRestrictions' smart constructor.
+data CreativeRestrictions = CreativeRestrictions'
+    { _crCreativeFormat         :: !(Maybe CreativeRestrictionsCreativeFormat)
+    , _crSkippableAdType        :: !(Maybe CreativeRestrictionsSkippableAdType)
+    , _crCreativeSpecifications :: !(Maybe [CreativeSpecification])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeRestrictions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crCreativeFormat'
+--
+-- * 'crSkippableAdType'
+--
+-- * 'crCreativeSpecifications'
+creativeRestrictions
+    :: CreativeRestrictions
+creativeRestrictions =
+    CreativeRestrictions'
+    { _crCreativeFormat = Nothing
+    , _crSkippableAdType = Nothing
+    , _crCreativeSpecifications = Nothing
+    }
+
+-- | The format of the environment that the creatives will be displayed in.
+crCreativeFormat :: Lens' CreativeRestrictions (Maybe CreativeRestrictionsCreativeFormat)
+crCreativeFormat
+  = lens _crCreativeFormat
+      (\ s a -> s{_crCreativeFormat = a})
+
+-- | Skippable video ads allow viewers to skip ads after 5 seconds.
+crSkippableAdType :: Lens' CreativeRestrictions (Maybe CreativeRestrictionsSkippableAdType)
+crSkippableAdType
+  = lens _crSkippableAdType
+      (\ s a -> s{_crSkippableAdType = a})
+
+crCreativeSpecifications :: Lens' CreativeRestrictions [CreativeSpecification]
+crCreativeSpecifications
+  = lens _crCreativeSpecifications
+      (\ s a -> s{_crCreativeSpecifications = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CreativeRestrictions where
+        parseJSON
+          = withObject "CreativeRestrictions"
+              (\ o ->
+                 CreativeRestrictions' <$>
+                   (o .:? "creativeFormat") <*>
+                     (o .:? "skippableAdType")
+                     <*> (o .:? "creativeSpecifications" .!= mempty))
+
+instance ToJSON CreativeRestrictions where
+        toJSON CreativeRestrictions'{..}
+          = object
+              (catMaybes
+                 [("creativeFormat" .=) <$> _crCreativeFormat,
+                  ("skippableAdType" .=) <$> _crSkippableAdType,
+                  ("creativeSpecifications" .=) <$>
+                    _crCreativeSpecifications])
+
+-- | Note: this resource requires whitelisting for access. Please contact
+-- your account manager for access to Marketplace resources. Represents a
+-- proposal in the Marketplace. A proposal is the unit of negotiation
+-- between a seller and a buyer and contains deals which are served. Note:
+-- you can not update, create, or otherwise modify Private Auction or
+-- Preferred Deals deals through the API. Fields are updatable unless noted
+-- otherwise.
+--
+-- /See:/ 'proposal' smart constructor.
+data Proposal = Proposal'
+    { _pBuyerPrivateData           :: !(Maybe PrivateData)
+    , _pIsSetupComplete            :: !(Maybe Bool)
+    , _pDeals                      :: !(Maybe [Deal])
+    , _pProposalRevision           :: !(Maybe (Textual Int64))
+    , _pBuyerContacts              :: !(Maybe [ContactInformation])
+    , _pOriginatorRole             :: !(Maybe ProposalOriginatorRole)
+    , _pBilledBuyer                :: !(Maybe Buyer)
+    , _pPrivateAuctionId           :: !(Maybe Text)
+    , _pIsRenegotiating            :: !(Maybe Bool)
+    , _pSeller                     :: !(Maybe Seller)
+    , _pProposalId                 :: !(Maybe Text)
+    , _pUpdateTime                 :: !(Maybe DateTime')
+    , _pSellerContacts             :: !(Maybe [ContactInformation])
+    , _pDisplayName                :: !(Maybe Text)
+    , _pNotes                      :: !(Maybe [Note])
+    , _pProposalState              :: !(Maybe ProposalProposalState)
+    , _pLastUpdaterOrCommentorRole :: !(Maybe ProposalLastUpdaterOrCommentorRole)
+    , _pBuyer                      :: !(Maybe Buyer)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Proposal' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pBuyerPrivateData'
+--
+-- * 'pIsSetupComplete'
+--
+-- * 'pDeals'
+--
+-- * 'pProposalRevision'
+--
+-- * 'pBuyerContacts'
+--
+-- * 'pOriginatorRole'
+--
+-- * 'pBilledBuyer'
+--
+-- * 'pPrivateAuctionId'
+--
+-- * 'pIsRenegotiating'
+--
+-- * 'pSeller'
+--
+-- * 'pProposalId'
+--
+-- * 'pUpdateTime'
+--
+-- * 'pSellerContacts'
+--
+-- * 'pDisplayName'
+--
+-- * 'pNotes'
+--
+-- * 'pProposalState'
+--
+-- * 'pLastUpdaterOrCommentorRole'
+--
+-- * 'pBuyer'
+proposal
+    :: Proposal
+proposal =
+    Proposal'
+    { _pBuyerPrivateData = Nothing
+    , _pIsSetupComplete = Nothing
+    , _pDeals = Nothing
+    , _pProposalRevision = Nothing
+    , _pBuyerContacts = Nothing
+    , _pOriginatorRole = Nothing
+    , _pBilledBuyer = Nothing
+    , _pPrivateAuctionId = Nothing
+    , _pIsRenegotiating = Nothing
+    , _pSeller = Nothing
+    , _pProposalId = Nothing
+    , _pUpdateTime = Nothing
+    , _pSellerContacts = Nothing
+    , _pDisplayName = Nothing
+    , _pNotes = Nothing
+    , _pProposalState = Nothing
+    , _pLastUpdaterOrCommentorRole = Nothing
+    , _pBuyer = Nothing
+    }
+
+-- | Private data for buyer. (hidden from seller).
+pBuyerPrivateData :: Lens' Proposal (Maybe PrivateData)
+pBuyerPrivateData
+  = lens _pBuyerPrivateData
+      (\ s a -> s{_pBuyerPrivateData = a})
+
+-- | True, if the buyside inventory setup is complete for this proposal.
+-- \'OutputOnly
+pIsSetupComplete :: Lens' Proposal (Maybe Bool)
+pIsSetupComplete
+  = lens _pIsSetupComplete
+      (\ s a -> s{_pIsSetupComplete = a})
+
+-- | The deals associated with this proposal. For Private Auction proposals
+-- (whose deals have NonGuaranteedAuctionTerms), there will only be one
+-- deal.
+pDeals :: Lens' Proposal [Deal]
+pDeals
+  = lens _pDeals (\ s a -> s{_pDeals = a}) . _Default .
+      _Coerce
+
+-- | The revision number for the proposal. Each update to the proposal or the
+-- deal causes the proposal revision number to auto-increment. The buyer
+-- keeps track of the last revision number they know of and pass it in when
+-- making an update. If the head revision number on the server has since
+-- incremented, then an ABORTED error is returned during the update
+-- operation to let the buyer know that a subsequent update was made.
+-- \'OutputOnly
+pProposalRevision :: Lens' Proposal (Maybe Int64)
+pProposalRevision
+  = lens _pProposalRevision
+      (\ s a -> s{_pProposalRevision = a})
+      . mapping _Coerce
+
+-- | Contact information for the buyer.
+pBuyerContacts :: Lens' Proposal [ContactInformation]
+pBuyerContacts
+  = lens _pBuyerContacts
+      (\ s a -> s{_pBuyerContacts = a})
+      . _Default
+      . _Coerce
+
+-- | Indicates whether the buyer\/seller created the proposal. \'OutputOnly
+pOriginatorRole :: Lens' Proposal (Maybe ProposalOriginatorRole)
+pOriginatorRole
+  = lens _pOriginatorRole
+      (\ s a -> s{_pOriginatorRole = a})
+
+-- | Reference to the buyer that will get billed for this proposal.
+-- \'OutputOnly
+pBilledBuyer :: Lens' Proposal (Maybe Buyer)
+pBilledBuyer
+  = lens _pBilledBuyer (\ s a -> s{_pBilledBuyer = a})
+
+-- | Private auction ID if this proposal is a private auction proposal.
+-- \'OutputOnly
+pPrivateAuctionId :: Lens' Proposal (Maybe Text)
+pPrivateAuctionId
+  = lens _pPrivateAuctionId
+      (\ s a -> s{_pPrivateAuctionId = a})
+
+-- | True if the proposal is being renegotiated. \'OutputOnly
+pIsRenegotiating :: Lens' Proposal (Maybe Bool)
+pIsRenegotiating
+  = lens _pIsRenegotiating
+      (\ s a -> s{_pIsRenegotiating = a})
+
+-- | Reference to the seller on the proposal. Note: This field may be set
+-- only when creating the resource. Modifying this field while updating the
+-- resource will result in an error.
+pSeller :: Lens' Proposal (Maybe Seller)
+pSeller = lens _pSeller (\ s a -> s{_pSeller = a})
+
+-- | The unique ID of the proposal. \'OutputOnly
+pProposalId :: Lens' Proposal (Maybe Text)
+pProposalId
+  = lens _pProposalId (\ s a -> s{_pProposalId = a})
+
+-- | The time when the proposal was last revised. \'OutputOnly
+pUpdateTime :: Lens' Proposal (Maybe UTCTime)
+pUpdateTime
+  = lens _pUpdateTime (\ s a -> s{_pUpdateTime = a}) .
+      mapping _DateTime
+
+-- | Contact information for the seller. \'OutputOnly
+pSellerContacts :: Lens' Proposal [ContactInformation]
+pSellerContacts
+  = lens _pSellerContacts
+      (\ s a -> s{_pSellerContacts = a})
+      . _Default
+      . _Coerce
+
+-- | The name for the proposal.
+pDisplayName :: Lens' Proposal (Maybe Text)
+pDisplayName
+  = lens _pDisplayName (\ s a -> s{_pDisplayName = a})
+
+-- | The notes associated with this proposal. \'OutputOnly
+pNotes :: Lens' Proposal [Note]
+pNotes
+  = lens _pNotes (\ s a -> s{_pNotes = a}) . _Default .
+      _Coerce
+
+-- | The current state of the proposal. \'OutputOnly
+pProposalState :: Lens' Proposal (Maybe ProposalProposalState)
+pProposalState
+  = lens _pProposalState
+      (\ s a -> s{_pProposalState = a})
+
+-- | The role of the last user that either updated the proposal or left a
+-- comment. \'OutputOnly
+pLastUpdaterOrCommentorRole :: Lens' Proposal (Maybe ProposalLastUpdaterOrCommentorRole)
+pLastUpdaterOrCommentorRole
+  = lens _pLastUpdaterOrCommentorRole
+      (\ s a -> s{_pLastUpdaterOrCommentorRole = a})
+
+-- | Reference to the buyer on the proposal. Note: This field may be set only
+-- when creating the resource. Modifying this field while updating the
+-- resource will result in an error.
+pBuyer :: Lens' Proposal (Maybe Buyer)
+pBuyer = lens _pBuyer (\ s a -> s{_pBuyer = a})
+
+instance FromJSON Proposal where
+        parseJSON
+          = withObject "Proposal"
+              (\ o ->
+                 Proposal' <$>
+                   (o .:? "buyerPrivateData") <*>
+                     (o .:? "isSetupComplete")
+                     <*> (o .:? "deals" .!= mempty)
+                     <*> (o .:? "proposalRevision")
+                     <*> (o .:? "buyerContacts" .!= mempty)
+                     <*> (o .:? "originatorRole")
+                     <*> (o .:? "billedBuyer")
+                     <*> (o .:? "privateAuctionId")
+                     <*> (o .:? "isRenegotiating")
+                     <*> (o .:? "seller")
+                     <*> (o .:? "proposalId")
+                     <*> (o .:? "updateTime")
+                     <*> (o .:? "sellerContacts" .!= mempty)
+                     <*> (o .:? "displayName")
+                     <*> (o .:? "notes" .!= mempty)
+                     <*> (o .:? "proposalState")
+                     <*> (o .:? "lastUpdaterOrCommentorRole")
+                     <*> (o .:? "buyer"))
+
+instance ToJSON Proposal where
+        toJSON Proposal'{..}
+          = object
+              (catMaybes
+                 [("buyerPrivateData" .=) <$> _pBuyerPrivateData,
+                  ("isSetupComplete" .=) <$> _pIsSetupComplete,
+                  ("deals" .=) <$> _pDeals,
+                  ("proposalRevision" .=) <$> _pProposalRevision,
+                  ("buyerContacts" .=) <$> _pBuyerContacts,
+                  ("originatorRole" .=) <$> _pOriginatorRole,
+                  ("billedBuyer" .=) <$> _pBilledBuyer,
+                  ("privateAuctionId" .=) <$> _pPrivateAuctionId,
+                  ("isRenegotiating" .=) <$> _pIsRenegotiating,
+                  ("seller" .=) <$> _pSeller,
+                  ("proposalId" .=) <$> _pProposalId,
+                  ("updateTime" .=) <$> _pUpdateTime,
+                  ("sellerContacts" .=) <$> _pSellerContacts,
+                  ("displayName" .=) <$> _pDisplayName,
+                  ("notes" .=) <$> _pNotes,
+                  ("proposalState" .=) <$> _pProposalState,
+                  ("lastUpdaterOrCommentorRole" .=) <$>
+                    _pLastUpdaterOrCommentorRole,
+                  ("buyer" .=) <$> _pBuyer])
+
+-- | A relative date range, specified by an offset and a duration. The
+-- supported range of dates begins 30 days before today and ends today,
+-- i.e., the limits for these values are: offset_days >= 0 duration_days >=
+-- 1 offset_days + duration_days \<= 30
+--
+-- /See:/ 'relativeDateRange' smart constructor.
+data RelativeDateRange = RelativeDateRange'
+    { _rdrOffSetDays   :: !(Maybe (Textual Int32))
+    , _rdrDurationDays :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RelativeDateRange' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdrOffSetDays'
+--
+-- * 'rdrDurationDays'
+relativeDateRange
+    :: RelativeDateRange
+relativeDateRange =
+    RelativeDateRange'
+    { _rdrOffSetDays = Nothing
+    , _rdrDurationDays = Nothing
+    }
+
+-- | The end date of the filter set, specified as the number of days before
+-- today, e.g., for a range where the last date is today: 0.
+rdrOffSetDays :: Lens' RelativeDateRange (Maybe Int32)
+rdrOffSetDays
+  = lens _rdrOffSetDays
+      (\ s a -> s{_rdrOffSetDays = a})
+      . mapping _Coerce
+
+-- | The number of days in the requested date range, e.g., for a range
+-- spanning today: 1. For a range spanning the last 7 days: 7.
+rdrDurationDays :: Lens' RelativeDateRange (Maybe Int32)
+rdrDurationDays
+  = lens _rdrDurationDays
+      (\ s a -> s{_rdrDurationDays = a})
+      . mapping _Coerce
+
+instance FromJSON RelativeDateRange where
+        parseJSON
+          = withObject "RelativeDateRange"
+              (\ o ->
+                 RelativeDateRange' <$>
+                   (o .:? "offsetDays") <*> (o .:? "durationDays"))
+
+instance ToJSON RelativeDateRange where
+        toJSON RelativeDateRange'{..}
+          = object
+              (catMaybes
+                 [("offsetDays" .=) <$> _rdrOffSetDays,
+                  ("durationDays" .=) <$> _rdrDurationDays])
+
+-- | Request message to pause serving for an already-finalized proposal.
+--
+-- /See:/ 'pauseProposalRequest' smart constructor.
+newtype PauseProposalRequest = PauseProposalRequest'
+    { _pprReason :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PauseProposalRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pprReason'
+pauseProposalRequest
+    :: PauseProposalRequest
+pauseProposalRequest =
+    PauseProposalRequest'
+    { _pprReason = Nothing
+    }
+
+-- | The reason why the proposal is being paused. This human readable message
+-- will be displayed in the seller\'s UI. (Max length: 100 unicode code
+-- units.)
+pprReason :: Lens' PauseProposalRequest (Maybe Text)
+pprReason
+  = lens _pprReason (\ s a -> s{_pprReason = a})
+
+instance FromJSON PauseProposalRequest where
+        parseJSON
+          = withObject "PauseProposalRequest"
+              (\ o -> PauseProposalRequest' <$> (o .:? "reason"))
+
+instance ToJSON PauseProposalRequest where
+        toJSON PauseProposalRequest'{..}
+          = object (catMaybes [("reason" .=) <$> _pprReason])
+
+-- | Represents a list of targeted and excluded mobile application IDs that
+-- publishers own. Mobile application IDs are from App Store and Google
+-- Play Store. Android App ID, for example, com.google.android.apps.maps,
+-- can be found in Google Play Store URL. iOS App ID (which is a number)
+-- can be found at the end of iTunes store URL. First party mobile
+-- applications is either included or excluded.
+--
+-- /See:/ 'firstPartyMobileApplicationTargeting' smart constructor.
+data FirstPartyMobileApplicationTargeting = FirstPartyMobileApplicationTargeting'
+    { _fpmatTargetedAppIds :: !(Maybe [Text])
+    , _fpmatExcludedAppIds :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FirstPartyMobileApplicationTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fpmatTargetedAppIds'
+--
+-- * 'fpmatExcludedAppIds'
+firstPartyMobileApplicationTargeting
+    :: FirstPartyMobileApplicationTargeting
+firstPartyMobileApplicationTargeting =
+    FirstPartyMobileApplicationTargeting'
+    { _fpmatTargetedAppIds = Nothing
+    , _fpmatExcludedAppIds = Nothing
+    }
+
+-- | A list of application IDs to be included.
+fpmatTargetedAppIds :: Lens' FirstPartyMobileApplicationTargeting [Text]
+fpmatTargetedAppIds
+  = lens _fpmatTargetedAppIds
+      (\ s a -> s{_fpmatTargetedAppIds = a})
+      . _Default
+      . _Coerce
+
+-- | A list of application IDs to be excluded.
+fpmatExcludedAppIds :: Lens' FirstPartyMobileApplicationTargeting [Text]
+fpmatExcludedAppIds
+  = lens _fpmatExcludedAppIds
+      (\ s a -> s{_fpmatExcludedAppIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         FirstPartyMobileApplicationTargeting where
+        parseJSON
+          = withObject "FirstPartyMobileApplicationTargeting"
+              (\ o ->
+                 FirstPartyMobileApplicationTargeting' <$>
+                   (o .:? "targetedAppIds" .!= mempty) <*>
+                     (o .:? "excludedAppIds" .!= mempty))
+
+instance ToJSON FirstPartyMobileApplicationTargeting
+         where
+        toJSON FirstPartyMobileApplicationTargeting'{..}
+          = object
+              (catMaybes
+                 [("targetedAppIds" .=) <$> _fpmatTargetedAppIds,
+                  ("excludedAppIds" .=) <$> _fpmatExcludedAppIds])
+
+-- | A metric value, with an expected value and a variance; represents a
+-- count that may be either exact or estimated (i.e. when sampled).
+--
+-- /See:/ 'metricValue' smart constructor.
+data MetricValue = MetricValue'
+    { _mvValue    :: !(Maybe (Textual Int64))
+    , _mvVariance :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MetricValue' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mvValue'
+--
+-- * 'mvVariance'
+metricValue
+    :: MetricValue
+metricValue =
+    MetricValue'
+    { _mvValue = Nothing
+    , _mvVariance = Nothing
+    }
+
+-- | The expected value of the metric.
+mvValue :: Lens' MetricValue (Maybe Int64)
+mvValue
+  = lens _mvValue (\ s a -> s{_mvValue = a}) .
+      mapping _Coerce
+
+-- | The variance (i.e. square of the standard deviation) of the metric
+-- value. If value is exact, variance is 0. Can be used to calculate margin
+-- of error as a percentage of value, using the following formula, where Z
+-- is the standard constant that depends on the desired size of the
+-- confidence interval (e.g. for 90% confidence interval, use Z = 1.645):
+-- marginOfError = 100 * Z * sqrt(variance) \/ value
+mvVariance :: Lens' MetricValue (Maybe Int64)
+mvVariance
+  = lens _mvVariance (\ s a -> s{_mvVariance = a}) .
+      mapping _Coerce
+
+instance FromJSON MetricValue where
+        parseJSON
+          = withObject "MetricValue"
+              (\ o ->
+                 MetricValue' <$>
+                   (o .:? "value") <*> (o .:? "variance"))
+
+instance ToJSON MetricValue where
+        toJSON MetricValue'{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _mvValue,
+                  ("variance" .=) <$> _mvVariance])
+
+-- | Request message for indicating that the proposal\'s setup step is
+-- complete.
+--
+-- /See:/ 'completeSetupRequest' smart constructor.
+data CompleteSetupRequest =
+    CompleteSetupRequest'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CompleteSetupRequest' with the minimum fields required to make a request.
+--
+completeSetupRequest
+    :: CompleteSetupRequest
+completeSetupRequest = CompleteSetupRequest'
+
+instance FromJSON CompleteSetupRequest where
+        parseJSON
+          = withObject "CompleteSetupRequest"
+              (\ o -> pure CompleteSetupRequest')
+
+instance ToJSON CompleteSetupRequest where
+        toJSON = const emptyObject
+
+-- | The number of filtered bids with the specified dimension values that
+-- have the specified creative.
+--
+-- /See:/ 'filteredBidCreativeRow' smart constructor.
+data FilteredBidCreativeRow = FilteredBidCreativeRow'
+    { _fbcrCreativeId    :: !(Maybe Text)
+    , _fbcrRowDimensions :: !(Maybe RowDimensions)
+    , _fbcrBidCount      :: !(Maybe MetricValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FilteredBidCreativeRow' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fbcrCreativeId'
+--
+-- * 'fbcrRowDimensions'
+--
+-- * 'fbcrBidCount'
+filteredBidCreativeRow
+    :: FilteredBidCreativeRow
+filteredBidCreativeRow =
+    FilteredBidCreativeRow'
+    { _fbcrCreativeId = Nothing
+    , _fbcrRowDimensions = Nothing
+    , _fbcrBidCount = Nothing
+    }
+
+-- | The ID of the creative.
+fbcrCreativeId :: Lens' FilteredBidCreativeRow (Maybe Text)
+fbcrCreativeId
+  = lens _fbcrCreativeId
+      (\ s a -> s{_fbcrCreativeId = a})
+
+-- | The values of all dimensions associated with metric values in this row.
+fbcrRowDimensions :: Lens' FilteredBidCreativeRow (Maybe RowDimensions)
+fbcrRowDimensions
+  = lens _fbcrRowDimensions
+      (\ s a -> s{_fbcrRowDimensions = a})
+
+-- | The number of bids with the specified creative.
+fbcrBidCount :: Lens' FilteredBidCreativeRow (Maybe MetricValue)
+fbcrBidCount
+  = lens _fbcrBidCount (\ s a -> s{_fbcrBidCount = a})
+
+instance FromJSON FilteredBidCreativeRow where
+        parseJSON
+          = withObject "FilteredBidCreativeRow"
+              (\ o ->
+                 FilteredBidCreativeRow' <$>
+                   (o .:? "creativeId") <*> (o .:? "rowDimensions") <*>
+                     (o .:? "bidCount"))
+
+instance ToJSON FilteredBidCreativeRow where
+        toJSON FilteredBidCreativeRow'{..}
+          = object
+              (catMaybes
+                 [("creativeId" .=) <$> _fbcrCreativeId,
+                  ("rowDimensions" .=) <$> _fbcrRowDimensions,
+                  ("bidCount" .=) <$> _fbcrBidCount])
+
+-- | \'OutputOnly The Geo criteria the restriction applies to.
+--
+-- /See:/ 'locationContext' smart constructor.
+newtype LocationContext = LocationContext'
+    { _lcGeoCriteriaIds :: Maybe [Textual Int32]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LocationContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lcGeoCriteriaIds'
+locationContext
+    :: LocationContext
+locationContext =
+    LocationContext'
+    { _lcGeoCriteriaIds = Nothing
+    }
+
+-- | IDs representing the geo location for this context. Please refer to the
+-- [geo-table.csv](https:\/\/storage.googleapis.com\/adx-rtb-dictionaries\/geo-table.csv)
+-- file for different geo criteria IDs.
+lcGeoCriteriaIds :: Lens' LocationContext [Int32]
+lcGeoCriteriaIds
+  = lens _lcGeoCriteriaIds
+      (\ s a -> s{_lcGeoCriteriaIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON LocationContext where
+        parseJSON
+          = withObject "LocationContext"
+              (\ o ->
+                 LocationContext' <$>
+                   (o .:? "geoCriteriaIds" .!= mempty))
+
+instance ToJSON LocationContext where
+        toJSON LocationContext'{..}
+          = object
+              (catMaybes
+                 [("geoCriteriaIds" .=) <$> _lcGeoCriteriaIds])
+
+-- | Advertisers can target different attributes of an ad slot. For example,
+-- they can choose to show ads only if the user is in the U.S. Such
+-- targeting criteria can be specified as part of Shared Targeting.
+--
+-- /See:/ 'targetingCriteria' smart constructor.
+data TargetingCriteria = TargetingCriteria'
+    { _tcKey        :: !(Maybe Text)
+    , _tcExclusions :: !(Maybe [TargetingValue])
+    , _tcInclusions :: !(Maybe [TargetingValue])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetingCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tcKey'
+--
+-- * 'tcExclusions'
+--
+-- * 'tcInclusions'
+targetingCriteria
+    :: TargetingCriteria
+targetingCriteria =
+    TargetingCriteria'
+    { _tcKey = Nothing
+    , _tcExclusions = Nothing
+    , _tcInclusions = Nothing
+    }
+
+-- | The key representing the shared targeting criterion. Targeting criteria
+-- defined by Google ad servers will begin with GOOG_. Third parties may
+-- define their own keys. A list of permissible keys along with the
+-- acceptable values will be provided as part of the external
+-- documentation.
+tcKey :: Lens' TargetingCriteria (Maybe Text)
+tcKey = lens _tcKey (\ s a -> s{_tcKey = a})
+
+-- | The list of values to exclude from targeting. Each value is AND\'d
+-- together.
+tcExclusions :: Lens' TargetingCriteria [TargetingValue]
+tcExclusions
+  = lens _tcExclusions (\ s a -> s{_tcExclusions = a})
+      . _Default
+      . _Coerce
+
+-- | The list of value to include as part of the targeting. Each value is
+-- OR\'d together.
+tcInclusions :: Lens' TargetingCriteria [TargetingValue]
+tcInclusions
+  = lens _tcInclusions (\ s a -> s{_tcInclusions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON TargetingCriteria where
+        parseJSON
+          = withObject "TargetingCriteria"
+              (\ o ->
+                 TargetingCriteria' <$>
+                   (o .:? "key") <*> (o .:? "exclusions" .!= mempty) <*>
+                     (o .:? "inclusions" .!= mempty))
+
+instance ToJSON TargetingCriteria where
+        toJSON TargetingCriteria'{..}
+          = object
+              (catMaybes
+                 [("key" .=) <$> _tcKey,
+                  ("exclusions" .=) <$> _tcExclusions,
+                  ("inclusions" .=) <$> _tcInclusions])
+
+-- | The number of impressions with the specified dimension values where the
+-- corresponding bid request or bid response was not successful, as
+-- described by the specified callout status.
+--
+-- /See:/ 'calloutStatusRow' smart constructor.
+data CalloutStatusRow = CalloutStatusRow'
+    { _cRowDimensions   :: !(Maybe RowDimensions)
+    , _cCalloutStatusId :: !(Maybe (Textual Int32))
+    , _cImpressionCount :: !(Maybe MetricValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CalloutStatusRow' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cRowDimensions'
+--
+-- * 'cCalloutStatusId'
+--
+-- * 'cImpressionCount'
+calloutStatusRow
+    :: CalloutStatusRow
+calloutStatusRow =
+    CalloutStatusRow'
+    { _cRowDimensions = Nothing
+    , _cCalloutStatusId = Nothing
+    , _cImpressionCount = Nothing
+    }
+
+-- | The values of all dimensions associated with metric values in this row.
+cRowDimensions :: Lens' CalloutStatusRow (Maybe RowDimensions)
+cRowDimensions
+  = lens _cRowDimensions
+      (\ s a -> s{_cRowDimensions = a})
+
+-- | The ID of the callout status. See
+-- [callout-status-codes](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/callout-status-codes).
+cCalloutStatusId :: Lens' CalloutStatusRow (Maybe Int32)
+cCalloutStatusId
+  = lens _cCalloutStatusId
+      (\ s a -> s{_cCalloutStatusId = a})
+      . mapping _Coerce
+
+-- | The number of impressions for which there was a bid request or bid
+-- response with the specified callout status.
+cImpressionCount :: Lens' CalloutStatusRow (Maybe MetricValue)
+cImpressionCount
+  = lens _cImpressionCount
+      (\ s a -> s{_cImpressionCount = a})
+
+instance FromJSON CalloutStatusRow where
+        parseJSON
+          = withObject "CalloutStatusRow"
+              (\ o ->
+                 CalloutStatusRow' <$>
+                   (o .:? "rowDimensions") <*> (o .:? "calloutStatusId")
+                     <*> (o .:? "impressionCount"))
+
+instance ToJSON CalloutStatusRow where
+        toJSON CalloutStatusRow'{..}
+          = object
+              (catMaybes
+                 [("rowDimensions" .=) <$> _cRowDimensions,
+                  ("calloutStatusId" .=) <$> _cCalloutStatusId,
+                  ("impressionCount" .=) <$> _cImpressionCount])
+
+-- | Represents a list of targeted and excluded URLs (e.g., google.com). For
+-- Private Auction and AdX Preferred Deals, URLs are either included or
+-- excluded. For Programmatic Guaranteed and Preferred Deals, this doesn\'t
+-- apply.
+--
+-- /See:/ 'urlTargeting' smart constructor.
+data URLTargeting = URLTargeting'
+    { _utTargetedURLs :: !(Maybe [Text])
+    , _utExcludedURLs :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'URLTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'utTargetedURLs'
+--
+-- * 'utExcludedURLs'
+urlTargeting
+    :: URLTargeting
+urlTargeting =
+    URLTargeting'
+    { _utTargetedURLs = Nothing
+    , _utExcludedURLs = Nothing
+    }
+
+-- | A list of URLs to be included.
+utTargetedURLs :: Lens' URLTargeting [Text]
+utTargetedURLs
+  = lens _utTargetedURLs
+      (\ s a -> s{_utTargetedURLs = a})
+      . _Default
+      . _Coerce
+
+-- | A list of URLs to be excluded.
+utExcludedURLs :: Lens' URLTargeting [Text]
+utExcludedURLs
+  = lens _utExcludedURLs
+      (\ s a -> s{_utExcludedURLs = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON URLTargeting where
+        parseJSON
+          = withObject "URLTargeting"
+              (\ o ->
+                 URLTargeting' <$>
+                   (o .:? "targetedUrls" .!= mempty) <*>
+                     (o .:? "excludedUrls" .!= mempty))
+
+instance ToJSON URLTargeting where
+        toJSON URLTargeting'{..}
+          = object
+              (catMaybes
+                 [("targetedUrls" .=) <$> _utTargetedURLs,
+                  ("excludedUrls" .=) <$> _utExcludedURLs])
+
+-- | The number of impressions with the specified dimension values that were
+-- considered to have no applicable bids, as described by the specified
+-- status.
+--
+-- /See:/ 'bidResponseWithoutBidsStatusRow' smart constructor.
+data BidResponseWithoutBidsStatusRow = BidResponseWithoutBidsStatusRow'
+    { _brwbsrStatus          :: !(Maybe BidResponseWithoutBidsStatusRowStatus)
+    , _brwbsrRowDimensions   :: !(Maybe RowDimensions)
+    , _brwbsrImpressionCount :: !(Maybe MetricValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BidResponseWithoutBidsStatusRow' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'brwbsrStatus'
+--
+-- * 'brwbsrRowDimensions'
+--
+-- * 'brwbsrImpressionCount'
+bidResponseWithoutBidsStatusRow
+    :: BidResponseWithoutBidsStatusRow
+bidResponseWithoutBidsStatusRow =
+    BidResponseWithoutBidsStatusRow'
+    { _brwbsrStatus = Nothing
+    , _brwbsrRowDimensions = Nothing
+    , _brwbsrImpressionCount = Nothing
+    }
+
+-- | The status specifying why the bid responses were considered to have no
+-- applicable bids.
+brwbsrStatus :: Lens' BidResponseWithoutBidsStatusRow (Maybe BidResponseWithoutBidsStatusRowStatus)
+brwbsrStatus
+  = lens _brwbsrStatus (\ s a -> s{_brwbsrStatus = a})
+
+-- | The values of all dimensions associated with metric values in this row.
+brwbsrRowDimensions :: Lens' BidResponseWithoutBidsStatusRow (Maybe RowDimensions)
+brwbsrRowDimensions
+  = lens _brwbsrRowDimensions
+      (\ s a -> s{_brwbsrRowDimensions = a})
+
+-- | The number of impressions for which there was a bid response with the
+-- specified status.
+brwbsrImpressionCount :: Lens' BidResponseWithoutBidsStatusRow (Maybe MetricValue)
+brwbsrImpressionCount
+  = lens _brwbsrImpressionCount
+      (\ s a -> s{_brwbsrImpressionCount = a})
+
+instance FromJSON BidResponseWithoutBidsStatusRow
+         where
+        parseJSON
+          = withObject "BidResponseWithoutBidsStatusRow"
+              (\ o ->
+                 BidResponseWithoutBidsStatusRow' <$>
+                   (o .:? "status") <*> (o .:? "rowDimensions") <*>
+                     (o .:? "impressionCount"))
+
+instance ToJSON BidResponseWithoutBidsStatusRow where
+        toJSON BidResponseWithoutBidsStatusRow'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _brwbsrStatus,
+                  ("rowDimensions" .=) <$> _brwbsrRowDimensions,
+                  ("impressionCount" .=) <$> _brwbsrImpressionCount])
+
+-- | A set of filters that is applied to a request for data. Within a filter
+-- set, an AND operation is performed across the filters represented by
+-- each field. An OR operation is performed across the filters represented
+-- by the multiple values of a repeated field, e.g., \"format=VIDEO AND
+-- deal_id=12 AND (seller_network_id=34 OR seller_network_id=56)\".
+--
+-- /See:/ 'filterSet' smart constructor.
+data FilterSet = FilterSet'
+    { _fsPlatforms             :: !(Maybe [Text])
+    , _fsRealtimeTimeRange     :: !(Maybe RealtimeTimeRange)
+    , _fsEnvironment           :: !(Maybe FilterSetEnvironment)
+    , _fsFormats               :: !(Maybe [Text])
+    , _fsCreativeId            :: !(Maybe Text)
+    , _fsBreakdownDimensions   :: !(Maybe [Text])
+    , _fsSellerNetworkIds      :: !(Maybe [Textual Int32])
+    , _fsDealId                :: !(Maybe (Textual Int64))
+    , _fsAbsoluteDateRange     :: !(Maybe AbsoluteDateRange)
+    , _fsName                  :: !(Maybe Text)
+    , _fsRelativeDateRange     :: !(Maybe RelativeDateRange)
+    , _fsTimeSeriesGranularity :: !(Maybe FilterSetTimeSeriesGranularity)
+    , _fsPublisherIdentifiers  :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FilterSet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fsPlatforms'
+--
+-- * 'fsRealtimeTimeRange'
+--
+-- * 'fsEnvironment'
+--
+-- * 'fsFormats'
+--
+-- * 'fsCreativeId'
+--
+-- * 'fsBreakdownDimensions'
+--
+-- * 'fsSellerNetworkIds'
+--
+-- * 'fsDealId'
+--
+-- * 'fsAbsoluteDateRange'
+--
+-- * 'fsName'
+--
+-- * 'fsRelativeDateRange'
+--
+-- * 'fsTimeSeriesGranularity'
+--
+-- * 'fsPublisherIdentifiers'
+filterSet
+    :: FilterSet
+filterSet =
+    FilterSet'
+    { _fsPlatforms = Nothing
+    , _fsRealtimeTimeRange = Nothing
+    , _fsEnvironment = Nothing
+    , _fsFormats = Nothing
+    , _fsCreativeId = Nothing
+    , _fsBreakdownDimensions = Nothing
+    , _fsSellerNetworkIds = Nothing
+    , _fsDealId = Nothing
+    , _fsAbsoluteDateRange = Nothing
+    , _fsName = Nothing
+    , _fsRelativeDateRange = Nothing
+    , _fsTimeSeriesGranularity = Nothing
+    , _fsPublisherIdentifiers = Nothing
+    }
+
+-- | The list of platforms on which to filter; may be empty. The filters
+-- represented by multiple platforms are ORed together (i.e., if non-empty,
+-- results must match any one of the platforms).
+fsPlatforms :: Lens' FilterSet [Text]
+fsPlatforms
+  = lens _fsPlatforms (\ s a -> s{_fsPlatforms = a}) .
+      _Default
+      . _Coerce
+
+-- | An open-ended realtime time range, defined by the aggregation start
+-- timestamp.
+fsRealtimeTimeRange :: Lens' FilterSet (Maybe RealtimeTimeRange)
+fsRealtimeTimeRange
+  = lens _fsRealtimeTimeRange
+      (\ s a -> s{_fsRealtimeTimeRange = a})
+
+-- | The environment on which to filter; optional.
+fsEnvironment :: Lens' FilterSet (Maybe FilterSetEnvironment)
+fsEnvironment
+  = lens _fsEnvironment
+      (\ s a -> s{_fsEnvironment = a})
+
+-- | The list of formats on which to filter; may be empty. The filters
+-- represented by multiple formats are ORed together (i.e., if non-empty,
+-- results must match any one of the formats).
+fsFormats :: Lens' FilterSet [Text]
+fsFormats
+  = lens _fsFormats (\ s a -> s{_fsFormats = a}) .
+      _Default
+      . _Coerce
+
+-- | The ID of the creative on which to filter; optional. This field may be
+-- set only for a filter set that accesses account-level troubleshooting
+-- data, i.e., one whose name matches the
+-- \`bidders\/*\/accounts\/*\/filterSets\/*\` pattern.
+fsCreativeId :: Lens' FilterSet (Maybe Text)
+fsCreativeId
+  = lens _fsCreativeId (\ s a -> s{_fsCreativeId = a})
+
+-- | The set of dimensions along which to break down the response; may be
+-- empty. If multiple dimensions are requested, the breakdown is along the
+-- Cartesian product of the requested dimensions.
+fsBreakdownDimensions :: Lens' FilterSet [Text]
+fsBreakdownDimensions
+  = lens _fsBreakdownDimensions
+      (\ s a -> s{_fsBreakdownDimensions = a})
+      . _Default
+      . _Coerce
+
+-- | For Authorized Buyers only. The list of IDs of the seller (publisher)
+-- networks on which to filter; may be empty. The filters represented by
+-- multiple seller network IDs are ORed together (i.e., if non-empty,
+-- results must match any one of the publisher networks). See
+-- [seller-network-ids](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/seller-network-ids)
+-- file for the set of existing seller network IDs.
+fsSellerNetworkIds :: Lens' FilterSet [Int32]
+fsSellerNetworkIds
+  = lens _fsSellerNetworkIds
+      (\ s a -> s{_fsSellerNetworkIds = a})
+      . _Default
+      . _Coerce
+
+-- | The ID of the deal on which to filter; optional. This field may be set
+-- only for a filter set that accesses account-level troubleshooting data,
+-- i.e., one whose name matches the
+-- \`bidders\/*\/accounts\/*\/filterSets\/*\` pattern.
+fsDealId :: Lens' FilterSet (Maybe Int64)
+fsDealId
+  = lens _fsDealId (\ s a -> s{_fsDealId = a}) .
+      mapping _Coerce
+
+-- | An absolute date range, defined by a start date and an end date.
+-- Interpreted relative to Pacific time zone.
+fsAbsoluteDateRange :: Lens' FilterSet (Maybe AbsoluteDateRange)
+fsAbsoluteDateRange
+  = lens _fsAbsoluteDateRange
+      (\ s a -> s{_fsAbsoluteDateRange = a})
+
+-- | A user-defined name of the filter set. Filter set names must be unique
+-- globally and match one of the patterns: - \`bidders\/*\/filterSets\/*\`
+-- (for accessing bidder-level troubleshooting data) -
+-- \`bidders\/*\/accounts\/*\/filterSets\/*\` (for accessing account-level
+-- troubleshooting data) This field is required in create operations.
+fsName :: Lens' FilterSet (Maybe Text)
+fsName = lens _fsName (\ s a -> s{_fsName = a})
+
+-- | A relative date range, defined by an offset from today and a duration.
+-- Interpreted relative to Pacific time zone.
+fsRelativeDateRange :: Lens' FilterSet (Maybe RelativeDateRange)
+fsRelativeDateRange
+  = lens _fsRelativeDateRange
+      (\ s a -> s{_fsRelativeDateRange = a})
+
+-- | The granularity of time intervals if a time series breakdown is desired;
+-- optional.
+fsTimeSeriesGranularity :: Lens' FilterSet (Maybe FilterSetTimeSeriesGranularity)
+fsTimeSeriesGranularity
+  = lens _fsTimeSeriesGranularity
+      (\ s a -> s{_fsTimeSeriesGranularity = a})
+
+-- | For Open Bidding partners only. The list of publisher identifiers on
+-- which to filter; may be empty. The filters represented by multiple
+-- publisher identifiers are ORed together.
+fsPublisherIdentifiers :: Lens' FilterSet [Text]
+fsPublisherIdentifiers
+  = lens _fsPublisherIdentifiers
+      (\ s a -> s{_fsPublisherIdentifiers = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON FilterSet where
+        parseJSON
+          = withObject "FilterSet"
+              (\ o ->
+                 FilterSet' <$>
+                   (o .:? "platforms" .!= mempty) <*>
+                     (o .:? "realtimeTimeRange")
+                     <*> (o .:? "environment")
+                     <*> (o .:? "formats" .!= mempty)
+                     <*> (o .:? "creativeId")
+                     <*> (o .:? "breakdownDimensions" .!= mempty)
+                     <*> (o .:? "sellerNetworkIds" .!= mempty)
+                     <*> (o .:? "dealId")
+                     <*> (o .:? "absoluteDateRange")
+                     <*> (o .:? "name")
+                     <*> (o .:? "relativeDateRange")
+                     <*> (o .:? "timeSeriesGranularity")
+                     <*> (o .:? "publisherIdentifiers" .!= mempty))
+
+instance ToJSON FilterSet where
+        toJSON FilterSet'{..}
+          = object
+              (catMaybes
+                 [("platforms" .=) <$> _fsPlatforms,
+                  ("realtimeTimeRange" .=) <$> _fsRealtimeTimeRange,
+                  ("environment" .=) <$> _fsEnvironment,
+                  ("formats" .=) <$> _fsFormats,
+                  ("creativeId" .=) <$> _fsCreativeId,
+                  ("breakdownDimensions" .=) <$>
+                    _fsBreakdownDimensions,
+                  ("sellerNetworkIds" .=) <$> _fsSellerNetworkIds,
+                  ("dealId" .=) <$> _fsDealId,
+                  ("absoluteDateRange" .=) <$> _fsAbsoluteDateRange,
+                  ("name" .=) <$> _fsName,
+                  ("relativeDateRange" .=) <$> _fsRelativeDateRange,
+                  ("timeSeriesGranularity" .=) <$>
+                    _fsTimeSeriesGranularity,
+                  ("publisherIdentifiers" .=) <$>
+                    _fsPublisherIdentifiers])
+
+-- | An interval of time, with an absolute start and end.
+--
+-- /See:/ 'timeInterval' smart constructor.
+data TimeInterval = TimeInterval'
+    { _tiStartTime :: !(Maybe DateTime')
+    , _tiEndTime   :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TimeInterval' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tiStartTime'
+--
+-- * 'tiEndTime'
+timeInterval
+    :: TimeInterval
+timeInterval =
+    TimeInterval'
+    { _tiStartTime = Nothing
+    , _tiEndTime = Nothing
+    }
+
+-- | The timestamp marking the start of the range (inclusive) for which data
+-- is included.
+tiStartTime :: Lens' TimeInterval (Maybe UTCTime)
+tiStartTime
+  = lens _tiStartTime (\ s a -> s{_tiStartTime = a}) .
+      mapping _DateTime
+
+-- | The timestamp marking the end of the range (exclusive) for which data is
+-- included.
+tiEndTime :: Lens' TimeInterval (Maybe UTCTime)
+tiEndTime
+  = lens _tiEndTime (\ s a -> s{_tiEndTime = a}) .
+      mapping _DateTime
+
+instance FromJSON TimeInterval where
+        parseJSON
+          = withObject "TimeInterval"
+              (\ o ->
+                 TimeInterval' <$>
+                   (o .:? "startTime") <*> (o .:? "endTime"))
+
+instance ToJSON TimeInterval where
+        toJSON TimeInterval'{..}
+          = object
+              (catMaybes
+                 [("startTime" .=) <$> _tiStartTime,
+                  ("endTime" .=) <$> _tiEndTime])
+
+-- | A request for removing the association between a deal and a creative.
+--
+-- /See:/ 'removeDealAssociationRequest' smart constructor.
+newtype RemoveDealAssociationRequest = RemoveDealAssociationRequest'
+    { _rdarAssociation :: Maybe CreativeDealAssociation
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemoveDealAssociationRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdarAssociation'
+removeDealAssociationRequest
+    :: RemoveDealAssociationRequest
+removeDealAssociationRequest =
+    RemoveDealAssociationRequest'
+    { _rdarAssociation = Nothing
+    }
+
+-- | The association between a creative and a deal that should be removed.
+rdarAssociation :: Lens' RemoveDealAssociationRequest (Maybe CreativeDealAssociation)
+rdarAssociation
+  = lens _rdarAssociation
+      (\ s a -> s{_rdarAssociation = a})
+
+instance FromJSON RemoveDealAssociationRequest where
+        parseJSON
+          = withObject "RemoveDealAssociationRequest"
+              (\ o ->
+                 RemoveDealAssociationRequest' <$>
+                   (o .:? "association"))
+
+instance ToJSON RemoveDealAssociationRequest where
+        toJSON RemoveDealAssociationRequest'{..}
+          = object
+              (catMaybes [("association" .=) <$> _rdarAssociation])
+
+-- | A polymorphic targeting value used as part of Shared Targeting.
+--
+-- /See:/ 'targetingValue' smart constructor.
+data TargetingValue = TargetingValue'
+    { _tvCreativeSizeValue     :: !(Maybe CreativeSize)
+    , _tvStringValue           :: !(Maybe Text)
+    , _tvLongValue             :: !(Maybe (Textual Int64))
+    , _tvDayPartTargetingValue :: !(Maybe DayPartTargeting)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetingValue' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tvCreativeSizeValue'
+--
+-- * 'tvStringValue'
+--
+-- * 'tvLongValue'
+--
+-- * 'tvDayPartTargetingValue'
+targetingValue
+    :: TargetingValue
+targetingValue =
+    TargetingValue'
+    { _tvCreativeSizeValue = Nothing
+    , _tvStringValue = Nothing
+    , _tvLongValue = Nothing
+    , _tvDayPartTargetingValue = Nothing
+    }
+
+-- | The creative size value to include\/exclude. Filled in when key =
+-- GOOG_CREATIVE_SIZE
+tvCreativeSizeValue :: Lens' TargetingValue (Maybe CreativeSize)
+tvCreativeSizeValue
+  = lens _tvCreativeSizeValue
+      (\ s a -> s{_tvCreativeSizeValue = a})
+
+-- | The string value to include\/exclude.
+tvStringValue :: Lens' TargetingValue (Maybe Text)
+tvStringValue
+  = lens _tvStringValue
+      (\ s a -> s{_tvStringValue = a})
+
+-- | The long value to include\/exclude.
+tvLongValue :: Lens' TargetingValue (Maybe Int64)
+tvLongValue
+  = lens _tvLongValue (\ s a -> s{_tvLongValue = a}) .
+      mapping _Coerce
+
+-- | The daypart targeting to include \/ exclude. Filled in when the key is
+-- GOOG_DAYPART_TARGETING. The definition of this targeting is derived from
+-- the structure used by Ad Manager.
+tvDayPartTargetingValue :: Lens' TargetingValue (Maybe DayPartTargeting)
+tvDayPartTargetingValue
+  = lens _tvDayPartTargetingValue
+      (\ s a -> s{_tvDayPartTargetingValue = a})
+
+instance FromJSON TargetingValue where
+        parseJSON
+          = withObject "TargetingValue"
+              (\ o ->
+                 TargetingValue' <$>
+                   (o .:? "creativeSizeValue") <*> (o .:? "stringValue")
+                     <*> (o .:? "longValue")
+                     <*> (o .:? "dayPartTargetingValue"))
+
+instance ToJSON TargetingValue where
+        toJSON TargetingValue'{..}
+          = object
+              (catMaybes
+                 [("creativeSizeValue" .=) <$> _tvCreativeSizeValue,
+                  ("stringValue" .=) <$> _tvStringValue,
+                  ("longValue" .=) <$> _tvLongValue,
+                  ("dayPartTargetingValue" .=) <$>
+                    _tvDayPartTargetingValue])
+
+-- | Response message for listing all reasons for which a buyer was not
+-- billed for a winning bid.
+--
+-- /See:/ 'listNonBillableWinningBidsResponse' smart constructor.
+data ListNonBillableWinningBidsResponse = ListNonBillableWinningBidsResponse'
+    { _lnbwbrNextPageToken                   :: !(Maybe Text)
+    , _lnbwbrNonBillableWinningBidStatusRows :: !(Maybe [NonBillableWinningBidStatusRow])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListNonBillableWinningBidsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lnbwbrNextPageToken'
+--
+-- * 'lnbwbrNonBillableWinningBidStatusRows'
+listNonBillableWinningBidsResponse
+    :: ListNonBillableWinningBidsResponse
+listNonBillableWinningBidsResponse =
+    ListNonBillableWinningBidsResponse'
+    { _lnbwbrNextPageToken = Nothing
+    , _lnbwbrNonBillableWinningBidStatusRows = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListNonBillableWinningBidsRequest.pageToken field in the subsequent call
+-- to the nonBillableWinningBids.list method to retrieve the next page of
+-- results.
+lnbwbrNextPageToken :: Lens' ListNonBillableWinningBidsResponse (Maybe Text)
+lnbwbrNextPageToken
+  = lens _lnbwbrNextPageToken
+      (\ s a -> s{_lnbwbrNextPageToken = a})
+
+-- | List of rows, with counts of bids not billed aggregated by reason.
+lnbwbrNonBillableWinningBidStatusRows :: Lens' ListNonBillableWinningBidsResponse [NonBillableWinningBidStatusRow]
+lnbwbrNonBillableWinningBidStatusRows
+  = lens _lnbwbrNonBillableWinningBidStatusRows
+      (\ s a ->
+         s{_lnbwbrNonBillableWinningBidStatusRows = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListNonBillableWinningBidsResponse
+         where
+        parseJSON
+          = withObject "ListNonBillableWinningBidsResponse"
+              (\ o ->
+                 ListNonBillableWinningBidsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "nonBillableWinningBidStatusRows" .!= mempty))
+
+instance ToJSON ListNonBillableWinningBidsResponse
+         where
+        toJSON ListNonBillableWinningBidsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lnbwbrNextPageToken,
+                  ("nonBillableWinningBidStatusRows" .=) <$>
+                    _lnbwbrNonBillableWinningBidStatusRows])
+
+-- | Response message for listing all reasons that bids lost in the auction.
+--
+-- /See:/ 'listLosingBidsResponse' smart constructor.
+data ListLosingBidsResponse = ListLosingBidsResponse'
+    { _llbrNextPageToken      :: !(Maybe Text)
+    , _llbrCreativeStatusRows :: !(Maybe [CreativeStatusRow])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListLosingBidsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'llbrNextPageToken'
+--
+-- * 'llbrCreativeStatusRows'
+listLosingBidsResponse
+    :: ListLosingBidsResponse
+listLosingBidsResponse =
+    ListLosingBidsResponse'
+    { _llbrNextPageToken = Nothing
+    , _llbrCreativeStatusRows = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListLosingBidsRequest.pageToken field in the subsequent call to the
+-- losingBids.list method to retrieve the next page of results.
+llbrNextPageToken :: Lens' ListLosingBidsResponse (Maybe Text)
+llbrNextPageToken
+  = lens _llbrNextPageToken
+      (\ s a -> s{_llbrNextPageToken = a})
+
+-- | List of rows, with counts of losing bids aggregated by loss reason (i.e.
+-- creative status).
+llbrCreativeStatusRows :: Lens' ListLosingBidsResponse [CreativeStatusRow]
+llbrCreativeStatusRows
+  = lens _llbrCreativeStatusRows
+      (\ s a -> s{_llbrCreativeStatusRows = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListLosingBidsResponse where
+        parseJSON
+          = withObject "ListLosingBidsResponse"
+              (\ o ->
+                 ListLosingBidsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "creativeStatusRows" .!= mempty))
+
+instance ToJSON ListLosingBidsResponse where
+        toJSON ListLosingBidsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _llbrNextPageToken,
+                  ("creativeStatusRows" .=) <$>
+                    _llbrCreativeStatusRows])
+
+-- | Represents a price and a pricing type for a product \/ deal.
+--
+-- /See:/ 'price' smart constructor.
+data Price = Price'
+    { _pAmount      :: !(Maybe Money)
+    , _pPricingType :: !(Maybe PricePricingType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Price' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pAmount'
+--
+-- * 'pPricingType'
+price
+    :: Price
+price =
+    Price'
+    { _pAmount = Nothing
+    , _pPricingType = Nothing
+    }
+
+-- | The actual price with currency specified.
+pAmount :: Lens' Price (Maybe Money)
+pAmount = lens _pAmount (\ s a -> s{_pAmount = a})
+
+-- | The pricing type for the deal\/product. (default: CPM)
+pPricingType :: Lens' Price (Maybe PricePricingType)
+pPricingType
+  = lens _pPricingType (\ s a -> s{_pPricingType = a})
+
+instance FromJSON Price where
+        parseJSON
+          = withObject "Price"
+              (\ o ->
+                 Price' <$>
+                   (o .:? "amount") <*> (o .:? "pricingType"))
+
+instance ToJSON Price where
+        toJSON Price'{..}
+          = object
+              (catMaybes
+                 [("amount" .=) <$> _pAmount,
+                  ("pricingType" .=) <$> _pPricingType])
+
+-- | Response message for listing the metrics that are measured in number of
+-- impressions.
+--
+-- /See:/ 'listImpressionMetricsResponse' smart constructor.
+data ListImpressionMetricsResponse = ListImpressionMetricsResponse'
+    { _limrNextPageToken         :: !(Maybe Text)
+    , _limrImpressionMetricsRows :: !(Maybe [ImpressionMetricsRow])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListImpressionMetricsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'limrNextPageToken'
+--
+-- * 'limrImpressionMetricsRows'
+listImpressionMetricsResponse
+    :: ListImpressionMetricsResponse
+listImpressionMetricsResponse =
+    ListImpressionMetricsResponse'
+    { _limrNextPageToken = Nothing
+    , _limrImpressionMetricsRows = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListImpressionMetricsRequest.pageToken field in the subsequent call to
+-- the impressionMetrics.list method to retrieve the next page of results.
+limrNextPageToken :: Lens' ListImpressionMetricsResponse (Maybe Text)
+limrNextPageToken
+  = lens _limrNextPageToken
+      (\ s a -> s{_limrNextPageToken = a})
+
+-- | List of rows, each containing a set of impression metrics.
+limrImpressionMetricsRows :: Lens' ListImpressionMetricsResponse [ImpressionMetricsRow]
+limrImpressionMetricsRows
+  = lens _limrImpressionMetricsRows
+      (\ s a -> s{_limrImpressionMetricsRows = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListImpressionMetricsResponse where
+        parseJSON
+          = withObject "ListImpressionMetricsResponse"
+              (\ o ->
+                 ListImpressionMetricsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "impressionMetricsRows" .!= mempty))
+
+instance ToJSON ListImpressionMetricsResponse where
+        toJSON ListImpressionMetricsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _limrNextPageToken,
+                  ("impressionMetricsRows" .=) <$>
+                    _limrImpressionMetricsRows])
+
+-- | \'OutputOnly The type of platform the restriction applies to.
+--
+-- /See:/ 'platformContext' smart constructor.
+newtype PlatformContext = PlatformContext'
+    { _pcPlatforms :: Maybe [Text]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlatformContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pcPlatforms'
+platformContext
+    :: PlatformContext
+platformContext =
+    PlatformContext'
+    { _pcPlatforms = Nothing
+    }
+
+-- | The platforms this restriction applies to.
+pcPlatforms :: Lens' PlatformContext [Text]
+pcPlatforms
+  = lens _pcPlatforms (\ s a -> s{_pcPlatforms = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON PlatformContext where
+        parseJSON
+          = withObject "PlatformContext"
+              (\ o ->
+                 PlatformContext' <$> (o .:? "platforms" .!= mempty))
+
+instance ToJSON PlatformContext where
+        toJSON PlatformContext'{..}
+          = object
+              (catMaybes [("platforms" .=) <$> _pcPlatforms])
+
+-- | Video content for a creative.
+--
+-- /See:/ 'videoContent' smart constructor.
+data VideoContent = VideoContent'
+    { _vcVideoVastXML :: !(Maybe Text)
+    , _vcVideoURL     :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'VideoContent' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vcVideoVastXML'
+--
+-- * 'vcVideoURL'
+videoContent
+    :: VideoContent
+videoContent =
+    VideoContent'
+    { _vcVideoVastXML = Nothing
+    , _vcVideoURL = Nothing
+    }
+
+-- | The contents of a VAST document for a video ad. This document should
+-- conform to the VAST 2.0 or 3.0 standard.
+vcVideoVastXML :: Lens' VideoContent (Maybe Text)
+vcVideoVastXML
+  = lens _vcVideoVastXML
+      (\ s a -> s{_vcVideoVastXML = a})
+
+-- | The URL to fetch a video ad.
+vcVideoURL :: Lens' VideoContent (Maybe Text)
+vcVideoURL
+  = lens _vcVideoURL (\ s a -> s{_vcVideoURL = a})
+
+instance FromJSON VideoContent where
+        parseJSON
+          = withObject "VideoContent"
+              (\ o ->
+                 VideoContent' <$>
+                   (o .:? "videoVastXml") <*> (o .:? "videoUrl"))
+
+instance ToJSON VideoContent where
+        toJSON VideoContent'{..}
+          = object
+              (catMaybes
+                 [("videoVastXml" .=) <$> _vcVideoVastXML,
+                  ("videoUrl" .=) <$> _vcVideoURL])
+
+-- | Represents a time of day. The date and time zone are either not
+-- significant or are specified elsewhere. An API may choose to allow leap
+-- seconds. Related types are google.type.Date and
+-- \`google.protobuf.Timestamp\`.
+--
+-- /See:/ 'timeOfDay' smart constructor.
+data TimeOfDay' = TimeOfDay''
+    { _todNanos   :: !(Maybe (Textual Int32))
+    , _todHours   :: !(Maybe (Textual Int32))
+    , _todMinutes :: !(Maybe (Textual Int32))
+    , _todSeconds :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TimeOfDay' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'todNanos'
+--
+-- * 'todHours'
+--
+-- * 'todMinutes'
+--
+-- * 'todSeconds'
+timeOfDay
+    :: TimeOfDay'
+timeOfDay =
+    TimeOfDay''
+    { _todNanos = Nothing
+    , _todHours = Nothing
+    , _todMinutes = Nothing
+    , _todSeconds = Nothing
+    }
+
+-- | Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+todNanos :: Lens' TimeOfDay' (Maybe Int32)
+todNanos
+  = lens _todNanos (\ s a -> s{_todNanos = a}) .
+      mapping _Coerce
+
+-- | Hours of day in 24 hour format. Should be from 0 to 23. An API may
+-- choose to allow the value \"24:00:00\" for scenarios like business
+-- closing time.
+todHours :: Lens' TimeOfDay' (Maybe Int32)
+todHours
+  = lens _todHours (\ s a -> s{_todHours = a}) .
+      mapping _Coerce
+
+-- | Minutes of hour of day. Must be from 0 to 59.
+todMinutes :: Lens' TimeOfDay' (Maybe Int32)
+todMinutes
+  = lens _todMinutes (\ s a -> s{_todMinutes = a}) .
+      mapping _Coerce
+
+-- | Seconds of minutes of the time. Must normally be from 0 to 59. An API
+-- may allow the value 60 if it allows leap-seconds.
+todSeconds :: Lens' TimeOfDay' (Maybe Int32)
+todSeconds
+  = lens _todSeconds (\ s a -> s{_todSeconds = a}) .
+      mapping _Coerce
+
+instance FromJSON TimeOfDay' where
+        parseJSON
+          = withObject "TimeOfDay"
+              (\ o ->
+                 TimeOfDay'' <$>
+                   (o .:? "nanos") <*> (o .:? "hours") <*>
+                     (o .:? "minutes")
+                     <*> (o .:? "seconds"))
+
+instance ToJSON TimeOfDay' where
+        toJSON TimeOfDay''{..}
+          = object
+              (catMaybes
+                 [("nanos" .=) <$> _todNanos,
+                  ("hours" .=) <$> _todHours,
+                  ("minutes" .=) <$> _todMinutes,
+                  ("seconds" .=) <$> _todSeconds])
+
+-- | Terms for Programmatic Guaranteed Deals.
+--
+-- /See:/ 'guaranteedFixedPriceTerms' smart constructor.
+data GuaranteedFixedPriceTerms = GuaranteedFixedPriceTerms'
+    { _gfptGuaranteedLooks       :: !(Maybe (Textual Int64))
+    , _gfptGuaranteedImpressions :: !(Maybe (Textual Int64))
+    , _gfptFixedPrices           :: !(Maybe [PricePerBuyer])
+    , _gfptMinimumDailyLooks     :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GuaranteedFixedPriceTerms' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gfptGuaranteedLooks'
+--
+-- * 'gfptGuaranteedImpressions'
+--
+-- * 'gfptFixedPrices'
+--
+-- * 'gfptMinimumDailyLooks'
+guaranteedFixedPriceTerms
+    :: GuaranteedFixedPriceTerms
+guaranteedFixedPriceTerms =
+    GuaranteedFixedPriceTerms'
+    { _gfptGuaranteedLooks = Nothing
+    , _gfptGuaranteedImpressions = Nothing
+    , _gfptFixedPrices = Nothing
+    , _gfptMinimumDailyLooks = Nothing
+    }
+
+-- | Count of guaranteed looks. Required for deal, optional for product.
+gfptGuaranteedLooks :: Lens' GuaranteedFixedPriceTerms (Maybe Int64)
+gfptGuaranteedLooks
+  = lens _gfptGuaranteedLooks
+      (\ s a -> s{_gfptGuaranteedLooks = a})
+      . mapping _Coerce
+
+-- | Guaranteed impressions as a percentage. This is the percentage of
+-- guaranteed looks that the buyer is guaranteeing to buy.
+gfptGuaranteedImpressions :: Lens' GuaranteedFixedPriceTerms (Maybe Int64)
+gfptGuaranteedImpressions
+  = lens _gfptGuaranteedImpressions
+      (\ s a -> s{_gfptGuaranteedImpressions = a})
+      . mapping _Coerce
+
+-- | Fixed price for the specified buyer.
+gfptFixedPrices :: Lens' GuaranteedFixedPriceTerms [PricePerBuyer]
+gfptFixedPrices
+  = lens _gfptFixedPrices
+      (\ s a -> s{_gfptFixedPrices = a})
+      . _Default
+      . _Coerce
+
+-- | Daily minimum looks for CPD deal types.
+gfptMinimumDailyLooks :: Lens' GuaranteedFixedPriceTerms (Maybe Int64)
+gfptMinimumDailyLooks
+  = lens _gfptMinimumDailyLooks
+      (\ s a -> s{_gfptMinimumDailyLooks = a})
+      . mapping _Coerce
+
+instance FromJSON GuaranteedFixedPriceTerms where
+        parseJSON
+          = withObject "GuaranteedFixedPriceTerms"
+              (\ o ->
+                 GuaranteedFixedPriceTerms' <$>
+                   (o .:? "guaranteedLooks") <*>
+                     (o .:? "guaranteedImpressions")
+                     <*> (o .:? "fixedPrices" .!= mempty)
+                     <*> (o .:? "minimumDailyLooks"))
+
+instance ToJSON GuaranteedFixedPriceTerms where
+        toJSON GuaranteedFixedPriceTerms'{..}
+          = object
+              (catMaybes
+                 [("guaranteedLooks" .=) <$> _gfptGuaranteedLooks,
+                  ("guaranteedImpressions" .=) <$>
+                    _gfptGuaranteedImpressions,
+                  ("fixedPrices" .=) <$> _gfptFixedPrices,
+                  ("minimumDailyLooks" .=) <$> _gfptMinimumDailyLooks])
+
+-- | Native content for a creative.
+--
+-- /See:/ 'nATiveContent' smart constructor.
+data NATiveContent = NATiveContent'
+    { _natcStoreURL         :: !(Maybe Text)
+    , _natcImage            :: !(Maybe Image)
+    , _natcAdvertiserName   :: !(Maybe Text)
+    , _natcAppIcon          :: !(Maybe Image)
+    , _natcPriceDisplayText :: !(Maybe Text)
+    , _natcClickTrackingURL :: !(Maybe Text)
+    , _natcClickLinkURL     :: !(Maybe Text)
+    , _natcBody             :: !(Maybe Text)
+    , _natcHeadline         :: !(Maybe Text)
+    , _natcCallToAction     :: !(Maybe Text)
+    , _natcVideoURL         :: !(Maybe Text)
+    , _natcStarRating       :: !(Maybe (Textual Double))
+    , _natcLogo             :: !(Maybe Image)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'NATiveContent' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'natcStoreURL'
+--
+-- * 'natcImage'
+--
+-- * 'natcAdvertiserName'
+--
+-- * 'natcAppIcon'
+--
+-- * 'natcPriceDisplayText'
+--
+-- * 'natcClickTrackingURL'
+--
+-- * 'natcClickLinkURL'
+--
+-- * 'natcBody'
+--
+-- * 'natcHeadline'
+--
+-- * 'natcCallToAction'
+--
+-- * 'natcVideoURL'
+--
+-- * 'natcStarRating'
+--
+-- * 'natcLogo'
+nATiveContent
+    :: NATiveContent
+nATiveContent =
+    NATiveContent'
+    { _natcStoreURL = Nothing
+    , _natcImage = Nothing
+    , _natcAdvertiserName = Nothing
+    , _natcAppIcon = Nothing
+    , _natcPriceDisplayText = Nothing
+    , _natcClickTrackingURL = Nothing
+    , _natcClickLinkURL = Nothing
+    , _natcBody = Nothing
+    , _natcHeadline = Nothing
+    , _natcCallToAction = Nothing
+    , _natcVideoURL = Nothing
+    , _natcStarRating = Nothing
+    , _natcLogo = Nothing
+    }
+
+-- | The URL to the app store to purchase\/download the promoted app.
+natcStoreURL :: Lens' NATiveContent (Maybe Text)
+natcStoreURL
+  = lens _natcStoreURL (\ s a -> s{_natcStoreURL = a})
+
+-- | A large image.
+natcImage :: Lens' NATiveContent (Maybe Image)
+natcImage
+  = lens _natcImage (\ s a -> s{_natcImage = a})
+
+-- | The name of the advertiser or sponsor, to be displayed in the ad
+-- creative.
+natcAdvertiserName :: Lens' NATiveContent (Maybe Text)
+natcAdvertiserName
+  = lens _natcAdvertiserName
+      (\ s a -> s{_natcAdvertiserName = a})
+
+-- | The app icon, for app download ads.
+natcAppIcon :: Lens' NATiveContent (Maybe Image)
+natcAppIcon
+  = lens _natcAppIcon (\ s a -> s{_natcAppIcon = a})
+
+-- | The price of the promoted app including currency info.
+natcPriceDisplayText :: Lens' NATiveContent (Maybe Text)
+natcPriceDisplayText
+  = lens _natcPriceDisplayText
+      (\ s a -> s{_natcPriceDisplayText = a})
+
+-- | The URL to use for click tracking.
+natcClickTrackingURL :: Lens' NATiveContent (Maybe Text)
+natcClickTrackingURL
+  = lens _natcClickTrackingURL
+      (\ s a -> s{_natcClickTrackingURL = a})
+
+-- | The URL that the browser\/SDK will load when the user clicks the ad.
+natcClickLinkURL :: Lens' NATiveContent (Maybe Text)
+natcClickLinkURL
+  = lens _natcClickLinkURL
+      (\ s a -> s{_natcClickLinkURL = a})
+
+-- | A long description of the ad.
+natcBody :: Lens' NATiveContent (Maybe Text)
+natcBody = lens _natcBody (\ s a -> s{_natcBody = a})
+
+-- | A short title for the ad.
+natcHeadline :: Lens' NATiveContent (Maybe Text)
+natcHeadline
+  = lens _natcHeadline (\ s a -> s{_natcHeadline = a})
+
+-- | A label for the button that the user is supposed to click.
+natcCallToAction :: Lens' NATiveContent (Maybe Text)
+natcCallToAction
+  = lens _natcCallToAction
+      (\ s a -> s{_natcCallToAction = a})
+
+-- | The URL to fetch a native video ad.
+natcVideoURL :: Lens' NATiveContent (Maybe Text)
+natcVideoURL
+  = lens _natcVideoURL (\ s a -> s{_natcVideoURL = a})
+
+-- | The app rating in the app store. Must be in the range [0-5].
+natcStarRating :: Lens' NATiveContent (Maybe Double)
+natcStarRating
+  = lens _natcStarRating
+      (\ s a -> s{_natcStarRating = a})
+      . mapping _Coerce
+
+-- | A smaller image, for the advertiser\'s logo.
+natcLogo :: Lens' NATiveContent (Maybe Image)
+natcLogo = lens _natcLogo (\ s a -> s{_natcLogo = a})
+
+instance FromJSON NATiveContent where
+        parseJSON
+          = withObject "NATiveContent"
+              (\ o ->
+                 NATiveContent' <$>
+                   (o .:? "storeUrl") <*> (o .:? "image") <*>
+                     (o .:? "advertiserName")
+                     <*> (o .:? "appIcon")
+                     <*> (o .:? "priceDisplayText")
+                     <*> (o .:? "clickTrackingUrl")
+                     <*> (o .:? "clickLinkUrl")
+                     <*> (o .:? "body")
+                     <*> (o .:? "headline")
+                     <*> (o .:? "callToAction")
+                     <*> (o .:? "videoUrl")
+                     <*> (o .:? "starRating")
+                     <*> (o .:? "logo"))
+
+instance ToJSON NATiveContent where
+        toJSON NATiveContent'{..}
+          = object
+              (catMaybes
+                 [("storeUrl" .=) <$> _natcStoreURL,
+                  ("image" .=) <$> _natcImage,
+                  ("advertiserName" .=) <$> _natcAdvertiserName,
+                  ("appIcon" .=) <$> _natcAppIcon,
+                  ("priceDisplayText" .=) <$> _natcPriceDisplayText,
+                  ("clickTrackingUrl" .=) <$> _natcClickTrackingURL,
+                  ("clickLinkUrl" .=) <$> _natcClickLinkURL,
+                  ("body" .=) <$> _natcBody,
+                  ("headline" .=) <$> _natcHeadline,
+                  ("callToAction" .=) <$> _natcCallToAction,
+                  ("videoUrl" .=) <$> _natcVideoURL,
+                  ("starRating" .=) <$> _natcStarRating,
+                  ("logo" .=) <$> _natcLogo])
+
+-- | Represents targeting information about video.
+--
+-- /See:/ 'videoTargeting' smart constructor.
+data VideoTargeting = VideoTargeting'
+    { _vtTargetedPositionTypes :: !(Maybe [Text])
+    , _vtExcludedPositionTypes :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'VideoTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vtTargetedPositionTypes'
+--
+-- * 'vtExcludedPositionTypes'
+videoTargeting
+    :: VideoTargeting
+videoTargeting =
+    VideoTargeting'
+    { _vtTargetedPositionTypes = Nothing
+    , _vtExcludedPositionTypes = Nothing
+    }
+
+-- | A list of video positions to be included. When the included list is
+-- present, the excluded list must be empty. When the excluded list is
+-- present, the included list must be empty.
+vtTargetedPositionTypes :: Lens' VideoTargeting [Text]
+vtTargetedPositionTypes
+  = lens _vtTargetedPositionTypes
+      (\ s a -> s{_vtTargetedPositionTypes = a})
+      . _Default
+      . _Coerce
+
+-- | A list of video positions to be excluded. Position types can either be
+-- included or excluded (XOR).
+vtExcludedPositionTypes :: Lens' VideoTargeting [Text]
+vtExcludedPositionTypes
+  = lens _vtExcludedPositionTypes
+      (\ s a -> s{_vtExcludedPositionTypes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON VideoTargeting where
+        parseJSON
+          = withObject "VideoTargeting"
+              (\ o ->
+                 VideoTargeting' <$>
+                   (o .:? "targetedPositionTypes" .!= mempty) <*>
+                     (o .:? "excludedPositionTypes" .!= mempty))
+
+instance ToJSON VideoTargeting where
+        toJSON VideoTargeting'{..}
+          = object
+              (catMaybes
+                 [("targetedPositionTypes" .=) <$>
+                    _vtTargetedPositionTypes,
+                  ("excludedPositionTypes" .=) <$>
+                    _vtExcludedPositionTypes])
+
+-- | A client user is created under a client buyer and has restricted access
+-- to the Marketplace and certain other sections of the Authorized Buyers
+-- UI based on the role granted to the associated client buyer. The only
+-- way a new client user can be created is via accepting an email
+-- invitation (see the accounts.clients.invitations.create method). All
+-- fields are required unless otherwise specified.
+--
+-- /See:/ 'clientUser' smart constructor.
+data ClientUser = ClientUser'
+    { _cuEmail           :: !(Maybe Text)
+    , _cuStatus          :: !(Maybe ClientUserStatus)
+    , _cuUserId          :: !(Maybe (Textual Int64))
+    , _cuClientAccountId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ClientUser' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cuEmail'
+--
+-- * 'cuStatus'
+--
+-- * 'cuUserId'
+--
+-- * 'cuClientAccountId'
+clientUser
+    :: ClientUser
+clientUser =
+    ClientUser'
+    { _cuEmail = Nothing
+    , _cuStatus = Nothing
+    , _cuUserId = Nothing
+    , _cuClientAccountId = Nothing
+    }
+
+-- | User\'s email address. The value of this field is ignored in an update
+-- operation.
+cuEmail :: Lens' ClientUser (Maybe Text)
+cuEmail = lens _cuEmail (\ s a -> s{_cuEmail = a})
+
+-- | The status of the client user.
+cuStatus :: Lens' ClientUser (Maybe ClientUserStatus)
+cuStatus = lens _cuStatus (\ s a -> s{_cuStatus = a})
+
+-- | The unique numerical ID of the client user that has accepted an
+-- invitation. The value of this field is ignored in an update operation.
+cuUserId :: Lens' ClientUser (Maybe Int64)
+cuUserId
+  = lens _cuUserId (\ s a -> s{_cuUserId = a}) .
+      mapping _Coerce
+
+-- | Numerical account ID of the client buyer with which the user is
+-- associated; the buyer must be a client of the current sponsor buyer. The
+-- value of this field is ignored in an update operation.
+cuClientAccountId :: Lens' ClientUser (Maybe Int64)
+cuClientAccountId
+  = lens _cuClientAccountId
+      (\ s a -> s{_cuClientAccountId = a})
+      . mapping _Coerce
+
+instance FromJSON ClientUser where
+        parseJSON
+          = withObject "ClientUser"
+              (\ o ->
+                 ClientUser' <$>
+                   (o .:? "email") <*> (o .:? "status") <*>
+                     (o .:? "userId")
+                     <*> (o .:? "clientAccountId"))
+
+instance ToJSON ClientUser where
+        toJSON ClientUser'{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _cuEmail,
+                  ("status" .=) <$> _cuStatus,
+                  ("userId" .=) <$> _cuUserId,
+                  ("clientAccountId" .=) <$> _cuClientAccountId])
+
+-- | Note: this resource requires whitelisting for access. Please contact
+-- your account manager for access to Marketplace resources. A product is a
+-- segment of inventory that a seller wishes to sell. It is associated with
+-- certain terms and targeting information which helps the buyer know more
+-- about the inventory.
+--
+-- /See:/ 'product' smart constructor.
+data Product = Product'
+    { _proAvailableStartTime  :: !(Maybe DateTime')
+    , _proWebPropertyCode     :: !(Maybe Text)
+    , _proTerms               :: !(Maybe DealTerms)
+    , _proProductRevision     :: !(Maybe (Textual Int64))
+    , _proHasCreatorSignedOff :: !(Maybe Bool)
+    , _proSeller              :: !(Maybe Seller)
+    , _proSyndicationProduct  :: !(Maybe ProductSyndicationProduct)
+    , _proUpdateTime          :: !(Maybe DateTime')
+    , _proCreatorContacts     :: !(Maybe [ContactInformation])
+    , _proTargetingCriterion  :: !(Maybe [TargetingCriteria])
+    , _proDisplayName         :: !(Maybe Text)
+    , _proPublisherProFileId  :: !(Maybe Text)
+    , _proAvailableEndTime    :: !(Maybe DateTime')
+    , _proProductId           :: !(Maybe Text)
+    , _proCreateTime          :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Product' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'proAvailableStartTime'
+--
+-- * 'proWebPropertyCode'
+--
+-- * 'proTerms'
+--
+-- * 'proProductRevision'
+--
+-- * 'proHasCreatorSignedOff'
+--
+-- * 'proSeller'
+--
+-- * 'proSyndicationProduct'
+--
+-- * 'proUpdateTime'
+--
+-- * 'proCreatorContacts'
+--
+-- * 'proTargetingCriterion'
+--
+-- * 'proDisplayName'
+--
+-- * 'proPublisherProFileId'
+--
+-- * 'proAvailableEndTime'
+--
+-- * 'proProductId'
+--
+-- * 'proCreateTime'
+product
+    :: Product
+product =
+    Product'
+    { _proAvailableStartTime = Nothing
+    , _proWebPropertyCode = Nothing
+    , _proTerms = Nothing
+    , _proProductRevision = Nothing
+    , _proHasCreatorSignedOff = Nothing
+    , _proSeller = Nothing
+    , _proSyndicationProduct = Nothing
+    , _proUpdateTime = Nothing
+    , _proCreatorContacts = Nothing
+    , _proTargetingCriterion = Nothing
+    , _proDisplayName = Nothing
+    , _proPublisherProFileId = Nothing
+    , _proAvailableEndTime = Nothing
+    , _proProductId = Nothing
+    , _proCreateTime = Nothing
+    }
+
+-- | Inventory availability dates. The start time will be truncated to
+-- seconds during serving. Thus, a field specified as 3:23:34.456
+-- (HH:mm:ss.SSS) will be truncated to 3:23:34 when serving.
+proAvailableStartTime :: Lens' Product (Maybe UTCTime)
+proAvailableStartTime
+  = lens _proAvailableStartTime
+      (\ s a -> s{_proAvailableStartTime = a})
+      . mapping _DateTime
+
+-- | The web-property code for the seller. This needs to be copied as is when
+-- adding a new deal to a proposal.
+proWebPropertyCode :: Lens' Product (Maybe Text)
+proWebPropertyCode
+  = lens _proWebPropertyCode
+      (\ s a -> s{_proWebPropertyCode = a})
+
+-- | The negotiable terms of the deal.
+proTerms :: Lens' Product (Maybe DealTerms)
+proTerms = lens _proTerms (\ s a -> s{_proTerms = a})
+
+-- | The revision number of the product (auto-assigned by Marketplace).
+proProductRevision :: Lens' Product (Maybe Int64)
+proProductRevision
+  = lens _proProductRevision
+      (\ s a -> s{_proProductRevision = a})
+      . mapping _Coerce
+
+-- | If the creator has already signed off on the product, then the buyer can
+-- finalize the deal by accepting the product as is. When copying to a
+-- proposal, if any of the terms are changed, then auto_finalize is
+-- automatically set to false.
+proHasCreatorSignedOff :: Lens' Product (Maybe Bool)
+proHasCreatorSignedOff
+  = lens _proHasCreatorSignedOff
+      (\ s a -> s{_proHasCreatorSignedOff = a})
+
+-- | Information about the seller that created this product.
+proSeller :: Lens' Product (Maybe Seller)
+proSeller
+  = lens _proSeller (\ s a -> s{_proSeller = a})
+
+-- | The syndication product associated with the deal.
+proSyndicationProduct :: Lens' Product (Maybe ProductSyndicationProduct)
+proSyndicationProduct
+  = lens _proSyndicationProduct
+      (\ s a -> s{_proSyndicationProduct = a})
+
+-- | Time of last update.
+proUpdateTime :: Lens' Product (Maybe UTCTime)
+proUpdateTime
+  = lens _proUpdateTime
+      (\ s a -> s{_proUpdateTime = a})
+      . mapping _DateTime
+
+-- | Optional contact information for the creator of this product.
+proCreatorContacts :: Lens' Product [ContactInformation]
+proCreatorContacts
+  = lens _proCreatorContacts
+      (\ s a -> s{_proCreatorContacts = a})
+      . _Default
+      . _Coerce
+
+-- | Targeting that is shared between the buyer and the seller. Each
+-- targeting criterion has a specified key and for each key there is a list
+-- of inclusion value or exclusion values.
+proTargetingCriterion :: Lens' Product [TargetingCriteria]
+proTargetingCriterion
+  = lens _proTargetingCriterion
+      (\ s a -> s{_proTargetingCriterion = a})
+      . _Default
+      . _Coerce
+
+-- | The display name for this product as set by the seller.
+proDisplayName :: Lens' Product (Maybe Text)
+proDisplayName
+  = lens _proDisplayName
+      (\ s a -> s{_proDisplayName = a})
+
+-- | An ID which can be used by the Publisher Profile API to get more
+-- information about the seller that created this product.
+proPublisherProFileId :: Lens' Product (Maybe Text)
+proPublisherProFileId
+  = lens _proPublisherProFileId
+      (\ s a -> s{_proPublisherProFileId = a})
+
+-- | The proposed end time for the deal. The field will be truncated to the
+-- order of seconds during serving.
+proAvailableEndTime :: Lens' Product (Maybe UTCTime)
+proAvailableEndTime
+  = lens _proAvailableEndTime
+      (\ s a -> s{_proAvailableEndTime = a})
+      . mapping _DateTime
+
+-- | The unique ID for the product.
+proProductId :: Lens' Product (Maybe Text)
+proProductId
+  = lens _proProductId (\ s a -> s{_proProductId = a})
+
+-- | Creation time.
+proCreateTime :: Lens' Product (Maybe UTCTime)
+proCreateTime
+  = lens _proCreateTime
+      (\ s a -> s{_proCreateTime = a})
+      . mapping _DateTime
+
+instance FromJSON Product where
+        parseJSON
+          = withObject "Product"
+              (\ o ->
+                 Product' <$>
+                   (o .:? "availableStartTime") <*>
+                     (o .:? "webPropertyCode")
+                     <*> (o .:? "terms")
+                     <*> (o .:? "productRevision")
+                     <*> (o .:? "hasCreatorSignedOff")
+                     <*> (o .:? "seller")
+                     <*> (o .:? "syndicationProduct")
+                     <*> (o .:? "updateTime")
+                     <*> (o .:? "creatorContacts" .!= mempty)
+                     <*> (o .:? "targetingCriterion" .!= mempty)
+                     <*> (o .:? "displayName")
+                     <*> (o .:? "publisherProfileId")
+                     <*> (o .:? "availableEndTime")
+                     <*> (o .:? "productId")
+                     <*> (o .:? "createTime"))
+
+instance ToJSON Product where
+        toJSON Product'{..}
+          = object
+              (catMaybes
+                 [("availableStartTime" .=) <$>
+                    _proAvailableStartTime,
+                  ("webPropertyCode" .=) <$> _proWebPropertyCode,
+                  ("terms" .=) <$> _proTerms,
+                  ("productRevision" .=) <$> _proProductRevision,
+                  ("hasCreatorSignedOff" .=) <$>
+                    _proHasCreatorSignedOff,
+                  ("seller" .=) <$> _proSeller,
+                  ("syndicationProduct" .=) <$> _proSyndicationProduct,
+                  ("updateTime" .=) <$> _proUpdateTime,
+                  ("creatorContacts" .=) <$> _proCreatorContacts,
+                  ("targetingCriterion" .=) <$> _proTargetingCriterion,
+                  ("displayName" .=) <$> _proDisplayName,
+                  ("publisherProfileId" .=) <$> _proPublisherProFileId,
+                  ("availableEndTime" .=) <$> _proAvailableEndTime,
+                  ("productId" .=) <$> _proProductId,
+                  ("createTime" .=) <$> _proCreateTime])
+
+--
+-- /See:/ 'listClientUserInvitationsResponse' smart constructor.
+data ListClientUserInvitationsResponse = ListClientUserInvitationsResponse'
+    { _lcuirNextPageToken :: !(Maybe Text)
+    , _lcuirInvitations   :: !(Maybe [ClientUserInvitation])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListClientUserInvitationsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lcuirNextPageToken'
+--
+-- * 'lcuirInvitations'
+listClientUserInvitationsResponse
+    :: ListClientUserInvitationsResponse
+listClientUserInvitationsResponse =
+    ListClientUserInvitationsResponse'
+    { _lcuirNextPageToken = Nothing
+    , _lcuirInvitations = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListClientUserInvitationsRequest.pageToken field in the subsequent call
+-- to the clients.invitations.list method to retrieve the next page of
+-- results.
+lcuirNextPageToken :: Lens' ListClientUserInvitationsResponse (Maybe Text)
+lcuirNextPageToken
+  = lens _lcuirNextPageToken
+      (\ s a -> s{_lcuirNextPageToken = a})
+
+-- | The returned list of client users.
+lcuirInvitations :: Lens' ListClientUserInvitationsResponse [ClientUserInvitation]
+lcuirInvitations
+  = lens _lcuirInvitations
+      (\ s a -> s{_lcuirInvitations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListClientUserInvitationsResponse
+         where
+        parseJSON
+          = withObject "ListClientUserInvitationsResponse"
+              (\ o ->
+                 ListClientUserInvitationsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "invitations" .!= mempty))
+
+instance ToJSON ListClientUserInvitationsResponse
+         where
+        toJSON ListClientUserInvitationsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lcuirNextPageToken,
+                  ("invitations" .=) <$> _lcuirInvitations])
+
+-- | Daypart targeting message that specifies if the ad can be shown only
+-- during certain parts of a day\/week.
+--
+-- /See:/ 'dayPart' smart constructor.
+data DayPart = DayPart'
+    { _dpStartTime :: !(Maybe TimeOfDay')
+    , _dpEndTime   :: !(Maybe TimeOfDay')
+    , _dpDayOfWeek :: !(Maybe DayPartDayOfWeek)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DayPart' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dpStartTime'
+--
+-- * 'dpEndTime'
+--
+-- * 'dpDayOfWeek'
+dayPart
+    :: DayPart
+dayPart =
+    DayPart'
+    { _dpStartTime = Nothing
+    , _dpEndTime = Nothing
+    , _dpDayOfWeek = Nothing
+    }
+
+-- | The starting time of day for the ad to show (minute level granularity).
+-- The start time is inclusive. This field is not available for filtering
+-- in PQL queries.
+dpStartTime :: Lens' DayPart (Maybe TimeOfDay')
+dpStartTime
+  = lens _dpStartTime (\ s a -> s{_dpStartTime = a})
+
+-- | The ending time of the day for the ad to show (minute level
+-- granularity). The end time is exclusive. This field is not available for
+-- filtering in PQL queries.
+dpEndTime :: Lens' DayPart (Maybe TimeOfDay')
+dpEndTime
+  = lens _dpEndTime (\ s a -> s{_dpEndTime = a})
+
+-- | The day of the week to target. If unspecified, applicable to all days.
+dpDayOfWeek :: Lens' DayPart (Maybe DayPartDayOfWeek)
+dpDayOfWeek
+  = lens _dpDayOfWeek (\ s a -> s{_dpDayOfWeek = a})
+
+instance FromJSON DayPart where
+        parseJSON
+          = withObject "DayPart"
+              (\ o ->
+                 DayPart' <$>
+                   (o .:? "startTime") <*> (o .:? "endTime") <*>
+                     (o .:? "dayOfWeek"))
+
+instance ToJSON DayPart where
+        toJSON DayPart'{..}
+          = object
+              (catMaybes
+                 [("startTime" .=) <$> _dpStartTime,
+                  ("endTime" .=) <$> _dpEndTime,
+                  ("dayOfWeek" .=) <$> _dpDayOfWeek])
+
+-- | Mobile application targeting settings.
+--
+-- /See:/ 'mobileApplicationTargeting' smart constructor.
+newtype MobileApplicationTargeting = MobileApplicationTargeting'
+    { _matFirstPartyTargeting :: Maybe FirstPartyMobileApplicationTargeting
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MobileApplicationTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'matFirstPartyTargeting'
+mobileApplicationTargeting
+    :: MobileApplicationTargeting
+mobileApplicationTargeting =
+    MobileApplicationTargeting'
+    { _matFirstPartyTargeting = Nothing
+    }
+
+-- | Publisher owned apps to be targeted or excluded by the publisher to
+-- display the ads in.
+matFirstPartyTargeting :: Lens' MobileApplicationTargeting (Maybe FirstPartyMobileApplicationTargeting)
+matFirstPartyTargeting
+  = lens _matFirstPartyTargeting
+      (\ s a -> s{_matFirstPartyTargeting = a})
+
+instance FromJSON MobileApplicationTargeting where
+        parseJSON
+          = withObject "MobileApplicationTargeting"
+              (\ o ->
+                 MobileApplicationTargeting' <$>
+                   (o .:? "firstPartyTargeting"))
+
+instance ToJSON MobileApplicationTargeting where
+        toJSON MobileApplicationTargeting'{..}
+          = object
+              (catMaybes
+                 [("firstPartyTargeting" .=) <$>
+                    _matFirstPartyTargeting])
+
+--
+-- /See:/ 'listClientsResponse' smart constructor.
+data ListClientsResponse = ListClientsResponse'
+    { _lNextPageToken :: !(Maybe Text)
+    , _lClients       :: !(Maybe [Client])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListClientsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lNextPageToken'
+--
+-- * 'lClients'
+listClientsResponse
+    :: ListClientsResponse
+listClientsResponse =
+    ListClientsResponse'
+    { _lNextPageToken = Nothing
+    , _lClients = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListClientsRequest.pageToken field in the subsequent call to the
+-- accounts.clients.list method to retrieve the next page of results.
+lNextPageToken :: Lens' ListClientsResponse (Maybe Text)
+lNextPageToken
+  = lens _lNextPageToken
+      (\ s a -> s{_lNextPageToken = a})
+
+-- | The returned list of clients.
+lClients :: Lens' ListClientsResponse [Client]
+lClients
+  = lens _lClients (\ s a -> s{_lClients = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListClientsResponse where
+        parseJSON
+          = withObject "ListClientsResponse"
+              (\ o ->
+                 ListClientsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "clients" .!= mempty))
+
+instance ToJSON ListClientsResponse where
+        toJSON ListClientsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lNextPageToken,
+                  ("clients" .=) <$> _lClients])
+
+-- | Response message for listing all creatives associated with a given
+-- filtered bid reason.
+--
+-- /See:/ 'listCreativeStatusBreakdownByCreativeResponse' smart constructor.
+data ListCreativeStatusBreakdownByCreativeResponse = ListCreativeStatusBreakdownByCreativeResponse'
+    { _lcsbbcrNextPageToken           :: !(Maybe Text)
+    , _lcsbbcrFilteredBidCreativeRows :: !(Maybe [FilteredBidCreativeRow])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListCreativeStatusBreakdownByCreativeResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lcsbbcrNextPageToken'
+--
+-- * 'lcsbbcrFilteredBidCreativeRows'
+listCreativeStatusBreakdownByCreativeResponse
+    :: ListCreativeStatusBreakdownByCreativeResponse
+listCreativeStatusBreakdownByCreativeResponse =
+    ListCreativeStatusBreakdownByCreativeResponse'
+    { _lcsbbcrNextPageToken = Nothing
+    , _lcsbbcrFilteredBidCreativeRows = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListCreativeStatusBreakdownByCreativeRequest.pageToken field in the
+-- subsequent call to the filteredBids.creatives.list method to retrieve
+-- the next page of results.
+lcsbbcrNextPageToken :: Lens' ListCreativeStatusBreakdownByCreativeResponse (Maybe Text)
+lcsbbcrNextPageToken
+  = lens _lcsbbcrNextPageToken
+      (\ s a -> s{_lcsbbcrNextPageToken = a})
+
+-- | List of rows, with counts of bids with a given creative status
+-- aggregated by creative.
+lcsbbcrFilteredBidCreativeRows :: Lens' ListCreativeStatusBreakdownByCreativeResponse [FilteredBidCreativeRow]
+lcsbbcrFilteredBidCreativeRows
+  = lens _lcsbbcrFilteredBidCreativeRows
+      (\ s a -> s{_lcsbbcrFilteredBidCreativeRows = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         ListCreativeStatusBreakdownByCreativeResponse where
+        parseJSON
+          = withObject
+              "ListCreativeStatusBreakdownByCreativeResponse"
+              (\ o ->
+                 ListCreativeStatusBreakdownByCreativeResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "filteredBidCreativeRows" .!= mempty))
+
+instance ToJSON
+         ListCreativeStatusBreakdownByCreativeResponse where
+        toJSON
+          ListCreativeStatusBreakdownByCreativeResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lcsbbcrNextPageToken,
+                  ("filteredBidCreativeRows" .=) <$>
+                    _lcsbbcrFilteredBidCreativeRows])
+
+-- | Frequency cap.
+--
+-- /See:/ 'frequencyCap' smart constructor.
+data FrequencyCap = FrequencyCap'
+    { _fcMaxImpressions :: !(Maybe (Textual Int32))
+    , _fcNumTimeUnits   :: !(Maybe (Textual Int32))
+    , _fcTimeUnitType   :: !(Maybe FrequencyCapTimeUnitType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FrequencyCap' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fcMaxImpressions'
+--
+-- * 'fcNumTimeUnits'
+--
+-- * 'fcTimeUnitType'
+frequencyCap
+    :: FrequencyCap
+frequencyCap =
+    FrequencyCap'
+    { _fcMaxImpressions = Nothing
+    , _fcNumTimeUnits = Nothing
+    , _fcTimeUnitType = Nothing
+    }
+
+-- | The maximum number of impressions that can be served to a user within
+-- the specified time period.
+fcMaxImpressions :: Lens' FrequencyCap (Maybe Int32)
+fcMaxImpressions
+  = lens _fcMaxImpressions
+      (\ s a -> s{_fcMaxImpressions = a})
+      . mapping _Coerce
+
+-- | The amount of time, in the units specified by time_unit_type. Defines
+-- the amount of time over which impressions per user are counted and
+-- capped.
+fcNumTimeUnits :: Lens' FrequencyCap (Maybe Int32)
+fcNumTimeUnits
+  = lens _fcNumTimeUnits
+      (\ s a -> s{_fcNumTimeUnits = a})
+      . mapping _Coerce
+
+-- | The time unit. Along with num_time_units defines the amount of time over
+-- which impressions per user are counted and capped.
+fcTimeUnitType :: Lens' FrequencyCap (Maybe FrequencyCapTimeUnitType)
+fcTimeUnitType
+  = lens _fcTimeUnitType
+      (\ s a -> s{_fcTimeUnitType = a})
+
+instance FromJSON FrequencyCap where
+        parseJSON
+          = withObject "FrequencyCap"
+              (\ o ->
+                 FrequencyCap' <$>
+                   (o .:? "maxImpressions") <*> (o .:? "numTimeUnits")
+                     <*> (o .:? "timeUnitType"))
+
+instance ToJSON FrequencyCap where
+        toJSON FrequencyCap'{..}
+          = object
+              (catMaybes
+                 [("maxImpressions" .=) <$> _fcMaxImpressions,
+                  ("numTimeUnits" .=) <$> _fcNumTimeUnits,
+                  ("timeUnitType" .=) <$> _fcTimeUnitType])
+
+-- | Response message for listing all reasons that bid responses were
+-- considered to have no applicable bids.
+--
+-- /See:/ 'listBidResponsesWithoutBidsResponse' smart constructor.
+data ListBidResponsesWithoutBidsResponse = ListBidResponsesWithoutBidsResponse'
+    { _lbrwbrNextPageToken                    :: !(Maybe Text)
+    , _lbrwbrBidResponseWithoutBidsStatusRows :: !(Maybe [BidResponseWithoutBidsStatusRow])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListBidResponsesWithoutBidsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lbrwbrNextPageToken'
+--
+-- * 'lbrwbrBidResponseWithoutBidsStatusRows'
+listBidResponsesWithoutBidsResponse
+    :: ListBidResponsesWithoutBidsResponse
+listBidResponsesWithoutBidsResponse =
+    ListBidResponsesWithoutBidsResponse'
+    { _lbrwbrNextPageToken = Nothing
+    , _lbrwbrBidResponseWithoutBidsStatusRows = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListBidResponsesWithoutBidsRequest.pageToken field in the subsequent
+-- call to the bidResponsesWithoutBids.list method to retrieve the next
+-- page of results.
+lbrwbrNextPageToken :: Lens' ListBidResponsesWithoutBidsResponse (Maybe Text)
+lbrwbrNextPageToken
+  = lens _lbrwbrNextPageToken
+      (\ s a -> s{_lbrwbrNextPageToken = a})
+
+-- | List of rows, with counts of bid responses without bids aggregated by
+-- status.
+lbrwbrBidResponseWithoutBidsStatusRows :: Lens' ListBidResponsesWithoutBidsResponse [BidResponseWithoutBidsStatusRow]
+lbrwbrBidResponseWithoutBidsStatusRows
+  = lens _lbrwbrBidResponseWithoutBidsStatusRows
+      (\ s a ->
+         s{_lbrwbrBidResponseWithoutBidsStatusRows = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListBidResponsesWithoutBidsResponse
+         where
+        parseJSON
+          = withObject "ListBidResponsesWithoutBidsResponse"
+              (\ o ->
+                 ListBidResponsesWithoutBidsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "bidResponseWithoutBidsStatusRows" .!=
+                        mempty))
+
+instance ToJSON ListBidResponsesWithoutBidsResponse
+         where
+        toJSON ListBidResponsesWithoutBidsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lbrwbrNextPageToken,
+                  ("bidResponseWithoutBidsStatusRows" .=) <$>
+                    _lbrwbrBidResponseWithoutBidsStatusRows])
+
+-- | \'OutputOnly A representation of the status of an ad in a specific
+-- context. A context here relates to where something ultimately serves
+-- (for example, a user or publisher geo, a platform, an HTTPS vs HTTP
+-- request, or the type of auction).
+--
+-- /See:/ 'servingRestriction' smart constructor.
+data ServingRestriction = ServingRestriction'
+    { _srStatus             :: !(Maybe ServingRestrictionStatus)
+    , _srContexts           :: !(Maybe [ServingContext])
+    , _srDisApprovalReasons :: !(Maybe [DisApproval])
+    , _srDisApproval        :: !(Maybe DisApproval)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ServingRestriction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'srStatus'
+--
+-- * 'srContexts'
+--
+-- * 'srDisApprovalReasons'
+--
+-- * 'srDisApproval'
+servingRestriction
+    :: ServingRestriction
+servingRestriction =
+    ServingRestriction'
+    { _srStatus = Nothing
+    , _srContexts = Nothing
+    , _srDisApprovalReasons = Nothing
+    , _srDisApproval = Nothing
+    }
+
+-- | The status of the creative in this context (for example, it has been
+-- explicitly disapproved or is pending review).
+srStatus :: Lens' ServingRestriction (Maybe ServingRestrictionStatus)
+srStatus = lens _srStatus (\ s a -> s{_srStatus = a})
+
+-- | The contexts for the restriction.
+srContexts :: Lens' ServingRestriction [ServingContext]
+srContexts
+  = lens _srContexts (\ s a -> s{_srContexts = a}) .
+      _Default
+      . _Coerce
+
+-- | Any disapprovals bound to this restriction. Only present if
+-- status=DISAPPROVED. Can be used to filter the response of the
+-- creatives.list method. Deprecated; please use disapproval field instead.
+srDisApprovalReasons :: Lens' ServingRestriction [DisApproval]
+srDisApprovalReasons
+  = lens _srDisApprovalReasons
+      (\ s a -> s{_srDisApprovalReasons = a})
+      . _Default
+      . _Coerce
+
+-- | Disapproval bound to this restriction. Only present if
+-- status=DISAPPROVED. Can be used to filter the response of the
+-- creatives.list method.
+srDisApproval :: Lens' ServingRestriction (Maybe DisApproval)
+srDisApproval
+  = lens _srDisApproval
+      (\ s a -> s{_srDisApproval = a})
+
+instance FromJSON ServingRestriction where
+        parseJSON
+          = withObject "ServingRestriction"
+              (\ o ->
+                 ServingRestriction' <$>
+                   (o .:? "status") <*> (o .:? "contexts" .!= mempty)
+                     <*> (o .:? "disapprovalReasons" .!= mempty)
+                     <*> (o .:? "disapproval"))
+
+instance ToJSON ServingRestriction where
+        toJSON ServingRestriction'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _srStatus,
+                  ("contexts" .=) <$> _srContexts,
+                  ("disapprovalReasons" .=) <$> _srDisApprovalReasons,
+                  ("disapproval" .=) <$> _srDisApproval])
+
+-- | Represents information for a creative that is associated with a
+-- Programmatic Guaranteed\/Preferred Deal in Ad Manager.
+--
+-- /See:/ 'creativeSpecification' smart constructor.
+data CreativeSpecification = CreativeSpecification'
+    { _csCreativeCompanionSizes :: !(Maybe [AdSize])
+    , _csCreativeSize           :: !(Maybe AdSize)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeSpecification' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'csCreativeCompanionSizes'
+--
+-- * 'csCreativeSize'
+creativeSpecification
+    :: CreativeSpecification
+creativeSpecification =
+    CreativeSpecification'
+    { _csCreativeCompanionSizes = Nothing
+    , _csCreativeSize = Nothing
+    }
+
+-- | Companion sizes may be filled in only when this is a video creative.
+csCreativeCompanionSizes :: Lens' CreativeSpecification [AdSize]
+csCreativeCompanionSizes
+  = lens _csCreativeCompanionSizes
+      (\ s a -> s{_csCreativeCompanionSizes = a})
+      . _Default
+      . _Coerce
+
+-- | The size of the creative.
+csCreativeSize :: Lens' CreativeSpecification (Maybe AdSize)
+csCreativeSize
+  = lens _csCreativeSize
+      (\ s a -> s{_csCreativeSize = a})
+
+instance FromJSON CreativeSpecification where
+        parseJSON
+          = withObject "CreativeSpecification"
+              (\ o ->
+                 CreativeSpecification' <$>
+                   (o .:? "creativeCompanionSizes" .!= mempty) <*>
+                     (o .:? "creativeSize"))
+
+instance ToJSON CreativeSpecification where
+        toJSON CreativeSpecification'{..}
+          = object
+              (catMaybes
+                 [("creativeCompanionSizes" .=) <$>
+                    _csCreativeCompanionSizes,
+                  ("creativeSize" .=) <$> _csCreativeSize])
+
+-- | The set of metrics that are measured in numbers of impressions,
+-- representing how many impressions with the specified dimension values
+-- were considered eligible at each stage of the bidding funnel.
+--
+-- /See:/ 'impressionMetricsRow' smart constructor.
+data ImpressionMetricsRow = ImpressionMetricsRow'
+    { _imrRowDimensions        :: !(Maybe RowDimensions)
+    , _imrAvailableImpressions :: !(Maybe MetricValue)
+    , _imrSuccessfulResponses  :: !(Maybe MetricValue)
+    , _imrInventoryMatches     :: !(Maybe MetricValue)
+    , _imrBidRequests          :: !(Maybe MetricValue)
+    , _imrResponsesWithBids    :: !(Maybe MetricValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ImpressionMetricsRow' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'imrRowDimensions'
+--
+-- * 'imrAvailableImpressions'
+--
+-- * 'imrSuccessfulResponses'
+--
+-- * 'imrInventoryMatches'
+--
+-- * 'imrBidRequests'
+--
+-- * 'imrResponsesWithBids'
+impressionMetricsRow
+    :: ImpressionMetricsRow
+impressionMetricsRow =
+    ImpressionMetricsRow'
+    { _imrRowDimensions = Nothing
+    , _imrAvailableImpressions = Nothing
+    , _imrSuccessfulResponses = Nothing
+    , _imrInventoryMatches = Nothing
+    , _imrBidRequests = Nothing
+    , _imrResponsesWithBids = Nothing
+    }
+
+-- | The values of all dimensions associated with metric values in this row.
+imrRowDimensions :: Lens' ImpressionMetricsRow (Maybe RowDimensions)
+imrRowDimensions
+  = lens _imrRowDimensions
+      (\ s a -> s{_imrRowDimensions = a})
+
+-- | The number of impressions available to the buyer on Ad Exchange. In some
+-- cases this value may be unavailable.
+imrAvailableImpressions :: Lens' ImpressionMetricsRow (Maybe MetricValue)
+imrAvailableImpressions
+  = lens _imrAvailableImpressions
+      (\ s a -> s{_imrAvailableImpressions = a})
+
+-- | The number of impressions for which the buyer successfully sent a
+-- response to Ad Exchange.
+imrSuccessfulResponses :: Lens' ImpressionMetricsRow (Maybe MetricValue)
+imrSuccessfulResponses
+  = lens _imrSuccessfulResponses
+      (\ s a -> s{_imrSuccessfulResponses = a})
+
+-- | The number of impressions that match the buyer\'s inventory
+-- pretargeting.
+imrInventoryMatches :: Lens' ImpressionMetricsRow (Maybe MetricValue)
+imrInventoryMatches
+  = lens _imrInventoryMatches
+      (\ s a -> s{_imrInventoryMatches = a})
+
+-- | The number of impressions for which Ad Exchange sent the buyer a bid
+-- request.
+imrBidRequests :: Lens' ImpressionMetricsRow (Maybe MetricValue)
+imrBidRequests
+  = lens _imrBidRequests
+      (\ s a -> s{_imrBidRequests = a})
+
+-- | The number of impressions for which Ad Exchange received a response from
+-- the buyer that contained at least one applicable bid.
+imrResponsesWithBids :: Lens' ImpressionMetricsRow (Maybe MetricValue)
+imrResponsesWithBids
+  = lens _imrResponsesWithBids
+      (\ s a -> s{_imrResponsesWithBids = a})
+
+instance FromJSON ImpressionMetricsRow where
+        parseJSON
+          = withObject "ImpressionMetricsRow"
+              (\ o ->
+                 ImpressionMetricsRow' <$>
+                   (o .:? "rowDimensions") <*>
+                     (o .:? "availableImpressions")
+                     <*> (o .:? "successfulResponses")
+                     <*> (o .:? "inventoryMatches")
+                     <*> (o .:? "bidRequests")
+                     <*> (o .:? "responsesWithBids"))
+
+instance ToJSON ImpressionMetricsRow where
+        toJSON ImpressionMetricsRow'{..}
+          = object
+              (catMaybes
+                 [("rowDimensions" .=) <$> _imrRowDimensions,
+                  ("availableImpressions" .=) <$>
+                    _imrAvailableImpressions,
+                  ("successfulResponses" .=) <$>
+                    _imrSuccessfulResponses,
+                  ("inventoryMatches" .=) <$> _imrInventoryMatches,
+                  ("bidRequests" .=) <$> _imrBidRequests,
+                  ("responsesWithBids" .=) <$> _imrResponsesWithBids])
+
+-- | Specifies the size of the creative.
+--
+-- /See:/ 'creativeSize' smart constructor.
+data CreativeSize = CreativeSize'
+    { _csSize             :: !(Maybe Size)
+    , _csCompanionSizes   :: !(Maybe [Size])
+    , _csSkippableAdType  :: !(Maybe CreativeSizeSkippableAdType)
+    , _csCreativeSizeType :: !(Maybe CreativeSizeCreativeSizeType)
+    , _csAllowedFormats   :: !(Maybe [Text])
+    , _csNATiveTemplate   :: !(Maybe CreativeSizeNATiveTemplate)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeSize' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'csSize'
+--
+-- * 'csCompanionSizes'
+--
+-- * 'csSkippableAdType'
+--
+-- * 'csCreativeSizeType'
+--
+-- * 'csAllowedFormats'
+--
+-- * 'csNATiveTemplate'
+creativeSize
+    :: CreativeSize
+creativeSize =
+    CreativeSize'
+    { _csSize = Nothing
+    , _csCompanionSizes = Nothing
+    , _csSkippableAdType = Nothing
+    , _csCreativeSizeType = Nothing
+    , _csAllowedFormats = Nothing
+    , _csNATiveTemplate = Nothing
+    }
+
+-- | For regular or video creative size type, specifies the size of the
+-- creative
+csSize :: Lens' CreativeSize (Maybe Size)
+csSize = lens _csSize (\ s a -> s{_csSize = a})
+
+-- | For video creatives specifies the sizes of companion ads (if present).
+-- Companion sizes may be filled in only when creative_size_type = VIDEO
+csCompanionSizes :: Lens' CreativeSize [Size]
+csCompanionSizes
+  = lens _csCompanionSizes
+      (\ s a -> s{_csCompanionSizes = a})
+      . _Default
+      . _Coerce
+
+-- | The type of skippable ad for this creative. It will have a value only if
+-- creative_size_type = CreativeSizeType.VIDEO.
+csSkippableAdType :: Lens' CreativeSize (Maybe CreativeSizeSkippableAdType)
+csSkippableAdType
+  = lens _csSkippableAdType
+      (\ s a -> s{_csSkippableAdType = a})
+
+-- | The creative size type.
+csCreativeSizeType :: Lens' CreativeSize (Maybe CreativeSizeCreativeSizeType)
+csCreativeSizeType
+  = lens _csCreativeSizeType
+      (\ s a -> s{_csCreativeSizeType = a})
+
+-- | What formats are allowed by the publisher. If this repeated field is
+-- empty then all formats are allowed. For example, if this field contains
+-- AllowedFormatType.AUDIO then the publisher only allows an audio ad
+-- (without any video).
+csAllowedFormats :: Lens' CreativeSize [Text]
+csAllowedFormats
+  = lens _csAllowedFormats
+      (\ s a -> s{_csAllowedFormats = a})
+      . _Default
+      . _Coerce
+
+-- | The native template for this creative. It will have a value only if
+-- creative_size_type = CreativeSizeType.NATIVE. \'OutputOnly
+csNATiveTemplate :: Lens' CreativeSize (Maybe CreativeSizeNATiveTemplate)
+csNATiveTemplate
+  = lens _csNATiveTemplate
+      (\ s a -> s{_csNATiveTemplate = a})
+
+instance FromJSON CreativeSize where
+        parseJSON
+          = withObject "CreativeSize"
+              (\ o ->
+                 CreativeSize' <$>
+                   (o .:? "size") <*>
+                     (o .:? "companionSizes" .!= mempty)
+                     <*> (o .:? "skippableAdType")
+                     <*> (o .:? "creativeSizeType")
+                     <*> (o .:? "allowedFormats" .!= mempty)
+                     <*> (o .:? "nativeTemplate"))
+
+instance ToJSON CreativeSize where
+        toJSON CreativeSize'{..}
+          = object
+              (catMaybes
+                 [("size" .=) <$> _csSize,
+                  ("companionSizes" .=) <$> _csCompanionSizes,
+                  ("skippableAdType" .=) <$> _csSkippableAdType,
+                  ("creativeSizeType" .=) <$> _csCreativeSizeType,
+                  ("allowedFormats" .=) <$> _csAllowedFormats,
+                  ("nativeTemplate" .=) <$> _csNATiveTemplate])
+
+-- | Response message for listing proposals.
+--
+-- /See:/ 'listProposalsResponse' smart constructor.
+data ListProposalsResponse = ListProposalsResponse'
+    { _lprProposals     :: !(Maybe [Proposal])
+    , _lprNextPageToken :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListProposalsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lprProposals'
+--
+-- * 'lprNextPageToken'
+listProposalsResponse
+    :: ListProposalsResponse
+listProposalsResponse =
+    ListProposalsResponse'
+    { _lprProposals = Nothing
+    , _lprNextPageToken = Nothing
+    }
+
+-- | The list of proposals.
+lprProposals :: Lens' ListProposalsResponse [Proposal]
+lprProposals
+  = lens _lprProposals (\ s a -> s{_lprProposals = a})
+      . _Default
+      . _Coerce
+
+-- | Continuation token for fetching the next page of results.
+lprNextPageToken :: Lens' ListProposalsResponse (Maybe Text)
+lprNextPageToken
+  = lens _lprNextPageToken
+      (\ s a -> s{_lprNextPageToken = a})
+
+instance FromJSON ListProposalsResponse where
+        parseJSON
+          = withObject "ListProposalsResponse"
+              (\ o ->
+                 ListProposalsResponse' <$>
+                   (o .:? "proposals" .!= mempty) <*>
+                     (o .:? "nextPageToken"))
+
+instance ToJSON ListProposalsResponse where
+        toJSON ListProposalsResponse'{..}
+          = object
+              (catMaybes
+                 [("proposals" .=) <$> _lprProposals,
+                  ("nextPageToken" .=) <$> _lprNextPageToken])
+
+-- | Represents the size of an ad unit that can be targeted on an ad request.
+-- It only applies to Private Auction, AdX Preferred Deals and Auction
+-- Packages. This targeting does not apply to Programmatic Guaranteed and
+-- Preferred Deals in Ad Manager.
+--
+-- /See:/ 'inventorySizeTargeting' smart constructor.
+data InventorySizeTargeting = InventorySizeTargeting'
+    { _istTargetedInventorySizes :: !(Maybe [AdSize])
+    , _istExcludedInventorySizes :: !(Maybe [AdSize])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InventorySizeTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'istTargetedInventorySizes'
+--
+-- * 'istExcludedInventorySizes'
+inventorySizeTargeting
+    :: InventorySizeTargeting
+inventorySizeTargeting =
+    InventorySizeTargeting'
+    { _istTargetedInventorySizes = Nothing
+    , _istExcludedInventorySizes = Nothing
+    }
+
+-- | A list of inventory sizes to be included.
+istTargetedInventorySizes :: Lens' InventorySizeTargeting [AdSize]
+istTargetedInventorySizes
+  = lens _istTargetedInventorySizes
+      (\ s a -> s{_istTargetedInventorySizes = a})
+      . _Default
+      . _Coerce
+
+-- | A list of inventory sizes to be excluded.
+istExcludedInventorySizes :: Lens' InventorySizeTargeting [AdSize]
+istExcludedInventorySizes
+  = lens _istExcludedInventorySizes
+      (\ s a -> s{_istExcludedInventorySizes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON InventorySizeTargeting where
+        parseJSON
+          = withObject "InventorySizeTargeting"
+              (\ o ->
+                 InventorySizeTargeting' <$>
+                   (o .:? "targetedInventorySizes" .!= mempty) <*>
+                     (o .:? "excludedInventorySizes" .!= mempty))
+
+instance ToJSON InventorySizeTargeting where
+        toJSON InventorySizeTargeting'{..}
+          = object
+              (catMaybes
+                 [("targetedInventorySizes" .=) <$>
+                    _istTargetedInventorySizes,
+                  ("excludedInventorySizes" .=) <$>
+                    _istExcludedInventorySizes])
+
+-- | The deal terms specify the details of a Product\/deal. They specify
+-- things like price per buyer, the type of pricing model (e.g., fixed
+-- price, auction) and expected impressions from the publisher.
+--
+-- /See:/ 'dealTerms' smart constructor.
+data DealTerms = DealTerms'
+    { _dtEstimatedGrossSpend          :: !(Maybe Price)
+    , _dtNonGuaranteedFixedPriceTerms :: !(Maybe NonGuaranteedFixedPriceTerms)
+    , _dtNonGuaranteedAuctionTerms    :: !(Maybe NonGuaranteedAuctionTerms)
+    , _dtBrandingType                 :: !(Maybe DealTermsBrandingType)
+    , _dtEstimatedImpressionsPerDay   :: !(Maybe (Textual Int64))
+    , _dtSellerTimeZone               :: !(Maybe Text)
+    , _dtGuaranteedFixedPriceTerms    :: !(Maybe GuaranteedFixedPriceTerms)
+    , _dtDescription                  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DealTerms' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtEstimatedGrossSpend'
+--
+-- * 'dtNonGuaranteedFixedPriceTerms'
+--
+-- * 'dtNonGuaranteedAuctionTerms'
+--
+-- * 'dtBrandingType'
+--
+-- * 'dtEstimatedImpressionsPerDay'
+--
+-- * 'dtSellerTimeZone'
+--
+-- * 'dtGuaranteedFixedPriceTerms'
+--
+-- * 'dtDescription'
+dealTerms
+    :: DealTerms
+dealTerms =
+    DealTerms'
+    { _dtEstimatedGrossSpend = Nothing
+    , _dtNonGuaranteedFixedPriceTerms = Nothing
+    , _dtNonGuaranteedAuctionTerms = Nothing
+    , _dtBrandingType = Nothing
+    , _dtEstimatedImpressionsPerDay = Nothing
+    , _dtSellerTimeZone = Nothing
+    , _dtGuaranteedFixedPriceTerms = Nothing
+    , _dtDescription = Nothing
+    }
+
+-- | Non-binding estimate of the estimated gross spend for this deal. Can be
+-- set by buyer or seller.
+dtEstimatedGrossSpend :: Lens' DealTerms (Maybe Price)
+dtEstimatedGrossSpend
+  = lens _dtEstimatedGrossSpend
+      (\ s a -> s{_dtEstimatedGrossSpend = a})
+
+-- | The terms for non-guaranteed fixed price deals.
+dtNonGuaranteedFixedPriceTerms :: Lens' DealTerms (Maybe NonGuaranteedFixedPriceTerms)
+dtNonGuaranteedFixedPriceTerms
+  = lens _dtNonGuaranteedFixedPriceTerms
+      (\ s a -> s{_dtNonGuaranteedFixedPriceTerms = a})
+
+-- | The terms for non-guaranteed auction deals.
+dtNonGuaranteedAuctionTerms :: Lens' DealTerms (Maybe NonGuaranteedAuctionTerms)
+dtNonGuaranteedAuctionTerms
+  = lens _dtNonGuaranteedAuctionTerms
+      (\ s a -> s{_dtNonGuaranteedAuctionTerms = a})
+
+-- | Visibility of the URL in bid requests. (default: BRANDED)
+dtBrandingType :: Lens' DealTerms (Maybe DealTermsBrandingType)
+dtBrandingType
+  = lens _dtBrandingType
+      (\ s a -> s{_dtBrandingType = a})
+
+-- | Non-binding estimate of the impressions served per day. Can be set by
+-- buyer or seller.
+dtEstimatedImpressionsPerDay :: Lens' DealTerms (Maybe Int64)
+dtEstimatedImpressionsPerDay
+  = lens _dtEstimatedImpressionsPerDay
+      (\ s a -> s{_dtEstimatedImpressionsPerDay = a})
+      . mapping _Coerce
+
+-- | The time zone name. For deals with Cost Per Day billing, defines the
+-- time zone used to mark the boundaries of a day. It should be an IANA TZ
+-- name, such as \"America\/Los_Angeles\". For more information, see
+-- https:\/\/en.wikipedia.org\/wiki\/List_of_tz_database_time_zones.
+dtSellerTimeZone :: Lens' DealTerms (Maybe Text)
+dtSellerTimeZone
+  = lens _dtSellerTimeZone
+      (\ s a -> s{_dtSellerTimeZone = a})
+
+-- | The terms for guaranteed fixed price deals.
+dtGuaranteedFixedPriceTerms :: Lens' DealTerms (Maybe GuaranteedFixedPriceTerms)
+dtGuaranteedFixedPriceTerms
+  = lens _dtGuaranteedFixedPriceTerms
+      (\ s a -> s{_dtGuaranteedFixedPriceTerms = a})
+
+-- | Publisher provided description for the terms.
+dtDescription :: Lens' DealTerms (Maybe Text)
+dtDescription
+  = lens _dtDescription
+      (\ s a -> s{_dtDescription = a})
+
+instance FromJSON DealTerms where
+        parseJSON
+          = withObject "DealTerms"
+              (\ o ->
+                 DealTerms' <$>
+                   (o .:? "estimatedGrossSpend") <*>
+                     (o .:? "nonGuaranteedFixedPriceTerms")
+                     <*> (o .:? "nonGuaranteedAuctionTerms")
+                     <*> (o .:? "brandingType")
+                     <*> (o .:? "estimatedImpressionsPerDay")
+                     <*> (o .:? "sellerTimeZone")
+                     <*> (o .:? "guaranteedFixedPriceTerms")
+                     <*> (o .:? "description"))
+
+instance ToJSON DealTerms where
+        toJSON DealTerms'{..}
+          = object
+              (catMaybes
+                 [("estimatedGrossSpend" .=) <$>
+                    _dtEstimatedGrossSpend,
+                  ("nonGuaranteedFixedPriceTerms" .=) <$>
+                    _dtNonGuaranteedFixedPriceTerms,
+                  ("nonGuaranteedAuctionTerms" .=) <$>
+                    _dtNonGuaranteedAuctionTerms,
+                  ("brandingType" .=) <$> _dtBrandingType,
+                  ("estimatedImpressionsPerDay" .=) <$>
+                    _dtEstimatedImpressionsPerDay,
+                  ("sellerTimeZone" .=) <$> _dtSellerTimeZone,
+                  ("guaranteedFixedPriceTerms" .=) <$>
+                    _dtGuaranteedFixedPriceTerms,
+                  ("description" .=) <$> _dtDescription])
+
+-- | \'OutputOnly Filtering reasons for this creative during a period of a
+-- single day (from midnight to midnight Pacific).
+--
+-- /See:/ 'filteringStats' smart constructor.
+data FilteringStats = FilteringStats'
+    { _fsReasons :: !(Maybe [Reason])
+    , _fsDate    :: !(Maybe Date)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FilteringStats' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fsReasons'
+--
+-- * 'fsDate'
+filteringStats
+    :: FilteringStats
+filteringStats =
+    FilteringStats'
+    { _fsReasons = Nothing
+    , _fsDate = Nothing
+    }
+
+-- | The set of filtering reasons for this date.
+fsReasons :: Lens' FilteringStats [Reason]
+fsReasons
+  = lens _fsReasons (\ s a -> s{_fsReasons = a}) .
+      _Default
+      . _Coerce
+
+-- | The day during which the data was collected. The data is collected from
+-- 00:00:00 to 23:59:59 PT. During switches from PST to PDT and back, the
+-- day may contain 23 or 25 hours of data instead of the usual 24.
+fsDate :: Lens' FilteringStats (Maybe Date)
+fsDate = lens _fsDate (\ s a -> s{_fsDate = a})
+
+instance FromJSON FilteringStats where
+        parseJSON
+          = withObject "FilteringStats"
+              (\ o ->
+                 FilteringStats' <$>
+                   (o .:? "reasons" .!= mempty) <*> (o .:? "date"))
+
+instance ToJSON FilteringStats where
+        toJSON FilteringStats'{..}
+          = object
+              (catMaybes
+                 [("reasons" .=) <$> _fsReasons,
+                  ("date" .=) <$> _fsDate])
+
+-- | An invitation for a new client user to get access to the Authorized
+-- Buyers UI. All fields are required unless otherwise specified.
+--
+-- /See:/ 'clientUserInvitation' smart constructor.
+data ClientUserInvitation = ClientUserInvitation'
+    { _cuiEmail           :: !(Maybe Text)
+    , _cuiInvitationId    :: !(Maybe (Textual Int64))
+    , _cuiClientAccountId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ClientUserInvitation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cuiEmail'
+--
+-- * 'cuiInvitationId'
+--
+-- * 'cuiClientAccountId'
+clientUserInvitation
+    :: ClientUserInvitation
+clientUserInvitation =
+    ClientUserInvitation'
+    { _cuiEmail = Nothing
+    , _cuiInvitationId = Nothing
+    , _cuiClientAccountId = Nothing
+    }
+
+-- | The email address to which the invitation is sent. Email addresses
+-- should be unique among all client users under each sponsor buyer.
+cuiEmail :: Lens' ClientUserInvitation (Maybe Text)
+cuiEmail = lens _cuiEmail (\ s a -> s{_cuiEmail = a})
+
+-- | The unique numerical ID of the invitation that is sent to the user. The
+-- value of this field is ignored in create operations.
+cuiInvitationId :: Lens' ClientUserInvitation (Maybe Int64)
+cuiInvitationId
+  = lens _cuiInvitationId
+      (\ s a -> s{_cuiInvitationId = a})
+      . mapping _Coerce
+
+-- | Numerical account ID of the client buyer that the invited user is
+-- associated with. The value of this field is ignored in create
+-- operations.
+cuiClientAccountId :: Lens' ClientUserInvitation (Maybe Int64)
+cuiClientAccountId
+  = lens _cuiClientAccountId
+      (\ s a -> s{_cuiClientAccountId = a})
+      . mapping _Coerce
+
+instance FromJSON ClientUserInvitation where
+        parseJSON
+          = withObject "ClientUserInvitation"
+              (\ o ->
+                 ClientUserInvitation' <$>
+                   (o .:? "email") <*> (o .:? "invitationId") <*>
+                     (o .:? "clientAccountId"))
+
+instance ToJSON ClientUserInvitation where
+        toJSON ClientUserInvitation'{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _cuiEmail,
+                  ("invitationId" .=) <$> _cuiInvitationId,
+                  ("clientAccountId" .=) <$> _cuiClientAccountId])
+
+-- | The number of winning bids with the specified dimension values for which
+-- the buyer was not billed, as described by the specified status.
+--
+-- /See:/ 'nonBillableWinningBidStatusRow' smart constructor.
+data NonBillableWinningBidStatusRow = NonBillableWinningBidStatusRow'
+    { _nbwbsrStatus        :: !(Maybe NonBillableWinningBidStatusRowStatus)
+    , _nbwbsrRowDimensions :: !(Maybe RowDimensions)
+    , _nbwbsrBidCount      :: !(Maybe MetricValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'NonBillableWinningBidStatusRow' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'nbwbsrStatus'
+--
+-- * 'nbwbsrRowDimensions'
+--
+-- * 'nbwbsrBidCount'
+nonBillableWinningBidStatusRow
+    :: NonBillableWinningBidStatusRow
+nonBillableWinningBidStatusRow =
+    NonBillableWinningBidStatusRow'
+    { _nbwbsrStatus = Nothing
+    , _nbwbsrRowDimensions = Nothing
+    , _nbwbsrBidCount = Nothing
+    }
+
+-- | The status specifying why the winning bids were not billed.
+nbwbsrStatus :: Lens' NonBillableWinningBidStatusRow (Maybe NonBillableWinningBidStatusRowStatus)
+nbwbsrStatus
+  = lens _nbwbsrStatus (\ s a -> s{_nbwbsrStatus = a})
+
+-- | The values of all dimensions associated with metric values in this row.
+nbwbsrRowDimensions :: Lens' NonBillableWinningBidStatusRow (Maybe RowDimensions)
+nbwbsrRowDimensions
+  = lens _nbwbsrRowDimensions
+      (\ s a -> s{_nbwbsrRowDimensions = a})
+
+-- | The number of bids with the specified status.
+nbwbsrBidCount :: Lens' NonBillableWinningBidStatusRow (Maybe MetricValue)
+nbwbsrBidCount
+  = lens _nbwbsrBidCount
+      (\ s a -> s{_nbwbsrBidCount = a})
+
+instance FromJSON NonBillableWinningBidStatusRow
+         where
+        parseJSON
+          = withObject "NonBillableWinningBidStatusRow"
+              (\ o ->
+                 NonBillableWinningBidStatusRow' <$>
+                   (o .:? "status") <*> (o .:? "rowDimensions") <*>
+                     (o .:? "bidCount"))
+
+instance ToJSON NonBillableWinningBidStatusRow where
+        toJSON NonBillableWinningBidStatusRow'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _nbwbsrStatus,
+                  ("rowDimensions" .=) <$> _nbwbsrRowDimensions,
+                  ("bidCount" .=) <$> _nbwbsrBidCount])
+
+-- | Response message for listing products visible to the buyer.
+--
+-- /See:/ 'listProductsResponse' smart constructor.
+data ListProductsResponse = ListProductsResponse'
+    { _lisNextPageToken :: !(Maybe Text)
+    , _lisProducts      :: !(Maybe [Product])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListProductsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lisNextPageToken'
+--
+-- * 'lisProducts'
+listProductsResponse
+    :: ListProductsResponse
+listProductsResponse =
+    ListProductsResponse'
+    { _lisNextPageToken = Nothing
+    , _lisProducts = Nothing
+    }
+
+-- | List pagination support.
+lisNextPageToken :: Lens' ListProductsResponse (Maybe Text)
+lisNextPageToken
+  = lens _lisNextPageToken
+      (\ s a -> s{_lisNextPageToken = a})
+
+-- | The list of matching products at their head revision number.
+lisProducts :: Lens' ListProductsResponse [Product]
+lisProducts
+  = lens _lisProducts (\ s a -> s{_lisProducts = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListProductsResponse where
+        parseJSON
+          = withObject "ListProductsResponse"
+              (\ o ->
+                 ListProductsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "products" .!= mempty))
+
+instance ToJSON ListProductsResponse where
+        toJSON ListProductsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lisNextPageToken,
+                  ("products" .=) <$> _lisProducts])
+
+-- | Represents a buyer of inventory. Each buyer is identified by a unique
+-- Authorized Buyers account ID.
+--
+-- /See:/ 'buyer' smart constructor.
+newtype Buyer = Buyer'
+    { _bAccountId :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Buyer' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bAccountId'
+buyer
+    :: Buyer
+buyer =
+    Buyer'
+    { _bAccountId = Nothing
+    }
+
+-- | Authorized Buyers account ID of the buyer.
+bAccountId :: Lens' Buyer (Maybe Text)
+bAccountId
+  = lens _bAccountId (\ s a -> s{_bAccountId = a})
+
+instance FromJSON Buyer where
+        parseJSON
+          = withObject "Buyer"
+              (\ o -> Buyer' <$> (o .:? "accountId"))
+
+instance ToJSON Buyer where
+        toJSON Buyer'{..}
+          = object
+              (catMaybes [("accountId" .=) <$> _bAccountId])
+
+-- | Response message for listing the metrics that are measured in number of
+-- bids.
+--
+-- /See:/ 'listBidMetricsResponse' smart constructor.
+data ListBidMetricsResponse = ListBidMetricsResponse'
+    { _lbmrNextPageToken  :: !(Maybe Text)
+    , _lbmrBidMetricsRows :: !(Maybe [BidMetricsRow])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListBidMetricsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lbmrNextPageToken'
+--
+-- * 'lbmrBidMetricsRows'
+listBidMetricsResponse
+    :: ListBidMetricsResponse
+listBidMetricsResponse =
+    ListBidMetricsResponse'
+    { _lbmrNextPageToken = Nothing
+    , _lbmrBidMetricsRows = Nothing
+    }
+
+-- | A token to retrieve the next page of results. Pass this value in the
+-- ListBidMetricsRequest.pageToken field in the subsequent call to the
+-- bidMetrics.list method to retrieve the next page of results.
+lbmrNextPageToken :: Lens' ListBidMetricsResponse (Maybe Text)
+lbmrNextPageToken
+  = lens _lbmrNextPageToken
+      (\ s a -> s{_lbmrNextPageToken = a})
+
+-- | List of rows, each containing a set of bid metrics.
+lbmrBidMetricsRows :: Lens' ListBidMetricsResponse [BidMetricsRow]
+lbmrBidMetricsRows
+  = lens _lbmrBidMetricsRows
+      (\ s a -> s{_lbmrBidMetricsRows = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListBidMetricsResponse where
+        parseJSON
+          = withObject "ListBidMetricsResponse"
+              (\ o ->
+                 ListBidMetricsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "bidMetricsRows" .!= mempty))
+
+instance ToJSON ListBidMetricsResponse where
+        toJSON ListBidMetricsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lbmrNextPageToken,
+                  ("bidMetricsRows" .=) <$> _lbmrBidMetricsRows])
+
+-- | A client resource represents a client buyer—an agency, a brand, or an
+-- advertiser customer of the sponsor buyer. Users associated with the
+-- client buyer have restricted access to the Marketplace and certain other
+-- sections of the Authorized Buyers UI based on the role granted to the
+-- client buyer. All fields are required unless otherwise specified.
+--
+-- /See:/ 'client' smart constructor.
+data Client = Client'
+    { _cEntityName      :: !(Maybe Text)
+    , _cStatus          :: !(Maybe ClientStatus)
+    , _cEntityType      :: !(Maybe ClientEntityType)
+    , _cRole            :: !(Maybe ClientRole)
+    , _cVisibleToSeller :: !(Maybe Bool)
+    , _cPartnerClientId :: !(Maybe Text)
+    , _cClientAccountId :: !(Maybe (Textual Int64))
+    , _cClientName      :: !(Maybe Text)
+    , _cEntityId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Client' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cEntityName'
+--
+-- * 'cStatus'
+--
+-- * 'cEntityType'
+--
+-- * 'cRole'
+--
+-- * 'cVisibleToSeller'
+--
+-- * 'cPartnerClientId'
+--
+-- * 'cClientAccountId'
+--
+-- * 'cClientName'
+--
+-- * 'cEntityId'
+client
+    :: Client
+client =
+    Client'
+    { _cEntityName = Nothing
+    , _cStatus = Nothing
+    , _cEntityType = Nothing
+    , _cRole = Nothing
+    , _cVisibleToSeller = Nothing
+    , _cPartnerClientId = Nothing
+    , _cClientAccountId = Nothing
+    , _cClientName = Nothing
+    , _cEntityId = Nothing
+    }
+
+-- | The name of the entity. This field is automatically fetched based on the
+-- type and ID. The value of this field is ignored in create and update
+-- operations.
+cEntityName :: Lens' Client (Maybe Text)
+cEntityName
+  = lens _cEntityName (\ s a -> s{_cEntityName = a})
+
+-- | The status of the client buyer.
+cStatus :: Lens' Client (Maybe ClientStatus)
+cStatus = lens _cStatus (\ s a -> s{_cStatus = a})
+
+-- | The type of the client entity: \`ADVERTISER\`, \`BRAND\`, or \`AGENCY\`.
+cEntityType :: Lens' Client (Maybe ClientEntityType)
+cEntityType
+  = lens _cEntityType (\ s a -> s{_cEntityType = a})
+
+-- | The role which is assigned to the client buyer. Each role implies a set
+-- of permissions granted to the client. Must be one of
+-- \`CLIENT_DEAL_VIEWER\`, \`CLIENT_DEAL_NEGOTIATOR\` or
+-- \`CLIENT_DEAL_APPROVER\`.
+cRole :: Lens' Client (Maybe ClientRole)
+cRole = lens _cRole (\ s a -> s{_cRole = a})
+
+-- | Whether the client buyer will be visible to sellers.
+cVisibleToSeller :: Lens' Client (Maybe Bool)
+cVisibleToSeller
+  = lens _cVisibleToSeller
+      (\ s a -> s{_cVisibleToSeller = a})
+
+-- | Optional arbitrary unique identifier of this client buyer from the
+-- standpoint of its Ad Exchange sponsor buyer. This field can be used to
+-- associate a client buyer with the identifier in the namespace of its
+-- sponsor buyer, lookup client buyers by that identifier and verify
+-- whether an Ad Exchange counterpart of a given client buyer already
+-- exists. If present, must be unique among all the client buyers for its
+-- Ad Exchange sponsor buyer.
+cPartnerClientId :: Lens' Client (Maybe Text)
+cPartnerClientId
+  = lens _cPartnerClientId
+      (\ s a -> s{_cPartnerClientId = a})
+
+-- | The globally-unique numerical ID of the client. The value of this field
+-- is ignored in create and update operations.
+cClientAccountId :: Lens' Client (Maybe Int64)
+cClientAccountId
+  = lens _cClientAccountId
+      (\ s a -> s{_cClientAccountId = a})
+      . mapping _Coerce
+
+-- | Name used to represent this client to publishers. You may have multiple
+-- clients that map to the same entity, but for each client the combination
+-- of \`clientName\` and entity must be unique. You can specify this field
+-- as empty.
+cClientName :: Lens' Client (Maybe Text)
+cClientName
+  = lens _cClientName (\ s a -> s{_cClientName = a})
+
+-- | Numerical identifier of the client entity. The entity can be an
+-- advertiser, a brand, or an agency. This identifier is unique among all
+-- the entities with the same type. A list of all known advertisers with
+-- their identifiers is available in the
+-- [advertisers.txt](https:\/\/storage.googleapis.com\/adx-rtb-dictionaries\/advertisers.txt)
+-- file. A list of all known brands with their identifiers is available in
+-- the
+-- [brands.txt](https:\/\/storage.googleapis.com\/adx-rtb-dictionaries\/brands.txt)
+-- file. A list of all known agencies with their identifiers is available
+-- in the
+-- [agencies.txt](https:\/\/storage.googleapis.com\/adx-rtb-dictionaries\/agencies.txt)
+-- file.
+cEntityId :: Lens' Client (Maybe Int64)
+cEntityId
+  = lens _cEntityId (\ s a -> s{_cEntityId = a}) .
+      mapping _Coerce
+
+instance FromJSON Client where
+        parseJSON
+          = withObject "Client"
+              (\ o ->
+                 Client' <$>
+                   (o .:? "entityName") <*> (o .:? "status") <*>
+                     (o .:? "entityType")
+                     <*> (o .:? "role")
+                     <*> (o .:? "visibleToSeller")
+                     <*> (o .:? "partnerClientId")
+                     <*> (o .:? "clientAccountId")
+                     <*> (o .:? "clientName")
+                     <*> (o .:? "entityId"))
+
+instance ToJSON Client where
+        toJSON Client'{..}
+          = object
+              (catMaybes
+                 [("entityName" .=) <$> _cEntityName,
+                  ("status" .=) <$> _cStatus,
+                  ("entityType" .=) <$> _cEntityType,
+                  ("role" .=) <$> _cRole,
+                  ("visibleToSeller" .=) <$> _cVisibleToSeller,
+                  ("partnerClientId" .=) <$> _cPartnerClientId,
+                  ("clientAccountId" .=) <$> _cClientAccountId,
+                  ("clientName" .=) <$> _cClientName,
+                  ("entityId" .=) <$> _cEntityId])
+
+-- | \'OutputOnly The reason and details for a disapproval.
+--
+-- /See:/ 'disApproval' smart constructor.
+data DisApproval = DisApproval'
+    { _daReason  :: !(Maybe DisApprovalReason)
+    , _daDetails :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DisApproval' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'daReason'
+--
+-- * 'daDetails'
+disApproval
+    :: DisApproval
+disApproval =
+    DisApproval'
+    { _daReason = Nothing
+    , _daDetails = Nothing
+    }
+
+-- | The categorized reason for disapproval.
+daReason :: Lens' DisApproval (Maybe DisApprovalReason)
+daReason = lens _daReason (\ s a -> s{_daReason = a})
+
+-- | Additional details about the reason for disapproval.
+daDetails :: Lens' DisApproval [Text]
+daDetails
+  = lens _daDetails (\ s a -> s{_daDetails = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON DisApproval where
+        parseJSON
+          = withObject "DisApproval"
+              (\ o ->
+                 DisApproval' <$>
+                   (o .:? "reason") <*> (o .:? "details" .!= mempty))
+
+instance ToJSON DisApproval where
+        toJSON DisApproval'{..}
+          = object
+              (catMaybes
+                 [("reason" .=) <$> _daReason,
+                  ("details" .=) <$> _daDetails])
diff --git a/gen/Network/Google/AdExchangeBuyer2/Types/Sum.hs b/gen/Network/Google/AdExchangeBuyer2/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/AdExchangeBuyer2/Types/Sum.hs
@@ -0,0 +1,2123 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE LambdaCase         #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.AdExchangeBuyer2.Types.Sum
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.AdExchangeBuyer2.Types.Sum where
+
+import           Network.Google.Prelude hiding (Bytes)
+
+-- | Specifies the creative source for programmatic deals. PUBLISHER means
+-- creative is provided by seller and ADVERTISER means creative is provided
+-- by buyer. \'OutputOnly
+data DealProgrammaticCreativeSource
+    = ProgrammaticCreativeSourceUnspecified
+      -- ^ @PROGRAMMATIC_CREATIVE_SOURCE_UNSPECIFIED@
+      -- A placeholder for an undefined programmatic creative source.
+    | Advertiser
+      -- ^ @ADVERTISER@
+      -- The advertiser provides the creatives.
+    | Publisher
+      -- ^ @PUBLISHER@
+      -- The publisher provides the creatives to be served.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DealProgrammaticCreativeSource
+
+instance FromHttpApiData DealProgrammaticCreativeSource where
+    parseQueryParam = \case
+        "PROGRAMMATIC_CREATIVE_SOURCE_UNSPECIFIED" -> Right ProgrammaticCreativeSourceUnspecified
+        "ADVERTISER" -> Right Advertiser
+        "PUBLISHER" -> Right Publisher
+        x -> Left ("Unable to parse DealProgrammaticCreativeSource from: " <> x)
+
+instance ToHttpApiData DealProgrammaticCreativeSource where
+    toQueryParam = \case
+        ProgrammaticCreativeSourceUnspecified -> "PROGRAMMATIC_CREATIVE_SOURCE_UNSPECIFIED"
+        Advertiser -> "ADVERTISER"
+        Publisher -> "PUBLISHER"
+
+instance FromJSON DealProgrammaticCreativeSource where
+    parseJSON = parseJSONText "DealProgrammaticCreativeSource"
+
+instance ToJSON DealProgrammaticCreativeSource where
+    toJSON = toJSONText
+
+-- | Specifies the creative pre-approval policy. \'OutputOnly
+data DealCreativePreApprovalPolicy
+    = CreativePreApprovalPolicyUnspecified
+      -- ^ @CREATIVE_PRE_APPROVAL_POLICY_UNSPECIFIED@
+      -- A placeholder for an undefined creative pre-approval policy.
+    | SellerPreApprovalRequired
+      -- ^ @SELLER_PRE_APPROVAL_REQUIRED@
+      -- The seller needs to approve each creative before it can serve.
+    | SellerPreApprovalNotRequired
+      -- ^ @SELLER_PRE_APPROVAL_NOT_REQUIRED@
+      -- The seller does not need to approve each creative before it can serve.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DealCreativePreApprovalPolicy
+
+instance FromHttpApiData DealCreativePreApprovalPolicy where
+    parseQueryParam = \case
+        "CREATIVE_PRE_APPROVAL_POLICY_UNSPECIFIED" -> Right CreativePreApprovalPolicyUnspecified
+        "SELLER_PRE_APPROVAL_REQUIRED" -> Right SellerPreApprovalRequired
+        "SELLER_PRE_APPROVAL_NOT_REQUIRED" -> Right SellerPreApprovalNotRequired
+        x -> Left ("Unable to parse DealCreativePreApprovalPolicy from: " <> x)
+
+instance ToHttpApiData DealCreativePreApprovalPolicy where
+    toQueryParam = \case
+        CreativePreApprovalPolicyUnspecified -> "CREATIVE_PRE_APPROVAL_POLICY_UNSPECIFIED"
+        SellerPreApprovalRequired -> "SELLER_PRE_APPROVAL_REQUIRED"
+        SellerPreApprovalNotRequired -> "SELLER_PRE_APPROVAL_NOT_REQUIRED"
+
+instance FromJSON DealCreativePreApprovalPolicy where
+    parseJSON = parseJSONText "DealCreativePreApprovalPolicy"
+
+instance ToJSON DealCreativePreApprovalPolicy where
+    toJSON = toJSONText
+
+-- | Specified the creative blocking levels to be applied. \'OutputOnly
+data DeliveryControlCreativeBlockingLevel
+    = CreativeBlockingLevelUnspecified
+      -- ^ @CREATIVE_BLOCKING_LEVEL_UNSPECIFIED@
+      -- A placeholder for an undefined creative blocking level.
+    | PublisherBlockingRules
+      -- ^ @PUBLISHER_BLOCKING_RULES@
+      -- Publisher blocking rules will be applied.
+    | AdxPolicyBlockingOnly
+      -- ^ @ADX_POLICY_BLOCKING_ONLY@
+      -- The Ad Exchange policy blocking rules will be applied.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DeliveryControlCreativeBlockingLevel
+
+instance FromHttpApiData DeliveryControlCreativeBlockingLevel where
+    parseQueryParam = \case
+        "CREATIVE_BLOCKING_LEVEL_UNSPECIFIED" -> Right CreativeBlockingLevelUnspecified
+        "PUBLISHER_BLOCKING_RULES" -> Right PublisherBlockingRules
+        "ADX_POLICY_BLOCKING_ONLY" -> Right AdxPolicyBlockingOnly
+        x -> Left ("Unable to parse DeliveryControlCreativeBlockingLevel from: " <> x)
+
+instance ToHttpApiData DeliveryControlCreativeBlockingLevel where
+    toQueryParam = \case
+        CreativeBlockingLevelUnspecified -> "CREATIVE_BLOCKING_LEVEL_UNSPECIFIED"
+        PublisherBlockingRules -> "PUBLISHER_BLOCKING_RULES"
+        AdxPolicyBlockingOnly -> "ADX_POLICY_BLOCKING_ONLY"
+
+instance FromJSON DeliveryControlCreativeBlockingLevel where
+    parseJSON = parseJSONText "DeliveryControlCreativeBlockingLevel"
+
+instance ToJSON DeliveryControlCreativeBlockingLevel where
+    toJSON = toJSONText
+
+-- | The current state of the proposal. \'OutputOnly
+data ProposalProposalState
+    = ProposalStateUnspecified
+      -- ^ @PROPOSAL_STATE_UNSPECIFIED@
+      -- A placeholder for an undefined proposal state.
+    | Proposed
+      -- ^ @PROPOSED@
+      -- The proposal is under negotiation or renegotiation.
+    | BuyerAccepted
+      -- ^ @BUYER_ACCEPTED@
+      -- The proposal has been accepted by the buyer.
+    | SellerAccepted
+      -- ^ @SELLER_ACCEPTED@
+      -- The proposal has been accepted by the seller.
+    | Canceled
+      -- ^ @CANCELED@
+      -- The negotiations on the proposal were canceled and the proposal was
+      -- never finalized.
+    | Finalized
+      -- ^ @FINALIZED@
+      -- The proposal is finalized. During renegotiation, the proposal may not be
+      -- in this state.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ProposalProposalState
+
+instance FromHttpApiData ProposalProposalState where
+    parseQueryParam = \case
+        "PROPOSAL_STATE_UNSPECIFIED" -> Right ProposalStateUnspecified
+        "PROPOSED" -> Right Proposed
+        "BUYER_ACCEPTED" -> Right BuyerAccepted
+        "SELLER_ACCEPTED" -> Right SellerAccepted
+        "CANCELED" -> Right Canceled
+        "FINALIZED" -> Right Finalized
+        x -> Left ("Unable to parse ProposalProposalState from: " <> x)
+
+instance ToHttpApiData ProposalProposalState where
+    toQueryParam = \case
+        ProposalStateUnspecified -> "PROPOSAL_STATE_UNSPECIFIED"
+        Proposed -> "PROPOSED"
+        BuyerAccepted -> "BUYER_ACCEPTED"
+        SellerAccepted -> "SELLER_ACCEPTED"
+        Canceled -> "CANCELED"
+        Finalized -> "FINALIZED"
+
+instance FromJSON ProposalProposalState where
+    parseJSON = parseJSONText "ProposalProposalState"
+
+instance ToJSON ProposalProposalState where
+    toJSON = toJSONText
+
+-- | The syndication product associated with the deal.
+data ProductSyndicationProduct
+    = SyndicationProductUnspecified
+      -- ^ @SYNDICATION_PRODUCT_UNSPECIFIED@
+      -- A placeholder for an undefined syndication product.
+    | Content
+      -- ^ @CONTENT@
+      -- This typically represents a web page.
+    | Mobile
+      -- ^ @MOBILE@
+      -- This represents a mobile property.
+    | Video
+      -- ^ @VIDEO@
+      -- This represents video ad formats.
+    | Games
+      -- ^ @GAMES@
+      -- This represents ads shown within games.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ProductSyndicationProduct
+
+instance FromHttpApiData ProductSyndicationProduct where
+    parseQueryParam = \case
+        "SYNDICATION_PRODUCT_UNSPECIFIED" -> Right SyndicationProductUnspecified
+        "CONTENT" -> Right Content
+        "MOBILE" -> Right Mobile
+        "VIDEO" -> Right Video
+        "GAMES" -> Right Games
+        x -> Left ("Unable to parse ProductSyndicationProduct from: " <> x)
+
+instance ToHttpApiData ProductSyndicationProduct where
+    toQueryParam = \case
+        SyndicationProductUnspecified -> "SYNDICATION_PRODUCT_UNSPECIFIED"
+        Content -> "CONTENT"
+        Mobile -> "MOBILE"
+        Video -> "VIDEO"
+        Games -> "GAMES"
+
+instance FromJSON ProductSyndicationProduct where
+    parseJSON = parseJSONText "ProductSyndicationProduct"
+
+instance ToJSON ProductSyndicationProduct where
+    toJSON = toJSONText
+
+-- | Skippable video ads allow viewers to skip ads after 5 seconds.
+data CreativeRestrictionsSkippableAdType
+    = SkippableAdTypeUnspecified
+      -- ^ @SKIPPABLE_AD_TYPE_UNSPECIFIED@
+      -- A placeholder for an undefined skippable ad type.
+    | Skippable
+      -- ^ @SKIPPABLE@
+      -- This video ad can be skipped after 5 seconds.
+    | InstreamSelect
+      -- ^ @INSTREAM_SELECT@
+      -- This video ad can be skipped after 5 seconds, and is counted as engaged
+      -- view after 30 seconds. The creative is hosted on YouTube only, and
+      -- viewcount of the YouTube video increments after the engaged view.
+    | NotSkippable
+      -- ^ @NOT_SKIPPABLE@
+      -- This video ad is not skippable.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeRestrictionsSkippableAdType
+
+instance FromHttpApiData CreativeRestrictionsSkippableAdType where
+    parseQueryParam = \case
+        "SKIPPABLE_AD_TYPE_UNSPECIFIED" -> Right SkippableAdTypeUnspecified
+        "SKIPPABLE" -> Right Skippable
+        "INSTREAM_SELECT" -> Right InstreamSelect
+        "NOT_SKIPPABLE" -> Right NotSkippable
+        x -> Left ("Unable to parse CreativeRestrictionsSkippableAdType from: " <> x)
+
+instance ToHttpApiData CreativeRestrictionsSkippableAdType where
+    toQueryParam = \case
+        SkippableAdTypeUnspecified -> "SKIPPABLE_AD_TYPE_UNSPECIFIED"
+        Skippable -> "SKIPPABLE"
+        InstreamSelect -> "INSTREAM_SELECT"
+        NotSkippable -> "NOT_SKIPPABLE"
+
+instance FromJSON CreativeRestrictionsSkippableAdType where
+    parseJSON = parseJSONText "CreativeRestrictionsSkippableAdType"
+
+instance ToJSON CreativeRestrictionsSkippableAdType where
+    toJSON = toJSONText
+
+-- | The status of the creative in this context (for example, it has been
+-- explicitly disapproved or is pending review).
+data ServingRestrictionStatus
+    = SRSStatusUnspecified
+      -- ^ @STATUS_UNSPECIFIED@
+      -- The status is not known.
+    | SRSDisApproval
+      -- ^ @DISAPPROVAL@
+      -- The ad was disapproved in this context.
+    | SRSPendingReview
+      -- ^ @PENDING_REVIEW@
+      -- The ad is pending review in this context.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ServingRestrictionStatus
+
+instance FromHttpApiData ServingRestrictionStatus where
+    parseQueryParam = \case
+        "STATUS_UNSPECIFIED" -> Right SRSStatusUnspecified
+        "DISAPPROVAL" -> Right SRSDisApproval
+        "PENDING_REVIEW" -> Right SRSPendingReview
+        x -> Left ("Unable to parse ServingRestrictionStatus from: " <> x)
+
+instance ToHttpApiData ServingRestrictionStatus where
+    toQueryParam = \case
+        SRSStatusUnspecified -> "STATUS_UNSPECIFIED"
+        SRSDisApproval -> "DISAPPROVAL"
+        SRSPendingReview -> "PENDING_REVIEW"
+
+instance FromJSON ServingRestrictionStatus where
+    parseJSON = parseJSONText "ServingRestrictionStatus"
+
+instance ToJSON ServingRestrictionStatus where
+    toJSON = toJSONText
+
+-- | The categorized reason for disapproval.
+data DisApprovalReason
+    = LengthOfImageAnimation
+      -- ^ @LENGTH_OF_IMAGE_ANIMATION@
+      -- The length of the image animation is longer than allowed.
+    | BrokenURL
+      -- ^ @BROKEN_URL@
+      -- The click through URL doesn\'t work properly.
+    | MediaNotFunctional
+      -- ^ @MEDIA_NOT_FUNCTIONAL@
+      -- Something is wrong with the creative itself.
+    | InvalidFourthPartyCall
+      -- ^ @INVALID_FOURTH_PARTY_CALL@
+      -- The ad makes a fourth party call to an unapproved vendor.
+    | IncorrectRemarketingDeclaration
+      -- ^ @INCORRECT_REMARKETING_DECLARATION@
+      -- The ad targets consumers using remarketing lists and\/or collects data
+      -- for subsequent use in retargeting, but does not correctly declare that
+      -- use.
+    | LandingPageError
+      -- ^ @LANDING_PAGE_ERROR@
+      -- Clicking on the ad leads to an error page.
+    | AdSizeDoesNotMatchAdSlot
+      -- ^ @AD_SIZE_DOES_NOT_MATCH_AD_SLOT@
+      -- The ad size when rendered does not match the declaration.
+    | NoBOrder
+      -- ^ @NO_BORDER@
+      -- Ads with a white background require a border, which was missing.
+    | FourthPartyBrowserCookies
+      -- ^ @FOURTH_PARTY_BROWSER_COOKIES@
+      -- The creative attempts to set cookies from a fourth party that is not
+      -- certified.
+    | LsoObjects
+      -- ^ @LSO_OBJECTS@
+      -- The creative sets an LSO object.
+    | BlankCreative
+      -- ^ @BLANK_CREATIVE@
+      -- The ad serves a blank.
+    | DestinationURLsUndeclared
+      -- ^ @DESTINATION_URLS_UNDECLARED@
+      -- The ad uses rotation, but not all destination URLs were declared.
+    | ProblemWithClickMacro
+      -- ^ @PROBLEM_WITH_CLICK_MACRO@
+      -- There is a problem with the way the click macro is used.
+    | IncorrectAdTechnologyDeclaration
+      -- ^ @INCORRECT_AD_TECHNOLOGY_DECLARATION@
+      -- The ad technology declaration is not accurate.
+    | IncorrectDestinationURLDeclaration
+      -- ^ @INCORRECT_DESTINATION_URL_DECLARATION@
+      -- The actual destination URL does not match the declared destination URL.
+    | ExpandableIncorrectDirection
+      -- ^ @EXPANDABLE_INCORRECT_DIRECTION@
+      -- The declared expanding direction does not match the actual direction.
+    | ExpandableDirectionNotSupported
+      -- ^ @EXPANDABLE_DIRECTION_NOT_SUPPORTED@
+      -- The ad does not expand in a supported direction.
+    | ExpandableInvalidVendor
+      -- ^ @EXPANDABLE_INVALID_VENDOR@
+      -- The ad uses an expandable vendor that is not supported.
+    | ExpandableFunctionality
+      -- ^ @EXPANDABLE_FUNCTIONALITY@
+      -- There was an issue with the expandable ad.
+    | VideoInvalidVendor
+      -- ^ @VIDEO_INVALID_VENDOR@
+      -- The ad uses a video vendor that is not supported.
+    | VideoUnsupportedLength
+      -- ^ @VIDEO_UNSUPPORTED_LENGTH@
+      -- The length of the video ad is not supported.
+    | VideoUnsupportedFormat
+      -- ^ @VIDEO_UNSUPPORTED_FORMAT@
+      -- The format of the video ad is not supported.
+    | VideoFunctionality
+      -- ^ @VIDEO_FUNCTIONALITY@
+      -- There was an issue with the video ad.
+    | LandingPageDisabled
+      -- ^ @LANDING_PAGE_DISABLED@
+      -- The landing page does not conform to Ad Exchange policy.
+    | MalwareSuspected
+      -- ^ @MALWARE_SUSPECTED@
+      -- The ad or the landing page may contain malware.
+    | AdultImageOrVideo
+      -- ^ @ADULT_IMAGE_OR_VIDEO@
+      -- The ad contains adult images or video content.
+    | InaccurateAdText
+      -- ^ @INACCURATE_AD_TEXT@
+      -- The ad contains text that is unclear or inaccurate.
+    | CounterfeitDesignerGoods
+      -- ^ @COUNTERFEIT_DESIGNER_GOODS@
+      -- The ad promotes counterfeit designer goods.
+    | PopUp
+      -- ^ @POP_UP@
+      -- The ad causes a popup window to appear.
+    | InvalidRtbProtocolUsage
+      -- ^ @INVALID_RTB_PROTOCOL_USAGE@
+      -- The creative does not follow policies set for the RTB protocol.
+    | RawIPAddressInSnippet
+      -- ^ @RAW_IP_ADDRESS_IN_SNIPPET@
+      -- The ad contains a URL that uses a numeric IP address for the domain.
+    | UnacceptableContentSoftware
+      -- ^ @UNACCEPTABLE_CONTENT_SOFTWARE@
+      -- The ad or landing page contains unacceptable content because it
+      -- initiated a software or executable download.
+    | UnauthorizedCookieOnGoogleDomain
+      -- ^ @UNAUTHORIZED_COOKIE_ON_GOOGLE_DOMAIN@
+      -- The ad set an unauthorized cookie on a Google domain.
+    | UndeclaredFlashObjects
+      -- ^ @UNDECLARED_FLASH_OBJECTS@
+      -- Flash content found when no flash was declared.
+    | InvalidSSLDeclaration
+      -- ^ @INVALID_SSL_DECLARATION@
+      -- SSL support declared but not working correctly.
+    | DirectDownloadInAd
+      -- ^ @DIRECT_DOWNLOAD_IN_AD@
+      -- Rich Media - Direct Download in Ad (ex. PDF download).
+    | MaximumDownloadSizeExceeded
+      -- ^ @MAXIMUM_DOWNLOAD_SIZE_EXCEEDED@
+      -- Maximum download size exceeded.
+    | DestinationURLSiteNotCrawlable
+      -- ^ @DESTINATION_URL_SITE_NOT_CRAWLABLE@
+      -- Bad Destination URL: Site Not Crawlable.
+    | BadURLLegalDisApproval
+      -- ^ @BAD_URL_LEGAL_DISAPPROVAL@
+      -- Bad URL: Legal disapproval.
+    | PharmaGamblingAlcoholNotAllowed
+      -- ^ @PHARMA_GAMBLING_ALCOHOL_NOT_ALLOWED@
+      -- Pharmaceuticals, Gambling, Alcohol not allowed and at least one was
+      -- detected.
+    | DynamicDNSAtDestinationURL
+      -- ^ @DYNAMIC_DNS_AT_DESTINATION_URL@
+      -- Dynamic DNS at Destination URL.
+    | PoorImageOrVideoQuality
+      -- ^ @POOR_IMAGE_OR_VIDEO_QUALITY@
+      -- Poor Image \/ Video Quality.
+    | UnacceptableImageContent
+      -- ^ @UNACCEPTABLE_IMAGE_CONTENT@
+      -- For example, Image Trick to Click.
+    | IncorrectImageLayout
+      -- ^ @INCORRECT_IMAGE_LAYOUT@
+      -- Incorrect Image Layout.
+    | IrrelevantImageOrVideo
+      -- ^ @IRRELEVANT_IMAGE_OR_VIDEO@
+      -- Irrelevant Image \/ Video.
+    | DestinationSiteDoesNotAllowGoingBack
+      -- ^ @DESTINATION_SITE_DOES_NOT_ALLOW_GOING_BACK@
+      -- Broken back button.
+    | MisleadingClaimsInAd
+      -- ^ @MISLEADING_CLAIMS_IN_AD@
+      -- Misleading\/Inaccurate claims in ads.
+    | RestrictedProducts
+      -- ^ @RESTRICTED_PRODUCTS@
+      -- Restricted Products.
+    | UnacceptableContent
+      -- ^ @UNACCEPTABLE_CONTENT@
+      -- Unacceptable content. For example, malware.
+    | AutomatedAdClicking
+      -- ^ @AUTOMATED_AD_CLICKING@
+      -- The ad automatically redirects to the destination site without a click,
+      -- or reports a click when none were made.
+    | InvalidURLProtocol
+      -- ^ @INVALID_URL_PROTOCOL@
+      -- The ad uses URL protocols that do not exist or are not allowed on AdX.
+    | UndeclaredRestrictedContent
+      -- ^ @UNDECLARED_RESTRICTED_CONTENT@
+      -- Restricted content (for example, alcohol) was found in the ad but not
+      -- declared.
+    | InvalidRemarketingListUsage
+      -- ^ @INVALID_REMARKETING_LIST_USAGE@
+      -- Violation of the remarketing list policy.
+    | DestinationSiteNotCrawlableRobotsTxt
+      -- ^ @DESTINATION_SITE_NOT_CRAWLABLE_ROBOTS_TXT@
+      -- The destination site\'s robot.txt file prevents it from being crawled.
+    | ClickToDownloadNotAnApp
+      -- ^ @CLICK_TO_DOWNLOAD_NOT_AN_APP@
+      -- Click to download must link to an app.
+    | InaccurateReviewExtension
+      -- ^ @INACCURATE_REVIEW_EXTENSION@
+      -- A review extension must be an accurate review.
+    | SexuallyExplicitContent
+      -- ^ @SEXUALLY_EXPLICIT_CONTENT@
+      -- Sexually explicit content.
+    | GainingAnUnfairAdvantage
+      -- ^ @GAINING_AN_UNFAIR_ADVANTAGE@
+      -- The ad tries to gain an unfair traffic advantage.
+    | GamingTheGoogleNetwork
+      -- ^ @GAMING_THE_GOOGLE_NETWORK@
+      -- The ad tries to circumvent Google\'s advertising systems.
+    | DangerousProductsKnives
+      -- ^ @DANGEROUS_PRODUCTS_KNIVES@
+      -- The ad promotes dangerous knives.
+    | DangerousProductsExplosives
+      -- ^ @DANGEROUS_PRODUCTS_EXPLOSIVES@
+      -- The ad promotes explosives.
+    | DangerousProductsGuns
+      -- ^ @DANGEROUS_PRODUCTS_GUNS@
+      -- The ad promotes guns & parts.
+    | DangerousProductsDrugs
+      -- ^ @DANGEROUS_PRODUCTS_DRUGS@
+      -- The ad promotes recreational drugs\/services & related equipment.
+    | DangerousProductsTobacco
+      -- ^ @DANGEROUS_PRODUCTS_TOBACCO@
+      -- The ad promotes tobacco products\/services & related equipment.
+    | DangerousProductsWeapons
+      -- ^ @DANGEROUS_PRODUCTS_WEAPONS@
+      -- The ad promotes weapons.
+    | UnclearOrIrrelevantAd
+      -- ^ @UNCLEAR_OR_IRRELEVANT_AD@
+      -- The ad is unclear or irrelevant to the destination site.
+    | ProfessionalStandards
+      -- ^ @PROFESSIONAL_STANDARDS@
+      -- The ad does not meet professional standards.
+    | DysfunctionalPromotion
+      -- ^ @DYSFUNCTIONAL_PROMOTION@
+      -- The promotion is unnecessarily difficult to navigate.
+    | InvalidInterestBasedAd
+      -- ^ @INVALID_INTEREST_BASED_AD@
+      -- Violation of Google\'s policy for interest-based ads.
+    | MisuseOfPersonalInformation
+      -- ^ @MISUSE_OF_PERSONAL_INFORMATION@
+      -- Misuse of personal information.
+    | OmissionOfRelevantInformation
+      -- ^ @OMISSION_OF_RELEVANT_INFORMATION@
+      -- Omission of relevant information.
+    | UnavailablePromotions
+      -- ^ @UNAVAILABLE_PROMOTIONS@
+      -- Unavailable promotions.
+    | MisleadingPromotions
+      -- ^ @MISLEADING_PROMOTIONS@
+      -- Misleading or unrealistic promotions.
+    | InAppropriateContent
+      -- ^ @INAPPROPRIATE_CONTENT@
+      -- Offensive or inappropriate content.
+    | SensitiveEvents
+      -- ^ @SENSITIVE_EVENTS@
+      -- Capitalizing on sensitive events.
+    | ShockingContent
+      -- ^ @SHOCKING_CONTENT@
+      -- Shocking content.
+    | EnablingDishonestBehavior
+      -- ^ @ENABLING_DISHONEST_BEHAVIOR@
+      -- Products & Services that enable dishonest behavior.
+    | TechnicalRequirements
+      -- ^ @TECHNICAL_REQUIREMENTS@
+      -- The ad does not meet technical requirements.
+    | RestrictedPoliticalContent
+      -- ^ @RESTRICTED_POLITICAL_CONTENT@
+      -- Restricted political content.
+    | UnsupportedContent
+      -- ^ @UNSUPPORTED_CONTENT@
+      -- Unsupported content.
+    | InvalidBiddingMethod
+      -- ^ @INVALID_BIDDING_METHOD@
+      -- Invalid bidding method.
+    | VideoTooLong
+      -- ^ @VIDEO_TOO_LONG@
+      -- Video length exceeds limits.
+    | ViolatesJapanesePharmacyLaw
+      -- ^ @VIOLATES_JAPANESE_PHARMACY_LAW@
+      -- Unacceptable content: Japanese healthcare.
+    | UnaccreditedPetPharmacy
+      -- ^ @UNACCREDITED_PET_PHARMACY@
+      -- Online pharmacy ID required.
+    | Abortion
+      -- ^ @ABORTION@
+      -- Unacceptable content: Abortion.
+    | Contraceptives
+      -- ^ @CONTRACEPTIVES@
+      -- Unacceptable content: Birth control.
+    | NeedCertificatesToAdvertiseInChina
+      -- ^ @NEED_CERTIFICATES_TO_ADVERTISE_IN_CHINA@
+      -- Restricted in China.
+    | KcdspRegistration
+      -- ^ @KCDSP_REGISTRATION@
+      -- Unacceptable content: Korean healthcare.
+    | NotFamilySafe
+      -- ^ @NOT_FAMILY_SAFE@
+      -- Non-family safe or adult content.
+    | ClinicalTrialRecruitment
+      -- ^ @CLINICAL_TRIAL_RECRUITMENT@
+      -- Clinical trial recruitment.
+    | MaximumNumberOfHTTPCallsExceeded
+      -- ^ @MAXIMUM_NUMBER_OF_HTTP_CALLS_EXCEEDED@
+      -- Maximum number of HTTP calls exceeded.
+    | MaximumNumberOfCookiesExceeded
+      -- ^ @MAXIMUM_NUMBER_OF_COOKIES_EXCEEDED@
+      -- Maximum number of cookies exceeded.
+    | PersonalLoans
+      -- ^ @PERSONAL_LOANS@
+      -- Financial service ad does not adhere to specifications.
+    | UnsupportedFlashContent
+      -- ^ @UNSUPPORTED_FLASH_CONTENT@
+      -- Flash content was found in an unsupported context.
+    | MisuseByOmidScript
+      -- ^ @MISUSE_BY_OMID_SCRIPT@
+      -- Misuse by an Open Measurement SDK script.
+    | NonWhiteListedOmidVendor
+      -- ^ @NON_WHITELISTED_OMID_VENDOR@
+      -- Use of an Open Measurement SDK vendor not on approved whitelist.
+    | DestinationExperience
+      -- ^ @DESTINATION_EXPERIENCE@
+      -- Unacceptable landing page.
+    | UnsupportedLanguage
+      -- ^ @UNSUPPORTED_LANGUAGE@
+      -- Unsupported language.
+    | NonSSLCompliant
+      -- ^ @NON_SSL_COMPLIANT@
+      -- Non-SSL compliant.
+    | TemporaryPause
+      -- ^ @TEMPORARY_PAUSE@
+      -- Temporary pausing of creative.
+    | BailBonds
+      -- ^ @BAIL_BONDS@
+      -- Promotes services related to bail bonds.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DisApprovalReason
+
+instance FromHttpApiData DisApprovalReason where
+    parseQueryParam = \case
+        "LENGTH_OF_IMAGE_ANIMATION" -> Right LengthOfImageAnimation
+        "BROKEN_URL" -> Right BrokenURL
+        "MEDIA_NOT_FUNCTIONAL" -> Right MediaNotFunctional
+        "INVALID_FOURTH_PARTY_CALL" -> Right InvalidFourthPartyCall
+        "INCORRECT_REMARKETING_DECLARATION" -> Right IncorrectRemarketingDeclaration
+        "LANDING_PAGE_ERROR" -> Right LandingPageError
+        "AD_SIZE_DOES_NOT_MATCH_AD_SLOT" -> Right AdSizeDoesNotMatchAdSlot
+        "NO_BORDER" -> Right NoBOrder
+        "FOURTH_PARTY_BROWSER_COOKIES" -> Right FourthPartyBrowserCookies
+        "LSO_OBJECTS" -> Right LsoObjects
+        "BLANK_CREATIVE" -> Right BlankCreative
+        "DESTINATION_URLS_UNDECLARED" -> Right DestinationURLsUndeclared
+        "PROBLEM_WITH_CLICK_MACRO" -> Right ProblemWithClickMacro
+        "INCORRECT_AD_TECHNOLOGY_DECLARATION" -> Right IncorrectAdTechnologyDeclaration
+        "INCORRECT_DESTINATION_URL_DECLARATION" -> Right IncorrectDestinationURLDeclaration
+        "EXPANDABLE_INCORRECT_DIRECTION" -> Right ExpandableIncorrectDirection
+        "EXPANDABLE_DIRECTION_NOT_SUPPORTED" -> Right ExpandableDirectionNotSupported
+        "EXPANDABLE_INVALID_VENDOR" -> Right ExpandableInvalidVendor
+        "EXPANDABLE_FUNCTIONALITY" -> Right ExpandableFunctionality
+        "VIDEO_INVALID_VENDOR" -> Right VideoInvalidVendor
+        "VIDEO_UNSUPPORTED_LENGTH" -> Right VideoUnsupportedLength
+        "VIDEO_UNSUPPORTED_FORMAT" -> Right VideoUnsupportedFormat
+        "VIDEO_FUNCTIONALITY" -> Right VideoFunctionality
+        "LANDING_PAGE_DISABLED" -> Right LandingPageDisabled
+        "MALWARE_SUSPECTED" -> Right MalwareSuspected
+        "ADULT_IMAGE_OR_VIDEO" -> Right AdultImageOrVideo
+        "INACCURATE_AD_TEXT" -> Right InaccurateAdText
+        "COUNTERFEIT_DESIGNER_GOODS" -> Right CounterfeitDesignerGoods
+        "POP_UP" -> Right PopUp
+        "INVALID_RTB_PROTOCOL_USAGE" -> Right InvalidRtbProtocolUsage
+        "RAW_IP_ADDRESS_IN_SNIPPET" -> Right RawIPAddressInSnippet
+        "UNACCEPTABLE_CONTENT_SOFTWARE" -> Right UnacceptableContentSoftware
+        "UNAUTHORIZED_COOKIE_ON_GOOGLE_DOMAIN" -> Right UnauthorizedCookieOnGoogleDomain
+        "UNDECLARED_FLASH_OBJECTS" -> Right UndeclaredFlashObjects
+        "INVALID_SSL_DECLARATION" -> Right InvalidSSLDeclaration
+        "DIRECT_DOWNLOAD_IN_AD" -> Right DirectDownloadInAd
+        "MAXIMUM_DOWNLOAD_SIZE_EXCEEDED" -> Right MaximumDownloadSizeExceeded
+        "DESTINATION_URL_SITE_NOT_CRAWLABLE" -> Right DestinationURLSiteNotCrawlable
+        "BAD_URL_LEGAL_DISAPPROVAL" -> Right BadURLLegalDisApproval
+        "PHARMA_GAMBLING_ALCOHOL_NOT_ALLOWED" -> Right PharmaGamblingAlcoholNotAllowed
+        "DYNAMIC_DNS_AT_DESTINATION_URL" -> Right DynamicDNSAtDestinationURL
+        "POOR_IMAGE_OR_VIDEO_QUALITY" -> Right PoorImageOrVideoQuality
+        "UNACCEPTABLE_IMAGE_CONTENT" -> Right UnacceptableImageContent
+        "INCORRECT_IMAGE_LAYOUT" -> Right IncorrectImageLayout
+        "IRRELEVANT_IMAGE_OR_VIDEO" -> Right IrrelevantImageOrVideo
+        "DESTINATION_SITE_DOES_NOT_ALLOW_GOING_BACK" -> Right DestinationSiteDoesNotAllowGoingBack
+        "MISLEADING_CLAIMS_IN_AD" -> Right MisleadingClaimsInAd
+        "RESTRICTED_PRODUCTS" -> Right RestrictedProducts
+        "UNACCEPTABLE_CONTENT" -> Right UnacceptableContent
+        "AUTOMATED_AD_CLICKING" -> Right AutomatedAdClicking
+        "INVALID_URL_PROTOCOL" -> Right InvalidURLProtocol
+        "UNDECLARED_RESTRICTED_CONTENT" -> Right UndeclaredRestrictedContent
+        "INVALID_REMARKETING_LIST_USAGE" -> Right InvalidRemarketingListUsage
+        "DESTINATION_SITE_NOT_CRAWLABLE_ROBOTS_TXT" -> Right DestinationSiteNotCrawlableRobotsTxt
+        "CLICK_TO_DOWNLOAD_NOT_AN_APP" -> Right ClickToDownloadNotAnApp
+        "INACCURATE_REVIEW_EXTENSION" -> Right InaccurateReviewExtension
+        "SEXUALLY_EXPLICIT_CONTENT" -> Right SexuallyExplicitContent
+        "GAINING_AN_UNFAIR_ADVANTAGE" -> Right GainingAnUnfairAdvantage
+        "GAMING_THE_GOOGLE_NETWORK" -> Right GamingTheGoogleNetwork
+        "DANGEROUS_PRODUCTS_KNIVES" -> Right DangerousProductsKnives
+        "DANGEROUS_PRODUCTS_EXPLOSIVES" -> Right DangerousProductsExplosives
+        "DANGEROUS_PRODUCTS_GUNS" -> Right DangerousProductsGuns
+        "DANGEROUS_PRODUCTS_DRUGS" -> Right DangerousProductsDrugs
+        "DANGEROUS_PRODUCTS_TOBACCO" -> Right DangerousProductsTobacco
+        "DANGEROUS_PRODUCTS_WEAPONS" -> Right DangerousProductsWeapons
+        "UNCLEAR_OR_IRRELEVANT_AD" -> Right UnclearOrIrrelevantAd
+        "PROFESSIONAL_STANDARDS" -> Right ProfessionalStandards
+        "DYSFUNCTIONAL_PROMOTION" -> Right DysfunctionalPromotion
+        "INVALID_INTEREST_BASED_AD" -> Right InvalidInterestBasedAd
+        "MISUSE_OF_PERSONAL_INFORMATION" -> Right MisuseOfPersonalInformation
+        "OMISSION_OF_RELEVANT_INFORMATION" -> Right OmissionOfRelevantInformation
+        "UNAVAILABLE_PROMOTIONS" -> Right UnavailablePromotions
+        "MISLEADING_PROMOTIONS" -> Right MisleadingPromotions
+        "INAPPROPRIATE_CONTENT" -> Right InAppropriateContent
+        "SENSITIVE_EVENTS" -> Right SensitiveEvents
+        "SHOCKING_CONTENT" -> Right ShockingContent
+        "ENABLING_DISHONEST_BEHAVIOR" -> Right EnablingDishonestBehavior
+        "TECHNICAL_REQUIREMENTS" -> Right TechnicalRequirements
+        "RESTRICTED_POLITICAL_CONTENT" -> Right RestrictedPoliticalContent
+        "UNSUPPORTED_CONTENT" -> Right UnsupportedContent
+        "INVALID_BIDDING_METHOD" -> Right InvalidBiddingMethod
+        "VIDEO_TOO_LONG" -> Right VideoTooLong
+        "VIOLATES_JAPANESE_PHARMACY_LAW" -> Right ViolatesJapanesePharmacyLaw
+        "UNACCREDITED_PET_PHARMACY" -> Right UnaccreditedPetPharmacy
+        "ABORTION" -> Right Abortion
+        "CONTRACEPTIVES" -> Right Contraceptives
+        "NEED_CERTIFICATES_TO_ADVERTISE_IN_CHINA" -> Right NeedCertificatesToAdvertiseInChina
+        "KCDSP_REGISTRATION" -> Right KcdspRegistration
+        "NOT_FAMILY_SAFE" -> Right NotFamilySafe
+        "CLINICAL_TRIAL_RECRUITMENT" -> Right ClinicalTrialRecruitment
+        "MAXIMUM_NUMBER_OF_HTTP_CALLS_EXCEEDED" -> Right MaximumNumberOfHTTPCallsExceeded
+        "MAXIMUM_NUMBER_OF_COOKIES_EXCEEDED" -> Right MaximumNumberOfCookiesExceeded
+        "PERSONAL_LOANS" -> Right PersonalLoans
+        "UNSUPPORTED_FLASH_CONTENT" -> Right UnsupportedFlashContent
+        "MISUSE_BY_OMID_SCRIPT" -> Right MisuseByOmidScript
+        "NON_WHITELISTED_OMID_VENDOR" -> Right NonWhiteListedOmidVendor
+        "DESTINATION_EXPERIENCE" -> Right DestinationExperience
+        "UNSUPPORTED_LANGUAGE" -> Right UnsupportedLanguage
+        "NON_SSL_COMPLIANT" -> Right NonSSLCompliant
+        "TEMPORARY_PAUSE" -> Right TemporaryPause
+        "BAIL_BONDS" -> Right BailBonds
+        x -> Left ("Unable to parse DisApprovalReason from: " <> x)
+
+instance ToHttpApiData DisApprovalReason where
+    toQueryParam = \case
+        LengthOfImageAnimation -> "LENGTH_OF_IMAGE_ANIMATION"
+        BrokenURL -> "BROKEN_URL"
+        MediaNotFunctional -> "MEDIA_NOT_FUNCTIONAL"
+        InvalidFourthPartyCall -> "INVALID_FOURTH_PARTY_CALL"
+        IncorrectRemarketingDeclaration -> "INCORRECT_REMARKETING_DECLARATION"
+        LandingPageError -> "LANDING_PAGE_ERROR"
+        AdSizeDoesNotMatchAdSlot -> "AD_SIZE_DOES_NOT_MATCH_AD_SLOT"
+        NoBOrder -> "NO_BORDER"
+        FourthPartyBrowserCookies -> "FOURTH_PARTY_BROWSER_COOKIES"
+        LsoObjects -> "LSO_OBJECTS"
+        BlankCreative -> "BLANK_CREATIVE"
+        DestinationURLsUndeclared -> "DESTINATION_URLS_UNDECLARED"
+        ProblemWithClickMacro -> "PROBLEM_WITH_CLICK_MACRO"
+        IncorrectAdTechnologyDeclaration -> "INCORRECT_AD_TECHNOLOGY_DECLARATION"
+        IncorrectDestinationURLDeclaration -> "INCORRECT_DESTINATION_URL_DECLARATION"
+        ExpandableIncorrectDirection -> "EXPANDABLE_INCORRECT_DIRECTION"
+        ExpandableDirectionNotSupported -> "EXPANDABLE_DIRECTION_NOT_SUPPORTED"
+        ExpandableInvalidVendor -> "EXPANDABLE_INVALID_VENDOR"
+        ExpandableFunctionality -> "EXPANDABLE_FUNCTIONALITY"
+        VideoInvalidVendor -> "VIDEO_INVALID_VENDOR"
+        VideoUnsupportedLength -> "VIDEO_UNSUPPORTED_LENGTH"
+        VideoUnsupportedFormat -> "VIDEO_UNSUPPORTED_FORMAT"
+        VideoFunctionality -> "VIDEO_FUNCTIONALITY"
+        LandingPageDisabled -> "LANDING_PAGE_DISABLED"
+        MalwareSuspected -> "MALWARE_SUSPECTED"
+        AdultImageOrVideo -> "ADULT_IMAGE_OR_VIDEO"
+        InaccurateAdText -> "INACCURATE_AD_TEXT"
+        CounterfeitDesignerGoods -> "COUNTERFEIT_DESIGNER_GOODS"
+        PopUp -> "POP_UP"
+        InvalidRtbProtocolUsage -> "INVALID_RTB_PROTOCOL_USAGE"
+        RawIPAddressInSnippet -> "RAW_IP_ADDRESS_IN_SNIPPET"
+        UnacceptableContentSoftware -> "UNACCEPTABLE_CONTENT_SOFTWARE"
+        UnauthorizedCookieOnGoogleDomain -> "UNAUTHORIZED_COOKIE_ON_GOOGLE_DOMAIN"
+        UndeclaredFlashObjects -> "UNDECLARED_FLASH_OBJECTS"
+        InvalidSSLDeclaration -> "INVALID_SSL_DECLARATION"
+        DirectDownloadInAd -> "DIRECT_DOWNLOAD_IN_AD"
+        MaximumDownloadSizeExceeded -> "MAXIMUM_DOWNLOAD_SIZE_EXCEEDED"
+        DestinationURLSiteNotCrawlable -> "DESTINATION_URL_SITE_NOT_CRAWLABLE"
+        BadURLLegalDisApproval -> "BAD_URL_LEGAL_DISAPPROVAL"
+        PharmaGamblingAlcoholNotAllowed -> "PHARMA_GAMBLING_ALCOHOL_NOT_ALLOWED"
+        DynamicDNSAtDestinationURL -> "DYNAMIC_DNS_AT_DESTINATION_URL"
+        PoorImageOrVideoQuality -> "POOR_IMAGE_OR_VIDEO_QUALITY"
+        UnacceptableImageContent -> "UNACCEPTABLE_IMAGE_CONTENT"
+        IncorrectImageLayout -> "INCORRECT_IMAGE_LAYOUT"
+        IrrelevantImageOrVideo -> "IRRELEVANT_IMAGE_OR_VIDEO"
+        DestinationSiteDoesNotAllowGoingBack -> "DESTINATION_SITE_DOES_NOT_ALLOW_GOING_BACK"
+        MisleadingClaimsInAd -> "MISLEADING_CLAIMS_IN_AD"
+        RestrictedProducts -> "RESTRICTED_PRODUCTS"
+        UnacceptableContent -> "UNACCEPTABLE_CONTENT"
+        AutomatedAdClicking -> "AUTOMATED_AD_CLICKING"
+        InvalidURLProtocol -> "INVALID_URL_PROTOCOL"
+        UndeclaredRestrictedContent -> "UNDECLARED_RESTRICTED_CONTENT"
+        InvalidRemarketingListUsage -> "INVALID_REMARKETING_LIST_USAGE"
+        DestinationSiteNotCrawlableRobotsTxt -> "DESTINATION_SITE_NOT_CRAWLABLE_ROBOTS_TXT"
+        ClickToDownloadNotAnApp -> "CLICK_TO_DOWNLOAD_NOT_AN_APP"
+        InaccurateReviewExtension -> "INACCURATE_REVIEW_EXTENSION"
+        SexuallyExplicitContent -> "SEXUALLY_EXPLICIT_CONTENT"
+        GainingAnUnfairAdvantage -> "GAINING_AN_UNFAIR_ADVANTAGE"
+        GamingTheGoogleNetwork -> "GAMING_THE_GOOGLE_NETWORK"
+        DangerousProductsKnives -> "DANGEROUS_PRODUCTS_KNIVES"
+        DangerousProductsExplosives -> "DANGEROUS_PRODUCTS_EXPLOSIVES"
+        DangerousProductsGuns -> "DANGEROUS_PRODUCTS_GUNS"
+        DangerousProductsDrugs -> "DANGEROUS_PRODUCTS_DRUGS"
+        DangerousProductsTobacco -> "DANGEROUS_PRODUCTS_TOBACCO"
+        DangerousProductsWeapons -> "DANGEROUS_PRODUCTS_WEAPONS"
+        UnclearOrIrrelevantAd -> "UNCLEAR_OR_IRRELEVANT_AD"
+        ProfessionalStandards -> "PROFESSIONAL_STANDARDS"
+        DysfunctionalPromotion -> "DYSFUNCTIONAL_PROMOTION"
+        InvalidInterestBasedAd -> "INVALID_INTEREST_BASED_AD"
+        MisuseOfPersonalInformation -> "MISUSE_OF_PERSONAL_INFORMATION"
+        OmissionOfRelevantInformation -> "OMISSION_OF_RELEVANT_INFORMATION"
+        UnavailablePromotions -> "UNAVAILABLE_PROMOTIONS"
+        MisleadingPromotions -> "MISLEADING_PROMOTIONS"
+        InAppropriateContent -> "INAPPROPRIATE_CONTENT"
+        SensitiveEvents -> "SENSITIVE_EVENTS"
+        ShockingContent -> "SHOCKING_CONTENT"
+        EnablingDishonestBehavior -> "ENABLING_DISHONEST_BEHAVIOR"
+        TechnicalRequirements -> "TECHNICAL_REQUIREMENTS"
+        RestrictedPoliticalContent -> "RESTRICTED_POLITICAL_CONTENT"
+        UnsupportedContent -> "UNSUPPORTED_CONTENT"
+        InvalidBiddingMethod -> "INVALID_BIDDING_METHOD"
+        VideoTooLong -> "VIDEO_TOO_LONG"
+        ViolatesJapanesePharmacyLaw -> "VIOLATES_JAPANESE_PHARMACY_LAW"
+        UnaccreditedPetPharmacy -> "UNACCREDITED_PET_PHARMACY"
+        Abortion -> "ABORTION"
+        Contraceptives -> "CONTRACEPTIVES"
+        NeedCertificatesToAdvertiseInChina -> "NEED_CERTIFICATES_TO_ADVERTISE_IN_CHINA"
+        KcdspRegistration -> "KCDSP_REGISTRATION"
+        NotFamilySafe -> "NOT_FAMILY_SAFE"
+        ClinicalTrialRecruitment -> "CLINICAL_TRIAL_RECRUITMENT"
+        MaximumNumberOfHTTPCallsExceeded -> "MAXIMUM_NUMBER_OF_HTTP_CALLS_EXCEEDED"
+        MaximumNumberOfCookiesExceeded -> "MAXIMUM_NUMBER_OF_COOKIES_EXCEEDED"
+        PersonalLoans -> "PERSONAL_LOANS"
+        UnsupportedFlashContent -> "UNSUPPORTED_FLASH_CONTENT"
+        MisuseByOmidScript -> "MISUSE_BY_OMID_SCRIPT"
+        NonWhiteListedOmidVendor -> "NON_WHITELISTED_OMID_VENDOR"
+        DestinationExperience -> "DESTINATION_EXPERIENCE"
+        UnsupportedLanguage -> "UNSUPPORTED_LANGUAGE"
+        NonSSLCompliant -> "NON_SSL_COMPLIANT"
+        TemporaryPause -> "TEMPORARY_PAUSE"
+        BailBonds -> "BAIL_BONDS"
+
+instance FromJSON DisApprovalReason where
+    parseJSON = parseJSONText "DisApprovalReason"
+
+instance ToJSON DisApprovalReason where
+    toJSON = toJSONText
+
+-- | The role which is assigned to the client buyer. Each role implies a set
+-- of permissions granted to the client. Must be one of
+-- \`CLIENT_DEAL_VIEWER\`, \`CLIENT_DEAL_NEGOTIATOR\` or
+-- \`CLIENT_DEAL_APPROVER\`.
+data ClientRole
+    = ClientRoleUnspecified
+      -- ^ @CLIENT_ROLE_UNSPECIFIED@
+      -- A placeholder for an undefined client role.
+    | ClientDealViewer
+      -- ^ @CLIENT_DEAL_VIEWER@
+      -- Users associated with this client can see publisher deal offers in the
+      -- Marketplace. They can neither negotiate proposals nor approve deals. If
+      -- this client is visible to publishers, they can send deal proposals to
+      -- this client.
+    | ClientDealNegotiator
+      -- ^ @CLIENT_DEAL_NEGOTIATOR@
+      -- Users associated with this client can respond to deal proposals sent to
+      -- them by publishers. They can also initiate deal proposals of their own.
+    | ClientDealApprover
+      -- ^ @CLIENT_DEAL_APPROVER@
+      -- Users associated with this client can approve eligible deals on your
+      -- behalf. Some deals may still explicitly require publisher finalization.
+      -- If this role is not selected, the sponsor buyer will need to manually
+      -- approve each of their deals.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ClientRole
+
+instance FromHttpApiData ClientRole where
+    parseQueryParam = \case
+        "CLIENT_ROLE_UNSPECIFIED" -> Right ClientRoleUnspecified
+        "CLIENT_DEAL_VIEWER" -> Right ClientDealViewer
+        "CLIENT_DEAL_NEGOTIATOR" -> Right ClientDealNegotiator
+        "CLIENT_DEAL_APPROVER" -> Right ClientDealApprover
+        x -> Left ("Unable to parse ClientRole from: " <> x)
+
+instance ToHttpApiData ClientRole where
+    toQueryParam = \case
+        ClientRoleUnspecified -> "CLIENT_ROLE_UNSPECIFIED"
+        ClientDealViewer -> "CLIENT_DEAL_VIEWER"
+        ClientDealNegotiator -> "CLIENT_DEAL_NEGOTIATOR"
+        ClientDealApprover -> "CLIENT_DEAL_APPROVER"
+
+instance FromJSON ClientRole where
+    parseJSON = parseJSONText "ClientRole"
+
+instance ToJSON ClientRole where
+    toJSON = toJSONText
+
+-- | Specifies whether the creative is safeFrame compatible. \'OutputOnly
+data DealCreativeSafeFrameCompatibility
+    = CreativeSafeFrameCompatibilityUnspecified
+      -- ^ @CREATIVE_SAFE_FRAME_COMPATIBILITY_UNSPECIFIED@
+      -- A placeholder for an undefined creative safe-frame compatibility.
+    | Compatible
+      -- ^ @COMPATIBLE@
+      -- The creatives need to be compatible with the safe frame option.
+    | Incompatible
+      -- ^ @INCOMPATIBLE@
+      -- The creatives can be incompatible with the safe frame option.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DealCreativeSafeFrameCompatibility
+
+instance FromHttpApiData DealCreativeSafeFrameCompatibility where
+    parseQueryParam = \case
+        "CREATIVE_SAFE_FRAME_COMPATIBILITY_UNSPECIFIED" -> Right CreativeSafeFrameCompatibilityUnspecified
+        "COMPATIBLE" -> Right Compatible
+        "INCOMPATIBLE" -> Right Incompatible
+        x -> Left ("Unable to parse DealCreativeSafeFrameCompatibility from: " <> x)
+
+instance ToHttpApiData DealCreativeSafeFrameCompatibility where
+    toQueryParam = \case
+        CreativeSafeFrameCompatibilityUnspecified -> "CREATIVE_SAFE_FRAME_COMPATIBILITY_UNSPECIFIED"
+        Compatible -> "COMPATIBLE"
+        Incompatible -> "INCOMPATIBLE"
+
+instance FromJSON DealCreativeSafeFrameCompatibility where
+    parseJSON = parseJSONText "DealCreativeSafeFrameCompatibility"
+
+instance ToJSON DealCreativeSafeFrameCompatibility where
+    toJSON = toJSONText
+
+-- | Specifies how the impression delivery will be paced. \'OutputOnly
+data DeliveryControlDeliveryRateType
+    = DeliveryRateTypeUnspecified
+      -- ^ @DELIVERY_RATE_TYPE_UNSPECIFIED@
+      -- A placeholder for an undefined delivery rate type.
+    | Evenly
+      -- ^ @EVENLY@
+      -- Impressions are served uniformly over the life of the deal.
+    | FrontLoaded
+      -- ^ @FRONT_LOADED@
+      -- Impressions are served front-loaded.
+    | AsFastAsPossible
+      -- ^ @AS_FAST_AS_POSSIBLE@
+      -- Impressions are served as fast as possible.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DeliveryControlDeliveryRateType
+
+instance FromHttpApiData DeliveryControlDeliveryRateType where
+    parseQueryParam = \case
+        "DELIVERY_RATE_TYPE_UNSPECIFIED" -> Right DeliveryRateTypeUnspecified
+        "EVENLY" -> Right Evenly
+        "FRONT_LOADED" -> Right FrontLoaded
+        "AS_FAST_AS_POSSIBLE" -> Right AsFastAsPossible
+        x -> Left ("Unable to parse DeliveryControlDeliveryRateType from: " <> x)
+
+instance ToHttpApiData DeliveryControlDeliveryRateType where
+    toQueryParam = \case
+        DeliveryRateTypeUnspecified -> "DELIVERY_RATE_TYPE_UNSPECIFIED"
+        Evenly -> "EVENLY"
+        FrontLoaded -> "FRONT_LOADED"
+        AsFastAsPossible -> "AS_FAST_AS_POSSIBLE"
+
+instance FromJSON DeliveryControlDeliveryRateType where
+    parseJSON = parseJSONText "DeliveryControlDeliveryRateType"
+
+instance ToJSON DeliveryControlDeliveryRateType where
+    toJSON = toJSONText
+
+-- | The role of the person who first paused this deal.
+data DealPauseStatusFirstPausedBy
+    = DPSFPBBuyerSellerRoleUnspecified
+      -- ^ @BUYER_SELLER_ROLE_UNSPECIFIED@
+      -- A placeholder for an undefined buyer\/seller role.
+    | DPSFPBBuyer
+      -- ^ @BUYER@
+      -- Specifies the role as buyer.
+    | DPSFPBSeller
+      -- ^ @SELLER@
+      -- Specifies the role as seller.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DealPauseStatusFirstPausedBy
+
+instance FromHttpApiData DealPauseStatusFirstPausedBy where
+    parseQueryParam = \case
+        "BUYER_SELLER_ROLE_UNSPECIFIED" -> Right DPSFPBBuyerSellerRoleUnspecified
+        "BUYER" -> Right DPSFPBBuyer
+        "SELLER" -> Right DPSFPBSeller
+        x -> Left ("Unable to parse DealPauseStatusFirstPausedBy from: " <> x)
+
+instance ToHttpApiData DealPauseStatusFirstPausedBy where
+    toQueryParam = \case
+        DPSFPBBuyerSellerRoleUnspecified -> "BUYER_SELLER_ROLE_UNSPECIFIED"
+        DPSFPBBuyer -> "BUYER"
+        DPSFPBSeller -> "SELLER"
+
+instance FromJSON DealPauseStatusFirstPausedBy where
+    parseJSON = parseJSONText "DealPauseStatusFirstPausedBy"
+
+instance ToJSON DealPauseStatusFirstPausedBy where
+    toJSON = toJSONText
+
+-- | \'OutputOnly The top-level open auction status of this creative. If
+-- disapproved, an entry for \'auctionType = OPEN_AUCTION\' (or \'ALL\') in
+-- serving_restrictions will also exist. Note that this may be nuanced with
+-- other contextual restrictions, in which case, it may be preferable to
+-- read from serving_restrictions directly. Can be used to filter the
+-- response of the creatives.list method.
+data CreativeOpenAuctionStatus
+    = StatusUnspecified
+      -- ^ @STATUS_UNSPECIFIED@
+      -- The status is unknown.
+    | NotChecked
+      -- ^ @NOT_CHECKED@
+      -- The creative has not been checked.
+    | ConditionallyApproved
+      -- ^ @CONDITIONALLY_APPROVED@
+      -- The creative has been conditionally approved. See serving_restrictions
+      -- for details.
+    | Approved
+      -- ^ @APPROVED@
+      -- The creative has been approved.
+    | DisApproved
+      -- ^ @DISAPPROVED@
+      -- The creative has been disapproved.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeOpenAuctionStatus
+
+instance FromHttpApiData CreativeOpenAuctionStatus where
+    parseQueryParam = \case
+        "STATUS_UNSPECIFIED" -> Right StatusUnspecified
+        "NOT_CHECKED" -> Right NotChecked
+        "CONDITIONALLY_APPROVED" -> Right ConditionallyApproved
+        "APPROVED" -> Right Approved
+        "DISAPPROVED" -> Right DisApproved
+        x -> Left ("Unable to parse CreativeOpenAuctionStatus from: " <> x)
+
+instance ToHttpApiData CreativeOpenAuctionStatus where
+    toQueryParam = \case
+        StatusUnspecified -> "STATUS_UNSPECIFIED"
+        NotChecked -> "NOT_CHECKED"
+        ConditionallyApproved -> "CONDITIONALLY_APPROVED"
+        Approved -> "APPROVED"
+        DisApproved -> "DISAPPROVED"
+
+instance FromJSON CreativeOpenAuctionStatus where
+    parseJSON = parseJSONText "CreativeOpenAuctionStatus"
+
+instance ToJSON CreativeOpenAuctionStatus where
+    toJSON = toJSONText
+
+-- | The syndication product associated with the deal. Note: This field may
+-- be set only when creating the resource. Modifying this field while
+-- updating the resource will result in an error.
+data DealSyndicationProduct
+    = DSPSyndicationProductUnspecified
+      -- ^ @SYNDICATION_PRODUCT_UNSPECIFIED@
+      -- A placeholder for an undefined syndication product.
+    | DSPContent
+      -- ^ @CONTENT@
+      -- This typically represents a web page.
+    | DSPMobile
+      -- ^ @MOBILE@
+      -- This represents a mobile property.
+    | DSPVideo
+      -- ^ @VIDEO@
+      -- This represents video ad formats.
+    | DSPGames
+      -- ^ @GAMES@
+      -- This represents ads shown within games.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DealSyndicationProduct
+
+instance FromHttpApiData DealSyndicationProduct where
+    parseQueryParam = \case
+        "SYNDICATION_PRODUCT_UNSPECIFIED" -> Right DSPSyndicationProductUnspecified
+        "CONTENT" -> Right DSPContent
+        "MOBILE" -> Right DSPMobile
+        "VIDEO" -> Right DSPVideo
+        "GAMES" -> Right DSPGames
+        x -> Left ("Unable to parse DealSyndicationProduct from: " <> x)
+
+instance ToHttpApiData DealSyndicationProduct where
+    toQueryParam = \case
+        DSPSyndicationProductUnspecified -> "SYNDICATION_PRODUCT_UNSPECIFIED"
+        DSPContent -> "CONTENT"
+        DSPMobile -> "MOBILE"
+        DSPVideo -> "VIDEO"
+        DSPGames -> "GAMES"
+
+instance FromJSON DealSyndicationProduct where
+    parseJSON = parseJSONText "DealSyndicationProduct"
+
+instance ToJSON DealSyndicationProduct where
+    toJSON = toJSONText
+
+-- | The granularity of time intervals if a time series breakdown is desired;
+-- optional.
+data FilterSetTimeSeriesGranularity
+    = TimeSeriesGranularityUnspecified
+      -- ^ @TIME_SERIES_GRANULARITY_UNSPECIFIED@
+      -- A placeholder for an unspecified interval; no time series is applied.
+      -- All rows in response will contain data for the entire requested time
+      -- range.
+    | Hourly
+      -- ^ @HOURLY@
+      -- Indicates that data will be broken down by the hour.
+    | Daily
+      -- ^ @DAILY@
+      -- Indicates that data will be broken down by the day.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FilterSetTimeSeriesGranularity
+
+instance FromHttpApiData FilterSetTimeSeriesGranularity where
+    parseQueryParam = \case
+        "TIME_SERIES_GRANULARITY_UNSPECIFIED" -> Right TimeSeriesGranularityUnspecified
+        "HOURLY" -> Right Hourly
+        "DAILY" -> Right Daily
+        x -> Left ("Unable to parse FilterSetTimeSeriesGranularity from: " <> x)
+
+instance ToHttpApiData FilterSetTimeSeriesGranularity where
+    toQueryParam = \case
+        TimeSeriesGranularityUnspecified -> "TIME_SERIES_GRANULARITY_UNSPECIFIED"
+        Hourly -> "HOURLY"
+        Daily -> "DAILY"
+
+instance FromJSON FilterSetTimeSeriesGranularity where
+    parseJSON = parseJSONText "FilterSetTimeSeriesGranularity"
+
+instance ToJSON FilterSetTimeSeriesGranularity where
+    toJSON = toJSONText
+
+-- | The type of detail that the detail IDs represent.
+data ListCreativeStatusBreakdownByDetailResponseDetailType
+    = DetailTypeUnspecified
+      -- ^ @DETAIL_TYPE_UNSPECIFIED@
+      -- A placeholder for an undefined status. This value will never be returned
+      -- in responses.
+    | CreativeAttribute
+      -- ^ @CREATIVE_ATTRIBUTE@
+      -- Indicates that the detail ID refers to a creative attribute; see
+      -- [publisher-excludable-creative-attributes](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/publisher-excludable-creative-attributes).
+    | Vendor
+      -- ^ @VENDOR@
+      -- Indicates that the detail ID refers to a vendor; see
+      -- [vendors](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/vendors).
+    | SensitiveCategory
+      -- ^ @SENSITIVE_CATEGORY@
+      -- Indicates that the detail ID refers to a sensitive category; see
+      -- [ad-sensitive-categories](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/ad-sensitive-categories).
+    | ProductCategory
+      -- ^ @PRODUCT_CATEGORY@
+      -- Indicates that the detail ID refers to a product category; see
+      -- [ad-product-categories](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/ad-product-categories).
+    | DisApprovalReason
+      -- ^ @DISAPPROVAL_REASON@
+      -- Indicates that the detail ID refers to a disapproval reason; see
+      -- DisapprovalReason enum in
+      -- [snippet-status-report-proto](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/snippet-status-report-proto).
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ListCreativeStatusBreakdownByDetailResponseDetailType
+
+instance FromHttpApiData ListCreativeStatusBreakdownByDetailResponseDetailType where
+    parseQueryParam = \case
+        "DETAIL_TYPE_UNSPECIFIED" -> Right DetailTypeUnspecified
+        "CREATIVE_ATTRIBUTE" -> Right CreativeAttribute
+        "VENDOR" -> Right Vendor
+        "SENSITIVE_CATEGORY" -> Right SensitiveCategory
+        "PRODUCT_CATEGORY" -> Right ProductCategory
+        "DISAPPROVAL_REASON" -> Right DisApprovalReason
+        x -> Left ("Unable to parse ListCreativeStatusBreakdownByDetailResponseDetailType from: " <> x)
+
+instance ToHttpApiData ListCreativeStatusBreakdownByDetailResponseDetailType where
+    toQueryParam = \case
+        DetailTypeUnspecified -> "DETAIL_TYPE_UNSPECIFIED"
+        CreativeAttribute -> "CREATIVE_ATTRIBUTE"
+        Vendor -> "VENDOR"
+        SensitiveCategory -> "SENSITIVE_CATEGORY"
+        ProductCategory -> "PRODUCT_CATEGORY"
+        DisApprovalReason -> "DISAPPROVAL_REASON"
+
+instance FromJSON ListCreativeStatusBreakdownByDetailResponseDetailType where
+    parseJSON = parseJSONText "ListCreativeStatusBreakdownByDetailResponseDetailType"
+
+instance ToJSON ListCreativeStatusBreakdownByDetailResponseDetailType where
+    toJSON = toJSONText
+
+-- | The status specifying why the bid responses were considered to have no
+-- applicable bids.
+data BidResponseWithoutBidsStatusRowStatus
+    = BRWBSRSStatusUnspecified
+      -- ^ @STATUS_UNSPECIFIED@
+      -- A placeholder for an undefined status. This value will never be returned
+      -- in responses.
+    | BRWBSRSResponsesWithoutBids
+      -- ^ @RESPONSES_WITHOUT_BIDS@
+      -- The response had no bids.
+    | BRWBSRSResponsesWithoutBidsForAccount
+      -- ^ @RESPONSES_WITHOUT_BIDS_FOR_ACCOUNT@
+      -- The response had no bids for the specified account, though it may have
+      -- included bids on behalf of other accounts.
+    | BRWBSRSResponsesWithoutBidsForDeal
+      -- ^ @RESPONSES_WITHOUT_BIDS_FOR_DEAL@
+      -- The response had no bids for the specified deal, though it may have
+      -- included bids on other deals on behalf of the account to which the deal
+      -- belongs.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable BidResponseWithoutBidsStatusRowStatus
+
+instance FromHttpApiData BidResponseWithoutBidsStatusRowStatus where
+    parseQueryParam = \case
+        "STATUS_UNSPECIFIED" -> Right BRWBSRSStatusUnspecified
+        "RESPONSES_WITHOUT_BIDS" -> Right BRWBSRSResponsesWithoutBids
+        "RESPONSES_WITHOUT_BIDS_FOR_ACCOUNT" -> Right BRWBSRSResponsesWithoutBidsForAccount
+        "RESPONSES_WITHOUT_BIDS_FOR_DEAL" -> Right BRWBSRSResponsesWithoutBidsForDeal
+        x -> Left ("Unable to parse BidResponseWithoutBidsStatusRowStatus from: " <> x)
+
+instance ToHttpApiData BidResponseWithoutBidsStatusRowStatus where
+    toQueryParam = \case
+        BRWBSRSStatusUnspecified -> "STATUS_UNSPECIFIED"
+        BRWBSRSResponsesWithoutBids -> "RESPONSES_WITHOUT_BIDS"
+        BRWBSRSResponsesWithoutBidsForAccount -> "RESPONSES_WITHOUT_BIDS_FOR_ACCOUNT"
+        BRWBSRSResponsesWithoutBidsForDeal -> "RESPONSES_WITHOUT_BIDS_FOR_DEAL"
+
+instance FromJSON BidResponseWithoutBidsStatusRowStatus where
+    parseJSON = parseJSONText "BidResponseWithoutBidsStatusRowStatus"
+
+instance ToJSON BidResponseWithoutBidsStatusRowStatus where
+    toJSON = toJSONText
+
+-- | The timezone to use for interpreting the day part targeting.
+data DayPartTargetingTimeZoneType
+    = DPTTZTTimeZoneSourceUnspecified
+      -- ^ @TIME_ZONE_SOURCE_UNSPECIFIED@
+      -- A placeholder for an undefined time zone source.
+    | DPTTZTPublisher
+      -- ^ @PUBLISHER@
+      -- Use publisher\'s time zone setting.
+    | DPTTZTUser
+      -- ^ @USER@
+      -- Use the user\'s time zone setting.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DayPartTargetingTimeZoneType
+
+instance FromHttpApiData DayPartTargetingTimeZoneType where
+    parseQueryParam = \case
+        "TIME_ZONE_SOURCE_UNSPECIFIED" -> Right DPTTZTTimeZoneSourceUnspecified
+        "PUBLISHER" -> Right DPTTZTPublisher
+        "USER" -> Right DPTTZTUser
+        x -> Left ("Unable to parse DayPartTargetingTimeZoneType from: " <> x)
+
+instance ToHttpApiData DayPartTargetingTimeZoneType where
+    toQueryParam = \case
+        DPTTZTTimeZoneSourceUnspecified -> "TIME_ZONE_SOURCE_UNSPECIFIED"
+        DPTTZTPublisher -> "PUBLISHER"
+        DPTTZTUser -> "USER"
+
+instance FromJSON DayPartTargetingTimeZoneType where
+    parseJSON = parseJSONText "DayPartTargetingTimeZoneType"
+
+instance ToJSON DayPartTargetingTimeZoneType where
+    toJSON = toJSONText
+
+-- | The status of the client user.
+data ClientUserStatus
+    = UserStatusUnspecified
+      -- ^ @USER_STATUS_UNSPECIFIED@
+      -- A placeholder for an undefined user status.
+    | Pending
+      -- ^ @PENDING@
+      -- A user who was already created but hasn\'t accepted the invitation yet.
+    | Active
+      -- ^ @ACTIVE@
+      -- A user that is currently active.
+    | Disabled
+      -- ^ @DISABLED@
+      -- A user that is currently disabled.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ClientUserStatus
+
+instance FromHttpApiData ClientUserStatus where
+    parseQueryParam = \case
+        "USER_STATUS_UNSPECIFIED" -> Right UserStatusUnspecified
+        "PENDING" -> Right Pending
+        "ACTIVE" -> Right Active
+        "DISABLED" -> Right Disabled
+        x -> Left ("Unable to parse ClientUserStatus from: " <> x)
+
+instance ToHttpApiData ClientUserStatus where
+    toQueryParam = \case
+        UserStatusUnspecified -> "USER_STATUS_UNSPECIFIED"
+        Pending -> "PENDING"
+        Active -> "ACTIVE"
+        Disabled -> "DISABLED"
+
+instance FromJSON ClientUserStatus where
+    parseJSON = parseJSONText "ClientUserStatus"
+
+instance ToJSON ClientUserStatus where
+    toJSON = toJSONText
+
+-- | Matches all contexts.
+data ServingContextAll
+    = SimpleContext
+      -- ^ @SIMPLE_CONTEXT@
+      -- A simple context.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ServingContextAll
+
+instance FromHttpApiData ServingContextAll where
+    parseQueryParam = \case
+        "SIMPLE_CONTEXT" -> Right SimpleContext
+        x -> Left ("Unable to parse ServingContextAll from: " <> x)
+
+instance ToHttpApiData ServingContextAll where
+    toQueryParam = \case
+        SimpleContext -> "SIMPLE_CONTEXT"
+
+instance FromJSON ServingContextAll where
+    parseJSON = parseJSONText "ServingContextAll"
+
+instance ToJSON ServingContextAll where
+    toJSON = toJSONText
+
+-- | The format of the environment that the creatives will be displayed in.
+data CreativeRestrictionsCreativeFormat
+    = CRCFCreativeFormatUnspecified
+      -- ^ @CREATIVE_FORMAT_UNSPECIFIED@
+      -- A placeholder for an undefined creative format.
+    | CRCFDisplay
+      -- ^ @DISPLAY@
+      -- A creative that will be displayed in environments such as a browser.
+    | CRCFVideo
+      -- ^ @VIDEO@
+      -- A video creative that will be displayed in environments such as a video
+      -- player.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeRestrictionsCreativeFormat
+
+instance FromHttpApiData CreativeRestrictionsCreativeFormat where
+    parseQueryParam = \case
+        "CREATIVE_FORMAT_UNSPECIFIED" -> Right CRCFCreativeFormatUnspecified
+        "DISPLAY" -> Right CRCFDisplay
+        "VIDEO" -> Right CRCFVideo
+        x -> Left ("Unable to parse CreativeRestrictionsCreativeFormat from: " <> x)
+
+instance ToHttpApiData CreativeRestrictionsCreativeFormat where
+    toQueryParam = \case
+        CRCFCreativeFormatUnspecified -> "CREATIVE_FORMAT_UNSPECIFIED"
+        CRCFDisplay -> "DISPLAY"
+        CRCFVideo -> "VIDEO"
+
+instance FromJSON CreativeRestrictionsCreativeFormat where
+    parseJSON = parseJSONText "CreativeRestrictionsCreativeFormat"
+
+instance ToJSON CreativeRestrictionsCreativeFormat where
+    toJSON = toJSONText
+
+-- | Indicates whether the buyer\/seller created the proposal. \'OutputOnly
+data ProposalOriginatorRole
+    = PORBuyerSellerRoleUnspecified
+      -- ^ @BUYER_SELLER_ROLE_UNSPECIFIED@
+      -- A placeholder for an undefined buyer\/seller role.
+    | PORBuyer
+      -- ^ @BUYER@
+      -- Specifies the role as buyer.
+    | PORSeller
+      -- ^ @SELLER@
+      -- Specifies the role as seller.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ProposalOriginatorRole
+
+instance FromHttpApiData ProposalOriginatorRole where
+    parseQueryParam = \case
+        "BUYER_SELLER_ROLE_UNSPECIFIED" -> Right PORBuyerSellerRoleUnspecified
+        "BUYER" -> Right PORBuyer
+        "SELLER" -> Right PORSeller
+        x -> Left ("Unable to parse ProposalOriginatorRole from: " <> x)
+
+instance ToHttpApiData ProposalOriginatorRole where
+    toQueryParam = \case
+        PORBuyerSellerRoleUnspecified -> "BUYER_SELLER_ROLE_UNSPECIFIED"
+        PORBuyer -> "BUYER"
+        PORSeller -> "SELLER"
+
+instance FromJSON ProposalOriginatorRole where
+    parseJSON = parseJSONText "ProposalOriginatorRole"
+
+instance ToJSON ProposalOriginatorRole where
+    toJSON = toJSONText
+
+-- | The native template for this creative. It will have a value only if
+-- creative_size_type = CreativeSizeType.NATIVE. \'OutputOnly
+data CreativeSizeNATiveTemplate
+    = UnknownNATiveTemplate
+      -- ^ @UNKNOWN_NATIVE_TEMPLATE@
+      -- A placeholder for an undefined native template.
+    | NATiveContentAd
+      -- ^ @NATIVE_CONTENT_AD@
+      -- The creative is linked to native content ad.
+    | NATiveAppInstallAd
+      -- ^ @NATIVE_APP_INSTALL_AD@
+      -- The creative is linked to native app install ad.
+    | NATiveVideoContentAd
+      -- ^ @NATIVE_VIDEO_CONTENT_AD@
+      -- The creative is linked to native video content ad.
+    | NATiveVideoAppInstallAd
+      -- ^ @NATIVE_VIDEO_APP_INSTALL_AD@
+      -- The creative is linked to native video app install ad.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeSizeNATiveTemplate
+
+instance FromHttpApiData CreativeSizeNATiveTemplate where
+    parseQueryParam = \case
+        "UNKNOWN_NATIVE_TEMPLATE" -> Right UnknownNATiveTemplate
+        "NATIVE_CONTENT_AD" -> Right NATiveContentAd
+        "NATIVE_APP_INSTALL_AD" -> Right NATiveAppInstallAd
+        "NATIVE_VIDEO_CONTENT_AD" -> Right NATiveVideoContentAd
+        "NATIVE_VIDEO_APP_INSTALL_AD" -> Right NATiveVideoAppInstallAd
+        x -> Left ("Unable to parse CreativeSizeNATiveTemplate from: " <> x)
+
+instance ToHttpApiData CreativeSizeNATiveTemplate where
+    toQueryParam = \case
+        UnknownNATiveTemplate -> "UNKNOWN_NATIVE_TEMPLATE"
+        NATiveContentAd -> "NATIVE_CONTENT_AD"
+        NATiveAppInstallAd -> "NATIVE_APP_INSTALL_AD"
+        NATiveVideoContentAd -> "NATIVE_VIDEO_CONTENT_AD"
+        NATiveVideoAppInstallAd -> "NATIVE_VIDEO_APP_INSTALL_AD"
+
+instance FromJSON CreativeSizeNATiveTemplate where
+    parseJSON = parseJSONText "CreativeSizeNATiveTemplate"
+
+instance ToJSON CreativeSizeNATiveTemplate where
+    toJSON = toJSONText
+
+-- | The environment on which to filter; optional.
+data FilterSetEnvironment
+    = EnvironmentUnspecified
+      -- ^ @ENVIRONMENT_UNSPECIFIED@
+      -- A placeholder for an undefined environment; indicates that no
+      -- environment filter will be applied.
+    | Web
+      -- ^ @WEB@
+      -- The ad impression appears on the web.
+    | App
+      -- ^ @APP@
+      -- The ad impression appears in an app.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FilterSetEnvironment
+
+instance FromHttpApiData FilterSetEnvironment where
+    parseQueryParam = \case
+        "ENVIRONMENT_UNSPECIFIED" -> Right EnvironmentUnspecified
+        "WEB" -> Right Web
+        "APP" -> Right App
+        x -> Left ("Unable to parse FilterSetEnvironment from: " <> x)
+
+instance ToHttpApiData FilterSetEnvironment where
+    toQueryParam = \case
+        EnvironmentUnspecified -> "ENVIRONMENT_UNSPECIFIED"
+        Web -> "WEB"
+        App -> "APP"
+
+instance FromJSON FilterSetEnvironment where
+    parseJSON = parseJSONText "FilterSetEnvironment"
+
+instance ToJSON FilterSetEnvironment where
+    toJSON = toJSONText
+
+-- | The day of the week to target. If unspecified, applicable to all days.
+data DayPartDayOfWeek
+    = DayOfWeekUnspecified
+      -- ^ @DAY_OF_WEEK_UNSPECIFIED@
+      -- A placeholder for when the day of the week is not specified.
+    | Monday
+      -- ^ @MONDAY@
+      -- Monday
+    | Tuesday
+      -- ^ @TUESDAY@
+      -- Tuesday
+    | Wednesday
+      -- ^ @WEDNESDAY@
+      -- Wednesday
+    | Thursday
+      -- ^ @THURSDAY@
+      -- Thursday
+    | Friday
+      -- ^ @FRIDAY@
+      -- Friday
+    | Saturday
+      -- ^ @SATURDAY@
+      -- Saturday
+    | Sunday
+      -- ^ @SUNDAY@
+      -- Sunday
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DayPartDayOfWeek
+
+instance FromHttpApiData DayPartDayOfWeek where
+    parseQueryParam = \case
+        "DAY_OF_WEEK_UNSPECIFIED" -> Right DayOfWeekUnspecified
+        "MONDAY" -> Right Monday
+        "TUESDAY" -> Right Tuesday
+        "WEDNESDAY" -> Right Wednesday
+        "THURSDAY" -> Right Thursday
+        "FRIDAY" -> Right Friday
+        "SATURDAY" -> Right Saturday
+        "SUNDAY" -> Right Sunday
+        x -> Left ("Unable to parse DayPartDayOfWeek from: " <> x)
+
+instance ToHttpApiData DayPartDayOfWeek where
+    toQueryParam = \case
+        DayOfWeekUnspecified -> "DAY_OF_WEEK_UNSPECIFIED"
+        Monday -> "MONDAY"
+        Tuesday -> "TUESDAY"
+        Wednesday -> "WEDNESDAY"
+        Thursday -> "THURSDAY"
+        Friday -> "FRIDAY"
+        Saturday -> "SATURDAY"
+        Sunday -> "SUNDAY"
+
+instance FromJSON DayPartDayOfWeek where
+    parseJSON = parseJSONText "DayPartDayOfWeek"
+
+instance ToJSON DayPartDayOfWeek where
+    toJSON = toJSONText
+
+-- | V1 error format.
+data Xgafv
+    = X1
+      -- ^ @1@
+      -- v1 error format
+    | X2
+      -- ^ @2@
+      -- v2 error format
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable Xgafv
+
+instance FromHttpApiData Xgafv where
+    parseQueryParam = \case
+        "1" -> Right X1
+        "2" -> Right X2
+        x -> Left ("Unable to parse Xgafv from: " <> x)
+
+instance ToHttpApiData Xgafv where
+    toQueryParam = \case
+        X1 -> "1"
+        X2 -> "2"
+
+instance FromJSON Xgafv where
+    parseJSON = parseJSONText "Xgafv"
+
+instance ToJSON Xgafv where
+    toJSON = toJSONText
+
+-- | Visibility of the URL in bid requests. (default: BRANDED)
+data DealTermsBrandingType
+    = BrandingTypeUnspecified
+      -- ^ @BRANDING_TYPE_UNSPECIFIED@
+      -- A placeholder for an undefined branding type.
+    | Branded
+      -- ^ @BRANDED@
+      -- Full URL is included in bid requests.
+    | SemiTransparent
+      -- ^ @SEMI_TRANSPARENT@
+      -- A TopLevelDomain or masked URL is sent in bid requests rather than the
+      -- full one.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DealTermsBrandingType
+
+instance FromHttpApiData DealTermsBrandingType where
+    parseQueryParam = \case
+        "BRANDING_TYPE_UNSPECIFIED" -> Right BrandingTypeUnspecified
+        "BRANDED" -> Right Branded
+        "SEMI_TRANSPARENT" -> Right SemiTransparent
+        x -> Left ("Unable to parse DealTermsBrandingType from: " <> x)
+
+instance ToHttpApiData DealTermsBrandingType where
+    toQueryParam = \case
+        BrandingTypeUnspecified -> "BRANDING_TYPE_UNSPECIFIED"
+        Branded -> "BRANDED"
+        SemiTransparent -> "SEMI_TRANSPARENT"
+
+instance FromJSON DealTermsBrandingType where
+    parseJSON = parseJSONText "DealTermsBrandingType"
+
+instance ToJSON DealTermsBrandingType where
+    toJSON = toJSONText
+
+-- | The role of the last user that either updated the proposal or left a
+-- comment. \'OutputOnly
+data ProposalLastUpdaterOrCommentorRole
+    = PLUOCRBuyerSellerRoleUnspecified
+      -- ^ @BUYER_SELLER_ROLE_UNSPECIFIED@
+      -- A placeholder for an undefined buyer\/seller role.
+    | PLUOCRBuyer
+      -- ^ @BUYER@
+      -- Specifies the role as buyer.
+    | PLUOCRSeller
+      -- ^ @SELLER@
+      -- Specifies the role as seller.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ProposalLastUpdaterOrCommentorRole
+
+instance FromHttpApiData ProposalLastUpdaterOrCommentorRole where
+    parseQueryParam = \case
+        "BUYER_SELLER_ROLE_UNSPECIFIED" -> Right PLUOCRBuyerSellerRoleUnspecified
+        "BUYER" -> Right PLUOCRBuyer
+        "SELLER" -> Right PLUOCRSeller
+        x -> Left ("Unable to parse ProposalLastUpdaterOrCommentorRole from: " <> x)
+
+instance ToHttpApiData ProposalLastUpdaterOrCommentorRole where
+    toQueryParam = \case
+        PLUOCRBuyerSellerRoleUnspecified -> "BUYER_SELLER_ROLE_UNSPECIFIED"
+        PLUOCRBuyer -> "BUYER"
+        PLUOCRSeller -> "SELLER"
+
+instance FromJSON ProposalLastUpdaterOrCommentorRole where
+    parseJSON = parseJSONText "ProposalLastUpdaterOrCommentorRole"
+
+instance ToJSON ProposalLastUpdaterOrCommentorRole where
+    toJSON = toJSONText
+
+-- | The type of the client entity: \`ADVERTISER\`, \`BRAND\`, or \`AGENCY\`.
+data ClientEntityType
+    = CETEntityTypeUnspecified
+      -- ^ @ENTITY_TYPE_UNSPECIFIED@
+      -- A placeholder for an undefined client entity type. Should not be used.
+    | CETAdvertiser
+      -- ^ @ADVERTISER@
+      -- An advertiser.
+    | CETBrand
+      -- ^ @BRAND@
+      -- A brand.
+    | CETAgency
+      -- ^ @AGENCY@
+      -- An advertising agency.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ClientEntityType
+
+instance FromHttpApiData ClientEntityType where
+    parseQueryParam = \case
+        "ENTITY_TYPE_UNSPECIFIED" -> Right CETEntityTypeUnspecified
+        "ADVERTISER" -> Right CETAdvertiser
+        "BRAND" -> Right CETBrand
+        "AGENCY" -> Right CETAgency
+        x -> Left ("Unable to parse ClientEntityType from: " <> x)
+
+instance ToHttpApiData ClientEntityType where
+    toQueryParam = \case
+        CETEntityTypeUnspecified -> "ENTITY_TYPE_UNSPECIFIED"
+        CETAdvertiser -> "ADVERTISER"
+        CETBrand -> "BRAND"
+        CETAgency -> "AGENCY"
+
+instance FromJSON ClientEntityType where
+    parseJSON = parseJSONText "ClientEntityType"
+
+instance ToJSON ClientEntityType where
+    toJSON = toJSONText
+
+-- | The time unit. Along with num_time_units defines the amount of time over
+-- which impressions per user are counted and capped.
+data FrequencyCapTimeUnitType
+    = TimeUnitTypeUnspecified
+      -- ^ @TIME_UNIT_TYPE_UNSPECIFIED@
+      -- A placeholder for an undefined time unit type. This just indicates the
+      -- variable with this value hasn\'t been initialized.
+    | Minute
+      -- ^ @MINUTE@
+      -- Minute
+    | Hour
+      -- ^ @HOUR@
+      -- Hour
+    | Day
+      -- ^ @DAY@
+      -- Day
+    | Week
+      -- ^ @WEEK@
+      -- Week
+    | Month
+      -- ^ @MONTH@
+      -- Month
+    | Lifetime
+      -- ^ @LIFETIME@
+      -- Lifetime
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FrequencyCapTimeUnitType
+
+instance FromHttpApiData FrequencyCapTimeUnitType where
+    parseQueryParam = \case
+        "TIME_UNIT_TYPE_UNSPECIFIED" -> Right TimeUnitTypeUnspecified
+        "MINUTE" -> Right Minute
+        "HOUR" -> Right Hour
+        "DAY" -> Right Day
+        "WEEK" -> Right Week
+        "MONTH" -> Right Month
+        "LIFETIME" -> Right Lifetime
+        x -> Left ("Unable to parse FrequencyCapTimeUnitType from: " <> x)
+
+instance ToHttpApiData FrequencyCapTimeUnitType where
+    toQueryParam = \case
+        TimeUnitTypeUnspecified -> "TIME_UNIT_TYPE_UNSPECIFIED"
+        Minute -> "MINUTE"
+        Hour -> "HOUR"
+        Day -> "DAY"
+        Week -> "WEEK"
+        Month -> "MONTH"
+        Lifetime -> "LIFETIME"
+
+instance FromJSON FrequencyCapTimeUnitType where
+    parseJSON = parseJSONText "FrequencyCapTimeUnitType"
+
+instance ToJSON FrequencyCapTimeUnitType where
+    toJSON = toJSONText
+
+-- | The pricing type for the deal\/product. (default: CPM)
+data PricePricingType
+    = PricingTypeUnspecified
+      -- ^ @PRICING_TYPE_UNSPECIFIED@
+      -- A placeholder for an undefined pricing type. If the pricing type is
+      -- unpsecified, \`COST_PER_MILLE\` will be used instead.
+    | CostPerMille
+      -- ^ @COST_PER_MILLE@
+      -- Cost per thousand impressions.
+    | CostPerDay
+      -- ^ @COST_PER_DAY@
+      -- Cost per day
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PricePricingType
+
+instance FromHttpApiData PricePricingType where
+    parseQueryParam = \case
+        "PRICING_TYPE_UNSPECIFIED" -> Right PricingTypeUnspecified
+        "COST_PER_MILLE" -> Right CostPerMille
+        "COST_PER_DAY" -> Right CostPerDay
+        x -> Left ("Unable to parse PricePricingType from: " <> x)
+
+instance ToHttpApiData PricePricingType where
+    toQueryParam = \case
+        PricingTypeUnspecified -> "PRICING_TYPE_UNSPECIFIED"
+        CostPerMille -> "COST_PER_MILLE"
+        CostPerDay -> "COST_PER_DAY"
+
+instance FromJSON PricePricingType where
+    parseJSON = parseJSONText "PricePricingType"
+
+instance ToJSON PricePricingType where
+    toJSON = toJSONText
+
+-- | The status specifying why the winning bids were not billed.
+data NonBillableWinningBidStatusRowStatus
+    = NBWBSRSStatusUnspecified
+      -- ^ @STATUS_UNSPECIFIED@
+      -- A placeholder for an undefined status. This value will never be returned
+      -- in responses.
+    | NBWBSRSAdNotRendered
+      -- ^ @AD_NOT_RENDERED@
+      -- The buyer was not billed because the ad was not rendered by the
+      -- publisher.
+    | NBWBSRSInvalidImpression
+      -- ^ @INVALID_IMPRESSION@
+      -- The buyer was not billed because the impression won by the bid was
+      -- determined to be invalid.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable NonBillableWinningBidStatusRowStatus
+
+instance FromHttpApiData NonBillableWinningBidStatusRowStatus where
+    parseQueryParam = \case
+        "STATUS_UNSPECIFIED" -> Right NBWBSRSStatusUnspecified
+        "AD_NOT_RENDERED" -> Right NBWBSRSAdNotRendered
+        "INVALID_IMPRESSION" -> Right NBWBSRSInvalidImpression
+        x -> Left ("Unable to parse NonBillableWinningBidStatusRowStatus from: " <> x)
+
+instance ToHttpApiData NonBillableWinningBidStatusRowStatus where
+    toQueryParam = \case
+        NBWBSRSStatusUnspecified -> "STATUS_UNSPECIFIED"
+        NBWBSRSAdNotRendered -> "AD_NOT_RENDERED"
+        NBWBSRSInvalidImpression -> "INVALID_IMPRESSION"
+
+instance FromJSON NonBillableWinningBidStatusRowStatus where
+    parseJSON = parseJSONText "NonBillableWinningBidStatusRowStatus"
+
+instance ToJSON NonBillableWinningBidStatusRowStatus where
+    toJSON = toJSONText
+
+-- | The status of the client buyer.
+data ClientStatus
+    = CSClientStatusUnspecified
+      -- ^ @CLIENT_STATUS_UNSPECIFIED@
+      -- A placeholder for an undefined client status.
+    | CSDisabled
+      -- ^ @DISABLED@
+      -- A client that is currently disabled.
+    | CSActive
+      -- ^ @ACTIVE@
+      -- A client that is currently active.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ClientStatus
+
+instance FromHttpApiData ClientStatus where
+    parseQueryParam = \case
+        "CLIENT_STATUS_UNSPECIFIED" -> Right CSClientStatusUnspecified
+        "DISABLED" -> Right CSDisabled
+        "ACTIVE" -> Right CSActive
+        x -> Left ("Unable to parse ClientStatus from: " <> x)
+
+instance ToHttpApiData ClientStatus where
+    toQueryParam = \case
+        CSClientStatusUnspecified -> "CLIENT_STATUS_UNSPECIFIED"
+        CSDisabled -> "DISABLED"
+        CSActive -> "ACTIVE"
+
+instance FromJSON ClientStatus where
+    parseJSON = parseJSONText "ClientStatus"
+
+instance ToJSON ClientStatus where
+    toJSON = toJSONText
+
+-- | The size type of the ad slot.
+data AdSizeSizeType
+    = SizeTypeUnspecified
+      -- ^ @SIZE_TYPE_UNSPECIFIED@
+      -- A placeholder for an undefined size type.
+    | Pixel
+      -- ^ @PIXEL@
+      -- Ad slot with size specified by height and width in pixels.
+    | Interstitial
+      -- ^ @INTERSTITIAL@
+      -- Special size to describe an interstitial ad slot.
+    | NATive
+      -- ^ @NATIVE@
+      -- Native (mobile) ads rendered by the publisher.
+    | Fluid
+      -- ^ @FLUID@
+      -- Fluid size (i.e., responsive size) can be resized automatically with the
+      -- change of outside environment.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdSizeSizeType
+
+instance FromHttpApiData AdSizeSizeType where
+    parseQueryParam = \case
+        "SIZE_TYPE_UNSPECIFIED" -> Right SizeTypeUnspecified
+        "PIXEL" -> Right Pixel
+        "INTERSTITIAL" -> Right Interstitial
+        "NATIVE" -> Right NATive
+        "FLUID" -> Right Fluid
+        x -> Left ("Unable to parse AdSizeSizeType from: " <> x)
+
+instance ToHttpApiData AdSizeSizeType where
+    toQueryParam = \case
+        SizeTypeUnspecified -> "SIZE_TYPE_UNSPECIFIED"
+        Pixel -> "PIXEL"
+        Interstitial -> "INTERSTITIAL"
+        NATive -> "NATIVE"
+        Fluid -> "FLUID"
+
+instance FromJSON AdSizeSizeType where
+    parseJSON = parseJSONText "AdSizeSizeType"
+
+instance ToJSON AdSizeSizeType where
+    toJSON = toJSONText
+
+-- | \'OutputOnly The top-level deals status of this creative. If
+-- disapproved, an entry for \'auctionType=DIRECT_DEALS\' (or \'ALL\') in
+-- serving_restrictions will also exist. Note that this may be nuanced with
+-- other contextual restrictions, in which case, it may be preferable to
+-- read from serving_restrictions directly. Can be used to filter the
+-- response of the creatives.list method.
+data CreativeDealsStatus
+    = CDSStatusUnspecified
+      -- ^ @STATUS_UNSPECIFIED@
+      -- The status is unknown.
+    | CDSNotChecked
+      -- ^ @NOT_CHECKED@
+      -- The creative has not been checked.
+    | CDSConditionallyApproved
+      -- ^ @CONDITIONALLY_APPROVED@
+      -- The creative has been conditionally approved. See serving_restrictions
+      -- for details.
+    | CDSApproved
+      -- ^ @APPROVED@
+      -- The creative has been approved.
+    | CDSDisApproved
+      -- ^ @DISAPPROVED@
+      -- The creative has been disapproved.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeDealsStatus
+
+instance FromHttpApiData CreativeDealsStatus where
+    parseQueryParam = \case
+        "STATUS_UNSPECIFIED" -> Right CDSStatusUnspecified
+        "NOT_CHECKED" -> Right CDSNotChecked
+        "CONDITIONALLY_APPROVED" -> Right CDSConditionallyApproved
+        "APPROVED" -> Right CDSApproved
+        "DISAPPROVED" -> Right CDSDisApproved
+        x -> Left ("Unable to parse CreativeDealsStatus from: " <> x)
+
+instance ToHttpApiData CreativeDealsStatus where
+    toQueryParam = \case
+        CDSStatusUnspecified -> "STATUS_UNSPECIFIED"
+        CDSNotChecked -> "NOT_CHECKED"
+        CDSConditionallyApproved -> "CONDITIONALLY_APPROVED"
+        CDSApproved -> "APPROVED"
+        CDSDisApproved -> "DISAPPROVED"
+
+instance FromJSON CreativeDealsStatus where
+    parseJSON = parseJSONText "CreativeDealsStatus"
+
+instance ToJSON CreativeDealsStatus where
+    toJSON = toJSONText
+
+-- | The type of skippable ad for this creative. It will have a value only if
+-- creative_size_type = CreativeSizeType.VIDEO.
+data CreativeSizeSkippableAdType
+    = CSSATSkippableAdTypeUnspecified
+      -- ^ @SKIPPABLE_AD_TYPE_UNSPECIFIED@
+      -- A placeholder for an undefined skippable ad type.
+    | CSSATGeneric
+      -- ^ @GENERIC@
+      -- This video ad can be skipped after 5 seconds.
+    | CSSATInstreamSelect
+      -- ^ @INSTREAM_SELECT@
+      -- This video ad can be skipped after 5 seconds, and count as engaged view
+      -- after 30 seconds. The creative is hosted on YouTube only, and viewcount
+      -- of the YouTube video increments after the engaged view.
+    | CSSATNotSkippable
+      -- ^ @NOT_SKIPPABLE@
+      -- This video ad is not skippable.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeSizeSkippableAdType
+
+instance FromHttpApiData CreativeSizeSkippableAdType where
+    parseQueryParam = \case
+        "SKIPPABLE_AD_TYPE_UNSPECIFIED" -> Right CSSATSkippableAdTypeUnspecified
+        "GENERIC" -> Right CSSATGeneric
+        "INSTREAM_SELECT" -> Right CSSATInstreamSelect
+        "NOT_SKIPPABLE" -> Right CSSATNotSkippable
+        x -> Left ("Unable to parse CreativeSizeSkippableAdType from: " <> x)
+
+instance ToHttpApiData CreativeSizeSkippableAdType where
+    toQueryParam = \case
+        CSSATSkippableAdTypeUnspecified -> "SKIPPABLE_AD_TYPE_UNSPECIFIED"
+        CSSATGeneric -> "GENERIC"
+        CSSATInstreamSelect -> "INSTREAM_SELECT"
+        CSSATNotSkippable -> "NOT_SKIPPABLE"
+
+instance FromJSON CreativeSizeSkippableAdType where
+    parseJSON = parseJSONText "CreativeSizeSkippableAdType"
+
+instance ToJSON CreativeSizeSkippableAdType where
+    toJSON = toJSONText
+
+-- | The role of the person (buyer\/seller) creating the note. \'OutputOnly
+data NoteCreatorRole
+    = NCRBuyerSellerRoleUnspecified
+      -- ^ @BUYER_SELLER_ROLE_UNSPECIFIED@
+      -- A placeholder for an undefined buyer\/seller role.
+    | NCRBuyer
+      -- ^ @BUYER@
+      -- Specifies the role as buyer.
+    | NCRSeller
+      -- ^ @SELLER@
+      -- Specifies the role as seller.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable NoteCreatorRole
+
+instance FromHttpApiData NoteCreatorRole where
+    parseQueryParam = \case
+        "BUYER_SELLER_ROLE_UNSPECIFIED" -> Right NCRBuyerSellerRoleUnspecified
+        "BUYER" -> Right NCRBuyer
+        "SELLER" -> Right NCRSeller
+        x -> Left ("Unable to parse NoteCreatorRole from: " <> x)
+
+instance ToHttpApiData NoteCreatorRole where
+    toQueryParam = \case
+        NCRBuyerSellerRoleUnspecified -> "BUYER_SELLER_ROLE_UNSPECIFIED"
+        NCRBuyer -> "BUYER"
+        NCRSeller -> "SELLER"
+
+instance FromJSON NoteCreatorRole where
+    parseJSON = parseJSONText "NoteCreatorRole"
+
+instance ToJSON NoteCreatorRole where
+    toJSON = toJSONText
+
+-- | The creative size type.
+data CreativeSizeCreativeSizeType
+    = CSCSTCreativeSizeTypeUnspecified
+      -- ^ @CREATIVE_SIZE_TYPE_UNSPECIFIED@
+      -- A placeholder for an undefined creative size type.
+    | CSCSTRegular
+      -- ^ @REGULAR@
+      -- The creative is a regular desktop creative.
+    | CSCSTInterstitial
+      -- ^ @INTERSTITIAL@
+      -- The creative is an interstitial creative.
+    | CSCSTVideo
+      -- ^ @VIDEO@
+      -- The creative is a video creative.
+    | CSCSTNATive
+      -- ^ @NATIVE@
+      -- The creative is a native (mobile) creative.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeSizeCreativeSizeType
+
+instance FromHttpApiData CreativeSizeCreativeSizeType where
+    parseQueryParam = \case
+        "CREATIVE_SIZE_TYPE_UNSPECIFIED" -> Right CSCSTCreativeSizeTypeUnspecified
+        "REGULAR" -> Right CSCSTRegular
+        "INTERSTITIAL" -> Right CSCSTInterstitial
+        "VIDEO" -> Right CSCSTVideo
+        "NATIVE" -> Right CSCSTNATive
+        x -> Left ("Unable to parse CreativeSizeCreativeSizeType from: " <> x)
+
+instance ToHttpApiData CreativeSizeCreativeSizeType where
+    toQueryParam = \case
+        CSCSTCreativeSizeTypeUnspecified -> "CREATIVE_SIZE_TYPE_UNSPECIFIED"
+        CSCSTRegular -> "REGULAR"
+        CSCSTInterstitial -> "INTERSTITIAL"
+        CSCSTVideo -> "VIDEO"
+        CSCSTNATive -> "NATIVE"
+
+instance FromJSON CreativeSizeCreativeSizeType where
+    parseJSON = parseJSONText "CreativeSizeCreativeSizeType"
+
+instance ToJSON CreativeSizeCreativeSizeType where
+    toJSON = toJSONText
+
+-- | The type of correction that was applied to the creative.
+data CorrectionType
+    = CorrectionTypeUnspecified
+      -- ^ @CORRECTION_TYPE_UNSPECIFIED@
+      -- The correction type is unknown. Refer to the details for more
+      -- information.
+    | VendorIdsAdded
+      -- ^ @VENDOR_IDS_ADDED@
+      -- The ad\'s declared vendors did not match the vendors that were detected.
+      -- The detected vendors were added.
+    | SSLAttributeRemoved
+      -- ^ @SSL_ATTRIBUTE_REMOVED@
+      -- The ad had the SSL attribute declared but was not SSL-compliant. The SSL
+      -- attribute was removed.
+    | FlashFreeAttributeRemoved
+      -- ^ @FLASH_FREE_ATTRIBUTE_REMOVED@
+      -- The ad was declared as Flash-free but contained Flash, so the Flash-free
+      -- attribute was removed.
+    | FlashFreeAttributeAdded
+      -- ^ @FLASH_FREE_ATTRIBUTE_ADDED@
+      -- The ad was not declared as Flash-free but it did not reference any flash
+      -- content, so the Flash-free attribute was added.
+    | RequiredAttributeAdded
+      -- ^ @REQUIRED_ATTRIBUTE_ADDED@
+      -- The ad did not declare a required creative attribute. The attribute was
+      -- added.
+    | RequiredVendorAdded
+      -- ^ @REQUIRED_VENDOR_ADDED@
+      -- The ad did not declare a required technology vendor. The technology
+      -- vendor was added.
+    | SSLAttributeAdded
+      -- ^ @SSL_ATTRIBUTE_ADDED@
+      -- The ad did not declare the SSL attribute but was SSL-compliant, so the
+      -- SSL attribute was added.
+    | InBannerVideoAttributeAdded
+      -- ^ @IN_BANNER_VIDEO_ATTRIBUTE_ADDED@
+      -- Properties consistent with In-banner video were found, so an In-Banner
+      -- Video attribute was added.
+    | MraidAttributeAdded
+      -- ^ @MRAID_ATTRIBUTE_ADDED@
+      -- The ad makes calls to the MRAID API so the MRAID attribute was added.
+    | FlashAttributeRemoved
+      -- ^ @FLASH_ATTRIBUTE_REMOVED@
+      -- The ad unnecessarily declared the Flash attribute, so the Flash
+      -- attribute was removed.
+    | VideoInSnippetAttributeAdded
+      -- ^ @VIDEO_IN_SNIPPET_ATTRIBUTE_ADDED@
+      -- The ad contains video content.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CorrectionType
+
+instance FromHttpApiData CorrectionType where
+    parseQueryParam = \case
+        "CORRECTION_TYPE_UNSPECIFIED" -> Right CorrectionTypeUnspecified
+        "VENDOR_IDS_ADDED" -> Right VendorIdsAdded
+        "SSL_ATTRIBUTE_REMOVED" -> Right SSLAttributeRemoved
+        "FLASH_FREE_ATTRIBUTE_REMOVED" -> Right FlashFreeAttributeRemoved
+        "FLASH_FREE_ATTRIBUTE_ADDED" -> Right FlashFreeAttributeAdded
+        "REQUIRED_ATTRIBUTE_ADDED" -> Right RequiredAttributeAdded
+        "REQUIRED_VENDOR_ADDED" -> Right RequiredVendorAdded
+        "SSL_ATTRIBUTE_ADDED" -> Right SSLAttributeAdded
+        "IN_BANNER_VIDEO_ATTRIBUTE_ADDED" -> Right InBannerVideoAttributeAdded
+        "MRAID_ATTRIBUTE_ADDED" -> Right MraidAttributeAdded
+        "FLASH_ATTRIBUTE_REMOVED" -> Right FlashAttributeRemoved
+        "VIDEO_IN_SNIPPET_ATTRIBUTE_ADDED" -> Right VideoInSnippetAttributeAdded
+        x -> Left ("Unable to parse CorrectionType from: " <> x)
+
+instance ToHttpApiData CorrectionType where
+    toQueryParam = \case
+        CorrectionTypeUnspecified -> "CORRECTION_TYPE_UNSPECIFIED"
+        VendorIdsAdded -> "VENDOR_IDS_ADDED"
+        SSLAttributeRemoved -> "SSL_ATTRIBUTE_REMOVED"
+        FlashFreeAttributeRemoved -> "FLASH_FREE_ATTRIBUTE_REMOVED"
+        FlashFreeAttributeAdded -> "FLASH_FREE_ATTRIBUTE_ADDED"
+        RequiredAttributeAdded -> "REQUIRED_ATTRIBUTE_ADDED"
+        RequiredVendorAdded -> "REQUIRED_VENDOR_ADDED"
+        SSLAttributeAdded -> "SSL_ATTRIBUTE_ADDED"
+        InBannerVideoAttributeAdded -> "IN_BANNER_VIDEO_ATTRIBUTE_ADDED"
+        MraidAttributeAdded -> "MRAID_ATTRIBUTE_ADDED"
+        FlashAttributeRemoved -> "FLASH_ATTRIBUTE_REMOVED"
+        VideoInSnippetAttributeAdded -> "VIDEO_IN_SNIPPET_ATTRIBUTE_ADDED"
+
+instance FromJSON CorrectionType where
+    parseJSON = parseJSONText "CorrectionType"
+
+instance ToJSON CorrectionType where
+    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Create.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Create.hs
@@ -0,0 +1,162 @@
+{-# 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.AdExchangeBuyer2.Accounts.Clients.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new client buyer.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.clients.create@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Create
+    (
+    -- * REST Resource
+      AccountsClientsCreateResource
+
+    -- * Creating a Request
+    , accountsClientsCreate
+    , AccountsClientsCreate
+
+    -- * Request Lenses
+    , accXgafv
+    , accUploadProtocol
+    , accAccessToken
+    , accUploadType
+    , accPayload
+    , accAccountId
+    , accCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.clients.create@ method which the
+-- 'AccountsClientsCreate' request conforms to.
+type AccountsClientsCreateResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" (Textual Int64) :>
+           "clients" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] Client :> Post '[JSON] Client
+
+-- | Creates a new client buyer.
+--
+-- /See:/ 'accountsClientsCreate' smart constructor.
+data AccountsClientsCreate = AccountsClientsCreate'
+    { _accXgafv          :: !(Maybe Xgafv)
+    , _accUploadProtocol :: !(Maybe Text)
+    , _accAccessToken    :: !(Maybe Text)
+    , _accUploadType     :: !(Maybe Text)
+    , _accPayload        :: !Client
+    , _accAccountId      :: !(Textual Int64)
+    , _accCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsClientsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'accXgafv'
+--
+-- * 'accUploadProtocol'
+--
+-- * 'accAccessToken'
+--
+-- * 'accUploadType'
+--
+-- * 'accPayload'
+--
+-- * 'accAccountId'
+--
+-- * 'accCallback'
+accountsClientsCreate
+    :: Client -- ^ 'accPayload'
+    -> Int64 -- ^ 'accAccountId'
+    -> AccountsClientsCreate
+accountsClientsCreate pAccPayload_ pAccAccountId_ =
+    AccountsClientsCreate'
+    { _accXgafv = Nothing
+    , _accUploadProtocol = Nothing
+    , _accAccessToken = Nothing
+    , _accUploadType = Nothing
+    , _accPayload = pAccPayload_
+    , _accAccountId = _Coerce # pAccAccountId_
+    , _accCallback = Nothing
+    }
+
+-- | V1 error format.
+accXgafv :: Lens' AccountsClientsCreate (Maybe Xgafv)
+accXgafv = lens _accXgafv (\ s a -> s{_accXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+accUploadProtocol :: Lens' AccountsClientsCreate (Maybe Text)
+accUploadProtocol
+  = lens _accUploadProtocol
+      (\ s a -> s{_accUploadProtocol = a})
+
+-- | OAuth access token.
+accAccessToken :: Lens' AccountsClientsCreate (Maybe Text)
+accAccessToken
+  = lens _accAccessToken
+      (\ s a -> s{_accAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+accUploadType :: Lens' AccountsClientsCreate (Maybe Text)
+accUploadType
+  = lens _accUploadType
+      (\ s a -> s{_accUploadType = a})
+
+-- | Multipart request metadata.
+accPayload :: Lens' AccountsClientsCreate Client
+accPayload
+  = lens _accPayload (\ s a -> s{_accPayload = a})
+
+-- | Unique numerical account ID for the buyer of which the client buyer is a
+-- customer; the sponsor buyer to create a client for. (required)
+accAccountId :: Lens' AccountsClientsCreate Int64
+accAccountId
+  = lens _accAccountId (\ s a -> s{_accAccountId = a})
+      . _Coerce
+
+-- | JSONP
+accCallback :: Lens' AccountsClientsCreate (Maybe Text)
+accCallback
+  = lens _accCallback (\ s a -> s{_accCallback = a})
+
+instance GoogleRequest AccountsClientsCreate where
+        type Rs AccountsClientsCreate = Client
+        type Scopes AccountsClientsCreate =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsClientsCreate'{..}
+          = go _accAccountId _accXgafv _accUploadProtocol
+              _accAccessToken
+              _accUploadType
+              _accCallback
+              (Just AltJSON)
+              _accPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsClientsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Get.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Get.hs
@@ -0,0 +1,165 @@
+{-# 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.AdExchangeBuyer2.Accounts.Clients.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a client buyer with a given client account ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.clients.get@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Get
+    (
+    -- * REST Resource
+      AccountsClientsGetResource
+
+    -- * Creating a Request
+    , accountsClientsGet
+    , AccountsClientsGet
+
+    -- * Request Lenses
+    , acgcXgafv
+    , acgcUploadProtocol
+    , acgcAccessToken
+    , acgcUploadType
+    , acgcAccountId
+    , acgcClientAccountId
+    , acgcCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.clients.get@ method which the
+-- 'AccountsClientsGet' request conforms to.
+type AccountsClientsGetResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" (Textual Int64) :>
+           "clients" :>
+             Capture "clientAccountId" (Textual Int64) :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] Client
+
+-- | Gets a client buyer with a given client account ID.
+--
+-- /See:/ 'accountsClientsGet' smart constructor.
+data AccountsClientsGet = AccountsClientsGet'
+    { _acgcXgafv           :: !(Maybe Xgafv)
+    , _acgcUploadProtocol  :: !(Maybe Text)
+    , _acgcAccessToken     :: !(Maybe Text)
+    , _acgcUploadType      :: !(Maybe Text)
+    , _acgcAccountId       :: !(Textual Int64)
+    , _acgcClientAccountId :: !(Textual Int64)
+    , _acgcCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsClientsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acgcXgafv'
+--
+-- * 'acgcUploadProtocol'
+--
+-- * 'acgcAccessToken'
+--
+-- * 'acgcUploadType'
+--
+-- * 'acgcAccountId'
+--
+-- * 'acgcClientAccountId'
+--
+-- * 'acgcCallback'
+accountsClientsGet
+    :: Int64 -- ^ 'acgcAccountId'
+    -> Int64 -- ^ 'acgcClientAccountId'
+    -> AccountsClientsGet
+accountsClientsGet pAcgcAccountId_ pAcgcClientAccountId_ =
+    AccountsClientsGet'
+    { _acgcXgafv = Nothing
+    , _acgcUploadProtocol = Nothing
+    , _acgcAccessToken = Nothing
+    , _acgcUploadType = Nothing
+    , _acgcAccountId = _Coerce # pAcgcAccountId_
+    , _acgcClientAccountId = _Coerce # pAcgcClientAccountId_
+    , _acgcCallback = Nothing
+    }
+
+-- | V1 error format.
+acgcXgafv :: Lens' AccountsClientsGet (Maybe Xgafv)
+acgcXgafv
+  = lens _acgcXgafv (\ s a -> s{_acgcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acgcUploadProtocol :: Lens' AccountsClientsGet (Maybe Text)
+acgcUploadProtocol
+  = lens _acgcUploadProtocol
+      (\ s a -> s{_acgcUploadProtocol = a})
+
+-- | OAuth access token.
+acgcAccessToken :: Lens' AccountsClientsGet (Maybe Text)
+acgcAccessToken
+  = lens _acgcAccessToken
+      (\ s a -> s{_acgcAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acgcUploadType :: Lens' AccountsClientsGet (Maybe Text)
+acgcUploadType
+  = lens _acgcUploadType
+      (\ s a -> s{_acgcUploadType = a})
+
+-- | Numerical account ID of the client\'s sponsor buyer. (required)
+acgcAccountId :: Lens' AccountsClientsGet Int64
+acgcAccountId
+  = lens _acgcAccountId
+      (\ s a -> s{_acgcAccountId = a})
+      . _Coerce
+
+-- | Numerical account ID of the client buyer to retrieve. (required)
+acgcClientAccountId :: Lens' AccountsClientsGet Int64
+acgcClientAccountId
+  = lens _acgcClientAccountId
+      (\ s a -> s{_acgcClientAccountId = a})
+      . _Coerce
+
+-- | JSONP
+acgcCallback :: Lens' AccountsClientsGet (Maybe Text)
+acgcCallback
+  = lens _acgcCallback (\ s a -> s{_acgcCallback = a})
+
+instance GoogleRequest AccountsClientsGet where
+        type Rs AccountsClientsGet = Client
+        type Scopes AccountsClientsGet =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsClientsGet'{..}
+          = go _acgcAccountId _acgcClientAccountId _acgcXgafv
+              _acgcUploadProtocol
+              _acgcAccessToken
+              _acgcUploadType
+              _acgcCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsClientsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Invitations/Create.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Invitations/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Invitations/Create.hs
@@ -0,0 +1,186 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates and sends out an email invitation to access an Ad Exchange
+-- client buyer account.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.clients.invitations.create@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.Create
+    (
+    -- * REST Resource
+      AccountsClientsInvitationsCreateResource
+
+    -- * Creating a Request
+    , accountsClientsInvitationsCreate
+    , AccountsClientsInvitationsCreate
+
+    -- * Request Lenses
+    , acicXgafv
+    , acicUploadProtocol
+    , acicAccessToken
+    , acicUploadType
+    , acicPayload
+    , acicAccountId
+    , acicClientAccountId
+    , acicCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.clients.invitations.create@ method which the
+-- 'AccountsClientsInvitationsCreate' request conforms to.
+type AccountsClientsInvitationsCreateResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" (Textual Int64) :>
+           "clients" :>
+             Capture "clientAccountId" (Textual Int64) :>
+               "invitations" :>
+                 QueryParam "$.xgafv" Xgafv :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] ClientUserInvitation :>
+                               Post '[JSON] ClientUserInvitation
+
+-- | Creates and sends out an email invitation to access an Ad Exchange
+-- client buyer account.
+--
+-- /See:/ 'accountsClientsInvitationsCreate' smart constructor.
+data AccountsClientsInvitationsCreate = AccountsClientsInvitationsCreate'
+    { _acicXgafv           :: !(Maybe Xgafv)
+    , _acicUploadProtocol  :: !(Maybe Text)
+    , _acicAccessToken     :: !(Maybe Text)
+    , _acicUploadType      :: !(Maybe Text)
+    , _acicPayload         :: !ClientUserInvitation
+    , _acicAccountId       :: !(Textual Int64)
+    , _acicClientAccountId :: !(Textual Int64)
+    , _acicCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsClientsInvitationsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acicXgafv'
+--
+-- * 'acicUploadProtocol'
+--
+-- * 'acicAccessToken'
+--
+-- * 'acicUploadType'
+--
+-- * 'acicPayload'
+--
+-- * 'acicAccountId'
+--
+-- * 'acicClientAccountId'
+--
+-- * 'acicCallback'
+accountsClientsInvitationsCreate
+    :: ClientUserInvitation -- ^ 'acicPayload'
+    -> Int64 -- ^ 'acicAccountId'
+    -> Int64 -- ^ 'acicClientAccountId'
+    -> AccountsClientsInvitationsCreate
+accountsClientsInvitationsCreate pAcicPayload_ pAcicAccountId_ pAcicClientAccountId_ =
+    AccountsClientsInvitationsCreate'
+    { _acicXgafv = Nothing
+    , _acicUploadProtocol = Nothing
+    , _acicAccessToken = Nothing
+    , _acicUploadType = Nothing
+    , _acicPayload = pAcicPayload_
+    , _acicAccountId = _Coerce # pAcicAccountId_
+    , _acicClientAccountId = _Coerce # pAcicClientAccountId_
+    , _acicCallback = Nothing
+    }
+
+-- | V1 error format.
+acicXgafv :: Lens' AccountsClientsInvitationsCreate (Maybe Xgafv)
+acicXgafv
+  = lens _acicXgafv (\ s a -> s{_acicXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acicUploadProtocol :: Lens' AccountsClientsInvitationsCreate (Maybe Text)
+acicUploadProtocol
+  = lens _acicUploadProtocol
+      (\ s a -> s{_acicUploadProtocol = a})
+
+-- | OAuth access token.
+acicAccessToken :: Lens' AccountsClientsInvitationsCreate (Maybe Text)
+acicAccessToken
+  = lens _acicAccessToken
+      (\ s a -> s{_acicAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acicUploadType :: Lens' AccountsClientsInvitationsCreate (Maybe Text)
+acicUploadType
+  = lens _acicUploadType
+      (\ s a -> s{_acicUploadType = a})
+
+-- | Multipart request metadata.
+acicPayload :: Lens' AccountsClientsInvitationsCreate ClientUserInvitation
+acicPayload
+  = lens _acicPayload (\ s a -> s{_acicPayload = a})
+
+-- | Numerical account ID of the client\'s sponsor buyer. (required)
+acicAccountId :: Lens' AccountsClientsInvitationsCreate Int64
+acicAccountId
+  = lens _acicAccountId
+      (\ s a -> s{_acicAccountId = a})
+      . _Coerce
+
+-- | Numerical account ID of the client buyer that the user should be
+-- associated with. (required)
+acicClientAccountId :: Lens' AccountsClientsInvitationsCreate Int64
+acicClientAccountId
+  = lens _acicClientAccountId
+      (\ s a -> s{_acicClientAccountId = a})
+      . _Coerce
+
+-- | JSONP
+acicCallback :: Lens' AccountsClientsInvitationsCreate (Maybe Text)
+acicCallback
+  = lens _acicCallback (\ s a -> s{_acicCallback = a})
+
+instance GoogleRequest
+         AccountsClientsInvitationsCreate where
+        type Rs AccountsClientsInvitationsCreate =
+             ClientUserInvitation
+        type Scopes AccountsClientsInvitationsCreate =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsClientsInvitationsCreate'{..}
+          = go _acicAccountId _acicClientAccountId _acicXgafv
+              _acicUploadProtocol
+              _acicAccessToken
+              _acicUploadType
+              _acicCallback
+              (Just AltJSON)
+              _acicPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsClientsInvitationsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Invitations/Get.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Invitations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Invitations/Get.hs
@@ -0,0 +1,187 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an existing client user invitation.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.clients.invitations.get@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.Get
+    (
+    -- * REST Resource
+      AccountsClientsInvitationsGetResource
+
+    -- * Creating a Request
+    , accountsClientsInvitationsGet
+    , AccountsClientsInvitationsGet
+
+    -- * Request Lenses
+    , acigXgafv
+    , acigUploadProtocol
+    , acigAccessToken
+    , acigUploadType
+    , acigInvitationId
+    , acigAccountId
+    , acigClientAccountId
+    , acigCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.clients.invitations.get@ method which the
+-- 'AccountsClientsInvitationsGet' request conforms to.
+type AccountsClientsInvitationsGetResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" (Textual Int64) :>
+           "clients" :>
+             Capture "clientAccountId" (Textual Int64) :>
+               "invitations" :>
+                 Capture "invitationId" (Textual Int64) :>
+                   QueryParam "$.xgafv" Xgafv :>
+                     QueryParam "upload_protocol" Text :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ClientUserInvitation
+
+-- | Retrieves an existing client user invitation.
+--
+-- /See:/ 'accountsClientsInvitationsGet' smart constructor.
+data AccountsClientsInvitationsGet = AccountsClientsInvitationsGet'
+    { _acigXgafv           :: !(Maybe Xgafv)
+    , _acigUploadProtocol  :: !(Maybe Text)
+    , _acigAccessToken     :: !(Maybe Text)
+    , _acigUploadType      :: !(Maybe Text)
+    , _acigInvitationId    :: !(Textual Int64)
+    , _acigAccountId       :: !(Textual Int64)
+    , _acigClientAccountId :: !(Textual Int64)
+    , _acigCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsClientsInvitationsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acigXgafv'
+--
+-- * 'acigUploadProtocol'
+--
+-- * 'acigAccessToken'
+--
+-- * 'acigUploadType'
+--
+-- * 'acigInvitationId'
+--
+-- * 'acigAccountId'
+--
+-- * 'acigClientAccountId'
+--
+-- * 'acigCallback'
+accountsClientsInvitationsGet
+    :: Int64 -- ^ 'acigInvitationId'
+    -> Int64 -- ^ 'acigAccountId'
+    -> Int64 -- ^ 'acigClientAccountId'
+    -> AccountsClientsInvitationsGet
+accountsClientsInvitationsGet pAcigInvitationId_ pAcigAccountId_ pAcigClientAccountId_ =
+    AccountsClientsInvitationsGet'
+    { _acigXgafv = Nothing
+    , _acigUploadProtocol = Nothing
+    , _acigAccessToken = Nothing
+    , _acigUploadType = Nothing
+    , _acigInvitationId = _Coerce # pAcigInvitationId_
+    , _acigAccountId = _Coerce # pAcigAccountId_
+    , _acigClientAccountId = _Coerce # pAcigClientAccountId_
+    , _acigCallback = Nothing
+    }
+
+-- | V1 error format.
+acigXgafv :: Lens' AccountsClientsInvitationsGet (Maybe Xgafv)
+acigXgafv
+  = lens _acigXgafv (\ s a -> s{_acigXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acigUploadProtocol :: Lens' AccountsClientsInvitationsGet (Maybe Text)
+acigUploadProtocol
+  = lens _acigUploadProtocol
+      (\ s a -> s{_acigUploadProtocol = a})
+
+-- | OAuth access token.
+acigAccessToken :: Lens' AccountsClientsInvitationsGet (Maybe Text)
+acigAccessToken
+  = lens _acigAccessToken
+      (\ s a -> s{_acigAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acigUploadType :: Lens' AccountsClientsInvitationsGet (Maybe Text)
+acigUploadType
+  = lens _acigUploadType
+      (\ s a -> s{_acigUploadType = a})
+
+-- | Numerical identifier of the user invitation to retrieve. (required)
+acigInvitationId :: Lens' AccountsClientsInvitationsGet Int64
+acigInvitationId
+  = lens _acigInvitationId
+      (\ s a -> s{_acigInvitationId = a})
+      . _Coerce
+
+-- | Numerical account ID of the client\'s sponsor buyer. (required)
+acigAccountId :: Lens' AccountsClientsInvitationsGet Int64
+acigAccountId
+  = lens _acigAccountId
+      (\ s a -> s{_acigAccountId = a})
+      . _Coerce
+
+-- | Numerical account ID of the client buyer that the user invitation to be
+-- retrieved is associated with. (required)
+acigClientAccountId :: Lens' AccountsClientsInvitationsGet Int64
+acigClientAccountId
+  = lens _acigClientAccountId
+      (\ s a -> s{_acigClientAccountId = a})
+      . _Coerce
+
+-- | JSONP
+acigCallback :: Lens' AccountsClientsInvitationsGet (Maybe Text)
+acigCallback
+  = lens _acigCallback (\ s a -> s{_acigCallback = a})
+
+instance GoogleRequest AccountsClientsInvitationsGet
+         where
+        type Rs AccountsClientsInvitationsGet =
+             ClientUserInvitation
+        type Scopes AccountsClientsInvitationsGet =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsClientsInvitationsGet'{..}
+          = go _acigAccountId _acigClientAccountId
+              _acigInvitationId
+              _acigXgafv
+              _acigUploadProtocol
+              _acigAccessToken
+              _acigUploadType
+              _acigCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsClientsInvitationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Invitations/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Invitations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Invitations/List.hs
@@ -0,0 +1,204 @@
+{-# 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.AdExchangeBuyer2.Accounts.Clients.Invitations.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all the client users invitations for a client with a given account
+-- ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.clients.invitations.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.List
+    (
+    -- * REST Resource
+      AccountsClientsInvitationsListResource
+
+    -- * Creating a Request
+    , accountsClientsInvitationsList
+    , AccountsClientsInvitationsList
+
+    -- * Request Lenses
+    , acilXgafv
+    , acilUploadProtocol
+    , acilAccessToken
+    , acilUploadType
+    , acilAccountId
+    , acilClientAccountId
+    , acilPageToken
+    , acilPageSize
+    , acilCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.clients.invitations.list@ method which the
+-- 'AccountsClientsInvitationsList' request conforms to.
+type AccountsClientsInvitationsListResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" (Textual Int64) :>
+           "clients" :>
+             Capture "clientAccountId" Text :>
+               "invitations" :>
+                 QueryParam "$.xgafv" Xgafv :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "pageSize" (Textual Int32) :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] ListClientUserInvitationsResponse
+
+-- | Lists all the client users invitations for a client with a given account
+-- ID.
+--
+-- /See:/ 'accountsClientsInvitationsList' smart constructor.
+data AccountsClientsInvitationsList = AccountsClientsInvitationsList'
+    { _acilXgafv           :: !(Maybe Xgafv)
+    , _acilUploadProtocol  :: !(Maybe Text)
+    , _acilAccessToken     :: !(Maybe Text)
+    , _acilUploadType      :: !(Maybe Text)
+    , _acilAccountId       :: !(Textual Int64)
+    , _acilClientAccountId :: !Text
+    , _acilPageToken       :: !(Maybe Text)
+    , _acilPageSize        :: !(Maybe (Textual Int32))
+    , _acilCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsClientsInvitationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acilXgafv'
+--
+-- * 'acilUploadProtocol'
+--
+-- * 'acilAccessToken'
+--
+-- * 'acilUploadType'
+--
+-- * 'acilAccountId'
+--
+-- * 'acilClientAccountId'
+--
+-- * 'acilPageToken'
+--
+-- * 'acilPageSize'
+--
+-- * 'acilCallback'
+accountsClientsInvitationsList
+    :: Int64 -- ^ 'acilAccountId'
+    -> Text -- ^ 'acilClientAccountId'
+    -> AccountsClientsInvitationsList
+accountsClientsInvitationsList pAcilAccountId_ pAcilClientAccountId_ =
+    AccountsClientsInvitationsList'
+    { _acilXgafv = Nothing
+    , _acilUploadProtocol = Nothing
+    , _acilAccessToken = Nothing
+    , _acilUploadType = Nothing
+    , _acilAccountId = _Coerce # pAcilAccountId_
+    , _acilClientAccountId = pAcilClientAccountId_
+    , _acilPageToken = Nothing
+    , _acilPageSize = Nothing
+    , _acilCallback = Nothing
+    }
+
+-- | V1 error format.
+acilXgafv :: Lens' AccountsClientsInvitationsList (Maybe Xgafv)
+acilXgafv
+  = lens _acilXgafv (\ s a -> s{_acilXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acilUploadProtocol :: Lens' AccountsClientsInvitationsList (Maybe Text)
+acilUploadProtocol
+  = lens _acilUploadProtocol
+      (\ s a -> s{_acilUploadProtocol = a})
+
+-- | OAuth access token.
+acilAccessToken :: Lens' AccountsClientsInvitationsList (Maybe Text)
+acilAccessToken
+  = lens _acilAccessToken
+      (\ s a -> s{_acilAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acilUploadType :: Lens' AccountsClientsInvitationsList (Maybe Text)
+acilUploadType
+  = lens _acilUploadType
+      (\ s a -> s{_acilUploadType = a})
+
+-- | Numerical account ID of the client\'s sponsor buyer. (required)
+acilAccountId :: Lens' AccountsClientsInvitationsList Int64
+acilAccountId
+  = lens _acilAccountId
+      (\ s a -> s{_acilAccountId = a})
+      . _Coerce
+
+-- | Numerical account ID of the client buyer to list invitations for.
+-- (required) You must either specify a string representation of a
+-- numerical account identifier or the \`-\` character to list all the
+-- invitations for all the clients of a given sponsor buyer.
+acilClientAccountId :: Lens' AccountsClientsInvitationsList Text
+acilClientAccountId
+  = lens _acilClientAccountId
+      (\ s a -> s{_acilClientAccountId = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListClientUserInvitationsResponse.nextPageToken returned from the
+-- previous call to the clients.invitations.list method.
+acilPageToken :: Lens' AccountsClientsInvitationsList (Maybe Text)
+acilPageToken
+  = lens _acilPageToken
+      (\ s a -> s{_acilPageToken = a})
+
+-- | Requested page size. Server may return fewer clients than requested. If
+-- unspecified, server will pick an appropriate default.
+acilPageSize :: Lens' AccountsClientsInvitationsList (Maybe Int32)
+acilPageSize
+  = lens _acilPageSize (\ s a -> s{_acilPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+acilCallback :: Lens' AccountsClientsInvitationsList (Maybe Text)
+acilCallback
+  = lens _acilCallback (\ s a -> s{_acilCallback = a})
+
+instance GoogleRequest AccountsClientsInvitationsList
+         where
+        type Rs AccountsClientsInvitationsList =
+             ListClientUserInvitationsResponse
+        type Scopes AccountsClientsInvitationsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsClientsInvitationsList'{..}
+          = go _acilAccountId _acilClientAccountId _acilXgafv
+              _acilUploadProtocol
+              _acilAccessToken
+              _acilUploadType
+              _acilPageToken
+              _acilPageSize
+              _acilCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsClientsInvitationsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/List.hs
@@ -0,0 +1,196 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all the clients for the current sponsor buyer.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.clients.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.List
+    (
+    -- * REST Resource
+      AccountsClientsListResource
+
+    -- * Creating a Request
+    , accountsClientsList
+    , AccountsClientsList
+
+    -- * Request Lenses
+    , aclcXgafv
+    , aclcUploadProtocol
+    , aclcAccessToken
+    , aclcUploadType
+    , aclcAccountId
+    , aclcPartnerClientId
+    , aclcPageToken
+    , aclcPageSize
+    , aclcCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.clients.list@ method which the
+-- 'AccountsClientsList' request conforms to.
+type AccountsClientsListResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" (Textual Int64) :>
+           "clients" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "partnerClientId" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ListClientsResponse
+
+-- | Lists all the clients for the current sponsor buyer.
+--
+-- /See:/ 'accountsClientsList' smart constructor.
+data AccountsClientsList = AccountsClientsList'
+    { _aclcXgafv           :: !(Maybe Xgafv)
+    , _aclcUploadProtocol  :: !(Maybe Text)
+    , _aclcAccessToken     :: !(Maybe Text)
+    , _aclcUploadType      :: !(Maybe Text)
+    , _aclcAccountId       :: !(Textual Int64)
+    , _aclcPartnerClientId :: !(Maybe Text)
+    , _aclcPageToken       :: !(Maybe Text)
+    , _aclcPageSize        :: !(Maybe (Textual Int32))
+    , _aclcCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsClientsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aclcXgafv'
+--
+-- * 'aclcUploadProtocol'
+--
+-- * 'aclcAccessToken'
+--
+-- * 'aclcUploadType'
+--
+-- * 'aclcAccountId'
+--
+-- * 'aclcPartnerClientId'
+--
+-- * 'aclcPageToken'
+--
+-- * 'aclcPageSize'
+--
+-- * 'aclcCallback'
+accountsClientsList
+    :: Int64 -- ^ 'aclcAccountId'
+    -> AccountsClientsList
+accountsClientsList pAclcAccountId_ =
+    AccountsClientsList'
+    { _aclcXgafv = Nothing
+    , _aclcUploadProtocol = Nothing
+    , _aclcAccessToken = Nothing
+    , _aclcUploadType = Nothing
+    , _aclcAccountId = _Coerce # pAclcAccountId_
+    , _aclcPartnerClientId = Nothing
+    , _aclcPageToken = Nothing
+    , _aclcPageSize = Nothing
+    , _aclcCallback = Nothing
+    }
+
+-- | V1 error format.
+aclcXgafv :: Lens' AccountsClientsList (Maybe Xgafv)
+aclcXgafv
+  = lens _aclcXgafv (\ s a -> s{_aclcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aclcUploadProtocol :: Lens' AccountsClientsList (Maybe Text)
+aclcUploadProtocol
+  = lens _aclcUploadProtocol
+      (\ s a -> s{_aclcUploadProtocol = a})
+
+-- | OAuth access token.
+aclcAccessToken :: Lens' AccountsClientsList (Maybe Text)
+aclcAccessToken
+  = lens _aclcAccessToken
+      (\ s a -> s{_aclcAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aclcUploadType :: Lens' AccountsClientsList (Maybe Text)
+aclcUploadType
+  = lens _aclcUploadType
+      (\ s a -> s{_aclcUploadType = a})
+
+-- | Unique numerical account ID of the sponsor buyer to list the clients
+-- for.
+aclcAccountId :: Lens' AccountsClientsList Int64
+aclcAccountId
+  = lens _aclcAccountId
+      (\ s a -> s{_aclcAccountId = a})
+      . _Coerce
+
+-- | Optional unique identifier (from the standpoint of an Ad Exchange
+-- sponsor buyer partner) of the client to return. If specified, at most
+-- one client will be returned in the response.
+aclcPartnerClientId :: Lens' AccountsClientsList (Maybe Text)
+aclcPartnerClientId
+  = lens _aclcPartnerClientId
+      (\ s a -> s{_aclcPartnerClientId = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListClientsResponse.nextPageToken
+-- returned from the previous call to the accounts.clients.list method.
+aclcPageToken :: Lens' AccountsClientsList (Maybe Text)
+aclcPageToken
+  = lens _aclcPageToken
+      (\ s a -> s{_aclcPageToken = a})
+
+-- | Requested page size. The server may return fewer clients than requested.
+-- If unspecified, the server will pick an appropriate default.
+aclcPageSize :: Lens' AccountsClientsList (Maybe Int32)
+aclcPageSize
+  = lens _aclcPageSize (\ s a -> s{_aclcPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+aclcCallback :: Lens' AccountsClientsList (Maybe Text)
+aclcCallback
+  = lens _aclcCallback (\ s a -> s{_aclcCallback = a})
+
+instance GoogleRequest AccountsClientsList where
+        type Rs AccountsClientsList = ListClientsResponse
+        type Scopes AccountsClientsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsClientsList'{..}
+          = go _aclcAccountId _aclcXgafv _aclcUploadProtocol
+              _aclcAccessToken
+              _aclcUploadType
+              _aclcPartnerClientId
+              _aclcPageToken
+              _aclcPageSize
+              _aclcCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsClientsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Update.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Update.hs
@@ -0,0 +1,177 @@
+{-# 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.AdExchangeBuyer2.Accounts.Clients.Update
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing client buyer.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.clients.update@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Update
+    (
+    -- * REST Resource
+      AccountsClientsUpdateResource
+
+    -- * Creating a Request
+    , accountsClientsUpdate
+    , AccountsClientsUpdate
+
+    -- * Request Lenses
+    , acuXgafv
+    , acuUploadProtocol
+    , acuAccessToken
+    , acuUploadType
+    , acuPayload
+    , acuAccountId
+    , acuClientAccountId
+    , acuCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.clients.update@ method which the
+-- 'AccountsClientsUpdate' request conforms to.
+type AccountsClientsUpdateResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" (Textual Int64) :>
+           "clients" :>
+             Capture "clientAccountId" (Textual Int64) :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] Client :> Put '[JSON] Client
+
+-- | Updates an existing client buyer.
+--
+-- /See:/ 'accountsClientsUpdate' smart constructor.
+data AccountsClientsUpdate = AccountsClientsUpdate'
+    { _acuXgafv           :: !(Maybe Xgafv)
+    , _acuUploadProtocol  :: !(Maybe Text)
+    , _acuAccessToken     :: !(Maybe Text)
+    , _acuUploadType      :: !(Maybe Text)
+    , _acuPayload         :: !Client
+    , _acuAccountId       :: !(Textual Int64)
+    , _acuClientAccountId :: !(Textual Int64)
+    , _acuCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsClientsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acuXgafv'
+--
+-- * 'acuUploadProtocol'
+--
+-- * 'acuAccessToken'
+--
+-- * 'acuUploadType'
+--
+-- * 'acuPayload'
+--
+-- * 'acuAccountId'
+--
+-- * 'acuClientAccountId'
+--
+-- * 'acuCallback'
+accountsClientsUpdate
+    :: Client -- ^ 'acuPayload'
+    -> Int64 -- ^ 'acuAccountId'
+    -> Int64 -- ^ 'acuClientAccountId'
+    -> AccountsClientsUpdate
+accountsClientsUpdate pAcuPayload_ pAcuAccountId_ pAcuClientAccountId_ =
+    AccountsClientsUpdate'
+    { _acuXgafv = Nothing
+    , _acuUploadProtocol = Nothing
+    , _acuAccessToken = Nothing
+    , _acuUploadType = Nothing
+    , _acuPayload = pAcuPayload_
+    , _acuAccountId = _Coerce # pAcuAccountId_
+    , _acuClientAccountId = _Coerce # pAcuClientAccountId_
+    , _acuCallback = Nothing
+    }
+
+-- | V1 error format.
+acuXgafv :: Lens' AccountsClientsUpdate (Maybe Xgafv)
+acuXgafv = lens _acuXgafv (\ s a -> s{_acuXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acuUploadProtocol :: Lens' AccountsClientsUpdate (Maybe Text)
+acuUploadProtocol
+  = lens _acuUploadProtocol
+      (\ s a -> s{_acuUploadProtocol = a})
+
+-- | OAuth access token.
+acuAccessToken :: Lens' AccountsClientsUpdate (Maybe Text)
+acuAccessToken
+  = lens _acuAccessToken
+      (\ s a -> s{_acuAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acuUploadType :: Lens' AccountsClientsUpdate (Maybe Text)
+acuUploadType
+  = lens _acuUploadType
+      (\ s a -> s{_acuUploadType = a})
+
+-- | Multipart request metadata.
+acuPayload :: Lens' AccountsClientsUpdate Client
+acuPayload
+  = lens _acuPayload (\ s a -> s{_acuPayload = a})
+
+-- | Unique numerical account ID for the buyer of which the client buyer is a
+-- customer; the sponsor buyer to update a client for. (required)
+acuAccountId :: Lens' AccountsClientsUpdate Int64
+acuAccountId
+  = lens _acuAccountId (\ s a -> s{_acuAccountId = a})
+      . _Coerce
+
+-- | Unique numerical account ID of the client to update. (required)
+acuClientAccountId :: Lens' AccountsClientsUpdate Int64
+acuClientAccountId
+  = lens _acuClientAccountId
+      (\ s a -> s{_acuClientAccountId = a})
+      . _Coerce
+
+-- | JSONP
+acuCallback :: Lens' AccountsClientsUpdate (Maybe Text)
+acuCallback
+  = lens _acuCallback (\ s a -> s{_acuCallback = a})
+
+instance GoogleRequest AccountsClientsUpdate where
+        type Rs AccountsClientsUpdate = Client
+        type Scopes AccountsClientsUpdate =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsClientsUpdate'{..}
+          = go _acuAccountId _acuClientAccountId _acuXgafv
+              _acuUploadProtocol
+              _acuAccessToken
+              _acuUploadType
+              _acuCallback
+              (Just AltJSON)
+              _acuPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsClientsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Users/Get.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Users/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Users/Get.hs
@@ -0,0 +1,181 @@
+{-# 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.AdExchangeBuyer2.Accounts.Clients.Users.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an existing client user.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.clients.users.get@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.Get
+    (
+    -- * REST Resource
+      AccountsClientsUsersGetResource
+
+    -- * Creating a Request
+    , accountsClientsUsersGet
+    , AccountsClientsUsersGet
+
+    -- * Request Lenses
+    , acugXgafv
+    , acugUploadProtocol
+    , acugAccessToken
+    , acugUploadType
+    , acugUserId
+    , acugAccountId
+    , acugClientAccountId
+    , acugCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.clients.users.get@ method which the
+-- 'AccountsClientsUsersGet' request conforms to.
+type AccountsClientsUsersGetResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" (Textual Int64) :>
+           "clients" :>
+             Capture "clientAccountId" (Textual Int64) :>
+               "users" :>
+                 Capture "userId" (Textual Int64) :>
+                   QueryParam "$.xgafv" Xgafv :>
+                     QueryParam "upload_protocol" Text :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :> Get '[JSON] ClientUser
+
+-- | Retrieves an existing client user.
+--
+-- /See:/ 'accountsClientsUsersGet' smart constructor.
+data AccountsClientsUsersGet = AccountsClientsUsersGet'
+    { _acugXgafv           :: !(Maybe Xgafv)
+    , _acugUploadProtocol  :: !(Maybe Text)
+    , _acugAccessToken     :: !(Maybe Text)
+    , _acugUploadType      :: !(Maybe Text)
+    , _acugUserId          :: !(Textual Int64)
+    , _acugAccountId       :: !(Textual Int64)
+    , _acugClientAccountId :: !(Textual Int64)
+    , _acugCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsClientsUsersGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acugXgafv'
+--
+-- * 'acugUploadProtocol'
+--
+-- * 'acugAccessToken'
+--
+-- * 'acugUploadType'
+--
+-- * 'acugUserId'
+--
+-- * 'acugAccountId'
+--
+-- * 'acugClientAccountId'
+--
+-- * 'acugCallback'
+accountsClientsUsersGet
+    :: Int64 -- ^ 'acugUserId'
+    -> Int64 -- ^ 'acugAccountId'
+    -> Int64 -- ^ 'acugClientAccountId'
+    -> AccountsClientsUsersGet
+accountsClientsUsersGet pAcugUserId_ pAcugAccountId_ pAcugClientAccountId_ =
+    AccountsClientsUsersGet'
+    { _acugXgafv = Nothing
+    , _acugUploadProtocol = Nothing
+    , _acugAccessToken = Nothing
+    , _acugUploadType = Nothing
+    , _acugUserId = _Coerce # pAcugUserId_
+    , _acugAccountId = _Coerce # pAcugAccountId_
+    , _acugClientAccountId = _Coerce # pAcugClientAccountId_
+    , _acugCallback = Nothing
+    }
+
+-- | V1 error format.
+acugXgafv :: Lens' AccountsClientsUsersGet (Maybe Xgafv)
+acugXgafv
+  = lens _acugXgafv (\ s a -> s{_acugXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acugUploadProtocol :: Lens' AccountsClientsUsersGet (Maybe Text)
+acugUploadProtocol
+  = lens _acugUploadProtocol
+      (\ s a -> s{_acugUploadProtocol = a})
+
+-- | OAuth access token.
+acugAccessToken :: Lens' AccountsClientsUsersGet (Maybe Text)
+acugAccessToken
+  = lens _acugAccessToken
+      (\ s a -> s{_acugAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acugUploadType :: Lens' AccountsClientsUsersGet (Maybe Text)
+acugUploadType
+  = lens _acugUploadType
+      (\ s a -> s{_acugUploadType = a})
+
+-- | Numerical identifier of the user to retrieve. (required)
+acugUserId :: Lens' AccountsClientsUsersGet Int64
+acugUserId
+  = lens _acugUserId (\ s a -> s{_acugUserId = a}) .
+      _Coerce
+
+-- | Numerical account ID of the client\'s sponsor buyer. (required)
+acugAccountId :: Lens' AccountsClientsUsersGet Int64
+acugAccountId
+  = lens _acugAccountId
+      (\ s a -> s{_acugAccountId = a})
+      . _Coerce
+
+-- | Numerical account ID of the client buyer that the user to be retrieved
+-- is associated with. (required)
+acugClientAccountId :: Lens' AccountsClientsUsersGet Int64
+acugClientAccountId
+  = lens _acugClientAccountId
+      (\ s a -> s{_acugClientAccountId = a})
+      . _Coerce
+
+-- | JSONP
+acugCallback :: Lens' AccountsClientsUsersGet (Maybe Text)
+acugCallback
+  = lens _acugCallback (\ s a -> s{_acugCallback = a})
+
+instance GoogleRequest AccountsClientsUsersGet where
+        type Rs AccountsClientsUsersGet = ClientUser
+        type Scopes AccountsClientsUsersGet =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsClientsUsersGet'{..}
+          = go _acugAccountId _acugClientAccountId _acugUserId
+              _acugXgafv
+              _acugUploadProtocol
+              _acugAccessToken
+              _acugUploadType
+              _acugCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsClientsUsersGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Users/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Users/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Users/List.hs
@@ -0,0 +1,203 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all the known client users for a specified sponsor buyer account
+-- ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.clients.users.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.List
+    (
+    -- * REST Resource
+      AccountsClientsUsersListResource
+
+    -- * Creating a Request
+    , accountsClientsUsersList
+    , AccountsClientsUsersList
+
+    -- * Request Lenses
+    , aculXgafv
+    , aculUploadProtocol
+    , aculAccessToken
+    , aculUploadType
+    , aculAccountId
+    , aculClientAccountId
+    , aculPageToken
+    , aculPageSize
+    , aculCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.clients.users.list@ method which the
+-- 'AccountsClientsUsersList' request conforms to.
+type AccountsClientsUsersListResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" (Textual Int64) :>
+           "clients" :>
+             Capture "clientAccountId" Text :>
+               "users" :>
+                 QueryParam "$.xgafv" Xgafv :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "pageSize" (Textual Int32) :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] ListClientUsersResponse
+
+-- | Lists all the known client users for a specified sponsor buyer account
+-- ID.
+--
+-- /See:/ 'accountsClientsUsersList' smart constructor.
+data AccountsClientsUsersList = AccountsClientsUsersList'
+    { _aculXgafv           :: !(Maybe Xgafv)
+    , _aculUploadProtocol  :: !(Maybe Text)
+    , _aculAccessToken     :: !(Maybe Text)
+    , _aculUploadType      :: !(Maybe Text)
+    , _aculAccountId       :: !(Textual Int64)
+    , _aculClientAccountId :: !Text
+    , _aculPageToken       :: !(Maybe Text)
+    , _aculPageSize        :: !(Maybe (Textual Int32))
+    , _aculCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsClientsUsersList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aculXgafv'
+--
+-- * 'aculUploadProtocol'
+--
+-- * 'aculAccessToken'
+--
+-- * 'aculUploadType'
+--
+-- * 'aculAccountId'
+--
+-- * 'aculClientAccountId'
+--
+-- * 'aculPageToken'
+--
+-- * 'aculPageSize'
+--
+-- * 'aculCallback'
+accountsClientsUsersList
+    :: Int64 -- ^ 'aculAccountId'
+    -> Text -- ^ 'aculClientAccountId'
+    -> AccountsClientsUsersList
+accountsClientsUsersList pAculAccountId_ pAculClientAccountId_ =
+    AccountsClientsUsersList'
+    { _aculXgafv = Nothing
+    , _aculUploadProtocol = Nothing
+    , _aculAccessToken = Nothing
+    , _aculUploadType = Nothing
+    , _aculAccountId = _Coerce # pAculAccountId_
+    , _aculClientAccountId = pAculClientAccountId_
+    , _aculPageToken = Nothing
+    , _aculPageSize = Nothing
+    , _aculCallback = Nothing
+    }
+
+-- | V1 error format.
+aculXgafv :: Lens' AccountsClientsUsersList (Maybe Xgafv)
+aculXgafv
+  = lens _aculXgafv (\ s a -> s{_aculXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aculUploadProtocol :: Lens' AccountsClientsUsersList (Maybe Text)
+aculUploadProtocol
+  = lens _aculUploadProtocol
+      (\ s a -> s{_aculUploadProtocol = a})
+
+-- | OAuth access token.
+aculAccessToken :: Lens' AccountsClientsUsersList (Maybe Text)
+aculAccessToken
+  = lens _aculAccessToken
+      (\ s a -> s{_aculAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aculUploadType :: Lens' AccountsClientsUsersList (Maybe Text)
+aculUploadType
+  = lens _aculUploadType
+      (\ s a -> s{_aculUploadType = a})
+
+-- | Numerical account ID of the sponsor buyer of the client to list users
+-- for. (required)
+aculAccountId :: Lens' AccountsClientsUsersList Int64
+aculAccountId
+  = lens _aculAccountId
+      (\ s a -> s{_aculAccountId = a})
+      . _Coerce
+
+-- | The account ID of the client buyer to list users for. (required) You
+-- must specify either a string representation of a numerical account
+-- identifier or the \`-\` character to list all the client users for all
+-- the clients of a given sponsor buyer.
+aculClientAccountId :: Lens' AccountsClientsUsersList Text
+aculClientAccountId
+  = lens _aculClientAccountId
+      (\ s a -> s{_aculClientAccountId = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListClientUsersResponse.nextPageToken
+-- returned from the previous call to the accounts.clients.users.list
+-- method.
+aculPageToken :: Lens' AccountsClientsUsersList (Maybe Text)
+aculPageToken
+  = lens _aculPageToken
+      (\ s a -> s{_aculPageToken = a})
+
+-- | Requested page size. The server may return fewer clients than requested.
+-- If unspecified, the server will pick an appropriate default.
+aculPageSize :: Lens' AccountsClientsUsersList (Maybe Int32)
+aculPageSize
+  = lens _aculPageSize (\ s a -> s{_aculPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+aculCallback :: Lens' AccountsClientsUsersList (Maybe Text)
+aculCallback
+  = lens _aculCallback (\ s a -> s{_aculCallback = a})
+
+instance GoogleRequest AccountsClientsUsersList where
+        type Rs AccountsClientsUsersList =
+             ListClientUsersResponse
+        type Scopes AccountsClientsUsersList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsClientsUsersList'{..}
+          = go _aculAccountId _aculClientAccountId _aculXgafv
+              _aculUploadProtocol
+              _aculAccessToken
+              _aculUploadType
+              _aculPageToken
+              _aculPageSize
+              _aculCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsClientsUsersListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Users/Update.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Users/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Clients/Users/Update.hs
@@ -0,0 +1,198 @@
+{-# 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.AdExchangeBuyer2.Accounts.Clients.Users.Update
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing client user. Only the user status can be changed on
+-- update.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.clients.users.update@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.Update
+    (
+    -- * REST Resource
+      AccountsClientsUsersUpdateResource
+
+    -- * Creating a Request
+    , accountsClientsUsersUpdate
+    , AccountsClientsUsersUpdate
+
+    -- * Request Lenses
+    , acuuXgafv
+    , acuuUploadProtocol
+    , acuuAccessToken
+    , acuuUploadType
+    , acuuPayload
+    , acuuUserId
+    , acuuAccountId
+    , acuuClientAccountId
+    , acuuCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.clients.users.update@ method which the
+-- 'AccountsClientsUsersUpdate' request conforms to.
+type AccountsClientsUsersUpdateResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" (Textual Int64) :>
+           "clients" :>
+             Capture "clientAccountId" (Textual Int64) :>
+               "users" :>
+                 Capture "userId" (Textual Int64) :>
+                   QueryParam "$.xgafv" Xgafv :>
+                     QueryParam "upload_protocol" Text :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               ReqBody '[JSON] ClientUser :>
+                                 Put '[JSON] ClientUser
+
+-- | Updates an existing client user. Only the user status can be changed on
+-- update.
+--
+-- /See:/ 'accountsClientsUsersUpdate' smart constructor.
+data AccountsClientsUsersUpdate = AccountsClientsUsersUpdate'
+    { _acuuXgafv           :: !(Maybe Xgafv)
+    , _acuuUploadProtocol  :: !(Maybe Text)
+    , _acuuAccessToken     :: !(Maybe Text)
+    , _acuuUploadType      :: !(Maybe Text)
+    , _acuuPayload         :: !ClientUser
+    , _acuuUserId          :: !(Textual Int64)
+    , _acuuAccountId       :: !(Textual Int64)
+    , _acuuClientAccountId :: !(Textual Int64)
+    , _acuuCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsClientsUsersUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acuuXgafv'
+--
+-- * 'acuuUploadProtocol'
+--
+-- * 'acuuAccessToken'
+--
+-- * 'acuuUploadType'
+--
+-- * 'acuuPayload'
+--
+-- * 'acuuUserId'
+--
+-- * 'acuuAccountId'
+--
+-- * 'acuuClientAccountId'
+--
+-- * 'acuuCallback'
+accountsClientsUsersUpdate
+    :: ClientUser -- ^ 'acuuPayload'
+    -> Int64 -- ^ 'acuuUserId'
+    -> Int64 -- ^ 'acuuAccountId'
+    -> Int64 -- ^ 'acuuClientAccountId'
+    -> AccountsClientsUsersUpdate
+accountsClientsUsersUpdate pAcuuPayload_ pAcuuUserId_ pAcuuAccountId_ pAcuuClientAccountId_ =
+    AccountsClientsUsersUpdate'
+    { _acuuXgafv = Nothing
+    , _acuuUploadProtocol = Nothing
+    , _acuuAccessToken = Nothing
+    , _acuuUploadType = Nothing
+    , _acuuPayload = pAcuuPayload_
+    , _acuuUserId = _Coerce # pAcuuUserId_
+    , _acuuAccountId = _Coerce # pAcuuAccountId_
+    , _acuuClientAccountId = _Coerce # pAcuuClientAccountId_
+    , _acuuCallback = Nothing
+    }
+
+-- | V1 error format.
+acuuXgafv :: Lens' AccountsClientsUsersUpdate (Maybe Xgafv)
+acuuXgafv
+  = lens _acuuXgafv (\ s a -> s{_acuuXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acuuUploadProtocol :: Lens' AccountsClientsUsersUpdate (Maybe Text)
+acuuUploadProtocol
+  = lens _acuuUploadProtocol
+      (\ s a -> s{_acuuUploadProtocol = a})
+
+-- | OAuth access token.
+acuuAccessToken :: Lens' AccountsClientsUsersUpdate (Maybe Text)
+acuuAccessToken
+  = lens _acuuAccessToken
+      (\ s a -> s{_acuuAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acuuUploadType :: Lens' AccountsClientsUsersUpdate (Maybe Text)
+acuuUploadType
+  = lens _acuuUploadType
+      (\ s a -> s{_acuuUploadType = a})
+
+-- | Multipart request metadata.
+acuuPayload :: Lens' AccountsClientsUsersUpdate ClientUser
+acuuPayload
+  = lens _acuuPayload (\ s a -> s{_acuuPayload = a})
+
+-- | Numerical identifier of the user to retrieve. (required)
+acuuUserId :: Lens' AccountsClientsUsersUpdate Int64
+acuuUserId
+  = lens _acuuUserId (\ s a -> s{_acuuUserId = a}) .
+      _Coerce
+
+-- | Numerical account ID of the client\'s sponsor buyer. (required)
+acuuAccountId :: Lens' AccountsClientsUsersUpdate Int64
+acuuAccountId
+  = lens _acuuAccountId
+      (\ s a -> s{_acuuAccountId = a})
+      . _Coerce
+
+-- | Numerical account ID of the client buyer that the user to be retrieved
+-- is associated with. (required)
+acuuClientAccountId :: Lens' AccountsClientsUsersUpdate Int64
+acuuClientAccountId
+  = lens _acuuClientAccountId
+      (\ s a -> s{_acuuClientAccountId = a})
+      . _Coerce
+
+-- | JSONP
+acuuCallback :: Lens' AccountsClientsUsersUpdate (Maybe Text)
+acuuCallback
+  = lens _acuuCallback (\ s a -> s{_acuuCallback = a})
+
+instance GoogleRequest AccountsClientsUsersUpdate
+         where
+        type Rs AccountsClientsUsersUpdate = ClientUser
+        type Scopes AccountsClientsUsersUpdate =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsClientsUsersUpdate'{..}
+          = go _acuuAccountId _acuuClientAccountId _acuuUserId
+              _acuuXgafv
+              _acuuUploadProtocol
+              _acuuAccessToken
+              _acuuUploadType
+              _acuuCallback
+              (Just AltJSON)
+              _acuuPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsClientsUsersUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Create.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Create.hs
@@ -0,0 +1,177 @@
+{-# 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.AdExchangeBuyer2.Accounts.Creatives.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a creative.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.creatives.create@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Create
+    (
+    -- * REST Resource
+      AccountsCreativesCreateResource
+
+    -- * Creating a Request
+    , accountsCreativesCreate
+    , AccountsCreativesCreate
+
+    -- * Request Lenses
+    , acccXgafv
+    , acccUploadProtocol
+    , acccAccessToken
+    , acccUploadType
+    , acccPayload
+    , acccAccountId
+    , acccDuplicateIdMode
+    , acccCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.creatives.create@ method which the
+-- 'AccountsCreativesCreate' request conforms to.
+type AccountsCreativesCreateResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "creatives" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "duplicateIdMode" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] Creative :> Post '[JSON] Creative
+
+-- | Creates a creative.
+--
+-- /See:/ 'accountsCreativesCreate' smart constructor.
+data AccountsCreativesCreate = AccountsCreativesCreate'
+    { _acccXgafv           :: !(Maybe Xgafv)
+    , _acccUploadProtocol  :: !(Maybe Text)
+    , _acccAccessToken     :: !(Maybe Text)
+    , _acccUploadType      :: !(Maybe Text)
+    , _acccPayload         :: !Creative
+    , _acccAccountId       :: !Text
+    , _acccDuplicateIdMode :: !(Maybe Text)
+    , _acccCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCreativesCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acccXgafv'
+--
+-- * 'acccUploadProtocol'
+--
+-- * 'acccAccessToken'
+--
+-- * 'acccUploadType'
+--
+-- * 'acccPayload'
+--
+-- * 'acccAccountId'
+--
+-- * 'acccDuplicateIdMode'
+--
+-- * 'acccCallback'
+accountsCreativesCreate
+    :: Creative -- ^ 'acccPayload'
+    -> Text -- ^ 'acccAccountId'
+    -> AccountsCreativesCreate
+accountsCreativesCreate pAcccPayload_ pAcccAccountId_ =
+    AccountsCreativesCreate'
+    { _acccXgafv = Nothing
+    , _acccUploadProtocol = Nothing
+    , _acccAccessToken = Nothing
+    , _acccUploadType = Nothing
+    , _acccPayload = pAcccPayload_
+    , _acccAccountId = pAcccAccountId_
+    , _acccDuplicateIdMode = Nothing
+    , _acccCallback = Nothing
+    }
+
+-- | V1 error format.
+acccXgafv :: Lens' AccountsCreativesCreate (Maybe Xgafv)
+acccXgafv
+  = lens _acccXgafv (\ s a -> s{_acccXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acccUploadProtocol :: Lens' AccountsCreativesCreate (Maybe Text)
+acccUploadProtocol
+  = lens _acccUploadProtocol
+      (\ s a -> s{_acccUploadProtocol = a})
+
+-- | OAuth access token.
+acccAccessToken :: Lens' AccountsCreativesCreate (Maybe Text)
+acccAccessToken
+  = lens _acccAccessToken
+      (\ s a -> s{_acccAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acccUploadType :: Lens' AccountsCreativesCreate (Maybe Text)
+acccUploadType
+  = lens _acccUploadType
+      (\ s a -> s{_acccUploadType = a})
+
+-- | Multipart request metadata.
+acccPayload :: Lens' AccountsCreativesCreate Creative
+acccPayload
+  = lens _acccPayload (\ s a -> s{_acccPayload = a})
+
+-- | The account that this creative belongs to. Can be used to filter the
+-- response of the creatives.list method.
+acccAccountId :: Lens' AccountsCreativesCreate Text
+acccAccountId
+  = lens _acccAccountId
+      (\ s a -> s{_acccAccountId = a})
+
+-- | Indicates if multiple creatives can share an ID or not. Default is
+-- NO_DUPLICATES (one ID per creative).
+acccDuplicateIdMode :: Lens' AccountsCreativesCreate (Maybe Text)
+acccDuplicateIdMode
+  = lens _acccDuplicateIdMode
+      (\ s a -> s{_acccDuplicateIdMode = a})
+
+-- | JSONP
+acccCallback :: Lens' AccountsCreativesCreate (Maybe Text)
+acccCallback
+  = lens _acccCallback (\ s a -> s{_acccCallback = a})
+
+instance GoogleRequest AccountsCreativesCreate where
+        type Rs AccountsCreativesCreate = Creative
+        type Scopes AccountsCreativesCreate =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsCreativesCreate'{..}
+          = go _acccAccountId _acccXgafv _acccUploadProtocol
+              _acccAccessToken
+              _acccUploadType
+              _acccDuplicateIdMode
+              _acccCallback
+              (Just AltJSON)
+              _acccPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsCreativesCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/DealAssociations/Add.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/DealAssociations/Add.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/DealAssociations/Add.hs
@@ -0,0 +1,182 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.Add
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Associate an existing deal with a creative.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.creatives.dealAssociations.add@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.Add
+    (
+    -- * REST Resource
+      AccountsCreativesDealAssociationsAddResource
+
+    -- * Creating a Request
+    , accountsCreativesDealAssociationsAdd
+    , AccountsCreativesDealAssociationsAdd
+
+    -- * Request Lenses
+    , acdaaXgafv
+    , acdaaUploadProtocol
+    , acdaaAccessToken
+    , acdaaUploadType
+    , acdaaCreativeId
+    , acdaaPayload
+    , acdaaAccountId
+    , acdaaCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.creatives.dealAssociations.add@ method which the
+-- 'AccountsCreativesDealAssociationsAdd' request conforms to.
+type AccountsCreativesDealAssociationsAddResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "creatives" :>
+             Capture "creativeId" Text :>
+               "dealAssociations:add" :>
+                 QueryParam "$.xgafv" Xgafv :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] AddDealAssociationRequest :>
+                               Post '[JSON] Empty
+
+-- | Associate an existing deal with a creative.
+--
+-- /See:/ 'accountsCreativesDealAssociationsAdd' smart constructor.
+data AccountsCreativesDealAssociationsAdd = AccountsCreativesDealAssociationsAdd'
+    { _acdaaXgafv          :: !(Maybe Xgafv)
+    , _acdaaUploadProtocol :: !(Maybe Text)
+    , _acdaaAccessToken    :: !(Maybe Text)
+    , _acdaaUploadType     :: !(Maybe Text)
+    , _acdaaCreativeId     :: !Text
+    , _acdaaPayload        :: !AddDealAssociationRequest
+    , _acdaaAccountId      :: !Text
+    , _acdaaCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCreativesDealAssociationsAdd' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acdaaXgafv'
+--
+-- * 'acdaaUploadProtocol'
+--
+-- * 'acdaaAccessToken'
+--
+-- * 'acdaaUploadType'
+--
+-- * 'acdaaCreativeId'
+--
+-- * 'acdaaPayload'
+--
+-- * 'acdaaAccountId'
+--
+-- * 'acdaaCallback'
+accountsCreativesDealAssociationsAdd
+    :: Text -- ^ 'acdaaCreativeId'
+    -> AddDealAssociationRequest -- ^ 'acdaaPayload'
+    -> Text -- ^ 'acdaaAccountId'
+    -> AccountsCreativesDealAssociationsAdd
+accountsCreativesDealAssociationsAdd pAcdaaCreativeId_ pAcdaaPayload_ pAcdaaAccountId_ =
+    AccountsCreativesDealAssociationsAdd'
+    { _acdaaXgafv = Nothing
+    , _acdaaUploadProtocol = Nothing
+    , _acdaaAccessToken = Nothing
+    , _acdaaUploadType = Nothing
+    , _acdaaCreativeId = pAcdaaCreativeId_
+    , _acdaaPayload = pAcdaaPayload_
+    , _acdaaAccountId = pAcdaaAccountId_
+    , _acdaaCallback = Nothing
+    }
+
+-- | V1 error format.
+acdaaXgafv :: Lens' AccountsCreativesDealAssociationsAdd (Maybe Xgafv)
+acdaaXgafv
+  = lens _acdaaXgafv (\ s a -> s{_acdaaXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acdaaUploadProtocol :: Lens' AccountsCreativesDealAssociationsAdd (Maybe Text)
+acdaaUploadProtocol
+  = lens _acdaaUploadProtocol
+      (\ s a -> s{_acdaaUploadProtocol = a})
+
+-- | OAuth access token.
+acdaaAccessToken :: Lens' AccountsCreativesDealAssociationsAdd (Maybe Text)
+acdaaAccessToken
+  = lens _acdaaAccessToken
+      (\ s a -> s{_acdaaAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acdaaUploadType :: Lens' AccountsCreativesDealAssociationsAdd (Maybe Text)
+acdaaUploadType
+  = lens _acdaaUploadType
+      (\ s a -> s{_acdaaUploadType = a})
+
+-- | The ID of the creative associated with the deal.
+acdaaCreativeId :: Lens' AccountsCreativesDealAssociationsAdd Text
+acdaaCreativeId
+  = lens _acdaaCreativeId
+      (\ s a -> s{_acdaaCreativeId = a})
+
+-- | Multipart request metadata.
+acdaaPayload :: Lens' AccountsCreativesDealAssociationsAdd AddDealAssociationRequest
+acdaaPayload
+  = lens _acdaaPayload (\ s a -> s{_acdaaPayload = a})
+
+-- | The account the creative belongs to.
+acdaaAccountId :: Lens' AccountsCreativesDealAssociationsAdd Text
+acdaaAccountId
+  = lens _acdaaAccountId
+      (\ s a -> s{_acdaaAccountId = a})
+
+-- | JSONP
+acdaaCallback :: Lens' AccountsCreativesDealAssociationsAdd (Maybe Text)
+acdaaCallback
+  = lens _acdaaCallback
+      (\ s a -> s{_acdaaCallback = a})
+
+instance GoogleRequest
+         AccountsCreativesDealAssociationsAdd where
+        type Rs AccountsCreativesDealAssociationsAdd = Empty
+        type Scopes AccountsCreativesDealAssociationsAdd =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          AccountsCreativesDealAssociationsAdd'{..}
+          = go _acdaaAccountId _acdaaCreativeId _acdaaXgafv
+              _acdaaUploadProtocol
+              _acdaaAccessToken
+              _acdaaUploadType
+              _acdaaCallback
+              (Just AltJSON)
+              _acdaaPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsCreativesDealAssociationsAddResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/DealAssociations/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/DealAssociations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/DealAssociations/List.hs
@@ -0,0 +1,226 @@
+{-# 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.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all creative-deal associations.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.creatives.dealAssociations.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.List
+    (
+    -- * REST Resource
+      AccountsCreativesDealAssociationsListResource
+
+    -- * Creating a Request
+    , accountsCreativesDealAssociationsList
+    , AccountsCreativesDealAssociationsList
+
+    -- * Request Lenses
+    , acdalXgafv
+    , acdalUploadProtocol
+    , acdalAccessToken
+    , acdalUploadType
+    , acdalCreativeId
+    , acdalAccountId
+    , acdalQuery
+    , acdalPageToken
+    , acdalPageSize
+    , acdalCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.creatives.dealAssociations.list@ method which the
+-- 'AccountsCreativesDealAssociationsList' request conforms to.
+type AccountsCreativesDealAssociationsListResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "creatives" :>
+             Capture "creativeId" Text :>
+               "dealAssociations" :>
+                 QueryParam "$.xgafv" Xgafv :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "query" Text :>
+                           QueryParam "pageToken" Text :>
+                             QueryParam "pageSize" (Textual Int32) :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] ListDealAssociationsResponse
+
+-- | List all creative-deal associations.
+--
+-- /See:/ 'accountsCreativesDealAssociationsList' smart constructor.
+data AccountsCreativesDealAssociationsList = AccountsCreativesDealAssociationsList'
+    { _acdalXgafv          :: !(Maybe Xgafv)
+    , _acdalUploadProtocol :: !(Maybe Text)
+    , _acdalAccessToken    :: !(Maybe Text)
+    , _acdalUploadType     :: !(Maybe Text)
+    , _acdalCreativeId     :: !Text
+    , _acdalAccountId      :: !Text
+    , _acdalQuery          :: !(Maybe Text)
+    , _acdalPageToken      :: !(Maybe Text)
+    , _acdalPageSize       :: !(Maybe (Textual Int32))
+    , _acdalCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCreativesDealAssociationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acdalXgafv'
+--
+-- * 'acdalUploadProtocol'
+--
+-- * 'acdalAccessToken'
+--
+-- * 'acdalUploadType'
+--
+-- * 'acdalCreativeId'
+--
+-- * 'acdalAccountId'
+--
+-- * 'acdalQuery'
+--
+-- * 'acdalPageToken'
+--
+-- * 'acdalPageSize'
+--
+-- * 'acdalCallback'
+accountsCreativesDealAssociationsList
+    :: Text -- ^ 'acdalCreativeId'
+    -> Text -- ^ 'acdalAccountId'
+    -> AccountsCreativesDealAssociationsList
+accountsCreativesDealAssociationsList pAcdalCreativeId_ pAcdalAccountId_ =
+    AccountsCreativesDealAssociationsList'
+    { _acdalXgafv = Nothing
+    , _acdalUploadProtocol = Nothing
+    , _acdalAccessToken = Nothing
+    , _acdalUploadType = Nothing
+    , _acdalCreativeId = pAcdalCreativeId_
+    , _acdalAccountId = pAcdalAccountId_
+    , _acdalQuery = Nothing
+    , _acdalPageToken = Nothing
+    , _acdalPageSize = Nothing
+    , _acdalCallback = Nothing
+    }
+
+-- | V1 error format.
+acdalXgafv :: Lens' AccountsCreativesDealAssociationsList (Maybe Xgafv)
+acdalXgafv
+  = lens _acdalXgafv (\ s a -> s{_acdalXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acdalUploadProtocol :: Lens' AccountsCreativesDealAssociationsList (Maybe Text)
+acdalUploadProtocol
+  = lens _acdalUploadProtocol
+      (\ s a -> s{_acdalUploadProtocol = a})
+
+-- | OAuth access token.
+acdalAccessToken :: Lens' AccountsCreativesDealAssociationsList (Maybe Text)
+acdalAccessToken
+  = lens _acdalAccessToken
+      (\ s a -> s{_acdalAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acdalUploadType :: Lens' AccountsCreativesDealAssociationsList (Maybe Text)
+acdalUploadType
+  = lens _acdalUploadType
+      (\ s a -> s{_acdalUploadType = a})
+
+-- | The creative ID to list the associations from. Specify \"-\" to list all
+-- creatives under the above account.
+acdalCreativeId :: Lens' AccountsCreativesDealAssociationsList Text
+acdalCreativeId
+  = lens _acdalCreativeId
+      (\ s a -> s{_acdalCreativeId = a})
+
+-- | The account to list the associations from. Specify \"-\" to list all
+-- creatives the current user has access to.
+acdalAccountId :: Lens' AccountsCreativesDealAssociationsList Text
+acdalAccountId
+  = lens _acdalAccountId
+      (\ s a -> s{_acdalAccountId = a})
+
+-- | An optional query string to filter deal associations. If no filter is
+-- specified, all associations will be returned. Supported queries are:
+--
+-- -   accountId=/account_id_string/
+-- -   creativeId=/creative_id_string/
+-- -   dealsId=/deals_id_string/
+-- -   dealsStatus:{approved, conditionally_approved, disapproved,
+--     not_checked}
+-- -   openAuctionStatus:{approved, conditionally_approved, disapproved,
+--     not_checked}
+--
+-- Example: \'dealsId=12345 AND dealsStatus:disapproved\'
+acdalQuery :: Lens' AccountsCreativesDealAssociationsList (Maybe Text)
+acdalQuery
+  = lens _acdalQuery (\ s a -> s{_acdalQuery = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListDealAssociationsResponse.next_page_token returned from the previous
+-- call to \'ListDealAssociations\' method.
+acdalPageToken :: Lens' AccountsCreativesDealAssociationsList (Maybe Text)
+acdalPageToken
+  = lens _acdalPageToken
+      (\ s a -> s{_acdalPageToken = a})
+
+-- | Requested page size. Server may return fewer associations than
+-- requested. If unspecified, server will pick an appropriate default.
+acdalPageSize :: Lens' AccountsCreativesDealAssociationsList (Maybe Int32)
+acdalPageSize
+  = lens _acdalPageSize
+      (\ s a -> s{_acdalPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+acdalCallback :: Lens' AccountsCreativesDealAssociationsList (Maybe Text)
+acdalCallback
+  = lens _acdalCallback
+      (\ s a -> s{_acdalCallback = a})
+
+instance GoogleRequest
+         AccountsCreativesDealAssociationsList where
+        type Rs AccountsCreativesDealAssociationsList =
+             ListDealAssociationsResponse
+        type Scopes AccountsCreativesDealAssociationsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          AccountsCreativesDealAssociationsList'{..}
+          = go _acdalAccountId _acdalCreativeId _acdalXgafv
+              _acdalUploadProtocol
+              _acdalAccessToken
+              _acdalUploadType
+              _acdalQuery
+              _acdalPageToken
+              _acdalPageSize
+              _acdalCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsCreativesDealAssociationsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/DealAssociations/Remove.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/DealAssociations/Remove.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/DealAssociations/Remove.hs
@@ -0,0 +1,185 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.Remove
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Remove the association between a deal and a creative.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.creatives.dealAssociations.remove@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.Remove
+    (
+    -- * REST Resource
+      AccountsCreativesDealAssociationsRemoveResource
+
+    -- * Creating a Request
+    , accountsCreativesDealAssociationsRemove
+    , AccountsCreativesDealAssociationsRemove
+
+    -- * Request Lenses
+    , acdarXgafv
+    , acdarUploadProtocol
+    , acdarAccessToken
+    , acdarUploadType
+    , acdarCreativeId
+    , acdarPayload
+    , acdarAccountId
+    , acdarCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.creatives.dealAssociations.remove@ method which the
+-- 'AccountsCreativesDealAssociationsRemove' request conforms to.
+type AccountsCreativesDealAssociationsRemoveResource
+     =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "creatives" :>
+             Capture "creativeId" Text :>
+               "dealAssociations:remove" :>
+                 QueryParam "$.xgafv" Xgafv :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] RemoveDealAssociationRequest :>
+                               Post '[JSON] Empty
+
+-- | Remove the association between a deal and a creative.
+--
+-- /See:/ 'accountsCreativesDealAssociationsRemove' smart constructor.
+data AccountsCreativesDealAssociationsRemove = AccountsCreativesDealAssociationsRemove'
+    { _acdarXgafv          :: !(Maybe Xgafv)
+    , _acdarUploadProtocol :: !(Maybe Text)
+    , _acdarAccessToken    :: !(Maybe Text)
+    , _acdarUploadType     :: !(Maybe Text)
+    , _acdarCreativeId     :: !Text
+    , _acdarPayload        :: !RemoveDealAssociationRequest
+    , _acdarAccountId      :: !Text
+    , _acdarCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCreativesDealAssociationsRemove' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acdarXgafv'
+--
+-- * 'acdarUploadProtocol'
+--
+-- * 'acdarAccessToken'
+--
+-- * 'acdarUploadType'
+--
+-- * 'acdarCreativeId'
+--
+-- * 'acdarPayload'
+--
+-- * 'acdarAccountId'
+--
+-- * 'acdarCallback'
+accountsCreativesDealAssociationsRemove
+    :: Text -- ^ 'acdarCreativeId'
+    -> RemoveDealAssociationRequest -- ^ 'acdarPayload'
+    -> Text -- ^ 'acdarAccountId'
+    -> AccountsCreativesDealAssociationsRemove
+accountsCreativesDealAssociationsRemove pAcdarCreativeId_ pAcdarPayload_ pAcdarAccountId_ =
+    AccountsCreativesDealAssociationsRemove'
+    { _acdarXgafv = Nothing
+    , _acdarUploadProtocol = Nothing
+    , _acdarAccessToken = Nothing
+    , _acdarUploadType = Nothing
+    , _acdarCreativeId = pAcdarCreativeId_
+    , _acdarPayload = pAcdarPayload_
+    , _acdarAccountId = pAcdarAccountId_
+    , _acdarCallback = Nothing
+    }
+
+-- | V1 error format.
+acdarXgafv :: Lens' AccountsCreativesDealAssociationsRemove (Maybe Xgafv)
+acdarXgafv
+  = lens _acdarXgafv (\ s a -> s{_acdarXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acdarUploadProtocol :: Lens' AccountsCreativesDealAssociationsRemove (Maybe Text)
+acdarUploadProtocol
+  = lens _acdarUploadProtocol
+      (\ s a -> s{_acdarUploadProtocol = a})
+
+-- | OAuth access token.
+acdarAccessToken :: Lens' AccountsCreativesDealAssociationsRemove (Maybe Text)
+acdarAccessToken
+  = lens _acdarAccessToken
+      (\ s a -> s{_acdarAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acdarUploadType :: Lens' AccountsCreativesDealAssociationsRemove (Maybe Text)
+acdarUploadType
+  = lens _acdarUploadType
+      (\ s a -> s{_acdarUploadType = a})
+
+-- | The ID of the creative associated with the deal.
+acdarCreativeId :: Lens' AccountsCreativesDealAssociationsRemove Text
+acdarCreativeId
+  = lens _acdarCreativeId
+      (\ s a -> s{_acdarCreativeId = a})
+
+-- | Multipart request metadata.
+acdarPayload :: Lens' AccountsCreativesDealAssociationsRemove RemoveDealAssociationRequest
+acdarPayload
+  = lens _acdarPayload (\ s a -> s{_acdarPayload = a})
+
+-- | The account the creative belongs to.
+acdarAccountId :: Lens' AccountsCreativesDealAssociationsRemove Text
+acdarAccountId
+  = lens _acdarAccountId
+      (\ s a -> s{_acdarAccountId = a})
+
+-- | JSONP
+acdarCallback :: Lens' AccountsCreativesDealAssociationsRemove (Maybe Text)
+acdarCallback
+  = lens _acdarCallback
+      (\ s a -> s{_acdarCallback = a})
+
+instance GoogleRequest
+         AccountsCreativesDealAssociationsRemove where
+        type Rs AccountsCreativesDealAssociationsRemove =
+             Empty
+        type Scopes AccountsCreativesDealAssociationsRemove =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          AccountsCreativesDealAssociationsRemove'{..}
+          = go _acdarAccountId _acdarCreativeId _acdarXgafv
+              _acdarUploadProtocol
+              _acdarAccessToken
+              _acdarUploadType
+              _acdarCallback
+              (Just AltJSON)
+              _acdarPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           AccountsCreativesDealAssociationsRemoveResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Get.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Get.hs
@@ -0,0 +1,161 @@
+{-# 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.AdExchangeBuyer2.Accounts.Creatives.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a creative.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.creatives.get@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Get
+    (
+    -- * REST Resource
+      AccountsCreativesGetResource
+
+    -- * Creating a Request
+    , accountsCreativesGet
+    , AccountsCreativesGet
+
+    -- * Request Lenses
+    , acgXgafv
+    , acgUploadProtocol
+    , acgAccessToken
+    , acgUploadType
+    , acgCreativeId
+    , acgAccountId
+    , acgCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.creatives.get@ method which the
+-- 'AccountsCreativesGet' request conforms to.
+type AccountsCreativesGetResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "creatives" :>
+             Capture "creativeId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] Creative
+
+-- | Gets a creative.
+--
+-- /See:/ 'accountsCreativesGet' smart constructor.
+data AccountsCreativesGet = AccountsCreativesGet'
+    { _acgXgafv          :: !(Maybe Xgafv)
+    , _acgUploadProtocol :: !(Maybe Text)
+    , _acgAccessToken    :: !(Maybe Text)
+    , _acgUploadType     :: !(Maybe Text)
+    , _acgCreativeId     :: !Text
+    , _acgAccountId      :: !Text
+    , _acgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCreativesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acgXgafv'
+--
+-- * 'acgUploadProtocol'
+--
+-- * 'acgAccessToken'
+--
+-- * 'acgUploadType'
+--
+-- * 'acgCreativeId'
+--
+-- * 'acgAccountId'
+--
+-- * 'acgCallback'
+accountsCreativesGet
+    :: Text -- ^ 'acgCreativeId'
+    -> Text -- ^ 'acgAccountId'
+    -> AccountsCreativesGet
+accountsCreativesGet pAcgCreativeId_ pAcgAccountId_ =
+    AccountsCreativesGet'
+    { _acgXgafv = Nothing
+    , _acgUploadProtocol = Nothing
+    , _acgAccessToken = Nothing
+    , _acgUploadType = Nothing
+    , _acgCreativeId = pAcgCreativeId_
+    , _acgAccountId = pAcgAccountId_
+    , _acgCallback = Nothing
+    }
+
+-- | V1 error format.
+acgXgafv :: Lens' AccountsCreativesGet (Maybe Xgafv)
+acgXgafv = lens _acgXgafv (\ s a -> s{_acgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acgUploadProtocol :: Lens' AccountsCreativesGet (Maybe Text)
+acgUploadProtocol
+  = lens _acgUploadProtocol
+      (\ s a -> s{_acgUploadProtocol = a})
+
+-- | OAuth access token.
+acgAccessToken :: Lens' AccountsCreativesGet (Maybe Text)
+acgAccessToken
+  = lens _acgAccessToken
+      (\ s a -> s{_acgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acgUploadType :: Lens' AccountsCreativesGet (Maybe Text)
+acgUploadType
+  = lens _acgUploadType
+      (\ s a -> s{_acgUploadType = a})
+
+-- | The ID of the creative to retrieve.
+acgCreativeId :: Lens' AccountsCreativesGet Text
+acgCreativeId
+  = lens _acgCreativeId
+      (\ s a -> s{_acgCreativeId = a})
+
+-- | The account the creative belongs to.
+acgAccountId :: Lens' AccountsCreativesGet Text
+acgAccountId
+  = lens _acgAccountId (\ s a -> s{_acgAccountId = a})
+
+-- | JSONP
+acgCallback :: Lens' AccountsCreativesGet (Maybe Text)
+acgCallback
+  = lens _acgCallback (\ s a -> s{_acgCallback = a})
+
+instance GoogleRequest AccountsCreativesGet where
+        type Rs AccountsCreativesGet = Creative
+        type Scopes AccountsCreativesGet =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsCreativesGet'{..}
+          = go _acgAccountId _acgCreativeId _acgXgafv
+              _acgUploadProtocol
+              _acgAccessToken
+              _acgUploadType
+              _acgCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsCreativesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/List.hs
@@ -0,0 +1,205 @@
+{-# 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.AdExchangeBuyer2.Accounts.Creatives.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists creatives.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.creatives.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.List
+    (
+    -- * REST Resource
+      AccountsCreativesListResource
+
+    -- * Creating a Request
+    , accountsCreativesList
+    , AccountsCreativesList
+
+    -- * Request Lenses
+    , aclXgafv
+    , aclUploadProtocol
+    , aclAccessToken
+    , aclUploadType
+    , aclAccountId
+    , aclQuery
+    , aclPageToken
+    , aclPageSize
+    , aclCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.creatives.list@ method which the
+-- 'AccountsCreativesList' request conforms to.
+type AccountsCreativesListResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "creatives" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "query" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ListCreativesResponse
+
+-- | Lists creatives.
+--
+-- /See:/ 'accountsCreativesList' smart constructor.
+data AccountsCreativesList = AccountsCreativesList'
+    { _aclXgafv          :: !(Maybe Xgafv)
+    , _aclUploadProtocol :: !(Maybe Text)
+    , _aclAccessToken    :: !(Maybe Text)
+    , _aclUploadType     :: !(Maybe Text)
+    , _aclAccountId      :: !Text
+    , _aclQuery          :: !(Maybe Text)
+    , _aclPageToken      :: !(Maybe Text)
+    , _aclPageSize       :: !(Maybe (Textual Int32))
+    , _aclCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCreativesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aclXgafv'
+--
+-- * 'aclUploadProtocol'
+--
+-- * 'aclAccessToken'
+--
+-- * 'aclUploadType'
+--
+-- * 'aclAccountId'
+--
+-- * 'aclQuery'
+--
+-- * 'aclPageToken'
+--
+-- * 'aclPageSize'
+--
+-- * 'aclCallback'
+accountsCreativesList
+    :: Text -- ^ 'aclAccountId'
+    -> AccountsCreativesList
+accountsCreativesList pAclAccountId_ =
+    AccountsCreativesList'
+    { _aclXgafv = Nothing
+    , _aclUploadProtocol = Nothing
+    , _aclAccessToken = Nothing
+    , _aclUploadType = Nothing
+    , _aclAccountId = pAclAccountId_
+    , _aclQuery = Nothing
+    , _aclPageToken = Nothing
+    , _aclPageSize = Nothing
+    , _aclCallback = Nothing
+    }
+
+-- | V1 error format.
+aclXgafv :: Lens' AccountsCreativesList (Maybe Xgafv)
+aclXgafv = lens _aclXgafv (\ s a -> s{_aclXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aclUploadProtocol :: Lens' AccountsCreativesList (Maybe Text)
+aclUploadProtocol
+  = lens _aclUploadProtocol
+      (\ s a -> s{_aclUploadProtocol = a})
+
+-- | OAuth access token.
+aclAccessToken :: Lens' AccountsCreativesList (Maybe Text)
+aclAccessToken
+  = lens _aclAccessToken
+      (\ s a -> s{_aclAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aclUploadType :: Lens' AccountsCreativesList (Maybe Text)
+aclUploadType
+  = lens _aclUploadType
+      (\ s a -> s{_aclUploadType = a})
+
+-- | The account to list the creatives from. Specify \"-\" to list all
+-- creatives the current user has access to.
+aclAccountId :: Lens' AccountsCreativesList Text
+aclAccountId
+  = lens _aclAccountId (\ s a -> s{_aclAccountId = a})
+
+-- | An optional query string to filter creatives. If no filter is specified,
+-- all active creatives will be returned.
+--
+-- Supported queries are:
+--
+-- -   accountId=/account_id_string/
+-- -   creativeId=/creative_id_string/
+-- -   dealsStatus: {approved, conditionally_approved, disapproved,
+--     not_checked}
+-- -   openAuctionStatus: {approved, conditionally_approved, disapproved,
+--     not_checked}
+-- -   attribute: {a numeric attribute from the list of attributes}
+-- -   disapprovalReason: {a reason from DisapprovalReason}
+--
+-- Example: \'accountId=12345 AND (dealsStatus:disapproved AND
+-- disapprovalReason:unacceptable_content) OR attribute:47\'
+aclQuery :: Lens' AccountsCreativesList (Maybe Text)
+aclQuery = lens _aclQuery (\ s a -> s{_aclQuery = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListCreativesResponse.next_page_token
+-- returned from the previous call to \'ListCreatives\' method.
+aclPageToken :: Lens' AccountsCreativesList (Maybe Text)
+aclPageToken
+  = lens _aclPageToken (\ s a -> s{_aclPageToken = a})
+
+-- | Requested page size. The server may return fewer creatives than
+-- requested (due to timeout constraint) even if more are available via
+-- another call. If unspecified, server will pick an appropriate default.
+-- Acceptable values are 1 to 1000, inclusive.
+aclPageSize :: Lens' AccountsCreativesList (Maybe Int32)
+aclPageSize
+  = lens _aclPageSize (\ s a -> s{_aclPageSize = a}) .
+      mapping _Coerce
+
+-- | JSONP
+aclCallback :: Lens' AccountsCreativesList (Maybe Text)
+aclCallback
+  = lens _aclCallback (\ s a -> s{_aclCallback = a})
+
+instance GoogleRequest AccountsCreativesList where
+        type Rs AccountsCreativesList = ListCreativesResponse
+        type Scopes AccountsCreativesList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsCreativesList'{..}
+          = go _aclAccountId _aclXgafv _aclUploadProtocol
+              _aclAccessToken
+              _aclUploadType
+              _aclQuery
+              _aclPageToken
+              _aclPageSize
+              _aclCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsCreativesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/StopWatching.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/StopWatching.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/StopWatching.hs
@@ -0,0 +1,182 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.StopWatching
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Stops watching a creative. Will stop push notifications being sent to
+-- the topics when the creative changes status.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.creatives.stopWatching@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.StopWatching
+    (
+    -- * REST Resource
+      AccountsCreativesStopWatchingResource
+
+    -- * Creating a Request
+    , accountsCreativesStopWatching
+    , AccountsCreativesStopWatching
+
+    -- * Request Lenses
+    , acswXgafv
+    , acswUploadProtocol
+    , acswAccessToken
+    , acswUploadType
+    , acswCreativeId
+    , acswPayload
+    , acswAccountId
+    , acswCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.creatives.stopWatching@ method which the
+-- 'AccountsCreativesStopWatching' request conforms to.
+type AccountsCreativesStopWatchingResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "creatives" :>
+             CaptureMode "creativeId" "stopWatching" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] StopWatchingCreativeRequest :>
+                             Post '[JSON] Empty
+
+-- | Stops watching a creative. Will stop push notifications being sent to
+-- the topics when the creative changes status.
+--
+-- /See:/ 'accountsCreativesStopWatching' smart constructor.
+data AccountsCreativesStopWatching = AccountsCreativesStopWatching'
+    { _acswXgafv          :: !(Maybe Xgafv)
+    , _acswUploadProtocol :: !(Maybe Text)
+    , _acswAccessToken    :: !(Maybe Text)
+    , _acswUploadType     :: !(Maybe Text)
+    , _acswCreativeId     :: !Text
+    , _acswPayload        :: !StopWatchingCreativeRequest
+    , _acswAccountId      :: !Text
+    , _acswCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCreativesStopWatching' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acswXgafv'
+--
+-- * 'acswUploadProtocol'
+--
+-- * 'acswAccessToken'
+--
+-- * 'acswUploadType'
+--
+-- * 'acswCreativeId'
+--
+-- * 'acswPayload'
+--
+-- * 'acswAccountId'
+--
+-- * 'acswCallback'
+accountsCreativesStopWatching
+    :: Text -- ^ 'acswCreativeId'
+    -> StopWatchingCreativeRequest -- ^ 'acswPayload'
+    -> Text -- ^ 'acswAccountId'
+    -> AccountsCreativesStopWatching
+accountsCreativesStopWatching pAcswCreativeId_ pAcswPayload_ pAcswAccountId_ =
+    AccountsCreativesStopWatching'
+    { _acswXgafv = Nothing
+    , _acswUploadProtocol = Nothing
+    , _acswAccessToken = Nothing
+    , _acswUploadType = Nothing
+    , _acswCreativeId = pAcswCreativeId_
+    , _acswPayload = pAcswPayload_
+    , _acswAccountId = pAcswAccountId_
+    , _acswCallback = Nothing
+    }
+
+-- | V1 error format.
+acswXgafv :: Lens' AccountsCreativesStopWatching (Maybe Xgafv)
+acswXgafv
+  = lens _acswXgafv (\ s a -> s{_acswXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acswUploadProtocol :: Lens' AccountsCreativesStopWatching (Maybe Text)
+acswUploadProtocol
+  = lens _acswUploadProtocol
+      (\ s a -> s{_acswUploadProtocol = a})
+
+-- | OAuth access token.
+acswAccessToken :: Lens' AccountsCreativesStopWatching (Maybe Text)
+acswAccessToken
+  = lens _acswAccessToken
+      (\ s a -> s{_acswAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acswUploadType :: Lens' AccountsCreativesStopWatching (Maybe Text)
+acswUploadType
+  = lens _acswUploadType
+      (\ s a -> s{_acswUploadType = a})
+
+-- | The creative ID of the creative to stop notifications for. Specify \"-\"
+-- to specify stopping account level notifications.
+acswCreativeId :: Lens' AccountsCreativesStopWatching Text
+acswCreativeId
+  = lens _acswCreativeId
+      (\ s a -> s{_acswCreativeId = a})
+
+-- | Multipart request metadata.
+acswPayload :: Lens' AccountsCreativesStopWatching StopWatchingCreativeRequest
+acswPayload
+  = lens _acswPayload (\ s a -> s{_acswPayload = a})
+
+-- | The account of the creative to stop notifications for.
+acswAccountId :: Lens' AccountsCreativesStopWatching Text
+acswAccountId
+  = lens _acswAccountId
+      (\ s a -> s{_acswAccountId = a})
+
+-- | JSONP
+acswCallback :: Lens' AccountsCreativesStopWatching (Maybe Text)
+acswCallback
+  = lens _acswCallback (\ s a -> s{_acswCallback = a})
+
+instance GoogleRequest AccountsCreativesStopWatching
+         where
+        type Rs AccountsCreativesStopWatching = Empty
+        type Scopes AccountsCreativesStopWatching =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsCreativesStopWatching'{..}
+          = go _acswAccountId _acswCreativeId _acswXgafv
+              _acswUploadProtocol
+              _acswAccessToken
+              _acswUploadType
+              _acswCallback
+              (Just AltJSON)
+              _acswPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsCreativesStopWatchingResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Update.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Update.hs
@@ -0,0 +1,178 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Update
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a creative.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.creatives.update@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Update
+    (
+    -- * REST Resource
+      AccountsCreativesUpdateResource
+
+    -- * Creating a Request
+    , accountsCreativesUpdate
+    , AccountsCreativesUpdate
+
+    -- * Request Lenses
+    , acucXgafv
+    , acucUploadProtocol
+    , acucAccessToken
+    , acucUploadType
+    , acucCreativeId
+    , acucPayload
+    , acucAccountId
+    , acucCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.creatives.update@ method which the
+-- 'AccountsCreativesUpdate' request conforms to.
+type AccountsCreativesUpdateResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "creatives" :>
+             Capture "creativeId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] Creative :> Put '[JSON] Creative
+
+-- | Updates a creative.
+--
+-- /See:/ 'accountsCreativesUpdate' smart constructor.
+data AccountsCreativesUpdate = AccountsCreativesUpdate'
+    { _acucXgafv          :: !(Maybe Xgafv)
+    , _acucUploadProtocol :: !(Maybe Text)
+    , _acucAccessToken    :: !(Maybe Text)
+    , _acucUploadType     :: !(Maybe Text)
+    , _acucCreativeId     :: !Text
+    , _acucPayload        :: !Creative
+    , _acucAccountId      :: !Text
+    , _acucCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCreativesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acucXgafv'
+--
+-- * 'acucUploadProtocol'
+--
+-- * 'acucAccessToken'
+--
+-- * 'acucUploadType'
+--
+-- * 'acucCreativeId'
+--
+-- * 'acucPayload'
+--
+-- * 'acucAccountId'
+--
+-- * 'acucCallback'
+accountsCreativesUpdate
+    :: Text -- ^ 'acucCreativeId'
+    -> Creative -- ^ 'acucPayload'
+    -> Text -- ^ 'acucAccountId'
+    -> AccountsCreativesUpdate
+accountsCreativesUpdate pAcucCreativeId_ pAcucPayload_ pAcucAccountId_ =
+    AccountsCreativesUpdate'
+    { _acucXgafv = Nothing
+    , _acucUploadProtocol = Nothing
+    , _acucAccessToken = Nothing
+    , _acucUploadType = Nothing
+    , _acucCreativeId = pAcucCreativeId_
+    , _acucPayload = pAcucPayload_
+    , _acucAccountId = pAcucAccountId_
+    , _acucCallback = Nothing
+    }
+
+-- | V1 error format.
+acucXgafv :: Lens' AccountsCreativesUpdate (Maybe Xgafv)
+acucXgafv
+  = lens _acucXgafv (\ s a -> s{_acucXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acucUploadProtocol :: Lens' AccountsCreativesUpdate (Maybe Text)
+acucUploadProtocol
+  = lens _acucUploadProtocol
+      (\ s a -> s{_acucUploadProtocol = a})
+
+-- | OAuth access token.
+acucAccessToken :: Lens' AccountsCreativesUpdate (Maybe Text)
+acucAccessToken
+  = lens _acucAccessToken
+      (\ s a -> s{_acucAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acucUploadType :: Lens' AccountsCreativesUpdate (Maybe Text)
+acucUploadType
+  = lens _acucUploadType
+      (\ s a -> s{_acucUploadType = a})
+
+-- | The buyer-defined creative ID of this creative. Can be used to filter
+-- the response of the creatives.list method.
+acucCreativeId :: Lens' AccountsCreativesUpdate Text
+acucCreativeId
+  = lens _acucCreativeId
+      (\ s a -> s{_acucCreativeId = a})
+
+-- | Multipart request metadata.
+acucPayload :: Lens' AccountsCreativesUpdate Creative
+acucPayload
+  = lens _acucPayload (\ s a -> s{_acucPayload = a})
+
+-- | The account that this creative belongs to. Can be used to filter the
+-- response of the creatives.list method.
+acucAccountId :: Lens' AccountsCreativesUpdate Text
+acucAccountId
+  = lens _acucAccountId
+      (\ s a -> s{_acucAccountId = a})
+
+-- | JSONP
+acucCallback :: Lens' AccountsCreativesUpdate (Maybe Text)
+acucCallback
+  = lens _acucCallback (\ s a -> s{_acucCallback = a})
+
+instance GoogleRequest AccountsCreativesUpdate where
+        type Rs AccountsCreativesUpdate = Creative
+        type Scopes AccountsCreativesUpdate =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsCreativesUpdate'{..}
+          = go _acucAccountId _acucCreativeId _acucXgafv
+              _acucUploadProtocol
+              _acucAccessToken
+              _acucUploadType
+              _acucCallback
+              (Just AltJSON)
+              _acucPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsCreativesUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Watch.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Watch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Creatives/Watch.hs
@@ -0,0 +1,180 @@
+{-# 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.AdExchangeBuyer2.Accounts.Creatives.Watch
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Watches a creative. Will result in push notifications being sent to the
+-- topic when the creative changes status.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.creatives.watch@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Watch
+    (
+    -- * REST Resource
+      AccountsCreativesWatchResource
+
+    -- * Creating a Request
+    , accountsCreativesWatch
+    , AccountsCreativesWatch
+
+    -- * Request Lenses
+    , acwXgafv
+    , acwUploadProtocol
+    , acwAccessToken
+    , acwUploadType
+    , acwCreativeId
+    , acwPayload
+    , acwAccountId
+    , acwCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.creatives.watch@ method which the
+-- 'AccountsCreativesWatch' request conforms to.
+type AccountsCreativesWatchResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "creatives" :>
+             CaptureMode "creativeId" "watch" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] WatchCreativeRequest :>
+                             Post '[JSON] Empty
+
+-- | Watches a creative. Will result in push notifications being sent to the
+-- topic when the creative changes status.
+--
+-- /See:/ 'accountsCreativesWatch' smart constructor.
+data AccountsCreativesWatch = AccountsCreativesWatch'
+    { _acwXgafv          :: !(Maybe Xgafv)
+    , _acwUploadProtocol :: !(Maybe Text)
+    , _acwAccessToken    :: !(Maybe Text)
+    , _acwUploadType     :: !(Maybe Text)
+    , _acwCreativeId     :: !Text
+    , _acwPayload        :: !WatchCreativeRequest
+    , _acwAccountId      :: !Text
+    , _acwCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsCreativesWatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acwXgafv'
+--
+-- * 'acwUploadProtocol'
+--
+-- * 'acwAccessToken'
+--
+-- * 'acwUploadType'
+--
+-- * 'acwCreativeId'
+--
+-- * 'acwPayload'
+--
+-- * 'acwAccountId'
+--
+-- * 'acwCallback'
+accountsCreativesWatch
+    :: Text -- ^ 'acwCreativeId'
+    -> WatchCreativeRequest -- ^ 'acwPayload'
+    -> Text -- ^ 'acwAccountId'
+    -> AccountsCreativesWatch
+accountsCreativesWatch pAcwCreativeId_ pAcwPayload_ pAcwAccountId_ =
+    AccountsCreativesWatch'
+    { _acwXgafv = Nothing
+    , _acwUploadProtocol = Nothing
+    , _acwAccessToken = Nothing
+    , _acwUploadType = Nothing
+    , _acwCreativeId = pAcwCreativeId_
+    , _acwPayload = pAcwPayload_
+    , _acwAccountId = pAcwAccountId_
+    , _acwCallback = Nothing
+    }
+
+-- | V1 error format.
+acwXgafv :: Lens' AccountsCreativesWatch (Maybe Xgafv)
+acwXgafv = lens _acwXgafv (\ s a -> s{_acwXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+acwUploadProtocol :: Lens' AccountsCreativesWatch (Maybe Text)
+acwUploadProtocol
+  = lens _acwUploadProtocol
+      (\ s a -> s{_acwUploadProtocol = a})
+
+-- | OAuth access token.
+acwAccessToken :: Lens' AccountsCreativesWatch (Maybe Text)
+acwAccessToken
+  = lens _acwAccessToken
+      (\ s a -> s{_acwAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+acwUploadType :: Lens' AccountsCreativesWatch (Maybe Text)
+acwUploadType
+  = lens _acwUploadType
+      (\ s a -> s{_acwUploadType = a})
+
+-- | The creative ID to watch for status changes. Specify \"-\" to watch all
+-- creatives under the above account. If both creative-level and
+-- account-level notifications are sent, only a single notification will be
+-- sent to the creative-level notification topic.
+acwCreativeId :: Lens' AccountsCreativesWatch Text
+acwCreativeId
+  = lens _acwCreativeId
+      (\ s a -> s{_acwCreativeId = a})
+
+-- | Multipart request metadata.
+acwPayload :: Lens' AccountsCreativesWatch WatchCreativeRequest
+acwPayload
+  = lens _acwPayload (\ s a -> s{_acwPayload = a})
+
+-- | The account of the creative to watch.
+acwAccountId :: Lens' AccountsCreativesWatch Text
+acwAccountId
+  = lens _acwAccountId (\ s a -> s{_acwAccountId = a})
+
+-- | JSONP
+acwCallback :: Lens' AccountsCreativesWatch (Maybe Text)
+acwCallback
+  = lens _acwCallback (\ s a -> s{_acwCallback = a})
+
+instance GoogleRequest AccountsCreativesWatch where
+        type Rs AccountsCreativesWatch = Empty
+        type Scopes AccountsCreativesWatch =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsCreativesWatch'{..}
+          = go _acwAccountId _acwCreativeId _acwXgafv
+              _acwUploadProtocol
+              _acwAccessToken
+              _acwUploadType
+              _acwCallback
+              (Just AltJSON)
+              _acwPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsCreativesWatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/FinalizedProposals/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/FinalizedProposals/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/FinalizedProposals/List.hs
@@ -0,0 +1,212 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.FinalizedProposals.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List finalized proposals, regardless if a proposal is being
+-- renegotiated. A filter expression (PQL query) may be specified to filter
+-- the results. The notes will not be returned.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.finalizedProposals.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.FinalizedProposals.List
+    (
+    -- * REST Resource
+      AccountsFinalizedProposalsListResource
+
+    -- * Creating a Request
+    , accountsFinalizedProposalsList
+    , AccountsFinalizedProposalsList
+
+    -- * Request Lenses
+    , afplXgafv
+    , afplUploadProtocol
+    , afplAccessToken
+    , afplUploadType
+    , afplFilterSyntax
+    , afplAccountId
+    , afplFilter
+    , afplPageToken
+    , afplPageSize
+    , afplCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.finalizedProposals.list@ method which the
+-- 'AccountsFinalizedProposalsList' request conforms to.
+type AccountsFinalizedProposalsListResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "finalizedProposals" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "filterSyntax" Text :>
+                       QueryParam "filter" Text :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "pageSize" (Textual Int32) :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] ListProposalsResponse
+
+-- | List finalized proposals, regardless if a proposal is being
+-- renegotiated. A filter expression (PQL query) may be specified to filter
+-- the results. The notes will not be returned.
+--
+-- /See:/ 'accountsFinalizedProposalsList' smart constructor.
+data AccountsFinalizedProposalsList = AccountsFinalizedProposalsList'
+    { _afplXgafv          :: !(Maybe Xgafv)
+    , _afplUploadProtocol :: !(Maybe Text)
+    , _afplAccessToken    :: !(Maybe Text)
+    , _afplUploadType     :: !(Maybe Text)
+    , _afplFilterSyntax   :: !(Maybe Text)
+    , _afplAccountId      :: !Text
+    , _afplFilter         :: !(Maybe Text)
+    , _afplPageToken      :: !(Maybe Text)
+    , _afplPageSize       :: !(Maybe (Textual Int32))
+    , _afplCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsFinalizedProposalsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'afplXgafv'
+--
+-- * 'afplUploadProtocol'
+--
+-- * 'afplAccessToken'
+--
+-- * 'afplUploadType'
+--
+-- * 'afplFilterSyntax'
+--
+-- * 'afplAccountId'
+--
+-- * 'afplFilter'
+--
+-- * 'afplPageToken'
+--
+-- * 'afplPageSize'
+--
+-- * 'afplCallback'
+accountsFinalizedProposalsList
+    :: Text -- ^ 'afplAccountId'
+    -> AccountsFinalizedProposalsList
+accountsFinalizedProposalsList pAfplAccountId_ =
+    AccountsFinalizedProposalsList'
+    { _afplXgafv = Nothing
+    , _afplUploadProtocol = Nothing
+    , _afplAccessToken = Nothing
+    , _afplUploadType = Nothing
+    , _afplFilterSyntax = Nothing
+    , _afplAccountId = pAfplAccountId_
+    , _afplFilter = Nothing
+    , _afplPageToken = Nothing
+    , _afplPageSize = Nothing
+    , _afplCallback = Nothing
+    }
+
+-- | V1 error format.
+afplXgafv :: Lens' AccountsFinalizedProposalsList (Maybe Xgafv)
+afplXgafv
+  = lens _afplXgafv (\ s a -> s{_afplXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+afplUploadProtocol :: Lens' AccountsFinalizedProposalsList (Maybe Text)
+afplUploadProtocol
+  = lens _afplUploadProtocol
+      (\ s a -> s{_afplUploadProtocol = a})
+
+-- | OAuth access token.
+afplAccessToken :: Lens' AccountsFinalizedProposalsList (Maybe Text)
+afplAccessToken
+  = lens _afplAccessToken
+      (\ s a -> s{_afplAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+afplUploadType :: Lens' AccountsFinalizedProposalsList (Maybe Text)
+afplUploadType
+  = lens _afplUploadType
+      (\ s a -> s{_afplUploadType = a})
+
+-- | Syntax the filter is written in. Current implementation defaults to PQL
+-- but in the future it will be LIST_FILTER.
+afplFilterSyntax :: Lens' AccountsFinalizedProposalsList (Maybe Text)
+afplFilterSyntax
+  = lens _afplFilterSyntax
+      (\ s a -> s{_afplFilterSyntax = a})
+
+-- | Account ID of the buyer.
+afplAccountId :: Lens' AccountsFinalizedProposalsList Text
+afplAccountId
+  = lens _afplAccountId
+      (\ s a -> s{_afplAccountId = a})
+
+-- | An optional PQL filter query used to query for proposals. Nested
+-- repeated fields, such as proposal.deals.targetingCriterion, cannot be
+-- filtered.
+afplFilter :: Lens' AccountsFinalizedProposalsList (Maybe Text)
+afplFilter
+  = lens _afplFilter (\ s a -> s{_afplFilter = a})
+
+-- | The page token as returned from ListProposalsResponse.
+afplPageToken :: Lens' AccountsFinalizedProposalsList (Maybe Text)
+afplPageToken
+  = lens _afplPageToken
+      (\ s a -> s{_afplPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+afplPageSize :: Lens' AccountsFinalizedProposalsList (Maybe Int32)
+afplPageSize
+  = lens _afplPageSize (\ s a -> s{_afplPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+afplCallback :: Lens' AccountsFinalizedProposalsList (Maybe Text)
+afplCallback
+  = lens _afplCallback (\ s a -> s{_afplCallback = a})
+
+instance GoogleRequest AccountsFinalizedProposalsList
+         where
+        type Rs AccountsFinalizedProposalsList =
+             ListProposalsResponse
+        type Scopes AccountsFinalizedProposalsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsFinalizedProposalsList'{..}
+          = go _afplAccountId _afplXgafv _afplUploadProtocol
+              _afplAccessToken
+              _afplUploadType
+              _afplFilterSyntax
+              _afplFilter
+              _afplPageToken
+              _afplPageSize
+              _afplCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsFinalizedProposalsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Products/Get.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Products/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Products/Get.hs
@@ -0,0 +1,160 @@
+{-# 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.AdExchangeBuyer2.Accounts.Products.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the requested product by ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.products.get@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Products.Get
+    (
+    -- * REST Resource
+      AccountsProductsGetResource
+
+    -- * Creating a Request
+    , accountsProductsGet
+    , AccountsProductsGet
+
+    -- * Request Lenses
+    , apgXgafv
+    , apgUploadProtocol
+    , apgAccessToken
+    , apgUploadType
+    , apgAccountId
+    , apgProductId
+    , apgCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.products.get@ method which the
+-- 'AccountsProductsGet' request conforms to.
+type AccountsProductsGetResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "products" :>
+             Capture "productId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] Product
+
+-- | Gets the requested product by ID.
+--
+-- /See:/ 'accountsProductsGet' smart constructor.
+data AccountsProductsGet = AccountsProductsGet'
+    { _apgXgafv          :: !(Maybe Xgafv)
+    , _apgUploadProtocol :: !(Maybe Text)
+    , _apgAccessToken    :: !(Maybe Text)
+    , _apgUploadType     :: !(Maybe Text)
+    , _apgAccountId      :: !Text
+    , _apgProductId      :: !Text
+    , _apgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProductsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apgXgafv'
+--
+-- * 'apgUploadProtocol'
+--
+-- * 'apgAccessToken'
+--
+-- * 'apgUploadType'
+--
+-- * 'apgAccountId'
+--
+-- * 'apgProductId'
+--
+-- * 'apgCallback'
+accountsProductsGet
+    :: Text -- ^ 'apgAccountId'
+    -> Text -- ^ 'apgProductId'
+    -> AccountsProductsGet
+accountsProductsGet pApgAccountId_ pApgProductId_ =
+    AccountsProductsGet'
+    { _apgXgafv = Nothing
+    , _apgUploadProtocol = Nothing
+    , _apgAccessToken = Nothing
+    , _apgUploadType = Nothing
+    , _apgAccountId = pApgAccountId_
+    , _apgProductId = pApgProductId_
+    , _apgCallback = Nothing
+    }
+
+-- | V1 error format.
+apgXgafv :: Lens' AccountsProductsGet (Maybe Xgafv)
+apgXgafv = lens _apgXgafv (\ s a -> s{_apgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+apgUploadProtocol :: Lens' AccountsProductsGet (Maybe Text)
+apgUploadProtocol
+  = lens _apgUploadProtocol
+      (\ s a -> s{_apgUploadProtocol = a})
+
+-- | OAuth access token.
+apgAccessToken :: Lens' AccountsProductsGet (Maybe Text)
+apgAccessToken
+  = lens _apgAccessToken
+      (\ s a -> s{_apgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+apgUploadType :: Lens' AccountsProductsGet (Maybe Text)
+apgUploadType
+  = lens _apgUploadType
+      (\ s a -> s{_apgUploadType = a})
+
+-- | Account ID of the buyer.
+apgAccountId :: Lens' AccountsProductsGet Text
+apgAccountId
+  = lens _apgAccountId (\ s a -> s{_apgAccountId = a})
+
+-- | The ID for the product to get the head revision for.
+apgProductId :: Lens' AccountsProductsGet Text
+apgProductId
+  = lens _apgProductId (\ s a -> s{_apgProductId = a})
+
+-- | JSONP
+apgCallback :: Lens' AccountsProductsGet (Maybe Text)
+apgCallback
+  = lens _apgCallback (\ s a -> s{_apgCallback = a})
+
+instance GoogleRequest AccountsProductsGet where
+        type Rs AccountsProductsGet = Product
+        type Scopes AccountsProductsGet =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProductsGet'{..}
+          = go _apgAccountId _apgProductId _apgXgafv
+              _apgUploadProtocol
+              _apgAccessToken
+              _apgUploadType
+              _apgCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsProductsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Products/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Products/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Products/List.hs
@@ -0,0 +1,194 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Products.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all products visible to the buyer (optionally filtered by the
+-- specified PQL query).
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.products.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Products.List
+    (
+    -- * REST Resource
+      AccountsProductsListResource
+
+    -- * Creating a Request
+    , accountsProductsList
+    , AccountsProductsList
+
+    -- * Request Lenses
+    , aplpXgafv
+    , aplpUploadProtocol
+    , aplpAccessToken
+    , aplpUploadType
+    , aplpAccountId
+    , aplpFilter
+    , aplpPageToken
+    , aplpPageSize
+    , aplpCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.products.list@ method which the
+-- 'AccountsProductsList' request conforms to.
+type AccountsProductsListResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "products" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "filter" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ListProductsResponse
+
+-- | List all products visible to the buyer (optionally filtered by the
+-- specified PQL query).
+--
+-- /See:/ 'accountsProductsList' smart constructor.
+data AccountsProductsList = AccountsProductsList'
+    { _aplpXgafv          :: !(Maybe Xgafv)
+    , _aplpUploadProtocol :: !(Maybe Text)
+    , _aplpAccessToken    :: !(Maybe Text)
+    , _aplpUploadType     :: !(Maybe Text)
+    , _aplpAccountId      :: !Text
+    , _aplpFilter         :: !(Maybe Text)
+    , _aplpPageToken      :: !(Maybe Text)
+    , _aplpPageSize       :: !(Maybe (Textual Int32))
+    , _aplpCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProductsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aplpXgafv'
+--
+-- * 'aplpUploadProtocol'
+--
+-- * 'aplpAccessToken'
+--
+-- * 'aplpUploadType'
+--
+-- * 'aplpAccountId'
+--
+-- * 'aplpFilter'
+--
+-- * 'aplpPageToken'
+--
+-- * 'aplpPageSize'
+--
+-- * 'aplpCallback'
+accountsProductsList
+    :: Text -- ^ 'aplpAccountId'
+    -> AccountsProductsList
+accountsProductsList pAplpAccountId_ =
+    AccountsProductsList'
+    { _aplpXgafv = Nothing
+    , _aplpUploadProtocol = Nothing
+    , _aplpAccessToken = Nothing
+    , _aplpUploadType = Nothing
+    , _aplpAccountId = pAplpAccountId_
+    , _aplpFilter = Nothing
+    , _aplpPageToken = Nothing
+    , _aplpPageSize = Nothing
+    , _aplpCallback = Nothing
+    }
+
+-- | V1 error format.
+aplpXgafv :: Lens' AccountsProductsList (Maybe Xgafv)
+aplpXgafv
+  = lens _aplpXgafv (\ s a -> s{_aplpXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aplpUploadProtocol :: Lens' AccountsProductsList (Maybe Text)
+aplpUploadProtocol
+  = lens _aplpUploadProtocol
+      (\ s a -> s{_aplpUploadProtocol = a})
+
+-- | OAuth access token.
+aplpAccessToken :: Lens' AccountsProductsList (Maybe Text)
+aplpAccessToken
+  = lens _aplpAccessToken
+      (\ s a -> s{_aplpAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aplpUploadType :: Lens' AccountsProductsList (Maybe Text)
+aplpUploadType
+  = lens _aplpUploadType
+      (\ s a -> s{_aplpUploadType = a})
+
+-- | Account ID of the buyer.
+aplpAccountId :: Lens' AccountsProductsList Text
+aplpAccountId
+  = lens _aplpAccountId
+      (\ s a -> s{_aplpAccountId = a})
+
+-- | An optional PQL query used to query for products. See
+-- https:\/\/developers.google.com\/ad-manager\/docs\/pqlreference for
+-- documentation about PQL and examples. Nested repeated fields, such as
+-- product.targetingCriterion.inclusions, cannot be filtered.
+aplpFilter :: Lens' AccountsProductsList (Maybe Text)
+aplpFilter
+  = lens _aplpFilter (\ s a -> s{_aplpFilter = a})
+
+-- | The page token as returned from ListProductsResponse.
+aplpPageToken :: Lens' AccountsProductsList (Maybe Text)
+aplpPageToken
+  = lens _aplpPageToken
+      (\ s a -> s{_aplpPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+aplpPageSize :: Lens' AccountsProductsList (Maybe Int32)
+aplpPageSize
+  = lens _aplpPageSize (\ s a -> s{_aplpPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+aplpCallback :: Lens' AccountsProductsList (Maybe Text)
+aplpCallback
+  = lens _aplpCallback (\ s a -> s{_aplpCallback = a})
+
+instance GoogleRequest AccountsProductsList where
+        type Rs AccountsProductsList = ListProductsResponse
+        type Scopes AccountsProductsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProductsList'{..}
+          = go _aplpAccountId _aplpXgafv _aplpUploadProtocol
+              _aplpAccessToken
+              _aplpUploadType
+              _aplpFilter
+              _aplpPageToken
+              _aplpPageSize
+              _aplpCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsProductsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Accept.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Accept.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Accept.hs
@@ -0,0 +1,183 @@
+{-# 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.AdExchangeBuyer2.Accounts.Proposals.Accept
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Mark the proposal as accepted at the given revision number. If the
+-- number does not match the server\'s revision number an \`ABORTED\` error
+-- message will be returned. This call updates the proposal_state from
+-- \`PROPOSED\` to \`BUYER_ACCEPTED\`, or from \`SELLER_ACCEPTED\` to
+-- \`FINALIZED\`.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.proposals.accept@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Accept
+    (
+    -- * REST Resource
+      AccountsProposalsAcceptResource
+
+    -- * Creating a Request
+    , accountsProposalsAccept
+    , AccountsProposalsAccept
+
+    -- * Request Lenses
+    , apaXgafv
+    , apaUploadProtocol
+    , apaAccessToken
+    , apaUploadType
+    , apaPayload
+    , apaProposalId
+    , apaAccountId
+    , apaCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.proposals.accept@ method which the
+-- 'AccountsProposalsAccept' request conforms to.
+type AccountsProposalsAcceptResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "proposals" :>
+             CaptureMode "proposalId" "accept" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] AcceptProposalRequest :>
+                             Post '[JSON] Proposal
+
+-- | Mark the proposal as accepted at the given revision number. If the
+-- number does not match the server\'s revision number an \`ABORTED\` error
+-- message will be returned. This call updates the proposal_state from
+-- \`PROPOSED\` to \`BUYER_ACCEPTED\`, or from \`SELLER_ACCEPTED\` to
+-- \`FINALIZED\`.
+--
+-- /See:/ 'accountsProposalsAccept' smart constructor.
+data AccountsProposalsAccept = AccountsProposalsAccept'
+    { _apaXgafv          :: !(Maybe Xgafv)
+    , _apaUploadProtocol :: !(Maybe Text)
+    , _apaAccessToken    :: !(Maybe Text)
+    , _apaUploadType     :: !(Maybe Text)
+    , _apaPayload        :: !AcceptProposalRequest
+    , _apaProposalId     :: !Text
+    , _apaAccountId      :: !Text
+    , _apaCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProposalsAccept' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apaXgafv'
+--
+-- * 'apaUploadProtocol'
+--
+-- * 'apaAccessToken'
+--
+-- * 'apaUploadType'
+--
+-- * 'apaPayload'
+--
+-- * 'apaProposalId'
+--
+-- * 'apaAccountId'
+--
+-- * 'apaCallback'
+accountsProposalsAccept
+    :: AcceptProposalRequest -- ^ 'apaPayload'
+    -> Text -- ^ 'apaProposalId'
+    -> Text -- ^ 'apaAccountId'
+    -> AccountsProposalsAccept
+accountsProposalsAccept pApaPayload_ pApaProposalId_ pApaAccountId_ =
+    AccountsProposalsAccept'
+    { _apaXgafv = Nothing
+    , _apaUploadProtocol = Nothing
+    , _apaAccessToken = Nothing
+    , _apaUploadType = Nothing
+    , _apaPayload = pApaPayload_
+    , _apaProposalId = pApaProposalId_
+    , _apaAccountId = pApaAccountId_
+    , _apaCallback = Nothing
+    }
+
+-- | V1 error format.
+apaXgafv :: Lens' AccountsProposalsAccept (Maybe Xgafv)
+apaXgafv = lens _apaXgafv (\ s a -> s{_apaXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+apaUploadProtocol :: Lens' AccountsProposalsAccept (Maybe Text)
+apaUploadProtocol
+  = lens _apaUploadProtocol
+      (\ s a -> s{_apaUploadProtocol = a})
+
+-- | OAuth access token.
+apaAccessToken :: Lens' AccountsProposalsAccept (Maybe Text)
+apaAccessToken
+  = lens _apaAccessToken
+      (\ s a -> s{_apaAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+apaUploadType :: Lens' AccountsProposalsAccept (Maybe Text)
+apaUploadType
+  = lens _apaUploadType
+      (\ s a -> s{_apaUploadType = a})
+
+-- | Multipart request metadata.
+apaPayload :: Lens' AccountsProposalsAccept AcceptProposalRequest
+apaPayload
+  = lens _apaPayload (\ s a -> s{_apaPayload = a})
+
+-- | The ID of the proposal to accept.
+apaProposalId :: Lens' AccountsProposalsAccept Text
+apaProposalId
+  = lens _apaProposalId
+      (\ s a -> s{_apaProposalId = a})
+
+-- | Account ID of the buyer.
+apaAccountId :: Lens' AccountsProposalsAccept Text
+apaAccountId
+  = lens _apaAccountId (\ s a -> s{_apaAccountId = a})
+
+-- | JSONP
+apaCallback :: Lens' AccountsProposalsAccept (Maybe Text)
+apaCallback
+  = lens _apaCallback (\ s a -> s{_apaCallback = a})
+
+instance GoogleRequest AccountsProposalsAccept where
+        type Rs AccountsProposalsAccept = Proposal
+        type Scopes AccountsProposalsAccept =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProposalsAccept'{..}
+          = go _apaAccountId _apaProposalId _apaXgafv
+              _apaUploadProtocol
+              _apaAccessToken
+              _apaUploadType
+              _apaCallback
+              (Just AltJSON)
+              _apaPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsProposalsAcceptResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/AddNote.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/AddNote.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/AddNote.hs
@@ -0,0 +1,180 @@
+{-# 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.AdExchangeBuyer2.Accounts.Proposals.AddNote
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Create a new note and attach it to the proposal. The note is assigned a
+-- unique ID by the server. The proposal revision number will not increase
+-- when associated with a new note.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.proposals.addNote@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.AddNote
+    (
+    -- * REST Resource
+      AccountsProposalsAddNoteResource
+
+    -- * Creating a Request
+    , accountsProposalsAddNote
+    , AccountsProposalsAddNote
+
+    -- * Request Lenses
+    , apanXgafv
+    , apanUploadProtocol
+    , apanAccessToken
+    , apanUploadType
+    , apanPayload
+    , apanProposalId
+    , apanAccountId
+    , apanCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.proposals.addNote@ method which the
+-- 'AccountsProposalsAddNote' request conforms to.
+type AccountsProposalsAddNoteResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "proposals" :>
+             CaptureMode "proposalId" "addNote" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] AddNoteRequest :> Post '[JSON] Note
+
+-- | Create a new note and attach it to the proposal. The note is assigned a
+-- unique ID by the server. The proposal revision number will not increase
+-- when associated with a new note.
+--
+-- /See:/ 'accountsProposalsAddNote' smart constructor.
+data AccountsProposalsAddNote = AccountsProposalsAddNote'
+    { _apanXgafv          :: !(Maybe Xgafv)
+    , _apanUploadProtocol :: !(Maybe Text)
+    , _apanAccessToken    :: !(Maybe Text)
+    , _apanUploadType     :: !(Maybe Text)
+    , _apanPayload        :: !AddNoteRequest
+    , _apanProposalId     :: !Text
+    , _apanAccountId      :: !Text
+    , _apanCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProposalsAddNote' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apanXgafv'
+--
+-- * 'apanUploadProtocol'
+--
+-- * 'apanAccessToken'
+--
+-- * 'apanUploadType'
+--
+-- * 'apanPayload'
+--
+-- * 'apanProposalId'
+--
+-- * 'apanAccountId'
+--
+-- * 'apanCallback'
+accountsProposalsAddNote
+    :: AddNoteRequest -- ^ 'apanPayload'
+    -> Text -- ^ 'apanProposalId'
+    -> Text -- ^ 'apanAccountId'
+    -> AccountsProposalsAddNote
+accountsProposalsAddNote pApanPayload_ pApanProposalId_ pApanAccountId_ =
+    AccountsProposalsAddNote'
+    { _apanXgafv = Nothing
+    , _apanUploadProtocol = Nothing
+    , _apanAccessToken = Nothing
+    , _apanUploadType = Nothing
+    , _apanPayload = pApanPayload_
+    , _apanProposalId = pApanProposalId_
+    , _apanAccountId = pApanAccountId_
+    , _apanCallback = Nothing
+    }
+
+-- | V1 error format.
+apanXgafv :: Lens' AccountsProposalsAddNote (Maybe Xgafv)
+apanXgafv
+  = lens _apanXgafv (\ s a -> s{_apanXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+apanUploadProtocol :: Lens' AccountsProposalsAddNote (Maybe Text)
+apanUploadProtocol
+  = lens _apanUploadProtocol
+      (\ s a -> s{_apanUploadProtocol = a})
+
+-- | OAuth access token.
+apanAccessToken :: Lens' AccountsProposalsAddNote (Maybe Text)
+apanAccessToken
+  = lens _apanAccessToken
+      (\ s a -> s{_apanAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+apanUploadType :: Lens' AccountsProposalsAddNote (Maybe Text)
+apanUploadType
+  = lens _apanUploadType
+      (\ s a -> s{_apanUploadType = a})
+
+-- | Multipart request metadata.
+apanPayload :: Lens' AccountsProposalsAddNote AddNoteRequest
+apanPayload
+  = lens _apanPayload (\ s a -> s{_apanPayload = a})
+
+-- | The ID of the proposal to attach the note to.
+apanProposalId :: Lens' AccountsProposalsAddNote Text
+apanProposalId
+  = lens _apanProposalId
+      (\ s a -> s{_apanProposalId = a})
+
+-- | Account ID of the buyer.
+apanAccountId :: Lens' AccountsProposalsAddNote Text
+apanAccountId
+  = lens _apanAccountId
+      (\ s a -> s{_apanAccountId = a})
+
+-- | JSONP
+apanCallback :: Lens' AccountsProposalsAddNote (Maybe Text)
+apanCallback
+  = lens _apanCallback (\ s a -> s{_apanCallback = a})
+
+instance GoogleRequest AccountsProposalsAddNote where
+        type Rs AccountsProposalsAddNote = Note
+        type Scopes AccountsProposalsAddNote =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProposalsAddNote'{..}
+          = go _apanAccountId _apanProposalId _apanXgafv
+              _apanUploadProtocol
+              _apanAccessToken
+              _apanUploadType
+              _apanCallback
+              (Just AltJSON)
+              _apanPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsProposalsAddNoteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/CancelNegotiation.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/CancelNegotiation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/CancelNegotiation.hs
@@ -0,0 +1,183 @@
+{-# 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.AdExchangeBuyer2.Accounts.Proposals.CancelNegotiation
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Cancel an ongoing negotiation on a proposal. This does not cancel or end
+-- serving for the deals if the proposal has been finalized, but only
+-- cancels a negotiation unilaterally.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.proposals.cancelNegotiation@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.CancelNegotiation
+    (
+    -- * REST Resource
+      AccountsProposalsCancelNegotiationResource
+
+    -- * Creating a Request
+    , accountsProposalsCancelNegotiation
+    , AccountsProposalsCancelNegotiation
+
+    -- * Request Lenses
+    , apcnXgafv
+    , apcnUploadProtocol
+    , apcnAccessToken
+    , apcnUploadType
+    , apcnPayload
+    , apcnProposalId
+    , apcnAccountId
+    , apcnCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.proposals.cancelNegotiation@ method which the
+-- 'AccountsProposalsCancelNegotiation' request conforms to.
+type AccountsProposalsCancelNegotiationResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "proposals" :>
+             CaptureMode "proposalId" "cancelNegotiation" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] CancelNegotiationRequest :>
+                             Post '[JSON] Proposal
+
+-- | Cancel an ongoing negotiation on a proposal. This does not cancel or end
+-- serving for the deals if the proposal has been finalized, but only
+-- cancels a negotiation unilaterally.
+--
+-- /See:/ 'accountsProposalsCancelNegotiation' smart constructor.
+data AccountsProposalsCancelNegotiation = AccountsProposalsCancelNegotiation'
+    { _apcnXgafv          :: !(Maybe Xgafv)
+    , _apcnUploadProtocol :: !(Maybe Text)
+    , _apcnAccessToken    :: !(Maybe Text)
+    , _apcnUploadType     :: !(Maybe Text)
+    , _apcnPayload        :: !CancelNegotiationRequest
+    , _apcnProposalId     :: !Text
+    , _apcnAccountId      :: !Text
+    , _apcnCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProposalsCancelNegotiation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apcnXgafv'
+--
+-- * 'apcnUploadProtocol'
+--
+-- * 'apcnAccessToken'
+--
+-- * 'apcnUploadType'
+--
+-- * 'apcnPayload'
+--
+-- * 'apcnProposalId'
+--
+-- * 'apcnAccountId'
+--
+-- * 'apcnCallback'
+accountsProposalsCancelNegotiation
+    :: CancelNegotiationRequest -- ^ 'apcnPayload'
+    -> Text -- ^ 'apcnProposalId'
+    -> Text -- ^ 'apcnAccountId'
+    -> AccountsProposalsCancelNegotiation
+accountsProposalsCancelNegotiation pApcnPayload_ pApcnProposalId_ pApcnAccountId_ =
+    AccountsProposalsCancelNegotiation'
+    { _apcnXgafv = Nothing
+    , _apcnUploadProtocol = Nothing
+    , _apcnAccessToken = Nothing
+    , _apcnUploadType = Nothing
+    , _apcnPayload = pApcnPayload_
+    , _apcnProposalId = pApcnProposalId_
+    , _apcnAccountId = pApcnAccountId_
+    , _apcnCallback = Nothing
+    }
+
+-- | V1 error format.
+apcnXgafv :: Lens' AccountsProposalsCancelNegotiation (Maybe Xgafv)
+apcnXgafv
+  = lens _apcnXgafv (\ s a -> s{_apcnXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+apcnUploadProtocol :: Lens' AccountsProposalsCancelNegotiation (Maybe Text)
+apcnUploadProtocol
+  = lens _apcnUploadProtocol
+      (\ s a -> s{_apcnUploadProtocol = a})
+
+-- | OAuth access token.
+apcnAccessToken :: Lens' AccountsProposalsCancelNegotiation (Maybe Text)
+apcnAccessToken
+  = lens _apcnAccessToken
+      (\ s a -> s{_apcnAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+apcnUploadType :: Lens' AccountsProposalsCancelNegotiation (Maybe Text)
+apcnUploadType
+  = lens _apcnUploadType
+      (\ s a -> s{_apcnUploadType = a})
+
+-- | Multipart request metadata.
+apcnPayload :: Lens' AccountsProposalsCancelNegotiation CancelNegotiationRequest
+apcnPayload
+  = lens _apcnPayload (\ s a -> s{_apcnPayload = a})
+
+-- | The ID of the proposal to cancel negotiation for.
+apcnProposalId :: Lens' AccountsProposalsCancelNegotiation Text
+apcnProposalId
+  = lens _apcnProposalId
+      (\ s a -> s{_apcnProposalId = a})
+
+-- | Account ID of the buyer.
+apcnAccountId :: Lens' AccountsProposalsCancelNegotiation Text
+apcnAccountId
+  = lens _apcnAccountId
+      (\ s a -> s{_apcnAccountId = a})
+
+-- | JSONP
+apcnCallback :: Lens' AccountsProposalsCancelNegotiation (Maybe Text)
+apcnCallback
+  = lens _apcnCallback (\ s a -> s{_apcnCallback = a})
+
+instance GoogleRequest
+         AccountsProposalsCancelNegotiation where
+        type Rs AccountsProposalsCancelNegotiation = Proposal
+        type Scopes AccountsProposalsCancelNegotiation =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProposalsCancelNegotiation'{..}
+          = go _apcnAccountId _apcnProposalId _apcnXgafv
+              _apcnUploadProtocol
+              _apcnAccessToken
+              _apcnUploadType
+              _apcnCallback
+              (Just AltJSON)
+              _apcnPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsProposalsCancelNegotiationResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/CompleteSetup.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/CompleteSetup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/CompleteSetup.hs
@@ -0,0 +1,189 @@
+{-# 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.AdExchangeBuyer2.Accounts.Proposals.CompleteSetup
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Update the given proposal to indicate that setup has been completed.
+-- This method is called by the buyer when the line items have been created
+-- on their end for a finalized proposal and all the required creatives
+-- have been uploaded using the creatives API. This call updates the
+-- \`is_setup_completed\` bit on the proposal and also notifies the seller.
+-- The server will advance the revision number of the most recent proposal.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.proposals.completeSetup@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.CompleteSetup
+    (
+    -- * REST Resource
+      AccountsProposalsCompleteSetupResource
+
+    -- * Creating a Request
+    , accountsProposalsCompleteSetup
+    , AccountsProposalsCompleteSetup
+
+    -- * Request Lenses
+    , apcsXgafv
+    , apcsUploadProtocol
+    , apcsAccessToken
+    , apcsUploadType
+    , apcsPayload
+    , apcsProposalId
+    , apcsAccountId
+    , apcsCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.proposals.completeSetup@ method which the
+-- 'AccountsProposalsCompleteSetup' request conforms to.
+type AccountsProposalsCompleteSetupResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "proposals" :>
+             CaptureMode "proposalId" "completeSetup" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] CompleteSetupRequest :>
+                             Post '[JSON] Proposal
+
+-- | Update the given proposal to indicate that setup has been completed.
+-- This method is called by the buyer when the line items have been created
+-- on their end for a finalized proposal and all the required creatives
+-- have been uploaded using the creatives API. This call updates the
+-- \`is_setup_completed\` bit on the proposal and also notifies the seller.
+-- The server will advance the revision number of the most recent proposal.
+--
+-- /See:/ 'accountsProposalsCompleteSetup' smart constructor.
+data AccountsProposalsCompleteSetup = AccountsProposalsCompleteSetup'
+    { _apcsXgafv          :: !(Maybe Xgafv)
+    , _apcsUploadProtocol :: !(Maybe Text)
+    , _apcsAccessToken    :: !(Maybe Text)
+    , _apcsUploadType     :: !(Maybe Text)
+    , _apcsPayload        :: !CompleteSetupRequest
+    , _apcsProposalId     :: !Text
+    , _apcsAccountId      :: !Text
+    , _apcsCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProposalsCompleteSetup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apcsXgafv'
+--
+-- * 'apcsUploadProtocol'
+--
+-- * 'apcsAccessToken'
+--
+-- * 'apcsUploadType'
+--
+-- * 'apcsPayload'
+--
+-- * 'apcsProposalId'
+--
+-- * 'apcsAccountId'
+--
+-- * 'apcsCallback'
+accountsProposalsCompleteSetup
+    :: CompleteSetupRequest -- ^ 'apcsPayload'
+    -> Text -- ^ 'apcsProposalId'
+    -> Text -- ^ 'apcsAccountId'
+    -> AccountsProposalsCompleteSetup
+accountsProposalsCompleteSetup pApcsPayload_ pApcsProposalId_ pApcsAccountId_ =
+    AccountsProposalsCompleteSetup'
+    { _apcsXgafv = Nothing
+    , _apcsUploadProtocol = Nothing
+    , _apcsAccessToken = Nothing
+    , _apcsUploadType = Nothing
+    , _apcsPayload = pApcsPayload_
+    , _apcsProposalId = pApcsProposalId_
+    , _apcsAccountId = pApcsAccountId_
+    , _apcsCallback = Nothing
+    }
+
+-- | V1 error format.
+apcsXgafv :: Lens' AccountsProposalsCompleteSetup (Maybe Xgafv)
+apcsXgafv
+  = lens _apcsXgafv (\ s a -> s{_apcsXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+apcsUploadProtocol :: Lens' AccountsProposalsCompleteSetup (Maybe Text)
+apcsUploadProtocol
+  = lens _apcsUploadProtocol
+      (\ s a -> s{_apcsUploadProtocol = a})
+
+-- | OAuth access token.
+apcsAccessToken :: Lens' AccountsProposalsCompleteSetup (Maybe Text)
+apcsAccessToken
+  = lens _apcsAccessToken
+      (\ s a -> s{_apcsAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+apcsUploadType :: Lens' AccountsProposalsCompleteSetup (Maybe Text)
+apcsUploadType
+  = lens _apcsUploadType
+      (\ s a -> s{_apcsUploadType = a})
+
+-- | Multipart request metadata.
+apcsPayload :: Lens' AccountsProposalsCompleteSetup CompleteSetupRequest
+apcsPayload
+  = lens _apcsPayload (\ s a -> s{_apcsPayload = a})
+
+-- | The ID of the proposal to mark as setup completed.
+apcsProposalId :: Lens' AccountsProposalsCompleteSetup Text
+apcsProposalId
+  = lens _apcsProposalId
+      (\ s a -> s{_apcsProposalId = a})
+
+-- | Account ID of the buyer.
+apcsAccountId :: Lens' AccountsProposalsCompleteSetup Text
+apcsAccountId
+  = lens _apcsAccountId
+      (\ s a -> s{_apcsAccountId = a})
+
+-- | JSONP
+apcsCallback :: Lens' AccountsProposalsCompleteSetup (Maybe Text)
+apcsCallback
+  = lens _apcsCallback (\ s a -> s{_apcsCallback = a})
+
+instance GoogleRequest AccountsProposalsCompleteSetup
+         where
+        type Rs AccountsProposalsCompleteSetup = Proposal
+        type Scopes AccountsProposalsCompleteSetup =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProposalsCompleteSetup'{..}
+          = go _apcsAccountId _apcsProposalId _apcsXgafv
+              _apcsUploadProtocol
+              _apcsAccessToken
+              _apcsUploadType
+              _apcsCallback
+              (Just AltJSON)
+              _apcsPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsProposalsCompleteSetupResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Create.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Create.hs
@@ -0,0 +1,162 @@
+{-# 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.AdExchangeBuyer2.Accounts.Proposals.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Create the given proposal. Each created proposal and any deals it
+-- contains are assigned a unique ID by the server.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.proposals.create@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Create
+    (
+    -- * REST Resource
+      AccountsProposalsCreateResource
+
+    -- * Creating a Request
+    , accountsProposalsCreate
+    , AccountsProposalsCreate
+
+    -- * Request Lenses
+    , apcXgafv
+    , apcUploadProtocol
+    , apcAccessToken
+    , apcUploadType
+    , apcPayload
+    , apcAccountId
+    , apcCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.proposals.create@ method which the
+-- 'AccountsProposalsCreate' request conforms to.
+type AccountsProposalsCreateResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "proposals" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] Proposal :> Post '[JSON] Proposal
+
+-- | Create the given proposal. Each created proposal and any deals it
+-- contains are assigned a unique ID by the server.
+--
+-- /See:/ 'accountsProposalsCreate' smart constructor.
+data AccountsProposalsCreate = AccountsProposalsCreate'
+    { _apcXgafv          :: !(Maybe Xgafv)
+    , _apcUploadProtocol :: !(Maybe Text)
+    , _apcAccessToken    :: !(Maybe Text)
+    , _apcUploadType     :: !(Maybe Text)
+    , _apcPayload        :: !Proposal
+    , _apcAccountId      :: !Text
+    , _apcCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProposalsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apcXgafv'
+--
+-- * 'apcUploadProtocol'
+--
+-- * 'apcAccessToken'
+--
+-- * 'apcUploadType'
+--
+-- * 'apcPayload'
+--
+-- * 'apcAccountId'
+--
+-- * 'apcCallback'
+accountsProposalsCreate
+    :: Proposal -- ^ 'apcPayload'
+    -> Text -- ^ 'apcAccountId'
+    -> AccountsProposalsCreate
+accountsProposalsCreate pApcPayload_ pApcAccountId_ =
+    AccountsProposalsCreate'
+    { _apcXgafv = Nothing
+    , _apcUploadProtocol = Nothing
+    , _apcAccessToken = Nothing
+    , _apcUploadType = Nothing
+    , _apcPayload = pApcPayload_
+    , _apcAccountId = pApcAccountId_
+    , _apcCallback = Nothing
+    }
+
+-- | V1 error format.
+apcXgafv :: Lens' AccountsProposalsCreate (Maybe Xgafv)
+apcXgafv = lens _apcXgafv (\ s a -> s{_apcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+apcUploadProtocol :: Lens' AccountsProposalsCreate (Maybe Text)
+apcUploadProtocol
+  = lens _apcUploadProtocol
+      (\ s a -> s{_apcUploadProtocol = a})
+
+-- | OAuth access token.
+apcAccessToken :: Lens' AccountsProposalsCreate (Maybe Text)
+apcAccessToken
+  = lens _apcAccessToken
+      (\ s a -> s{_apcAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+apcUploadType :: Lens' AccountsProposalsCreate (Maybe Text)
+apcUploadType
+  = lens _apcUploadType
+      (\ s a -> s{_apcUploadType = a})
+
+-- | Multipart request metadata.
+apcPayload :: Lens' AccountsProposalsCreate Proposal
+apcPayload
+  = lens _apcPayload (\ s a -> s{_apcPayload = a})
+
+-- | Account ID of the buyer.
+apcAccountId :: Lens' AccountsProposalsCreate Text
+apcAccountId
+  = lens _apcAccountId (\ s a -> s{_apcAccountId = a})
+
+-- | JSONP
+apcCallback :: Lens' AccountsProposalsCreate (Maybe Text)
+apcCallback
+  = lens _apcCallback (\ s a -> s{_apcCallback = a})
+
+instance GoogleRequest AccountsProposalsCreate where
+        type Rs AccountsProposalsCreate = Proposal
+        type Scopes AccountsProposalsCreate =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProposalsCreate'{..}
+          = go _apcAccountId _apcXgafv _apcUploadProtocol
+              _apcAccessToken
+              _apcUploadType
+              _apcCallback
+              (Just AltJSON)
+              _apcPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsProposalsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Get.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Get.hs
@@ -0,0 +1,160 @@
+{-# 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.AdExchangeBuyer2.Accounts.Proposals.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a proposal given its ID. The proposal is returned at its head
+-- revision.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.proposals.get@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Get
+    (
+    -- * REST Resource
+      AccountsProposalsGetResource
+
+    -- * Creating a Request
+    , accountsProposalsGet
+    , AccountsProposalsGet
+
+    -- * Request Lenses
+    , aXgafv
+    , aUploadProtocol
+    , aAccessToken
+    , aUploadType
+    , aProposalId
+    , aAccountId
+    , aCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.proposals.get@ method which the
+-- 'AccountsProposalsGet' request conforms to.
+type AccountsProposalsGetResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "proposals" :>
+             Capture "proposalId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] Proposal
+
+-- | Gets a proposal given its ID. The proposal is returned at its head
+-- revision.
+--
+-- /See:/ 'accountsProposalsGet' smart constructor.
+data AccountsProposalsGet = AccountsProposalsGet'
+    { _aXgafv          :: !(Maybe Xgafv)
+    , _aUploadProtocol :: !(Maybe Text)
+    , _aAccessToken    :: !(Maybe Text)
+    , _aUploadType     :: !(Maybe Text)
+    , _aProposalId     :: !Text
+    , _aAccountId      :: !Text
+    , _aCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProposalsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aXgafv'
+--
+-- * 'aUploadProtocol'
+--
+-- * 'aAccessToken'
+--
+-- * 'aUploadType'
+--
+-- * 'aProposalId'
+--
+-- * 'aAccountId'
+--
+-- * 'aCallback'
+accountsProposalsGet
+    :: Text -- ^ 'aProposalId'
+    -> Text -- ^ 'aAccountId'
+    -> AccountsProposalsGet
+accountsProposalsGet pAProposalId_ pAAccountId_ =
+    AccountsProposalsGet'
+    { _aXgafv = Nothing
+    , _aUploadProtocol = Nothing
+    , _aAccessToken = Nothing
+    , _aUploadType = Nothing
+    , _aProposalId = pAProposalId_
+    , _aAccountId = pAAccountId_
+    , _aCallback = Nothing
+    }
+
+-- | V1 error format.
+aXgafv :: Lens' AccountsProposalsGet (Maybe Xgafv)
+aXgafv = lens _aXgafv (\ s a -> s{_aXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aUploadProtocol :: Lens' AccountsProposalsGet (Maybe Text)
+aUploadProtocol
+  = lens _aUploadProtocol
+      (\ s a -> s{_aUploadProtocol = a})
+
+-- | OAuth access token.
+aAccessToken :: Lens' AccountsProposalsGet (Maybe Text)
+aAccessToken
+  = lens _aAccessToken (\ s a -> s{_aAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aUploadType :: Lens' AccountsProposalsGet (Maybe Text)
+aUploadType
+  = lens _aUploadType (\ s a -> s{_aUploadType = a})
+
+-- | The unique ID of the proposal
+aProposalId :: Lens' AccountsProposalsGet Text
+aProposalId
+  = lens _aProposalId (\ s a -> s{_aProposalId = a})
+
+-- | Account ID of the buyer.
+aAccountId :: Lens' AccountsProposalsGet Text
+aAccountId
+  = lens _aAccountId (\ s a -> s{_aAccountId = a})
+
+-- | JSONP
+aCallback :: Lens' AccountsProposalsGet (Maybe Text)
+aCallback
+  = lens _aCallback (\ s a -> s{_aCallback = a})
+
+instance GoogleRequest AccountsProposalsGet where
+        type Rs AccountsProposalsGet = Proposal
+        type Scopes AccountsProposalsGet =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProposalsGet'{..}
+          = go _aAccountId _aProposalId _aXgafv
+              _aUploadProtocol
+              _aAccessToken
+              _aUploadType
+              _aCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsProposalsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/List.hs
@@ -0,0 +1,212 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List proposals. A filter expression (PQL query) may be specified to
+-- filter the results. To retrieve all finalized proposals, regardless if a
+-- proposal is being renegotiated, see the FinalizedProposals resource.
+-- Note that Bidder\/ChildSeat relationships differ from the usual
+-- behavior. A Bidder account can only see its child seats\' proposals by
+-- specifying the ChildSeat\'s accountId in the request path.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.proposals.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.List
+    (
+    -- * REST Resource
+      AccountsProposalsListResource
+
+    -- * Creating a Request
+    , accountsProposalsList
+    , AccountsProposalsList
+
+    -- * Request Lenses
+    , aplXgafv
+    , aplUploadProtocol
+    , aplAccessToken
+    , aplUploadType
+    , aplFilterSyntax
+    , aplAccountId
+    , aplFilter
+    , aplPageToken
+    , aplPageSize
+    , aplCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.proposals.list@ method which the
+-- 'AccountsProposalsList' request conforms to.
+type AccountsProposalsListResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "proposals" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "filterSyntax" Text :>
+                       QueryParam "filter" Text :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "pageSize" (Textual Int32) :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] ListProposalsResponse
+
+-- | List proposals. A filter expression (PQL query) may be specified to
+-- filter the results. To retrieve all finalized proposals, regardless if a
+-- proposal is being renegotiated, see the FinalizedProposals resource.
+-- Note that Bidder\/ChildSeat relationships differ from the usual
+-- behavior. A Bidder account can only see its child seats\' proposals by
+-- specifying the ChildSeat\'s accountId in the request path.
+--
+-- /See:/ 'accountsProposalsList' smart constructor.
+data AccountsProposalsList = AccountsProposalsList'
+    { _aplXgafv          :: !(Maybe Xgafv)
+    , _aplUploadProtocol :: !(Maybe Text)
+    , _aplAccessToken    :: !(Maybe Text)
+    , _aplUploadType     :: !(Maybe Text)
+    , _aplFilterSyntax   :: !(Maybe Text)
+    , _aplAccountId      :: !Text
+    , _aplFilter         :: !(Maybe Text)
+    , _aplPageToken      :: !(Maybe Text)
+    , _aplPageSize       :: !(Maybe (Textual Int32))
+    , _aplCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProposalsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aplXgafv'
+--
+-- * 'aplUploadProtocol'
+--
+-- * 'aplAccessToken'
+--
+-- * 'aplUploadType'
+--
+-- * 'aplFilterSyntax'
+--
+-- * 'aplAccountId'
+--
+-- * 'aplFilter'
+--
+-- * 'aplPageToken'
+--
+-- * 'aplPageSize'
+--
+-- * 'aplCallback'
+accountsProposalsList
+    :: Text -- ^ 'aplAccountId'
+    -> AccountsProposalsList
+accountsProposalsList pAplAccountId_ =
+    AccountsProposalsList'
+    { _aplXgafv = Nothing
+    , _aplUploadProtocol = Nothing
+    , _aplAccessToken = Nothing
+    , _aplUploadType = Nothing
+    , _aplFilterSyntax = Nothing
+    , _aplAccountId = pAplAccountId_
+    , _aplFilter = Nothing
+    , _aplPageToken = Nothing
+    , _aplPageSize = Nothing
+    , _aplCallback = Nothing
+    }
+
+-- | V1 error format.
+aplXgafv :: Lens' AccountsProposalsList (Maybe Xgafv)
+aplXgafv = lens _aplXgafv (\ s a -> s{_aplXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aplUploadProtocol :: Lens' AccountsProposalsList (Maybe Text)
+aplUploadProtocol
+  = lens _aplUploadProtocol
+      (\ s a -> s{_aplUploadProtocol = a})
+
+-- | OAuth access token.
+aplAccessToken :: Lens' AccountsProposalsList (Maybe Text)
+aplAccessToken
+  = lens _aplAccessToken
+      (\ s a -> s{_aplAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aplUploadType :: Lens' AccountsProposalsList (Maybe Text)
+aplUploadType
+  = lens _aplUploadType
+      (\ s a -> s{_aplUploadType = a})
+
+-- | Syntax the filter is written in. Current implementation defaults to PQL
+-- but in the future it will be LIST_FILTER.
+aplFilterSyntax :: Lens' AccountsProposalsList (Maybe Text)
+aplFilterSyntax
+  = lens _aplFilterSyntax
+      (\ s a -> s{_aplFilterSyntax = a})
+
+-- | Account ID of the buyer.
+aplAccountId :: Lens' AccountsProposalsList Text
+aplAccountId
+  = lens _aplAccountId (\ s a -> s{_aplAccountId = a})
+
+-- | An optional PQL filter query used to query for proposals. Nested
+-- repeated fields, such as proposal.deals.targetingCriterion, cannot be
+-- filtered.
+aplFilter :: Lens' AccountsProposalsList (Maybe Text)
+aplFilter
+  = lens _aplFilter (\ s a -> s{_aplFilter = a})
+
+-- | The page token as returned from ListProposalsResponse.
+aplPageToken :: Lens' AccountsProposalsList (Maybe Text)
+aplPageToken
+  = lens _aplPageToken (\ s a -> s{_aplPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+aplPageSize :: Lens' AccountsProposalsList (Maybe Int32)
+aplPageSize
+  = lens _aplPageSize (\ s a -> s{_aplPageSize = a}) .
+      mapping _Coerce
+
+-- | JSONP
+aplCallback :: Lens' AccountsProposalsList (Maybe Text)
+aplCallback
+  = lens _aplCallback (\ s a -> s{_aplCallback = a})
+
+instance GoogleRequest AccountsProposalsList where
+        type Rs AccountsProposalsList = ListProposalsResponse
+        type Scopes AccountsProposalsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProposalsList'{..}
+          = go _aplAccountId _aplXgafv _aplUploadProtocol
+              _aplAccessToken
+              _aplUploadType
+              _aplFilterSyntax
+              _aplFilter
+              _aplPageToken
+              _aplPageSize
+              _aplCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsProposalsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Pause.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Pause.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Pause.hs
@@ -0,0 +1,183 @@
+{-# 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.AdExchangeBuyer2.Accounts.Proposals.Pause
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Update the given proposal to pause serving. This method will set the
+-- \`DealServingMetadata.DealPauseStatus.has_buyer_paused\` bit to true for
+-- all deals in the proposal. It is a no-op to pause an already-paused
+-- proposal. It is an error to call PauseProposal for a proposal that is
+-- not finalized or renegotiating.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.proposals.pause@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Pause
+    (
+    -- * REST Resource
+      AccountsProposalsPauseResource
+
+    -- * Creating a Request
+    , accountsProposalsPause
+    , AccountsProposalsPause
+
+    -- * Request Lenses
+    , appXgafv
+    , appUploadProtocol
+    , appAccessToken
+    , appUploadType
+    , appPayload
+    , appProposalId
+    , appAccountId
+    , appCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.proposals.pause@ method which the
+-- 'AccountsProposalsPause' request conforms to.
+type AccountsProposalsPauseResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "proposals" :>
+             CaptureMode "proposalId" "pause" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] PauseProposalRequest :>
+                             Post '[JSON] Proposal
+
+-- | Update the given proposal to pause serving. This method will set the
+-- \`DealServingMetadata.DealPauseStatus.has_buyer_paused\` bit to true for
+-- all deals in the proposal. It is a no-op to pause an already-paused
+-- proposal. It is an error to call PauseProposal for a proposal that is
+-- not finalized or renegotiating.
+--
+-- /See:/ 'accountsProposalsPause' smart constructor.
+data AccountsProposalsPause = AccountsProposalsPause'
+    { _appXgafv          :: !(Maybe Xgafv)
+    , _appUploadProtocol :: !(Maybe Text)
+    , _appAccessToken    :: !(Maybe Text)
+    , _appUploadType     :: !(Maybe Text)
+    , _appPayload        :: !PauseProposalRequest
+    , _appProposalId     :: !Text
+    , _appAccountId      :: !Text
+    , _appCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProposalsPause' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'appXgafv'
+--
+-- * 'appUploadProtocol'
+--
+-- * 'appAccessToken'
+--
+-- * 'appUploadType'
+--
+-- * 'appPayload'
+--
+-- * 'appProposalId'
+--
+-- * 'appAccountId'
+--
+-- * 'appCallback'
+accountsProposalsPause
+    :: PauseProposalRequest -- ^ 'appPayload'
+    -> Text -- ^ 'appProposalId'
+    -> Text -- ^ 'appAccountId'
+    -> AccountsProposalsPause
+accountsProposalsPause pAppPayload_ pAppProposalId_ pAppAccountId_ =
+    AccountsProposalsPause'
+    { _appXgafv = Nothing
+    , _appUploadProtocol = Nothing
+    , _appAccessToken = Nothing
+    , _appUploadType = Nothing
+    , _appPayload = pAppPayload_
+    , _appProposalId = pAppProposalId_
+    , _appAccountId = pAppAccountId_
+    , _appCallback = Nothing
+    }
+
+-- | V1 error format.
+appXgafv :: Lens' AccountsProposalsPause (Maybe Xgafv)
+appXgafv = lens _appXgafv (\ s a -> s{_appXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+appUploadProtocol :: Lens' AccountsProposalsPause (Maybe Text)
+appUploadProtocol
+  = lens _appUploadProtocol
+      (\ s a -> s{_appUploadProtocol = a})
+
+-- | OAuth access token.
+appAccessToken :: Lens' AccountsProposalsPause (Maybe Text)
+appAccessToken
+  = lens _appAccessToken
+      (\ s a -> s{_appAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+appUploadType :: Lens' AccountsProposalsPause (Maybe Text)
+appUploadType
+  = lens _appUploadType
+      (\ s a -> s{_appUploadType = a})
+
+-- | Multipart request metadata.
+appPayload :: Lens' AccountsProposalsPause PauseProposalRequest
+appPayload
+  = lens _appPayload (\ s a -> s{_appPayload = a})
+
+-- | The ID of the proposal to pause.
+appProposalId :: Lens' AccountsProposalsPause Text
+appProposalId
+  = lens _appProposalId
+      (\ s a -> s{_appProposalId = a})
+
+-- | Account ID of the buyer.
+appAccountId :: Lens' AccountsProposalsPause Text
+appAccountId
+  = lens _appAccountId (\ s a -> s{_appAccountId = a})
+
+-- | JSONP
+appCallback :: Lens' AccountsProposalsPause (Maybe Text)
+appCallback
+  = lens _appCallback (\ s a -> s{_appCallback = a})
+
+instance GoogleRequest AccountsProposalsPause where
+        type Rs AccountsProposalsPause = Proposal
+        type Scopes AccountsProposalsPause =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProposalsPause'{..}
+          = go _appAccountId _appProposalId _appXgafv
+              _appUploadProtocol
+              _appAccessToken
+              _appUploadType
+              _appCallback
+              (Just AltJSON)
+              _appPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsProposalsPauseResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Resume.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Resume.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Resume.hs
@@ -0,0 +1,187 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Resume
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Update the given proposal to resume serving. This method will set the
+-- \`DealServingMetadata.DealPauseStatus.has_buyer_paused\` bit to false
+-- for all deals in the proposal. Note that if the \`has_seller_paused\`
+-- bit is also set, serving will not resume until the seller also resumes.
+-- It is a no-op to resume an already-running proposal. It is an error to
+-- call ResumeProposal for a proposal that is not finalized or
+-- renegotiating.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.proposals.resume@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Resume
+    (
+    -- * REST Resource
+      AccountsProposalsResumeResource
+
+    -- * Creating a Request
+    , accountsProposalsResume
+    , AccountsProposalsResume
+
+    -- * Request Lenses
+    , aprXgafv
+    , aprUploadProtocol
+    , aprAccessToken
+    , aprUploadType
+    , aprPayload
+    , aprProposalId
+    , aprAccountId
+    , aprCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.proposals.resume@ method which the
+-- 'AccountsProposalsResume' request conforms to.
+type AccountsProposalsResumeResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "proposals" :>
+             CaptureMode "proposalId" "resume" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] ResumeProposalRequest :>
+                             Post '[JSON] Proposal
+
+-- | Update the given proposal to resume serving. This method will set the
+-- \`DealServingMetadata.DealPauseStatus.has_buyer_paused\` bit to false
+-- for all deals in the proposal. Note that if the \`has_seller_paused\`
+-- bit is also set, serving will not resume until the seller also resumes.
+-- It is a no-op to resume an already-running proposal. It is an error to
+-- call ResumeProposal for a proposal that is not finalized or
+-- renegotiating.
+--
+-- /See:/ 'accountsProposalsResume' smart constructor.
+data AccountsProposalsResume = AccountsProposalsResume'
+    { _aprXgafv          :: !(Maybe Xgafv)
+    , _aprUploadProtocol :: !(Maybe Text)
+    , _aprAccessToken    :: !(Maybe Text)
+    , _aprUploadType     :: !(Maybe Text)
+    , _aprPayload        :: !ResumeProposalRequest
+    , _aprProposalId     :: !Text
+    , _aprAccountId      :: !Text
+    , _aprCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProposalsResume' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aprXgafv'
+--
+-- * 'aprUploadProtocol'
+--
+-- * 'aprAccessToken'
+--
+-- * 'aprUploadType'
+--
+-- * 'aprPayload'
+--
+-- * 'aprProposalId'
+--
+-- * 'aprAccountId'
+--
+-- * 'aprCallback'
+accountsProposalsResume
+    :: ResumeProposalRequest -- ^ 'aprPayload'
+    -> Text -- ^ 'aprProposalId'
+    -> Text -- ^ 'aprAccountId'
+    -> AccountsProposalsResume
+accountsProposalsResume pAprPayload_ pAprProposalId_ pAprAccountId_ =
+    AccountsProposalsResume'
+    { _aprXgafv = Nothing
+    , _aprUploadProtocol = Nothing
+    , _aprAccessToken = Nothing
+    , _aprUploadType = Nothing
+    , _aprPayload = pAprPayload_
+    , _aprProposalId = pAprProposalId_
+    , _aprAccountId = pAprAccountId_
+    , _aprCallback = Nothing
+    }
+
+-- | V1 error format.
+aprXgafv :: Lens' AccountsProposalsResume (Maybe Xgafv)
+aprXgafv = lens _aprXgafv (\ s a -> s{_aprXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aprUploadProtocol :: Lens' AccountsProposalsResume (Maybe Text)
+aprUploadProtocol
+  = lens _aprUploadProtocol
+      (\ s a -> s{_aprUploadProtocol = a})
+
+-- | OAuth access token.
+aprAccessToken :: Lens' AccountsProposalsResume (Maybe Text)
+aprAccessToken
+  = lens _aprAccessToken
+      (\ s a -> s{_aprAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aprUploadType :: Lens' AccountsProposalsResume (Maybe Text)
+aprUploadType
+  = lens _aprUploadType
+      (\ s a -> s{_aprUploadType = a})
+
+-- | Multipart request metadata.
+aprPayload :: Lens' AccountsProposalsResume ResumeProposalRequest
+aprPayload
+  = lens _aprPayload (\ s a -> s{_aprPayload = a})
+
+-- | The ID of the proposal to resume.
+aprProposalId :: Lens' AccountsProposalsResume Text
+aprProposalId
+  = lens _aprProposalId
+      (\ s a -> s{_aprProposalId = a})
+
+-- | Account ID of the buyer.
+aprAccountId :: Lens' AccountsProposalsResume Text
+aprAccountId
+  = lens _aprAccountId (\ s a -> s{_aprAccountId = a})
+
+-- | JSONP
+aprCallback :: Lens' AccountsProposalsResume (Maybe Text)
+aprCallback
+  = lens _aprCallback (\ s a -> s{_aprCallback = a})
+
+instance GoogleRequest AccountsProposalsResume where
+        type Rs AccountsProposalsResume = Proposal
+        type Scopes AccountsProposalsResume =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProposalsResume'{..}
+          = go _aprAccountId _aprProposalId _aprXgafv
+              _aprUploadProtocol
+              _aprAccessToken
+              _aprUploadType
+              _aprCallback
+              (Just AltJSON)
+              _aprPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsProposalsResumeResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Update.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/Proposals/Update.hs
@@ -0,0 +1,194 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Update
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Update the given proposal at the client known revision number. If the
+-- server revision has advanced since the passed-in
+-- \`proposal.proposal_revision\`, an \`ABORTED\` error message will be
+-- returned. Only the buyer-modifiable fields of the proposal will be
+-- updated. Note that the deals in the proposal will be updated to match
+-- the passed-in copy. If a passed-in deal does not have a \`deal_id\`, the
+-- server will assign a new unique ID and create the deal. If passed-in
+-- deal has a \`deal_id\`, it will be updated to match the passed-in copy.
+-- Any existing deals not present in the passed-in proposal will be
+-- deleted. It is an error to pass in a deal with a \`deal_id\` not present
+-- at head.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.proposals.update@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Update
+    (
+    -- * REST Resource
+      AccountsProposalsUpdateResource
+
+    -- * Creating a Request
+    , accountsProposalsUpdate
+    , AccountsProposalsUpdate
+
+    -- * Request Lenses
+    , apuXgafv
+    , apuUploadProtocol
+    , apuAccessToken
+    , apuUploadType
+    , apuPayload
+    , apuProposalId
+    , apuAccountId
+    , apuCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.proposals.update@ method which the
+-- 'AccountsProposalsUpdate' request conforms to.
+type AccountsProposalsUpdateResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "proposals" :>
+             Capture "proposalId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] Proposal :> Put '[JSON] Proposal
+
+-- | Update the given proposal at the client known revision number. If the
+-- server revision has advanced since the passed-in
+-- \`proposal.proposal_revision\`, an \`ABORTED\` error message will be
+-- returned. Only the buyer-modifiable fields of the proposal will be
+-- updated. Note that the deals in the proposal will be updated to match
+-- the passed-in copy. If a passed-in deal does not have a \`deal_id\`, the
+-- server will assign a new unique ID and create the deal. If passed-in
+-- deal has a \`deal_id\`, it will be updated to match the passed-in copy.
+-- Any existing deals not present in the passed-in proposal will be
+-- deleted. It is an error to pass in a deal with a \`deal_id\` not present
+-- at head.
+--
+-- /See:/ 'accountsProposalsUpdate' smart constructor.
+data AccountsProposalsUpdate = AccountsProposalsUpdate'
+    { _apuXgafv          :: !(Maybe Xgafv)
+    , _apuUploadProtocol :: !(Maybe Text)
+    , _apuAccessToken    :: !(Maybe Text)
+    , _apuUploadType     :: !(Maybe Text)
+    , _apuPayload        :: !Proposal
+    , _apuProposalId     :: !Text
+    , _apuAccountId      :: !Text
+    , _apuCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsProposalsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apuXgafv'
+--
+-- * 'apuUploadProtocol'
+--
+-- * 'apuAccessToken'
+--
+-- * 'apuUploadType'
+--
+-- * 'apuPayload'
+--
+-- * 'apuProposalId'
+--
+-- * 'apuAccountId'
+--
+-- * 'apuCallback'
+accountsProposalsUpdate
+    :: Proposal -- ^ 'apuPayload'
+    -> Text -- ^ 'apuProposalId'
+    -> Text -- ^ 'apuAccountId'
+    -> AccountsProposalsUpdate
+accountsProposalsUpdate pApuPayload_ pApuProposalId_ pApuAccountId_ =
+    AccountsProposalsUpdate'
+    { _apuXgafv = Nothing
+    , _apuUploadProtocol = Nothing
+    , _apuAccessToken = Nothing
+    , _apuUploadType = Nothing
+    , _apuPayload = pApuPayload_
+    , _apuProposalId = pApuProposalId_
+    , _apuAccountId = pApuAccountId_
+    , _apuCallback = Nothing
+    }
+
+-- | V1 error format.
+apuXgafv :: Lens' AccountsProposalsUpdate (Maybe Xgafv)
+apuXgafv = lens _apuXgafv (\ s a -> s{_apuXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+apuUploadProtocol :: Lens' AccountsProposalsUpdate (Maybe Text)
+apuUploadProtocol
+  = lens _apuUploadProtocol
+      (\ s a -> s{_apuUploadProtocol = a})
+
+-- | OAuth access token.
+apuAccessToken :: Lens' AccountsProposalsUpdate (Maybe Text)
+apuAccessToken
+  = lens _apuAccessToken
+      (\ s a -> s{_apuAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+apuUploadType :: Lens' AccountsProposalsUpdate (Maybe Text)
+apuUploadType
+  = lens _apuUploadType
+      (\ s a -> s{_apuUploadType = a})
+
+-- | Multipart request metadata.
+apuPayload :: Lens' AccountsProposalsUpdate Proposal
+apuPayload
+  = lens _apuPayload (\ s a -> s{_apuPayload = a})
+
+-- | The unique ID of the proposal.
+apuProposalId :: Lens' AccountsProposalsUpdate Text
+apuProposalId
+  = lens _apuProposalId
+      (\ s a -> s{_apuProposalId = a})
+
+-- | Account ID of the buyer.
+apuAccountId :: Lens' AccountsProposalsUpdate Text
+apuAccountId
+  = lens _apuAccountId (\ s a -> s{_apuAccountId = a})
+
+-- | JSONP
+apuCallback :: Lens' AccountsProposalsUpdate (Maybe Text)
+apuCallback
+  = lens _apuCallback (\ s a -> s{_apuCallback = a})
+
+instance GoogleRequest AccountsProposalsUpdate where
+        type Rs AccountsProposalsUpdate = Proposal
+        type Scopes AccountsProposalsUpdate =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsProposalsUpdate'{..}
+          = go _apuAccountId _apuProposalId _apuXgafv
+              _apuUploadProtocol
+              _apuAccessToken
+              _apuUploadType
+              _apuCallback
+              (Just AltJSON)
+              _apuPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsProposalsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/PublisherProFiles/Get.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/PublisherProFiles/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/PublisherProFiles/Get.hs
@@ -0,0 +1,168 @@
+{-# 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.AdExchangeBuyer2.Accounts.PublisherProFiles.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the requested publisher profile by id.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.publisherProfiles.get@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.PublisherProFiles.Get
+    (
+    -- * REST Resource
+      AccountsPublisherProFilesGetResource
+
+    -- * Creating a Request
+    , accountsPublisherProFilesGet
+    , AccountsPublisherProFilesGet
+
+    -- * Request Lenses
+    , appfgXgafv
+    , appfgUploadProtocol
+    , appfgAccessToken
+    , appfgUploadType
+    , appfgAccountId
+    , appfgPublisherProFileId
+    , appfgCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.publisherProfiles.get@ method which the
+-- 'AccountsPublisherProFilesGet' request conforms to.
+type AccountsPublisherProFilesGetResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "publisherProfiles" :>
+             Capture "publisherProfileId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] PublisherProFile
+
+-- | Gets the requested publisher profile by id.
+--
+-- /See:/ 'accountsPublisherProFilesGet' smart constructor.
+data AccountsPublisherProFilesGet = AccountsPublisherProFilesGet'
+    { _appfgXgafv              :: !(Maybe Xgafv)
+    , _appfgUploadProtocol     :: !(Maybe Text)
+    , _appfgAccessToken        :: !(Maybe Text)
+    , _appfgUploadType         :: !(Maybe Text)
+    , _appfgAccountId          :: !Text
+    , _appfgPublisherProFileId :: !Text
+    , _appfgCallback           :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsPublisherProFilesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'appfgXgafv'
+--
+-- * 'appfgUploadProtocol'
+--
+-- * 'appfgAccessToken'
+--
+-- * 'appfgUploadType'
+--
+-- * 'appfgAccountId'
+--
+-- * 'appfgPublisherProFileId'
+--
+-- * 'appfgCallback'
+accountsPublisherProFilesGet
+    :: Text -- ^ 'appfgAccountId'
+    -> Text -- ^ 'appfgPublisherProFileId'
+    -> AccountsPublisherProFilesGet
+accountsPublisherProFilesGet pAppfgAccountId_ pAppfgPublisherProFileId_ =
+    AccountsPublisherProFilesGet'
+    { _appfgXgafv = Nothing
+    , _appfgUploadProtocol = Nothing
+    , _appfgAccessToken = Nothing
+    , _appfgUploadType = Nothing
+    , _appfgAccountId = pAppfgAccountId_
+    , _appfgPublisherProFileId = pAppfgPublisherProFileId_
+    , _appfgCallback = Nothing
+    }
+
+-- | V1 error format.
+appfgXgafv :: Lens' AccountsPublisherProFilesGet (Maybe Xgafv)
+appfgXgafv
+  = lens _appfgXgafv (\ s a -> s{_appfgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+appfgUploadProtocol :: Lens' AccountsPublisherProFilesGet (Maybe Text)
+appfgUploadProtocol
+  = lens _appfgUploadProtocol
+      (\ s a -> s{_appfgUploadProtocol = a})
+
+-- | OAuth access token.
+appfgAccessToken :: Lens' AccountsPublisherProFilesGet (Maybe Text)
+appfgAccessToken
+  = lens _appfgAccessToken
+      (\ s a -> s{_appfgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+appfgUploadType :: Lens' AccountsPublisherProFilesGet (Maybe Text)
+appfgUploadType
+  = lens _appfgUploadType
+      (\ s a -> s{_appfgUploadType = a})
+
+-- | Account ID of the buyer.
+appfgAccountId :: Lens' AccountsPublisherProFilesGet Text
+appfgAccountId
+  = lens _appfgAccountId
+      (\ s a -> s{_appfgAccountId = a})
+
+-- | The id for the publisher profile to get.
+appfgPublisherProFileId :: Lens' AccountsPublisherProFilesGet Text
+appfgPublisherProFileId
+  = lens _appfgPublisherProFileId
+      (\ s a -> s{_appfgPublisherProFileId = a})
+
+-- | JSONP
+appfgCallback :: Lens' AccountsPublisherProFilesGet (Maybe Text)
+appfgCallback
+  = lens _appfgCallback
+      (\ s a -> s{_appfgCallback = a})
+
+instance GoogleRequest AccountsPublisherProFilesGet
+         where
+        type Rs AccountsPublisherProFilesGet =
+             PublisherProFile
+        type Scopes AccountsPublisherProFilesGet =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsPublisherProFilesGet'{..}
+          = go _appfgAccountId _appfgPublisherProFileId
+              _appfgXgafv
+              _appfgUploadProtocol
+              _appfgAccessToken
+              _appfgUploadType
+              _appfgCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountsPublisherProFilesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/PublisherProFiles/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/PublisherProFiles/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Accounts/PublisherProFiles/List.hs
@@ -0,0 +1,181 @@
+{-# 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.AdExchangeBuyer2.Accounts.PublisherProFiles.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all publisher profiles visible to the buyer
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.accounts.publisherProfiles.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Accounts.PublisherProFiles.List
+    (
+    -- * REST Resource
+      AccountsPublisherProFilesListResource
+
+    -- * Creating a Request
+    , accountsPublisherProFilesList
+    , AccountsPublisherProFilesList
+
+    -- * Request Lenses
+    , appflXgafv
+    , appflUploadProtocol
+    , appflAccessToken
+    , appflUploadType
+    , appflAccountId
+    , appflPageToken
+    , appflPageSize
+    , appflCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.accounts.publisherProfiles.list@ method which the
+-- 'AccountsPublisherProFilesList' request conforms to.
+type AccountsPublisherProFilesListResource =
+     "v2beta1" :>
+       "accounts" :>
+         Capture "accountId" Text :>
+           "publisherProfiles" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListPublisherProFilesResponse
+
+-- | List all publisher profiles visible to the buyer
+--
+-- /See:/ 'accountsPublisherProFilesList' smart constructor.
+data AccountsPublisherProFilesList = AccountsPublisherProFilesList'
+    { _appflXgafv          :: !(Maybe Xgafv)
+    , _appflUploadProtocol :: !(Maybe Text)
+    , _appflAccessToken    :: !(Maybe Text)
+    , _appflUploadType     :: !(Maybe Text)
+    , _appflAccountId      :: !Text
+    , _appflPageToken      :: !(Maybe Text)
+    , _appflPageSize       :: !(Maybe (Textual Int32))
+    , _appflCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsPublisherProFilesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'appflXgafv'
+--
+-- * 'appflUploadProtocol'
+--
+-- * 'appflAccessToken'
+--
+-- * 'appflUploadType'
+--
+-- * 'appflAccountId'
+--
+-- * 'appflPageToken'
+--
+-- * 'appflPageSize'
+--
+-- * 'appflCallback'
+accountsPublisherProFilesList
+    :: Text -- ^ 'appflAccountId'
+    -> AccountsPublisherProFilesList
+accountsPublisherProFilesList pAppflAccountId_ =
+    AccountsPublisherProFilesList'
+    { _appflXgafv = Nothing
+    , _appflUploadProtocol = Nothing
+    , _appflAccessToken = Nothing
+    , _appflUploadType = Nothing
+    , _appflAccountId = pAppflAccountId_
+    , _appflPageToken = Nothing
+    , _appflPageSize = Nothing
+    , _appflCallback = Nothing
+    }
+
+-- | V1 error format.
+appflXgafv :: Lens' AccountsPublisherProFilesList (Maybe Xgafv)
+appflXgafv
+  = lens _appflXgafv (\ s a -> s{_appflXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+appflUploadProtocol :: Lens' AccountsPublisherProFilesList (Maybe Text)
+appflUploadProtocol
+  = lens _appflUploadProtocol
+      (\ s a -> s{_appflUploadProtocol = a})
+
+-- | OAuth access token.
+appflAccessToken :: Lens' AccountsPublisherProFilesList (Maybe Text)
+appflAccessToken
+  = lens _appflAccessToken
+      (\ s a -> s{_appflAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+appflUploadType :: Lens' AccountsPublisherProFilesList (Maybe Text)
+appflUploadType
+  = lens _appflUploadType
+      (\ s a -> s{_appflUploadType = a})
+
+-- | Account ID of the buyer.
+appflAccountId :: Lens' AccountsPublisherProFilesList Text
+appflAccountId
+  = lens _appflAccountId
+      (\ s a -> s{_appflAccountId = a})
+
+-- | The page token as return from ListPublisherProfilesResponse.
+appflPageToken :: Lens' AccountsPublisherProFilesList (Maybe Text)
+appflPageToken
+  = lens _appflPageToken
+      (\ s a -> s{_appflPageToken = a})
+
+-- | Specify the number of results to include per page.
+appflPageSize :: Lens' AccountsPublisherProFilesList (Maybe Int32)
+appflPageSize
+  = lens _appflPageSize
+      (\ s a -> s{_appflPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+appflCallback :: Lens' AccountsPublisherProFilesList (Maybe Text)
+appflCallback
+  = lens _appflCallback
+      (\ s a -> s{_appflCallback = a})
+
+instance GoogleRequest AccountsPublisherProFilesList
+         where
+        type Rs AccountsPublisherProFilesList =
+             ListPublisherProFilesResponse
+        type Scopes AccountsPublisherProFilesList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient AccountsPublisherProFilesList'{..}
+          = go _appflAccountId _appflXgafv _appflUploadProtocol
+              _appflAccessToken
+              _appflUploadType
+              _appflPageToken
+              _appflPageSize
+              _appflCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AccountsPublisherProFilesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/Creatives/Delete.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/Creatives/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/Creatives/Delete.hs
@@ -0,0 +1,172 @@
+{-# 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.AdExchangeBuyer2.Bidders.Accounts.Creatives.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a single creative. A creative is deactivated upon deletion and
+-- does not count against active snippet quota. A deleted creative should
+-- not be used in bidding (all bids with that creative will be rejected).
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.creatives.delete@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.Creatives.Delete
+    (
+    -- * REST Resource
+      BiddersAccountsCreativesDeleteResource
+
+    -- * Creating a Request
+    , biddersAccountsCreativesDelete
+    , BiddersAccountsCreativesDelete
+
+    -- * Request Lenses
+    , bacdXgafv
+    , bacdUploadProtocol
+    , bacdAccessToken
+    , bacdUploadType
+    , bacdCreativeId
+    , bacdOwnerName
+    , bacdCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.creatives.delete@ method which the
+-- 'BiddersAccountsCreativesDelete' request conforms to.
+type BiddersAccountsCreativesDeleteResource =
+     "v2beta1" :>
+       Capture "ownerName" Text :>
+         "creatives" :>
+           Capture "creativeId" Text :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes a single creative. A creative is deactivated upon deletion and
+-- does not count against active snippet quota. A deleted creative should
+-- not be used in bidding (all bids with that creative will be rejected).
+--
+-- /See:/ 'biddersAccountsCreativesDelete' smart constructor.
+data BiddersAccountsCreativesDelete = BiddersAccountsCreativesDelete'
+    { _bacdXgafv          :: !(Maybe Xgafv)
+    , _bacdUploadProtocol :: !(Maybe Text)
+    , _bacdAccessToken    :: !(Maybe Text)
+    , _bacdUploadType     :: !(Maybe Text)
+    , _bacdCreativeId     :: !Text
+    , _bacdOwnerName      :: !Text
+    , _bacdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsCreativesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bacdXgafv'
+--
+-- * 'bacdUploadProtocol'
+--
+-- * 'bacdAccessToken'
+--
+-- * 'bacdUploadType'
+--
+-- * 'bacdCreativeId'
+--
+-- * 'bacdOwnerName'
+--
+-- * 'bacdCallback'
+biddersAccountsCreativesDelete
+    :: Text -- ^ 'bacdCreativeId'
+    -> Text -- ^ 'bacdOwnerName'
+    -> BiddersAccountsCreativesDelete
+biddersAccountsCreativesDelete pBacdCreativeId_ pBacdOwnerName_ =
+    BiddersAccountsCreativesDelete'
+    { _bacdXgafv = Nothing
+    , _bacdUploadProtocol = Nothing
+    , _bacdAccessToken = Nothing
+    , _bacdUploadType = Nothing
+    , _bacdCreativeId = pBacdCreativeId_
+    , _bacdOwnerName = pBacdOwnerName_
+    , _bacdCallback = Nothing
+    }
+
+-- | V1 error format.
+bacdXgafv :: Lens' BiddersAccountsCreativesDelete (Maybe Xgafv)
+bacdXgafv
+  = lens _bacdXgafv (\ s a -> s{_bacdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bacdUploadProtocol :: Lens' BiddersAccountsCreativesDelete (Maybe Text)
+bacdUploadProtocol
+  = lens _bacdUploadProtocol
+      (\ s a -> s{_bacdUploadProtocol = a})
+
+-- | OAuth access token.
+bacdAccessToken :: Lens' BiddersAccountsCreativesDelete (Maybe Text)
+bacdAccessToken
+  = lens _bacdAccessToken
+      (\ s a -> s{_bacdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bacdUploadType :: Lens' BiddersAccountsCreativesDelete (Maybe Text)
+bacdUploadType
+  = lens _bacdUploadType
+      (\ s a -> s{_bacdUploadType = a})
+
+-- | The ID of the creative to delete.
+bacdCreativeId :: Lens' BiddersAccountsCreativesDelete Text
+bacdCreativeId
+  = lens _bacdCreativeId
+      (\ s a -> s{_bacdCreativeId = a})
+
+-- | Name of the owner (bidder or account) of the creative to be deleted. For
+-- example: - For an account-level creative for the buyer account
+-- representing bidder 123: \`bidders\/123\/accounts\/123\` - For an
+-- account-level creative for the child seat buyer account 456 whose bidder
+-- is 123: \`bidders\/123\/accounts\/456\`
+bacdOwnerName :: Lens' BiddersAccountsCreativesDelete Text
+bacdOwnerName
+  = lens _bacdOwnerName
+      (\ s a -> s{_bacdOwnerName = a})
+
+-- | JSONP
+bacdCallback :: Lens' BiddersAccountsCreativesDelete (Maybe Text)
+bacdCallback
+  = lens _bacdCallback (\ s a -> s{_bacdCallback = a})
+
+instance GoogleRequest BiddersAccountsCreativesDelete
+         where
+        type Rs BiddersAccountsCreativesDelete = Empty
+        type Scopes BiddersAccountsCreativesDelete =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersAccountsCreativesDelete'{..}
+          = go _bacdOwnerName _bacdCreativeId _bacdXgafv
+              _bacdUploadProtocol
+              _bacdAccessToken
+              _bacdUploadType
+              _bacdCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy BiddersAccountsCreativesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/BidMetrics/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/BidMetrics/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/BidMetrics/List.hs
@@ -0,0 +1,193 @@
+{-# 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.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidMetrics.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all metrics that are measured in terms of number of bids.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.bidMetrics.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidMetrics.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsBidMetricsListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsBidMetricsList
+    , BiddersAccountsFilterSetsBidMetricsList
+
+    -- * Request Lenses
+    , bafsbmlXgafv
+    , bafsbmlUploadProtocol
+    , bafsbmlFilterSetName
+    , bafsbmlAccessToken
+    , bafsbmlUploadType
+    , bafsbmlPageToken
+    , bafsbmlPageSize
+    , bafsbmlCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.bidMetrics.list@ method which the
+-- 'BiddersAccountsFilterSetsBidMetricsList' request conforms to.
+type BiddersAccountsFilterSetsBidMetricsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "bidMetrics" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListBidMetricsResponse
+
+-- | Lists all metrics that are measured in terms of number of bids.
+--
+-- /See:/ 'biddersAccountsFilterSetsBidMetricsList' smart constructor.
+data BiddersAccountsFilterSetsBidMetricsList = BiddersAccountsFilterSetsBidMetricsList'
+    { _bafsbmlXgafv          :: !(Maybe Xgafv)
+    , _bafsbmlUploadProtocol :: !(Maybe Text)
+    , _bafsbmlFilterSetName  :: !Text
+    , _bafsbmlAccessToken    :: !(Maybe Text)
+    , _bafsbmlUploadType     :: !(Maybe Text)
+    , _bafsbmlPageToken      :: !(Maybe Text)
+    , _bafsbmlPageSize       :: !(Maybe (Textual Int32))
+    , _bafsbmlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsBidMetricsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsbmlXgafv'
+--
+-- * 'bafsbmlUploadProtocol'
+--
+-- * 'bafsbmlFilterSetName'
+--
+-- * 'bafsbmlAccessToken'
+--
+-- * 'bafsbmlUploadType'
+--
+-- * 'bafsbmlPageToken'
+--
+-- * 'bafsbmlPageSize'
+--
+-- * 'bafsbmlCallback'
+biddersAccountsFilterSetsBidMetricsList
+    :: Text -- ^ 'bafsbmlFilterSetName'
+    -> BiddersAccountsFilterSetsBidMetricsList
+biddersAccountsFilterSetsBidMetricsList pBafsbmlFilterSetName_ =
+    BiddersAccountsFilterSetsBidMetricsList'
+    { _bafsbmlXgafv = Nothing
+    , _bafsbmlUploadProtocol = Nothing
+    , _bafsbmlFilterSetName = pBafsbmlFilterSetName_
+    , _bafsbmlAccessToken = Nothing
+    , _bafsbmlUploadType = Nothing
+    , _bafsbmlPageToken = Nothing
+    , _bafsbmlPageSize = Nothing
+    , _bafsbmlCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsbmlXgafv :: Lens' BiddersAccountsFilterSetsBidMetricsList (Maybe Xgafv)
+bafsbmlXgafv
+  = lens _bafsbmlXgafv (\ s a -> s{_bafsbmlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsbmlUploadProtocol :: Lens' BiddersAccountsFilterSetsBidMetricsList (Maybe Text)
+bafsbmlUploadProtocol
+  = lens _bafsbmlUploadProtocol
+      (\ s a -> s{_bafsbmlUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsbmlFilterSetName :: Lens' BiddersAccountsFilterSetsBidMetricsList Text
+bafsbmlFilterSetName
+  = lens _bafsbmlFilterSetName
+      (\ s a -> s{_bafsbmlFilterSetName = a})
+
+-- | OAuth access token.
+bafsbmlAccessToken :: Lens' BiddersAccountsFilterSetsBidMetricsList (Maybe Text)
+bafsbmlAccessToken
+  = lens _bafsbmlAccessToken
+      (\ s a -> s{_bafsbmlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsbmlUploadType :: Lens' BiddersAccountsFilterSetsBidMetricsList (Maybe Text)
+bafsbmlUploadType
+  = lens _bafsbmlUploadType
+      (\ s a -> s{_bafsbmlUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListBidMetricsResponse.nextPageToken
+-- returned from the previous call to the bidMetrics.list method.
+bafsbmlPageToken :: Lens' BiddersAccountsFilterSetsBidMetricsList (Maybe Text)
+bafsbmlPageToken
+  = lens _bafsbmlPageToken
+      (\ s a -> s{_bafsbmlPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafsbmlPageSize :: Lens' BiddersAccountsFilterSetsBidMetricsList (Maybe Int32)
+bafsbmlPageSize
+  = lens _bafsbmlPageSize
+      (\ s a -> s{_bafsbmlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafsbmlCallback :: Lens' BiddersAccountsFilterSetsBidMetricsList (Maybe Text)
+bafsbmlCallback
+  = lens _bafsbmlCallback
+      (\ s a -> s{_bafsbmlCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsBidMetricsList where
+        type Rs BiddersAccountsFilterSetsBidMetricsList =
+             ListBidMetricsResponse
+        type Scopes BiddersAccountsFilterSetsBidMetricsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersAccountsFilterSetsBidMetricsList'{..}
+          = go _bafsbmlFilterSetName _bafsbmlXgafv
+              _bafsbmlUploadProtocol
+              _bafsbmlAccessToken
+              _bafsbmlUploadType
+              _bafsbmlPageToken
+              _bafsbmlPageSize
+              _bafsbmlCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersAccountsFilterSetsBidMetricsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/BidResponseErrors/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/BidResponseErrors/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/BidResponseErrors/List.hs
@@ -0,0 +1,200 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidResponseErrors.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all errors that occurred in bid responses, with the number of bid
+-- responses affected for each reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.bidResponseErrors.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidResponseErrors.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsBidResponseErrorsListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsBidResponseErrorsList
+    , BiddersAccountsFilterSetsBidResponseErrorsList
+
+    -- * Request Lenses
+    , bafsbrelXgafv
+    , bafsbrelUploadProtocol
+    , bafsbrelFilterSetName
+    , bafsbrelAccessToken
+    , bafsbrelUploadType
+    , bafsbrelPageToken
+    , bafsbrelPageSize
+    , bafsbrelCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.bidResponseErrors.list@ method which the
+-- 'BiddersAccountsFilterSetsBidResponseErrorsList' request conforms to.
+type BiddersAccountsFilterSetsBidResponseErrorsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "bidResponseErrors" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListBidResponseErrorsResponse
+
+-- | List all errors that occurred in bid responses, with the number of bid
+-- responses affected for each reason.
+--
+-- /See:/ 'biddersAccountsFilterSetsBidResponseErrorsList' smart constructor.
+data BiddersAccountsFilterSetsBidResponseErrorsList = BiddersAccountsFilterSetsBidResponseErrorsList'
+    { _bafsbrelXgafv          :: !(Maybe Xgafv)
+    , _bafsbrelUploadProtocol :: !(Maybe Text)
+    , _bafsbrelFilterSetName  :: !Text
+    , _bafsbrelAccessToken    :: !(Maybe Text)
+    , _bafsbrelUploadType     :: !(Maybe Text)
+    , _bafsbrelPageToken      :: !(Maybe Text)
+    , _bafsbrelPageSize       :: !(Maybe (Textual Int32))
+    , _bafsbrelCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsBidResponseErrorsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsbrelXgafv'
+--
+-- * 'bafsbrelUploadProtocol'
+--
+-- * 'bafsbrelFilterSetName'
+--
+-- * 'bafsbrelAccessToken'
+--
+-- * 'bafsbrelUploadType'
+--
+-- * 'bafsbrelPageToken'
+--
+-- * 'bafsbrelPageSize'
+--
+-- * 'bafsbrelCallback'
+biddersAccountsFilterSetsBidResponseErrorsList
+    :: Text -- ^ 'bafsbrelFilterSetName'
+    -> BiddersAccountsFilterSetsBidResponseErrorsList
+biddersAccountsFilterSetsBidResponseErrorsList pBafsbrelFilterSetName_ =
+    BiddersAccountsFilterSetsBidResponseErrorsList'
+    { _bafsbrelXgafv = Nothing
+    , _bafsbrelUploadProtocol = Nothing
+    , _bafsbrelFilterSetName = pBafsbrelFilterSetName_
+    , _bafsbrelAccessToken = Nothing
+    , _bafsbrelUploadType = Nothing
+    , _bafsbrelPageToken = Nothing
+    , _bafsbrelPageSize = Nothing
+    , _bafsbrelCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsbrelXgafv :: Lens' BiddersAccountsFilterSetsBidResponseErrorsList (Maybe Xgafv)
+bafsbrelXgafv
+  = lens _bafsbrelXgafv
+      (\ s a -> s{_bafsbrelXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsbrelUploadProtocol :: Lens' BiddersAccountsFilterSetsBidResponseErrorsList (Maybe Text)
+bafsbrelUploadProtocol
+  = lens _bafsbrelUploadProtocol
+      (\ s a -> s{_bafsbrelUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsbrelFilterSetName :: Lens' BiddersAccountsFilterSetsBidResponseErrorsList Text
+bafsbrelFilterSetName
+  = lens _bafsbrelFilterSetName
+      (\ s a -> s{_bafsbrelFilterSetName = a})
+
+-- | OAuth access token.
+bafsbrelAccessToken :: Lens' BiddersAccountsFilterSetsBidResponseErrorsList (Maybe Text)
+bafsbrelAccessToken
+  = lens _bafsbrelAccessToken
+      (\ s a -> s{_bafsbrelAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsbrelUploadType :: Lens' BiddersAccountsFilterSetsBidResponseErrorsList (Maybe Text)
+bafsbrelUploadType
+  = lens _bafsbrelUploadType
+      (\ s a -> s{_bafsbrelUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListBidResponseErrorsResponse.nextPageToken returned from the previous
+-- call to the bidResponseErrors.list method.
+bafsbrelPageToken :: Lens' BiddersAccountsFilterSetsBidResponseErrorsList (Maybe Text)
+bafsbrelPageToken
+  = lens _bafsbrelPageToken
+      (\ s a -> s{_bafsbrelPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafsbrelPageSize :: Lens' BiddersAccountsFilterSetsBidResponseErrorsList (Maybe Int32)
+bafsbrelPageSize
+  = lens _bafsbrelPageSize
+      (\ s a -> s{_bafsbrelPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafsbrelCallback :: Lens' BiddersAccountsFilterSetsBidResponseErrorsList (Maybe Text)
+bafsbrelCallback
+  = lens _bafsbrelCallback
+      (\ s a -> s{_bafsbrelCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsBidResponseErrorsList where
+        type Rs
+               BiddersAccountsFilterSetsBidResponseErrorsList
+             = ListBidResponseErrorsResponse
+        type Scopes
+               BiddersAccountsFilterSetsBidResponseErrorsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersAccountsFilterSetsBidResponseErrorsList'{..}
+          = go _bafsbrelFilterSetName _bafsbrelXgafv
+              _bafsbrelUploadProtocol
+              _bafsbrelAccessToken
+              _bafsbrelUploadType
+              _bafsbrelPageToken
+              _bafsbrelPageSize
+              _bafsbrelCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersAccountsFilterSetsBidResponseErrorsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/BidResponsesWithoutBids/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/BidResponsesWithoutBids/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/BidResponsesWithoutBids/List.hs
@@ -0,0 +1,203 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidResponsesWithoutBids.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all reasons for which bid responses were considered to have no
+-- applicable bids, with the number of bid responses affected for each
+-- reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.bidResponsesWithoutBids.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidResponsesWithoutBids.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsBidResponsesWithoutBidsListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsBidResponsesWithoutBidsList
+    , BiddersAccountsFilterSetsBidResponsesWithoutBidsList
+
+    -- * Request Lenses
+    , bafsbrwblXgafv
+    , bafsbrwblUploadProtocol
+    , bafsbrwblFilterSetName
+    , bafsbrwblAccessToken
+    , bafsbrwblUploadType
+    , bafsbrwblPageToken
+    , bafsbrwblPageSize
+    , bafsbrwblCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.bidResponsesWithoutBids.list@ method which the
+-- 'BiddersAccountsFilterSetsBidResponsesWithoutBidsList' request conforms to.
+type BiddersAccountsFilterSetsBidResponsesWithoutBidsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "bidResponsesWithoutBids" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListBidResponsesWithoutBidsResponse
+
+-- | List all reasons for which bid responses were considered to have no
+-- applicable bids, with the number of bid responses affected for each
+-- reason.
+--
+-- /See:/ 'biddersAccountsFilterSetsBidResponsesWithoutBidsList' smart constructor.
+data BiddersAccountsFilterSetsBidResponsesWithoutBidsList = BiddersAccountsFilterSetsBidResponsesWithoutBidsList'
+    { _bafsbrwblXgafv          :: !(Maybe Xgafv)
+    , _bafsbrwblUploadProtocol :: !(Maybe Text)
+    , _bafsbrwblFilterSetName  :: !Text
+    , _bafsbrwblAccessToken    :: !(Maybe Text)
+    , _bafsbrwblUploadType     :: !(Maybe Text)
+    , _bafsbrwblPageToken      :: !(Maybe Text)
+    , _bafsbrwblPageSize       :: !(Maybe (Textual Int32))
+    , _bafsbrwblCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsBidResponsesWithoutBidsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsbrwblXgafv'
+--
+-- * 'bafsbrwblUploadProtocol'
+--
+-- * 'bafsbrwblFilterSetName'
+--
+-- * 'bafsbrwblAccessToken'
+--
+-- * 'bafsbrwblUploadType'
+--
+-- * 'bafsbrwblPageToken'
+--
+-- * 'bafsbrwblPageSize'
+--
+-- * 'bafsbrwblCallback'
+biddersAccountsFilterSetsBidResponsesWithoutBidsList
+    :: Text -- ^ 'bafsbrwblFilterSetName'
+    -> BiddersAccountsFilterSetsBidResponsesWithoutBidsList
+biddersAccountsFilterSetsBidResponsesWithoutBidsList pBafsbrwblFilterSetName_ =
+    BiddersAccountsFilterSetsBidResponsesWithoutBidsList'
+    { _bafsbrwblXgafv = Nothing
+    , _bafsbrwblUploadProtocol = Nothing
+    , _bafsbrwblFilterSetName = pBafsbrwblFilterSetName_
+    , _bafsbrwblAccessToken = Nothing
+    , _bafsbrwblUploadType = Nothing
+    , _bafsbrwblPageToken = Nothing
+    , _bafsbrwblPageSize = Nothing
+    , _bafsbrwblCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsbrwblXgafv :: Lens' BiddersAccountsFilterSetsBidResponsesWithoutBidsList (Maybe Xgafv)
+bafsbrwblXgafv
+  = lens _bafsbrwblXgafv
+      (\ s a -> s{_bafsbrwblXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsbrwblUploadProtocol :: Lens' BiddersAccountsFilterSetsBidResponsesWithoutBidsList (Maybe Text)
+bafsbrwblUploadProtocol
+  = lens _bafsbrwblUploadProtocol
+      (\ s a -> s{_bafsbrwblUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsbrwblFilterSetName :: Lens' BiddersAccountsFilterSetsBidResponsesWithoutBidsList Text
+bafsbrwblFilterSetName
+  = lens _bafsbrwblFilterSetName
+      (\ s a -> s{_bafsbrwblFilterSetName = a})
+
+-- | OAuth access token.
+bafsbrwblAccessToken :: Lens' BiddersAccountsFilterSetsBidResponsesWithoutBidsList (Maybe Text)
+bafsbrwblAccessToken
+  = lens _bafsbrwblAccessToken
+      (\ s a -> s{_bafsbrwblAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsbrwblUploadType :: Lens' BiddersAccountsFilterSetsBidResponsesWithoutBidsList (Maybe Text)
+bafsbrwblUploadType
+  = lens _bafsbrwblUploadType
+      (\ s a -> s{_bafsbrwblUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListBidResponsesWithoutBidsResponse.nextPageToken returned from the
+-- previous call to the bidResponsesWithoutBids.list method.
+bafsbrwblPageToken :: Lens' BiddersAccountsFilterSetsBidResponsesWithoutBidsList (Maybe Text)
+bafsbrwblPageToken
+  = lens _bafsbrwblPageToken
+      (\ s a -> s{_bafsbrwblPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafsbrwblPageSize :: Lens' BiddersAccountsFilterSetsBidResponsesWithoutBidsList (Maybe Int32)
+bafsbrwblPageSize
+  = lens _bafsbrwblPageSize
+      (\ s a -> s{_bafsbrwblPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafsbrwblCallback :: Lens' BiddersAccountsFilterSetsBidResponsesWithoutBidsList (Maybe Text)
+bafsbrwblCallback
+  = lens _bafsbrwblCallback
+      (\ s a -> s{_bafsbrwblCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsBidResponsesWithoutBidsList
+         where
+        type Rs
+               BiddersAccountsFilterSetsBidResponsesWithoutBidsList
+             = ListBidResponsesWithoutBidsResponse
+        type Scopes
+               BiddersAccountsFilterSetsBidResponsesWithoutBidsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersAccountsFilterSetsBidResponsesWithoutBidsList'{..}
+          = go _bafsbrwblFilterSetName _bafsbrwblXgafv
+              _bafsbrwblUploadProtocol
+              _bafsbrwblAccessToken
+              _bafsbrwblUploadType
+              _bafsbrwblPageToken
+              _bafsbrwblPageSize
+              _bafsbrwblCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersAccountsFilterSetsBidResponsesWithoutBidsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/Create.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/Create.hs
@@ -0,0 +1,186 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates the specified filter set for the account with the given account
+-- ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.create@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Create
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsCreateResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsCreate
+    , BiddersAccountsFilterSetsCreate
+
+    -- * Request Lenses
+    , bafscXgafv
+    , bafscUploadProtocol
+    , bafscAccessToken
+    , bafscUploadType
+    , bafscOwnerName
+    , bafscPayload
+    , bafscIsTransient
+    , bafscCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.create@ method which the
+-- 'BiddersAccountsFilterSetsCreate' request conforms to.
+type BiddersAccountsFilterSetsCreateResource =
+     "v2beta1" :>
+       Capture "ownerName" Text :>
+         "filterSets" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "isTransient" Bool :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] FilterSet :> Post '[JSON] FilterSet
+
+-- | Creates the specified filter set for the account with the given account
+-- ID.
+--
+-- /See:/ 'biddersAccountsFilterSetsCreate' smart constructor.
+data BiddersAccountsFilterSetsCreate = BiddersAccountsFilterSetsCreate'
+    { _bafscXgafv          :: !(Maybe Xgafv)
+    , _bafscUploadProtocol :: !(Maybe Text)
+    , _bafscAccessToken    :: !(Maybe Text)
+    , _bafscUploadType     :: !(Maybe Text)
+    , _bafscOwnerName      :: !Text
+    , _bafscPayload        :: !FilterSet
+    , _bafscIsTransient    :: !(Maybe Bool)
+    , _bafscCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafscXgafv'
+--
+-- * 'bafscUploadProtocol'
+--
+-- * 'bafscAccessToken'
+--
+-- * 'bafscUploadType'
+--
+-- * 'bafscOwnerName'
+--
+-- * 'bafscPayload'
+--
+-- * 'bafscIsTransient'
+--
+-- * 'bafscCallback'
+biddersAccountsFilterSetsCreate
+    :: Text -- ^ 'bafscOwnerName'
+    -> FilterSet -- ^ 'bafscPayload'
+    -> BiddersAccountsFilterSetsCreate
+biddersAccountsFilterSetsCreate pBafscOwnerName_ pBafscPayload_ =
+    BiddersAccountsFilterSetsCreate'
+    { _bafscXgafv = Nothing
+    , _bafscUploadProtocol = Nothing
+    , _bafscAccessToken = Nothing
+    , _bafscUploadType = Nothing
+    , _bafscOwnerName = pBafscOwnerName_
+    , _bafscPayload = pBafscPayload_
+    , _bafscIsTransient = Nothing
+    , _bafscCallback = Nothing
+    }
+
+-- | V1 error format.
+bafscXgafv :: Lens' BiddersAccountsFilterSetsCreate (Maybe Xgafv)
+bafscXgafv
+  = lens _bafscXgafv (\ s a -> s{_bafscXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafscUploadProtocol :: Lens' BiddersAccountsFilterSetsCreate (Maybe Text)
+bafscUploadProtocol
+  = lens _bafscUploadProtocol
+      (\ s a -> s{_bafscUploadProtocol = a})
+
+-- | OAuth access token.
+bafscAccessToken :: Lens' BiddersAccountsFilterSetsCreate (Maybe Text)
+bafscAccessToken
+  = lens _bafscAccessToken
+      (\ s a -> s{_bafscAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafscUploadType :: Lens' BiddersAccountsFilterSetsCreate (Maybe Text)
+bafscUploadType
+  = lens _bafscUploadType
+      (\ s a -> s{_bafscUploadType = a})
+
+-- | Name of the owner (bidder or account) of the filter set to be created.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\` - For an account-level filter set for the buyer account
+-- representing bidder 123: \`bidders\/123\/accounts\/123\` - For an
+-- account-level filter set for the child seat buyer account 456 whose
+-- bidder is 123: \`bidders\/123\/accounts\/456\`
+bafscOwnerName :: Lens' BiddersAccountsFilterSetsCreate Text
+bafscOwnerName
+  = lens _bafscOwnerName
+      (\ s a -> s{_bafscOwnerName = a})
+
+-- | Multipart request metadata.
+bafscPayload :: Lens' BiddersAccountsFilterSetsCreate FilterSet
+bafscPayload
+  = lens _bafscPayload (\ s a -> s{_bafscPayload = a})
+
+-- | Whether the filter set is transient, or should be persisted
+-- indefinitely. By default, filter sets are not transient. If transient,
+-- it will be available for at least 1 hour after creation.
+bafscIsTransient :: Lens' BiddersAccountsFilterSetsCreate (Maybe Bool)
+bafscIsTransient
+  = lens _bafscIsTransient
+      (\ s a -> s{_bafscIsTransient = a})
+
+-- | JSONP
+bafscCallback :: Lens' BiddersAccountsFilterSetsCreate (Maybe Text)
+bafscCallback
+  = lens _bafscCallback
+      (\ s a -> s{_bafscCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsCreate where
+        type Rs BiddersAccountsFilterSetsCreate = FilterSet
+        type Scopes BiddersAccountsFilterSetsCreate =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersAccountsFilterSetsCreate'{..}
+          = go _bafscOwnerName _bafscXgafv _bafscUploadProtocol
+              _bafscAccessToken
+              _bafscUploadType
+              _bafscIsTransient
+              _bafscCallback
+              (Just AltJSON)
+              _bafscPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy BiddersAccountsFilterSetsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/Delete.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/Delete.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the requested filter set from the account with the given account
+-- ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.delete@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Delete
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsDeleteResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsDelete
+    , BiddersAccountsFilterSetsDelete
+
+    -- * Request Lenses
+    , bafsdXgafv
+    , bafsdUploadProtocol
+    , bafsdAccessToken
+    , bafsdUploadType
+    , bafsdName
+    , bafsdCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.delete@ method which the
+-- 'BiddersAccountsFilterSetsDelete' request conforms to.
+type BiddersAccountsFilterSetsDeleteResource =
+     "v2beta1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes the requested filter set from the account with the given account
+-- ID.
+--
+-- /See:/ 'biddersAccountsFilterSetsDelete' smart constructor.
+data BiddersAccountsFilterSetsDelete = BiddersAccountsFilterSetsDelete'
+    { _bafsdXgafv          :: !(Maybe Xgafv)
+    , _bafsdUploadProtocol :: !(Maybe Text)
+    , _bafsdAccessToken    :: !(Maybe Text)
+    , _bafsdUploadType     :: !(Maybe Text)
+    , _bafsdName           :: !Text
+    , _bafsdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsdXgafv'
+--
+-- * 'bafsdUploadProtocol'
+--
+-- * 'bafsdAccessToken'
+--
+-- * 'bafsdUploadType'
+--
+-- * 'bafsdName'
+--
+-- * 'bafsdCallback'
+biddersAccountsFilterSetsDelete
+    :: Text -- ^ 'bafsdName'
+    -> BiddersAccountsFilterSetsDelete
+biddersAccountsFilterSetsDelete pBafsdName_ =
+    BiddersAccountsFilterSetsDelete'
+    { _bafsdXgafv = Nothing
+    , _bafsdUploadProtocol = Nothing
+    , _bafsdAccessToken = Nothing
+    , _bafsdUploadType = Nothing
+    , _bafsdName = pBafsdName_
+    , _bafsdCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsdXgafv :: Lens' BiddersAccountsFilterSetsDelete (Maybe Xgafv)
+bafsdXgafv
+  = lens _bafsdXgafv (\ s a -> s{_bafsdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsdUploadProtocol :: Lens' BiddersAccountsFilterSetsDelete (Maybe Text)
+bafsdUploadProtocol
+  = lens _bafsdUploadProtocol
+      (\ s a -> s{_bafsdUploadProtocol = a})
+
+-- | OAuth access token.
+bafsdAccessToken :: Lens' BiddersAccountsFilterSetsDelete (Maybe Text)
+bafsdAccessToken
+  = lens _bafsdAccessToken
+      (\ s a -> s{_bafsdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsdUploadType :: Lens' BiddersAccountsFilterSetsDelete (Maybe Text)
+bafsdUploadType
+  = lens _bafsdUploadType
+      (\ s a -> s{_bafsdUploadType = a})
+
+-- | Full name of the resource to delete. For example: - For a bidder-level
+-- filter set for bidder 123: \`bidders\/123\/filterSets\/abc\` - For an
+-- account-level filter set for the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsdName :: Lens' BiddersAccountsFilterSetsDelete Text
+bafsdName
+  = lens _bafsdName (\ s a -> s{_bafsdName = a})
+
+-- | JSONP
+bafsdCallback :: Lens' BiddersAccountsFilterSetsDelete (Maybe Text)
+bafsdCallback
+  = lens _bafsdCallback
+      (\ s a -> s{_bafsdCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsDelete where
+        type Rs BiddersAccountsFilterSetsDelete = Empty
+        type Scopes BiddersAccountsFilterSetsDelete =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersAccountsFilterSetsDelete'{..}
+          = go _bafsdName _bafsdXgafv _bafsdUploadProtocol
+              _bafsdAccessToken
+              _bafsdUploadType
+              _bafsdCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy BiddersAccountsFilterSetsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBidRequests/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBidRequests/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBidRequests/List.hs
@@ -0,0 +1,201 @@
+{-# 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.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBidRequests.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all reasons that caused a bid request not to be sent for an
+-- impression, with the number of bid requests not sent for each reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.filteredBidRequests.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBidRequests.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsFilteredBidRequestsListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsFilteredBidRequestsList
+    , BiddersAccountsFilterSetsFilteredBidRequestsList
+
+    -- * Request Lenses
+    , bafsfbrlXgafv
+    , bafsfbrlUploadProtocol
+    , bafsfbrlFilterSetName
+    , bafsfbrlAccessToken
+    , bafsfbrlUploadType
+    , bafsfbrlPageToken
+    , bafsfbrlPageSize
+    , bafsfbrlCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.filteredBidRequests.list@ method which the
+-- 'BiddersAccountsFilterSetsFilteredBidRequestsList' request conforms to.
+type BiddersAccountsFilterSetsFilteredBidRequestsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "filteredBidRequests" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListFilteredBidRequestsResponse
+
+-- | List all reasons that caused a bid request not to be sent for an
+-- impression, with the number of bid requests not sent for each reason.
+--
+-- /See:/ 'biddersAccountsFilterSetsFilteredBidRequestsList' smart constructor.
+data BiddersAccountsFilterSetsFilteredBidRequestsList = BiddersAccountsFilterSetsFilteredBidRequestsList'
+    { _bafsfbrlXgafv          :: !(Maybe Xgafv)
+    , _bafsfbrlUploadProtocol :: !(Maybe Text)
+    , _bafsfbrlFilterSetName  :: !Text
+    , _bafsfbrlAccessToken    :: !(Maybe Text)
+    , _bafsfbrlUploadType     :: !(Maybe Text)
+    , _bafsfbrlPageToken      :: !(Maybe Text)
+    , _bafsfbrlPageSize       :: !(Maybe (Textual Int32))
+    , _bafsfbrlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsFilteredBidRequestsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsfbrlXgafv'
+--
+-- * 'bafsfbrlUploadProtocol'
+--
+-- * 'bafsfbrlFilterSetName'
+--
+-- * 'bafsfbrlAccessToken'
+--
+-- * 'bafsfbrlUploadType'
+--
+-- * 'bafsfbrlPageToken'
+--
+-- * 'bafsfbrlPageSize'
+--
+-- * 'bafsfbrlCallback'
+biddersAccountsFilterSetsFilteredBidRequestsList
+    :: Text -- ^ 'bafsfbrlFilterSetName'
+    -> BiddersAccountsFilterSetsFilteredBidRequestsList
+biddersAccountsFilterSetsFilteredBidRequestsList pBafsfbrlFilterSetName_ =
+    BiddersAccountsFilterSetsFilteredBidRequestsList'
+    { _bafsfbrlXgafv = Nothing
+    , _bafsfbrlUploadProtocol = Nothing
+    , _bafsfbrlFilterSetName = pBafsfbrlFilterSetName_
+    , _bafsfbrlAccessToken = Nothing
+    , _bafsfbrlUploadType = Nothing
+    , _bafsfbrlPageToken = Nothing
+    , _bafsfbrlPageSize = Nothing
+    , _bafsfbrlCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsfbrlXgafv :: Lens' BiddersAccountsFilterSetsFilteredBidRequestsList (Maybe Xgafv)
+bafsfbrlXgafv
+  = lens _bafsfbrlXgafv
+      (\ s a -> s{_bafsfbrlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsfbrlUploadProtocol :: Lens' BiddersAccountsFilterSetsFilteredBidRequestsList (Maybe Text)
+bafsfbrlUploadProtocol
+  = lens _bafsfbrlUploadProtocol
+      (\ s a -> s{_bafsfbrlUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsfbrlFilterSetName :: Lens' BiddersAccountsFilterSetsFilteredBidRequestsList Text
+bafsfbrlFilterSetName
+  = lens _bafsfbrlFilterSetName
+      (\ s a -> s{_bafsfbrlFilterSetName = a})
+
+-- | OAuth access token.
+bafsfbrlAccessToken :: Lens' BiddersAccountsFilterSetsFilteredBidRequestsList (Maybe Text)
+bafsfbrlAccessToken
+  = lens _bafsfbrlAccessToken
+      (\ s a -> s{_bafsfbrlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsfbrlUploadType :: Lens' BiddersAccountsFilterSetsFilteredBidRequestsList (Maybe Text)
+bafsfbrlUploadType
+  = lens _bafsfbrlUploadType
+      (\ s a -> s{_bafsfbrlUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListFilteredBidRequestsResponse.nextPageToken returned from the previous
+-- call to the filteredBidRequests.list method.
+bafsfbrlPageToken :: Lens' BiddersAccountsFilterSetsFilteredBidRequestsList (Maybe Text)
+bafsfbrlPageToken
+  = lens _bafsfbrlPageToken
+      (\ s a -> s{_bafsfbrlPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafsfbrlPageSize :: Lens' BiddersAccountsFilterSetsFilteredBidRequestsList (Maybe Int32)
+bafsfbrlPageSize
+  = lens _bafsfbrlPageSize
+      (\ s a -> s{_bafsfbrlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafsfbrlCallback :: Lens' BiddersAccountsFilterSetsFilteredBidRequestsList (Maybe Text)
+bafsfbrlCallback
+  = lens _bafsfbrlCallback
+      (\ s a -> s{_bafsfbrlCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsFilteredBidRequestsList
+         where
+        type Rs
+               BiddersAccountsFilterSetsFilteredBidRequestsList
+             = ListFilteredBidRequestsResponse
+        type Scopes
+               BiddersAccountsFilterSetsFilteredBidRequestsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersAccountsFilterSetsFilteredBidRequestsList'{..}
+          = go _bafsfbrlFilterSetName _bafsfbrlXgafv
+              _bafsfbrlUploadProtocol
+              _bafsfbrlAccessToken
+              _bafsfbrlUploadType
+              _bafsfbrlPageToken
+              _bafsfbrlPageSize
+              _bafsfbrlCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersAccountsFilterSetsFilteredBidRequestsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBids/Creatives/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBids/Creatives/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBids/Creatives/List.hs
@@ -0,0 +1,220 @@
+{-# 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.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.Creatives.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all creatives associated with a specific reason for which bids were
+-- filtered, with the number of bids filtered for each creative.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.filteredBids.creatives.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.Creatives.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsFilteredBidsCreativesListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsFilteredBidsCreativesList
+    , BiddersAccountsFilterSetsFilteredBidsCreativesList
+
+    -- * Request Lenses
+    , bafsfbclXgafv
+    , bafsfbclUploadProtocol
+    , bafsfbclFilterSetName
+    , bafsfbclAccessToken
+    , bafsfbclUploadType
+    , bafsfbclCreativeStatusId
+    , bafsfbclPageToken
+    , bafsfbclPageSize
+    , bafsfbclCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.filteredBids.creatives.list@ method which the
+-- 'BiddersAccountsFilterSetsFilteredBidsCreativesList' request conforms to.
+type BiddersAccountsFilterSetsFilteredBidsCreativesListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "filteredBids" :>
+           Capture "creativeStatusId" (Textual Int32) :>
+             "creatives" :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON]
+                                 ListCreativeStatusBreakdownByCreativeResponse
+
+-- | List all creatives associated with a specific reason for which bids were
+-- filtered, with the number of bids filtered for each creative.
+--
+-- /See:/ 'biddersAccountsFilterSetsFilteredBidsCreativesList' smart constructor.
+data BiddersAccountsFilterSetsFilteredBidsCreativesList = BiddersAccountsFilterSetsFilteredBidsCreativesList'
+    { _bafsfbclXgafv            :: !(Maybe Xgafv)
+    , _bafsfbclUploadProtocol   :: !(Maybe Text)
+    , _bafsfbclFilterSetName    :: !Text
+    , _bafsfbclAccessToken      :: !(Maybe Text)
+    , _bafsfbclUploadType       :: !(Maybe Text)
+    , _bafsfbclCreativeStatusId :: !(Textual Int32)
+    , _bafsfbclPageToken        :: !(Maybe Text)
+    , _bafsfbclPageSize         :: !(Maybe (Textual Int32))
+    , _bafsfbclCallback         :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsFilteredBidsCreativesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsfbclXgafv'
+--
+-- * 'bafsfbclUploadProtocol'
+--
+-- * 'bafsfbclFilterSetName'
+--
+-- * 'bafsfbclAccessToken'
+--
+-- * 'bafsfbclUploadType'
+--
+-- * 'bafsfbclCreativeStatusId'
+--
+-- * 'bafsfbclPageToken'
+--
+-- * 'bafsfbclPageSize'
+--
+-- * 'bafsfbclCallback'
+biddersAccountsFilterSetsFilteredBidsCreativesList
+    :: Text -- ^ 'bafsfbclFilterSetName'
+    -> Int32 -- ^ 'bafsfbclCreativeStatusId'
+    -> BiddersAccountsFilterSetsFilteredBidsCreativesList
+biddersAccountsFilterSetsFilteredBidsCreativesList pBafsfbclFilterSetName_ pBafsfbclCreativeStatusId_ =
+    BiddersAccountsFilterSetsFilteredBidsCreativesList'
+    { _bafsfbclXgafv = Nothing
+    , _bafsfbclUploadProtocol = Nothing
+    , _bafsfbclFilterSetName = pBafsfbclFilterSetName_
+    , _bafsfbclAccessToken = Nothing
+    , _bafsfbclUploadType = Nothing
+    , _bafsfbclCreativeStatusId = _Coerce # pBafsfbclCreativeStatusId_
+    , _bafsfbclPageToken = Nothing
+    , _bafsfbclPageSize = Nothing
+    , _bafsfbclCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsfbclXgafv :: Lens' BiddersAccountsFilterSetsFilteredBidsCreativesList (Maybe Xgafv)
+bafsfbclXgafv
+  = lens _bafsfbclXgafv
+      (\ s a -> s{_bafsfbclXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsfbclUploadProtocol :: Lens' BiddersAccountsFilterSetsFilteredBidsCreativesList (Maybe Text)
+bafsfbclUploadProtocol
+  = lens _bafsfbclUploadProtocol
+      (\ s a -> s{_bafsfbclUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsfbclFilterSetName :: Lens' BiddersAccountsFilterSetsFilteredBidsCreativesList Text
+bafsfbclFilterSetName
+  = lens _bafsfbclFilterSetName
+      (\ s a -> s{_bafsfbclFilterSetName = a})
+
+-- | OAuth access token.
+bafsfbclAccessToken :: Lens' BiddersAccountsFilterSetsFilteredBidsCreativesList (Maybe Text)
+bafsfbclAccessToken
+  = lens _bafsfbclAccessToken
+      (\ s a -> s{_bafsfbclAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsfbclUploadType :: Lens' BiddersAccountsFilterSetsFilteredBidsCreativesList (Maybe Text)
+bafsfbclUploadType
+  = lens _bafsfbclUploadType
+      (\ s a -> s{_bafsfbclUploadType = a})
+
+-- | The ID of the creative status for which to retrieve a breakdown by
+-- creative. See
+-- [creative-status-codes](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/creative-status-codes).
+bafsfbclCreativeStatusId :: Lens' BiddersAccountsFilterSetsFilteredBidsCreativesList Int32
+bafsfbclCreativeStatusId
+  = lens _bafsfbclCreativeStatusId
+      (\ s a -> s{_bafsfbclCreativeStatusId = a})
+      . _Coerce
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListCreativeStatusBreakdownByCreativeResponse.nextPageToken returned
+-- from the previous call to the filteredBids.creatives.list method.
+bafsfbclPageToken :: Lens' BiddersAccountsFilterSetsFilteredBidsCreativesList (Maybe Text)
+bafsfbclPageToken
+  = lens _bafsfbclPageToken
+      (\ s a -> s{_bafsfbclPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafsfbclPageSize :: Lens' BiddersAccountsFilterSetsFilteredBidsCreativesList (Maybe Int32)
+bafsfbclPageSize
+  = lens _bafsfbclPageSize
+      (\ s a -> s{_bafsfbclPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafsfbclCallback :: Lens' BiddersAccountsFilterSetsFilteredBidsCreativesList (Maybe Text)
+bafsfbclCallback
+  = lens _bafsfbclCallback
+      (\ s a -> s{_bafsfbclCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsFilteredBidsCreativesList
+         where
+        type Rs
+               BiddersAccountsFilterSetsFilteredBidsCreativesList
+             = ListCreativeStatusBreakdownByCreativeResponse
+        type Scopes
+               BiddersAccountsFilterSetsFilteredBidsCreativesList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersAccountsFilterSetsFilteredBidsCreativesList'{..}
+          = go _bafsfbclFilterSetName _bafsfbclCreativeStatusId
+              _bafsfbclXgafv
+              _bafsfbclUploadProtocol
+              _bafsfbclAccessToken
+              _bafsfbclUploadType
+              _bafsfbclPageToken
+              _bafsfbclPageSize
+              _bafsfbclCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersAccountsFilterSetsFilteredBidsCreativesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBids/Details/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBids/Details/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBids/Details/List.hs
@@ -0,0 +1,222 @@
+{-# 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.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.Details.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all details associated with a specific reason for which bids were
+-- filtered, with the number of bids filtered for each detail.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.filteredBids.details.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.Details.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsFilteredBidsDetailsListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsFilteredBidsDetailsList
+    , BiddersAccountsFilterSetsFilteredBidsDetailsList
+
+    -- * Request Lenses
+    , bafsfbdlXgafv
+    , bafsfbdlUploadProtocol
+    , bafsfbdlFilterSetName
+    , bafsfbdlAccessToken
+    , bafsfbdlUploadType
+    , bafsfbdlCreativeStatusId
+    , bafsfbdlPageToken
+    , bafsfbdlPageSize
+    , bafsfbdlCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.filteredBids.details.list@ method which the
+-- 'BiddersAccountsFilterSetsFilteredBidsDetailsList' request conforms to.
+type BiddersAccountsFilterSetsFilteredBidsDetailsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "filteredBids" :>
+           Capture "creativeStatusId" (Textual Int32) :>
+             "details" :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON]
+                                 ListCreativeStatusBreakdownByDetailResponse
+
+-- | List all details associated with a specific reason for which bids were
+-- filtered, with the number of bids filtered for each detail.
+--
+-- /See:/ 'biddersAccountsFilterSetsFilteredBidsDetailsList' smart constructor.
+data BiddersAccountsFilterSetsFilteredBidsDetailsList = BiddersAccountsFilterSetsFilteredBidsDetailsList'
+    { _bafsfbdlXgafv            :: !(Maybe Xgafv)
+    , _bafsfbdlUploadProtocol   :: !(Maybe Text)
+    , _bafsfbdlFilterSetName    :: !Text
+    , _bafsfbdlAccessToken      :: !(Maybe Text)
+    , _bafsfbdlUploadType       :: !(Maybe Text)
+    , _bafsfbdlCreativeStatusId :: !(Textual Int32)
+    , _bafsfbdlPageToken        :: !(Maybe Text)
+    , _bafsfbdlPageSize         :: !(Maybe (Textual Int32))
+    , _bafsfbdlCallback         :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsFilteredBidsDetailsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsfbdlXgafv'
+--
+-- * 'bafsfbdlUploadProtocol'
+--
+-- * 'bafsfbdlFilterSetName'
+--
+-- * 'bafsfbdlAccessToken'
+--
+-- * 'bafsfbdlUploadType'
+--
+-- * 'bafsfbdlCreativeStatusId'
+--
+-- * 'bafsfbdlPageToken'
+--
+-- * 'bafsfbdlPageSize'
+--
+-- * 'bafsfbdlCallback'
+biddersAccountsFilterSetsFilteredBidsDetailsList
+    :: Text -- ^ 'bafsfbdlFilterSetName'
+    -> Int32 -- ^ 'bafsfbdlCreativeStatusId'
+    -> BiddersAccountsFilterSetsFilteredBidsDetailsList
+biddersAccountsFilterSetsFilteredBidsDetailsList pBafsfbdlFilterSetName_ pBafsfbdlCreativeStatusId_ =
+    BiddersAccountsFilterSetsFilteredBidsDetailsList'
+    { _bafsfbdlXgafv = Nothing
+    , _bafsfbdlUploadProtocol = Nothing
+    , _bafsfbdlFilterSetName = pBafsfbdlFilterSetName_
+    , _bafsfbdlAccessToken = Nothing
+    , _bafsfbdlUploadType = Nothing
+    , _bafsfbdlCreativeStatusId = _Coerce # pBafsfbdlCreativeStatusId_
+    , _bafsfbdlPageToken = Nothing
+    , _bafsfbdlPageSize = Nothing
+    , _bafsfbdlCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsfbdlXgafv :: Lens' BiddersAccountsFilterSetsFilteredBidsDetailsList (Maybe Xgafv)
+bafsfbdlXgafv
+  = lens _bafsfbdlXgafv
+      (\ s a -> s{_bafsfbdlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsfbdlUploadProtocol :: Lens' BiddersAccountsFilterSetsFilteredBidsDetailsList (Maybe Text)
+bafsfbdlUploadProtocol
+  = lens _bafsfbdlUploadProtocol
+      (\ s a -> s{_bafsfbdlUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsfbdlFilterSetName :: Lens' BiddersAccountsFilterSetsFilteredBidsDetailsList Text
+bafsfbdlFilterSetName
+  = lens _bafsfbdlFilterSetName
+      (\ s a -> s{_bafsfbdlFilterSetName = a})
+
+-- | OAuth access token.
+bafsfbdlAccessToken :: Lens' BiddersAccountsFilterSetsFilteredBidsDetailsList (Maybe Text)
+bafsfbdlAccessToken
+  = lens _bafsfbdlAccessToken
+      (\ s a -> s{_bafsfbdlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsfbdlUploadType :: Lens' BiddersAccountsFilterSetsFilteredBidsDetailsList (Maybe Text)
+bafsfbdlUploadType
+  = lens _bafsfbdlUploadType
+      (\ s a -> s{_bafsfbdlUploadType = a})
+
+-- | The ID of the creative status for which to retrieve a breakdown by
+-- detail. See
+-- [creative-status-codes](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/creative-status-codes).
+-- Details are only available for statuses 10, 14, 15, 17, 18, 19, 86, and
+-- 87.
+bafsfbdlCreativeStatusId :: Lens' BiddersAccountsFilterSetsFilteredBidsDetailsList Int32
+bafsfbdlCreativeStatusId
+  = lens _bafsfbdlCreativeStatusId
+      (\ s a -> s{_bafsfbdlCreativeStatusId = a})
+      . _Coerce
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListCreativeStatusBreakdownByDetailResponse.nextPageToken returned from
+-- the previous call to the filteredBids.details.list method.
+bafsfbdlPageToken :: Lens' BiddersAccountsFilterSetsFilteredBidsDetailsList (Maybe Text)
+bafsfbdlPageToken
+  = lens _bafsfbdlPageToken
+      (\ s a -> s{_bafsfbdlPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafsfbdlPageSize :: Lens' BiddersAccountsFilterSetsFilteredBidsDetailsList (Maybe Int32)
+bafsfbdlPageSize
+  = lens _bafsfbdlPageSize
+      (\ s a -> s{_bafsfbdlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafsfbdlCallback :: Lens' BiddersAccountsFilterSetsFilteredBidsDetailsList (Maybe Text)
+bafsfbdlCallback
+  = lens _bafsfbdlCallback
+      (\ s a -> s{_bafsfbdlCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsFilteredBidsDetailsList
+         where
+        type Rs
+               BiddersAccountsFilterSetsFilteredBidsDetailsList
+             = ListCreativeStatusBreakdownByDetailResponse
+        type Scopes
+               BiddersAccountsFilterSetsFilteredBidsDetailsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersAccountsFilterSetsFilteredBidsDetailsList'{..}
+          = go _bafsfbdlFilterSetName _bafsfbdlCreativeStatusId
+              _bafsfbdlXgafv
+              _bafsfbdlUploadProtocol
+              _bafsfbdlAccessToken
+              _bafsfbdlUploadType
+              _bafsfbdlPageToken
+              _bafsfbdlPageSize
+              _bafsfbdlCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersAccountsFilterSetsFilteredBidsDetailsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBids/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBids/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/FilteredBids/List.hs
@@ -0,0 +1,196 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all reasons for which bids were filtered, with the number of bids
+-- filtered for each reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.filteredBids.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsFilteredBidsListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsFilteredBidsList
+    , BiddersAccountsFilterSetsFilteredBidsList
+
+    -- * Request Lenses
+    , bafsfblXgafv
+    , bafsfblUploadProtocol
+    , bafsfblFilterSetName
+    , bafsfblAccessToken
+    , bafsfblUploadType
+    , bafsfblPageToken
+    , bafsfblPageSize
+    , bafsfblCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.filteredBids.list@ method which the
+-- 'BiddersAccountsFilterSetsFilteredBidsList' request conforms to.
+type BiddersAccountsFilterSetsFilteredBidsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "filteredBids" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListFilteredBidsResponse
+
+-- | List all reasons for which bids were filtered, with the number of bids
+-- filtered for each reason.
+--
+-- /See:/ 'biddersAccountsFilterSetsFilteredBidsList' smart constructor.
+data BiddersAccountsFilterSetsFilteredBidsList = BiddersAccountsFilterSetsFilteredBidsList'
+    { _bafsfblXgafv          :: !(Maybe Xgafv)
+    , _bafsfblUploadProtocol :: !(Maybe Text)
+    , _bafsfblFilterSetName  :: !Text
+    , _bafsfblAccessToken    :: !(Maybe Text)
+    , _bafsfblUploadType     :: !(Maybe Text)
+    , _bafsfblPageToken      :: !(Maybe Text)
+    , _bafsfblPageSize       :: !(Maybe (Textual Int32))
+    , _bafsfblCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsFilteredBidsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsfblXgafv'
+--
+-- * 'bafsfblUploadProtocol'
+--
+-- * 'bafsfblFilterSetName'
+--
+-- * 'bafsfblAccessToken'
+--
+-- * 'bafsfblUploadType'
+--
+-- * 'bafsfblPageToken'
+--
+-- * 'bafsfblPageSize'
+--
+-- * 'bafsfblCallback'
+biddersAccountsFilterSetsFilteredBidsList
+    :: Text -- ^ 'bafsfblFilterSetName'
+    -> BiddersAccountsFilterSetsFilteredBidsList
+biddersAccountsFilterSetsFilteredBidsList pBafsfblFilterSetName_ =
+    BiddersAccountsFilterSetsFilteredBidsList'
+    { _bafsfblXgafv = Nothing
+    , _bafsfblUploadProtocol = Nothing
+    , _bafsfblFilterSetName = pBafsfblFilterSetName_
+    , _bafsfblAccessToken = Nothing
+    , _bafsfblUploadType = Nothing
+    , _bafsfblPageToken = Nothing
+    , _bafsfblPageSize = Nothing
+    , _bafsfblCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsfblXgafv :: Lens' BiddersAccountsFilterSetsFilteredBidsList (Maybe Xgafv)
+bafsfblXgafv
+  = lens _bafsfblXgafv (\ s a -> s{_bafsfblXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsfblUploadProtocol :: Lens' BiddersAccountsFilterSetsFilteredBidsList (Maybe Text)
+bafsfblUploadProtocol
+  = lens _bafsfblUploadProtocol
+      (\ s a -> s{_bafsfblUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsfblFilterSetName :: Lens' BiddersAccountsFilterSetsFilteredBidsList Text
+bafsfblFilterSetName
+  = lens _bafsfblFilterSetName
+      (\ s a -> s{_bafsfblFilterSetName = a})
+
+-- | OAuth access token.
+bafsfblAccessToken :: Lens' BiddersAccountsFilterSetsFilteredBidsList (Maybe Text)
+bafsfblAccessToken
+  = lens _bafsfblAccessToken
+      (\ s a -> s{_bafsfblAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsfblUploadType :: Lens' BiddersAccountsFilterSetsFilteredBidsList (Maybe Text)
+bafsfblUploadType
+  = lens _bafsfblUploadType
+      (\ s a -> s{_bafsfblUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListFilteredBidsResponse.nextPageToken
+-- returned from the previous call to the filteredBids.list method.
+bafsfblPageToken :: Lens' BiddersAccountsFilterSetsFilteredBidsList (Maybe Text)
+bafsfblPageToken
+  = lens _bafsfblPageToken
+      (\ s a -> s{_bafsfblPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafsfblPageSize :: Lens' BiddersAccountsFilterSetsFilteredBidsList (Maybe Int32)
+bafsfblPageSize
+  = lens _bafsfblPageSize
+      (\ s a -> s{_bafsfblPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafsfblCallback :: Lens' BiddersAccountsFilterSetsFilteredBidsList (Maybe Text)
+bafsfblCallback
+  = lens _bafsfblCallback
+      (\ s a -> s{_bafsfblCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsFilteredBidsList where
+        type Rs BiddersAccountsFilterSetsFilteredBidsList =
+             ListFilteredBidsResponse
+        type Scopes BiddersAccountsFilterSetsFilteredBidsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersAccountsFilterSetsFilteredBidsList'{..}
+          = go _bafsfblFilterSetName _bafsfblXgafv
+              _bafsfblUploadProtocol
+              _bafsfblAccessToken
+              _bafsfblUploadType
+              _bafsfblPageToken
+              _bafsfblPageSize
+              _bafsfblCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersAccountsFilterSetsFilteredBidsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/Get.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/Get.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the requested filter set for the account with the given
+-- account ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.get@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Get
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsGetResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsGet
+    , BiddersAccountsFilterSetsGet
+
+    -- * Request Lenses
+    , bafsgXgafv
+    , bafsgUploadProtocol
+    , bafsgAccessToken
+    , bafsgUploadType
+    , bafsgName
+    , bafsgCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.get@ method which the
+-- 'BiddersAccountsFilterSetsGet' request conforms to.
+type BiddersAccountsFilterSetsGetResource =
+     "v2beta1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] FilterSet
+
+-- | Retrieves the requested filter set for the account with the given
+-- account ID.
+--
+-- /See:/ 'biddersAccountsFilterSetsGet' smart constructor.
+data BiddersAccountsFilterSetsGet = BiddersAccountsFilterSetsGet'
+    { _bafsgXgafv          :: !(Maybe Xgafv)
+    , _bafsgUploadProtocol :: !(Maybe Text)
+    , _bafsgAccessToken    :: !(Maybe Text)
+    , _bafsgUploadType     :: !(Maybe Text)
+    , _bafsgName           :: !Text
+    , _bafsgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsgXgafv'
+--
+-- * 'bafsgUploadProtocol'
+--
+-- * 'bafsgAccessToken'
+--
+-- * 'bafsgUploadType'
+--
+-- * 'bafsgName'
+--
+-- * 'bafsgCallback'
+biddersAccountsFilterSetsGet
+    :: Text -- ^ 'bafsgName'
+    -> BiddersAccountsFilterSetsGet
+biddersAccountsFilterSetsGet pBafsgName_ =
+    BiddersAccountsFilterSetsGet'
+    { _bafsgXgafv = Nothing
+    , _bafsgUploadProtocol = Nothing
+    , _bafsgAccessToken = Nothing
+    , _bafsgUploadType = Nothing
+    , _bafsgName = pBafsgName_
+    , _bafsgCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsgXgafv :: Lens' BiddersAccountsFilterSetsGet (Maybe Xgafv)
+bafsgXgafv
+  = lens _bafsgXgafv (\ s a -> s{_bafsgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsgUploadProtocol :: Lens' BiddersAccountsFilterSetsGet (Maybe Text)
+bafsgUploadProtocol
+  = lens _bafsgUploadProtocol
+      (\ s a -> s{_bafsgUploadProtocol = a})
+
+-- | OAuth access token.
+bafsgAccessToken :: Lens' BiddersAccountsFilterSetsGet (Maybe Text)
+bafsgAccessToken
+  = lens _bafsgAccessToken
+      (\ s a -> s{_bafsgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsgUploadType :: Lens' BiddersAccountsFilterSetsGet (Maybe Text)
+bafsgUploadType
+  = lens _bafsgUploadType
+      (\ s a -> s{_bafsgUploadType = a})
+
+-- | Full name of the resource being requested. For example: - For a
+-- bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsgName :: Lens' BiddersAccountsFilterSetsGet Text
+bafsgName
+  = lens _bafsgName (\ s a -> s{_bafsgName = a})
+
+-- | JSONP
+bafsgCallback :: Lens' BiddersAccountsFilterSetsGet (Maybe Text)
+bafsgCallback
+  = lens _bafsgCallback
+      (\ s a -> s{_bafsgCallback = a})
+
+instance GoogleRequest BiddersAccountsFilterSetsGet
+         where
+        type Rs BiddersAccountsFilterSetsGet = FilterSet
+        type Scopes BiddersAccountsFilterSetsGet =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersAccountsFilterSetsGet'{..}
+          = go _bafsgName _bafsgXgafv _bafsgUploadProtocol
+              _bafsgAccessToken
+              _bafsgUploadType
+              _bafsgCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy BiddersAccountsFilterSetsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/ImpressionMetrics/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/ImpressionMetrics/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/ImpressionMetrics/List.hs
@@ -0,0 +1,197 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.ImpressionMetrics.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all metrics that are measured in terms of number of impressions.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.impressionMetrics.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.ImpressionMetrics.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsImpressionMetricsListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsImpressionMetricsList
+    , BiddersAccountsFilterSetsImpressionMetricsList
+
+    -- * Request Lenses
+    , bafsimlXgafv
+    , bafsimlUploadProtocol
+    , bafsimlFilterSetName
+    , bafsimlAccessToken
+    , bafsimlUploadType
+    , bafsimlPageToken
+    , bafsimlPageSize
+    , bafsimlCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.impressionMetrics.list@ method which the
+-- 'BiddersAccountsFilterSetsImpressionMetricsList' request conforms to.
+type BiddersAccountsFilterSetsImpressionMetricsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "impressionMetrics" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListImpressionMetricsResponse
+
+-- | Lists all metrics that are measured in terms of number of impressions.
+--
+-- /See:/ 'biddersAccountsFilterSetsImpressionMetricsList' smart constructor.
+data BiddersAccountsFilterSetsImpressionMetricsList = BiddersAccountsFilterSetsImpressionMetricsList'
+    { _bafsimlXgafv          :: !(Maybe Xgafv)
+    , _bafsimlUploadProtocol :: !(Maybe Text)
+    , _bafsimlFilterSetName  :: !Text
+    , _bafsimlAccessToken    :: !(Maybe Text)
+    , _bafsimlUploadType     :: !(Maybe Text)
+    , _bafsimlPageToken      :: !(Maybe Text)
+    , _bafsimlPageSize       :: !(Maybe (Textual Int32))
+    , _bafsimlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsImpressionMetricsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsimlXgafv'
+--
+-- * 'bafsimlUploadProtocol'
+--
+-- * 'bafsimlFilterSetName'
+--
+-- * 'bafsimlAccessToken'
+--
+-- * 'bafsimlUploadType'
+--
+-- * 'bafsimlPageToken'
+--
+-- * 'bafsimlPageSize'
+--
+-- * 'bafsimlCallback'
+biddersAccountsFilterSetsImpressionMetricsList
+    :: Text -- ^ 'bafsimlFilterSetName'
+    -> BiddersAccountsFilterSetsImpressionMetricsList
+biddersAccountsFilterSetsImpressionMetricsList pBafsimlFilterSetName_ =
+    BiddersAccountsFilterSetsImpressionMetricsList'
+    { _bafsimlXgafv = Nothing
+    , _bafsimlUploadProtocol = Nothing
+    , _bafsimlFilterSetName = pBafsimlFilterSetName_
+    , _bafsimlAccessToken = Nothing
+    , _bafsimlUploadType = Nothing
+    , _bafsimlPageToken = Nothing
+    , _bafsimlPageSize = Nothing
+    , _bafsimlCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsimlXgafv :: Lens' BiddersAccountsFilterSetsImpressionMetricsList (Maybe Xgafv)
+bafsimlXgafv
+  = lens _bafsimlXgafv (\ s a -> s{_bafsimlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsimlUploadProtocol :: Lens' BiddersAccountsFilterSetsImpressionMetricsList (Maybe Text)
+bafsimlUploadProtocol
+  = lens _bafsimlUploadProtocol
+      (\ s a -> s{_bafsimlUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsimlFilterSetName :: Lens' BiddersAccountsFilterSetsImpressionMetricsList Text
+bafsimlFilterSetName
+  = lens _bafsimlFilterSetName
+      (\ s a -> s{_bafsimlFilterSetName = a})
+
+-- | OAuth access token.
+bafsimlAccessToken :: Lens' BiddersAccountsFilterSetsImpressionMetricsList (Maybe Text)
+bafsimlAccessToken
+  = lens _bafsimlAccessToken
+      (\ s a -> s{_bafsimlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsimlUploadType :: Lens' BiddersAccountsFilterSetsImpressionMetricsList (Maybe Text)
+bafsimlUploadType
+  = lens _bafsimlUploadType
+      (\ s a -> s{_bafsimlUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListImpressionMetricsResponse.nextPageToken returned from the previous
+-- call to the impressionMetrics.list method.
+bafsimlPageToken :: Lens' BiddersAccountsFilterSetsImpressionMetricsList (Maybe Text)
+bafsimlPageToken
+  = lens _bafsimlPageToken
+      (\ s a -> s{_bafsimlPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafsimlPageSize :: Lens' BiddersAccountsFilterSetsImpressionMetricsList (Maybe Int32)
+bafsimlPageSize
+  = lens _bafsimlPageSize
+      (\ s a -> s{_bafsimlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafsimlCallback :: Lens' BiddersAccountsFilterSetsImpressionMetricsList (Maybe Text)
+bafsimlCallback
+  = lens _bafsimlCallback
+      (\ s a -> s{_bafsimlCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsImpressionMetricsList where
+        type Rs
+               BiddersAccountsFilterSetsImpressionMetricsList
+             = ListImpressionMetricsResponse
+        type Scopes
+               BiddersAccountsFilterSetsImpressionMetricsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersAccountsFilterSetsImpressionMetricsList'{..}
+          = go _bafsimlFilterSetName _bafsimlXgafv
+              _bafsimlUploadProtocol
+              _bafsimlAccessToken
+              _bafsimlUploadType
+              _bafsimlPageToken
+              _bafsimlPageSize
+              _bafsimlCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersAccountsFilterSetsImpressionMetricsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/List.hs
@@ -0,0 +1,188 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all filter sets for the account with the given account ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsList
+    , BiddersAccountsFilterSetsList
+
+    -- * Request Lenses
+    , bafslXgafv
+    , bafslUploadProtocol
+    , bafslAccessToken
+    , bafslUploadType
+    , bafslOwnerName
+    , bafslPageToken
+    , bafslPageSize
+    , bafslCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.list@ method which the
+-- 'BiddersAccountsFilterSetsList' request conforms to.
+type BiddersAccountsFilterSetsListResource =
+     "v2beta1" :>
+       Capture "ownerName" Text :>
+         "filterSets" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListFilterSetsResponse
+
+-- | Lists all filter sets for the account with the given account ID.
+--
+-- /See:/ 'biddersAccountsFilterSetsList' smart constructor.
+data BiddersAccountsFilterSetsList = BiddersAccountsFilterSetsList'
+    { _bafslXgafv          :: !(Maybe Xgafv)
+    , _bafslUploadProtocol :: !(Maybe Text)
+    , _bafslAccessToken    :: !(Maybe Text)
+    , _bafslUploadType     :: !(Maybe Text)
+    , _bafslOwnerName      :: !Text
+    , _bafslPageToken      :: !(Maybe Text)
+    , _bafslPageSize       :: !(Maybe (Textual Int32))
+    , _bafslCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafslXgafv'
+--
+-- * 'bafslUploadProtocol'
+--
+-- * 'bafslAccessToken'
+--
+-- * 'bafslUploadType'
+--
+-- * 'bafslOwnerName'
+--
+-- * 'bafslPageToken'
+--
+-- * 'bafslPageSize'
+--
+-- * 'bafslCallback'
+biddersAccountsFilterSetsList
+    :: Text -- ^ 'bafslOwnerName'
+    -> BiddersAccountsFilterSetsList
+biddersAccountsFilterSetsList pBafslOwnerName_ =
+    BiddersAccountsFilterSetsList'
+    { _bafslXgafv = Nothing
+    , _bafslUploadProtocol = Nothing
+    , _bafslAccessToken = Nothing
+    , _bafslUploadType = Nothing
+    , _bafslOwnerName = pBafslOwnerName_
+    , _bafslPageToken = Nothing
+    , _bafslPageSize = Nothing
+    , _bafslCallback = Nothing
+    }
+
+-- | V1 error format.
+bafslXgafv :: Lens' BiddersAccountsFilterSetsList (Maybe Xgafv)
+bafslXgafv
+  = lens _bafslXgafv (\ s a -> s{_bafslXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafslUploadProtocol :: Lens' BiddersAccountsFilterSetsList (Maybe Text)
+bafslUploadProtocol
+  = lens _bafslUploadProtocol
+      (\ s a -> s{_bafslUploadProtocol = a})
+
+-- | OAuth access token.
+bafslAccessToken :: Lens' BiddersAccountsFilterSetsList (Maybe Text)
+bafslAccessToken
+  = lens _bafslAccessToken
+      (\ s a -> s{_bafslAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafslUploadType :: Lens' BiddersAccountsFilterSetsList (Maybe Text)
+bafslUploadType
+  = lens _bafslUploadType
+      (\ s a -> s{_bafslUploadType = a})
+
+-- | Name of the owner (bidder or account) of the filter sets to be listed.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\` - For an account-level filter set for the buyer account
+-- representing bidder 123: \`bidders\/123\/accounts\/123\` - For an
+-- account-level filter set for the child seat buyer account 456 whose
+-- bidder is 123: \`bidders\/123\/accounts\/456\`
+bafslOwnerName :: Lens' BiddersAccountsFilterSetsList Text
+bafslOwnerName
+  = lens _bafslOwnerName
+      (\ s a -> s{_bafslOwnerName = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListFilterSetsResponse.nextPageToken
+-- returned from the previous call to the accounts.filterSets.list method.
+bafslPageToken :: Lens' BiddersAccountsFilterSetsList (Maybe Text)
+bafslPageToken
+  = lens _bafslPageToken
+      (\ s a -> s{_bafslPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafslPageSize :: Lens' BiddersAccountsFilterSetsList (Maybe Int32)
+bafslPageSize
+  = lens _bafslPageSize
+      (\ s a -> s{_bafslPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafslCallback :: Lens' BiddersAccountsFilterSetsList (Maybe Text)
+bafslCallback
+  = lens _bafslCallback
+      (\ s a -> s{_bafslCallback = a})
+
+instance GoogleRequest BiddersAccountsFilterSetsList
+         where
+        type Rs BiddersAccountsFilterSetsList =
+             ListFilterSetsResponse
+        type Scopes BiddersAccountsFilterSetsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersAccountsFilterSetsList'{..}
+          = go _bafslOwnerName _bafslXgafv _bafslUploadProtocol
+              _bafslAccessToken
+              _bafslUploadType
+              _bafslPageToken
+              _bafslPageSize
+              _bafslCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy BiddersAccountsFilterSetsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/LosingBids/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/LosingBids/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/LosingBids/List.hs
@@ -0,0 +1,195 @@
+{-# 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.AdExchangeBuyer2.Bidders.Accounts.FilterSets.LosingBids.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all reasons for which bids lost in the auction, with the number of
+-- bids that lost for each reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.losingBids.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.LosingBids.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsLosingBidsListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsLosingBidsList
+    , BiddersAccountsFilterSetsLosingBidsList
+
+    -- * Request Lenses
+    , bafslblXgafv
+    , bafslblUploadProtocol
+    , bafslblFilterSetName
+    , bafslblAccessToken
+    , bafslblUploadType
+    , bafslblPageToken
+    , bafslblPageSize
+    , bafslblCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.losingBids.list@ method which the
+-- 'BiddersAccountsFilterSetsLosingBidsList' request conforms to.
+type BiddersAccountsFilterSetsLosingBidsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "losingBids" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListLosingBidsResponse
+
+-- | List all reasons for which bids lost in the auction, with the number of
+-- bids that lost for each reason.
+--
+-- /See:/ 'biddersAccountsFilterSetsLosingBidsList' smart constructor.
+data BiddersAccountsFilterSetsLosingBidsList = BiddersAccountsFilterSetsLosingBidsList'
+    { _bafslblXgafv          :: !(Maybe Xgafv)
+    , _bafslblUploadProtocol :: !(Maybe Text)
+    , _bafslblFilterSetName  :: !Text
+    , _bafslblAccessToken    :: !(Maybe Text)
+    , _bafslblUploadType     :: !(Maybe Text)
+    , _bafslblPageToken      :: !(Maybe Text)
+    , _bafslblPageSize       :: !(Maybe (Textual Int32))
+    , _bafslblCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsLosingBidsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafslblXgafv'
+--
+-- * 'bafslblUploadProtocol'
+--
+-- * 'bafslblFilterSetName'
+--
+-- * 'bafslblAccessToken'
+--
+-- * 'bafslblUploadType'
+--
+-- * 'bafslblPageToken'
+--
+-- * 'bafslblPageSize'
+--
+-- * 'bafslblCallback'
+biddersAccountsFilterSetsLosingBidsList
+    :: Text -- ^ 'bafslblFilterSetName'
+    -> BiddersAccountsFilterSetsLosingBidsList
+biddersAccountsFilterSetsLosingBidsList pBafslblFilterSetName_ =
+    BiddersAccountsFilterSetsLosingBidsList'
+    { _bafslblXgafv = Nothing
+    , _bafslblUploadProtocol = Nothing
+    , _bafslblFilterSetName = pBafslblFilterSetName_
+    , _bafslblAccessToken = Nothing
+    , _bafslblUploadType = Nothing
+    , _bafslblPageToken = Nothing
+    , _bafslblPageSize = Nothing
+    , _bafslblCallback = Nothing
+    }
+
+-- | V1 error format.
+bafslblXgafv :: Lens' BiddersAccountsFilterSetsLosingBidsList (Maybe Xgafv)
+bafslblXgafv
+  = lens _bafslblXgafv (\ s a -> s{_bafslblXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafslblUploadProtocol :: Lens' BiddersAccountsFilterSetsLosingBidsList (Maybe Text)
+bafslblUploadProtocol
+  = lens _bafslblUploadProtocol
+      (\ s a -> s{_bafslblUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafslblFilterSetName :: Lens' BiddersAccountsFilterSetsLosingBidsList Text
+bafslblFilterSetName
+  = lens _bafslblFilterSetName
+      (\ s a -> s{_bafslblFilterSetName = a})
+
+-- | OAuth access token.
+bafslblAccessToken :: Lens' BiddersAccountsFilterSetsLosingBidsList (Maybe Text)
+bafslblAccessToken
+  = lens _bafslblAccessToken
+      (\ s a -> s{_bafslblAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafslblUploadType :: Lens' BiddersAccountsFilterSetsLosingBidsList (Maybe Text)
+bafslblUploadType
+  = lens _bafslblUploadType
+      (\ s a -> s{_bafslblUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListLosingBidsResponse.nextPageToken
+-- returned from the previous call to the losingBids.list method.
+bafslblPageToken :: Lens' BiddersAccountsFilterSetsLosingBidsList (Maybe Text)
+bafslblPageToken
+  = lens _bafslblPageToken
+      (\ s a -> s{_bafslblPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafslblPageSize :: Lens' BiddersAccountsFilterSetsLosingBidsList (Maybe Int32)
+bafslblPageSize
+  = lens _bafslblPageSize
+      (\ s a -> s{_bafslblPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafslblCallback :: Lens' BiddersAccountsFilterSetsLosingBidsList (Maybe Text)
+bafslblCallback
+  = lens _bafslblCallback
+      (\ s a -> s{_bafslblCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsLosingBidsList where
+        type Rs BiddersAccountsFilterSetsLosingBidsList =
+             ListLosingBidsResponse
+        type Scopes BiddersAccountsFilterSetsLosingBidsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersAccountsFilterSetsLosingBidsList'{..}
+          = go _bafslblFilterSetName _bafslblXgafv
+              _bafslblUploadProtocol
+              _bafslblAccessToken
+              _bafslblUploadType
+              _bafslblPageToken
+              _bafslblPageSize
+              _bafslblCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersAccountsFilterSetsLosingBidsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/NonBillableWinningBids/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/NonBillableWinningBids/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/Accounts/FilterSets/NonBillableWinningBids/List.hs
@@ -0,0 +1,201 @@
+{-# 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.AdExchangeBuyer2.Bidders.Accounts.FilterSets.NonBillableWinningBids.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all reasons for which winning bids were not billable, with the
+-- number of bids not billed for each reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.accounts.filterSets.nonBillableWinningBids.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.NonBillableWinningBids.List
+    (
+    -- * REST Resource
+      BiddersAccountsFilterSetsNonBillableWinningBidsListResource
+
+    -- * Creating a Request
+    , biddersAccountsFilterSetsNonBillableWinningBidsList
+    , BiddersAccountsFilterSetsNonBillableWinningBidsList
+
+    -- * Request Lenses
+    , bafsnbwblXgafv
+    , bafsnbwblUploadProtocol
+    , bafsnbwblFilterSetName
+    , bafsnbwblAccessToken
+    , bafsnbwblUploadType
+    , bafsnbwblPageToken
+    , bafsnbwblPageSize
+    , bafsnbwblCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.accounts.filterSets.nonBillableWinningBids.list@ method which the
+-- 'BiddersAccountsFilterSetsNonBillableWinningBidsList' request conforms to.
+type BiddersAccountsFilterSetsNonBillableWinningBidsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "nonBillableWinningBids" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListNonBillableWinningBidsResponse
+
+-- | List all reasons for which winning bids were not billable, with the
+-- number of bids not billed for each reason.
+--
+-- /See:/ 'biddersAccountsFilterSetsNonBillableWinningBidsList' smart constructor.
+data BiddersAccountsFilterSetsNonBillableWinningBidsList = BiddersAccountsFilterSetsNonBillableWinningBidsList'
+    { _bafsnbwblXgafv          :: !(Maybe Xgafv)
+    , _bafsnbwblUploadProtocol :: !(Maybe Text)
+    , _bafsnbwblFilterSetName  :: !Text
+    , _bafsnbwblAccessToken    :: !(Maybe Text)
+    , _bafsnbwblUploadType     :: !(Maybe Text)
+    , _bafsnbwblPageToken      :: !(Maybe Text)
+    , _bafsnbwblPageSize       :: !(Maybe (Textual Int32))
+    , _bafsnbwblCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersAccountsFilterSetsNonBillableWinningBidsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bafsnbwblXgafv'
+--
+-- * 'bafsnbwblUploadProtocol'
+--
+-- * 'bafsnbwblFilterSetName'
+--
+-- * 'bafsnbwblAccessToken'
+--
+-- * 'bafsnbwblUploadType'
+--
+-- * 'bafsnbwblPageToken'
+--
+-- * 'bafsnbwblPageSize'
+--
+-- * 'bafsnbwblCallback'
+biddersAccountsFilterSetsNonBillableWinningBidsList
+    :: Text -- ^ 'bafsnbwblFilterSetName'
+    -> BiddersAccountsFilterSetsNonBillableWinningBidsList
+biddersAccountsFilterSetsNonBillableWinningBidsList pBafsnbwblFilterSetName_ =
+    BiddersAccountsFilterSetsNonBillableWinningBidsList'
+    { _bafsnbwblXgafv = Nothing
+    , _bafsnbwblUploadProtocol = Nothing
+    , _bafsnbwblFilterSetName = pBafsnbwblFilterSetName_
+    , _bafsnbwblAccessToken = Nothing
+    , _bafsnbwblUploadType = Nothing
+    , _bafsnbwblPageToken = Nothing
+    , _bafsnbwblPageSize = Nothing
+    , _bafsnbwblCallback = Nothing
+    }
+
+-- | V1 error format.
+bafsnbwblXgafv :: Lens' BiddersAccountsFilterSetsNonBillableWinningBidsList (Maybe Xgafv)
+bafsnbwblXgafv
+  = lens _bafsnbwblXgafv
+      (\ s a -> s{_bafsnbwblXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bafsnbwblUploadProtocol :: Lens' BiddersAccountsFilterSetsNonBillableWinningBidsList (Maybe Text)
+bafsnbwblUploadProtocol
+  = lens _bafsnbwblUploadProtocol
+      (\ s a -> s{_bafsnbwblUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bafsnbwblFilterSetName :: Lens' BiddersAccountsFilterSetsNonBillableWinningBidsList Text
+bafsnbwblFilterSetName
+  = lens _bafsnbwblFilterSetName
+      (\ s a -> s{_bafsnbwblFilterSetName = a})
+
+-- | OAuth access token.
+bafsnbwblAccessToken :: Lens' BiddersAccountsFilterSetsNonBillableWinningBidsList (Maybe Text)
+bafsnbwblAccessToken
+  = lens _bafsnbwblAccessToken
+      (\ s a -> s{_bafsnbwblAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bafsnbwblUploadType :: Lens' BiddersAccountsFilterSetsNonBillableWinningBidsList (Maybe Text)
+bafsnbwblUploadType
+  = lens _bafsnbwblUploadType
+      (\ s a -> s{_bafsnbwblUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListNonBillableWinningBidsResponse.nextPageToken returned from the
+-- previous call to the nonBillableWinningBids.list method.
+bafsnbwblPageToken :: Lens' BiddersAccountsFilterSetsNonBillableWinningBidsList (Maybe Text)
+bafsnbwblPageToken
+  = lens _bafsnbwblPageToken
+      (\ s a -> s{_bafsnbwblPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bafsnbwblPageSize :: Lens' BiddersAccountsFilterSetsNonBillableWinningBidsList (Maybe Int32)
+bafsnbwblPageSize
+  = lens _bafsnbwblPageSize
+      (\ s a -> s{_bafsnbwblPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bafsnbwblCallback :: Lens' BiddersAccountsFilterSetsNonBillableWinningBidsList (Maybe Text)
+bafsnbwblCallback
+  = lens _bafsnbwblCallback
+      (\ s a -> s{_bafsnbwblCallback = a})
+
+instance GoogleRequest
+         BiddersAccountsFilterSetsNonBillableWinningBidsList
+         where
+        type Rs
+               BiddersAccountsFilterSetsNonBillableWinningBidsList
+             = ListNonBillableWinningBidsResponse
+        type Scopes
+               BiddersAccountsFilterSetsNonBillableWinningBidsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersAccountsFilterSetsNonBillableWinningBidsList'{..}
+          = go _bafsnbwblFilterSetName _bafsnbwblXgafv
+              _bafsnbwblUploadProtocol
+              _bafsnbwblAccessToken
+              _bafsnbwblUploadType
+              _bafsnbwblPageToken
+              _bafsnbwblPageSize
+              _bafsnbwblCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersAccountsFilterSetsNonBillableWinningBidsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/BidMetrics/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/BidMetrics/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/BidMetrics/List.hs
@@ -0,0 +1,190 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidMetrics.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all metrics that are measured in terms of number of bids.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.bidMetrics.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidMetrics.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsBidMetricsListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsBidMetricsList
+    , BiddersFilterSetsBidMetricsList
+
+    -- * Request Lenses
+    , bfsbmlXgafv
+    , bfsbmlUploadProtocol
+    , bfsbmlFilterSetName
+    , bfsbmlAccessToken
+    , bfsbmlUploadType
+    , bfsbmlPageToken
+    , bfsbmlPageSize
+    , bfsbmlCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.bidMetrics.list@ method which the
+-- 'BiddersFilterSetsBidMetricsList' request conforms to.
+type BiddersFilterSetsBidMetricsListResource =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "bidMetrics" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListBidMetricsResponse
+
+-- | Lists all metrics that are measured in terms of number of bids.
+--
+-- /See:/ 'biddersFilterSetsBidMetricsList' smart constructor.
+data BiddersFilterSetsBidMetricsList = BiddersFilterSetsBidMetricsList'
+    { _bfsbmlXgafv          :: !(Maybe Xgafv)
+    , _bfsbmlUploadProtocol :: !(Maybe Text)
+    , _bfsbmlFilterSetName  :: !Text
+    , _bfsbmlAccessToken    :: !(Maybe Text)
+    , _bfsbmlUploadType     :: !(Maybe Text)
+    , _bfsbmlPageToken      :: !(Maybe Text)
+    , _bfsbmlPageSize       :: !(Maybe (Textual Int32))
+    , _bfsbmlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsBidMetricsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsbmlXgafv'
+--
+-- * 'bfsbmlUploadProtocol'
+--
+-- * 'bfsbmlFilterSetName'
+--
+-- * 'bfsbmlAccessToken'
+--
+-- * 'bfsbmlUploadType'
+--
+-- * 'bfsbmlPageToken'
+--
+-- * 'bfsbmlPageSize'
+--
+-- * 'bfsbmlCallback'
+biddersFilterSetsBidMetricsList
+    :: Text -- ^ 'bfsbmlFilterSetName'
+    -> BiddersFilterSetsBidMetricsList
+biddersFilterSetsBidMetricsList pBfsbmlFilterSetName_ =
+    BiddersFilterSetsBidMetricsList'
+    { _bfsbmlXgafv = Nothing
+    , _bfsbmlUploadProtocol = Nothing
+    , _bfsbmlFilterSetName = pBfsbmlFilterSetName_
+    , _bfsbmlAccessToken = Nothing
+    , _bfsbmlUploadType = Nothing
+    , _bfsbmlPageToken = Nothing
+    , _bfsbmlPageSize = Nothing
+    , _bfsbmlCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsbmlXgafv :: Lens' BiddersFilterSetsBidMetricsList (Maybe Xgafv)
+bfsbmlXgafv
+  = lens _bfsbmlXgafv (\ s a -> s{_bfsbmlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsbmlUploadProtocol :: Lens' BiddersFilterSetsBidMetricsList (Maybe Text)
+bfsbmlUploadProtocol
+  = lens _bfsbmlUploadProtocol
+      (\ s a -> s{_bfsbmlUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsbmlFilterSetName :: Lens' BiddersFilterSetsBidMetricsList Text
+bfsbmlFilterSetName
+  = lens _bfsbmlFilterSetName
+      (\ s a -> s{_bfsbmlFilterSetName = a})
+
+-- | OAuth access token.
+bfsbmlAccessToken :: Lens' BiddersFilterSetsBidMetricsList (Maybe Text)
+bfsbmlAccessToken
+  = lens _bfsbmlAccessToken
+      (\ s a -> s{_bfsbmlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsbmlUploadType :: Lens' BiddersFilterSetsBidMetricsList (Maybe Text)
+bfsbmlUploadType
+  = lens _bfsbmlUploadType
+      (\ s a -> s{_bfsbmlUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListBidMetricsResponse.nextPageToken
+-- returned from the previous call to the bidMetrics.list method.
+bfsbmlPageToken :: Lens' BiddersFilterSetsBidMetricsList (Maybe Text)
+bfsbmlPageToken
+  = lens _bfsbmlPageToken
+      (\ s a -> s{_bfsbmlPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfsbmlPageSize :: Lens' BiddersFilterSetsBidMetricsList (Maybe Int32)
+bfsbmlPageSize
+  = lens _bfsbmlPageSize
+      (\ s a -> s{_bfsbmlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfsbmlCallback :: Lens' BiddersFilterSetsBidMetricsList (Maybe Text)
+bfsbmlCallback
+  = lens _bfsbmlCallback
+      (\ s a -> s{_bfsbmlCallback = a})
+
+instance GoogleRequest
+         BiddersFilterSetsBidMetricsList where
+        type Rs BiddersFilterSetsBidMetricsList =
+             ListBidMetricsResponse
+        type Scopes BiddersFilterSetsBidMetricsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersFilterSetsBidMetricsList'{..}
+          = go _bfsbmlFilterSetName _bfsbmlXgafv
+              _bfsbmlUploadProtocol
+              _bfsbmlAccessToken
+              _bfsbmlUploadType
+              _bfsbmlPageToken
+              _bfsbmlPageSize
+              _bfsbmlCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy BiddersFilterSetsBidMetricsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/BidResponseErrors/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/BidResponseErrors/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/BidResponseErrors/List.hs
@@ -0,0 +1,194 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidResponseErrors.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all errors that occurred in bid responses, with the number of bid
+-- responses affected for each reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.bidResponseErrors.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidResponseErrors.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsBidResponseErrorsListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsBidResponseErrorsList
+    , BiddersFilterSetsBidResponseErrorsList
+
+    -- * Request Lenses
+    , bfsbrelXgafv
+    , bfsbrelUploadProtocol
+    , bfsbrelFilterSetName
+    , bfsbrelAccessToken
+    , bfsbrelUploadType
+    , bfsbrelPageToken
+    , bfsbrelPageSize
+    , bfsbrelCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.bidResponseErrors.list@ method which the
+-- 'BiddersFilterSetsBidResponseErrorsList' request conforms to.
+type BiddersFilterSetsBidResponseErrorsListResource =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "bidResponseErrors" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListBidResponseErrorsResponse
+
+-- | List all errors that occurred in bid responses, with the number of bid
+-- responses affected for each reason.
+--
+-- /See:/ 'biddersFilterSetsBidResponseErrorsList' smart constructor.
+data BiddersFilterSetsBidResponseErrorsList = BiddersFilterSetsBidResponseErrorsList'
+    { _bfsbrelXgafv          :: !(Maybe Xgafv)
+    , _bfsbrelUploadProtocol :: !(Maybe Text)
+    , _bfsbrelFilterSetName  :: !Text
+    , _bfsbrelAccessToken    :: !(Maybe Text)
+    , _bfsbrelUploadType     :: !(Maybe Text)
+    , _bfsbrelPageToken      :: !(Maybe Text)
+    , _bfsbrelPageSize       :: !(Maybe (Textual Int32))
+    , _bfsbrelCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsBidResponseErrorsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsbrelXgafv'
+--
+-- * 'bfsbrelUploadProtocol'
+--
+-- * 'bfsbrelFilterSetName'
+--
+-- * 'bfsbrelAccessToken'
+--
+-- * 'bfsbrelUploadType'
+--
+-- * 'bfsbrelPageToken'
+--
+-- * 'bfsbrelPageSize'
+--
+-- * 'bfsbrelCallback'
+biddersFilterSetsBidResponseErrorsList
+    :: Text -- ^ 'bfsbrelFilterSetName'
+    -> BiddersFilterSetsBidResponseErrorsList
+biddersFilterSetsBidResponseErrorsList pBfsbrelFilterSetName_ =
+    BiddersFilterSetsBidResponseErrorsList'
+    { _bfsbrelXgafv = Nothing
+    , _bfsbrelUploadProtocol = Nothing
+    , _bfsbrelFilterSetName = pBfsbrelFilterSetName_
+    , _bfsbrelAccessToken = Nothing
+    , _bfsbrelUploadType = Nothing
+    , _bfsbrelPageToken = Nothing
+    , _bfsbrelPageSize = Nothing
+    , _bfsbrelCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsbrelXgafv :: Lens' BiddersFilterSetsBidResponseErrorsList (Maybe Xgafv)
+bfsbrelXgafv
+  = lens _bfsbrelXgafv (\ s a -> s{_bfsbrelXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsbrelUploadProtocol :: Lens' BiddersFilterSetsBidResponseErrorsList (Maybe Text)
+bfsbrelUploadProtocol
+  = lens _bfsbrelUploadProtocol
+      (\ s a -> s{_bfsbrelUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsbrelFilterSetName :: Lens' BiddersFilterSetsBidResponseErrorsList Text
+bfsbrelFilterSetName
+  = lens _bfsbrelFilterSetName
+      (\ s a -> s{_bfsbrelFilterSetName = a})
+
+-- | OAuth access token.
+bfsbrelAccessToken :: Lens' BiddersFilterSetsBidResponseErrorsList (Maybe Text)
+bfsbrelAccessToken
+  = lens _bfsbrelAccessToken
+      (\ s a -> s{_bfsbrelAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsbrelUploadType :: Lens' BiddersFilterSetsBidResponseErrorsList (Maybe Text)
+bfsbrelUploadType
+  = lens _bfsbrelUploadType
+      (\ s a -> s{_bfsbrelUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListBidResponseErrorsResponse.nextPageToken returned from the previous
+-- call to the bidResponseErrors.list method.
+bfsbrelPageToken :: Lens' BiddersFilterSetsBidResponseErrorsList (Maybe Text)
+bfsbrelPageToken
+  = lens _bfsbrelPageToken
+      (\ s a -> s{_bfsbrelPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfsbrelPageSize :: Lens' BiddersFilterSetsBidResponseErrorsList (Maybe Int32)
+bfsbrelPageSize
+  = lens _bfsbrelPageSize
+      (\ s a -> s{_bfsbrelPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfsbrelCallback :: Lens' BiddersFilterSetsBidResponseErrorsList (Maybe Text)
+bfsbrelCallback
+  = lens _bfsbrelCallback
+      (\ s a -> s{_bfsbrelCallback = a})
+
+instance GoogleRequest
+         BiddersFilterSetsBidResponseErrorsList where
+        type Rs BiddersFilterSetsBidResponseErrorsList =
+             ListBidResponseErrorsResponse
+        type Scopes BiddersFilterSetsBidResponseErrorsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersFilterSetsBidResponseErrorsList'{..}
+          = go _bfsbrelFilterSetName _bfsbrelXgafv
+              _bfsbrelUploadProtocol
+              _bfsbrelAccessToken
+              _bfsbrelUploadType
+              _bfsbrelPageToken
+              _bfsbrelPageSize
+              _bfsbrelCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy BiddersFilterSetsBidResponseErrorsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/BidResponsesWithoutBids/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/BidResponsesWithoutBids/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/BidResponsesWithoutBids/List.hs
@@ -0,0 +1,201 @@
+{-# 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.AdExchangeBuyer2.Bidders.FilterSets.BidResponsesWithoutBids.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all reasons for which bid responses were considered to have no
+-- applicable bids, with the number of bid responses affected for each
+-- reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.bidResponsesWithoutBids.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidResponsesWithoutBids.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsBidResponsesWithoutBidsListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsBidResponsesWithoutBidsList
+    , BiddersFilterSetsBidResponsesWithoutBidsList
+
+    -- * Request Lenses
+    , bfsbrwblXgafv
+    , bfsbrwblUploadProtocol
+    , bfsbrwblFilterSetName
+    , bfsbrwblAccessToken
+    , bfsbrwblUploadType
+    , bfsbrwblPageToken
+    , bfsbrwblPageSize
+    , bfsbrwblCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.bidResponsesWithoutBids.list@ method which the
+-- 'BiddersFilterSetsBidResponsesWithoutBidsList' request conforms to.
+type BiddersFilterSetsBidResponsesWithoutBidsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "bidResponsesWithoutBids" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListBidResponsesWithoutBidsResponse
+
+-- | List all reasons for which bid responses were considered to have no
+-- applicable bids, with the number of bid responses affected for each
+-- reason.
+--
+-- /See:/ 'biddersFilterSetsBidResponsesWithoutBidsList' smart constructor.
+data BiddersFilterSetsBidResponsesWithoutBidsList = BiddersFilterSetsBidResponsesWithoutBidsList'
+    { _bfsbrwblXgafv          :: !(Maybe Xgafv)
+    , _bfsbrwblUploadProtocol :: !(Maybe Text)
+    , _bfsbrwblFilterSetName  :: !Text
+    , _bfsbrwblAccessToken    :: !(Maybe Text)
+    , _bfsbrwblUploadType     :: !(Maybe Text)
+    , _bfsbrwblPageToken      :: !(Maybe Text)
+    , _bfsbrwblPageSize       :: !(Maybe (Textual Int32))
+    , _bfsbrwblCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsBidResponsesWithoutBidsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsbrwblXgafv'
+--
+-- * 'bfsbrwblUploadProtocol'
+--
+-- * 'bfsbrwblFilterSetName'
+--
+-- * 'bfsbrwblAccessToken'
+--
+-- * 'bfsbrwblUploadType'
+--
+-- * 'bfsbrwblPageToken'
+--
+-- * 'bfsbrwblPageSize'
+--
+-- * 'bfsbrwblCallback'
+biddersFilterSetsBidResponsesWithoutBidsList
+    :: Text -- ^ 'bfsbrwblFilterSetName'
+    -> BiddersFilterSetsBidResponsesWithoutBidsList
+biddersFilterSetsBidResponsesWithoutBidsList pBfsbrwblFilterSetName_ =
+    BiddersFilterSetsBidResponsesWithoutBidsList'
+    { _bfsbrwblXgafv = Nothing
+    , _bfsbrwblUploadProtocol = Nothing
+    , _bfsbrwblFilterSetName = pBfsbrwblFilterSetName_
+    , _bfsbrwblAccessToken = Nothing
+    , _bfsbrwblUploadType = Nothing
+    , _bfsbrwblPageToken = Nothing
+    , _bfsbrwblPageSize = Nothing
+    , _bfsbrwblCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsbrwblXgafv :: Lens' BiddersFilterSetsBidResponsesWithoutBidsList (Maybe Xgafv)
+bfsbrwblXgafv
+  = lens _bfsbrwblXgafv
+      (\ s a -> s{_bfsbrwblXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsbrwblUploadProtocol :: Lens' BiddersFilterSetsBidResponsesWithoutBidsList (Maybe Text)
+bfsbrwblUploadProtocol
+  = lens _bfsbrwblUploadProtocol
+      (\ s a -> s{_bfsbrwblUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsbrwblFilterSetName :: Lens' BiddersFilterSetsBidResponsesWithoutBidsList Text
+bfsbrwblFilterSetName
+  = lens _bfsbrwblFilterSetName
+      (\ s a -> s{_bfsbrwblFilterSetName = a})
+
+-- | OAuth access token.
+bfsbrwblAccessToken :: Lens' BiddersFilterSetsBidResponsesWithoutBidsList (Maybe Text)
+bfsbrwblAccessToken
+  = lens _bfsbrwblAccessToken
+      (\ s a -> s{_bfsbrwblAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsbrwblUploadType :: Lens' BiddersFilterSetsBidResponsesWithoutBidsList (Maybe Text)
+bfsbrwblUploadType
+  = lens _bfsbrwblUploadType
+      (\ s a -> s{_bfsbrwblUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListBidResponsesWithoutBidsResponse.nextPageToken returned from the
+-- previous call to the bidResponsesWithoutBids.list method.
+bfsbrwblPageToken :: Lens' BiddersFilterSetsBidResponsesWithoutBidsList (Maybe Text)
+bfsbrwblPageToken
+  = lens _bfsbrwblPageToken
+      (\ s a -> s{_bfsbrwblPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfsbrwblPageSize :: Lens' BiddersFilterSetsBidResponsesWithoutBidsList (Maybe Int32)
+bfsbrwblPageSize
+  = lens _bfsbrwblPageSize
+      (\ s a -> s{_bfsbrwblPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfsbrwblCallback :: Lens' BiddersFilterSetsBidResponsesWithoutBidsList (Maybe Text)
+bfsbrwblCallback
+  = lens _bfsbrwblCallback
+      (\ s a -> s{_bfsbrwblCallback = a})
+
+instance GoogleRequest
+         BiddersFilterSetsBidResponsesWithoutBidsList where
+        type Rs BiddersFilterSetsBidResponsesWithoutBidsList
+             = ListBidResponsesWithoutBidsResponse
+        type Scopes
+               BiddersFilterSetsBidResponsesWithoutBidsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersFilterSetsBidResponsesWithoutBidsList'{..}
+          = go _bfsbrwblFilterSetName _bfsbrwblXgafv
+              _bfsbrwblUploadProtocol
+              _bfsbrwblAccessToken
+              _bfsbrwblUploadType
+              _bfsbrwblPageToken
+              _bfsbrwblPageSize
+              _bfsbrwblCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersFilterSetsBidResponsesWithoutBidsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/Create.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/Create.hs
@@ -0,0 +1,183 @@
+{-# 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.AdExchangeBuyer2.Bidders.FilterSets.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates the specified filter set for the account with the given account
+-- ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.create@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Create
+    (
+    -- * REST Resource
+      BiddersFilterSetsCreateResource
+
+    -- * Creating a Request
+    , biddersFilterSetsCreate
+    , BiddersFilterSetsCreate
+
+    -- * Request Lenses
+    , bfscXgafv
+    , bfscUploadProtocol
+    , bfscAccessToken
+    , bfscUploadType
+    , bfscOwnerName
+    , bfscPayload
+    , bfscIsTransient
+    , bfscCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.create@ method which the
+-- 'BiddersFilterSetsCreate' request conforms to.
+type BiddersFilterSetsCreateResource =
+     "v2beta1" :>
+       Capture "ownerName" Text :>
+         "filterSets" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "isTransient" Bool :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] FilterSet :> Post '[JSON] FilterSet
+
+-- | Creates the specified filter set for the account with the given account
+-- ID.
+--
+-- /See:/ 'biddersFilterSetsCreate' smart constructor.
+data BiddersFilterSetsCreate = BiddersFilterSetsCreate'
+    { _bfscXgafv          :: !(Maybe Xgafv)
+    , _bfscUploadProtocol :: !(Maybe Text)
+    , _bfscAccessToken    :: !(Maybe Text)
+    , _bfscUploadType     :: !(Maybe Text)
+    , _bfscOwnerName      :: !Text
+    , _bfscPayload        :: !FilterSet
+    , _bfscIsTransient    :: !(Maybe Bool)
+    , _bfscCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfscXgafv'
+--
+-- * 'bfscUploadProtocol'
+--
+-- * 'bfscAccessToken'
+--
+-- * 'bfscUploadType'
+--
+-- * 'bfscOwnerName'
+--
+-- * 'bfscPayload'
+--
+-- * 'bfscIsTransient'
+--
+-- * 'bfscCallback'
+biddersFilterSetsCreate
+    :: Text -- ^ 'bfscOwnerName'
+    -> FilterSet -- ^ 'bfscPayload'
+    -> BiddersFilterSetsCreate
+biddersFilterSetsCreate pBfscOwnerName_ pBfscPayload_ =
+    BiddersFilterSetsCreate'
+    { _bfscXgafv = Nothing
+    , _bfscUploadProtocol = Nothing
+    , _bfscAccessToken = Nothing
+    , _bfscUploadType = Nothing
+    , _bfscOwnerName = pBfscOwnerName_
+    , _bfscPayload = pBfscPayload_
+    , _bfscIsTransient = Nothing
+    , _bfscCallback = Nothing
+    }
+
+-- | V1 error format.
+bfscXgafv :: Lens' BiddersFilterSetsCreate (Maybe Xgafv)
+bfscXgafv
+  = lens _bfscXgafv (\ s a -> s{_bfscXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfscUploadProtocol :: Lens' BiddersFilterSetsCreate (Maybe Text)
+bfscUploadProtocol
+  = lens _bfscUploadProtocol
+      (\ s a -> s{_bfscUploadProtocol = a})
+
+-- | OAuth access token.
+bfscAccessToken :: Lens' BiddersFilterSetsCreate (Maybe Text)
+bfscAccessToken
+  = lens _bfscAccessToken
+      (\ s a -> s{_bfscAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfscUploadType :: Lens' BiddersFilterSetsCreate (Maybe Text)
+bfscUploadType
+  = lens _bfscUploadType
+      (\ s a -> s{_bfscUploadType = a})
+
+-- | Name of the owner (bidder or account) of the filter set to be created.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\` - For an account-level filter set for the buyer account
+-- representing bidder 123: \`bidders\/123\/accounts\/123\` - For an
+-- account-level filter set for the child seat buyer account 456 whose
+-- bidder is 123: \`bidders\/123\/accounts\/456\`
+bfscOwnerName :: Lens' BiddersFilterSetsCreate Text
+bfscOwnerName
+  = lens _bfscOwnerName
+      (\ s a -> s{_bfscOwnerName = a})
+
+-- | Multipart request metadata.
+bfscPayload :: Lens' BiddersFilterSetsCreate FilterSet
+bfscPayload
+  = lens _bfscPayload (\ s a -> s{_bfscPayload = a})
+
+-- | Whether the filter set is transient, or should be persisted
+-- indefinitely. By default, filter sets are not transient. If transient,
+-- it will be available for at least 1 hour after creation.
+bfscIsTransient :: Lens' BiddersFilterSetsCreate (Maybe Bool)
+bfscIsTransient
+  = lens _bfscIsTransient
+      (\ s a -> s{_bfscIsTransient = a})
+
+-- | JSONP
+bfscCallback :: Lens' BiddersFilterSetsCreate (Maybe Text)
+bfscCallback
+  = lens _bfscCallback (\ s a -> s{_bfscCallback = a})
+
+instance GoogleRequest BiddersFilterSetsCreate where
+        type Rs BiddersFilterSetsCreate = FilterSet
+        type Scopes BiddersFilterSetsCreate =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersFilterSetsCreate'{..}
+          = go _bfscOwnerName _bfscXgafv _bfscUploadProtocol
+              _bfscAccessToken
+              _bfscUploadType
+              _bfscIsTransient
+              _bfscCallback
+              (Just AltJSON)
+              _bfscPayload
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy BiddersFilterSetsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/Delete.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/Delete.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the requested filter set from the account with the given account
+-- ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.delete@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Delete
+    (
+    -- * REST Resource
+      BiddersFilterSetsDeleteResource
+
+    -- * Creating a Request
+    , biddersFilterSetsDelete
+    , BiddersFilterSetsDelete
+
+    -- * Request Lenses
+    , bfsdXgafv
+    , bfsdUploadProtocol
+    , bfsdAccessToken
+    , bfsdUploadType
+    , bfsdName
+    , bfsdCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.delete@ method which the
+-- 'BiddersFilterSetsDelete' request conforms to.
+type BiddersFilterSetsDeleteResource =
+     "v2beta1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes the requested filter set from the account with the given account
+-- ID.
+--
+-- /See:/ 'biddersFilterSetsDelete' smart constructor.
+data BiddersFilterSetsDelete = BiddersFilterSetsDelete'
+    { _bfsdXgafv          :: !(Maybe Xgafv)
+    , _bfsdUploadProtocol :: !(Maybe Text)
+    , _bfsdAccessToken    :: !(Maybe Text)
+    , _bfsdUploadType     :: !(Maybe Text)
+    , _bfsdName           :: !Text
+    , _bfsdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsdXgafv'
+--
+-- * 'bfsdUploadProtocol'
+--
+-- * 'bfsdAccessToken'
+--
+-- * 'bfsdUploadType'
+--
+-- * 'bfsdName'
+--
+-- * 'bfsdCallback'
+biddersFilterSetsDelete
+    :: Text -- ^ 'bfsdName'
+    -> BiddersFilterSetsDelete
+biddersFilterSetsDelete pBfsdName_ =
+    BiddersFilterSetsDelete'
+    { _bfsdXgafv = Nothing
+    , _bfsdUploadProtocol = Nothing
+    , _bfsdAccessToken = Nothing
+    , _bfsdUploadType = Nothing
+    , _bfsdName = pBfsdName_
+    , _bfsdCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsdXgafv :: Lens' BiddersFilterSetsDelete (Maybe Xgafv)
+bfsdXgafv
+  = lens _bfsdXgafv (\ s a -> s{_bfsdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsdUploadProtocol :: Lens' BiddersFilterSetsDelete (Maybe Text)
+bfsdUploadProtocol
+  = lens _bfsdUploadProtocol
+      (\ s a -> s{_bfsdUploadProtocol = a})
+
+-- | OAuth access token.
+bfsdAccessToken :: Lens' BiddersFilterSetsDelete (Maybe Text)
+bfsdAccessToken
+  = lens _bfsdAccessToken
+      (\ s a -> s{_bfsdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsdUploadType :: Lens' BiddersFilterSetsDelete (Maybe Text)
+bfsdUploadType
+  = lens _bfsdUploadType
+      (\ s a -> s{_bfsdUploadType = a})
+
+-- | Full name of the resource to delete. For example: - For a bidder-level
+-- filter set for bidder 123: \`bidders\/123\/filterSets\/abc\` - For an
+-- account-level filter set for the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsdName :: Lens' BiddersFilterSetsDelete Text
+bfsdName = lens _bfsdName (\ s a -> s{_bfsdName = a})
+
+-- | JSONP
+bfsdCallback :: Lens' BiddersFilterSetsDelete (Maybe Text)
+bfsdCallback
+  = lens _bfsdCallback (\ s a -> s{_bfsdCallback = a})
+
+instance GoogleRequest BiddersFilterSetsDelete where
+        type Rs BiddersFilterSetsDelete = Empty
+        type Scopes BiddersFilterSetsDelete =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersFilterSetsDelete'{..}
+          = go _bfsdName _bfsdXgafv _bfsdUploadProtocol
+              _bfsdAccessToken
+              _bfsdUploadType
+              _bfsdCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy BiddersFilterSetsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBidRequests/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBidRequests/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBidRequests/List.hs
@@ -0,0 +1,197 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBidRequests.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all reasons that caused a bid request not to be sent for an
+-- impression, with the number of bid requests not sent for each reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.filteredBidRequests.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBidRequests.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsFilteredBidRequestsListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsFilteredBidRequestsList
+    , BiddersFilterSetsFilteredBidRequestsList
+
+    -- * Request Lenses
+    , bfsfbrlXgafv
+    , bfsfbrlUploadProtocol
+    , bfsfbrlFilterSetName
+    , bfsfbrlAccessToken
+    , bfsfbrlUploadType
+    , bfsfbrlPageToken
+    , bfsfbrlPageSize
+    , bfsfbrlCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.filteredBidRequests.list@ method which the
+-- 'BiddersFilterSetsFilteredBidRequestsList' request conforms to.
+type BiddersFilterSetsFilteredBidRequestsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "filteredBidRequests" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListFilteredBidRequestsResponse
+
+-- | List all reasons that caused a bid request not to be sent for an
+-- impression, with the number of bid requests not sent for each reason.
+--
+-- /See:/ 'biddersFilterSetsFilteredBidRequestsList' smart constructor.
+data BiddersFilterSetsFilteredBidRequestsList = BiddersFilterSetsFilteredBidRequestsList'
+    { _bfsfbrlXgafv          :: !(Maybe Xgafv)
+    , _bfsfbrlUploadProtocol :: !(Maybe Text)
+    , _bfsfbrlFilterSetName  :: !Text
+    , _bfsfbrlAccessToken    :: !(Maybe Text)
+    , _bfsfbrlUploadType     :: !(Maybe Text)
+    , _bfsfbrlPageToken      :: !(Maybe Text)
+    , _bfsfbrlPageSize       :: !(Maybe (Textual Int32))
+    , _bfsfbrlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsFilteredBidRequestsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsfbrlXgafv'
+--
+-- * 'bfsfbrlUploadProtocol'
+--
+-- * 'bfsfbrlFilterSetName'
+--
+-- * 'bfsfbrlAccessToken'
+--
+-- * 'bfsfbrlUploadType'
+--
+-- * 'bfsfbrlPageToken'
+--
+-- * 'bfsfbrlPageSize'
+--
+-- * 'bfsfbrlCallback'
+biddersFilterSetsFilteredBidRequestsList
+    :: Text -- ^ 'bfsfbrlFilterSetName'
+    -> BiddersFilterSetsFilteredBidRequestsList
+biddersFilterSetsFilteredBidRequestsList pBfsfbrlFilterSetName_ =
+    BiddersFilterSetsFilteredBidRequestsList'
+    { _bfsfbrlXgafv = Nothing
+    , _bfsfbrlUploadProtocol = Nothing
+    , _bfsfbrlFilterSetName = pBfsfbrlFilterSetName_
+    , _bfsfbrlAccessToken = Nothing
+    , _bfsfbrlUploadType = Nothing
+    , _bfsfbrlPageToken = Nothing
+    , _bfsfbrlPageSize = Nothing
+    , _bfsfbrlCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsfbrlXgafv :: Lens' BiddersFilterSetsFilteredBidRequestsList (Maybe Xgafv)
+bfsfbrlXgafv
+  = lens _bfsfbrlXgafv (\ s a -> s{_bfsfbrlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsfbrlUploadProtocol :: Lens' BiddersFilterSetsFilteredBidRequestsList (Maybe Text)
+bfsfbrlUploadProtocol
+  = lens _bfsfbrlUploadProtocol
+      (\ s a -> s{_bfsfbrlUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsfbrlFilterSetName :: Lens' BiddersFilterSetsFilteredBidRequestsList Text
+bfsfbrlFilterSetName
+  = lens _bfsfbrlFilterSetName
+      (\ s a -> s{_bfsfbrlFilterSetName = a})
+
+-- | OAuth access token.
+bfsfbrlAccessToken :: Lens' BiddersFilterSetsFilteredBidRequestsList (Maybe Text)
+bfsfbrlAccessToken
+  = lens _bfsfbrlAccessToken
+      (\ s a -> s{_bfsfbrlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsfbrlUploadType :: Lens' BiddersFilterSetsFilteredBidRequestsList (Maybe Text)
+bfsfbrlUploadType
+  = lens _bfsfbrlUploadType
+      (\ s a -> s{_bfsfbrlUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListFilteredBidRequestsResponse.nextPageToken returned from the previous
+-- call to the filteredBidRequests.list method.
+bfsfbrlPageToken :: Lens' BiddersFilterSetsFilteredBidRequestsList (Maybe Text)
+bfsfbrlPageToken
+  = lens _bfsfbrlPageToken
+      (\ s a -> s{_bfsfbrlPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfsfbrlPageSize :: Lens' BiddersFilterSetsFilteredBidRequestsList (Maybe Int32)
+bfsfbrlPageSize
+  = lens _bfsfbrlPageSize
+      (\ s a -> s{_bfsfbrlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfsfbrlCallback :: Lens' BiddersFilterSetsFilteredBidRequestsList (Maybe Text)
+bfsfbrlCallback
+  = lens _bfsfbrlCallback
+      (\ s a -> s{_bfsfbrlCallback = a})
+
+instance GoogleRequest
+         BiddersFilterSetsFilteredBidRequestsList where
+        type Rs BiddersFilterSetsFilteredBidRequestsList =
+             ListFilteredBidRequestsResponse
+        type Scopes BiddersFilterSetsFilteredBidRequestsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersFilterSetsFilteredBidRequestsList'{..}
+          = go _bfsfbrlFilterSetName _bfsfbrlXgafv
+              _bfsfbrlUploadProtocol
+              _bfsfbrlAccessToken
+              _bfsfbrlUploadType
+              _bfsfbrlPageToken
+              _bfsfbrlPageSize
+              _bfsfbrlCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersFilterSetsFilteredBidRequestsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBids/Creatives/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBids/Creatives/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBids/Creatives/List.hs
@@ -0,0 +1,217 @@
+{-# 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.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.Creatives.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all creatives associated with a specific reason for which bids were
+-- filtered, with the number of bids filtered for each creative.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.filteredBids.creatives.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.Creatives.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsFilteredBidsCreativesListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsFilteredBidsCreativesList
+    , BiddersFilterSetsFilteredBidsCreativesList
+
+    -- * Request Lenses
+    , bfsfbclXgafv
+    , bfsfbclUploadProtocol
+    , bfsfbclFilterSetName
+    , bfsfbclAccessToken
+    , bfsfbclUploadType
+    , bfsfbclCreativeStatusId
+    , bfsfbclPageToken
+    , bfsfbclPageSize
+    , bfsfbclCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.filteredBids.creatives.list@ method which the
+-- 'BiddersFilterSetsFilteredBidsCreativesList' request conforms to.
+type BiddersFilterSetsFilteredBidsCreativesListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "filteredBids" :>
+           Capture "creativeStatusId" (Textual Int32) :>
+             "creatives" :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON]
+                                 ListCreativeStatusBreakdownByCreativeResponse
+
+-- | List all creatives associated with a specific reason for which bids were
+-- filtered, with the number of bids filtered for each creative.
+--
+-- /See:/ 'biddersFilterSetsFilteredBidsCreativesList' smart constructor.
+data BiddersFilterSetsFilteredBidsCreativesList = BiddersFilterSetsFilteredBidsCreativesList'
+    { _bfsfbclXgafv            :: !(Maybe Xgafv)
+    , _bfsfbclUploadProtocol   :: !(Maybe Text)
+    , _bfsfbclFilterSetName    :: !Text
+    , _bfsfbclAccessToken      :: !(Maybe Text)
+    , _bfsfbclUploadType       :: !(Maybe Text)
+    , _bfsfbclCreativeStatusId :: !(Textual Int32)
+    , _bfsfbclPageToken        :: !(Maybe Text)
+    , _bfsfbclPageSize         :: !(Maybe (Textual Int32))
+    , _bfsfbclCallback         :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsFilteredBidsCreativesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsfbclXgafv'
+--
+-- * 'bfsfbclUploadProtocol'
+--
+-- * 'bfsfbclFilterSetName'
+--
+-- * 'bfsfbclAccessToken'
+--
+-- * 'bfsfbclUploadType'
+--
+-- * 'bfsfbclCreativeStatusId'
+--
+-- * 'bfsfbclPageToken'
+--
+-- * 'bfsfbclPageSize'
+--
+-- * 'bfsfbclCallback'
+biddersFilterSetsFilteredBidsCreativesList
+    :: Text -- ^ 'bfsfbclFilterSetName'
+    -> Int32 -- ^ 'bfsfbclCreativeStatusId'
+    -> BiddersFilterSetsFilteredBidsCreativesList
+biddersFilterSetsFilteredBidsCreativesList pBfsfbclFilterSetName_ pBfsfbclCreativeStatusId_ =
+    BiddersFilterSetsFilteredBidsCreativesList'
+    { _bfsfbclXgafv = Nothing
+    , _bfsfbclUploadProtocol = Nothing
+    , _bfsfbclFilterSetName = pBfsfbclFilterSetName_
+    , _bfsfbclAccessToken = Nothing
+    , _bfsfbclUploadType = Nothing
+    , _bfsfbclCreativeStatusId = _Coerce # pBfsfbclCreativeStatusId_
+    , _bfsfbclPageToken = Nothing
+    , _bfsfbclPageSize = Nothing
+    , _bfsfbclCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsfbclXgafv :: Lens' BiddersFilterSetsFilteredBidsCreativesList (Maybe Xgafv)
+bfsfbclXgafv
+  = lens _bfsfbclXgafv (\ s a -> s{_bfsfbclXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsfbclUploadProtocol :: Lens' BiddersFilterSetsFilteredBidsCreativesList (Maybe Text)
+bfsfbclUploadProtocol
+  = lens _bfsfbclUploadProtocol
+      (\ s a -> s{_bfsfbclUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsfbclFilterSetName :: Lens' BiddersFilterSetsFilteredBidsCreativesList Text
+bfsfbclFilterSetName
+  = lens _bfsfbclFilterSetName
+      (\ s a -> s{_bfsfbclFilterSetName = a})
+
+-- | OAuth access token.
+bfsfbclAccessToken :: Lens' BiddersFilterSetsFilteredBidsCreativesList (Maybe Text)
+bfsfbclAccessToken
+  = lens _bfsfbclAccessToken
+      (\ s a -> s{_bfsfbclAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsfbclUploadType :: Lens' BiddersFilterSetsFilteredBidsCreativesList (Maybe Text)
+bfsfbclUploadType
+  = lens _bfsfbclUploadType
+      (\ s a -> s{_bfsfbclUploadType = a})
+
+-- | The ID of the creative status for which to retrieve a breakdown by
+-- creative. See
+-- [creative-status-codes](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/creative-status-codes).
+bfsfbclCreativeStatusId :: Lens' BiddersFilterSetsFilteredBidsCreativesList Int32
+bfsfbclCreativeStatusId
+  = lens _bfsfbclCreativeStatusId
+      (\ s a -> s{_bfsfbclCreativeStatusId = a})
+      . _Coerce
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListCreativeStatusBreakdownByCreativeResponse.nextPageToken returned
+-- from the previous call to the filteredBids.creatives.list method.
+bfsfbclPageToken :: Lens' BiddersFilterSetsFilteredBidsCreativesList (Maybe Text)
+bfsfbclPageToken
+  = lens _bfsfbclPageToken
+      (\ s a -> s{_bfsfbclPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfsfbclPageSize :: Lens' BiddersFilterSetsFilteredBidsCreativesList (Maybe Int32)
+bfsfbclPageSize
+  = lens _bfsfbclPageSize
+      (\ s a -> s{_bfsfbclPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfsfbclCallback :: Lens' BiddersFilterSetsFilteredBidsCreativesList (Maybe Text)
+bfsfbclCallback
+  = lens _bfsfbclCallback
+      (\ s a -> s{_bfsfbclCallback = a})
+
+instance GoogleRequest
+         BiddersFilterSetsFilteredBidsCreativesList where
+        type Rs BiddersFilterSetsFilteredBidsCreativesList =
+             ListCreativeStatusBreakdownByCreativeResponse
+        type Scopes
+               BiddersFilterSetsFilteredBidsCreativesList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersFilterSetsFilteredBidsCreativesList'{..}
+          = go _bfsfbclFilterSetName _bfsfbclCreativeStatusId
+              _bfsfbclXgafv
+              _bfsfbclUploadProtocol
+              _bfsfbclAccessToken
+              _bfsfbclUploadType
+              _bfsfbclPageToken
+              _bfsfbclPageSize
+              _bfsfbclCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersFilterSetsFilteredBidsCreativesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBids/Details/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBids/Details/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBids/Details/List.hs
@@ -0,0 +1,218 @@
+{-# 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.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.Details.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all details associated with a specific reason for which bids were
+-- filtered, with the number of bids filtered for each detail.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.filteredBids.details.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.Details.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsFilteredBidsDetailsListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsFilteredBidsDetailsList
+    , BiddersFilterSetsFilteredBidsDetailsList
+
+    -- * Request Lenses
+    , bfsfbdlXgafv
+    , bfsfbdlUploadProtocol
+    , bfsfbdlFilterSetName
+    , bfsfbdlAccessToken
+    , bfsfbdlUploadType
+    , bfsfbdlCreativeStatusId
+    , bfsfbdlPageToken
+    , bfsfbdlPageSize
+    , bfsfbdlCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.filteredBids.details.list@ method which the
+-- 'BiddersFilterSetsFilteredBidsDetailsList' request conforms to.
+type BiddersFilterSetsFilteredBidsDetailsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "filteredBids" :>
+           Capture "creativeStatusId" (Textual Int32) :>
+             "details" :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON]
+                                 ListCreativeStatusBreakdownByDetailResponse
+
+-- | List all details associated with a specific reason for which bids were
+-- filtered, with the number of bids filtered for each detail.
+--
+-- /See:/ 'biddersFilterSetsFilteredBidsDetailsList' smart constructor.
+data BiddersFilterSetsFilteredBidsDetailsList = BiddersFilterSetsFilteredBidsDetailsList'
+    { _bfsfbdlXgafv            :: !(Maybe Xgafv)
+    , _bfsfbdlUploadProtocol   :: !(Maybe Text)
+    , _bfsfbdlFilterSetName    :: !Text
+    , _bfsfbdlAccessToken      :: !(Maybe Text)
+    , _bfsfbdlUploadType       :: !(Maybe Text)
+    , _bfsfbdlCreativeStatusId :: !(Textual Int32)
+    , _bfsfbdlPageToken        :: !(Maybe Text)
+    , _bfsfbdlPageSize         :: !(Maybe (Textual Int32))
+    , _bfsfbdlCallback         :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsFilteredBidsDetailsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsfbdlXgafv'
+--
+-- * 'bfsfbdlUploadProtocol'
+--
+-- * 'bfsfbdlFilterSetName'
+--
+-- * 'bfsfbdlAccessToken'
+--
+-- * 'bfsfbdlUploadType'
+--
+-- * 'bfsfbdlCreativeStatusId'
+--
+-- * 'bfsfbdlPageToken'
+--
+-- * 'bfsfbdlPageSize'
+--
+-- * 'bfsfbdlCallback'
+biddersFilterSetsFilteredBidsDetailsList
+    :: Text -- ^ 'bfsfbdlFilterSetName'
+    -> Int32 -- ^ 'bfsfbdlCreativeStatusId'
+    -> BiddersFilterSetsFilteredBidsDetailsList
+biddersFilterSetsFilteredBidsDetailsList pBfsfbdlFilterSetName_ pBfsfbdlCreativeStatusId_ =
+    BiddersFilterSetsFilteredBidsDetailsList'
+    { _bfsfbdlXgafv = Nothing
+    , _bfsfbdlUploadProtocol = Nothing
+    , _bfsfbdlFilterSetName = pBfsfbdlFilterSetName_
+    , _bfsfbdlAccessToken = Nothing
+    , _bfsfbdlUploadType = Nothing
+    , _bfsfbdlCreativeStatusId = _Coerce # pBfsfbdlCreativeStatusId_
+    , _bfsfbdlPageToken = Nothing
+    , _bfsfbdlPageSize = Nothing
+    , _bfsfbdlCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsfbdlXgafv :: Lens' BiddersFilterSetsFilteredBidsDetailsList (Maybe Xgafv)
+bfsfbdlXgafv
+  = lens _bfsfbdlXgafv (\ s a -> s{_bfsfbdlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsfbdlUploadProtocol :: Lens' BiddersFilterSetsFilteredBidsDetailsList (Maybe Text)
+bfsfbdlUploadProtocol
+  = lens _bfsfbdlUploadProtocol
+      (\ s a -> s{_bfsfbdlUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsfbdlFilterSetName :: Lens' BiddersFilterSetsFilteredBidsDetailsList Text
+bfsfbdlFilterSetName
+  = lens _bfsfbdlFilterSetName
+      (\ s a -> s{_bfsfbdlFilterSetName = a})
+
+-- | OAuth access token.
+bfsfbdlAccessToken :: Lens' BiddersFilterSetsFilteredBidsDetailsList (Maybe Text)
+bfsfbdlAccessToken
+  = lens _bfsfbdlAccessToken
+      (\ s a -> s{_bfsfbdlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsfbdlUploadType :: Lens' BiddersFilterSetsFilteredBidsDetailsList (Maybe Text)
+bfsfbdlUploadType
+  = lens _bfsfbdlUploadType
+      (\ s a -> s{_bfsfbdlUploadType = a})
+
+-- | The ID of the creative status for which to retrieve a breakdown by
+-- detail. See
+-- [creative-status-codes](https:\/\/developers.google.com\/authorized-buyers\/rtb\/downloads\/creative-status-codes).
+-- Details are only available for statuses 10, 14, 15, 17, 18, 19, 86, and
+-- 87.
+bfsfbdlCreativeStatusId :: Lens' BiddersFilterSetsFilteredBidsDetailsList Int32
+bfsfbdlCreativeStatusId
+  = lens _bfsfbdlCreativeStatusId
+      (\ s a -> s{_bfsfbdlCreativeStatusId = a})
+      . _Coerce
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListCreativeStatusBreakdownByDetailResponse.nextPageToken returned from
+-- the previous call to the filteredBids.details.list method.
+bfsfbdlPageToken :: Lens' BiddersFilterSetsFilteredBidsDetailsList (Maybe Text)
+bfsfbdlPageToken
+  = lens _bfsfbdlPageToken
+      (\ s a -> s{_bfsfbdlPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfsfbdlPageSize :: Lens' BiddersFilterSetsFilteredBidsDetailsList (Maybe Int32)
+bfsfbdlPageSize
+  = lens _bfsfbdlPageSize
+      (\ s a -> s{_bfsfbdlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfsfbdlCallback :: Lens' BiddersFilterSetsFilteredBidsDetailsList (Maybe Text)
+bfsfbdlCallback
+  = lens _bfsfbdlCallback
+      (\ s a -> s{_bfsfbdlCallback = a})
+
+instance GoogleRequest
+         BiddersFilterSetsFilteredBidsDetailsList where
+        type Rs BiddersFilterSetsFilteredBidsDetailsList =
+             ListCreativeStatusBreakdownByDetailResponse
+        type Scopes BiddersFilterSetsFilteredBidsDetailsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersFilterSetsFilteredBidsDetailsList'{..}
+          = go _bfsfbdlFilterSetName _bfsfbdlCreativeStatusId
+              _bfsfbdlXgafv
+              _bfsfbdlUploadProtocol
+              _bfsfbdlAccessToken
+              _bfsfbdlUploadType
+              _bfsfbdlPageToken
+              _bfsfbdlPageSize
+              _bfsfbdlCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersFilterSetsFilteredBidsDetailsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBids/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBids/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/FilteredBids/List.hs
@@ -0,0 +1,192 @@
+{-# 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.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all reasons for which bids were filtered, with the number of bids
+-- filtered for each reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.filteredBids.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsFilteredBidsListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsFilteredBidsList
+    , BiddersFilterSetsFilteredBidsList
+
+    -- * Request Lenses
+    , bfsfblXgafv
+    , bfsfblUploadProtocol
+    , bfsfblFilterSetName
+    , bfsfblAccessToken
+    , bfsfblUploadType
+    , bfsfblPageToken
+    , bfsfblPageSize
+    , bfsfblCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.filteredBids.list@ method which the
+-- 'BiddersFilterSetsFilteredBidsList' request conforms to.
+type BiddersFilterSetsFilteredBidsListResource =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "filteredBids" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListFilteredBidsResponse
+
+-- | List all reasons for which bids were filtered, with the number of bids
+-- filtered for each reason.
+--
+-- /See:/ 'biddersFilterSetsFilteredBidsList' smart constructor.
+data BiddersFilterSetsFilteredBidsList = BiddersFilterSetsFilteredBidsList'
+    { _bfsfblXgafv          :: !(Maybe Xgafv)
+    , _bfsfblUploadProtocol :: !(Maybe Text)
+    , _bfsfblFilterSetName  :: !Text
+    , _bfsfblAccessToken    :: !(Maybe Text)
+    , _bfsfblUploadType     :: !(Maybe Text)
+    , _bfsfblPageToken      :: !(Maybe Text)
+    , _bfsfblPageSize       :: !(Maybe (Textual Int32))
+    , _bfsfblCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsFilteredBidsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsfblXgafv'
+--
+-- * 'bfsfblUploadProtocol'
+--
+-- * 'bfsfblFilterSetName'
+--
+-- * 'bfsfblAccessToken'
+--
+-- * 'bfsfblUploadType'
+--
+-- * 'bfsfblPageToken'
+--
+-- * 'bfsfblPageSize'
+--
+-- * 'bfsfblCallback'
+biddersFilterSetsFilteredBidsList
+    :: Text -- ^ 'bfsfblFilterSetName'
+    -> BiddersFilterSetsFilteredBidsList
+biddersFilterSetsFilteredBidsList pBfsfblFilterSetName_ =
+    BiddersFilterSetsFilteredBidsList'
+    { _bfsfblXgafv = Nothing
+    , _bfsfblUploadProtocol = Nothing
+    , _bfsfblFilterSetName = pBfsfblFilterSetName_
+    , _bfsfblAccessToken = Nothing
+    , _bfsfblUploadType = Nothing
+    , _bfsfblPageToken = Nothing
+    , _bfsfblPageSize = Nothing
+    , _bfsfblCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsfblXgafv :: Lens' BiddersFilterSetsFilteredBidsList (Maybe Xgafv)
+bfsfblXgafv
+  = lens _bfsfblXgafv (\ s a -> s{_bfsfblXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsfblUploadProtocol :: Lens' BiddersFilterSetsFilteredBidsList (Maybe Text)
+bfsfblUploadProtocol
+  = lens _bfsfblUploadProtocol
+      (\ s a -> s{_bfsfblUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsfblFilterSetName :: Lens' BiddersFilterSetsFilteredBidsList Text
+bfsfblFilterSetName
+  = lens _bfsfblFilterSetName
+      (\ s a -> s{_bfsfblFilterSetName = a})
+
+-- | OAuth access token.
+bfsfblAccessToken :: Lens' BiddersFilterSetsFilteredBidsList (Maybe Text)
+bfsfblAccessToken
+  = lens _bfsfblAccessToken
+      (\ s a -> s{_bfsfblAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsfblUploadType :: Lens' BiddersFilterSetsFilteredBidsList (Maybe Text)
+bfsfblUploadType
+  = lens _bfsfblUploadType
+      (\ s a -> s{_bfsfblUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListFilteredBidsResponse.nextPageToken
+-- returned from the previous call to the filteredBids.list method.
+bfsfblPageToken :: Lens' BiddersFilterSetsFilteredBidsList (Maybe Text)
+bfsfblPageToken
+  = lens _bfsfblPageToken
+      (\ s a -> s{_bfsfblPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfsfblPageSize :: Lens' BiddersFilterSetsFilteredBidsList (Maybe Int32)
+bfsfblPageSize
+  = lens _bfsfblPageSize
+      (\ s a -> s{_bfsfblPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfsfblCallback :: Lens' BiddersFilterSetsFilteredBidsList (Maybe Text)
+bfsfblCallback
+  = lens _bfsfblCallback
+      (\ s a -> s{_bfsfblCallback = a})
+
+instance GoogleRequest
+         BiddersFilterSetsFilteredBidsList where
+        type Rs BiddersFilterSetsFilteredBidsList =
+             ListFilteredBidsResponse
+        type Scopes BiddersFilterSetsFilteredBidsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersFilterSetsFilteredBidsList'{..}
+          = go _bfsfblFilterSetName _bfsfblXgafv
+              _bfsfblUploadProtocol
+              _bfsfblAccessToken
+              _bfsfblUploadType
+              _bfsfblPageToken
+              _bfsfblPageSize
+              _bfsfblCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy BiddersFilterSetsFilteredBidsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/Get.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/Get.hs
@@ -0,0 +1,153 @@
+{-# 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.AdExchangeBuyer2.Bidders.FilterSets.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the requested filter set for the account with the given
+-- account ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.get@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Get
+    (
+    -- * REST Resource
+      BiddersFilterSetsGetResource
+
+    -- * Creating a Request
+    , biddersFilterSetsGet
+    , BiddersFilterSetsGet
+
+    -- * Request Lenses
+    , bfsgXgafv
+    , bfsgUploadProtocol
+    , bfsgAccessToken
+    , bfsgUploadType
+    , bfsgName
+    , bfsgCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.get@ method which the
+-- 'BiddersFilterSetsGet' request conforms to.
+type BiddersFilterSetsGetResource =
+     "v2beta1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] FilterSet
+
+-- | Retrieves the requested filter set for the account with the given
+-- account ID.
+--
+-- /See:/ 'biddersFilterSetsGet' smart constructor.
+data BiddersFilterSetsGet = BiddersFilterSetsGet'
+    { _bfsgXgafv          :: !(Maybe Xgafv)
+    , _bfsgUploadProtocol :: !(Maybe Text)
+    , _bfsgAccessToken    :: !(Maybe Text)
+    , _bfsgUploadType     :: !(Maybe Text)
+    , _bfsgName           :: !Text
+    , _bfsgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsgXgafv'
+--
+-- * 'bfsgUploadProtocol'
+--
+-- * 'bfsgAccessToken'
+--
+-- * 'bfsgUploadType'
+--
+-- * 'bfsgName'
+--
+-- * 'bfsgCallback'
+biddersFilterSetsGet
+    :: Text -- ^ 'bfsgName'
+    -> BiddersFilterSetsGet
+biddersFilterSetsGet pBfsgName_ =
+    BiddersFilterSetsGet'
+    { _bfsgXgafv = Nothing
+    , _bfsgUploadProtocol = Nothing
+    , _bfsgAccessToken = Nothing
+    , _bfsgUploadType = Nothing
+    , _bfsgName = pBfsgName_
+    , _bfsgCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsgXgafv :: Lens' BiddersFilterSetsGet (Maybe Xgafv)
+bfsgXgafv
+  = lens _bfsgXgafv (\ s a -> s{_bfsgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsgUploadProtocol :: Lens' BiddersFilterSetsGet (Maybe Text)
+bfsgUploadProtocol
+  = lens _bfsgUploadProtocol
+      (\ s a -> s{_bfsgUploadProtocol = a})
+
+-- | OAuth access token.
+bfsgAccessToken :: Lens' BiddersFilterSetsGet (Maybe Text)
+bfsgAccessToken
+  = lens _bfsgAccessToken
+      (\ s a -> s{_bfsgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsgUploadType :: Lens' BiddersFilterSetsGet (Maybe Text)
+bfsgUploadType
+  = lens _bfsgUploadType
+      (\ s a -> s{_bfsgUploadType = a})
+
+-- | Full name of the resource being requested. For example: - For a
+-- bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsgName :: Lens' BiddersFilterSetsGet Text
+bfsgName = lens _bfsgName (\ s a -> s{_bfsgName = a})
+
+-- | JSONP
+bfsgCallback :: Lens' BiddersFilterSetsGet (Maybe Text)
+bfsgCallback
+  = lens _bfsgCallback (\ s a -> s{_bfsgCallback = a})
+
+instance GoogleRequest BiddersFilterSetsGet where
+        type Rs BiddersFilterSetsGet = FilterSet
+        type Scopes BiddersFilterSetsGet =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersFilterSetsGet'{..}
+          = go _bfsgName _bfsgXgafv _bfsgUploadProtocol
+              _bfsgAccessToken
+              _bfsgUploadType
+              _bfsgCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy BiddersFilterSetsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/ImpressionMetrics/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/ImpressionMetrics/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/ImpressionMetrics/List.hs
@@ -0,0 +1,192 @@
+{-# 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.AdExchangeBuyer2.Bidders.FilterSets.ImpressionMetrics.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all metrics that are measured in terms of number of impressions.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.impressionMetrics.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.ImpressionMetrics.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsImpressionMetricsListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsImpressionMetricsList
+    , BiddersFilterSetsImpressionMetricsList
+
+    -- * Request Lenses
+    , bfsimlXgafv
+    , bfsimlUploadProtocol
+    , bfsimlFilterSetName
+    , bfsimlAccessToken
+    , bfsimlUploadType
+    , bfsimlPageToken
+    , bfsimlPageSize
+    , bfsimlCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.impressionMetrics.list@ method which the
+-- 'BiddersFilterSetsImpressionMetricsList' request conforms to.
+type BiddersFilterSetsImpressionMetricsListResource =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "impressionMetrics" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListImpressionMetricsResponse
+
+-- | Lists all metrics that are measured in terms of number of impressions.
+--
+-- /See:/ 'biddersFilterSetsImpressionMetricsList' smart constructor.
+data BiddersFilterSetsImpressionMetricsList = BiddersFilterSetsImpressionMetricsList'
+    { _bfsimlXgafv          :: !(Maybe Xgafv)
+    , _bfsimlUploadProtocol :: !(Maybe Text)
+    , _bfsimlFilterSetName  :: !Text
+    , _bfsimlAccessToken    :: !(Maybe Text)
+    , _bfsimlUploadType     :: !(Maybe Text)
+    , _bfsimlPageToken      :: !(Maybe Text)
+    , _bfsimlPageSize       :: !(Maybe (Textual Int32))
+    , _bfsimlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsImpressionMetricsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsimlXgafv'
+--
+-- * 'bfsimlUploadProtocol'
+--
+-- * 'bfsimlFilterSetName'
+--
+-- * 'bfsimlAccessToken'
+--
+-- * 'bfsimlUploadType'
+--
+-- * 'bfsimlPageToken'
+--
+-- * 'bfsimlPageSize'
+--
+-- * 'bfsimlCallback'
+biddersFilterSetsImpressionMetricsList
+    :: Text -- ^ 'bfsimlFilterSetName'
+    -> BiddersFilterSetsImpressionMetricsList
+biddersFilterSetsImpressionMetricsList pBfsimlFilterSetName_ =
+    BiddersFilterSetsImpressionMetricsList'
+    { _bfsimlXgafv = Nothing
+    , _bfsimlUploadProtocol = Nothing
+    , _bfsimlFilterSetName = pBfsimlFilterSetName_
+    , _bfsimlAccessToken = Nothing
+    , _bfsimlUploadType = Nothing
+    , _bfsimlPageToken = Nothing
+    , _bfsimlPageSize = Nothing
+    , _bfsimlCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsimlXgafv :: Lens' BiddersFilterSetsImpressionMetricsList (Maybe Xgafv)
+bfsimlXgafv
+  = lens _bfsimlXgafv (\ s a -> s{_bfsimlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsimlUploadProtocol :: Lens' BiddersFilterSetsImpressionMetricsList (Maybe Text)
+bfsimlUploadProtocol
+  = lens _bfsimlUploadProtocol
+      (\ s a -> s{_bfsimlUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsimlFilterSetName :: Lens' BiddersFilterSetsImpressionMetricsList Text
+bfsimlFilterSetName
+  = lens _bfsimlFilterSetName
+      (\ s a -> s{_bfsimlFilterSetName = a})
+
+-- | OAuth access token.
+bfsimlAccessToken :: Lens' BiddersFilterSetsImpressionMetricsList (Maybe Text)
+bfsimlAccessToken
+  = lens _bfsimlAccessToken
+      (\ s a -> s{_bfsimlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsimlUploadType :: Lens' BiddersFilterSetsImpressionMetricsList (Maybe Text)
+bfsimlUploadType
+  = lens _bfsimlUploadType
+      (\ s a -> s{_bfsimlUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListImpressionMetricsResponse.nextPageToken returned from the previous
+-- call to the impressionMetrics.list method.
+bfsimlPageToken :: Lens' BiddersFilterSetsImpressionMetricsList (Maybe Text)
+bfsimlPageToken
+  = lens _bfsimlPageToken
+      (\ s a -> s{_bfsimlPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfsimlPageSize :: Lens' BiddersFilterSetsImpressionMetricsList (Maybe Int32)
+bfsimlPageSize
+  = lens _bfsimlPageSize
+      (\ s a -> s{_bfsimlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfsimlCallback :: Lens' BiddersFilterSetsImpressionMetricsList (Maybe Text)
+bfsimlCallback
+  = lens _bfsimlCallback
+      (\ s a -> s{_bfsimlCallback = a})
+
+instance GoogleRequest
+         BiddersFilterSetsImpressionMetricsList where
+        type Rs BiddersFilterSetsImpressionMetricsList =
+             ListImpressionMetricsResponse
+        type Scopes BiddersFilterSetsImpressionMetricsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersFilterSetsImpressionMetricsList'{..}
+          = go _bfsimlFilterSetName _bfsimlXgafv
+              _bfsimlUploadProtocol
+              _bfsimlAccessToken
+              _bfsimlUploadType
+              _bfsimlPageToken
+              _bfsimlPageSize
+              _bfsimlCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy BiddersFilterSetsImpressionMetricsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/List.hs
@@ -0,0 +1,184 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all filter sets for the account with the given account ID.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsList
+    , BiddersFilterSetsList
+
+    -- * Request Lenses
+    , bfslXgafv
+    , bfslUploadProtocol
+    , bfslAccessToken
+    , bfslUploadType
+    , bfslOwnerName
+    , bfslPageToken
+    , bfslPageSize
+    , bfslCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.list@ method which the
+-- 'BiddersFilterSetsList' request conforms to.
+type BiddersFilterSetsListResource =
+     "v2beta1" :>
+       Capture "ownerName" Text :>
+         "filterSets" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListFilterSetsResponse
+
+-- | Lists all filter sets for the account with the given account ID.
+--
+-- /See:/ 'biddersFilterSetsList' smart constructor.
+data BiddersFilterSetsList = BiddersFilterSetsList'
+    { _bfslXgafv          :: !(Maybe Xgafv)
+    , _bfslUploadProtocol :: !(Maybe Text)
+    , _bfslAccessToken    :: !(Maybe Text)
+    , _bfslUploadType     :: !(Maybe Text)
+    , _bfslOwnerName      :: !Text
+    , _bfslPageToken      :: !(Maybe Text)
+    , _bfslPageSize       :: !(Maybe (Textual Int32))
+    , _bfslCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfslXgafv'
+--
+-- * 'bfslUploadProtocol'
+--
+-- * 'bfslAccessToken'
+--
+-- * 'bfslUploadType'
+--
+-- * 'bfslOwnerName'
+--
+-- * 'bfslPageToken'
+--
+-- * 'bfslPageSize'
+--
+-- * 'bfslCallback'
+biddersFilterSetsList
+    :: Text -- ^ 'bfslOwnerName'
+    -> BiddersFilterSetsList
+biddersFilterSetsList pBfslOwnerName_ =
+    BiddersFilterSetsList'
+    { _bfslXgafv = Nothing
+    , _bfslUploadProtocol = Nothing
+    , _bfslAccessToken = Nothing
+    , _bfslUploadType = Nothing
+    , _bfslOwnerName = pBfslOwnerName_
+    , _bfslPageToken = Nothing
+    , _bfslPageSize = Nothing
+    , _bfslCallback = Nothing
+    }
+
+-- | V1 error format.
+bfslXgafv :: Lens' BiddersFilterSetsList (Maybe Xgafv)
+bfslXgafv
+  = lens _bfslXgafv (\ s a -> s{_bfslXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfslUploadProtocol :: Lens' BiddersFilterSetsList (Maybe Text)
+bfslUploadProtocol
+  = lens _bfslUploadProtocol
+      (\ s a -> s{_bfslUploadProtocol = a})
+
+-- | OAuth access token.
+bfslAccessToken :: Lens' BiddersFilterSetsList (Maybe Text)
+bfslAccessToken
+  = lens _bfslAccessToken
+      (\ s a -> s{_bfslAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfslUploadType :: Lens' BiddersFilterSetsList (Maybe Text)
+bfslUploadType
+  = lens _bfslUploadType
+      (\ s a -> s{_bfslUploadType = a})
+
+-- | Name of the owner (bidder or account) of the filter sets to be listed.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\` - For an account-level filter set for the buyer account
+-- representing bidder 123: \`bidders\/123\/accounts\/123\` - For an
+-- account-level filter set for the child seat buyer account 456 whose
+-- bidder is 123: \`bidders\/123\/accounts\/456\`
+bfslOwnerName :: Lens' BiddersFilterSetsList Text
+bfslOwnerName
+  = lens _bfslOwnerName
+      (\ s a -> s{_bfslOwnerName = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListFilterSetsResponse.nextPageToken
+-- returned from the previous call to the accounts.filterSets.list method.
+bfslPageToken :: Lens' BiddersFilterSetsList (Maybe Text)
+bfslPageToken
+  = lens _bfslPageToken
+      (\ s a -> s{_bfslPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfslPageSize :: Lens' BiddersFilterSetsList (Maybe Int32)
+bfslPageSize
+  = lens _bfslPageSize (\ s a -> s{_bfslPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfslCallback :: Lens' BiddersFilterSetsList (Maybe Text)
+bfslCallback
+  = lens _bfslCallback (\ s a -> s{_bfslCallback = a})
+
+instance GoogleRequest BiddersFilterSetsList where
+        type Rs BiddersFilterSetsList =
+             ListFilterSetsResponse
+        type Scopes BiddersFilterSetsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersFilterSetsList'{..}
+          = go _bfslOwnerName _bfslXgafv _bfslUploadProtocol
+              _bfslAccessToken
+              _bfslUploadType
+              _bfslPageToken
+              _bfslPageSize
+              _bfslCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy :: Proxy BiddersFilterSetsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/LosingBids/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/LosingBids/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/LosingBids/List.hs
@@ -0,0 +1,192 @@
+{-# 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.AdExchangeBuyer2.Bidders.FilterSets.LosingBids.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all reasons for which bids lost in the auction, with the number of
+-- bids that lost for each reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.losingBids.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.LosingBids.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsLosingBidsListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsLosingBidsList
+    , BiddersFilterSetsLosingBidsList
+
+    -- * Request Lenses
+    , bfslblXgafv
+    , bfslblUploadProtocol
+    , bfslblFilterSetName
+    , bfslblAccessToken
+    , bfslblUploadType
+    , bfslblPageToken
+    , bfslblPageSize
+    , bfslblCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.losingBids.list@ method which the
+-- 'BiddersFilterSetsLosingBidsList' request conforms to.
+type BiddersFilterSetsLosingBidsListResource =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "losingBids" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListLosingBidsResponse
+
+-- | List all reasons for which bids lost in the auction, with the number of
+-- bids that lost for each reason.
+--
+-- /See:/ 'biddersFilterSetsLosingBidsList' smart constructor.
+data BiddersFilterSetsLosingBidsList = BiddersFilterSetsLosingBidsList'
+    { _bfslblXgafv          :: !(Maybe Xgafv)
+    , _bfslblUploadProtocol :: !(Maybe Text)
+    , _bfslblFilterSetName  :: !Text
+    , _bfslblAccessToken    :: !(Maybe Text)
+    , _bfslblUploadType     :: !(Maybe Text)
+    , _bfslblPageToken      :: !(Maybe Text)
+    , _bfslblPageSize       :: !(Maybe (Textual Int32))
+    , _bfslblCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsLosingBidsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfslblXgafv'
+--
+-- * 'bfslblUploadProtocol'
+--
+-- * 'bfslblFilterSetName'
+--
+-- * 'bfslblAccessToken'
+--
+-- * 'bfslblUploadType'
+--
+-- * 'bfslblPageToken'
+--
+-- * 'bfslblPageSize'
+--
+-- * 'bfslblCallback'
+biddersFilterSetsLosingBidsList
+    :: Text -- ^ 'bfslblFilterSetName'
+    -> BiddersFilterSetsLosingBidsList
+biddersFilterSetsLosingBidsList pBfslblFilterSetName_ =
+    BiddersFilterSetsLosingBidsList'
+    { _bfslblXgafv = Nothing
+    , _bfslblUploadProtocol = Nothing
+    , _bfslblFilterSetName = pBfslblFilterSetName_
+    , _bfslblAccessToken = Nothing
+    , _bfslblUploadType = Nothing
+    , _bfslblPageToken = Nothing
+    , _bfslblPageSize = Nothing
+    , _bfslblCallback = Nothing
+    }
+
+-- | V1 error format.
+bfslblXgafv :: Lens' BiddersFilterSetsLosingBidsList (Maybe Xgafv)
+bfslblXgafv
+  = lens _bfslblXgafv (\ s a -> s{_bfslblXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfslblUploadProtocol :: Lens' BiddersFilterSetsLosingBidsList (Maybe Text)
+bfslblUploadProtocol
+  = lens _bfslblUploadProtocol
+      (\ s a -> s{_bfslblUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfslblFilterSetName :: Lens' BiddersFilterSetsLosingBidsList Text
+bfslblFilterSetName
+  = lens _bfslblFilterSetName
+      (\ s a -> s{_bfslblFilterSetName = a})
+
+-- | OAuth access token.
+bfslblAccessToken :: Lens' BiddersFilterSetsLosingBidsList (Maybe Text)
+bfslblAccessToken
+  = lens _bfslblAccessToken
+      (\ s a -> s{_bfslblAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfslblUploadType :: Lens' BiddersFilterSetsLosingBidsList (Maybe Text)
+bfslblUploadType
+  = lens _bfslblUploadType
+      (\ s a -> s{_bfslblUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of ListLosingBidsResponse.nextPageToken
+-- returned from the previous call to the losingBids.list method.
+bfslblPageToken :: Lens' BiddersFilterSetsLosingBidsList (Maybe Text)
+bfslblPageToken
+  = lens _bfslblPageToken
+      (\ s a -> s{_bfslblPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfslblPageSize :: Lens' BiddersFilterSetsLosingBidsList (Maybe Int32)
+bfslblPageSize
+  = lens _bfslblPageSize
+      (\ s a -> s{_bfslblPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfslblCallback :: Lens' BiddersFilterSetsLosingBidsList (Maybe Text)
+bfslblCallback
+  = lens _bfslblCallback
+      (\ s a -> s{_bfslblCallback = a})
+
+instance GoogleRequest
+         BiddersFilterSetsLosingBidsList where
+        type Rs BiddersFilterSetsLosingBidsList =
+             ListLosingBidsResponse
+        type Scopes BiddersFilterSetsLosingBidsList =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient BiddersFilterSetsLosingBidsList'{..}
+          = go _bfslblFilterSetName _bfslblXgafv
+              _bfslblUploadProtocol
+              _bfslblAccessToken
+              _bfslblUploadType
+              _bfslblPageToken
+              _bfslblPageSize
+              _bfslblCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy BiddersFilterSetsLosingBidsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/NonBillableWinningBids/List.hs b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/NonBillableWinningBids/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AdExchangeBuyer2/Bidders/FilterSets/NonBillableWinningBids/List.hs
@@ -0,0 +1,199 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.NonBillableWinningBids.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all reasons for which winning bids were not billable, with the
+-- number of bids not billed for each reason.
+--
+-- /See:/ <https://developers.google.com/authorized-buyers/apis/reference/rest/ Ad Exchange Buyer API II Reference> for @adexchangebuyer2.bidders.filterSets.nonBillableWinningBids.list@.
+module Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.NonBillableWinningBids.List
+    (
+    -- * REST Resource
+      BiddersFilterSetsNonBillableWinningBidsListResource
+
+    -- * Creating a Request
+    , biddersFilterSetsNonBillableWinningBidsList
+    , BiddersFilterSetsNonBillableWinningBidsList
+
+    -- * Request Lenses
+    , bfsnbwblXgafv
+    , bfsnbwblUploadProtocol
+    , bfsnbwblFilterSetName
+    , bfsnbwblAccessToken
+    , bfsnbwblUploadType
+    , bfsnbwblPageToken
+    , bfsnbwblPageSize
+    , bfsnbwblCallback
+    ) where
+
+import           Network.Google.AdExchangeBuyer2.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @adexchangebuyer2.bidders.filterSets.nonBillableWinningBids.list@ method which the
+-- 'BiddersFilterSetsNonBillableWinningBidsList' request conforms to.
+type BiddersFilterSetsNonBillableWinningBidsListResource
+     =
+     "v2beta1" :>
+       Capture "filterSetName" Text :>
+         "nonBillableWinningBids" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListNonBillableWinningBidsResponse
+
+-- | List all reasons for which winning bids were not billable, with the
+-- number of bids not billed for each reason.
+--
+-- /See:/ 'biddersFilterSetsNonBillableWinningBidsList' smart constructor.
+data BiddersFilterSetsNonBillableWinningBidsList = BiddersFilterSetsNonBillableWinningBidsList'
+    { _bfsnbwblXgafv          :: !(Maybe Xgafv)
+    , _bfsnbwblUploadProtocol :: !(Maybe Text)
+    , _bfsnbwblFilterSetName  :: !Text
+    , _bfsnbwblAccessToken    :: !(Maybe Text)
+    , _bfsnbwblUploadType     :: !(Maybe Text)
+    , _bfsnbwblPageToken      :: !(Maybe Text)
+    , _bfsnbwblPageSize       :: !(Maybe (Textual Int32))
+    , _bfsnbwblCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BiddersFilterSetsNonBillableWinningBidsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bfsnbwblXgafv'
+--
+-- * 'bfsnbwblUploadProtocol'
+--
+-- * 'bfsnbwblFilterSetName'
+--
+-- * 'bfsnbwblAccessToken'
+--
+-- * 'bfsnbwblUploadType'
+--
+-- * 'bfsnbwblPageToken'
+--
+-- * 'bfsnbwblPageSize'
+--
+-- * 'bfsnbwblCallback'
+biddersFilterSetsNonBillableWinningBidsList
+    :: Text -- ^ 'bfsnbwblFilterSetName'
+    -> BiddersFilterSetsNonBillableWinningBidsList
+biddersFilterSetsNonBillableWinningBidsList pBfsnbwblFilterSetName_ =
+    BiddersFilterSetsNonBillableWinningBidsList'
+    { _bfsnbwblXgafv = Nothing
+    , _bfsnbwblUploadProtocol = Nothing
+    , _bfsnbwblFilterSetName = pBfsnbwblFilterSetName_
+    , _bfsnbwblAccessToken = Nothing
+    , _bfsnbwblUploadType = Nothing
+    , _bfsnbwblPageToken = Nothing
+    , _bfsnbwblPageSize = Nothing
+    , _bfsnbwblCallback = Nothing
+    }
+
+-- | V1 error format.
+bfsnbwblXgafv :: Lens' BiddersFilterSetsNonBillableWinningBidsList (Maybe Xgafv)
+bfsnbwblXgafv
+  = lens _bfsnbwblXgafv
+      (\ s a -> s{_bfsnbwblXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+bfsnbwblUploadProtocol :: Lens' BiddersFilterSetsNonBillableWinningBidsList (Maybe Text)
+bfsnbwblUploadProtocol
+  = lens _bfsnbwblUploadProtocol
+      (\ s a -> s{_bfsnbwblUploadProtocol = a})
+
+-- | Name of the filter set that should be applied to the requested metrics.
+-- For example: - For a bidder-level filter set for bidder 123:
+-- \`bidders\/123\/filterSets\/abc\` - For an account-level filter set for
+-- the buyer account representing bidder 123:
+-- \`bidders\/123\/accounts\/123\/filterSets\/abc\` - For an account-level
+-- filter set for the child seat buyer account 456 whose bidder is 123:
+-- \`bidders\/123\/accounts\/456\/filterSets\/abc\`
+bfsnbwblFilterSetName :: Lens' BiddersFilterSetsNonBillableWinningBidsList Text
+bfsnbwblFilterSetName
+  = lens _bfsnbwblFilterSetName
+      (\ s a -> s{_bfsnbwblFilterSetName = a})
+
+-- | OAuth access token.
+bfsnbwblAccessToken :: Lens' BiddersFilterSetsNonBillableWinningBidsList (Maybe Text)
+bfsnbwblAccessToken
+  = lens _bfsnbwblAccessToken
+      (\ s a -> s{_bfsnbwblAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+bfsnbwblUploadType :: Lens' BiddersFilterSetsNonBillableWinningBidsList (Maybe Text)
+bfsnbwblUploadType
+  = lens _bfsnbwblUploadType
+      (\ s a -> s{_bfsnbwblUploadType = a})
+
+-- | A token identifying a page of results the server should return.
+-- Typically, this is the value of
+-- ListNonBillableWinningBidsResponse.nextPageToken returned from the
+-- previous call to the nonBillableWinningBids.list method.
+bfsnbwblPageToken :: Lens' BiddersFilterSetsNonBillableWinningBidsList (Maybe Text)
+bfsnbwblPageToken
+  = lens _bfsnbwblPageToken
+      (\ s a -> s{_bfsnbwblPageToken = a})
+
+-- | Requested page size. The server may return fewer results than requested.
+-- If unspecified, the server will pick an appropriate default.
+bfsnbwblPageSize :: Lens' BiddersFilterSetsNonBillableWinningBidsList (Maybe Int32)
+bfsnbwblPageSize
+  = lens _bfsnbwblPageSize
+      (\ s a -> s{_bfsnbwblPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+bfsnbwblCallback :: Lens' BiddersFilterSetsNonBillableWinningBidsList (Maybe Text)
+bfsnbwblCallback
+  = lens _bfsnbwblCallback
+      (\ s a -> s{_bfsnbwblCallback = a})
+
+instance GoogleRequest
+         BiddersFilterSetsNonBillableWinningBidsList where
+        type Rs BiddersFilterSetsNonBillableWinningBidsList =
+             ListNonBillableWinningBidsResponse
+        type Scopes
+               BiddersFilterSetsNonBillableWinningBidsList
+             =
+             '["https://www.googleapis.com/auth/adexchange.buyer"]
+        requestClient
+          BiddersFilterSetsNonBillableWinningBidsList'{..}
+          = go _bfsnbwblFilterSetName _bfsnbwblXgafv
+              _bfsnbwblUploadProtocol
+              _bfsnbwblAccessToken
+              _bfsnbwblUploadType
+              _bfsnbwblPageToken
+              _bfsnbwblPageSize
+              _bfsnbwblCallback
+              (Just AltJSON)
+              adExchangeBuyer2Service
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy
+                           BiddersFilterSetsNonBillableWinningBidsListResource)
+                      mempty
diff --git a/gogol-adexchangebuyer2.cabal b/gogol-adexchangebuyer2.cabal
new file mode 100644
--- /dev/null
+++ b/gogol-adexchangebuyer2.cabal
@@ -0,0 +1,110 @@
+name:                  gogol-adexchangebuyer2
+version:               0.4.0
+synopsis:              Google Ad Exchange Buyer API II SDK.
+homepage:              https://github.com/brendanhay/gogol
+bug-reports:           https://github.com/brendanhay/gogol/issues
+license:               OtherLicense
+license-file:          LICENSE
+author:                Brendan Hay
+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
+copyright:             Copyright (c) 2015-2016 Brendan Hay
+category:              Network, Google, Cloud
+build-type:            Simple
+cabal-version:         >= 1.10
+extra-source-files:    README.md src/.gitkeep
+
+description:
+    Accesses the latest features for managing Authorized Buyers accounts,
+    Real-Time Bidding configurations and auction metrics, and Marketplace
+    programmatic deals.
+    .
+    /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 @v2beta1@
+    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.AdExchangeBuyer2
+        , Network.Google.AdExchangeBuyer2.Types
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Create
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Get
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.Create
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.Get
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Invitations.List
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.List
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Update
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.Get
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.List
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Clients.Users.Update
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Create
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.Add
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.List
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.DealAssociations.Remove
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Get
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.List
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.StopWatching
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Update
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Creatives.Watch
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.FinalizedProposals.List
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Products.Get
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Products.List
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Accept
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.AddNote
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.CancelNegotiation
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.CompleteSetup
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Create
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Get
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.List
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Pause
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Resume
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.Proposals.Update
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.PublisherProFiles.Get
+        , Network.Google.Resource.AdExchangeBuyer2.Accounts.PublisherProFiles.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.Creatives.Delete
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidMetrics.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidResponseErrors.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.BidResponsesWithoutBids.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Create
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Delete
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBidRequests.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.Creatives.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.Details.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.FilteredBids.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.Get
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.ImpressionMetrics.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.LosingBids.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.Accounts.FilterSets.NonBillableWinningBids.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidMetrics.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidResponseErrors.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.BidResponsesWithoutBids.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Create
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Delete
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBidRequests.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.Creatives.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.Details.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.FilteredBids.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.Get
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.ImpressionMetrics.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.LosingBids.List
+        , Network.Google.Resource.AdExchangeBuyer2.Bidders.FilterSets.NonBillableWinningBids.List
+
+    other-modules:
+          Network.Google.AdExchangeBuyer2.Types.Product
+        , Network.Google.AdExchangeBuyer2.Types.Sum
+
+    build-depends:
+          gogol-core == 0.4.0.*
+        , base       >= 4.7 && < 5
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
