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-dfareporting
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.0.1`
+
+
+## Description
+
+A client library for the Google DCM/DFA Reporting And Trafficking.
+
+
+## Contribute
+
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+
+> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+
+
+## Licence
+
+`gogol-dfareporting` 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/DFAReporting.hs b/gen/Network/Google/DFAReporting.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DFAReporting.hs
@@ -0,0 +1,3498 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module      : Network.Google.DFAReporting
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Manage your DoubleClick Campaign Manager ad campaigns and reports.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference>
+module Network.Google.DFAReporting
+    (
+    -- * Service Configuration
+      dFAReportingService
+
+    -- * API Declaration
+    , DFAReportingAPI
+
+    -- * Resources
+
+    -- ** dfareporting.accountActiveAdSummaries.get
+    , module Network.Google.Resource.DFAReporting.AccountActiveAdSummaries.Get
+
+    -- ** dfareporting.accountPermissionGroups.get
+    , module Network.Google.Resource.DFAReporting.AccountPermissionGroups.Get
+
+    -- ** dfareporting.accountPermissionGroups.list
+    , module Network.Google.Resource.DFAReporting.AccountPermissionGroups.List
+
+    -- ** dfareporting.accountPermissions.get
+    , module Network.Google.Resource.DFAReporting.AccountPermissions.Get
+
+    -- ** dfareporting.accountPermissions.list
+    , module Network.Google.Resource.DFAReporting.AccountPermissions.List
+
+    -- ** dfareporting.accountUserProfiles.get
+    , module Network.Google.Resource.DFAReporting.AccountUserProFiles.Get
+
+    -- ** dfareporting.accountUserProfiles.insert
+    , module Network.Google.Resource.DFAReporting.AccountUserProFiles.Insert
+
+    -- ** dfareporting.accountUserProfiles.list
+    , module Network.Google.Resource.DFAReporting.AccountUserProFiles.List
+
+    -- ** dfareporting.accountUserProfiles.patch
+    , module Network.Google.Resource.DFAReporting.AccountUserProFiles.Patch
+
+    -- ** dfareporting.accountUserProfiles.update
+    , module Network.Google.Resource.DFAReporting.AccountUserProFiles.Update
+
+    -- ** dfareporting.accounts.get
+    , module Network.Google.Resource.DFAReporting.Accounts.Get
+
+    -- ** dfareporting.accounts.list
+    , module Network.Google.Resource.DFAReporting.Accounts.List
+
+    -- ** dfareporting.accounts.patch
+    , module Network.Google.Resource.DFAReporting.Accounts.Patch
+
+    -- ** dfareporting.accounts.update
+    , module Network.Google.Resource.DFAReporting.Accounts.Update
+
+    -- ** dfareporting.ads.get
+    , module Network.Google.Resource.DFAReporting.Ads.Get
+
+    -- ** dfareporting.ads.insert
+    , module Network.Google.Resource.DFAReporting.Ads.Insert
+
+    -- ** dfareporting.ads.list
+    , module Network.Google.Resource.DFAReporting.Ads.List
+
+    -- ** dfareporting.ads.patch
+    , module Network.Google.Resource.DFAReporting.Ads.Patch
+
+    -- ** dfareporting.ads.update
+    , module Network.Google.Resource.DFAReporting.Ads.Update
+
+    -- ** dfareporting.advertiserGroups.delete
+    , module Network.Google.Resource.DFAReporting.AdvertiserGroups.Delete
+
+    -- ** dfareporting.advertiserGroups.get
+    , module Network.Google.Resource.DFAReporting.AdvertiserGroups.Get
+
+    -- ** dfareporting.advertiserGroups.insert
+    , module Network.Google.Resource.DFAReporting.AdvertiserGroups.Insert
+
+    -- ** dfareporting.advertiserGroups.list
+    , module Network.Google.Resource.DFAReporting.AdvertiserGroups.List
+
+    -- ** dfareporting.advertiserGroups.patch
+    , module Network.Google.Resource.DFAReporting.AdvertiserGroups.Patch
+
+    -- ** dfareporting.advertiserGroups.update
+    , module Network.Google.Resource.DFAReporting.AdvertiserGroups.Update
+
+    -- ** dfareporting.advertisers.get
+    , module Network.Google.Resource.DFAReporting.Advertisers.Get
+
+    -- ** dfareporting.advertisers.insert
+    , module Network.Google.Resource.DFAReporting.Advertisers.Insert
+
+    -- ** dfareporting.advertisers.list
+    , module Network.Google.Resource.DFAReporting.Advertisers.List
+
+    -- ** dfareporting.advertisers.patch
+    , module Network.Google.Resource.DFAReporting.Advertisers.Patch
+
+    -- ** dfareporting.advertisers.update
+    , module Network.Google.Resource.DFAReporting.Advertisers.Update
+
+    -- ** dfareporting.browsers.list
+    , module Network.Google.Resource.DFAReporting.Browsers.List
+
+    -- ** dfareporting.campaignCreativeAssociations.insert
+    , module Network.Google.Resource.DFAReporting.CampaignCreativeAssociations.Insert
+
+    -- ** dfareporting.campaignCreativeAssociations.list
+    , module Network.Google.Resource.DFAReporting.CampaignCreativeAssociations.List
+
+    -- ** dfareporting.campaigns.get
+    , module Network.Google.Resource.DFAReporting.Campaigns.Get
+
+    -- ** dfareporting.campaigns.insert
+    , module Network.Google.Resource.DFAReporting.Campaigns.Insert
+
+    -- ** dfareporting.campaigns.list
+    , module Network.Google.Resource.DFAReporting.Campaigns.List
+
+    -- ** dfareporting.campaigns.patch
+    , module Network.Google.Resource.DFAReporting.Campaigns.Patch
+
+    -- ** dfareporting.campaigns.update
+    , module Network.Google.Resource.DFAReporting.Campaigns.Update
+
+    -- ** dfareporting.changeLogs.get
+    , module Network.Google.Resource.DFAReporting.ChangeLogs.Get
+
+    -- ** dfareporting.changeLogs.list
+    , module Network.Google.Resource.DFAReporting.ChangeLogs.List
+
+    -- ** dfareporting.cities.list
+    , module Network.Google.Resource.DFAReporting.Cities.List
+
+    -- ** dfareporting.connectionTypes.get
+    , module Network.Google.Resource.DFAReporting.ConnectionTypes.Get
+
+    -- ** dfareporting.connectionTypes.list
+    , module Network.Google.Resource.DFAReporting.ConnectionTypes.List
+
+    -- ** dfareporting.contentCategories.delete
+    , module Network.Google.Resource.DFAReporting.ContentCategories.Delete
+
+    -- ** dfareporting.contentCategories.get
+    , module Network.Google.Resource.DFAReporting.ContentCategories.Get
+
+    -- ** dfareporting.contentCategories.insert
+    , module Network.Google.Resource.DFAReporting.ContentCategories.Insert
+
+    -- ** dfareporting.contentCategories.list
+    , module Network.Google.Resource.DFAReporting.ContentCategories.List
+
+    -- ** dfareporting.contentCategories.patch
+    , module Network.Google.Resource.DFAReporting.ContentCategories.Patch
+
+    -- ** dfareporting.contentCategories.update
+    , module Network.Google.Resource.DFAReporting.ContentCategories.Update
+
+    -- ** dfareporting.countries.get
+    , module Network.Google.Resource.DFAReporting.Countries.Get
+
+    -- ** dfareporting.countries.list
+    , module Network.Google.Resource.DFAReporting.Countries.List
+
+    -- ** dfareporting.creativeAssets.insert
+    , module Network.Google.Resource.DFAReporting.CreativeAssets.Insert
+
+    -- ** dfareporting.creativeFieldValues.delete
+    , module Network.Google.Resource.DFAReporting.CreativeFieldValues.Delete
+
+    -- ** dfareporting.creativeFieldValues.get
+    , module Network.Google.Resource.DFAReporting.CreativeFieldValues.Get
+
+    -- ** dfareporting.creativeFieldValues.insert
+    , module Network.Google.Resource.DFAReporting.CreativeFieldValues.Insert
+
+    -- ** dfareporting.creativeFieldValues.list
+    , module Network.Google.Resource.DFAReporting.CreativeFieldValues.List
+
+    -- ** dfareporting.creativeFieldValues.patch
+    , module Network.Google.Resource.DFAReporting.CreativeFieldValues.Patch
+
+    -- ** dfareporting.creativeFieldValues.update
+    , module Network.Google.Resource.DFAReporting.CreativeFieldValues.Update
+
+    -- ** dfareporting.creativeFields.delete
+    , module Network.Google.Resource.DFAReporting.CreativeFields.Delete
+
+    -- ** dfareporting.creativeFields.get
+    , module Network.Google.Resource.DFAReporting.CreativeFields.Get
+
+    -- ** dfareporting.creativeFields.insert
+    , module Network.Google.Resource.DFAReporting.CreativeFields.Insert
+
+    -- ** dfareporting.creativeFields.list
+    , module Network.Google.Resource.DFAReporting.CreativeFields.List
+
+    -- ** dfareporting.creativeFields.patch
+    , module Network.Google.Resource.DFAReporting.CreativeFields.Patch
+
+    -- ** dfareporting.creativeFields.update
+    , module Network.Google.Resource.DFAReporting.CreativeFields.Update
+
+    -- ** dfareporting.creativeGroups.get
+    , module Network.Google.Resource.DFAReporting.CreativeGroups.Get
+
+    -- ** dfareporting.creativeGroups.insert
+    , module Network.Google.Resource.DFAReporting.CreativeGroups.Insert
+
+    -- ** dfareporting.creativeGroups.list
+    , module Network.Google.Resource.DFAReporting.CreativeGroups.List
+
+    -- ** dfareporting.creativeGroups.patch
+    , module Network.Google.Resource.DFAReporting.CreativeGroups.Patch
+
+    -- ** dfareporting.creativeGroups.update
+    , module Network.Google.Resource.DFAReporting.CreativeGroups.Update
+
+    -- ** dfareporting.creatives.get
+    , module Network.Google.Resource.DFAReporting.Creatives.Get
+
+    -- ** dfareporting.creatives.insert
+    , module Network.Google.Resource.DFAReporting.Creatives.Insert
+
+    -- ** dfareporting.creatives.list
+    , module Network.Google.Resource.DFAReporting.Creatives.List
+
+    -- ** dfareporting.creatives.patch
+    , module Network.Google.Resource.DFAReporting.Creatives.Patch
+
+    -- ** dfareporting.creatives.update
+    , module Network.Google.Resource.DFAReporting.Creatives.Update
+
+    -- ** dfareporting.dimensionValues.query
+    , module Network.Google.Resource.DFAReporting.DimensionValues.Query
+
+    -- ** dfareporting.directorySiteContacts.get
+    , module Network.Google.Resource.DFAReporting.DirectorySiteContacts.Get
+
+    -- ** dfareporting.directorySiteContacts.list
+    , module Network.Google.Resource.DFAReporting.DirectorySiteContacts.List
+
+    -- ** dfareporting.directorySites.get
+    , module Network.Google.Resource.DFAReporting.DirectorySites.Get
+
+    -- ** dfareporting.directorySites.insert
+    , module Network.Google.Resource.DFAReporting.DirectorySites.Insert
+
+    -- ** dfareporting.directorySites.list
+    , module Network.Google.Resource.DFAReporting.DirectorySites.List
+
+    -- ** dfareporting.eventTags.delete
+    , module Network.Google.Resource.DFAReporting.EventTags.Delete
+
+    -- ** dfareporting.eventTags.get
+    , module Network.Google.Resource.DFAReporting.EventTags.Get
+
+    -- ** dfareporting.eventTags.insert
+    , module Network.Google.Resource.DFAReporting.EventTags.Insert
+
+    -- ** dfareporting.eventTags.list
+    , module Network.Google.Resource.DFAReporting.EventTags.List
+
+    -- ** dfareporting.eventTags.patch
+    , module Network.Google.Resource.DFAReporting.EventTags.Patch
+
+    -- ** dfareporting.eventTags.update
+    , module Network.Google.Resource.DFAReporting.EventTags.Update
+
+    -- ** dfareporting.files.get
+    , module Network.Google.Resource.DFAReporting.Files.Get
+
+    -- ** dfareporting.files.list
+    , module Network.Google.Resource.DFAReporting.Files.List
+
+    -- ** dfareporting.floodlightActivities.delete
+    , module Network.Google.Resource.DFAReporting.FloodlightActivities.Delete
+
+    -- ** dfareporting.floodlightActivities.generatetag
+    , module Network.Google.Resource.DFAReporting.FloodlightActivities.Generatetag
+
+    -- ** dfareporting.floodlightActivities.get
+    , module Network.Google.Resource.DFAReporting.FloodlightActivities.Get
+
+    -- ** dfareporting.floodlightActivities.insert
+    , module Network.Google.Resource.DFAReporting.FloodlightActivities.Insert
+
+    -- ** dfareporting.floodlightActivities.list
+    , module Network.Google.Resource.DFAReporting.FloodlightActivities.List
+
+    -- ** dfareporting.floodlightActivities.patch
+    , module Network.Google.Resource.DFAReporting.FloodlightActivities.Patch
+
+    -- ** dfareporting.floodlightActivities.update
+    , module Network.Google.Resource.DFAReporting.FloodlightActivities.Update
+
+    -- ** dfareporting.floodlightActivityGroups.delete
+    , module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Delete
+
+    -- ** dfareporting.floodlightActivityGroups.get
+    , module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Get
+
+    -- ** dfareporting.floodlightActivityGroups.insert
+    , module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Insert
+
+    -- ** dfareporting.floodlightActivityGroups.list
+    , module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.List
+
+    -- ** dfareporting.floodlightActivityGroups.patch
+    , module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Patch
+
+    -- ** dfareporting.floodlightActivityGroups.update
+    , module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Update
+
+    -- ** dfareporting.floodlightConfigurations.get
+    , module Network.Google.Resource.DFAReporting.FloodlightConfigurations.Get
+
+    -- ** dfareporting.floodlightConfigurations.list
+    , module Network.Google.Resource.DFAReporting.FloodlightConfigurations.List
+
+    -- ** dfareporting.floodlightConfigurations.patch
+    , module Network.Google.Resource.DFAReporting.FloodlightConfigurations.Patch
+
+    -- ** dfareporting.floodlightConfigurations.update
+    , module Network.Google.Resource.DFAReporting.FloodlightConfigurations.Update
+
+    -- ** dfareporting.inventoryItems.get
+    , module Network.Google.Resource.DFAReporting.InventoryItems.Get
+
+    -- ** dfareporting.inventoryItems.list
+    , module Network.Google.Resource.DFAReporting.InventoryItems.List
+
+    -- ** dfareporting.landingPages.delete
+    , module Network.Google.Resource.DFAReporting.LandingPages.Delete
+
+    -- ** dfareporting.landingPages.get
+    , module Network.Google.Resource.DFAReporting.LandingPages.Get
+
+    -- ** dfareporting.landingPages.insert
+    , module Network.Google.Resource.DFAReporting.LandingPages.Insert
+
+    -- ** dfareporting.landingPages.list
+    , module Network.Google.Resource.DFAReporting.LandingPages.List
+
+    -- ** dfareporting.landingPages.patch
+    , module Network.Google.Resource.DFAReporting.LandingPages.Patch
+
+    -- ** dfareporting.landingPages.update
+    , module Network.Google.Resource.DFAReporting.LandingPages.Update
+
+    -- ** dfareporting.metros.list
+    , module Network.Google.Resource.DFAReporting.Metros.List
+
+    -- ** dfareporting.mobileCarriers.get
+    , module Network.Google.Resource.DFAReporting.MobileCarriers.Get
+
+    -- ** dfareporting.mobileCarriers.list
+    , module Network.Google.Resource.DFAReporting.MobileCarriers.List
+
+    -- ** dfareporting.operatingSystemVersions.get
+    , module Network.Google.Resource.DFAReporting.OperatingSystemVersions.Get
+
+    -- ** dfareporting.operatingSystemVersions.list
+    , module Network.Google.Resource.DFAReporting.OperatingSystemVersions.List
+
+    -- ** dfareporting.operatingSystems.get
+    , module Network.Google.Resource.DFAReporting.OperatingSystems.Get
+
+    -- ** dfareporting.operatingSystems.list
+    , module Network.Google.Resource.DFAReporting.OperatingSystems.List
+
+    -- ** dfareporting.orderDocuments.get
+    , module Network.Google.Resource.DFAReporting.OrderDocuments.Get
+
+    -- ** dfareporting.orderDocuments.list
+    , module Network.Google.Resource.DFAReporting.OrderDocuments.List
+
+    -- ** dfareporting.orders.get
+    , module Network.Google.Resource.DFAReporting.Orders.Get
+
+    -- ** dfareporting.orders.list
+    , module Network.Google.Resource.DFAReporting.Orders.List
+
+    -- ** dfareporting.placementGroups.get
+    , module Network.Google.Resource.DFAReporting.PlacementGroups.Get
+
+    -- ** dfareporting.placementGroups.insert
+    , module Network.Google.Resource.DFAReporting.PlacementGroups.Insert
+
+    -- ** dfareporting.placementGroups.list
+    , module Network.Google.Resource.DFAReporting.PlacementGroups.List
+
+    -- ** dfareporting.placementGroups.patch
+    , module Network.Google.Resource.DFAReporting.PlacementGroups.Patch
+
+    -- ** dfareporting.placementGroups.update
+    , module Network.Google.Resource.DFAReporting.PlacementGroups.Update
+
+    -- ** dfareporting.placementStrategies.delete
+    , module Network.Google.Resource.DFAReporting.PlacementStrategies.Delete
+
+    -- ** dfareporting.placementStrategies.get
+    , module Network.Google.Resource.DFAReporting.PlacementStrategies.Get
+
+    -- ** dfareporting.placementStrategies.insert
+    , module Network.Google.Resource.DFAReporting.PlacementStrategies.Insert
+
+    -- ** dfareporting.placementStrategies.list
+    , module Network.Google.Resource.DFAReporting.PlacementStrategies.List
+
+    -- ** dfareporting.placementStrategies.patch
+    , module Network.Google.Resource.DFAReporting.PlacementStrategies.Patch
+
+    -- ** dfareporting.placementStrategies.update
+    , module Network.Google.Resource.DFAReporting.PlacementStrategies.Update
+
+    -- ** dfareporting.placements.generatetags
+    , module Network.Google.Resource.DFAReporting.Placements.Generatetags
+
+    -- ** dfareporting.placements.get
+    , module Network.Google.Resource.DFAReporting.Placements.Get
+
+    -- ** dfareporting.placements.insert
+    , module Network.Google.Resource.DFAReporting.Placements.Insert
+
+    -- ** dfareporting.placements.list
+    , module Network.Google.Resource.DFAReporting.Placements.List
+
+    -- ** dfareporting.placements.patch
+    , module Network.Google.Resource.DFAReporting.Placements.Patch
+
+    -- ** dfareporting.placements.update
+    , module Network.Google.Resource.DFAReporting.Placements.Update
+
+    -- ** dfareporting.platformTypes.get
+    , module Network.Google.Resource.DFAReporting.PlatformTypes.Get
+
+    -- ** dfareporting.platformTypes.list
+    , module Network.Google.Resource.DFAReporting.PlatformTypes.List
+
+    -- ** dfareporting.postalCodes.get
+    , module Network.Google.Resource.DFAReporting.PostalCodes.Get
+
+    -- ** dfareporting.postalCodes.list
+    , module Network.Google.Resource.DFAReporting.PostalCodes.List
+
+    -- ** dfareporting.projects.get
+    , module Network.Google.Resource.DFAReporting.Projects.Get
+
+    -- ** dfareporting.projects.list
+    , module Network.Google.Resource.DFAReporting.Projects.List
+
+    -- ** dfareporting.regions.list
+    , module Network.Google.Resource.DFAReporting.Regions.List
+
+    -- ** dfareporting.remarketingListShares.get
+    , module Network.Google.Resource.DFAReporting.RemarketingListShares.Get
+
+    -- ** dfareporting.remarketingListShares.patch
+    , module Network.Google.Resource.DFAReporting.RemarketingListShares.Patch
+
+    -- ** dfareporting.remarketingListShares.update
+    , module Network.Google.Resource.DFAReporting.RemarketingListShares.Update
+
+    -- ** dfareporting.remarketingLists.get
+    , module Network.Google.Resource.DFAReporting.RemarketingLists.Get
+
+    -- ** dfareporting.remarketingLists.insert
+    , module Network.Google.Resource.DFAReporting.RemarketingLists.Insert
+
+    -- ** dfareporting.remarketingLists.list
+    , module Network.Google.Resource.DFAReporting.RemarketingLists.List
+
+    -- ** dfareporting.remarketingLists.patch
+    , module Network.Google.Resource.DFAReporting.RemarketingLists.Patch
+
+    -- ** dfareporting.remarketingLists.update
+    , module Network.Google.Resource.DFAReporting.RemarketingLists.Update
+
+    -- ** dfareporting.reports.compatibleFields.query
+    , module Network.Google.Resource.DFAReporting.Reports.CompatibleFields.Query
+
+    -- ** dfareporting.reports.delete
+    , module Network.Google.Resource.DFAReporting.Reports.Delete
+
+    -- ** dfareporting.reports.files.get
+    , module Network.Google.Resource.DFAReporting.Reports.Files.Get
+
+    -- ** dfareporting.reports.files.list
+    , module Network.Google.Resource.DFAReporting.Reports.Files.List
+
+    -- ** dfareporting.reports.get
+    , module Network.Google.Resource.DFAReporting.Reports.Get
+
+    -- ** dfareporting.reports.insert
+    , module Network.Google.Resource.DFAReporting.Reports.Insert
+
+    -- ** dfareporting.reports.list
+    , module Network.Google.Resource.DFAReporting.Reports.List
+
+    -- ** dfareporting.reports.patch
+    , module Network.Google.Resource.DFAReporting.Reports.Patch
+
+    -- ** dfareporting.reports.run
+    , module Network.Google.Resource.DFAReporting.Reports.Run
+
+    -- ** dfareporting.reports.update
+    , module Network.Google.Resource.DFAReporting.Reports.Update
+
+    -- ** dfareporting.sites.get
+    , module Network.Google.Resource.DFAReporting.Sites.Get
+
+    -- ** dfareporting.sites.insert
+    , module Network.Google.Resource.DFAReporting.Sites.Insert
+
+    -- ** dfareporting.sites.list
+    , module Network.Google.Resource.DFAReporting.Sites.List
+
+    -- ** dfareporting.sites.patch
+    , module Network.Google.Resource.DFAReporting.Sites.Patch
+
+    -- ** dfareporting.sites.update
+    , module Network.Google.Resource.DFAReporting.Sites.Update
+
+    -- ** dfareporting.sizes.get
+    , module Network.Google.Resource.DFAReporting.Sizes.Get
+
+    -- ** dfareporting.sizes.insert
+    , module Network.Google.Resource.DFAReporting.Sizes.Insert
+
+    -- ** dfareporting.sizes.list
+    , module Network.Google.Resource.DFAReporting.Sizes.List
+
+    -- ** dfareporting.subaccounts.get
+    , module Network.Google.Resource.DFAReporting.SubAccounts.Get
+
+    -- ** dfareporting.subaccounts.insert
+    , module Network.Google.Resource.DFAReporting.SubAccounts.Insert
+
+    -- ** dfareporting.subaccounts.list
+    , module Network.Google.Resource.DFAReporting.SubAccounts.List
+
+    -- ** dfareporting.subaccounts.patch
+    , module Network.Google.Resource.DFAReporting.SubAccounts.Patch
+
+    -- ** dfareporting.subaccounts.update
+    , module Network.Google.Resource.DFAReporting.SubAccounts.Update
+
+    -- ** dfareporting.targetableRemarketingLists.get
+    , module Network.Google.Resource.DFAReporting.TargetableRemarketingLists.Get
+
+    -- ** dfareporting.targetableRemarketingLists.list
+    , module Network.Google.Resource.DFAReporting.TargetableRemarketingLists.List
+
+    -- ** dfareporting.userProfiles.get
+    , module Network.Google.Resource.DFAReporting.UserProFiles.Get
+
+    -- ** dfareporting.userProfiles.list
+    , module Network.Google.Resource.DFAReporting.UserProFiles.List
+
+    -- ** dfareporting.userRolePermissionGroups.get
+    , module Network.Google.Resource.DFAReporting.UserRolePermissionGroups.Get
+
+    -- ** dfareporting.userRolePermissionGroups.list
+    , module Network.Google.Resource.DFAReporting.UserRolePermissionGroups.List
+
+    -- ** dfareporting.userRolePermissions.get
+    , module Network.Google.Resource.DFAReporting.UserRolePermissions.Get
+
+    -- ** dfareporting.userRolePermissions.list
+    , module Network.Google.Resource.DFAReporting.UserRolePermissions.List
+
+    -- ** dfareporting.userRoles.delete
+    , module Network.Google.Resource.DFAReporting.UserRoles.Delete
+
+    -- ** dfareporting.userRoles.get
+    , module Network.Google.Resource.DFAReporting.UserRoles.Get
+
+    -- ** dfareporting.userRoles.insert
+    , module Network.Google.Resource.DFAReporting.UserRoles.Insert
+
+    -- ** dfareporting.userRoles.list
+    , module Network.Google.Resource.DFAReporting.UserRoles.List
+
+    -- ** dfareporting.userRoles.patch
+    , module Network.Google.Resource.DFAReporting.UserRoles.Patch
+
+    -- ** dfareporting.userRoles.update
+    , module Network.Google.Resource.DFAReporting.UserRoles.Update
+
+    -- * Types
+
+    -- ** PlacementsListSortOrder
+    , PlacementsListSortOrder (..)
+
+    -- ** DateRangeRelativeDateRange
+    , DateRangeRelativeDateRange (..)
+
+    -- ** AdvertisersListSortField
+    , AdvertisersListSortField (..)
+
+    -- ** CreativeFieldsListSortOrder
+    , CreativeFieldsListSortOrder (..)
+
+    -- ** FileList
+    , FileList
+    , fileList
+    , flEtag
+    , flNextPageToken
+    , flKind
+    , flItems
+
+    -- ** OptimizationActivity
+    , OptimizationActivity
+    , optimizationActivity
+    , oaWeight
+    , oaFloodlightActivityId
+    , oaFloodlightActivityIdDimensionValue
+
+    -- ** ListPopulationClause
+    , ListPopulationClause
+    , listPopulationClause
+    , lpcTerms
+
+    -- ** CreativeCustomEvent
+    , CreativeCustomEvent
+    , creativeCustomEvent
+    , cceAdvertiserCustomEventType
+    , cceAdvertiserCustomEventName
+    , cceExitURL
+    , cceTargetType
+    , ccePopupWindowProperties
+    , cceVideoReportingId
+    , cceId
+    , cceArtworkLabel
+    , cceArtworkType
+
+    -- ** ClickTag
+    , ClickTag
+    , clickTag
+    , ctValue
+    , ctName
+    , ctEventName
+
+    -- ** CampaignsListResponse
+    , CampaignsListResponse
+    , campaignsListResponse
+    , clrNextPageToken
+    , clrCampaigns
+    , clrKind
+
+    -- ** GeoTargeting
+    , GeoTargeting
+    , geoTargeting
+    , gtRegions
+    , gtCountries
+    , gtCities
+    , gtMetros
+    , gtExcludeCountries
+    , gtPostalCodes
+
+    -- ** UserRolesListSortField
+    , UserRolesListSortField (..)
+
+    -- ** ReachReportCompatibleFields
+    , ReachReportCompatibleFields
+    , reachReportCompatibleFields
+    , rrcfMetrics
+    , rrcfReachByFrequencyMetrics
+    , rrcfKind
+    , rrcfDimensionFilters
+    , rrcfPivotedActivityMetrics
+    , rrcfDimensions
+
+    -- ** Browser
+    , Browser
+    , browser
+    , bMinorVersion
+    , bKind
+    , bBrowserVersionId
+    , bMajorVersion
+    , bName
+    , bDartId
+
+    -- ** FloodlightActivityTagFormat
+    , FloodlightActivityTagFormat (..)
+
+    -- ** OrderDocumentsListSortOrder
+    , OrderDocumentsListSortOrder (..)
+
+    -- ** CreativeGroupAssignment
+    , CreativeGroupAssignment
+    , creativeGroupAssignment
+    , cgaCreativeGroupNumber
+    , cgaCreativeGroupId
+
+    -- ** CreativeAssetRole
+    , CreativeAssetRole (..)
+
+    -- ** RecipientDeliveryType
+    , RecipientDeliveryType (..)
+
+    -- ** ThirdPartyTrackingURLThirdPartyURLType
+    , ThirdPartyTrackingURLThirdPartyURLType (..)
+
+    -- ** DirectorySiteSettings
+    , DirectorySiteSettings
+    , directorySiteSettings
+    , dssInterstitialPlacementAccepted
+    , dssDfpSettings
+    , dssVerificationTagOptOut
+    , dssActiveViewOptOut
+    , dssVideoActiveViewOptOut
+    , dssInstreamVideoPlacementAccepted
+    , dssNielsenOCROptOut
+
+    -- ** TargetableRemarketingListsListSortOrder
+    , TargetableRemarketingListsListSortOrder (..)
+
+    -- ** CreativeAssetPositionLeftUnit
+    , CreativeAssetPositionLeftUnit (..)
+
+    -- ** PricingScheduleCapCostOption
+    , PricingScheduleCapCostOption (..)
+
+    -- ** ListPopulationRule
+    , ListPopulationRule
+    , listPopulationRule
+    , lprFloodlightActivityName
+    , lprFloodlightActivityId
+    , lprListPopulationClauses
+
+    -- ** UserRolePermissionAvailability
+    , UserRolePermissionAvailability (..)
+
+    -- ** DirectorySiteContactAssignmentVisibility
+    , DirectorySiteContactAssignmentVisibility (..)
+
+    -- ** SizesListResponse
+    , SizesListResponse
+    , sizesListResponse
+    , slrKind
+    , slrSizes
+
+    -- ** PlacementCompatibility
+    , PlacementCompatibility (..)
+
+    -- ** CreativeRotation
+    , CreativeRotation
+    , creativeRotation
+    , crWeightCalculationStrategy
+    , crCreativeAssignments
+    , crCreativeOptimizationConfigurationId
+    , crType
+
+    -- ** TechnologyTargeting
+    , TechnologyTargeting
+    , technologyTargeting
+    , ttMobileCarriers
+    , ttOperatingSystemVersions
+    , ttPlatformTypes
+    , ttBrowsers
+    , ttConnectionTypes
+    , ttOperatingSystems
+
+    -- ** ListPopulationTermOperator
+    , ListPopulationTermOperator (..)
+
+    -- ** PlacementsListPaymentSource
+    , PlacementsListPaymentSource (..)
+
+    -- ** InventoryItem
+    , InventoryItem
+    , inventoryItem
+    , iiPlacementStrategyId
+    , iiEstimatedClickThroughRate
+    , iiPricing
+    , iiKind
+    , iiAdvertiserId
+    , iiRfpId
+    , iiContentCategoryId
+    , iiInPlan
+    , iiAccountId
+    , iiName
+    , iiAdSlots
+    , iiNegotiationChannelId
+    , iiLastModifiedInfo
+    , iiId
+    , iiEstimatedConversionRate
+    , iiProjectId
+    , iiSubAccountId
+    , iiOrderId
+    , iiSiteId
+
+    -- ** ProjectsListResponse
+    , ProjectsListResponse
+    , projectsListResponse
+    , plrNextPageToken
+    , plrKind
+    , plrProjects
+
+    -- ** AdsListResponse
+    , AdsListResponse
+    , adsListResponse
+    , alrNextPageToken
+    , alrKind
+    , alrAds
+
+    -- ** ReportsListSortField
+    , ReportsListSortField (..)
+
+    -- ** AdSlotCompatibility
+    , AdSlotCompatibility (..)
+
+    -- ** ListPopulationTerm
+    , ListPopulationTerm
+    , listPopulationTerm
+    , lptOperator
+    , lptValue
+    , lptVariableFriendlyName
+    , lptNegation
+    , lptVariableName
+    , lptRemarketingListId
+    , lptType
+    , lptContains
+
+    -- ** TagSettings
+    , TagSettings
+    , tagSettings
+    , tsDynamicTagEnabled
+    , tsImageTagEnabled
+
+    -- ** SubAccountsListResponse
+    , SubAccountsListResponse
+    , subAccountsListResponse
+    , salrNextPageToken
+    , salrKind
+    , salrSubAccounts
+
+    -- ** CampaignsListSortField
+    , CampaignsListSortField (..)
+
+    -- ** DirectorySiteContact
+    , DirectorySiteContact
+    , directorySiteContact
+    , dscEmail
+    , dscPhone
+    , dscLastName
+    , dscKind
+    , dscAddress
+    , dscRole
+    , dscFirstName
+    , dscId
+    , dscTitle
+    , dscType
+
+    -- ** RegionsListResponse
+    , RegionsListResponse
+    , regionsListResponse
+    , rlrKind
+    , rlrRegions
+
+    -- ** FloodlightActivityDynamicTag
+    , FloodlightActivityDynamicTag
+    , floodlightActivityDynamicTag
+    , fadtTag
+    , fadtName
+    , fadtId
+
+    -- ** AccountUserProFileTraffickerType
+    , AccountUserProFileTraffickerType (..)
+
+    -- ** DirectorySite
+    , DirectorySite
+    , directorySite
+    , dsCurrencyId
+    , dsSettings
+    , dsInterstitialTagFormats
+    , dsKind
+    , dsURL
+    , dsIdDimensionValue
+    , dsInpageTagFormats
+    , dsActive
+    , dsName
+    , dsId
+    , dsCountryId
+    , dsContactAssignments
+    , dsDescription
+    , dsParentId
+
+    -- ** CreativeAssetMetadataDetectedFeaturesItem
+    , CreativeAssetMetadataDetectedFeaturesItem (..)
+
+    -- ** ReportFloodlightCriteriaReportProperties
+    , ReportFloodlightCriteriaReportProperties
+    , reportFloodlightCriteriaReportProperties
+    , rfcrpIncludeUnattributedIPConversions
+    , rfcrpIncludeUnattributedCookieConversions
+    , rfcrpIncludeAttributedIPConversions
+
+    -- ** FloodlightActivityGroup
+    , FloodlightActivityGroup
+    , floodlightActivityGroup
+    , fagTagString
+    , fagFloodlightConfigurationId
+    , fagKind
+    , fagAdvertiserId
+    , fagAdvertiserIdDimensionValue
+    , fagIdDimensionValue
+    , fagAccountId
+    , fagName
+    , fagId
+    , fagSubAccountId
+    , fagType
+    , fagFloodlightConfigurationIdDimensionValue
+
+    -- ** AdsListCompatibility
+    , AdsListCompatibility (..)
+
+    -- ** CrossDimensionReachReportCompatibleFields
+    , CrossDimensionReachReportCompatibleFields
+    , crossDimensionReachReportCompatibleFields
+    , cdrrcfMetrics
+    , cdrrcfBreakdown
+    , cdrrcfKind
+    , cdrrcfDimensionFilters
+    , cdrrcfOverlapMetrics
+
+    -- ** FsCommand
+    , FsCommand
+    , fsCommand
+    , fcPositionOption
+    , fcLeft
+    , fcWindowHeight
+    , fcWindowWidth
+    , fcTop
+
+    -- ** PlacementAssignment
+    , PlacementAssignment
+    , placementAssignment
+    , paPlacementId
+    , paPlacementIdDimensionValue
+    , paActive
+    , paSSLRequired
+
+    -- ** CreativeFieldValue
+    , CreativeFieldValue
+    , creativeFieldValue
+    , cfvKind
+    , cfvValue
+    , cfvId
+
+    -- ** EventTagStatus
+    , EventTagStatus (..)
+
+    -- ** SitesListSortField
+    , SitesListSortField (..)
+
+    -- ** DimensionValueRequest
+    , DimensionValueRequest
+    , dimensionValueRequest
+    , dvrKind
+    , dvrEndDate
+    , dvrFilters
+    , dvrStartDate
+    , dvrDimensionName
+
+    -- ** EventTagsListEventTagTypes
+    , EventTagsListEventTagTypes (..)
+
+    -- ** FloodlightConfigurationsListResponse
+    , FloodlightConfigurationsListResponse
+    , floodlightConfigurationsListResponse
+    , fclrKind
+    , fclrFloodlightConfigurations
+
+    -- ** FloodlightActivitiesListResponse
+    , FloodlightActivitiesListResponse
+    , floodlightActivitiesListResponse
+    , falrNextPageToken
+    , falrKind
+    , falrFloodlightActivities
+
+    -- ** FileStatus
+    , FileStatus (..)
+
+    -- ** CreativeCustomEventArtworkType
+    , CreativeCustomEventArtworkType (..)
+
+    -- ** CreativeFieldAssignment
+    , CreativeFieldAssignment
+    , creativeFieldAssignment
+    , cfaCreativeFieldId
+    , cfaCreativeFieldValueId
+
+    -- ** AdvertiserGroup
+    , AdvertiserGroup
+    , advertiserGroup
+    , agKind
+    , agAccountId
+    , agName
+    , agId
+
+    -- ** TagData
+    , TagData
+    , tagData
+    , tdClickTag
+    , tdFormat
+    , tdCreativeId
+    , tdAdId
+    , tdImpressionTag
+
+    -- ** DayPartTargeting
+    , DayPartTargeting
+    , dayPartTargeting
+    , dptDaysOfWeek
+    , dptHoursOfDay
+    , dptUserLocalTime
+
+    -- ** CreativeOptimizationConfiguration
+    , CreativeOptimizationConfiguration
+    , creativeOptimizationConfiguration
+    , cocOptimizationModel
+    , cocName
+    , cocOptimizationActivitys
+    , cocId
+
+    -- ** ReportCriteria
+    , ReportCriteria
+    , reportCriteria
+    , rcMetricNames
+    , rcCustomRichMediaEvents
+    , rcDimensionFilters
+    , rcActivities
+    , rcDateRange
+    , rcDimensions
+
+    -- ** FloodlightConfigurationNATuralSearchConversionAttributionOption
+    , FloodlightConfigurationNATuralSearchConversionAttributionOption (..)
+
+    -- ** PlacementStrategiesListResponse
+    , PlacementStrategiesListResponse
+    , placementStrategiesListResponse
+    , pslrPlacementStrategies
+    , pslrNextPageToken
+    , pslrKind
+
+    -- ** CreativeAssetArtworkType
+    , CreativeAssetArtworkType (..)
+
+    -- ** SubAccount
+    , SubAccount
+    , subAccount
+    , saKind
+    , saAvailablePermissionIds
+    , saAccountId
+    , saName
+    , saId
+
+    -- ** InventoryItemsListResponse
+    , InventoryItemsListResponse
+    , inventoryItemsListResponse
+    , iilrInventoryItems
+    , iilrNextPageToken
+    , iilrKind
+
+    -- ** Ad
+    , Ad
+    , ad
+    , aCreativeGroupAssignments
+    , aGeoTargeting
+    , aCreativeRotation
+    , aTechnologyTargeting
+    , aAudienceSegmentId
+    , aDayPartTargeting
+    , aSize
+    , aStartTime
+    , aKind
+    , aClickThroughURLSuffixProperties
+    , aCampaignIdDimensionValue
+    , aAdvertiserId
+    , aAdvertiserIdDimensionValue
+    , aSSLCompliant
+    , aCampaignId
+    , aIdDimensionValue
+    , aClickThroughURL
+    , aDeliverySchedule
+    , aEventTagOverrides
+    , aActive
+    , aAccountId
+    , aName
+    , aKeyValueTargetingExpression
+    , aEndTime
+    , aCreateInfo
+    , aLastModifiedInfo
+    , aId
+    , aSSLRequired
+    , aComments
+    , aSubAccountId
+    , aType
+    , aRemarketingListExpression
+    , aDynamicClickTracker
+    , aCompatibility
+    , aArchived
+    , aDefaultClickThroughEventTagProperties
+    , aPlacementAssignments
+
+    -- ** FloodlightActivitiesListSortOrder
+    , FloodlightActivitiesListSortOrder (..)
+
+    -- ** Project
+    , Project
+    , project
+    , pTargetClicks
+    , pClientBillingCode
+    , pTargetCpmNanos
+    , pTargetConversions
+    , pBudget
+    , pKind
+    , pAdvertiserId
+    , pEndDate
+    , pOverview
+    , pTargetImpressions
+    , pStartDate
+    , pTargetCpcNanos
+    , pAccountId
+    , pName
+    , pLastModifiedInfo
+    , pId
+    , pAudienceAgeGroup
+    , pSubAccountId
+    , pAudienceGender
+    , pClientName
+    , pTargetCpaNanos
+
+    -- ** FileFormat
+    , FileFormat (..)
+
+    -- ** PricingSchedulePricingType
+    , PricingSchedulePricingType (..)
+
+    -- ** ReportFloodlightCriteria
+    , ReportFloodlightCriteria
+    , reportFloodlightCriteria
+    , rfcReportProperties
+    , rfcMetricNames
+    , rfcCustomRichMediaEvents
+    , rfcDimensionFilters
+    , rfcDateRange
+    , rfcFloodlightConfigId
+    , rfcDimensions
+
+    -- ** CreativeCustomEventTargetType
+    , CreativeCustomEventTargetType (..)
+
+    -- ** ReportsListScope
+    , ReportsListScope (..)
+
+    -- ** Size
+    , Size
+    , size
+    , sHeight
+    , sKind
+    , sWidth
+    , sIab
+    , sId
+
+    -- ** CreativeAssetDurationType
+    , CreativeAssetDurationType (..)
+
+    -- ** TargetableRemarketingListListSource
+    , TargetableRemarketingListListSource (..)
+
+    -- ** ObjectFilter
+    , ObjectFilter
+    , objectFilter
+    , ofStatus
+    , ofKind
+    , ofObjectIds
+
+    -- ** CreativeGroupsListSortField
+    , CreativeGroupsListSortField (..)
+
+    -- ** ReportsConfiguration
+    , ReportsConfiguration
+    , reportsConfiguration
+    , rcExposureToConversionEnabled
+    , rcReportGenerationTimeZoneId
+    , rcLookbackConfiguration
+
+    -- ** PricingSchedule
+    , PricingSchedule
+    , pricingSchedule
+    , psTestingStartDate
+    , psFloodlightActivityId
+    , psEndDate
+    , psDisregardOverdelivery
+    , psStartDate
+    , psCapCostOption
+    , psPricingType
+    , psPricingPeriods
+    , psFlighted
+
+    -- ** PostalCode
+    , PostalCode
+    , postalCode
+    , pcKind
+    , pcCode
+    , pcCountryCode
+    , pcId
+    , pcCountryDartId
+
+    -- ** AccountPermissionsListResponse
+    , AccountPermissionsListResponse
+    , accountPermissionsListResponse
+    , aplrKind
+    , aplrAccountPermissions
+
+    -- ** Country
+    , Country
+    , country
+    , cKind
+    , cName
+    , cCountryCode
+    , cDartId
+    , cSSLEnabled
+
+    -- ** PlacementsListSortField
+    , PlacementsListSortField (..)
+
+    -- ** CreativeBackupImageFeaturesItem
+    , CreativeBackupImageFeaturesItem (..)
+
+    -- ** OperatingSystemVersionsListResponse
+    , OperatingSystemVersionsListResponse
+    , operatingSystemVersionsListResponse
+    , osvlrKind
+    , osvlrOperatingSystemVersions
+
+    -- ** ClickThroughURLSuffixProperties
+    , ClickThroughURLSuffixProperties
+    , clickThroughURLSuffixProperties
+    , ctuspOverrideInheritedSuffix
+    , ctuspClickThroughURLSuffix
+
+    -- ** AdvertisersListSortOrder
+    , AdvertisersListSortOrder (..)
+
+    -- ** CreativeFieldsListSortField
+    , CreativeFieldsListSortField (..)
+
+    -- ** Pricing
+    , Pricing
+    , pricing
+    , priEndDate
+    , priStartDate
+    , priGroupType
+    , priPricingType
+    , priFlights
+    , priCapCostType
+
+    -- ** AudienceSegmentGroup
+    , AudienceSegmentGroup
+    , audienceSegmentGroup
+    , asgAudienceSegments
+    , asgName
+    , asgId
+
+    -- ** OperatingSystem
+    , OperatingSystem
+    , operatingSystem
+    , osDesktop
+    , osKind
+    , osName
+    , osMobile
+    , osDartId
+
+    -- ** Flight
+    , Flight
+    , flight
+    , fRateOrCost
+    , fEndDate
+    , fStartDate
+    , fUnits
+
+    -- ** UserDefinedVariableConfigurationVariableType
+    , UserDefinedVariableConfigurationVariableType (..)
+
+    -- ** FsCommandPositionOption
+    , FsCommandPositionOption (..)
+
+    -- ** CitiesListResponse
+    , CitiesListResponse
+    , citiesListResponse
+    , citKind
+    , citCities
+
+    -- ** Dimension
+    , Dimension
+    , dimension
+    , dKind
+    , dName
+
+    -- ** ReportReachCriteria
+    , ReportReachCriteria
+    , reportReachCriteria
+    , rrcReachByFrequencyMetricNames
+    , rrcEnableAllDimensionCombinations
+    , rrcMetricNames
+    , rrcCustomRichMediaEvents
+    , rrcDimensionFilters
+    , rrcActivities
+    , rrcDateRange
+    , rrcDimensions
+
+    -- ** CustomRichMediaEvents
+    , CustomRichMediaEvents
+    , customRichMediaEvents
+    , crmeKind
+    , crmeFilteredEventIds
+
+    -- ** UserRolesListSortOrder
+    , UserRolesListSortOrder (..)
+
+    -- ** PlacementsListCompatibilities
+    , PlacementsListCompatibilities (..)
+
+    -- ** TargetableRemarketingListsListResponse
+    , TargetableRemarketingListsListResponse
+    , targetableRemarketingListsListResponse
+    , trllrNextPageToken
+    , trllrKind
+    , trllrTargetableRemarketingLists
+
+    -- ** OrderDocumentsListSortField
+    , OrderDocumentsListSortField (..)
+
+    -- ** CreativeCompatibilityItem
+    , CreativeCompatibilityItem (..)
+
+    -- ** ChangeLogsListResponse
+    , ChangeLogsListResponse
+    , changeLogsListResponse
+    , cllrNextPageToken
+    , cllrKind
+    , cllrChangeLogs
+
+    -- ** ReportDeliveryEmailOwnerDeliveryType
+    , ReportDeliveryEmailOwnerDeliveryType (..)
+
+    -- ** SiteContactContactType
+    , SiteContactContactType (..)
+
+    -- ** AccountUserProFile
+    , AccountUserProFile
+    , accountUserProFile
+    , aupfEmail
+    , aupfUserRoleFilter
+    , aupfAdvertiserFilter
+    , aupfUserRoleId
+    , aupfKind
+    , aupfLocale
+    , aupfSiteFilter
+    , aupfTraffickerType
+    , aupfActive
+    , aupfAccountId
+    , aupfName
+    , aupfId
+    , aupfUserAccessType
+    , aupfComments
+    , aupfSubAccountId
+    , aupfCampaignFilter
+
+    -- ** ReportsListSortOrder
+    , ReportsListSortOrder (..)
+
+    -- ** DimensionValue
+    , DimensionValue
+    , dimensionValue
+    , dvEtag
+    , dvKind
+    , dvValue
+    , dvMatchType
+    , dvDimensionName
+    , dvId
+
+    -- ** TargetableRemarketingListsListSortField
+    , TargetableRemarketingListsListSortField (..)
+
+    -- ** CampaignsListSortOrder
+    , CampaignsListSortOrder (..)
+
+    -- ** Activities
+    , Activities
+    , activities
+    , actKind
+    , actMetricNames
+    , actFilters
+
+    -- ** FloodlightActivityGroupsListType
+    , FloodlightActivityGroupsListType (..)
+
+    -- ** FloodlightConfigurationFirstDayOfWeek
+    , FloodlightConfigurationFirstDayOfWeek (..)
+
+    -- ** UserRolePermissionGroupsListResponse
+    , UserRolePermissionGroupsListResponse
+    , userRolePermissionGroupsListResponse
+    , urpglrUserRolePermissionGroups
+    , urpglrKind
+
+    -- ** PlacementTag
+    , PlacementTag
+    , placementTag
+    , ptPlacementId
+    , ptTagDatas
+
+    -- ** DeliverySchedulePriority
+    , DeliverySchedulePriority (..)
+
+    -- ** FloodlightActivitiesListFloodlightActivityGroupType
+    , FloodlightActivitiesListFloodlightActivityGroupType (..)
+
+    -- ** RemarketingListsListResponse
+    , RemarketingListsListResponse
+    , remarketingListsListResponse
+    , rllrNextPageToken
+    , rllrRemarketingLists
+    , rllrKind
+
+    -- ** Creative
+    , Creative
+    , creative
+    , creConvertFlashToHTML5
+    , creBackupImageTargetWindow
+    , creRenderingIdDimensionValue
+    , creCustomKeyValues
+    , creVideoDuration
+    , creRenderingId
+    , creThirdPartyBackupImageImpressionsURL
+    , creFsCommand
+    , creAllowScriptAccess
+    , creHTMLCodeLocked
+    , creRequiredFlashPluginVersion
+    , creAuthoringTool
+    , creSize
+    , creThirdPartyURLs
+    , creCounterCustomEvents
+    , creKind
+    , creSSLOverride
+    , creHTMLCode
+    , creAdvertiserId
+    , creRequiredFlashVersion
+    , creBackgRoundColor
+    , creAdTagKeys
+    , creSkippable
+    , creSSLCompliant
+    , creIdDimensionValue
+    , creBackupImageReportingLabel
+    , creCommercialId
+    , creActive
+    , creExitCustomEvents
+    , creAccountId
+    , creBackupImageClickThroughURL
+    , creName
+    , creOverrideCss
+    , creVideoDescription
+    , creClickTags
+    , creAdParameters
+    , creVersion
+    , creLatestTraffickedCreativeId
+    , creThirdPartyRichMediaImpressionsURL
+    , creLastModifiedInfo
+    , creId
+    , creStudioAdvertiserId
+    , creCreativeAssets
+    , creSubAccountId
+    , creType
+    , creTimerCustomEvents
+    , creStudioCreativeId
+    , creCompatibility
+    , creBackupImageFeatures
+    , creArtworkType
+    , creArchived
+    , creCompanionCreatives
+    , creTotalFileSize
+    , creStudioTraffickedCreativeId
+    , creRedirectURL
+    , creAutoAdvanceImages
+    , creCreativeFieldAssignments
+
+    -- ** SiteContact
+    , SiteContact
+    , siteContact
+    , scEmail
+    , scPhone
+    , scLastName
+    , scAddress
+    , scFirstName
+    , scId
+    , scTitle
+    , scContactType
+
+    -- ** AccountsListResponse
+    , AccountsListResponse
+    , accountsListResponse
+    , accNextPageToken
+    , accAccounts
+    , accKind
+
+    -- ** DateRange
+    , DateRange
+    , dateRange
+    , drKind
+    , drEndDate
+    , drStartDate
+    , drRelativeDateRange
+
+    -- ** FloodlightConfigurationStandardVariableTypesItem
+    , FloodlightConfigurationStandardVariableTypesItem (..)
+
+    -- ** Report
+    , Report
+    , report
+    , rDelivery
+    , rEtag
+    , rOwnerProFileId
+    , rSchedule
+    , rPathToConversionCriteria
+    , rKind
+    , rFormat
+    , rReachCriteria
+    , rLastModifiedTime
+    , rAccountId
+    , rName
+    , rId
+    , rCrossDimensionReachCriteria
+    , rType
+    , rSubAccountId
+    , rFloodlightCriteria
+    , rCriteria
+    , rFileName
+
+    -- ** PlacementPaymentSource
+    , PlacementPaymentSource (..)
+
+    -- ** ReportsFilesListSortOrder
+    , ReportsFilesListSortOrder (..)
+
+    -- ** Campaign
+    , Campaign
+    , campaign
+    , camCreativeOptimizationConfiguration
+    , camCreativeGroupIds
+    , camNielsenOCREnabled
+    , camKind
+    , camClickThroughURLSuffixProperties
+    , camAdvertiserId
+    , camEndDate
+    , camAdvertiserIdDimensionValue
+    , camIdDimensionValue
+    , camEventTagOverrides
+    , camLookbackConfiguration
+    , camStartDate
+    , camAccountId
+    , camComscoreVceEnabled
+    , camName
+    , camAdvertiserGroupId
+    , camBillingInvoiceCode
+    , camCreateInfo
+    , camLastModifiedInfo
+    , camId
+    , camSubAccountId
+    , camAdditionalCreativeOptimizationConfigurations
+    , camExternalId
+    , camComment
+    , camAudienceSegmentGroups
+    , camArchived
+    , camTraffickerEmails
+    , camDefaultClickThroughEventTagProperties
+
+    -- ** InventoryItemsListSortField
+    , InventoryItemsListSortField (..)
+
+    -- ** EventTagType
+    , EventTagType (..)
+
+    -- ** CreativesListSortOrder
+    , CreativesListSortOrder (..)
+
+    -- ** ThirdPartyAuthenticationToken
+    , ThirdPartyAuthenticationToken
+    , thirdPartyAuthenticationToken
+    , tpatValue
+    , tpatName
+
+    -- ** PopupWindowPropertiesPositionType
+    , PopupWindowPropertiesPositionType (..)
+
+    -- ** DirectorySiteContactRole
+    , DirectorySiteContactRole (..)
+
+    -- ** ClickThroughURL
+    , ClickThroughURL
+    , clickThroughURL
+    , ctuDefaultLandingPage
+    , ctuComputedClickThroughURL
+    , ctuCustomClickThroughURL
+    , ctuLandingPageId
+
+    -- ** TagSettingKeywordOption
+    , TagSettingKeywordOption (..)
+
+    -- ** CreativeAuthoringTool
+    , CreativeAuthoringTool (..)
+
+    -- ** OrderContactContactType
+    , OrderContactContactType (..)
+
+    -- ** CreativeAssetIdType
+    , CreativeAssetIdType (..)
+
+    -- ** AccountUserProFilesListSortOrder
+    , AccountUserProFilesListSortOrder (..)
+
+    -- ** RemarketingListListSource
+    , RemarketingListListSource (..)
+
+    -- ** BrowsersListResponse
+    , BrowsersListResponse
+    , browsersListResponse
+    , blrKind
+    , blrBrowsers
+
+    -- ** AccountUserProFileUserAccessType
+    , AccountUserProFileUserAccessType (..)
+
+    -- ** CreativeAssetStartTimeType
+    , CreativeAssetStartTimeType (..)
+
+    -- ** ProjectAudienceGender
+    , ProjectAudienceGender (..)
+
+    -- ** SiteSettings
+    , SiteSettings
+    , siteSettings
+    , ssDisableNewCookie
+    , ssDisableBrandSafeAds
+    , ssLookbackConfiguration
+    , ssTagSetting
+    , ssActiveViewOptOut
+    , ssCreativeSettings
+
+    -- ** PlacementStrategiesListSortField
+    , PlacementStrategiesListSortField (..)
+
+    -- ** ContentCategoriesListResponse
+    , ContentCategoriesListResponse
+    , contentCategoriesListResponse
+    , cclrNextPageToken
+    , cclrKind
+    , cclrContentCategories
+
+    -- ** UserDefinedVariableConfigurationDataType
+    , UserDefinedVariableConfigurationDataType (..)
+
+    -- ** FloodlightActivityCacheBustingType
+    , FloodlightActivityCacheBustingType (..)
+
+    -- ** CreativesListResponse
+    , CreativesListResponse
+    , creativesListResponse
+    , clrlNextPageToken
+    , clrlKind
+    , clrlCreatives
+
+    -- ** CreativeGroupsListSortOrder
+    , CreativeGroupsListSortOrder (..)
+
+    -- ** OrderDocumentType
+    , OrderDocumentType (..)
+
+    -- ** TagDataFormat
+    , TagDataFormat (..)
+
+    -- ** Account
+    , Account
+    , account
+    , aaAccountPermissionIds
+    , aaMaximumImageSize
+    , aaCurrencyId
+    , aaReportsConfiguration
+    , aaNielsenOCREnabled
+    , aaKind
+    , aaLocale
+    , aaActive
+    , aaAvailablePermissionIds
+    , aaTeaserSizeLimit
+    , aaComscoreVceEnabled
+    , aaActiveViewOptOut
+    , aaName
+    , aaAccountProFile
+    , aaId
+    , aaCountryId
+    , aaActiveAdsLimitTier
+    , aaDefaultCreativeSizeId
+    , aaDescription
+
+    -- ** AccountActiveAdSummaryActiveAdsLimitTier
+    , AccountActiveAdSummaryActiveAdsLimitTier (..)
+
+    -- ** CreativeAssetChildAssetType
+    , CreativeAssetChildAssetType (..)
+
+    -- ** PlacementGroupsListPlacementGroupType
+    , PlacementGroupsListPlacementGroupType (..)
+
+    -- ** AccountUserProFilesListResponse
+    , AccountUserProFilesListResponse
+    , accountUserProFilesListResponse
+    , aupflrNextPageToken
+    , aupflrAccountUserProFiles
+    , aupflrKind
+
+    -- ** ContentCategory
+    , ContentCategory
+    , contentCategory
+    , conKind
+    , conAccountId
+    , conName
+    , conId
+
+    -- ** ObjectFilterStatus
+    , ObjectFilterStatus (..)
+
+    -- ** ReportCompatibleFields
+    , ReportCompatibleFields
+    , reportCompatibleFields
+    , rcfMetrics
+    , rcfKind
+    , rcfDimensionFilters
+    , rcfPivotedActivityMetrics
+    , rcfDimensions
+
+    -- ** CampaignCreativeAssociationsListSortOrder
+    , CampaignCreativeAssociationsListSortOrder (..)
+
+    -- ** DeliverySchedule
+    , DeliverySchedule
+    , deliverySchedule
+    , dsHardCutoff
+    , dsPriority
+    , dsImpressionRatio
+    , dsFrequencyCap
+
+    -- ** RemarketingList
+    , RemarketingList
+    , remarketingList
+    , rlListSize
+    , rlListPopulationRule
+    , rlLifeSpan
+    , rlKind
+    , rlAdvertiserId
+    , rlAdvertiserIdDimensionValue
+    , rlActive
+    , rlAccountId
+    , rlName
+    , rlListSource
+    , rlId
+    , rlSubAccountId
+    , rlDescription
+
+    -- ** FloodlightActivitiesListSortField
+    , FloodlightActivitiesListSortField (..)
+
+    -- ** DimensionValueList
+    , DimensionValueList
+    , dimensionValueList
+    , dvlEtag
+    , dvlNextPageToken
+    , dvlKind
+    , dvlItems
+
+    -- ** FloodlightReportCompatibleFields
+    , FloodlightReportCompatibleFields
+    , floodlightReportCompatibleFields
+    , frcfMetrics
+    , frcfKind
+    , frcfDimensionFilters
+    , frcfDimensions
+
+    -- ** UserRolePermissionGroup
+    , UserRolePermissionGroup
+    , userRolePermissionGroup
+    , urpgKind
+    , urpgName
+    , urpgId
+
+    -- ** CreativesListTypes
+    , CreativesListTypes (..)
+
+    -- ** DirectorySiteInpageTagFormatsItem
+    , DirectorySiteInpageTagFormatsItem (..)
+
+    -- ** TagSetting
+    , TagSetting
+    , tagSetting
+    , tsKeywordOption
+    , tsIncludeClickThroughURLs
+    , tsIncludeClickTracking
+    , tsAdditionalKeyValues
+
+    -- ** CreativeAssetWindowMode
+    , CreativeAssetWindowMode (..)
+
+    -- ** CreativeAssetAlignment
+    , CreativeAssetAlignment (..)
+
+    -- ** RemarketingListsListSortOrder
+    , RemarketingListsListSortOrder (..)
+
+    -- ** ReportPathToConversionCriteriaReportProperties
+    , ReportPathToConversionCriteriaReportProperties
+    , reportPathToConversionCriteriaReportProperties
+    , rptccrpMaximumInteractionGap
+    , rptccrpMaximumClickInteractions
+    , rptccrpPivotOnInteractionPath
+    , rptccrpMaximumImpressionInteractions
+    , rptccrpIncludeUnattributedIPConversions
+    , rptccrpImpressionsLookbackWindow
+    , rptccrpClicksLookbackWindow
+    , rptccrpIncludeUnattributedCookieConversions
+    , rptccrpIncludeAttributedIPConversions
+
+    -- ** UserRolePermissionsListResponse
+    , UserRolePermissionsListResponse
+    , userRolePermissionsListResponse
+    , urplrKind
+    , urplrUserRolePermissions
+
+    -- ** PlacementGroupsListPricingTypes
+    , PlacementGroupsListPricingTypes (..)
+
+    -- ** AccountActiveAdsLimitTier
+    , AccountActiveAdsLimitTier (..)
+
+    -- ** AccountsListSortOrder
+    , AccountsListSortOrder (..)
+
+    -- ** PlacementGroupsListResponse
+    , PlacementGroupsListResponse
+    , placementGroupsListResponse
+    , pglrNextPageToken
+    , pglrKind
+    , pglrPlacementGroups
+
+    -- ** MobileCarrier
+    , MobileCarrier
+    , mobileCarrier
+    , mcKind
+    , mcName
+    , mcCountryCode
+    , mcId
+    , mcCountryDartId
+
+    -- ** LandingPage
+    , LandingPage
+    , landingPage
+    , lpKind
+    , lpDefault
+    , lpURL
+    , lpName
+    , lpId
+
+    -- ** ConnectionTypesListResponse
+    , ConnectionTypesListResponse
+    , connectionTypesListResponse
+    , ctlrKind
+    , ctlrConnectionTypes
+
+    -- ** OrdersListResponse
+    , OrdersListResponse
+    , ordersListResponse
+    , olrNextPageToken
+    , olrKind
+    , olrOrders
+
+    -- ** ReportList
+    , ReportList
+    , reportList
+    , repEtag
+    , repNextPageToken
+    , repKind
+    , repItems
+
+    -- ** CreativeGroup
+    , CreativeGroup
+    , creativeGroup
+    , cgKind
+    , cgAdvertiserId
+    , cgAdvertiserIdDimensionValue
+    , cgGroupNumber
+    , cgAccountId
+    , cgName
+    , cgId
+    , cgSubAccountId
+
+    -- ** SubAccountsListSortField
+    , SubAccountsListSortField (..)
+
+    -- ** CampaignCreativeAssociation
+    , CampaignCreativeAssociation
+    , campaignCreativeAssociation
+    , ccaKind
+    , ccaCreativeId
+
+    -- ** LookbackConfiguration
+    , LookbackConfiguration
+    , lookbackConfiguration
+    , lcClickDuration
+    , lcPostImpressionActivitiesDuration
+
+    -- ** AdsListSortField
+    , AdsListSortField (..)
+
+    -- ** ProjectsListSortField
+    , ProjectsListSortField (..)
+
+    -- ** FloodlightActivityPublisherDynamicTag
+    , FloodlightActivityPublisherDynamicTag
+    , floodlightActivityPublisherDynamicTag
+    , fapdtClickThrough
+    , fapdtSiteIdDimensionValue
+    , fapdtDynamicTag
+    , fapdtDirectorySiteId
+    , fapdtSiteId
+    , fapdtViewThrough
+
+    -- ** AdsListType
+    , AdsListType (..)
+
+    -- ** AccountActiveAdSummary
+    , AccountActiveAdSummary
+    , accountActiveAdSummary
+    , aaasAvailableAds
+    , aaasKind
+    , aaasAccountId
+    , aaasActiveAds
+    , aaasActiveAdsLimitTier
+
+    -- ** CreativeOptimizationConfigurationOptimizationModel
+    , CreativeOptimizationConfigurationOptimizationModel (..)
+
+    -- ** AccountPermissionLevel
+    , AccountPermissionLevel (..)
+
+    -- ** OffSetPosition
+    , OffSetPosition
+    , offSetPosition
+    , ospLeft
+    , ospTop
+
+    -- ** Metric
+    , Metric
+    , metric
+    , mKind
+    , mName
+
+    -- ** RemarketingListShare
+    , RemarketingListShare
+    , remarketingListShare
+    , rlsSharedAdvertiserIds
+    , rlsKind
+    , rlsRemarketingListId
+    , rlsSharedAccountIds
+
+    -- ** EventTagsListResponse
+    , EventTagsListResponse
+    , eventTagsListResponse
+    , etlrKind
+    , etlrEventTags
+
+    -- ** UserRolesListResponse
+    , UserRolesListResponse
+    , userRolesListResponse
+    , urlrNextPageToken
+    , urlrKind
+    , urlrUserRoles
+
+    -- ** ListPopulationTermType
+    , ListPopulationTermType (..)
+
+    -- ** AdvertiserGroupsListSortOrder
+    , AdvertiserGroupsListSortOrder (..)
+
+    -- ** CreativeFieldValuesListSortOrder
+    , CreativeFieldValuesListSortOrder (..)
+
+    -- ** SortedDimensionSortOrder
+    , SortedDimensionSortOrder (..)
+
+    -- ** CompatibleFields
+    , CompatibleFields
+    , compatibleFields
+    , cfReachReportCompatibleFields
+    , cfCrossDimensionReachReportCompatibleFields
+    , cfKind
+    , cfFloodlightReportCompatibleFields
+    , cfReportCompatibleFields
+    , cfPathToConversionReportCompatibleFields
+
+    -- ** AudienceSegment
+    , AudienceSegment
+    , audienceSegment
+    , asName
+    , asId
+    , asAllocation
+
+    -- ** FilesListSortField
+    , FilesListSortField (..)
+
+    -- ** DirectorySiteInterstitialTagFormatsItem
+    , DirectorySiteInterstitialTagFormatsItem (..)
+
+    -- ** DfpSettings
+    , DfpSettings
+    , dfpSettings
+    , dsPubPaidPlacementAccepted
+    , dsDfpNetworkName
+    , dsPublisherPortalOnly
+    , dsProgrammaticPlacementAccepted
+    , dsDfpNetworkCode
+
+    -- ** EventTagsListSortField
+    , EventTagsListSortField (..)
+
+    -- ** PathToConversionReportCompatibleFields
+    , PathToConversionReportCompatibleFields
+    , pathToConversionReportCompatibleFields
+    , ptcrcfMetrics
+    , ptcrcfKind
+    , ptcrcfConversionDimensions
+    , ptcrcfCustomFloodlightVariables
+    , ptcrcfPerInteractionDimensions
+
+    -- ** CreativeAssetPositionTopUnit
+    , CreativeAssetPositionTopUnit (..)
+
+    -- ** City
+    , City
+    , city
+    , ccMetroCode
+    , ccRegionCode
+    , ccKind
+    , ccRegionDartId
+    , ccMetroDmaId
+    , ccName
+    , ccCountryCode
+    , ccCountryDartId
+    , ccDartId
+
+    -- ** PlatformType
+    , PlatformType
+    , platformType
+    , ptKind
+    , ptName
+    , ptId
+
+    -- ** FloodlightActivityFloodlightActivityGroupType
+    , FloodlightActivityFloodlightActivityGroupType (..)
+
+    -- ** DirectorySiteContactsListSortOrder
+    , DirectorySiteContactsListSortOrder (..)
+
+    -- ** PricingGroupType
+    , PricingGroupType (..)
+
+    -- ** KeyValueTargetingExpression
+    , KeyValueTargetingExpression
+    , keyValueTargetingExpression
+    , kvteExpression
+
+    -- ** CompanionClickThroughOverride
+    , CompanionClickThroughOverride
+    , companionClickThroughOverride
+    , cctoCreativeId
+    , cctoClickThroughURL
+
+    -- ** AdsListCreativeType
+    , AdsListCreativeType (..)
+
+    -- ** FloodlightActivityGroupsListSortOrder
+    , FloodlightActivityGroupsListSortOrder (..)
+
+    -- ** CreativeRotationType
+    , CreativeRotationType (..)
+
+    -- ** OrdersListSortField
+    , OrdersListSortField (..)
+
+    -- ** PlacementGroupsListSortField
+    , PlacementGroupsListSortField (..)
+
+    -- ** DirectorySitesListSortOrder
+    , DirectorySitesListSortOrder (..)
+
+    -- ** AdvertisersListResponse
+    , AdvertisersListResponse
+    , advertisersListResponse
+    , advNextPageToken
+    , advKind
+    , advAdvertisers
+
+    -- ** CountriesListResponse
+    , CountriesListResponse
+    , countriesListResponse
+    , couKind
+    , couCountries
+
+    -- ** AccountPermissionGroupsListResponse
+    , AccountPermissionGroupsListResponse
+    , accountPermissionGroupsListResponse
+    , apglrKind
+    , apglrAccountPermissionGroups
+
+    -- ** PopupWindowProperties
+    , PopupWindowProperties
+    , popupWindowProperties
+    , pwpOffSet
+    , pwpDimension
+    , pwpShowStatusBar
+    , pwpShowMenuBar
+    , pwpPositionType
+    , pwpShowAddressBar
+    , pwpShowScrollBar
+    , pwpShowToolBar
+    , pwpTitle
+
+    -- ** CreativeAssetDetectedFeaturesItem
+    , CreativeAssetDetectedFeaturesItem (..)
+
+    -- ** FloodlightActivityGroupType
+    , FloodlightActivityGroupType (..)
+
+    -- ** DirectorySiteContactType
+    , DirectorySiteContactType (..)
+
+    -- ** EventTagOverride
+    , EventTagOverride
+    , eventTagOverride
+    , etoEnabled
+    , etoId
+
+    -- ** PlacementsGeneratetagsTagFormats
+    , PlacementsGeneratetagsTagFormats (..)
+
+    -- ** AccountUserProFilesListSortField
+    , AccountUserProFilesListSortField (..)
+
+    -- ** OperatingSystemVersion
+    , OperatingSystemVersion
+    , operatingSystemVersion
+    , osvMinorVersion
+    , osvKind
+    , osvOperatingSystem
+    , osvMajorVersion
+    , osvName
+    , osvId
+
+    -- ** InventoryItemsListSortOrder
+    , InventoryItemsListSortOrder (..)
+
+    -- ** PlacementStrategiesListSortOrder
+    , PlacementStrategiesListSortOrder (..)
+
+    -- ** AccountPermission
+    , AccountPermission
+    , accountPermission
+    , acccKind
+    , acccAccountProFiles
+    , acccName
+    , acccId
+    , acccLevel
+    , acccPermissionGroupId
+
+    -- ** UserProFile
+    , UserProFile
+    , userProFile
+    , upfEtag
+    , upfKind
+    , upfAccountName
+    , upfProFileId
+    , upfUserName
+    , upfAccountId
+    , upfSubAccountName
+    , upfSubAccountId
+
+    -- ** OperatingSystemsListResponse
+    , OperatingSystemsListResponse
+    , operatingSystemsListResponse
+    , oslrKind
+    , oslrOperatingSystems
+
+    -- ** ReportDelivery
+    , ReportDelivery
+    , reportDelivery
+    , rdEmailOwner
+    , rdRecipients
+    , rdMessage
+    , rdEmailOwnerDeliveryType
+
+    -- ** TargetableRemarketingList
+    , TargetableRemarketingList
+    , targetableRemarketingList
+    , trlListSize
+    , trlLifeSpan
+    , trlKind
+    , trlAdvertiserId
+    , trlAdvertiserIdDimensionValue
+    , trlActive
+    , trlAccountId
+    , trlName
+    , trlListSource
+    , trlId
+    , trlSubAccountId
+    , trlDescription
+
+    -- ** ReportsFilesListSortField
+    , ReportsFilesListSortField (..)
+
+    -- ** PostalCodesListResponse
+    , PostalCodesListResponse
+    , postalCodesListResponse
+    , pclrKind
+    , pclrPostalCodes
+
+    -- ** ChangeLog
+    , ChangeLog
+    , changeLog
+    , chaUserProFileId
+    , chaObjectType
+    , chaUserProFileName
+    , chaKind
+    , chaObjectId
+    , chaAction
+    , chaTransactionId
+    , chaOldValue
+    , chaAccountId
+    , chaNewValue
+    , chaFieldName
+    , chaId
+    , chaSubAccountId
+    , chaChangeTime
+
+    -- ** CreativesListSortField
+    , CreativesListSortField (..)
+
+    -- ** PlacementStrategy
+    , PlacementStrategy
+    , placementStrategy
+    , psKind
+    , psAccountId
+    , psName
+    , psId
+
+    -- ** FloodlightActivity
+    , FloodlightActivity
+    , floodlightActivity
+    , faCountingMethod
+    , faTagString
+    , faSecure
+    , faExpectedURL
+    , faFloodlightActivityGroupTagString
+    , faFloodlightConfigurationId
+    , faKind
+    , faImageTagEnabled
+    , faAdvertiserId
+    , faAdvertiserIdDimensionValue
+    , faSSLCompliant
+    , faIdDimensionValue
+    , faTagFormat
+    , faCacheBustingType
+    , faAccountId
+    , faName
+    , faPublisherTags
+    , faFloodlightActivityGroupId
+    , faHidden
+    , faFloodlightActivityGroupType
+    , faDefaultTags
+    , faFloodlightActivityGroupName
+    , faId
+    , faSSLRequired
+    , faUserDefinedVariableTypes
+    , faSubAccountId
+    , faNotes
+    , faFloodlightConfigurationIdDimensionValue
+
+    -- ** DayPartTargetingDaysOfWeekItem
+    , DayPartTargetingDaysOfWeekItem (..)
+
+    -- ** CreativeRotationWeightCalculationStrategy
+    , CreativeRotationWeightCalculationStrategy (..)
+
+    -- ** FilesListScope
+    , FilesListScope (..)
+
+    -- ** ContentCategoriesListSortField
+    , ContentCategoriesListSortField (..)
+
+    -- ** ProjectAudienceAgeGroup
+    , ProjectAudienceAgeGroup (..)
+
+    -- ** PlatformTypesListResponse
+    , PlatformTypesListResponse
+    , platformTypesListResponse
+    , ptlrKind
+    , ptlrPlatformTypes
+
+    -- ** AdType
+    , AdType (..)
+
+    -- ** LastModifiedInfo
+    , LastModifiedInfo
+    , lastModifiedInfo
+    , lmiTime
+
+    -- ** TargetWindow
+    , TargetWindow
+    , targetWindow
+    , twCustomHTML
+    , twTargetWindowOption
+
+    -- ** ChangeLogsListAction
+    , ChangeLogsListAction (..)
+
+    -- ** CreativeArtworkType
+    , CreativeArtworkType (..)
+
+    -- ** PlacementStatus
+    , PlacementStatus (..)
+
+    -- ** AccountPermissionGroup
+    , AccountPermissionGroup
+    , accountPermissionGroup
+    , apgpKind
+    , apgpName
+    , apgpId
+
+    -- ** Advertiser
+    , Advertiser
+    , advertiser
+    , advdOriginalFloodlightConfigurationId
+    , advdStatus
+    , advdFloodlightConfigurationId
+    , advdKind
+    , advdSuspended
+    , advdIdDimensionValue
+    , advdAccountId
+    , advdDefaultEmail
+    , advdName
+    , advdAdvertiserGroupId
+    , advdDefaultClickThroughEventTagId
+    , advdId
+    , advdSubAccountId
+    , advdFloodlightConfigurationIdDimensionValue
+    , advdClickThroughURLSuffix
+
+    -- ** ReportScheduleRunsOnDayOfMonth
+    , ReportScheduleRunsOnDayOfMonth (..)
+
+    -- ** UserRole
+    , UserRole
+    , userRole
+    , urParentUserRoleId
+    , urKind
+    , urDefaultUserRole
+    , urAccountId
+    , urName
+    , urId
+    , urPermissions
+    , urSubAccountId
+
+    -- ** FloodlightActivityUserDefinedVariableTypesItem
+    , FloodlightActivityUserDefinedVariableTypesItem (..)
+
+    -- ** EventTagSiteFilterType
+    , EventTagSiteFilterType (..)
+
+    -- ** ReportFormat
+    , ReportFormat (..)
+
+    -- ** PlacementGroupPlacementGroupType
+    , PlacementGroupPlacementGroupType (..)
+
+    -- ** DirectorySitesListResponse
+    , DirectorySitesListResponse
+    , directorySitesListResponse
+    , dslrNextPageToken
+    , dslrKind
+    , dslrDirectorySites
+
+    -- ** PricingPricingType
+    , PricingPricingType (..)
+
+    -- ** PricingSchedulePricingPeriod
+    , PricingSchedulePricingPeriod
+    , pricingSchedulePricingPeriod
+    , psppEndDate
+    , psppRateOrCostNanos
+    , psppStartDate
+    , psppUnits
+    , psppPricingComment
+
+    -- ** SubAccountsListSortOrder
+    , SubAccountsListSortOrder (..)
+
+    -- ** DirectorySiteContactsListResponse
+    , DirectorySiteContactsListResponse
+    , directorySiteContactsListResponse
+    , dsclrNextPageToken
+    , dsclrKind
+    , dsclrDirectorySiteContacts
+
+    -- ** Region
+    , Region
+    , region
+    , regRegionCode
+    , regKind
+    , regName
+    , regCountryCode
+    , regCountryDartId
+    , regDartId
+
+    -- ** AdvertiserGroupsListResponse
+    , AdvertiserGroupsListResponse
+    , advertiserGroupsListResponse
+    , aglrNextPageToken
+    , aglrKind
+    , aglrAdvertiserGroups
+
+    -- ** AdsListSortOrder
+    , AdsListSortOrder (..)
+
+    -- ** ProjectsListSortOrder
+    , ProjectsListSortOrder (..)
+
+    -- ** CreativeAssignment
+    , CreativeAssignment
+    , creativeAssignment
+    , caCreativeGroupAssignments
+    , caStartTime
+    , caWeight
+    , caRichMediaExitOverrides
+    , caSSLCompliant
+    , caCreativeId
+    , caClickThroughURL
+    , caApplyEventTags
+    , caActive
+    , caSequence
+    , caEndTime
+    , caCompanionCreativeOverrides
+    , caCreativeIdDimensionValue
+
+    -- ** DimensionFilter
+    , DimensionFilter
+    , dimensionFilter
+    , dfKind
+    , dfValue
+    , dfDimensionName
+
+    -- ** UserProFileList
+    , UserProFileList
+    , userProFileList
+    , upflEtag
+    , upflKind
+    , upflItems
+
+    -- ** RemarketingListsListSortField
+    , RemarketingListsListSortField (..)
+
+    -- ** FloodlightConfiguration
+    , FloodlightConfiguration
+    , floodlightConfiguration
+    , fcTagSettings
+    , fcExposureToConversionEnabled
+    , fcInAppAttributionTrackingEnabled
+    , fcThirdPartyAuthenticationTokens
+    , fcKind
+    , fcAdvertiserId
+    , fcAnalyticsDataSharingEnabled
+    , fcAdvertiserIdDimensionValue
+    , fcIdDimensionValue
+    , fcLookbackConfiguration
+    , fcAccountId
+    , fcId
+    , fcSSLRequired
+    , fcNATuralSearchConversionAttributionOption
+    , fcUserDefinedVariableConfigurations
+    , fcSubAccountId
+    , fcFirstDayOfWeek
+    , fcOmnitureSettings
+    , fcStandardVariableTypes
+
+    -- ** ReportScheduleRepeatsOnWeekDaysItem
+    , ReportScheduleRepeatsOnWeekDaysItem (..)
+
+    -- ** FloodlightActivityGroupsListResponse
+    , FloodlightActivityGroupsListResponse
+    , floodlightActivityGroupsListResponse
+    , faglrNextPageToken
+    , faglrKind
+    , faglrFloodlightActivityGroups
+
+    -- ** CreativeGroupAssignmentCreativeGroupNumber
+    , CreativeGroupAssignmentCreativeGroupNumber (..)
+
+    -- ** CreativeFieldValuesListResponse
+    , CreativeFieldValuesListResponse
+    , creativeFieldValuesListResponse
+    , cfvlrNextPageToken
+    , cfvlrKind
+    , cfvlrCreativeFieldValues
+
+    -- ** AccountsListSortField
+    , AccountsListSortField (..)
+
+    -- ** RichMediaExitOverride
+    , RichMediaExitOverride
+    , richMediaExitOverride
+    , rmeoUseCustomExitURL
+    , rmeoExitId
+    , rmeoCustomExitURL
+
+    -- ** AdvertisersListStatus
+    , AdvertisersListStatus (..)
+
+    -- ** DimensionValueMatchType
+    , DimensionValueMatchType (..)
+
+    -- ** SortedDimension
+    , SortedDimension
+    , sortedDimension
+    , sdKind
+    , sdSortOrder
+    , sdName
+
+    -- ** PlacementGroupsListSortOrder
+    , PlacementGroupsListSortOrder (..)
+
+    -- ** CreativeFieldsListResponse
+    , CreativeFieldsListResponse
+    , creativeFieldsListResponse
+    , cflrNextPageToken
+    , cflrKind
+    , cflrCreativeFields
+
+    -- ** PlacementsGenerateTagsResponse
+    , PlacementsGenerateTagsResponse
+    , placementsGenerateTagsResponse
+    , pgtrKind
+    , pgtrPlacementTags
+
+    -- ** CreativeAsset
+    , CreativeAsset
+    , creativeAsset
+    , caaZIndex
+    , caaPushdown
+    , caaVideoDuration
+    , caaOriginalBackup
+    , caaWindowMode
+    , caaFlashVersion
+    , caaPushdownDuration
+    , caaSize
+    , caaVerticallyLocked
+    , caaOffSet
+    , caaStreamingServingURL
+    , caaZipFilesize
+    , caaTransparency
+    , caaHideSelectionBoxes
+    , caaSSLCompliant
+    , caaFileSize
+    , caaAssetIdentifier
+    , caaDurationType
+    , caaProgressiveServingURL
+    , caaActive
+    , caaRole
+    , caaMimeType
+    , caaPositionTopUnit
+    , caaPositionLeftUnit
+    , caaAlignment
+    , caaExpandedDimension
+    , caaZipFilename
+    , caaActionScript3
+    , caaDisplayType
+    , caaChildAssetType
+    , caaCollapsedSize
+    , caaId
+    , caaBitRate
+    , caaCustomStartTimeValue
+    , caaStartTimeType
+    , caaDuration
+    , caaArtworkType
+    , caaHideFlashObjects
+    , caaDetectedFeatures
+    , caaBackupImageExit
+    , caaPosition
+    , caaHorizontallyLocked
+
+    -- ** AdCompatibility
+    , AdCompatibility (..)
+
+    -- ** CreativeFieldValuesListSortField
+    , CreativeFieldValuesListSortField (..)
+
+    -- ** PlacementsListResponse
+    , PlacementsListResponse
+    , placementsListResponse
+    , plaNextPageToken
+    , plaKind
+    , plaPlacements
+
+    -- ** FloodlightActivityGroupsListSortField
+    , FloodlightActivityGroupsListSortField (..)
+
+    -- ** OrdersListSortOrder
+    , OrdersListSortOrder (..)
+
+    -- ** ReportSchedule
+    , ReportSchedule
+    , reportSchedule
+    , rsEvery
+    , rsActive
+    , rsRepeats
+    , rsStartDate
+    , rsExpirationDate
+    , rsRunsOnDayOfMonth
+    , rsRepeatsOnWeekDays
+
+    -- ** ReportPathToConversionCriteria
+    , ReportPathToConversionCriteria
+    , reportPathToConversionCriteria
+    , rptccReportProperties
+    , rptccMetricNames
+    , rptccCustomRichMediaEvents
+    , rptccDateRange
+    , rptccConversionDimensions
+    , rptccCustomFloodlightVariables
+    , rptccFloodlightConfigId
+    , rptccActivityFilters
+    , rptccPerInteractionDimensions
+
+    -- ** MetrosListResponse
+    , MetrosListResponse
+    , metrosListResponse
+    , mlrKind
+    , mlrMetros
+
+    -- ** AccountAccountProFile
+    , AccountAccountProFile (..)
+
+    -- ** OrderDocumentsListResponse
+    , OrderDocumentsListResponse
+    , orderDocumentsListResponse
+    , odlrNextPageToken
+    , odlrKind
+    , odlrOrderDocuments
+
+    -- ** Recipient
+    , Recipient
+    , recipient
+    , recEmail
+    , recKind
+    , recDeliveryType
+
+    -- ** CreativeType
+    , CreativeType (..)
+
+    -- ** FilesListSortOrder
+    , FilesListSortOrder (..)
+
+    -- ** AdvertiserGroupsListSortField
+    , AdvertiserGroupsListSortField (..)
+
+    -- ** TargetWindowTargetWindowOption
+    , TargetWindowTargetWindowOption (..)
+
+    -- ** DirectorySiteContactsListSortField
+    , DirectorySiteContactsListSortField (..)
+
+    -- ** PlacementsListPricingTypes
+    , PlacementsListPricingTypes (..)
+
+    -- ** EventTagsListSortOrder
+    , EventTagsListSortOrder (..)
+
+    -- ** DirectorySitesListSortField
+    , DirectorySitesListSortField (..)
+
+    -- ** Site
+    , Site
+    , site
+    , ssKind
+    , ssKeyName
+    , ssSiteContacts
+    , ssSiteSettings
+    , ssIdDimensionValue
+    , ssDirectorySiteIdDimensionValue
+    , ssAccountId
+    , ssName
+    , ssDirectorySiteId
+    , ssId
+    , ssSubAccountId
+    , ssApproved
+
+    -- ** ReportCrossDimensionReachCriteriaDimension
+    , ReportCrossDimensionReachCriteriaDimension (..)
+
+    -- ** SitesListSortOrder
+    , SitesListSortOrder (..)
+
+    -- ** UserDefinedVariableConfiguration
+    , UserDefinedVariableConfiguration
+    , userDefinedVariableConfiguration
+    , udvcReportName
+    , udvcDataType
+    , udvcVariableType
+
+    -- ** ReportCrossDimensionReachCriteria
+    , ReportCrossDimensionReachCriteria
+    , reportCrossDimensionReachCriteria
+    , rcdrcPivoted
+    , rcdrcBreakdown
+    , rcdrcDimension
+    , rcdrcMetricNames
+    , rcdrcDimensionFilters
+    , rcdrcDateRange
+    , rcdrcOverlapMetricNames
+
+    -- ** FileURLs
+    , FileURLs
+    , fileURLs
+    , fuBrowserURL
+    , fuAPIURL
+
+    -- ** CampaignCreativeAssociationsListResponse
+    , CampaignCreativeAssociationsListResponse
+    , campaignCreativeAssociationsListResponse
+    , ccalrCampaignCreativeAssociations
+    , ccalrNextPageToken
+    , ccalrKind
+
+    -- ** PlacementTagFormatsItem
+    , PlacementTagFormatsItem (..)
+
+    -- ** Order
+    , Order
+    , order
+    , oSellerOrderId
+    , oSellerOrganizationName
+    , oKind
+    , oAdvertiserId
+    , oPlanningTermId
+    , oAccountId
+    , oName
+    , oSiteNames
+    , oLastModifiedInfo
+    , oBuyerOrganizationName
+    , oId
+    , oBuyerInvoiceId
+    , oComments
+    , oProjectId
+    , oSubAccountId
+    , oNotes
+    , oContacts
+    , oSiteId
+    , oTermsAndConditions
+    , oApproverUserProFileIds
+
+    -- ** CreativeAssetId
+    , CreativeAssetId
+    , creativeAssetId
+    , caiName
+    , caiType
+
+    -- ** FrequencyCap
+    , FrequencyCap
+    , frequencyCap
+    , fcImpressions
+    , fcDuration
+
+    -- ** File
+    , File
+    , file
+    , filStatus
+    , filEtag
+    , filKind
+    , filURLs
+    , filReportId
+    , filDateRange
+    , filFormat
+    , filLastModifiedTime
+    , filId
+    , filFileName
+
+    -- ** CreativeSettings
+    , CreativeSettings
+    , creativeSettings
+    , csIFrameHeader
+    , csIFrameFooter
+
+    -- ** ReportType
+    , ReportType (..)
+
+    -- ** CreativeAssetMetadataWarnedValidationRulesItem
+    , CreativeAssetMetadataWarnedValidationRulesItem (..)
+
+    -- ** CreativeGroupsListResponse
+    , CreativeGroupsListResponse
+    , creativeGroupsListResponse
+    , cglrCreativeGroups
+    , cglrNextPageToken
+    , cglrKind
+
+    -- ** AdSlotPaymentSourceType
+    , AdSlotPaymentSourceType (..)
+
+    -- ** MobileCarriersListResponse
+    , MobileCarriersListResponse
+    , mobileCarriersListResponse
+    , mclrMobileCarriers
+    , mclrKind
+
+    -- ** LandingPagesListResponse
+    , LandingPagesListResponse
+    , landingPagesListResponse
+    , lplrLandingPages
+    , lplrKind
+
+    -- ** AccountPermissionAccountProFilesItem
+    , AccountPermissionAccountProFilesItem (..)
+
+    -- ** CreativeAssetMetadata
+    , CreativeAssetMetadata
+    , creativeAssetMetadata
+    , camaKind
+    , camaAssetIdentifier
+    , camaClickTags
+    , camaWarnedValidationRules
+    , camaDetectedFeatures
+
+    -- ** OmnitureSettings
+    , OmnitureSettings
+    , omnitureSettings
+    , osOmnitureCostDataEnabled
+    , osOmnitureIntegrationEnabled
+
+    -- ** ConnectionType
+    , ConnectionType
+    , connectionType
+    , cttKind
+    , cttName
+    , cttId
+
+    -- ** CreativeCustomEventAdvertiserCustomEventType
+    , CreativeCustomEventAdvertiserCustomEventType (..)
+
+    -- ** PlacementGroup
+    , PlacementGroup
+    , placementGroup
+    , plalPlacementStrategyId
+    , plalSiteIdDimensionValue
+    , plalPricingSchedule
+    , plalKind
+    , plalCampaignIdDimensionValue
+    , plalAdvertiserId
+    , plalAdvertiserIdDimensionValue
+    , plalCampaignId
+    , plalIdDimensionValue
+    , plalPlacementGroupType
+    , plalContentCategoryId
+    , plalDirectorySiteIdDimensionValue
+    , plalAccountId
+    , plalName
+    , plalDirectorySiteId
+    , plalCreateInfo
+    , plalChildPlacementIds
+    , plalLastModifiedInfo
+    , plalId
+    , plalPrimaryPlacementId
+    , plalSubAccountId
+    , plalExternalId
+    , plalComment
+    , plalPrimaryPlacementIdDimensionValue
+    , plalSiteId
+    , plalArchived
+
+    -- ** EventTag
+    , EventTag
+    , eventTag
+    , etStatus
+    , etExcludeFromAdxRequests
+    , etEnabledByDefault
+    , etKind
+    , etCampaignIdDimensionValue
+    , etAdvertiserId
+    , etURL
+    , etAdvertiserIdDimensionValue
+    , etSSLCompliant
+    , etCampaignId
+    , etAccountId
+    , etName
+    , etURLEscapeLevels
+    , etSiteIds
+    , etId
+    , etSubAccountId
+    , etType
+    , etSiteFilterType
+
+    -- ** UserRolePermission
+    , UserRolePermission
+    , userRolePermission
+    , useKind
+    , useAvailability
+    , useName
+    , useId
+    , usePermissionGroupId
+
+    -- ** ChangeLogsListObjectType
+    , ChangeLogsListObjectType (..)
+
+    -- ** OrderContact
+    , OrderContact
+    , orderContact
+    , ocSignatureUserProFileId
+    , ocContactName
+    , ocContactTitle
+    , ocContactType
+    , ocContactInfo
+
+    -- ** FloodlightActivitiesGenerateTagResponse
+    , FloodlightActivitiesGenerateTagResponse
+    , floodlightActivitiesGenerateTagResponse
+    , fagtrFloodlightActivityTag
+    , fagtrKind
+
+    -- ** DirectorySiteContactAssignment
+    , DirectorySiteContactAssignment
+    , directorySiteContactAssignment
+    , dscaVisibility
+    , dscaContactId
+
+    -- ** AdSlot
+    , AdSlot
+    , adSlot
+    , assHeight
+    , assPaymentSourceType
+    , assLinkedPlacementId
+    , assWidth
+    , assPrimary
+    , assName
+    , assComment
+    , assCompatibility
+
+    -- ** ThirdPartyTrackingURL
+    , ThirdPartyTrackingURL
+    , thirdPartyTrackingURL
+    , tptuURL
+    , tptuThirdPartyURLType
+
+    -- ** PricingCapCostType
+    , PricingCapCostType (..)
+
+    -- ** OrderDocument
+    , OrderDocument
+    , orderDocument
+    , odSigned
+    , odKind
+    , odAdvertiserId
+    , odLastSentTime
+    , odAmendedOrderDocumentId
+    , odLastSentRecipients
+    , odEffectiveDate
+    , odApprovedByUserProFileIds
+    , odAccountId
+    , odId
+    , odProjectId
+    , odTitle
+    , odSubAccountId
+    , odType
+    , odOrderId
+    , odCancelled
+    , odCreatedInfo
+
+    -- ** Metro
+    , Metro
+    , metro
+    , metMetroCode
+    , metKind
+    , metName
+    , metCountryCode
+    , metDmaId
+    , metCountryDartId
+    , metDartId
+
+    -- ** CreativeAssetDisplayType
+    , CreativeAssetDisplayType (..)
+
+    -- ** Placement
+    , Placement
+    , placement
+    , p1Status
+    , p1PlacementStrategyId
+    , p1TagFormats
+    , p1SiteIdDimensionValue
+    , p1PricingSchedule
+    , p1Size
+    , p1Kind
+    , p1KeyName
+    , p1CampaignIdDimensionValue
+    , p1AdvertiserId
+    , p1AdvertiserIdDimensionValue
+    , p1CampaignId
+    , p1IdDimensionValue
+    , p1Primary
+    , p1LookbackConfiguration
+    , p1TagSetting
+    , p1ContentCategoryId
+    , p1DirectorySiteIdDimensionValue
+    , p1AccountId
+    , p1PaymentSource
+    , p1Name
+    , p1DirectorySiteId
+    , p1CreateInfo
+    , p1LastModifiedInfo
+    , p1Id
+    , p1SSLRequired
+    , p1SubAccountId
+    , p1PlacementGroupIdDimensionValue
+    , p1ExternalId
+    , p1PlacementGroupId
+    , p1Comment
+    , p1SiteId
+    , p1Compatibility
+    , p1Archived
+    , p1PaymentApproved
+    , p1PublisherUpdateInfo
+
+    -- ** FloodlightActivityCountingMethod
+    , FloodlightActivityCountingMethod (..)
+
+    -- ** SitesListResponse
+    , SitesListResponse
+    , sitesListResponse
+    , sitNextPageToken
+    , sitKind
+    , sitSites
+
+    -- ** ContentCategoriesListSortOrder
+    , ContentCategoriesListSortOrder (..)
+
+    -- ** CreativeField
+    , CreativeField
+    , creativeField
+    , cffKind
+    , cffAdvertiserId
+    , cffAdvertiserIdDimensionValue
+    , cffAccountId
+    , cffName
+    , cffId
+    , cffSubAccountId
+
+    -- ** AdvertiserStatus
+    , AdvertiserStatus (..)
+
+    -- ** DefaultClickThroughEventTagProperties
+    , DefaultClickThroughEventTagProperties
+    , defaultClickThroughEventTagProperties
+    , dctetpOverrideInheritedEventTag
+    , dctetpDefaultClickThroughEventTagId
+
+    -- ** ListTargetingExpression
+    , ListTargetingExpression
+    , listTargetingExpression
+    , lteExpression
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+import           Network.Google.Resource.DFAReporting.AccountActiveAdSummaries.Get
+import           Network.Google.Resource.DFAReporting.AccountPermissionGroups.Get
+import           Network.Google.Resource.DFAReporting.AccountPermissionGroups.List
+import           Network.Google.Resource.DFAReporting.AccountPermissions.Get
+import           Network.Google.Resource.DFAReporting.AccountPermissions.List
+import           Network.Google.Resource.DFAReporting.Accounts.Get
+import           Network.Google.Resource.DFAReporting.Accounts.List
+import           Network.Google.Resource.DFAReporting.Accounts.Patch
+import           Network.Google.Resource.DFAReporting.Accounts.Update
+import           Network.Google.Resource.DFAReporting.AccountUserProFiles.Get
+import           Network.Google.Resource.DFAReporting.AccountUserProFiles.Insert
+import           Network.Google.Resource.DFAReporting.AccountUserProFiles.List
+import           Network.Google.Resource.DFAReporting.AccountUserProFiles.Patch
+import           Network.Google.Resource.DFAReporting.AccountUserProFiles.Update
+import           Network.Google.Resource.DFAReporting.Ads.Get
+import           Network.Google.Resource.DFAReporting.Ads.Insert
+import           Network.Google.Resource.DFAReporting.Ads.List
+import           Network.Google.Resource.DFAReporting.Ads.Patch
+import           Network.Google.Resource.DFAReporting.Ads.Update
+import           Network.Google.Resource.DFAReporting.AdvertiserGroups.Delete
+import           Network.Google.Resource.DFAReporting.AdvertiserGroups.Get
+import           Network.Google.Resource.DFAReporting.AdvertiserGroups.Insert
+import           Network.Google.Resource.DFAReporting.AdvertiserGroups.List
+import           Network.Google.Resource.DFAReporting.AdvertiserGroups.Patch
+import           Network.Google.Resource.DFAReporting.AdvertiserGroups.Update
+import           Network.Google.Resource.DFAReporting.Advertisers.Get
+import           Network.Google.Resource.DFAReporting.Advertisers.Insert
+import           Network.Google.Resource.DFAReporting.Advertisers.List
+import           Network.Google.Resource.DFAReporting.Advertisers.Patch
+import           Network.Google.Resource.DFAReporting.Advertisers.Update
+import           Network.Google.Resource.DFAReporting.Browsers.List
+import           Network.Google.Resource.DFAReporting.CampaignCreativeAssociations.Insert
+import           Network.Google.Resource.DFAReporting.CampaignCreativeAssociations.List
+import           Network.Google.Resource.DFAReporting.Campaigns.Get
+import           Network.Google.Resource.DFAReporting.Campaigns.Insert
+import           Network.Google.Resource.DFAReporting.Campaigns.List
+import           Network.Google.Resource.DFAReporting.Campaigns.Patch
+import           Network.Google.Resource.DFAReporting.Campaigns.Update
+import           Network.Google.Resource.DFAReporting.ChangeLogs.Get
+import           Network.Google.Resource.DFAReporting.ChangeLogs.List
+import           Network.Google.Resource.DFAReporting.Cities.List
+import           Network.Google.Resource.DFAReporting.ConnectionTypes.Get
+import           Network.Google.Resource.DFAReporting.ConnectionTypes.List
+import           Network.Google.Resource.DFAReporting.ContentCategories.Delete
+import           Network.Google.Resource.DFAReporting.ContentCategories.Get
+import           Network.Google.Resource.DFAReporting.ContentCategories.Insert
+import           Network.Google.Resource.DFAReporting.ContentCategories.List
+import           Network.Google.Resource.DFAReporting.ContentCategories.Patch
+import           Network.Google.Resource.DFAReporting.ContentCategories.Update
+import           Network.Google.Resource.DFAReporting.Countries.Get
+import           Network.Google.Resource.DFAReporting.Countries.List
+import           Network.Google.Resource.DFAReporting.CreativeAssets.Insert
+import           Network.Google.Resource.DFAReporting.CreativeFields.Delete
+import           Network.Google.Resource.DFAReporting.CreativeFields.Get
+import           Network.Google.Resource.DFAReporting.CreativeFields.Insert
+import           Network.Google.Resource.DFAReporting.CreativeFields.List
+import           Network.Google.Resource.DFAReporting.CreativeFields.Patch
+import           Network.Google.Resource.DFAReporting.CreativeFields.Update
+import           Network.Google.Resource.DFAReporting.CreativeFieldValues.Delete
+import           Network.Google.Resource.DFAReporting.CreativeFieldValues.Get
+import           Network.Google.Resource.DFAReporting.CreativeFieldValues.Insert
+import           Network.Google.Resource.DFAReporting.CreativeFieldValues.List
+import           Network.Google.Resource.DFAReporting.CreativeFieldValues.Patch
+import           Network.Google.Resource.DFAReporting.CreativeFieldValues.Update
+import           Network.Google.Resource.DFAReporting.CreativeGroups.Get
+import           Network.Google.Resource.DFAReporting.CreativeGroups.Insert
+import           Network.Google.Resource.DFAReporting.CreativeGroups.List
+import           Network.Google.Resource.DFAReporting.CreativeGroups.Patch
+import           Network.Google.Resource.DFAReporting.CreativeGroups.Update
+import           Network.Google.Resource.DFAReporting.Creatives.Get
+import           Network.Google.Resource.DFAReporting.Creatives.Insert
+import           Network.Google.Resource.DFAReporting.Creatives.List
+import           Network.Google.Resource.DFAReporting.Creatives.Patch
+import           Network.Google.Resource.DFAReporting.Creatives.Update
+import           Network.Google.Resource.DFAReporting.DimensionValues.Query
+import           Network.Google.Resource.DFAReporting.DirectorySiteContacts.Get
+import           Network.Google.Resource.DFAReporting.DirectorySiteContacts.List
+import           Network.Google.Resource.DFAReporting.DirectorySites.Get
+import           Network.Google.Resource.DFAReporting.DirectorySites.Insert
+import           Network.Google.Resource.DFAReporting.DirectorySites.List
+import           Network.Google.Resource.DFAReporting.EventTags.Delete
+import           Network.Google.Resource.DFAReporting.EventTags.Get
+import           Network.Google.Resource.DFAReporting.EventTags.Insert
+import           Network.Google.Resource.DFAReporting.EventTags.List
+import           Network.Google.Resource.DFAReporting.EventTags.Patch
+import           Network.Google.Resource.DFAReporting.EventTags.Update
+import           Network.Google.Resource.DFAReporting.Files.Get
+import           Network.Google.Resource.DFAReporting.Files.List
+import           Network.Google.Resource.DFAReporting.FloodlightActivities.Delete
+import           Network.Google.Resource.DFAReporting.FloodlightActivities.Generatetag
+import           Network.Google.Resource.DFAReporting.FloodlightActivities.Get
+import           Network.Google.Resource.DFAReporting.FloodlightActivities.Insert
+import           Network.Google.Resource.DFAReporting.FloodlightActivities.List
+import           Network.Google.Resource.DFAReporting.FloodlightActivities.Patch
+import           Network.Google.Resource.DFAReporting.FloodlightActivities.Update
+import           Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Delete
+import           Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Get
+import           Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Insert
+import           Network.Google.Resource.DFAReporting.FloodlightActivityGroups.List
+import           Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Patch
+import           Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Update
+import           Network.Google.Resource.DFAReporting.FloodlightConfigurations.Get
+import           Network.Google.Resource.DFAReporting.FloodlightConfigurations.List
+import           Network.Google.Resource.DFAReporting.FloodlightConfigurations.Patch
+import           Network.Google.Resource.DFAReporting.FloodlightConfigurations.Update
+import           Network.Google.Resource.DFAReporting.InventoryItems.Get
+import           Network.Google.Resource.DFAReporting.InventoryItems.List
+import           Network.Google.Resource.DFAReporting.LandingPages.Delete
+import           Network.Google.Resource.DFAReporting.LandingPages.Get
+import           Network.Google.Resource.DFAReporting.LandingPages.Insert
+import           Network.Google.Resource.DFAReporting.LandingPages.List
+import           Network.Google.Resource.DFAReporting.LandingPages.Patch
+import           Network.Google.Resource.DFAReporting.LandingPages.Update
+import           Network.Google.Resource.DFAReporting.Metros.List
+import           Network.Google.Resource.DFAReporting.MobileCarriers.Get
+import           Network.Google.Resource.DFAReporting.MobileCarriers.List
+import           Network.Google.Resource.DFAReporting.OperatingSystems.Get
+import           Network.Google.Resource.DFAReporting.OperatingSystems.List
+import           Network.Google.Resource.DFAReporting.OperatingSystemVersions.Get
+import           Network.Google.Resource.DFAReporting.OperatingSystemVersions.List
+import           Network.Google.Resource.DFAReporting.OrderDocuments.Get
+import           Network.Google.Resource.DFAReporting.OrderDocuments.List
+import           Network.Google.Resource.DFAReporting.Orders.Get
+import           Network.Google.Resource.DFAReporting.Orders.List
+import           Network.Google.Resource.DFAReporting.PlacementGroups.Get
+import           Network.Google.Resource.DFAReporting.PlacementGroups.Insert
+import           Network.Google.Resource.DFAReporting.PlacementGroups.List
+import           Network.Google.Resource.DFAReporting.PlacementGroups.Patch
+import           Network.Google.Resource.DFAReporting.PlacementGroups.Update
+import           Network.Google.Resource.DFAReporting.Placements.Generatetags
+import           Network.Google.Resource.DFAReporting.Placements.Get
+import           Network.Google.Resource.DFAReporting.Placements.Insert
+import           Network.Google.Resource.DFAReporting.Placements.List
+import           Network.Google.Resource.DFAReporting.Placements.Patch
+import           Network.Google.Resource.DFAReporting.Placements.Update
+import           Network.Google.Resource.DFAReporting.PlacementStrategies.Delete
+import           Network.Google.Resource.DFAReporting.PlacementStrategies.Get
+import           Network.Google.Resource.DFAReporting.PlacementStrategies.Insert
+import           Network.Google.Resource.DFAReporting.PlacementStrategies.List
+import           Network.Google.Resource.DFAReporting.PlacementStrategies.Patch
+import           Network.Google.Resource.DFAReporting.PlacementStrategies.Update
+import           Network.Google.Resource.DFAReporting.PlatformTypes.Get
+import           Network.Google.Resource.DFAReporting.PlatformTypes.List
+import           Network.Google.Resource.DFAReporting.PostalCodes.Get
+import           Network.Google.Resource.DFAReporting.PostalCodes.List
+import           Network.Google.Resource.DFAReporting.Projects.Get
+import           Network.Google.Resource.DFAReporting.Projects.List
+import           Network.Google.Resource.DFAReporting.Regions.List
+import           Network.Google.Resource.DFAReporting.RemarketingLists.Get
+import           Network.Google.Resource.DFAReporting.RemarketingLists.Insert
+import           Network.Google.Resource.DFAReporting.RemarketingLists.List
+import           Network.Google.Resource.DFAReporting.RemarketingLists.Patch
+import           Network.Google.Resource.DFAReporting.RemarketingLists.Update
+import           Network.Google.Resource.DFAReporting.RemarketingListShares.Get
+import           Network.Google.Resource.DFAReporting.RemarketingListShares.Patch
+import           Network.Google.Resource.DFAReporting.RemarketingListShares.Update
+import           Network.Google.Resource.DFAReporting.Reports.CompatibleFields.Query
+import           Network.Google.Resource.DFAReporting.Reports.Delete
+import           Network.Google.Resource.DFAReporting.Reports.Files.Get
+import           Network.Google.Resource.DFAReporting.Reports.Files.List
+import           Network.Google.Resource.DFAReporting.Reports.Get
+import           Network.Google.Resource.DFAReporting.Reports.Insert
+import           Network.Google.Resource.DFAReporting.Reports.List
+import           Network.Google.Resource.DFAReporting.Reports.Patch
+import           Network.Google.Resource.DFAReporting.Reports.Run
+import           Network.Google.Resource.DFAReporting.Reports.Update
+import           Network.Google.Resource.DFAReporting.Sites.Get
+import           Network.Google.Resource.DFAReporting.Sites.Insert
+import           Network.Google.Resource.DFAReporting.Sites.List
+import           Network.Google.Resource.DFAReporting.Sites.Patch
+import           Network.Google.Resource.DFAReporting.Sites.Update
+import           Network.Google.Resource.DFAReporting.Sizes.Get
+import           Network.Google.Resource.DFAReporting.Sizes.Insert
+import           Network.Google.Resource.DFAReporting.Sizes.List
+import           Network.Google.Resource.DFAReporting.SubAccounts.Get
+import           Network.Google.Resource.DFAReporting.SubAccounts.Insert
+import           Network.Google.Resource.DFAReporting.SubAccounts.List
+import           Network.Google.Resource.DFAReporting.SubAccounts.Patch
+import           Network.Google.Resource.DFAReporting.SubAccounts.Update
+import           Network.Google.Resource.DFAReporting.TargetableRemarketingLists.Get
+import           Network.Google.Resource.DFAReporting.TargetableRemarketingLists.List
+import           Network.Google.Resource.DFAReporting.UserProFiles.Get
+import           Network.Google.Resource.DFAReporting.UserProFiles.List
+import           Network.Google.Resource.DFAReporting.UserRolePermissionGroups.Get
+import           Network.Google.Resource.DFAReporting.UserRolePermissionGroups.List
+import           Network.Google.Resource.DFAReporting.UserRolePermissions.Get
+import           Network.Google.Resource.DFAReporting.UserRolePermissions.List
+import           Network.Google.Resource.DFAReporting.UserRoles.Delete
+import           Network.Google.Resource.DFAReporting.UserRoles.Get
+import           Network.Google.Resource.DFAReporting.UserRoles.Insert
+import           Network.Google.Resource.DFAReporting.UserRoles.List
+import           Network.Google.Resource.DFAReporting.UserRoles.Patch
+import           Network.Google.Resource.DFAReporting.UserRoles.Update
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the DCM/DFA Reporting And Trafficking API service.
+type DFAReportingAPI =
+     InventoryItemsListResource :<|>
+       InventoryItemsGetResource
+       :<|> PlacementStrategiesInsertResource
+       :<|> PlacementStrategiesListResource
+       :<|> PlacementStrategiesPatchResource
+       :<|> PlacementStrategiesGetResource
+       :<|> PlacementStrategiesDeleteResource
+       :<|> PlacementStrategiesUpdateResource
+       :<|> CampaignCreativeAssociationsInsertResource
+       :<|> CampaignCreativeAssociationsListResource
+       :<|> RemarketingListSharesPatchResource
+       :<|> RemarketingListSharesGetResource
+       :<|> RemarketingListSharesUpdateResource
+       :<|> LandingPagesInsertResource
+       :<|> LandingPagesListResource
+       :<|> LandingPagesPatchResource
+       :<|> LandingPagesGetResource
+       :<|> LandingPagesDeleteResource
+       :<|> LandingPagesUpdateResource
+       :<|> MobileCarriersListResource
+       :<|> MobileCarriersGetResource
+       :<|> CreativeGroupsInsertResource
+       :<|> CreativeGroupsListResource
+       :<|> CreativeGroupsPatchResource
+       :<|> CreativeGroupsGetResource
+       :<|> CreativeGroupsUpdateResource
+       :<|> RemarketingListsInsertResource
+       :<|> RemarketingListsListResource
+       :<|> RemarketingListsPatchResource
+       :<|> RemarketingListsGetResource
+       :<|> RemarketingListsUpdateResource
+       :<|> AccountActiveAdSummariesGetResource
+       :<|> UserRolePermissionGroupsListResource
+       :<|> UserRolePermissionGroupsGetResource
+       :<|> AccountsListResource
+       :<|> AccountsPatchResource
+       :<|> AccountsGetResource
+       :<|> AccountsUpdateResource
+       :<|> ReportsCompatibleFieldsQueryResource
+       :<|> ReportsFilesListResource
+       :<|> ReportsFilesGetResource
+       :<|> ReportsInsertResource
+       :<|> ReportsListResource
+       :<|> ReportsPatchResource
+       :<|> ReportsGetResource
+       :<|> ReportsRunResource
+       :<|> ReportsDeleteResource
+       :<|> ReportsUpdateResource
+       :<|> CampaignsInsertResource
+       :<|> CampaignsListResource
+       :<|> CampaignsPatchResource
+       :<|> CampaignsGetResource
+       :<|> CampaignsUpdateResource
+       :<|> AccountUserProFilesInsertResource
+       :<|> AccountUserProFilesListResource
+       :<|> AccountUserProFilesPatchResource
+       :<|> AccountUserProFilesGetResource
+       :<|> AccountUserProFilesUpdateResource
+       :<|> CreativesInsertResource
+       :<|> CreativesListResource
+       :<|> CreativesPatchResource
+       :<|> CreativesGetResource
+       :<|> CreativesUpdateResource
+       :<|> DimensionValuesQueryResource
+       :<|> RegionsListResource
+       :<|> FloodlightConfigurationsListResource
+       :<|> FloodlightConfigurationsPatchResource
+       :<|> FloodlightConfigurationsGetResource
+       :<|> FloodlightConfigurationsUpdateResource
+       :<|> FloodlightActivitiesInsertResource
+       :<|> FloodlightActivitiesListResource
+       :<|> FloodlightActivitiesPatchResource
+       :<|> FloodlightActivitiesGetResource
+       :<|> FloodlightActivitiesGeneratetagResource
+       :<|> FloodlightActivitiesDeleteResource
+       :<|> FloodlightActivitiesUpdateResource
+       :<|> UserRolesInsertResource
+       :<|> UserRolesListResource
+       :<|> UserRolesPatchResource
+       :<|> UserRolesGetResource
+       :<|> UserRolesDeleteResource
+       :<|> UserRolesUpdateResource
+       :<|> AccountPermissionGroupsListResource
+       :<|> AccountPermissionGroupsGetResource
+       :<|> AdvertisersInsertResource
+       :<|> AdvertisersListResource
+       :<|> AdvertisersPatchResource
+       :<|> AdvertisersGetResource
+       :<|> AdvertisersUpdateResource
+       :<|> CountriesListResource
+       :<|> CountriesGetResource
+       :<|> AccountPermissionsListResource
+       :<|> AccountPermissionsGetResource
+       :<|> UserProFilesListResource
+       :<|> UserProFilesGetResource
+       :<|> OperatingSystemVersionsListResource
+       :<|> OperatingSystemVersionsGetResource
+       :<|> ChangeLogsListResource
+       :<|> ChangeLogsGetResource
+       :<|> CitiesListResource
+       :<|> TargetableRemarketingListsListResource
+       :<|> TargetableRemarketingListsGetResource
+       :<|> PlatformTypesListResource
+       :<|> PlatformTypesGetResource
+       :<|> BrowsersListResource
+       :<|> ContentCategoriesInsertResource
+       :<|> ContentCategoriesListResource
+       :<|> ContentCategoriesPatchResource
+       :<|> ContentCategoriesGetResource
+       :<|> ContentCategoriesDeleteResource
+       :<|> ContentCategoriesUpdateResource
+       :<|> PlacementsInsertResource
+       :<|> PlacementsGeneratetagsResource
+       :<|> PlacementsListResource
+       :<|> PlacementsPatchResource
+       :<|> PlacementsGetResource
+       :<|> PlacementsUpdateResource
+       :<|> MetrosListResource
+       :<|> OrderDocumentsListResource
+       :<|> OrderDocumentsGetResource
+       :<|> CreativeFieldsInsertResource
+       :<|> CreativeFieldsListResource
+       :<|> CreativeFieldsPatchResource
+       :<|> CreativeFieldsGetResource
+       :<|> CreativeFieldsDeleteResource
+       :<|> CreativeFieldsUpdateResource
+       :<|> EventTagsInsertResource
+       :<|> EventTagsListResource
+       :<|> EventTagsPatchResource
+       :<|> EventTagsGetResource
+       :<|> EventTagsDeleteResource
+       :<|> EventTagsUpdateResource
+       :<|> FilesListResource
+       :<|> FilesGetResource
+       :<|> UserRolePermissionsListResource
+       :<|> UserRolePermissionsGetResource
+       :<|> PlacementGroupsInsertResource
+       :<|> PlacementGroupsListResource
+       :<|> PlacementGroupsPatchResource
+       :<|> PlacementGroupsGetResource
+       :<|> PlacementGroupsUpdateResource
+       :<|> OrdersListResource
+       :<|> OrdersGetResource
+       :<|> ConnectionTypesListResource
+       :<|> ConnectionTypesGetResource
+       :<|> CreativeAssetsInsertResource
+       :<|> SitesInsertResource
+       :<|> SitesListResource
+       :<|> SitesPatchResource
+       :<|> SitesGetResource
+       :<|> SitesUpdateResource
+       :<|> PostalCodesListResource
+       :<|> PostalCodesGetResource
+       :<|> OperatingSystemsListResource
+       :<|> OperatingSystemsGetResource
+       :<|> SizesInsertResource
+       :<|> SizesListResource
+       :<|> SizesGetResource
+       :<|> AdsInsertResource
+       :<|> AdsListResource
+       :<|> AdsPatchResource
+       :<|> AdsGetResource
+       :<|> AdsUpdateResource
+       :<|> ProjectsListResource
+       :<|> ProjectsGetResource
+       :<|> SubAccountsInsertResource
+       :<|> SubAccountsListResource
+       :<|> SubAccountsPatchResource
+       :<|> SubAccountsGetResource
+       :<|> SubAccountsUpdateResource
+       :<|> CreativeFieldValuesInsertResource
+       :<|> CreativeFieldValuesListResource
+       :<|> CreativeFieldValuesPatchResource
+       :<|> CreativeFieldValuesGetResource
+       :<|> CreativeFieldValuesDeleteResource
+       :<|> CreativeFieldValuesUpdateResource
+       :<|> DirectorySitesInsertResource
+       :<|> DirectorySitesListResource
+       :<|> DirectorySitesGetResource
+       :<|> AdvertiserGroupsInsertResource
+       :<|> AdvertiserGroupsListResource
+       :<|> AdvertiserGroupsPatchResource
+       :<|> AdvertiserGroupsGetResource
+       :<|> AdvertiserGroupsDeleteResource
+       :<|> AdvertiserGroupsUpdateResource
+       :<|> DirectorySiteContactsListResource
+       :<|> DirectorySiteContactsGetResource
+       :<|> FloodlightActivityGroupsInsertResource
+       :<|> FloodlightActivityGroupsListResource
+       :<|> FloodlightActivityGroupsPatchResource
+       :<|> FloodlightActivityGroupsGetResource
+       :<|> FloodlightActivityGroupsDeleteResource
+       :<|> FloodlightActivityGroupsUpdateResource
diff --git a/gen/Network/Google/DFAReporting/Types.hs b/gen/Network/Google/DFAReporting/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DFAReporting/Types.hs
@@ -0,0 +1,2536 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.DFAReporting.Types
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.DFAReporting.Types
+    (
+    -- * Service Configuration
+      dFAReportingService
+
+    -- * OAuth Scopes
+    , dfareportingScope
+    , dfatraffickingScope
+
+    -- * PlacementsListSortOrder
+    , PlacementsListSortOrder (..)
+
+    -- * DateRangeRelativeDateRange
+    , DateRangeRelativeDateRange (..)
+
+    -- * AdvertisersListSortField
+    , AdvertisersListSortField (..)
+
+    -- * CreativeFieldsListSortOrder
+    , CreativeFieldsListSortOrder (..)
+
+    -- * FileList
+    , FileList
+    , fileList
+    , flEtag
+    , flNextPageToken
+    , flKind
+    , flItems
+
+    -- * OptimizationActivity
+    , OptimizationActivity
+    , optimizationActivity
+    , oaWeight
+    , oaFloodlightActivityId
+    , oaFloodlightActivityIdDimensionValue
+
+    -- * ListPopulationClause
+    , ListPopulationClause
+    , listPopulationClause
+    , lpcTerms
+
+    -- * CreativeCustomEvent
+    , CreativeCustomEvent
+    , creativeCustomEvent
+    , cceAdvertiserCustomEventType
+    , cceAdvertiserCustomEventName
+    , cceExitURL
+    , cceTargetType
+    , ccePopupWindowProperties
+    , cceVideoReportingId
+    , cceId
+    , cceArtworkLabel
+    , cceArtworkType
+
+    -- * ClickTag
+    , ClickTag
+    , clickTag
+    , ctValue
+    , ctName
+    , ctEventName
+
+    -- * CampaignsListResponse
+    , CampaignsListResponse
+    , campaignsListResponse
+    , clrNextPageToken
+    , clrCampaigns
+    , clrKind
+
+    -- * GeoTargeting
+    , GeoTargeting
+    , geoTargeting
+    , gtRegions
+    , gtCountries
+    , gtCities
+    , gtMetros
+    , gtExcludeCountries
+    , gtPostalCodes
+
+    -- * UserRolesListSortField
+    , UserRolesListSortField (..)
+
+    -- * ReachReportCompatibleFields
+    , ReachReportCompatibleFields
+    , reachReportCompatibleFields
+    , rrcfMetrics
+    , rrcfReachByFrequencyMetrics
+    , rrcfKind
+    , rrcfDimensionFilters
+    , rrcfPivotedActivityMetrics
+    , rrcfDimensions
+
+    -- * Browser
+    , Browser
+    , browser
+    , bMinorVersion
+    , bKind
+    , bBrowserVersionId
+    , bMajorVersion
+    , bName
+    , bDartId
+
+    -- * FloodlightActivityTagFormat
+    , FloodlightActivityTagFormat (..)
+
+    -- * OrderDocumentsListSortOrder
+    , OrderDocumentsListSortOrder (..)
+
+    -- * CreativeGroupAssignment
+    , CreativeGroupAssignment
+    , creativeGroupAssignment
+    , cgaCreativeGroupNumber
+    , cgaCreativeGroupId
+
+    -- * CreativeAssetRole
+    , CreativeAssetRole (..)
+
+    -- * RecipientDeliveryType
+    , RecipientDeliveryType (..)
+
+    -- * ThirdPartyTrackingURLThirdPartyURLType
+    , ThirdPartyTrackingURLThirdPartyURLType (..)
+
+    -- * DirectorySiteSettings
+    , DirectorySiteSettings
+    , directorySiteSettings
+    , dssInterstitialPlacementAccepted
+    , dssDfpSettings
+    , dssVerificationTagOptOut
+    , dssActiveViewOptOut
+    , dssVideoActiveViewOptOut
+    , dssInstreamVideoPlacementAccepted
+    , dssNielsenOCROptOut
+
+    -- * TargetableRemarketingListsListSortOrder
+    , TargetableRemarketingListsListSortOrder (..)
+
+    -- * CreativeAssetPositionLeftUnit
+    , CreativeAssetPositionLeftUnit (..)
+
+    -- * PricingScheduleCapCostOption
+    , PricingScheduleCapCostOption (..)
+
+    -- * ListPopulationRule
+    , ListPopulationRule
+    , listPopulationRule
+    , lprFloodlightActivityName
+    , lprFloodlightActivityId
+    , lprListPopulationClauses
+
+    -- * UserRolePermissionAvailability
+    , UserRolePermissionAvailability (..)
+
+    -- * DirectorySiteContactAssignmentVisibility
+    , DirectorySiteContactAssignmentVisibility (..)
+
+    -- * SizesListResponse
+    , SizesListResponse
+    , sizesListResponse
+    , slrKind
+    , slrSizes
+
+    -- * PlacementCompatibility
+    , PlacementCompatibility (..)
+
+    -- * CreativeRotation
+    , CreativeRotation
+    , creativeRotation
+    , crWeightCalculationStrategy
+    , crCreativeAssignments
+    , crCreativeOptimizationConfigurationId
+    , crType
+
+    -- * TechnologyTargeting
+    , TechnologyTargeting
+    , technologyTargeting
+    , ttMobileCarriers
+    , ttOperatingSystemVersions
+    , ttPlatformTypes
+    , ttBrowsers
+    , ttConnectionTypes
+    , ttOperatingSystems
+
+    -- * ListPopulationTermOperator
+    , ListPopulationTermOperator (..)
+
+    -- * PlacementsListPaymentSource
+    , PlacementsListPaymentSource (..)
+
+    -- * InventoryItem
+    , InventoryItem
+    , inventoryItem
+    , iiPlacementStrategyId
+    , iiEstimatedClickThroughRate
+    , iiPricing
+    , iiKind
+    , iiAdvertiserId
+    , iiRfpId
+    , iiContentCategoryId
+    , iiInPlan
+    , iiAccountId
+    , iiName
+    , iiAdSlots
+    , iiNegotiationChannelId
+    , iiLastModifiedInfo
+    , iiId
+    , iiEstimatedConversionRate
+    , iiProjectId
+    , iiSubAccountId
+    , iiOrderId
+    , iiSiteId
+
+    -- * ProjectsListResponse
+    , ProjectsListResponse
+    , projectsListResponse
+    , plrNextPageToken
+    , plrKind
+    , plrProjects
+
+    -- * AdsListResponse
+    , AdsListResponse
+    , adsListResponse
+    , alrNextPageToken
+    , alrKind
+    , alrAds
+
+    -- * ReportsListSortField
+    , ReportsListSortField (..)
+
+    -- * AdSlotCompatibility
+    , AdSlotCompatibility (..)
+
+    -- * ListPopulationTerm
+    , ListPopulationTerm
+    , listPopulationTerm
+    , lptOperator
+    , lptValue
+    , lptVariableFriendlyName
+    , lptNegation
+    , lptVariableName
+    , lptRemarketingListId
+    , lptType
+    , lptContains
+
+    -- * TagSettings
+    , TagSettings
+    , tagSettings
+    , tsDynamicTagEnabled
+    , tsImageTagEnabled
+
+    -- * SubAccountsListResponse
+    , SubAccountsListResponse
+    , subAccountsListResponse
+    , salrNextPageToken
+    , salrKind
+    , salrSubAccounts
+
+    -- * CampaignsListSortField
+    , CampaignsListSortField (..)
+
+    -- * DirectorySiteContact
+    , DirectorySiteContact
+    , directorySiteContact
+    , dscEmail
+    , dscPhone
+    , dscLastName
+    , dscKind
+    , dscAddress
+    , dscRole
+    , dscFirstName
+    , dscId
+    , dscTitle
+    , dscType
+
+    -- * RegionsListResponse
+    , RegionsListResponse
+    , regionsListResponse
+    , rlrKind
+    , rlrRegions
+
+    -- * FloodlightActivityDynamicTag
+    , FloodlightActivityDynamicTag
+    , floodlightActivityDynamicTag
+    , fadtTag
+    , fadtName
+    , fadtId
+
+    -- * AccountUserProFileTraffickerType
+    , AccountUserProFileTraffickerType (..)
+
+    -- * DirectorySite
+    , DirectorySite
+    , directorySite
+    , dsCurrencyId
+    , dsSettings
+    , dsInterstitialTagFormats
+    , dsKind
+    , dsURL
+    , dsIdDimensionValue
+    , dsInpageTagFormats
+    , dsActive
+    , dsName
+    , dsId
+    , dsCountryId
+    , dsContactAssignments
+    , dsDescription
+    , dsParentId
+
+    -- * CreativeAssetMetadataDetectedFeaturesItem
+    , CreativeAssetMetadataDetectedFeaturesItem (..)
+
+    -- * ReportFloodlightCriteriaReportProperties
+    , ReportFloodlightCriteriaReportProperties
+    , reportFloodlightCriteriaReportProperties
+    , rfcrpIncludeUnattributedIPConversions
+    , rfcrpIncludeUnattributedCookieConversions
+    , rfcrpIncludeAttributedIPConversions
+
+    -- * FloodlightActivityGroup
+    , FloodlightActivityGroup
+    , floodlightActivityGroup
+    , fagTagString
+    , fagFloodlightConfigurationId
+    , fagKind
+    , fagAdvertiserId
+    , fagAdvertiserIdDimensionValue
+    , fagIdDimensionValue
+    , fagAccountId
+    , fagName
+    , fagId
+    , fagSubAccountId
+    , fagType
+    , fagFloodlightConfigurationIdDimensionValue
+
+    -- * AdsListCompatibility
+    , AdsListCompatibility (..)
+
+    -- * CrossDimensionReachReportCompatibleFields
+    , CrossDimensionReachReportCompatibleFields
+    , crossDimensionReachReportCompatibleFields
+    , cdrrcfMetrics
+    , cdrrcfBreakdown
+    , cdrrcfKind
+    , cdrrcfDimensionFilters
+    , cdrrcfOverlapMetrics
+
+    -- * FsCommand
+    , FsCommand
+    , fsCommand
+    , fcPositionOption
+    , fcLeft
+    , fcWindowHeight
+    , fcWindowWidth
+    , fcTop
+
+    -- * PlacementAssignment
+    , PlacementAssignment
+    , placementAssignment
+    , paPlacementId
+    , paPlacementIdDimensionValue
+    , paActive
+    , paSSLRequired
+
+    -- * CreativeFieldValue
+    , CreativeFieldValue
+    , creativeFieldValue
+    , cfvKind
+    , cfvValue
+    , cfvId
+
+    -- * EventTagStatus
+    , EventTagStatus (..)
+
+    -- * SitesListSortField
+    , SitesListSortField (..)
+
+    -- * DimensionValueRequest
+    , DimensionValueRequest
+    , dimensionValueRequest
+    , dvrKind
+    , dvrEndDate
+    , dvrFilters
+    , dvrStartDate
+    , dvrDimensionName
+
+    -- * EventTagsListEventTagTypes
+    , EventTagsListEventTagTypes (..)
+
+    -- * FloodlightConfigurationsListResponse
+    , FloodlightConfigurationsListResponse
+    , floodlightConfigurationsListResponse
+    , fclrKind
+    , fclrFloodlightConfigurations
+
+    -- * FloodlightActivitiesListResponse
+    , FloodlightActivitiesListResponse
+    , floodlightActivitiesListResponse
+    , falrNextPageToken
+    , falrKind
+    , falrFloodlightActivities
+
+    -- * FileStatus
+    , FileStatus (..)
+
+    -- * CreativeCustomEventArtworkType
+    , CreativeCustomEventArtworkType (..)
+
+    -- * CreativeFieldAssignment
+    , CreativeFieldAssignment
+    , creativeFieldAssignment
+    , cfaCreativeFieldId
+    , cfaCreativeFieldValueId
+
+    -- * AdvertiserGroup
+    , AdvertiserGroup
+    , advertiserGroup
+    , agKind
+    , agAccountId
+    , agName
+    , agId
+
+    -- * TagData
+    , TagData
+    , tagData
+    , tdClickTag
+    , tdFormat
+    , tdCreativeId
+    , tdAdId
+    , tdImpressionTag
+
+    -- * DayPartTargeting
+    , DayPartTargeting
+    , dayPartTargeting
+    , dptDaysOfWeek
+    , dptHoursOfDay
+    , dptUserLocalTime
+
+    -- * CreativeOptimizationConfiguration
+    , CreativeOptimizationConfiguration
+    , creativeOptimizationConfiguration
+    , cocOptimizationModel
+    , cocName
+    , cocOptimizationActivitys
+    , cocId
+
+    -- * ReportCriteria
+    , ReportCriteria
+    , reportCriteria
+    , rcMetricNames
+    , rcCustomRichMediaEvents
+    , rcDimensionFilters
+    , rcActivities
+    , rcDateRange
+    , rcDimensions
+
+    -- * FloodlightConfigurationNATuralSearchConversionAttributionOption
+    , FloodlightConfigurationNATuralSearchConversionAttributionOption (..)
+
+    -- * PlacementStrategiesListResponse
+    , PlacementStrategiesListResponse
+    , placementStrategiesListResponse
+    , pslrPlacementStrategies
+    , pslrNextPageToken
+    , pslrKind
+
+    -- * CreativeAssetArtworkType
+    , CreativeAssetArtworkType (..)
+
+    -- * SubAccount
+    , SubAccount
+    , subAccount
+    , saKind
+    , saAvailablePermissionIds
+    , saAccountId
+    , saName
+    , saId
+
+    -- * InventoryItemsListResponse
+    , InventoryItemsListResponse
+    , inventoryItemsListResponse
+    , iilrInventoryItems
+    , iilrNextPageToken
+    , iilrKind
+
+    -- * Ad
+    , Ad
+    , ad
+    , aCreativeGroupAssignments
+    , aGeoTargeting
+    , aCreativeRotation
+    , aTechnologyTargeting
+    , aAudienceSegmentId
+    , aDayPartTargeting
+    , aSize
+    , aStartTime
+    , aKind
+    , aClickThroughURLSuffixProperties
+    , aCampaignIdDimensionValue
+    , aAdvertiserId
+    , aAdvertiserIdDimensionValue
+    , aSSLCompliant
+    , aCampaignId
+    , aIdDimensionValue
+    , aClickThroughURL
+    , aDeliverySchedule
+    , aEventTagOverrides
+    , aActive
+    , aAccountId
+    , aName
+    , aKeyValueTargetingExpression
+    , aEndTime
+    , aCreateInfo
+    , aLastModifiedInfo
+    , aId
+    , aSSLRequired
+    , aComments
+    , aSubAccountId
+    , aType
+    , aRemarketingListExpression
+    , aDynamicClickTracker
+    , aCompatibility
+    , aArchived
+    , aDefaultClickThroughEventTagProperties
+    , aPlacementAssignments
+
+    -- * FloodlightActivitiesListSortOrder
+    , FloodlightActivitiesListSortOrder (..)
+
+    -- * Project
+    , Project
+    , project
+    , pTargetClicks
+    , pClientBillingCode
+    , pTargetCpmNanos
+    , pTargetConversions
+    , pBudget
+    , pKind
+    , pAdvertiserId
+    , pEndDate
+    , pOverview
+    , pTargetImpressions
+    , pStartDate
+    , pTargetCpcNanos
+    , pAccountId
+    , pName
+    , pLastModifiedInfo
+    , pId
+    , pAudienceAgeGroup
+    , pSubAccountId
+    , pAudienceGender
+    , pClientName
+    , pTargetCpaNanos
+
+    -- * FileFormat
+    , FileFormat (..)
+
+    -- * PricingSchedulePricingType
+    , PricingSchedulePricingType (..)
+
+    -- * ReportFloodlightCriteria
+    , ReportFloodlightCriteria
+    , reportFloodlightCriteria
+    , rfcReportProperties
+    , rfcMetricNames
+    , rfcCustomRichMediaEvents
+    , rfcDimensionFilters
+    , rfcDateRange
+    , rfcFloodlightConfigId
+    , rfcDimensions
+
+    -- * CreativeCustomEventTargetType
+    , CreativeCustomEventTargetType (..)
+
+    -- * ReportsListScope
+    , ReportsListScope (..)
+
+    -- * Size
+    , Size
+    , size
+    , sHeight
+    , sKind
+    , sWidth
+    , sIab
+    , sId
+
+    -- * CreativeAssetDurationType
+    , CreativeAssetDurationType (..)
+
+    -- * TargetableRemarketingListListSource
+    , TargetableRemarketingListListSource (..)
+
+    -- * ObjectFilter
+    , ObjectFilter
+    , objectFilter
+    , ofStatus
+    , ofKind
+    , ofObjectIds
+
+    -- * CreativeGroupsListSortField
+    , CreativeGroupsListSortField (..)
+
+    -- * ReportsConfiguration
+    , ReportsConfiguration
+    , reportsConfiguration
+    , rcExposureToConversionEnabled
+    , rcReportGenerationTimeZoneId
+    , rcLookbackConfiguration
+
+    -- * PricingSchedule
+    , PricingSchedule
+    , pricingSchedule
+    , psTestingStartDate
+    , psFloodlightActivityId
+    , psEndDate
+    , psDisregardOverdelivery
+    , psStartDate
+    , psCapCostOption
+    , psPricingType
+    , psPricingPeriods
+    , psFlighted
+
+    -- * PostalCode
+    , PostalCode
+    , postalCode
+    , pcKind
+    , pcCode
+    , pcCountryCode
+    , pcId
+    , pcCountryDartId
+
+    -- * AccountPermissionsListResponse
+    , AccountPermissionsListResponse
+    , accountPermissionsListResponse
+    , aplrKind
+    , aplrAccountPermissions
+
+    -- * Country
+    , Country
+    , country
+    , cKind
+    , cName
+    , cCountryCode
+    , cDartId
+    , cSSLEnabled
+
+    -- * PlacementsListSortField
+    , PlacementsListSortField (..)
+
+    -- * CreativeBackupImageFeaturesItem
+    , CreativeBackupImageFeaturesItem (..)
+
+    -- * OperatingSystemVersionsListResponse
+    , OperatingSystemVersionsListResponse
+    , operatingSystemVersionsListResponse
+    , osvlrKind
+    , osvlrOperatingSystemVersions
+
+    -- * ClickThroughURLSuffixProperties
+    , ClickThroughURLSuffixProperties
+    , clickThroughURLSuffixProperties
+    , ctuspOverrideInheritedSuffix
+    , ctuspClickThroughURLSuffix
+
+    -- * AdvertisersListSortOrder
+    , AdvertisersListSortOrder (..)
+
+    -- * CreativeFieldsListSortField
+    , CreativeFieldsListSortField (..)
+
+    -- * Pricing
+    , Pricing
+    , pricing
+    , priEndDate
+    , priStartDate
+    , priGroupType
+    , priPricingType
+    , priFlights
+    , priCapCostType
+
+    -- * AudienceSegmentGroup
+    , AudienceSegmentGroup
+    , audienceSegmentGroup
+    , asgAudienceSegments
+    , asgName
+    , asgId
+
+    -- * OperatingSystem
+    , OperatingSystem
+    , operatingSystem
+    , osDesktop
+    , osKind
+    , osName
+    , osMobile
+    , osDartId
+
+    -- * Flight
+    , Flight
+    , flight
+    , fRateOrCost
+    , fEndDate
+    , fStartDate
+    , fUnits
+
+    -- * UserDefinedVariableConfigurationVariableType
+    , UserDefinedVariableConfigurationVariableType (..)
+
+    -- * FsCommandPositionOption
+    , FsCommandPositionOption (..)
+
+    -- * CitiesListResponse
+    , CitiesListResponse
+    , citiesListResponse
+    , citKind
+    , citCities
+
+    -- * Dimension
+    , Dimension
+    , dimension
+    , dKind
+    , dName
+
+    -- * ReportReachCriteria
+    , ReportReachCriteria
+    , reportReachCriteria
+    , rrcReachByFrequencyMetricNames
+    , rrcEnableAllDimensionCombinations
+    , rrcMetricNames
+    , rrcCustomRichMediaEvents
+    , rrcDimensionFilters
+    , rrcActivities
+    , rrcDateRange
+    , rrcDimensions
+
+    -- * CustomRichMediaEvents
+    , CustomRichMediaEvents
+    , customRichMediaEvents
+    , crmeKind
+    , crmeFilteredEventIds
+
+    -- * UserRolesListSortOrder
+    , UserRolesListSortOrder (..)
+
+    -- * PlacementsListCompatibilities
+    , PlacementsListCompatibilities (..)
+
+    -- * TargetableRemarketingListsListResponse
+    , TargetableRemarketingListsListResponse
+    , targetableRemarketingListsListResponse
+    , trllrNextPageToken
+    , trllrKind
+    , trllrTargetableRemarketingLists
+
+    -- * OrderDocumentsListSortField
+    , OrderDocumentsListSortField (..)
+
+    -- * CreativeCompatibilityItem
+    , CreativeCompatibilityItem (..)
+
+    -- * ChangeLogsListResponse
+    , ChangeLogsListResponse
+    , changeLogsListResponse
+    , cllrNextPageToken
+    , cllrKind
+    , cllrChangeLogs
+
+    -- * ReportDeliveryEmailOwnerDeliveryType
+    , ReportDeliveryEmailOwnerDeliveryType (..)
+
+    -- * SiteContactContactType
+    , SiteContactContactType (..)
+
+    -- * AccountUserProFile
+    , AccountUserProFile
+    , accountUserProFile
+    , aupfEmail
+    , aupfUserRoleFilter
+    , aupfAdvertiserFilter
+    , aupfUserRoleId
+    , aupfKind
+    , aupfLocale
+    , aupfSiteFilter
+    , aupfTraffickerType
+    , aupfActive
+    , aupfAccountId
+    , aupfName
+    , aupfId
+    , aupfUserAccessType
+    , aupfComments
+    , aupfSubAccountId
+    , aupfCampaignFilter
+
+    -- * ReportsListSortOrder
+    , ReportsListSortOrder (..)
+
+    -- * DimensionValue
+    , DimensionValue
+    , dimensionValue
+    , dvEtag
+    , dvKind
+    , dvValue
+    , dvMatchType
+    , dvDimensionName
+    , dvId
+
+    -- * TargetableRemarketingListsListSortField
+    , TargetableRemarketingListsListSortField (..)
+
+    -- * CampaignsListSortOrder
+    , CampaignsListSortOrder (..)
+
+    -- * Activities
+    , Activities
+    , activities
+    , actKind
+    , actMetricNames
+    , actFilters
+
+    -- * FloodlightActivityGroupsListType
+    , FloodlightActivityGroupsListType (..)
+
+    -- * FloodlightConfigurationFirstDayOfWeek
+    , FloodlightConfigurationFirstDayOfWeek (..)
+
+    -- * UserRolePermissionGroupsListResponse
+    , UserRolePermissionGroupsListResponse
+    , userRolePermissionGroupsListResponse
+    , urpglrUserRolePermissionGroups
+    , urpglrKind
+
+    -- * PlacementTag
+    , PlacementTag
+    , placementTag
+    , ptPlacementId
+    , ptTagDatas
+
+    -- * DeliverySchedulePriority
+    , DeliverySchedulePriority (..)
+
+    -- * FloodlightActivitiesListFloodlightActivityGroupType
+    , FloodlightActivitiesListFloodlightActivityGroupType (..)
+
+    -- * RemarketingListsListResponse
+    , RemarketingListsListResponse
+    , remarketingListsListResponse
+    , rllrNextPageToken
+    , rllrRemarketingLists
+    , rllrKind
+
+    -- * Creative
+    , Creative
+    , creative
+    , creConvertFlashToHTML5
+    , creBackupImageTargetWindow
+    , creRenderingIdDimensionValue
+    , creCustomKeyValues
+    , creVideoDuration
+    , creRenderingId
+    , creThirdPartyBackupImageImpressionsURL
+    , creFsCommand
+    , creAllowScriptAccess
+    , creHTMLCodeLocked
+    , creRequiredFlashPluginVersion
+    , creAuthoringTool
+    , creSize
+    , creThirdPartyURLs
+    , creCounterCustomEvents
+    , creKind
+    , creSSLOverride
+    , creHTMLCode
+    , creAdvertiserId
+    , creRequiredFlashVersion
+    , creBackgRoundColor
+    , creAdTagKeys
+    , creSkippable
+    , creSSLCompliant
+    , creIdDimensionValue
+    , creBackupImageReportingLabel
+    , creCommercialId
+    , creActive
+    , creExitCustomEvents
+    , creAccountId
+    , creBackupImageClickThroughURL
+    , creName
+    , creOverrideCss
+    , creVideoDescription
+    , creClickTags
+    , creAdParameters
+    , creVersion
+    , creLatestTraffickedCreativeId
+    , creThirdPartyRichMediaImpressionsURL
+    , creLastModifiedInfo
+    , creId
+    , creStudioAdvertiserId
+    , creCreativeAssets
+    , creSubAccountId
+    , creType
+    , creTimerCustomEvents
+    , creStudioCreativeId
+    , creCompatibility
+    , creBackupImageFeatures
+    , creArtworkType
+    , creArchived
+    , creCompanionCreatives
+    , creTotalFileSize
+    , creStudioTraffickedCreativeId
+    , creRedirectURL
+    , creAutoAdvanceImages
+    , creCreativeFieldAssignments
+
+    -- * SiteContact
+    , SiteContact
+    , siteContact
+    , scEmail
+    , scPhone
+    , scLastName
+    , scAddress
+    , scFirstName
+    , scId
+    , scTitle
+    , scContactType
+
+    -- * AccountsListResponse
+    , AccountsListResponse
+    , accountsListResponse
+    , accNextPageToken
+    , accAccounts
+    , accKind
+
+    -- * DateRange
+    , DateRange
+    , dateRange
+    , drKind
+    , drEndDate
+    , drStartDate
+    , drRelativeDateRange
+
+    -- * FloodlightConfigurationStandardVariableTypesItem
+    , FloodlightConfigurationStandardVariableTypesItem (..)
+
+    -- * Report
+    , Report
+    , report
+    , rDelivery
+    , rEtag
+    , rOwnerProFileId
+    , rSchedule
+    , rPathToConversionCriteria
+    , rKind
+    , rFormat
+    , rReachCriteria
+    , rLastModifiedTime
+    , rAccountId
+    , rName
+    , rId
+    , rCrossDimensionReachCriteria
+    , rType
+    , rSubAccountId
+    , rFloodlightCriteria
+    , rCriteria
+    , rFileName
+
+    -- * PlacementPaymentSource
+    , PlacementPaymentSource (..)
+
+    -- * ReportsFilesListSortOrder
+    , ReportsFilesListSortOrder (..)
+
+    -- * Campaign
+    , Campaign
+    , campaign
+    , camCreativeOptimizationConfiguration
+    , camCreativeGroupIds
+    , camNielsenOCREnabled
+    , camKind
+    , camClickThroughURLSuffixProperties
+    , camAdvertiserId
+    , camEndDate
+    , camAdvertiserIdDimensionValue
+    , camIdDimensionValue
+    , camEventTagOverrides
+    , camLookbackConfiguration
+    , camStartDate
+    , camAccountId
+    , camComscoreVceEnabled
+    , camName
+    , camAdvertiserGroupId
+    , camBillingInvoiceCode
+    , camCreateInfo
+    , camLastModifiedInfo
+    , camId
+    , camSubAccountId
+    , camAdditionalCreativeOptimizationConfigurations
+    , camExternalId
+    , camComment
+    , camAudienceSegmentGroups
+    , camArchived
+    , camTraffickerEmails
+    , camDefaultClickThroughEventTagProperties
+
+    -- * InventoryItemsListSortField
+    , InventoryItemsListSortField (..)
+
+    -- * EventTagType
+    , EventTagType (..)
+
+    -- * CreativesListSortOrder
+    , CreativesListSortOrder (..)
+
+    -- * ThirdPartyAuthenticationToken
+    , ThirdPartyAuthenticationToken
+    , thirdPartyAuthenticationToken
+    , tpatValue
+    , tpatName
+
+    -- * PopupWindowPropertiesPositionType
+    , PopupWindowPropertiesPositionType (..)
+
+    -- * DirectorySiteContactRole
+    , DirectorySiteContactRole (..)
+
+    -- * ClickThroughURL
+    , ClickThroughURL
+    , clickThroughURL
+    , ctuDefaultLandingPage
+    , ctuComputedClickThroughURL
+    , ctuCustomClickThroughURL
+    , ctuLandingPageId
+
+    -- * TagSettingKeywordOption
+    , TagSettingKeywordOption (..)
+
+    -- * CreativeAuthoringTool
+    , CreativeAuthoringTool (..)
+
+    -- * OrderContactContactType
+    , OrderContactContactType (..)
+
+    -- * CreativeAssetIdType
+    , CreativeAssetIdType (..)
+
+    -- * AccountUserProFilesListSortOrder
+    , AccountUserProFilesListSortOrder (..)
+
+    -- * RemarketingListListSource
+    , RemarketingListListSource (..)
+
+    -- * BrowsersListResponse
+    , BrowsersListResponse
+    , browsersListResponse
+    , blrKind
+    , blrBrowsers
+
+    -- * AccountUserProFileUserAccessType
+    , AccountUserProFileUserAccessType (..)
+
+    -- * CreativeAssetStartTimeType
+    , CreativeAssetStartTimeType (..)
+
+    -- * ProjectAudienceGender
+    , ProjectAudienceGender (..)
+
+    -- * SiteSettings
+    , SiteSettings
+    , siteSettings
+    , ssDisableNewCookie
+    , ssDisableBrandSafeAds
+    , ssLookbackConfiguration
+    , ssTagSetting
+    , ssActiveViewOptOut
+    , ssCreativeSettings
+
+    -- * PlacementStrategiesListSortField
+    , PlacementStrategiesListSortField (..)
+
+    -- * ContentCategoriesListResponse
+    , ContentCategoriesListResponse
+    , contentCategoriesListResponse
+    , cclrNextPageToken
+    , cclrKind
+    , cclrContentCategories
+
+    -- * UserDefinedVariableConfigurationDataType
+    , UserDefinedVariableConfigurationDataType (..)
+
+    -- * FloodlightActivityCacheBustingType
+    , FloodlightActivityCacheBustingType (..)
+
+    -- * CreativesListResponse
+    , CreativesListResponse
+    , creativesListResponse
+    , clrlNextPageToken
+    , clrlKind
+    , clrlCreatives
+
+    -- * CreativeGroupsListSortOrder
+    , CreativeGroupsListSortOrder (..)
+
+    -- * OrderDocumentType
+    , OrderDocumentType (..)
+
+    -- * TagDataFormat
+    , TagDataFormat (..)
+
+    -- * Account
+    , Account
+    , account
+    , aaAccountPermissionIds
+    , aaMaximumImageSize
+    , aaCurrencyId
+    , aaReportsConfiguration
+    , aaNielsenOCREnabled
+    , aaKind
+    , aaLocale
+    , aaActive
+    , aaAvailablePermissionIds
+    , aaTeaserSizeLimit
+    , aaComscoreVceEnabled
+    , aaActiveViewOptOut
+    , aaName
+    , aaAccountProFile
+    , aaId
+    , aaCountryId
+    , aaActiveAdsLimitTier
+    , aaDefaultCreativeSizeId
+    , aaDescription
+
+    -- * AccountActiveAdSummaryActiveAdsLimitTier
+    , AccountActiveAdSummaryActiveAdsLimitTier (..)
+
+    -- * CreativeAssetChildAssetType
+    , CreativeAssetChildAssetType (..)
+
+    -- * PlacementGroupsListPlacementGroupType
+    , PlacementGroupsListPlacementGroupType (..)
+
+    -- * AccountUserProFilesListResponse
+    , AccountUserProFilesListResponse
+    , accountUserProFilesListResponse
+    , aupflrNextPageToken
+    , aupflrAccountUserProFiles
+    , aupflrKind
+
+    -- * ContentCategory
+    , ContentCategory
+    , contentCategory
+    , conKind
+    , conAccountId
+    , conName
+    , conId
+
+    -- * ObjectFilterStatus
+    , ObjectFilterStatus (..)
+
+    -- * ReportCompatibleFields
+    , ReportCompatibleFields
+    , reportCompatibleFields
+    , rcfMetrics
+    , rcfKind
+    , rcfDimensionFilters
+    , rcfPivotedActivityMetrics
+    , rcfDimensions
+
+    -- * CampaignCreativeAssociationsListSortOrder
+    , CampaignCreativeAssociationsListSortOrder (..)
+
+    -- * DeliverySchedule
+    , DeliverySchedule
+    , deliverySchedule
+    , dsHardCutoff
+    , dsPriority
+    , dsImpressionRatio
+    , dsFrequencyCap
+
+    -- * RemarketingList
+    , RemarketingList
+    , remarketingList
+    , rlListSize
+    , rlListPopulationRule
+    , rlLifeSpan
+    , rlKind
+    , rlAdvertiserId
+    , rlAdvertiserIdDimensionValue
+    , rlActive
+    , rlAccountId
+    , rlName
+    , rlListSource
+    , rlId
+    , rlSubAccountId
+    , rlDescription
+
+    -- * FloodlightActivitiesListSortField
+    , FloodlightActivitiesListSortField (..)
+
+    -- * DimensionValueList
+    , DimensionValueList
+    , dimensionValueList
+    , dvlEtag
+    , dvlNextPageToken
+    , dvlKind
+    , dvlItems
+
+    -- * FloodlightReportCompatibleFields
+    , FloodlightReportCompatibleFields
+    , floodlightReportCompatibleFields
+    , frcfMetrics
+    , frcfKind
+    , frcfDimensionFilters
+    , frcfDimensions
+
+    -- * UserRolePermissionGroup
+    , UserRolePermissionGroup
+    , userRolePermissionGroup
+    , urpgKind
+    , urpgName
+    , urpgId
+
+    -- * CreativesListTypes
+    , CreativesListTypes (..)
+
+    -- * DirectorySiteInpageTagFormatsItem
+    , DirectorySiteInpageTagFormatsItem (..)
+
+    -- * TagSetting
+    , TagSetting
+    , tagSetting
+    , tsKeywordOption
+    , tsIncludeClickThroughURLs
+    , tsIncludeClickTracking
+    , tsAdditionalKeyValues
+
+    -- * CreativeAssetWindowMode
+    , CreativeAssetWindowMode (..)
+
+    -- * CreativeAssetAlignment
+    , CreativeAssetAlignment (..)
+
+    -- * RemarketingListsListSortOrder
+    , RemarketingListsListSortOrder (..)
+
+    -- * ReportPathToConversionCriteriaReportProperties
+    , ReportPathToConversionCriteriaReportProperties
+    , reportPathToConversionCriteriaReportProperties
+    , rptccrpMaximumInteractionGap
+    , rptccrpMaximumClickInteractions
+    , rptccrpPivotOnInteractionPath
+    , rptccrpMaximumImpressionInteractions
+    , rptccrpIncludeUnattributedIPConversions
+    , rptccrpImpressionsLookbackWindow
+    , rptccrpClicksLookbackWindow
+    , rptccrpIncludeUnattributedCookieConversions
+    , rptccrpIncludeAttributedIPConversions
+
+    -- * UserRolePermissionsListResponse
+    , UserRolePermissionsListResponse
+    , userRolePermissionsListResponse
+    , urplrKind
+    , urplrUserRolePermissions
+
+    -- * PlacementGroupsListPricingTypes
+    , PlacementGroupsListPricingTypes (..)
+
+    -- * AccountActiveAdsLimitTier
+    , AccountActiveAdsLimitTier (..)
+
+    -- * AccountsListSortOrder
+    , AccountsListSortOrder (..)
+
+    -- * PlacementGroupsListResponse
+    , PlacementGroupsListResponse
+    , placementGroupsListResponse
+    , pglrNextPageToken
+    , pglrKind
+    , pglrPlacementGroups
+
+    -- * MobileCarrier
+    , MobileCarrier
+    , mobileCarrier
+    , mcKind
+    , mcName
+    , mcCountryCode
+    , mcId
+    , mcCountryDartId
+
+    -- * LandingPage
+    , LandingPage
+    , landingPage
+    , lpKind
+    , lpDefault
+    , lpURL
+    , lpName
+    , lpId
+
+    -- * ConnectionTypesListResponse
+    , ConnectionTypesListResponse
+    , connectionTypesListResponse
+    , ctlrKind
+    , ctlrConnectionTypes
+
+    -- * OrdersListResponse
+    , OrdersListResponse
+    , ordersListResponse
+    , olrNextPageToken
+    , olrKind
+    , olrOrders
+
+    -- * ReportList
+    , ReportList
+    , reportList
+    , repEtag
+    , repNextPageToken
+    , repKind
+    , repItems
+
+    -- * CreativeGroup
+    , CreativeGroup
+    , creativeGroup
+    , cgKind
+    , cgAdvertiserId
+    , cgAdvertiserIdDimensionValue
+    , cgGroupNumber
+    , cgAccountId
+    , cgName
+    , cgId
+    , cgSubAccountId
+
+    -- * SubAccountsListSortField
+    , SubAccountsListSortField (..)
+
+    -- * CampaignCreativeAssociation
+    , CampaignCreativeAssociation
+    , campaignCreativeAssociation
+    , ccaKind
+    , ccaCreativeId
+
+    -- * LookbackConfiguration
+    , LookbackConfiguration
+    , lookbackConfiguration
+    , lcClickDuration
+    , lcPostImpressionActivitiesDuration
+
+    -- * AdsListSortField
+    , AdsListSortField (..)
+
+    -- * ProjectsListSortField
+    , ProjectsListSortField (..)
+
+    -- * FloodlightActivityPublisherDynamicTag
+    , FloodlightActivityPublisherDynamicTag
+    , floodlightActivityPublisherDynamicTag
+    , fapdtClickThrough
+    , fapdtSiteIdDimensionValue
+    , fapdtDynamicTag
+    , fapdtDirectorySiteId
+    , fapdtSiteId
+    , fapdtViewThrough
+
+    -- * AdsListType
+    , AdsListType (..)
+
+    -- * AccountActiveAdSummary
+    , AccountActiveAdSummary
+    , accountActiveAdSummary
+    , aaasAvailableAds
+    , aaasKind
+    , aaasAccountId
+    , aaasActiveAds
+    , aaasActiveAdsLimitTier
+
+    -- * CreativeOptimizationConfigurationOptimizationModel
+    , CreativeOptimizationConfigurationOptimizationModel (..)
+
+    -- * AccountPermissionLevel
+    , AccountPermissionLevel (..)
+
+    -- * OffSetPosition
+    , OffSetPosition
+    , offSetPosition
+    , ospLeft
+    , ospTop
+
+    -- * Metric
+    , Metric
+    , metric
+    , mKind
+    , mName
+
+    -- * RemarketingListShare
+    , RemarketingListShare
+    , remarketingListShare
+    , rlsSharedAdvertiserIds
+    , rlsKind
+    , rlsRemarketingListId
+    , rlsSharedAccountIds
+
+    -- * EventTagsListResponse
+    , EventTagsListResponse
+    , eventTagsListResponse
+    , etlrKind
+    , etlrEventTags
+
+    -- * UserRolesListResponse
+    , UserRolesListResponse
+    , userRolesListResponse
+    , urlrNextPageToken
+    , urlrKind
+    , urlrUserRoles
+
+    -- * ListPopulationTermType
+    , ListPopulationTermType (..)
+
+    -- * AdvertiserGroupsListSortOrder
+    , AdvertiserGroupsListSortOrder (..)
+
+    -- * CreativeFieldValuesListSortOrder
+    , CreativeFieldValuesListSortOrder (..)
+
+    -- * SortedDimensionSortOrder
+    , SortedDimensionSortOrder (..)
+
+    -- * CompatibleFields
+    , CompatibleFields
+    , compatibleFields
+    , cfReachReportCompatibleFields
+    , cfCrossDimensionReachReportCompatibleFields
+    , cfKind
+    , cfFloodlightReportCompatibleFields
+    , cfReportCompatibleFields
+    , cfPathToConversionReportCompatibleFields
+
+    -- * AudienceSegment
+    , AudienceSegment
+    , audienceSegment
+    , asName
+    , asId
+    , asAllocation
+
+    -- * FilesListSortField
+    , FilesListSortField (..)
+
+    -- * DirectorySiteInterstitialTagFormatsItem
+    , DirectorySiteInterstitialTagFormatsItem (..)
+
+    -- * DfpSettings
+    , DfpSettings
+    , dfpSettings
+    , dsPubPaidPlacementAccepted
+    , dsDfpNetworkName
+    , dsPublisherPortalOnly
+    , dsProgrammaticPlacementAccepted
+    , dsDfpNetworkCode
+
+    -- * EventTagsListSortField
+    , EventTagsListSortField (..)
+
+    -- * PathToConversionReportCompatibleFields
+    , PathToConversionReportCompatibleFields
+    , pathToConversionReportCompatibleFields
+    , ptcrcfMetrics
+    , ptcrcfKind
+    , ptcrcfConversionDimensions
+    , ptcrcfCustomFloodlightVariables
+    , ptcrcfPerInteractionDimensions
+
+    -- * CreativeAssetPositionTopUnit
+    , CreativeAssetPositionTopUnit (..)
+
+    -- * City
+    , City
+    , city
+    , ccMetroCode
+    , ccRegionCode
+    , ccKind
+    , ccRegionDartId
+    , ccMetroDmaId
+    , ccName
+    , ccCountryCode
+    , ccCountryDartId
+    , ccDartId
+
+    -- * PlatformType
+    , PlatformType
+    , platformType
+    , ptKind
+    , ptName
+    , ptId
+
+    -- * FloodlightActivityFloodlightActivityGroupType
+    , FloodlightActivityFloodlightActivityGroupType (..)
+
+    -- * DirectorySiteContactsListSortOrder
+    , DirectorySiteContactsListSortOrder (..)
+
+    -- * PricingGroupType
+    , PricingGroupType (..)
+
+    -- * KeyValueTargetingExpression
+    , KeyValueTargetingExpression
+    , keyValueTargetingExpression
+    , kvteExpression
+
+    -- * CompanionClickThroughOverride
+    , CompanionClickThroughOverride
+    , companionClickThroughOverride
+    , cctoCreativeId
+    , cctoClickThroughURL
+
+    -- * AdsListCreativeType
+    , AdsListCreativeType (..)
+
+    -- * FloodlightActivityGroupsListSortOrder
+    , FloodlightActivityGroupsListSortOrder (..)
+
+    -- * CreativeRotationType
+    , CreativeRotationType (..)
+
+    -- * OrdersListSortField
+    , OrdersListSortField (..)
+
+    -- * PlacementGroupsListSortField
+    , PlacementGroupsListSortField (..)
+
+    -- * DirectorySitesListSortOrder
+    , DirectorySitesListSortOrder (..)
+
+    -- * AdvertisersListResponse
+    , AdvertisersListResponse
+    , advertisersListResponse
+    , advNextPageToken
+    , advKind
+    , advAdvertisers
+
+    -- * CountriesListResponse
+    , CountriesListResponse
+    , countriesListResponse
+    , couKind
+    , couCountries
+
+    -- * AccountPermissionGroupsListResponse
+    , AccountPermissionGroupsListResponse
+    , accountPermissionGroupsListResponse
+    , apglrKind
+    , apglrAccountPermissionGroups
+
+    -- * PopupWindowProperties
+    , PopupWindowProperties
+    , popupWindowProperties
+    , pwpOffSet
+    , pwpDimension
+    , pwpShowStatusBar
+    , pwpShowMenuBar
+    , pwpPositionType
+    , pwpShowAddressBar
+    , pwpShowScrollBar
+    , pwpShowToolBar
+    , pwpTitle
+
+    -- * CreativeAssetDetectedFeaturesItem
+    , CreativeAssetDetectedFeaturesItem (..)
+
+    -- * FloodlightActivityGroupType
+    , FloodlightActivityGroupType (..)
+
+    -- * DirectorySiteContactType
+    , DirectorySiteContactType (..)
+
+    -- * EventTagOverride
+    , EventTagOverride
+    , eventTagOverride
+    , etoEnabled
+    , etoId
+
+    -- * PlacementsGeneratetagsTagFormats
+    , PlacementsGeneratetagsTagFormats (..)
+
+    -- * AccountUserProFilesListSortField
+    , AccountUserProFilesListSortField (..)
+
+    -- * OperatingSystemVersion
+    , OperatingSystemVersion
+    , operatingSystemVersion
+    , osvMinorVersion
+    , osvKind
+    , osvOperatingSystem
+    , osvMajorVersion
+    , osvName
+    , osvId
+
+    -- * InventoryItemsListSortOrder
+    , InventoryItemsListSortOrder (..)
+
+    -- * PlacementStrategiesListSortOrder
+    , PlacementStrategiesListSortOrder (..)
+
+    -- * AccountPermission
+    , AccountPermission
+    , accountPermission
+    , acccKind
+    , acccAccountProFiles
+    , acccName
+    , acccId
+    , acccLevel
+    , acccPermissionGroupId
+
+    -- * UserProFile
+    , UserProFile
+    , userProFile
+    , upfEtag
+    , upfKind
+    , upfAccountName
+    , upfProFileId
+    , upfUserName
+    , upfAccountId
+    , upfSubAccountName
+    , upfSubAccountId
+
+    -- * OperatingSystemsListResponse
+    , OperatingSystemsListResponse
+    , operatingSystemsListResponse
+    , oslrKind
+    , oslrOperatingSystems
+
+    -- * ReportDelivery
+    , ReportDelivery
+    , reportDelivery
+    , rdEmailOwner
+    , rdRecipients
+    , rdMessage
+    , rdEmailOwnerDeliveryType
+
+    -- * TargetableRemarketingList
+    , TargetableRemarketingList
+    , targetableRemarketingList
+    , trlListSize
+    , trlLifeSpan
+    , trlKind
+    , trlAdvertiserId
+    , trlAdvertiserIdDimensionValue
+    , trlActive
+    , trlAccountId
+    , trlName
+    , trlListSource
+    , trlId
+    , trlSubAccountId
+    , trlDescription
+
+    -- * ReportsFilesListSortField
+    , ReportsFilesListSortField (..)
+
+    -- * PostalCodesListResponse
+    , PostalCodesListResponse
+    , postalCodesListResponse
+    , pclrKind
+    , pclrPostalCodes
+
+    -- * ChangeLog
+    , ChangeLog
+    , changeLog
+    , chaUserProFileId
+    , chaObjectType
+    , chaUserProFileName
+    , chaKind
+    , chaObjectId
+    , chaAction
+    , chaTransactionId
+    , chaOldValue
+    , chaAccountId
+    , chaNewValue
+    , chaFieldName
+    , chaId
+    , chaSubAccountId
+    , chaChangeTime
+
+    -- * CreativesListSortField
+    , CreativesListSortField (..)
+
+    -- * PlacementStrategy
+    , PlacementStrategy
+    , placementStrategy
+    , psKind
+    , psAccountId
+    , psName
+    , psId
+
+    -- * FloodlightActivity
+    , FloodlightActivity
+    , floodlightActivity
+    , faCountingMethod
+    , faTagString
+    , faSecure
+    , faExpectedURL
+    , faFloodlightActivityGroupTagString
+    , faFloodlightConfigurationId
+    , faKind
+    , faImageTagEnabled
+    , faAdvertiserId
+    , faAdvertiserIdDimensionValue
+    , faSSLCompliant
+    , faIdDimensionValue
+    , faTagFormat
+    , faCacheBustingType
+    , faAccountId
+    , faName
+    , faPublisherTags
+    , faFloodlightActivityGroupId
+    , faHidden
+    , faFloodlightActivityGroupType
+    , faDefaultTags
+    , faFloodlightActivityGroupName
+    , faId
+    , faSSLRequired
+    , faUserDefinedVariableTypes
+    , faSubAccountId
+    , faNotes
+    , faFloodlightConfigurationIdDimensionValue
+
+    -- * DayPartTargetingDaysOfWeekItem
+    , DayPartTargetingDaysOfWeekItem (..)
+
+    -- * CreativeRotationWeightCalculationStrategy
+    , CreativeRotationWeightCalculationStrategy (..)
+
+    -- * FilesListScope
+    , FilesListScope (..)
+
+    -- * ContentCategoriesListSortField
+    , ContentCategoriesListSortField (..)
+
+    -- * ProjectAudienceAgeGroup
+    , ProjectAudienceAgeGroup (..)
+
+    -- * PlatformTypesListResponse
+    , PlatformTypesListResponse
+    , platformTypesListResponse
+    , ptlrKind
+    , ptlrPlatformTypes
+
+    -- * AdType
+    , AdType (..)
+
+    -- * LastModifiedInfo
+    , LastModifiedInfo
+    , lastModifiedInfo
+    , lmiTime
+
+    -- * TargetWindow
+    , TargetWindow
+    , targetWindow
+    , twCustomHTML
+    , twTargetWindowOption
+
+    -- * ChangeLogsListAction
+    , ChangeLogsListAction (..)
+
+    -- * CreativeArtworkType
+    , CreativeArtworkType (..)
+
+    -- * PlacementStatus
+    , PlacementStatus (..)
+
+    -- * AccountPermissionGroup
+    , AccountPermissionGroup
+    , accountPermissionGroup
+    , apgpKind
+    , apgpName
+    , apgpId
+
+    -- * Advertiser
+    , Advertiser
+    , advertiser
+    , advdOriginalFloodlightConfigurationId
+    , advdStatus
+    , advdFloodlightConfigurationId
+    , advdKind
+    , advdSuspended
+    , advdIdDimensionValue
+    , advdAccountId
+    , advdDefaultEmail
+    , advdName
+    , advdAdvertiserGroupId
+    , advdDefaultClickThroughEventTagId
+    , advdId
+    , advdSubAccountId
+    , advdFloodlightConfigurationIdDimensionValue
+    , advdClickThroughURLSuffix
+
+    -- * ReportScheduleRunsOnDayOfMonth
+    , ReportScheduleRunsOnDayOfMonth (..)
+
+    -- * UserRole
+    , UserRole
+    , userRole
+    , urParentUserRoleId
+    , urKind
+    , urDefaultUserRole
+    , urAccountId
+    , urName
+    , urId
+    , urPermissions
+    , urSubAccountId
+
+    -- * FloodlightActivityUserDefinedVariableTypesItem
+    , FloodlightActivityUserDefinedVariableTypesItem (..)
+
+    -- * EventTagSiteFilterType
+    , EventTagSiteFilterType (..)
+
+    -- * ReportFormat
+    , ReportFormat (..)
+
+    -- * PlacementGroupPlacementGroupType
+    , PlacementGroupPlacementGroupType (..)
+
+    -- * DirectorySitesListResponse
+    , DirectorySitesListResponse
+    , directorySitesListResponse
+    , dslrNextPageToken
+    , dslrKind
+    , dslrDirectorySites
+
+    -- * PricingPricingType
+    , PricingPricingType (..)
+
+    -- * PricingSchedulePricingPeriod
+    , PricingSchedulePricingPeriod
+    , pricingSchedulePricingPeriod
+    , psppEndDate
+    , psppRateOrCostNanos
+    , psppStartDate
+    , psppUnits
+    , psppPricingComment
+
+    -- * SubAccountsListSortOrder
+    , SubAccountsListSortOrder (..)
+
+    -- * DirectorySiteContactsListResponse
+    , DirectorySiteContactsListResponse
+    , directorySiteContactsListResponse
+    , dsclrNextPageToken
+    , dsclrKind
+    , dsclrDirectorySiteContacts
+
+    -- * Region
+    , Region
+    , region
+    , regRegionCode
+    , regKind
+    , regName
+    , regCountryCode
+    , regCountryDartId
+    , regDartId
+
+    -- * AdvertiserGroupsListResponse
+    , AdvertiserGroupsListResponse
+    , advertiserGroupsListResponse
+    , aglrNextPageToken
+    , aglrKind
+    , aglrAdvertiserGroups
+
+    -- * AdsListSortOrder
+    , AdsListSortOrder (..)
+
+    -- * ProjectsListSortOrder
+    , ProjectsListSortOrder (..)
+
+    -- * CreativeAssignment
+    , CreativeAssignment
+    , creativeAssignment
+    , caCreativeGroupAssignments
+    , caStartTime
+    , caWeight
+    , caRichMediaExitOverrides
+    , caSSLCompliant
+    , caCreativeId
+    , caClickThroughURL
+    , caApplyEventTags
+    , caActive
+    , caSequence
+    , caEndTime
+    , caCompanionCreativeOverrides
+    , caCreativeIdDimensionValue
+
+    -- * DimensionFilter
+    , DimensionFilter
+    , dimensionFilter
+    , dfKind
+    , dfValue
+    , dfDimensionName
+
+    -- * UserProFileList
+    , UserProFileList
+    , userProFileList
+    , upflEtag
+    , upflKind
+    , upflItems
+
+    -- * RemarketingListsListSortField
+    , RemarketingListsListSortField (..)
+
+    -- * FloodlightConfiguration
+    , FloodlightConfiguration
+    , floodlightConfiguration
+    , fcTagSettings
+    , fcExposureToConversionEnabled
+    , fcInAppAttributionTrackingEnabled
+    , fcThirdPartyAuthenticationTokens
+    , fcKind
+    , fcAdvertiserId
+    , fcAnalyticsDataSharingEnabled
+    , fcAdvertiserIdDimensionValue
+    , fcIdDimensionValue
+    , fcLookbackConfiguration
+    , fcAccountId
+    , fcId
+    , fcSSLRequired
+    , fcNATuralSearchConversionAttributionOption
+    , fcUserDefinedVariableConfigurations
+    , fcSubAccountId
+    , fcFirstDayOfWeek
+    , fcOmnitureSettings
+    , fcStandardVariableTypes
+
+    -- * ReportScheduleRepeatsOnWeekDaysItem
+    , ReportScheduleRepeatsOnWeekDaysItem (..)
+
+    -- * FloodlightActivityGroupsListResponse
+    , FloodlightActivityGroupsListResponse
+    , floodlightActivityGroupsListResponse
+    , faglrNextPageToken
+    , faglrKind
+    , faglrFloodlightActivityGroups
+
+    -- * CreativeGroupAssignmentCreativeGroupNumber
+    , CreativeGroupAssignmentCreativeGroupNumber (..)
+
+    -- * CreativeFieldValuesListResponse
+    , CreativeFieldValuesListResponse
+    , creativeFieldValuesListResponse
+    , cfvlrNextPageToken
+    , cfvlrKind
+    , cfvlrCreativeFieldValues
+
+    -- * AccountsListSortField
+    , AccountsListSortField (..)
+
+    -- * RichMediaExitOverride
+    , RichMediaExitOverride
+    , richMediaExitOverride
+    , rmeoUseCustomExitURL
+    , rmeoExitId
+    , rmeoCustomExitURL
+
+    -- * AdvertisersListStatus
+    , AdvertisersListStatus (..)
+
+    -- * DimensionValueMatchType
+    , DimensionValueMatchType (..)
+
+    -- * SortedDimension
+    , SortedDimension
+    , sortedDimension
+    , sdKind
+    , sdSortOrder
+    , sdName
+
+    -- * PlacementGroupsListSortOrder
+    , PlacementGroupsListSortOrder (..)
+
+    -- * CreativeFieldsListResponse
+    , CreativeFieldsListResponse
+    , creativeFieldsListResponse
+    , cflrNextPageToken
+    , cflrKind
+    , cflrCreativeFields
+
+    -- * PlacementsGenerateTagsResponse
+    , PlacementsGenerateTagsResponse
+    , placementsGenerateTagsResponse
+    , pgtrKind
+    , pgtrPlacementTags
+
+    -- * CreativeAsset
+    , CreativeAsset
+    , creativeAsset
+    , caaZIndex
+    , caaPushdown
+    , caaVideoDuration
+    , caaOriginalBackup
+    , caaWindowMode
+    , caaFlashVersion
+    , caaPushdownDuration
+    , caaSize
+    , caaVerticallyLocked
+    , caaOffSet
+    , caaStreamingServingURL
+    , caaZipFilesize
+    , caaTransparency
+    , caaHideSelectionBoxes
+    , caaSSLCompliant
+    , caaFileSize
+    , caaAssetIdentifier
+    , caaDurationType
+    , caaProgressiveServingURL
+    , caaActive
+    , caaRole
+    , caaMimeType
+    , caaPositionTopUnit
+    , caaPositionLeftUnit
+    , caaAlignment
+    , caaExpandedDimension
+    , caaZipFilename
+    , caaActionScript3
+    , caaDisplayType
+    , caaChildAssetType
+    , caaCollapsedSize
+    , caaId
+    , caaBitRate
+    , caaCustomStartTimeValue
+    , caaStartTimeType
+    , caaDuration
+    , caaArtworkType
+    , caaHideFlashObjects
+    , caaDetectedFeatures
+    , caaBackupImageExit
+    , caaPosition
+    , caaHorizontallyLocked
+
+    -- * AdCompatibility
+    , AdCompatibility (..)
+
+    -- * CreativeFieldValuesListSortField
+    , CreativeFieldValuesListSortField (..)
+
+    -- * PlacementsListResponse
+    , PlacementsListResponse
+    , placementsListResponse
+    , plaNextPageToken
+    , plaKind
+    , plaPlacements
+
+    -- * FloodlightActivityGroupsListSortField
+    , FloodlightActivityGroupsListSortField (..)
+
+    -- * OrdersListSortOrder
+    , OrdersListSortOrder (..)
+
+    -- * ReportSchedule
+    , ReportSchedule
+    , reportSchedule
+    , rsEvery
+    , rsActive
+    , rsRepeats
+    , rsStartDate
+    , rsExpirationDate
+    , rsRunsOnDayOfMonth
+    , rsRepeatsOnWeekDays
+
+    -- * ReportPathToConversionCriteria
+    , ReportPathToConversionCriteria
+    , reportPathToConversionCriteria
+    , rptccReportProperties
+    , rptccMetricNames
+    , rptccCustomRichMediaEvents
+    , rptccDateRange
+    , rptccConversionDimensions
+    , rptccCustomFloodlightVariables
+    , rptccFloodlightConfigId
+    , rptccActivityFilters
+    , rptccPerInteractionDimensions
+
+    -- * MetrosListResponse
+    , MetrosListResponse
+    , metrosListResponse
+    , mlrKind
+    , mlrMetros
+
+    -- * AccountAccountProFile
+    , AccountAccountProFile (..)
+
+    -- * OrderDocumentsListResponse
+    , OrderDocumentsListResponse
+    , orderDocumentsListResponse
+    , odlrNextPageToken
+    , odlrKind
+    , odlrOrderDocuments
+
+    -- * Recipient
+    , Recipient
+    , recipient
+    , recEmail
+    , recKind
+    , recDeliveryType
+
+    -- * CreativeType
+    , CreativeType (..)
+
+    -- * FilesListSortOrder
+    , FilesListSortOrder (..)
+
+    -- * AdvertiserGroupsListSortField
+    , AdvertiserGroupsListSortField (..)
+
+    -- * TargetWindowTargetWindowOption
+    , TargetWindowTargetWindowOption (..)
+
+    -- * DirectorySiteContactsListSortField
+    , DirectorySiteContactsListSortField (..)
+
+    -- * PlacementsListPricingTypes
+    , PlacementsListPricingTypes (..)
+
+    -- * EventTagsListSortOrder
+    , EventTagsListSortOrder (..)
+
+    -- * DirectorySitesListSortField
+    , DirectorySitesListSortField (..)
+
+    -- * Site
+    , Site
+    , site
+    , ssKind
+    , ssKeyName
+    , ssSiteContacts
+    , ssSiteSettings
+    , ssIdDimensionValue
+    , ssDirectorySiteIdDimensionValue
+    , ssAccountId
+    , ssName
+    , ssDirectorySiteId
+    , ssId
+    , ssSubAccountId
+    , ssApproved
+
+    -- * ReportCrossDimensionReachCriteriaDimension
+    , ReportCrossDimensionReachCriteriaDimension (..)
+
+    -- * SitesListSortOrder
+    , SitesListSortOrder (..)
+
+    -- * UserDefinedVariableConfiguration
+    , UserDefinedVariableConfiguration
+    , userDefinedVariableConfiguration
+    , udvcReportName
+    , udvcDataType
+    , udvcVariableType
+
+    -- * ReportCrossDimensionReachCriteria
+    , ReportCrossDimensionReachCriteria
+    , reportCrossDimensionReachCriteria
+    , rcdrcPivoted
+    , rcdrcBreakdown
+    , rcdrcDimension
+    , rcdrcMetricNames
+    , rcdrcDimensionFilters
+    , rcdrcDateRange
+    , rcdrcOverlapMetricNames
+
+    -- * FileURLs
+    , FileURLs
+    , fileURLs
+    , fuBrowserURL
+    , fuAPIURL
+
+    -- * CampaignCreativeAssociationsListResponse
+    , CampaignCreativeAssociationsListResponse
+    , campaignCreativeAssociationsListResponse
+    , ccalrCampaignCreativeAssociations
+    , ccalrNextPageToken
+    , ccalrKind
+
+    -- * PlacementTagFormatsItem
+    , PlacementTagFormatsItem (..)
+
+    -- * Order
+    , Order
+    , order
+    , oSellerOrderId
+    , oSellerOrganizationName
+    , oKind
+    , oAdvertiserId
+    , oPlanningTermId
+    , oAccountId
+    , oName
+    , oSiteNames
+    , oLastModifiedInfo
+    , oBuyerOrganizationName
+    , oId
+    , oBuyerInvoiceId
+    , oComments
+    , oProjectId
+    , oSubAccountId
+    , oNotes
+    , oContacts
+    , oSiteId
+    , oTermsAndConditions
+    , oApproverUserProFileIds
+
+    -- * CreativeAssetId
+    , CreativeAssetId
+    , creativeAssetId
+    , caiName
+    , caiType
+
+    -- * FrequencyCap
+    , FrequencyCap
+    , frequencyCap
+    , fcImpressions
+    , fcDuration
+
+    -- * File
+    , File
+    , file
+    , filStatus
+    , filEtag
+    , filKind
+    , filURLs
+    , filReportId
+    , filDateRange
+    , filFormat
+    , filLastModifiedTime
+    , filId
+    , filFileName
+
+    -- * CreativeSettings
+    , CreativeSettings
+    , creativeSettings
+    , csIFrameHeader
+    , csIFrameFooter
+
+    -- * ReportType
+    , ReportType (..)
+
+    -- * CreativeAssetMetadataWarnedValidationRulesItem
+    , CreativeAssetMetadataWarnedValidationRulesItem (..)
+
+    -- * CreativeGroupsListResponse
+    , CreativeGroupsListResponse
+    , creativeGroupsListResponse
+    , cglrCreativeGroups
+    , cglrNextPageToken
+    , cglrKind
+
+    -- * AdSlotPaymentSourceType
+    , AdSlotPaymentSourceType (..)
+
+    -- * MobileCarriersListResponse
+    , MobileCarriersListResponse
+    , mobileCarriersListResponse
+    , mclrMobileCarriers
+    , mclrKind
+
+    -- * LandingPagesListResponse
+    , LandingPagesListResponse
+    , landingPagesListResponse
+    , lplrLandingPages
+    , lplrKind
+
+    -- * AccountPermissionAccountProFilesItem
+    , AccountPermissionAccountProFilesItem (..)
+
+    -- * CreativeAssetMetadata
+    , CreativeAssetMetadata
+    , creativeAssetMetadata
+    , camaKind
+    , camaAssetIdentifier
+    , camaClickTags
+    , camaWarnedValidationRules
+    , camaDetectedFeatures
+
+    -- * OmnitureSettings
+    , OmnitureSettings
+    , omnitureSettings
+    , osOmnitureCostDataEnabled
+    , osOmnitureIntegrationEnabled
+
+    -- * ConnectionType
+    , ConnectionType
+    , connectionType
+    , cttKind
+    , cttName
+    , cttId
+
+    -- * CreativeCustomEventAdvertiserCustomEventType
+    , CreativeCustomEventAdvertiserCustomEventType (..)
+
+    -- * PlacementGroup
+    , PlacementGroup
+    , placementGroup
+    , plalPlacementStrategyId
+    , plalSiteIdDimensionValue
+    , plalPricingSchedule
+    , plalKind
+    , plalCampaignIdDimensionValue
+    , plalAdvertiserId
+    , plalAdvertiserIdDimensionValue
+    , plalCampaignId
+    , plalIdDimensionValue
+    , plalPlacementGroupType
+    , plalContentCategoryId
+    , plalDirectorySiteIdDimensionValue
+    , plalAccountId
+    , plalName
+    , plalDirectorySiteId
+    , plalCreateInfo
+    , plalChildPlacementIds
+    , plalLastModifiedInfo
+    , plalId
+    , plalPrimaryPlacementId
+    , plalSubAccountId
+    , plalExternalId
+    , plalComment
+    , plalPrimaryPlacementIdDimensionValue
+    , plalSiteId
+    , plalArchived
+
+    -- * EventTag
+    , EventTag
+    , eventTag
+    , etStatus
+    , etExcludeFromAdxRequests
+    , etEnabledByDefault
+    , etKind
+    , etCampaignIdDimensionValue
+    , etAdvertiserId
+    , etURL
+    , etAdvertiserIdDimensionValue
+    , etSSLCompliant
+    , etCampaignId
+    , etAccountId
+    , etName
+    , etURLEscapeLevels
+    , etSiteIds
+    , etId
+    , etSubAccountId
+    , etType
+    , etSiteFilterType
+
+    -- * UserRolePermission
+    , UserRolePermission
+    , userRolePermission
+    , useKind
+    , useAvailability
+    , useName
+    , useId
+    , usePermissionGroupId
+
+    -- * ChangeLogsListObjectType
+    , ChangeLogsListObjectType (..)
+
+    -- * OrderContact
+    , OrderContact
+    , orderContact
+    , ocSignatureUserProFileId
+    , ocContactName
+    , ocContactTitle
+    , ocContactType
+    , ocContactInfo
+
+    -- * FloodlightActivitiesGenerateTagResponse
+    , FloodlightActivitiesGenerateTagResponse
+    , floodlightActivitiesGenerateTagResponse
+    , fagtrFloodlightActivityTag
+    , fagtrKind
+
+    -- * DirectorySiteContactAssignment
+    , DirectorySiteContactAssignment
+    , directorySiteContactAssignment
+    , dscaVisibility
+    , dscaContactId
+
+    -- * AdSlot
+    , AdSlot
+    , adSlot
+    , assHeight
+    , assPaymentSourceType
+    , assLinkedPlacementId
+    , assWidth
+    , assPrimary
+    , assName
+    , assComment
+    , assCompatibility
+
+    -- * ThirdPartyTrackingURL
+    , ThirdPartyTrackingURL
+    , thirdPartyTrackingURL
+    , tptuURL
+    , tptuThirdPartyURLType
+
+    -- * PricingCapCostType
+    , PricingCapCostType (..)
+
+    -- * OrderDocument
+    , OrderDocument
+    , orderDocument
+    , odSigned
+    , odKind
+    , odAdvertiserId
+    , odLastSentTime
+    , odAmendedOrderDocumentId
+    , odLastSentRecipients
+    , odEffectiveDate
+    , odApprovedByUserProFileIds
+    , odAccountId
+    , odId
+    , odProjectId
+    , odTitle
+    , odSubAccountId
+    , odType
+    , odOrderId
+    , odCancelled
+    , odCreatedInfo
+
+    -- * Metro
+    , Metro
+    , metro
+    , metMetroCode
+    , metKind
+    , metName
+    , metCountryCode
+    , metDmaId
+    , metCountryDartId
+    , metDartId
+
+    -- * CreativeAssetDisplayType
+    , CreativeAssetDisplayType (..)
+
+    -- * Placement
+    , Placement
+    , placement
+    , p1Status
+    , p1PlacementStrategyId
+    , p1TagFormats
+    , p1SiteIdDimensionValue
+    , p1PricingSchedule
+    , p1Size
+    , p1Kind
+    , p1KeyName
+    , p1CampaignIdDimensionValue
+    , p1AdvertiserId
+    , p1AdvertiserIdDimensionValue
+    , p1CampaignId
+    , p1IdDimensionValue
+    , p1Primary
+    , p1LookbackConfiguration
+    , p1TagSetting
+    , p1ContentCategoryId
+    , p1DirectorySiteIdDimensionValue
+    , p1AccountId
+    , p1PaymentSource
+    , p1Name
+    , p1DirectorySiteId
+    , p1CreateInfo
+    , p1LastModifiedInfo
+    , p1Id
+    , p1SSLRequired
+    , p1SubAccountId
+    , p1PlacementGroupIdDimensionValue
+    , p1ExternalId
+    , p1PlacementGroupId
+    , p1Comment
+    , p1SiteId
+    , p1Compatibility
+    , p1Archived
+    , p1PaymentApproved
+    , p1PublisherUpdateInfo
+
+    -- * FloodlightActivityCountingMethod
+    , FloodlightActivityCountingMethod (..)
+
+    -- * SitesListResponse
+    , SitesListResponse
+    , sitesListResponse
+    , sitNextPageToken
+    , sitKind
+    , sitSites
+
+    -- * ContentCategoriesListSortOrder
+    , ContentCategoriesListSortOrder (..)
+
+    -- * CreativeField
+    , CreativeField
+    , creativeField
+    , cffKind
+    , cffAdvertiserId
+    , cffAdvertiserIdDimensionValue
+    , cffAccountId
+    , cffName
+    , cffId
+    , cffSubAccountId
+
+    -- * AdvertiserStatus
+    , AdvertiserStatus (..)
+
+    -- * DefaultClickThroughEventTagProperties
+    , DefaultClickThroughEventTagProperties
+    , defaultClickThroughEventTagProperties
+    , dctetpOverrideInheritedEventTag
+    , dctetpDefaultClickThroughEventTagId
+
+    -- * ListTargetingExpression
+    , ListTargetingExpression
+    , listTargetingExpression
+    , lteExpression
+    ) where
+
+import           Network.Google.DFAReporting.Types.Product
+import           Network.Google.DFAReporting.Types.Sum
+import           Network.Google.Prelude
+
+-- | Default request referring to version 'v2.2' of the DCM/DFA Reporting And Trafficking API. This contains the host and root path used as a starting point for constructing service requests.
+dFAReportingService :: Service
+dFAReportingService
+  = defaultService (ServiceId "dfareporting:v2.2")
+      "www.googleapis.com"
+
+-- | View and manage DoubleClick for Advertisers reports
+dfareportingScope :: OAuthScope
+dfareportingScope = "https://www.googleapis.com/auth/dfareporting";
+
+-- | View and manage your DoubleClick Campaign Manager\'s (DCM) display ad
+-- campaigns
+dfatraffickingScope :: OAuthScope
+dfatraffickingScope = "https://www.googleapis.com/auth/dfatrafficking";
diff --git a/gen/Network/Google/DFAReporting/Types/Product.hs b/gen/Network/Google/DFAReporting/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DFAReporting/Types/Product.hs
@@ -0,0 +1,20455 @@
+{-# 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.DFAReporting.Types.Product
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.DFAReporting.Types.Product where
+
+import           Network.Google.DFAReporting.Types.Sum
+import           Network.Google.Prelude
+
+-- | Represents the list of File resources.
+--
+-- /See:/ 'fileList' smart constructor.
+data FileList = FileList
+    { _flEtag          :: !(Maybe Text)
+    , _flNextPageToken :: !(Maybe Text)
+    , _flKind          :: !Text
+    , _flItems         :: !(Maybe [File])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FileList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'flEtag'
+--
+-- * 'flNextPageToken'
+--
+-- * 'flKind'
+--
+-- * 'flItems'
+fileList
+    :: FileList
+fileList =
+    FileList
+    { _flEtag = Nothing
+    , _flNextPageToken = Nothing
+    , _flKind = "dfareporting#fileList"
+    , _flItems = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+flEtag :: Lens' FileList (Maybe Text)
+flEtag = lens _flEtag (\ s a -> s{_flEtag = a})
+
+-- | Continuation token used to page through files. To retrieve the next page
+-- of results, set the next request\'s \"pageToken\" to the value of this
+-- field. The page token is only valid for a limited amount of time and
+-- should not be persisted.
+flNextPageToken :: Lens' FileList (Maybe Text)
+flNextPageToken
+  = lens _flNextPageToken
+      (\ s a -> s{_flNextPageToken = a})
+
+-- | The kind of list this is, in this case dfareporting#fileList.
+flKind :: Lens' FileList Text
+flKind = lens _flKind (\ s a -> s{_flKind = a})
+
+-- | The files returned in this response.
+flItems :: Lens' FileList [File]
+flItems
+  = lens _flItems (\ s a -> s{_flItems = a}) . _Default
+      . _Coerce
+
+instance FromJSON FileList where
+        parseJSON
+          = withObject "FileList"
+              (\ o ->
+                 FileList <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#fileList")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON FileList where
+        toJSON FileList{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _flEtag,
+                  ("nextPageToken" .=) <$> _flNextPageToken,
+                  Just ("kind" .= _flKind), ("items" .=) <$> _flItems])
+
+-- | Creative optimization activity.
+--
+-- /See:/ 'optimizationActivity' smart constructor.
+data OptimizationActivity = OptimizationActivity
+    { _oaWeight                             :: !(Maybe (Textual Int32))
+    , _oaFloodlightActivityId               :: !(Maybe (Textual Int64))
+    , _oaFloodlightActivityIdDimensionValue :: !(Maybe DimensionValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OptimizationActivity' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'oaWeight'
+--
+-- * 'oaFloodlightActivityId'
+--
+-- * 'oaFloodlightActivityIdDimensionValue'
+optimizationActivity
+    :: OptimizationActivity
+optimizationActivity =
+    OptimizationActivity
+    { _oaWeight = Nothing
+    , _oaFloodlightActivityId = Nothing
+    , _oaFloodlightActivityIdDimensionValue = Nothing
+    }
+
+-- | Weight associated with this optimization. Must be greater than 1. The
+-- weight assigned will be understood in proportion to the weights assigned
+-- to the other optimization activities.
+oaWeight :: Lens' OptimizationActivity (Maybe Int32)
+oaWeight
+  = lens _oaWeight (\ s a -> s{_oaWeight = a}) .
+      mapping _Coerce
+
+-- | Floodlight activity ID of this optimization activity. This is a required
+-- field.
+oaFloodlightActivityId :: Lens' OptimizationActivity (Maybe Int64)
+oaFloodlightActivityId
+  = lens _oaFloodlightActivityId
+      (\ s a -> s{_oaFloodlightActivityId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the floodlight activity. This is a
+-- read-only, auto-generated field.
+oaFloodlightActivityIdDimensionValue :: Lens' OptimizationActivity (Maybe DimensionValue)
+oaFloodlightActivityIdDimensionValue
+  = lens _oaFloodlightActivityIdDimensionValue
+      (\ s a ->
+         s{_oaFloodlightActivityIdDimensionValue = a})
+
+instance FromJSON OptimizationActivity where
+        parseJSON
+          = withObject "OptimizationActivity"
+              (\ o ->
+                 OptimizationActivity <$>
+                   (o .:? "weight") <*> (o .:? "floodlightActivityId")
+                     <*> (o .:? "floodlightActivityIdDimensionValue"))
+
+instance ToJSON OptimizationActivity where
+        toJSON OptimizationActivity{..}
+          = object
+              (catMaybes
+                 [("weight" .=) <$> _oaWeight,
+                  ("floodlightActivityId" .=) <$>
+                    _oaFloodlightActivityId,
+                  ("floodlightActivityIdDimensionValue" .=) <$>
+                    _oaFloodlightActivityIdDimensionValue])
+
+-- | A group clause made up of list population terms representing constraints
+-- joined by ORs.
+--
+-- /See:/ 'listPopulationClause' smart constructor.
+newtype ListPopulationClause = ListPopulationClause
+    { _lpcTerms :: Maybe [ListPopulationTerm]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListPopulationClause' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpcTerms'
+listPopulationClause
+    :: ListPopulationClause
+listPopulationClause =
+    ListPopulationClause
+    { _lpcTerms = Nothing
+    }
+
+-- | Terms of this list population clause. Each clause is made up of list
+-- population terms representing constraints and are joined by ORs.
+lpcTerms :: Lens' ListPopulationClause [ListPopulationTerm]
+lpcTerms
+  = lens _lpcTerms (\ s a -> s{_lpcTerms = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListPopulationClause where
+        parseJSON
+          = withObject "ListPopulationClause"
+              (\ o ->
+                 ListPopulationClause <$> (o .:? "terms" .!= mempty))
+
+instance ToJSON ListPopulationClause where
+        toJSON ListPopulationClause{..}
+          = object (catMaybes [("terms" .=) <$> _lpcTerms])
+
+-- | Creative Custom Event.
+--
+-- /See:/ 'creativeCustomEvent' smart constructor.
+data CreativeCustomEvent = CreativeCustomEvent
+    { _cceAdvertiserCustomEventType :: !(Maybe CreativeCustomEventAdvertiserCustomEventType)
+    , _cceAdvertiserCustomEventName :: !(Maybe Text)
+    , _cceExitURL                   :: !(Maybe Text)
+    , _cceTargetType                :: !(Maybe CreativeCustomEventTargetType)
+    , _ccePopupWindowProperties     :: !(Maybe PopupWindowProperties)
+    , _cceVideoReportingId          :: !(Maybe Text)
+    , _cceId                        :: !(Maybe (Textual Int64))
+    , _cceArtworkLabel              :: !(Maybe Text)
+    , _cceArtworkType               :: !(Maybe CreativeCustomEventArtworkType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeCustomEvent' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cceAdvertiserCustomEventType'
+--
+-- * 'cceAdvertiserCustomEventName'
+--
+-- * 'cceExitURL'
+--
+-- * 'cceTargetType'
+--
+-- * 'ccePopupWindowProperties'
+--
+-- * 'cceVideoReportingId'
+--
+-- * 'cceId'
+--
+-- * 'cceArtworkLabel'
+--
+-- * 'cceArtworkType'
+creativeCustomEvent
+    :: CreativeCustomEvent
+creativeCustomEvent =
+    CreativeCustomEvent
+    { _cceAdvertiserCustomEventType = Nothing
+    , _cceAdvertiserCustomEventName = Nothing
+    , _cceExitURL = Nothing
+    , _cceTargetType = Nothing
+    , _ccePopupWindowProperties = Nothing
+    , _cceVideoReportingId = Nothing
+    , _cceId = Nothing
+    , _cceArtworkLabel = Nothing
+    , _cceArtworkType = Nothing
+    }
+
+-- | Type of the event. This is a read-only field.
+cceAdvertiserCustomEventType :: Lens' CreativeCustomEvent (Maybe CreativeCustomEventAdvertiserCustomEventType)
+cceAdvertiserCustomEventType
+  = lens _cceAdvertiserCustomEventType
+      (\ s a -> s{_cceAdvertiserCustomEventType = a})
+
+-- | User-entered name for the event.
+cceAdvertiserCustomEventName :: Lens' CreativeCustomEvent (Maybe Text)
+cceAdvertiserCustomEventName
+  = lens _cceAdvertiserCustomEventName
+      (\ s a -> s{_cceAdvertiserCustomEventName = a})
+
+-- | Exit URL of the event. This field is used only for exit events.
+cceExitURL :: Lens' CreativeCustomEvent (Maybe Text)
+cceExitURL
+  = lens _cceExitURL (\ s a -> s{_cceExitURL = a})
+
+-- | Target type used by the event.
+cceTargetType :: Lens' CreativeCustomEvent (Maybe CreativeCustomEventTargetType)
+cceTargetType
+  = lens _cceTargetType
+      (\ s a -> s{_cceTargetType = a})
+
+-- | Properties for rich media popup windows. This field is used only for
+-- exit events.
+ccePopupWindowProperties :: Lens' CreativeCustomEvent (Maybe PopupWindowProperties)
+ccePopupWindowProperties
+  = lens _ccePopupWindowProperties
+      (\ s a -> s{_ccePopupWindowProperties = a})
+
+-- | Reporting ID, used to differentiate multiple videos in a single
+-- creative.
+cceVideoReportingId :: Lens' CreativeCustomEvent (Maybe Text)
+cceVideoReportingId
+  = lens _cceVideoReportingId
+      (\ s a -> s{_cceVideoReportingId = a})
+
+-- | ID of this event. This is a required field and should not be modified
+-- after insertion.
+cceId :: Lens' CreativeCustomEvent (Maybe Int64)
+cceId
+  = lens _cceId (\ s a -> s{_cceId = a}) .
+      mapping _Coerce
+
+-- | Artwork label column, used to link events in DCM back to events in
+-- Studio. This is a required field and should not be modified after
+-- insertion.
+cceArtworkLabel :: Lens' CreativeCustomEvent (Maybe Text)
+cceArtworkLabel
+  = lens _cceArtworkLabel
+      (\ s a -> s{_cceArtworkLabel = a})
+
+-- | Artwork type used by the creative.This is a read-only field.
+cceArtworkType :: Lens' CreativeCustomEvent (Maybe CreativeCustomEventArtworkType)
+cceArtworkType
+  = lens _cceArtworkType
+      (\ s a -> s{_cceArtworkType = a})
+
+instance FromJSON CreativeCustomEvent where
+        parseJSON
+          = withObject "CreativeCustomEvent"
+              (\ o ->
+                 CreativeCustomEvent <$>
+                   (o .:? "advertiserCustomEventType") <*>
+                     (o .:? "advertiserCustomEventName")
+                     <*> (o .:? "exitUrl")
+                     <*> (o .:? "targetType")
+                     <*> (o .:? "popupWindowProperties")
+                     <*> (o .:? "videoReportingId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "artworkLabel")
+                     <*> (o .:? "artworkType"))
+
+instance ToJSON CreativeCustomEvent where
+        toJSON CreativeCustomEvent{..}
+          = object
+              (catMaybes
+                 [("advertiserCustomEventType" .=) <$>
+                    _cceAdvertiserCustomEventType,
+                  ("advertiserCustomEventName" .=) <$>
+                    _cceAdvertiserCustomEventName,
+                  ("exitUrl" .=) <$> _cceExitURL,
+                  ("targetType" .=) <$> _cceTargetType,
+                  ("popupWindowProperties" .=) <$>
+                    _ccePopupWindowProperties,
+                  ("videoReportingId" .=) <$> _cceVideoReportingId,
+                  ("id" .=) <$> _cceId,
+                  ("artworkLabel" .=) <$> _cceArtworkLabel,
+                  ("artworkType" .=) <$> _cceArtworkType])
+
+-- | Creative Click Tag.
+--
+-- /See:/ 'clickTag' smart constructor.
+data ClickTag = ClickTag
+    { _ctValue     :: !(Maybe Text)
+    , _ctName      :: !(Maybe Text)
+    , _ctEventName :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ClickTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctValue'
+--
+-- * 'ctName'
+--
+-- * 'ctEventName'
+clickTag
+    :: ClickTag
+clickTag =
+    ClickTag
+    { _ctValue = Nothing
+    , _ctName = Nothing
+    , _ctEventName = Nothing
+    }
+
+-- | Parameter value for the specified click tag. This field contains a
+-- click-through url.
+ctValue :: Lens' ClickTag (Maybe Text)
+ctValue = lens _ctValue (\ s a -> s{_ctValue = a})
+
+-- | Parameter name for the specified click tag. For ENHANCED_IMAGE creative
+-- assets, this field must match the value of the creative asset\'s
+-- creativeAssetId.name field.
+ctName :: Lens' ClickTag (Maybe Text)
+ctName = lens _ctName (\ s a -> s{_ctName = a})
+
+-- | Advertiser event name associated with the click tag. This field is used
+-- by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+ctEventName :: Lens' ClickTag (Maybe Text)
+ctEventName
+  = lens _ctEventName (\ s a -> s{_ctEventName = a})
+
+instance FromJSON ClickTag where
+        parseJSON
+          = withObject "ClickTag"
+              (\ o ->
+                 ClickTag <$>
+                   (o .:? "value") <*> (o .:? "name") <*>
+                     (o .:? "eventName"))
+
+instance ToJSON ClickTag where
+        toJSON ClickTag{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _ctValue, ("name" .=) <$> _ctName,
+                  ("eventName" .=) <$> _ctEventName])
+
+-- | Campaign List Response
+--
+-- /See:/ 'campaignsListResponse' smart constructor.
+data CampaignsListResponse = CampaignsListResponse
+    { _clrNextPageToken :: !(Maybe Text)
+    , _clrCampaigns     :: !(Maybe [Campaign])
+    , _clrKind          :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'clrNextPageToken'
+--
+-- * 'clrCampaigns'
+--
+-- * 'clrKind'
+campaignsListResponse
+    :: CampaignsListResponse
+campaignsListResponse =
+    CampaignsListResponse
+    { _clrNextPageToken = Nothing
+    , _clrCampaigns = Nothing
+    , _clrKind = "dfareporting#campaignsListResponse"
+    }
+
+-- | Pagination token to be used for the next list operation.
+clrNextPageToken :: Lens' CampaignsListResponse (Maybe Text)
+clrNextPageToken
+  = lens _clrNextPageToken
+      (\ s a -> s{_clrNextPageToken = a})
+
+-- | Campaign collection.
+clrCampaigns :: Lens' CampaignsListResponse [Campaign]
+clrCampaigns
+  = lens _clrCampaigns (\ s a -> s{_clrCampaigns = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#campaignsListResponse\".
+clrKind :: Lens' CampaignsListResponse Text
+clrKind = lens _clrKind (\ s a -> s{_clrKind = a})
+
+instance FromJSON CampaignsListResponse where
+        parseJSON
+          = withObject "CampaignsListResponse"
+              (\ o ->
+                 CampaignsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "campaigns" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#campaignsListResponse"))
+
+instance ToJSON CampaignsListResponse where
+        toJSON CampaignsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _clrNextPageToken,
+                  ("campaigns" .=) <$> _clrCampaigns,
+                  Just ("kind" .= _clrKind)])
+
+-- | Geographical Targeting.
+--
+-- /See:/ 'geoTargeting' smart constructor.
+data GeoTargeting = GeoTargeting
+    { _gtRegions          :: !(Maybe [Region])
+    , _gtCountries        :: !(Maybe [Country])
+    , _gtCities           :: !(Maybe [City])
+    , _gtMetros           :: !(Maybe [Metro])
+    , _gtExcludeCountries :: !(Maybe Bool)
+    , _gtPostalCodes      :: !(Maybe [PostalCode])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GeoTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gtRegions'
+--
+-- * 'gtCountries'
+--
+-- * 'gtCities'
+--
+-- * 'gtMetros'
+--
+-- * 'gtExcludeCountries'
+--
+-- * 'gtPostalCodes'
+geoTargeting
+    :: GeoTargeting
+geoTargeting =
+    GeoTargeting
+    { _gtRegions = Nothing
+    , _gtCountries = Nothing
+    , _gtCities = Nothing
+    , _gtMetros = Nothing
+    , _gtExcludeCountries = Nothing
+    , _gtPostalCodes = Nothing
+    }
+
+-- | Regions to be targeted. For each region only dartId is required. The
+-- other fields are populated automatically when the ad is inserted or
+-- updated. If targeting a region, do not target or exclude the country of
+-- the region.
+gtRegions :: Lens' GeoTargeting [Region]
+gtRegions
+  = lens _gtRegions (\ s a -> s{_gtRegions = a}) .
+      _Default
+      . _Coerce
+
+-- | Countries to be targeted or excluded from targeting, depending on the
+-- setting of the excludeCountries field. For each country only dartId is
+-- required. The other fields are populated automatically when the ad is
+-- inserted or updated. If targeting or excluding a country, do not target
+-- regions, cities, metros, or postal codes in the same country.
+gtCountries :: Lens' GeoTargeting [Country]
+gtCountries
+  = lens _gtCountries (\ s a -> s{_gtCountries = a}) .
+      _Default
+      . _Coerce
+
+-- | Cities to be targeted. For each city only dartId is required. The other
+-- fields are populated automatically when the ad is inserted or updated.
+-- If targeting a city, do not target or exclude the country of the city,
+-- and do not target the metro or region of the city.
+gtCities :: Lens' GeoTargeting [City]
+gtCities
+  = lens _gtCities (\ s a -> s{_gtCities = a}) .
+      _Default
+      . _Coerce
+
+-- | Metros to be targeted. For each metro only dmaId is required. The other
+-- fields are populated automatically when the ad is inserted or updated.
+-- If targeting a metro, do not target or exclude the country of the metro.
+gtMetros :: Lens' GeoTargeting [Metro]
+gtMetros
+  = lens _gtMetros (\ s a -> s{_gtMetros = a}) .
+      _Default
+      . _Coerce
+
+-- | Whether or not to exclude the countries in the countries field from
+-- targeting. If false, the countries field refers to countries which will
+-- be targeted by the ad.
+gtExcludeCountries :: Lens' GeoTargeting (Maybe Bool)
+gtExcludeCountries
+  = lens _gtExcludeCountries
+      (\ s a -> s{_gtExcludeCountries = a})
+
+-- | Postal codes to be targeted. For each postal code only id is required.
+-- The other fields are populated automatically when the ad is inserted or
+-- updated. If targeting a postal code, do not target or exclude the
+-- country of the postal code.
+gtPostalCodes :: Lens' GeoTargeting [PostalCode]
+gtPostalCodes
+  = lens _gtPostalCodes
+      (\ s a -> s{_gtPostalCodes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON GeoTargeting where
+        parseJSON
+          = withObject "GeoTargeting"
+              (\ o ->
+                 GeoTargeting <$>
+                   (o .:? "regions" .!= mempty) <*>
+                     (o .:? "countries" .!= mempty)
+                     <*> (o .:? "cities" .!= mempty)
+                     <*> (o .:? "metros" .!= mempty)
+                     <*> (o .:? "excludeCountries")
+                     <*> (o .:? "postalCodes" .!= mempty))
+
+instance ToJSON GeoTargeting where
+        toJSON GeoTargeting{..}
+          = object
+              (catMaybes
+                 [("regions" .=) <$> _gtRegions,
+                  ("countries" .=) <$> _gtCountries,
+                  ("cities" .=) <$> _gtCities,
+                  ("metros" .=) <$> _gtMetros,
+                  ("excludeCountries" .=) <$> _gtExcludeCountries,
+                  ("postalCodes" .=) <$> _gtPostalCodes])
+
+-- | Represents fields that are compatible to be selected for a report of
+-- type \"REACH\".
+--
+-- /See:/ 'reachReportCompatibleFields' smart constructor.
+data ReachReportCompatibleFields = ReachReportCompatibleFields
+    { _rrcfMetrics                 :: !(Maybe [Metric])
+    , _rrcfReachByFrequencyMetrics :: !(Maybe [Metric])
+    , _rrcfKind                    :: !Text
+    , _rrcfDimensionFilters        :: !(Maybe [Dimension])
+    , _rrcfPivotedActivityMetrics  :: !(Maybe [Metric])
+    , _rrcfDimensions              :: !(Maybe [Dimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReachReportCompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rrcfMetrics'
+--
+-- * 'rrcfReachByFrequencyMetrics'
+--
+-- * 'rrcfKind'
+--
+-- * 'rrcfDimensionFilters'
+--
+-- * 'rrcfPivotedActivityMetrics'
+--
+-- * 'rrcfDimensions'
+reachReportCompatibleFields
+    :: ReachReportCompatibleFields
+reachReportCompatibleFields =
+    ReachReportCompatibleFields
+    { _rrcfMetrics = Nothing
+    , _rrcfReachByFrequencyMetrics = Nothing
+    , _rrcfKind = "dfareporting#reachReportCompatibleFields"
+    , _rrcfDimensionFilters = Nothing
+    , _rrcfPivotedActivityMetrics = Nothing
+    , _rrcfDimensions = Nothing
+    }
+
+-- | Metrics which are compatible to be selected in the \"metricNames\"
+-- section of the report.
+rrcfMetrics :: Lens' ReachReportCompatibleFields [Metric]
+rrcfMetrics
+  = lens _rrcfMetrics (\ s a -> s{_rrcfMetrics = a}) .
+      _Default
+      . _Coerce
+
+-- | Metrics which are compatible to be selected in the
+-- \"reachByFrequencyMetricNames\" section of the report.
+rrcfReachByFrequencyMetrics :: Lens' ReachReportCompatibleFields [Metric]
+rrcfReachByFrequencyMetrics
+  = lens _rrcfReachByFrequencyMetrics
+      (\ s a -> s{_rrcfReachByFrequencyMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | The kind of resource this is, in this case
+-- dfareporting#reachReportCompatibleFields.
+rrcfKind :: Lens' ReachReportCompatibleFields Text
+rrcfKind = lens _rrcfKind (\ s a -> s{_rrcfKind = a})
+
+-- | Dimensions which are compatible to be selected in the
+-- \"dimensionFilters\" section of the report.
+rrcfDimensionFilters :: Lens' ReachReportCompatibleFields [Dimension]
+rrcfDimensionFilters
+  = lens _rrcfDimensionFilters
+      (\ s a -> s{_rrcfDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Metrics which are compatible to be selected as activity metrics to pivot
+-- on in the \"activities\" section of the report.
+rrcfPivotedActivityMetrics :: Lens' ReachReportCompatibleFields [Metric]
+rrcfPivotedActivityMetrics
+  = lens _rrcfPivotedActivityMetrics
+      (\ s a -> s{_rrcfPivotedActivityMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | Dimensions which are compatible to be selected in the \"dimensions\"
+-- section of the report.
+rrcfDimensions :: Lens' ReachReportCompatibleFields [Dimension]
+rrcfDimensions
+  = lens _rrcfDimensions
+      (\ s a -> s{_rrcfDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReachReportCompatibleFields where
+        parseJSON
+          = withObject "ReachReportCompatibleFields"
+              (\ o ->
+                 ReachReportCompatibleFields <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "reachByFrequencyMetrics" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#reachReportCompatibleFields")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "pivotedActivityMetrics" .!= mempty)
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON ReachReportCompatibleFields where
+        toJSON ReachReportCompatibleFields{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _rrcfMetrics,
+                  ("reachByFrequencyMetrics" .=) <$>
+                    _rrcfReachByFrequencyMetrics,
+                  Just ("kind" .= _rrcfKind),
+                  ("dimensionFilters" .=) <$> _rrcfDimensionFilters,
+                  ("pivotedActivityMetrics" .=) <$>
+                    _rrcfPivotedActivityMetrics,
+                  ("dimensions" .=) <$> _rrcfDimensions])
+
+-- | Contains information about a browser that can be targeted by ads.
+--
+-- /See:/ 'browser' smart constructor.
+data Browser = Browser
+    { _bMinorVersion     :: !(Maybe Text)
+    , _bKind             :: !Text
+    , _bBrowserVersionId :: !(Maybe (Textual Int64))
+    , _bMajorVersion     :: !(Maybe Text)
+    , _bName             :: !(Maybe Text)
+    , _bDartId           :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Browser' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bMinorVersion'
+--
+-- * 'bKind'
+--
+-- * 'bBrowserVersionId'
+--
+-- * 'bMajorVersion'
+--
+-- * 'bName'
+--
+-- * 'bDartId'
+browser
+    :: Browser
+browser =
+    Browser
+    { _bMinorVersion = Nothing
+    , _bKind = "dfareporting#browser"
+    , _bBrowserVersionId = Nothing
+    , _bMajorVersion = Nothing
+    , _bName = Nothing
+    , _bDartId = Nothing
+    }
+
+-- | Minor version number (number after first dot on left) of this browser.
+-- For example, for Chrome 5.0.375.86 beta, this field should be set to 0.
+-- An asterisk (*) may be used to target any version number, and a question
+-- mark (?) may be used to target cases where the version number cannot be
+-- identified. For example, Chrome *.* targets any version of Chrome: 1.2,
+-- 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0.
+-- Firefox ?.? targets cases where the ad server knows the browser is
+-- Firefox but can\'t tell which version it is.
+bMinorVersion :: Lens' Browser (Maybe Text)
+bMinorVersion
+  = lens _bMinorVersion
+      (\ s a -> s{_bMinorVersion = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#browser\".
+bKind :: Lens' Browser Text
+bKind = lens _bKind (\ s a -> s{_bKind = a})
+
+-- | ID referring to this grouping of browser and version numbers. This is
+-- the ID used for targeting.
+bBrowserVersionId :: Lens' Browser (Maybe Int64)
+bBrowserVersionId
+  = lens _bBrowserVersionId
+      (\ s a -> s{_bBrowserVersionId = a})
+      . mapping _Coerce
+
+-- | Major version number (leftmost number) of this browser. For example, for
+-- Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*)
+-- may be used to target any version number, and a question mark (?) may be
+-- used to target cases where the version number cannot be identified. For
+-- example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so
+-- on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets
+-- cases where the ad server knows the browser is Firefox but can\'t tell
+-- which version it is.
+bMajorVersion :: Lens' Browser (Maybe Text)
+bMajorVersion
+  = lens _bMajorVersion
+      (\ s a -> s{_bMajorVersion = a})
+
+-- | Name of this browser.
+bName :: Lens' Browser (Maybe Text)
+bName = lens _bName (\ s a -> s{_bName = a})
+
+-- | DART ID of this browser. This is the ID used when generating reports.
+bDartId :: Lens' Browser (Maybe Int64)
+bDartId
+  = lens _bDartId (\ s a -> s{_bDartId = a}) .
+      mapping _Coerce
+
+instance FromJSON Browser where
+        parseJSON
+          = withObject "Browser"
+              (\ o ->
+                 Browser <$>
+                   (o .:? "minorVersion") <*>
+                     (o .:? "kind" .!= "dfareporting#browser")
+                     <*> (o .:? "browserVersionId")
+                     <*> (o .:? "majorVersion")
+                     <*> (o .:? "name")
+                     <*> (o .:? "dartId"))
+
+instance ToJSON Browser where
+        toJSON Browser{..}
+          = object
+              (catMaybes
+                 [("minorVersion" .=) <$> _bMinorVersion,
+                  Just ("kind" .= _bKind),
+                  ("browserVersionId" .=) <$> _bBrowserVersionId,
+                  ("majorVersion" .=) <$> _bMajorVersion,
+                  ("name" .=) <$> _bName, ("dartId" .=) <$> _bDartId])
+
+-- | Creative Group Assignment.
+--
+-- /See:/ 'creativeGroupAssignment' smart constructor.
+data CreativeGroupAssignment = CreativeGroupAssignment
+    { _cgaCreativeGroupNumber :: !(Maybe CreativeGroupAssignmentCreativeGroupNumber)
+    , _cgaCreativeGroupId     :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroupAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cgaCreativeGroupNumber'
+--
+-- * 'cgaCreativeGroupId'
+creativeGroupAssignment
+    :: CreativeGroupAssignment
+creativeGroupAssignment =
+    CreativeGroupAssignment
+    { _cgaCreativeGroupNumber = Nothing
+    , _cgaCreativeGroupId = Nothing
+    }
+
+-- | Creative group number of the creative group assignment.
+cgaCreativeGroupNumber :: Lens' CreativeGroupAssignment (Maybe CreativeGroupAssignmentCreativeGroupNumber)
+cgaCreativeGroupNumber
+  = lens _cgaCreativeGroupNumber
+      (\ s a -> s{_cgaCreativeGroupNumber = a})
+
+-- | ID of the creative group to be assigned.
+cgaCreativeGroupId :: Lens' CreativeGroupAssignment (Maybe Int64)
+cgaCreativeGroupId
+  = lens _cgaCreativeGroupId
+      (\ s a -> s{_cgaCreativeGroupId = a})
+      . mapping _Coerce
+
+instance FromJSON CreativeGroupAssignment where
+        parseJSON
+          = withObject "CreativeGroupAssignment"
+              (\ o ->
+                 CreativeGroupAssignment <$>
+                   (o .:? "creativeGroupNumber") <*>
+                     (o .:? "creativeGroupId"))
+
+instance ToJSON CreativeGroupAssignment where
+        toJSON CreativeGroupAssignment{..}
+          = object
+              (catMaybes
+                 [("creativeGroupNumber" .=) <$>
+                    _cgaCreativeGroupNumber,
+                  ("creativeGroupId" .=) <$> _cgaCreativeGroupId])
+
+-- | Directory Site Settings
+--
+-- /See:/ 'directorySiteSettings' smart constructor.
+data DirectorySiteSettings = DirectorySiteSettings
+    { _dssInterstitialPlacementAccepted  :: !(Maybe Bool)
+    , _dssDfpSettings                    :: !(Maybe DfpSettings)
+    , _dssVerificationTagOptOut          :: !(Maybe Bool)
+    , _dssActiveViewOptOut               :: !(Maybe Bool)
+    , _dssVideoActiveViewOptOut          :: !(Maybe Bool)
+    , _dssInstreamVideoPlacementAccepted :: !(Maybe Bool)
+    , _dssNielsenOCROptOut               :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySiteSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dssInterstitialPlacementAccepted'
+--
+-- * 'dssDfpSettings'
+--
+-- * 'dssVerificationTagOptOut'
+--
+-- * 'dssActiveViewOptOut'
+--
+-- * 'dssVideoActiveViewOptOut'
+--
+-- * 'dssInstreamVideoPlacementAccepted'
+--
+-- * 'dssNielsenOCROptOut'
+directorySiteSettings
+    :: DirectorySiteSettings
+directorySiteSettings =
+    DirectorySiteSettings
+    { _dssInterstitialPlacementAccepted = Nothing
+    , _dssDfpSettings = Nothing
+    , _dssVerificationTagOptOut = Nothing
+    , _dssActiveViewOptOut = Nothing
+    , _dssVideoActiveViewOptOut = Nothing
+    , _dssInstreamVideoPlacementAccepted = Nothing
+    , _dssNielsenOCROptOut = Nothing
+    }
+
+-- | Whether this site accepts interstitial ads.
+dssInterstitialPlacementAccepted :: Lens' DirectorySiteSettings (Maybe Bool)
+dssInterstitialPlacementAccepted
+  = lens _dssInterstitialPlacementAccepted
+      (\ s a -> s{_dssInterstitialPlacementAccepted = a})
+
+-- | Directory site DFP settings.
+dssDfpSettings :: Lens' DirectorySiteSettings (Maybe DfpSettings)
+dssDfpSettings
+  = lens _dssDfpSettings
+      (\ s a -> s{_dssDfpSettings = a})
+
+-- | Whether this directory site has disabled generation of Verification ins
+-- tags.
+dssVerificationTagOptOut :: Lens' DirectorySiteSettings (Maybe Bool)
+dssVerificationTagOptOut
+  = lens _dssVerificationTagOptOut
+      (\ s a -> s{_dssVerificationTagOptOut = a})
+
+-- | Whether this directory site has disabled active view creatives.
+dssActiveViewOptOut :: Lens' DirectorySiteSettings (Maybe Bool)
+dssActiveViewOptOut
+  = lens _dssActiveViewOptOut
+      (\ s a -> s{_dssActiveViewOptOut = a})
+
+-- | Whether this directory site has disabled active view for in-stream video
+-- creatives.
+dssVideoActiveViewOptOut :: Lens' DirectorySiteSettings (Maybe Bool)
+dssVideoActiveViewOptOut
+  = lens _dssVideoActiveViewOptOut
+      (\ s a -> s{_dssVideoActiveViewOptOut = a})
+
+-- | Whether this site accepts in-stream video ads.
+dssInstreamVideoPlacementAccepted :: Lens' DirectorySiteSettings (Maybe Bool)
+dssInstreamVideoPlacementAccepted
+  = lens _dssInstreamVideoPlacementAccepted
+      (\ s a -> s{_dssInstreamVideoPlacementAccepted = a})
+
+-- | Whether this directory site has disabled Nielsen OCR reach ratings.
+dssNielsenOCROptOut :: Lens' DirectorySiteSettings (Maybe Bool)
+dssNielsenOCROptOut
+  = lens _dssNielsenOCROptOut
+      (\ s a -> s{_dssNielsenOCROptOut = a})
+
+instance FromJSON DirectorySiteSettings where
+        parseJSON
+          = withObject "DirectorySiteSettings"
+              (\ o ->
+                 DirectorySiteSettings <$>
+                   (o .:? "interstitialPlacementAccepted") <*>
+                     (o .:? "dfp_settings")
+                     <*> (o .:? "verificationTagOptOut")
+                     <*> (o .:? "activeViewOptOut")
+                     <*> (o .:? "videoActiveViewOptOut")
+                     <*> (o .:? "instream_video_placement_accepted")
+                     <*> (o .:? "nielsenOcrOptOut"))
+
+instance ToJSON DirectorySiteSettings where
+        toJSON DirectorySiteSettings{..}
+          = object
+              (catMaybes
+                 [("interstitialPlacementAccepted" .=) <$>
+                    _dssInterstitialPlacementAccepted,
+                  ("dfp_settings" .=) <$> _dssDfpSettings,
+                  ("verificationTagOptOut" .=) <$>
+                    _dssVerificationTagOptOut,
+                  ("activeViewOptOut" .=) <$> _dssActiveViewOptOut,
+                  ("videoActiveViewOptOut" .=) <$>
+                    _dssVideoActiveViewOptOut,
+                  ("instream_video_placement_accepted" .=) <$>
+                    _dssInstreamVideoPlacementAccepted,
+                  ("nielsenOcrOptOut" .=) <$> _dssNielsenOCROptOut])
+
+-- | Remarketing List Population Rule.
+--
+-- /See:/ 'listPopulationRule' smart constructor.
+data ListPopulationRule = ListPopulationRule
+    { _lprFloodlightActivityName :: !(Maybe Text)
+    , _lprFloodlightActivityId   :: !(Maybe (Textual Int64))
+    , _lprListPopulationClauses  :: !(Maybe [ListPopulationClause])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListPopulationRule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lprFloodlightActivityName'
+--
+-- * 'lprFloodlightActivityId'
+--
+-- * 'lprListPopulationClauses'
+listPopulationRule
+    :: ListPopulationRule
+listPopulationRule =
+    ListPopulationRule
+    { _lprFloodlightActivityName = Nothing
+    , _lprFloodlightActivityId = Nothing
+    , _lprListPopulationClauses = Nothing
+    }
+
+-- | Name of floodlight activity associated with this rule. This is a
+-- read-only, auto-generated field.
+lprFloodlightActivityName :: Lens' ListPopulationRule (Maybe Text)
+lprFloodlightActivityName
+  = lens _lprFloodlightActivityName
+      (\ s a -> s{_lprFloodlightActivityName = a})
+
+-- | Floodlight activity ID associated with this rule. This field can be left
+-- blank.
+lprFloodlightActivityId :: Lens' ListPopulationRule (Maybe Int64)
+lprFloodlightActivityId
+  = lens _lprFloodlightActivityId
+      (\ s a -> s{_lprFloodlightActivityId = a})
+      . mapping _Coerce
+
+-- | Clauses that make up this list population rule. Clauses are joined by
+-- ANDs, and the clauses themselves are made up of list population terms
+-- which are joined by ORs.
+lprListPopulationClauses :: Lens' ListPopulationRule [ListPopulationClause]
+lprListPopulationClauses
+  = lens _lprListPopulationClauses
+      (\ s a -> s{_lprListPopulationClauses = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListPopulationRule where
+        parseJSON
+          = withObject "ListPopulationRule"
+              (\ o ->
+                 ListPopulationRule <$>
+                   (o .:? "floodlightActivityName") <*>
+                     (o .:? "floodlightActivityId")
+                     <*> (o .:? "listPopulationClauses" .!= mempty))
+
+instance ToJSON ListPopulationRule where
+        toJSON ListPopulationRule{..}
+          = object
+              (catMaybes
+                 [("floodlightActivityName" .=) <$>
+                    _lprFloodlightActivityName,
+                  ("floodlightActivityId" .=) <$>
+                    _lprFloodlightActivityId,
+                  ("listPopulationClauses" .=) <$>
+                    _lprListPopulationClauses])
+
+-- | Size List Response
+--
+-- /See:/ 'sizesListResponse' smart constructor.
+data SizesListResponse = SizesListResponse
+    { _slrKind  :: !Text
+    , _slrSizes :: !(Maybe [Size])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SizesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'slrKind'
+--
+-- * 'slrSizes'
+sizesListResponse
+    :: SizesListResponse
+sizesListResponse =
+    SizesListResponse
+    { _slrKind = "dfareporting#sizesListResponse"
+    , _slrSizes = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#sizesListResponse\".
+slrKind :: Lens' SizesListResponse Text
+slrKind = lens _slrKind (\ s a -> s{_slrKind = a})
+
+-- | Size collection.
+slrSizes :: Lens' SizesListResponse [Size]
+slrSizes
+  = lens _slrSizes (\ s a -> s{_slrSizes = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON SizesListResponse where
+        parseJSON
+          = withObject "SizesListResponse"
+              (\ o ->
+                 SizesListResponse <$>
+                   (o .:? "kind" .!= "dfareporting#sizesListResponse")
+                     <*> (o .:? "sizes" .!= mempty))
+
+instance ToJSON SizesListResponse where
+        toJSON SizesListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _slrKind),
+                  ("sizes" .=) <$> _slrSizes])
+
+-- | Creative Rotation.
+--
+-- /See:/ 'creativeRotation' smart constructor.
+data CreativeRotation = CreativeRotation
+    { _crWeightCalculationStrategy           :: !(Maybe CreativeRotationWeightCalculationStrategy)
+    , _crCreativeAssignments                 :: !(Maybe [CreativeAssignment])
+    , _crCreativeOptimizationConfigurationId :: !(Maybe (Textual Int64))
+    , _crType                                :: !(Maybe CreativeRotationType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeRotation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crWeightCalculationStrategy'
+--
+-- * 'crCreativeAssignments'
+--
+-- * 'crCreativeOptimizationConfigurationId'
+--
+-- * 'crType'
+creativeRotation
+    :: CreativeRotation
+creativeRotation =
+    CreativeRotation
+    { _crWeightCalculationStrategy = Nothing
+    , _crCreativeAssignments = Nothing
+    , _crCreativeOptimizationConfigurationId = Nothing
+    , _crType = Nothing
+    }
+
+-- | Strategy for calculating weights. Used with
+-- CREATIVE_ROTATION_TYPE_RANDOM.
+crWeightCalculationStrategy :: Lens' CreativeRotation (Maybe CreativeRotationWeightCalculationStrategy)
+crWeightCalculationStrategy
+  = lens _crWeightCalculationStrategy
+      (\ s a -> s{_crWeightCalculationStrategy = a})
+
+-- | Creative assignments in this creative rotation.
+crCreativeAssignments :: Lens' CreativeRotation [CreativeAssignment]
+crCreativeAssignments
+  = lens _crCreativeAssignments
+      (\ s a -> s{_crCreativeAssignments = a})
+      . _Default
+      . _Coerce
+
+-- | Creative optimization configuration that is used by this ad. It should
+-- refer to one of the existing optimization configurations in the ad\'s
+-- campaign. If it is unset or set to 0, then the campaign\'s default
+-- optimization configuration will be used for this ad.
+crCreativeOptimizationConfigurationId :: Lens' CreativeRotation (Maybe Int64)
+crCreativeOptimizationConfigurationId
+  = lens _crCreativeOptimizationConfigurationId
+      (\ s a ->
+         s{_crCreativeOptimizationConfigurationId = a})
+      . mapping _Coerce
+
+-- | Type of creative rotation. Can be used to specify whether to use
+-- sequential or random rotation.
+crType :: Lens' CreativeRotation (Maybe CreativeRotationType)
+crType = lens _crType (\ s a -> s{_crType = a})
+
+instance FromJSON CreativeRotation where
+        parseJSON
+          = withObject "CreativeRotation"
+              (\ o ->
+                 CreativeRotation <$>
+                   (o .:? "weightCalculationStrategy") <*>
+                     (o .:? "creativeAssignments" .!= mempty)
+                     <*> (o .:? "creativeOptimizationConfigurationId")
+                     <*> (o .:? "type"))
+
+instance ToJSON CreativeRotation where
+        toJSON CreativeRotation{..}
+          = object
+              (catMaybes
+                 [("weightCalculationStrategy" .=) <$>
+                    _crWeightCalculationStrategy,
+                  ("creativeAssignments" .=) <$>
+                    _crCreativeAssignments,
+                  ("creativeOptimizationConfigurationId" .=) <$>
+                    _crCreativeOptimizationConfigurationId,
+                  ("type" .=) <$> _crType])
+
+-- | Technology Targeting.
+--
+-- /See:/ 'technologyTargeting' smart constructor.
+data TechnologyTargeting = TechnologyTargeting
+    { _ttMobileCarriers          :: !(Maybe [MobileCarrier])
+    , _ttOperatingSystemVersions :: !(Maybe [OperatingSystemVersion])
+    , _ttPlatformTypes           :: !(Maybe [PlatformType])
+    , _ttBrowsers                :: !(Maybe [Browser])
+    , _ttConnectionTypes         :: !(Maybe [ConnectionType])
+    , _ttOperatingSystems        :: !(Maybe [OperatingSystem])
+    } 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:
+--
+-- * 'ttMobileCarriers'
+--
+-- * 'ttOperatingSystemVersions'
+--
+-- * 'ttPlatformTypes'
+--
+-- * 'ttBrowsers'
+--
+-- * 'ttConnectionTypes'
+--
+-- * 'ttOperatingSystems'
+technologyTargeting
+    :: TechnologyTargeting
+technologyTargeting =
+    TechnologyTargeting
+    { _ttMobileCarriers = Nothing
+    , _ttOperatingSystemVersions = Nothing
+    , _ttPlatformTypes = Nothing
+    , _ttBrowsers = Nothing
+    , _ttConnectionTypes = Nothing
+    , _ttOperatingSystems = Nothing
+    }
+
+-- | Mobile carriers that this ad targets. For each mobile carrier only id is
+-- required, and the other fields are populated automatically when the ad
+-- is inserted or updated. If targeting a mobile carrier, do not set
+-- targeting for any zip codes.
+ttMobileCarriers :: Lens' TechnologyTargeting [MobileCarrier]
+ttMobileCarriers
+  = lens _ttMobileCarriers
+      (\ s a -> s{_ttMobileCarriers = a})
+      . _Default
+      . _Coerce
+
+-- | Operating system versions that this ad targets. To target all versions,
+-- use operatingSystems. For each operating system version, only id is
+-- required. The other fields are populated automatically when the ad is
+-- inserted or updated. If targeting an operating system version, do not
+-- set targeting for the corresponding operating system in
+-- operatingSystems.
+ttOperatingSystemVersions :: Lens' TechnologyTargeting [OperatingSystemVersion]
+ttOperatingSystemVersions
+  = lens _ttOperatingSystemVersions
+      (\ s a -> s{_ttOperatingSystemVersions = a})
+      . _Default
+      . _Coerce
+
+-- | Platform types that this ad targets. For example, desktop, mobile, or
+-- tablet. For each platform type, only id is required, and the other
+-- fields are populated automatically when the ad is inserted or updated.
+ttPlatformTypes :: Lens' TechnologyTargeting [PlatformType]
+ttPlatformTypes
+  = lens _ttPlatformTypes
+      (\ s a -> s{_ttPlatformTypes = a})
+      . _Default
+      . _Coerce
+
+-- | Browsers that this ad targets. For each browser either set
+-- browserVersionId or dartId along with the version numbers. If both are
+-- specified, only browserVersionId will be used.The other fields are
+-- populated automatically when the ad is inserted or updated.
+ttBrowsers :: Lens' TechnologyTargeting [Browser]
+ttBrowsers
+  = lens _ttBrowsers (\ s a -> s{_ttBrowsers = a}) .
+      _Default
+      . _Coerce
+
+-- | Connection types that this ad targets. For each connection type only id
+-- is required.The other fields are populated automatically when the ad is
+-- inserted or updated.
+ttConnectionTypes :: Lens' TechnologyTargeting [ConnectionType]
+ttConnectionTypes
+  = lens _ttConnectionTypes
+      (\ s a -> s{_ttConnectionTypes = a})
+      . _Default
+      . _Coerce
+
+-- | Operating systems that this ad targets. To target specific versions, use
+-- operatingSystemVersions. For each operating system only dartId is
+-- required. The other fields are populated automatically when the ad is
+-- inserted or updated. If targeting an operating system, do not set
+-- targeting for operating system versions for the same operating system.
+ttOperatingSystems :: Lens' TechnologyTargeting [OperatingSystem]
+ttOperatingSystems
+  = lens _ttOperatingSystems
+      (\ s a -> s{_ttOperatingSystems = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON TechnologyTargeting where
+        parseJSON
+          = withObject "TechnologyTargeting"
+              (\ o ->
+                 TechnologyTargeting <$>
+                   (o .:? "mobileCarriers" .!= mempty) <*>
+                     (o .:? "operatingSystemVersions" .!= mempty)
+                     <*> (o .:? "platformTypes" .!= mempty)
+                     <*> (o .:? "browsers" .!= mempty)
+                     <*> (o .:? "connectionTypes" .!= mempty)
+                     <*> (o .:? "operatingSystems" .!= mempty))
+
+instance ToJSON TechnologyTargeting where
+        toJSON TechnologyTargeting{..}
+          = object
+              (catMaybes
+                 [("mobileCarriers" .=) <$> _ttMobileCarriers,
+                  ("operatingSystemVersions" .=) <$>
+                    _ttOperatingSystemVersions,
+                  ("platformTypes" .=) <$> _ttPlatformTypes,
+                  ("browsers" .=) <$> _ttBrowsers,
+                  ("connectionTypes" .=) <$> _ttConnectionTypes,
+                  ("operatingSystems" .=) <$> _ttOperatingSystems])
+
+-- | Represents a buy from the DoubleClick Planning inventory store.
+--
+-- /See:/ 'inventoryItem' smart constructor.
+data InventoryItem = InventoryItem
+    { _iiPlacementStrategyId       :: !(Maybe (Textual Int64))
+    , _iiEstimatedClickThroughRate :: !(Maybe (Textual Int64))
+    , _iiPricing                   :: !(Maybe Pricing)
+    , _iiKind                      :: !Text
+    , _iiAdvertiserId              :: !(Maybe (Textual Int64))
+    , _iiRfpId                     :: !(Maybe (Textual Int64))
+    , _iiContentCategoryId         :: !(Maybe (Textual Int64))
+    , _iiInPlan                    :: !(Maybe Bool)
+    , _iiAccountId                 :: !(Maybe (Textual Int64))
+    , _iiName                      :: !(Maybe Text)
+    , _iiAdSlots                   :: !(Maybe [AdSlot])
+    , _iiNegotiationChannelId      :: !(Maybe (Textual Int64))
+    , _iiLastModifiedInfo          :: !(Maybe LastModifiedInfo)
+    , _iiId                        :: !(Maybe (Textual Int64))
+    , _iiEstimatedConversionRate   :: !(Maybe (Textual Int64))
+    , _iiProjectId                 :: !(Maybe (Textual Int64))
+    , _iiSubAccountId              :: !(Maybe (Textual Int64))
+    , _iiOrderId                   :: !(Maybe (Textual Int64))
+    , _iiSiteId                    :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InventoryItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iiPlacementStrategyId'
+--
+-- * 'iiEstimatedClickThroughRate'
+--
+-- * 'iiPricing'
+--
+-- * 'iiKind'
+--
+-- * 'iiAdvertiserId'
+--
+-- * 'iiRfpId'
+--
+-- * 'iiContentCategoryId'
+--
+-- * 'iiInPlan'
+--
+-- * 'iiAccountId'
+--
+-- * 'iiName'
+--
+-- * 'iiAdSlots'
+--
+-- * 'iiNegotiationChannelId'
+--
+-- * 'iiLastModifiedInfo'
+--
+-- * 'iiId'
+--
+-- * 'iiEstimatedConversionRate'
+--
+-- * 'iiProjectId'
+--
+-- * 'iiSubAccountId'
+--
+-- * 'iiOrderId'
+--
+-- * 'iiSiteId'
+inventoryItem
+    :: InventoryItem
+inventoryItem =
+    InventoryItem
+    { _iiPlacementStrategyId = Nothing
+    , _iiEstimatedClickThroughRate = Nothing
+    , _iiPricing = Nothing
+    , _iiKind = "dfareporting#inventoryItem"
+    , _iiAdvertiserId = Nothing
+    , _iiRfpId = Nothing
+    , _iiContentCategoryId = Nothing
+    , _iiInPlan = Nothing
+    , _iiAccountId = Nothing
+    , _iiName = Nothing
+    , _iiAdSlots = Nothing
+    , _iiNegotiationChannelId = Nothing
+    , _iiLastModifiedInfo = Nothing
+    , _iiId = Nothing
+    , _iiEstimatedConversionRate = Nothing
+    , _iiProjectId = Nothing
+    , _iiSubAccountId = Nothing
+    , _iiOrderId = Nothing
+    , _iiSiteId = Nothing
+    }
+
+-- | Placement strategy ID of this inventory item.
+iiPlacementStrategyId :: Lens' InventoryItem (Maybe Int64)
+iiPlacementStrategyId
+  = lens _iiPlacementStrategyId
+      (\ s a -> s{_iiPlacementStrategyId = a})
+      . mapping _Coerce
+
+-- | Estimated click-through rate of this inventory item.
+iiEstimatedClickThroughRate :: Lens' InventoryItem (Maybe Int64)
+iiEstimatedClickThroughRate
+  = lens _iiEstimatedClickThroughRate
+      (\ s a -> s{_iiEstimatedClickThroughRate = a})
+      . mapping _Coerce
+
+-- | Pricing of this inventory item.
+iiPricing :: Lens' InventoryItem (Maybe Pricing)
+iiPricing
+  = lens _iiPricing (\ s a -> s{_iiPricing = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#inventoryItem\".
+iiKind :: Lens' InventoryItem Text
+iiKind = lens _iiKind (\ s a -> s{_iiKind = a})
+
+-- | Advertiser ID of this inventory item.
+iiAdvertiserId :: Lens' InventoryItem (Maybe Int64)
+iiAdvertiserId
+  = lens _iiAdvertiserId
+      (\ s a -> s{_iiAdvertiserId = a})
+      . mapping _Coerce
+
+-- | RFP ID of this inventory item.
+iiRfpId :: Lens' InventoryItem (Maybe Int64)
+iiRfpId
+  = lens _iiRfpId (\ s a -> s{_iiRfpId = a}) .
+      mapping _Coerce
+
+-- | Content category ID of this inventory item.
+iiContentCategoryId :: Lens' InventoryItem (Maybe Int64)
+iiContentCategoryId
+  = lens _iiContentCategoryId
+      (\ s a -> s{_iiContentCategoryId = a})
+      . mapping _Coerce
+
+-- | Whether this inventory item is in plan.
+iiInPlan :: Lens' InventoryItem (Maybe Bool)
+iiInPlan = lens _iiInPlan (\ s a -> s{_iiInPlan = a})
+
+-- | Account ID of this inventory item.
+iiAccountId :: Lens' InventoryItem (Maybe Int64)
+iiAccountId
+  = lens _iiAccountId (\ s a -> s{_iiAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this inventory item. For standalone inventory items, this is the
+-- same name as that of its only ad slot. For group inventory items, this
+-- can differ from the name of any of its ad slots.
+iiName :: Lens' InventoryItem (Maybe Text)
+iiName = lens _iiName (\ s a -> s{_iiName = a})
+
+-- | Ad slots of this inventory item. If this inventory item represents a
+-- standalone placement, there will be exactly one ad slot. If this
+-- inventory item represents a placement group, there will be more than one
+-- ad slot, each representing one child placement in that placement group.
+iiAdSlots :: Lens' InventoryItem [AdSlot]
+iiAdSlots
+  = lens _iiAdSlots (\ s a -> s{_iiAdSlots = a}) .
+      _Default
+      . _Coerce
+
+-- | Negotiation channel ID of this inventory item.
+iiNegotiationChannelId :: Lens' InventoryItem (Maybe Int64)
+iiNegotiationChannelId
+  = lens _iiNegotiationChannelId
+      (\ s a -> s{_iiNegotiationChannelId = a})
+      . mapping _Coerce
+
+-- | Information about the most recent modification of this inventory item.
+iiLastModifiedInfo :: Lens' InventoryItem (Maybe LastModifiedInfo)
+iiLastModifiedInfo
+  = lens _iiLastModifiedInfo
+      (\ s a -> s{_iiLastModifiedInfo = a})
+
+-- | ID of this inventory item.
+iiId :: Lens' InventoryItem (Maybe Int64)
+iiId
+  = lens _iiId (\ s a -> s{_iiId = a}) .
+      mapping _Coerce
+
+-- | Estimated conversion rate of this inventory item.
+iiEstimatedConversionRate :: Lens' InventoryItem (Maybe Int64)
+iiEstimatedConversionRate
+  = lens _iiEstimatedConversionRate
+      (\ s a -> s{_iiEstimatedConversionRate = a})
+      . mapping _Coerce
+
+-- | Project ID of this inventory item.
+iiProjectId :: Lens' InventoryItem (Maybe Int64)
+iiProjectId
+  = lens _iiProjectId (\ s a -> s{_iiProjectId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this inventory item.
+iiSubAccountId :: Lens' InventoryItem (Maybe Int64)
+iiSubAccountId
+  = lens _iiSubAccountId
+      (\ s a -> s{_iiSubAccountId = a})
+      . mapping _Coerce
+
+-- | Order ID of this inventory item.
+iiOrderId :: Lens' InventoryItem (Maybe Int64)
+iiOrderId
+  = lens _iiOrderId (\ s a -> s{_iiOrderId = a}) .
+      mapping _Coerce
+
+-- | ID of the site this inventory item is associated with.
+iiSiteId :: Lens' InventoryItem (Maybe Int64)
+iiSiteId
+  = lens _iiSiteId (\ s a -> s{_iiSiteId = a}) .
+      mapping _Coerce
+
+instance FromJSON InventoryItem where
+        parseJSON
+          = withObject "InventoryItem"
+              (\ o ->
+                 InventoryItem <$>
+                   (o .:? "placementStrategyId") <*>
+                     (o .:? "estimatedClickThroughRate")
+                     <*> (o .:? "pricing")
+                     <*> (o .:? "kind" .!= "dfareporting#inventoryItem")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "rfpId")
+                     <*> (o .:? "contentCategoryId")
+                     <*> (o .:? "inPlan")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "adSlots" .!= mempty)
+                     <*> (o .:? "negotiationChannelId")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "estimatedConversionRate")
+                     <*> (o .:? "projectId")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "orderId")
+                     <*> (o .:? "siteId"))
+
+instance ToJSON InventoryItem where
+        toJSON InventoryItem{..}
+          = object
+              (catMaybes
+                 [("placementStrategyId" .=) <$>
+                    _iiPlacementStrategyId,
+                  ("estimatedClickThroughRate" .=) <$>
+                    _iiEstimatedClickThroughRate,
+                  ("pricing" .=) <$> _iiPricing,
+                  Just ("kind" .= _iiKind),
+                  ("advertiserId" .=) <$> _iiAdvertiserId,
+                  ("rfpId" .=) <$> _iiRfpId,
+                  ("contentCategoryId" .=) <$> _iiContentCategoryId,
+                  ("inPlan" .=) <$> _iiInPlan,
+                  ("accountId" .=) <$> _iiAccountId,
+                  ("name" .=) <$> _iiName,
+                  ("adSlots" .=) <$> _iiAdSlots,
+                  ("negotiationChannelId" .=) <$>
+                    _iiNegotiationChannelId,
+                  ("lastModifiedInfo" .=) <$> _iiLastModifiedInfo,
+                  ("id" .=) <$> _iiId,
+                  ("estimatedConversionRate" .=) <$>
+                    _iiEstimatedConversionRate,
+                  ("projectId" .=) <$> _iiProjectId,
+                  ("subaccountId" .=) <$> _iiSubAccountId,
+                  ("orderId" .=) <$> _iiOrderId,
+                  ("siteId" .=) <$> _iiSiteId])
+
+-- | Project List Response
+--
+-- /See:/ 'projectsListResponse' smart constructor.
+data ProjectsListResponse = ProjectsListResponse
+    { _plrNextPageToken :: !(Maybe Text)
+    , _plrKind          :: !Text
+    , _plrProjects      :: !(Maybe [Project])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plrNextPageToken'
+--
+-- * 'plrKind'
+--
+-- * 'plrProjects'
+projectsListResponse
+    :: ProjectsListResponse
+projectsListResponse =
+    ProjectsListResponse
+    { _plrNextPageToken = Nothing
+    , _plrKind = "dfareporting#projectsListResponse"
+    , _plrProjects = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+plrNextPageToken :: Lens' ProjectsListResponse (Maybe Text)
+plrNextPageToken
+  = lens _plrNextPageToken
+      (\ s a -> s{_plrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#projectsListResponse\".
+plrKind :: Lens' ProjectsListResponse Text
+plrKind = lens _plrKind (\ s a -> s{_plrKind = a})
+
+-- | Project collection.
+plrProjects :: Lens' ProjectsListResponse [Project]
+plrProjects
+  = lens _plrProjects (\ s a -> s{_plrProjects = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ProjectsListResponse where
+        parseJSON
+          = withObject "ProjectsListResponse"
+              (\ o ->
+                 ProjectsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#projectsListResponse")
+                     <*> (o .:? "projects" .!= mempty))
+
+instance ToJSON ProjectsListResponse where
+        toJSON ProjectsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _plrNextPageToken,
+                  Just ("kind" .= _plrKind),
+                  ("projects" .=) <$> _plrProjects])
+
+-- | Ad List Response
+--
+-- /See:/ 'adsListResponse' smart constructor.
+data AdsListResponse = AdsListResponse
+    { _alrNextPageToken :: !(Maybe Text)
+    , _alrKind          :: !Text
+    , _alrAds           :: !(Maybe [Ad])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'alrNextPageToken'
+--
+-- * 'alrKind'
+--
+-- * 'alrAds'
+adsListResponse
+    :: AdsListResponse
+adsListResponse =
+    AdsListResponse
+    { _alrNextPageToken = Nothing
+    , _alrKind = "dfareporting#adsListResponse"
+    , _alrAds = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+alrNextPageToken :: Lens' AdsListResponse (Maybe Text)
+alrNextPageToken
+  = lens _alrNextPageToken
+      (\ s a -> s{_alrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#adsListResponse\".
+alrKind :: Lens' AdsListResponse Text
+alrKind = lens _alrKind (\ s a -> s{_alrKind = a})
+
+-- | Ad collection.
+alrAds :: Lens' AdsListResponse [Ad]
+alrAds
+  = lens _alrAds (\ s a -> s{_alrAds = a}) . _Default .
+      _Coerce
+
+instance FromJSON AdsListResponse where
+        parseJSON
+          = withObject "AdsListResponse"
+              (\ o ->
+                 AdsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#adsListResponse")
+                     <*> (o .:? "ads" .!= mempty))
+
+instance ToJSON AdsListResponse where
+        toJSON AdsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _alrNextPageToken,
+                  Just ("kind" .= _alrKind), ("ads" .=) <$> _alrAds])
+
+-- | Remarketing List Population Rule Term.
+--
+-- /See:/ 'listPopulationTerm' smart constructor.
+data ListPopulationTerm = ListPopulationTerm
+    { _lptOperator             :: !(Maybe ListPopulationTermOperator)
+    , _lptValue                :: !(Maybe Text)
+    , _lptVariableFriendlyName :: !(Maybe Text)
+    , _lptNegation             :: !(Maybe Bool)
+    , _lptVariableName         :: !(Maybe Text)
+    , _lptRemarketingListId    :: !(Maybe (Textual Int64))
+    , _lptType                 :: !(Maybe ListPopulationTermType)
+    , _lptContains             :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListPopulationTerm' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lptOperator'
+--
+-- * 'lptValue'
+--
+-- * 'lptVariableFriendlyName'
+--
+-- * 'lptNegation'
+--
+-- * 'lptVariableName'
+--
+-- * 'lptRemarketingListId'
+--
+-- * 'lptType'
+--
+-- * 'lptContains'
+listPopulationTerm
+    :: ListPopulationTerm
+listPopulationTerm =
+    ListPopulationTerm
+    { _lptOperator = Nothing
+    , _lptValue = Nothing
+    , _lptVariableFriendlyName = Nothing
+    , _lptNegation = Nothing
+    , _lptVariableName = Nothing
+    , _lptRemarketingListId = Nothing
+    , _lptType = Nothing
+    , _lptContains = Nothing
+    }
+
+-- | Comparison operator of this term. This field is only relevant when type
+-- is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
+lptOperator :: Lens' ListPopulationTerm (Maybe ListPopulationTermOperator)
+lptOperator
+  = lens _lptOperator (\ s a -> s{_lptOperator = a})
+
+-- | Literal to compare the variable to. This field is only relevant when
+-- type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
+lptValue :: Lens' ListPopulationTerm (Maybe Text)
+lptValue = lens _lptValue (\ s a -> s{_lptValue = a})
+
+-- | Friendly name of this term\'s variable. This is a read-only,
+-- auto-generated field. This field is only relevant when type is left
+-- unset or set to CUSTOM_VARIABLE_TERM.
+lptVariableFriendlyName :: Lens' ListPopulationTerm (Maybe Text)
+lptVariableFriendlyName
+  = lens _lptVariableFriendlyName
+      (\ s a -> s{_lptVariableFriendlyName = a})
+
+-- | Whether to negate the comparison result of this term during rule
+-- evaluation. This field is only relevant when type is left unset or set
+-- to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
+lptNegation :: Lens' ListPopulationTerm (Maybe Bool)
+lptNegation
+  = lens _lptNegation (\ s a -> s{_lptNegation = a})
+
+-- | Name of the variable (U1, U2, etc.) being compared in this term. This
+-- field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or
+-- REFERRER_TERM.
+lptVariableName :: Lens' ListPopulationTerm (Maybe Text)
+lptVariableName
+  = lens _lptVariableName
+      (\ s a -> s{_lptVariableName = a})
+
+-- | ID of the list in question. This field is only relevant when type is set
+-- to LIST_MEMBERSHIP_TERM.
+lptRemarketingListId :: Lens' ListPopulationTerm (Maybe Int64)
+lptRemarketingListId
+  = lens _lptRemarketingListId
+      (\ s a -> s{_lptRemarketingListId = a})
+      . mapping _Coerce
+
+-- | List population term type determines the applicable fields in this
+-- object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName,
+-- variableFriendlyName, operator, value, and negation are applicable. If
+-- set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are
+-- applicable. If set to REFERRER_TERM then operator, value, and negation
+-- are applicable.
+lptType :: Lens' ListPopulationTerm (Maybe ListPopulationTermType)
+lptType = lens _lptType (\ s a -> s{_lptType = a})
+
+-- | Will be true if the term should check if the user is in the list and
+-- false if the term should check if the user is not in the list. This
+-- field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False
+-- by default.
+lptContains :: Lens' ListPopulationTerm (Maybe Bool)
+lptContains
+  = lens _lptContains (\ s a -> s{_lptContains = a})
+
+instance FromJSON ListPopulationTerm where
+        parseJSON
+          = withObject "ListPopulationTerm"
+              (\ o ->
+                 ListPopulationTerm <$>
+                   (o .:? "operator") <*> (o .:? "value") <*>
+                     (o .:? "variableFriendlyName")
+                     <*> (o .:? "negation")
+                     <*> (o .:? "variableName")
+                     <*> (o .:? "remarketingListId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "contains"))
+
+instance ToJSON ListPopulationTerm where
+        toJSON ListPopulationTerm{..}
+          = object
+              (catMaybes
+                 [("operator" .=) <$> _lptOperator,
+                  ("value" .=) <$> _lptValue,
+                  ("variableFriendlyName" .=) <$>
+                    _lptVariableFriendlyName,
+                  ("negation" .=) <$> _lptNegation,
+                  ("variableName" .=) <$> _lptVariableName,
+                  ("remarketingListId" .=) <$> _lptRemarketingListId,
+                  ("type" .=) <$> _lptType,
+                  ("contains" .=) <$> _lptContains])
+
+-- | Dynamic and Image Tag Settings.
+--
+-- /See:/ 'tagSettings' smart constructor.
+data TagSettings = TagSettings
+    { _tsDynamicTagEnabled :: !(Maybe Bool)
+    , _tsImageTagEnabled   :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TagSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tsDynamicTagEnabled'
+--
+-- * 'tsImageTagEnabled'
+tagSettings
+    :: TagSettings
+tagSettings =
+    TagSettings
+    { _tsDynamicTagEnabled = Nothing
+    , _tsImageTagEnabled = Nothing
+    }
+
+-- | Whether dynamic floodlight tags are enabled.
+tsDynamicTagEnabled :: Lens' TagSettings (Maybe Bool)
+tsDynamicTagEnabled
+  = lens _tsDynamicTagEnabled
+      (\ s a -> s{_tsDynamicTagEnabled = a})
+
+-- | Whether image tags are enabled.
+tsImageTagEnabled :: Lens' TagSettings (Maybe Bool)
+tsImageTagEnabled
+  = lens _tsImageTagEnabled
+      (\ s a -> s{_tsImageTagEnabled = a})
+
+instance FromJSON TagSettings where
+        parseJSON
+          = withObject "TagSettings"
+              (\ o ->
+                 TagSettings <$>
+                   (o .:? "dynamicTagEnabled") <*>
+                     (o .:? "imageTagEnabled"))
+
+instance ToJSON TagSettings where
+        toJSON TagSettings{..}
+          = object
+              (catMaybes
+                 [("dynamicTagEnabled" .=) <$> _tsDynamicTagEnabled,
+                  ("imageTagEnabled" .=) <$> _tsImageTagEnabled])
+
+-- | Subaccount List Response
+--
+-- /See:/ 'subAccountsListResponse' smart constructor.
+data SubAccountsListResponse = SubAccountsListResponse
+    { _salrNextPageToken :: !(Maybe Text)
+    , _salrKind          :: !Text
+    , _salrSubAccounts   :: !(Maybe [SubAccount])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubAccountsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'salrNextPageToken'
+--
+-- * 'salrKind'
+--
+-- * 'salrSubAccounts'
+subAccountsListResponse
+    :: SubAccountsListResponse
+subAccountsListResponse =
+    SubAccountsListResponse
+    { _salrNextPageToken = Nothing
+    , _salrKind = "dfareporting#subaccountsListResponse"
+    , _salrSubAccounts = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+salrNextPageToken :: Lens' SubAccountsListResponse (Maybe Text)
+salrNextPageToken
+  = lens _salrNextPageToken
+      (\ s a -> s{_salrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#subaccountsListResponse\".
+salrKind :: Lens' SubAccountsListResponse Text
+salrKind = lens _salrKind (\ s a -> s{_salrKind = a})
+
+-- | Subaccount collection.
+salrSubAccounts :: Lens' SubAccountsListResponse [SubAccount]
+salrSubAccounts
+  = lens _salrSubAccounts
+      (\ s a -> s{_salrSubAccounts = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON SubAccountsListResponse where
+        parseJSON
+          = withObject "SubAccountsListResponse"
+              (\ o ->
+                 SubAccountsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#subaccountsListResponse")
+                     <*> (o .:? "subaccounts" .!= mempty))
+
+instance ToJSON SubAccountsListResponse where
+        toJSON SubAccountsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _salrNextPageToken,
+                  Just ("kind" .= _salrKind),
+                  ("subaccounts" .=) <$> _salrSubAccounts])
+
+-- | Contains properties of a Site Directory contact.
+--
+-- /See:/ 'directorySiteContact' smart constructor.
+data DirectorySiteContact = DirectorySiteContact
+    { _dscEmail     :: !(Maybe Text)
+    , _dscPhone     :: !(Maybe Text)
+    , _dscLastName  :: !(Maybe Text)
+    , _dscKind      :: !Text
+    , _dscAddress   :: !(Maybe Text)
+    , _dscRole      :: !(Maybe DirectorySiteContactRole)
+    , _dscFirstName :: !(Maybe Text)
+    , _dscId        :: !(Maybe (Textual Int64))
+    , _dscTitle     :: !(Maybe Text)
+    , _dscType      :: !(Maybe DirectorySiteContactType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySiteContact' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dscEmail'
+--
+-- * 'dscPhone'
+--
+-- * 'dscLastName'
+--
+-- * 'dscKind'
+--
+-- * 'dscAddress'
+--
+-- * 'dscRole'
+--
+-- * 'dscFirstName'
+--
+-- * 'dscId'
+--
+-- * 'dscTitle'
+--
+-- * 'dscType'
+directorySiteContact
+    :: DirectorySiteContact
+directorySiteContact =
+    DirectorySiteContact
+    { _dscEmail = Nothing
+    , _dscPhone = Nothing
+    , _dscLastName = Nothing
+    , _dscKind = "dfareporting#directorySiteContact"
+    , _dscAddress = Nothing
+    , _dscRole = Nothing
+    , _dscFirstName = Nothing
+    , _dscId = Nothing
+    , _dscTitle = Nothing
+    , _dscType = Nothing
+    }
+
+-- | Email address of this directory site contact.
+dscEmail :: Lens' DirectorySiteContact (Maybe Text)
+dscEmail = lens _dscEmail (\ s a -> s{_dscEmail = a})
+
+-- | Phone number of this directory site contact.
+dscPhone :: Lens' DirectorySiteContact (Maybe Text)
+dscPhone = lens _dscPhone (\ s a -> s{_dscPhone = a})
+
+-- | Last name of this directory site contact.
+dscLastName :: Lens' DirectorySiteContact (Maybe Text)
+dscLastName
+  = lens _dscLastName (\ s a -> s{_dscLastName = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#directorySiteContact\".
+dscKind :: Lens' DirectorySiteContact Text
+dscKind = lens _dscKind (\ s a -> s{_dscKind = a})
+
+-- | Address of this directory site contact.
+dscAddress :: Lens' DirectorySiteContact (Maybe Text)
+dscAddress
+  = lens _dscAddress (\ s a -> s{_dscAddress = a})
+
+-- | Directory site contact role.
+dscRole :: Lens' DirectorySiteContact (Maybe DirectorySiteContactRole)
+dscRole = lens _dscRole (\ s a -> s{_dscRole = a})
+
+-- | First name of this directory site contact.
+dscFirstName :: Lens' DirectorySiteContact (Maybe Text)
+dscFirstName
+  = lens _dscFirstName (\ s a -> s{_dscFirstName = a})
+
+-- | ID of this directory site contact. This is a read-only, auto-generated
+-- field.
+dscId :: Lens' DirectorySiteContact (Maybe Int64)
+dscId
+  = lens _dscId (\ s a -> s{_dscId = a}) .
+      mapping _Coerce
+
+-- | Title or designation of this directory site contact.
+dscTitle :: Lens' DirectorySiteContact (Maybe Text)
+dscTitle = lens _dscTitle (\ s a -> s{_dscTitle = a})
+
+-- | Directory site contact type.
+dscType :: Lens' DirectorySiteContact (Maybe DirectorySiteContactType)
+dscType = lens _dscType (\ s a -> s{_dscType = a})
+
+instance FromJSON DirectorySiteContact where
+        parseJSON
+          = withObject "DirectorySiteContact"
+              (\ o ->
+                 DirectorySiteContact <$>
+                   (o .:? "email") <*> (o .:? "phone") <*>
+                     (o .:? "lastName")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#directorySiteContact")
+                     <*> (o .:? "address")
+                     <*> (o .:? "role")
+                     <*> (o .:? "firstName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "title")
+                     <*> (o .:? "type"))
+
+instance ToJSON DirectorySiteContact where
+        toJSON DirectorySiteContact{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _dscEmail,
+                  ("phone" .=) <$> _dscPhone,
+                  ("lastName" .=) <$> _dscLastName,
+                  Just ("kind" .= _dscKind),
+                  ("address" .=) <$> _dscAddress,
+                  ("role" .=) <$> _dscRole,
+                  ("firstName" .=) <$> _dscFirstName,
+                  ("id" .=) <$> _dscId, ("title" .=) <$> _dscTitle,
+                  ("type" .=) <$> _dscType])
+
+-- | Region List Response
+--
+-- /See:/ 'regionsListResponse' smart constructor.
+data RegionsListResponse = RegionsListResponse
+    { _rlrKind    :: !Text
+    , _rlrRegions :: !(Maybe [Region])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RegionsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlrKind'
+--
+-- * 'rlrRegions'
+regionsListResponse
+    :: RegionsListResponse
+regionsListResponse =
+    RegionsListResponse
+    { _rlrKind = "dfareporting#regionsListResponse"
+    , _rlrRegions = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#regionsListResponse\".
+rlrKind :: Lens' RegionsListResponse Text
+rlrKind = lens _rlrKind (\ s a -> s{_rlrKind = a})
+
+-- | Region collection.
+rlrRegions :: Lens' RegionsListResponse [Region]
+rlrRegions
+  = lens _rlrRegions (\ s a -> s{_rlrRegions = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON RegionsListResponse where
+        parseJSON
+          = withObject "RegionsListResponse"
+              (\ o ->
+                 RegionsListResponse <$>
+                   (o .:? "kind" .!= "dfareporting#regionsListResponse")
+                     <*> (o .:? "regions" .!= mempty))
+
+instance ToJSON RegionsListResponse where
+        toJSON RegionsListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _rlrKind),
+                  ("regions" .=) <$> _rlrRegions])
+
+-- | Dynamic Tag
+--
+-- /See:/ 'floodlightActivityDynamicTag' smart constructor.
+data FloodlightActivityDynamicTag = FloodlightActivityDynamicTag
+    { _fadtTag  :: !(Maybe Text)
+    , _fadtName :: !(Maybe Text)
+    , _fadtId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityDynamicTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fadtTag'
+--
+-- * 'fadtName'
+--
+-- * 'fadtId'
+floodlightActivityDynamicTag
+    :: FloodlightActivityDynamicTag
+floodlightActivityDynamicTag =
+    FloodlightActivityDynamicTag
+    { _fadtTag = Nothing
+    , _fadtName = Nothing
+    , _fadtId = Nothing
+    }
+
+-- | Tag code.
+fadtTag :: Lens' FloodlightActivityDynamicTag (Maybe Text)
+fadtTag = lens _fadtTag (\ s a -> s{_fadtTag = a})
+
+-- | Name of this tag.
+fadtName :: Lens' FloodlightActivityDynamicTag (Maybe Text)
+fadtName = lens _fadtName (\ s a -> s{_fadtName = a})
+
+-- | ID of this dynamic tag. This is a read-only, auto-generated field.
+fadtId :: Lens' FloodlightActivityDynamicTag (Maybe Int64)
+fadtId
+  = lens _fadtId (\ s a -> s{_fadtId = a}) .
+      mapping _Coerce
+
+instance FromJSON FloodlightActivityDynamicTag where
+        parseJSON
+          = withObject "FloodlightActivityDynamicTag"
+              (\ o ->
+                 FloodlightActivityDynamicTag <$>
+                   (o .:? "tag") <*> (o .:? "name") <*> (o .:? "id"))
+
+instance ToJSON FloodlightActivityDynamicTag where
+        toJSON FloodlightActivityDynamicTag{..}
+          = object
+              (catMaybes
+                 [("tag" .=) <$> _fadtTag, ("name" .=) <$> _fadtName,
+                  ("id" .=) <$> _fadtId])
+
+-- | DirectorySites contains properties of a website from the Site Directory.
+-- Sites need to be added to an account via the Sites resource before they
+-- can be assigned to a placement.
+--
+-- /See:/ 'directorySite' smart constructor.
+data DirectorySite = DirectorySite
+    { _dsCurrencyId             :: !(Maybe (Textual Int64))
+    , _dsSettings               :: !(Maybe DirectorySiteSettings)
+    , _dsInterstitialTagFormats :: !(Maybe [DirectorySiteInterstitialTagFormatsItem])
+    , _dsKind                   :: !Text
+    , _dsURL                    :: !(Maybe Text)
+    , _dsIdDimensionValue       :: !(Maybe DimensionValue)
+    , _dsInpageTagFormats       :: !(Maybe [DirectorySiteInpageTagFormatsItem])
+    , _dsActive                 :: !(Maybe Bool)
+    , _dsName                   :: !(Maybe Text)
+    , _dsId                     :: !(Maybe (Textual Int64))
+    , _dsCountryId              :: !(Maybe (Textual Int64))
+    , _dsContactAssignments     :: !(Maybe [DirectorySiteContactAssignment])
+    , _dsDescription            :: !(Maybe Text)
+    , _dsParentId               :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySite' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsCurrencyId'
+--
+-- * 'dsSettings'
+--
+-- * 'dsInterstitialTagFormats'
+--
+-- * 'dsKind'
+--
+-- * 'dsURL'
+--
+-- * 'dsIdDimensionValue'
+--
+-- * 'dsInpageTagFormats'
+--
+-- * 'dsActive'
+--
+-- * 'dsName'
+--
+-- * 'dsId'
+--
+-- * 'dsCountryId'
+--
+-- * 'dsContactAssignments'
+--
+-- * 'dsDescription'
+--
+-- * 'dsParentId'
+directorySite
+    :: DirectorySite
+directorySite =
+    DirectorySite
+    { _dsCurrencyId = Nothing
+    , _dsSettings = Nothing
+    , _dsInterstitialTagFormats = Nothing
+    , _dsKind = "dfareporting#directorySite"
+    , _dsURL = Nothing
+    , _dsIdDimensionValue = Nothing
+    , _dsInpageTagFormats = Nothing
+    , _dsActive = Nothing
+    , _dsName = Nothing
+    , _dsId = Nothing
+    , _dsCountryId = Nothing
+    , _dsContactAssignments = Nothing
+    , _dsDescription = Nothing
+    , _dsParentId = Nothing
+    }
+
+-- | Currency ID of this directory site. Possible values are: - \"1\" for USD
+-- - \"2\" for GBP - \"3\" for ESP - \"4\" for SEK - \"5\" for CAD - \"6\"
+-- for JPY - \"7\" for DEM - \"8\" for AUD - \"9\" for FRF - \"10\" for ITL
+-- - \"11\" for DKK - \"12\" for NOK - \"13\" for FIM - \"14\" for ZAR -
+-- \"15\" for IEP - \"16\" for NLG - \"17\" for EUR - \"18\" for KRW -
+-- \"19\" for TWD - \"20\" for SGD - \"21\" for CNY - \"22\" for HKD -
+-- \"23\" for NZD - \"24\" for MYR - \"25\" for BRL - \"26\" for PTE -
+-- \"27\" for MXP - \"28\" for CLP - \"29\" for TRY - \"30\" for ARS -
+-- \"31\" for PEN - \"32\" for ILS - \"33\" for CHF - \"34\" for VEF -
+-- \"35\" for COP - \"36\" for GTQ
+dsCurrencyId :: Lens' DirectorySite (Maybe Int64)
+dsCurrencyId
+  = lens _dsCurrencyId (\ s a -> s{_dsCurrencyId = a})
+      . mapping _Coerce
+
+-- | Directory site settings.
+dsSettings :: Lens' DirectorySite (Maybe DirectorySiteSettings)
+dsSettings
+  = lens _dsSettings (\ s a -> s{_dsSettings = a})
+
+-- | Tag types for interstitial placements. Acceptable values are: -
+-- \"IFRAME_JAVASCRIPT_INTERSTITIAL\" - \"INTERNAL_REDIRECT_INTERSTITIAL\"
+-- - \"JAVASCRIPT_INTERSTITIAL\"
+dsInterstitialTagFormats :: Lens' DirectorySite [DirectorySiteInterstitialTagFormatsItem]
+dsInterstitialTagFormats
+  = lens _dsInterstitialTagFormats
+      (\ s a -> s{_dsInterstitialTagFormats = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#directorySite\".
+dsKind :: Lens' DirectorySite Text
+dsKind = lens _dsKind (\ s a -> s{_dsKind = a})
+
+-- | URL of this directory site.
+dsURL :: Lens' DirectorySite (Maybe Text)
+dsURL = lens _dsURL (\ s a -> s{_dsURL = a})
+
+-- | Dimension value for the ID of this directory site. This is a read-only,
+-- auto-generated field.
+dsIdDimensionValue :: Lens' DirectorySite (Maybe DimensionValue)
+dsIdDimensionValue
+  = lens _dsIdDimensionValue
+      (\ s a -> s{_dsIdDimensionValue = a})
+
+-- | Tag types for regular placements. Acceptable values are: - \"STANDARD\"
+-- - \"IFRAME_JAVASCRIPT_INPAGE\" - \"INTERNAL_REDIRECT_INPAGE\" -
+-- \"JAVASCRIPT_INPAGE\"
+dsInpageTagFormats :: Lens' DirectorySite [DirectorySiteInpageTagFormatsItem]
+dsInpageTagFormats
+  = lens _dsInpageTagFormats
+      (\ s a -> s{_dsInpageTagFormats = a})
+      . _Default
+      . _Coerce
+
+-- | Whether this directory site is active.
+dsActive :: Lens' DirectorySite (Maybe Bool)
+dsActive = lens _dsActive (\ s a -> s{_dsActive = a})
+
+-- | Name of this directory site.
+dsName :: Lens' DirectorySite (Maybe Text)
+dsName = lens _dsName (\ s a -> s{_dsName = a})
+
+-- | ID of this directory site. This is a read-only, auto-generated field.
+dsId :: Lens' DirectorySite (Maybe Int64)
+dsId
+  = lens _dsId (\ s a -> s{_dsId = a}) .
+      mapping _Coerce
+
+-- | Country ID of this directory site.
+dsCountryId :: Lens' DirectorySite (Maybe Int64)
+dsCountryId
+  = lens _dsCountryId (\ s a -> s{_dsCountryId = a}) .
+      mapping _Coerce
+
+-- | Directory site contacts.
+dsContactAssignments :: Lens' DirectorySite [DirectorySiteContactAssignment]
+dsContactAssignments
+  = lens _dsContactAssignments
+      (\ s a -> s{_dsContactAssignments = a})
+      . _Default
+      . _Coerce
+
+-- | Description of this directory site.
+dsDescription :: Lens' DirectorySite (Maybe Text)
+dsDescription
+  = lens _dsDescription
+      (\ s a -> s{_dsDescription = a})
+
+-- | Parent directory site ID.
+dsParentId :: Lens' DirectorySite (Maybe Int64)
+dsParentId
+  = lens _dsParentId (\ s a -> s{_dsParentId = a}) .
+      mapping _Coerce
+
+instance FromJSON DirectorySite where
+        parseJSON
+          = withObject "DirectorySite"
+              (\ o ->
+                 DirectorySite <$>
+                   (o .:? "currencyId") <*> (o .:? "settings") <*>
+                     (o .:? "interstitialTagFormats" .!= mempty)
+                     <*> (o .:? "kind" .!= "dfareporting#directorySite")
+                     <*> (o .:? "url")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "inpageTagFormats" .!= mempty)
+                     <*> (o .:? "active")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "countryId")
+                     <*> (o .:? "contactAssignments" .!= mempty)
+                     <*> (o .:? "description")
+                     <*> (o .:? "parentId"))
+
+instance ToJSON DirectorySite where
+        toJSON DirectorySite{..}
+          = object
+              (catMaybes
+                 [("currencyId" .=) <$> _dsCurrencyId,
+                  ("settings" .=) <$> _dsSettings,
+                  ("interstitialTagFormats" .=) <$>
+                    _dsInterstitialTagFormats,
+                  Just ("kind" .= _dsKind), ("url" .=) <$> _dsURL,
+                  ("idDimensionValue" .=) <$> _dsIdDimensionValue,
+                  ("inpageTagFormats" .=) <$> _dsInpageTagFormats,
+                  ("active" .=) <$> _dsActive, ("name" .=) <$> _dsName,
+                  ("id" .=) <$> _dsId,
+                  ("countryId" .=) <$> _dsCountryId,
+                  ("contactAssignments" .=) <$> _dsContactAssignments,
+                  ("description" .=) <$> _dsDescription,
+                  ("parentId" .=) <$> _dsParentId])
+
+-- | The properties of the report.
+--
+-- /See:/ 'reportFloodlightCriteriaReportProperties' smart constructor.
+data ReportFloodlightCriteriaReportProperties = ReportFloodlightCriteriaReportProperties
+    { _rfcrpIncludeUnattributedIPConversions     :: !(Maybe Bool)
+    , _rfcrpIncludeUnattributedCookieConversions :: !(Maybe Bool)
+    , _rfcrpIncludeAttributedIPConversions       :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportFloodlightCriteriaReportProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rfcrpIncludeUnattributedIPConversions'
+--
+-- * 'rfcrpIncludeUnattributedCookieConversions'
+--
+-- * 'rfcrpIncludeAttributedIPConversions'
+reportFloodlightCriteriaReportProperties
+    :: ReportFloodlightCriteriaReportProperties
+reportFloodlightCriteriaReportProperties =
+    ReportFloodlightCriteriaReportProperties
+    { _rfcrpIncludeUnattributedIPConversions = Nothing
+    , _rfcrpIncludeUnattributedCookieConversions = Nothing
+    , _rfcrpIncludeAttributedIPConversions = Nothing
+    }
+
+-- | Include conversions that have no associated cookies and no exposures.
+-- It’s therefore impossible to know how the user was exposed to your ads
+-- during the lookback window prior to a conversion.
+rfcrpIncludeUnattributedIPConversions :: Lens' ReportFloodlightCriteriaReportProperties (Maybe Bool)
+rfcrpIncludeUnattributedIPConversions
+  = lens _rfcrpIncludeUnattributedIPConversions
+      (\ s a ->
+         s{_rfcrpIncludeUnattributedIPConversions = a})
+
+-- | Include conversions of users with a DoubleClick cookie but without an
+-- exposure. That means the user did not click or see an ad from the
+-- advertiser within the Floodlight group, or that the interaction happened
+-- outside the lookback window.
+rfcrpIncludeUnattributedCookieConversions :: Lens' ReportFloodlightCriteriaReportProperties (Maybe Bool)
+rfcrpIncludeUnattributedCookieConversions
+  = lens _rfcrpIncludeUnattributedCookieConversions
+      (\ s a ->
+         s{_rfcrpIncludeUnattributedCookieConversions = a})
+
+-- | Include conversions that have no cookie, but do have an exposure path.
+rfcrpIncludeAttributedIPConversions :: Lens' ReportFloodlightCriteriaReportProperties (Maybe Bool)
+rfcrpIncludeAttributedIPConversions
+  = lens _rfcrpIncludeAttributedIPConversions
+      (\ s a ->
+         s{_rfcrpIncludeAttributedIPConversions = a})
+
+instance FromJSON
+         ReportFloodlightCriteriaReportProperties where
+        parseJSON
+          = withObject
+              "ReportFloodlightCriteriaReportProperties"
+              (\ o ->
+                 ReportFloodlightCriteriaReportProperties <$>
+                   (o .:? "includeUnattributedIPConversions") <*>
+                     (o .:? "includeUnattributedCookieConversions")
+                     <*> (o .:? "includeAttributedIPConversions"))
+
+instance ToJSON
+         ReportFloodlightCriteriaReportProperties where
+        toJSON ReportFloodlightCriteriaReportProperties{..}
+          = object
+              (catMaybes
+                 [("includeUnattributedIPConversions" .=) <$>
+                    _rfcrpIncludeUnattributedIPConversions,
+                  ("includeUnattributedCookieConversions" .=) <$>
+                    _rfcrpIncludeUnattributedCookieConversions,
+                  ("includeAttributedIPConversions" .=) <$>
+                    _rfcrpIncludeAttributedIPConversions])
+
+-- | Contains properties of a Floodlight activity group.
+--
+-- /See:/ 'floodlightActivityGroup' smart constructor.
+data FloodlightActivityGroup = FloodlightActivityGroup
+    { _fagTagString                               :: !(Maybe Text)
+    , _fagFloodlightConfigurationId               :: !(Maybe (Textual Int64))
+    , _fagKind                                    :: !Text
+    , _fagAdvertiserId                            :: !(Maybe (Textual Int64))
+    , _fagAdvertiserIdDimensionValue              :: !(Maybe DimensionValue)
+    , _fagIdDimensionValue                        :: !(Maybe DimensionValue)
+    , _fagAccountId                               :: !(Maybe (Textual Int64))
+    , _fagName                                    :: !(Maybe Text)
+    , _fagId                                      :: !(Maybe (Textual Int64))
+    , _fagSubAccountId                            :: !(Maybe (Textual Int64))
+    , _fagType                                    :: !(Maybe FloodlightActivityGroupType)
+    , _fagFloodlightConfigurationIdDimensionValue :: !(Maybe DimensionValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fagTagString'
+--
+-- * 'fagFloodlightConfigurationId'
+--
+-- * 'fagKind'
+--
+-- * 'fagAdvertiserId'
+--
+-- * 'fagAdvertiserIdDimensionValue'
+--
+-- * 'fagIdDimensionValue'
+--
+-- * 'fagAccountId'
+--
+-- * 'fagName'
+--
+-- * 'fagId'
+--
+-- * 'fagSubAccountId'
+--
+-- * 'fagType'
+--
+-- * 'fagFloodlightConfigurationIdDimensionValue'
+floodlightActivityGroup
+    :: FloodlightActivityGroup
+floodlightActivityGroup =
+    FloodlightActivityGroup
+    { _fagTagString = Nothing
+    , _fagFloodlightConfigurationId = Nothing
+    , _fagKind = "dfareporting#floodlightActivityGroup"
+    , _fagAdvertiserId = Nothing
+    , _fagAdvertiserIdDimensionValue = Nothing
+    , _fagIdDimensionValue = Nothing
+    , _fagAccountId = Nothing
+    , _fagName = Nothing
+    , _fagId = Nothing
+    , _fagSubAccountId = Nothing
+    , _fagType = Nothing
+    , _fagFloodlightConfigurationIdDimensionValue = Nothing
+    }
+
+-- | Value of the type= parameter in the floodlight tag, which the ad servers
+-- use to identify the activity group that the activity belongs to. This is
+-- optional: if empty, a new tag string will be generated for you. This
+-- string must be 1 to 8 characters long, with valid characters being
+-- [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among
+-- activity groups of the same floodlight configuration. This field is
+-- read-only after insertion.
+fagTagString :: Lens' FloodlightActivityGroup (Maybe Text)
+fagTagString
+  = lens _fagTagString (\ s a -> s{_fagTagString = a})
+
+-- | Floodlight configuration ID of this floodlight activity group. This is a
+-- required field.
+fagFloodlightConfigurationId :: Lens' FloodlightActivityGroup (Maybe Int64)
+fagFloodlightConfigurationId
+  = lens _fagFloodlightConfigurationId
+      (\ s a -> s{_fagFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightActivityGroup\".
+fagKind :: Lens' FloodlightActivityGroup Text
+fagKind = lens _fagKind (\ s a -> s{_fagKind = a})
+
+-- | Advertiser ID of this floodlight activity group. If this field is left
+-- blank, the value will be copied over either from the floodlight
+-- configuration\'s advertiser or from the existing activity group\'s
+-- advertiser.
+fagAdvertiserId :: Lens' FloodlightActivityGroup (Maybe Int64)
+fagAdvertiserId
+  = lens _fagAdvertiserId
+      (\ s a -> s{_fagAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+fagAdvertiserIdDimensionValue :: Lens' FloodlightActivityGroup (Maybe DimensionValue)
+fagAdvertiserIdDimensionValue
+  = lens _fagAdvertiserIdDimensionValue
+      (\ s a -> s{_fagAdvertiserIdDimensionValue = a})
+
+-- | Dimension value for the ID of this floodlight activity group. This is a
+-- read-only, auto-generated field.
+fagIdDimensionValue :: Lens' FloodlightActivityGroup (Maybe DimensionValue)
+fagIdDimensionValue
+  = lens _fagIdDimensionValue
+      (\ s a -> s{_fagIdDimensionValue = a})
+
+-- | Account ID of this floodlight activity group. This is a read-only field
+-- that can be left blank.
+fagAccountId :: Lens' FloodlightActivityGroup (Maybe Int64)
+fagAccountId
+  = lens _fagAccountId (\ s a -> s{_fagAccountId = a})
+      . mapping _Coerce
+
+-- | Name of this floodlight activity group. This is a required field. Must
+-- be less than 65 characters long and cannot contain quotes.
+fagName :: Lens' FloodlightActivityGroup (Maybe Text)
+fagName = lens _fagName (\ s a -> s{_fagName = a})
+
+-- | ID of this floodlight activity group. This is a read-only,
+-- auto-generated field.
+fagId :: Lens' FloodlightActivityGroup (Maybe Int64)
+fagId
+  = lens _fagId (\ s a -> s{_fagId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this floodlight activity group. This is a read-only
+-- field that can be left blank.
+fagSubAccountId :: Lens' FloodlightActivityGroup (Maybe Int64)
+fagSubAccountId
+  = lens _fagSubAccountId
+      (\ s a -> s{_fagSubAccountId = a})
+      . mapping _Coerce
+
+-- | Type of the floodlight activity group. This is a required field that is
+-- read-only after insertion.
+fagType :: Lens' FloodlightActivityGroup (Maybe FloodlightActivityGroupType)
+fagType = lens _fagType (\ s a -> s{_fagType = a})
+
+-- | Dimension value for the ID of the floodlight configuration. This is a
+-- read-only, auto-generated field.
+fagFloodlightConfigurationIdDimensionValue :: Lens' FloodlightActivityGroup (Maybe DimensionValue)
+fagFloodlightConfigurationIdDimensionValue
+  = lens _fagFloodlightConfigurationIdDimensionValue
+      (\ s a ->
+         s{_fagFloodlightConfigurationIdDimensionValue = a})
+
+instance FromJSON FloodlightActivityGroup where
+        parseJSON
+          = withObject "FloodlightActivityGroup"
+              (\ o ->
+                 FloodlightActivityGroup <$>
+                   (o .:? "tagString") <*>
+                     (o .:? "floodlightConfigurationId")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightActivityGroup")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*>
+                     (o .:? "floodlightConfigurationIdDimensionValue"))
+
+instance ToJSON FloodlightActivityGroup where
+        toJSON FloodlightActivityGroup{..}
+          = object
+              (catMaybes
+                 [("tagString" .=) <$> _fagTagString,
+                  ("floodlightConfigurationId" .=) <$>
+                    _fagFloodlightConfigurationId,
+                  Just ("kind" .= _fagKind),
+                  ("advertiserId" .=) <$> _fagAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _fagAdvertiserIdDimensionValue,
+                  ("idDimensionValue" .=) <$> _fagIdDimensionValue,
+                  ("accountId" .=) <$> _fagAccountId,
+                  ("name" .=) <$> _fagName, ("id" .=) <$> _fagId,
+                  ("subaccountId" .=) <$> _fagSubAccountId,
+                  ("type" .=) <$> _fagType,
+                  ("floodlightConfigurationIdDimensionValue" .=) <$>
+                    _fagFloodlightConfigurationIdDimensionValue])
+
+-- | Represents fields that are compatible to be selected for a report of
+-- type \"CROSS_DIMENSION_REACH\".
+--
+-- /See:/ 'crossDimensionReachReportCompatibleFields' smart constructor.
+data CrossDimensionReachReportCompatibleFields = CrossDimensionReachReportCompatibleFields
+    { _cdrrcfMetrics          :: !(Maybe [Metric])
+    , _cdrrcfBreakdown        :: !(Maybe [Dimension])
+    , _cdrrcfKind             :: !Text
+    , _cdrrcfDimensionFilters :: !(Maybe [Dimension])
+    , _cdrrcfOverlapMetrics   :: !(Maybe [Metric])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CrossDimensionReachReportCompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdrrcfMetrics'
+--
+-- * 'cdrrcfBreakdown'
+--
+-- * 'cdrrcfKind'
+--
+-- * 'cdrrcfDimensionFilters'
+--
+-- * 'cdrrcfOverlapMetrics'
+crossDimensionReachReportCompatibleFields
+    :: CrossDimensionReachReportCompatibleFields
+crossDimensionReachReportCompatibleFields =
+    CrossDimensionReachReportCompatibleFields
+    { _cdrrcfMetrics = Nothing
+    , _cdrrcfBreakdown = Nothing
+    , _cdrrcfKind = "dfareporting#crossDimensionReachReportCompatibleFields"
+    , _cdrrcfDimensionFilters = Nothing
+    , _cdrrcfOverlapMetrics = Nothing
+    }
+
+-- | Metrics which are compatible to be selected in the \"metricNames\"
+-- section of the report.
+cdrrcfMetrics :: Lens' CrossDimensionReachReportCompatibleFields [Metric]
+cdrrcfMetrics
+  = lens _cdrrcfMetrics
+      (\ s a -> s{_cdrrcfMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | Dimensions which are compatible to be selected in the \"breakdown\"
+-- section of the report.
+cdrrcfBreakdown :: Lens' CrossDimensionReachReportCompatibleFields [Dimension]
+cdrrcfBreakdown
+  = lens _cdrrcfBreakdown
+      (\ s a -> s{_cdrrcfBreakdown = a})
+      . _Default
+      . _Coerce
+
+-- | The kind of resource this is, in this case
+-- dfareporting#crossDimensionReachReportCompatibleFields.
+cdrrcfKind :: Lens' CrossDimensionReachReportCompatibleFields Text
+cdrrcfKind
+  = lens _cdrrcfKind (\ s a -> s{_cdrrcfKind = a})
+
+-- | Dimensions which are compatible to be selected in the
+-- \"dimensionFilters\" section of the report.
+cdrrcfDimensionFilters :: Lens' CrossDimensionReachReportCompatibleFields [Dimension]
+cdrrcfDimensionFilters
+  = lens _cdrrcfDimensionFilters
+      (\ s a -> s{_cdrrcfDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Metrics which are compatible to be selected in the
+-- \"overlapMetricNames\" section of the report.
+cdrrcfOverlapMetrics :: Lens' CrossDimensionReachReportCompatibleFields [Metric]
+cdrrcfOverlapMetrics
+  = lens _cdrrcfOverlapMetrics
+      (\ s a -> s{_cdrrcfOverlapMetrics = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         CrossDimensionReachReportCompatibleFields where
+        parseJSON
+          = withObject
+              "CrossDimensionReachReportCompatibleFields"
+              (\ o ->
+                 CrossDimensionReachReportCompatibleFields <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "breakdown" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#crossDimensionReachReportCompatibleFields")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "overlapMetrics" .!= mempty))
+
+instance ToJSON
+         CrossDimensionReachReportCompatibleFields where
+        toJSON CrossDimensionReachReportCompatibleFields{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _cdrrcfMetrics,
+                  ("breakdown" .=) <$> _cdrrcfBreakdown,
+                  Just ("kind" .= _cdrrcfKind),
+                  ("dimensionFilters" .=) <$> _cdrrcfDimensionFilters,
+                  ("overlapMetrics" .=) <$> _cdrrcfOverlapMetrics])
+
+-- | FsCommand.
+--
+-- /See:/ 'fsCommand' smart constructor.
+data FsCommand = FsCommand
+    { _fcPositionOption :: !(Maybe FsCommandPositionOption)
+    , _fcLeft           :: !(Maybe (Textual Int32))
+    , _fcWindowHeight   :: !(Maybe (Textual Int32))
+    , _fcWindowWidth    :: !(Maybe (Textual Int32))
+    , _fcTop            :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FsCommand' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fcPositionOption'
+--
+-- * 'fcLeft'
+--
+-- * 'fcWindowHeight'
+--
+-- * 'fcWindowWidth'
+--
+-- * 'fcTop'
+fsCommand
+    :: FsCommand
+fsCommand =
+    FsCommand
+    { _fcPositionOption = Nothing
+    , _fcLeft = Nothing
+    , _fcWindowHeight = Nothing
+    , _fcWindowWidth = Nothing
+    , _fcTop = Nothing
+    }
+
+-- | Position in the browser where the window will open.
+fcPositionOption :: Lens' FsCommand (Maybe FsCommandPositionOption)
+fcPositionOption
+  = lens _fcPositionOption
+      (\ s a -> s{_fcPositionOption = a})
+
+-- | Distance from the left of the browser.Applicable when positionOption is
+-- DISTANCE_FROM_TOP_LEFT_CORNER.
+fcLeft :: Lens' FsCommand (Maybe Int32)
+fcLeft
+  = lens _fcLeft (\ s a -> s{_fcLeft = a}) .
+      mapping _Coerce
+
+-- | Height of the window.
+fcWindowHeight :: Lens' FsCommand (Maybe Int32)
+fcWindowHeight
+  = lens _fcWindowHeight
+      (\ s a -> s{_fcWindowHeight = a})
+      . mapping _Coerce
+
+-- | Width of the window.
+fcWindowWidth :: Lens' FsCommand (Maybe Int32)
+fcWindowWidth
+  = lens _fcWindowWidth
+      (\ s a -> s{_fcWindowWidth = a})
+      . mapping _Coerce
+
+-- | Distance from the top of the browser. Applicable when positionOption is
+-- DISTANCE_FROM_TOP_LEFT_CORNER.
+fcTop :: Lens' FsCommand (Maybe Int32)
+fcTop
+  = lens _fcTop (\ s a -> s{_fcTop = a}) .
+      mapping _Coerce
+
+instance FromJSON FsCommand where
+        parseJSON
+          = withObject "FsCommand"
+              (\ o ->
+                 FsCommand <$>
+                   (o .:? "positionOption") <*> (o .:? "left") <*>
+                     (o .:? "windowHeight")
+                     <*> (o .:? "windowWidth")
+                     <*> (o .:? "top"))
+
+instance ToJSON FsCommand where
+        toJSON FsCommand{..}
+          = object
+              (catMaybes
+                 [("positionOption" .=) <$> _fcPositionOption,
+                  ("left" .=) <$> _fcLeft,
+                  ("windowHeight" .=) <$> _fcWindowHeight,
+                  ("windowWidth" .=) <$> _fcWindowWidth,
+                  ("top" .=) <$> _fcTop])
+
+-- | Placement Assignment.
+--
+-- /See:/ 'placementAssignment' smart constructor.
+data PlacementAssignment = PlacementAssignment
+    { _paPlacementId               :: !(Maybe (Textual Int64))
+    , _paPlacementIdDimensionValue :: !(Maybe DimensionValue)
+    , _paActive                    :: !(Maybe Bool)
+    , _paSSLRequired               :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'paPlacementId'
+--
+-- * 'paPlacementIdDimensionValue'
+--
+-- * 'paActive'
+--
+-- * 'paSSLRequired'
+placementAssignment
+    :: PlacementAssignment
+placementAssignment =
+    PlacementAssignment
+    { _paPlacementId = Nothing
+    , _paPlacementIdDimensionValue = Nothing
+    , _paActive = Nothing
+    , _paSSLRequired = Nothing
+    }
+
+-- | ID of the placement to be assigned. This is a required field.
+paPlacementId :: Lens' PlacementAssignment (Maybe Int64)
+paPlacementId
+  = lens _paPlacementId
+      (\ s a -> s{_paPlacementId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the placement. This is a read-only,
+-- auto-generated field.
+paPlacementIdDimensionValue :: Lens' PlacementAssignment (Maybe DimensionValue)
+paPlacementIdDimensionValue
+  = lens _paPlacementIdDimensionValue
+      (\ s a -> s{_paPlacementIdDimensionValue = a})
+
+-- | Whether this placement assignment is active. When true, the placement
+-- will be included in the ad\'s rotation.
+paActive :: Lens' PlacementAssignment (Maybe Bool)
+paActive = lens _paActive (\ s a -> s{_paActive = a})
+
+-- | Whether the placement to be assigned requires SSL. This is a read-only
+-- field that is auto-generated when the ad is inserted or updated.
+paSSLRequired :: Lens' PlacementAssignment (Maybe Bool)
+paSSLRequired
+  = lens _paSSLRequired
+      (\ s a -> s{_paSSLRequired = a})
+
+instance FromJSON PlacementAssignment where
+        parseJSON
+          = withObject "PlacementAssignment"
+              (\ o ->
+                 PlacementAssignment <$>
+                   (o .:? "placementId") <*>
+                     (o .:? "placementIdDimensionValue")
+                     <*> (o .:? "active")
+                     <*> (o .:? "sslRequired"))
+
+instance ToJSON PlacementAssignment where
+        toJSON PlacementAssignment{..}
+          = object
+              (catMaybes
+                 [("placementId" .=) <$> _paPlacementId,
+                  ("placementIdDimensionValue" .=) <$>
+                    _paPlacementIdDimensionValue,
+                  ("active" .=) <$> _paActive,
+                  ("sslRequired" .=) <$> _paSSLRequired])
+
+-- | Contains properties of a creative field value.
+--
+-- /See:/ 'creativeFieldValue' smart constructor.
+data CreativeFieldValue = CreativeFieldValue
+    { _cfvKind  :: !Text
+    , _cfvValue :: !(Maybe Text)
+    , _cfvId    :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldValue' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfvKind'
+--
+-- * 'cfvValue'
+--
+-- * 'cfvId'
+creativeFieldValue
+    :: CreativeFieldValue
+creativeFieldValue =
+    CreativeFieldValue
+    { _cfvKind = "dfareporting#creativeFieldValue"
+    , _cfvValue = Nothing
+    , _cfvId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeFieldValue\".
+cfvKind :: Lens' CreativeFieldValue Text
+cfvKind = lens _cfvKind (\ s a -> s{_cfvKind = a})
+
+-- | Value of this creative field value. It needs to be less than 256
+-- characters in length and unique per creative field.
+cfvValue :: Lens' CreativeFieldValue (Maybe Text)
+cfvValue = lens _cfvValue (\ s a -> s{_cfvValue = a})
+
+-- | ID of this creative field value. This is a read-only, auto-generated
+-- field.
+cfvId :: Lens' CreativeFieldValue (Maybe Int64)
+cfvId
+  = lens _cfvId (\ s a -> s{_cfvId = a}) .
+      mapping _Coerce
+
+instance FromJSON CreativeFieldValue where
+        parseJSON
+          = withObject "CreativeFieldValue"
+              (\ o ->
+                 CreativeFieldValue <$>
+                   (o .:? "kind" .!= "dfareporting#creativeFieldValue")
+                     <*> (o .:? "value")
+                     <*> (o .:? "id"))
+
+instance ToJSON CreativeFieldValue where
+        toJSON CreativeFieldValue{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cfvKind),
+                  ("value" .=) <$> _cfvValue, ("id" .=) <$> _cfvId])
+
+-- | Represents a DimensionValuesRequest.
+--
+-- /See:/ 'dimensionValueRequest' smart constructor.
+data DimensionValueRequest = DimensionValueRequest
+    { _dvrKind          :: !Text
+    , _dvrEndDate       :: !(Maybe Date')
+    , _dvrFilters       :: !(Maybe [DimensionFilter])
+    , _dvrStartDate     :: !(Maybe Date')
+    , _dvrDimensionName :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DimensionValueRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dvrKind'
+--
+-- * 'dvrEndDate'
+--
+-- * 'dvrFilters'
+--
+-- * 'dvrStartDate'
+--
+-- * 'dvrDimensionName'
+dimensionValueRequest
+    :: DimensionValueRequest
+dimensionValueRequest =
+    DimensionValueRequest
+    { _dvrKind = "dfareporting#dimensionValueRequest"
+    , _dvrEndDate = Nothing
+    , _dvrFilters = Nothing
+    , _dvrStartDate = Nothing
+    , _dvrDimensionName = Nothing
+    }
+
+-- | The kind of request this is, in this case
+-- dfareporting#dimensionValueRequest.
+dvrKind :: Lens' DimensionValueRequest Text
+dvrKind = lens _dvrKind (\ s a -> s{_dvrKind = a})
+
+-- | The end date of the date range for which to retrieve dimension values. A
+-- string of the format \"yyyy-MM-dd\".
+dvrEndDate :: Lens' DimensionValueRequest (Maybe Day)
+dvrEndDate
+  = lens _dvrEndDate (\ s a -> s{_dvrEndDate = a}) .
+      mapping _Date
+
+-- | The list of filters by which to filter values. The filters are ANDed.
+dvrFilters :: Lens' DimensionValueRequest [DimensionFilter]
+dvrFilters
+  = lens _dvrFilters (\ s a -> s{_dvrFilters = a}) .
+      _Default
+      . _Coerce
+
+-- | The start date of the date range for which to retrieve dimension values.
+-- A string of the format \"yyyy-MM-dd\".
+dvrStartDate :: Lens' DimensionValueRequest (Maybe Day)
+dvrStartDate
+  = lens _dvrStartDate (\ s a -> s{_dvrStartDate = a})
+      . mapping _Date
+
+-- | The name of the dimension for which values should be requested.
+dvrDimensionName :: Lens' DimensionValueRequest (Maybe Text)
+dvrDimensionName
+  = lens _dvrDimensionName
+      (\ s a -> s{_dvrDimensionName = a})
+
+instance FromJSON DimensionValueRequest where
+        parseJSON
+          = withObject "DimensionValueRequest"
+              (\ o ->
+                 DimensionValueRequest <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#dimensionValueRequest")
+                     <*> (o .:? "endDate")
+                     <*> (o .:? "filters" .!= mempty)
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "dimensionName"))
+
+instance ToJSON DimensionValueRequest where
+        toJSON DimensionValueRequest{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _dvrKind),
+                  ("endDate" .=) <$> _dvrEndDate,
+                  ("filters" .=) <$> _dvrFilters,
+                  ("startDate" .=) <$> _dvrStartDate,
+                  ("dimensionName" .=) <$> _dvrDimensionName])
+
+-- | Floodlight Configuration List Response
+--
+-- /See:/ 'floodlightConfigurationsListResponse' smart constructor.
+data FloodlightConfigurationsListResponse = FloodlightConfigurationsListResponse
+    { _fclrKind                     :: !Text
+    , _fclrFloodlightConfigurations :: !(Maybe [FloodlightConfiguration])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightConfigurationsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fclrKind'
+--
+-- * 'fclrFloodlightConfigurations'
+floodlightConfigurationsListResponse
+    :: FloodlightConfigurationsListResponse
+floodlightConfigurationsListResponse =
+    FloodlightConfigurationsListResponse
+    { _fclrKind = "dfareporting#floodlightConfigurationsListResponse"
+    , _fclrFloodlightConfigurations = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightConfigurationsListResponse\".
+fclrKind :: Lens' FloodlightConfigurationsListResponse Text
+fclrKind = lens _fclrKind (\ s a -> s{_fclrKind = a})
+
+-- | Floodlight configuration collection.
+fclrFloodlightConfigurations :: Lens' FloodlightConfigurationsListResponse [FloodlightConfiguration]
+fclrFloodlightConfigurations
+  = lens _fclrFloodlightConfigurations
+      (\ s a -> s{_fclrFloodlightConfigurations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         FloodlightConfigurationsListResponse where
+        parseJSON
+          = withObject "FloodlightConfigurationsListResponse"
+              (\ o ->
+                 FloodlightConfigurationsListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#floodlightConfigurationsListResponse")
+                     <*> (o .:? "floodlightConfigurations" .!= mempty))
+
+instance ToJSON FloodlightConfigurationsListResponse
+         where
+        toJSON FloodlightConfigurationsListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _fclrKind),
+                  ("floodlightConfigurations" .=) <$>
+                    _fclrFloodlightConfigurations])
+
+-- | Floodlight Activity List Response
+--
+-- /See:/ 'floodlightActivitiesListResponse' smart constructor.
+data FloodlightActivitiesListResponse = FloodlightActivitiesListResponse
+    { _falrNextPageToken        :: !(Maybe Text)
+    , _falrKind                 :: !Text
+    , _falrFloodlightActivities :: !(Maybe [FloodlightActivity])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'falrNextPageToken'
+--
+-- * 'falrKind'
+--
+-- * 'falrFloodlightActivities'
+floodlightActivitiesListResponse
+    :: FloodlightActivitiesListResponse
+floodlightActivitiesListResponse =
+    FloodlightActivitiesListResponse
+    { _falrNextPageToken = Nothing
+    , _falrKind = "dfareporting#floodlightActivitiesListResponse"
+    , _falrFloodlightActivities = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+falrNextPageToken :: Lens' FloodlightActivitiesListResponse (Maybe Text)
+falrNextPageToken
+  = lens _falrNextPageToken
+      (\ s a -> s{_falrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightActivitiesListResponse\".
+falrKind :: Lens' FloodlightActivitiesListResponse Text
+falrKind = lens _falrKind (\ s a -> s{_falrKind = a})
+
+-- | Floodlight activity collection.
+falrFloodlightActivities :: Lens' FloodlightActivitiesListResponse [FloodlightActivity]
+falrFloodlightActivities
+  = lens _falrFloodlightActivities
+      (\ s a -> s{_falrFloodlightActivities = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON FloodlightActivitiesListResponse
+         where
+        parseJSON
+          = withObject "FloodlightActivitiesListResponse"
+              (\ o ->
+                 FloodlightActivitiesListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightActivitiesListResponse")
+                     <*> (o .:? "floodlightActivities" .!= mempty))
+
+instance ToJSON FloodlightActivitiesListResponse
+         where
+        toJSON FloodlightActivitiesListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _falrNextPageToken,
+                  Just ("kind" .= _falrKind),
+                  ("floodlightActivities" .=) <$>
+                    _falrFloodlightActivities])
+
+-- | Creative Field Assignment.
+--
+-- /See:/ 'creativeFieldAssignment' smart constructor.
+data CreativeFieldAssignment = CreativeFieldAssignment
+    { _cfaCreativeFieldId      :: !(Maybe (Textual Int64))
+    , _cfaCreativeFieldValueId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfaCreativeFieldId'
+--
+-- * 'cfaCreativeFieldValueId'
+creativeFieldAssignment
+    :: CreativeFieldAssignment
+creativeFieldAssignment =
+    CreativeFieldAssignment
+    { _cfaCreativeFieldId = Nothing
+    , _cfaCreativeFieldValueId = Nothing
+    }
+
+-- | ID of the creative field.
+cfaCreativeFieldId :: Lens' CreativeFieldAssignment (Maybe Int64)
+cfaCreativeFieldId
+  = lens _cfaCreativeFieldId
+      (\ s a -> s{_cfaCreativeFieldId = a})
+      . mapping _Coerce
+
+-- | ID of the creative field value.
+cfaCreativeFieldValueId :: Lens' CreativeFieldAssignment (Maybe Int64)
+cfaCreativeFieldValueId
+  = lens _cfaCreativeFieldValueId
+      (\ s a -> s{_cfaCreativeFieldValueId = a})
+      . mapping _Coerce
+
+instance FromJSON CreativeFieldAssignment where
+        parseJSON
+          = withObject "CreativeFieldAssignment"
+              (\ o ->
+                 CreativeFieldAssignment <$>
+                   (o .:? "creativeFieldId") <*>
+                     (o .:? "creativeFieldValueId"))
+
+instance ToJSON CreativeFieldAssignment where
+        toJSON CreativeFieldAssignment{..}
+          = object
+              (catMaybes
+                 [("creativeFieldId" .=) <$> _cfaCreativeFieldId,
+                  ("creativeFieldValueId" .=) <$>
+                    _cfaCreativeFieldValueId])
+
+-- | Groups advertisers together so that reports can be generated for the
+-- entire group at once.
+--
+-- /See:/ 'advertiserGroup' smart constructor.
+data AdvertiserGroup = AdvertiserGroup
+    { _agKind      :: !Text
+    , _agAccountId :: !(Maybe (Textual Int64))
+    , _agName      :: !(Maybe Text)
+    , _agId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertiserGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'agKind'
+--
+-- * 'agAccountId'
+--
+-- * 'agName'
+--
+-- * 'agId'
+advertiserGroup
+    :: AdvertiserGroup
+advertiserGroup =
+    AdvertiserGroup
+    { _agKind = "dfareporting#advertiserGroup"
+    , _agAccountId = Nothing
+    , _agName = Nothing
+    , _agId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#advertiserGroup\".
+agKind :: Lens' AdvertiserGroup Text
+agKind = lens _agKind (\ s a -> s{_agKind = a})
+
+-- | Account ID of this advertiser group. This is a read-only field that can
+-- be left blank.
+agAccountId :: Lens' AdvertiserGroup (Maybe Int64)
+agAccountId
+  = lens _agAccountId (\ s a -> s{_agAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this advertiser group. This is a required field and must be less
+-- than 256 characters long and unique among advertiser groups of the same
+-- account.
+agName :: Lens' AdvertiserGroup (Maybe Text)
+agName = lens _agName (\ s a -> s{_agName = a})
+
+-- | ID of this advertiser group. This is a read-only, auto-generated field.
+agId :: Lens' AdvertiserGroup (Maybe Int64)
+agId
+  = lens _agId (\ s a -> s{_agId = a}) .
+      mapping _Coerce
+
+instance FromJSON AdvertiserGroup where
+        parseJSON
+          = withObject "AdvertiserGroup"
+              (\ o ->
+                 AdvertiserGroup <$>
+                   (o .:? "kind" .!= "dfareporting#advertiserGroup") <*>
+                     (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON AdvertiserGroup where
+        toJSON AdvertiserGroup{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _agKind),
+                  ("accountId" .=) <$> _agAccountId,
+                  ("name" .=) <$> _agName, ("id" .=) <$> _agId])
+
+-- | Placement Tag Data
+--
+-- /See:/ 'tagData' smart constructor.
+data TagData = TagData
+    { _tdClickTag      :: !(Maybe Text)
+    , _tdFormat        :: !(Maybe TagDataFormat)
+    , _tdCreativeId    :: !(Maybe (Textual Int64))
+    , _tdAdId          :: !(Maybe (Textual Int64))
+    , _tdImpressionTag :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TagData' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tdClickTag'
+--
+-- * 'tdFormat'
+--
+-- * 'tdCreativeId'
+--
+-- * 'tdAdId'
+--
+-- * 'tdImpressionTag'
+tagData
+    :: TagData
+tagData =
+    TagData
+    { _tdClickTag = Nothing
+    , _tdFormat = Nothing
+    , _tdCreativeId = Nothing
+    , _tdAdId = Nothing
+    , _tdImpressionTag = Nothing
+    }
+
+-- | Tag string to record a click.
+tdClickTag :: Lens' TagData (Maybe Text)
+tdClickTag
+  = lens _tdClickTag (\ s a -> s{_tdClickTag = a})
+
+-- | TagData tag format of this tag.
+tdFormat :: Lens' TagData (Maybe TagDataFormat)
+tdFormat = lens _tdFormat (\ s a -> s{_tdFormat = a})
+
+-- | Creative associated with this placement tag.
+tdCreativeId :: Lens' TagData (Maybe Int64)
+tdCreativeId
+  = lens _tdCreativeId (\ s a -> s{_tdCreativeId = a})
+      . mapping _Coerce
+
+-- | Ad associated with this placement tag.
+tdAdId :: Lens' TagData (Maybe Int64)
+tdAdId
+  = lens _tdAdId (\ s a -> s{_tdAdId = a}) .
+      mapping _Coerce
+
+-- | Tag string for serving an ad.
+tdImpressionTag :: Lens' TagData (Maybe Text)
+tdImpressionTag
+  = lens _tdImpressionTag
+      (\ s a -> s{_tdImpressionTag = a})
+
+instance FromJSON TagData where
+        parseJSON
+          = withObject "TagData"
+              (\ o ->
+                 TagData <$>
+                   (o .:? "clickTag") <*> (o .:? "format") <*>
+                     (o .:? "creativeId")
+                     <*> (o .:? "adId")
+                     <*> (o .:? "impressionTag"))
+
+instance ToJSON TagData where
+        toJSON TagData{..}
+          = object
+              (catMaybes
+                 [("clickTag" .=) <$> _tdClickTag,
+                  ("format" .=) <$> _tdFormat,
+                  ("creativeId" .=) <$> _tdCreativeId,
+                  ("adId" .=) <$> _tdAdId,
+                  ("impressionTag" .=) <$> _tdImpressionTag])
+
+-- | Day Part Targeting.
+--
+-- /See:/ 'dayPartTargeting' smart constructor.
+data DayPartTargeting = DayPartTargeting
+    { _dptDaysOfWeek    :: !(Maybe [DayPartTargetingDaysOfWeekItem])
+    , _dptHoursOfDay    :: !(Maybe [Textual Int32])
+    , _dptUserLocalTime :: !(Maybe Bool)
+    } 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:
+--
+-- * 'dptDaysOfWeek'
+--
+-- * 'dptHoursOfDay'
+--
+-- * 'dptUserLocalTime'
+dayPartTargeting
+    :: DayPartTargeting
+dayPartTargeting =
+    DayPartTargeting
+    { _dptDaysOfWeek = Nothing
+    , _dptHoursOfDay = Nothing
+    , _dptUserLocalTime = Nothing
+    }
+
+-- | Days of the week when the ad will serve. Acceptable values are: -
+-- \"SUNDAY\" - \"MONDAY\" - \"TUESDAY\" - \"WEDNESDAY\" - \"THURSDAY\" -
+-- \"FRIDAY\" - \"SATURDAY\"
+dptDaysOfWeek :: Lens' DayPartTargeting [DayPartTargetingDaysOfWeekItem]
+dptDaysOfWeek
+  = lens _dptDaysOfWeek
+      (\ s a -> s{_dptDaysOfWeek = a})
+      . _Default
+      . _Coerce
+
+-- | Hours of the day when the ad will serve. Must be an integer between 0
+-- and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to
+-- midnight. Can be specified with days of week, in which case the ad would
+-- serve during these hours on the specified days. For example, if Monday,
+-- Wednesday, Friday are the days of week specified and 9-10am, 3-5pm
+-- (hours 9, 15, and 16) is specified, the ad would serve Monday,
+-- Wednesdays, and Fridays at 9-10am and 3-5pm.
+dptHoursOfDay :: Lens' DayPartTargeting [Int32]
+dptHoursOfDay
+  = lens _dptHoursOfDay
+      (\ s a -> s{_dptHoursOfDay = a})
+      . _Default
+      . _Coerce
+
+-- | Whether or not to use the user\'s local time. If false, the America\/New
+-- York time zone applies.
+dptUserLocalTime :: Lens' DayPartTargeting (Maybe Bool)
+dptUserLocalTime
+  = lens _dptUserLocalTime
+      (\ s a -> s{_dptUserLocalTime = a})
+
+instance FromJSON DayPartTargeting where
+        parseJSON
+          = withObject "DayPartTargeting"
+              (\ o ->
+                 DayPartTargeting <$>
+                   (o .:? "daysOfWeek" .!= mempty) <*>
+                     (o .:? "hoursOfDay" .!= mempty)
+                     <*> (o .:? "userLocalTime"))
+
+instance ToJSON DayPartTargeting where
+        toJSON DayPartTargeting{..}
+          = object
+              (catMaybes
+                 [("daysOfWeek" .=) <$> _dptDaysOfWeek,
+                  ("hoursOfDay" .=) <$> _dptHoursOfDay,
+                  ("userLocalTime" .=) <$> _dptUserLocalTime])
+
+-- | Creative optimization settings.
+--
+-- /See:/ 'creativeOptimizationConfiguration' smart constructor.
+data CreativeOptimizationConfiguration = CreativeOptimizationConfiguration
+    { _cocOptimizationModel     :: !(Maybe CreativeOptimizationConfigurationOptimizationModel)
+    , _cocName                  :: !(Maybe Text)
+    , _cocOptimizationActivitys :: !(Maybe [OptimizationActivity])
+    , _cocId                    :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeOptimizationConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cocOptimizationModel'
+--
+-- * 'cocName'
+--
+-- * 'cocOptimizationActivitys'
+--
+-- * 'cocId'
+creativeOptimizationConfiguration
+    :: CreativeOptimizationConfiguration
+creativeOptimizationConfiguration =
+    CreativeOptimizationConfiguration
+    { _cocOptimizationModel = Nothing
+    , _cocName = Nothing
+    , _cocOptimizationActivitys = Nothing
+    , _cocId = Nothing
+    }
+
+-- | Optimization model for this configuration.
+cocOptimizationModel :: Lens' CreativeOptimizationConfiguration (Maybe CreativeOptimizationConfigurationOptimizationModel)
+cocOptimizationModel
+  = lens _cocOptimizationModel
+      (\ s a -> s{_cocOptimizationModel = a})
+
+-- | Name of this creative optimization config. This is a required field and
+-- must be less than 129 characters long.
+cocName :: Lens' CreativeOptimizationConfiguration (Maybe Text)
+cocName = lens _cocName (\ s a -> s{_cocName = a})
+
+-- | List of optimization activities associated with this configuration.
+cocOptimizationActivitys :: Lens' CreativeOptimizationConfiguration [OptimizationActivity]
+cocOptimizationActivitys
+  = lens _cocOptimizationActivitys
+      (\ s a -> s{_cocOptimizationActivitys = a})
+      . _Default
+      . _Coerce
+
+-- | ID of this creative optimization config. This field is auto-generated
+-- when the campaign is inserted or updated. It can be null for existing
+-- campaigns.
+cocId :: Lens' CreativeOptimizationConfiguration (Maybe Int64)
+cocId
+  = lens _cocId (\ s a -> s{_cocId = a}) .
+      mapping _Coerce
+
+instance FromJSON CreativeOptimizationConfiguration
+         where
+        parseJSON
+          = withObject "CreativeOptimizationConfiguration"
+              (\ o ->
+                 CreativeOptimizationConfiguration <$>
+                   (o .:? "optimizationModel") <*> (o .:? "name") <*>
+                     (o .:? "optimizationActivitys" .!= mempty)
+                     <*> (o .:? "id"))
+
+instance ToJSON CreativeOptimizationConfiguration
+         where
+        toJSON CreativeOptimizationConfiguration{..}
+          = object
+              (catMaybes
+                 [("optimizationModel" .=) <$> _cocOptimizationModel,
+                  ("name" .=) <$> _cocName,
+                  ("optimizationActivitys" .=) <$>
+                    _cocOptimizationActivitys,
+                  ("id" .=) <$> _cocId])
+
+-- | The report criteria for a report of type \"STANDARD\".
+--
+-- /See:/ 'reportCriteria' smart constructor.
+data ReportCriteria = ReportCriteria
+    { _rcMetricNames           :: !(Maybe [Text])
+    , _rcCustomRichMediaEvents :: !(Maybe CustomRichMediaEvents)
+    , _rcDimensionFilters      :: !(Maybe [DimensionValue])
+    , _rcActivities            :: !(Maybe Activities)
+    , _rcDateRange             :: !(Maybe DateRange)
+    , _rcDimensions            :: !(Maybe [SortedDimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcMetricNames'
+--
+-- * 'rcCustomRichMediaEvents'
+--
+-- * 'rcDimensionFilters'
+--
+-- * 'rcActivities'
+--
+-- * 'rcDateRange'
+--
+-- * 'rcDimensions'
+reportCriteria
+    :: ReportCriteria
+reportCriteria =
+    ReportCriteria
+    { _rcMetricNames = Nothing
+    , _rcCustomRichMediaEvents = Nothing
+    , _rcDimensionFilters = Nothing
+    , _rcActivities = Nothing
+    , _rcDateRange = Nothing
+    , _rcDimensions = Nothing
+    }
+
+-- | The list of names of metrics the report should include.
+rcMetricNames :: Lens' ReportCriteria [Text]
+rcMetricNames
+  = lens _rcMetricNames
+      (\ s a -> s{_rcMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | Custom Rich Media Events group.
+rcCustomRichMediaEvents :: Lens' ReportCriteria (Maybe CustomRichMediaEvents)
+rcCustomRichMediaEvents
+  = lens _rcCustomRichMediaEvents
+      (\ s a -> s{_rcCustomRichMediaEvents = a})
+
+-- | The list of filters on which dimensions are filtered. Filters for
+-- different dimensions are ANDed, filters for the same dimension are
+-- grouped together and ORed.
+rcDimensionFilters :: Lens' ReportCriteria [DimensionValue]
+rcDimensionFilters
+  = lens _rcDimensionFilters
+      (\ s a -> s{_rcDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Activity group.
+rcActivities :: Lens' ReportCriteria (Maybe Activities)
+rcActivities
+  = lens _rcActivities (\ s a -> s{_rcActivities = a})
+
+-- | The date range for which this report should be run.
+rcDateRange :: Lens' ReportCriteria (Maybe DateRange)
+rcDateRange
+  = lens _rcDateRange (\ s a -> s{_rcDateRange = a})
+
+-- | The list of standard dimensions the report should include.
+rcDimensions :: Lens' ReportCriteria [SortedDimension]
+rcDimensions
+  = lens _rcDimensions (\ s a -> s{_rcDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportCriteria where
+        parseJSON
+          = withObject "ReportCriteria"
+              (\ o ->
+                 ReportCriteria <$>
+                   (o .:? "metricNames" .!= mempty) <*>
+                     (o .:? "customRichMediaEvents")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "activities")
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON ReportCriteria where
+        toJSON ReportCriteria{..}
+          = object
+              (catMaybes
+                 [("metricNames" .=) <$> _rcMetricNames,
+                  ("customRichMediaEvents" .=) <$>
+                    _rcCustomRichMediaEvents,
+                  ("dimensionFilters" .=) <$> _rcDimensionFilters,
+                  ("activities" .=) <$> _rcActivities,
+                  ("dateRange" .=) <$> _rcDateRange,
+                  ("dimensions" .=) <$> _rcDimensions])
+
+-- | Placement Strategy List Response
+--
+-- /See:/ 'placementStrategiesListResponse' smart constructor.
+data PlacementStrategiesListResponse = PlacementStrategiesListResponse
+    { _pslrPlacementStrategies :: !(Maybe [PlacementStrategy])
+    , _pslrNextPageToken       :: !(Maybe Text)
+    , _pslrKind                :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementStrategiesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pslrPlacementStrategies'
+--
+-- * 'pslrNextPageToken'
+--
+-- * 'pslrKind'
+placementStrategiesListResponse
+    :: PlacementStrategiesListResponse
+placementStrategiesListResponse =
+    PlacementStrategiesListResponse
+    { _pslrPlacementStrategies = Nothing
+    , _pslrNextPageToken = Nothing
+    , _pslrKind = "dfareporting#placementStrategiesListResponse"
+    }
+
+-- | Placement strategy collection.
+pslrPlacementStrategies :: Lens' PlacementStrategiesListResponse [PlacementStrategy]
+pslrPlacementStrategies
+  = lens _pslrPlacementStrategies
+      (\ s a -> s{_pslrPlacementStrategies = a})
+      . _Default
+      . _Coerce
+
+-- | Pagination token to be used for the next list operation.
+pslrNextPageToken :: Lens' PlacementStrategiesListResponse (Maybe Text)
+pslrNextPageToken
+  = lens _pslrNextPageToken
+      (\ s a -> s{_pslrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementStrategiesListResponse\".
+pslrKind :: Lens' PlacementStrategiesListResponse Text
+pslrKind = lens _pslrKind (\ s a -> s{_pslrKind = a})
+
+instance FromJSON PlacementStrategiesListResponse
+         where
+        parseJSON
+          = withObject "PlacementStrategiesListResponse"
+              (\ o ->
+                 PlacementStrategiesListResponse <$>
+                   (o .:? "placementStrategies" .!= mempty) <*>
+                     (o .:? "nextPageToken")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#placementStrategiesListResponse"))
+
+instance ToJSON PlacementStrategiesListResponse where
+        toJSON PlacementStrategiesListResponse{..}
+          = object
+              (catMaybes
+                 [("placementStrategies" .=) <$>
+                    _pslrPlacementStrategies,
+                  ("nextPageToken" .=) <$> _pslrNextPageToken,
+                  Just ("kind" .= _pslrKind)])
+
+-- | Contains properties of a DCM subaccount.
+--
+-- /See:/ 'subAccount' smart constructor.
+data SubAccount = SubAccount
+    { _saKind                   :: !Text
+    , _saAvailablePermissionIds :: !(Maybe [Textual Int64])
+    , _saAccountId              :: !(Maybe (Textual Int64))
+    , _saName                   :: !(Maybe Text)
+    , _saId                     :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubAccount' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'saKind'
+--
+-- * 'saAvailablePermissionIds'
+--
+-- * 'saAccountId'
+--
+-- * 'saName'
+--
+-- * 'saId'
+subAccount
+    :: SubAccount
+subAccount =
+    SubAccount
+    { _saKind = "dfareporting#subaccount"
+    , _saAvailablePermissionIds = Nothing
+    , _saAccountId = Nothing
+    , _saName = Nothing
+    , _saId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#subaccount\".
+saKind :: Lens' SubAccount Text
+saKind = lens _saKind (\ s a -> s{_saKind = a})
+
+-- | IDs of the available user role permissions for this subaccount.
+saAvailablePermissionIds :: Lens' SubAccount [Int64]
+saAvailablePermissionIds
+  = lens _saAvailablePermissionIds
+      (\ s a -> s{_saAvailablePermissionIds = a})
+      . _Default
+      . _Coerce
+
+-- | ID of the account that contains this subaccount. This is a read-only
+-- field that can be left blank.
+saAccountId :: Lens' SubAccount (Maybe Int64)
+saAccountId
+  = lens _saAccountId (\ s a -> s{_saAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this subaccount. This is a required field. Must be less than 128
+-- characters long and be unique among subaccounts of the same account.
+saName :: Lens' SubAccount (Maybe Text)
+saName = lens _saName (\ s a -> s{_saName = a})
+
+-- | ID of this subaccount. This is a read-only, auto-generated field.
+saId :: Lens' SubAccount (Maybe Int64)
+saId
+  = lens _saId (\ s a -> s{_saId = a}) .
+      mapping _Coerce
+
+instance FromJSON SubAccount where
+        parseJSON
+          = withObject "SubAccount"
+              (\ o ->
+                 SubAccount <$>
+                   (o .:? "kind" .!= "dfareporting#subaccount") <*>
+                     (o .:? "availablePermissionIds" .!= mempty)
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON SubAccount where
+        toJSON SubAccount{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _saKind),
+                  ("availablePermissionIds" .=) <$>
+                    _saAvailablePermissionIds,
+                  ("accountId" .=) <$> _saAccountId,
+                  ("name" .=) <$> _saName, ("id" .=) <$> _saId])
+
+-- | Inventory item List Response
+--
+-- /See:/ 'inventoryItemsListResponse' smart constructor.
+data InventoryItemsListResponse = InventoryItemsListResponse
+    { _iilrInventoryItems :: !(Maybe [InventoryItem])
+    , _iilrNextPageToken  :: !(Maybe Text)
+    , _iilrKind           :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InventoryItemsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iilrInventoryItems'
+--
+-- * 'iilrNextPageToken'
+--
+-- * 'iilrKind'
+inventoryItemsListResponse
+    :: InventoryItemsListResponse
+inventoryItemsListResponse =
+    InventoryItemsListResponse
+    { _iilrInventoryItems = Nothing
+    , _iilrNextPageToken = Nothing
+    , _iilrKind = "dfareporting#inventoryItemsListResponse"
+    }
+
+-- | Inventory item collection
+iilrInventoryItems :: Lens' InventoryItemsListResponse [InventoryItem]
+iilrInventoryItems
+  = lens _iilrInventoryItems
+      (\ s a -> s{_iilrInventoryItems = a})
+      . _Default
+      . _Coerce
+
+-- | Pagination token to be used for the next list operation.
+iilrNextPageToken :: Lens' InventoryItemsListResponse (Maybe Text)
+iilrNextPageToken
+  = lens _iilrNextPageToken
+      (\ s a -> s{_iilrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#inventoryItemsListResponse\".
+iilrKind :: Lens' InventoryItemsListResponse Text
+iilrKind = lens _iilrKind (\ s a -> s{_iilrKind = a})
+
+instance FromJSON InventoryItemsListResponse where
+        parseJSON
+          = withObject "InventoryItemsListResponse"
+              (\ o ->
+                 InventoryItemsListResponse <$>
+                   (o .:? "inventoryItems" .!= mempty) <*>
+                     (o .:? "nextPageToken")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#inventoryItemsListResponse"))
+
+instance ToJSON InventoryItemsListResponse where
+        toJSON InventoryItemsListResponse{..}
+          = object
+              (catMaybes
+                 [("inventoryItems" .=) <$> _iilrInventoryItems,
+                  ("nextPageToken" .=) <$> _iilrNextPageToken,
+                  Just ("kind" .= _iilrKind)])
+
+-- | Contains properties of a DCM ad.
+--
+-- /See:/ 'ad' smart constructor.
+data Ad = Ad
+    { _aCreativeGroupAssignments              :: !(Maybe [CreativeGroupAssignment])
+    , _aGeoTargeting                          :: !(Maybe GeoTargeting)
+    , _aCreativeRotation                      :: !(Maybe CreativeRotation)
+    , _aTechnologyTargeting                   :: !(Maybe TechnologyTargeting)
+    , _aAudienceSegmentId                     :: !(Maybe (Textual Int64))
+    , _aDayPartTargeting                      :: !(Maybe DayPartTargeting)
+    , _aSize                                  :: !(Maybe Size)
+    , _aStartTime                             :: !(Maybe DateTime')
+    , _aKind                                  :: !Text
+    , _aClickThroughURLSuffixProperties       :: !(Maybe ClickThroughURLSuffixProperties)
+    , _aCampaignIdDimensionValue              :: !(Maybe DimensionValue)
+    , _aAdvertiserId                          :: !(Maybe (Textual Int64))
+    , _aAdvertiserIdDimensionValue            :: !(Maybe DimensionValue)
+    , _aSSLCompliant                          :: !(Maybe Bool)
+    , _aCampaignId                            :: !(Maybe (Textual Int64))
+    , _aIdDimensionValue                      :: !(Maybe DimensionValue)
+    , _aClickThroughURL                       :: !(Maybe ClickThroughURL)
+    , _aDeliverySchedule                      :: !(Maybe DeliverySchedule)
+    , _aEventTagOverrides                     :: !(Maybe [EventTagOverride])
+    , _aActive                                :: !(Maybe Bool)
+    , _aAccountId                             :: !(Maybe (Textual Int64))
+    , _aName                                  :: !(Maybe Text)
+    , _aKeyValueTargetingExpression           :: !(Maybe KeyValueTargetingExpression)
+    , _aEndTime                               :: !(Maybe DateTime')
+    , _aCreateInfo                            :: !(Maybe LastModifiedInfo)
+    , _aLastModifiedInfo                      :: !(Maybe LastModifiedInfo)
+    , _aId                                    :: !(Maybe (Textual Int64))
+    , _aSSLRequired                           :: !(Maybe Bool)
+    , _aComments                              :: !(Maybe Text)
+    , _aSubAccountId                          :: !(Maybe (Textual Int64))
+    , _aType                                  :: !(Maybe AdType)
+    , _aRemarketingListExpression             :: !(Maybe ListTargetingExpression)
+    , _aDynamicClickTracker                   :: !(Maybe Bool)
+    , _aCompatibility                         :: !(Maybe AdCompatibility)
+    , _aArchived                              :: !(Maybe Bool)
+    , _aDefaultClickThroughEventTagProperties :: !(Maybe DefaultClickThroughEventTagProperties)
+    , _aPlacementAssignments                  :: !(Maybe [PlacementAssignment])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Ad' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aCreativeGroupAssignments'
+--
+-- * 'aGeoTargeting'
+--
+-- * 'aCreativeRotation'
+--
+-- * 'aTechnologyTargeting'
+--
+-- * 'aAudienceSegmentId'
+--
+-- * 'aDayPartTargeting'
+--
+-- * 'aSize'
+--
+-- * 'aStartTime'
+--
+-- * 'aKind'
+--
+-- * 'aClickThroughURLSuffixProperties'
+--
+-- * 'aCampaignIdDimensionValue'
+--
+-- * 'aAdvertiserId'
+--
+-- * 'aAdvertiserIdDimensionValue'
+--
+-- * 'aSSLCompliant'
+--
+-- * 'aCampaignId'
+--
+-- * 'aIdDimensionValue'
+--
+-- * 'aClickThroughURL'
+--
+-- * 'aDeliverySchedule'
+--
+-- * 'aEventTagOverrides'
+--
+-- * 'aActive'
+--
+-- * 'aAccountId'
+--
+-- * 'aName'
+--
+-- * 'aKeyValueTargetingExpression'
+--
+-- * 'aEndTime'
+--
+-- * 'aCreateInfo'
+--
+-- * 'aLastModifiedInfo'
+--
+-- * 'aId'
+--
+-- * 'aSSLRequired'
+--
+-- * 'aComments'
+--
+-- * 'aSubAccountId'
+--
+-- * 'aType'
+--
+-- * 'aRemarketingListExpression'
+--
+-- * 'aDynamicClickTracker'
+--
+-- * 'aCompatibility'
+--
+-- * 'aArchived'
+--
+-- * 'aDefaultClickThroughEventTagProperties'
+--
+-- * 'aPlacementAssignments'
+ad
+    :: Ad
+ad =
+    Ad
+    { _aCreativeGroupAssignments = Nothing
+    , _aGeoTargeting = Nothing
+    , _aCreativeRotation = Nothing
+    , _aTechnologyTargeting = Nothing
+    , _aAudienceSegmentId = Nothing
+    , _aDayPartTargeting = Nothing
+    , _aSize = Nothing
+    , _aStartTime = Nothing
+    , _aKind = "dfareporting#ad"
+    , _aClickThroughURLSuffixProperties = Nothing
+    , _aCampaignIdDimensionValue = Nothing
+    , _aAdvertiserId = Nothing
+    , _aAdvertiserIdDimensionValue = Nothing
+    , _aSSLCompliant = Nothing
+    , _aCampaignId = Nothing
+    , _aIdDimensionValue = Nothing
+    , _aClickThroughURL = Nothing
+    , _aDeliverySchedule = Nothing
+    , _aEventTagOverrides = Nothing
+    , _aActive = Nothing
+    , _aAccountId = Nothing
+    , _aName = Nothing
+    , _aKeyValueTargetingExpression = Nothing
+    , _aEndTime = Nothing
+    , _aCreateInfo = Nothing
+    , _aLastModifiedInfo = Nothing
+    , _aId = Nothing
+    , _aSSLRequired = Nothing
+    , _aComments = Nothing
+    , _aSubAccountId = Nothing
+    , _aType = Nothing
+    , _aRemarketingListExpression = Nothing
+    , _aDynamicClickTracker = Nothing
+    , _aCompatibility = Nothing
+    , _aArchived = Nothing
+    , _aDefaultClickThroughEventTagProperties = Nothing
+    , _aPlacementAssignments = Nothing
+    }
+
+-- | Creative group assignments for this ad. Applicable when type is
+-- AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number
+-- is allowed for a maximum of two assignments.
+aCreativeGroupAssignments :: Lens' Ad [CreativeGroupAssignment]
+aCreativeGroupAssignments
+  = lens _aCreativeGroupAssignments
+      (\ s a -> s{_aCreativeGroupAssignments = a})
+      . _Default
+      . _Coerce
+
+-- | Geographical targeting information for this ad.Applicable when type is
+-- AD_SERVING_STANDARD_AD.
+aGeoTargeting :: Lens' Ad (Maybe GeoTargeting)
+aGeoTargeting
+  = lens _aGeoTargeting
+      (\ s a -> s{_aGeoTargeting = a})
+
+-- | Creative rotation for this ad. Applicable when type is
+-- AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING.
+-- When type is AD_SERVING_DEFAULT_AD, this field should have exactly one
+-- creativeAssignment.
+aCreativeRotation :: Lens' Ad (Maybe CreativeRotation)
+aCreativeRotation
+  = lens _aCreativeRotation
+      (\ s a -> s{_aCreativeRotation = a})
+
+-- | Technology platform targeting information for this ad. Applicable when
+-- type is AD_SERVING_STANDARD_AD.
+aTechnologyTargeting :: Lens' Ad (Maybe TechnologyTargeting)
+aTechnologyTargeting
+  = lens _aTechnologyTargeting
+      (\ s a -> s{_aTechnologyTargeting = a})
+
+-- | Audience segment ID that is being targeted for this ad. Applicable when
+-- type is AD_SERVING_STANDARD_AD.
+aAudienceSegmentId :: Lens' Ad (Maybe Int64)
+aAudienceSegmentId
+  = lens _aAudienceSegmentId
+      (\ s a -> s{_aAudienceSegmentId = a})
+      . mapping _Coerce
+
+-- | Time and day targeting information for this ad. Applicable when type is
+-- AD_SERVING_STANDARD_AD.
+aDayPartTargeting :: Lens' Ad (Maybe DayPartTargeting)
+aDayPartTargeting
+  = lens _aDayPartTargeting
+      (\ s a -> s{_aDayPartTargeting = a})
+
+-- | Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+aSize :: Lens' Ad (Maybe Size)
+aSize = lens _aSize (\ s a -> s{_aSize = a})
+
+-- | Date and time that this ad should start serving. If creating an ad, this
+-- field must be a time in the future. This is a required field on
+-- insertion.
+aStartTime :: Lens' Ad (Maybe UTCTime)
+aStartTime
+  = lens _aStartTime (\ s a -> s{_aStartTime = a}) .
+      mapping _DateTime
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#ad\".
+aKind :: Lens' Ad Text
+aKind = lens _aKind (\ s a -> s{_aKind = a})
+
+-- | Click-through URL suffix properties for this ad. Applies to the URL in
+-- the ad or (if overriding ad properties) the URL in the creative.
+aClickThroughURLSuffixProperties :: Lens' Ad (Maybe ClickThroughURLSuffixProperties)
+aClickThroughURLSuffixProperties
+  = lens _aClickThroughURLSuffixProperties
+      (\ s a -> s{_aClickThroughURLSuffixProperties = a})
+
+-- | Dimension value for the ID of the campaign. This is a read-only,
+-- auto-generated field.
+aCampaignIdDimensionValue :: Lens' Ad (Maybe DimensionValue)
+aCampaignIdDimensionValue
+  = lens _aCampaignIdDimensionValue
+      (\ s a -> s{_aCampaignIdDimensionValue = a})
+
+-- | Advertiser ID of this ad. This is a required field on insertion.
+aAdvertiserId :: Lens' Ad (Maybe Int64)
+aAdvertiserId
+  = lens _aAdvertiserId
+      (\ s a -> s{_aAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+aAdvertiserIdDimensionValue :: Lens' Ad (Maybe DimensionValue)
+aAdvertiserIdDimensionValue
+  = lens _aAdvertiserIdDimensionValue
+      (\ s a -> s{_aAdvertiserIdDimensionValue = a})
+
+-- | Whether this ad is ssl compliant. This is a read-only field that is
+-- auto-generated when the ad is inserted or updated.
+aSSLCompliant :: Lens' Ad (Maybe Bool)
+aSSLCompliant
+  = lens _aSSLCompliant
+      (\ s a -> s{_aSSLCompliant = a})
+
+-- | Campaign ID of this ad. This is a required field on insertion.
+aCampaignId :: Lens' Ad (Maybe Int64)
+aCampaignId
+  = lens _aCampaignId (\ s a -> s{_aCampaignId = a}) .
+      mapping _Coerce
+
+-- | Dimension value for the ID of this ad. This is a read-only,
+-- auto-generated field.
+aIdDimensionValue :: Lens' Ad (Maybe DimensionValue)
+aIdDimensionValue
+  = lens _aIdDimensionValue
+      (\ s a -> s{_aIdDimensionValue = a})
+
+-- | Click-through URL for this ad. This is a required field on insertion.
+-- Applicable when type is AD_SERVING_CLICK_TRACKER.
+aClickThroughURL :: Lens' Ad (Maybe ClickThroughURL)
+aClickThroughURL
+  = lens _aClickThroughURL
+      (\ s a -> s{_aClickThroughURL = a})
+
+-- | Delivery schedule information for this ad. Applicable when type is
+-- AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with
+-- subfields priority and impressionRatio are required on insertion when
+-- type is AD_SERVING_STANDARD_AD.
+aDeliverySchedule :: Lens' Ad (Maybe DeliverySchedule)
+aDeliverySchedule
+  = lens _aDeliverySchedule
+      (\ s a -> s{_aDeliverySchedule = a})
+
+-- | Event tag overrides for this ad.
+aEventTagOverrides :: Lens' Ad [EventTagOverride]
+aEventTagOverrides
+  = lens _aEventTagOverrides
+      (\ s a -> s{_aEventTagOverrides = a})
+      . _Default
+      . _Coerce
+
+-- | Whether this ad is active.
+aActive :: Lens' Ad (Maybe Bool)
+aActive = lens _aActive (\ s a -> s{_aActive = a})
+
+-- | Account ID of this ad. This is a read-only field that can be left blank.
+aAccountId :: Lens' Ad (Maybe Int64)
+aAccountId
+  = lens _aAccountId (\ s a -> s{_aAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this ad. This is a required field and must be less than 256
+-- characters long.
+aName :: Lens' Ad (Maybe Text)
+aName = lens _aName (\ s a -> s{_aName = a})
+
+-- | Key-value targeting information for this ad. Applicable when type is
+-- AD_SERVING_STANDARD_AD.
+aKeyValueTargetingExpression :: Lens' Ad (Maybe KeyValueTargetingExpression)
+aKeyValueTargetingExpression
+  = lens _aKeyValueTargetingExpression
+      (\ s a -> s{_aKeyValueTargetingExpression = a})
+
+-- | Date and time that this ad should stop serving. Must be later than the
+-- start time. This is a required field on insertion.
+aEndTime :: Lens' Ad (Maybe UTCTime)
+aEndTime
+  = lens _aEndTime (\ s a -> s{_aEndTime = a}) .
+      mapping _DateTime
+
+-- | Information about the creation of this ad.This is a read-only field.
+aCreateInfo :: Lens' Ad (Maybe LastModifiedInfo)
+aCreateInfo
+  = lens _aCreateInfo (\ s a -> s{_aCreateInfo = a})
+
+-- | Information about the most recent modification of this ad. This is a
+-- read-only field.
+aLastModifiedInfo :: Lens' Ad (Maybe LastModifiedInfo)
+aLastModifiedInfo
+  = lens _aLastModifiedInfo
+      (\ s a -> s{_aLastModifiedInfo = a})
+
+-- | ID of this ad. This is a read-only, auto-generated field.
+aId :: Lens' Ad (Maybe Int64)
+aId
+  = lens _aId (\ s a -> s{_aId = a}) . mapping _Coerce
+
+-- | Whether this ad requires ssl. This is a read-only field that is
+-- auto-generated when the ad is inserted or updated.
+aSSLRequired :: Lens' Ad (Maybe Bool)
+aSSLRequired
+  = lens _aSSLRequired (\ s a -> s{_aSSLRequired = a})
+
+-- | Comments for this ad.
+aComments :: Lens' Ad (Maybe Text)
+aComments
+  = lens _aComments (\ s a -> s{_aComments = a})
+
+-- | Subaccount ID of this ad. This is a read-only field that can be left
+-- blank.
+aSubAccountId :: Lens' Ad (Maybe Int64)
+aSubAccountId
+  = lens _aSubAccountId
+      (\ s a -> s{_aSubAccountId = a})
+      . mapping _Coerce
+
+-- | Type of ad. This is a required field on insertion. Note that default ads
+-- (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative
+-- resource).
+aType :: Lens' Ad (Maybe AdType)
+aType = lens _aType (\ s a -> s{_aType = a})
+
+-- | Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list
+-- targeting expression for this ad.
+aRemarketingListExpression :: Lens' Ad (Maybe ListTargetingExpression)
+aRemarketingListExpression
+  = lens _aRemarketingListExpression
+      (\ s a -> s{_aRemarketingListExpression = a})
+
+-- | Whether this ad is a dynamic click tracker. Applicable when type is
+-- AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is
+-- read-only after insert.
+aDynamicClickTracker :: Lens' Ad (Maybe Bool)
+aDynamicClickTracker
+  = lens _aDynamicClickTracker
+      (\ s a -> s{_aDynamicClickTracker = a})
+
+-- | Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+-- WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on
+-- mobile devices for regular or interstitial ads, respectively. APP and
+-- APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO
+-- refers to rendering an in-stream video ads developed with the VAST
+-- standard.
+aCompatibility :: Lens' Ad (Maybe AdCompatibility)
+aCompatibility
+  = lens _aCompatibility
+      (\ s a -> s{_aCompatibility = a})
+
+-- | Whether this ad is archived.
+aArchived :: Lens' Ad (Maybe Bool)
+aArchived
+  = lens _aArchived (\ s a -> s{_aArchived = a})
+
+-- | Default click-through event tag properties for this ad.
+aDefaultClickThroughEventTagProperties :: Lens' Ad (Maybe DefaultClickThroughEventTagProperties)
+aDefaultClickThroughEventTagProperties
+  = lens _aDefaultClickThroughEventTagProperties
+      (\ s a ->
+         s{_aDefaultClickThroughEventTagProperties = a})
+
+-- | Placement assignments for this ad.
+aPlacementAssignments :: Lens' Ad [PlacementAssignment]
+aPlacementAssignments
+  = lens _aPlacementAssignments
+      (\ s a -> s{_aPlacementAssignments = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Ad where
+        parseJSON
+          = withObject "Ad"
+              (\ o ->
+                 Ad <$>
+                   (o .:? "creativeGroupAssignments" .!= mempty) <*>
+                     (o .:? "geoTargeting")
+                     <*> (o .:? "creativeRotation")
+                     <*> (o .:? "technologyTargeting")
+                     <*> (o .:? "audienceSegmentId")
+                     <*> (o .:? "dayPartTargeting")
+                     <*> (o .:? "size")
+                     <*> (o .:? "startTime")
+                     <*> (o .:? "kind" .!= "dfareporting#ad")
+                     <*> (o .:? "clickThroughUrlSuffixProperties")
+                     <*> (o .:? "campaignIdDimensionValue")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "campaignId")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "clickThroughUrl")
+                     <*> (o .:? "deliverySchedule")
+                     <*> (o .:? "eventTagOverrides" .!= mempty)
+                     <*> (o .:? "active")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "keyValueTargetingExpression")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "createInfo")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "sslRequired")
+                     <*> (o .:? "comments")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "remarketingListExpression")
+                     <*> (o .:? "dynamicClickTracker")
+                     <*> (o .:? "compatibility")
+                     <*> (o .:? "archived")
+                     <*> (o .:? "defaultClickThroughEventTagProperties")
+                     <*> (o .:? "placementAssignments" .!= mempty))
+
+instance ToJSON Ad where
+        toJSON Ad{..}
+          = object
+              (catMaybes
+                 [("creativeGroupAssignments" .=) <$>
+                    _aCreativeGroupAssignments,
+                  ("geoTargeting" .=) <$> _aGeoTargeting,
+                  ("creativeRotation" .=) <$> _aCreativeRotation,
+                  ("technologyTargeting" .=) <$> _aTechnologyTargeting,
+                  ("audienceSegmentId" .=) <$> _aAudienceSegmentId,
+                  ("dayPartTargeting" .=) <$> _aDayPartTargeting,
+                  ("size" .=) <$> _aSize,
+                  ("startTime" .=) <$> _aStartTime,
+                  Just ("kind" .= _aKind),
+                  ("clickThroughUrlSuffixProperties" .=) <$>
+                    _aClickThroughURLSuffixProperties,
+                  ("campaignIdDimensionValue" .=) <$>
+                    _aCampaignIdDimensionValue,
+                  ("advertiserId" .=) <$> _aAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _aAdvertiserIdDimensionValue,
+                  ("sslCompliant" .=) <$> _aSSLCompliant,
+                  ("campaignId" .=) <$> _aCampaignId,
+                  ("idDimensionValue" .=) <$> _aIdDimensionValue,
+                  ("clickThroughUrl" .=) <$> _aClickThroughURL,
+                  ("deliverySchedule" .=) <$> _aDeliverySchedule,
+                  ("eventTagOverrides" .=) <$> _aEventTagOverrides,
+                  ("active" .=) <$> _aActive,
+                  ("accountId" .=) <$> _aAccountId,
+                  ("name" .=) <$> _aName,
+                  ("keyValueTargetingExpression" .=) <$>
+                    _aKeyValueTargetingExpression,
+                  ("endTime" .=) <$> _aEndTime,
+                  ("createInfo" .=) <$> _aCreateInfo,
+                  ("lastModifiedInfo" .=) <$> _aLastModifiedInfo,
+                  ("id" .=) <$> _aId,
+                  ("sslRequired" .=) <$> _aSSLRequired,
+                  ("comments" .=) <$> _aComments,
+                  ("subaccountId" .=) <$> _aSubAccountId,
+                  ("type" .=) <$> _aType,
+                  ("remarketingListExpression" .=) <$>
+                    _aRemarketingListExpression,
+                  ("dynamicClickTracker" .=) <$> _aDynamicClickTracker,
+                  ("compatibility" .=) <$> _aCompatibility,
+                  ("archived" .=) <$> _aArchived,
+                  ("defaultClickThroughEventTagProperties" .=) <$>
+                    _aDefaultClickThroughEventTagProperties,
+                  ("placementAssignments" .=) <$>
+                    _aPlacementAssignments])
+
+-- | Contains properties of a DoubleClick Planning project.
+--
+-- /See:/ 'project' smart constructor.
+data Project = Project
+    { _pTargetClicks      :: !(Maybe (Textual Int64))
+    , _pClientBillingCode :: !(Maybe Text)
+    , _pTargetCpmNanos    :: !(Maybe (Textual Int64))
+    , _pTargetConversions :: !(Maybe (Textual Int64))
+    , _pBudget            :: !(Maybe (Textual Int64))
+    , _pKind              :: !Text
+    , _pAdvertiserId      :: !(Maybe (Textual Int64))
+    , _pEndDate           :: !(Maybe Date')
+    , _pOverview          :: !(Maybe Text)
+    , _pTargetImpressions :: !(Maybe (Textual Int64))
+    , _pStartDate         :: !(Maybe Date')
+    , _pTargetCpcNanos    :: !(Maybe (Textual Int64))
+    , _pAccountId         :: !(Maybe (Textual Int64))
+    , _pName              :: !(Maybe Text)
+    , _pLastModifiedInfo  :: !(Maybe LastModifiedInfo)
+    , _pId                :: !(Maybe (Textual Int64))
+    , _pAudienceAgeGroup  :: !(Maybe ProjectAudienceAgeGroup)
+    , _pSubAccountId      :: !(Maybe (Textual Int64))
+    , _pAudienceGender    :: !(Maybe ProjectAudienceGender)
+    , _pClientName        :: !(Maybe Text)
+    , _pTargetCpaNanos    :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Project' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pTargetClicks'
+--
+-- * 'pClientBillingCode'
+--
+-- * 'pTargetCpmNanos'
+--
+-- * 'pTargetConversions'
+--
+-- * 'pBudget'
+--
+-- * 'pKind'
+--
+-- * 'pAdvertiserId'
+--
+-- * 'pEndDate'
+--
+-- * 'pOverview'
+--
+-- * 'pTargetImpressions'
+--
+-- * 'pStartDate'
+--
+-- * 'pTargetCpcNanos'
+--
+-- * 'pAccountId'
+--
+-- * 'pName'
+--
+-- * 'pLastModifiedInfo'
+--
+-- * 'pId'
+--
+-- * 'pAudienceAgeGroup'
+--
+-- * 'pSubAccountId'
+--
+-- * 'pAudienceGender'
+--
+-- * 'pClientName'
+--
+-- * 'pTargetCpaNanos'
+project
+    :: Project
+project =
+    Project
+    { _pTargetClicks = Nothing
+    , _pClientBillingCode = Nothing
+    , _pTargetCpmNanos = Nothing
+    , _pTargetConversions = Nothing
+    , _pBudget = Nothing
+    , _pKind = "dfareporting#project"
+    , _pAdvertiserId = Nothing
+    , _pEndDate = Nothing
+    , _pOverview = Nothing
+    , _pTargetImpressions = Nothing
+    , _pStartDate = Nothing
+    , _pTargetCpcNanos = Nothing
+    , _pAccountId = Nothing
+    , _pName = Nothing
+    , _pLastModifiedInfo = Nothing
+    , _pId = Nothing
+    , _pAudienceAgeGroup = Nothing
+    , _pSubAccountId = Nothing
+    , _pAudienceGender = Nothing
+    , _pClientName = Nothing
+    , _pTargetCpaNanos = Nothing
+    }
+
+-- | Number of clicks that the advertiser is targeting.
+pTargetClicks :: Lens' Project (Maybe Int64)
+pTargetClicks
+  = lens _pTargetClicks
+      (\ s a -> s{_pTargetClicks = a})
+      . mapping _Coerce
+
+-- | Client billing code of this project.
+pClientBillingCode :: Lens' Project (Maybe Text)
+pClientBillingCode
+  = lens _pClientBillingCode
+      (\ s a -> s{_pClientBillingCode = a})
+
+-- | CPM that the advertiser is targeting.
+pTargetCpmNanos :: Lens' Project (Maybe Int64)
+pTargetCpmNanos
+  = lens _pTargetCpmNanos
+      (\ s a -> s{_pTargetCpmNanos = a})
+      . mapping _Coerce
+
+-- | Number of conversions that the advertiser is targeting.
+pTargetConversions :: Lens' Project (Maybe Int64)
+pTargetConversions
+  = lens _pTargetConversions
+      (\ s a -> s{_pTargetConversions = a})
+      . mapping _Coerce
+
+-- | Budget of this project in the currency specified by the current account.
+-- The value stored in this field represents only the non-fractional
+-- amount. For example, for USD, the smallest value that can be represented
+-- by this field is 1 US dollar.
+pBudget :: Lens' Project (Maybe Int64)
+pBudget
+  = lens _pBudget (\ s a -> s{_pBudget = a}) .
+      mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#project\".
+pKind :: Lens' Project Text
+pKind = lens _pKind (\ s a -> s{_pKind = a})
+
+-- | Advertiser ID of this project.
+pAdvertiserId :: Lens' Project (Maybe Int64)
+pAdvertiserId
+  = lens _pAdvertiserId
+      (\ s a -> s{_pAdvertiserId = a})
+      . mapping _Coerce
+
+-- | End date of the project.
+pEndDate :: Lens' Project (Maybe Day)
+pEndDate
+  = lens _pEndDate (\ s a -> s{_pEndDate = a}) .
+      mapping _Date
+
+-- | Overview of this project.
+pOverview :: Lens' Project (Maybe Text)
+pOverview
+  = lens _pOverview (\ s a -> s{_pOverview = a})
+
+-- | Number of impressions that the advertiser is targeting.
+pTargetImpressions :: Lens' Project (Maybe Int64)
+pTargetImpressions
+  = lens _pTargetImpressions
+      (\ s a -> s{_pTargetImpressions = a})
+      . mapping _Coerce
+
+-- | Start date of the project.
+pStartDate :: Lens' Project (Maybe Day)
+pStartDate
+  = lens _pStartDate (\ s a -> s{_pStartDate = a}) .
+      mapping _Date
+
+-- | CPC that the advertiser is targeting.
+pTargetCpcNanos :: Lens' Project (Maybe Int64)
+pTargetCpcNanos
+  = lens _pTargetCpcNanos
+      (\ s a -> s{_pTargetCpcNanos = a})
+      . mapping _Coerce
+
+-- | Account ID of this project.
+pAccountId :: Lens' Project (Maybe Int64)
+pAccountId
+  = lens _pAccountId (\ s a -> s{_pAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this project.
+pName :: Lens' Project (Maybe Text)
+pName = lens _pName (\ s a -> s{_pName = a})
+
+-- | Information about the most recent modification of this project.
+pLastModifiedInfo :: Lens' Project (Maybe LastModifiedInfo)
+pLastModifiedInfo
+  = lens _pLastModifiedInfo
+      (\ s a -> s{_pLastModifiedInfo = a})
+
+-- | ID of this project. This is a read-only, auto-generated field.
+pId :: Lens' Project (Maybe Int64)
+pId
+  = lens _pId (\ s a -> s{_pId = a}) . mapping _Coerce
+
+-- | Audience age group of this project.
+pAudienceAgeGroup :: Lens' Project (Maybe ProjectAudienceAgeGroup)
+pAudienceAgeGroup
+  = lens _pAudienceAgeGroup
+      (\ s a -> s{_pAudienceAgeGroup = a})
+
+-- | Subaccount ID of this project.
+pSubAccountId :: Lens' Project (Maybe Int64)
+pSubAccountId
+  = lens _pSubAccountId
+      (\ s a -> s{_pSubAccountId = a})
+      . mapping _Coerce
+
+-- | Audience gender of this project.
+pAudienceGender :: Lens' Project (Maybe ProjectAudienceGender)
+pAudienceGender
+  = lens _pAudienceGender
+      (\ s a -> s{_pAudienceGender = a})
+
+-- | Name of the project client.
+pClientName :: Lens' Project (Maybe Text)
+pClientName
+  = lens _pClientName (\ s a -> s{_pClientName = a})
+
+-- | CPA that the advertiser is targeting.
+pTargetCpaNanos :: Lens' Project (Maybe Int64)
+pTargetCpaNanos
+  = lens _pTargetCpaNanos
+      (\ s a -> s{_pTargetCpaNanos = a})
+      . mapping _Coerce
+
+instance FromJSON Project where
+        parseJSON
+          = withObject "Project"
+              (\ o ->
+                 Project <$>
+                   (o .:? "targetClicks") <*>
+                     (o .:? "clientBillingCode")
+                     <*> (o .:? "targetCpmNanos")
+                     <*> (o .:? "targetConversions")
+                     <*> (o .:? "budget")
+                     <*> (o .:? "kind" .!= "dfareporting#project")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "endDate")
+                     <*> (o .:? "overview")
+                     <*> (o .:? "targetImpressions")
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "targetCpcNanos")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "audienceAgeGroup")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "audienceGender")
+                     <*> (o .:? "clientName")
+                     <*> (o .:? "targetCpaNanos"))
+
+instance ToJSON Project where
+        toJSON Project{..}
+          = object
+              (catMaybes
+                 [("targetClicks" .=) <$> _pTargetClicks,
+                  ("clientBillingCode" .=) <$> _pClientBillingCode,
+                  ("targetCpmNanos" .=) <$> _pTargetCpmNanos,
+                  ("targetConversions" .=) <$> _pTargetConversions,
+                  ("budget" .=) <$> _pBudget, Just ("kind" .= _pKind),
+                  ("advertiserId" .=) <$> _pAdvertiserId,
+                  ("endDate" .=) <$> _pEndDate,
+                  ("overview" .=) <$> _pOverview,
+                  ("targetImpressions" .=) <$> _pTargetImpressions,
+                  ("startDate" .=) <$> _pStartDate,
+                  ("targetCpcNanos" .=) <$> _pTargetCpcNanos,
+                  ("accountId" .=) <$> _pAccountId,
+                  ("name" .=) <$> _pName,
+                  ("lastModifiedInfo" .=) <$> _pLastModifiedInfo,
+                  ("id" .=) <$> _pId,
+                  ("audienceAgeGroup" .=) <$> _pAudienceAgeGroup,
+                  ("subaccountId" .=) <$> _pSubAccountId,
+                  ("audienceGender" .=) <$> _pAudienceGender,
+                  ("clientName" .=) <$> _pClientName,
+                  ("targetCpaNanos" .=) <$> _pTargetCpaNanos])
+
+-- | The report criteria for a report of type \"FLOODLIGHT\".
+--
+-- /See:/ 'reportFloodlightCriteria' smart constructor.
+data ReportFloodlightCriteria = ReportFloodlightCriteria
+    { _rfcReportProperties      :: !(Maybe ReportFloodlightCriteriaReportProperties)
+    , _rfcMetricNames           :: !(Maybe [Text])
+    , _rfcCustomRichMediaEvents :: !(Maybe [DimensionValue])
+    , _rfcDimensionFilters      :: !(Maybe [DimensionValue])
+    , _rfcDateRange             :: !(Maybe DateRange)
+    , _rfcFloodlightConfigId    :: !(Maybe DimensionValue)
+    , _rfcDimensions            :: !(Maybe [SortedDimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportFloodlightCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rfcReportProperties'
+--
+-- * 'rfcMetricNames'
+--
+-- * 'rfcCustomRichMediaEvents'
+--
+-- * 'rfcDimensionFilters'
+--
+-- * 'rfcDateRange'
+--
+-- * 'rfcFloodlightConfigId'
+--
+-- * 'rfcDimensions'
+reportFloodlightCriteria
+    :: ReportFloodlightCriteria
+reportFloodlightCriteria =
+    ReportFloodlightCriteria
+    { _rfcReportProperties = Nothing
+    , _rfcMetricNames = Nothing
+    , _rfcCustomRichMediaEvents = Nothing
+    , _rfcDimensionFilters = Nothing
+    , _rfcDateRange = Nothing
+    , _rfcFloodlightConfigId = Nothing
+    , _rfcDimensions = Nothing
+    }
+
+-- | The properties of the report.
+rfcReportProperties :: Lens' ReportFloodlightCriteria (Maybe ReportFloodlightCriteriaReportProperties)
+rfcReportProperties
+  = lens _rfcReportProperties
+      (\ s a -> s{_rfcReportProperties = a})
+
+-- | The list of names of metrics the report should include.
+rfcMetricNames :: Lens' ReportFloodlightCriteria [Text]
+rfcMetricNames
+  = lens _rfcMetricNames
+      (\ s a -> s{_rfcMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | The list of custom rich media events to include.
+rfcCustomRichMediaEvents :: Lens' ReportFloodlightCriteria [DimensionValue]
+rfcCustomRichMediaEvents
+  = lens _rfcCustomRichMediaEvents
+      (\ s a -> s{_rfcCustomRichMediaEvents = a})
+      . _Default
+      . _Coerce
+
+-- | The list of filters on which dimensions are filtered. Filters for
+-- different dimensions are ANDed, filters for the same dimension are
+-- grouped together and ORed.
+rfcDimensionFilters :: Lens' ReportFloodlightCriteria [DimensionValue]
+rfcDimensionFilters
+  = lens _rfcDimensionFilters
+      (\ s a -> s{_rfcDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | The date range this report should be run for.
+rfcDateRange :: Lens' ReportFloodlightCriteria (Maybe DateRange)
+rfcDateRange
+  = lens _rfcDateRange (\ s a -> s{_rfcDateRange = a})
+
+-- | The floodlight ID for which to show data in this report. All advertisers
+-- associated with that ID will automatically be added. The dimension of
+-- the value needs to be \'dfa:floodlightConfigId\'.
+rfcFloodlightConfigId :: Lens' ReportFloodlightCriteria (Maybe DimensionValue)
+rfcFloodlightConfigId
+  = lens _rfcFloodlightConfigId
+      (\ s a -> s{_rfcFloodlightConfigId = a})
+
+-- | The list of dimensions the report should include.
+rfcDimensions :: Lens' ReportFloodlightCriteria [SortedDimension]
+rfcDimensions
+  = lens _rfcDimensions
+      (\ s a -> s{_rfcDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportFloodlightCriteria where
+        parseJSON
+          = withObject "ReportFloodlightCriteria"
+              (\ o ->
+                 ReportFloodlightCriteria <$>
+                   (o .:? "reportProperties") <*>
+                     (o .:? "metricNames" .!= mempty)
+                     <*> (o .:? "customRichMediaEvents" .!= mempty)
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "floodlightConfigId")
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON ReportFloodlightCriteria where
+        toJSON ReportFloodlightCriteria{..}
+          = object
+              (catMaybes
+                 [("reportProperties" .=) <$> _rfcReportProperties,
+                  ("metricNames" .=) <$> _rfcMetricNames,
+                  ("customRichMediaEvents" .=) <$>
+                    _rfcCustomRichMediaEvents,
+                  ("dimensionFilters" .=) <$> _rfcDimensionFilters,
+                  ("dateRange" .=) <$> _rfcDateRange,
+                  ("floodlightConfigId" .=) <$> _rfcFloodlightConfigId,
+                  ("dimensions" .=) <$> _rfcDimensions])
+
+-- | Represents the dimensions of ads, placements, creatives, or creative
+-- assets.
+--
+-- /See:/ 'size' smart constructor.
+data Size = Size
+    { _sHeight :: !(Maybe (Textual Int32))
+    , _sKind   :: !Text
+    , _sWidth  :: !(Maybe (Textual Int32))
+    , _sIab    :: !(Maybe Bool)
+    , _sId     :: !(Maybe (Textual Int64))
+    } 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'
+--
+-- * 'sKind'
+--
+-- * 'sWidth'
+--
+-- * 'sIab'
+--
+-- * 'sId'
+size
+    :: Size
+size =
+    Size
+    { _sHeight = Nothing
+    , _sKind = "dfareporting#size"
+    , _sWidth = Nothing
+    , _sIab = Nothing
+    , _sId = Nothing
+    }
+
+-- | Height of this size.
+sHeight :: Lens' Size (Maybe Int32)
+sHeight
+  = lens _sHeight (\ s a -> s{_sHeight = a}) .
+      mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#size\".
+sKind :: Lens' Size Text
+sKind = lens _sKind (\ s a -> s{_sKind = a})
+
+-- | Width of this size.
+sWidth :: Lens' Size (Maybe Int32)
+sWidth
+  = lens _sWidth (\ s a -> s{_sWidth = a}) .
+      mapping _Coerce
+
+-- | IAB standard size. This is a read-only, auto-generated field.
+sIab :: Lens' Size (Maybe Bool)
+sIab = lens _sIab (\ s a -> s{_sIab = a})
+
+-- | ID of this size. This is a read-only, auto-generated field.
+sId :: Lens' Size (Maybe Int64)
+sId
+  = lens _sId (\ s a -> s{_sId = a}) . mapping _Coerce
+
+instance FromJSON Size where
+        parseJSON
+          = withObject "Size"
+              (\ o ->
+                 Size <$>
+                   (o .:? "height") <*>
+                     (o .:? "kind" .!= "dfareporting#size")
+                     <*> (o .:? "width")
+                     <*> (o .:? "iab")
+                     <*> (o .:? "id"))
+
+instance ToJSON Size where
+        toJSON Size{..}
+          = object
+              (catMaybes
+                 [("height" .=) <$> _sHeight, Just ("kind" .= _sKind),
+                  ("width" .=) <$> _sWidth, ("iab" .=) <$> _sIab,
+                  ("id" .=) <$> _sId])
+
+-- | Object Filter.
+--
+-- /See:/ 'objectFilter' smart constructor.
+data ObjectFilter = ObjectFilter
+    { _ofStatus    :: !(Maybe ObjectFilterStatus)
+    , _ofKind      :: !Text
+    , _ofObjectIds :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ObjectFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ofStatus'
+--
+-- * 'ofKind'
+--
+-- * 'ofObjectIds'
+objectFilter
+    :: ObjectFilter
+objectFilter =
+    ObjectFilter
+    { _ofStatus = Nothing
+    , _ofKind = "dfareporting#objectFilter"
+    , _ofObjectIds = Nothing
+    }
+
+-- | Status of the filter. NONE means the user has access to none of the
+-- objects. ALL means the user has access to all objects. ASSIGNED means
+-- the user has access to the objects with IDs in the objectIds list.
+ofStatus :: Lens' ObjectFilter (Maybe ObjectFilterStatus)
+ofStatus = lens _ofStatus (\ s a -> s{_ofStatus = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#objectFilter\".
+ofKind :: Lens' ObjectFilter Text
+ofKind = lens _ofKind (\ s a -> s{_ofKind = a})
+
+-- | Applicable when status is ASSIGNED. The user has access to objects with
+-- these object IDs.
+ofObjectIds :: Lens' ObjectFilter [Int64]
+ofObjectIds
+  = lens _ofObjectIds (\ s a -> s{_ofObjectIds = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ObjectFilter where
+        parseJSON
+          = withObject "ObjectFilter"
+              (\ o ->
+                 ObjectFilter <$>
+                   (o .:? "status") <*>
+                     (o .:? "kind" .!= "dfareporting#objectFilter")
+                     <*> (o .:? "objectIds" .!= mempty))
+
+instance ToJSON ObjectFilter where
+        toJSON ObjectFilter{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _ofStatus,
+                  Just ("kind" .= _ofKind),
+                  ("objectIds" .=) <$> _ofObjectIds])
+
+-- | Reporting Configuration
+--
+-- /See:/ 'reportsConfiguration' smart constructor.
+data ReportsConfiguration = ReportsConfiguration
+    { _rcExposureToConversionEnabled :: !(Maybe Bool)
+    , _rcReportGenerationTimeZoneId  :: !(Maybe (Textual Int64))
+    , _rcLookbackConfiguration       :: !(Maybe LookbackConfiguration)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcExposureToConversionEnabled'
+--
+-- * 'rcReportGenerationTimeZoneId'
+--
+-- * 'rcLookbackConfiguration'
+reportsConfiguration
+    :: ReportsConfiguration
+reportsConfiguration =
+    ReportsConfiguration
+    { _rcExposureToConversionEnabled = Nothing
+    , _rcReportGenerationTimeZoneId = Nothing
+    , _rcLookbackConfiguration = Nothing
+    }
+
+-- | Whether the exposure to conversion report is enabled. This report shows
+-- detailed pathway information on up to 10 of the most recent ad exposures
+-- seen by a user before converting.
+rcExposureToConversionEnabled :: Lens' ReportsConfiguration (Maybe Bool)
+rcExposureToConversionEnabled
+  = lens _rcExposureToConversionEnabled
+      (\ s a -> s{_rcExposureToConversionEnabled = a})
+
+-- | Report generation time zone ID of this account. This is a required field
+-- that can only be changed by a superuser. Acceptable values are: - \"1\"
+-- for \"America\/New_York\" - \"2\" for \"Europe\/London\" - \"3\" for
+-- \"Europe\/Paris\" - \"4\" for \"Africa\/Johannesburg\" - \"5\" for
+-- \"Asia\/Jerusalem\" - \"6\" for \"Asia\/Shanghai\" - \"7\" for
+-- \"Asia\/Hong_Kong\" - \"8\" for \"Asia\/Tokyo\" - \"9\" for
+-- \"Australia\/Sydney\" - \"10\" for \"Asia\/Dubai\" - \"11\" for
+-- \"America\/Los_Angeles\" - \"12\" for \"Pacific\/Auckland\" - \"13\" for
+-- \"America\/Sao_Paulo\"
+rcReportGenerationTimeZoneId :: Lens' ReportsConfiguration (Maybe Int64)
+rcReportGenerationTimeZoneId
+  = lens _rcReportGenerationTimeZoneId
+      (\ s a -> s{_rcReportGenerationTimeZoneId = a})
+      . mapping _Coerce
+
+-- | Default lookback windows for new advertisers in this account.
+rcLookbackConfiguration :: Lens' ReportsConfiguration (Maybe LookbackConfiguration)
+rcLookbackConfiguration
+  = lens _rcLookbackConfiguration
+      (\ s a -> s{_rcLookbackConfiguration = a})
+
+instance FromJSON ReportsConfiguration where
+        parseJSON
+          = withObject "ReportsConfiguration"
+              (\ o ->
+                 ReportsConfiguration <$>
+                   (o .:? "exposureToConversionEnabled") <*>
+                     (o .:? "reportGenerationTimeZoneId")
+                     <*> (o .:? "lookbackConfiguration"))
+
+instance ToJSON ReportsConfiguration where
+        toJSON ReportsConfiguration{..}
+          = object
+              (catMaybes
+                 [("exposureToConversionEnabled" .=) <$>
+                    _rcExposureToConversionEnabled,
+                  ("reportGenerationTimeZoneId" .=) <$>
+                    _rcReportGenerationTimeZoneId,
+                  ("lookbackConfiguration" .=) <$>
+                    _rcLookbackConfiguration])
+
+-- | Pricing Schedule
+--
+-- /See:/ 'pricingSchedule' smart constructor.
+data PricingSchedule = PricingSchedule
+    { _psTestingStartDate      :: !(Maybe Date')
+    , _psFloodlightActivityId  :: !(Maybe (Textual Int64))
+    , _psEndDate               :: !(Maybe Date')
+    , _psDisregardOverdelivery :: !(Maybe Bool)
+    , _psStartDate             :: !(Maybe Date')
+    , _psCapCostOption         :: !(Maybe PricingScheduleCapCostOption)
+    , _psPricingType           :: !(Maybe PricingSchedulePricingType)
+    , _psPricingPeriods        :: !(Maybe [PricingSchedulePricingPeriod])
+    , _psFlighted              :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PricingSchedule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psTestingStartDate'
+--
+-- * 'psFloodlightActivityId'
+--
+-- * 'psEndDate'
+--
+-- * 'psDisregardOverdelivery'
+--
+-- * 'psStartDate'
+--
+-- * 'psCapCostOption'
+--
+-- * 'psPricingType'
+--
+-- * 'psPricingPeriods'
+--
+-- * 'psFlighted'
+pricingSchedule
+    :: PricingSchedule
+pricingSchedule =
+    PricingSchedule
+    { _psTestingStartDate = Nothing
+    , _psFloodlightActivityId = Nothing
+    , _psEndDate = Nothing
+    , _psDisregardOverdelivery = Nothing
+    , _psStartDate = Nothing
+    , _psCapCostOption = Nothing
+    , _psPricingType = Nothing
+    , _psPricingPeriods = Nothing
+    , _psFlighted = Nothing
+    }
+
+-- | Testing start date of this placement. The hours, minutes, and seconds of
+-- the start date should not be set, as doing so will result in an error.
+psTestingStartDate :: Lens' PricingSchedule (Maybe Day)
+psTestingStartDate
+  = lens _psTestingStartDate
+      (\ s a -> s{_psTestingStartDate = a})
+      . mapping _Date
+
+-- | Floodlight activity ID associated with this placement. This field should
+-- be set when placement pricing type is set to PRICING_TYPE_CPA.
+psFloodlightActivityId :: Lens' PricingSchedule (Maybe Int64)
+psFloodlightActivityId
+  = lens _psFloodlightActivityId
+      (\ s a -> s{_psFloodlightActivityId = a})
+      . mapping _Coerce
+
+-- | Placement end date. This date must be later than, or the same day as,
+-- the placement start date, but not later than the campaign end date. If,
+-- for example, you set 6\/25\/2015 as both the start and end dates, the
+-- effective placement date is just that day only, 6\/25\/2015. The hours,
+-- minutes, and seconds of the end date should not be set, as doing so will
+-- result in an error. This field is required on insertion.
+psEndDate :: Lens' PricingSchedule (Maybe Day)
+psEndDate
+  = lens _psEndDate (\ s a -> s{_psEndDate = a}) .
+      mapping _Date
+
+-- | Whether cap costs are ignored by ad serving.
+psDisregardOverdelivery :: Lens' PricingSchedule (Maybe Bool)
+psDisregardOverdelivery
+  = lens _psDisregardOverdelivery
+      (\ s a -> s{_psDisregardOverdelivery = a})
+
+-- | Placement start date. This date must be later than, or the same day as,
+-- the campaign start date. The hours, minutes, and seconds of the start
+-- date should not be set, as doing so will result in an error. This field
+-- is required on insertion.
+psStartDate :: Lens' PricingSchedule (Maybe Day)
+psStartDate
+  = lens _psStartDate (\ s a -> s{_psStartDate = a}) .
+      mapping _Date
+
+-- | Placement cap cost option.
+psCapCostOption :: Lens' PricingSchedule (Maybe PricingScheduleCapCostOption)
+psCapCostOption
+  = lens _psCapCostOption
+      (\ s a -> s{_psCapCostOption = a})
+
+-- | Placement pricing type. This field is required on insertion.
+psPricingType :: Lens' PricingSchedule (Maybe PricingSchedulePricingType)
+psPricingType
+  = lens _psPricingType
+      (\ s a -> s{_psPricingType = a})
+
+-- | Pricing periods for this placement.
+psPricingPeriods :: Lens' PricingSchedule [PricingSchedulePricingPeriod]
+psPricingPeriods
+  = lens _psPricingPeriods
+      (\ s a -> s{_psPricingPeriods = a})
+      . _Default
+      . _Coerce
+
+-- | Whether this placement is flighted. If true, pricing periods will be
+-- computed automatically.
+psFlighted :: Lens' PricingSchedule (Maybe Bool)
+psFlighted
+  = lens _psFlighted (\ s a -> s{_psFlighted = a})
+
+instance FromJSON PricingSchedule where
+        parseJSON
+          = withObject "PricingSchedule"
+              (\ o ->
+                 PricingSchedule <$>
+                   (o .:? "testingStartDate") <*>
+                     (o .:? "floodlightActivityId")
+                     <*> (o .:? "endDate")
+                     <*> (o .:? "disregardOverdelivery")
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "capCostOption")
+                     <*> (o .:? "pricingType")
+                     <*> (o .:? "pricingPeriods" .!= mempty)
+                     <*> (o .:? "flighted"))
+
+instance ToJSON PricingSchedule where
+        toJSON PricingSchedule{..}
+          = object
+              (catMaybes
+                 [("testingStartDate" .=) <$> _psTestingStartDate,
+                  ("floodlightActivityId" .=) <$>
+                    _psFloodlightActivityId,
+                  ("endDate" .=) <$> _psEndDate,
+                  ("disregardOverdelivery" .=) <$>
+                    _psDisregardOverdelivery,
+                  ("startDate" .=) <$> _psStartDate,
+                  ("capCostOption" .=) <$> _psCapCostOption,
+                  ("pricingType" .=) <$> _psPricingType,
+                  ("pricingPeriods" .=) <$> _psPricingPeriods,
+                  ("flighted" .=) <$> _psFlighted])
+
+-- | Contains information about a postal code that can be targeted by ads.
+--
+-- /See:/ 'postalCode' smart constructor.
+data PostalCode = PostalCode
+    { _pcKind          :: !Text
+    , _pcCode          :: !(Maybe Text)
+    , _pcCountryCode   :: !(Maybe Text)
+    , _pcId            :: !(Maybe Text)
+    , _pcCountryDartId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PostalCode' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pcKind'
+--
+-- * 'pcCode'
+--
+-- * 'pcCountryCode'
+--
+-- * 'pcId'
+--
+-- * 'pcCountryDartId'
+postalCode
+    :: PostalCode
+postalCode =
+    PostalCode
+    { _pcKind = "dfareporting#postalCode"
+    , _pcCode = Nothing
+    , _pcCountryCode = Nothing
+    , _pcId = Nothing
+    , _pcCountryDartId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#postalCode\".
+pcKind :: Lens' PostalCode Text
+pcKind = lens _pcKind (\ s a -> s{_pcKind = a})
+
+-- | Postal code. This is equivalent to the id field.
+pcCode :: Lens' PostalCode (Maybe Text)
+pcCode = lens _pcCode (\ s a -> s{_pcCode = a})
+
+-- | Country code of the country to which this postal code belongs.
+pcCountryCode :: Lens' PostalCode (Maybe Text)
+pcCountryCode
+  = lens _pcCountryCode
+      (\ s a -> s{_pcCountryCode = a})
+
+-- | ID of this postal code.
+pcId :: Lens' PostalCode (Maybe Text)
+pcId = lens _pcId (\ s a -> s{_pcId = a})
+
+-- | DART ID of the country to which this postal code belongs.
+pcCountryDartId :: Lens' PostalCode (Maybe Int64)
+pcCountryDartId
+  = lens _pcCountryDartId
+      (\ s a -> s{_pcCountryDartId = a})
+      . mapping _Coerce
+
+instance FromJSON PostalCode where
+        parseJSON
+          = withObject "PostalCode"
+              (\ o ->
+                 PostalCode <$>
+                   (o .:? "kind" .!= "dfareporting#postalCode") <*>
+                     (o .:? "code")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "id")
+                     <*> (o .:? "countryDartId"))
+
+instance ToJSON PostalCode where
+        toJSON PostalCode{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _pcKind), ("code" .=) <$> _pcCode,
+                  ("countryCode" .=) <$> _pcCountryCode,
+                  ("id" .=) <$> _pcId,
+                  ("countryDartId" .=) <$> _pcCountryDartId])
+
+-- | Account Permission List Response
+--
+-- /See:/ 'accountPermissionsListResponse' smart constructor.
+data AccountPermissionsListResponse = AccountPermissionsListResponse
+    { _aplrKind               :: !Text
+    , _aplrAccountPermissions :: !(Maybe [AccountPermission])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermissionsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aplrKind'
+--
+-- * 'aplrAccountPermissions'
+accountPermissionsListResponse
+    :: AccountPermissionsListResponse
+accountPermissionsListResponse =
+    AccountPermissionsListResponse
+    { _aplrKind = "dfareporting#accountPermissionsListResponse"
+    , _aplrAccountPermissions = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountPermissionsListResponse\".
+aplrKind :: Lens' AccountPermissionsListResponse Text
+aplrKind = lens _aplrKind (\ s a -> s{_aplrKind = a})
+
+-- | Account permission collection.
+aplrAccountPermissions :: Lens' AccountPermissionsListResponse [AccountPermission]
+aplrAccountPermissions
+  = lens _aplrAccountPermissions
+      (\ s a -> s{_aplrAccountPermissions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON AccountPermissionsListResponse
+         where
+        parseJSON
+          = withObject "AccountPermissionsListResponse"
+              (\ o ->
+                 AccountPermissionsListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#accountPermissionsListResponse")
+                     <*> (o .:? "accountPermissions" .!= mempty))
+
+instance ToJSON AccountPermissionsListResponse where
+        toJSON AccountPermissionsListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _aplrKind),
+                  ("accountPermissions" .=) <$>
+                    _aplrAccountPermissions])
+
+-- | Contains information about a country that can be targeted by ads.
+--
+-- /See:/ 'country' smart constructor.
+data Country = Country
+    { _cKind        :: !Text
+    , _cName        :: !(Maybe Text)
+    , _cCountryCode :: !(Maybe Text)
+    , _cDartId      :: !(Maybe (Textual Int64))
+    , _cSSLEnabled  :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Country' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cKind'
+--
+-- * 'cName'
+--
+-- * 'cCountryCode'
+--
+-- * 'cDartId'
+--
+-- * 'cSSLEnabled'
+country
+    :: Country
+country =
+    Country
+    { _cKind = "dfareporting#country"
+    , _cName = Nothing
+    , _cCountryCode = Nothing
+    , _cDartId = Nothing
+    , _cSSLEnabled = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#country\".
+cKind :: Lens' Country Text
+cKind = lens _cKind (\ s a -> s{_cKind = a})
+
+-- | Name of this country.
+cName :: Lens' Country (Maybe Text)
+cName = lens _cName (\ s a -> s{_cName = a})
+
+-- | Country code.
+cCountryCode :: Lens' Country (Maybe Text)
+cCountryCode
+  = lens _cCountryCode (\ s a -> s{_cCountryCode = a})
+
+-- | DART ID of this country. This is the ID used for targeting and
+-- generating reports.
+cDartId :: Lens' Country (Maybe Int64)
+cDartId
+  = lens _cDartId (\ s a -> s{_cDartId = a}) .
+      mapping _Coerce
+
+-- | Whether ad serving supports secure servers in this country.
+cSSLEnabled :: Lens' Country (Maybe Bool)
+cSSLEnabled
+  = lens _cSSLEnabled (\ s a -> s{_cSSLEnabled = a})
+
+instance FromJSON Country where
+        parseJSON
+          = withObject "Country"
+              (\ o ->
+                 Country <$>
+                   (o .:? "kind" .!= "dfareporting#country") <*>
+                     (o .:? "name")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "dartId")
+                     <*> (o .:? "sslEnabled"))
+
+instance ToJSON Country where
+        toJSON Country{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cKind), ("name" .=) <$> _cName,
+                  ("countryCode" .=) <$> _cCountryCode,
+                  ("dartId" .=) <$> _cDartId,
+                  ("sslEnabled" .=) <$> _cSSLEnabled])
+
+-- | Operating System Version List Response
+--
+-- /See:/ 'operatingSystemVersionsListResponse' smart constructor.
+data OperatingSystemVersionsListResponse = OperatingSystemVersionsListResponse
+    { _osvlrKind                    :: !Text
+    , _osvlrOperatingSystemVersions :: !(Maybe [OperatingSystemVersion])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemVersionsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osvlrKind'
+--
+-- * 'osvlrOperatingSystemVersions'
+operatingSystemVersionsListResponse
+    :: OperatingSystemVersionsListResponse
+operatingSystemVersionsListResponse =
+    OperatingSystemVersionsListResponse
+    { _osvlrKind = "dfareporting#operatingSystemVersionsListResponse"
+    , _osvlrOperatingSystemVersions = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#operatingSystemVersionsListResponse\".
+osvlrKind :: Lens' OperatingSystemVersionsListResponse Text
+osvlrKind
+  = lens _osvlrKind (\ s a -> s{_osvlrKind = a})
+
+-- | Operating system version collection.
+osvlrOperatingSystemVersions :: Lens' OperatingSystemVersionsListResponse [OperatingSystemVersion]
+osvlrOperatingSystemVersions
+  = lens _osvlrOperatingSystemVersions
+      (\ s a -> s{_osvlrOperatingSystemVersions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON OperatingSystemVersionsListResponse
+         where
+        parseJSON
+          = withObject "OperatingSystemVersionsListResponse"
+              (\ o ->
+                 OperatingSystemVersionsListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#operatingSystemVersionsListResponse")
+                     <*> (o .:? "operatingSystemVersions" .!= mempty))
+
+instance ToJSON OperatingSystemVersionsListResponse
+         where
+        toJSON OperatingSystemVersionsListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _osvlrKind),
+                  ("operatingSystemVersions" .=) <$>
+                    _osvlrOperatingSystemVersions])
+
+-- | Click Through URL Suffix settings.
+--
+-- /See:/ 'clickThroughURLSuffixProperties' smart constructor.
+data ClickThroughURLSuffixProperties = ClickThroughURLSuffixProperties
+    { _ctuspOverrideInheritedSuffix :: !(Maybe Bool)
+    , _ctuspClickThroughURLSuffix   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ClickThroughURLSuffixProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctuspOverrideInheritedSuffix'
+--
+-- * 'ctuspClickThroughURLSuffix'
+clickThroughURLSuffixProperties
+    :: ClickThroughURLSuffixProperties
+clickThroughURLSuffixProperties =
+    ClickThroughURLSuffixProperties
+    { _ctuspOverrideInheritedSuffix = Nothing
+    , _ctuspClickThroughURLSuffix = Nothing
+    }
+
+-- | Whether this entity should override the inherited click-through URL
+-- suffix with its own defined value.
+ctuspOverrideInheritedSuffix :: Lens' ClickThroughURLSuffixProperties (Maybe Bool)
+ctuspOverrideInheritedSuffix
+  = lens _ctuspOverrideInheritedSuffix
+      (\ s a -> s{_ctuspOverrideInheritedSuffix = a})
+
+-- | Click-through URL suffix to apply to all ads in this entity\'s scope.
+-- Must be less than 128 characters long.
+ctuspClickThroughURLSuffix :: Lens' ClickThroughURLSuffixProperties (Maybe Text)
+ctuspClickThroughURLSuffix
+  = lens _ctuspClickThroughURLSuffix
+      (\ s a -> s{_ctuspClickThroughURLSuffix = a})
+
+instance FromJSON ClickThroughURLSuffixProperties
+         where
+        parseJSON
+          = withObject "ClickThroughURLSuffixProperties"
+              (\ o ->
+                 ClickThroughURLSuffixProperties <$>
+                   (o .:? "overrideInheritedSuffix") <*>
+                     (o .:? "clickThroughUrlSuffix"))
+
+instance ToJSON ClickThroughURLSuffixProperties where
+        toJSON ClickThroughURLSuffixProperties{..}
+          = object
+              (catMaybes
+                 [("overrideInheritedSuffix" .=) <$>
+                    _ctuspOverrideInheritedSuffix,
+                  ("clickThroughUrlSuffix" .=) <$>
+                    _ctuspClickThroughURLSuffix])
+
+-- | Pricing Information
+--
+-- /See:/ 'pricing' smart constructor.
+data Pricing = Pricing
+    { _priEndDate     :: !(Maybe Date')
+    , _priStartDate   :: !(Maybe Date')
+    , _priGroupType   :: !(Maybe PricingGroupType)
+    , _priPricingType :: !(Maybe PricingPricingType)
+    , _priFlights     :: !(Maybe [Flight])
+    , _priCapCostType :: !(Maybe PricingCapCostType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Pricing' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'priEndDate'
+--
+-- * 'priStartDate'
+--
+-- * 'priGroupType'
+--
+-- * 'priPricingType'
+--
+-- * 'priFlights'
+--
+-- * 'priCapCostType'
+pricing
+    :: Pricing
+pricing =
+    Pricing
+    { _priEndDate = Nothing
+    , _priStartDate = Nothing
+    , _priGroupType = Nothing
+    , _priPricingType = Nothing
+    , _priFlights = Nothing
+    , _priCapCostType = Nothing
+    }
+
+-- | End date of this inventory item.
+priEndDate :: Lens' Pricing (Maybe Day)
+priEndDate
+  = lens _priEndDate (\ s a -> s{_priEndDate = a}) .
+      mapping _Date
+
+-- | Start date of this inventory item.
+priStartDate :: Lens' Pricing (Maybe Day)
+priStartDate
+  = lens _priStartDate (\ s a -> s{_priStartDate = a})
+      . mapping _Date
+
+-- | Group type of this inventory item if it represents a placement group. Is
+-- null otherwise. There are two type of placement groups:
+-- PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory
+-- items that acts as a single pricing point for a group of tags.
+-- PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items
+-- that not only acts as a single pricing point, but also assumes that all
+-- the tags in it will be served at the same time. A roadblock requires one
+-- of its assigned inventory items to be marked as primary.
+priGroupType :: Lens' Pricing (Maybe PricingGroupType)
+priGroupType
+  = lens _priGroupType (\ s a -> s{_priGroupType = a})
+
+-- | Pricing type of this inventory item.
+priPricingType :: Lens' Pricing (Maybe PricingPricingType)
+priPricingType
+  = lens _priPricingType
+      (\ s a -> s{_priPricingType = a})
+
+-- | Flights of this inventory item. A flight (a.k.a. pricing period)
+-- represents the inventory item pricing information for a specific period
+-- of time.
+priFlights :: Lens' Pricing [Flight]
+priFlights
+  = lens _priFlights (\ s a -> s{_priFlights = a}) .
+      _Default
+      . _Coerce
+
+-- | Cap cost type of this inventory item.
+priCapCostType :: Lens' Pricing (Maybe PricingCapCostType)
+priCapCostType
+  = lens _priCapCostType
+      (\ s a -> s{_priCapCostType = a})
+
+instance FromJSON Pricing where
+        parseJSON
+          = withObject "Pricing"
+              (\ o ->
+                 Pricing <$>
+                   (o .:? "endDate") <*> (o .:? "startDate") <*>
+                     (o .:? "groupType")
+                     <*> (o .:? "pricingType")
+                     <*> (o .:? "flights" .!= mempty)
+                     <*> (o .:? "capCostType"))
+
+instance ToJSON Pricing where
+        toJSON Pricing{..}
+          = object
+              (catMaybes
+                 [("endDate" .=) <$> _priEndDate,
+                  ("startDate" .=) <$> _priStartDate,
+                  ("groupType" .=) <$> _priGroupType,
+                  ("pricingType" .=) <$> _priPricingType,
+                  ("flights" .=) <$> _priFlights,
+                  ("capCostType" .=) <$> _priCapCostType])
+
+-- | Audience Segment Group.
+--
+-- /See:/ 'audienceSegmentGroup' smart constructor.
+data AudienceSegmentGroup = AudienceSegmentGroup
+    { _asgAudienceSegments :: !(Maybe [AudienceSegment])
+    , _asgName             :: !(Maybe Text)
+    , _asgId               :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AudienceSegmentGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asgAudienceSegments'
+--
+-- * 'asgName'
+--
+-- * 'asgId'
+audienceSegmentGroup
+    :: AudienceSegmentGroup
+audienceSegmentGroup =
+    AudienceSegmentGroup
+    { _asgAudienceSegments = Nothing
+    , _asgName = Nothing
+    , _asgId = Nothing
+    }
+
+-- | Audience segments assigned to this group. The number of segments must be
+-- between 2 and 100.
+asgAudienceSegments :: Lens' AudienceSegmentGroup [AudienceSegment]
+asgAudienceSegments
+  = lens _asgAudienceSegments
+      (\ s a -> s{_asgAudienceSegments = a})
+      . _Default
+      . _Coerce
+
+-- | Name of this audience segment group. This is a required field and must
+-- be less than 65 characters long.
+asgName :: Lens' AudienceSegmentGroup (Maybe Text)
+asgName = lens _asgName (\ s a -> s{_asgName = a})
+
+-- | ID of this audience segment group. This is a read-only, auto-generated
+-- field.
+asgId :: Lens' AudienceSegmentGroup (Maybe Int64)
+asgId
+  = lens _asgId (\ s a -> s{_asgId = a}) .
+      mapping _Coerce
+
+instance FromJSON AudienceSegmentGroup where
+        parseJSON
+          = withObject "AudienceSegmentGroup"
+              (\ o ->
+                 AudienceSegmentGroup <$>
+                   (o .:? "audienceSegments" .!= mempty) <*>
+                     (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON AudienceSegmentGroup where
+        toJSON AudienceSegmentGroup{..}
+          = object
+              (catMaybes
+                 [("audienceSegments" .=) <$> _asgAudienceSegments,
+                  ("name" .=) <$> _asgName, ("id" .=) <$> _asgId])
+
+-- | Contains information about an operating system that can be targeted by
+-- ads.
+--
+-- /See:/ 'operatingSystem' smart constructor.
+data OperatingSystem = OperatingSystem
+    { _osDesktop :: !(Maybe Bool)
+    , _osKind    :: !Text
+    , _osName    :: !(Maybe Text)
+    , _osMobile  :: !(Maybe Bool)
+    , _osDartId  :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osDesktop'
+--
+-- * 'osKind'
+--
+-- * 'osName'
+--
+-- * 'osMobile'
+--
+-- * 'osDartId'
+operatingSystem
+    :: OperatingSystem
+operatingSystem =
+    OperatingSystem
+    { _osDesktop = Nothing
+    , _osKind = "dfareporting#operatingSystem"
+    , _osName = Nothing
+    , _osMobile = Nothing
+    , _osDartId = Nothing
+    }
+
+-- | Whether this operating system is for desktop.
+osDesktop :: Lens' OperatingSystem (Maybe Bool)
+osDesktop
+  = lens _osDesktop (\ s a -> s{_osDesktop = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#operatingSystem\".
+osKind :: Lens' OperatingSystem Text
+osKind = lens _osKind (\ s a -> s{_osKind = a})
+
+-- | Name of this operating system.
+osName :: Lens' OperatingSystem (Maybe Text)
+osName = lens _osName (\ s a -> s{_osName = a})
+
+-- | Whether this operating system is for mobile.
+osMobile :: Lens' OperatingSystem (Maybe Bool)
+osMobile = lens _osMobile (\ s a -> s{_osMobile = a})
+
+-- | DART ID of this operating system. This is the ID used for targeting.
+osDartId :: Lens' OperatingSystem (Maybe Int64)
+osDartId
+  = lens _osDartId (\ s a -> s{_osDartId = a}) .
+      mapping _Coerce
+
+instance FromJSON OperatingSystem where
+        parseJSON
+          = withObject "OperatingSystem"
+              (\ o ->
+                 OperatingSystem <$>
+                   (o .:? "desktop") <*>
+                     (o .:? "kind" .!= "dfareporting#operatingSystem")
+                     <*> (o .:? "name")
+                     <*> (o .:? "mobile")
+                     <*> (o .:? "dartId"))
+
+instance ToJSON OperatingSystem where
+        toJSON OperatingSystem{..}
+          = object
+              (catMaybes
+                 [("desktop" .=) <$> _osDesktop,
+                  Just ("kind" .= _osKind), ("name" .=) <$> _osName,
+                  ("mobile" .=) <$> _osMobile,
+                  ("dartId" .=) <$> _osDartId])
+
+-- | Flight
+--
+-- /See:/ 'flight' smart constructor.
+data Flight = Flight
+    { _fRateOrCost :: !(Maybe (Textual Int64))
+    , _fEndDate    :: !(Maybe Date')
+    , _fStartDate  :: !(Maybe Date')
+    , _fUnits      :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Flight' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fRateOrCost'
+--
+-- * 'fEndDate'
+--
+-- * 'fStartDate'
+--
+-- * 'fUnits'
+flight
+    :: Flight
+flight =
+    Flight
+    { _fRateOrCost = Nothing
+    , _fEndDate = Nothing
+    , _fStartDate = Nothing
+    , _fUnits = Nothing
+    }
+
+-- | Rate or cost of this flight.
+fRateOrCost :: Lens' Flight (Maybe Int64)
+fRateOrCost
+  = lens _fRateOrCost (\ s a -> s{_fRateOrCost = a}) .
+      mapping _Coerce
+
+-- | Inventory item flight end date.
+fEndDate :: Lens' Flight (Maybe Day)
+fEndDate
+  = lens _fEndDate (\ s a -> s{_fEndDate = a}) .
+      mapping _Date
+
+-- | Inventory item flight start date.
+fStartDate :: Lens' Flight (Maybe Day)
+fStartDate
+  = lens _fStartDate (\ s a -> s{_fStartDate = a}) .
+      mapping _Date
+
+-- | Units of this flight.
+fUnits :: Lens' Flight (Maybe Int64)
+fUnits
+  = lens _fUnits (\ s a -> s{_fUnits = a}) .
+      mapping _Coerce
+
+instance FromJSON Flight where
+        parseJSON
+          = withObject "Flight"
+              (\ o ->
+                 Flight <$>
+                   (o .:? "rateOrCost") <*> (o .:? "endDate") <*>
+                     (o .:? "startDate")
+                     <*> (o .:? "units"))
+
+instance ToJSON Flight where
+        toJSON Flight{..}
+          = object
+              (catMaybes
+                 [("rateOrCost" .=) <$> _fRateOrCost,
+                  ("endDate" .=) <$> _fEndDate,
+                  ("startDate" .=) <$> _fStartDate,
+                  ("units" .=) <$> _fUnits])
+
+-- | City List Response
+--
+-- /See:/ 'citiesListResponse' smart constructor.
+data CitiesListResponse = CitiesListResponse
+    { _citKind   :: !Text
+    , _citCities :: !(Maybe [City])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CitiesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'citKind'
+--
+-- * 'citCities'
+citiesListResponse
+    :: CitiesListResponse
+citiesListResponse =
+    CitiesListResponse
+    { _citKind = "dfareporting#citiesListResponse"
+    , _citCities = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#citiesListResponse\".
+citKind :: Lens' CitiesListResponse Text
+citKind = lens _citKind (\ s a -> s{_citKind = a})
+
+-- | City collection.
+citCities :: Lens' CitiesListResponse [City]
+citCities
+  = lens _citCities (\ s a -> s{_citCities = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON CitiesListResponse where
+        parseJSON
+          = withObject "CitiesListResponse"
+              (\ o ->
+                 CitiesListResponse <$>
+                   (o .:? "kind" .!= "dfareporting#citiesListResponse")
+                     <*> (o .:? "cities" .!= mempty))
+
+instance ToJSON CitiesListResponse where
+        toJSON CitiesListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _citKind),
+                  ("cities" .=) <$> _citCities])
+
+-- | Represents a dimension.
+--
+-- /See:/ 'dimension' smart constructor.
+data Dimension = Dimension
+    { _dKind :: !Text
+    , _dName :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Dimension' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dKind'
+--
+-- * 'dName'
+dimension
+    :: Dimension
+dimension =
+    Dimension
+    { _dKind = "dfareporting#dimension"
+    , _dName = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#dimension.
+dKind :: Lens' Dimension Text
+dKind = lens _dKind (\ s a -> s{_dKind = a})
+
+-- | The dimension name, e.g. dfa:advertiser
+dName :: Lens' Dimension (Maybe Text)
+dName = lens _dName (\ s a -> s{_dName = a})
+
+instance FromJSON Dimension where
+        parseJSON
+          = withObject "Dimension"
+              (\ o ->
+                 Dimension <$>
+                   (o .:? "kind" .!= "dfareporting#dimension") <*>
+                     (o .:? "name"))
+
+instance ToJSON Dimension where
+        toJSON Dimension{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _dKind), ("name" .=) <$> _dName])
+
+-- | The report criteria for a report of type \"REACH\".
+--
+-- /See:/ 'reportReachCriteria' smart constructor.
+data ReportReachCriteria = ReportReachCriteria
+    { _rrcReachByFrequencyMetricNames    :: !(Maybe [Text])
+    , _rrcEnableAllDimensionCombinations :: !(Maybe Bool)
+    , _rrcMetricNames                    :: !(Maybe [Text])
+    , _rrcCustomRichMediaEvents          :: !(Maybe CustomRichMediaEvents)
+    , _rrcDimensionFilters               :: !(Maybe [DimensionValue])
+    , _rrcActivities                     :: !(Maybe Activities)
+    , _rrcDateRange                      :: !(Maybe DateRange)
+    , _rrcDimensions                     :: !(Maybe [SortedDimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportReachCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rrcReachByFrequencyMetricNames'
+--
+-- * 'rrcEnableAllDimensionCombinations'
+--
+-- * 'rrcMetricNames'
+--
+-- * 'rrcCustomRichMediaEvents'
+--
+-- * 'rrcDimensionFilters'
+--
+-- * 'rrcActivities'
+--
+-- * 'rrcDateRange'
+--
+-- * 'rrcDimensions'
+reportReachCriteria
+    :: ReportReachCriteria
+reportReachCriteria =
+    ReportReachCriteria
+    { _rrcReachByFrequencyMetricNames = Nothing
+    , _rrcEnableAllDimensionCombinations = Nothing
+    , _rrcMetricNames = Nothing
+    , _rrcCustomRichMediaEvents = Nothing
+    , _rrcDimensionFilters = Nothing
+    , _rrcActivities = Nothing
+    , _rrcDateRange = Nothing
+    , _rrcDimensions = Nothing
+    }
+
+-- | The list of names of Reach By Frequency metrics the report should
+-- include.
+rrcReachByFrequencyMetricNames :: Lens' ReportReachCriteria [Text]
+rrcReachByFrequencyMetricNames
+  = lens _rrcReachByFrequencyMetricNames
+      (\ s a -> s{_rrcReachByFrequencyMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | Whether to enable all reach dimension combinations in the report.
+-- Defaults to false. If enabled, the date range of the report should be
+-- within the last three months.
+rrcEnableAllDimensionCombinations :: Lens' ReportReachCriteria (Maybe Bool)
+rrcEnableAllDimensionCombinations
+  = lens _rrcEnableAllDimensionCombinations
+      (\ s a -> s{_rrcEnableAllDimensionCombinations = a})
+
+-- | The list of names of metrics the report should include.
+rrcMetricNames :: Lens' ReportReachCriteria [Text]
+rrcMetricNames
+  = lens _rrcMetricNames
+      (\ s a -> s{_rrcMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | Custom Rich Media Events group.
+rrcCustomRichMediaEvents :: Lens' ReportReachCriteria (Maybe CustomRichMediaEvents)
+rrcCustomRichMediaEvents
+  = lens _rrcCustomRichMediaEvents
+      (\ s a -> s{_rrcCustomRichMediaEvents = a})
+
+-- | The list of filters on which dimensions are filtered. Filters for
+-- different dimensions are ANDed, filters for the same dimension are
+-- grouped together and ORed.
+rrcDimensionFilters :: Lens' ReportReachCriteria [DimensionValue]
+rrcDimensionFilters
+  = lens _rrcDimensionFilters
+      (\ s a -> s{_rrcDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Activity group.
+rrcActivities :: Lens' ReportReachCriteria (Maybe Activities)
+rrcActivities
+  = lens _rrcActivities
+      (\ s a -> s{_rrcActivities = a})
+
+-- | The date range this report should be run for.
+rrcDateRange :: Lens' ReportReachCriteria (Maybe DateRange)
+rrcDateRange
+  = lens _rrcDateRange (\ s a -> s{_rrcDateRange = a})
+
+-- | The list of dimensions the report should include.
+rrcDimensions :: Lens' ReportReachCriteria [SortedDimension]
+rrcDimensions
+  = lens _rrcDimensions
+      (\ s a -> s{_rrcDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportReachCriteria where
+        parseJSON
+          = withObject "ReportReachCriteria"
+              (\ o ->
+                 ReportReachCriteria <$>
+                   (o .:? "reachByFrequencyMetricNames" .!= mempty) <*>
+                     (o .:? "enableAllDimensionCombinations")
+                     <*> (o .:? "metricNames" .!= mempty)
+                     <*> (o .:? "customRichMediaEvents")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "activities")
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON ReportReachCriteria where
+        toJSON ReportReachCriteria{..}
+          = object
+              (catMaybes
+                 [("reachByFrequencyMetricNames" .=) <$>
+                    _rrcReachByFrequencyMetricNames,
+                  ("enableAllDimensionCombinations" .=) <$>
+                    _rrcEnableAllDimensionCombinations,
+                  ("metricNames" .=) <$> _rrcMetricNames,
+                  ("customRichMediaEvents" .=) <$>
+                    _rrcCustomRichMediaEvents,
+                  ("dimensionFilters" .=) <$> _rrcDimensionFilters,
+                  ("activities" .=) <$> _rrcActivities,
+                  ("dateRange" .=) <$> _rrcDateRange,
+                  ("dimensions" .=) <$> _rrcDimensions])
+
+-- | Represents a Custom Rich Media Events group.
+--
+-- /See:/ 'customRichMediaEvents' smart constructor.
+data CustomRichMediaEvents = CustomRichMediaEvents
+    { _crmeKind             :: !Text
+    , _crmeFilteredEventIds :: !(Maybe [DimensionValue])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CustomRichMediaEvents' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crmeKind'
+--
+-- * 'crmeFilteredEventIds'
+customRichMediaEvents
+    :: CustomRichMediaEvents
+customRichMediaEvents =
+    CustomRichMediaEvents
+    { _crmeKind = "dfareporting#customRichMediaEvents"
+    , _crmeFilteredEventIds = Nothing
+    }
+
+-- | The kind of resource this is, in this case
+-- dfareporting#customRichMediaEvents.
+crmeKind :: Lens' CustomRichMediaEvents Text
+crmeKind = lens _crmeKind (\ s a -> s{_crmeKind = a})
+
+-- | List of custom rich media event IDs. Dimension values must be all of
+-- type dfa:richMediaEventTypeIdAndName.
+crmeFilteredEventIds :: Lens' CustomRichMediaEvents [DimensionValue]
+crmeFilteredEventIds
+  = lens _crmeFilteredEventIds
+      (\ s a -> s{_crmeFilteredEventIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CustomRichMediaEvents where
+        parseJSON
+          = withObject "CustomRichMediaEvents"
+              (\ o ->
+                 CustomRichMediaEvents <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#customRichMediaEvents")
+                     <*> (o .:? "filteredEventIds" .!= mempty))
+
+instance ToJSON CustomRichMediaEvents where
+        toJSON CustomRichMediaEvents{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _crmeKind),
+                  ("filteredEventIds" .=) <$> _crmeFilteredEventIds])
+
+-- | Targetable remarketing list response
+--
+-- /See:/ 'targetableRemarketingListsListResponse' smart constructor.
+data TargetableRemarketingListsListResponse = TargetableRemarketingListsListResponse
+    { _trllrNextPageToken              :: !(Maybe Text)
+    , _trllrKind                       :: !Text
+    , _trllrTargetableRemarketingLists :: !(Maybe [TargetableRemarketingList])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetableRemarketingListsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trllrNextPageToken'
+--
+-- * 'trllrKind'
+--
+-- * 'trllrTargetableRemarketingLists'
+targetableRemarketingListsListResponse
+    :: TargetableRemarketingListsListResponse
+targetableRemarketingListsListResponse =
+    TargetableRemarketingListsListResponse
+    { _trllrNextPageToken = Nothing
+    , _trllrKind = "dfareporting#targetableRemarketingListsListResponse"
+    , _trllrTargetableRemarketingLists = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+trllrNextPageToken :: Lens' TargetableRemarketingListsListResponse (Maybe Text)
+trllrNextPageToken
+  = lens _trllrNextPageToken
+      (\ s a -> s{_trllrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#targetableRemarketingListsListResponse\".
+trllrKind :: Lens' TargetableRemarketingListsListResponse Text
+trllrKind
+  = lens _trllrKind (\ s a -> s{_trllrKind = a})
+
+-- | Targetable remarketing list collection.
+trllrTargetableRemarketingLists :: Lens' TargetableRemarketingListsListResponse [TargetableRemarketingList]
+trllrTargetableRemarketingLists
+  = lens _trllrTargetableRemarketingLists
+      (\ s a -> s{_trllrTargetableRemarketingLists = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         TargetableRemarketingListsListResponse where
+        parseJSON
+          = withObject "TargetableRemarketingListsListResponse"
+              (\ o ->
+                 TargetableRemarketingListsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#targetableRemarketingListsListResponse")
+                     <*> (o .:? "targetableRemarketingLists" .!= mempty))
+
+instance ToJSON
+         TargetableRemarketingListsListResponse where
+        toJSON TargetableRemarketingListsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _trllrNextPageToken,
+                  Just ("kind" .= _trllrKind),
+                  ("targetableRemarketingLists" .=) <$>
+                    _trllrTargetableRemarketingLists])
+
+-- | Change Log List Response
+--
+-- /See:/ 'changeLogsListResponse' smart constructor.
+data ChangeLogsListResponse = ChangeLogsListResponse
+    { _cllrNextPageToken :: !(Maybe Text)
+    , _cllrKind          :: !Text
+    , _cllrChangeLogs    :: !(Maybe [ChangeLog])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ChangeLogsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cllrNextPageToken'
+--
+-- * 'cllrKind'
+--
+-- * 'cllrChangeLogs'
+changeLogsListResponse
+    :: ChangeLogsListResponse
+changeLogsListResponse =
+    ChangeLogsListResponse
+    { _cllrNextPageToken = Nothing
+    , _cllrKind = "dfareporting#changeLogsListResponse"
+    , _cllrChangeLogs = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+cllrNextPageToken :: Lens' ChangeLogsListResponse (Maybe Text)
+cllrNextPageToken
+  = lens _cllrNextPageToken
+      (\ s a -> s{_cllrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#changeLogsListResponse\".
+cllrKind :: Lens' ChangeLogsListResponse Text
+cllrKind = lens _cllrKind (\ s a -> s{_cllrKind = a})
+
+-- | Change log collection.
+cllrChangeLogs :: Lens' ChangeLogsListResponse [ChangeLog]
+cllrChangeLogs
+  = lens _cllrChangeLogs
+      (\ s a -> s{_cllrChangeLogs = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ChangeLogsListResponse where
+        parseJSON
+          = withObject "ChangeLogsListResponse"
+              (\ o ->
+                 ChangeLogsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#changeLogsListResponse")
+                     <*> (o .:? "changeLogs" .!= mempty))
+
+instance ToJSON ChangeLogsListResponse where
+        toJSON ChangeLogsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _cllrNextPageToken,
+                  Just ("kind" .= _cllrKind),
+                  ("changeLogs" .=) <$> _cllrChangeLogs])
+
+-- | AccountUserProfiles contains properties of a DCM user profile. This
+-- resource is specifically for managing user profiles, whereas
+-- UserProfiles is for accessing the API.
+--
+-- /See:/ 'accountUserProFile' smart constructor.
+data AccountUserProFile = AccountUserProFile
+    { _aupfEmail            :: !(Maybe Text)
+    , _aupfUserRoleFilter   :: !(Maybe ObjectFilter)
+    , _aupfAdvertiserFilter :: !(Maybe ObjectFilter)
+    , _aupfUserRoleId       :: !(Maybe (Textual Int64))
+    , _aupfKind             :: !Text
+    , _aupfLocale           :: !(Maybe Text)
+    , _aupfSiteFilter       :: !(Maybe ObjectFilter)
+    , _aupfTraffickerType   :: !(Maybe AccountUserProFileTraffickerType)
+    , _aupfActive           :: !(Maybe Bool)
+    , _aupfAccountId        :: !(Maybe (Textual Int64))
+    , _aupfName             :: !(Maybe Text)
+    , _aupfId               :: !(Maybe (Textual Int64))
+    , _aupfUserAccessType   :: !(Maybe AccountUserProFileUserAccessType)
+    , _aupfComments         :: !(Maybe Text)
+    , _aupfSubAccountId     :: !(Maybe (Textual Int64))
+    , _aupfCampaignFilter   :: !(Maybe ObjectFilter)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountUserProFile' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aupfEmail'
+--
+-- * 'aupfUserRoleFilter'
+--
+-- * 'aupfAdvertiserFilter'
+--
+-- * 'aupfUserRoleId'
+--
+-- * 'aupfKind'
+--
+-- * 'aupfLocale'
+--
+-- * 'aupfSiteFilter'
+--
+-- * 'aupfTraffickerType'
+--
+-- * 'aupfActive'
+--
+-- * 'aupfAccountId'
+--
+-- * 'aupfName'
+--
+-- * 'aupfId'
+--
+-- * 'aupfUserAccessType'
+--
+-- * 'aupfComments'
+--
+-- * 'aupfSubAccountId'
+--
+-- * 'aupfCampaignFilter'
+accountUserProFile
+    :: AccountUserProFile
+accountUserProFile =
+    AccountUserProFile
+    { _aupfEmail = Nothing
+    , _aupfUserRoleFilter = Nothing
+    , _aupfAdvertiserFilter = Nothing
+    , _aupfUserRoleId = Nothing
+    , _aupfKind = "dfareporting#accountUserProfile"
+    , _aupfLocale = Nothing
+    , _aupfSiteFilter = Nothing
+    , _aupfTraffickerType = Nothing
+    , _aupfActive = Nothing
+    , _aupfAccountId = Nothing
+    , _aupfName = Nothing
+    , _aupfId = Nothing
+    , _aupfUserAccessType = Nothing
+    , _aupfComments = Nothing
+    , _aupfSubAccountId = Nothing
+    , _aupfCampaignFilter = Nothing
+    }
+
+-- | Email of the user profile. The email addresss must be linked to a Google
+-- Account. This field is required on insertion and is read-only after
+-- insertion.
+aupfEmail :: Lens' AccountUserProFile (Maybe Text)
+aupfEmail
+  = lens _aupfEmail (\ s a -> s{_aupfEmail = a})
+
+-- | Filter that describes which user roles are visible to the user profile.
+aupfUserRoleFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
+aupfUserRoleFilter
+  = lens _aupfUserRoleFilter
+      (\ s a -> s{_aupfUserRoleFilter = a})
+
+-- | Filter that describes which advertisers are visible to the user profile.
+aupfAdvertiserFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
+aupfAdvertiserFilter
+  = lens _aupfAdvertiserFilter
+      (\ s a -> s{_aupfAdvertiserFilter = a})
+
+-- | User role ID of the user profile. This is a required field.
+aupfUserRoleId :: Lens' AccountUserProFile (Maybe Int64)
+aupfUserRoleId
+  = lens _aupfUserRoleId
+      (\ s a -> s{_aupfUserRoleId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountUserProfile\".
+aupfKind :: Lens' AccountUserProFile Text
+aupfKind = lens _aupfKind (\ s a -> s{_aupfKind = a})
+
+-- | Locale of the user profile. This is a required field. Acceptable values
+-- are: - \"cs\" (Czech) - \"de\" (German) - \"en\" (English) - \"en-GB\"
+-- (English United Kingdom) - \"es\" (Spanish) - \"fr\" (French) - \"it\"
+-- (Italian) - \"ja\" (Japanese) - \"ko\" (Korean) - \"pl\" (Polish) -
+-- \"pt-BR\" (Portuguese Brazil) - \"ru\" (Russian) - \"sv\" (Swedish) -
+-- \"tr\" (Turkish) - \"zh-CN\" (Chinese Simplified) - \"zh-TW\" (Chinese
+-- Traditional)
+aupfLocale :: Lens' AccountUserProFile (Maybe Text)
+aupfLocale
+  = lens _aupfLocale (\ s a -> s{_aupfLocale = a})
+
+-- | Filter that describes which sites are visible to the user profile.
+aupfSiteFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
+aupfSiteFilter
+  = lens _aupfSiteFilter
+      (\ s a -> s{_aupfSiteFilter = a})
+
+-- | Trafficker type of this user profile.
+aupfTraffickerType :: Lens' AccountUserProFile (Maybe AccountUserProFileTraffickerType)
+aupfTraffickerType
+  = lens _aupfTraffickerType
+      (\ s a -> s{_aupfTraffickerType = a})
+
+-- | Whether this user profile is active. This defaults to false, and must be
+-- set true on insert for the user profile to be usable.
+aupfActive :: Lens' AccountUserProFile (Maybe Bool)
+aupfActive
+  = lens _aupfActive (\ s a -> s{_aupfActive = a})
+
+-- | Account ID of the user profile. This is a read-only field that can be
+-- left blank.
+aupfAccountId :: Lens' AccountUserProFile (Maybe Int64)
+aupfAccountId
+  = lens _aupfAccountId
+      (\ s a -> s{_aupfAccountId = a})
+      . mapping _Coerce
+
+-- | Name of the user profile. This is a required field. Must be less than 64
+-- characters long, must be globally unique, and cannot contain whitespace
+-- or any of the following characters: \"&;\"#%,\".
+aupfName :: Lens' AccountUserProFile (Maybe Text)
+aupfName = lens _aupfName (\ s a -> s{_aupfName = a})
+
+-- | ID of the user profile. This is a read-only, auto-generated field.
+aupfId :: Lens' AccountUserProFile (Maybe Int64)
+aupfId
+  = lens _aupfId (\ s a -> s{_aupfId = a}) .
+      mapping _Coerce
+
+-- | User type of the user profile. This is a read-only field that can be
+-- left blank.
+aupfUserAccessType :: Lens' AccountUserProFile (Maybe AccountUserProFileUserAccessType)
+aupfUserAccessType
+  = lens _aupfUserAccessType
+      (\ s a -> s{_aupfUserAccessType = a})
+
+-- | Comments for this user profile.
+aupfComments :: Lens' AccountUserProFile (Maybe Text)
+aupfComments
+  = lens _aupfComments (\ s a -> s{_aupfComments = a})
+
+-- | Subaccount ID of the user profile. This is a read-only field that can be
+-- left blank.
+aupfSubAccountId :: Lens' AccountUserProFile (Maybe Int64)
+aupfSubAccountId
+  = lens _aupfSubAccountId
+      (\ s a -> s{_aupfSubAccountId = a})
+      . mapping _Coerce
+
+-- | Filter that describes which campaigns are visible to the user profile.
+aupfCampaignFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
+aupfCampaignFilter
+  = lens _aupfCampaignFilter
+      (\ s a -> s{_aupfCampaignFilter = a})
+
+instance FromJSON AccountUserProFile where
+        parseJSON
+          = withObject "AccountUserProFile"
+              (\ o ->
+                 AccountUserProFile <$>
+                   (o .:? "email") <*> (o .:? "userRoleFilter") <*>
+                     (o .:? "advertiserFilter")
+                     <*> (o .:? "userRoleId")
+                     <*>
+                     (o .:? "kind" .!= "dfareporting#accountUserProfile")
+                     <*> (o .:? "locale")
+                     <*> (o .:? "siteFilter")
+                     <*> (o .:? "traffickerType")
+                     <*> (o .:? "active")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "userAccessType")
+                     <*> (o .:? "comments")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "campaignFilter"))
+
+instance ToJSON AccountUserProFile where
+        toJSON AccountUserProFile{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _aupfEmail,
+                  ("userRoleFilter" .=) <$> _aupfUserRoleFilter,
+                  ("advertiserFilter" .=) <$> _aupfAdvertiserFilter,
+                  ("userRoleId" .=) <$> _aupfUserRoleId,
+                  Just ("kind" .= _aupfKind),
+                  ("locale" .=) <$> _aupfLocale,
+                  ("siteFilter" .=) <$> _aupfSiteFilter,
+                  ("traffickerType" .=) <$> _aupfTraffickerType,
+                  ("active" .=) <$> _aupfActive,
+                  ("accountId" .=) <$> _aupfAccountId,
+                  ("name" .=) <$> _aupfName, ("id" .=) <$> _aupfId,
+                  ("userAccessType" .=) <$> _aupfUserAccessType,
+                  ("comments" .=) <$> _aupfComments,
+                  ("subaccountId" .=) <$> _aupfSubAccountId,
+                  ("campaignFilter" .=) <$> _aupfCampaignFilter])
+
+-- | Represents a DimensionValue resource.
+--
+-- /See:/ 'dimensionValue' smart constructor.
+data DimensionValue = DimensionValue
+    { _dvEtag          :: !(Maybe Text)
+    , _dvKind          :: !Text
+    , _dvValue         :: !(Maybe Text)
+    , _dvMatchType     :: !(Maybe DimensionValueMatchType)
+    , _dvDimensionName :: !(Maybe Text)
+    , _dvId            :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DimensionValue' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dvEtag'
+--
+-- * 'dvKind'
+--
+-- * 'dvValue'
+--
+-- * 'dvMatchType'
+--
+-- * 'dvDimensionName'
+--
+-- * 'dvId'
+dimensionValue
+    :: DimensionValue
+dimensionValue =
+    DimensionValue
+    { _dvEtag = Nothing
+    , _dvKind = "dfareporting#dimensionValue"
+    , _dvValue = Nothing
+    , _dvMatchType = Nothing
+    , _dvDimensionName = Nothing
+    , _dvId = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+dvEtag :: Lens' DimensionValue (Maybe Text)
+dvEtag = lens _dvEtag (\ s a -> s{_dvEtag = a})
+
+-- | The kind of resource this is, in this case dfareporting#dimensionValue.
+dvKind :: Lens' DimensionValue Text
+dvKind = lens _dvKind (\ s a -> s{_dvKind = a})
+
+-- | The value of the dimension.
+dvValue :: Lens' DimensionValue (Maybe Text)
+dvValue = lens _dvValue (\ s a -> s{_dvValue = a})
+
+-- | Determines how the \'value\' field is matched when filtering. If not
+-- specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, \'*\' is
+-- allowed as a placeholder for variable length character sequences, and it
+-- can be escaped with a backslash. Note, only paid search dimensions
+-- (\'dfa:paidSearch*\') allow a matchType other than EXACT.
+dvMatchType :: Lens' DimensionValue (Maybe DimensionValueMatchType)
+dvMatchType
+  = lens _dvMatchType (\ s a -> s{_dvMatchType = a})
+
+-- | The name of the dimension.
+dvDimensionName :: Lens' DimensionValue (Maybe Text)
+dvDimensionName
+  = lens _dvDimensionName
+      (\ s a -> s{_dvDimensionName = a})
+
+-- | The ID associated with the value if available.
+dvId :: Lens' DimensionValue (Maybe Text)
+dvId = lens _dvId (\ s a -> s{_dvId = a})
+
+instance FromJSON DimensionValue where
+        parseJSON
+          = withObject "DimensionValue"
+              (\ o ->
+                 DimensionValue <$>
+                   (o .:? "etag") <*>
+                     (o .:? "kind" .!= "dfareporting#dimensionValue")
+                     <*> (o .:? "value")
+                     <*> (o .:? "matchType")
+                     <*> (o .:? "dimensionName")
+                     <*> (o .:? "id"))
+
+instance ToJSON DimensionValue where
+        toJSON DimensionValue{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _dvEtag, Just ("kind" .= _dvKind),
+                  ("value" .=) <$> _dvValue,
+                  ("matchType" .=) <$> _dvMatchType,
+                  ("dimensionName" .=) <$> _dvDimensionName,
+                  ("id" .=) <$> _dvId])
+
+-- | Represents an activity group.
+--
+-- /See:/ 'activities' smart constructor.
+data Activities = Activities
+    { _actKind        :: !Text
+    , _actMetricNames :: !(Maybe [Text])
+    , _actFilters     :: !(Maybe [DimensionValue])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Activities' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'actKind'
+--
+-- * 'actMetricNames'
+--
+-- * 'actFilters'
+activities
+    :: Activities
+activities =
+    Activities
+    { _actKind = "dfareporting#activities"
+    , _actMetricNames = Nothing
+    , _actFilters = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#activities.
+actKind :: Lens' Activities Text
+actKind = lens _actKind (\ s a -> s{_actKind = a})
+
+-- | List of names of floodlight activity metrics.
+actMetricNames :: Lens' Activities [Text]
+actMetricNames
+  = lens _actMetricNames
+      (\ s a -> s{_actMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | List of activity filters. The dimension values need to be all either of
+-- type \"dfa:activity\" or \"dfa:activityGroup\".
+actFilters :: Lens' Activities [DimensionValue]
+actFilters
+  = lens _actFilters (\ s a -> s{_actFilters = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON Activities where
+        parseJSON
+          = withObject "Activities"
+              (\ o ->
+                 Activities <$>
+                   (o .:? "kind" .!= "dfareporting#activities") <*>
+                     (o .:? "metricNames" .!= mempty)
+                     <*> (o .:? "filters" .!= mempty))
+
+instance ToJSON Activities where
+        toJSON Activities{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _actKind),
+                  ("metricNames" .=) <$> _actMetricNames,
+                  ("filters" .=) <$> _actFilters])
+
+-- | User Role Permission Group List Response
+--
+-- /See:/ 'userRolePermissionGroupsListResponse' smart constructor.
+data UserRolePermissionGroupsListResponse = UserRolePermissionGroupsListResponse
+    { _urpglrUserRolePermissionGroups :: !(Maybe [UserRolePermissionGroup])
+    , _urpglrKind                     :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermissionGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urpglrUserRolePermissionGroups'
+--
+-- * 'urpglrKind'
+userRolePermissionGroupsListResponse
+    :: UserRolePermissionGroupsListResponse
+userRolePermissionGroupsListResponse =
+    UserRolePermissionGroupsListResponse
+    { _urpglrUserRolePermissionGroups = Nothing
+    , _urpglrKind = "dfareporting#userRolePermissionGroupsListResponse"
+    }
+
+-- | User role permission group collection.
+urpglrUserRolePermissionGroups :: Lens' UserRolePermissionGroupsListResponse [UserRolePermissionGroup]
+urpglrUserRolePermissionGroups
+  = lens _urpglrUserRolePermissionGroups
+      (\ s a -> s{_urpglrUserRolePermissionGroups = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRolePermissionGroupsListResponse\".
+urpglrKind :: Lens' UserRolePermissionGroupsListResponse Text
+urpglrKind
+  = lens _urpglrKind (\ s a -> s{_urpglrKind = a})
+
+instance FromJSON
+         UserRolePermissionGroupsListResponse where
+        parseJSON
+          = withObject "UserRolePermissionGroupsListResponse"
+              (\ o ->
+                 UserRolePermissionGroupsListResponse <$>
+                   (o .:? "userRolePermissionGroups" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#userRolePermissionGroupsListResponse"))
+
+instance ToJSON UserRolePermissionGroupsListResponse
+         where
+        toJSON UserRolePermissionGroupsListResponse{..}
+          = object
+              (catMaybes
+                 [("userRolePermissionGroups" .=) <$>
+                    _urpglrUserRolePermissionGroups,
+                  Just ("kind" .= _urpglrKind)])
+
+-- | Placement Tag
+--
+-- /See:/ 'placementTag' smart constructor.
+data PlacementTag = PlacementTag
+    { _ptPlacementId :: !(Maybe (Textual Int64))
+    , _ptTagDatas    :: !(Maybe [TagData])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptPlacementId'
+--
+-- * 'ptTagDatas'
+placementTag
+    :: PlacementTag
+placementTag =
+    PlacementTag
+    { _ptPlacementId = Nothing
+    , _ptTagDatas = Nothing
+    }
+
+-- | Placement ID
+ptPlacementId :: Lens' PlacementTag (Maybe Int64)
+ptPlacementId
+  = lens _ptPlacementId
+      (\ s a -> s{_ptPlacementId = a})
+      . mapping _Coerce
+
+-- | Tags generated for this placement.
+ptTagDatas :: Lens' PlacementTag [TagData]
+ptTagDatas
+  = lens _ptTagDatas (\ s a -> s{_ptTagDatas = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON PlacementTag where
+        parseJSON
+          = withObject "PlacementTag"
+              (\ o ->
+                 PlacementTag <$>
+                   (o .:? "placementId") <*>
+                     (o .:? "tagDatas" .!= mempty))
+
+instance ToJSON PlacementTag where
+        toJSON PlacementTag{..}
+          = object
+              (catMaybes
+                 [("placementId" .=) <$> _ptPlacementId,
+                  ("tagDatas" .=) <$> _ptTagDatas])
+
+-- | Remarketing list response
+--
+-- /See:/ 'remarketingListsListResponse' smart constructor.
+data RemarketingListsListResponse = RemarketingListsListResponse
+    { _rllrNextPageToken    :: !(Maybe Text)
+    , _rllrRemarketingLists :: !(Maybe [RemarketingList])
+    , _rllrKind             :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rllrNextPageToken'
+--
+-- * 'rllrRemarketingLists'
+--
+-- * 'rllrKind'
+remarketingListsListResponse
+    :: RemarketingListsListResponse
+remarketingListsListResponse =
+    RemarketingListsListResponse
+    { _rllrNextPageToken = Nothing
+    , _rllrRemarketingLists = Nothing
+    , _rllrKind = "dfareporting#remarketingListsListResponse"
+    }
+
+-- | Pagination token to be used for the next list operation.
+rllrNextPageToken :: Lens' RemarketingListsListResponse (Maybe Text)
+rllrNextPageToken
+  = lens _rllrNextPageToken
+      (\ s a -> s{_rllrNextPageToken = a})
+
+-- | Remarketing list collection.
+rllrRemarketingLists :: Lens' RemarketingListsListResponse [RemarketingList]
+rllrRemarketingLists
+  = lens _rllrRemarketingLists
+      (\ s a -> s{_rllrRemarketingLists = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#remarketingListsListResponse\".
+rllrKind :: Lens' RemarketingListsListResponse Text
+rllrKind = lens _rllrKind (\ s a -> s{_rllrKind = a})
+
+instance FromJSON RemarketingListsListResponse where
+        parseJSON
+          = withObject "RemarketingListsListResponse"
+              (\ o ->
+                 RemarketingListsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "remarketingLists" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#remarketingListsListResponse"))
+
+instance ToJSON RemarketingListsListResponse where
+        toJSON RemarketingListsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _rllrNextPageToken,
+                  ("remarketingLists" .=) <$> _rllrRemarketingLists,
+                  Just ("kind" .= _rllrKind)])
+
+-- | Contains properties of a Creative.
+--
+-- /See:/ 'creative' smart constructor.
+data Creative = Creative
+    { _creConvertFlashToHTML5                 :: !(Maybe Bool)
+    , _creBackupImageTargetWindow             :: !(Maybe TargetWindow)
+    , _creRenderingIdDimensionValue           :: !(Maybe DimensionValue)
+    , _creCustomKeyValues                     :: !(Maybe [Text])
+    , _creVideoDuration                       :: !(Maybe (Textual Double))
+    , _creRenderingId                         :: !(Maybe (Textual Int64))
+    , _creThirdPartyBackupImageImpressionsURL :: !(Maybe Text)
+    , _creFsCommand                           :: !(Maybe FsCommand)
+    , _creAllowScriptAccess                   :: !(Maybe Bool)
+    , _creHTMLCodeLocked                      :: !(Maybe Bool)
+    , _creRequiredFlashPluginVersion          :: !(Maybe Text)
+    , _creAuthoringTool                       :: !(Maybe CreativeAuthoringTool)
+    , _creSize                                :: !(Maybe Size)
+    , _creThirdPartyURLs                      :: !(Maybe [ThirdPartyTrackingURL])
+    , _creCounterCustomEvents                 :: !(Maybe [CreativeCustomEvent])
+    , _creKind                                :: !Text
+    , _creSSLOverride                         :: !(Maybe Bool)
+    , _creHTMLCode                            :: !(Maybe Text)
+    , _creAdvertiserId                        :: !(Maybe (Textual Int64))
+    , _creRequiredFlashVersion                :: !(Maybe (Textual Int32))
+    , _creBackgRoundColor                     :: !(Maybe Text)
+    , _creAdTagKeys                           :: !(Maybe [Text])
+    , _creSkippable                           :: !(Maybe Bool)
+    , _creSSLCompliant                        :: !(Maybe Bool)
+    , _creIdDimensionValue                    :: !(Maybe DimensionValue)
+    , _creBackupImageReportingLabel           :: !(Maybe Text)
+    , _creCommercialId                        :: !(Maybe Text)
+    , _creActive                              :: !(Maybe Bool)
+    , _creExitCustomEvents                    :: !(Maybe [CreativeCustomEvent])
+    , _creAccountId                           :: !(Maybe (Textual Int64))
+    , _creBackupImageClickThroughURL          :: !(Maybe Text)
+    , _creName                                :: !(Maybe Text)
+    , _creOverrideCss                         :: !(Maybe Text)
+    , _creVideoDescription                    :: !(Maybe Text)
+    , _creClickTags                           :: !(Maybe [ClickTag])
+    , _creAdParameters                        :: !(Maybe Text)
+    , _creVersion                             :: !(Maybe (Textual Int32))
+    , _creLatestTraffickedCreativeId          :: !(Maybe (Textual Int64))
+    , _creThirdPartyRichMediaImpressionsURL   :: !(Maybe Text)
+    , _creLastModifiedInfo                    :: !(Maybe LastModifiedInfo)
+    , _creId                                  :: !(Maybe (Textual Int64))
+    , _creStudioAdvertiserId                  :: !(Maybe (Textual Int64))
+    , _creCreativeAssets                      :: !(Maybe [CreativeAsset])
+    , _creSubAccountId                        :: !(Maybe (Textual Int64))
+    , _creType                                :: !(Maybe CreativeType)
+    , _creTimerCustomEvents                   :: !(Maybe [CreativeCustomEvent])
+    , _creStudioCreativeId                    :: !(Maybe (Textual Int64))
+    , _creCompatibility                       :: !(Maybe [CreativeCompatibilityItem])
+    , _creBackupImageFeatures                 :: !(Maybe [CreativeBackupImageFeaturesItem])
+    , _creArtworkType                         :: !(Maybe CreativeArtworkType)
+    , _creArchived                            :: !(Maybe Bool)
+    , _creCompanionCreatives                  :: !(Maybe [Textual Int64])
+    , _creTotalFileSize                       :: !(Maybe (Textual Int64))
+    , _creStudioTraffickedCreativeId          :: !(Maybe (Textual Int64))
+    , _creRedirectURL                         :: !(Maybe Text)
+    , _creAutoAdvanceImages                   :: !(Maybe Bool)
+    , _creCreativeFieldAssignments            :: !(Maybe [CreativeFieldAssignment])
+    } 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:
+--
+-- * 'creConvertFlashToHTML5'
+--
+-- * 'creBackupImageTargetWindow'
+--
+-- * 'creRenderingIdDimensionValue'
+--
+-- * 'creCustomKeyValues'
+--
+-- * 'creVideoDuration'
+--
+-- * 'creRenderingId'
+--
+-- * 'creThirdPartyBackupImageImpressionsURL'
+--
+-- * 'creFsCommand'
+--
+-- * 'creAllowScriptAccess'
+--
+-- * 'creHTMLCodeLocked'
+--
+-- * 'creRequiredFlashPluginVersion'
+--
+-- * 'creAuthoringTool'
+--
+-- * 'creSize'
+--
+-- * 'creThirdPartyURLs'
+--
+-- * 'creCounterCustomEvents'
+--
+-- * 'creKind'
+--
+-- * 'creSSLOverride'
+--
+-- * 'creHTMLCode'
+--
+-- * 'creAdvertiserId'
+--
+-- * 'creRequiredFlashVersion'
+--
+-- * 'creBackgRoundColor'
+--
+-- * 'creAdTagKeys'
+--
+-- * 'creSkippable'
+--
+-- * 'creSSLCompliant'
+--
+-- * 'creIdDimensionValue'
+--
+-- * 'creBackupImageReportingLabel'
+--
+-- * 'creCommercialId'
+--
+-- * 'creActive'
+--
+-- * 'creExitCustomEvents'
+--
+-- * 'creAccountId'
+--
+-- * 'creBackupImageClickThroughURL'
+--
+-- * 'creName'
+--
+-- * 'creOverrideCss'
+--
+-- * 'creVideoDescription'
+--
+-- * 'creClickTags'
+--
+-- * 'creAdParameters'
+--
+-- * 'creVersion'
+--
+-- * 'creLatestTraffickedCreativeId'
+--
+-- * 'creThirdPartyRichMediaImpressionsURL'
+--
+-- * 'creLastModifiedInfo'
+--
+-- * 'creId'
+--
+-- * 'creStudioAdvertiserId'
+--
+-- * 'creCreativeAssets'
+--
+-- * 'creSubAccountId'
+--
+-- * 'creType'
+--
+-- * 'creTimerCustomEvents'
+--
+-- * 'creStudioCreativeId'
+--
+-- * 'creCompatibility'
+--
+-- * 'creBackupImageFeatures'
+--
+-- * 'creArtworkType'
+--
+-- * 'creArchived'
+--
+-- * 'creCompanionCreatives'
+--
+-- * 'creTotalFileSize'
+--
+-- * 'creStudioTraffickedCreativeId'
+--
+-- * 'creRedirectURL'
+--
+-- * 'creAutoAdvanceImages'
+--
+-- * 'creCreativeFieldAssignments'
+creative
+    :: Creative
+creative =
+    Creative
+    { _creConvertFlashToHTML5 = Nothing
+    , _creBackupImageTargetWindow = Nothing
+    , _creRenderingIdDimensionValue = Nothing
+    , _creCustomKeyValues = Nothing
+    , _creVideoDuration = Nothing
+    , _creRenderingId = Nothing
+    , _creThirdPartyBackupImageImpressionsURL = Nothing
+    , _creFsCommand = Nothing
+    , _creAllowScriptAccess = Nothing
+    , _creHTMLCodeLocked = Nothing
+    , _creRequiredFlashPluginVersion = Nothing
+    , _creAuthoringTool = Nothing
+    , _creSize = Nothing
+    , _creThirdPartyURLs = Nothing
+    , _creCounterCustomEvents = Nothing
+    , _creKind = "dfareporting#creative"
+    , _creSSLOverride = Nothing
+    , _creHTMLCode = Nothing
+    , _creAdvertiserId = Nothing
+    , _creRequiredFlashVersion = Nothing
+    , _creBackgRoundColor = Nothing
+    , _creAdTagKeys = Nothing
+    , _creSkippable = Nothing
+    , _creSSLCompliant = Nothing
+    , _creIdDimensionValue = Nothing
+    , _creBackupImageReportingLabel = Nothing
+    , _creCommercialId = Nothing
+    , _creActive = Nothing
+    , _creExitCustomEvents = Nothing
+    , _creAccountId = Nothing
+    , _creBackupImageClickThroughURL = Nothing
+    , _creName = Nothing
+    , _creOverrideCss = Nothing
+    , _creVideoDescription = Nothing
+    , _creClickTags = Nothing
+    , _creAdParameters = Nothing
+    , _creVersion = Nothing
+    , _creLatestTraffickedCreativeId = Nothing
+    , _creThirdPartyRichMediaImpressionsURL = Nothing
+    , _creLastModifiedInfo = Nothing
+    , _creId = Nothing
+    , _creStudioAdvertiserId = Nothing
+    , _creCreativeAssets = Nothing
+    , _creSubAccountId = Nothing
+    , _creType = Nothing
+    , _creTimerCustomEvents = Nothing
+    , _creStudioCreativeId = Nothing
+    , _creCompatibility = Nothing
+    , _creBackupImageFeatures = Nothing
+    , _creArtworkType = Nothing
+    , _creArchived = Nothing
+    , _creCompanionCreatives = Nothing
+    , _creTotalFileSize = Nothing
+    , _creStudioTraffickedCreativeId = Nothing
+    , _creRedirectURL = Nothing
+    , _creAutoAdvanceImages = Nothing
+    , _creCreativeFieldAssignments = Nothing
+    }
+
+-- | Whether Flash assets associated with the creative need to be
+-- automatically converted to HTML5. This flag is enabled by default and
+-- users can choose to disable it if they don\'t want the system to
+-- generate and use HTML5 asset for this creative. Applicable to the
+-- following creative types: ENHANCED_BANNER and FLASH_INPAGE.
+creConvertFlashToHTML5 :: Lens' Creative (Maybe Bool)
+creConvertFlashToHTML5
+  = lens _creConvertFlashToHTML5
+      (\ s a -> s{_creConvertFlashToHTML5 = a})
+
+-- | Target window for backup image. Applicable to the following creative
+-- types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+creBackupImageTargetWindow :: Lens' Creative (Maybe TargetWindow)
+creBackupImageTargetWindow
+  = lens _creBackupImageTargetWindow
+      (\ s a -> s{_creBackupImageTargetWindow = a})
+
+-- | Dimension value for the rendering ID of this creative. This is a
+-- read-only field. Applicable to all creative types.
+creRenderingIdDimensionValue :: Lens' Creative (Maybe DimensionValue)
+creRenderingIdDimensionValue
+  = lens _creRenderingIdDimensionValue
+      (\ s a -> s{_creRenderingIdDimensionValue = a})
+
+-- | Custom key-values for a Rich Media creative. Key-values let you
+-- customize the creative settings of a Rich Media ad running on your site
+-- without having to contact the advertiser. You can use key-values to
+-- dynamically change the look or functionality of a creative. Applicable
+-- to the following creative types: all RICH_MEDIA, and all VPAID.
+creCustomKeyValues :: Lens' Creative [Text]
+creCustomKeyValues
+  = lens _creCustomKeyValues
+      (\ s a -> s{_creCustomKeyValues = a})
+      . _Default
+      . _Coerce
+
+-- | Creative video duration in seconds. This is a read-only field.
+-- Applicable to the following creative types: INSTREAM_VIDEO, all
+-- RICH_MEDIA, and all VPAID.
+creVideoDuration :: Lens' Creative (Maybe Double)
+creVideoDuration
+  = lens _creVideoDuration
+      (\ s a -> s{_creVideoDuration = a})
+      . mapping _Coerce
+
+-- | ID of current rendering version. This is a read-only field. Applicable
+-- to all creative types.
+creRenderingId :: Lens' Creative (Maybe Int64)
+creRenderingId
+  = lens _creRenderingId
+      (\ s a -> s{_creRenderingId = a})
+      . mapping _Coerce
+
+-- | Third-party URL used to record backup image impressions. Applicable to
+-- the following creative types: all RICH_MEDIA
+creThirdPartyBackupImageImpressionsURL :: Lens' Creative (Maybe Text)
+creThirdPartyBackupImageImpressionsURL
+  = lens _creThirdPartyBackupImageImpressionsURL
+      (\ s a ->
+         s{_creThirdPartyBackupImageImpressionsURL = a})
+
+-- | OpenWindow FSCommand of this creative. This lets the SWF file
+-- communicate with either Flash Player or the program hosting Flash
+-- Player, such as a web browser. This is only triggered if
+-- allowScriptAccess field is true. Applicable to the following creative
+-- types: FLASH_INPAGE.
+creFsCommand :: Lens' Creative (Maybe FsCommand)
+creFsCommand
+  = lens _creFsCommand (\ s a -> s{_creFsCommand = a})
+
+-- | Whether script access is allowed for this creative. This is a read-only
+-- and deprecated field which will automatically be set to true on update.
+-- Applicable to the following creative types: FLASH_INPAGE.
+creAllowScriptAccess :: Lens' Creative (Maybe Bool)
+creAllowScriptAccess
+  = lens _creAllowScriptAccess
+      (\ s a -> s{_creAllowScriptAccess = a})
+
+-- | Whether HTML code is DCM-generated or manually entered. Set to true to
+-- ignore changes to htmlCode. Applicable to the following creative types:
+-- FLASH_INPAGE and HTML5_BANNER.
+creHTMLCodeLocked :: Lens' Creative (Maybe Bool)
+creHTMLCodeLocked
+  = lens _creHTMLCodeLocked
+      (\ s a -> s{_creHTMLCodeLocked = a})
+
+-- | The minimum required Flash plugin version for this creative. For
+-- example, 11.2.202.235. This is a read-only field. Applicable to the
+-- following creative types: all RICH_MEDIA, and all VPAID.
+creRequiredFlashPluginVersion :: Lens' Creative (Maybe Text)
+creRequiredFlashPluginVersion
+  = lens _creRequiredFlashPluginVersion
+      (\ s a -> s{_creRequiredFlashPluginVersion = a})
+
+-- | Authoring tool for HTML5 banner creatives. This is a read-only field.
+-- Applicable to the following creative types: HTML5_BANNER.
+creAuthoringTool :: Lens' Creative (Maybe CreativeAuthoringTool)
+creAuthoringTool
+  = lens _creAuthoringTool
+      (\ s a -> s{_creAuthoringTool = a})
+
+-- | Size associated with this creative. When inserting or updating a
+-- creative either the size ID field or size width and height fields can be
+-- used. This is a required field when applicable; however for IMAGE and
+-- FLASH_INPAGE creatives, if left blank, this field will be automatically
+-- set using the actual size of the associated image assets. Applicable to
+-- the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE,
+-- FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+creSize :: Lens' Creative (Maybe Size)
+creSize = lens _creSize (\ s a -> s{_creSize = a})
+
+-- | Third-party URLs for tracking in-stream video creative events.
+-- Applicable to the following creative types: INSTREAM_VIDEO and all
+-- VPAID.
+creThirdPartyURLs :: Lens' Creative [ThirdPartyTrackingURL]
+creThirdPartyURLs
+  = lens _creThirdPartyURLs
+      (\ s a -> s{_creThirdPartyURLs = a})
+      . _Default
+      . _Coerce
+
+-- | List of counter events configured for the creative. Applicable to the
+-- following creative types: all RICH_MEDIA, and all VPAID.
+creCounterCustomEvents :: Lens' Creative [CreativeCustomEvent]
+creCounterCustomEvents
+  = lens _creCounterCustomEvents
+      (\ s a -> s{_creCounterCustomEvents = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creative\".
+creKind :: Lens' Creative Text
+creKind = lens _creKind (\ s a -> s{_creKind = a})
+
+-- | Whether creative should be treated as SSL compliant even if the system
+-- scan shows it\'s not.
+creSSLOverride :: Lens' Creative (Maybe Bool)
+creSSLOverride
+  = lens _creSSLOverride
+      (\ s a -> s{_creSSLOverride = a})
+
+-- | HTML code for the creative. This is a required field when applicable.
+-- This field is ignored if htmlCodeLocked is false. Applicable to the
+-- following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER,
+-- and all RICH_MEDIA.
+creHTMLCode :: Lens' Creative (Maybe Text)
+creHTMLCode
+  = lens _creHTMLCode (\ s a -> s{_creHTMLCode = a})
+
+-- | Advertiser ID of this creative. This is a required field. Applicable to
+-- all creative types.
+creAdvertiserId :: Lens' Creative (Maybe Int64)
+creAdvertiserId
+  = lens _creAdvertiserId
+      (\ s a -> s{_creAdvertiserId = a})
+      . mapping _Coerce
+
+-- | The internal Flash version for this creative as calculated by
+-- DoubleClick Studio. This is a read-only field. Applicable to the
+-- following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA,
+-- and all VPAID.
+creRequiredFlashVersion :: Lens' Creative (Maybe Int32)
+creRequiredFlashVersion
+  = lens _creRequiredFlashVersion
+      (\ s a -> s{_creRequiredFlashVersion = a})
+      . mapping _Coerce
+
+-- | The 6-character HTML color code, beginning with #, for the background of
+-- the window area where the Flash file is displayed. Default is white.
+-- Applicable to the following creative types: FLASH_INPAGE.
+creBackgRoundColor :: Lens' Creative (Maybe Text)
+creBackgRoundColor
+  = lens _creBackgRoundColor
+      (\ s a -> s{_creBackgRoundColor = a})
+
+-- | Keywords for a Rich Media creative. Keywords let you customize the
+-- creative settings of a Rich Media ad running on your site without having
+-- to contact the advertiser. You can use keywords to dynamically change
+-- the look or functionality of a creative. Applicable to the following
+-- creative types: all RICH_MEDIA, and all VPAID.
+creAdTagKeys :: Lens' Creative [Text]
+creAdTagKeys
+  = lens _creAdTagKeys (\ s a -> s{_creAdTagKeys = a})
+      . _Default
+      . _Coerce
+
+-- | Whether the user can choose to skip the creative. Applicable to the
+-- following creative types: INSTREAM_VIDEO.
+creSkippable :: Lens' Creative (Maybe Bool)
+creSkippable
+  = lens _creSkippable (\ s a -> s{_creSkippable = a})
+
+-- | Whether the creative is SSL-compliant. This is a read-only field.
+-- Applicable to all creative types.
+creSSLCompliant :: Lens' Creative (Maybe Bool)
+creSSLCompliant
+  = lens _creSSLCompliant
+      (\ s a -> s{_creSSLCompliant = a})
+
+-- | Dimension value for the ID of this creative. This is a read-only field.
+-- Applicable to all creative types.
+creIdDimensionValue :: Lens' Creative (Maybe DimensionValue)
+creIdDimensionValue
+  = lens _creIdDimensionValue
+      (\ s a -> s{_creIdDimensionValue = a})
+
+-- | Reporting label used for HTML5 banner backup image. Applicable to the
+-- following creative types: ENHANCED_BANNER.
+creBackupImageReportingLabel :: Lens' Creative (Maybe Text)
+creBackupImageReportingLabel
+  = lens _creBackupImageReportingLabel
+      (\ s a -> s{_creBackupImageReportingLabel = a})
+
+-- | Industry standard ID assigned to creative for reach and frequency.
+-- Applicable to the following creative types: INSTREAM_VIDEO and all
+-- VPAID.
+creCommercialId :: Lens' Creative (Maybe Text)
+creCommercialId
+  = lens _creCommercialId
+      (\ s a -> s{_creCommercialId = a})
+
+-- | Whether the creative is active. Applicable to all creative types.
+creActive :: Lens' Creative (Maybe Bool)
+creActive
+  = lens _creActive (\ s a -> s{_creActive = a})
+
+-- | List of exit events configured for the creative. Applicable to the
+-- following creative types: all RICH_MEDIA, and all VPAID.
+creExitCustomEvents :: Lens' Creative [CreativeCustomEvent]
+creExitCustomEvents
+  = lens _creExitCustomEvents
+      (\ s a -> s{_creExitCustomEvents = a})
+      . _Default
+      . _Coerce
+
+-- | Account ID of this creative. This field, if left unset, will be
+-- auto-generated for both insert and update operations. Applicable to all
+-- creative types.
+creAccountId :: Lens' Creative (Maybe Int64)
+creAccountId
+  = lens _creAccountId (\ s a -> s{_creAccountId = a})
+      . mapping _Coerce
+
+-- | Click-through URL for backup image. Applicable to the following creative
+-- types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+creBackupImageClickThroughURL :: Lens' Creative (Maybe Text)
+creBackupImageClickThroughURL
+  = lens _creBackupImageClickThroughURL
+      (\ s a -> s{_creBackupImageClickThroughURL = a})
+
+-- | Name of the creative. This is a required field and must be less than 256
+-- characters long. Applicable to all creative types.
+creName :: Lens' Creative (Maybe Text)
+creName = lens _creName (\ s a -> s{_creName = a})
+
+-- | Override CSS value for rich media creatives. Applicable to the following
+-- creative types: all RICH_MEDIA.
+creOverrideCss :: Lens' Creative (Maybe Text)
+creOverrideCss
+  = lens _creOverrideCss
+      (\ s a -> s{_creOverrideCss = a})
+
+-- | Description of the video ad. Applicable to the following creative types:
+-- INSTREAM_VIDEO and all VPAID.
+creVideoDescription :: Lens' Creative (Maybe Text)
+creVideoDescription
+  = lens _creVideoDescription
+      (\ s a -> s{_creVideoDescription = a})
+
+-- | Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and
+-- HTML5_BANNER creatives, this is a subset of detected click tags for the
+-- assets associated with this creative. After creating a flash asset,
+-- detected click tags will be returned in the creativeAssetMetadata. When
+-- inserting the creative, populate the creative clickTags field using the
+-- creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives,
+-- there should be exactly one entry in this list for each image creative
+-- asset. A click tag is matched with a corresponding creative asset by
+-- matching the clickTag.name field with the
+-- creativeAsset.assetIdentifier.name field. Applicable to the following
+-- creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE,
+-- HTML5_BANNER.
+creClickTags :: Lens' Creative [ClickTag]
+creClickTags
+  = lens _creClickTags (\ s a -> s{_creClickTags = a})
+      . _Default
+      . _Coerce
+
+-- | Ad parameters user for VPAID creative. This is a read-only field.
+-- Applicable to the following creative types: all VPAID.
+creAdParameters :: Lens' Creative (Maybe Text)
+creAdParameters
+  = lens _creAdParameters
+      (\ s a -> s{_creAdParameters = a})
+
+-- | The version number helps you keep track of multiple versions of your
+-- creative in your reports. The version number will always be
+-- auto-generated during insert operations to start at 1. For tracking
+-- creatives the version cannot be incremented and will always remain at 1.
+-- For all other creative types the version can be incremented only by 1
+-- during update operations. In addition, the version will be automatically
+-- incremented by 1 when undergoing Rich Media creative merging. Applicable
+-- to all creative types.
+creVersion :: Lens' Creative (Maybe Int32)
+creVersion
+  = lens _creVersion (\ s a -> s{_creVersion = a}) .
+      mapping _Coerce
+
+-- | Latest Studio trafficked creative ID associated with rich media and
+-- VPAID creatives. This is a read-only field. Applicable to the following
+-- creative types: all RICH_MEDIA, and all VPAID.
+creLatestTraffickedCreativeId :: Lens' Creative (Maybe Int64)
+creLatestTraffickedCreativeId
+  = lens _creLatestTraffickedCreativeId
+      (\ s a -> s{_creLatestTraffickedCreativeId = a})
+      . mapping _Coerce
+
+-- | Third-party URL used to record rich media impressions. Applicable to the
+-- following creative types: all RICH_MEDIA
+creThirdPartyRichMediaImpressionsURL :: Lens' Creative (Maybe Text)
+creThirdPartyRichMediaImpressionsURL
+  = lens _creThirdPartyRichMediaImpressionsURL
+      (\ s a ->
+         s{_creThirdPartyRichMediaImpressionsURL = a})
+
+-- | Creative last modification information. This is a read-only field.
+-- Applicable to all creative types.
+creLastModifiedInfo :: Lens' Creative (Maybe LastModifiedInfo)
+creLastModifiedInfo
+  = lens _creLastModifiedInfo
+      (\ s a -> s{_creLastModifiedInfo = a})
+
+-- | ID of this creative. This is a read-only, auto-generated field.
+-- Applicable to all creative types.
+creId :: Lens' Creative (Maybe Int64)
+creId
+  = lens _creId (\ s a -> s{_creId = a}) .
+      mapping _Coerce
+
+-- | Studio advertiser ID associated with rich media and VPAID creatives.
+-- This is a read-only field. Applicable to the following creative types:
+-- all RICH_MEDIA, and all VPAID.
+creStudioAdvertiserId :: Lens' Creative (Maybe Int64)
+creStudioAdvertiserId
+  = lens _creStudioAdvertiserId
+      (\ s a -> s{_creStudioAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Assets associated with a creative. Applicable to all but the following
+-- creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and
+-- REDIRECT
+creCreativeAssets :: Lens' Creative [CreativeAsset]
+creCreativeAssets
+  = lens _creCreativeAssets
+      (\ s a -> s{_creCreativeAssets = a})
+      . _Default
+      . _Coerce
+
+-- | Subaccount ID of this creative. This field, if left unset, will be
+-- auto-generated for both insert and update operations. Applicable to all
+-- creative types.
+creSubAccountId :: Lens' Creative (Maybe Int64)
+creSubAccountId
+  = lens _creSubAccountId
+      (\ s a -> s{_creSubAccountId = a})
+      . mapping _Coerce
+
+-- | Type of this creative.This is a required field. Applicable to all
+-- creative types.
+creType :: Lens' Creative (Maybe CreativeType)
+creType = lens _creType (\ s a -> s{_creType = a})
+
+-- | List of timer events configured for the creative. Applicable to the
+-- following creative types: all RICH_MEDIA, and all VPAID.
+creTimerCustomEvents :: Lens' Creative [CreativeCustomEvent]
+creTimerCustomEvents
+  = lens _creTimerCustomEvents
+      (\ s a -> s{_creTimerCustomEvents = a})
+      . _Default
+      . _Coerce
+
+-- | Studio creative ID associated with rich media and VPAID creatives. This
+-- is a read-only field. Applicable to the following creative types: all
+-- RICH_MEDIA, and all VPAID.
+creStudioCreativeId :: Lens' Creative (Maybe Int64)
+creStudioCreativeId
+  = lens _creStudioCreativeId
+      (\ s a -> s{_creStudioCreativeId = a})
+      . mapping _Coerce
+
+-- | Compatibilities associated with this creative. This is a read-only
+-- field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or
+-- on mobile devices for regular or interstitial ads, respectively. APP and
+-- APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO
+-- refers to rendering in in-stream video ads developed with the VAST
+-- standard. Applicable to all creative types. Acceptable values are: -
+-- \"APP\" - \"APP_INTERSTITIAL\" - \"IN_STREAM_VIDEO\" - \"WEB\" -
+-- \"WEB_INTERSTITIAL\"
+creCompatibility :: Lens' Creative [CreativeCompatibilityItem]
+creCompatibility
+  = lens _creCompatibility
+      (\ s a -> s{_creCompatibility = a})
+      . _Default
+      . _Coerce
+
+-- | List of feature dependencies that will cause a backup image to be served
+-- if the browser that serves the ad does not support them. Feature
+-- dependencies are features that a browser must be able to support in
+-- order to render your HTML5 creative asset correctly. This field is
+-- initially auto-generated to contain all features detected by DCM for all
+-- the assets of this creative and can then be modified by the client. To
+-- reset this field, copy over all the creativeAssets\' detected features.
+-- Applicable to the following creative types: ENHANCED_BANNER and
+-- HTML5_BANNER.
+creBackupImageFeatures :: Lens' Creative [CreativeBackupImageFeaturesItem]
+creBackupImageFeatures
+  = lens _creBackupImageFeatures
+      (\ s a -> s{_creBackupImageFeatures = a})
+      . _Default
+      . _Coerce
+
+-- | Type of artwork used for the creative. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA, and all
+-- VPAID.
+creArtworkType :: Lens' Creative (Maybe CreativeArtworkType)
+creArtworkType
+  = lens _creArtworkType
+      (\ s a -> s{_creArtworkType = a})
+
+-- | Whether the creative is archived. Applicable to all creative types.
+creArchived :: Lens' Creative (Maybe Bool)
+creArchived
+  = lens _creArchived (\ s a -> s{_creArchived = a})
+
+-- | List of companion creatives assigned to an in-Stream videocreative.
+-- Acceptable values include IDs of existing flash and image creatives.
+-- Applicable to the following creative types: INSTREAM_VIDEO and all
+-- VPAID.
+creCompanionCreatives :: Lens' Creative [Int64]
+creCompanionCreatives
+  = lens _creCompanionCreatives
+      (\ s a -> s{_creCompanionCreatives = a})
+      . _Default
+      . _Coerce
+
+-- | Combined size of all creative assets. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA, and all
+-- VPAID.
+creTotalFileSize :: Lens' Creative (Maybe Int64)
+creTotalFileSize
+  = lens _creTotalFileSize
+      (\ s a -> s{_creTotalFileSize = a})
+      . mapping _Coerce
+
+-- | Studio trafficked creative ID associated with rich media and VPAID
+-- creatives. This is a read-only field. Applicable to the following
+-- creative types: all RICH_MEDIA, and all VPAID.
+creStudioTraffickedCreativeId :: Lens' Creative (Maybe Int64)
+creStudioTraffickedCreativeId
+  = lens _creStudioTraffickedCreativeId
+      (\ s a -> s{_creStudioTraffickedCreativeId = a})
+      . mapping _Coerce
+
+-- | URL of hosted image or another ad tag. This is a required field when
+-- applicable. Applicable to the following creative types:
+-- INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+creRedirectURL :: Lens' Creative (Maybe Text)
+creRedirectURL
+  = lens _creRedirectURL
+      (\ s a -> s{_creRedirectURL = a})
+
+-- | Whether images are automatically advanced for enhanced image creatives.
+-- Applicable to the following creative types: ENHANCED_IMAGE.
+creAutoAdvanceImages :: Lens' Creative (Maybe Bool)
+creAutoAdvanceImages
+  = lens _creAutoAdvanceImages
+      (\ s a -> s{_creAutoAdvanceImages = a})
+
+-- | Creative field assignments for this creative. Applicable to all creative
+-- types.
+creCreativeFieldAssignments :: Lens' Creative [CreativeFieldAssignment]
+creCreativeFieldAssignments
+  = lens _creCreativeFieldAssignments
+      (\ s a -> s{_creCreativeFieldAssignments = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Creative where
+        parseJSON
+          = withObject "Creative"
+              (\ o ->
+                 Creative <$>
+                   (o .:? "convertFlashToHtml5") <*>
+                     (o .:? "backupImageTargetWindow")
+                     <*> (o .:? "renderingIdDimensionValue")
+                     <*> (o .:? "customKeyValues" .!= mempty)
+                     <*> (o .:? "videoDuration")
+                     <*> (o .:? "renderingId")
+                     <*> (o .:? "thirdPartyBackupImageImpressionsUrl")
+                     <*> (o .:? "fsCommand")
+                     <*> (o .:? "allowScriptAccess")
+                     <*> (o .:? "htmlCodeLocked")
+                     <*> (o .:? "requiredFlashPluginVersion")
+                     <*> (o .:? "authoringTool")
+                     <*> (o .:? "size")
+                     <*> (o .:? "thirdPartyUrls" .!= mempty)
+                     <*> (o .:? "counterCustomEvents" .!= mempty)
+                     <*> (o .:? "kind" .!= "dfareporting#creative")
+                     <*> (o .:? "sslOverride")
+                     <*> (o .:? "htmlCode")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "requiredFlashVersion")
+                     <*> (o .:? "backgroundColor")
+                     <*> (o .:? "adTagKeys" .!= mempty)
+                     <*> (o .:? "skippable")
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "backupImageReportingLabel")
+                     <*> (o .:? "commercialId")
+                     <*> (o .:? "active")
+                     <*> (o .:? "exitCustomEvents" .!= mempty)
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "backupImageClickThroughUrl")
+                     <*> (o .:? "name")
+                     <*> (o .:? "overrideCss")
+                     <*> (o .:? "videoDescription")
+                     <*> (o .:? "clickTags" .!= mempty)
+                     <*> (o .:? "adParameters")
+                     <*> (o .:? "version")
+                     <*> (o .:? "latestTraffickedCreativeId")
+                     <*> (o .:? "thirdPartyRichMediaImpressionsUrl")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "studioAdvertiserId")
+                     <*> (o .:? "creativeAssets" .!= mempty)
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "timerCustomEvents" .!= mempty)
+                     <*> (o .:? "studioCreativeId")
+                     <*> (o .:? "compatibility" .!= mempty)
+                     <*> (o .:? "backupImageFeatures" .!= mempty)
+                     <*> (o .:? "artworkType")
+                     <*> (o .:? "archived")
+                     <*> (o .:? "companionCreatives" .!= mempty)
+                     <*> (o .:? "totalFileSize")
+                     <*> (o .:? "studioTraffickedCreativeId")
+                     <*> (o .:? "redirectUrl")
+                     <*> (o .:? "auto_advance_images")
+                     <*> (o .:? "creativeFieldAssignments" .!= mempty))
+
+instance ToJSON Creative where
+        toJSON Creative{..}
+          = object
+              (catMaybes
+                 [("convertFlashToHtml5" .=) <$>
+                    _creConvertFlashToHTML5,
+                  ("backupImageTargetWindow" .=) <$>
+                    _creBackupImageTargetWindow,
+                  ("renderingIdDimensionValue" .=) <$>
+                    _creRenderingIdDimensionValue,
+                  ("customKeyValues" .=) <$> _creCustomKeyValues,
+                  ("videoDuration" .=) <$> _creVideoDuration,
+                  ("renderingId" .=) <$> _creRenderingId,
+                  ("thirdPartyBackupImageImpressionsUrl" .=) <$>
+                    _creThirdPartyBackupImageImpressionsURL,
+                  ("fsCommand" .=) <$> _creFsCommand,
+                  ("allowScriptAccess" .=) <$> _creAllowScriptAccess,
+                  ("htmlCodeLocked" .=) <$> _creHTMLCodeLocked,
+                  ("requiredFlashPluginVersion" .=) <$>
+                    _creRequiredFlashPluginVersion,
+                  ("authoringTool" .=) <$> _creAuthoringTool,
+                  ("size" .=) <$> _creSize,
+                  ("thirdPartyUrls" .=) <$> _creThirdPartyURLs,
+                  ("counterCustomEvents" .=) <$>
+                    _creCounterCustomEvents,
+                  Just ("kind" .= _creKind),
+                  ("sslOverride" .=) <$> _creSSLOverride,
+                  ("htmlCode" .=) <$> _creHTMLCode,
+                  ("advertiserId" .=) <$> _creAdvertiserId,
+                  ("requiredFlashVersion" .=) <$>
+                    _creRequiredFlashVersion,
+                  ("backgroundColor" .=) <$> _creBackgRoundColor,
+                  ("adTagKeys" .=) <$> _creAdTagKeys,
+                  ("skippable" .=) <$> _creSkippable,
+                  ("sslCompliant" .=) <$> _creSSLCompliant,
+                  ("idDimensionValue" .=) <$> _creIdDimensionValue,
+                  ("backupImageReportingLabel" .=) <$>
+                    _creBackupImageReportingLabel,
+                  ("commercialId" .=) <$> _creCommercialId,
+                  ("active" .=) <$> _creActive,
+                  ("exitCustomEvents" .=) <$> _creExitCustomEvents,
+                  ("accountId" .=) <$> _creAccountId,
+                  ("backupImageClickThroughUrl" .=) <$>
+                    _creBackupImageClickThroughURL,
+                  ("name" .=) <$> _creName,
+                  ("overrideCss" .=) <$> _creOverrideCss,
+                  ("videoDescription" .=) <$> _creVideoDescription,
+                  ("clickTags" .=) <$> _creClickTags,
+                  ("adParameters" .=) <$> _creAdParameters,
+                  ("version" .=) <$> _creVersion,
+                  ("latestTraffickedCreativeId" .=) <$>
+                    _creLatestTraffickedCreativeId,
+                  ("thirdPartyRichMediaImpressionsUrl" .=) <$>
+                    _creThirdPartyRichMediaImpressionsURL,
+                  ("lastModifiedInfo" .=) <$> _creLastModifiedInfo,
+                  ("id" .=) <$> _creId,
+                  ("studioAdvertiserId" .=) <$> _creStudioAdvertiserId,
+                  ("creativeAssets" .=) <$> _creCreativeAssets,
+                  ("subaccountId" .=) <$> _creSubAccountId,
+                  ("type" .=) <$> _creType,
+                  ("timerCustomEvents" .=) <$> _creTimerCustomEvents,
+                  ("studioCreativeId" .=) <$> _creStudioCreativeId,
+                  ("compatibility" .=) <$> _creCompatibility,
+                  ("backupImageFeatures" .=) <$>
+                    _creBackupImageFeatures,
+                  ("artworkType" .=) <$> _creArtworkType,
+                  ("archived" .=) <$> _creArchived,
+                  ("companionCreatives" .=) <$> _creCompanionCreatives,
+                  ("totalFileSize" .=) <$> _creTotalFileSize,
+                  ("studioTraffickedCreativeId" .=) <$>
+                    _creStudioTraffickedCreativeId,
+                  ("redirectUrl" .=) <$> _creRedirectURL,
+                  ("auto_advance_images" .=) <$> _creAutoAdvanceImages,
+                  ("creativeFieldAssignments" .=) <$>
+                    _creCreativeFieldAssignments])
+
+-- | Site Contact
+--
+-- /See:/ 'siteContact' smart constructor.
+data SiteContact = SiteContact
+    { _scEmail       :: !(Maybe Text)
+    , _scPhone       :: !(Maybe Text)
+    , _scLastName    :: !(Maybe Text)
+    , _scAddress     :: !(Maybe Text)
+    , _scFirstName   :: !(Maybe Text)
+    , _scId          :: !(Maybe (Textual Int64))
+    , _scTitle       :: !(Maybe Text)
+    , _scContactType :: !(Maybe SiteContactContactType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SiteContact' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'scEmail'
+--
+-- * 'scPhone'
+--
+-- * 'scLastName'
+--
+-- * 'scAddress'
+--
+-- * 'scFirstName'
+--
+-- * 'scId'
+--
+-- * 'scTitle'
+--
+-- * 'scContactType'
+siteContact
+    :: SiteContact
+siteContact =
+    SiteContact
+    { _scEmail = Nothing
+    , _scPhone = Nothing
+    , _scLastName = Nothing
+    , _scAddress = Nothing
+    , _scFirstName = Nothing
+    , _scId = Nothing
+    , _scTitle = Nothing
+    , _scContactType = Nothing
+    }
+
+-- | Email address of this site contact. This is a required field.
+scEmail :: Lens' SiteContact (Maybe Text)
+scEmail = lens _scEmail (\ s a -> s{_scEmail = a})
+
+-- | Primary phone number of this site contact.
+scPhone :: Lens' SiteContact (Maybe Text)
+scPhone = lens _scPhone (\ s a -> s{_scPhone = a})
+
+-- | Last name of this site contact.
+scLastName :: Lens' SiteContact (Maybe Text)
+scLastName
+  = lens _scLastName (\ s a -> s{_scLastName = a})
+
+-- | Address of this site contact.
+scAddress :: Lens' SiteContact (Maybe Text)
+scAddress
+  = lens _scAddress (\ s a -> s{_scAddress = a})
+
+-- | First name of this site contact.
+scFirstName :: Lens' SiteContact (Maybe Text)
+scFirstName
+  = lens _scFirstName (\ s a -> s{_scFirstName = a})
+
+-- | ID of this site contact. This is a read-only, auto-generated field.
+scId :: Lens' SiteContact (Maybe Int64)
+scId
+  = lens _scId (\ s a -> s{_scId = a}) .
+      mapping _Coerce
+
+-- | Title or designation of this site contact.
+scTitle :: Lens' SiteContact (Maybe Text)
+scTitle = lens _scTitle (\ s a -> s{_scTitle = a})
+
+-- | Site contact type.
+scContactType :: Lens' SiteContact (Maybe SiteContactContactType)
+scContactType
+  = lens _scContactType
+      (\ s a -> s{_scContactType = a})
+
+instance FromJSON SiteContact where
+        parseJSON
+          = withObject "SiteContact"
+              (\ o ->
+                 SiteContact <$>
+                   (o .:? "email") <*> (o .:? "phone") <*>
+                     (o .:? "lastName")
+                     <*> (o .:? "address")
+                     <*> (o .:? "firstName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "title")
+                     <*> (o .:? "contactType"))
+
+instance ToJSON SiteContact where
+        toJSON SiteContact{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _scEmail,
+                  ("phone" .=) <$> _scPhone,
+                  ("lastName" .=) <$> _scLastName,
+                  ("address" .=) <$> _scAddress,
+                  ("firstName" .=) <$> _scFirstName,
+                  ("id" .=) <$> _scId, ("title" .=) <$> _scTitle,
+                  ("contactType" .=) <$> _scContactType])
+
+-- | Account List Response
+--
+-- /See:/ 'accountsListResponse' smart constructor.
+data AccountsListResponse = AccountsListResponse
+    { _accNextPageToken :: !(Maybe Text)
+    , _accAccounts      :: !(Maybe [Account])
+    , _accKind          :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'accNextPageToken'
+--
+-- * 'accAccounts'
+--
+-- * 'accKind'
+accountsListResponse
+    :: AccountsListResponse
+accountsListResponse =
+    AccountsListResponse
+    { _accNextPageToken = Nothing
+    , _accAccounts = Nothing
+    , _accKind = "dfareporting#accountsListResponse"
+    }
+
+-- | Pagination token to be used for the next list operation.
+accNextPageToken :: Lens' AccountsListResponse (Maybe Text)
+accNextPageToken
+  = lens _accNextPageToken
+      (\ s a -> s{_accNextPageToken = a})
+
+-- | Account collection.
+accAccounts :: Lens' AccountsListResponse [Account]
+accAccounts
+  = lens _accAccounts (\ s a -> s{_accAccounts = a}) .
+      _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountsListResponse\".
+accKind :: Lens' AccountsListResponse Text
+accKind = lens _accKind (\ s a -> s{_accKind = a})
+
+instance FromJSON AccountsListResponse where
+        parseJSON
+          = withObject "AccountsListResponse"
+              (\ o ->
+                 AccountsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "accounts" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#accountsListResponse"))
+
+instance ToJSON AccountsListResponse where
+        toJSON AccountsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _accNextPageToken,
+                  ("accounts" .=) <$> _accAccounts,
+                  Just ("kind" .= _accKind)])
+
+-- | Represents a date range.
+--
+-- /See:/ 'dateRange' smart constructor.
+data DateRange = DateRange
+    { _drKind              :: !Text
+    , _drEndDate           :: !(Maybe Date')
+    , _drStartDate         :: !(Maybe Date')
+    , _drRelativeDateRange :: !(Maybe DateRangeRelativeDateRange)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DateRange' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drKind'
+--
+-- * 'drEndDate'
+--
+-- * 'drStartDate'
+--
+-- * 'drRelativeDateRange'
+dateRange
+    :: DateRange
+dateRange =
+    DateRange
+    { _drKind = "dfareporting#dateRange"
+    , _drEndDate = Nothing
+    , _drStartDate = Nothing
+    , _drRelativeDateRange = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#dateRange.
+drKind :: Lens' DateRange Text
+drKind = lens _drKind (\ s a -> s{_drKind = a})
+
+-- | The end date of the date range, inclusive. A string of the format:
+-- \"yyyy-MM-dd\".
+drEndDate :: Lens' DateRange (Maybe Day)
+drEndDate
+  = lens _drEndDate (\ s a -> s{_drEndDate = a}) .
+      mapping _Date
+
+-- | The start date of the date range, inclusive. A string of the format:
+-- \"yyyy-MM-dd\".
+drStartDate :: Lens' DateRange (Maybe Day)
+drStartDate
+  = lens _drStartDate (\ s a -> s{_drStartDate = a}) .
+      mapping _Date
+
+-- | The date range relative to the date of when the report is run.
+drRelativeDateRange :: Lens' DateRange (Maybe DateRangeRelativeDateRange)
+drRelativeDateRange
+  = lens _drRelativeDateRange
+      (\ s a -> s{_drRelativeDateRange = a})
+
+instance FromJSON DateRange where
+        parseJSON
+          = withObject "DateRange"
+              (\ o ->
+                 DateRange <$>
+                   (o .:? "kind" .!= "dfareporting#dateRange") <*>
+                     (o .:? "endDate")
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "relativeDateRange"))
+
+instance ToJSON DateRange where
+        toJSON DateRange{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _drKind),
+                  ("endDate" .=) <$> _drEndDate,
+                  ("startDate" .=) <$> _drStartDate,
+                  ("relativeDateRange" .=) <$> _drRelativeDateRange])
+
+-- | Represents a Report resource.
+--
+-- /See:/ 'report' smart constructor.
+data Report = Report
+    { _rDelivery                    :: !(Maybe ReportDelivery)
+    , _rEtag                        :: !(Maybe Text)
+    , _rOwnerProFileId              :: !(Maybe (Textual Int64))
+    , _rSchedule                    :: !(Maybe ReportSchedule)
+    , _rPathToConversionCriteria    :: !(Maybe ReportPathToConversionCriteria)
+    , _rKind                        :: !Text
+    , _rFormat                      :: !(Maybe ReportFormat)
+    , _rReachCriteria               :: !(Maybe ReportReachCriteria)
+    , _rLastModifiedTime            :: !(Maybe (Textual Word64))
+    , _rAccountId                   :: !(Maybe (Textual Int64))
+    , _rName                        :: !(Maybe Text)
+    , _rId                          :: !(Maybe (Textual Int64))
+    , _rCrossDimensionReachCriteria :: !(Maybe ReportCrossDimensionReachCriteria)
+    , _rType                        :: !(Maybe ReportType)
+    , _rSubAccountId                :: !(Maybe (Textual Int64))
+    , _rFloodlightCriteria          :: !(Maybe ReportFloodlightCriteria)
+    , _rCriteria                    :: !(Maybe ReportCriteria)
+    , _rFileName                    :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Report' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rDelivery'
+--
+-- * 'rEtag'
+--
+-- * 'rOwnerProFileId'
+--
+-- * 'rSchedule'
+--
+-- * 'rPathToConversionCriteria'
+--
+-- * 'rKind'
+--
+-- * 'rFormat'
+--
+-- * 'rReachCriteria'
+--
+-- * 'rLastModifiedTime'
+--
+-- * 'rAccountId'
+--
+-- * 'rName'
+--
+-- * 'rId'
+--
+-- * 'rCrossDimensionReachCriteria'
+--
+-- * 'rType'
+--
+-- * 'rSubAccountId'
+--
+-- * 'rFloodlightCriteria'
+--
+-- * 'rCriteria'
+--
+-- * 'rFileName'
+report
+    :: Report
+report =
+    Report
+    { _rDelivery = Nothing
+    , _rEtag = Nothing
+    , _rOwnerProFileId = Nothing
+    , _rSchedule = Nothing
+    , _rPathToConversionCriteria = Nothing
+    , _rKind = "dfareporting#report"
+    , _rFormat = Nothing
+    , _rReachCriteria = Nothing
+    , _rLastModifiedTime = Nothing
+    , _rAccountId = Nothing
+    , _rName = Nothing
+    , _rId = Nothing
+    , _rCrossDimensionReachCriteria = Nothing
+    , _rType = Nothing
+    , _rSubAccountId = Nothing
+    , _rFloodlightCriteria = Nothing
+    , _rCriteria = Nothing
+    , _rFileName = Nothing
+    }
+
+-- | The report\'s email delivery settings.
+rDelivery :: Lens' Report (Maybe ReportDelivery)
+rDelivery
+  = lens _rDelivery (\ s a -> s{_rDelivery = a})
+
+-- | The eTag of this response for caching purposes.
+rEtag :: Lens' Report (Maybe Text)
+rEtag = lens _rEtag (\ s a -> s{_rEtag = a})
+
+-- | The user profile id of the owner of this report.
+rOwnerProFileId :: Lens' Report (Maybe Int64)
+rOwnerProFileId
+  = lens _rOwnerProFileId
+      (\ s a -> s{_rOwnerProFileId = a})
+      . mapping _Coerce
+
+-- | The report\'s schedule. Can only be set if the report\'s \'dateRange\'
+-- is a relative date range and the relative date range is not \"TODAY\".
+rSchedule :: Lens' Report (Maybe ReportSchedule)
+rSchedule
+  = lens _rSchedule (\ s a -> s{_rSchedule = a})
+
+-- | The report criteria for a report of type \"PATH_TO_CONVERSION\".
+rPathToConversionCriteria :: Lens' Report (Maybe ReportPathToConversionCriteria)
+rPathToConversionCriteria
+  = lens _rPathToConversionCriteria
+      (\ s a -> s{_rPathToConversionCriteria = a})
+
+-- | The kind of resource this is, in this case dfareporting#report.
+rKind :: Lens' Report Text
+rKind = lens _rKind (\ s a -> s{_rKind = a})
+
+-- | The output format of the report. If not specified, default format is
+-- \"CSV\". Note that the actual format in the completed report file might
+-- differ if for instance the report\'s size exceeds the format\'s
+-- capabilities. \"CSV\" will then be the fallback format.
+rFormat :: Lens' Report (Maybe ReportFormat)
+rFormat = lens _rFormat (\ s a -> s{_rFormat = a})
+
+-- | The report criteria for a report of type \"REACH\".
+rReachCriteria :: Lens' Report (Maybe ReportReachCriteria)
+rReachCriteria
+  = lens _rReachCriteria
+      (\ s a -> s{_rReachCriteria = a})
+
+-- | The timestamp (in milliseconds since epoch) of when this report was last
+-- modified.
+rLastModifiedTime :: Lens' Report (Maybe Word64)
+rLastModifiedTime
+  = lens _rLastModifiedTime
+      (\ s a -> s{_rLastModifiedTime = a})
+      . mapping _Coerce
+
+-- | The account ID to which this report belongs.
+rAccountId :: Lens' Report (Maybe Int64)
+rAccountId
+  = lens _rAccountId (\ s a -> s{_rAccountId = a}) .
+      mapping _Coerce
+
+-- | The name of the report.
+rName :: Lens' Report (Maybe Text)
+rName = lens _rName (\ s a -> s{_rName = a})
+
+-- | The unique ID identifying this report resource.
+rId :: Lens' Report (Maybe Int64)
+rId
+  = lens _rId (\ s a -> s{_rId = a}) . mapping _Coerce
+
+-- | The report criteria for a report of type \"CROSS_DIMENSION_REACH\".
+rCrossDimensionReachCriteria :: Lens' Report (Maybe ReportCrossDimensionReachCriteria)
+rCrossDimensionReachCriteria
+  = lens _rCrossDimensionReachCriteria
+      (\ s a -> s{_rCrossDimensionReachCriteria = a})
+
+-- | The type of the report.
+rType :: Lens' Report (Maybe ReportType)
+rType = lens _rType (\ s a -> s{_rType = a})
+
+-- | The subaccount ID to which this report belongs if applicable.
+rSubAccountId :: Lens' Report (Maybe Int64)
+rSubAccountId
+  = lens _rSubAccountId
+      (\ s a -> s{_rSubAccountId = a})
+      . mapping _Coerce
+
+-- | The report criteria for a report of type \"FLOODLIGHT\".
+rFloodlightCriteria :: Lens' Report (Maybe ReportFloodlightCriteria)
+rFloodlightCriteria
+  = lens _rFloodlightCriteria
+      (\ s a -> s{_rFloodlightCriteria = a})
+
+-- | The report criteria for a report of type \"STANDARD\".
+rCriteria :: Lens' Report (Maybe ReportCriteria)
+rCriteria
+  = lens _rCriteria (\ s a -> s{_rCriteria = a})
+
+-- | The filename used when generating report files for this report.
+rFileName :: Lens' Report (Maybe Text)
+rFileName
+  = lens _rFileName (\ s a -> s{_rFileName = a})
+
+instance FromJSON Report where
+        parseJSON
+          = withObject "Report"
+              (\ o ->
+                 Report <$>
+                   (o .:? "delivery") <*> (o .:? "etag") <*>
+                     (o .:? "ownerProfileId")
+                     <*> (o .:? "schedule")
+                     <*> (o .:? "pathToConversionCriteria")
+                     <*> (o .:? "kind" .!= "dfareporting#report")
+                     <*> (o .:? "format")
+                     <*> (o .:? "reachCriteria")
+                     <*> (o .:? "lastModifiedTime")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "crossDimensionReachCriteria")
+                     <*> (o .:? "type")
+                     <*> (o .:? "subAccountId")
+                     <*> (o .:? "floodlightCriteria")
+                     <*> (o .:? "criteria")
+                     <*> (o .:? "fileName"))
+
+instance ToJSON Report where
+        toJSON Report{..}
+          = object
+              (catMaybes
+                 [("delivery" .=) <$> _rDelivery,
+                  ("etag" .=) <$> _rEtag,
+                  ("ownerProfileId" .=) <$> _rOwnerProFileId,
+                  ("schedule" .=) <$> _rSchedule,
+                  ("pathToConversionCriteria" .=) <$>
+                    _rPathToConversionCriteria,
+                  Just ("kind" .= _rKind), ("format" .=) <$> _rFormat,
+                  ("reachCriteria" .=) <$> _rReachCriteria,
+                  ("lastModifiedTime" .=) <$> _rLastModifiedTime,
+                  ("accountId" .=) <$> _rAccountId,
+                  ("name" .=) <$> _rName, ("id" .=) <$> _rId,
+                  ("crossDimensionReachCriteria" .=) <$>
+                    _rCrossDimensionReachCriteria,
+                  ("type" .=) <$> _rType,
+                  ("subAccountId" .=) <$> _rSubAccountId,
+                  ("floodlightCriteria" .=) <$> _rFloodlightCriteria,
+                  ("criteria" .=) <$> _rCriteria,
+                  ("fileName" .=) <$> _rFileName])
+
+-- | Contains properties of a DCM campaign.
+--
+-- /See:/ 'campaign' smart constructor.
+data Campaign = Campaign
+    { _camCreativeOptimizationConfiguration            :: !(Maybe CreativeOptimizationConfiguration)
+    , _camCreativeGroupIds                             :: !(Maybe [Textual Int64])
+    , _camNielsenOCREnabled                            :: !(Maybe Bool)
+    , _camKind                                         :: !Text
+    , _camClickThroughURLSuffixProperties              :: !(Maybe ClickThroughURLSuffixProperties)
+    , _camAdvertiserId                                 :: !(Maybe (Textual Int64))
+    , _camEndDate                                      :: !(Maybe Date')
+    , _camAdvertiserIdDimensionValue                   :: !(Maybe DimensionValue)
+    , _camIdDimensionValue                             :: !(Maybe DimensionValue)
+    , _camEventTagOverrides                            :: !(Maybe [EventTagOverride])
+    , _camLookbackConfiguration                        :: !(Maybe LookbackConfiguration)
+    , _camStartDate                                    :: !(Maybe Date')
+    , _camAccountId                                    :: !(Maybe (Textual Int64))
+    , _camComscoreVceEnabled                           :: !(Maybe Bool)
+    , _camName                                         :: !(Maybe Text)
+    , _camAdvertiserGroupId                            :: !(Maybe (Textual Int64))
+    , _camBillingInvoiceCode                           :: !(Maybe Text)
+    , _camCreateInfo                                   :: !(Maybe LastModifiedInfo)
+    , _camLastModifiedInfo                             :: !(Maybe LastModifiedInfo)
+    , _camId                                           :: !(Maybe (Textual Int64))
+    , _camSubAccountId                                 :: !(Maybe (Textual Int64))
+    , _camAdditionalCreativeOptimizationConfigurations :: !(Maybe [CreativeOptimizationConfiguration])
+    , _camExternalId                                   :: !(Maybe Text)
+    , _camComment                                      :: !(Maybe Text)
+    , _camAudienceSegmentGroups                        :: !(Maybe [AudienceSegmentGroup])
+    , _camArchived                                     :: !(Maybe Bool)
+    , _camTraffickerEmails                             :: !(Maybe [Text])
+    , _camDefaultClickThroughEventTagProperties        :: !(Maybe DefaultClickThroughEventTagProperties)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Campaign' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'camCreativeOptimizationConfiguration'
+--
+-- * 'camCreativeGroupIds'
+--
+-- * 'camNielsenOCREnabled'
+--
+-- * 'camKind'
+--
+-- * 'camClickThroughURLSuffixProperties'
+--
+-- * 'camAdvertiserId'
+--
+-- * 'camEndDate'
+--
+-- * 'camAdvertiserIdDimensionValue'
+--
+-- * 'camIdDimensionValue'
+--
+-- * 'camEventTagOverrides'
+--
+-- * 'camLookbackConfiguration'
+--
+-- * 'camStartDate'
+--
+-- * 'camAccountId'
+--
+-- * 'camComscoreVceEnabled'
+--
+-- * 'camName'
+--
+-- * 'camAdvertiserGroupId'
+--
+-- * 'camBillingInvoiceCode'
+--
+-- * 'camCreateInfo'
+--
+-- * 'camLastModifiedInfo'
+--
+-- * 'camId'
+--
+-- * 'camSubAccountId'
+--
+-- * 'camAdditionalCreativeOptimizationConfigurations'
+--
+-- * 'camExternalId'
+--
+-- * 'camComment'
+--
+-- * 'camAudienceSegmentGroups'
+--
+-- * 'camArchived'
+--
+-- * 'camTraffickerEmails'
+--
+-- * 'camDefaultClickThroughEventTagProperties'
+campaign
+    :: Campaign
+campaign =
+    Campaign
+    { _camCreativeOptimizationConfiguration = Nothing
+    , _camCreativeGroupIds = Nothing
+    , _camNielsenOCREnabled = Nothing
+    , _camKind = "dfareporting#campaign"
+    , _camClickThroughURLSuffixProperties = Nothing
+    , _camAdvertiserId = Nothing
+    , _camEndDate = Nothing
+    , _camAdvertiserIdDimensionValue = Nothing
+    , _camIdDimensionValue = Nothing
+    , _camEventTagOverrides = Nothing
+    , _camLookbackConfiguration = Nothing
+    , _camStartDate = Nothing
+    , _camAccountId = Nothing
+    , _camComscoreVceEnabled = Nothing
+    , _camName = Nothing
+    , _camAdvertiserGroupId = Nothing
+    , _camBillingInvoiceCode = Nothing
+    , _camCreateInfo = Nothing
+    , _camLastModifiedInfo = Nothing
+    , _camId = Nothing
+    , _camSubAccountId = Nothing
+    , _camAdditionalCreativeOptimizationConfigurations = Nothing
+    , _camExternalId = Nothing
+    , _camComment = Nothing
+    , _camAudienceSegmentGroups = Nothing
+    , _camArchived = Nothing
+    , _camTraffickerEmails = Nothing
+    , _camDefaultClickThroughEventTagProperties = Nothing
+    }
+
+-- | Creative optimization configuration for the campaign.
+camCreativeOptimizationConfiguration :: Lens' Campaign (Maybe CreativeOptimizationConfiguration)
+camCreativeOptimizationConfiguration
+  = lens _camCreativeOptimizationConfiguration
+      (\ s a ->
+         s{_camCreativeOptimizationConfiguration = a})
+
+-- | List of creative group IDs that are assigned to the campaign.
+camCreativeGroupIds :: Lens' Campaign [Int64]
+camCreativeGroupIds
+  = lens _camCreativeGroupIds
+      (\ s a -> s{_camCreativeGroupIds = a})
+      . _Default
+      . _Coerce
+
+-- | Whether Nielsen reports are enabled for this campaign.
+camNielsenOCREnabled :: Lens' Campaign (Maybe Bool)
+camNielsenOCREnabled
+  = lens _camNielsenOCREnabled
+      (\ s a -> s{_camNielsenOCREnabled = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#campaign\".
+camKind :: Lens' Campaign Text
+camKind = lens _camKind (\ s a -> s{_camKind = a})
+
+-- | Click-through URL suffix override properties for this campaign.
+camClickThroughURLSuffixProperties :: Lens' Campaign (Maybe ClickThroughURLSuffixProperties)
+camClickThroughURLSuffixProperties
+  = lens _camClickThroughURLSuffixProperties
+      (\ s a -> s{_camClickThroughURLSuffixProperties = a})
+
+-- | Advertiser ID of this campaign. This is a required field.
+camAdvertiserId :: Lens' Campaign (Maybe Int64)
+camAdvertiserId
+  = lens _camAdvertiserId
+      (\ s a -> s{_camAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Date on which the campaign will stop running. On insert, the end date
+-- must be today or a future date. The end date must be later than or be
+-- the same as the start date. If, for example, you set 6\/25\/2015 as both
+-- the start and end dates, the effective campaign run date is just that
+-- day only, 6\/25\/2015. The hours, minutes, and seconds of the end date
+-- should not be set, as doing so will result in an error. This is a
+-- required field.
+camEndDate :: Lens' Campaign (Maybe Day)
+camEndDate
+  = lens _camEndDate (\ s a -> s{_camEndDate = a}) .
+      mapping _Date
+
+-- | Dimension value for the advertiser ID of this campaign. This is a
+-- read-only, auto-generated field.
+camAdvertiserIdDimensionValue :: Lens' Campaign (Maybe DimensionValue)
+camAdvertiserIdDimensionValue
+  = lens _camAdvertiserIdDimensionValue
+      (\ s a -> s{_camAdvertiserIdDimensionValue = a})
+
+-- | Dimension value for the ID of this campaign. This is a read-only,
+-- auto-generated field.
+camIdDimensionValue :: Lens' Campaign (Maybe DimensionValue)
+camIdDimensionValue
+  = lens _camIdDimensionValue
+      (\ s a -> s{_camIdDimensionValue = a})
+
+-- | Overrides that can be used to activate or deactivate advertiser event
+-- tags.
+camEventTagOverrides :: Lens' Campaign [EventTagOverride]
+camEventTagOverrides
+  = lens _camEventTagOverrides
+      (\ s a -> s{_camEventTagOverrides = a})
+      . _Default
+      . _Coerce
+
+-- | Lookback window settings for the campaign.
+camLookbackConfiguration :: Lens' Campaign (Maybe LookbackConfiguration)
+camLookbackConfiguration
+  = lens _camLookbackConfiguration
+      (\ s a -> s{_camLookbackConfiguration = a})
+
+-- | Date on which the campaign starts running. The start date can be any
+-- date. The hours, minutes, and seconds of the start date should not be
+-- set, as doing so will result in an error. This is a required field.
+camStartDate :: Lens' Campaign (Maybe Day)
+camStartDate
+  = lens _camStartDate (\ s a -> s{_camStartDate = a})
+      . mapping _Date
+
+-- | Account ID of this campaign. This is a read-only field that can be left
+-- blank.
+camAccountId :: Lens' Campaign (Maybe Int64)
+camAccountId
+  = lens _camAccountId (\ s a -> s{_camAccountId = a})
+      . mapping _Coerce
+
+-- | Whether comScore vCE reports are enabled for this campaign.
+camComscoreVceEnabled :: Lens' Campaign (Maybe Bool)
+camComscoreVceEnabled
+  = lens _camComscoreVceEnabled
+      (\ s a -> s{_camComscoreVceEnabled = a})
+
+-- | Name of this campaign. This is a required field and must be less than
+-- 256 characters long and unique among campaigns of the same advertiser.
+camName :: Lens' Campaign (Maybe Text)
+camName = lens _camName (\ s a -> s{_camName = a})
+
+-- | Advertiser group ID of the associated advertiser.
+camAdvertiserGroupId :: Lens' Campaign (Maybe Int64)
+camAdvertiserGroupId
+  = lens _camAdvertiserGroupId
+      (\ s a -> s{_camAdvertiserGroupId = a})
+      . mapping _Coerce
+
+-- | Billing invoice code included in the DCM client billing invoices
+-- associated with the campaign.
+camBillingInvoiceCode :: Lens' Campaign (Maybe Text)
+camBillingInvoiceCode
+  = lens _camBillingInvoiceCode
+      (\ s a -> s{_camBillingInvoiceCode = a})
+
+-- | Information about the creation of this campaign. This is a read-only
+-- field.
+camCreateInfo :: Lens' Campaign (Maybe LastModifiedInfo)
+camCreateInfo
+  = lens _camCreateInfo
+      (\ s a -> s{_camCreateInfo = a})
+
+-- | Information about the most recent modification of this campaign. This is
+-- a read-only field.
+camLastModifiedInfo :: Lens' Campaign (Maybe LastModifiedInfo)
+camLastModifiedInfo
+  = lens _camLastModifiedInfo
+      (\ s a -> s{_camLastModifiedInfo = a})
+
+-- | ID of this campaign. This is a read-only auto-generated field.
+camId :: Lens' Campaign (Maybe Int64)
+camId
+  = lens _camId (\ s a -> s{_camId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this campaign. This is a read-only field that can be
+-- left blank.
+camSubAccountId :: Lens' Campaign (Maybe Int64)
+camSubAccountId
+  = lens _camSubAccountId
+      (\ s a -> s{_camSubAccountId = a})
+      . mapping _Coerce
+
+-- | Additional creative optimization configurations for the campaign.
+camAdditionalCreativeOptimizationConfigurations :: Lens' Campaign [CreativeOptimizationConfiguration]
+camAdditionalCreativeOptimizationConfigurations
+  = lens
+      _camAdditionalCreativeOptimizationConfigurations
+      (\ s a ->
+         s{_camAdditionalCreativeOptimizationConfigurations =
+             a})
+      . _Default
+      . _Coerce
+
+-- | External ID for this campaign.
+camExternalId :: Lens' Campaign (Maybe Text)
+camExternalId
+  = lens _camExternalId
+      (\ s a -> s{_camExternalId = a})
+
+-- | Arbitrary comments about this campaign. Must be less than 256 characters
+-- long.
+camComment :: Lens' Campaign (Maybe Text)
+camComment
+  = lens _camComment (\ s a -> s{_camComment = a})
+
+-- | Audience segment groups assigned to this campaign. Cannot have more than
+-- 300 segment groups.
+camAudienceSegmentGroups :: Lens' Campaign [AudienceSegmentGroup]
+camAudienceSegmentGroups
+  = lens _camAudienceSegmentGroups
+      (\ s a -> s{_camAudienceSegmentGroups = a})
+      . _Default
+      . _Coerce
+
+-- | Whether this campaign has been archived.
+camArchived :: Lens' Campaign (Maybe Bool)
+camArchived
+  = lens _camArchived (\ s a -> s{_camArchived = a})
+
+-- | Campaign trafficker contact emails.
+camTraffickerEmails :: Lens' Campaign [Text]
+camTraffickerEmails
+  = lens _camTraffickerEmails
+      (\ s a -> s{_camTraffickerEmails = a})
+      . _Default
+      . _Coerce
+
+-- | Click-through event tag ID override properties for this campaign.
+camDefaultClickThroughEventTagProperties :: Lens' Campaign (Maybe DefaultClickThroughEventTagProperties)
+camDefaultClickThroughEventTagProperties
+  = lens _camDefaultClickThroughEventTagProperties
+      (\ s a ->
+         s{_camDefaultClickThroughEventTagProperties = a})
+
+instance FromJSON Campaign where
+        parseJSON
+          = withObject "Campaign"
+              (\ o ->
+                 Campaign <$>
+                   (o .:? "creativeOptimizationConfiguration") <*>
+                     (o .:? "creativeGroupIds" .!= mempty)
+                     <*> (o .:? "nielsenOcrEnabled")
+                     <*> (o .:? "kind" .!= "dfareporting#campaign")
+                     <*> (o .:? "clickThroughUrlSuffixProperties")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "endDate")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "eventTagOverrides" .!= mempty)
+                     <*> (o .:? "lookbackConfiguration")
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "comscoreVceEnabled")
+                     <*> (o .:? "name")
+                     <*> (o .:? "advertiserGroupId")
+                     <*> (o .:? "billingInvoiceCode")
+                     <*> (o .:? "createInfo")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*>
+                     (o .:? "additionalCreativeOptimizationConfigurations"
+                        .!= mempty)
+                     <*> (o .:? "externalId")
+                     <*> (o .:? "comment")
+                     <*> (o .:? "audienceSegmentGroups" .!= mempty)
+                     <*> (o .:? "archived")
+                     <*> (o .:? "traffickerEmails" .!= mempty)
+                     <*> (o .:? "defaultClickThroughEventTagProperties"))
+
+instance ToJSON Campaign where
+        toJSON Campaign{..}
+          = object
+              (catMaybes
+                 [("creativeOptimizationConfiguration" .=) <$>
+                    _camCreativeOptimizationConfiguration,
+                  ("creativeGroupIds" .=) <$> _camCreativeGroupIds,
+                  ("nielsenOcrEnabled" .=) <$> _camNielsenOCREnabled,
+                  Just ("kind" .= _camKind),
+                  ("clickThroughUrlSuffixProperties" .=) <$>
+                    _camClickThroughURLSuffixProperties,
+                  ("advertiserId" .=) <$> _camAdvertiserId,
+                  ("endDate" .=) <$> _camEndDate,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _camAdvertiserIdDimensionValue,
+                  ("idDimensionValue" .=) <$> _camIdDimensionValue,
+                  ("eventTagOverrides" .=) <$> _camEventTagOverrides,
+                  ("lookbackConfiguration" .=) <$>
+                    _camLookbackConfiguration,
+                  ("startDate" .=) <$> _camStartDate,
+                  ("accountId" .=) <$> _camAccountId,
+                  ("comscoreVceEnabled" .=) <$> _camComscoreVceEnabled,
+                  ("name" .=) <$> _camName,
+                  ("advertiserGroupId" .=) <$> _camAdvertiserGroupId,
+                  ("billingInvoiceCode" .=) <$> _camBillingInvoiceCode,
+                  ("createInfo" .=) <$> _camCreateInfo,
+                  ("lastModifiedInfo" .=) <$> _camLastModifiedInfo,
+                  ("id" .=) <$> _camId,
+                  ("subaccountId" .=) <$> _camSubAccountId,
+                  ("additionalCreativeOptimizationConfigurations" .=)
+                    <$> _camAdditionalCreativeOptimizationConfigurations,
+                  ("externalId" .=) <$> _camExternalId,
+                  ("comment" .=) <$> _camComment,
+                  ("audienceSegmentGroups" .=) <$>
+                    _camAudienceSegmentGroups,
+                  ("archived" .=) <$> _camArchived,
+                  ("traffickerEmails" .=) <$> _camTraffickerEmails,
+                  ("defaultClickThroughEventTagProperties" .=) <$>
+                    _camDefaultClickThroughEventTagProperties])
+
+-- | Third Party Authentication Token
+--
+-- /See:/ 'thirdPartyAuthenticationToken' smart constructor.
+data ThirdPartyAuthenticationToken = ThirdPartyAuthenticationToken
+    { _tpatValue :: !(Maybe Text)
+    , _tpatName  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ThirdPartyAuthenticationToken' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tpatValue'
+--
+-- * 'tpatName'
+thirdPartyAuthenticationToken
+    :: ThirdPartyAuthenticationToken
+thirdPartyAuthenticationToken =
+    ThirdPartyAuthenticationToken
+    { _tpatValue = Nothing
+    , _tpatName = Nothing
+    }
+
+-- | Value of the third-party authentication token. This is a read-only,
+-- auto-generated field.
+tpatValue :: Lens' ThirdPartyAuthenticationToken (Maybe Text)
+tpatValue
+  = lens _tpatValue (\ s a -> s{_tpatValue = a})
+
+-- | Name of the third-party authentication token.
+tpatName :: Lens' ThirdPartyAuthenticationToken (Maybe Text)
+tpatName = lens _tpatName (\ s a -> s{_tpatName = a})
+
+instance FromJSON ThirdPartyAuthenticationToken where
+        parseJSON
+          = withObject "ThirdPartyAuthenticationToken"
+              (\ o ->
+                 ThirdPartyAuthenticationToken <$>
+                   (o .:? "value") <*> (o .:? "name"))
+
+instance ToJSON ThirdPartyAuthenticationToken where
+        toJSON ThirdPartyAuthenticationToken{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _tpatValue,
+                  ("name" .=) <$> _tpatName])
+
+-- | Click-through URL
+--
+-- /See:/ 'clickThroughURL' smart constructor.
+data ClickThroughURL = ClickThroughURL
+    { _ctuDefaultLandingPage      :: !(Maybe Bool)
+    , _ctuComputedClickThroughURL :: !(Maybe Text)
+    , _ctuCustomClickThroughURL   :: !(Maybe Text)
+    , _ctuLandingPageId           :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ClickThroughURL' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctuDefaultLandingPage'
+--
+-- * 'ctuComputedClickThroughURL'
+--
+-- * 'ctuCustomClickThroughURL'
+--
+-- * 'ctuLandingPageId'
+clickThroughURL
+    :: ClickThroughURL
+clickThroughURL =
+    ClickThroughURL
+    { _ctuDefaultLandingPage = Nothing
+    , _ctuComputedClickThroughURL = Nothing
+    , _ctuCustomClickThroughURL = Nothing
+    , _ctuLandingPageId = Nothing
+    }
+
+-- | Whether the campaign default landing page is used.
+ctuDefaultLandingPage :: Lens' ClickThroughURL (Maybe Bool)
+ctuDefaultLandingPage
+  = lens _ctuDefaultLandingPage
+      (\ s a -> s{_ctuDefaultLandingPage = a})
+
+-- | Read-only convenience field representing the actual URL that will be
+-- used for this click-through. The URL is computed as follows: - If
+-- defaultLandingPage is enabled then the campaign\'s default landing page
+-- URL is assigned to this field. - If defaultLandingPage is not enabled
+-- and a landingPageId is specified then that landing page\'s URL is
+-- assigned to this field. - If neither of the above cases apply, then the
+-- customClickThroughUrl is assigned to this field.
+ctuComputedClickThroughURL :: Lens' ClickThroughURL (Maybe Text)
+ctuComputedClickThroughURL
+  = lens _ctuComputedClickThroughURL
+      (\ s a -> s{_ctuComputedClickThroughURL = a})
+
+-- | Custom click-through URL. Applicable if the defaultLandingPage field is
+-- set to false and the landingPageId field is left unset.
+ctuCustomClickThroughURL :: Lens' ClickThroughURL (Maybe Text)
+ctuCustomClickThroughURL
+  = lens _ctuCustomClickThroughURL
+      (\ s a -> s{_ctuCustomClickThroughURL = a})
+
+-- | ID of the landing page for the click-through URL. Applicable if the
+-- defaultLandingPage field is set to false.
+ctuLandingPageId :: Lens' ClickThroughURL (Maybe Int64)
+ctuLandingPageId
+  = lens _ctuLandingPageId
+      (\ s a -> s{_ctuLandingPageId = a})
+      . mapping _Coerce
+
+instance FromJSON ClickThroughURL where
+        parseJSON
+          = withObject "ClickThroughURL"
+              (\ o ->
+                 ClickThroughURL <$>
+                   (o .:? "defaultLandingPage") <*>
+                     (o .:? "computedClickThroughUrl")
+                     <*> (o .:? "customClickThroughUrl")
+                     <*> (o .:? "landingPageId"))
+
+instance ToJSON ClickThroughURL where
+        toJSON ClickThroughURL{..}
+          = object
+              (catMaybes
+                 [("defaultLandingPage" .=) <$>
+                    _ctuDefaultLandingPage,
+                  ("computedClickThroughUrl" .=) <$>
+                    _ctuComputedClickThroughURL,
+                  ("customClickThroughUrl" .=) <$>
+                    _ctuCustomClickThroughURL,
+                  ("landingPageId" .=) <$> _ctuLandingPageId])
+
+-- | Browser List Response
+--
+-- /See:/ 'browsersListResponse' smart constructor.
+data BrowsersListResponse = BrowsersListResponse
+    { _blrKind     :: !Text
+    , _blrBrowsers :: !(Maybe [Browser])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BrowsersListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blrKind'
+--
+-- * 'blrBrowsers'
+browsersListResponse
+    :: BrowsersListResponse
+browsersListResponse =
+    BrowsersListResponse
+    { _blrKind = "dfareporting#browsersListResponse"
+    , _blrBrowsers = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#browsersListResponse\".
+blrKind :: Lens' BrowsersListResponse Text
+blrKind = lens _blrKind (\ s a -> s{_blrKind = a})
+
+-- | Browser collection.
+blrBrowsers :: Lens' BrowsersListResponse [Browser]
+blrBrowsers
+  = lens _blrBrowsers (\ s a -> s{_blrBrowsers = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON BrowsersListResponse where
+        parseJSON
+          = withObject "BrowsersListResponse"
+              (\ o ->
+                 BrowsersListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#browsersListResponse")
+                     <*> (o .:? "browsers" .!= mempty))
+
+instance ToJSON BrowsersListResponse where
+        toJSON BrowsersListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _blrKind),
+                  ("browsers" .=) <$> _blrBrowsers])
+
+-- | Site Settings
+--
+-- /See:/ 'siteSettings' smart constructor.
+data SiteSettings = SiteSettings
+    { _ssDisableNewCookie      :: !(Maybe Bool)
+    , _ssDisableBrandSafeAds   :: !(Maybe Bool)
+    , _ssLookbackConfiguration :: !(Maybe LookbackConfiguration)
+    , _ssTagSetting            :: !(Maybe TagSetting)
+    , _ssActiveViewOptOut      :: !(Maybe Bool)
+    , _ssCreativeSettings      :: !(Maybe CreativeSettings)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SiteSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssDisableNewCookie'
+--
+-- * 'ssDisableBrandSafeAds'
+--
+-- * 'ssLookbackConfiguration'
+--
+-- * 'ssTagSetting'
+--
+-- * 'ssActiveViewOptOut'
+--
+-- * 'ssCreativeSettings'
+siteSettings
+    :: SiteSettings
+siteSettings =
+    SiteSettings
+    { _ssDisableNewCookie = Nothing
+    , _ssDisableBrandSafeAds = Nothing
+    , _ssLookbackConfiguration = Nothing
+    , _ssTagSetting = Nothing
+    , _ssActiveViewOptOut = Nothing
+    , _ssCreativeSettings = Nothing
+    }
+
+-- | Whether new cookies are disabled for this site.
+ssDisableNewCookie :: Lens' SiteSettings (Maybe Bool)
+ssDisableNewCookie
+  = lens _ssDisableNewCookie
+      (\ s a -> s{_ssDisableNewCookie = a})
+
+-- | Whether brand safe ads are disabled for this site.
+ssDisableBrandSafeAds :: Lens' SiteSettings (Maybe Bool)
+ssDisableBrandSafeAds
+  = lens _ssDisableBrandSafeAds
+      (\ s a -> s{_ssDisableBrandSafeAds = a})
+
+-- | Lookback window settings for this site.
+ssLookbackConfiguration :: Lens' SiteSettings (Maybe LookbackConfiguration)
+ssLookbackConfiguration
+  = lens _ssLookbackConfiguration
+      (\ s a -> s{_ssLookbackConfiguration = a})
+
+-- | Configuration settings for dynamic and image floodlight tags.
+ssTagSetting :: Lens' SiteSettings (Maybe TagSetting)
+ssTagSetting
+  = lens _ssTagSetting (\ s a -> s{_ssTagSetting = a})
+
+-- | Whether active view creatives are disabled for this site.
+ssActiveViewOptOut :: Lens' SiteSettings (Maybe Bool)
+ssActiveViewOptOut
+  = lens _ssActiveViewOptOut
+      (\ s a -> s{_ssActiveViewOptOut = a})
+
+-- | Site-wide creative settings.
+ssCreativeSettings :: Lens' SiteSettings (Maybe CreativeSettings)
+ssCreativeSettings
+  = lens _ssCreativeSettings
+      (\ s a -> s{_ssCreativeSettings = a})
+
+instance FromJSON SiteSettings where
+        parseJSON
+          = withObject "SiteSettings"
+              (\ o ->
+                 SiteSettings <$>
+                   (o .:? "disableNewCookie") <*>
+                     (o .:? "disableBrandSafeAds")
+                     <*> (o .:? "lookbackConfiguration")
+                     <*> (o .:? "tagSetting")
+                     <*> (o .:? "activeViewOptOut")
+                     <*> (o .:? "creativeSettings"))
+
+instance ToJSON SiteSettings where
+        toJSON SiteSettings{..}
+          = object
+              (catMaybes
+                 [("disableNewCookie" .=) <$> _ssDisableNewCookie,
+                  ("disableBrandSafeAds" .=) <$>
+                    _ssDisableBrandSafeAds,
+                  ("lookbackConfiguration" .=) <$>
+                    _ssLookbackConfiguration,
+                  ("tagSetting" .=) <$> _ssTagSetting,
+                  ("activeViewOptOut" .=) <$> _ssActiveViewOptOut,
+                  ("creativeSettings" .=) <$> _ssCreativeSettings])
+
+-- | Content Category List Response
+--
+-- /See:/ 'contentCategoriesListResponse' smart constructor.
+data ContentCategoriesListResponse = ContentCategoriesListResponse
+    { _cclrNextPageToken     :: !(Maybe Text)
+    , _cclrKind              :: !Text
+    , _cclrContentCategories :: !(Maybe [ContentCategory])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContentCategoriesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cclrNextPageToken'
+--
+-- * 'cclrKind'
+--
+-- * 'cclrContentCategories'
+contentCategoriesListResponse
+    :: ContentCategoriesListResponse
+contentCategoriesListResponse =
+    ContentCategoriesListResponse
+    { _cclrNextPageToken = Nothing
+    , _cclrKind = "dfareporting#contentCategoriesListResponse"
+    , _cclrContentCategories = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+cclrNextPageToken :: Lens' ContentCategoriesListResponse (Maybe Text)
+cclrNextPageToken
+  = lens _cclrNextPageToken
+      (\ s a -> s{_cclrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#contentCategoriesListResponse\".
+cclrKind :: Lens' ContentCategoriesListResponse Text
+cclrKind = lens _cclrKind (\ s a -> s{_cclrKind = a})
+
+-- | Content category collection.
+cclrContentCategories :: Lens' ContentCategoriesListResponse [ContentCategory]
+cclrContentCategories
+  = lens _cclrContentCategories
+      (\ s a -> s{_cclrContentCategories = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ContentCategoriesListResponse where
+        parseJSON
+          = withObject "ContentCategoriesListResponse"
+              (\ o ->
+                 ContentCategoriesListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#contentCategoriesListResponse")
+                     <*> (o .:? "contentCategories" .!= mempty))
+
+instance ToJSON ContentCategoriesListResponse where
+        toJSON ContentCategoriesListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _cclrNextPageToken,
+                  Just ("kind" .= _cclrKind),
+                  ("contentCategories" .=) <$> _cclrContentCategories])
+
+-- | Creative List Response
+--
+-- /See:/ 'creativesListResponse' smart constructor.
+data CreativesListResponse = CreativesListResponse
+    { _clrlNextPageToken :: !(Maybe Text)
+    , _clrlKind          :: !Text
+    , _clrlCreatives     :: !(Maybe [Creative])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'clrlNextPageToken'
+--
+-- * 'clrlKind'
+--
+-- * 'clrlCreatives'
+creativesListResponse
+    :: CreativesListResponse
+creativesListResponse =
+    CreativesListResponse
+    { _clrlNextPageToken = Nothing
+    , _clrlKind = "dfareporting#creativesListResponse"
+    , _clrlCreatives = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+clrlNextPageToken :: Lens' CreativesListResponse (Maybe Text)
+clrlNextPageToken
+  = lens _clrlNextPageToken
+      (\ s a -> s{_clrlNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativesListResponse\".
+clrlKind :: Lens' CreativesListResponse Text
+clrlKind = lens _clrlKind (\ s a -> s{_clrlKind = a})
+
+-- | Creative collection.
+clrlCreatives :: Lens' CreativesListResponse [Creative]
+clrlCreatives
+  = lens _clrlCreatives
+      (\ s a -> s{_clrlCreatives = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CreativesListResponse where
+        parseJSON
+          = withObject "CreativesListResponse"
+              (\ o ->
+                 CreativesListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#creativesListResponse")
+                     <*> (o .:? "creatives" .!= mempty))
+
+instance ToJSON CreativesListResponse where
+        toJSON CreativesListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _clrlNextPageToken,
+                  Just ("kind" .= _clrlKind),
+                  ("creatives" .=) <$> _clrlCreatives])
+
+-- | Contains properties of a DCM account.
+--
+-- /See:/ 'account' smart constructor.
+data Account = Account
+    { _aaAccountPermissionIds   :: !(Maybe [Textual Int64])
+    , _aaMaximumImageSize       :: !(Maybe (Textual Int64))
+    , _aaCurrencyId             :: !(Maybe (Textual Int64))
+    , _aaReportsConfiguration   :: !(Maybe ReportsConfiguration)
+    , _aaNielsenOCREnabled      :: !(Maybe Bool)
+    , _aaKind                   :: !Text
+    , _aaLocale                 :: !(Maybe Text)
+    , _aaActive                 :: !(Maybe Bool)
+    , _aaAvailablePermissionIds :: !(Maybe [Textual Int64])
+    , _aaTeaserSizeLimit        :: !(Maybe (Textual Int64))
+    , _aaComscoreVceEnabled     :: !(Maybe Bool)
+    , _aaActiveViewOptOut       :: !(Maybe Bool)
+    , _aaName                   :: !(Maybe Text)
+    , _aaAccountProFile         :: !(Maybe AccountAccountProFile)
+    , _aaId                     :: !(Maybe (Textual Int64))
+    , _aaCountryId              :: !(Maybe (Textual Int64))
+    , _aaActiveAdsLimitTier     :: !(Maybe AccountActiveAdsLimitTier)
+    , _aaDefaultCreativeSizeId  :: !(Maybe (Textual Int64))
+    , _aaDescription            :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Account' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aaAccountPermissionIds'
+--
+-- * 'aaMaximumImageSize'
+--
+-- * 'aaCurrencyId'
+--
+-- * 'aaReportsConfiguration'
+--
+-- * 'aaNielsenOCREnabled'
+--
+-- * 'aaKind'
+--
+-- * 'aaLocale'
+--
+-- * 'aaActive'
+--
+-- * 'aaAvailablePermissionIds'
+--
+-- * 'aaTeaserSizeLimit'
+--
+-- * 'aaComscoreVceEnabled'
+--
+-- * 'aaActiveViewOptOut'
+--
+-- * 'aaName'
+--
+-- * 'aaAccountProFile'
+--
+-- * 'aaId'
+--
+-- * 'aaCountryId'
+--
+-- * 'aaActiveAdsLimitTier'
+--
+-- * 'aaDefaultCreativeSizeId'
+--
+-- * 'aaDescription'
+account
+    :: Account
+account =
+    Account
+    { _aaAccountPermissionIds = Nothing
+    , _aaMaximumImageSize = Nothing
+    , _aaCurrencyId = Nothing
+    , _aaReportsConfiguration = Nothing
+    , _aaNielsenOCREnabled = Nothing
+    , _aaKind = "dfareporting#account"
+    , _aaLocale = Nothing
+    , _aaActive = Nothing
+    , _aaAvailablePermissionIds = Nothing
+    , _aaTeaserSizeLimit = Nothing
+    , _aaComscoreVceEnabled = Nothing
+    , _aaActiveViewOptOut = Nothing
+    , _aaName = Nothing
+    , _aaAccountProFile = Nothing
+    , _aaId = Nothing
+    , _aaCountryId = Nothing
+    , _aaActiveAdsLimitTier = Nothing
+    , _aaDefaultCreativeSizeId = Nothing
+    , _aaDescription = Nothing
+    }
+
+-- | Account permissions assigned to this account.
+aaAccountPermissionIds :: Lens' Account [Int64]
+aaAccountPermissionIds
+  = lens _aaAccountPermissionIds
+      (\ s a -> s{_aaAccountPermissionIds = a})
+      . _Default
+      . _Coerce
+
+-- | Maximum image size allowed for this account.
+aaMaximumImageSize :: Lens' Account (Maybe Int64)
+aaMaximumImageSize
+  = lens _aaMaximumImageSize
+      (\ s a -> s{_aaMaximumImageSize = a})
+      . mapping _Coerce
+
+-- | ID of currency associated with this account. This is a required field.
+-- Acceptable values are: - \"1\" for USD - \"2\" for GBP - \"3\" for ESP -
+-- \"4\" for SEK - \"5\" for CAD - \"6\" for JPY - \"7\" for DEM - \"8\"
+-- for AUD - \"9\" for FRF - \"10\" for ITL - \"11\" for DKK - \"12\" for
+-- NOK - \"13\" for FIM - \"14\" for ZAR - \"15\" for IEP - \"16\" for NLG
+-- - \"17\" for EUR - \"18\" for KRW - \"19\" for TWD - \"20\" for SGD -
+-- \"21\" for CNY - \"22\" for HKD - \"23\" for NZD - \"24\" for MYR -
+-- \"25\" for BRL - \"26\" for PTE - \"27\" for MXP - \"28\" for CLP -
+-- \"29\" for TRY - \"30\" for ARS - \"31\" for PEN - \"32\" for ILS -
+-- \"33\" for CHF - \"34\" for VEF - \"35\" for COP - \"36\" for GTQ
+aaCurrencyId :: Lens' Account (Maybe Int64)
+aaCurrencyId
+  = lens _aaCurrencyId (\ s a -> s{_aaCurrencyId = a})
+      . mapping _Coerce
+
+-- | Reporting configuration of this account.
+aaReportsConfiguration :: Lens' Account (Maybe ReportsConfiguration)
+aaReportsConfiguration
+  = lens _aaReportsConfiguration
+      (\ s a -> s{_aaReportsConfiguration = a})
+
+-- | Whether campaigns created in this account will be enabled for Nielsen
+-- OCR reach ratings by default.
+aaNielsenOCREnabled :: Lens' Account (Maybe Bool)
+aaNielsenOCREnabled
+  = lens _aaNielsenOCREnabled
+      (\ s a -> s{_aaNielsenOCREnabled = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#account\".
+aaKind :: Lens' Account Text
+aaKind = lens _aaKind (\ s a -> s{_aaKind = a})
+
+-- | Locale of this account. Acceptable values are: - \"cs\" (Czech) - \"de\"
+-- (German) - \"en\" (English) - \"en-GB\" (English United Kingdom) -
+-- \"es\" (Spanish) - \"fr\" (French) - \"it\" (Italian) - \"ja\"
+-- (Japanese) - \"ko\" (Korean) - \"pl\" (Polish) - \"pt-BR\" (Portuguese
+-- Brazil) - \"ru\" (Russian) - \"sv\" (Swedish) - \"tr\" (Turkish) -
+-- \"zh-CN\" (Chinese Simplified) - \"zh-TW\" (Chinese Traditional)
+aaLocale :: Lens' Account (Maybe Text)
+aaLocale = lens _aaLocale (\ s a -> s{_aaLocale = a})
+
+-- | Whether this account is active.
+aaActive :: Lens' Account (Maybe Bool)
+aaActive = lens _aaActive (\ s a -> s{_aaActive = a})
+
+-- | User role permissions available to the user roles of this account.
+aaAvailablePermissionIds :: Lens' Account [Int64]
+aaAvailablePermissionIds
+  = lens _aaAvailablePermissionIds
+      (\ s a -> s{_aaAvailablePermissionIds = a})
+      . _Default
+      . _Coerce
+
+-- | File size limit in kilobytes of Rich Media teaser creatives. Must be
+-- between 1 and 10240.
+aaTeaserSizeLimit :: Lens' Account (Maybe Int64)
+aaTeaserSizeLimit
+  = lens _aaTeaserSizeLimit
+      (\ s a -> s{_aaTeaserSizeLimit = a})
+      . mapping _Coerce
+
+-- | Whether campaigns created in this account will be enabled for comScore
+-- vCE by default.
+aaComscoreVceEnabled :: Lens' Account (Maybe Bool)
+aaComscoreVceEnabled
+  = lens _aaComscoreVceEnabled
+      (\ s a -> s{_aaComscoreVceEnabled = a})
+
+-- | Whether to serve creatives with Active View tags. If disabled,
+-- viewability data will not be available for any impressions.
+aaActiveViewOptOut :: Lens' Account (Maybe Bool)
+aaActiveViewOptOut
+  = lens _aaActiveViewOptOut
+      (\ s a -> s{_aaActiveViewOptOut = a})
+
+-- | Name of this account. This is a required field, and must be less than
+-- 128 characters long and be globally unique.
+aaName :: Lens' Account (Maybe Text)
+aaName = lens _aaName (\ s a -> s{_aaName = a})
+
+-- | Profile for this account. This is a read-only field that can be left
+-- blank.
+aaAccountProFile :: Lens' Account (Maybe AccountAccountProFile)
+aaAccountProFile
+  = lens _aaAccountProFile
+      (\ s a -> s{_aaAccountProFile = a})
+
+-- | ID of this account. This is a read-only, auto-generated field.
+aaId :: Lens' Account (Maybe Int64)
+aaId
+  = lens _aaId (\ s a -> s{_aaId = a}) .
+      mapping _Coerce
+
+-- | ID of the country associated with this account.
+aaCountryId :: Lens' Account (Maybe Int64)
+aaCountryId
+  = lens _aaCountryId (\ s a -> s{_aaCountryId = a}) .
+      mapping _Coerce
+
+-- | Maximum number of active ads allowed for this account.
+aaActiveAdsLimitTier :: Lens' Account (Maybe AccountActiveAdsLimitTier)
+aaActiveAdsLimitTier
+  = lens _aaActiveAdsLimitTier
+      (\ s a -> s{_aaActiveAdsLimitTier = a})
+
+-- | Default placement dimensions for this account.
+aaDefaultCreativeSizeId :: Lens' Account (Maybe Int64)
+aaDefaultCreativeSizeId
+  = lens _aaDefaultCreativeSizeId
+      (\ s a -> s{_aaDefaultCreativeSizeId = a})
+      . mapping _Coerce
+
+-- | Description of this account.
+aaDescription :: Lens' Account (Maybe Text)
+aaDescription
+  = lens _aaDescription
+      (\ s a -> s{_aaDescription = a})
+
+instance FromJSON Account where
+        parseJSON
+          = withObject "Account"
+              (\ o ->
+                 Account <$>
+                   (o .:? "accountPermissionIds" .!= mempty) <*>
+                     (o .:? "maximumImageSize")
+                     <*> (o .:? "currencyId")
+                     <*> (o .:? "reportsConfiguration")
+                     <*> (o .:? "nielsenOcrEnabled")
+                     <*> (o .:? "kind" .!= "dfareporting#account")
+                     <*> (o .:? "locale")
+                     <*> (o .:? "active")
+                     <*> (o .:? "availablePermissionIds" .!= mempty)
+                     <*> (o .:? "teaserSizeLimit")
+                     <*> (o .:? "comscoreVceEnabled")
+                     <*> (o .:? "activeViewOptOut")
+                     <*> (o .:? "name")
+                     <*> (o .:? "accountProfile")
+                     <*> (o .:? "id")
+                     <*> (o .:? "countryId")
+                     <*> (o .:? "activeAdsLimitTier")
+                     <*> (o .:? "defaultCreativeSizeId")
+                     <*> (o .:? "description"))
+
+instance ToJSON Account where
+        toJSON Account{..}
+          = object
+              (catMaybes
+                 [("accountPermissionIds" .=) <$>
+                    _aaAccountPermissionIds,
+                  ("maximumImageSize" .=) <$> _aaMaximumImageSize,
+                  ("currencyId" .=) <$> _aaCurrencyId,
+                  ("reportsConfiguration" .=) <$>
+                    _aaReportsConfiguration,
+                  ("nielsenOcrEnabled" .=) <$> _aaNielsenOCREnabled,
+                  Just ("kind" .= _aaKind),
+                  ("locale" .=) <$> _aaLocale,
+                  ("active" .=) <$> _aaActive,
+                  ("availablePermissionIds" .=) <$>
+                    _aaAvailablePermissionIds,
+                  ("teaserSizeLimit" .=) <$> _aaTeaserSizeLimit,
+                  ("comscoreVceEnabled" .=) <$> _aaComscoreVceEnabled,
+                  ("activeViewOptOut" .=) <$> _aaActiveViewOptOut,
+                  ("name" .=) <$> _aaName,
+                  ("accountProfile" .=) <$> _aaAccountProFile,
+                  ("id" .=) <$> _aaId,
+                  ("countryId" .=) <$> _aaCountryId,
+                  ("activeAdsLimitTier" .=) <$> _aaActiveAdsLimitTier,
+                  ("defaultCreativeSizeId" .=) <$>
+                    _aaDefaultCreativeSizeId,
+                  ("description" .=) <$> _aaDescription])
+
+-- | Account User Profile List Response
+--
+-- /See:/ 'accountUserProFilesListResponse' smart constructor.
+data AccountUserProFilesListResponse = AccountUserProFilesListResponse
+    { _aupflrNextPageToken       :: !(Maybe Text)
+    , _aupflrAccountUserProFiles :: !(Maybe [AccountUserProFile])
+    , _aupflrKind                :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountUserProFilesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aupflrNextPageToken'
+--
+-- * 'aupflrAccountUserProFiles'
+--
+-- * 'aupflrKind'
+accountUserProFilesListResponse
+    :: AccountUserProFilesListResponse
+accountUserProFilesListResponse =
+    AccountUserProFilesListResponse
+    { _aupflrNextPageToken = Nothing
+    , _aupflrAccountUserProFiles = Nothing
+    , _aupflrKind = "dfareporting#accountUserProfilesListResponse"
+    }
+
+-- | Pagination token to be used for the next list operation.
+aupflrNextPageToken :: Lens' AccountUserProFilesListResponse (Maybe Text)
+aupflrNextPageToken
+  = lens _aupflrNextPageToken
+      (\ s a -> s{_aupflrNextPageToken = a})
+
+-- | Account user profile collection.
+aupflrAccountUserProFiles :: Lens' AccountUserProFilesListResponse [AccountUserProFile]
+aupflrAccountUserProFiles
+  = lens _aupflrAccountUserProFiles
+      (\ s a -> s{_aupflrAccountUserProFiles = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountUserProfilesListResponse\".
+aupflrKind :: Lens' AccountUserProFilesListResponse Text
+aupflrKind
+  = lens _aupflrKind (\ s a -> s{_aupflrKind = a})
+
+instance FromJSON AccountUserProFilesListResponse
+         where
+        parseJSON
+          = withObject "AccountUserProFilesListResponse"
+              (\ o ->
+                 AccountUserProFilesListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "accountUserProfiles" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#accountUserProfilesListResponse"))
+
+instance ToJSON AccountUserProFilesListResponse where
+        toJSON AccountUserProFilesListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _aupflrNextPageToken,
+                  ("accountUserProfiles" .=) <$>
+                    _aupflrAccountUserProFiles,
+                  Just ("kind" .= _aupflrKind)])
+
+-- | Organizes placements according to the contents of their associated
+-- webpages.
+--
+-- /See:/ 'contentCategory' smart constructor.
+data ContentCategory = ContentCategory
+    { _conKind      :: !Text
+    , _conAccountId :: !(Maybe (Textual Int64))
+    , _conName      :: !(Maybe Text)
+    , _conId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContentCategory' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'conKind'
+--
+-- * 'conAccountId'
+--
+-- * 'conName'
+--
+-- * 'conId'
+contentCategory
+    :: ContentCategory
+contentCategory =
+    ContentCategory
+    { _conKind = "dfareporting#contentCategory"
+    , _conAccountId = Nothing
+    , _conName = Nothing
+    , _conId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#contentCategory\".
+conKind :: Lens' ContentCategory Text
+conKind = lens _conKind (\ s a -> s{_conKind = a})
+
+-- | Account ID of this content category. This is a read-only field that can
+-- be left blank.
+conAccountId :: Lens' ContentCategory (Maybe Int64)
+conAccountId
+  = lens _conAccountId (\ s a -> s{_conAccountId = a})
+      . mapping _Coerce
+
+-- | Name of this content category. This is a required field and must be less
+-- than 256 characters long and unique among content categories of the same
+-- account.
+conName :: Lens' ContentCategory (Maybe Text)
+conName = lens _conName (\ s a -> s{_conName = a})
+
+-- | ID of this content category. This is a read-only, auto-generated field.
+conId :: Lens' ContentCategory (Maybe Int64)
+conId
+  = lens _conId (\ s a -> s{_conId = a}) .
+      mapping _Coerce
+
+instance FromJSON ContentCategory where
+        parseJSON
+          = withObject "ContentCategory"
+              (\ o ->
+                 ContentCategory <$>
+                   (o .:? "kind" .!= "dfareporting#contentCategory") <*>
+                     (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON ContentCategory where
+        toJSON ContentCategory{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _conKind),
+                  ("accountId" .=) <$> _conAccountId,
+                  ("name" .=) <$> _conName, ("id" .=) <$> _conId])
+
+-- | Represents fields that are compatible to be selected for a report of
+-- type \"STANDARD\".
+--
+-- /See:/ 'reportCompatibleFields' smart constructor.
+data ReportCompatibleFields = ReportCompatibleFields
+    { _rcfMetrics                :: !(Maybe [Metric])
+    , _rcfKind                   :: !Text
+    , _rcfDimensionFilters       :: !(Maybe [Dimension])
+    , _rcfPivotedActivityMetrics :: !(Maybe [Metric])
+    , _rcfDimensions             :: !(Maybe [Dimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportCompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcfMetrics'
+--
+-- * 'rcfKind'
+--
+-- * 'rcfDimensionFilters'
+--
+-- * 'rcfPivotedActivityMetrics'
+--
+-- * 'rcfDimensions'
+reportCompatibleFields
+    :: ReportCompatibleFields
+reportCompatibleFields =
+    ReportCompatibleFields
+    { _rcfMetrics = Nothing
+    , _rcfKind = "dfareporting#reportCompatibleFields"
+    , _rcfDimensionFilters = Nothing
+    , _rcfPivotedActivityMetrics = Nothing
+    , _rcfDimensions = Nothing
+    }
+
+-- | Metrics which are compatible to be selected in the \"metricNames\"
+-- section of the report.
+rcfMetrics :: Lens' ReportCompatibleFields [Metric]
+rcfMetrics
+  = lens _rcfMetrics (\ s a -> s{_rcfMetrics = a}) .
+      _Default
+      . _Coerce
+
+-- | The kind of resource this is, in this case
+-- dfareporting#reportCompatibleFields.
+rcfKind :: Lens' ReportCompatibleFields Text
+rcfKind = lens _rcfKind (\ s a -> s{_rcfKind = a})
+
+-- | Dimensions which are compatible to be selected in the
+-- \"dimensionFilters\" section of the report.
+rcfDimensionFilters :: Lens' ReportCompatibleFields [Dimension]
+rcfDimensionFilters
+  = lens _rcfDimensionFilters
+      (\ s a -> s{_rcfDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Metrics which are compatible to be selected as activity metrics to pivot
+-- on in the \"activities\" section of the report.
+rcfPivotedActivityMetrics :: Lens' ReportCompatibleFields [Metric]
+rcfPivotedActivityMetrics
+  = lens _rcfPivotedActivityMetrics
+      (\ s a -> s{_rcfPivotedActivityMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | Dimensions which are compatible to be selected in the \"dimensions\"
+-- section of the report.
+rcfDimensions :: Lens' ReportCompatibleFields [Dimension]
+rcfDimensions
+  = lens _rcfDimensions
+      (\ s a -> s{_rcfDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportCompatibleFields where
+        parseJSON
+          = withObject "ReportCompatibleFields"
+              (\ o ->
+                 ReportCompatibleFields <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#reportCompatibleFields")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "pivotedActivityMetrics" .!= mempty)
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON ReportCompatibleFields where
+        toJSON ReportCompatibleFields{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _rcfMetrics,
+                  Just ("kind" .= _rcfKind),
+                  ("dimensionFilters" .=) <$> _rcfDimensionFilters,
+                  ("pivotedActivityMetrics" .=) <$>
+                    _rcfPivotedActivityMetrics,
+                  ("dimensions" .=) <$> _rcfDimensions])
+
+-- | Delivery Schedule.
+--
+-- /See:/ 'deliverySchedule' smart constructor.
+data DeliverySchedule = DeliverySchedule
+    { _dsHardCutoff      :: !(Maybe Bool)
+    , _dsPriority        :: !(Maybe DeliverySchedulePriority)
+    , _dsImpressionRatio :: !(Maybe (Textual Int64))
+    , _dsFrequencyCap    :: !(Maybe FrequencyCap)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeliverySchedule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsHardCutoff'
+--
+-- * 'dsPriority'
+--
+-- * 'dsImpressionRatio'
+--
+-- * 'dsFrequencyCap'
+deliverySchedule
+    :: DeliverySchedule
+deliverySchedule =
+    DeliverySchedule
+    { _dsHardCutoff = Nothing
+    , _dsPriority = Nothing
+    , _dsImpressionRatio = Nothing
+    , _dsFrequencyCap = Nothing
+    }
+
+-- | Whether or not hard cutoff is enabled. If true, the ad will not serve
+-- after the end date and time. Otherwise the ad will continue to be served
+-- until it has reached its delivery goals.
+dsHardCutoff :: Lens' DeliverySchedule (Maybe Bool)
+dsHardCutoff
+  = lens _dsHardCutoff (\ s a -> s{_dsHardCutoff = a})
+
+-- | Serving priority of an ad, with respect to other ads. The lower the
+-- priority number, the greater the priority with which it is served.
+dsPriority :: Lens' DeliverySchedule (Maybe DeliverySchedulePriority)
+dsPriority
+  = lens _dsPriority (\ s a -> s{_dsPriority = a})
+
+-- | Impression ratio for this ad. This ratio determines how often each ad is
+-- served relative to the others. For example, if ad A has an impression
+-- ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad
+-- B three times as often as ad A. Must be between 1 and 10.
+dsImpressionRatio :: Lens' DeliverySchedule (Maybe Int64)
+dsImpressionRatio
+  = lens _dsImpressionRatio
+      (\ s a -> s{_dsImpressionRatio = a})
+      . mapping _Coerce
+
+-- | Limit on the number of times an individual user can be served the ad
+-- within a specified period of time.
+dsFrequencyCap :: Lens' DeliverySchedule (Maybe FrequencyCap)
+dsFrequencyCap
+  = lens _dsFrequencyCap
+      (\ s a -> s{_dsFrequencyCap = a})
+
+instance FromJSON DeliverySchedule where
+        parseJSON
+          = withObject "DeliverySchedule"
+              (\ o ->
+                 DeliverySchedule <$>
+                   (o .:? "hardCutoff") <*> (o .:? "priority") <*>
+                     (o .:? "impressionRatio")
+                     <*> (o .:? "frequencyCap"))
+
+instance ToJSON DeliverySchedule where
+        toJSON DeliverySchedule{..}
+          = object
+              (catMaybes
+                 [("hardCutoff" .=) <$> _dsHardCutoff,
+                  ("priority" .=) <$> _dsPriority,
+                  ("impressionRatio" .=) <$> _dsImpressionRatio,
+                  ("frequencyCap" .=) <$> _dsFrequencyCap])
+
+-- | Contains properties of a remarketing list. Remarketing enables you to
+-- create lists of users who have performed specific actions on a site,
+-- then target ads to members of those lists. This resource can be used to
+-- manage remarketing lists that are owned by your advertisers. To see all
+-- remarketing lists that are visible to your advertisers, including those
+-- that are shared to your advertiser or account, use the
+-- TargetableRemarketingLists resource.
+--
+-- /See:/ 'remarketingList' smart constructor.
+data RemarketingList = RemarketingList
+    { _rlListSize                   :: !(Maybe (Textual Int64))
+    , _rlListPopulationRule         :: !(Maybe ListPopulationRule)
+    , _rlLifeSpan                   :: !(Maybe (Textual Int64))
+    , _rlKind                       :: !Text
+    , _rlAdvertiserId               :: !(Maybe (Textual Int64))
+    , _rlAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
+    , _rlActive                     :: !(Maybe Bool)
+    , _rlAccountId                  :: !(Maybe (Textual Int64))
+    , _rlName                       :: !(Maybe Text)
+    , _rlListSource                 :: !(Maybe RemarketingListListSource)
+    , _rlId                         :: !(Maybe (Textual Int64))
+    , _rlSubAccountId               :: !(Maybe (Textual Int64))
+    , _rlDescription                :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlListSize'
+--
+-- * 'rlListPopulationRule'
+--
+-- * 'rlLifeSpan'
+--
+-- * 'rlKind'
+--
+-- * 'rlAdvertiserId'
+--
+-- * 'rlAdvertiserIdDimensionValue'
+--
+-- * 'rlActive'
+--
+-- * 'rlAccountId'
+--
+-- * 'rlName'
+--
+-- * 'rlListSource'
+--
+-- * 'rlId'
+--
+-- * 'rlSubAccountId'
+--
+-- * 'rlDescription'
+remarketingList
+    :: RemarketingList
+remarketingList =
+    RemarketingList
+    { _rlListSize = Nothing
+    , _rlListPopulationRule = Nothing
+    , _rlLifeSpan = Nothing
+    , _rlKind = "dfareporting#remarketingList"
+    , _rlAdvertiserId = Nothing
+    , _rlAdvertiserIdDimensionValue = Nothing
+    , _rlActive = Nothing
+    , _rlAccountId = Nothing
+    , _rlName = Nothing
+    , _rlListSource = Nothing
+    , _rlId = Nothing
+    , _rlSubAccountId = Nothing
+    , _rlDescription = Nothing
+    }
+
+-- | Number of users currently in the list. This is a read-only field.
+rlListSize :: Lens' RemarketingList (Maybe Int64)
+rlListSize
+  = lens _rlListSize (\ s a -> s{_rlListSize = a}) .
+      mapping _Coerce
+
+-- | Rule used to populate the remarketing list with users.
+rlListPopulationRule :: Lens' RemarketingList (Maybe ListPopulationRule)
+rlListPopulationRule
+  = lens _rlListPopulationRule
+      (\ s a -> s{_rlListPopulationRule = a})
+
+-- | Number of days that a user should remain in the remarketing list without
+-- an impression.
+rlLifeSpan :: Lens' RemarketingList (Maybe Int64)
+rlLifeSpan
+  = lens _rlLifeSpan (\ s a -> s{_rlLifeSpan = a}) .
+      mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#remarketingList\".
+rlKind :: Lens' RemarketingList Text
+rlKind = lens _rlKind (\ s a -> s{_rlKind = a})
+
+-- | Dimension value for the advertiser ID that owns this remarketing list.
+-- This is a required field.
+rlAdvertiserId :: Lens' RemarketingList (Maybe Int64)
+rlAdvertiserId
+  = lens _rlAdvertiserId
+      (\ s a -> s{_rlAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+rlAdvertiserIdDimensionValue :: Lens' RemarketingList (Maybe DimensionValue)
+rlAdvertiserIdDimensionValue
+  = lens _rlAdvertiserIdDimensionValue
+      (\ s a -> s{_rlAdvertiserIdDimensionValue = a})
+
+-- | Whether this remarketing list is active.
+rlActive :: Lens' RemarketingList (Maybe Bool)
+rlActive = lens _rlActive (\ s a -> s{_rlActive = a})
+
+-- | Account ID of this remarketing list. This is a read-only, auto-generated
+-- field that is only returned in GET requests.
+rlAccountId :: Lens' RemarketingList (Maybe Int64)
+rlAccountId
+  = lens _rlAccountId (\ s a -> s{_rlAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of the remarketing list. This is a required field. Must be no
+-- greater than 128 characters long.
+rlName :: Lens' RemarketingList (Maybe Text)
+rlName = lens _rlName (\ s a -> s{_rlName = a})
+
+-- | Product from which this remarketing list was originated.
+rlListSource :: Lens' RemarketingList (Maybe RemarketingListListSource)
+rlListSource
+  = lens _rlListSource (\ s a -> s{_rlListSource = a})
+
+-- | Remarketing list ID. This is a read-only, auto-generated field.
+rlId :: Lens' RemarketingList (Maybe Int64)
+rlId
+  = lens _rlId (\ s a -> s{_rlId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this remarketing list. This is a read-only,
+-- auto-generated field that is only returned in GET requests.
+rlSubAccountId :: Lens' RemarketingList (Maybe Int64)
+rlSubAccountId
+  = lens _rlSubAccountId
+      (\ s a -> s{_rlSubAccountId = a})
+      . mapping _Coerce
+
+-- | Remarketing list description.
+rlDescription :: Lens' RemarketingList (Maybe Text)
+rlDescription
+  = lens _rlDescription
+      (\ s a -> s{_rlDescription = a})
+
+instance FromJSON RemarketingList where
+        parseJSON
+          = withObject "RemarketingList"
+              (\ o ->
+                 RemarketingList <$>
+                   (o .:? "listSize") <*> (o .:? "listPopulationRule")
+                     <*> (o .:? "lifeSpan")
+                     <*> (o .:? "kind" .!= "dfareporting#remarketingList")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "active")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "listSource")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "description"))
+
+instance ToJSON RemarketingList where
+        toJSON RemarketingList{..}
+          = object
+              (catMaybes
+                 [("listSize" .=) <$> _rlListSize,
+                  ("listPopulationRule" .=) <$> _rlListPopulationRule,
+                  ("lifeSpan" .=) <$> _rlLifeSpan,
+                  Just ("kind" .= _rlKind),
+                  ("advertiserId" .=) <$> _rlAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _rlAdvertiserIdDimensionValue,
+                  ("active" .=) <$> _rlActive,
+                  ("accountId" .=) <$> _rlAccountId,
+                  ("name" .=) <$> _rlName,
+                  ("listSource" .=) <$> _rlListSource,
+                  ("id" .=) <$> _rlId,
+                  ("subaccountId" .=) <$> _rlSubAccountId,
+                  ("description" .=) <$> _rlDescription])
+
+-- | Represents the list of DimensionValue resources.
+--
+-- /See:/ 'dimensionValueList' smart constructor.
+data DimensionValueList = DimensionValueList
+    { _dvlEtag          :: !(Maybe Text)
+    , _dvlNextPageToken :: !(Maybe Text)
+    , _dvlKind          :: !Text
+    , _dvlItems         :: !(Maybe [DimensionValue])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DimensionValueList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dvlEtag'
+--
+-- * 'dvlNextPageToken'
+--
+-- * 'dvlKind'
+--
+-- * 'dvlItems'
+dimensionValueList
+    :: DimensionValueList
+dimensionValueList =
+    DimensionValueList
+    { _dvlEtag = Nothing
+    , _dvlNextPageToken = Nothing
+    , _dvlKind = "dfareporting#dimensionValueList"
+    , _dvlItems = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+dvlEtag :: Lens' DimensionValueList (Maybe Text)
+dvlEtag = lens _dvlEtag (\ s a -> s{_dvlEtag = a})
+
+-- | Continuation token used to page through dimension values. To retrieve
+-- the next page of results, set the next request\'s \"pageToken\" to the
+-- value of this field. The page token is only valid for a limited amount
+-- of time and should not be persisted.
+dvlNextPageToken :: Lens' DimensionValueList (Maybe Text)
+dvlNextPageToken
+  = lens _dvlNextPageToken
+      (\ s a -> s{_dvlNextPageToken = a})
+
+-- | The kind of list this is, in this case dfareporting#dimensionValueList.
+dvlKind :: Lens' DimensionValueList Text
+dvlKind = lens _dvlKind (\ s a -> s{_dvlKind = a})
+
+-- | The dimension values returned in this response.
+dvlItems :: Lens' DimensionValueList [DimensionValue]
+dvlItems
+  = lens _dvlItems (\ s a -> s{_dvlItems = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON DimensionValueList where
+        parseJSON
+          = withObject "DimensionValueList"
+              (\ o ->
+                 DimensionValueList <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#dimensionValueList")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON DimensionValueList where
+        toJSON DimensionValueList{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _dvlEtag,
+                  ("nextPageToken" .=) <$> _dvlNextPageToken,
+                  Just ("kind" .= _dvlKind),
+                  ("items" .=) <$> _dvlItems])
+
+-- | Represents fields that are compatible to be selected for a report of
+-- type \"FlOODLIGHT\".
+--
+-- /See:/ 'floodlightReportCompatibleFields' smart constructor.
+data FloodlightReportCompatibleFields = FloodlightReportCompatibleFields
+    { _frcfMetrics          :: !(Maybe [Metric])
+    , _frcfKind             :: !Text
+    , _frcfDimensionFilters :: !(Maybe [Dimension])
+    , _frcfDimensions       :: !(Maybe [Dimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightReportCompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'frcfMetrics'
+--
+-- * 'frcfKind'
+--
+-- * 'frcfDimensionFilters'
+--
+-- * 'frcfDimensions'
+floodlightReportCompatibleFields
+    :: FloodlightReportCompatibleFields
+floodlightReportCompatibleFields =
+    FloodlightReportCompatibleFields
+    { _frcfMetrics = Nothing
+    , _frcfKind = "dfareporting#floodlightReportCompatibleFields"
+    , _frcfDimensionFilters = Nothing
+    , _frcfDimensions = Nothing
+    }
+
+-- | Metrics which are compatible to be selected in the \"metricNames\"
+-- section of the report.
+frcfMetrics :: Lens' FloodlightReportCompatibleFields [Metric]
+frcfMetrics
+  = lens _frcfMetrics (\ s a -> s{_frcfMetrics = a}) .
+      _Default
+      . _Coerce
+
+-- | The kind of resource this is, in this case
+-- dfareporting#floodlightReportCompatibleFields.
+frcfKind :: Lens' FloodlightReportCompatibleFields Text
+frcfKind = lens _frcfKind (\ s a -> s{_frcfKind = a})
+
+-- | Dimensions which are compatible to be selected in the
+-- \"dimensionFilters\" section of the report.
+frcfDimensionFilters :: Lens' FloodlightReportCompatibleFields [Dimension]
+frcfDimensionFilters
+  = lens _frcfDimensionFilters
+      (\ s a -> s{_frcfDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Dimensions which are compatible to be selected in the \"dimensions\"
+-- section of the report.
+frcfDimensions :: Lens' FloodlightReportCompatibleFields [Dimension]
+frcfDimensions
+  = lens _frcfDimensions
+      (\ s a -> s{_frcfDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON FloodlightReportCompatibleFields
+         where
+        parseJSON
+          = withObject "FloodlightReportCompatibleFields"
+              (\ o ->
+                 FloodlightReportCompatibleFields <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightReportCompatibleFields")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON FloodlightReportCompatibleFields
+         where
+        toJSON FloodlightReportCompatibleFields{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _frcfMetrics,
+                  Just ("kind" .= _frcfKind),
+                  ("dimensionFilters" .=) <$> _frcfDimensionFilters,
+                  ("dimensions" .=) <$> _frcfDimensions])
+
+-- | Represents a grouping of related user role permissions.
+--
+-- /See:/ 'userRolePermissionGroup' smart constructor.
+data UserRolePermissionGroup = UserRolePermissionGroup
+    { _urpgKind :: !Text
+    , _urpgName :: !(Maybe Text)
+    , _urpgId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermissionGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urpgKind'
+--
+-- * 'urpgName'
+--
+-- * 'urpgId'
+userRolePermissionGroup
+    :: UserRolePermissionGroup
+userRolePermissionGroup =
+    UserRolePermissionGroup
+    { _urpgKind = "dfareporting#userRolePermissionGroup"
+    , _urpgName = Nothing
+    , _urpgId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRolePermissionGroup\".
+urpgKind :: Lens' UserRolePermissionGroup Text
+urpgKind = lens _urpgKind (\ s a -> s{_urpgKind = a})
+
+-- | Name of this user role permission group.
+urpgName :: Lens' UserRolePermissionGroup (Maybe Text)
+urpgName = lens _urpgName (\ s a -> s{_urpgName = a})
+
+-- | ID of this user role permission.
+urpgId :: Lens' UserRolePermissionGroup (Maybe Int64)
+urpgId
+  = lens _urpgId (\ s a -> s{_urpgId = a}) .
+      mapping _Coerce
+
+instance FromJSON UserRolePermissionGroup where
+        parseJSON
+          = withObject "UserRolePermissionGroup"
+              (\ o ->
+                 UserRolePermissionGroup <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#userRolePermissionGroup")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON UserRolePermissionGroup where
+        toJSON UserRolePermissionGroup{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _urpgKind),
+                  ("name" .=) <$> _urpgName, ("id" .=) <$> _urpgId])
+
+-- | Tag Settings
+--
+-- /See:/ 'tagSetting' smart constructor.
+data TagSetting = TagSetting
+    { _tsKeywordOption           :: !(Maybe TagSettingKeywordOption)
+    , _tsIncludeClickThroughURLs :: !(Maybe Bool)
+    , _tsIncludeClickTracking    :: !(Maybe Bool)
+    , _tsAdditionalKeyValues     :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TagSetting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tsKeywordOption'
+--
+-- * 'tsIncludeClickThroughURLs'
+--
+-- * 'tsIncludeClickTracking'
+--
+-- * 'tsAdditionalKeyValues'
+tagSetting
+    :: TagSetting
+tagSetting =
+    TagSetting
+    { _tsKeywordOption = Nothing
+    , _tsIncludeClickThroughURLs = Nothing
+    , _tsIncludeClickTracking = Nothing
+    , _tsAdditionalKeyValues = Nothing
+    }
+
+-- | Option specifying how keywords are embedded in ad tags. This setting can
+-- be used to specify whether keyword placeholders are inserted in
+-- placement tags for this site. Publishers can then add keywords to those
+-- placeholders.
+tsKeywordOption :: Lens' TagSetting (Maybe TagSettingKeywordOption)
+tsKeywordOption
+  = lens _tsKeywordOption
+      (\ s a -> s{_tsKeywordOption = a})
+
+-- | Whether static landing page URLs should be included in the tags. This
+-- setting applies only to placements.
+tsIncludeClickThroughURLs :: Lens' TagSetting (Maybe Bool)
+tsIncludeClickThroughURLs
+  = lens _tsIncludeClickThroughURLs
+      (\ s a -> s{_tsIncludeClickThroughURLs = a})
+
+-- | Whether click-tracking string should be included in the tags.
+tsIncludeClickTracking :: Lens' TagSetting (Maybe Bool)
+tsIncludeClickTracking
+  = lens _tsIncludeClickTracking
+      (\ s a -> s{_tsIncludeClickTracking = a})
+
+-- | Additional key-values to be included in tags. Each key-value pair must
+-- be of the form key=value, and pairs must be separated by a semicolon
+-- (;). Keys and values must not contain commas. For example,
+-- id=2;color=red is a valid value for this field.
+tsAdditionalKeyValues :: Lens' TagSetting (Maybe Text)
+tsAdditionalKeyValues
+  = lens _tsAdditionalKeyValues
+      (\ s a -> s{_tsAdditionalKeyValues = a})
+
+instance FromJSON TagSetting where
+        parseJSON
+          = withObject "TagSetting"
+              (\ o ->
+                 TagSetting <$>
+                   (o .:? "keywordOption") <*>
+                     (o .:? "includeClickThroughUrls")
+                     <*> (o .:? "includeClickTracking")
+                     <*> (o .:? "additionalKeyValues"))
+
+instance ToJSON TagSetting where
+        toJSON TagSetting{..}
+          = object
+              (catMaybes
+                 [("keywordOption" .=) <$> _tsKeywordOption,
+                  ("includeClickThroughUrls" .=) <$>
+                    _tsIncludeClickThroughURLs,
+                  ("includeClickTracking" .=) <$>
+                    _tsIncludeClickTracking,
+                  ("additionalKeyValues" .=) <$>
+                    _tsAdditionalKeyValues])
+
+-- | The properties of the report.
+--
+-- /See:/ 'reportPathToConversionCriteriaReportProperties' smart constructor.
+data ReportPathToConversionCriteriaReportProperties = ReportPathToConversionCriteriaReportProperties
+    { _rptccrpMaximumInteractionGap                :: !(Maybe (Textual Int32))
+    , _rptccrpMaximumClickInteractions             :: !(Maybe (Textual Int32))
+    , _rptccrpPivotOnInteractionPath               :: !(Maybe Bool)
+    , _rptccrpMaximumImpressionInteractions        :: !(Maybe (Textual Int32))
+    , _rptccrpIncludeUnattributedIPConversions     :: !(Maybe Bool)
+    , _rptccrpImpressionsLookbackWindow            :: !(Maybe (Textual Int32))
+    , _rptccrpClicksLookbackWindow                 :: !(Maybe (Textual Int32))
+    , _rptccrpIncludeUnattributedCookieConversions :: !(Maybe Bool)
+    , _rptccrpIncludeAttributedIPConversions       :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportPathToConversionCriteriaReportProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rptccrpMaximumInteractionGap'
+--
+-- * 'rptccrpMaximumClickInteractions'
+--
+-- * 'rptccrpPivotOnInteractionPath'
+--
+-- * 'rptccrpMaximumImpressionInteractions'
+--
+-- * 'rptccrpIncludeUnattributedIPConversions'
+--
+-- * 'rptccrpImpressionsLookbackWindow'
+--
+-- * 'rptccrpClicksLookbackWindow'
+--
+-- * 'rptccrpIncludeUnattributedCookieConversions'
+--
+-- * 'rptccrpIncludeAttributedIPConversions'
+reportPathToConversionCriteriaReportProperties
+    :: ReportPathToConversionCriteriaReportProperties
+reportPathToConversionCriteriaReportProperties =
+    ReportPathToConversionCriteriaReportProperties
+    { _rptccrpMaximumInteractionGap = Nothing
+    , _rptccrpMaximumClickInteractions = Nothing
+    , _rptccrpPivotOnInteractionPath = Nothing
+    , _rptccrpMaximumImpressionInteractions = Nothing
+    , _rptccrpIncludeUnattributedIPConversions = Nothing
+    , _rptccrpImpressionsLookbackWindow = Nothing
+    , _rptccrpClicksLookbackWindow = Nothing
+    , _rptccrpIncludeUnattributedCookieConversions = Nothing
+    , _rptccrpIncludeAttributedIPConversions = Nothing
+    }
+
+-- | The maximum amount of time that can take place between interactions
+-- (clicks or impressions) by the same user. Valid values: 1-90.
+rptccrpMaximumInteractionGap :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
+rptccrpMaximumInteractionGap
+  = lens _rptccrpMaximumInteractionGap
+      (\ s a -> s{_rptccrpMaximumInteractionGap = a})
+      . mapping _Coerce
+
+-- | The maximum number of click interactions to include in the report.
+-- Advertisers currently paying for E2C reports get up to 200 (100 clicks,
+-- 100 impressions). If another advertiser in your network is paying for
+-- E2C, you can have up to 5 total exposures per report.
+rptccrpMaximumClickInteractions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
+rptccrpMaximumClickInteractions
+  = lens _rptccrpMaximumClickInteractions
+      (\ s a -> s{_rptccrpMaximumClickInteractions = a})
+      . mapping _Coerce
+
+-- | Enable pivoting on interaction path.
+rptccrpPivotOnInteractionPath :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
+rptccrpPivotOnInteractionPath
+  = lens _rptccrpPivotOnInteractionPath
+      (\ s a -> s{_rptccrpPivotOnInteractionPath = a})
+
+-- | The maximum number of click interactions to include in the report.
+-- Advertisers currently paying for E2C reports get up to 200 (100 clicks,
+-- 100 impressions). If another advertiser in your network is paying for
+-- E2C, you can have up to 5 total exposures per report.
+rptccrpMaximumImpressionInteractions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
+rptccrpMaximumImpressionInteractions
+  = lens _rptccrpMaximumImpressionInteractions
+      (\ s a ->
+         s{_rptccrpMaximumImpressionInteractions = a})
+      . mapping _Coerce
+
+-- | Include conversions that have no associated cookies and no exposures.
+-- It’s therefore impossible to know how the user was exposed to your ads
+-- during the lookback window prior to a conversion.
+rptccrpIncludeUnattributedIPConversions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
+rptccrpIncludeUnattributedIPConversions
+  = lens _rptccrpIncludeUnattributedIPConversions
+      (\ s a ->
+         s{_rptccrpIncludeUnattributedIPConversions = a})
+
+-- | DFA checks to see if an impression interaction occurred within the
+-- specified period of time before a conversion. By default the value is
+-- pulled from Floodlight or you can manually enter a custom value. Valid
+-- values: 1-90.
+rptccrpImpressionsLookbackWindow :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
+rptccrpImpressionsLookbackWindow
+  = lens _rptccrpImpressionsLookbackWindow
+      (\ s a -> s{_rptccrpImpressionsLookbackWindow = a})
+      . mapping _Coerce
+
+-- | DFA checks to see if a click interaction occurred within the specified
+-- period of time before a conversion. By default the value is pulled from
+-- Floodlight or you can manually enter a custom value. Valid values: 1-90.
+rptccrpClicksLookbackWindow :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
+rptccrpClicksLookbackWindow
+  = lens _rptccrpClicksLookbackWindow
+      (\ s a -> s{_rptccrpClicksLookbackWindow = a})
+      . mapping _Coerce
+
+-- | Include conversions of users with a DoubleClick cookie but without an
+-- exposure. That means the user did not click or see an ad from the
+-- advertiser within the Floodlight group, or that the interaction happened
+-- outside the lookback window.
+rptccrpIncludeUnattributedCookieConversions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
+rptccrpIncludeUnattributedCookieConversions
+  = lens _rptccrpIncludeUnattributedCookieConversions
+      (\ s a ->
+         s{_rptccrpIncludeUnattributedCookieConversions = a})
+
+-- | Deprecated: has no effect.
+rptccrpIncludeAttributedIPConversions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
+rptccrpIncludeAttributedIPConversions
+  = lens _rptccrpIncludeAttributedIPConversions
+      (\ s a ->
+         s{_rptccrpIncludeAttributedIPConversions = a})
+
+instance FromJSON
+         ReportPathToConversionCriteriaReportProperties where
+        parseJSON
+          = withObject
+              "ReportPathToConversionCriteriaReportProperties"
+              (\ o ->
+                 ReportPathToConversionCriteriaReportProperties <$>
+                   (o .:? "maximumInteractionGap") <*>
+                     (o .:? "maximumClickInteractions")
+                     <*> (o .:? "pivotOnInteractionPath")
+                     <*> (o .:? "maximumImpressionInteractions")
+                     <*> (o .:? "includeUnattributedIPConversions")
+                     <*> (o .:? "impressionsLookbackWindow")
+                     <*> (o .:? "clicksLookbackWindow")
+                     <*> (o .:? "includeUnattributedCookieConversions")
+                     <*> (o .:? "includeAttributedIPConversions"))
+
+instance ToJSON
+         ReportPathToConversionCriteriaReportProperties where
+        toJSON
+          ReportPathToConversionCriteriaReportProperties{..}
+          = object
+              (catMaybes
+                 [("maximumInteractionGap" .=) <$>
+                    _rptccrpMaximumInteractionGap,
+                  ("maximumClickInteractions" .=) <$>
+                    _rptccrpMaximumClickInteractions,
+                  ("pivotOnInteractionPath" .=) <$>
+                    _rptccrpPivotOnInteractionPath,
+                  ("maximumImpressionInteractions" .=) <$>
+                    _rptccrpMaximumImpressionInteractions,
+                  ("includeUnattributedIPConversions" .=) <$>
+                    _rptccrpIncludeUnattributedIPConversions,
+                  ("impressionsLookbackWindow" .=) <$>
+                    _rptccrpImpressionsLookbackWindow,
+                  ("clicksLookbackWindow" .=) <$>
+                    _rptccrpClicksLookbackWindow,
+                  ("includeUnattributedCookieConversions" .=) <$>
+                    _rptccrpIncludeUnattributedCookieConversions,
+                  ("includeAttributedIPConversions" .=) <$>
+                    _rptccrpIncludeAttributedIPConversions])
+
+-- | User Role Permission List Response
+--
+-- /See:/ 'userRolePermissionsListResponse' smart constructor.
+data UserRolePermissionsListResponse = UserRolePermissionsListResponse
+    { _urplrKind                :: !Text
+    , _urplrUserRolePermissions :: !(Maybe [UserRolePermission])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermissionsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urplrKind'
+--
+-- * 'urplrUserRolePermissions'
+userRolePermissionsListResponse
+    :: UserRolePermissionsListResponse
+userRolePermissionsListResponse =
+    UserRolePermissionsListResponse
+    { _urplrKind = "dfareporting#userRolePermissionsListResponse"
+    , _urplrUserRolePermissions = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRolePermissionsListResponse\".
+urplrKind :: Lens' UserRolePermissionsListResponse Text
+urplrKind
+  = lens _urplrKind (\ s a -> s{_urplrKind = a})
+
+-- | User role permission collection.
+urplrUserRolePermissions :: Lens' UserRolePermissionsListResponse [UserRolePermission]
+urplrUserRolePermissions
+  = lens _urplrUserRolePermissions
+      (\ s a -> s{_urplrUserRolePermissions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON UserRolePermissionsListResponse
+         where
+        parseJSON
+          = withObject "UserRolePermissionsListResponse"
+              (\ o ->
+                 UserRolePermissionsListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#userRolePermissionsListResponse")
+                     <*> (o .:? "userRolePermissions" .!= mempty))
+
+instance ToJSON UserRolePermissionsListResponse where
+        toJSON UserRolePermissionsListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _urplrKind),
+                  ("userRolePermissions" .=) <$>
+                    _urplrUserRolePermissions])
+
+-- | Placement Group List Response
+--
+-- /See:/ 'placementGroupsListResponse' smart constructor.
+data PlacementGroupsListResponse = PlacementGroupsListResponse
+    { _pglrNextPageToken   :: !(Maybe Text)
+    , _pglrKind            :: !Text
+    , _pglrPlacementGroups :: !(Maybe [PlacementGroup])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pglrNextPageToken'
+--
+-- * 'pglrKind'
+--
+-- * 'pglrPlacementGroups'
+placementGroupsListResponse
+    :: PlacementGroupsListResponse
+placementGroupsListResponse =
+    PlacementGroupsListResponse
+    { _pglrNextPageToken = Nothing
+    , _pglrKind = "dfareporting#placementGroupsListResponse"
+    , _pglrPlacementGroups = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+pglrNextPageToken :: Lens' PlacementGroupsListResponse (Maybe Text)
+pglrNextPageToken
+  = lens _pglrNextPageToken
+      (\ s a -> s{_pglrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementGroupsListResponse\".
+pglrKind :: Lens' PlacementGroupsListResponse Text
+pglrKind = lens _pglrKind (\ s a -> s{_pglrKind = a})
+
+-- | Placement group collection.
+pglrPlacementGroups :: Lens' PlacementGroupsListResponse [PlacementGroup]
+pglrPlacementGroups
+  = lens _pglrPlacementGroups
+      (\ s a -> s{_pglrPlacementGroups = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON PlacementGroupsListResponse where
+        parseJSON
+          = withObject "PlacementGroupsListResponse"
+              (\ o ->
+                 PlacementGroupsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#placementGroupsListResponse")
+                     <*> (o .:? "placementGroups" .!= mempty))
+
+instance ToJSON PlacementGroupsListResponse where
+        toJSON PlacementGroupsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _pglrNextPageToken,
+                  Just ("kind" .= _pglrKind),
+                  ("placementGroups" .=) <$> _pglrPlacementGroups])
+
+-- | Contains information about a mobile carrier that can be targeted by ads.
+--
+-- /See:/ 'mobileCarrier' smart constructor.
+data MobileCarrier = MobileCarrier
+    { _mcKind          :: !Text
+    , _mcName          :: !(Maybe Text)
+    , _mcCountryCode   :: !(Maybe Text)
+    , _mcId            :: !(Maybe (Textual Int64))
+    , _mcCountryDartId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MobileCarrier' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mcKind'
+--
+-- * 'mcName'
+--
+-- * 'mcCountryCode'
+--
+-- * 'mcId'
+--
+-- * 'mcCountryDartId'
+mobileCarrier
+    :: MobileCarrier
+mobileCarrier =
+    MobileCarrier
+    { _mcKind = "dfareporting#mobileCarrier"
+    , _mcName = Nothing
+    , _mcCountryCode = Nothing
+    , _mcId = Nothing
+    , _mcCountryDartId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#mobileCarrier\".
+mcKind :: Lens' MobileCarrier Text
+mcKind = lens _mcKind (\ s a -> s{_mcKind = a})
+
+-- | Name of this mobile carrier.
+mcName :: Lens' MobileCarrier (Maybe Text)
+mcName = lens _mcName (\ s a -> s{_mcName = a})
+
+-- | Country code of the country to which this mobile carrier belongs.
+mcCountryCode :: Lens' MobileCarrier (Maybe Text)
+mcCountryCode
+  = lens _mcCountryCode
+      (\ s a -> s{_mcCountryCode = a})
+
+-- | ID of this mobile carrier.
+mcId :: Lens' MobileCarrier (Maybe Int64)
+mcId
+  = lens _mcId (\ s a -> s{_mcId = a}) .
+      mapping _Coerce
+
+-- | DART ID of the country to which this mobile carrier belongs.
+mcCountryDartId :: Lens' MobileCarrier (Maybe Int64)
+mcCountryDartId
+  = lens _mcCountryDartId
+      (\ s a -> s{_mcCountryDartId = a})
+      . mapping _Coerce
+
+instance FromJSON MobileCarrier where
+        parseJSON
+          = withObject "MobileCarrier"
+              (\ o ->
+                 MobileCarrier <$>
+                   (o .:? "kind" .!= "dfareporting#mobileCarrier") <*>
+                     (o .:? "name")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "id")
+                     <*> (o .:? "countryDartId"))
+
+instance ToJSON MobileCarrier where
+        toJSON MobileCarrier{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _mcKind), ("name" .=) <$> _mcName,
+                  ("countryCode" .=) <$> _mcCountryCode,
+                  ("id" .=) <$> _mcId,
+                  ("countryDartId" .=) <$> _mcCountryDartId])
+
+-- | Contains information about where a user\'s browser is taken after the
+-- user clicks an ad.
+--
+-- /See:/ 'landingPage' smart constructor.
+data LandingPage = LandingPage
+    { _lpKind    :: !Text
+    , _lpDefault :: !(Maybe Bool)
+    , _lpURL     :: !(Maybe Text)
+    , _lpName    :: !(Maybe Text)
+    , _lpId      :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LandingPage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpKind'
+--
+-- * 'lpDefault'
+--
+-- * 'lpURL'
+--
+-- * 'lpName'
+--
+-- * 'lpId'
+landingPage
+    :: LandingPage
+landingPage =
+    LandingPage
+    { _lpKind = "dfareporting#landingPage"
+    , _lpDefault = Nothing
+    , _lpURL = Nothing
+    , _lpName = Nothing
+    , _lpId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#landingPage\".
+lpKind :: Lens' LandingPage Text
+lpKind = lens _lpKind (\ s a -> s{_lpKind = a})
+
+-- | Whether or not this landing page will be assigned to any ads or
+-- creatives that do not have a landing page assigned explicitly. Only one
+-- default landing page is allowed per campaign.
+lpDefault :: Lens' LandingPage (Maybe Bool)
+lpDefault
+  = lens _lpDefault (\ s a -> s{_lpDefault = a})
+
+-- | URL of this landing page. This is a required field.
+lpURL :: Lens' LandingPage (Maybe Text)
+lpURL = lens _lpURL (\ s a -> s{_lpURL = a})
+
+-- | Name of this landing page. This is a required field. It must be less
+-- than 256 characters long, and must be unique among landing pages of the
+-- same campaign.
+lpName :: Lens' LandingPage (Maybe Text)
+lpName = lens _lpName (\ s a -> s{_lpName = a})
+
+-- | ID of this landing page. This is a read-only, auto-generated field.
+lpId :: Lens' LandingPage (Maybe Int64)
+lpId
+  = lens _lpId (\ s a -> s{_lpId = a}) .
+      mapping _Coerce
+
+instance FromJSON LandingPage where
+        parseJSON
+          = withObject "LandingPage"
+              (\ o ->
+                 LandingPage <$>
+                   (o .:? "kind" .!= "dfareporting#landingPage") <*>
+                     (o .:? "default")
+                     <*> (o .:? "url")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON LandingPage where
+        toJSON LandingPage{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _lpKind),
+                  ("default" .=) <$> _lpDefault, ("url" .=) <$> _lpURL,
+                  ("name" .=) <$> _lpName, ("id" .=) <$> _lpId])
+
+-- | Connection Type List Response
+--
+-- /See:/ 'connectionTypesListResponse' smart constructor.
+data ConnectionTypesListResponse = ConnectionTypesListResponse
+    { _ctlrKind            :: !Text
+    , _ctlrConnectionTypes :: !(Maybe [ConnectionType])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConnectionTypesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctlrKind'
+--
+-- * 'ctlrConnectionTypes'
+connectionTypesListResponse
+    :: ConnectionTypesListResponse
+connectionTypesListResponse =
+    ConnectionTypesListResponse
+    { _ctlrKind = "dfareporting#connectionTypesListResponse"
+    , _ctlrConnectionTypes = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#connectionTypesListResponse\".
+ctlrKind :: Lens' ConnectionTypesListResponse Text
+ctlrKind = lens _ctlrKind (\ s a -> s{_ctlrKind = a})
+
+-- | Collection of connection types such as broadband and mobile.
+ctlrConnectionTypes :: Lens' ConnectionTypesListResponse [ConnectionType]
+ctlrConnectionTypes
+  = lens _ctlrConnectionTypes
+      (\ s a -> s{_ctlrConnectionTypes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ConnectionTypesListResponse where
+        parseJSON
+          = withObject "ConnectionTypesListResponse"
+              (\ o ->
+                 ConnectionTypesListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#connectionTypesListResponse")
+                     <*> (o .:? "connectionTypes" .!= mempty))
+
+instance ToJSON ConnectionTypesListResponse where
+        toJSON ConnectionTypesListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ctlrKind),
+                  ("connectionTypes" .=) <$> _ctlrConnectionTypes])
+
+-- | Order List Response
+--
+-- /See:/ 'ordersListResponse' smart constructor.
+data OrdersListResponse = OrdersListResponse
+    { _olrNextPageToken :: !(Maybe Text)
+    , _olrKind          :: !Text
+    , _olrOrders        :: !(Maybe [Order])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrdersListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'olrNextPageToken'
+--
+-- * 'olrKind'
+--
+-- * 'olrOrders'
+ordersListResponse
+    :: OrdersListResponse
+ordersListResponse =
+    OrdersListResponse
+    { _olrNextPageToken = Nothing
+    , _olrKind = "dfareporting#ordersListResponse"
+    , _olrOrders = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+olrNextPageToken :: Lens' OrdersListResponse (Maybe Text)
+olrNextPageToken
+  = lens _olrNextPageToken
+      (\ s a -> s{_olrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#ordersListResponse\".
+olrKind :: Lens' OrdersListResponse Text
+olrKind = lens _olrKind (\ s a -> s{_olrKind = a})
+
+-- | Order collection.
+olrOrders :: Lens' OrdersListResponse [Order]
+olrOrders
+  = lens _olrOrders (\ s a -> s{_olrOrders = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON OrdersListResponse where
+        parseJSON
+          = withObject "OrdersListResponse"
+              (\ o ->
+                 OrdersListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#ordersListResponse")
+                     <*> (o .:? "orders" .!= mempty))
+
+instance ToJSON OrdersListResponse where
+        toJSON OrdersListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _olrNextPageToken,
+                  Just ("kind" .= _olrKind),
+                  ("orders" .=) <$> _olrOrders])
+
+-- | Represents the list of reports.
+--
+-- /See:/ 'reportList' smart constructor.
+data ReportList = ReportList
+    { _repEtag          :: !(Maybe Text)
+    , _repNextPageToken :: !(Maybe Text)
+    , _repKind          :: !Text
+    , _repItems         :: !(Maybe [Report])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'repEtag'
+--
+-- * 'repNextPageToken'
+--
+-- * 'repKind'
+--
+-- * 'repItems'
+reportList
+    :: ReportList
+reportList =
+    ReportList
+    { _repEtag = Nothing
+    , _repNextPageToken = Nothing
+    , _repKind = "dfareporting#reportList"
+    , _repItems = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+repEtag :: Lens' ReportList (Maybe Text)
+repEtag = lens _repEtag (\ s a -> s{_repEtag = a})
+
+-- | Continuation token used to page through reports. To retrieve the next
+-- page of results, set the next request\'s \"pageToken\" to the value of
+-- this field. The page token is only valid for a limited amount of time
+-- and should not be persisted.
+repNextPageToken :: Lens' ReportList (Maybe Text)
+repNextPageToken
+  = lens _repNextPageToken
+      (\ s a -> s{_repNextPageToken = a})
+
+-- | The kind of list this is, in this case dfareporting#reportList.
+repKind :: Lens' ReportList Text
+repKind = lens _repKind (\ s a -> s{_repKind = a})
+
+-- | The reports returned in this response.
+repItems :: Lens' ReportList [Report]
+repItems
+  = lens _repItems (\ s a -> s{_repItems = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ReportList where
+        parseJSON
+          = withObject "ReportList"
+              (\ o ->
+                 ReportList <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#reportList")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON ReportList where
+        toJSON ReportList{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _repEtag,
+                  ("nextPageToken" .=) <$> _repNextPageToken,
+                  Just ("kind" .= _repKind),
+                  ("items" .=) <$> _repItems])
+
+-- | Contains properties of a creative group.
+--
+-- /See:/ 'creativeGroup' smart constructor.
+data CreativeGroup = CreativeGroup
+    { _cgKind                       :: !Text
+    , _cgAdvertiserId               :: !(Maybe (Textual Int64))
+    , _cgAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
+    , _cgGroupNumber                :: !(Maybe (Textual Int32))
+    , _cgAccountId                  :: !(Maybe (Textual Int64))
+    , _cgName                       :: !(Maybe Text)
+    , _cgId                         :: !(Maybe (Textual Int64))
+    , _cgSubAccountId               :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cgKind'
+--
+-- * 'cgAdvertiserId'
+--
+-- * 'cgAdvertiserIdDimensionValue'
+--
+-- * 'cgGroupNumber'
+--
+-- * 'cgAccountId'
+--
+-- * 'cgName'
+--
+-- * 'cgId'
+--
+-- * 'cgSubAccountId'
+creativeGroup
+    :: CreativeGroup
+creativeGroup =
+    CreativeGroup
+    { _cgKind = "dfareporting#creativeGroup"
+    , _cgAdvertiserId = Nothing
+    , _cgAdvertiserIdDimensionValue = Nothing
+    , _cgGroupNumber = Nothing
+    , _cgAccountId = Nothing
+    , _cgName = Nothing
+    , _cgId = Nothing
+    , _cgSubAccountId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeGroup\".
+cgKind :: Lens' CreativeGroup Text
+cgKind = lens _cgKind (\ s a -> s{_cgKind = a})
+
+-- | Advertiser ID of this creative group. This is a required field on
+-- insertion.
+cgAdvertiserId :: Lens' CreativeGroup (Maybe Int64)
+cgAdvertiserId
+  = lens _cgAdvertiserId
+      (\ s a -> s{_cgAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+cgAdvertiserIdDimensionValue :: Lens' CreativeGroup (Maybe DimensionValue)
+cgAdvertiserIdDimensionValue
+  = lens _cgAdvertiserIdDimensionValue
+      (\ s a -> s{_cgAdvertiserIdDimensionValue = a})
+
+-- | Subgroup of the creative group. Assign your creative groups to one of
+-- the following subgroups in order to filter or manage them more easily.
+-- This field is required on insertion and is read-only after insertion.
+-- Acceptable values are: - 1 - 2
+cgGroupNumber :: Lens' CreativeGroup (Maybe Int32)
+cgGroupNumber
+  = lens _cgGroupNumber
+      (\ s a -> s{_cgGroupNumber = a})
+      . mapping _Coerce
+
+-- | Account ID of this creative group. This is a read-only field that can be
+-- left blank.
+cgAccountId :: Lens' CreativeGroup (Maybe Int64)
+cgAccountId
+  = lens _cgAccountId (\ s a -> s{_cgAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this creative group. This is a required field and must be less
+-- than 256 characters long and unique among creative groups of the same
+-- advertiser.
+cgName :: Lens' CreativeGroup (Maybe Text)
+cgName = lens _cgName (\ s a -> s{_cgName = a})
+
+-- | ID of this creative group. This is a read-only, auto-generated field.
+cgId :: Lens' CreativeGroup (Maybe Int64)
+cgId
+  = lens _cgId (\ s a -> s{_cgId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this creative group. This is a read-only field that can
+-- be left blank.
+cgSubAccountId :: Lens' CreativeGroup (Maybe Int64)
+cgSubAccountId
+  = lens _cgSubAccountId
+      (\ s a -> s{_cgSubAccountId = a})
+      . mapping _Coerce
+
+instance FromJSON CreativeGroup where
+        parseJSON
+          = withObject "CreativeGroup"
+              (\ o ->
+                 CreativeGroup <$>
+                   (o .:? "kind" .!= "dfareporting#creativeGroup") <*>
+                     (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "groupNumber")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId"))
+
+instance ToJSON CreativeGroup where
+        toJSON CreativeGroup{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cgKind),
+                  ("advertiserId" .=) <$> _cgAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _cgAdvertiserIdDimensionValue,
+                  ("groupNumber" .=) <$> _cgGroupNumber,
+                  ("accountId" .=) <$> _cgAccountId,
+                  ("name" .=) <$> _cgName, ("id" .=) <$> _cgId,
+                  ("subaccountId" .=) <$> _cgSubAccountId])
+
+-- | Identifies a creative which has been associated with a given campaign.
+--
+-- /See:/ 'campaignCreativeAssociation' smart constructor.
+data CampaignCreativeAssociation = CampaignCreativeAssociation
+    { _ccaKind       :: !Text
+    , _ccaCreativeId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignCreativeAssociation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccaKind'
+--
+-- * 'ccaCreativeId'
+campaignCreativeAssociation
+    :: CampaignCreativeAssociation
+campaignCreativeAssociation =
+    CampaignCreativeAssociation
+    { _ccaKind = "dfareporting#campaignCreativeAssociation"
+    , _ccaCreativeId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#campaignCreativeAssociation\".
+ccaKind :: Lens' CampaignCreativeAssociation Text
+ccaKind = lens _ccaKind (\ s a -> s{_ccaKind = a})
+
+-- | ID of the creative associated with the campaign. This is a required
+-- field.
+ccaCreativeId :: Lens' CampaignCreativeAssociation (Maybe Int64)
+ccaCreativeId
+  = lens _ccaCreativeId
+      (\ s a -> s{_ccaCreativeId = a})
+      . mapping _Coerce
+
+instance FromJSON CampaignCreativeAssociation where
+        parseJSON
+          = withObject "CampaignCreativeAssociation"
+              (\ o ->
+                 CampaignCreativeAssociation <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#campaignCreativeAssociation")
+                     <*> (o .:? "creativeId"))
+
+instance ToJSON CampaignCreativeAssociation where
+        toJSON CampaignCreativeAssociation{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ccaKind),
+                  ("creativeId" .=) <$> _ccaCreativeId])
+
+-- | Lookback configuration settings.
+--
+-- /See:/ 'lookbackConfiguration' smart constructor.
+data LookbackConfiguration = LookbackConfiguration
+    { _lcClickDuration                    :: !(Maybe (Textual Int32))
+    , _lcPostImpressionActivitiesDuration :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LookbackConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lcClickDuration'
+--
+-- * 'lcPostImpressionActivitiesDuration'
+lookbackConfiguration
+    :: LookbackConfiguration
+lookbackConfiguration =
+    LookbackConfiguration
+    { _lcClickDuration = Nothing
+    , _lcPostImpressionActivitiesDuration = Nothing
+    }
+
+-- | Lookback window, in days, from the last time a given user clicked on one
+-- of your ads. If you enter 0, clicks will not be considered as triggering
+-- events for floodlight tracking. If you leave this field blank, the
+-- default value for your account will be used.
+lcClickDuration :: Lens' LookbackConfiguration (Maybe Int32)
+lcClickDuration
+  = lens _lcClickDuration
+      (\ s a -> s{_lcClickDuration = a})
+      . mapping _Coerce
+
+-- | Lookback window, in days, from the last time a given user viewed one of
+-- your ads. If you enter 0, impressions will not be considered as
+-- triggering events for floodlight tracking. If you leave this field
+-- blank, the default value for your account will be used.
+lcPostImpressionActivitiesDuration :: Lens' LookbackConfiguration (Maybe Int32)
+lcPostImpressionActivitiesDuration
+  = lens _lcPostImpressionActivitiesDuration
+      (\ s a -> s{_lcPostImpressionActivitiesDuration = a})
+      . mapping _Coerce
+
+instance FromJSON LookbackConfiguration where
+        parseJSON
+          = withObject "LookbackConfiguration"
+              (\ o ->
+                 LookbackConfiguration <$>
+                   (o .:? "clickDuration") <*>
+                     (o .:? "postImpressionActivitiesDuration"))
+
+instance ToJSON LookbackConfiguration where
+        toJSON LookbackConfiguration{..}
+          = object
+              (catMaybes
+                 [("clickDuration" .=) <$> _lcClickDuration,
+                  ("postImpressionActivitiesDuration" .=) <$>
+                    _lcPostImpressionActivitiesDuration])
+
+-- | Publisher Dynamic Tag
+--
+-- /See:/ 'floodlightActivityPublisherDynamicTag' smart constructor.
+data FloodlightActivityPublisherDynamicTag = FloodlightActivityPublisherDynamicTag
+    { _fapdtClickThrough         :: !(Maybe Bool)
+    , _fapdtSiteIdDimensionValue :: !(Maybe DimensionValue)
+    , _fapdtDynamicTag           :: !(Maybe FloodlightActivityDynamicTag)
+    , _fapdtDirectorySiteId      :: !(Maybe (Textual Int64))
+    , _fapdtSiteId               :: !(Maybe (Textual Int64))
+    , _fapdtViewThrough          :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityPublisherDynamicTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fapdtClickThrough'
+--
+-- * 'fapdtSiteIdDimensionValue'
+--
+-- * 'fapdtDynamicTag'
+--
+-- * 'fapdtDirectorySiteId'
+--
+-- * 'fapdtSiteId'
+--
+-- * 'fapdtViewThrough'
+floodlightActivityPublisherDynamicTag
+    :: FloodlightActivityPublisherDynamicTag
+floodlightActivityPublisherDynamicTag =
+    FloodlightActivityPublisherDynamicTag
+    { _fapdtClickThrough = Nothing
+    , _fapdtSiteIdDimensionValue = Nothing
+    , _fapdtDynamicTag = Nothing
+    , _fapdtDirectorySiteId = Nothing
+    , _fapdtSiteId = Nothing
+    , _fapdtViewThrough = Nothing
+    }
+
+-- | Whether this tag is applicable only for click-throughs.
+fapdtClickThrough :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Bool)
+fapdtClickThrough
+  = lens _fapdtClickThrough
+      (\ s a -> s{_fapdtClickThrough = a})
+
+-- | Dimension value for the ID of the site. This is a read-only,
+-- auto-generated field.
+fapdtSiteIdDimensionValue :: Lens' FloodlightActivityPublisherDynamicTag (Maybe DimensionValue)
+fapdtSiteIdDimensionValue
+  = lens _fapdtSiteIdDimensionValue
+      (\ s a -> s{_fapdtSiteIdDimensionValue = a})
+
+-- | Dynamic floodlight tag.
+fapdtDynamicTag :: Lens' FloodlightActivityPublisherDynamicTag (Maybe FloodlightActivityDynamicTag)
+fapdtDynamicTag
+  = lens _fapdtDynamicTag
+      (\ s a -> s{_fapdtDynamicTag = a})
+
+-- | Directory site ID of this dynamic tag. This is a write-only field that
+-- can be used as an alternative to the siteId field. When this resource is
+-- retrieved, only the siteId field will be populated.
+fapdtDirectorySiteId :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Int64)
+fapdtDirectorySiteId
+  = lens _fapdtDirectorySiteId
+      (\ s a -> s{_fapdtDirectorySiteId = a})
+      . mapping _Coerce
+
+-- | Site ID of this dynamic tag.
+fapdtSiteId :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Int64)
+fapdtSiteId
+  = lens _fapdtSiteId (\ s a -> s{_fapdtSiteId = a}) .
+      mapping _Coerce
+
+-- | Whether this tag is applicable only for view-throughs.
+fapdtViewThrough :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Bool)
+fapdtViewThrough
+  = lens _fapdtViewThrough
+      (\ s a -> s{_fapdtViewThrough = a})
+
+instance FromJSON
+         FloodlightActivityPublisherDynamicTag where
+        parseJSON
+          = withObject "FloodlightActivityPublisherDynamicTag"
+              (\ o ->
+                 FloodlightActivityPublisherDynamicTag <$>
+                   (o .:? "clickThrough") <*>
+                     (o .:? "siteIdDimensionValue")
+                     <*> (o .:? "dynamicTag")
+                     <*> (o .:? "directorySiteId")
+                     <*> (o .:? "siteId")
+                     <*> (o .:? "viewThrough"))
+
+instance ToJSON FloodlightActivityPublisherDynamicTag
+         where
+        toJSON FloodlightActivityPublisherDynamicTag{..}
+          = object
+              (catMaybes
+                 [("clickThrough" .=) <$> _fapdtClickThrough,
+                  ("siteIdDimensionValue" .=) <$>
+                    _fapdtSiteIdDimensionValue,
+                  ("dynamicTag" .=) <$> _fapdtDynamicTag,
+                  ("directorySiteId" .=) <$> _fapdtDirectorySiteId,
+                  ("siteId" .=) <$> _fapdtSiteId,
+                  ("viewThrough" .=) <$> _fapdtViewThrough])
+
+-- | Gets a summary of active ads in an account.
+--
+-- /See:/ 'accountActiveAdSummary' smart constructor.
+data AccountActiveAdSummary = AccountActiveAdSummary
+    { _aaasAvailableAds       :: !(Maybe (Textual Int64))
+    , _aaasKind               :: !Text
+    , _aaasAccountId          :: !(Maybe (Textual Int64))
+    , _aaasActiveAds          :: !(Maybe (Textual Int64))
+    , _aaasActiveAdsLimitTier :: !(Maybe AccountActiveAdSummaryActiveAdsLimitTier)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountActiveAdSummary' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aaasAvailableAds'
+--
+-- * 'aaasKind'
+--
+-- * 'aaasAccountId'
+--
+-- * 'aaasActiveAds'
+--
+-- * 'aaasActiveAdsLimitTier'
+accountActiveAdSummary
+    :: AccountActiveAdSummary
+accountActiveAdSummary =
+    AccountActiveAdSummary
+    { _aaasAvailableAds = Nothing
+    , _aaasKind = "dfareporting#accountActiveAdSummary"
+    , _aaasAccountId = Nothing
+    , _aaasActiveAds = Nothing
+    , _aaasActiveAdsLimitTier = Nothing
+    }
+
+-- | Ads that can be activated for the account.
+aaasAvailableAds :: Lens' AccountActiveAdSummary (Maybe Int64)
+aaasAvailableAds
+  = lens _aaasAvailableAds
+      (\ s a -> s{_aaasAvailableAds = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountActiveAdSummary\".
+aaasKind :: Lens' AccountActiveAdSummary Text
+aaasKind = lens _aaasKind (\ s a -> s{_aaasKind = a})
+
+-- | ID of the account.
+aaasAccountId :: Lens' AccountActiveAdSummary (Maybe Int64)
+aaasAccountId
+  = lens _aaasAccountId
+      (\ s a -> s{_aaasAccountId = a})
+      . mapping _Coerce
+
+-- | Ads that have been activated for the account
+aaasActiveAds :: Lens' AccountActiveAdSummary (Maybe Int64)
+aaasActiveAds
+  = lens _aaasActiveAds
+      (\ s a -> s{_aaasActiveAds = a})
+      . mapping _Coerce
+
+-- | Maximum number of active ads allowed for the account.
+aaasActiveAdsLimitTier :: Lens' AccountActiveAdSummary (Maybe AccountActiveAdSummaryActiveAdsLimitTier)
+aaasActiveAdsLimitTier
+  = lens _aaasActiveAdsLimitTier
+      (\ s a -> s{_aaasActiveAdsLimitTier = a})
+
+instance FromJSON AccountActiveAdSummary where
+        parseJSON
+          = withObject "AccountActiveAdSummary"
+              (\ o ->
+                 AccountActiveAdSummary <$>
+                   (o .:? "availableAds") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#accountActiveAdSummary")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "activeAds")
+                     <*> (o .:? "activeAdsLimitTier"))
+
+instance ToJSON AccountActiveAdSummary where
+        toJSON AccountActiveAdSummary{..}
+          = object
+              (catMaybes
+                 [("availableAds" .=) <$> _aaasAvailableAds,
+                  Just ("kind" .= _aaasKind),
+                  ("accountId" .=) <$> _aaasAccountId,
+                  ("activeAds" .=) <$> _aaasActiveAds,
+                  ("activeAdsLimitTier" .=) <$>
+                    _aaasActiveAdsLimitTier])
+
+-- | Offset Position.
+--
+-- /See:/ 'offSetPosition' smart constructor.
+data OffSetPosition = OffSetPosition
+    { _ospLeft :: !(Maybe (Textual Int32))
+    , _ospTop  :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OffSetPosition' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ospLeft'
+--
+-- * 'ospTop'
+offSetPosition
+    :: OffSetPosition
+offSetPosition =
+    OffSetPosition
+    { _ospLeft = Nothing
+    , _ospTop = Nothing
+    }
+
+-- | Offset distance from left side of an asset or a window.
+ospLeft :: Lens' OffSetPosition (Maybe Int32)
+ospLeft
+  = lens _ospLeft (\ s a -> s{_ospLeft = a}) .
+      mapping _Coerce
+
+-- | Offset distance from top side of an asset or a window.
+ospTop :: Lens' OffSetPosition (Maybe Int32)
+ospTop
+  = lens _ospTop (\ s a -> s{_ospTop = a}) .
+      mapping _Coerce
+
+instance FromJSON OffSetPosition where
+        parseJSON
+          = withObject "OffSetPosition"
+              (\ o ->
+                 OffSetPosition <$> (o .:? "left") <*> (o .:? "top"))
+
+instance ToJSON OffSetPosition where
+        toJSON OffSetPosition{..}
+          = object
+              (catMaybes
+                 [("left" .=) <$> _ospLeft, ("top" .=) <$> _ospTop])
+
+-- | Represents a metric.
+--
+-- /See:/ 'metric' smart constructor.
+data Metric = Metric
+    { _mKind :: !Text
+    , _mName :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Metric' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mKind'
+--
+-- * 'mName'
+metric
+    :: Metric
+metric =
+    Metric
+    { _mKind = "dfareporting#metric"
+    , _mName = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#metric.
+mKind :: Lens' Metric Text
+mKind = lens _mKind (\ s a -> s{_mKind = a})
+
+-- | The metric name, e.g. dfa:impressions
+mName :: Lens' Metric (Maybe Text)
+mName = lens _mName (\ s a -> s{_mName = a})
+
+instance FromJSON Metric where
+        parseJSON
+          = withObject "Metric"
+              (\ o ->
+                 Metric <$>
+                   (o .:? "kind" .!= "dfareporting#metric") <*>
+                     (o .:? "name"))
+
+instance ToJSON Metric where
+        toJSON Metric{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _mKind), ("name" .=) <$> _mName])
+
+-- | Contains properties of a remarketing list\'s sharing information.
+-- Sharing allows other accounts or advertisers to target to your
+-- remarketing lists. This resource can be used to manage remarketing list
+-- sharing to other accounts and advertisers.
+--
+-- /See:/ 'remarketingListShare' smart constructor.
+data RemarketingListShare = RemarketingListShare
+    { _rlsSharedAdvertiserIds :: !(Maybe [Textual Int64])
+    , _rlsKind                :: !Text
+    , _rlsRemarketingListId   :: !(Maybe (Textual Int64))
+    , _rlsSharedAccountIds    :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListShare' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlsSharedAdvertiserIds'
+--
+-- * 'rlsKind'
+--
+-- * 'rlsRemarketingListId'
+--
+-- * 'rlsSharedAccountIds'
+remarketingListShare
+    :: RemarketingListShare
+remarketingListShare =
+    RemarketingListShare
+    { _rlsSharedAdvertiserIds = Nothing
+    , _rlsKind = "dfareporting#remarketingListShare"
+    , _rlsRemarketingListId = Nothing
+    , _rlsSharedAccountIds = Nothing
+    }
+
+-- | Advertisers that the remarketing list is shared with.
+rlsSharedAdvertiserIds :: Lens' RemarketingListShare [Int64]
+rlsSharedAdvertiserIds
+  = lens _rlsSharedAdvertiserIds
+      (\ s a -> s{_rlsSharedAdvertiserIds = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#remarketingListShare\".
+rlsKind :: Lens' RemarketingListShare Text
+rlsKind = lens _rlsKind (\ s a -> s{_rlsKind = a})
+
+-- | Remarketing list ID. This is a read-only, auto-generated field.
+rlsRemarketingListId :: Lens' RemarketingListShare (Maybe Int64)
+rlsRemarketingListId
+  = lens _rlsRemarketingListId
+      (\ s a -> s{_rlsRemarketingListId = a})
+      . mapping _Coerce
+
+-- | Accounts that the remarketing list is shared with.
+rlsSharedAccountIds :: Lens' RemarketingListShare [Int64]
+rlsSharedAccountIds
+  = lens _rlsSharedAccountIds
+      (\ s a -> s{_rlsSharedAccountIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON RemarketingListShare where
+        parseJSON
+          = withObject "RemarketingListShare"
+              (\ o ->
+                 RemarketingListShare <$>
+                   (o .:? "sharedAdvertiserIds" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#remarketingListShare")
+                     <*> (o .:? "remarketingListId")
+                     <*> (o .:? "sharedAccountIds" .!= mempty))
+
+instance ToJSON RemarketingListShare where
+        toJSON RemarketingListShare{..}
+          = object
+              (catMaybes
+                 [("sharedAdvertiserIds" .=) <$>
+                    _rlsSharedAdvertiserIds,
+                  Just ("kind" .= _rlsKind),
+                  ("remarketingListId" .=) <$> _rlsRemarketingListId,
+                  ("sharedAccountIds" .=) <$> _rlsSharedAccountIds])
+
+-- | Event Tag List Response
+--
+-- /See:/ 'eventTagsListResponse' smart constructor.
+data EventTagsListResponse = EventTagsListResponse
+    { _etlrKind      :: !Text
+    , _etlrEventTags :: !(Maybe [EventTag])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTagsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etlrKind'
+--
+-- * 'etlrEventTags'
+eventTagsListResponse
+    :: EventTagsListResponse
+eventTagsListResponse =
+    EventTagsListResponse
+    { _etlrKind = "dfareporting#eventTagsListResponse"
+    , _etlrEventTags = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#eventTagsListResponse\".
+etlrKind :: Lens' EventTagsListResponse Text
+etlrKind = lens _etlrKind (\ s a -> s{_etlrKind = a})
+
+-- | Event tag collection.
+etlrEventTags :: Lens' EventTagsListResponse [EventTag]
+etlrEventTags
+  = lens _etlrEventTags
+      (\ s a -> s{_etlrEventTags = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON EventTagsListResponse where
+        parseJSON
+          = withObject "EventTagsListResponse"
+              (\ o ->
+                 EventTagsListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#eventTagsListResponse")
+                     <*> (o .:? "eventTags" .!= mempty))
+
+instance ToJSON EventTagsListResponse where
+        toJSON EventTagsListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _etlrKind),
+                  ("eventTags" .=) <$> _etlrEventTags])
+
+-- | User Role List Response
+--
+-- /See:/ 'userRolesListResponse' smart constructor.
+data UserRolesListResponse = UserRolesListResponse
+    { _urlrNextPageToken :: !(Maybe Text)
+    , _urlrKind          :: !Text
+    , _urlrUserRoles     :: !(Maybe [UserRole])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urlrNextPageToken'
+--
+-- * 'urlrKind'
+--
+-- * 'urlrUserRoles'
+userRolesListResponse
+    :: UserRolesListResponse
+userRolesListResponse =
+    UserRolesListResponse
+    { _urlrNextPageToken = Nothing
+    , _urlrKind = "dfareporting#userRolesListResponse"
+    , _urlrUserRoles = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+urlrNextPageToken :: Lens' UserRolesListResponse (Maybe Text)
+urlrNextPageToken
+  = lens _urlrNextPageToken
+      (\ s a -> s{_urlrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRolesListResponse\".
+urlrKind :: Lens' UserRolesListResponse Text
+urlrKind = lens _urlrKind (\ s a -> s{_urlrKind = a})
+
+-- | User role collection.
+urlrUserRoles :: Lens' UserRolesListResponse [UserRole]
+urlrUserRoles
+  = lens _urlrUserRoles
+      (\ s a -> s{_urlrUserRoles = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON UserRolesListResponse where
+        parseJSON
+          = withObject "UserRolesListResponse"
+              (\ o ->
+                 UserRolesListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#userRolesListResponse")
+                     <*> (o .:? "userRoles" .!= mempty))
+
+instance ToJSON UserRolesListResponse where
+        toJSON UserRolesListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _urlrNextPageToken,
+                  Just ("kind" .= _urlrKind),
+                  ("userRoles" .=) <$> _urlrUserRoles])
+
+-- | Represents a response to the queryCompatibleFields method.
+--
+-- /See:/ 'compatibleFields' smart constructor.
+data CompatibleFields = CompatibleFields
+    { _cfReachReportCompatibleFields               :: !(Maybe ReachReportCompatibleFields)
+    , _cfCrossDimensionReachReportCompatibleFields :: !(Maybe CrossDimensionReachReportCompatibleFields)
+    , _cfKind                                      :: !Text
+    , _cfFloodlightReportCompatibleFields          :: !(Maybe FloodlightReportCompatibleFields)
+    , _cfReportCompatibleFields                    :: !(Maybe ReportCompatibleFields)
+    , _cfPathToConversionReportCompatibleFields    :: !(Maybe PathToConversionReportCompatibleFields)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfReachReportCompatibleFields'
+--
+-- * 'cfCrossDimensionReachReportCompatibleFields'
+--
+-- * 'cfKind'
+--
+-- * 'cfFloodlightReportCompatibleFields'
+--
+-- * 'cfReportCompatibleFields'
+--
+-- * 'cfPathToConversionReportCompatibleFields'
+compatibleFields
+    :: CompatibleFields
+compatibleFields =
+    CompatibleFields
+    { _cfReachReportCompatibleFields = Nothing
+    , _cfCrossDimensionReachReportCompatibleFields = Nothing
+    , _cfKind = "dfareporting#compatibleFields"
+    , _cfFloodlightReportCompatibleFields = Nothing
+    , _cfReportCompatibleFields = Nothing
+    , _cfPathToConversionReportCompatibleFields = Nothing
+    }
+
+-- | Contains items that are compatible to be selected for a report of type
+-- \"REACH\".
+cfReachReportCompatibleFields :: Lens' CompatibleFields (Maybe ReachReportCompatibleFields)
+cfReachReportCompatibleFields
+  = lens _cfReachReportCompatibleFields
+      (\ s a -> s{_cfReachReportCompatibleFields = a})
+
+-- | Contains items that are compatible to be selected for a report of type
+-- \"CROSS_DIMENSION_REACH\".
+cfCrossDimensionReachReportCompatibleFields :: Lens' CompatibleFields (Maybe CrossDimensionReachReportCompatibleFields)
+cfCrossDimensionReachReportCompatibleFields
+  = lens _cfCrossDimensionReachReportCompatibleFields
+      (\ s a ->
+         s{_cfCrossDimensionReachReportCompatibleFields = a})
+
+-- | The kind of resource this is, in this case
+-- dfareporting#compatibleFields.
+cfKind :: Lens' CompatibleFields Text
+cfKind = lens _cfKind (\ s a -> s{_cfKind = a})
+
+-- | Contains items that are compatible to be selected for a report of type
+-- \"FLOODLIGHT\".
+cfFloodlightReportCompatibleFields :: Lens' CompatibleFields (Maybe FloodlightReportCompatibleFields)
+cfFloodlightReportCompatibleFields
+  = lens _cfFloodlightReportCompatibleFields
+      (\ s a -> s{_cfFloodlightReportCompatibleFields = a})
+
+-- | Contains items that are compatible to be selected for a report of type
+-- \"STANDARD\".
+cfReportCompatibleFields :: Lens' CompatibleFields (Maybe ReportCompatibleFields)
+cfReportCompatibleFields
+  = lens _cfReportCompatibleFields
+      (\ s a -> s{_cfReportCompatibleFields = a})
+
+-- | Contains items that are compatible to be selected for a report of type
+-- \"PATH_TO_CONVERSION\".
+cfPathToConversionReportCompatibleFields :: Lens' CompatibleFields (Maybe PathToConversionReportCompatibleFields)
+cfPathToConversionReportCompatibleFields
+  = lens _cfPathToConversionReportCompatibleFields
+      (\ s a ->
+         s{_cfPathToConversionReportCompatibleFields = a})
+
+instance FromJSON CompatibleFields where
+        parseJSON
+          = withObject "CompatibleFields"
+              (\ o ->
+                 CompatibleFields <$>
+                   (o .:? "reachReportCompatibleFields") <*>
+                     (o .:? "crossDimensionReachReportCompatibleFields")
+                     <*>
+                     (o .:? "kind" .!= "dfareporting#compatibleFields")
+                     <*> (o .:? "floodlightReportCompatibleFields")
+                     <*> (o .:? "reportCompatibleFields")
+                     <*> (o .:? "pathToConversionReportCompatibleFields"))
+
+instance ToJSON CompatibleFields where
+        toJSON CompatibleFields{..}
+          = object
+              (catMaybes
+                 [("reachReportCompatibleFields" .=) <$>
+                    _cfReachReportCompatibleFields,
+                  ("crossDimensionReachReportCompatibleFields" .=) <$>
+                    _cfCrossDimensionReachReportCompatibleFields,
+                  Just ("kind" .= _cfKind),
+                  ("floodlightReportCompatibleFields" .=) <$>
+                    _cfFloodlightReportCompatibleFields,
+                  ("reportCompatibleFields" .=) <$>
+                    _cfReportCompatibleFields,
+                  ("pathToConversionReportCompatibleFields" .=) <$>
+                    _cfPathToConversionReportCompatibleFields])
+
+-- | Audience Segment.
+--
+-- /See:/ 'audienceSegment' smart constructor.
+data AudienceSegment = AudienceSegment
+    { _asName       :: !(Maybe Text)
+    , _asId         :: !(Maybe (Textual Int64))
+    , _asAllocation :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AudienceSegment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asName'
+--
+-- * 'asId'
+--
+-- * 'asAllocation'
+audienceSegment
+    :: AudienceSegment
+audienceSegment =
+    AudienceSegment
+    { _asName = Nothing
+    , _asId = Nothing
+    , _asAllocation = Nothing
+    }
+
+-- | Name of this audience segment. This is a required field and must be less
+-- than 65 characters long.
+asName :: Lens' AudienceSegment (Maybe Text)
+asName = lens _asName (\ s a -> s{_asName = a})
+
+-- | ID of this audience segment. This is a read-only, auto-generated field.
+asId :: Lens' AudienceSegment (Maybe Int64)
+asId
+  = lens _asId (\ s a -> s{_asId = a}) .
+      mapping _Coerce
+
+-- | Weight allocated to this segment. Must be between 1 and 1000. The weight
+-- assigned will be understood in proportion to the weights assigned to
+-- other segments in the same segment group.
+asAllocation :: Lens' AudienceSegment (Maybe Int32)
+asAllocation
+  = lens _asAllocation (\ s a -> s{_asAllocation = a})
+      . mapping _Coerce
+
+instance FromJSON AudienceSegment where
+        parseJSON
+          = withObject "AudienceSegment"
+              (\ o ->
+                 AudienceSegment <$>
+                   (o .:? "name") <*> (o .:? "id") <*>
+                     (o .:? "allocation"))
+
+instance ToJSON AudienceSegment where
+        toJSON AudienceSegment{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _asName, ("id" .=) <$> _asId,
+                  ("allocation" .=) <$> _asAllocation])
+
+-- | DFP Settings
+--
+-- /See:/ 'dfpSettings' smart constructor.
+data DfpSettings = DfpSettings
+    { _dsPubPaidPlacementAccepted      :: !(Maybe Bool)
+    , _dsDfpNetworkName                :: !(Maybe Text)
+    , _dsPublisherPortalOnly           :: !(Maybe Bool)
+    , _dsProgrammaticPlacementAccepted :: !(Maybe Bool)
+    , _dsDfpNetworkCode                :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DfpSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsPubPaidPlacementAccepted'
+--
+-- * 'dsDfpNetworkName'
+--
+-- * 'dsPublisherPortalOnly'
+--
+-- * 'dsProgrammaticPlacementAccepted'
+--
+-- * 'dsDfpNetworkCode'
+dfpSettings
+    :: DfpSettings
+dfpSettings =
+    DfpSettings
+    { _dsPubPaidPlacementAccepted = Nothing
+    , _dsDfpNetworkName = Nothing
+    , _dsPublisherPortalOnly = Nothing
+    , _dsProgrammaticPlacementAccepted = Nothing
+    , _dsDfpNetworkCode = Nothing
+    }
+
+-- | Whether this directory site accepts publisher-paid tags.
+dsPubPaidPlacementAccepted :: Lens' DfpSettings (Maybe Bool)
+dsPubPaidPlacementAccepted
+  = lens _dsPubPaidPlacementAccepted
+      (\ s a -> s{_dsPubPaidPlacementAccepted = a})
+
+-- | DFP network name for this directory site.
+dsDfpNetworkName :: Lens' DfpSettings (Maybe Text)
+dsDfpNetworkName
+  = lens _dsDfpNetworkName
+      (\ s a -> s{_dsDfpNetworkName = a})
+
+-- | Whether this directory site is available only via DoubleClick Publisher
+-- Portal.
+dsPublisherPortalOnly :: Lens' DfpSettings (Maybe Bool)
+dsPublisherPortalOnly
+  = lens _dsPublisherPortalOnly
+      (\ s a -> s{_dsPublisherPortalOnly = a})
+
+-- | Whether this directory site accepts programmatic placements.
+dsProgrammaticPlacementAccepted :: Lens' DfpSettings (Maybe Bool)
+dsProgrammaticPlacementAccepted
+  = lens _dsProgrammaticPlacementAccepted
+      (\ s a -> s{_dsProgrammaticPlacementAccepted = a})
+
+-- | DFP network code for this directory site.
+dsDfpNetworkCode :: Lens' DfpSettings (Maybe Text)
+dsDfpNetworkCode
+  = lens _dsDfpNetworkCode
+      (\ s a -> s{_dsDfpNetworkCode = a})
+
+instance FromJSON DfpSettings where
+        parseJSON
+          = withObject "DfpSettings"
+              (\ o ->
+                 DfpSettings <$>
+                   (o .:? "pubPaidPlacementAccepted") <*>
+                     (o .:? "dfp_network_name")
+                     <*> (o .:? "publisherPortalOnly")
+                     <*> (o .:? "programmaticPlacementAccepted")
+                     <*> (o .:? "dfp_network_code"))
+
+instance ToJSON DfpSettings where
+        toJSON DfpSettings{..}
+          = object
+              (catMaybes
+                 [("pubPaidPlacementAccepted" .=) <$>
+                    _dsPubPaidPlacementAccepted,
+                  ("dfp_network_name" .=) <$> _dsDfpNetworkName,
+                  ("publisherPortalOnly" .=) <$>
+                    _dsPublisherPortalOnly,
+                  ("programmaticPlacementAccepted" .=) <$>
+                    _dsProgrammaticPlacementAccepted,
+                  ("dfp_network_code" .=) <$> _dsDfpNetworkCode])
+
+-- | Represents fields that are compatible to be selected for a report of
+-- type \"PATH_TO_CONVERSION\".
+--
+-- /See:/ 'pathToConversionReportCompatibleFields' smart constructor.
+data PathToConversionReportCompatibleFields = PathToConversionReportCompatibleFields
+    { _ptcrcfMetrics                   :: !(Maybe [Metric])
+    , _ptcrcfKind                      :: !Text
+    , _ptcrcfConversionDimensions      :: !(Maybe [Dimension])
+    , _ptcrcfCustomFloodlightVariables :: !(Maybe [Dimension])
+    , _ptcrcfPerInteractionDimensions  :: !(Maybe [Dimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PathToConversionReportCompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcrcfMetrics'
+--
+-- * 'ptcrcfKind'
+--
+-- * 'ptcrcfConversionDimensions'
+--
+-- * 'ptcrcfCustomFloodlightVariables'
+--
+-- * 'ptcrcfPerInteractionDimensions'
+pathToConversionReportCompatibleFields
+    :: PathToConversionReportCompatibleFields
+pathToConversionReportCompatibleFields =
+    PathToConversionReportCompatibleFields
+    { _ptcrcfMetrics = Nothing
+    , _ptcrcfKind = "dfareporting#pathToConversionReportCompatibleFields"
+    , _ptcrcfConversionDimensions = Nothing
+    , _ptcrcfCustomFloodlightVariables = Nothing
+    , _ptcrcfPerInteractionDimensions = Nothing
+    }
+
+-- | Metrics which are compatible to be selected in the \"metricNames\"
+-- section of the report.
+ptcrcfMetrics :: Lens' PathToConversionReportCompatibleFields [Metric]
+ptcrcfMetrics
+  = lens _ptcrcfMetrics
+      (\ s a -> s{_ptcrcfMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | The kind of resource this is, in this case
+-- dfareporting#pathToConversionReportCompatibleFields.
+ptcrcfKind :: Lens' PathToConversionReportCompatibleFields Text
+ptcrcfKind
+  = lens _ptcrcfKind (\ s a -> s{_ptcrcfKind = a})
+
+-- | Conversion dimensions which are compatible to be selected in the
+-- \"conversionDimensions\" section of the report.
+ptcrcfConversionDimensions :: Lens' PathToConversionReportCompatibleFields [Dimension]
+ptcrcfConversionDimensions
+  = lens _ptcrcfConversionDimensions
+      (\ s a -> s{_ptcrcfConversionDimensions = a})
+      . _Default
+      . _Coerce
+
+-- | Custom floodlight variables which are compatible to be selected in the
+-- \"customFloodlightVariables\" section of the report.
+ptcrcfCustomFloodlightVariables :: Lens' PathToConversionReportCompatibleFields [Dimension]
+ptcrcfCustomFloodlightVariables
+  = lens _ptcrcfCustomFloodlightVariables
+      (\ s a -> s{_ptcrcfCustomFloodlightVariables = a})
+      . _Default
+      . _Coerce
+
+-- | Per-interaction dimensions which are compatible to be selected in the
+-- \"perInteractionDimensions\" section of the report.
+ptcrcfPerInteractionDimensions :: Lens' PathToConversionReportCompatibleFields [Dimension]
+ptcrcfPerInteractionDimensions
+  = lens _ptcrcfPerInteractionDimensions
+      (\ s a -> s{_ptcrcfPerInteractionDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         PathToConversionReportCompatibleFields where
+        parseJSON
+          = withObject "PathToConversionReportCompatibleFields"
+              (\ o ->
+                 PathToConversionReportCompatibleFields <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#pathToConversionReportCompatibleFields")
+                     <*> (o .:? "conversionDimensions" .!= mempty)
+                     <*> (o .:? "customFloodlightVariables" .!= mempty)
+                     <*> (o .:? "perInteractionDimensions" .!= mempty))
+
+instance ToJSON
+         PathToConversionReportCompatibleFields where
+        toJSON PathToConversionReportCompatibleFields{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _ptcrcfMetrics,
+                  Just ("kind" .= _ptcrcfKind),
+                  ("conversionDimensions" .=) <$>
+                    _ptcrcfConversionDimensions,
+                  ("customFloodlightVariables" .=) <$>
+                    _ptcrcfCustomFloodlightVariables,
+                  ("perInteractionDimensions" .=) <$>
+                    _ptcrcfPerInteractionDimensions])
+
+-- | Contains information about a city that can be targeted by ads.
+--
+-- /See:/ 'city' smart constructor.
+data City = City
+    { _ccMetroCode     :: !(Maybe Text)
+    , _ccRegionCode    :: !(Maybe Text)
+    , _ccKind          :: !Text
+    , _ccRegionDartId  :: !(Maybe (Textual Int64))
+    , _ccMetroDmaId    :: !(Maybe (Textual Int64))
+    , _ccName          :: !(Maybe Text)
+    , _ccCountryCode   :: !(Maybe Text)
+    , _ccCountryDartId :: !(Maybe (Textual Int64))
+    , _ccDartId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'City' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccMetroCode'
+--
+-- * 'ccRegionCode'
+--
+-- * 'ccKind'
+--
+-- * 'ccRegionDartId'
+--
+-- * 'ccMetroDmaId'
+--
+-- * 'ccName'
+--
+-- * 'ccCountryCode'
+--
+-- * 'ccCountryDartId'
+--
+-- * 'ccDartId'
+city
+    :: City
+city =
+    City
+    { _ccMetroCode = Nothing
+    , _ccRegionCode = Nothing
+    , _ccKind = "dfareporting#city"
+    , _ccRegionDartId = Nothing
+    , _ccMetroDmaId = Nothing
+    , _ccName = Nothing
+    , _ccCountryCode = Nothing
+    , _ccCountryDartId = Nothing
+    , _ccDartId = Nothing
+    }
+
+-- | Metro region code of the metro region (DMA) to which this city belongs.
+ccMetroCode :: Lens' City (Maybe Text)
+ccMetroCode
+  = lens _ccMetroCode (\ s a -> s{_ccMetroCode = a})
+
+-- | Region code of the region to which this city belongs.
+ccRegionCode :: Lens' City (Maybe Text)
+ccRegionCode
+  = lens _ccRegionCode (\ s a -> s{_ccRegionCode = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#city\".
+ccKind :: Lens' City Text
+ccKind = lens _ccKind (\ s a -> s{_ccKind = a})
+
+-- | DART ID of the region to which this city belongs.
+ccRegionDartId :: Lens' City (Maybe Int64)
+ccRegionDartId
+  = lens _ccRegionDartId
+      (\ s a -> s{_ccRegionDartId = a})
+      . mapping _Coerce
+
+-- | ID of the metro region (DMA) to which this city belongs.
+ccMetroDmaId :: Lens' City (Maybe Int64)
+ccMetroDmaId
+  = lens _ccMetroDmaId (\ s a -> s{_ccMetroDmaId = a})
+      . mapping _Coerce
+
+-- | Name of this city.
+ccName :: Lens' City (Maybe Text)
+ccName = lens _ccName (\ s a -> s{_ccName = a})
+
+-- | Country code of the country to which this city belongs.
+ccCountryCode :: Lens' City (Maybe Text)
+ccCountryCode
+  = lens _ccCountryCode
+      (\ s a -> s{_ccCountryCode = a})
+
+-- | DART ID of the country to which this city belongs.
+ccCountryDartId :: Lens' City (Maybe Int64)
+ccCountryDartId
+  = lens _ccCountryDartId
+      (\ s a -> s{_ccCountryDartId = a})
+      . mapping _Coerce
+
+-- | DART ID of this city. This is the ID used for targeting and generating
+-- reports.
+ccDartId :: Lens' City (Maybe Int64)
+ccDartId
+  = lens _ccDartId (\ s a -> s{_ccDartId = a}) .
+      mapping _Coerce
+
+instance FromJSON City where
+        parseJSON
+          = withObject "City"
+              (\ o ->
+                 City <$>
+                   (o .:? "metroCode") <*> (o .:? "regionCode") <*>
+                     (o .:? "kind" .!= "dfareporting#city")
+                     <*> (o .:? "regionDartId")
+                     <*> (o .:? "metroDmaId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "countryDartId")
+                     <*> (o .:? "dartId"))
+
+instance ToJSON City where
+        toJSON City{..}
+          = object
+              (catMaybes
+                 [("metroCode" .=) <$> _ccMetroCode,
+                  ("regionCode" .=) <$> _ccRegionCode,
+                  Just ("kind" .= _ccKind),
+                  ("regionDartId" .=) <$> _ccRegionDartId,
+                  ("metroDmaId" .=) <$> _ccMetroDmaId,
+                  ("name" .=) <$> _ccName,
+                  ("countryCode" .=) <$> _ccCountryCode,
+                  ("countryDartId" .=) <$> _ccCountryDartId,
+                  ("dartId" .=) <$> _ccDartId])
+
+-- | Contains information about a platform type that can be targeted by ads.
+--
+-- /See:/ 'platformType' smart constructor.
+data PlatformType = PlatformType
+    { _ptKind :: !Text
+    , _ptName :: !(Maybe Text)
+    , _ptId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlatformType' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptKind'
+--
+-- * 'ptName'
+--
+-- * 'ptId'
+platformType
+    :: PlatformType
+platformType =
+    PlatformType
+    { _ptKind = "dfareporting#platformType"
+    , _ptName = Nothing
+    , _ptId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#platformType\".
+ptKind :: Lens' PlatformType Text
+ptKind = lens _ptKind (\ s a -> s{_ptKind = a})
+
+-- | Name of this platform type.
+ptName :: Lens' PlatformType (Maybe Text)
+ptName = lens _ptName (\ s a -> s{_ptName = a})
+
+-- | ID of this platform type.
+ptId :: Lens' PlatformType (Maybe Int64)
+ptId
+  = lens _ptId (\ s a -> s{_ptId = a}) .
+      mapping _Coerce
+
+instance FromJSON PlatformType where
+        parseJSON
+          = withObject "PlatformType"
+              (\ o ->
+                 PlatformType <$>
+                   (o .:? "kind" .!= "dfareporting#platformType") <*>
+                     (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON PlatformType where
+        toJSON PlatformType{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ptKind), ("name" .=) <$> _ptName,
+                  ("id" .=) <$> _ptId])
+
+-- | Key Value Targeting Expression.
+--
+-- /See:/ 'keyValueTargetingExpression' smart constructor.
+newtype KeyValueTargetingExpression = KeyValueTargetingExpression
+    { _kvteExpression :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'KeyValueTargetingExpression' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'kvteExpression'
+keyValueTargetingExpression
+    :: KeyValueTargetingExpression
+keyValueTargetingExpression =
+    KeyValueTargetingExpression
+    { _kvteExpression = Nothing
+    }
+
+-- | Keyword expression being targeted by the ad.
+kvteExpression :: Lens' KeyValueTargetingExpression (Maybe Text)
+kvteExpression
+  = lens _kvteExpression
+      (\ s a -> s{_kvteExpression = a})
+
+instance FromJSON KeyValueTargetingExpression where
+        parseJSON
+          = withObject "KeyValueTargetingExpression"
+              (\ o ->
+                 KeyValueTargetingExpression <$> (o .:? "expression"))
+
+instance ToJSON KeyValueTargetingExpression where
+        toJSON KeyValueTargetingExpression{..}
+          = object
+              (catMaybes [("expression" .=) <$> _kvteExpression])
+
+-- | Companion Click-through override.
+--
+-- /See:/ 'companionClickThroughOverride' smart constructor.
+data CompanionClickThroughOverride = CompanionClickThroughOverride
+    { _cctoCreativeId      :: !(Maybe (Textual Int64))
+    , _cctoClickThroughURL :: !(Maybe ClickThroughURL)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CompanionClickThroughOverride' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cctoCreativeId'
+--
+-- * 'cctoClickThroughURL'
+companionClickThroughOverride
+    :: CompanionClickThroughOverride
+companionClickThroughOverride =
+    CompanionClickThroughOverride
+    { _cctoCreativeId = Nothing
+    , _cctoClickThroughURL = Nothing
+    }
+
+-- | ID of the creative for this companion click-through override.
+cctoCreativeId :: Lens' CompanionClickThroughOverride (Maybe Int64)
+cctoCreativeId
+  = lens _cctoCreativeId
+      (\ s a -> s{_cctoCreativeId = a})
+      . mapping _Coerce
+
+-- | Click-through URL of this companion click-through override.
+cctoClickThroughURL :: Lens' CompanionClickThroughOverride (Maybe ClickThroughURL)
+cctoClickThroughURL
+  = lens _cctoClickThroughURL
+      (\ s a -> s{_cctoClickThroughURL = a})
+
+instance FromJSON CompanionClickThroughOverride where
+        parseJSON
+          = withObject "CompanionClickThroughOverride"
+              (\ o ->
+                 CompanionClickThroughOverride <$>
+                   (o .:? "creativeId") <*> (o .:? "clickThroughUrl"))
+
+instance ToJSON CompanionClickThroughOverride where
+        toJSON CompanionClickThroughOverride{..}
+          = object
+              (catMaybes
+                 [("creativeId" .=) <$> _cctoCreativeId,
+                  ("clickThroughUrl" .=) <$> _cctoClickThroughURL])
+
+-- | Advertiser List Response
+--
+-- /See:/ 'advertisersListResponse' smart constructor.
+data AdvertisersListResponse = AdvertisersListResponse
+    { _advNextPageToken :: !(Maybe Text)
+    , _advKind          :: !Text
+    , _advAdvertisers   :: !(Maybe [Advertiser])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertisersListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'advNextPageToken'
+--
+-- * 'advKind'
+--
+-- * 'advAdvertisers'
+advertisersListResponse
+    :: AdvertisersListResponse
+advertisersListResponse =
+    AdvertisersListResponse
+    { _advNextPageToken = Nothing
+    , _advKind = "dfareporting#advertisersListResponse"
+    , _advAdvertisers = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+advNextPageToken :: Lens' AdvertisersListResponse (Maybe Text)
+advNextPageToken
+  = lens _advNextPageToken
+      (\ s a -> s{_advNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#advertisersListResponse\".
+advKind :: Lens' AdvertisersListResponse Text
+advKind = lens _advKind (\ s a -> s{_advKind = a})
+
+-- | Advertiser collection.
+advAdvertisers :: Lens' AdvertisersListResponse [Advertiser]
+advAdvertisers
+  = lens _advAdvertisers
+      (\ s a -> s{_advAdvertisers = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON AdvertisersListResponse where
+        parseJSON
+          = withObject "AdvertisersListResponse"
+              (\ o ->
+                 AdvertisersListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#advertisersListResponse")
+                     <*> (o .:? "advertisers" .!= mempty))
+
+instance ToJSON AdvertisersListResponse where
+        toJSON AdvertisersListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _advNextPageToken,
+                  Just ("kind" .= _advKind),
+                  ("advertisers" .=) <$> _advAdvertisers])
+
+-- | Country List Response
+--
+-- /See:/ 'countriesListResponse' smart constructor.
+data CountriesListResponse = CountriesListResponse
+    { _couKind      :: !Text
+    , _couCountries :: !(Maybe [Country])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CountriesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'couKind'
+--
+-- * 'couCountries'
+countriesListResponse
+    :: CountriesListResponse
+countriesListResponse =
+    CountriesListResponse
+    { _couKind = "dfareporting#countriesListResponse"
+    , _couCountries = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#countriesListResponse\".
+couKind :: Lens' CountriesListResponse Text
+couKind = lens _couKind (\ s a -> s{_couKind = a})
+
+-- | Country collection.
+couCountries :: Lens' CountriesListResponse [Country]
+couCountries
+  = lens _couCountries (\ s a -> s{_couCountries = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CountriesListResponse where
+        parseJSON
+          = withObject "CountriesListResponse"
+              (\ o ->
+                 CountriesListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#countriesListResponse")
+                     <*> (o .:? "countries" .!= mempty))
+
+instance ToJSON CountriesListResponse where
+        toJSON CountriesListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _couKind),
+                  ("countries" .=) <$> _couCountries])
+
+-- | Account Permission Group List Response
+--
+-- /See:/ 'accountPermissionGroupsListResponse' smart constructor.
+data AccountPermissionGroupsListResponse = AccountPermissionGroupsListResponse
+    { _apglrKind                    :: !Text
+    , _apglrAccountPermissionGroups :: !(Maybe [AccountPermissionGroup])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermissionGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apglrKind'
+--
+-- * 'apglrAccountPermissionGroups'
+accountPermissionGroupsListResponse
+    :: AccountPermissionGroupsListResponse
+accountPermissionGroupsListResponse =
+    AccountPermissionGroupsListResponse
+    { _apglrKind = "dfareporting#accountPermissionGroupsListResponse"
+    , _apglrAccountPermissionGroups = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountPermissionGroupsListResponse\".
+apglrKind :: Lens' AccountPermissionGroupsListResponse Text
+apglrKind
+  = lens _apglrKind (\ s a -> s{_apglrKind = a})
+
+-- | Account permission group collection.
+apglrAccountPermissionGroups :: Lens' AccountPermissionGroupsListResponse [AccountPermissionGroup]
+apglrAccountPermissionGroups
+  = lens _apglrAccountPermissionGroups
+      (\ s a -> s{_apglrAccountPermissionGroups = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON AccountPermissionGroupsListResponse
+         where
+        parseJSON
+          = withObject "AccountPermissionGroupsListResponse"
+              (\ o ->
+                 AccountPermissionGroupsListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#accountPermissionGroupsListResponse")
+                     <*> (o .:? "accountPermissionGroups" .!= mempty))
+
+instance ToJSON AccountPermissionGroupsListResponse
+         where
+        toJSON AccountPermissionGroupsListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _apglrKind),
+                  ("accountPermissionGroups" .=) <$>
+                    _apglrAccountPermissionGroups])
+
+-- | Popup Window Properties.
+--
+-- /See:/ 'popupWindowProperties' smart constructor.
+data PopupWindowProperties = PopupWindowProperties
+    { _pwpOffSet         :: !(Maybe OffSetPosition)
+    , _pwpDimension      :: !(Maybe Size)
+    , _pwpShowStatusBar  :: !(Maybe Bool)
+    , _pwpShowMenuBar    :: !(Maybe Bool)
+    , _pwpPositionType   :: !(Maybe PopupWindowPropertiesPositionType)
+    , _pwpShowAddressBar :: !(Maybe Bool)
+    , _pwpShowScrollBar  :: !(Maybe Bool)
+    , _pwpShowToolBar    :: !(Maybe Bool)
+    , _pwpTitle          :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PopupWindowProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pwpOffSet'
+--
+-- * 'pwpDimension'
+--
+-- * 'pwpShowStatusBar'
+--
+-- * 'pwpShowMenuBar'
+--
+-- * 'pwpPositionType'
+--
+-- * 'pwpShowAddressBar'
+--
+-- * 'pwpShowScrollBar'
+--
+-- * 'pwpShowToolBar'
+--
+-- * 'pwpTitle'
+popupWindowProperties
+    :: PopupWindowProperties
+popupWindowProperties =
+    PopupWindowProperties
+    { _pwpOffSet = Nothing
+    , _pwpDimension = Nothing
+    , _pwpShowStatusBar = Nothing
+    , _pwpShowMenuBar = Nothing
+    , _pwpPositionType = Nothing
+    , _pwpShowAddressBar = Nothing
+    , _pwpShowScrollBar = Nothing
+    , _pwpShowToolBar = Nothing
+    , _pwpTitle = Nothing
+    }
+
+-- | Upper-left corner coordinates of the popup window. Applicable if
+-- positionType is COORDINATES.
+pwpOffSet :: Lens' PopupWindowProperties (Maybe OffSetPosition)
+pwpOffSet
+  = lens _pwpOffSet (\ s a -> s{_pwpOffSet = a})
+
+-- | Popup dimension for a creative. This is a read-only field. Applicable to
+-- the following creative types: all RICH_MEDIA and all VPAID
+pwpDimension :: Lens' PopupWindowProperties (Maybe Size)
+pwpDimension
+  = lens _pwpDimension (\ s a -> s{_pwpDimension = a})
+
+-- | Whether to display the browser status bar.
+pwpShowStatusBar :: Lens' PopupWindowProperties (Maybe Bool)
+pwpShowStatusBar
+  = lens _pwpShowStatusBar
+      (\ s a -> s{_pwpShowStatusBar = a})
+
+-- | Whether to display the browser menu bar.
+pwpShowMenuBar :: Lens' PopupWindowProperties (Maybe Bool)
+pwpShowMenuBar
+  = lens _pwpShowMenuBar
+      (\ s a -> s{_pwpShowMenuBar = a})
+
+-- | Popup window position either centered or at specific coordinate.
+pwpPositionType :: Lens' PopupWindowProperties (Maybe PopupWindowPropertiesPositionType)
+pwpPositionType
+  = lens _pwpPositionType
+      (\ s a -> s{_pwpPositionType = a})
+
+-- | Whether to display the browser address bar.
+pwpShowAddressBar :: Lens' PopupWindowProperties (Maybe Bool)
+pwpShowAddressBar
+  = lens _pwpShowAddressBar
+      (\ s a -> s{_pwpShowAddressBar = a})
+
+-- | Whether to display the browser scroll bar.
+pwpShowScrollBar :: Lens' PopupWindowProperties (Maybe Bool)
+pwpShowScrollBar
+  = lens _pwpShowScrollBar
+      (\ s a -> s{_pwpShowScrollBar = a})
+
+-- | Whether to display the browser tool bar.
+pwpShowToolBar :: Lens' PopupWindowProperties (Maybe Bool)
+pwpShowToolBar
+  = lens _pwpShowToolBar
+      (\ s a -> s{_pwpShowToolBar = a})
+
+-- | Title of popup window.
+pwpTitle :: Lens' PopupWindowProperties (Maybe Text)
+pwpTitle = lens _pwpTitle (\ s a -> s{_pwpTitle = a})
+
+instance FromJSON PopupWindowProperties where
+        parseJSON
+          = withObject "PopupWindowProperties"
+              (\ o ->
+                 PopupWindowProperties <$>
+                   (o .:? "offset") <*> (o .:? "dimension") <*>
+                     (o .:? "showStatusBar")
+                     <*> (o .:? "showMenuBar")
+                     <*> (o .:? "positionType")
+                     <*> (o .:? "showAddressBar")
+                     <*> (o .:? "showScrollBar")
+                     <*> (o .:? "showToolBar")
+                     <*> (o .:? "title"))
+
+instance ToJSON PopupWindowProperties where
+        toJSON PopupWindowProperties{..}
+          = object
+              (catMaybes
+                 [("offset" .=) <$> _pwpOffSet,
+                  ("dimension" .=) <$> _pwpDimension,
+                  ("showStatusBar" .=) <$> _pwpShowStatusBar,
+                  ("showMenuBar" .=) <$> _pwpShowMenuBar,
+                  ("positionType" .=) <$> _pwpPositionType,
+                  ("showAddressBar" .=) <$> _pwpShowAddressBar,
+                  ("showScrollBar" .=) <$> _pwpShowScrollBar,
+                  ("showToolBar" .=) <$> _pwpShowToolBar,
+                  ("title" .=) <$> _pwpTitle])
+
+-- | Event tag override information.
+--
+-- /See:/ 'eventTagOverride' smart constructor.
+data EventTagOverride = EventTagOverride
+    { _etoEnabled :: !(Maybe Bool)
+    , _etoId      :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTagOverride' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etoEnabled'
+--
+-- * 'etoId'
+eventTagOverride
+    :: EventTagOverride
+eventTagOverride =
+    EventTagOverride
+    { _etoEnabled = Nothing
+    , _etoId = Nothing
+    }
+
+-- | Whether this override is enabled.
+etoEnabled :: Lens' EventTagOverride (Maybe Bool)
+etoEnabled
+  = lens _etoEnabled (\ s a -> s{_etoEnabled = a})
+
+-- | ID of this event tag override. This is a read-only, auto-generated
+-- field.
+etoId :: Lens' EventTagOverride (Maybe Int64)
+etoId
+  = lens _etoId (\ s a -> s{_etoId = a}) .
+      mapping _Coerce
+
+instance FromJSON EventTagOverride where
+        parseJSON
+          = withObject "EventTagOverride"
+              (\ o ->
+                 EventTagOverride <$>
+                   (o .:? "enabled") <*> (o .:? "id"))
+
+instance ToJSON EventTagOverride where
+        toJSON EventTagOverride{..}
+          = object
+              (catMaybes
+                 [("enabled" .=) <$> _etoEnabled,
+                  ("id" .=) <$> _etoId])
+
+-- | Contains information about a particular version of an operating system
+-- that can be targeted by ads.
+--
+-- /See:/ 'operatingSystemVersion' smart constructor.
+data OperatingSystemVersion = OperatingSystemVersion
+    { _osvMinorVersion    :: !(Maybe Text)
+    , _osvKind            :: !Text
+    , _osvOperatingSystem :: !(Maybe OperatingSystem)
+    , _osvMajorVersion    :: !(Maybe Text)
+    , _osvName            :: !(Maybe Text)
+    , _osvId              :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemVersion' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osvMinorVersion'
+--
+-- * 'osvKind'
+--
+-- * 'osvOperatingSystem'
+--
+-- * 'osvMajorVersion'
+--
+-- * 'osvName'
+--
+-- * 'osvId'
+operatingSystemVersion
+    :: OperatingSystemVersion
+operatingSystemVersion =
+    OperatingSystemVersion
+    { _osvMinorVersion = Nothing
+    , _osvKind = "dfareporting#operatingSystemVersion"
+    , _osvOperatingSystem = Nothing
+    , _osvMajorVersion = Nothing
+    , _osvName = Nothing
+    , _osvId = Nothing
+    }
+
+-- | Minor version (number after the first dot) of this operating system
+-- version.
+osvMinorVersion :: Lens' OperatingSystemVersion (Maybe Text)
+osvMinorVersion
+  = lens _osvMinorVersion
+      (\ s a -> s{_osvMinorVersion = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#operatingSystemVersion\".
+osvKind :: Lens' OperatingSystemVersion Text
+osvKind = lens _osvKind (\ s a -> s{_osvKind = a})
+
+-- | Operating system of this operating system version.
+osvOperatingSystem :: Lens' OperatingSystemVersion (Maybe OperatingSystem)
+osvOperatingSystem
+  = lens _osvOperatingSystem
+      (\ s a -> s{_osvOperatingSystem = a})
+
+-- | Major version (leftmost number) of this operating system version.
+osvMajorVersion :: Lens' OperatingSystemVersion (Maybe Text)
+osvMajorVersion
+  = lens _osvMajorVersion
+      (\ s a -> s{_osvMajorVersion = a})
+
+-- | Name of this operating system version.
+osvName :: Lens' OperatingSystemVersion (Maybe Text)
+osvName = lens _osvName (\ s a -> s{_osvName = a})
+
+-- | ID of this operating system version.
+osvId :: Lens' OperatingSystemVersion (Maybe Int64)
+osvId
+  = lens _osvId (\ s a -> s{_osvId = a}) .
+      mapping _Coerce
+
+instance FromJSON OperatingSystemVersion where
+        parseJSON
+          = withObject "OperatingSystemVersion"
+              (\ o ->
+                 OperatingSystemVersion <$>
+                   (o .:? "minorVersion") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#operatingSystemVersion")
+                     <*> (o .:? "operatingSystem")
+                     <*> (o .:? "majorVersion")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON OperatingSystemVersion where
+        toJSON OperatingSystemVersion{..}
+          = object
+              (catMaybes
+                 [("minorVersion" .=) <$> _osvMinorVersion,
+                  Just ("kind" .= _osvKind),
+                  ("operatingSystem" .=) <$> _osvOperatingSystem,
+                  ("majorVersion" .=) <$> _osvMajorVersion,
+                  ("name" .=) <$> _osvName, ("id" .=) <$> _osvId])
+
+-- | AccountPermissions contains information about a particular account
+-- permission. Some features of DCM require an account permission to be
+-- present in the account.
+--
+-- /See:/ 'accountPermission' smart constructor.
+data AccountPermission = AccountPermission
+    { _acccKind              :: !Text
+    , _acccAccountProFiles   :: !(Maybe [AccountPermissionAccountProFilesItem])
+    , _acccName              :: !(Maybe Text)
+    , _acccId                :: !(Maybe (Textual Int64))
+    , _acccLevel             :: !(Maybe AccountPermissionLevel)
+    , _acccPermissionGroupId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermission' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acccKind'
+--
+-- * 'acccAccountProFiles'
+--
+-- * 'acccName'
+--
+-- * 'acccId'
+--
+-- * 'acccLevel'
+--
+-- * 'acccPermissionGroupId'
+accountPermission
+    :: AccountPermission
+accountPermission =
+    AccountPermission
+    { _acccKind = "dfareporting#accountPermission"
+    , _acccAccountProFiles = Nothing
+    , _acccName = Nothing
+    , _acccId = Nothing
+    , _acccLevel = Nothing
+    , _acccPermissionGroupId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountPermission\".
+acccKind :: Lens' AccountPermission Text
+acccKind = lens _acccKind (\ s a -> s{_acccKind = a})
+
+-- | Account profiles associated with this account permission. Possible
+-- values are: - \"ACCOUNT_PROFILE_BASIC\" - \"ACCOUNT_PROFILE_STANDARD\"
+acccAccountProFiles :: Lens' AccountPermission [AccountPermissionAccountProFilesItem]
+acccAccountProFiles
+  = lens _acccAccountProFiles
+      (\ s a -> s{_acccAccountProFiles = a})
+      . _Default
+      . _Coerce
+
+-- | Name of this account permission.
+acccName :: Lens' AccountPermission (Maybe Text)
+acccName = lens _acccName (\ s a -> s{_acccName = a})
+
+-- | ID of this account permission.
+acccId :: Lens' AccountPermission (Maybe Int64)
+acccId
+  = lens _acccId (\ s a -> s{_acccId = a}) .
+      mapping _Coerce
+
+-- | Administrative level required to enable this account permission.
+acccLevel :: Lens' AccountPermission (Maybe AccountPermissionLevel)
+acccLevel
+  = lens _acccLevel (\ s a -> s{_acccLevel = a})
+
+-- | Permission group of this account permission.
+acccPermissionGroupId :: Lens' AccountPermission (Maybe Int64)
+acccPermissionGroupId
+  = lens _acccPermissionGroupId
+      (\ s a -> s{_acccPermissionGroupId = a})
+      . mapping _Coerce
+
+instance FromJSON AccountPermission where
+        parseJSON
+          = withObject "AccountPermission"
+              (\ o ->
+                 AccountPermission <$>
+                   (o .:? "kind" .!= "dfareporting#accountPermission")
+                     <*> (o .:? "accountProfiles" .!= mempty)
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "level")
+                     <*> (o .:? "permissionGroupId"))
+
+instance ToJSON AccountPermission where
+        toJSON AccountPermission{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _acccKind),
+                  ("accountProfiles" .=) <$> _acccAccountProFiles,
+                  ("name" .=) <$> _acccName, ("id" .=) <$> _acccId,
+                  ("level" .=) <$> _acccLevel,
+                  ("permissionGroupId" .=) <$> _acccPermissionGroupId])
+
+-- | Represents a UserProfile resource.
+--
+-- /See:/ 'userProFile' smart constructor.
+data UserProFile = UserProFile
+    { _upfEtag           :: !(Maybe Text)
+    , _upfKind           :: !Text
+    , _upfAccountName    :: !(Maybe Text)
+    , _upfProFileId      :: !(Maybe (Textual Int64))
+    , _upfUserName       :: !(Maybe Text)
+    , _upfAccountId      :: !(Maybe (Textual Int64))
+    , _upfSubAccountName :: !(Maybe Text)
+    , _upfSubAccountId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFile' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upfEtag'
+--
+-- * 'upfKind'
+--
+-- * 'upfAccountName'
+--
+-- * 'upfProFileId'
+--
+-- * 'upfUserName'
+--
+-- * 'upfAccountId'
+--
+-- * 'upfSubAccountName'
+--
+-- * 'upfSubAccountId'
+userProFile
+    :: UserProFile
+userProFile =
+    UserProFile
+    { _upfEtag = Nothing
+    , _upfKind = "dfareporting#userProfile"
+    , _upfAccountName = Nothing
+    , _upfProFileId = Nothing
+    , _upfUserName = Nothing
+    , _upfAccountId = Nothing
+    , _upfSubAccountName = Nothing
+    , _upfSubAccountId = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+upfEtag :: Lens' UserProFile (Maybe Text)
+upfEtag = lens _upfEtag (\ s a -> s{_upfEtag = a})
+
+-- | The kind of resource this is, in this case dfareporting#userProfile.
+upfKind :: Lens' UserProFile Text
+upfKind = lens _upfKind (\ s a -> s{_upfKind = a})
+
+-- | The account name this profile belongs to.
+upfAccountName :: Lens' UserProFile (Maybe Text)
+upfAccountName
+  = lens _upfAccountName
+      (\ s a -> s{_upfAccountName = a})
+
+-- | The unique ID of the user profile.
+upfProFileId :: Lens' UserProFile (Maybe Int64)
+upfProFileId
+  = lens _upfProFileId (\ s a -> s{_upfProFileId = a})
+      . mapping _Coerce
+
+-- | The user name.
+upfUserName :: Lens' UserProFile (Maybe Text)
+upfUserName
+  = lens _upfUserName (\ s a -> s{_upfUserName = a})
+
+-- | The account ID to which this profile belongs.
+upfAccountId :: Lens' UserProFile (Maybe Int64)
+upfAccountId
+  = lens _upfAccountId (\ s a -> s{_upfAccountId = a})
+      . mapping _Coerce
+
+-- | The sub account name this profile belongs to if applicable.
+upfSubAccountName :: Lens' UserProFile (Maybe Text)
+upfSubAccountName
+  = lens _upfSubAccountName
+      (\ s a -> s{_upfSubAccountName = a})
+
+-- | The sub account ID this profile belongs to if applicable.
+upfSubAccountId :: Lens' UserProFile (Maybe Int64)
+upfSubAccountId
+  = lens _upfSubAccountId
+      (\ s a -> s{_upfSubAccountId = a})
+      . mapping _Coerce
+
+instance FromJSON UserProFile where
+        parseJSON
+          = withObject "UserProFile"
+              (\ o ->
+                 UserProFile <$>
+                   (o .:? "etag") <*>
+                     (o .:? "kind" .!= "dfareporting#userProfile")
+                     <*> (o .:? "accountName")
+                     <*> (o .:? "profileId")
+                     <*> (o .:? "userName")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "subAccountName")
+                     <*> (o .:? "subAccountId"))
+
+instance ToJSON UserProFile where
+        toJSON UserProFile{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _upfEtag, Just ("kind" .= _upfKind),
+                  ("accountName" .=) <$> _upfAccountName,
+                  ("profileId" .=) <$> _upfProFileId,
+                  ("userName" .=) <$> _upfUserName,
+                  ("accountId" .=) <$> _upfAccountId,
+                  ("subAccountName" .=) <$> _upfSubAccountName,
+                  ("subAccountId" .=) <$> _upfSubAccountId])
+
+-- | Operating System List Response
+--
+-- /See:/ 'operatingSystemsListResponse' smart constructor.
+data OperatingSystemsListResponse = OperatingSystemsListResponse
+    { _oslrKind             :: !Text
+    , _oslrOperatingSystems :: !(Maybe [OperatingSystem])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'oslrKind'
+--
+-- * 'oslrOperatingSystems'
+operatingSystemsListResponse
+    :: OperatingSystemsListResponse
+operatingSystemsListResponse =
+    OperatingSystemsListResponse
+    { _oslrKind = "dfareporting#operatingSystemsListResponse"
+    , _oslrOperatingSystems = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#operatingSystemsListResponse\".
+oslrKind :: Lens' OperatingSystemsListResponse Text
+oslrKind = lens _oslrKind (\ s a -> s{_oslrKind = a})
+
+-- | Operating system collection.
+oslrOperatingSystems :: Lens' OperatingSystemsListResponse [OperatingSystem]
+oslrOperatingSystems
+  = lens _oslrOperatingSystems
+      (\ s a -> s{_oslrOperatingSystems = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON OperatingSystemsListResponse where
+        parseJSON
+          = withObject "OperatingSystemsListResponse"
+              (\ o ->
+                 OperatingSystemsListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#operatingSystemsListResponse")
+                     <*> (o .:? "operatingSystems" .!= mempty))
+
+instance ToJSON OperatingSystemsListResponse where
+        toJSON OperatingSystemsListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _oslrKind),
+                  ("operatingSystems" .=) <$> _oslrOperatingSystems])
+
+-- | The report\'s email delivery settings.
+--
+-- /See:/ 'reportDelivery' smart constructor.
+data ReportDelivery = ReportDelivery
+    { _rdEmailOwner             :: !(Maybe Bool)
+    , _rdRecipients             :: !(Maybe [Recipient])
+    , _rdMessage                :: !(Maybe Text)
+    , _rdEmailOwnerDeliveryType :: !(Maybe ReportDeliveryEmailOwnerDeliveryType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportDelivery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdEmailOwner'
+--
+-- * 'rdRecipients'
+--
+-- * 'rdMessage'
+--
+-- * 'rdEmailOwnerDeliveryType'
+reportDelivery
+    :: ReportDelivery
+reportDelivery =
+    ReportDelivery
+    { _rdEmailOwner = Nothing
+    , _rdRecipients = Nothing
+    , _rdMessage = Nothing
+    , _rdEmailOwnerDeliveryType = Nothing
+    }
+
+-- | Whether the report should be emailed to the report owner.
+rdEmailOwner :: Lens' ReportDelivery (Maybe Bool)
+rdEmailOwner
+  = lens _rdEmailOwner (\ s a -> s{_rdEmailOwner = a})
+
+-- | The list of recipients to which to email the report.
+rdRecipients :: Lens' ReportDelivery [Recipient]
+rdRecipients
+  = lens _rdRecipients (\ s a -> s{_rdRecipients = a})
+      . _Default
+      . _Coerce
+
+-- | The message to be sent with each email.
+rdMessage :: Lens' ReportDelivery (Maybe Text)
+rdMessage
+  = lens _rdMessage (\ s a -> s{_rdMessage = a})
+
+-- | The type of delivery for the owner to receive, if enabled.
+rdEmailOwnerDeliveryType :: Lens' ReportDelivery (Maybe ReportDeliveryEmailOwnerDeliveryType)
+rdEmailOwnerDeliveryType
+  = lens _rdEmailOwnerDeliveryType
+      (\ s a -> s{_rdEmailOwnerDeliveryType = a})
+
+instance FromJSON ReportDelivery where
+        parseJSON
+          = withObject "ReportDelivery"
+              (\ o ->
+                 ReportDelivery <$>
+                   (o .:? "emailOwner") <*>
+                     (o .:? "recipients" .!= mempty)
+                     <*> (o .:? "message")
+                     <*> (o .:? "emailOwnerDeliveryType"))
+
+instance ToJSON ReportDelivery where
+        toJSON ReportDelivery{..}
+          = object
+              (catMaybes
+                 [("emailOwner" .=) <$> _rdEmailOwner,
+                  ("recipients" .=) <$> _rdRecipients,
+                  ("message" .=) <$> _rdMessage,
+                  ("emailOwnerDeliveryType" .=) <$>
+                    _rdEmailOwnerDeliveryType])
+
+-- | Contains properties of a targetable remarketing list. Remarketing
+-- enables you to create lists of users who have performed specific actions
+-- on a site, then target ads to members of those lists. This resource is a
+-- read-only view of a remarketing list to be used to faciliate targeting
+-- ads to specific lists. Remarketing lists that are owned by your
+-- advertisers and those that are shared to your advertisers or account are
+-- accessible via this resource. To manage remarketing lists that are owned
+-- by your advertisers, use the RemarketingLists resource.
+--
+-- /See:/ 'targetableRemarketingList' smart constructor.
+data TargetableRemarketingList = TargetableRemarketingList
+    { _trlListSize                   :: !(Maybe (Textual Int64))
+    , _trlLifeSpan                   :: !(Maybe (Textual Int64))
+    , _trlKind                       :: !Text
+    , _trlAdvertiserId               :: !(Maybe (Textual Int64))
+    , _trlAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
+    , _trlActive                     :: !(Maybe Bool)
+    , _trlAccountId                  :: !(Maybe (Textual Int64))
+    , _trlName                       :: !(Maybe Text)
+    , _trlListSource                 :: !(Maybe TargetableRemarketingListListSource)
+    , _trlId                         :: !(Maybe (Textual Int64))
+    , _trlSubAccountId               :: !(Maybe (Textual Int64))
+    , _trlDescription                :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetableRemarketingList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trlListSize'
+--
+-- * 'trlLifeSpan'
+--
+-- * 'trlKind'
+--
+-- * 'trlAdvertiserId'
+--
+-- * 'trlAdvertiserIdDimensionValue'
+--
+-- * 'trlActive'
+--
+-- * 'trlAccountId'
+--
+-- * 'trlName'
+--
+-- * 'trlListSource'
+--
+-- * 'trlId'
+--
+-- * 'trlSubAccountId'
+--
+-- * 'trlDescription'
+targetableRemarketingList
+    :: TargetableRemarketingList
+targetableRemarketingList =
+    TargetableRemarketingList
+    { _trlListSize = Nothing
+    , _trlLifeSpan = Nothing
+    , _trlKind = "dfareporting#targetableRemarketingList"
+    , _trlAdvertiserId = Nothing
+    , _trlAdvertiserIdDimensionValue = Nothing
+    , _trlActive = Nothing
+    , _trlAccountId = Nothing
+    , _trlName = Nothing
+    , _trlListSource = Nothing
+    , _trlId = Nothing
+    , _trlSubAccountId = Nothing
+    , _trlDescription = Nothing
+    }
+
+-- | Number of users currently in the list. This is a read-only field.
+trlListSize :: Lens' TargetableRemarketingList (Maybe Int64)
+trlListSize
+  = lens _trlListSize (\ s a -> s{_trlListSize = a}) .
+      mapping _Coerce
+
+-- | Number of days that a user should remain in the targetable remarketing
+-- list without an impression.
+trlLifeSpan :: Lens' TargetableRemarketingList (Maybe Int64)
+trlLifeSpan
+  = lens _trlLifeSpan (\ s a -> s{_trlLifeSpan = a}) .
+      mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#targetableRemarketingList\".
+trlKind :: Lens' TargetableRemarketingList Text
+trlKind = lens _trlKind (\ s a -> s{_trlKind = a})
+
+-- | Dimension value for the advertiser ID that owns this targetable
+-- remarketing list.
+trlAdvertiserId :: Lens' TargetableRemarketingList (Maybe Int64)
+trlAdvertiserId
+  = lens _trlAdvertiserId
+      (\ s a -> s{_trlAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser.
+trlAdvertiserIdDimensionValue :: Lens' TargetableRemarketingList (Maybe DimensionValue)
+trlAdvertiserIdDimensionValue
+  = lens _trlAdvertiserIdDimensionValue
+      (\ s a -> s{_trlAdvertiserIdDimensionValue = a})
+
+-- | Whether this targetable remarketing list is active.
+trlActive :: Lens' TargetableRemarketingList (Maybe Bool)
+trlActive
+  = lens _trlActive (\ s a -> s{_trlActive = a})
+
+-- | Account ID of this remarketing list. This is a read-only, auto-generated
+-- field that is only returned in GET requests.
+trlAccountId :: Lens' TargetableRemarketingList (Maybe Int64)
+trlAccountId
+  = lens _trlAccountId (\ s a -> s{_trlAccountId = a})
+      . mapping _Coerce
+
+-- | Name of the targetable remarketing list. Is no greater than 128
+-- characters long.
+trlName :: Lens' TargetableRemarketingList (Maybe Text)
+trlName = lens _trlName (\ s a -> s{_trlName = a})
+
+-- | Product from which this targetable remarketing list was originated.
+trlListSource :: Lens' TargetableRemarketingList (Maybe TargetableRemarketingListListSource)
+trlListSource
+  = lens _trlListSource
+      (\ s a -> s{_trlListSource = a})
+
+-- | Targetable remarketing list ID.
+trlId :: Lens' TargetableRemarketingList (Maybe Int64)
+trlId
+  = lens _trlId (\ s a -> s{_trlId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this remarketing list. This is a read-only,
+-- auto-generated field that is only returned in GET requests.
+trlSubAccountId :: Lens' TargetableRemarketingList (Maybe Int64)
+trlSubAccountId
+  = lens _trlSubAccountId
+      (\ s a -> s{_trlSubAccountId = a})
+      . mapping _Coerce
+
+-- | Targetable remarketing list description.
+trlDescription :: Lens' TargetableRemarketingList (Maybe Text)
+trlDescription
+  = lens _trlDescription
+      (\ s a -> s{_trlDescription = a})
+
+instance FromJSON TargetableRemarketingList where
+        parseJSON
+          = withObject "TargetableRemarketingList"
+              (\ o ->
+                 TargetableRemarketingList <$>
+                   (o .:? "listSize") <*> (o .:? "lifeSpan") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#targetableRemarketingList")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "active")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "listSource")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "description"))
+
+instance ToJSON TargetableRemarketingList where
+        toJSON TargetableRemarketingList{..}
+          = object
+              (catMaybes
+                 [("listSize" .=) <$> _trlListSize,
+                  ("lifeSpan" .=) <$> _trlLifeSpan,
+                  Just ("kind" .= _trlKind),
+                  ("advertiserId" .=) <$> _trlAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _trlAdvertiserIdDimensionValue,
+                  ("active" .=) <$> _trlActive,
+                  ("accountId" .=) <$> _trlAccountId,
+                  ("name" .=) <$> _trlName,
+                  ("listSource" .=) <$> _trlListSource,
+                  ("id" .=) <$> _trlId,
+                  ("subaccountId" .=) <$> _trlSubAccountId,
+                  ("description" .=) <$> _trlDescription])
+
+-- | Postal Code List Response
+--
+-- /See:/ 'postalCodesListResponse' smart constructor.
+data PostalCodesListResponse = PostalCodesListResponse
+    { _pclrKind        :: !Text
+    , _pclrPostalCodes :: !(Maybe [PostalCode])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PostalCodesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pclrKind'
+--
+-- * 'pclrPostalCodes'
+postalCodesListResponse
+    :: PostalCodesListResponse
+postalCodesListResponse =
+    PostalCodesListResponse
+    { _pclrKind = "dfareporting#postalCodesListResponse"
+    , _pclrPostalCodes = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#postalCodesListResponse\".
+pclrKind :: Lens' PostalCodesListResponse Text
+pclrKind = lens _pclrKind (\ s a -> s{_pclrKind = a})
+
+-- | Postal code collection.
+pclrPostalCodes :: Lens' PostalCodesListResponse [PostalCode]
+pclrPostalCodes
+  = lens _pclrPostalCodes
+      (\ s a -> s{_pclrPostalCodes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON PostalCodesListResponse where
+        parseJSON
+          = withObject "PostalCodesListResponse"
+              (\ o ->
+                 PostalCodesListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#postalCodesListResponse")
+                     <*> (o .:? "postalCodes" .!= mempty))
+
+instance ToJSON PostalCodesListResponse where
+        toJSON PostalCodesListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _pclrKind),
+                  ("postalCodes" .=) <$> _pclrPostalCodes])
+
+-- | Describes a change that a user has made to a resource.
+--
+-- /See:/ 'changeLog' smart constructor.
+data ChangeLog = ChangeLog
+    { _chaUserProFileId   :: !(Maybe (Textual Int64))
+    , _chaObjectType      :: !(Maybe Text)
+    , _chaUserProFileName :: !(Maybe Text)
+    , _chaKind            :: !Text
+    , _chaObjectId        :: !(Maybe (Textual Int64))
+    , _chaAction          :: !(Maybe Text)
+    , _chaTransactionId   :: !(Maybe (Textual Int64))
+    , _chaOldValue        :: !(Maybe Text)
+    , _chaAccountId       :: !(Maybe (Textual Int64))
+    , _chaNewValue        :: !(Maybe Text)
+    , _chaFieldName       :: !(Maybe Text)
+    , _chaId              :: !(Maybe (Textual Int64))
+    , _chaSubAccountId    :: !(Maybe (Textual Int64))
+    , _chaChangeTime      :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ChangeLog' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'chaUserProFileId'
+--
+-- * 'chaObjectType'
+--
+-- * 'chaUserProFileName'
+--
+-- * 'chaKind'
+--
+-- * 'chaObjectId'
+--
+-- * 'chaAction'
+--
+-- * 'chaTransactionId'
+--
+-- * 'chaOldValue'
+--
+-- * 'chaAccountId'
+--
+-- * 'chaNewValue'
+--
+-- * 'chaFieldName'
+--
+-- * 'chaId'
+--
+-- * 'chaSubAccountId'
+--
+-- * 'chaChangeTime'
+changeLog
+    :: ChangeLog
+changeLog =
+    ChangeLog
+    { _chaUserProFileId = Nothing
+    , _chaObjectType = Nothing
+    , _chaUserProFileName = Nothing
+    , _chaKind = "dfareporting#changeLog"
+    , _chaObjectId = Nothing
+    , _chaAction = Nothing
+    , _chaTransactionId = Nothing
+    , _chaOldValue = Nothing
+    , _chaAccountId = Nothing
+    , _chaNewValue = Nothing
+    , _chaFieldName = Nothing
+    , _chaId = Nothing
+    , _chaSubAccountId = Nothing
+    , _chaChangeTime = Nothing
+    }
+
+-- | ID of the user who modified the object.
+chaUserProFileId :: Lens' ChangeLog (Maybe Int64)
+chaUserProFileId
+  = lens _chaUserProFileId
+      (\ s a -> s{_chaUserProFileId = a})
+      . mapping _Coerce
+
+-- | Object type of the change log.
+chaObjectType :: Lens' ChangeLog (Maybe Text)
+chaObjectType
+  = lens _chaObjectType
+      (\ s a -> s{_chaObjectType = a})
+
+-- | User profile name of the user who modified the object.
+chaUserProFileName :: Lens' ChangeLog (Maybe Text)
+chaUserProFileName
+  = lens _chaUserProFileName
+      (\ s a -> s{_chaUserProFileName = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#changeLog\".
+chaKind :: Lens' ChangeLog Text
+chaKind = lens _chaKind (\ s a -> s{_chaKind = a})
+
+-- | ID of the object of this change log. The object could be a campaign,
+-- placement, ad, or other type.
+chaObjectId :: Lens' ChangeLog (Maybe Int64)
+chaObjectId
+  = lens _chaObjectId (\ s a -> s{_chaObjectId = a}) .
+      mapping _Coerce
+
+-- | Action which caused the change.
+chaAction :: Lens' ChangeLog (Maybe Text)
+chaAction
+  = lens _chaAction (\ s a -> s{_chaAction = a})
+
+-- | Transaction ID of this change log. When a single API call results in
+-- many changes, each change will have a separate ID in the change log but
+-- will share the same transactionId.
+chaTransactionId :: Lens' ChangeLog (Maybe Int64)
+chaTransactionId
+  = lens _chaTransactionId
+      (\ s a -> s{_chaTransactionId = a})
+      . mapping _Coerce
+
+-- | Old value of the object field.
+chaOldValue :: Lens' ChangeLog (Maybe Text)
+chaOldValue
+  = lens _chaOldValue (\ s a -> s{_chaOldValue = a})
+
+-- | Account ID of the modified object.
+chaAccountId :: Lens' ChangeLog (Maybe Int64)
+chaAccountId
+  = lens _chaAccountId (\ s a -> s{_chaAccountId = a})
+      . mapping _Coerce
+
+-- | New value of the object field.
+chaNewValue :: Lens' ChangeLog (Maybe Text)
+chaNewValue
+  = lens _chaNewValue (\ s a -> s{_chaNewValue = a})
+
+-- | Field name of the object which changed.
+chaFieldName :: Lens' ChangeLog (Maybe Text)
+chaFieldName
+  = lens _chaFieldName (\ s a -> s{_chaFieldName = a})
+
+-- | ID of this change log.
+chaId :: Lens' ChangeLog (Maybe Int64)
+chaId
+  = lens _chaId (\ s a -> s{_chaId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of the modified object.
+chaSubAccountId :: Lens' ChangeLog (Maybe Int64)
+chaSubAccountId
+  = lens _chaSubAccountId
+      (\ s a -> s{_chaSubAccountId = a})
+      . mapping _Coerce
+
+-- | Time when the object was modified.
+chaChangeTime :: Lens' ChangeLog (Maybe UTCTime)
+chaChangeTime
+  = lens _chaChangeTime
+      (\ s a -> s{_chaChangeTime = a})
+      . mapping _DateTime
+
+instance FromJSON ChangeLog where
+        parseJSON
+          = withObject "ChangeLog"
+              (\ o ->
+                 ChangeLog <$>
+                   (o .:? "userProfileId") <*> (o .:? "objectType") <*>
+                     (o .:? "userProfileName")
+                     <*> (o .:? "kind" .!= "dfareporting#changeLog")
+                     <*> (o .:? "objectId")
+                     <*> (o .:? "action")
+                     <*> (o .:? "transactionId")
+                     <*> (o .:? "oldValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "newValue")
+                     <*> (o .:? "fieldName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "changeTime"))
+
+instance ToJSON ChangeLog where
+        toJSON ChangeLog{..}
+          = object
+              (catMaybes
+                 [("userProfileId" .=) <$> _chaUserProFileId,
+                  ("objectType" .=) <$> _chaObjectType,
+                  ("userProfileName" .=) <$> _chaUserProFileName,
+                  Just ("kind" .= _chaKind),
+                  ("objectId" .=) <$> _chaObjectId,
+                  ("action" .=) <$> _chaAction,
+                  ("transactionId" .=) <$> _chaTransactionId,
+                  ("oldValue" .=) <$> _chaOldValue,
+                  ("accountId" .=) <$> _chaAccountId,
+                  ("newValue" .=) <$> _chaNewValue,
+                  ("fieldName" .=) <$> _chaFieldName,
+                  ("id" .=) <$> _chaId,
+                  ("subaccountId" .=) <$> _chaSubAccountId,
+                  ("changeTime" .=) <$> _chaChangeTime])
+
+-- | Contains properties of a placement strategy.
+--
+-- /See:/ 'placementStrategy' smart constructor.
+data PlacementStrategy = PlacementStrategy
+    { _psKind      :: !Text
+    , _psAccountId :: !(Maybe (Textual Int64))
+    , _psName      :: !(Maybe Text)
+    , _psId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementStrategy' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psKind'
+--
+-- * 'psAccountId'
+--
+-- * 'psName'
+--
+-- * 'psId'
+placementStrategy
+    :: PlacementStrategy
+placementStrategy =
+    PlacementStrategy
+    { _psKind = "dfareporting#placementStrategy"
+    , _psAccountId = Nothing
+    , _psName = Nothing
+    , _psId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementStrategy\".
+psKind :: Lens' PlacementStrategy Text
+psKind = lens _psKind (\ s a -> s{_psKind = a})
+
+-- | Account ID of this placement strategy.This is a read-only field that can
+-- be left blank.
+psAccountId :: Lens' PlacementStrategy (Maybe Int64)
+psAccountId
+  = lens _psAccountId (\ s a -> s{_psAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this placement strategy. This is a required field. It must be
+-- less than 256 characters long and unique among placement strategies of
+-- the same account.
+psName :: Lens' PlacementStrategy (Maybe Text)
+psName = lens _psName (\ s a -> s{_psName = a})
+
+-- | ID of this placement strategy. This is a read-only, auto-generated
+-- field.
+psId :: Lens' PlacementStrategy (Maybe Int64)
+psId
+  = lens _psId (\ s a -> s{_psId = a}) .
+      mapping _Coerce
+
+instance FromJSON PlacementStrategy where
+        parseJSON
+          = withObject "PlacementStrategy"
+              (\ o ->
+                 PlacementStrategy <$>
+                   (o .:? "kind" .!= "dfareporting#placementStrategy")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON PlacementStrategy where
+        toJSON PlacementStrategy{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _psKind),
+                  ("accountId" .=) <$> _psAccountId,
+                  ("name" .=) <$> _psName, ("id" .=) <$> _psId])
+
+-- | Contains properties of a Floodlight activity.
+--
+-- /See:/ 'floodlightActivity' smart constructor.
+data FloodlightActivity = FloodlightActivity
+    { _faCountingMethod                          :: !(Maybe FloodlightActivityCountingMethod)
+    , _faTagString                               :: !(Maybe Text)
+    , _faSecure                                  :: !(Maybe Bool)
+    , _faExpectedURL                             :: !(Maybe Text)
+    , _faFloodlightActivityGroupTagString        :: !(Maybe Text)
+    , _faFloodlightConfigurationId               :: !(Maybe (Textual Int64))
+    , _faKind                                    :: !Text
+    , _faImageTagEnabled                         :: !(Maybe Bool)
+    , _faAdvertiserId                            :: !(Maybe (Textual Int64))
+    , _faAdvertiserIdDimensionValue              :: !(Maybe DimensionValue)
+    , _faSSLCompliant                            :: !(Maybe Bool)
+    , _faIdDimensionValue                        :: !(Maybe DimensionValue)
+    , _faTagFormat                               :: !(Maybe FloodlightActivityTagFormat)
+    , _faCacheBustingType                        :: !(Maybe FloodlightActivityCacheBustingType)
+    , _faAccountId                               :: !(Maybe (Textual Int64))
+    , _faName                                    :: !(Maybe Text)
+    , _faPublisherTags                           :: !(Maybe [FloodlightActivityPublisherDynamicTag])
+    , _faFloodlightActivityGroupId               :: !(Maybe (Textual Int64))
+    , _faHidden                                  :: !(Maybe Bool)
+    , _faFloodlightActivityGroupType             :: !(Maybe FloodlightActivityFloodlightActivityGroupType)
+    , _faDefaultTags                             :: !(Maybe [FloodlightActivityDynamicTag])
+    , _faFloodlightActivityGroupName             :: !(Maybe Text)
+    , _faId                                      :: !(Maybe (Textual Int64))
+    , _faSSLRequired                             :: !(Maybe Bool)
+    , _faUserDefinedVariableTypes                :: !(Maybe [FloodlightActivityUserDefinedVariableTypesItem])
+    , _faSubAccountId                            :: !(Maybe (Textual Int64))
+    , _faNotes                                   :: !(Maybe Text)
+    , _faFloodlightConfigurationIdDimensionValue :: !(Maybe DimensionValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivity' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'faCountingMethod'
+--
+-- * 'faTagString'
+--
+-- * 'faSecure'
+--
+-- * 'faExpectedURL'
+--
+-- * 'faFloodlightActivityGroupTagString'
+--
+-- * 'faFloodlightConfigurationId'
+--
+-- * 'faKind'
+--
+-- * 'faImageTagEnabled'
+--
+-- * 'faAdvertiserId'
+--
+-- * 'faAdvertiserIdDimensionValue'
+--
+-- * 'faSSLCompliant'
+--
+-- * 'faIdDimensionValue'
+--
+-- * 'faTagFormat'
+--
+-- * 'faCacheBustingType'
+--
+-- * 'faAccountId'
+--
+-- * 'faName'
+--
+-- * 'faPublisherTags'
+--
+-- * 'faFloodlightActivityGroupId'
+--
+-- * 'faHidden'
+--
+-- * 'faFloodlightActivityGroupType'
+--
+-- * 'faDefaultTags'
+--
+-- * 'faFloodlightActivityGroupName'
+--
+-- * 'faId'
+--
+-- * 'faSSLRequired'
+--
+-- * 'faUserDefinedVariableTypes'
+--
+-- * 'faSubAccountId'
+--
+-- * 'faNotes'
+--
+-- * 'faFloodlightConfigurationIdDimensionValue'
+floodlightActivity
+    :: FloodlightActivity
+floodlightActivity =
+    FloodlightActivity
+    { _faCountingMethod = Nothing
+    , _faTagString = Nothing
+    , _faSecure = Nothing
+    , _faExpectedURL = Nothing
+    , _faFloodlightActivityGroupTagString = Nothing
+    , _faFloodlightConfigurationId = Nothing
+    , _faKind = "dfareporting#floodlightActivity"
+    , _faImageTagEnabled = Nothing
+    , _faAdvertiserId = Nothing
+    , _faAdvertiserIdDimensionValue = Nothing
+    , _faSSLCompliant = Nothing
+    , _faIdDimensionValue = Nothing
+    , _faTagFormat = Nothing
+    , _faCacheBustingType = Nothing
+    , _faAccountId = Nothing
+    , _faName = Nothing
+    , _faPublisherTags = Nothing
+    , _faFloodlightActivityGroupId = Nothing
+    , _faHidden = Nothing
+    , _faFloodlightActivityGroupType = Nothing
+    , _faDefaultTags = Nothing
+    , _faFloodlightActivityGroupName = Nothing
+    , _faId = Nothing
+    , _faSSLRequired = Nothing
+    , _faUserDefinedVariableTypes = Nothing
+    , _faSubAccountId = Nothing
+    , _faNotes = Nothing
+    , _faFloodlightConfigurationIdDimensionValue = Nothing
+    }
+
+-- | Counting method for conversions for this floodlight activity. This is a
+-- required field.
+faCountingMethod :: Lens' FloodlightActivity (Maybe FloodlightActivityCountingMethod)
+faCountingMethod
+  = lens _faCountingMethod
+      (\ s a -> s{_faCountingMethod = a})
+
+-- | Value of the cat= paramter in the floodlight tag, which the ad servers
+-- use to identify the activity. This is optional: if empty, a new tag
+-- string will be generated for you. This string must be 1 to 8 characters
+-- long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag
+-- string must also be unique among activities of the same activity group.
+-- This field is read-only after insertion.
+faTagString :: Lens' FloodlightActivity (Maybe Text)
+faTagString
+  = lens _faTagString (\ s a -> s{_faTagString = a})
+
+-- | Whether this tag should use SSL.
+faSecure :: Lens' FloodlightActivity (Maybe Bool)
+faSecure = lens _faSecure (\ s a -> s{_faSecure = a})
+
+-- | URL where this tag will be deployed. If specified, must be less than 256
+-- characters long.
+faExpectedURL :: Lens' FloodlightActivity (Maybe Text)
+faExpectedURL
+  = lens _faExpectedURL
+      (\ s a -> s{_faExpectedURL = a})
+
+-- | Tag string of the associated floodlight activity group. This is a
+-- read-only field.
+faFloodlightActivityGroupTagString :: Lens' FloodlightActivity (Maybe Text)
+faFloodlightActivityGroupTagString
+  = lens _faFloodlightActivityGroupTagString
+      (\ s a -> s{_faFloodlightActivityGroupTagString = a})
+
+-- | Floodlight configuration ID of this floodlight activity. If this field
+-- is left blank, the value will be copied over either from the activity
+-- group\'s floodlight configuration or from the existing activity\'s
+-- floodlight configuration.
+faFloodlightConfigurationId :: Lens' FloodlightActivity (Maybe Int64)
+faFloodlightConfigurationId
+  = lens _faFloodlightConfigurationId
+      (\ s a -> s{_faFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightActivity\".
+faKind :: Lens' FloodlightActivity Text
+faKind = lens _faKind (\ s a -> s{_faKind = a})
+
+-- | Whether the image tag is enabled for this activity.
+faImageTagEnabled :: Lens' FloodlightActivity (Maybe Bool)
+faImageTagEnabled
+  = lens _faImageTagEnabled
+      (\ s a -> s{_faImageTagEnabled = a})
+
+-- | Advertiser ID of this floodlight activity. If this field is left blank,
+-- the value will be copied over either from the activity group\'s
+-- advertiser or the existing activity\'s advertiser.
+faAdvertiserId :: Lens' FloodlightActivity (Maybe Int64)
+faAdvertiserId
+  = lens _faAdvertiserId
+      (\ s a -> s{_faAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+faAdvertiserIdDimensionValue :: Lens' FloodlightActivity (Maybe DimensionValue)
+faAdvertiserIdDimensionValue
+  = lens _faAdvertiserIdDimensionValue
+      (\ s a -> s{_faAdvertiserIdDimensionValue = a})
+
+-- | Whether the floodlight activity is SSL-compliant. This is a read-only
+-- field, its value detected by the system from the floodlight tags.
+faSSLCompliant :: Lens' FloodlightActivity (Maybe Bool)
+faSSLCompliant
+  = lens _faSSLCompliant
+      (\ s a -> s{_faSSLCompliant = a})
+
+-- | Dimension value for the ID of this floodlight activity. This is a
+-- read-only, auto-generated field.
+faIdDimensionValue :: Lens' FloodlightActivity (Maybe DimensionValue)
+faIdDimensionValue
+  = lens _faIdDimensionValue
+      (\ s a -> s{_faIdDimensionValue = a})
+
+-- | Tag format type for the floodlight activity. If left blank, the tag
+-- format will default to HTML.
+faTagFormat :: Lens' FloodlightActivity (Maybe FloodlightActivityTagFormat)
+faTagFormat
+  = lens _faTagFormat (\ s a -> s{_faTagFormat = a})
+
+-- | Code type used for cache busting in the generated tag.
+faCacheBustingType :: Lens' FloodlightActivity (Maybe FloodlightActivityCacheBustingType)
+faCacheBustingType
+  = lens _faCacheBustingType
+      (\ s a -> s{_faCacheBustingType = a})
+
+-- | Account ID of this floodlight activity. This is a read-only field that
+-- can be left blank.
+faAccountId :: Lens' FloodlightActivity (Maybe Int64)
+faAccountId
+  = lens _faAccountId (\ s a -> s{_faAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this floodlight activity. This is a required field. Must be less
+-- than 129 characters long and cannot contain quotes.
+faName :: Lens' FloodlightActivity (Maybe Text)
+faName = lens _faName (\ s a -> s{_faName = a})
+
+-- | Publisher dynamic floodlight tags.
+faPublisherTags :: Lens' FloodlightActivity [FloodlightActivityPublisherDynamicTag]
+faPublisherTags
+  = lens _faPublisherTags
+      (\ s a -> s{_faPublisherTags = a})
+      . _Default
+      . _Coerce
+
+-- | Floodlight activity group ID of this floodlight activity. This is a
+-- required field.
+faFloodlightActivityGroupId :: Lens' FloodlightActivity (Maybe Int64)
+faFloodlightActivityGroupId
+  = lens _faFloodlightActivityGroupId
+      (\ s a -> s{_faFloodlightActivityGroupId = a})
+      . mapping _Coerce
+
+-- | Whether this activity is archived.
+faHidden :: Lens' FloodlightActivity (Maybe Bool)
+faHidden = lens _faHidden (\ s a -> s{_faHidden = a})
+
+-- | Type of the associated floodlight activity group. This is a read-only
+-- field.
+faFloodlightActivityGroupType :: Lens' FloodlightActivity (Maybe FloodlightActivityFloodlightActivityGroupType)
+faFloodlightActivityGroupType
+  = lens _faFloodlightActivityGroupType
+      (\ s a -> s{_faFloodlightActivityGroupType = a})
+
+-- | Dynamic floodlight tags.
+faDefaultTags :: Lens' FloodlightActivity [FloodlightActivityDynamicTag]
+faDefaultTags
+  = lens _faDefaultTags
+      (\ s a -> s{_faDefaultTags = a})
+      . _Default
+      . _Coerce
+
+-- | Name of the associated floodlight activity group. This is a read-only
+-- field.
+faFloodlightActivityGroupName :: Lens' FloodlightActivity (Maybe Text)
+faFloodlightActivityGroupName
+  = lens _faFloodlightActivityGroupName
+      (\ s a -> s{_faFloodlightActivityGroupName = a})
+
+-- | ID of this floodlight activity. This is a read-only, auto-generated
+-- field.
+faId :: Lens' FloodlightActivity (Maybe Int64)
+faId
+  = lens _faId (\ s a -> s{_faId = a}) .
+      mapping _Coerce
+
+-- | Whether this floodlight activity must be SSL-compliant.
+faSSLRequired :: Lens' FloodlightActivity (Maybe Bool)
+faSSLRequired
+  = lens _faSSLRequired
+      (\ s a -> s{_faSSLRequired = a})
+
+-- | List of the user-defined variables used by this conversion tag. These
+-- map to the \"u[1-20]=\" in the tags. Each of these can have a user
+-- defined type. Acceptable values are: - \"U1\" - \"U2\" - \"U3\" - \"U4\"
+-- - \"U5\" - \"U6\" - \"U7\" - \"U8\" - \"U9\" - \"U10\" - \"U11\" -
+-- \"U12\" - \"U13\" - \"U14\" - \"U15\" - \"U16\" - \"U17\" - \"U18\" -
+-- \"U19\" - \"U20\"
+faUserDefinedVariableTypes :: Lens' FloodlightActivity [FloodlightActivityUserDefinedVariableTypesItem]
+faUserDefinedVariableTypes
+  = lens _faUserDefinedVariableTypes
+      (\ s a -> s{_faUserDefinedVariableTypes = a})
+      . _Default
+      . _Coerce
+
+-- | Subaccount ID of this floodlight activity. This is a read-only field
+-- that can be left blank.
+faSubAccountId :: Lens' FloodlightActivity (Maybe Int64)
+faSubAccountId
+  = lens _faSubAccountId
+      (\ s a -> s{_faSubAccountId = a})
+      . mapping _Coerce
+
+-- | General notes or implementation instructions for the tag.
+faNotes :: Lens' FloodlightActivity (Maybe Text)
+faNotes = lens _faNotes (\ s a -> s{_faNotes = a})
+
+-- | Dimension value for the ID of the floodlight configuration. This is a
+-- read-only, auto-generated field.
+faFloodlightConfigurationIdDimensionValue :: Lens' FloodlightActivity (Maybe DimensionValue)
+faFloodlightConfigurationIdDimensionValue
+  = lens _faFloodlightConfigurationIdDimensionValue
+      (\ s a ->
+         s{_faFloodlightConfigurationIdDimensionValue = a})
+
+instance FromJSON FloodlightActivity where
+        parseJSON
+          = withObject "FloodlightActivity"
+              (\ o ->
+                 FloodlightActivity <$>
+                   (o .:? "countingMethod") <*> (o .:? "tagString") <*>
+                     (o .:? "secure")
+                     <*> (o .:? "expectedUrl")
+                     <*> (o .:? "floodlightActivityGroupTagString")
+                     <*> (o .:? "floodlightConfigurationId")
+                     <*>
+                     (o .:? "kind" .!= "dfareporting#floodlightActivity")
+                     <*> (o .:? "imageTagEnabled")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "tagFormat")
+                     <*> (o .:? "cacheBustingType")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "publisherTags" .!= mempty)
+                     <*> (o .:? "floodlightActivityGroupId")
+                     <*> (o .:? "hidden")
+                     <*> (o .:? "floodlightActivityGroupType")
+                     <*> (o .:? "defaultTags" .!= mempty)
+                     <*> (o .:? "floodlightActivityGroupName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "sslRequired")
+                     <*> (o .:? "userDefinedVariableTypes" .!= mempty)
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "notes")
+                     <*>
+                     (o .:? "floodlightConfigurationIdDimensionValue"))
+
+instance ToJSON FloodlightActivity where
+        toJSON FloodlightActivity{..}
+          = object
+              (catMaybes
+                 [("countingMethod" .=) <$> _faCountingMethod,
+                  ("tagString" .=) <$> _faTagString,
+                  ("secure" .=) <$> _faSecure,
+                  ("expectedUrl" .=) <$> _faExpectedURL,
+                  ("floodlightActivityGroupTagString" .=) <$>
+                    _faFloodlightActivityGroupTagString,
+                  ("floodlightConfigurationId" .=) <$>
+                    _faFloodlightConfigurationId,
+                  Just ("kind" .= _faKind),
+                  ("imageTagEnabled" .=) <$> _faImageTagEnabled,
+                  ("advertiserId" .=) <$> _faAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _faAdvertiserIdDimensionValue,
+                  ("sslCompliant" .=) <$> _faSSLCompliant,
+                  ("idDimensionValue" .=) <$> _faIdDimensionValue,
+                  ("tagFormat" .=) <$> _faTagFormat,
+                  ("cacheBustingType" .=) <$> _faCacheBustingType,
+                  ("accountId" .=) <$> _faAccountId,
+                  ("name" .=) <$> _faName,
+                  ("publisherTags" .=) <$> _faPublisherTags,
+                  ("floodlightActivityGroupId" .=) <$>
+                    _faFloodlightActivityGroupId,
+                  ("hidden" .=) <$> _faHidden,
+                  ("floodlightActivityGroupType" .=) <$>
+                    _faFloodlightActivityGroupType,
+                  ("defaultTags" .=) <$> _faDefaultTags,
+                  ("floodlightActivityGroupName" .=) <$>
+                    _faFloodlightActivityGroupName,
+                  ("id" .=) <$> _faId,
+                  ("sslRequired" .=) <$> _faSSLRequired,
+                  ("userDefinedVariableTypes" .=) <$>
+                    _faUserDefinedVariableTypes,
+                  ("subaccountId" .=) <$> _faSubAccountId,
+                  ("notes" .=) <$> _faNotes,
+                  ("floodlightConfigurationIdDimensionValue" .=) <$>
+                    _faFloodlightConfigurationIdDimensionValue])
+
+-- | Platform Type List Response
+--
+-- /See:/ 'platformTypesListResponse' smart constructor.
+data PlatformTypesListResponse = PlatformTypesListResponse
+    { _ptlrKind          :: !Text
+    , _ptlrPlatformTypes :: !(Maybe [PlatformType])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlatformTypesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptlrKind'
+--
+-- * 'ptlrPlatformTypes'
+platformTypesListResponse
+    :: PlatformTypesListResponse
+platformTypesListResponse =
+    PlatformTypesListResponse
+    { _ptlrKind = "dfareporting#platformTypesListResponse"
+    , _ptlrPlatformTypes = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#platformTypesListResponse\".
+ptlrKind :: Lens' PlatformTypesListResponse Text
+ptlrKind = lens _ptlrKind (\ s a -> s{_ptlrKind = a})
+
+-- | Platform type collection.
+ptlrPlatformTypes :: Lens' PlatformTypesListResponse [PlatformType]
+ptlrPlatformTypes
+  = lens _ptlrPlatformTypes
+      (\ s a -> s{_ptlrPlatformTypes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON PlatformTypesListResponse where
+        parseJSON
+          = withObject "PlatformTypesListResponse"
+              (\ o ->
+                 PlatformTypesListResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#platformTypesListResponse")
+                     <*> (o .:? "platformTypes" .!= mempty))
+
+instance ToJSON PlatformTypesListResponse where
+        toJSON PlatformTypesListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ptlrKind),
+                  ("platformTypes" .=) <$> _ptlrPlatformTypes])
+
+-- | Modification timestamp.
+--
+-- /See:/ 'lastModifiedInfo' smart constructor.
+newtype LastModifiedInfo = LastModifiedInfo
+    { _lmiTime :: Maybe (Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LastModifiedInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lmiTime'
+lastModifiedInfo
+    :: LastModifiedInfo
+lastModifiedInfo =
+    LastModifiedInfo
+    { _lmiTime = Nothing
+    }
+
+-- | Timestamp of the last change in milliseconds since epoch.
+lmiTime :: Lens' LastModifiedInfo (Maybe Int64)
+lmiTime
+  = lens _lmiTime (\ s a -> s{_lmiTime = a}) .
+      mapping _Coerce
+
+instance FromJSON LastModifiedInfo where
+        parseJSON
+          = withObject "LastModifiedInfo"
+              (\ o -> LastModifiedInfo <$> (o .:? "time"))
+
+instance ToJSON LastModifiedInfo where
+        toJSON LastModifiedInfo{..}
+          = object (catMaybes [("time" .=) <$> _lmiTime])
+
+-- | Target Window.
+--
+-- /See:/ 'targetWindow' smart constructor.
+data TargetWindow = TargetWindow
+    { _twCustomHTML         :: !(Maybe Text)
+    , _twTargetWindowOption :: !(Maybe TargetWindowTargetWindowOption)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetWindow' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'twCustomHTML'
+--
+-- * 'twTargetWindowOption'
+targetWindow
+    :: TargetWindow
+targetWindow =
+    TargetWindow
+    { _twCustomHTML = Nothing
+    , _twTargetWindowOption = Nothing
+    }
+
+-- | User-entered value.
+twCustomHTML :: Lens' TargetWindow (Maybe Text)
+twCustomHTML
+  = lens _twCustomHTML (\ s a -> s{_twCustomHTML = a})
+
+-- | Type of browser window for which the backup image of the flash creative
+-- can be displayed.
+twTargetWindowOption :: Lens' TargetWindow (Maybe TargetWindowTargetWindowOption)
+twTargetWindowOption
+  = lens _twTargetWindowOption
+      (\ s a -> s{_twTargetWindowOption = a})
+
+instance FromJSON TargetWindow where
+        parseJSON
+          = withObject "TargetWindow"
+              (\ o ->
+                 TargetWindow <$>
+                   (o .:? "customHtml") <*>
+                     (o .:? "targetWindowOption"))
+
+instance ToJSON TargetWindow where
+        toJSON TargetWindow{..}
+          = object
+              (catMaybes
+                 [("customHtml" .=) <$> _twCustomHTML,
+                  ("targetWindowOption" .=) <$> _twTargetWindowOption])
+
+-- | AccountPermissionGroups contains a mapping of permission group IDs to
+-- names. A permission group is a grouping of account permissions.
+--
+-- /See:/ 'accountPermissionGroup' smart constructor.
+data AccountPermissionGroup = AccountPermissionGroup
+    { _apgpKind :: !Text
+    , _apgpName :: !(Maybe Text)
+    , _apgpId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermissionGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apgpKind'
+--
+-- * 'apgpName'
+--
+-- * 'apgpId'
+accountPermissionGroup
+    :: AccountPermissionGroup
+accountPermissionGroup =
+    AccountPermissionGroup
+    { _apgpKind = "dfareporting#accountPermissionGroup"
+    , _apgpName = Nothing
+    , _apgpId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountPermissionGroup\".
+apgpKind :: Lens' AccountPermissionGroup Text
+apgpKind = lens _apgpKind (\ s a -> s{_apgpKind = a})
+
+-- | Name of this account permission group.
+apgpName :: Lens' AccountPermissionGroup (Maybe Text)
+apgpName = lens _apgpName (\ s a -> s{_apgpName = a})
+
+-- | ID of this account permission group.
+apgpId :: Lens' AccountPermissionGroup (Maybe Int64)
+apgpId
+  = lens _apgpId (\ s a -> s{_apgpId = a}) .
+      mapping _Coerce
+
+instance FromJSON AccountPermissionGroup where
+        parseJSON
+          = withObject "AccountPermissionGroup"
+              (\ o ->
+                 AccountPermissionGroup <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#accountPermissionGroup")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON AccountPermissionGroup where
+        toJSON AccountPermissionGroup{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _apgpKind),
+                  ("name" .=) <$> _apgpName, ("id" .=) <$> _apgpId])
+
+-- | Contains properties of a DCM advertiser.
+--
+-- /See:/ 'advertiser' smart constructor.
+data Advertiser = Advertiser
+    { _advdOriginalFloodlightConfigurationId       :: !(Maybe (Textual Int64))
+    , _advdStatus                                  :: !(Maybe AdvertiserStatus)
+    , _advdFloodlightConfigurationId               :: !(Maybe (Textual Int64))
+    , _advdKind                                    :: !Text
+    , _advdSuspended                               :: !(Maybe Bool)
+    , _advdIdDimensionValue                        :: !(Maybe DimensionValue)
+    , _advdAccountId                               :: !(Maybe (Textual Int64))
+    , _advdDefaultEmail                            :: !(Maybe Text)
+    , _advdName                                    :: !(Maybe Text)
+    , _advdAdvertiserGroupId                       :: !(Maybe (Textual Int64))
+    , _advdDefaultClickThroughEventTagId           :: !(Maybe (Textual Int64))
+    , _advdId                                      :: !(Maybe (Textual Int64))
+    , _advdSubAccountId                            :: !(Maybe (Textual Int64))
+    , _advdFloodlightConfigurationIdDimensionValue :: !(Maybe DimensionValue)
+    , _advdClickThroughURLSuffix                   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Advertiser' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'advdOriginalFloodlightConfigurationId'
+--
+-- * 'advdStatus'
+--
+-- * 'advdFloodlightConfigurationId'
+--
+-- * 'advdKind'
+--
+-- * 'advdSuspended'
+--
+-- * 'advdIdDimensionValue'
+--
+-- * 'advdAccountId'
+--
+-- * 'advdDefaultEmail'
+--
+-- * 'advdName'
+--
+-- * 'advdAdvertiserGroupId'
+--
+-- * 'advdDefaultClickThroughEventTagId'
+--
+-- * 'advdId'
+--
+-- * 'advdSubAccountId'
+--
+-- * 'advdFloodlightConfigurationIdDimensionValue'
+--
+-- * 'advdClickThroughURLSuffix'
+advertiser
+    :: Advertiser
+advertiser =
+    Advertiser
+    { _advdOriginalFloodlightConfigurationId = Nothing
+    , _advdStatus = Nothing
+    , _advdFloodlightConfigurationId = Nothing
+    , _advdKind = "dfareporting#advertiser"
+    , _advdSuspended = Nothing
+    , _advdIdDimensionValue = Nothing
+    , _advdAccountId = Nothing
+    , _advdDefaultEmail = Nothing
+    , _advdName = Nothing
+    , _advdAdvertiserGroupId = Nothing
+    , _advdDefaultClickThroughEventTagId = Nothing
+    , _advdId = Nothing
+    , _advdSubAccountId = Nothing
+    , _advdFloodlightConfigurationIdDimensionValue = Nothing
+    , _advdClickThroughURLSuffix = Nothing
+    }
+
+-- | Original floodlight configuration before any sharing occurred. Set the
+-- floodlightConfigurationId of this advertiser to
+-- originalFloodlightConfigurationId to unshare the advertiser\'s current
+-- floodlight configuration. You cannot unshare an advertiser\'s floodlight
+-- configuration if the shared configuration has activities associated with
+-- any campaign or placement.
+advdOriginalFloodlightConfigurationId :: Lens' Advertiser (Maybe Int64)
+advdOriginalFloodlightConfigurationId
+  = lens _advdOriginalFloodlightConfigurationId
+      (\ s a ->
+         s{_advdOriginalFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Status of this advertiser.
+advdStatus :: Lens' Advertiser (Maybe AdvertiserStatus)
+advdStatus
+  = lens _advdStatus (\ s a -> s{_advdStatus = a})
+
+-- | Floodlight configuration ID of this advertiser. The floodlight
+-- configuration ID will be created automatically, so on insert this field
+-- should be left blank. This field can be set to another advertiser\'s
+-- floodlight configuration ID in order to share that advertiser\'s
+-- floodlight configuration with this advertiser, so long as: - This
+-- advertiser\'s original floodlight configuration is not already
+-- associated with floodlight activities or floodlight activity groups. -
+-- This advertiser\'s original floodlight configuration is not already
+-- shared with another advertiser.
+advdFloodlightConfigurationId :: Lens' Advertiser (Maybe Int64)
+advdFloodlightConfigurationId
+  = lens _advdFloodlightConfigurationId
+      (\ s a -> s{_advdFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#advertiser\".
+advdKind :: Lens' Advertiser Text
+advdKind = lens _advdKind (\ s a -> s{_advdKind = a})
+
+-- | Suspension status of this advertiser.
+advdSuspended :: Lens' Advertiser (Maybe Bool)
+advdSuspended
+  = lens _advdSuspended
+      (\ s a -> s{_advdSuspended = a})
+
+-- | Dimension value for the ID of this advertiser. This is a read-only,
+-- auto-generated field.
+advdIdDimensionValue :: Lens' Advertiser (Maybe DimensionValue)
+advdIdDimensionValue
+  = lens _advdIdDimensionValue
+      (\ s a -> s{_advdIdDimensionValue = a})
+
+-- | Account ID of this advertiser.This is a read-only field that can be left
+-- blank.
+advdAccountId :: Lens' Advertiser (Maybe Int64)
+advdAccountId
+  = lens _advdAccountId
+      (\ s a -> s{_advdAccountId = a})
+      . mapping _Coerce
+
+-- | Default email address used in sender field for tag emails.
+advdDefaultEmail :: Lens' Advertiser (Maybe Text)
+advdDefaultEmail
+  = lens _advdDefaultEmail
+      (\ s a -> s{_advdDefaultEmail = a})
+
+-- | Name of this advertiser. This is a required field and must be less than
+-- 256 characters long and unique among advertisers of the same account.
+advdName :: Lens' Advertiser (Maybe Text)
+advdName = lens _advdName (\ s a -> s{_advdName = a})
+
+-- | ID of the advertiser group this advertiser belongs to. You can group
+-- advertisers for reporting purposes, allowing you to see aggregated
+-- information for all advertisers in each group.
+advdAdvertiserGroupId :: Lens' Advertiser (Maybe Int64)
+advdAdvertiserGroupId
+  = lens _advdAdvertiserGroupId
+      (\ s a -> s{_advdAdvertiserGroupId = a})
+      . mapping _Coerce
+
+-- | ID of the click-through event tag to apply by default to the landing
+-- pages of this advertiser\'s campaigns.
+advdDefaultClickThroughEventTagId :: Lens' Advertiser (Maybe Int64)
+advdDefaultClickThroughEventTagId
+  = lens _advdDefaultClickThroughEventTagId
+      (\ s a -> s{_advdDefaultClickThroughEventTagId = a})
+      . mapping _Coerce
+
+-- | ID of this advertiser. This is a read-only, auto-generated field.
+advdId :: Lens' Advertiser (Maybe Int64)
+advdId
+  = lens _advdId (\ s a -> s{_advdId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this advertiser.This is a read-only field that can be
+-- left blank.
+advdSubAccountId :: Lens' Advertiser (Maybe Int64)
+advdSubAccountId
+  = lens _advdSubAccountId
+      (\ s a -> s{_advdSubAccountId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the floodlight configuration. This is a
+-- read-only, auto-generated field.
+advdFloodlightConfigurationIdDimensionValue :: Lens' Advertiser (Maybe DimensionValue)
+advdFloodlightConfigurationIdDimensionValue
+  = lens _advdFloodlightConfigurationIdDimensionValue
+      (\ s a ->
+         s{_advdFloodlightConfigurationIdDimensionValue = a})
+
+-- | Suffix added to click-through URL of ad creative associations under this
+-- advertiser. Must be less than 129 characters long.
+advdClickThroughURLSuffix :: Lens' Advertiser (Maybe Text)
+advdClickThroughURLSuffix
+  = lens _advdClickThroughURLSuffix
+      (\ s a -> s{_advdClickThroughURLSuffix = a})
+
+instance FromJSON Advertiser where
+        parseJSON
+          = withObject "Advertiser"
+              (\ o ->
+                 Advertiser <$>
+                   (o .:? "originalFloodlightConfigurationId") <*>
+                     (o .:? "status")
+                     <*> (o .:? "floodlightConfigurationId")
+                     <*> (o .:? "kind" .!= "dfareporting#advertiser")
+                     <*> (o .:? "suspended")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "defaultEmail")
+                     <*> (o .:? "name")
+                     <*> (o .:? "advertiserGroupId")
+                     <*> (o .:? "defaultClickThroughEventTagId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "floodlightConfigurationIdDimensionValue")
+                     <*> (o .:? "clickThroughUrlSuffix"))
+
+instance ToJSON Advertiser where
+        toJSON Advertiser{..}
+          = object
+              (catMaybes
+                 [("originalFloodlightConfigurationId" .=) <$>
+                    _advdOriginalFloodlightConfigurationId,
+                  ("status" .=) <$> _advdStatus,
+                  ("floodlightConfigurationId" .=) <$>
+                    _advdFloodlightConfigurationId,
+                  Just ("kind" .= _advdKind),
+                  ("suspended" .=) <$> _advdSuspended,
+                  ("idDimensionValue" .=) <$> _advdIdDimensionValue,
+                  ("accountId" .=) <$> _advdAccountId,
+                  ("defaultEmail" .=) <$> _advdDefaultEmail,
+                  ("name" .=) <$> _advdName,
+                  ("advertiserGroupId" .=) <$> _advdAdvertiserGroupId,
+                  ("defaultClickThroughEventTagId" .=) <$>
+                    _advdDefaultClickThroughEventTagId,
+                  ("id" .=) <$> _advdId,
+                  ("subaccountId" .=) <$> _advdSubAccountId,
+                  ("floodlightConfigurationIdDimensionValue" .=) <$>
+                    _advdFloodlightConfigurationIdDimensionValue,
+                  ("clickThroughUrlSuffix" .=) <$>
+                    _advdClickThroughURLSuffix])
+
+-- | Contains properties of auser role, which is used to manage user access.
+--
+-- /See:/ 'userRole' smart constructor.
+data UserRole = UserRole
+    { _urParentUserRoleId :: !(Maybe (Textual Int64))
+    , _urKind             :: !Text
+    , _urDefaultUserRole  :: !(Maybe Bool)
+    , _urAccountId        :: !(Maybe (Textual Int64))
+    , _urName             :: !(Maybe Text)
+    , _urId               :: !(Maybe (Textual Int64))
+    , _urPermissions      :: !(Maybe [UserRolePermission])
+    , _urSubAccountId     :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRole' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urParentUserRoleId'
+--
+-- * 'urKind'
+--
+-- * 'urDefaultUserRole'
+--
+-- * 'urAccountId'
+--
+-- * 'urName'
+--
+-- * 'urId'
+--
+-- * 'urPermissions'
+--
+-- * 'urSubAccountId'
+userRole
+    :: UserRole
+userRole =
+    UserRole
+    { _urParentUserRoleId = Nothing
+    , _urKind = "dfareporting#userRole"
+    , _urDefaultUserRole = Nothing
+    , _urAccountId = Nothing
+    , _urName = Nothing
+    , _urId = Nothing
+    , _urPermissions = Nothing
+    , _urSubAccountId = Nothing
+    }
+
+-- | ID of the user role that this user role is based on or copied from. This
+-- is a required field.
+urParentUserRoleId :: Lens' UserRole (Maybe Int64)
+urParentUserRoleId
+  = lens _urParentUserRoleId
+      (\ s a -> s{_urParentUserRoleId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRole\".
+urKind :: Lens' UserRole Text
+urKind = lens _urKind (\ s a -> s{_urKind = a})
+
+-- | Whether this is a default user role. Default user roles are created by
+-- the system for the account\/subaccount and cannot be modified or
+-- deleted. Each default user role comes with a basic set of preassigned
+-- permissions.
+urDefaultUserRole :: Lens' UserRole (Maybe Bool)
+urDefaultUserRole
+  = lens _urDefaultUserRole
+      (\ s a -> s{_urDefaultUserRole = a})
+
+-- | Account ID of this user role. This is a read-only field that can be left
+-- blank.
+urAccountId :: Lens' UserRole (Maybe Int64)
+urAccountId
+  = lens _urAccountId (\ s a -> s{_urAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this user role. This is a required field. Must be less than 256
+-- characters long. If this user role is under a subaccount, the name must
+-- be unique among sites of the same subaccount. Otherwise, this user role
+-- is a top-level user role, and the name must be unique among top-level
+-- user roles of the same account.
+urName :: Lens' UserRole (Maybe Text)
+urName = lens _urName (\ s a -> s{_urName = a})
+
+-- | ID of this user role. This is a read-only, auto-generated field.
+urId :: Lens' UserRole (Maybe Int64)
+urId
+  = lens _urId (\ s a -> s{_urId = a}) .
+      mapping _Coerce
+
+-- | List of permissions associated with this user role.
+urPermissions :: Lens' UserRole [UserRolePermission]
+urPermissions
+  = lens _urPermissions
+      (\ s a -> s{_urPermissions = a})
+      . _Default
+      . _Coerce
+
+-- | Subaccount ID of this user role. This is a read-only field that can be
+-- left blank.
+urSubAccountId :: Lens' UserRole (Maybe Int64)
+urSubAccountId
+  = lens _urSubAccountId
+      (\ s a -> s{_urSubAccountId = a})
+      . mapping _Coerce
+
+instance FromJSON UserRole where
+        parseJSON
+          = withObject "UserRole"
+              (\ o ->
+                 UserRole <$>
+                   (o .:? "parentUserRoleId") <*>
+                     (o .:? "kind" .!= "dfareporting#userRole")
+                     <*> (o .:? "defaultUserRole")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "permissions" .!= mempty)
+                     <*> (o .:? "subaccountId"))
+
+instance ToJSON UserRole where
+        toJSON UserRole{..}
+          = object
+              (catMaybes
+                 [("parentUserRoleId" .=) <$> _urParentUserRoleId,
+                  Just ("kind" .= _urKind),
+                  ("defaultUserRole" .=) <$> _urDefaultUserRole,
+                  ("accountId" .=) <$> _urAccountId,
+                  ("name" .=) <$> _urName, ("id" .=) <$> _urId,
+                  ("permissions" .=) <$> _urPermissions,
+                  ("subaccountId" .=) <$> _urSubAccountId])
+
+-- | Directory Site List Response
+--
+-- /See:/ 'directorySitesListResponse' smart constructor.
+data DirectorySitesListResponse = DirectorySitesListResponse
+    { _dslrNextPageToken  :: !(Maybe Text)
+    , _dslrKind           :: !Text
+    , _dslrDirectorySites :: !(Maybe [DirectorySite])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySitesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dslrNextPageToken'
+--
+-- * 'dslrKind'
+--
+-- * 'dslrDirectorySites'
+directorySitesListResponse
+    :: DirectorySitesListResponse
+directorySitesListResponse =
+    DirectorySitesListResponse
+    { _dslrNextPageToken = Nothing
+    , _dslrKind = "dfareporting#directorySitesListResponse"
+    , _dslrDirectorySites = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+dslrNextPageToken :: Lens' DirectorySitesListResponse (Maybe Text)
+dslrNextPageToken
+  = lens _dslrNextPageToken
+      (\ s a -> s{_dslrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#directorySitesListResponse\".
+dslrKind :: Lens' DirectorySitesListResponse Text
+dslrKind = lens _dslrKind (\ s a -> s{_dslrKind = a})
+
+-- | Directory site collection.
+dslrDirectorySites :: Lens' DirectorySitesListResponse [DirectorySite]
+dslrDirectorySites
+  = lens _dslrDirectorySites
+      (\ s a -> s{_dslrDirectorySites = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON DirectorySitesListResponse where
+        parseJSON
+          = withObject "DirectorySitesListResponse"
+              (\ o ->
+                 DirectorySitesListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#directorySitesListResponse")
+                     <*> (o .:? "directorySites" .!= mempty))
+
+instance ToJSON DirectorySitesListResponse where
+        toJSON DirectorySitesListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _dslrNextPageToken,
+                  Just ("kind" .= _dslrKind),
+                  ("directorySites" .=) <$> _dslrDirectorySites])
+
+-- | Pricing Period
+--
+-- /See:/ 'pricingSchedulePricingPeriod' smart constructor.
+data PricingSchedulePricingPeriod = PricingSchedulePricingPeriod
+    { _psppEndDate         :: !(Maybe Date')
+    , _psppRateOrCostNanos :: !(Maybe (Textual Int64))
+    , _psppStartDate       :: !(Maybe Date')
+    , _psppUnits           :: !(Maybe (Textual Int64))
+    , _psppPricingComment  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PricingSchedulePricingPeriod' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psppEndDate'
+--
+-- * 'psppRateOrCostNanos'
+--
+-- * 'psppStartDate'
+--
+-- * 'psppUnits'
+--
+-- * 'psppPricingComment'
+pricingSchedulePricingPeriod
+    :: PricingSchedulePricingPeriod
+pricingSchedulePricingPeriod =
+    PricingSchedulePricingPeriod
+    { _psppEndDate = Nothing
+    , _psppRateOrCostNanos = Nothing
+    , _psppStartDate = Nothing
+    , _psppUnits = Nothing
+    , _psppPricingComment = Nothing
+    }
+
+-- | Pricing period end date. This date must be later than, or the same day
+-- as, the pricing period start date, but not later than the placement end
+-- date. The period end date can be the same date as the period start date.
+-- If, for example, you set 6\/25\/2015 as both the start and end dates,
+-- the effective pricing period date is just that day only, 6\/25\/2015.
+-- The hours, minutes, and seconds of the end date should not be set, as
+-- doing so will result in an error.
+psppEndDate :: Lens' PricingSchedulePricingPeriod (Maybe Day)
+psppEndDate
+  = lens _psppEndDate (\ s a -> s{_psppEndDate = a}) .
+      mapping _Date
+
+-- | Rate or cost of this pricing period.
+psppRateOrCostNanos :: Lens' PricingSchedulePricingPeriod (Maybe Int64)
+psppRateOrCostNanos
+  = lens _psppRateOrCostNanos
+      (\ s a -> s{_psppRateOrCostNanos = a})
+      . mapping _Coerce
+
+-- | Pricing period start date. This date must be later than, or the same day
+-- as, the placement start date. The hours, minutes, and seconds of the
+-- start date should not be set, as doing so will result in an error.
+psppStartDate :: Lens' PricingSchedulePricingPeriod (Maybe Day)
+psppStartDate
+  = lens _psppStartDate
+      (\ s a -> s{_psppStartDate = a})
+      . mapping _Date
+
+-- | Units of this pricing period.
+psppUnits :: Lens' PricingSchedulePricingPeriod (Maybe Int64)
+psppUnits
+  = lens _psppUnits (\ s a -> s{_psppUnits = a}) .
+      mapping _Coerce
+
+-- | Comments for this pricing period.
+psppPricingComment :: Lens' PricingSchedulePricingPeriod (Maybe Text)
+psppPricingComment
+  = lens _psppPricingComment
+      (\ s a -> s{_psppPricingComment = a})
+
+instance FromJSON PricingSchedulePricingPeriod where
+        parseJSON
+          = withObject "PricingSchedulePricingPeriod"
+              (\ o ->
+                 PricingSchedulePricingPeriod <$>
+                   (o .:? "endDate") <*> (o .:? "rateOrCostNanos") <*>
+                     (o .:? "startDate")
+                     <*> (o .:? "units")
+                     <*> (o .:? "pricingComment"))
+
+instance ToJSON PricingSchedulePricingPeriod where
+        toJSON PricingSchedulePricingPeriod{..}
+          = object
+              (catMaybes
+                 [("endDate" .=) <$> _psppEndDate,
+                  ("rateOrCostNanos" .=) <$> _psppRateOrCostNanos,
+                  ("startDate" .=) <$> _psppStartDate,
+                  ("units" .=) <$> _psppUnits,
+                  ("pricingComment" .=) <$> _psppPricingComment])
+
+-- | Directory Site Contact List Response
+--
+-- /See:/ 'directorySiteContactsListResponse' smart constructor.
+data DirectorySiteContactsListResponse = DirectorySiteContactsListResponse
+    { _dsclrNextPageToken         :: !(Maybe Text)
+    , _dsclrKind                  :: !Text
+    , _dsclrDirectorySiteContacts :: !(Maybe [DirectorySiteContact])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySiteContactsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsclrNextPageToken'
+--
+-- * 'dsclrKind'
+--
+-- * 'dsclrDirectorySiteContacts'
+directorySiteContactsListResponse
+    :: DirectorySiteContactsListResponse
+directorySiteContactsListResponse =
+    DirectorySiteContactsListResponse
+    { _dsclrNextPageToken = Nothing
+    , _dsclrKind = "dfareporting#directorySiteContactsListResponse"
+    , _dsclrDirectorySiteContacts = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+dsclrNextPageToken :: Lens' DirectorySiteContactsListResponse (Maybe Text)
+dsclrNextPageToken
+  = lens _dsclrNextPageToken
+      (\ s a -> s{_dsclrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#directorySiteContactsListResponse\".
+dsclrKind :: Lens' DirectorySiteContactsListResponse Text
+dsclrKind
+  = lens _dsclrKind (\ s a -> s{_dsclrKind = a})
+
+-- | Directory site contact collection
+dsclrDirectorySiteContacts :: Lens' DirectorySiteContactsListResponse [DirectorySiteContact]
+dsclrDirectorySiteContacts
+  = lens _dsclrDirectorySiteContacts
+      (\ s a -> s{_dsclrDirectorySiteContacts = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON DirectorySiteContactsListResponse
+         where
+        parseJSON
+          = withObject "DirectorySiteContactsListResponse"
+              (\ o ->
+                 DirectorySiteContactsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#directorySiteContactsListResponse")
+                     <*> (o .:? "directorySiteContacts" .!= mempty))
+
+instance ToJSON DirectorySiteContactsListResponse
+         where
+        toJSON DirectorySiteContactsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _dsclrNextPageToken,
+                  Just ("kind" .= _dsclrKind),
+                  ("directorySiteContacts" .=) <$>
+                    _dsclrDirectorySiteContacts])
+
+-- | Contains information about a region that can be targeted by ads.
+--
+-- /See:/ 'region' smart constructor.
+data Region = Region
+    { _regRegionCode    :: !(Maybe Text)
+    , _regKind          :: !Text
+    , _regName          :: !(Maybe Text)
+    , _regCountryCode   :: !(Maybe Text)
+    , _regCountryDartId :: !(Maybe (Textual Int64))
+    , _regDartId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Region' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'regRegionCode'
+--
+-- * 'regKind'
+--
+-- * 'regName'
+--
+-- * 'regCountryCode'
+--
+-- * 'regCountryDartId'
+--
+-- * 'regDartId'
+region
+    :: Region
+region =
+    Region
+    { _regRegionCode = Nothing
+    , _regKind = "dfareporting#region"
+    , _regName = Nothing
+    , _regCountryCode = Nothing
+    , _regCountryDartId = Nothing
+    , _regDartId = Nothing
+    }
+
+-- | Region code.
+regRegionCode :: Lens' Region (Maybe Text)
+regRegionCode
+  = lens _regRegionCode
+      (\ s a -> s{_regRegionCode = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#region\".
+regKind :: Lens' Region Text
+regKind = lens _regKind (\ s a -> s{_regKind = a})
+
+-- | Name of this region.
+regName :: Lens' Region (Maybe Text)
+regName = lens _regName (\ s a -> s{_regName = a})
+
+-- | Country code of the country to which this region belongs.
+regCountryCode :: Lens' Region (Maybe Text)
+regCountryCode
+  = lens _regCountryCode
+      (\ s a -> s{_regCountryCode = a})
+
+-- | DART ID of the country to which this region belongs.
+regCountryDartId :: Lens' Region (Maybe Int64)
+regCountryDartId
+  = lens _regCountryDartId
+      (\ s a -> s{_regCountryDartId = a})
+      . mapping _Coerce
+
+-- | DART ID of this region.
+regDartId :: Lens' Region (Maybe Int64)
+regDartId
+  = lens _regDartId (\ s a -> s{_regDartId = a}) .
+      mapping _Coerce
+
+instance FromJSON Region where
+        parseJSON
+          = withObject "Region"
+              (\ o ->
+                 Region <$>
+                   (o .:? "regionCode") <*>
+                     (o .:? "kind" .!= "dfareporting#region")
+                     <*> (o .:? "name")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "countryDartId")
+                     <*> (o .:? "dartId"))
+
+instance ToJSON Region where
+        toJSON Region{..}
+          = object
+              (catMaybes
+                 [("regionCode" .=) <$> _regRegionCode,
+                  Just ("kind" .= _regKind), ("name" .=) <$> _regName,
+                  ("countryCode" .=) <$> _regCountryCode,
+                  ("countryDartId" .=) <$> _regCountryDartId,
+                  ("dartId" .=) <$> _regDartId])
+
+-- | Advertiser Group List Response
+--
+-- /See:/ 'advertiserGroupsListResponse' smart constructor.
+data AdvertiserGroupsListResponse = AdvertiserGroupsListResponse
+    { _aglrNextPageToken    :: !(Maybe Text)
+    , _aglrKind             :: !Text
+    , _aglrAdvertiserGroups :: !(Maybe [AdvertiserGroup])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertiserGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aglrNextPageToken'
+--
+-- * 'aglrKind'
+--
+-- * 'aglrAdvertiserGroups'
+advertiserGroupsListResponse
+    :: AdvertiserGroupsListResponse
+advertiserGroupsListResponse =
+    AdvertiserGroupsListResponse
+    { _aglrNextPageToken = Nothing
+    , _aglrKind = "dfareporting#advertiserGroupsListResponse"
+    , _aglrAdvertiserGroups = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+aglrNextPageToken :: Lens' AdvertiserGroupsListResponse (Maybe Text)
+aglrNextPageToken
+  = lens _aglrNextPageToken
+      (\ s a -> s{_aglrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#advertiserGroupsListResponse\".
+aglrKind :: Lens' AdvertiserGroupsListResponse Text
+aglrKind = lens _aglrKind (\ s a -> s{_aglrKind = a})
+
+-- | Advertiser group collection.
+aglrAdvertiserGroups :: Lens' AdvertiserGroupsListResponse [AdvertiserGroup]
+aglrAdvertiserGroups
+  = lens _aglrAdvertiserGroups
+      (\ s a -> s{_aglrAdvertiserGroups = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON AdvertiserGroupsListResponse where
+        parseJSON
+          = withObject "AdvertiserGroupsListResponse"
+              (\ o ->
+                 AdvertiserGroupsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#advertiserGroupsListResponse")
+                     <*> (o .:? "advertiserGroups" .!= mempty))
+
+instance ToJSON AdvertiserGroupsListResponse where
+        toJSON AdvertiserGroupsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _aglrNextPageToken,
+                  Just ("kind" .= _aglrKind),
+                  ("advertiserGroups" .=) <$> _aglrAdvertiserGroups])
+
+-- | Creative Assignment.
+--
+-- /See:/ 'creativeAssignment' smart constructor.
+data CreativeAssignment = CreativeAssignment
+    { _caCreativeGroupAssignments   :: !(Maybe [CreativeGroupAssignment])
+    , _caStartTime                  :: !(Maybe DateTime')
+    , _caWeight                     :: !(Maybe (Textual Int32))
+    , _caRichMediaExitOverrides     :: !(Maybe [RichMediaExitOverride])
+    , _caSSLCompliant               :: !(Maybe Bool)
+    , _caCreativeId                 :: !(Maybe (Textual Int64))
+    , _caClickThroughURL            :: !(Maybe ClickThroughURL)
+    , _caApplyEventTags             :: !(Maybe Bool)
+    , _caActive                     :: !(Maybe Bool)
+    , _caSequence                   :: !(Maybe (Textual Int32))
+    , _caEndTime                    :: !(Maybe DateTime')
+    , _caCompanionCreativeOverrides :: !(Maybe [CompanionClickThroughOverride])
+    , _caCreativeIdDimensionValue   :: !(Maybe DimensionValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'caCreativeGroupAssignments'
+--
+-- * 'caStartTime'
+--
+-- * 'caWeight'
+--
+-- * 'caRichMediaExitOverrides'
+--
+-- * 'caSSLCompliant'
+--
+-- * 'caCreativeId'
+--
+-- * 'caClickThroughURL'
+--
+-- * 'caApplyEventTags'
+--
+-- * 'caActive'
+--
+-- * 'caSequence'
+--
+-- * 'caEndTime'
+--
+-- * 'caCompanionCreativeOverrides'
+--
+-- * 'caCreativeIdDimensionValue'
+creativeAssignment
+    :: CreativeAssignment
+creativeAssignment =
+    CreativeAssignment
+    { _caCreativeGroupAssignments = Nothing
+    , _caStartTime = Nothing
+    , _caWeight = Nothing
+    , _caRichMediaExitOverrides = Nothing
+    , _caSSLCompliant = Nothing
+    , _caCreativeId = Nothing
+    , _caClickThroughURL = Nothing
+    , _caApplyEventTags = Nothing
+    , _caActive = Nothing
+    , _caSequence = Nothing
+    , _caEndTime = Nothing
+    , _caCompanionCreativeOverrides = Nothing
+    , _caCreativeIdDimensionValue = Nothing
+    }
+
+-- | Creative group assignments for this creative assignment. Only one
+-- assignment per creative group number is allowed for a maximum of two
+-- assignments.
+caCreativeGroupAssignments :: Lens' CreativeAssignment [CreativeGroupAssignment]
+caCreativeGroupAssignments
+  = lens _caCreativeGroupAssignments
+      (\ s a -> s{_caCreativeGroupAssignments = a})
+      . _Default
+      . _Coerce
+
+-- | Date and time that the assigned creative should start serving.
+caStartTime :: Lens' CreativeAssignment (Maybe UTCTime)
+caStartTime
+  = lens _caStartTime (\ s a -> s{_caStartTime = a}) .
+      mapping _DateTime
+
+-- | Weight of the creative assignment, applicable when the rotation type is
+-- CREATIVE_ROTATION_TYPE_RANDOM.
+caWeight :: Lens' CreativeAssignment (Maybe Int32)
+caWeight
+  = lens _caWeight (\ s a -> s{_caWeight = a}) .
+      mapping _Coerce
+
+-- | Rich media exit overrides for this creative assignment. Applicable when
+-- the creative type is any of the following: - RICH_MEDIA_INPAGE -
+-- RICH_MEDIA_INPAGE_FLOATING - RICH_MEDIA_IM_EXPAND - RICH_MEDIA_EXPANDING
+-- - RICH_MEDIA_INTERSTITIAL_FLOAT - RICH_MEDIA_MOBILE_IN_APP -
+-- RICH_MEDIA_MULTI_FLOATING - RICH_MEDIA_PEEL_DOWN - ADVANCED_BANNER -
+-- VPAID_LINEAR - VPAID_NON_LINEAR
+caRichMediaExitOverrides :: Lens' CreativeAssignment [RichMediaExitOverride]
+caRichMediaExitOverrides
+  = lens _caRichMediaExitOverrides
+      (\ s a -> s{_caRichMediaExitOverrides = a})
+      . _Default
+      . _Coerce
+
+-- | Whether the creative to be assigned is SSL-compliant. This is a
+-- read-only field that is auto-generated when the ad is inserted or
+-- updated.
+caSSLCompliant :: Lens' CreativeAssignment (Maybe Bool)
+caSSLCompliant
+  = lens _caSSLCompliant
+      (\ s a -> s{_caSSLCompliant = a})
+
+-- | ID of the creative to be assigned. This is a required field.
+caCreativeId :: Lens' CreativeAssignment (Maybe Int64)
+caCreativeId
+  = lens _caCreativeId (\ s a -> s{_caCreativeId = a})
+      . mapping _Coerce
+
+-- | Click-through URL of the creative assignment.
+caClickThroughURL :: Lens' CreativeAssignment (Maybe ClickThroughURL)
+caClickThroughURL
+  = lens _caClickThroughURL
+      (\ s a -> s{_caClickThroughURL = a})
+
+-- | Whether applicable event tags should fire when this creative assignment
+-- is rendered. If this value is unset when the ad is inserted or updated,
+-- it will default to true for all creative types EXCEPT for
+-- INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
+caApplyEventTags :: Lens' CreativeAssignment (Maybe Bool)
+caApplyEventTags
+  = lens _caApplyEventTags
+      (\ s a -> s{_caApplyEventTags = a})
+
+-- | Whether this creative assignment is active. When true, the creative will
+-- be included in the ad\'s rotation.
+caActive :: Lens' CreativeAssignment (Maybe Bool)
+caActive = lens _caActive (\ s a -> s{_caActive = a})
+
+-- | Sequence number of the creative assignment, applicable when the rotation
+-- type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+caSequence :: Lens' CreativeAssignment (Maybe Int32)
+caSequence
+  = lens _caSequence (\ s a -> s{_caSequence = a}) .
+      mapping _Coerce
+
+-- | Date and time that the assigned creative should stop serving. Must be
+-- later than the start time.
+caEndTime :: Lens' CreativeAssignment (Maybe UTCTime)
+caEndTime
+  = lens _caEndTime (\ s a -> s{_caEndTime = a}) .
+      mapping _DateTime
+
+-- | Companion creative overrides for this creative assignment. Applicable to
+-- video ads.
+caCompanionCreativeOverrides :: Lens' CreativeAssignment [CompanionClickThroughOverride]
+caCompanionCreativeOverrides
+  = lens _caCompanionCreativeOverrides
+      (\ s a -> s{_caCompanionCreativeOverrides = a})
+      . _Default
+      . _Coerce
+
+-- | Dimension value for the ID of the creative. This is a read-only,
+-- auto-generated field.
+caCreativeIdDimensionValue :: Lens' CreativeAssignment (Maybe DimensionValue)
+caCreativeIdDimensionValue
+  = lens _caCreativeIdDimensionValue
+      (\ s a -> s{_caCreativeIdDimensionValue = a})
+
+instance FromJSON CreativeAssignment where
+        parseJSON
+          = withObject "CreativeAssignment"
+              (\ o ->
+                 CreativeAssignment <$>
+                   (o .:? "creativeGroupAssignments" .!= mempty) <*>
+                     (o .:? "startTime")
+                     <*> (o .:? "weight")
+                     <*> (o .:? "richMediaExitOverrides" .!= mempty)
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "creativeId")
+                     <*> (o .:? "clickThroughUrl")
+                     <*> (o .:? "applyEventTags")
+                     <*> (o .:? "active")
+                     <*> (o .:? "sequence")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "companionCreativeOverrides" .!= mempty)
+                     <*> (o .:? "creativeIdDimensionValue"))
+
+instance ToJSON CreativeAssignment where
+        toJSON CreativeAssignment{..}
+          = object
+              (catMaybes
+                 [("creativeGroupAssignments" .=) <$>
+                    _caCreativeGroupAssignments,
+                  ("startTime" .=) <$> _caStartTime,
+                  ("weight" .=) <$> _caWeight,
+                  ("richMediaExitOverrides" .=) <$>
+                    _caRichMediaExitOverrides,
+                  ("sslCompliant" .=) <$> _caSSLCompliant,
+                  ("creativeId" .=) <$> _caCreativeId,
+                  ("clickThroughUrl" .=) <$> _caClickThroughURL,
+                  ("applyEventTags" .=) <$> _caApplyEventTags,
+                  ("active" .=) <$> _caActive,
+                  ("sequence" .=) <$> _caSequence,
+                  ("endTime" .=) <$> _caEndTime,
+                  ("companionCreativeOverrides" .=) <$>
+                    _caCompanionCreativeOverrides,
+                  ("creativeIdDimensionValue" .=) <$>
+                    _caCreativeIdDimensionValue])
+
+-- | Represents a dimension filter.
+--
+-- /See:/ 'dimensionFilter' smart constructor.
+data DimensionFilter = DimensionFilter
+    { _dfKind          :: !Text
+    , _dfValue         :: !(Maybe Text)
+    , _dfDimensionName :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DimensionFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfKind'
+--
+-- * 'dfValue'
+--
+-- * 'dfDimensionName'
+dimensionFilter
+    :: DimensionFilter
+dimensionFilter =
+    DimensionFilter
+    { _dfKind = "dfareporting#dimensionFilter"
+    , _dfValue = Nothing
+    , _dfDimensionName = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#dimensionFilter.
+dfKind :: Lens' DimensionFilter Text
+dfKind = lens _dfKind (\ s a -> s{_dfKind = a})
+
+-- | The value of the dimension to filter.
+dfValue :: Lens' DimensionFilter (Maybe Text)
+dfValue = lens _dfValue (\ s a -> s{_dfValue = a})
+
+-- | The name of the dimension to filter.
+dfDimensionName :: Lens' DimensionFilter (Maybe Text)
+dfDimensionName
+  = lens _dfDimensionName
+      (\ s a -> s{_dfDimensionName = a})
+
+instance FromJSON DimensionFilter where
+        parseJSON
+          = withObject "DimensionFilter"
+              (\ o ->
+                 DimensionFilter <$>
+                   (o .:? "kind" .!= "dfareporting#dimensionFilter") <*>
+                     (o .:? "value")
+                     <*> (o .:? "dimensionName"))
+
+instance ToJSON DimensionFilter where
+        toJSON DimensionFilter{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _dfKind), ("value" .=) <$> _dfValue,
+                  ("dimensionName" .=) <$> _dfDimensionName])
+
+-- | Represents the list of user profiles.
+--
+-- /See:/ 'userProFileList' smart constructor.
+data UserProFileList = UserProFileList
+    { _upflEtag  :: !(Maybe Text)
+    , _upflKind  :: !Text
+    , _upflItems :: !(Maybe [UserProFile])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFileList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upflEtag'
+--
+-- * 'upflKind'
+--
+-- * 'upflItems'
+userProFileList
+    :: UserProFileList
+userProFileList =
+    UserProFileList
+    { _upflEtag = Nothing
+    , _upflKind = "dfareporting#userProfileList"
+    , _upflItems = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+upflEtag :: Lens' UserProFileList (Maybe Text)
+upflEtag = lens _upflEtag (\ s a -> s{_upflEtag = a})
+
+-- | The kind of list this is, in this case dfareporting#userProfileList.
+upflKind :: Lens' UserProFileList Text
+upflKind = lens _upflKind (\ s a -> s{_upflKind = a})
+
+-- | The user profiles returned in this response.
+upflItems :: Lens' UserProFileList [UserProFile]
+upflItems
+  = lens _upflItems (\ s a -> s{_upflItems = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON UserProFileList where
+        parseJSON
+          = withObject "UserProFileList"
+              (\ o ->
+                 UserProFileList <$>
+                   (o .:? "etag") <*>
+                     (o .:? "kind" .!= "dfareporting#userProfileList")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON UserProFileList where
+        toJSON UserProFileList{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _upflEtag,
+                  Just ("kind" .= _upflKind),
+                  ("items" .=) <$> _upflItems])
+
+-- | Contains properties of a Floodlight configuration.
+--
+-- /See:/ 'floodlightConfiguration' smart constructor.
+data FloodlightConfiguration = FloodlightConfiguration
+    { _fcTagSettings                              :: !(Maybe TagSettings)
+    , _fcExposureToConversionEnabled              :: !(Maybe Bool)
+    , _fcInAppAttributionTrackingEnabled          :: !(Maybe Bool)
+    , _fcThirdPartyAuthenticationTokens           :: !(Maybe [ThirdPartyAuthenticationToken])
+    , _fcKind                                     :: !Text
+    , _fcAdvertiserId                             :: !(Maybe (Textual Int64))
+    , _fcAnalyticsDataSharingEnabled              :: !(Maybe Bool)
+    , _fcAdvertiserIdDimensionValue               :: !(Maybe DimensionValue)
+    , _fcIdDimensionValue                         :: !(Maybe DimensionValue)
+    , _fcLookbackConfiguration                    :: !(Maybe LookbackConfiguration)
+    , _fcAccountId                                :: !(Maybe (Textual Int64))
+    , _fcId                                       :: !(Maybe (Textual Int64))
+    , _fcSSLRequired                              :: !(Maybe Bool)
+    , _fcNATuralSearchConversionAttributionOption :: !(Maybe FloodlightConfigurationNATuralSearchConversionAttributionOption)
+    , _fcUserDefinedVariableConfigurations        :: !(Maybe [UserDefinedVariableConfiguration])
+    , _fcSubAccountId                             :: !(Maybe (Textual Int64))
+    , _fcFirstDayOfWeek                           :: !(Maybe FloodlightConfigurationFirstDayOfWeek)
+    , _fcOmnitureSettings                         :: !(Maybe OmnitureSettings)
+    , _fcStandardVariableTypes                    :: !(Maybe [FloodlightConfigurationStandardVariableTypesItem])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fcTagSettings'
+--
+-- * 'fcExposureToConversionEnabled'
+--
+-- * 'fcInAppAttributionTrackingEnabled'
+--
+-- * 'fcThirdPartyAuthenticationTokens'
+--
+-- * 'fcKind'
+--
+-- * 'fcAdvertiserId'
+--
+-- * 'fcAnalyticsDataSharingEnabled'
+--
+-- * 'fcAdvertiserIdDimensionValue'
+--
+-- * 'fcIdDimensionValue'
+--
+-- * 'fcLookbackConfiguration'
+--
+-- * 'fcAccountId'
+--
+-- * 'fcId'
+--
+-- * 'fcSSLRequired'
+--
+-- * 'fcNATuralSearchConversionAttributionOption'
+--
+-- * 'fcUserDefinedVariableConfigurations'
+--
+-- * 'fcSubAccountId'
+--
+-- * 'fcFirstDayOfWeek'
+--
+-- * 'fcOmnitureSettings'
+--
+-- * 'fcStandardVariableTypes'
+floodlightConfiguration
+    :: FloodlightConfiguration
+floodlightConfiguration =
+    FloodlightConfiguration
+    { _fcTagSettings = Nothing
+    , _fcExposureToConversionEnabled = Nothing
+    , _fcInAppAttributionTrackingEnabled = Nothing
+    , _fcThirdPartyAuthenticationTokens = Nothing
+    , _fcKind = "dfareporting#floodlightConfiguration"
+    , _fcAdvertiserId = Nothing
+    , _fcAnalyticsDataSharingEnabled = Nothing
+    , _fcAdvertiserIdDimensionValue = Nothing
+    , _fcIdDimensionValue = Nothing
+    , _fcLookbackConfiguration = Nothing
+    , _fcAccountId = Nothing
+    , _fcId = Nothing
+    , _fcSSLRequired = Nothing
+    , _fcNATuralSearchConversionAttributionOption = Nothing
+    , _fcUserDefinedVariableConfigurations = Nothing
+    , _fcSubAccountId = Nothing
+    , _fcFirstDayOfWeek = Nothing
+    , _fcOmnitureSettings = Nothing
+    , _fcStandardVariableTypes = Nothing
+    }
+
+-- | Configuration settings for dynamic and image floodlight tags.
+fcTagSettings :: Lens' FloodlightConfiguration (Maybe TagSettings)
+fcTagSettings
+  = lens _fcTagSettings
+      (\ s a -> s{_fcTagSettings = a})
+
+-- | Whether the exposure-to-conversion report is enabled. This report shows
+-- detailed pathway information on up to 10 of the most recent ad exposures
+-- seen by a user before converting.
+fcExposureToConversionEnabled :: Lens' FloodlightConfiguration (Maybe Bool)
+fcExposureToConversionEnabled
+  = lens _fcExposureToConversionEnabled
+      (\ s a -> s{_fcExposureToConversionEnabled = a})
+
+-- | Whether in-app attribution tracking is enabled.
+fcInAppAttributionTrackingEnabled :: Lens' FloodlightConfiguration (Maybe Bool)
+fcInAppAttributionTrackingEnabled
+  = lens _fcInAppAttributionTrackingEnabled
+      (\ s a -> s{_fcInAppAttributionTrackingEnabled = a})
+
+-- | List of third-party authentication tokens enabled for this
+-- configuration.
+fcThirdPartyAuthenticationTokens :: Lens' FloodlightConfiguration [ThirdPartyAuthenticationToken]
+fcThirdPartyAuthenticationTokens
+  = lens _fcThirdPartyAuthenticationTokens
+      (\ s a -> s{_fcThirdPartyAuthenticationTokens = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightConfiguration\".
+fcKind :: Lens' FloodlightConfiguration Text
+fcKind = lens _fcKind (\ s a -> s{_fcKind = a})
+
+-- | Advertiser ID of the parent advertiser of this floodlight configuration.
+fcAdvertiserId :: Lens' FloodlightConfiguration (Maybe Int64)
+fcAdvertiserId
+  = lens _fcAdvertiserId
+      (\ s a -> s{_fcAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Whether advertiser data is shared with Google Analytics.
+fcAnalyticsDataSharingEnabled :: Lens' FloodlightConfiguration (Maybe Bool)
+fcAnalyticsDataSharingEnabled
+  = lens _fcAnalyticsDataSharingEnabled
+      (\ s a -> s{_fcAnalyticsDataSharingEnabled = a})
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+fcAdvertiserIdDimensionValue :: Lens' FloodlightConfiguration (Maybe DimensionValue)
+fcAdvertiserIdDimensionValue
+  = lens _fcAdvertiserIdDimensionValue
+      (\ s a -> s{_fcAdvertiserIdDimensionValue = a})
+
+-- | Dimension value for the ID of this floodlight configuration. This is a
+-- read-only, auto-generated field.
+fcIdDimensionValue :: Lens' FloodlightConfiguration (Maybe DimensionValue)
+fcIdDimensionValue
+  = lens _fcIdDimensionValue
+      (\ s a -> s{_fcIdDimensionValue = a})
+
+-- | Lookback window settings for this floodlight configuration.
+fcLookbackConfiguration :: Lens' FloodlightConfiguration (Maybe LookbackConfiguration)
+fcLookbackConfiguration
+  = lens _fcLookbackConfiguration
+      (\ s a -> s{_fcLookbackConfiguration = a})
+
+-- | Account ID of this floodlight configuration. This is a read-only field
+-- that can be left blank.
+fcAccountId :: Lens' FloodlightConfiguration (Maybe Int64)
+fcAccountId
+  = lens _fcAccountId (\ s a -> s{_fcAccountId = a}) .
+      mapping _Coerce
+
+-- | ID of this floodlight configuration. This is a read-only, auto-generated
+-- field.
+fcId :: Lens' FloodlightConfiguration (Maybe Int64)
+fcId
+  = lens _fcId (\ s a -> s{_fcId = a}) .
+      mapping _Coerce
+
+-- | Whether floodlight activities owned by this configuration are required
+-- to be SSL-compliant.
+fcSSLRequired :: Lens' FloodlightConfiguration (Maybe Bool)
+fcSSLRequired
+  = lens _fcSSLRequired
+      (\ s a -> s{_fcSSLRequired = a})
+
+-- | Types of attribution options for natural search conversions.
+fcNATuralSearchConversionAttributionOption :: Lens' FloodlightConfiguration (Maybe FloodlightConfigurationNATuralSearchConversionAttributionOption)
+fcNATuralSearchConversionAttributionOption
+  = lens _fcNATuralSearchConversionAttributionOption
+      (\ s a ->
+         s{_fcNATuralSearchConversionAttributionOption = a})
+
+-- | List of user defined variables enabled for this configuration.
+fcUserDefinedVariableConfigurations :: Lens' FloodlightConfiguration [UserDefinedVariableConfiguration]
+fcUserDefinedVariableConfigurations
+  = lens _fcUserDefinedVariableConfigurations
+      (\ s a ->
+         s{_fcUserDefinedVariableConfigurations = a})
+      . _Default
+      . _Coerce
+
+-- | Subaccount ID of this floodlight configuration. This is a read-only
+-- field that can be left blank.
+fcSubAccountId :: Lens' FloodlightConfiguration (Maybe Int64)
+fcSubAccountId
+  = lens _fcSubAccountId
+      (\ s a -> s{_fcSubAccountId = a})
+      . mapping _Coerce
+
+-- | Day that will be counted as the first day of the week in reports. This
+-- is a required field.
+fcFirstDayOfWeek :: Lens' FloodlightConfiguration (Maybe FloodlightConfigurationFirstDayOfWeek)
+fcFirstDayOfWeek
+  = lens _fcFirstDayOfWeek
+      (\ s a -> s{_fcFirstDayOfWeek = a})
+
+-- | Settings for DCM Omniture integration.
+fcOmnitureSettings :: Lens' FloodlightConfiguration (Maybe OmnitureSettings)
+fcOmnitureSettings
+  = lens _fcOmnitureSettings
+      (\ s a -> s{_fcOmnitureSettings = a})
+
+-- | List of standard variables enabled for this configuration. Acceptable
+-- values are: - \"ORD\" - \"NUM\"
+fcStandardVariableTypes :: Lens' FloodlightConfiguration [FloodlightConfigurationStandardVariableTypesItem]
+fcStandardVariableTypes
+  = lens _fcStandardVariableTypes
+      (\ s a -> s{_fcStandardVariableTypes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON FloodlightConfiguration where
+        parseJSON
+          = withObject "FloodlightConfiguration"
+              (\ o ->
+                 FloodlightConfiguration <$>
+                   (o .:? "tagSettings") <*>
+                     (o .:? "exposureToConversionEnabled")
+                     <*> (o .:? "inAppAttributionTrackingEnabled")
+                     <*>
+                     (o .:? "thirdPartyAuthenticationTokens" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightConfiguration")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "analyticsDataSharingEnabled")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "lookbackConfiguration")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "sslRequired")
+                     <*>
+                     (o .:? "naturalSearchConversionAttributionOption")
+                     <*>
+                     (o .:? "userDefinedVariableConfigurations" .!=
+                        mempty)
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "firstDayOfWeek")
+                     <*> (o .:? "omnitureSettings")
+                     <*> (o .:? "standardVariableTypes" .!= mempty))
+
+instance ToJSON FloodlightConfiguration where
+        toJSON FloodlightConfiguration{..}
+          = object
+              (catMaybes
+                 [("tagSettings" .=) <$> _fcTagSettings,
+                  ("exposureToConversionEnabled" .=) <$>
+                    _fcExposureToConversionEnabled,
+                  ("inAppAttributionTrackingEnabled" .=) <$>
+                    _fcInAppAttributionTrackingEnabled,
+                  ("thirdPartyAuthenticationTokens" .=) <$>
+                    _fcThirdPartyAuthenticationTokens,
+                  Just ("kind" .= _fcKind),
+                  ("advertiserId" .=) <$> _fcAdvertiserId,
+                  ("analyticsDataSharingEnabled" .=) <$>
+                    _fcAnalyticsDataSharingEnabled,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _fcAdvertiserIdDimensionValue,
+                  ("idDimensionValue" .=) <$> _fcIdDimensionValue,
+                  ("lookbackConfiguration" .=) <$>
+                    _fcLookbackConfiguration,
+                  ("accountId" .=) <$> _fcAccountId,
+                  ("id" .=) <$> _fcId,
+                  ("sslRequired" .=) <$> _fcSSLRequired,
+                  ("naturalSearchConversionAttributionOption" .=) <$>
+                    _fcNATuralSearchConversionAttributionOption,
+                  ("userDefinedVariableConfigurations" .=) <$>
+                    _fcUserDefinedVariableConfigurations,
+                  ("subaccountId" .=) <$> _fcSubAccountId,
+                  ("firstDayOfWeek" .=) <$> _fcFirstDayOfWeek,
+                  ("omnitureSettings" .=) <$> _fcOmnitureSettings,
+                  ("standardVariableTypes" .=) <$>
+                    _fcStandardVariableTypes])
+
+-- | Floodlight Activity Group List Response
+--
+-- /See:/ 'floodlightActivityGroupsListResponse' smart constructor.
+data FloodlightActivityGroupsListResponse = FloodlightActivityGroupsListResponse
+    { _faglrNextPageToken            :: !(Maybe Text)
+    , _faglrKind                     :: !Text
+    , _faglrFloodlightActivityGroups :: !(Maybe [FloodlightActivityGroup])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'faglrNextPageToken'
+--
+-- * 'faglrKind'
+--
+-- * 'faglrFloodlightActivityGroups'
+floodlightActivityGroupsListResponse
+    :: FloodlightActivityGroupsListResponse
+floodlightActivityGroupsListResponse =
+    FloodlightActivityGroupsListResponse
+    { _faglrNextPageToken = Nothing
+    , _faglrKind = "dfareporting#floodlightActivityGroupsListResponse"
+    , _faglrFloodlightActivityGroups = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+faglrNextPageToken :: Lens' FloodlightActivityGroupsListResponse (Maybe Text)
+faglrNextPageToken
+  = lens _faglrNextPageToken
+      (\ s a -> s{_faglrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightActivityGroupsListResponse\".
+faglrKind :: Lens' FloodlightActivityGroupsListResponse Text
+faglrKind
+  = lens _faglrKind (\ s a -> s{_faglrKind = a})
+
+-- | Floodlight activity group collection.
+faglrFloodlightActivityGroups :: Lens' FloodlightActivityGroupsListResponse [FloodlightActivityGroup]
+faglrFloodlightActivityGroups
+  = lens _faglrFloodlightActivityGroups
+      (\ s a -> s{_faglrFloodlightActivityGroups = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         FloodlightActivityGroupsListResponse where
+        parseJSON
+          = withObject "FloodlightActivityGroupsListResponse"
+              (\ o ->
+                 FloodlightActivityGroupsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightActivityGroupsListResponse")
+                     <*> (o .:? "floodlightActivityGroups" .!= mempty))
+
+instance ToJSON FloodlightActivityGroupsListResponse
+         where
+        toJSON FloodlightActivityGroupsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _faglrNextPageToken,
+                  Just ("kind" .= _faglrKind),
+                  ("floodlightActivityGroups" .=) <$>
+                    _faglrFloodlightActivityGroups])
+
+-- | Creative Field Value List Response
+--
+-- /See:/ 'creativeFieldValuesListResponse' smart constructor.
+data CreativeFieldValuesListResponse = CreativeFieldValuesListResponse
+    { _cfvlrNextPageToken       :: !(Maybe Text)
+    , _cfvlrKind                :: !Text
+    , _cfvlrCreativeFieldValues :: !(Maybe [CreativeFieldValue])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldValuesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfvlrNextPageToken'
+--
+-- * 'cfvlrKind'
+--
+-- * 'cfvlrCreativeFieldValues'
+creativeFieldValuesListResponse
+    :: CreativeFieldValuesListResponse
+creativeFieldValuesListResponse =
+    CreativeFieldValuesListResponse
+    { _cfvlrNextPageToken = Nothing
+    , _cfvlrKind = "dfareporting#creativeFieldValuesListResponse"
+    , _cfvlrCreativeFieldValues = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+cfvlrNextPageToken :: Lens' CreativeFieldValuesListResponse (Maybe Text)
+cfvlrNextPageToken
+  = lens _cfvlrNextPageToken
+      (\ s a -> s{_cfvlrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeFieldValuesListResponse\".
+cfvlrKind :: Lens' CreativeFieldValuesListResponse Text
+cfvlrKind
+  = lens _cfvlrKind (\ s a -> s{_cfvlrKind = a})
+
+-- | Creative field value collection.
+cfvlrCreativeFieldValues :: Lens' CreativeFieldValuesListResponse [CreativeFieldValue]
+cfvlrCreativeFieldValues
+  = lens _cfvlrCreativeFieldValues
+      (\ s a -> s{_cfvlrCreativeFieldValues = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CreativeFieldValuesListResponse
+         where
+        parseJSON
+          = withObject "CreativeFieldValuesListResponse"
+              (\ o ->
+                 CreativeFieldValuesListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#creativeFieldValuesListResponse")
+                     <*> (o .:? "creativeFieldValues" .!= mempty))
+
+instance ToJSON CreativeFieldValuesListResponse where
+        toJSON CreativeFieldValuesListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _cfvlrNextPageToken,
+                  Just ("kind" .= _cfvlrKind),
+                  ("creativeFieldValues" .=) <$>
+                    _cfvlrCreativeFieldValues])
+
+-- | Rich Media Exit Override.
+--
+-- /See:/ 'richMediaExitOverride' smart constructor.
+data RichMediaExitOverride = RichMediaExitOverride
+    { _rmeoUseCustomExitURL :: !(Maybe Bool)
+    , _rmeoExitId           :: !(Maybe (Textual Int64))
+    , _rmeoCustomExitURL    :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RichMediaExitOverride' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rmeoUseCustomExitURL'
+--
+-- * 'rmeoExitId'
+--
+-- * 'rmeoCustomExitURL'
+richMediaExitOverride
+    :: RichMediaExitOverride
+richMediaExitOverride =
+    RichMediaExitOverride
+    { _rmeoUseCustomExitURL = Nothing
+    , _rmeoExitId = Nothing
+    , _rmeoCustomExitURL = Nothing
+    }
+
+-- | Whether to use the custom exit URL.
+rmeoUseCustomExitURL :: Lens' RichMediaExitOverride (Maybe Bool)
+rmeoUseCustomExitURL
+  = lens _rmeoUseCustomExitURL
+      (\ s a -> s{_rmeoUseCustomExitURL = a})
+
+-- | ID for the override to refer to a specific exit in the creative.
+rmeoExitId :: Lens' RichMediaExitOverride (Maybe Int64)
+rmeoExitId
+  = lens _rmeoExitId (\ s a -> s{_rmeoExitId = a}) .
+      mapping _Coerce
+
+-- | Click-through URL to override the default exit URL. Applicable if the
+-- useCustomExitUrl field is set to true.
+rmeoCustomExitURL :: Lens' RichMediaExitOverride (Maybe Text)
+rmeoCustomExitURL
+  = lens _rmeoCustomExitURL
+      (\ s a -> s{_rmeoCustomExitURL = a})
+
+instance FromJSON RichMediaExitOverride where
+        parseJSON
+          = withObject "RichMediaExitOverride"
+              (\ o ->
+                 RichMediaExitOverride <$>
+                   (o .:? "useCustomExitUrl") <*> (o .:? "exitId") <*>
+                     (o .:? "customExitUrl"))
+
+instance ToJSON RichMediaExitOverride where
+        toJSON RichMediaExitOverride{..}
+          = object
+              (catMaybes
+                 [("useCustomExitUrl" .=) <$> _rmeoUseCustomExitURL,
+                  ("exitId" .=) <$> _rmeoExitId,
+                  ("customExitUrl" .=) <$> _rmeoCustomExitURL])
+
+-- | Represents a sorted dimension.
+--
+-- /See:/ 'sortedDimension' smart constructor.
+data SortedDimension = SortedDimension
+    { _sdKind      :: !Text
+    , _sdSortOrder :: !(Maybe SortedDimensionSortOrder)
+    , _sdName      :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SortedDimension' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sdKind'
+--
+-- * 'sdSortOrder'
+--
+-- * 'sdName'
+sortedDimension
+    :: SortedDimension
+sortedDimension =
+    SortedDimension
+    { _sdKind = "dfareporting#sortedDimension"
+    , _sdSortOrder = Nothing
+    , _sdName = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#sortedDimension.
+sdKind :: Lens' SortedDimension Text
+sdKind = lens _sdKind (\ s a -> s{_sdKind = a})
+
+-- | An optional sort order for the dimension column.
+sdSortOrder :: Lens' SortedDimension (Maybe SortedDimensionSortOrder)
+sdSortOrder
+  = lens _sdSortOrder (\ s a -> s{_sdSortOrder = a})
+
+-- | The name of the dimension.
+sdName :: Lens' SortedDimension (Maybe Text)
+sdName = lens _sdName (\ s a -> s{_sdName = a})
+
+instance FromJSON SortedDimension where
+        parseJSON
+          = withObject "SortedDimension"
+              (\ o ->
+                 SortedDimension <$>
+                   (o .:? "kind" .!= "dfareporting#sortedDimension") <*>
+                     (o .:? "sortOrder")
+                     <*> (o .:? "name"))
+
+instance ToJSON SortedDimension where
+        toJSON SortedDimension{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _sdKind),
+                  ("sortOrder" .=) <$> _sdSortOrder,
+                  ("name" .=) <$> _sdName])
+
+-- | Creative Field List Response
+--
+-- /See:/ 'creativeFieldsListResponse' smart constructor.
+data CreativeFieldsListResponse = CreativeFieldsListResponse
+    { _cflrNextPageToken  :: !(Maybe Text)
+    , _cflrKind           :: !Text
+    , _cflrCreativeFields :: !(Maybe [CreativeField])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cflrNextPageToken'
+--
+-- * 'cflrKind'
+--
+-- * 'cflrCreativeFields'
+creativeFieldsListResponse
+    :: CreativeFieldsListResponse
+creativeFieldsListResponse =
+    CreativeFieldsListResponse
+    { _cflrNextPageToken = Nothing
+    , _cflrKind = "dfareporting#creativeFieldsListResponse"
+    , _cflrCreativeFields = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+cflrNextPageToken :: Lens' CreativeFieldsListResponse (Maybe Text)
+cflrNextPageToken
+  = lens _cflrNextPageToken
+      (\ s a -> s{_cflrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeFieldsListResponse\".
+cflrKind :: Lens' CreativeFieldsListResponse Text
+cflrKind = lens _cflrKind (\ s a -> s{_cflrKind = a})
+
+-- | Creative field collection.
+cflrCreativeFields :: Lens' CreativeFieldsListResponse [CreativeField]
+cflrCreativeFields
+  = lens _cflrCreativeFields
+      (\ s a -> s{_cflrCreativeFields = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CreativeFieldsListResponse where
+        parseJSON
+          = withObject "CreativeFieldsListResponse"
+              (\ o ->
+                 CreativeFieldsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#creativeFieldsListResponse")
+                     <*> (o .:? "creativeFields" .!= mempty))
+
+instance ToJSON CreativeFieldsListResponse where
+        toJSON CreativeFieldsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _cflrNextPageToken,
+                  Just ("kind" .= _cflrKind),
+                  ("creativeFields" .=) <$> _cflrCreativeFields])
+
+-- | Placement GenerateTags Response
+--
+-- /See:/ 'placementsGenerateTagsResponse' smart constructor.
+data PlacementsGenerateTagsResponse = PlacementsGenerateTagsResponse
+    { _pgtrKind          :: !Text
+    , _pgtrPlacementTags :: !(Maybe [PlacementTag])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementsGenerateTagsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pgtrKind'
+--
+-- * 'pgtrPlacementTags'
+placementsGenerateTagsResponse
+    :: PlacementsGenerateTagsResponse
+placementsGenerateTagsResponse =
+    PlacementsGenerateTagsResponse
+    { _pgtrKind = "dfareporting#placementsGenerateTagsResponse"
+    , _pgtrPlacementTags = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementsGenerateTagsResponse\".
+pgtrKind :: Lens' PlacementsGenerateTagsResponse Text
+pgtrKind = lens _pgtrKind (\ s a -> s{_pgtrKind = a})
+
+-- | Set of generated tags for the specified placements.
+pgtrPlacementTags :: Lens' PlacementsGenerateTagsResponse [PlacementTag]
+pgtrPlacementTags
+  = lens _pgtrPlacementTags
+      (\ s a -> s{_pgtrPlacementTags = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON PlacementsGenerateTagsResponse
+         where
+        parseJSON
+          = withObject "PlacementsGenerateTagsResponse"
+              (\ o ->
+                 PlacementsGenerateTagsResponse <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#placementsGenerateTagsResponse")
+                     <*> (o .:? "placementTags" .!= mempty))
+
+instance ToJSON PlacementsGenerateTagsResponse where
+        toJSON PlacementsGenerateTagsResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _pgtrKind),
+                  ("placementTags" .=) <$> _pgtrPlacementTags])
+
+-- | Creative Asset.
+--
+-- /See:/ 'creativeAsset' smart constructor.
+data CreativeAsset = CreativeAsset
+    { _caaZIndex                :: !(Maybe (Textual Int32))
+    , _caaPushdown              :: !(Maybe Bool)
+    , _caaVideoDuration         :: !(Maybe (Textual Double))
+    , _caaOriginalBackup        :: !(Maybe Bool)
+    , _caaWindowMode            :: !(Maybe CreativeAssetWindowMode)
+    , _caaFlashVersion          :: !(Maybe (Textual Int32))
+    , _caaPushdownDuration      :: !(Maybe (Textual Double))
+    , _caaSize                  :: !(Maybe Size)
+    , _caaVerticallyLocked      :: !(Maybe Bool)
+    , _caaOffSet                :: !(Maybe OffSetPosition)
+    , _caaStreamingServingURL   :: !(Maybe Text)
+    , _caaZipFilesize           :: !(Maybe Text)
+    , _caaTransparency          :: !(Maybe Bool)
+    , _caaHideSelectionBoxes    :: !(Maybe Bool)
+    , _caaSSLCompliant          :: !(Maybe Bool)
+    , _caaFileSize              :: !(Maybe (Textual Int64))
+    , _caaAssetIdentifier       :: !(Maybe CreativeAssetId)
+    , _caaDurationType          :: !(Maybe CreativeAssetDurationType)
+    , _caaProgressiveServingURL :: !(Maybe Text)
+    , _caaActive                :: !(Maybe Bool)
+    , _caaRole                  :: !(Maybe CreativeAssetRole)
+    , _caaMimeType              :: !(Maybe Text)
+    , _caaPositionTopUnit       :: !(Maybe CreativeAssetPositionTopUnit)
+    , _caaPositionLeftUnit      :: !(Maybe CreativeAssetPositionLeftUnit)
+    , _caaAlignment             :: !(Maybe CreativeAssetAlignment)
+    , _caaExpandedDimension     :: !(Maybe Size)
+    , _caaZipFilename           :: !(Maybe Text)
+    , _caaActionScript3         :: !(Maybe Bool)
+    , _caaDisplayType           :: !(Maybe CreativeAssetDisplayType)
+    , _caaChildAssetType        :: !(Maybe CreativeAssetChildAssetType)
+    , _caaCollapsedSize         :: !(Maybe Size)
+    , _caaId                    :: !(Maybe (Textual Int64))
+    , _caaBitRate               :: !(Maybe (Textual Int32))
+    , _caaCustomStartTimeValue  :: !(Maybe (Textual Int32))
+    , _caaStartTimeType         :: !(Maybe CreativeAssetStartTimeType)
+    , _caaDuration              :: !(Maybe (Textual Int32))
+    , _caaArtworkType           :: !(Maybe CreativeAssetArtworkType)
+    , _caaHideFlashObjects      :: !(Maybe Bool)
+    , _caaDetectedFeatures      :: !(Maybe [CreativeAssetDetectedFeaturesItem])
+    , _caaBackupImageExit       :: !(Maybe CreativeCustomEvent)
+    , _caaPosition              :: !(Maybe OffSetPosition)
+    , _caaHorizontallyLocked    :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeAsset' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'caaZIndex'
+--
+-- * 'caaPushdown'
+--
+-- * 'caaVideoDuration'
+--
+-- * 'caaOriginalBackup'
+--
+-- * 'caaWindowMode'
+--
+-- * 'caaFlashVersion'
+--
+-- * 'caaPushdownDuration'
+--
+-- * 'caaSize'
+--
+-- * 'caaVerticallyLocked'
+--
+-- * 'caaOffSet'
+--
+-- * 'caaStreamingServingURL'
+--
+-- * 'caaZipFilesize'
+--
+-- * 'caaTransparency'
+--
+-- * 'caaHideSelectionBoxes'
+--
+-- * 'caaSSLCompliant'
+--
+-- * 'caaFileSize'
+--
+-- * 'caaAssetIdentifier'
+--
+-- * 'caaDurationType'
+--
+-- * 'caaProgressiveServingURL'
+--
+-- * 'caaActive'
+--
+-- * 'caaRole'
+--
+-- * 'caaMimeType'
+--
+-- * 'caaPositionTopUnit'
+--
+-- * 'caaPositionLeftUnit'
+--
+-- * 'caaAlignment'
+--
+-- * 'caaExpandedDimension'
+--
+-- * 'caaZipFilename'
+--
+-- * 'caaActionScript3'
+--
+-- * 'caaDisplayType'
+--
+-- * 'caaChildAssetType'
+--
+-- * 'caaCollapsedSize'
+--
+-- * 'caaId'
+--
+-- * 'caaBitRate'
+--
+-- * 'caaCustomStartTimeValue'
+--
+-- * 'caaStartTimeType'
+--
+-- * 'caaDuration'
+--
+-- * 'caaArtworkType'
+--
+-- * 'caaHideFlashObjects'
+--
+-- * 'caaDetectedFeatures'
+--
+-- * 'caaBackupImageExit'
+--
+-- * 'caaPosition'
+--
+-- * 'caaHorizontallyLocked'
+creativeAsset
+    :: CreativeAsset
+creativeAsset =
+    CreativeAsset
+    { _caaZIndex = Nothing
+    , _caaPushdown = Nothing
+    , _caaVideoDuration = Nothing
+    , _caaOriginalBackup = Nothing
+    , _caaWindowMode = Nothing
+    , _caaFlashVersion = Nothing
+    , _caaPushdownDuration = Nothing
+    , _caaSize = Nothing
+    , _caaVerticallyLocked = Nothing
+    , _caaOffSet = Nothing
+    , _caaStreamingServingURL = Nothing
+    , _caaZipFilesize = Nothing
+    , _caaTransparency = Nothing
+    , _caaHideSelectionBoxes = Nothing
+    , _caaSSLCompliant = Nothing
+    , _caaFileSize = Nothing
+    , _caaAssetIdentifier = Nothing
+    , _caaDurationType = Nothing
+    , _caaProgressiveServingURL = Nothing
+    , _caaActive = Nothing
+    , _caaRole = Nothing
+    , _caaMimeType = Nothing
+    , _caaPositionTopUnit = Nothing
+    , _caaPositionLeftUnit = Nothing
+    , _caaAlignment = Nothing
+    , _caaExpandedDimension = Nothing
+    , _caaZipFilename = Nothing
+    , _caaActionScript3 = Nothing
+    , _caaDisplayType = Nothing
+    , _caaChildAssetType = Nothing
+    , _caaCollapsedSize = Nothing
+    , _caaId = Nothing
+    , _caaBitRate = Nothing
+    , _caaCustomStartTimeValue = Nothing
+    , _caaStartTimeType = Nothing
+    , _caaDuration = Nothing
+    , _caaArtworkType = Nothing
+    , _caaHideFlashObjects = Nothing
+    , _caaDetectedFeatures = Nothing
+    , _caaBackupImageExit = Nothing
+    , _caaPosition = Nothing
+    , _caaHorizontallyLocked = Nothing
+    }
+
+-- | zIndex value of an asset. This is a read-only field. Applicable to the
+-- following creative types: all RICH_MEDIA.Additionally, only applicable
+-- to assets whose displayType is NOT one of the following types:
+-- ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+caaZIndex :: Lens' CreativeAsset (Maybe Int32)
+caaZIndex
+  = lens _caaZIndex (\ s a -> s{_caaZIndex = a}) .
+      mapping _Coerce
+
+-- | Whether the asset pushes down other content. Applicable to the following
+-- creative types: all RICH_MEDIA. Additionally, only applicable when the
+-- asset offsets are 0, the collapsedSize.width matches size.width, and the
+-- collapsedSize.height is less than size.height.
+caaPushdown :: Lens' CreativeAsset (Maybe Bool)
+caaPushdown
+  = lens _caaPushdown (\ s a -> s{_caaPushdown = a})
+
+-- | Detected video duration for video asset. This is a read-only field.
+-- Applicable to the following creative types: INSTREAM_VIDEO and all
+-- VPAID.
+caaVideoDuration :: Lens' CreativeAsset (Maybe Double)
+caaVideoDuration
+  = lens _caaVideoDuration
+      (\ s a -> s{_caaVideoDuration = a})
+      . mapping _Coerce
+
+-- | Whether the backup asset is original or changed by the user in DCM.
+-- Applicable to the following creative types: all RICH_MEDIA.
+caaOriginalBackup :: Lens' CreativeAsset (Maybe Bool)
+caaOriginalBackup
+  = lens _caaOriginalBackup
+      (\ s a -> s{_caaOriginalBackup = a})
+
+-- | Window mode options for flash assets. Applicable to the following
+-- creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING,
+-- RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
+caaWindowMode :: Lens' CreativeAsset (Maybe CreativeAssetWindowMode)
+caaWindowMode
+  = lens _caaWindowMode
+      (\ s a -> s{_caaWindowMode = a})
+
+-- | Flash version of the asset. This is a read-only field. Applicable to the
+-- following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA,
+-- and all VPAID.
+caaFlashVersion :: Lens' CreativeAsset (Maybe Int32)
+caaFlashVersion
+  = lens _caaFlashVersion
+      (\ s a -> s{_caaFlashVersion = a})
+      . mapping _Coerce
+
+-- | Pushdown duration in seconds for an asset. Must be between 0 and 9.99.
+-- Applicable to the following creative types: all RICH_MEDIA.Additionally,
+-- only applicable when the asset pushdown field is true, the offsets are
+-- 0, the collapsedSize.width matches size.width, and the
+-- collapsedSize.height is less than size.height.
+caaPushdownDuration :: Lens' CreativeAsset (Maybe Double)
+caaPushdownDuration
+  = lens _caaPushdownDuration
+      (\ s a -> s{_caaPushdownDuration = a})
+      . mapping _Coerce
+
+-- | Size associated with this creative asset. This is a required field when
+-- applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank,
+-- this field will be automatically set using the actual size of the
+-- associated image asset. Applicable to the following creative types:
+-- ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and
+-- all RICH_MEDIA.
+caaSize :: Lens' CreativeAsset (Maybe Size)
+caaSize = lens _caaSize (\ s a -> s{_caaSize = a})
+
+-- | Whether the asset is vertically locked. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA.
+caaVerticallyLocked :: Lens' CreativeAsset (Maybe Bool)
+caaVerticallyLocked
+  = lens _caaVerticallyLocked
+      (\ s a -> s{_caaVerticallyLocked = a})
+
+-- | Offset position for an asset in collapsed mode. This is a read-only
+-- field. Applicable to the following creative types: all RICH_MEDIA and
+-- all VPAID. Additionally, only applicable to assets whose displayType is
+-- ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+caaOffSet :: Lens' CreativeAsset (Maybe OffSetPosition)
+caaOffSet
+  = lens _caaOffSet (\ s a -> s{_caaOffSet = a})
+
+-- | Streaming URL for video asset. This is a read-only field. Applicable to
+-- the following creative types: INSTREAM_VIDEO and all VPAID.
+caaStreamingServingURL :: Lens' CreativeAsset (Maybe Text)
+caaStreamingServingURL
+  = lens _caaStreamingServingURL
+      (\ s a -> s{_caaStreamingServingURL = a})
+
+-- | Size of zip file. This is a read-only field. Applicable to the following
+-- creative types: HTML5_BANNER.
+caaZipFilesize :: Lens' CreativeAsset (Maybe Text)
+caaZipFilesize
+  = lens _caaZipFilesize
+      (\ s a -> s{_caaZipFilesize = a})
+
+-- | Whether the asset is transparent. Applicable to the following creative
+-- types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
+caaTransparency :: Lens' CreativeAsset (Maybe Bool)
+caaTransparency
+  = lens _caaTransparency
+      (\ s a -> s{_caaTransparency = a})
+
+-- | Whether to hide selection boxes flag for an asset. Applicable to the
+-- following creative types: all RICH_MEDIA.
+caaHideSelectionBoxes :: Lens' CreativeAsset (Maybe Bool)
+caaHideSelectionBoxes
+  = lens _caaHideSelectionBoxes
+      (\ s a -> s{_caaHideSelectionBoxes = a})
+
+-- | Whether the asset is SSL-compliant. This is a read-only field.
+-- Applicable to all but the following creative types: all REDIRECT and
+-- TRACKING_TEXT.
+caaSSLCompliant :: Lens' CreativeAsset (Maybe Bool)
+caaSSLCompliant
+  = lens _caaSSLCompliant
+      (\ s a -> s{_caaSSLCompliant = a})
+
+-- | File size associated with this creative asset. This is a read-only
+-- field. Applicable to all but the following creative types: all REDIRECT
+-- and TRACKING_TEXT.
+caaFileSize :: Lens' CreativeAsset (Maybe Int64)
+caaFileSize
+  = lens _caaFileSize (\ s a -> s{_caaFileSize = a}) .
+      mapping _Coerce
+
+-- | Identifier of this asset. This is the same identifier returned during
+-- creative asset insert operation. This is a required field. Applicable to
+-- all but the following creative types: all REDIRECT and TRACKING_TEXT.
+caaAssetIdentifier :: Lens' CreativeAsset (Maybe CreativeAssetId)
+caaAssetIdentifier
+  = lens _caaAssetIdentifier
+      (\ s a -> s{_caaAssetIdentifier = a})
+
+-- | Duration type for which an asset will be displayed. Applicable to the
+-- following creative types: all RICH_MEDIA.
+caaDurationType :: Lens' CreativeAsset (Maybe CreativeAssetDurationType)
+caaDurationType
+  = lens _caaDurationType
+      (\ s a -> s{_caaDurationType = a})
+
+-- | Progressive URL for video asset. This is a read-only field. Applicable
+-- to the following creative types: INSTREAM_VIDEO and all VPAID.
+caaProgressiveServingURL :: Lens' CreativeAsset (Maybe Text)
+caaProgressiveServingURL
+  = lens _caaProgressiveServingURL
+      (\ s a -> s{_caaProgressiveServingURL = a})
+
+-- | Whether the video asset is active. This is a read-only field for
+-- VPAID_NON_LINEAR assets. Applicable to the following creative types:
+-- INSTREAM_VIDEO and all VPAID.
+caaActive :: Lens' CreativeAsset (Maybe Bool)
+caaActive
+  = lens _caaActive (\ s a -> s{_caaActive = a})
+
+-- | Role of the asset in relation to creative. Applicable to all but the
+-- following creative types: all REDIRECT and TRACKING_TEXT. This is a
+-- required field. PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE,
+-- HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain
+-- multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies
+-- to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all
+-- VPAID creatives. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to
+-- FLASH_INPAGE creatives. OTHER refers to assets from sources other than
+-- DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and
+-- all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user
+-- in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+-- TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO
+-- assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+-- ALTERNATE_VIDEO refers to the DCM representation of child asset videos
+-- from Studio, and is applicable to VPAID_LINEAR creatives. These cannot
+-- be added or removed within DCM. For VPAID_LINEAR creatives,
+-- PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are
+-- marked active serve as backup in case the VPAID creative cannot be
+-- served. Only PARENT_VIDEO assets can be added or removed for an
+-- INSTREAM_VIDEO or VPAID_LINEAR creative.
+caaRole :: Lens' CreativeAsset (Maybe CreativeAssetRole)
+caaRole = lens _caaRole (\ s a -> s{_caaRole = a})
+
+-- | Detected MIME type for video asset. This is a read-only field.
+-- Applicable to the following creative types: INSTREAM_VIDEO and all
+-- VPAID.
+caaMimeType :: Lens' CreativeAsset (Maybe Text)
+caaMimeType
+  = lens _caaMimeType (\ s a -> s{_caaMimeType = a})
+
+-- | Offset top unit for an asset. This is a read-only field if the asset
+-- displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following
+-- creative types: all RICH_MEDIA.
+caaPositionTopUnit :: Lens' CreativeAsset (Maybe CreativeAssetPositionTopUnit)
+caaPositionTopUnit
+  = lens _caaPositionTopUnit
+      (\ s a -> s{_caaPositionTopUnit = a})
+
+-- | Offset left unit for an asset. This is a read-only field. Applicable to
+-- the following creative types: all RICH_MEDIA.
+caaPositionLeftUnit :: Lens' CreativeAsset (Maybe CreativeAssetPositionLeftUnit)
+caaPositionLeftUnit
+  = lens _caaPositionLeftUnit
+      (\ s a -> s{_caaPositionLeftUnit = a})
+
+-- | Possible alignments for an asset. This is a read-only field. Applicable
+-- to the following creative types: RICH_MEDIA_MULTI_FLOATING.
+caaAlignment :: Lens' CreativeAsset (Maybe CreativeAssetAlignment)
+caaAlignment
+  = lens _caaAlignment (\ s a -> s{_caaAlignment = a})
+
+-- | Detected expanded dimension for video asset. This is a read-only field.
+-- Applicable to the following creative types: INSTREAM_VIDEO and all
+-- VPAID.
+caaExpandedDimension :: Lens' CreativeAsset (Maybe Size)
+caaExpandedDimension
+  = lens _caaExpandedDimension
+      (\ s a -> s{_caaExpandedDimension = a})
+
+-- | File name of zip file. This is a read-only field. Applicable to the
+-- following creative types: HTML5_BANNER.
+caaZipFilename :: Lens' CreativeAsset (Maybe Text)
+caaZipFilename
+  = lens _caaZipFilename
+      (\ s a -> s{_caaZipFilename = a})
+
+-- | Whether ActionScript3 is enabled for the flash asset. This is a
+-- read-only field. Applicable to the following creative types:
+-- FLASH_INPAGE and ENHANCED_BANNER.
+caaActionScript3 :: Lens' CreativeAsset (Maybe Bool)
+caaActionScript3
+  = lens _caaActionScript3
+      (\ s a -> s{_caaActionScript3 = a})
+
+-- | Type of rich media asset. This is a read-only field. Applicable to the
+-- following creative types: all RICH_MEDIA.
+caaDisplayType :: Lens' CreativeAsset (Maybe CreativeAssetDisplayType)
+caaDisplayType
+  = lens _caaDisplayType
+      (\ s a -> s{_caaDisplayType = a})
+
+-- | Rich media child asset type. This is a read-only field. Applicable to
+-- the following creative types: all VPAID.
+caaChildAssetType :: Lens' CreativeAsset (Maybe CreativeAssetChildAssetType)
+caaChildAssetType
+  = lens _caaChildAssetType
+      (\ s a -> s{_caaChildAssetType = a})
+
+-- | Size of an asset when collapsed. This is a read-only field. Applicable
+-- to the following creative types: all RICH_MEDIA and all VPAID.
+-- Additionally, applicable to assets whose displayType is
+-- ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+caaCollapsedSize :: Lens' CreativeAsset (Maybe Size)
+caaCollapsedSize
+  = lens _caaCollapsedSize
+      (\ s a -> s{_caaCollapsedSize = a})
+
+-- | Numeric ID of this creative asset. This is a required field and should
+-- not be modified. Applicable to all but the following creative types: all
+-- REDIRECT and TRACKING_TEXT.
+caaId :: Lens' CreativeAsset (Maybe Int64)
+caaId
+  = lens _caaId (\ s a -> s{_caaId = a}) .
+      mapping _Coerce
+
+-- | Detected bit-rate for video asset. This is a read-only field. Applicable
+-- to the following creative types: INSTREAM_VIDEO and all VPAID.
+caaBitRate :: Lens' CreativeAsset (Maybe Int32)
+caaBitRate
+  = lens _caaBitRate (\ s a -> s{_caaBitRate = a}) .
+      mapping _Coerce
+
+-- | Custom start time in seconds for making the asset visible. Applicable to
+-- the following creative types: all RICH_MEDIA.
+caaCustomStartTimeValue :: Lens' CreativeAsset (Maybe Int32)
+caaCustomStartTimeValue
+  = lens _caaCustomStartTimeValue
+      (\ s a -> s{_caaCustomStartTimeValue = a})
+      . mapping _Coerce
+
+-- | Initial wait time type before making the asset visible. Applicable to
+-- the following creative types: all RICH_MEDIA.
+caaStartTimeType :: Lens' CreativeAsset (Maybe CreativeAssetStartTimeType)
+caaStartTimeType
+  = lens _caaStartTimeType
+      (\ s a -> s{_caaStartTimeType = a})
+
+-- | Duration in seconds for which an asset will be displayed. Applicable to
+-- the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
+caaDuration :: Lens' CreativeAsset (Maybe Int32)
+caaDuration
+  = lens _caaDuration (\ s a -> s{_caaDuration = a}) .
+      mapping _Coerce
+
+-- | Artwork type of rich media creative. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA.
+caaArtworkType :: Lens' CreativeAsset (Maybe CreativeAssetArtworkType)
+caaArtworkType
+  = lens _caaArtworkType
+      (\ s a -> s{_caaArtworkType = a})
+
+-- | Whether to hide Flash objects flag for an asset. Applicable to the
+-- following creative types: all RICH_MEDIA.
+caaHideFlashObjects :: Lens' CreativeAsset (Maybe Bool)
+caaHideFlashObjects
+  = lens _caaHideFlashObjects
+      (\ s a -> s{_caaHideFlashObjects = a})
+
+-- | List of feature dependencies for the creative asset that are detected by
+-- DCM. Feature dependencies are features that a browser must be able to
+-- support in order to render your HTML5 creative correctly. This is a
+-- read-only, auto-generated field. Applicable to the following creative
+-- types: ENHANCED_BANNER and HTML5_BANNER.
+caaDetectedFeatures :: Lens' CreativeAsset [CreativeAssetDetectedFeaturesItem]
+caaDetectedFeatures
+  = lens _caaDetectedFeatures
+      (\ s a -> s{_caaDetectedFeatures = a})
+      . _Default
+      . _Coerce
+
+-- | Exit event configured for the backup image. Applicable to the following
+-- creative types: all RICH_MEDIA.
+caaBackupImageExit :: Lens' CreativeAsset (Maybe CreativeCustomEvent)
+caaBackupImageExit
+  = lens _caaBackupImageExit
+      (\ s a -> s{_caaBackupImageExit = a})
+
+-- | Offset position for an asset. Applicable to the following creative
+-- types: all RICH_MEDIA.
+caaPosition :: Lens' CreativeAsset (Maybe OffSetPosition)
+caaPosition
+  = lens _caaPosition (\ s a -> s{_caaPosition = a})
+
+-- | Whether the asset is horizontally locked. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA.
+caaHorizontallyLocked :: Lens' CreativeAsset (Maybe Bool)
+caaHorizontallyLocked
+  = lens _caaHorizontallyLocked
+      (\ s a -> s{_caaHorizontallyLocked = a})
+
+instance FromJSON CreativeAsset where
+        parseJSON
+          = withObject "CreativeAsset"
+              (\ o ->
+                 CreativeAsset <$>
+                   (o .:? "zIndex") <*> (o .:? "pushdown") <*>
+                     (o .:? "videoDuration")
+                     <*> (o .:? "originalBackup")
+                     <*> (o .:? "windowMode")
+                     <*> (o .:? "flashVersion")
+                     <*> (o .:? "pushdownDuration")
+                     <*> (o .:? "size")
+                     <*> (o .:? "verticallyLocked")
+                     <*> (o .:? "offset")
+                     <*> (o .:? "streamingServingUrl")
+                     <*> (o .:? "zipFilesize")
+                     <*> (o .:? "transparency")
+                     <*> (o .:? "hideSelectionBoxes")
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "fileSize")
+                     <*> (o .:? "assetIdentifier")
+                     <*> (o .:? "durationType")
+                     <*> (o .:? "progressiveServingUrl")
+                     <*> (o .:? "active")
+                     <*> (o .:? "role")
+                     <*> (o .:? "mimeType")
+                     <*> (o .:? "positionTopUnit")
+                     <*> (o .:? "positionLeftUnit")
+                     <*> (o .:? "alignment")
+                     <*> (o .:? "expandedDimension")
+                     <*> (o .:? "zipFilename")
+                     <*> (o .:? "actionScript3")
+                     <*> (o .:? "displayType")
+                     <*> (o .:? "childAssetType")
+                     <*> (o .:? "collapsedSize")
+                     <*> (o .:? "id")
+                     <*> (o .:? "bitRate")
+                     <*> (o .:? "customStartTimeValue")
+                     <*> (o .:? "startTimeType")
+                     <*> (o .:? "duration")
+                     <*> (o .:? "artworkType")
+                     <*> (o .:? "hideFlashObjects")
+                     <*> (o .:? "detectedFeatures" .!= mempty)
+                     <*> (o .:? "backupImageExit")
+                     <*> (o .:? "position")
+                     <*> (o .:? "horizontallyLocked"))
+
+instance ToJSON CreativeAsset where
+        toJSON CreativeAsset{..}
+          = object
+              (catMaybes
+                 [("zIndex" .=) <$> _caaZIndex,
+                  ("pushdown" .=) <$> _caaPushdown,
+                  ("videoDuration" .=) <$> _caaVideoDuration,
+                  ("originalBackup" .=) <$> _caaOriginalBackup,
+                  ("windowMode" .=) <$> _caaWindowMode,
+                  ("flashVersion" .=) <$> _caaFlashVersion,
+                  ("pushdownDuration" .=) <$> _caaPushdownDuration,
+                  ("size" .=) <$> _caaSize,
+                  ("verticallyLocked" .=) <$> _caaVerticallyLocked,
+                  ("offset" .=) <$> _caaOffSet,
+                  ("streamingServingUrl" .=) <$>
+                    _caaStreamingServingURL,
+                  ("zipFilesize" .=) <$> _caaZipFilesize,
+                  ("transparency" .=) <$> _caaTransparency,
+                  ("hideSelectionBoxes" .=) <$> _caaHideSelectionBoxes,
+                  ("sslCompliant" .=) <$> _caaSSLCompliant,
+                  ("fileSize" .=) <$> _caaFileSize,
+                  ("assetIdentifier" .=) <$> _caaAssetIdentifier,
+                  ("durationType" .=) <$> _caaDurationType,
+                  ("progressiveServingUrl" .=) <$>
+                    _caaProgressiveServingURL,
+                  ("active" .=) <$> _caaActive,
+                  ("role" .=) <$> _caaRole,
+                  ("mimeType" .=) <$> _caaMimeType,
+                  ("positionTopUnit" .=) <$> _caaPositionTopUnit,
+                  ("positionLeftUnit" .=) <$> _caaPositionLeftUnit,
+                  ("alignment" .=) <$> _caaAlignment,
+                  ("expandedDimension" .=) <$> _caaExpandedDimension,
+                  ("zipFilename" .=) <$> _caaZipFilename,
+                  ("actionScript3" .=) <$> _caaActionScript3,
+                  ("displayType" .=) <$> _caaDisplayType,
+                  ("childAssetType" .=) <$> _caaChildAssetType,
+                  ("collapsedSize" .=) <$> _caaCollapsedSize,
+                  ("id" .=) <$> _caaId, ("bitRate" .=) <$> _caaBitRate,
+                  ("customStartTimeValue" .=) <$>
+                    _caaCustomStartTimeValue,
+                  ("startTimeType" .=) <$> _caaStartTimeType,
+                  ("duration" .=) <$> _caaDuration,
+                  ("artworkType" .=) <$> _caaArtworkType,
+                  ("hideFlashObjects" .=) <$> _caaHideFlashObjects,
+                  ("detectedFeatures" .=) <$> _caaDetectedFeatures,
+                  ("backupImageExit" .=) <$> _caaBackupImageExit,
+                  ("position" .=) <$> _caaPosition,
+                  ("horizontallyLocked" .=) <$>
+                    _caaHorizontallyLocked])
+
+-- | Placement List Response
+--
+-- /See:/ 'placementsListResponse' smart constructor.
+data PlacementsListResponse = PlacementsListResponse
+    { _plaNextPageToken :: !(Maybe Text)
+    , _plaKind          :: !Text
+    , _plaPlacements    :: !(Maybe [Placement])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plaNextPageToken'
+--
+-- * 'plaKind'
+--
+-- * 'plaPlacements'
+placementsListResponse
+    :: PlacementsListResponse
+placementsListResponse =
+    PlacementsListResponse
+    { _plaNextPageToken = Nothing
+    , _plaKind = "dfareporting#placementsListResponse"
+    , _plaPlacements = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+plaNextPageToken :: Lens' PlacementsListResponse (Maybe Text)
+plaNextPageToken
+  = lens _plaNextPageToken
+      (\ s a -> s{_plaNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementsListResponse\".
+plaKind :: Lens' PlacementsListResponse Text
+plaKind = lens _plaKind (\ s a -> s{_plaKind = a})
+
+-- | Placement collection.
+plaPlacements :: Lens' PlacementsListResponse [Placement]
+plaPlacements
+  = lens _plaPlacements
+      (\ s a -> s{_plaPlacements = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON PlacementsListResponse where
+        parseJSON
+          = withObject "PlacementsListResponse"
+              (\ o ->
+                 PlacementsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#placementsListResponse")
+                     <*> (o .:? "placements" .!= mempty))
+
+instance ToJSON PlacementsListResponse where
+        toJSON PlacementsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _plaNextPageToken,
+                  Just ("kind" .= _plaKind),
+                  ("placements" .=) <$> _plaPlacements])
+
+-- | The report\'s schedule. Can only be set if the report\'s \'dateRange\'
+-- is a relative date range and the relative date range is not \"TODAY\".
+--
+-- /See:/ 'reportSchedule' smart constructor.
+data ReportSchedule = ReportSchedule
+    { _rsEvery             :: !(Maybe (Textual Int32))
+    , _rsActive            :: !(Maybe Bool)
+    , _rsRepeats           :: !(Maybe Text)
+    , _rsStartDate         :: !(Maybe Date')
+    , _rsExpirationDate    :: !(Maybe Date')
+    , _rsRunsOnDayOfMonth  :: !(Maybe ReportScheduleRunsOnDayOfMonth)
+    , _rsRepeatsOnWeekDays :: !(Maybe [ReportScheduleRepeatsOnWeekDaysItem])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportSchedule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rsEvery'
+--
+-- * 'rsActive'
+--
+-- * 'rsRepeats'
+--
+-- * 'rsStartDate'
+--
+-- * 'rsExpirationDate'
+--
+-- * 'rsRunsOnDayOfMonth'
+--
+-- * 'rsRepeatsOnWeekDays'
+reportSchedule
+    :: ReportSchedule
+reportSchedule =
+    ReportSchedule
+    { _rsEvery = Nothing
+    , _rsActive = Nothing
+    , _rsRepeats = Nothing
+    , _rsStartDate = Nothing
+    , _rsExpirationDate = Nothing
+    , _rsRunsOnDayOfMonth = Nothing
+    , _rsRepeatsOnWeekDays = Nothing
+    }
+
+-- | Defines every how many days, weeks or months the report should be run.
+-- Needs to be set when \"repeats\" is either \"DAILY\", \"WEEKLY\" or
+-- \"MONTHLY\".
+rsEvery :: Lens' ReportSchedule (Maybe Int32)
+rsEvery
+  = lens _rsEvery (\ s a -> s{_rsEvery = a}) .
+      mapping _Coerce
+
+-- | Whether the schedule is active or not. Must be set to either true or
+-- false.
+rsActive :: Lens' ReportSchedule (Maybe Bool)
+rsActive = lens _rsActive (\ s a -> s{_rsActive = a})
+
+-- | The interval for which the report is repeated. Note: - \"DAILY\" also
+-- requires field \"every\" to be set. - \"WEEKLY\" also requires fields
+-- \"every\" and \"repeatsOnWeekDays\" to be set. - \"MONTHLY\" also
+-- requires fields \"every\" and \"runsOnDayOfMonth\" to be set.
+rsRepeats :: Lens' ReportSchedule (Maybe Text)
+rsRepeats
+  = lens _rsRepeats (\ s a -> s{_rsRepeats = a})
+
+-- | Start date of date range for which scheduled reports should be run.
+rsStartDate :: Lens' ReportSchedule (Maybe Day)
+rsStartDate
+  = lens _rsStartDate (\ s a -> s{_rsStartDate = a}) .
+      mapping _Date
+
+-- | The expiration date when the scheduled report stops running.
+rsExpirationDate :: Lens' ReportSchedule (Maybe Day)
+rsExpirationDate
+  = lens _rsExpirationDate
+      (\ s a -> s{_rsExpirationDate = a})
+      . mapping _Date
+
+-- | Enum to define for \"MONTHLY\" scheduled reports whether reports should
+-- be repeated on the same day of the month as \"startDate\" or the same
+-- day of the week of the month. Example: If \'startDate\' is Monday, April
+-- 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on
+-- the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent
+-- reports on the first Monday of the month.
+rsRunsOnDayOfMonth :: Lens' ReportSchedule (Maybe ReportScheduleRunsOnDayOfMonth)
+rsRunsOnDayOfMonth
+  = lens _rsRunsOnDayOfMonth
+      (\ s a -> s{_rsRunsOnDayOfMonth = a})
+
+-- | List of week days \"WEEKLY\" on which scheduled reports should run.
+rsRepeatsOnWeekDays :: Lens' ReportSchedule [ReportScheduleRepeatsOnWeekDaysItem]
+rsRepeatsOnWeekDays
+  = lens _rsRepeatsOnWeekDays
+      (\ s a -> s{_rsRepeatsOnWeekDays = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportSchedule where
+        parseJSON
+          = withObject "ReportSchedule"
+              (\ o ->
+                 ReportSchedule <$>
+                   (o .:? "every") <*> (o .:? "active") <*>
+                     (o .:? "repeats")
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "expirationDate")
+                     <*> (o .:? "runsOnDayOfMonth")
+                     <*> (o .:? "repeatsOnWeekDays" .!= mempty))
+
+instance ToJSON ReportSchedule where
+        toJSON ReportSchedule{..}
+          = object
+              (catMaybes
+                 [("every" .=) <$> _rsEvery,
+                  ("active" .=) <$> _rsActive,
+                  ("repeats" .=) <$> _rsRepeats,
+                  ("startDate" .=) <$> _rsStartDate,
+                  ("expirationDate" .=) <$> _rsExpirationDate,
+                  ("runsOnDayOfMonth" .=) <$> _rsRunsOnDayOfMonth,
+                  ("repeatsOnWeekDays" .=) <$> _rsRepeatsOnWeekDays])
+
+-- | The report criteria for a report of type \"PATH_TO_CONVERSION\".
+--
+-- /See:/ 'reportPathToConversionCriteria' smart constructor.
+data ReportPathToConversionCriteria = ReportPathToConversionCriteria
+    { _rptccReportProperties          :: !(Maybe ReportPathToConversionCriteriaReportProperties)
+    , _rptccMetricNames               :: !(Maybe [Text])
+    , _rptccCustomRichMediaEvents     :: !(Maybe [DimensionValue])
+    , _rptccDateRange                 :: !(Maybe DateRange)
+    , _rptccConversionDimensions      :: !(Maybe [SortedDimension])
+    , _rptccCustomFloodlightVariables :: !(Maybe [SortedDimension])
+    , _rptccFloodlightConfigId        :: !(Maybe DimensionValue)
+    , _rptccActivityFilters           :: !(Maybe [DimensionValue])
+    , _rptccPerInteractionDimensions  :: !(Maybe [SortedDimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportPathToConversionCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rptccReportProperties'
+--
+-- * 'rptccMetricNames'
+--
+-- * 'rptccCustomRichMediaEvents'
+--
+-- * 'rptccDateRange'
+--
+-- * 'rptccConversionDimensions'
+--
+-- * 'rptccCustomFloodlightVariables'
+--
+-- * 'rptccFloodlightConfigId'
+--
+-- * 'rptccActivityFilters'
+--
+-- * 'rptccPerInteractionDimensions'
+reportPathToConversionCriteria
+    :: ReportPathToConversionCriteria
+reportPathToConversionCriteria =
+    ReportPathToConversionCriteria
+    { _rptccReportProperties = Nothing
+    , _rptccMetricNames = Nothing
+    , _rptccCustomRichMediaEvents = Nothing
+    , _rptccDateRange = Nothing
+    , _rptccConversionDimensions = Nothing
+    , _rptccCustomFloodlightVariables = Nothing
+    , _rptccFloodlightConfigId = Nothing
+    , _rptccActivityFilters = Nothing
+    , _rptccPerInteractionDimensions = Nothing
+    }
+
+-- | The properties of the report.
+rptccReportProperties :: Lens' ReportPathToConversionCriteria (Maybe ReportPathToConversionCriteriaReportProperties)
+rptccReportProperties
+  = lens _rptccReportProperties
+      (\ s a -> s{_rptccReportProperties = a})
+
+-- | The list of names of metrics the report should include.
+rptccMetricNames :: Lens' ReportPathToConversionCriteria [Text]
+rptccMetricNames
+  = lens _rptccMetricNames
+      (\ s a -> s{_rptccMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | The list of custom rich media events to include.
+rptccCustomRichMediaEvents :: Lens' ReportPathToConversionCriteria [DimensionValue]
+rptccCustomRichMediaEvents
+  = lens _rptccCustomRichMediaEvents
+      (\ s a -> s{_rptccCustomRichMediaEvents = a})
+      . _Default
+      . _Coerce
+
+-- | The date range this report should be run for.
+rptccDateRange :: Lens' ReportPathToConversionCriteria (Maybe DateRange)
+rptccDateRange
+  = lens _rptccDateRange
+      (\ s a -> s{_rptccDateRange = a})
+
+-- | The list of conversion dimensions the report should include.
+rptccConversionDimensions :: Lens' ReportPathToConversionCriteria [SortedDimension]
+rptccConversionDimensions
+  = lens _rptccConversionDimensions
+      (\ s a -> s{_rptccConversionDimensions = a})
+      . _Default
+      . _Coerce
+
+-- | The list of custom floodlight variables the report should include.
+rptccCustomFloodlightVariables :: Lens' ReportPathToConversionCriteria [SortedDimension]
+rptccCustomFloodlightVariables
+  = lens _rptccCustomFloodlightVariables
+      (\ s a -> s{_rptccCustomFloodlightVariables = a})
+      . _Default
+      . _Coerce
+
+-- | The floodlight ID for which to show data in this report. All advertisers
+-- associated with that ID will automatically be added. The dimension of
+-- the value needs to be \'dfa:floodlightConfigId\'.
+rptccFloodlightConfigId :: Lens' ReportPathToConversionCriteria (Maybe DimensionValue)
+rptccFloodlightConfigId
+  = lens _rptccFloodlightConfigId
+      (\ s a -> s{_rptccFloodlightConfigId = a})
+
+-- | The list of \'dfa:activity\' values to filter on.
+rptccActivityFilters :: Lens' ReportPathToConversionCriteria [DimensionValue]
+rptccActivityFilters
+  = lens _rptccActivityFilters
+      (\ s a -> s{_rptccActivityFilters = a})
+      . _Default
+      . _Coerce
+
+-- | The list of per interaction dimensions the report should include.
+rptccPerInteractionDimensions :: Lens' ReportPathToConversionCriteria [SortedDimension]
+rptccPerInteractionDimensions
+  = lens _rptccPerInteractionDimensions
+      (\ s a -> s{_rptccPerInteractionDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportPathToConversionCriteria
+         where
+        parseJSON
+          = withObject "ReportPathToConversionCriteria"
+              (\ o ->
+                 ReportPathToConversionCriteria <$>
+                   (o .:? "reportProperties") <*>
+                     (o .:? "metricNames" .!= mempty)
+                     <*> (o .:? "customRichMediaEvents" .!= mempty)
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "conversionDimensions" .!= mempty)
+                     <*> (o .:? "customFloodlightVariables" .!= mempty)
+                     <*> (o .:? "floodlightConfigId")
+                     <*> (o .:? "activityFilters" .!= mempty)
+                     <*> (o .:? "perInteractionDimensions" .!= mempty))
+
+instance ToJSON ReportPathToConversionCriteria where
+        toJSON ReportPathToConversionCriteria{..}
+          = object
+              (catMaybes
+                 [("reportProperties" .=) <$> _rptccReportProperties,
+                  ("metricNames" .=) <$> _rptccMetricNames,
+                  ("customRichMediaEvents" .=) <$>
+                    _rptccCustomRichMediaEvents,
+                  ("dateRange" .=) <$> _rptccDateRange,
+                  ("conversionDimensions" .=) <$>
+                    _rptccConversionDimensions,
+                  ("customFloodlightVariables" .=) <$>
+                    _rptccCustomFloodlightVariables,
+                  ("floodlightConfigId" .=) <$>
+                    _rptccFloodlightConfigId,
+                  ("activityFilters" .=) <$> _rptccActivityFilters,
+                  ("perInteractionDimensions" .=) <$>
+                    _rptccPerInteractionDimensions])
+
+-- | Metro List Response
+--
+-- /See:/ 'metrosListResponse' smart constructor.
+data MetrosListResponse = MetrosListResponse
+    { _mlrKind   :: !Text
+    , _mlrMetros :: !(Maybe [Metro])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MetrosListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mlrKind'
+--
+-- * 'mlrMetros'
+metrosListResponse
+    :: MetrosListResponse
+metrosListResponse =
+    MetrosListResponse
+    { _mlrKind = "dfareporting#metrosListResponse"
+    , _mlrMetros = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#metrosListResponse\".
+mlrKind :: Lens' MetrosListResponse Text
+mlrKind = lens _mlrKind (\ s a -> s{_mlrKind = a})
+
+-- | Metro collection.
+mlrMetros :: Lens' MetrosListResponse [Metro]
+mlrMetros
+  = lens _mlrMetros (\ s a -> s{_mlrMetros = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON MetrosListResponse where
+        parseJSON
+          = withObject "MetrosListResponse"
+              (\ o ->
+                 MetrosListResponse <$>
+                   (o .:? "kind" .!= "dfareporting#metrosListResponse")
+                     <*> (o .:? "metros" .!= mempty))
+
+instance ToJSON MetrosListResponse where
+        toJSON MetrosListResponse{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _mlrKind),
+                  ("metros" .=) <$> _mlrMetros])
+
+-- | Order document List Response
+--
+-- /See:/ 'orderDocumentsListResponse' smart constructor.
+data OrderDocumentsListResponse = OrderDocumentsListResponse
+    { _odlrNextPageToken  :: !(Maybe Text)
+    , _odlrKind           :: !Text
+    , _odlrOrderDocuments :: !(Maybe [OrderDocument])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrderDocumentsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'odlrNextPageToken'
+--
+-- * 'odlrKind'
+--
+-- * 'odlrOrderDocuments'
+orderDocumentsListResponse
+    :: OrderDocumentsListResponse
+orderDocumentsListResponse =
+    OrderDocumentsListResponse
+    { _odlrNextPageToken = Nothing
+    , _odlrKind = "dfareporting#orderDocumentsListResponse"
+    , _odlrOrderDocuments = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+odlrNextPageToken :: Lens' OrderDocumentsListResponse (Maybe Text)
+odlrNextPageToken
+  = lens _odlrNextPageToken
+      (\ s a -> s{_odlrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#orderDocumentsListResponse\".
+odlrKind :: Lens' OrderDocumentsListResponse Text
+odlrKind = lens _odlrKind (\ s a -> s{_odlrKind = a})
+
+-- | Order document collection
+odlrOrderDocuments :: Lens' OrderDocumentsListResponse [OrderDocument]
+odlrOrderDocuments
+  = lens _odlrOrderDocuments
+      (\ s a -> s{_odlrOrderDocuments = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON OrderDocumentsListResponse where
+        parseJSON
+          = withObject "OrderDocumentsListResponse"
+              (\ o ->
+                 OrderDocumentsListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#orderDocumentsListResponse")
+                     <*> (o .:? "orderDocuments" .!= mempty))
+
+instance ToJSON OrderDocumentsListResponse where
+        toJSON OrderDocumentsListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _odlrNextPageToken,
+                  Just ("kind" .= _odlrKind),
+                  ("orderDocuments" .=) <$> _odlrOrderDocuments])
+
+-- | Represents a recipient.
+--
+-- /See:/ 'recipient' smart constructor.
+data Recipient = Recipient
+    { _recEmail        :: !(Maybe Text)
+    , _recKind         :: !Text
+    , _recDeliveryType :: !(Maybe RecipientDeliveryType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Recipient' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'recEmail'
+--
+-- * 'recKind'
+--
+-- * 'recDeliveryType'
+recipient
+    :: Recipient
+recipient =
+    Recipient
+    { _recEmail = Nothing
+    , _recKind = "dfareporting#recipient"
+    , _recDeliveryType = Nothing
+    }
+
+-- | The email address of the recipient.
+recEmail :: Lens' Recipient (Maybe Text)
+recEmail = lens _recEmail (\ s a -> s{_recEmail = a})
+
+-- | The kind of resource this is, in this case dfareporting#recipient.
+recKind :: Lens' Recipient Text
+recKind = lens _recKind (\ s a -> s{_recKind = a})
+
+-- | The delivery type for the recipient.
+recDeliveryType :: Lens' Recipient (Maybe RecipientDeliveryType)
+recDeliveryType
+  = lens _recDeliveryType
+      (\ s a -> s{_recDeliveryType = a})
+
+instance FromJSON Recipient where
+        parseJSON
+          = withObject "Recipient"
+              (\ o ->
+                 Recipient <$>
+                   (o .:? "email") <*>
+                     (o .:? "kind" .!= "dfareporting#recipient")
+                     <*> (o .:? "deliveryType"))
+
+instance ToJSON Recipient where
+        toJSON Recipient{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _recEmail,
+                  Just ("kind" .= _recKind),
+                  ("deliveryType" .=) <$> _recDeliveryType])
+
+-- | Contains properties of a site.
+--
+-- /See:/ 'site' smart constructor.
+data Site = Site
+    { _ssKind                          :: !Text
+    , _ssKeyName                       :: !(Maybe Text)
+    , _ssSiteContacts                  :: !(Maybe [SiteContact])
+    , _ssSiteSettings                  :: !(Maybe SiteSettings)
+    , _ssIdDimensionValue              :: !(Maybe DimensionValue)
+    , _ssDirectorySiteIdDimensionValue :: !(Maybe DimensionValue)
+    , _ssAccountId                     :: !(Maybe (Textual Int64))
+    , _ssName                          :: !(Maybe Text)
+    , _ssDirectorySiteId               :: !(Maybe (Textual Int64))
+    , _ssId                            :: !(Maybe (Textual Int64))
+    , _ssSubAccountId                  :: !(Maybe (Textual Int64))
+    , _ssApproved                      :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Site' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssKind'
+--
+-- * 'ssKeyName'
+--
+-- * 'ssSiteContacts'
+--
+-- * 'ssSiteSettings'
+--
+-- * 'ssIdDimensionValue'
+--
+-- * 'ssDirectorySiteIdDimensionValue'
+--
+-- * 'ssAccountId'
+--
+-- * 'ssName'
+--
+-- * 'ssDirectorySiteId'
+--
+-- * 'ssId'
+--
+-- * 'ssSubAccountId'
+--
+-- * 'ssApproved'
+site
+    :: Site
+site =
+    Site
+    { _ssKind = "dfareporting#site"
+    , _ssKeyName = Nothing
+    , _ssSiteContacts = Nothing
+    , _ssSiteSettings = Nothing
+    , _ssIdDimensionValue = Nothing
+    , _ssDirectorySiteIdDimensionValue = Nothing
+    , _ssAccountId = Nothing
+    , _ssName = Nothing
+    , _ssDirectorySiteId = Nothing
+    , _ssId = Nothing
+    , _ssSubAccountId = Nothing
+    , _ssApproved = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#site\".
+ssKind :: Lens' Site Text
+ssKind = lens _ssKind (\ s a -> s{_ssKind = a})
+
+-- | Key name of this site. This is a read-only, auto-generated field.
+ssKeyName :: Lens' Site (Maybe Text)
+ssKeyName
+  = lens _ssKeyName (\ s a -> s{_ssKeyName = a})
+
+-- | Site contacts.
+ssSiteContacts :: Lens' Site [SiteContact]
+ssSiteContacts
+  = lens _ssSiteContacts
+      (\ s a -> s{_ssSiteContacts = a})
+      . _Default
+      . _Coerce
+
+-- | Site-wide settings.
+ssSiteSettings :: Lens' Site (Maybe SiteSettings)
+ssSiteSettings
+  = lens _ssSiteSettings
+      (\ s a -> s{_ssSiteSettings = a})
+
+-- | Dimension value for the ID of this site. This is a read-only,
+-- auto-generated field.
+ssIdDimensionValue :: Lens' Site (Maybe DimensionValue)
+ssIdDimensionValue
+  = lens _ssIdDimensionValue
+      (\ s a -> s{_ssIdDimensionValue = a})
+
+-- | Dimension value for the ID of the directory site. This is a read-only,
+-- auto-generated field.
+ssDirectorySiteIdDimensionValue :: Lens' Site (Maybe DimensionValue)
+ssDirectorySiteIdDimensionValue
+  = lens _ssDirectorySiteIdDimensionValue
+      (\ s a -> s{_ssDirectorySiteIdDimensionValue = a})
+
+-- | Account ID of this site. This is a read-only field that can be left
+-- blank.
+ssAccountId :: Lens' Site (Maybe Int64)
+ssAccountId
+  = lens _ssAccountId (\ s a -> s{_ssAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this site.This is a required field. Must be less than 128
+-- characters long. If this site is under a subaccount, the name must be
+-- unique among sites of the same subaccount. Otherwise, this site is a
+-- top-level site, and the name must be unique among top-level sites of the
+-- same account.
+ssName :: Lens' Site (Maybe Text)
+ssName = lens _ssName (\ s a -> s{_ssName = a})
+
+-- | Directory site associated with this site. This is a required field that
+-- is read-only after insertion.
+ssDirectorySiteId :: Lens' Site (Maybe Int64)
+ssDirectorySiteId
+  = lens _ssDirectorySiteId
+      (\ s a -> s{_ssDirectorySiteId = a})
+      . mapping _Coerce
+
+-- | ID of this site. This is a read-only, auto-generated field.
+ssId :: Lens' Site (Maybe Int64)
+ssId
+  = lens _ssId (\ s a -> s{_ssId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this site. This is a read-only field that can be left
+-- blank.
+ssSubAccountId :: Lens' Site (Maybe Int64)
+ssSubAccountId
+  = lens _ssSubAccountId
+      (\ s a -> s{_ssSubAccountId = a})
+      . mapping _Coerce
+
+-- | Whether this site is approved.
+ssApproved :: Lens' Site (Maybe Bool)
+ssApproved
+  = lens _ssApproved (\ s a -> s{_ssApproved = a})
+
+instance FromJSON Site where
+        parseJSON
+          = withObject "Site"
+              (\ o ->
+                 Site <$>
+                   (o .:? "kind" .!= "dfareporting#site") <*>
+                     (o .:? "keyName")
+                     <*> (o .:? "siteContacts" .!= mempty)
+                     <*> (o .:? "siteSettings")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "directorySiteIdDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "directorySiteId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "approved"))
+
+instance ToJSON Site where
+        toJSON Site{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ssKind),
+                  ("keyName" .=) <$> _ssKeyName,
+                  ("siteContacts" .=) <$> _ssSiteContacts,
+                  ("siteSettings" .=) <$> _ssSiteSettings,
+                  ("idDimensionValue" .=) <$> _ssIdDimensionValue,
+                  ("directorySiteIdDimensionValue" .=) <$>
+                    _ssDirectorySiteIdDimensionValue,
+                  ("accountId" .=) <$> _ssAccountId,
+                  ("name" .=) <$> _ssName,
+                  ("directorySiteId" .=) <$> _ssDirectorySiteId,
+                  ("id" .=) <$> _ssId,
+                  ("subaccountId" .=) <$> _ssSubAccountId,
+                  ("approved" .=) <$> _ssApproved])
+
+-- | User Defined Variable configuration.
+--
+-- /See:/ 'userDefinedVariableConfiguration' smart constructor.
+data UserDefinedVariableConfiguration = UserDefinedVariableConfiguration
+    { _udvcReportName   :: !(Maybe Text)
+    , _udvcDataType     :: !(Maybe UserDefinedVariableConfigurationDataType)
+    , _udvcVariableType :: !(Maybe UserDefinedVariableConfigurationVariableType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserDefinedVariableConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'udvcReportName'
+--
+-- * 'udvcDataType'
+--
+-- * 'udvcVariableType'
+userDefinedVariableConfiguration
+    :: UserDefinedVariableConfiguration
+userDefinedVariableConfiguration =
+    UserDefinedVariableConfiguration
+    { _udvcReportName = Nothing
+    , _udvcDataType = Nothing
+    , _udvcVariableType = Nothing
+    }
+
+-- | User-friendly name for the variable which will appear in reports. This
+-- is a required field, must be less than 64 characters long, and cannot
+-- contain the following characters: \"\"\<>\".
+udvcReportName :: Lens' UserDefinedVariableConfiguration (Maybe Text)
+udvcReportName
+  = lens _udvcReportName
+      (\ s a -> s{_udvcReportName = a})
+
+-- | Data type for the variable. This is a required field.
+udvcDataType :: Lens' UserDefinedVariableConfiguration (Maybe UserDefinedVariableConfigurationDataType)
+udvcDataType
+  = lens _udvcDataType (\ s a -> s{_udvcDataType = a})
+
+-- | Variable name in the tag. This is a required field.
+udvcVariableType :: Lens' UserDefinedVariableConfiguration (Maybe UserDefinedVariableConfigurationVariableType)
+udvcVariableType
+  = lens _udvcVariableType
+      (\ s a -> s{_udvcVariableType = a})
+
+instance FromJSON UserDefinedVariableConfiguration
+         where
+        parseJSON
+          = withObject "UserDefinedVariableConfiguration"
+              (\ o ->
+                 UserDefinedVariableConfiguration <$>
+                   (o .:? "reportName") <*> (o .:? "dataType") <*>
+                     (o .:? "variableType"))
+
+instance ToJSON UserDefinedVariableConfiguration
+         where
+        toJSON UserDefinedVariableConfiguration{..}
+          = object
+              (catMaybes
+                 [("reportName" .=) <$> _udvcReportName,
+                  ("dataType" .=) <$> _udvcDataType,
+                  ("variableType" .=) <$> _udvcVariableType])
+
+-- | The report criteria for a report of type \"CROSS_DIMENSION_REACH\".
+--
+-- /See:/ 'reportCrossDimensionReachCriteria' smart constructor.
+data ReportCrossDimensionReachCriteria = ReportCrossDimensionReachCriteria
+    { _rcdrcPivoted            :: !(Maybe Bool)
+    , _rcdrcBreakdown          :: !(Maybe [SortedDimension])
+    , _rcdrcDimension          :: !(Maybe ReportCrossDimensionReachCriteriaDimension)
+    , _rcdrcMetricNames        :: !(Maybe [Text])
+    , _rcdrcDimensionFilters   :: !(Maybe [DimensionValue])
+    , _rcdrcDateRange          :: !(Maybe DateRange)
+    , _rcdrcOverlapMetricNames :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportCrossDimensionReachCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcdrcPivoted'
+--
+-- * 'rcdrcBreakdown'
+--
+-- * 'rcdrcDimension'
+--
+-- * 'rcdrcMetricNames'
+--
+-- * 'rcdrcDimensionFilters'
+--
+-- * 'rcdrcDateRange'
+--
+-- * 'rcdrcOverlapMetricNames'
+reportCrossDimensionReachCriteria
+    :: ReportCrossDimensionReachCriteria
+reportCrossDimensionReachCriteria =
+    ReportCrossDimensionReachCriteria
+    { _rcdrcPivoted = Nothing
+    , _rcdrcBreakdown = Nothing
+    , _rcdrcDimension = Nothing
+    , _rcdrcMetricNames = Nothing
+    , _rcdrcDimensionFilters = Nothing
+    , _rcdrcDateRange = Nothing
+    , _rcdrcOverlapMetricNames = Nothing
+    }
+
+-- | Whether the report is pivoted or not. Defaults to true.
+rcdrcPivoted :: Lens' ReportCrossDimensionReachCriteria (Maybe Bool)
+rcdrcPivoted
+  = lens _rcdrcPivoted (\ s a -> s{_rcdrcPivoted = a})
+
+-- | The list of dimensions the report should include.
+rcdrcBreakdown :: Lens' ReportCrossDimensionReachCriteria [SortedDimension]
+rcdrcBreakdown
+  = lens _rcdrcBreakdown
+      (\ s a -> s{_rcdrcBreakdown = a})
+      . _Default
+      . _Coerce
+
+-- | The dimension option.
+rcdrcDimension :: Lens' ReportCrossDimensionReachCriteria (Maybe ReportCrossDimensionReachCriteriaDimension)
+rcdrcDimension
+  = lens _rcdrcDimension
+      (\ s a -> s{_rcdrcDimension = a})
+
+-- | The list of names of metrics the report should include.
+rcdrcMetricNames :: Lens' ReportCrossDimensionReachCriteria [Text]
+rcdrcMetricNames
+  = lens _rcdrcMetricNames
+      (\ s a -> s{_rcdrcMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | The list of filters on which dimensions are filtered.
+rcdrcDimensionFilters :: Lens' ReportCrossDimensionReachCriteria [DimensionValue]
+rcdrcDimensionFilters
+  = lens _rcdrcDimensionFilters
+      (\ s a -> s{_rcdrcDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | The date range this report should be run for.
+rcdrcDateRange :: Lens' ReportCrossDimensionReachCriteria (Maybe DateRange)
+rcdrcDateRange
+  = lens _rcdrcDateRange
+      (\ s a -> s{_rcdrcDateRange = a})
+
+-- | The list of names of overlap metrics the report should include.
+rcdrcOverlapMetricNames :: Lens' ReportCrossDimensionReachCriteria [Text]
+rcdrcOverlapMetricNames
+  = lens _rcdrcOverlapMetricNames
+      (\ s a -> s{_rcdrcOverlapMetricNames = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportCrossDimensionReachCriteria
+         where
+        parseJSON
+          = withObject "ReportCrossDimensionReachCriteria"
+              (\ o ->
+                 ReportCrossDimensionReachCriteria <$>
+                   (o .:? "pivoted") <*> (o .:? "breakdown" .!= mempty)
+                     <*> (o .:? "dimension")
+                     <*> (o .:? "metricNames" .!= mempty)
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "overlapMetricNames" .!= mempty))
+
+instance ToJSON ReportCrossDimensionReachCriteria
+         where
+        toJSON ReportCrossDimensionReachCriteria{..}
+          = object
+              (catMaybes
+                 [("pivoted" .=) <$> _rcdrcPivoted,
+                  ("breakdown" .=) <$> _rcdrcBreakdown,
+                  ("dimension" .=) <$> _rcdrcDimension,
+                  ("metricNames" .=) <$> _rcdrcMetricNames,
+                  ("dimensionFilters" .=) <$> _rcdrcDimensionFilters,
+                  ("dateRange" .=) <$> _rcdrcDateRange,
+                  ("overlapMetricNames" .=) <$>
+                    _rcdrcOverlapMetricNames])
+
+-- | The URLs where the completed report file can be downloaded.
+--
+-- /See:/ 'fileURLs' smart constructor.
+data FileURLs = FileURLs
+    { _fuBrowserURL :: !(Maybe Text)
+    , _fuAPIURL     :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FileURLs' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fuBrowserURL'
+--
+-- * 'fuAPIURL'
+fileURLs
+    :: FileURLs
+fileURLs =
+    FileURLs
+    { _fuBrowserURL = Nothing
+    , _fuAPIURL = Nothing
+    }
+
+-- | The URL for downloading the report data through a browser.
+fuBrowserURL :: Lens' FileURLs (Maybe Text)
+fuBrowserURL
+  = lens _fuBrowserURL (\ s a -> s{_fuBrowserURL = a})
+
+-- | The URL for downloading the report data through the API.
+fuAPIURL :: Lens' FileURLs (Maybe Text)
+fuAPIURL = lens _fuAPIURL (\ s a -> s{_fuAPIURL = a})
+
+instance FromJSON FileURLs where
+        parseJSON
+          = withObject "FileURLs"
+              (\ o ->
+                 FileURLs <$>
+                   (o .:? "browserUrl") <*> (o .:? "apiUrl"))
+
+instance ToJSON FileURLs where
+        toJSON FileURLs{..}
+          = object
+              (catMaybes
+                 [("browserUrl" .=) <$> _fuBrowserURL,
+                  ("apiUrl" .=) <$> _fuAPIURL])
+
+-- | Campaign Creative Association List Response
+--
+-- /See:/ 'campaignCreativeAssociationsListResponse' smart constructor.
+data CampaignCreativeAssociationsListResponse = CampaignCreativeAssociationsListResponse
+    { _ccalrCampaignCreativeAssociations :: !(Maybe [CampaignCreativeAssociation])
+    , _ccalrNextPageToken                :: !(Maybe Text)
+    , _ccalrKind                         :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignCreativeAssociationsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccalrCampaignCreativeAssociations'
+--
+-- * 'ccalrNextPageToken'
+--
+-- * 'ccalrKind'
+campaignCreativeAssociationsListResponse
+    :: CampaignCreativeAssociationsListResponse
+campaignCreativeAssociationsListResponse =
+    CampaignCreativeAssociationsListResponse
+    { _ccalrCampaignCreativeAssociations = Nothing
+    , _ccalrNextPageToken = Nothing
+    , _ccalrKind = "dfareporting#campaignCreativeAssociationsListResponse"
+    }
+
+-- | Campaign creative association collection
+ccalrCampaignCreativeAssociations :: Lens' CampaignCreativeAssociationsListResponse [CampaignCreativeAssociation]
+ccalrCampaignCreativeAssociations
+  = lens _ccalrCampaignCreativeAssociations
+      (\ s a -> s{_ccalrCampaignCreativeAssociations = a})
+      . _Default
+      . _Coerce
+
+-- | Pagination token to be used for the next list operation.
+ccalrNextPageToken :: Lens' CampaignCreativeAssociationsListResponse (Maybe Text)
+ccalrNextPageToken
+  = lens _ccalrNextPageToken
+      (\ s a -> s{_ccalrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#campaignCreativeAssociationsListResponse\".
+ccalrKind :: Lens' CampaignCreativeAssociationsListResponse Text
+ccalrKind
+  = lens _ccalrKind (\ s a -> s{_ccalrKind = a})
+
+instance FromJSON
+         CampaignCreativeAssociationsListResponse where
+        parseJSON
+          = withObject
+              "CampaignCreativeAssociationsListResponse"
+              (\ o ->
+                 CampaignCreativeAssociationsListResponse <$>
+                   (o .:? "campaignCreativeAssociations" .!= mempty) <*>
+                     (o .:? "nextPageToken")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#campaignCreativeAssociationsListResponse"))
+
+instance ToJSON
+         CampaignCreativeAssociationsListResponse where
+        toJSON CampaignCreativeAssociationsListResponse{..}
+          = object
+              (catMaybes
+                 [("campaignCreativeAssociations" .=) <$>
+                    _ccalrCampaignCreativeAssociations,
+                  ("nextPageToken" .=) <$> _ccalrNextPageToken,
+                  Just ("kind" .= _ccalrKind)])
+
+-- | Describes properties of a DoubleClick Planning order.
+--
+-- /See:/ 'order' smart constructor.
+data Order = Order
+    { _oSellerOrderId          :: !(Maybe Text)
+    , _oSellerOrganizationName :: !(Maybe Text)
+    , _oKind                   :: !Text
+    , _oAdvertiserId           :: !(Maybe (Textual Int64))
+    , _oPlanningTermId         :: !(Maybe (Textual Int64))
+    , _oAccountId              :: !(Maybe (Textual Int64))
+    , _oName                   :: !(Maybe Text)
+    , _oSiteNames              :: !(Maybe [Text])
+    , _oLastModifiedInfo       :: !(Maybe LastModifiedInfo)
+    , _oBuyerOrganizationName  :: !(Maybe Text)
+    , _oId                     :: !(Maybe (Textual Int64))
+    , _oBuyerInvoiceId         :: !(Maybe Text)
+    , _oComments               :: !(Maybe Text)
+    , _oProjectId              :: !(Maybe (Textual Int64))
+    , _oSubAccountId           :: !(Maybe (Textual Int64))
+    , _oNotes                  :: !(Maybe Text)
+    , _oContacts               :: !(Maybe [OrderContact])
+    , _oSiteId                 :: !(Maybe [Textual Int64])
+    , _oTermsAndConditions     :: !(Maybe Text)
+    , _oApproverUserProFileIds :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Order' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'oSellerOrderId'
+--
+-- * 'oSellerOrganizationName'
+--
+-- * 'oKind'
+--
+-- * 'oAdvertiserId'
+--
+-- * 'oPlanningTermId'
+--
+-- * 'oAccountId'
+--
+-- * 'oName'
+--
+-- * 'oSiteNames'
+--
+-- * 'oLastModifiedInfo'
+--
+-- * 'oBuyerOrganizationName'
+--
+-- * 'oId'
+--
+-- * 'oBuyerInvoiceId'
+--
+-- * 'oComments'
+--
+-- * 'oProjectId'
+--
+-- * 'oSubAccountId'
+--
+-- * 'oNotes'
+--
+-- * 'oContacts'
+--
+-- * 'oSiteId'
+--
+-- * 'oTermsAndConditions'
+--
+-- * 'oApproverUserProFileIds'
+order
+    :: Order
+order =
+    Order
+    { _oSellerOrderId = Nothing
+    , _oSellerOrganizationName = Nothing
+    , _oKind = "dfareporting#order"
+    , _oAdvertiserId = Nothing
+    , _oPlanningTermId = Nothing
+    , _oAccountId = Nothing
+    , _oName = Nothing
+    , _oSiteNames = Nothing
+    , _oLastModifiedInfo = Nothing
+    , _oBuyerOrganizationName = Nothing
+    , _oId = Nothing
+    , _oBuyerInvoiceId = Nothing
+    , _oComments = Nothing
+    , _oProjectId = Nothing
+    , _oSubAccountId = Nothing
+    , _oNotes = Nothing
+    , _oContacts = Nothing
+    , _oSiteId = Nothing
+    , _oTermsAndConditions = Nothing
+    , _oApproverUserProFileIds = Nothing
+    }
+
+-- | Seller order ID associated with this order.
+oSellerOrderId :: Lens' Order (Maybe Text)
+oSellerOrderId
+  = lens _oSellerOrderId
+      (\ s a -> s{_oSellerOrderId = a})
+
+-- | Name of the seller organization.
+oSellerOrganizationName :: Lens' Order (Maybe Text)
+oSellerOrganizationName
+  = lens _oSellerOrganizationName
+      (\ s a -> s{_oSellerOrganizationName = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#order\".
+oKind :: Lens' Order Text
+oKind = lens _oKind (\ s a -> s{_oKind = a})
+
+-- | Advertiser ID of this order.
+oAdvertiserId :: Lens' Order (Maybe Int64)
+oAdvertiserId
+  = lens _oAdvertiserId
+      (\ s a -> s{_oAdvertiserId = a})
+      . mapping _Coerce
+
+-- | ID of the terms and conditions template used in this order.
+oPlanningTermId :: Lens' Order (Maybe Int64)
+oPlanningTermId
+  = lens _oPlanningTermId
+      (\ s a -> s{_oPlanningTermId = a})
+      . mapping _Coerce
+
+-- | Account ID of this order.
+oAccountId :: Lens' Order (Maybe Int64)
+oAccountId
+  = lens _oAccountId (\ s a -> s{_oAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this order.
+oName :: Lens' Order (Maybe Text)
+oName = lens _oName (\ s a -> s{_oName = a})
+
+-- | Free-form site names this order is associated with.
+oSiteNames :: Lens' Order [Text]
+oSiteNames
+  = lens _oSiteNames (\ s a -> s{_oSiteNames = a}) .
+      _Default
+      . _Coerce
+
+-- | Information about the most recent modification of this order.
+oLastModifiedInfo :: Lens' Order (Maybe LastModifiedInfo)
+oLastModifiedInfo
+  = lens _oLastModifiedInfo
+      (\ s a -> s{_oLastModifiedInfo = a})
+
+-- | Name of the buyer organization.
+oBuyerOrganizationName :: Lens' Order (Maybe Text)
+oBuyerOrganizationName
+  = lens _oBuyerOrganizationName
+      (\ s a -> s{_oBuyerOrganizationName = a})
+
+-- | ID of this order. This is a read-only, auto-generated field.
+oId :: Lens' Order (Maybe Int64)
+oId
+  = lens _oId (\ s a -> s{_oId = a}) . mapping _Coerce
+
+-- | Buyer invoice ID associated with this order.
+oBuyerInvoiceId :: Lens' Order (Maybe Text)
+oBuyerInvoiceId
+  = lens _oBuyerInvoiceId
+      (\ s a -> s{_oBuyerInvoiceId = a})
+
+-- | Comments in this order.
+oComments :: Lens' Order (Maybe Text)
+oComments
+  = lens _oComments (\ s a -> s{_oComments = a})
+
+-- | Project ID of this order.
+oProjectId :: Lens' Order (Maybe Int64)
+oProjectId
+  = lens _oProjectId (\ s a -> s{_oProjectId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this order.
+oSubAccountId :: Lens' Order (Maybe Int64)
+oSubAccountId
+  = lens _oSubAccountId
+      (\ s a -> s{_oSubAccountId = a})
+      . mapping _Coerce
+
+-- | Notes of this order.
+oNotes :: Lens' Order (Maybe Text)
+oNotes = lens _oNotes (\ s a -> s{_oNotes = a})
+
+-- | Contacts for this order.
+oContacts :: Lens' Order [OrderContact]
+oContacts
+  = lens _oContacts (\ s a -> s{_oContacts = a}) .
+      _Default
+      . _Coerce
+
+-- | Site IDs this order is associated with.
+oSiteId :: Lens' Order [Int64]
+oSiteId
+  = lens _oSiteId (\ s a -> s{_oSiteId = a}) . _Default
+      . _Coerce
+
+-- | Terms and conditions of this order.
+oTermsAndConditions :: Lens' Order (Maybe Text)
+oTermsAndConditions
+  = lens _oTermsAndConditions
+      (\ s a -> s{_oTermsAndConditions = a})
+
+-- | IDs for users that have to approve documents created for this order.
+oApproverUserProFileIds :: Lens' Order [Int64]
+oApproverUserProFileIds
+  = lens _oApproverUserProFileIds
+      (\ s a -> s{_oApproverUserProFileIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Order where
+        parseJSON
+          = withObject "Order"
+              (\ o ->
+                 Order <$>
+                   (o .:? "sellerOrderId") <*>
+                     (o .:? "sellerOrganizationName")
+                     <*> (o .:? "kind" .!= "dfareporting#order")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "planningTermId")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "siteNames" .!= mempty)
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "buyerOrganizationName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "buyerInvoiceId")
+                     <*> (o .:? "comments")
+                     <*> (o .:? "projectId")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "notes")
+                     <*> (o .:? "contacts" .!= mempty)
+                     <*> (o .:? "siteId" .!= mempty)
+                     <*> (o .:? "termsAndConditions")
+                     <*> (o .:? "approverUserProfileIds" .!= mempty))
+
+instance ToJSON Order where
+        toJSON Order{..}
+          = object
+              (catMaybes
+                 [("sellerOrderId" .=) <$> _oSellerOrderId,
+                  ("sellerOrganizationName" .=) <$>
+                    _oSellerOrganizationName,
+                  Just ("kind" .= _oKind),
+                  ("advertiserId" .=) <$> _oAdvertiserId,
+                  ("planningTermId" .=) <$> _oPlanningTermId,
+                  ("accountId" .=) <$> _oAccountId,
+                  ("name" .=) <$> _oName,
+                  ("siteNames" .=) <$> _oSiteNames,
+                  ("lastModifiedInfo" .=) <$> _oLastModifiedInfo,
+                  ("buyerOrganizationName" .=) <$>
+                    _oBuyerOrganizationName,
+                  ("id" .=) <$> _oId,
+                  ("buyerInvoiceId" .=) <$> _oBuyerInvoiceId,
+                  ("comments" .=) <$> _oComments,
+                  ("projectId" .=) <$> _oProjectId,
+                  ("subaccountId" .=) <$> _oSubAccountId,
+                  ("notes" .=) <$> _oNotes,
+                  ("contacts" .=) <$> _oContacts,
+                  ("siteId" .=) <$> _oSiteId,
+                  ("termsAndConditions" .=) <$> _oTermsAndConditions,
+                  ("approverUserProfileIds" .=) <$>
+                    _oApproverUserProFileIds])
+
+-- | Creative Asset ID.
+--
+-- /See:/ 'creativeAssetId' smart constructor.
+data CreativeAssetId = CreativeAssetId
+    { _caiName :: !(Maybe Text)
+    , _caiType :: !(Maybe CreativeAssetIdType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeAssetId' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'caiName'
+--
+-- * 'caiType'
+creativeAssetId
+    :: CreativeAssetId
+creativeAssetId =
+    CreativeAssetId
+    { _caiName = Nothing
+    , _caiType = Nothing
+    }
+
+-- | Name of the creative asset. This is a required field while inserting an
+-- asset. After insertion, this assetIdentifier is used to identify the
+-- uploaded asset. Characters in the name must be alphanumeric or one of
+-- the following: \".-_ \". Spaces are allowed.
+caiName :: Lens' CreativeAssetId (Maybe Text)
+caiName = lens _caiName (\ s a -> s{_caiName = a})
+
+-- | Type of asset to upload. This is a required field. IMAGE is solely used
+-- for IMAGE creatives. Other image assets should use HTML_IMAGE.
+caiType :: Lens' CreativeAssetId (Maybe CreativeAssetIdType)
+caiType = lens _caiType (\ s a -> s{_caiType = a})
+
+instance FromJSON CreativeAssetId where
+        parseJSON
+          = withObject "CreativeAssetId"
+              (\ o ->
+                 CreativeAssetId <$>
+                   (o .:? "name") <*> (o .:? "type"))
+
+instance ToJSON CreativeAssetId where
+        toJSON CreativeAssetId{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _caiName, ("type" .=) <$> _caiType])
+
+-- | Frequency Cap.
+--
+-- /See:/ 'frequencyCap' smart constructor.
+data FrequencyCap = FrequencyCap
+    { _fcImpressions :: !(Maybe (Textual Int64))
+    , _fcDuration    :: !(Maybe (Textual Int64))
+    } 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:
+--
+-- * 'fcImpressions'
+--
+-- * 'fcDuration'
+frequencyCap
+    :: FrequencyCap
+frequencyCap =
+    FrequencyCap
+    { _fcImpressions = Nothing
+    , _fcDuration = Nothing
+    }
+
+-- | Number of times an individual user can be served the ad within the
+-- specified duration. The maximum allowed is 15.
+fcImpressions :: Lens' FrequencyCap (Maybe Int64)
+fcImpressions
+  = lens _fcImpressions
+      (\ s a -> s{_fcImpressions = a})
+      . mapping _Coerce
+
+-- | Duration of time, in seconds, for this frequency cap. The maximum
+-- duration is 90 days in seconds, or 7,776,000.
+fcDuration :: Lens' FrequencyCap (Maybe Int64)
+fcDuration
+  = lens _fcDuration (\ s a -> s{_fcDuration = a}) .
+      mapping _Coerce
+
+instance FromJSON FrequencyCap where
+        parseJSON
+          = withObject "FrequencyCap"
+              (\ o ->
+                 FrequencyCap <$>
+                   (o .:? "impressions") <*> (o .:? "duration"))
+
+instance ToJSON FrequencyCap where
+        toJSON FrequencyCap{..}
+          = object
+              (catMaybes
+                 [("impressions" .=) <$> _fcImpressions,
+                  ("duration" .=) <$> _fcDuration])
+
+-- | Represents a File resource. A file contains the metadata for a report
+-- run. It shows the status of the run and holds the URLs to the generated
+-- report data if the run is finished and the status is
+-- \"REPORT_AVAILABLE\".
+--
+-- /See:/ 'file' smart constructor.
+data File = File
+    { _filStatus           :: !(Maybe FileStatus)
+    , _filEtag             :: !(Maybe Text)
+    , _filKind             :: !Text
+    , _filURLs             :: !(Maybe FileURLs)
+    , _filReportId         :: !(Maybe (Textual Int64))
+    , _filDateRange        :: !(Maybe DateRange)
+    , _filFormat           :: !(Maybe FileFormat)
+    , _filLastModifiedTime :: !(Maybe (Textual Int64))
+    , _filId               :: !(Maybe (Textual Int64))
+    , _filFileName         :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'File' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'filStatus'
+--
+-- * 'filEtag'
+--
+-- * 'filKind'
+--
+-- * 'filURLs'
+--
+-- * 'filReportId'
+--
+-- * 'filDateRange'
+--
+-- * 'filFormat'
+--
+-- * 'filLastModifiedTime'
+--
+-- * 'filId'
+--
+-- * 'filFileName'
+file
+    :: File
+file =
+    File
+    { _filStatus = Nothing
+    , _filEtag = Nothing
+    , _filKind = "dfareporting#file"
+    , _filURLs = Nothing
+    , _filReportId = Nothing
+    , _filDateRange = Nothing
+    , _filFormat = Nothing
+    , _filLastModifiedTime = Nothing
+    , _filId = Nothing
+    , _filFileName = Nothing
+    }
+
+-- | The status of the report file.
+filStatus :: Lens' File (Maybe FileStatus)
+filStatus
+  = lens _filStatus (\ s a -> s{_filStatus = a})
+
+-- | The eTag of this response for caching purposes.
+filEtag :: Lens' File (Maybe Text)
+filEtag = lens _filEtag (\ s a -> s{_filEtag = a})
+
+-- | The kind of resource this is, in this case dfareporting#file.
+filKind :: Lens' File Text
+filKind = lens _filKind (\ s a -> s{_filKind = a})
+
+-- | The URLs where the completed report file can be downloaded.
+filURLs :: Lens' File (Maybe FileURLs)
+filURLs = lens _filURLs (\ s a -> s{_filURLs = a})
+
+-- | The ID of the report this file was generated from.
+filReportId :: Lens' File (Maybe Int64)
+filReportId
+  = lens _filReportId (\ s a -> s{_filReportId = a}) .
+      mapping _Coerce
+
+-- | The date range for which the file has report data. The date range will
+-- always be the absolute date range for which the report is run.
+filDateRange :: Lens' File (Maybe DateRange)
+filDateRange
+  = lens _filDateRange (\ s a -> s{_filDateRange = a})
+
+-- | The output format of the report. Only available once the file is
+-- available.
+filFormat :: Lens' File (Maybe FileFormat)
+filFormat
+  = lens _filFormat (\ s a -> s{_filFormat = a})
+
+-- | The timestamp in milliseconds since epoch when this file was last
+-- modified.
+filLastModifiedTime :: Lens' File (Maybe Int64)
+filLastModifiedTime
+  = lens _filLastModifiedTime
+      (\ s a -> s{_filLastModifiedTime = a})
+      . mapping _Coerce
+
+-- | The unique ID of this report file.
+filId :: Lens' File (Maybe Int64)
+filId
+  = lens _filId (\ s a -> s{_filId = a}) .
+      mapping _Coerce
+
+-- | The filename of the file.
+filFileName :: Lens' File (Maybe Text)
+filFileName
+  = lens _filFileName (\ s a -> s{_filFileName = a})
+
+instance FromJSON File where
+        parseJSON
+          = withObject "File"
+              (\ o ->
+                 File <$>
+                   (o .:? "status") <*> (o .:? "etag") <*>
+                     (o .:? "kind" .!= "dfareporting#file")
+                     <*> (o .:? "urls")
+                     <*> (o .:? "reportId")
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "format")
+                     <*> (o .:? "lastModifiedTime")
+                     <*> (o .:? "id")
+                     <*> (o .:? "fileName"))
+
+instance ToJSON File where
+        toJSON File{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _filStatus,
+                  ("etag" .=) <$> _filEtag, Just ("kind" .= _filKind),
+                  ("urls" .=) <$> _filURLs,
+                  ("reportId" .=) <$> _filReportId,
+                  ("dateRange" .=) <$> _filDateRange,
+                  ("format" .=) <$> _filFormat,
+                  ("lastModifiedTime" .=) <$> _filLastModifiedTime,
+                  ("id" .=) <$> _filId,
+                  ("fileName" .=) <$> _filFileName])
+
+-- | Creative Settings
+--
+-- /See:/ 'creativeSettings' smart constructor.
+data CreativeSettings = CreativeSettings
+    { _csIFrameHeader :: !(Maybe Text)
+    , _csIFrameFooter :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'csIFrameHeader'
+--
+-- * 'csIFrameFooter'
+creativeSettings
+    :: CreativeSettings
+creativeSettings =
+    CreativeSettings
+    { _csIFrameHeader = Nothing
+    , _csIFrameFooter = Nothing
+    }
+
+-- | Header text for iFrames for this site. Must be less than or equal to
+-- 2000 characters long.
+csIFrameHeader :: Lens' CreativeSettings (Maybe Text)
+csIFrameHeader
+  = lens _csIFrameHeader
+      (\ s a -> s{_csIFrameHeader = a})
+
+-- | Header text for iFrames for this site. Must be less than or equal to
+-- 2000 characters long.
+csIFrameFooter :: Lens' CreativeSettings (Maybe Text)
+csIFrameFooter
+  = lens _csIFrameFooter
+      (\ s a -> s{_csIFrameFooter = a})
+
+instance FromJSON CreativeSettings where
+        parseJSON
+          = withObject "CreativeSettings"
+              (\ o ->
+                 CreativeSettings <$>
+                   (o .:? "iFrameHeader") <*> (o .:? "iFrameFooter"))
+
+instance ToJSON CreativeSettings where
+        toJSON CreativeSettings{..}
+          = object
+              (catMaybes
+                 [("iFrameHeader" .=) <$> _csIFrameHeader,
+                  ("iFrameFooter" .=) <$> _csIFrameFooter])
+
+-- | Creative Group List Response
+--
+-- /See:/ 'creativeGroupsListResponse' smart constructor.
+data CreativeGroupsListResponse = CreativeGroupsListResponse
+    { _cglrCreativeGroups :: !(Maybe [CreativeGroup])
+    , _cglrNextPageToken  :: !(Maybe Text)
+    , _cglrKind           :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cglrCreativeGroups'
+--
+-- * 'cglrNextPageToken'
+--
+-- * 'cglrKind'
+creativeGroupsListResponse
+    :: CreativeGroupsListResponse
+creativeGroupsListResponse =
+    CreativeGroupsListResponse
+    { _cglrCreativeGroups = Nothing
+    , _cglrNextPageToken = Nothing
+    , _cglrKind = "dfareporting#creativeGroupsListResponse"
+    }
+
+-- | Creative group collection.
+cglrCreativeGroups :: Lens' CreativeGroupsListResponse [CreativeGroup]
+cglrCreativeGroups
+  = lens _cglrCreativeGroups
+      (\ s a -> s{_cglrCreativeGroups = a})
+      . _Default
+      . _Coerce
+
+-- | Pagination token to be used for the next list operation.
+cglrNextPageToken :: Lens' CreativeGroupsListResponse (Maybe Text)
+cglrNextPageToken
+  = lens _cglrNextPageToken
+      (\ s a -> s{_cglrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeGroupsListResponse\".
+cglrKind :: Lens' CreativeGroupsListResponse Text
+cglrKind = lens _cglrKind (\ s a -> s{_cglrKind = a})
+
+instance FromJSON CreativeGroupsListResponse where
+        parseJSON
+          = withObject "CreativeGroupsListResponse"
+              (\ o ->
+                 CreativeGroupsListResponse <$>
+                   (o .:? "creativeGroups" .!= mempty) <*>
+                     (o .:? "nextPageToken")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#creativeGroupsListResponse"))
+
+instance ToJSON CreativeGroupsListResponse where
+        toJSON CreativeGroupsListResponse{..}
+          = object
+              (catMaybes
+                 [("creativeGroups" .=) <$> _cglrCreativeGroups,
+                  ("nextPageToken" .=) <$> _cglrNextPageToken,
+                  Just ("kind" .= _cglrKind)])
+
+-- | Mobile Carrier List Response
+--
+-- /See:/ 'mobileCarriersListResponse' smart constructor.
+data MobileCarriersListResponse = MobileCarriersListResponse
+    { _mclrMobileCarriers :: !(Maybe [MobileCarrier])
+    , _mclrKind           :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MobileCarriersListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mclrMobileCarriers'
+--
+-- * 'mclrKind'
+mobileCarriersListResponse
+    :: MobileCarriersListResponse
+mobileCarriersListResponse =
+    MobileCarriersListResponse
+    { _mclrMobileCarriers = Nothing
+    , _mclrKind = "dfareporting#mobileCarriersListResponse"
+    }
+
+-- | Mobile carrier collection.
+mclrMobileCarriers :: Lens' MobileCarriersListResponse [MobileCarrier]
+mclrMobileCarriers
+  = lens _mclrMobileCarriers
+      (\ s a -> s{_mclrMobileCarriers = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#mobileCarriersListResponse\".
+mclrKind :: Lens' MobileCarriersListResponse Text
+mclrKind = lens _mclrKind (\ s a -> s{_mclrKind = a})
+
+instance FromJSON MobileCarriersListResponse where
+        parseJSON
+          = withObject "MobileCarriersListResponse"
+              (\ o ->
+                 MobileCarriersListResponse <$>
+                   (o .:? "mobileCarriers" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#mobileCarriersListResponse"))
+
+instance ToJSON MobileCarriersListResponse where
+        toJSON MobileCarriersListResponse{..}
+          = object
+              (catMaybes
+                 [("mobileCarriers" .=) <$> _mclrMobileCarriers,
+                  Just ("kind" .= _mclrKind)])
+
+-- | Landing Page List Response
+--
+-- /See:/ 'landingPagesListResponse' smart constructor.
+data LandingPagesListResponse = LandingPagesListResponse
+    { _lplrLandingPages :: !(Maybe [LandingPage])
+    , _lplrKind         :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LandingPagesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lplrLandingPages'
+--
+-- * 'lplrKind'
+landingPagesListResponse
+    :: LandingPagesListResponse
+landingPagesListResponse =
+    LandingPagesListResponse
+    { _lplrLandingPages = Nothing
+    , _lplrKind = "dfareporting#landingPagesListResponse"
+    }
+
+-- | Landing page collection
+lplrLandingPages :: Lens' LandingPagesListResponse [LandingPage]
+lplrLandingPages
+  = lens _lplrLandingPages
+      (\ s a -> s{_lplrLandingPages = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#landingPagesListResponse\".
+lplrKind :: Lens' LandingPagesListResponse Text
+lplrKind = lens _lplrKind (\ s a -> s{_lplrKind = a})
+
+instance FromJSON LandingPagesListResponse where
+        parseJSON
+          = withObject "LandingPagesListResponse"
+              (\ o ->
+                 LandingPagesListResponse <$>
+                   (o .:? "landingPages" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#landingPagesListResponse"))
+
+instance ToJSON LandingPagesListResponse where
+        toJSON LandingPagesListResponse{..}
+          = object
+              (catMaybes
+                 [("landingPages" .=) <$> _lplrLandingPages,
+                  Just ("kind" .= _lplrKind)])
+
+-- | CreativeAssets contains properties of a creative asset file which will
+-- be uploaded or has already been uploaded. Refer to the creative sample
+-- code for how to upload assets and insert a creative.
+--
+-- /See:/ 'creativeAssetMetadata' smart constructor.
+data CreativeAssetMetadata = CreativeAssetMetadata
+    { _camaKind                  :: !Text
+    , _camaAssetIdentifier       :: !(Maybe CreativeAssetId)
+    , _camaClickTags             :: !(Maybe [ClickTag])
+    , _camaWarnedValidationRules :: !(Maybe [CreativeAssetMetadataWarnedValidationRulesItem])
+    , _camaDetectedFeatures      :: !(Maybe [CreativeAssetMetadataDetectedFeaturesItem])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeAssetMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'camaKind'
+--
+-- * 'camaAssetIdentifier'
+--
+-- * 'camaClickTags'
+--
+-- * 'camaWarnedValidationRules'
+--
+-- * 'camaDetectedFeatures'
+creativeAssetMetadata
+    :: CreativeAssetMetadata
+creativeAssetMetadata =
+    CreativeAssetMetadata
+    { _camaKind = "dfareporting#creativeAssetMetadata"
+    , _camaAssetIdentifier = Nothing
+    , _camaClickTags = Nothing
+    , _camaWarnedValidationRules = Nothing
+    , _camaDetectedFeatures = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeAssetMetadata\".
+camaKind :: Lens' CreativeAssetMetadata Text
+camaKind = lens _camaKind (\ s a -> s{_camaKind = a})
+
+-- | ID of the creative asset. This is a required field.
+camaAssetIdentifier :: Lens' CreativeAssetMetadata (Maybe CreativeAssetId)
+camaAssetIdentifier
+  = lens _camaAssetIdentifier
+      (\ s a -> s{_camaAssetIdentifier = a})
+
+-- | List of detected click tags for assets. This is a read-only
+-- auto-generated field.
+camaClickTags :: Lens' CreativeAssetMetadata [ClickTag]
+camaClickTags
+  = lens _camaClickTags
+      (\ s a -> s{_camaClickTags = a})
+      . _Default
+      . _Coerce
+
+-- | Rules validated during code generation that generated a warning. This is
+-- a read-only, auto-generated field. Possible values are: -
+-- \"CLICK_TAG_NON_TOP_LEVEL\" - \"CLICK_TAG_MISSING\" -
+-- \"CLICK_TAG_MORE_THAN_ONE\" - \"CLICK_TAG_INVALID\" - \"ORPHANED_ASSET\"
+-- - \"PRIMARY_HTML_MISSING\" - \"EXTERNAL_FILE_REFERENCED\" -
+-- \"MRAID_REFERENCED\" - \"ADMOB_REFERENCED\" - \"FILE_TYPE_INVALID\" -
+-- \"ZIP_INVALID\" - \"LINKED_FILE_NOT_FOUND\" - \"MAX_FLASH_VERSION_11\" -
+-- \"NOT_SSL_COMPLIANT\" - \"FILE_DETAIL_EMPTY\" - \"ASSET_INVALID\" -
+-- \"GWD_PROPERTIES_INVALID\" - \"ENABLER_UNSUPPORTED_METHOD_DCM\" -
+-- \"ASSET_FORMAT_UNSUPPORTED_DCM\" - \"COMPONENT_UNSUPPORTED_DCM\" -
+-- \"HTML5_FEATURE_UNSUPPORTED\' \"
+camaWarnedValidationRules :: Lens' CreativeAssetMetadata [CreativeAssetMetadataWarnedValidationRulesItem]
+camaWarnedValidationRules
+  = lens _camaWarnedValidationRules
+      (\ s a -> s{_camaWarnedValidationRules = a})
+      . _Default
+      . _Coerce
+
+-- | List of feature dependencies for the creative asset that are detected by
+-- DCM. Feature dependencies are features that a browser must be able to
+-- support in order to render your HTML5 creative correctly. This is a
+-- read-only, auto-generated field.
+camaDetectedFeatures :: Lens' CreativeAssetMetadata [CreativeAssetMetadataDetectedFeaturesItem]
+camaDetectedFeatures
+  = lens _camaDetectedFeatures
+      (\ s a -> s{_camaDetectedFeatures = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CreativeAssetMetadata where
+        parseJSON
+          = withObject "CreativeAssetMetadata"
+              (\ o ->
+                 CreativeAssetMetadata <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#creativeAssetMetadata")
+                     <*> (o .:? "assetIdentifier")
+                     <*> (o .:? "clickTags" .!= mempty)
+                     <*> (o .:? "warnedValidationRules" .!= mempty)
+                     <*> (o .:? "detectedFeatures" .!= mempty))
+
+instance ToJSON CreativeAssetMetadata where
+        toJSON CreativeAssetMetadata{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _camaKind),
+                  ("assetIdentifier" .=) <$> _camaAssetIdentifier,
+                  ("clickTags" .=) <$> _camaClickTags,
+                  ("warnedValidationRules" .=) <$>
+                    _camaWarnedValidationRules,
+                  ("detectedFeatures" .=) <$> _camaDetectedFeatures])
+
+-- | Omniture Integration Settings.
+--
+-- /See:/ 'omnitureSettings' smart constructor.
+data OmnitureSettings = OmnitureSettings
+    { _osOmnitureCostDataEnabled    :: !(Maybe Bool)
+    , _osOmnitureIntegrationEnabled :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OmnitureSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osOmnitureCostDataEnabled'
+--
+-- * 'osOmnitureIntegrationEnabled'
+omnitureSettings
+    :: OmnitureSettings
+omnitureSettings =
+    OmnitureSettings
+    { _osOmnitureCostDataEnabled = Nothing
+    , _osOmnitureIntegrationEnabled = Nothing
+    }
+
+-- | Whether placement cost data will be sent to Omniture. This property can
+-- be enabled only if omnitureIntegrationEnabled is true.
+osOmnitureCostDataEnabled :: Lens' OmnitureSettings (Maybe Bool)
+osOmnitureCostDataEnabled
+  = lens _osOmnitureCostDataEnabled
+      (\ s a -> s{_osOmnitureCostDataEnabled = a})
+
+-- | Whether Omniture integration is enabled. This property can be enabled
+-- only when the \"Advanced Ad Serving\" account setting is enabled.
+osOmnitureIntegrationEnabled :: Lens' OmnitureSettings (Maybe Bool)
+osOmnitureIntegrationEnabled
+  = lens _osOmnitureIntegrationEnabled
+      (\ s a -> s{_osOmnitureIntegrationEnabled = a})
+
+instance FromJSON OmnitureSettings where
+        parseJSON
+          = withObject "OmnitureSettings"
+              (\ o ->
+                 OmnitureSettings <$>
+                   (o .:? "omnitureCostDataEnabled") <*>
+                     (o .:? "omnitureIntegrationEnabled"))
+
+instance ToJSON OmnitureSettings where
+        toJSON OmnitureSettings{..}
+          = object
+              (catMaybes
+                 [("omnitureCostDataEnabled" .=) <$>
+                    _osOmnitureCostDataEnabled,
+                  ("omnitureIntegrationEnabled" .=) <$>
+                    _osOmnitureIntegrationEnabled])
+
+-- | Contains information about an internet connection type that can be
+-- targeted by ads. Clients can use the connection type to target mobile
+-- vs. broadband users.
+--
+-- /See:/ 'connectionType' smart constructor.
+data ConnectionType = ConnectionType
+    { _cttKind :: !Text
+    , _cttName :: !(Maybe Text)
+    , _cttId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConnectionType' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cttKind'
+--
+-- * 'cttName'
+--
+-- * 'cttId'
+connectionType
+    :: ConnectionType
+connectionType =
+    ConnectionType
+    { _cttKind = "dfareporting#connectionType"
+    , _cttName = Nothing
+    , _cttId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#connectionType\".
+cttKind :: Lens' ConnectionType Text
+cttKind = lens _cttKind (\ s a -> s{_cttKind = a})
+
+-- | Name of this connection type.
+cttName :: Lens' ConnectionType (Maybe Text)
+cttName = lens _cttName (\ s a -> s{_cttName = a})
+
+-- | ID of this connection type.
+cttId :: Lens' ConnectionType (Maybe Int64)
+cttId
+  = lens _cttId (\ s a -> s{_cttId = a}) .
+      mapping _Coerce
+
+instance FromJSON ConnectionType where
+        parseJSON
+          = withObject "ConnectionType"
+              (\ o ->
+                 ConnectionType <$>
+                   (o .:? "kind" .!= "dfareporting#connectionType") <*>
+                     (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON ConnectionType where
+        toJSON ConnectionType{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cttKind), ("name" .=) <$> _cttName,
+                  ("id" .=) <$> _cttId])
+
+-- | Contains properties of a package or roadblock.
+--
+-- /See:/ 'placementGroup' smart constructor.
+data PlacementGroup = PlacementGroup
+    { _plalPlacementStrategyId              :: !(Maybe (Textual Int64))
+    , _plalSiteIdDimensionValue             :: !(Maybe DimensionValue)
+    , _plalPricingSchedule                  :: !(Maybe PricingSchedule)
+    , _plalKind                             :: !Text
+    , _plalCampaignIdDimensionValue         :: !(Maybe DimensionValue)
+    , _plalAdvertiserId                     :: !(Maybe (Textual Int64))
+    , _plalAdvertiserIdDimensionValue       :: !(Maybe DimensionValue)
+    , _plalCampaignId                       :: !(Maybe (Textual Int64))
+    , _plalIdDimensionValue                 :: !(Maybe DimensionValue)
+    , _plalPlacementGroupType               :: !(Maybe PlacementGroupPlacementGroupType)
+    , _plalContentCategoryId                :: !(Maybe (Textual Int64))
+    , _plalDirectorySiteIdDimensionValue    :: !(Maybe DimensionValue)
+    , _plalAccountId                        :: !(Maybe (Textual Int64))
+    , _plalName                             :: !(Maybe Text)
+    , _plalDirectorySiteId                  :: !(Maybe (Textual Int64))
+    , _plalCreateInfo                       :: !(Maybe LastModifiedInfo)
+    , _plalChildPlacementIds                :: !(Maybe [Textual Int64])
+    , _plalLastModifiedInfo                 :: !(Maybe LastModifiedInfo)
+    , _plalId                               :: !(Maybe (Textual Int64))
+    , _plalPrimaryPlacementId               :: !(Maybe (Textual Int64))
+    , _plalSubAccountId                     :: !(Maybe (Textual Int64))
+    , _plalExternalId                       :: !(Maybe Text)
+    , _plalComment                          :: !(Maybe Text)
+    , _plalPrimaryPlacementIdDimensionValue :: !(Maybe DimensionValue)
+    , _plalSiteId                           :: !(Maybe (Textual Int64))
+    , _plalArchived                         :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plalPlacementStrategyId'
+--
+-- * 'plalSiteIdDimensionValue'
+--
+-- * 'plalPricingSchedule'
+--
+-- * 'plalKind'
+--
+-- * 'plalCampaignIdDimensionValue'
+--
+-- * 'plalAdvertiserId'
+--
+-- * 'plalAdvertiserIdDimensionValue'
+--
+-- * 'plalCampaignId'
+--
+-- * 'plalIdDimensionValue'
+--
+-- * 'plalPlacementGroupType'
+--
+-- * 'plalContentCategoryId'
+--
+-- * 'plalDirectorySiteIdDimensionValue'
+--
+-- * 'plalAccountId'
+--
+-- * 'plalName'
+--
+-- * 'plalDirectorySiteId'
+--
+-- * 'plalCreateInfo'
+--
+-- * 'plalChildPlacementIds'
+--
+-- * 'plalLastModifiedInfo'
+--
+-- * 'plalId'
+--
+-- * 'plalPrimaryPlacementId'
+--
+-- * 'plalSubAccountId'
+--
+-- * 'plalExternalId'
+--
+-- * 'plalComment'
+--
+-- * 'plalPrimaryPlacementIdDimensionValue'
+--
+-- * 'plalSiteId'
+--
+-- * 'plalArchived'
+placementGroup
+    :: PlacementGroup
+placementGroup =
+    PlacementGroup
+    { _plalPlacementStrategyId = Nothing
+    , _plalSiteIdDimensionValue = Nothing
+    , _plalPricingSchedule = Nothing
+    , _plalKind = "dfareporting#placementGroup"
+    , _plalCampaignIdDimensionValue = Nothing
+    , _plalAdvertiserId = Nothing
+    , _plalAdvertiserIdDimensionValue = Nothing
+    , _plalCampaignId = Nothing
+    , _plalIdDimensionValue = Nothing
+    , _plalPlacementGroupType = Nothing
+    , _plalContentCategoryId = Nothing
+    , _plalDirectorySiteIdDimensionValue = Nothing
+    , _plalAccountId = Nothing
+    , _plalName = Nothing
+    , _plalDirectorySiteId = Nothing
+    , _plalCreateInfo = Nothing
+    , _plalChildPlacementIds = Nothing
+    , _plalLastModifiedInfo = Nothing
+    , _plalId = Nothing
+    , _plalPrimaryPlacementId = Nothing
+    , _plalSubAccountId = Nothing
+    , _plalExternalId = Nothing
+    , _plalComment = Nothing
+    , _plalPrimaryPlacementIdDimensionValue = Nothing
+    , _plalSiteId = Nothing
+    , _plalArchived = Nothing
+    }
+
+-- | ID of the placement strategy assigned to this placement group.
+plalPlacementStrategyId :: Lens' PlacementGroup (Maybe Int64)
+plalPlacementStrategyId
+  = lens _plalPlacementStrategyId
+      (\ s a -> s{_plalPlacementStrategyId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the site. This is a read-only,
+-- auto-generated field.
+plalSiteIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalSiteIdDimensionValue
+  = lens _plalSiteIdDimensionValue
+      (\ s a -> s{_plalSiteIdDimensionValue = a})
+
+-- | Pricing schedule of this placement group. This field is required on
+-- insertion.
+plalPricingSchedule :: Lens' PlacementGroup (Maybe PricingSchedule)
+plalPricingSchedule
+  = lens _plalPricingSchedule
+      (\ s a -> s{_plalPricingSchedule = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementGroup\".
+plalKind :: Lens' PlacementGroup Text
+plalKind = lens _plalKind (\ s a -> s{_plalKind = a})
+
+-- | Dimension value for the ID of the campaign. This is a read-only,
+-- auto-generated field.
+plalCampaignIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalCampaignIdDimensionValue
+  = lens _plalCampaignIdDimensionValue
+      (\ s a -> s{_plalCampaignIdDimensionValue = a})
+
+-- | Advertiser ID of this placement group. This is a required field on
+-- insertion.
+plalAdvertiserId :: Lens' PlacementGroup (Maybe Int64)
+plalAdvertiserId
+  = lens _plalAdvertiserId
+      (\ s a -> s{_plalAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+plalAdvertiserIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalAdvertiserIdDimensionValue
+  = lens _plalAdvertiserIdDimensionValue
+      (\ s a -> s{_plalAdvertiserIdDimensionValue = a})
+
+-- | Campaign ID of this placement group. This field is required on
+-- insertion.
+plalCampaignId :: Lens' PlacementGroup (Maybe Int64)
+plalCampaignId
+  = lens _plalCampaignId
+      (\ s a -> s{_plalCampaignId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of this placement group. This is a read-only,
+-- auto-generated field.
+plalIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalIdDimensionValue
+  = lens _plalIdDimensionValue
+      (\ s a -> s{_plalIdDimensionValue = a})
+
+-- | Type of this placement group. A package is a simple group of placements
+-- that acts as a single pricing point for a group of tags. A roadblock is
+-- a group of placements that not only acts as a single pricing point, but
+-- also assumes that all the tags in it will be served at the same time. A
+-- roadblock requires one of its assigned placements to be marked as
+-- primary for reporting. This field is required on insertion.
+plalPlacementGroupType :: Lens' PlacementGroup (Maybe PlacementGroupPlacementGroupType)
+plalPlacementGroupType
+  = lens _plalPlacementGroupType
+      (\ s a -> s{_plalPlacementGroupType = a})
+
+-- | ID of the content category assigned to this placement group.
+plalContentCategoryId :: Lens' PlacementGroup (Maybe Int64)
+plalContentCategoryId
+  = lens _plalContentCategoryId
+      (\ s a -> s{_plalContentCategoryId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the directory site. This is a read-only,
+-- auto-generated field.
+plalDirectorySiteIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalDirectorySiteIdDimensionValue
+  = lens _plalDirectorySiteIdDimensionValue
+      (\ s a -> s{_plalDirectorySiteIdDimensionValue = a})
+
+-- | Account ID of this placement group. This is a read-only field that can
+-- be left blank.
+plalAccountId :: Lens' PlacementGroup (Maybe Int64)
+plalAccountId
+  = lens _plalAccountId
+      (\ s a -> s{_plalAccountId = a})
+      . mapping _Coerce
+
+-- | Name of this placement group. This is a required field and must be less
+-- than 256 characters long.
+plalName :: Lens' PlacementGroup (Maybe Text)
+plalName = lens _plalName (\ s a -> s{_plalName = a})
+
+-- | Directory site ID associated with this placement group. On insert, you
+-- must set either this field or the site_id field to specify the site
+-- associated with this placement group. This is a required field that is
+-- read-only after insertion.
+plalDirectorySiteId :: Lens' PlacementGroup (Maybe Int64)
+plalDirectorySiteId
+  = lens _plalDirectorySiteId
+      (\ s a -> s{_plalDirectorySiteId = a})
+      . mapping _Coerce
+
+-- | Information about the creation of this placement group. This is a
+-- read-only field.
+plalCreateInfo :: Lens' PlacementGroup (Maybe LastModifiedInfo)
+plalCreateInfo
+  = lens _plalCreateInfo
+      (\ s a -> s{_plalCreateInfo = a})
+
+-- | IDs of placements which are assigned to this placement group. This is a
+-- read-only, auto-generated field.
+plalChildPlacementIds :: Lens' PlacementGroup [Int64]
+plalChildPlacementIds
+  = lens _plalChildPlacementIds
+      (\ s a -> s{_plalChildPlacementIds = a})
+      . _Default
+      . _Coerce
+
+-- | Information about the most recent modification of this placement group.
+-- This is a read-only field.
+plalLastModifiedInfo :: Lens' PlacementGroup (Maybe LastModifiedInfo)
+plalLastModifiedInfo
+  = lens _plalLastModifiedInfo
+      (\ s a -> s{_plalLastModifiedInfo = a})
+
+-- | ID of this placement group. This is a read-only, auto-generated field.
+plalId :: Lens' PlacementGroup (Maybe Int64)
+plalId
+  = lens _plalId (\ s a -> s{_plalId = a}) .
+      mapping _Coerce
+
+-- | ID of the primary placement, used to calculate the media cost of a
+-- roadblock (placement group). Modifying this field will automatically
+-- modify the primary field on all affected roadblock child placements.
+plalPrimaryPlacementId :: Lens' PlacementGroup (Maybe Int64)
+plalPrimaryPlacementId
+  = lens _plalPrimaryPlacementId
+      (\ s a -> s{_plalPrimaryPlacementId = a})
+      . mapping _Coerce
+
+-- | Subaccount ID of this placement group. This is a read-only field that
+-- can be left blank.
+plalSubAccountId :: Lens' PlacementGroup (Maybe Int64)
+plalSubAccountId
+  = lens _plalSubAccountId
+      (\ s a -> s{_plalSubAccountId = a})
+      . mapping _Coerce
+
+-- | External ID for this placement.
+plalExternalId :: Lens' PlacementGroup (Maybe Text)
+plalExternalId
+  = lens _plalExternalId
+      (\ s a -> s{_plalExternalId = a})
+
+-- | Comments for this placement group.
+plalComment :: Lens' PlacementGroup (Maybe Text)
+plalComment
+  = lens _plalComment (\ s a -> s{_plalComment = a})
+
+-- | Dimension value for the ID of the primary placement. This is a
+-- read-only, auto-generated field.
+plalPrimaryPlacementIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalPrimaryPlacementIdDimensionValue
+  = lens _plalPrimaryPlacementIdDimensionValue
+      (\ s a ->
+         s{_plalPrimaryPlacementIdDimensionValue = a})
+
+-- | Site ID associated with this placement group. On insert, you must set
+-- either this field or the directorySiteId field to specify the site
+-- associated with this placement group. This is a required field that is
+-- read-only after insertion.
+plalSiteId :: Lens' PlacementGroup (Maybe Int64)
+plalSiteId
+  = lens _plalSiteId (\ s a -> s{_plalSiteId = a}) .
+      mapping _Coerce
+
+-- | Whether this placement group is archived.
+plalArchived :: Lens' PlacementGroup (Maybe Bool)
+plalArchived
+  = lens _plalArchived (\ s a -> s{_plalArchived = a})
+
+instance FromJSON PlacementGroup where
+        parseJSON
+          = withObject "PlacementGroup"
+              (\ o ->
+                 PlacementGroup <$>
+                   (o .:? "placementStrategyId") <*>
+                     (o .:? "siteIdDimensionValue")
+                     <*> (o .:? "pricingSchedule")
+                     <*> (o .:? "kind" .!= "dfareporting#placementGroup")
+                     <*> (o .:? "campaignIdDimensionValue")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "campaignId")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "placementGroupType")
+                     <*> (o .:? "contentCategoryId")
+                     <*> (o .:? "directorySiteIdDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "directorySiteId")
+                     <*> (o .:? "createInfo")
+                     <*> (o .:? "childPlacementIds" .!= mempty)
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "primaryPlacementId")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "externalId")
+                     <*> (o .:? "comment")
+                     <*> (o .:? "primaryPlacementIdDimensionValue")
+                     <*> (o .:? "siteId")
+                     <*> (o .:? "archived"))
+
+instance ToJSON PlacementGroup where
+        toJSON PlacementGroup{..}
+          = object
+              (catMaybes
+                 [("placementStrategyId" .=) <$>
+                    _plalPlacementStrategyId,
+                  ("siteIdDimensionValue" .=) <$>
+                    _plalSiteIdDimensionValue,
+                  ("pricingSchedule" .=) <$> _plalPricingSchedule,
+                  Just ("kind" .= _plalKind),
+                  ("campaignIdDimensionValue" .=) <$>
+                    _plalCampaignIdDimensionValue,
+                  ("advertiserId" .=) <$> _plalAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _plalAdvertiserIdDimensionValue,
+                  ("campaignId" .=) <$> _plalCampaignId,
+                  ("idDimensionValue" .=) <$> _plalIdDimensionValue,
+                  ("placementGroupType" .=) <$>
+                    _plalPlacementGroupType,
+                  ("contentCategoryId" .=) <$> _plalContentCategoryId,
+                  ("directorySiteIdDimensionValue" .=) <$>
+                    _plalDirectorySiteIdDimensionValue,
+                  ("accountId" .=) <$> _plalAccountId,
+                  ("name" .=) <$> _plalName,
+                  ("directorySiteId" .=) <$> _plalDirectorySiteId,
+                  ("createInfo" .=) <$> _plalCreateInfo,
+                  ("childPlacementIds" .=) <$> _plalChildPlacementIds,
+                  ("lastModifiedInfo" .=) <$> _plalLastModifiedInfo,
+                  ("id" .=) <$> _plalId,
+                  ("primaryPlacementId" .=) <$>
+                    _plalPrimaryPlacementId,
+                  ("subaccountId" .=) <$> _plalSubAccountId,
+                  ("externalId" .=) <$> _plalExternalId,
+                  ("comment" .=) <$> _plalComment,
+                  ("primaryPlacementIdDimensionValue" .=) <$>
+                    _plalPrimaryPlacementIdDimensionValue,
+                  ("siteId" .=) <$> _plalSiteId,
+                  ("archived" .=) <$> _plalArchived])
+
+-- | Contains properties of an event tag.
+--
+-- /See:/ 'eventTag' smart constructor.
+data EventTag = EventTag
+    { _etStatus                     :: !(Maybe EventTagStatus)
+    , _etExcludeFromAdxRequests     :: !(Maybe Bool)
+    , _etEnabledByDefault           :: !(Maybe Bool)
+    , _etKind                       :: !Text
+    , _etCampaignIdDimensionValue   :: !(Maybe DimensionValue)
+    , _etAdvertiserId               :: !(Maybe (Textual Int64))
+    , _etURL                        :: !(Maybe Text)
+    , _etAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
+    , _etSSLCompliant               :: !(Maybe Bool)
+    , _etCampaignId                 :: !(Maybe (Textual Int64))
+    , _etAccountId                  :: !(Maybe (Textual Int64))
+    , _etName                       :: !(Maybe Text)
+    , _etURLEscapeLevels            :: !(Maybe (Textual Int32))
+    , _etSiteIds                    :: !(Maybe [Textual Int64])
+    , _etId                         :: !(Maybe (Textual Int64))
+    , _etSubAccountId               :: !(Maybe (Textual Int64))
+    , _etType                       :: !(Maybe EventTagType)
+    , _etSiteFilterType             :: !(Maybe EventTagSiteFilterType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etStatus'
+--
+-- * 'etExcludeFromAdxRequests'
+--
+-- * 'etEnabledByDefault'
+--
+-- * 'etKind'
+--
+-- * 'etCampaignIdDimensionValue'
+--
+-- * 'etAdvertiserId'
+--
+-- * 'etURL'
+--
+-- * 'etAdvertiserIdDimensionValue'
+--
+-- * 'etSSLCompliant'
+--
+-- * 'etCampaignId'
+--
+-- * 'etAccountId'
+--
+-- * 'etName'
+--
+-- * 'etURLEscapeLevels'
+--
+-- * 'etSiteIds'
+--
+-- * 'etId'
+--
+-- * 'etSubAccountId'
+--
+-- * 'etType'
+--
+-- * 'etSiteFilterType'
+eventTag
+    :: EventTag
+eventTag =
+    EventTag
+    { _etStatus = Nothing
+    , _etExcludeFromAdxRequests = Nothing
+    , _etEnabledByDefault = Nothing
+    , _etKind = "dfareporting#eventTag"
+    , _etCampaignIdDimensionValue = Nothing
+    , _etAdvertiserId = Nothing
+    , _etURL = Nothing
+    , _etAdvertiserIdDimensionValue = Nothing
+    , _etSSLCompliant = Nothing
+    , _etCampaignId = Nothing
+    , _etAccountId = Nothing
+    , _etName = Nothing
+    , _etURLEscapeLevels = Nothing
+    , _etSiteIds = Nothing
+    , _etId = Nothing
+    , _etSubAccountId = Nothing
+    , _etType = Nothing
+    , _etSiteFilterType = Nothing
+    }
+
+-- | Status of this event tag. Must be ENABLED for this event tag to fire.
+-- This is a required field.
+etStatus :: Lens' EventTag (Maybe EventTagStatus)
+etStatus = lens _etStatus (\ s a -> s{_etStatus = a})
+
+-- | Whether to remove this event tag from ads that are trafficked through
+-- DoubleClick Bid Manager to Ad Exchange. This may be useful if the event
+-- tag uses a pixel that is unapproved for Ad Exchange bids on one or more
+-- networks, such as the Google Display Network.
+etExcludeFromAdxRequests :: Lens' EventTag (Maybe Bool)
+etExcludeFromAdxRequests
+  = lens _etExcludeFromAdxRequests
+      (\ s a -> s{_etExcludeFromAdxRequests = a})
+
+-- | Whether this event tag should be automatically enabled for all of the
+-- advertiser\'s campaigns and ads.
+etEnabledByDefault :: Lens' EventTag (Maybe Bool)
+etEnabledByDefault
+  = lens _etEnabledByDefault
+      (\ s a -> s{_etEnabledByDefault = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#eventTag\".
+etKind :: Lens' EventTag Text
+etKind = lens _etKind (\ s a -> s{_etKind = a})
+
+-- | Dimension value for the ID of the campaign. This is a read-only,
+-- auto-generated field.
+etCampaignIdDimensionValue :: Lens' EventTag (Maybe DimensionValue)
+etCampaignIdDimensionValue
+  = lens _etCampaignIdDimensionValue
+      (\ s a -> s{_etCampaignIdDimensionValue = a})
+
+-- | Advertiser ID of this event tag. This field or the campaignId field is
+-- required on insertion.
+etAdvertiserId :: Lens' EventTag (Maybe Int64)
+etAdvertiserId
+  = lens _etAdvertiserId
+      (\ s a -> s{_etAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Payload URL for this event tag. The URL on a click-through event tag
+-- should have a landing page URL appended to the end of it. This field is
+-- required on insertion.
+etURL :: Lens' EventTag (Maybe Text)
+etURL = lens _etURL (\ s a -> s{_etURL = a})
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+etAdvertiserIdDimensionValue :: Lens' EventTag (Maybe DimensionValue)
+etAdvertiserIdDimensionValue
+  = lens _etAdvertiserIdDimensionValue
+      (\ s a -> s{_etAdvertiserIdDimensionValue = a})
+
+-- | Whether this tag is SSL-compliant or not. This is a read-only field.
+etSSLCompliant :: Lens' EventTag (Maybe Bool)
+etSSLCompliant
+  = lens _etSSLCompliant
+      (\ s a -> s{_etSSLCompliant = a})
+
+-- | Campaign ID of this event tag. This field or the advertiserId field is
+-- required on insertion.
+etCampaignId :: Lens' EventTag (Maybe Int64)
+etCampaignId
+  = lens _etCampaignId (\ s a -> s{_etCampaignId = a})
+      . mapping _Coerce
+
+-- | Account ID of this event tag. This is a read-only field that can be left
+-- blank.
+etAccountId :: Lens' EventTag (Maybe Int64)
+etAccountId
+  = lens _etAccountId (\ s a -> s{_etAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this event tag. This is a required field and must be less than
+-- 256 characters long.
+etName :: Lens' EventTag (Maybe Text)
+etName = lens _etName (\ s a -> s{_etName = a})
+
+-- | Number of times the landing page URL should be URL-escaped before being
+-- appended to the click-through event tag URL. Only applies to
+-- click-through event tags as specified by the event tag type.
+etURLEscapeLevels :: Lens' EventTag (Maybe Int32)
+etURLEscapeLevels
+  = lens _etURLEscapeLevels
+      (\ s a -> s{_etURLEscapeLevels = a})
+      . mapping _Coerce
+
+-- | Filter list of site IDs associated with this event tag. The
+-- siteFilterType determines whether this is a whitelist or blacklist
+-- filter.
+etSiteIds :: Lens' EventTag [Int64]
+etSiteIds
+  = lens _etSiteIds (\ s a -> s{_etSiteIds = a}) .
+      _Default
+      . _Coerce
+
+-- | ID of this event tag. This is a read-only, auto-generated field.
+etId :: Lens' EventTag (Maybe Int64)
+etId
+  = lens _etId (\ s a -> s{_etId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this event tag. This is a read-only field that can be
+-- left blank.
+etSubAccountId :: Lens' EventTag (Maybe Int64)
+etSubAccountId
+  = lens _etSubAccountId
+      (\ s a -> s{_etSubAccountId = a})
+      . mapping _Coerce
+
+-- | Event tag type. Can be used to specify whether to use a third-party
+-- pixel, a third-party JavaScript URL, or a third-party click-through URL
+-- for either impression or click tracking. This is a required field.
+etType :: Lens' EventTag (Maybe EventTagType)
+etType = lens _etType (\ s a -> s{_etType = a})
+
+-- | Site filter type for this event tag. If no type is specified then the
+-- event tag will be applied to all sites.
+etSiteFilterType :: Lens' EventTag (Maybe EventTagSiteFilterType)
+etSiteFilterType
+  = lens _etSiteFilterType
+      (\ s a -> s{_etSiteFilterType = a})
+
+instance FromJSON EventTag where
+        parseJSON
+          = withObject "EventTag"
+              (\ o ->
+                 EventTag <$>
+                   (o .:? "status") <*> (o .:? "excludeFromAdxRequests")
+                     <*> (o .:? "enabledByDefault")
+                     <*> (o .:? "kind" .!= "dfareporting#eventTag")
+                     <*> (o .:? "campaignIdDimensionValue")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "url")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "campaignId")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "urlEscapeLevels")
+                     <*> (o .:? "siteIds" .!= mempty)
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "siteFilterType"))
+
+instance ToJSON EventTag where
+        toJSON EventTag{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _etStatus,
+                  ("excludeFromAdxRequests" .=) <$>
+                    _etExcludeFromAdxRequests,
+                  ("enabledByDefault" .=) <$> _etEnabledByDefault,
+                  Just ("kind" .= _etKind),
+                  ("campaignIdDimensionValue" .=) <$>
+                    _etCampaignIdDimensionValue,
+                  ("advertiserId" .=) <$> _etAdvertiserId,
+                  ("url" .=) <$> _etURL,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _etAdvertiserIdDimensionValue,
+                  ("sslCompliant" .=) <$> _etSSLCompliant,
+                  ("campaignId" .=) <$> _etCampaignId,
+                  ("accountId" .=) <$> _etAccountId,
+                  ("name" .=) <$> _etName,
+                  ("urlEscapeLevels" .=) <$> _etURLEscapeLevels,
+                  ("siteIds" .=) <$> _etSiteIds, ("id" .=) <$> _etId,
+                  ("subaccountId" .=) <$> _etSubAccountId,
+                  ("type" .=) <$> _etType,
+                  ("siteFilterType" .=) <$> _etSiteFilterType])
+
+-- | Contains properties of a user role permission.
+--
+-- /See:/ 'userRolePermission' smart constructor.
+data UserRolePermission = UserRolePermission
+    { _useKind              :: !Text
+    , _useAvailability      :: !(Maybe UserRolePermissionAvailability)
+    , _useName              :: !(Maybe Text)
+    , _useId                :: !(Maybe (Textual Int64))
+    , _usePermissionGroupId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermission' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'useKind'
+--
+-- * 'useAvailability'
+--
+-- * 'useName'
+--
+-- * 'useId'
+--
+-- * 'usePermissionGroupId'
+userRolePermission
+    :: UserRolePermission
+userRolePermission =
+    UserRolePermission
+    { _useKind = "dfareporting#userRolePermission"
+    , _useAvailability = Nothing
+    , _useName = Nothing
+    , _useId = Nothing
+    , _usePermissionGroupId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRolePermission\".
+useKind :: Lens' UserRolePermission Text
+useKind = lens _useKind (\ s a -> s{_useKind = a})
+
+-- | Levels of availability for a user role permission.
+useAvailability :: Lens' UserRolePermission (Maybe UserRolePermissionAvailability)
+useAvailability
+  = lens _useAvailability
+      (\ s a -> s{_useAvailability = a})
+
+-- | Name of this user role permission.
+useName :: Lens' UserRolePermission (Maybe Text)
+useName = lens _useName (\ s a -> s{_useName = a})
+
+-- | ID of this user role permission.
+useId :: Lens' UserRolePermission (Maybe Int64)
+useId
+  = lens _useId (\ s a -> s{_useId = a}) .
+      mapping _Coerce
+
+-- | ID of the permission group that this user role permission belongs to.
+usePermissionGroupId :: Lens' UserRolePermission (Maybe Int64)
+usePermissionGroupId
+  = lens _usePermissionGroupId
+      (\ s a -> s{_usePermissionGroupId = a})
+      . mapping _Coerce
+
+instance FromJSON UserRolePermission where
+        parseJSON
+          = withObject "UserRolePermission"
+              (\ o ->
+                 UserRolePermission <$>
+                   (o .:? "kind" .!= "dfareporting#userRolePermission")
+                     <*> (o .:? "availability")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "permissionGroupId"))
+
+instance ToJSON UserRolePermission where
+        toJSON UserRolePermission{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _useKind),
+                  ("availability" .=) <$> _useAvailability,
+                  ("name" .=) <$> _useName, ("id" .=) <$> _useId,
+                  ("permissionGroupId" .=) <$> _usePermissionGroupId])
+
+-- | Contact of an order.
+--
+-- /See:/ 'orderContact' smart constructor.
+data OrderContact = OrderContact
+    { _ocSignatureUserProFileId :: !(Maybe (Textual Int64))
+    , _ocContactName            :: !(Maybe Text)
+    , _ocContactTitle           :: !(Maybe Text)
+    , _ocContactType            :: !(Maybe OrderContactContactType)
+    , _ocContactInfo            :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrderContact' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ocSignatureUserProFileId'
+--
+-- * 'ocContactName'
+--
+-- * 'ocContactTitle'
+--
+-- * 'ocContactType'
+--
+-- * 'ocContactInfo'
+orderContact
+    :: OrderContact
+orderContact =
+    OrderContact
+    { _ocSignatureUserProFileId = Nothing
+    , _ocContactName = Nothing
+    , _ocContactTitle = Nothing
+    , _ocContactType = Nothing
+    , _ocContactInfo = Nothing
+    }
+
+-- | ID of the user profile containing the signature that will be embedded
+-- into order documents.
+ocSignatureUserProFileId :: Lens' OrderContact (Maybe Int64)
+ocSignatureUserProFileId
+  = lens _ocSignatureUserProFileId
+      (\ s a -> s{_ocSignatureUserProFileId = a})
+      . mapping _Coerce
+
+-- | Name of this contact.
+ocContactName :: Lens' OrderContact (Maybe Text)
+ocContactName
+  = lens _ocContactName
+      (\ s a -> s{_ocContactName = a})
+
+-- | Title of this contact.
+ocContactTitle :: Lens' OrderContact (Maybe Text)
+ocContactTitle
+  = lens _ocContactTitle
+      (\ s a -> s{_ocContactTitle = a})
+
+-- | Type of this contact.
+ocContactType :: Lens' OrderContact (Maybe OrderContactContactType)
+ocContactType
+  = lens _ocContactType
+      (\ s a -> s{_ocContactType = a})
+
+-- | Free-form information about this contact. It could be any information
+-- related to this contact in addition to type, title, name, and signature
+-- user profile ID.
+ocContactInfo :: Lens' OrderContact (Maybe Text)
+ocContactInfo
+  = lens _ocContactInfo
+      (\ s a -> s{_ocContactInfo = a})
+
+instance FromJSON OrderContact where
+        parseJSON
+          = withObject "OrderContact"
+              (\ o ->
+                 OrderContact <$>
+                   (o .:? "signatureUserProfileId") <*>
+                     (o .:? "contactName")
+                     <*> (o .:? "contactTitle")
+                     <*> (o .:? "contactType")
+                     <*> (o .:? "contactInfo"))
+
+instance ToJSON OrderContact where
+        toJSON OrderContact{..}
+          = object
+              (catMaybes
+                 [("signatureUserProfileId" .=) <$>
+                    _ocSignatureUserProFileId,
+                  ("contactName" .=) <$> _ocContactName,
+                  ("contactTitle" .=) <$> _ocContactTitle,
+                  ("contactType" .=) <$> _ocContactType,
+                  ("contactInfo" .=) <$> _ocContactInfo])
+
+-- | Floodlight Activity GenerateTag Response
+--
+-- /See:/ 'floodlightActivitiesGenerateTagResponse' smart constructor.
+data FloodlightActivitiesGenerateTagResponse = FloodlightActivitiesGenerateTagResponse
+    { _fagtrFloodlightActivityTag :: !(Maybe Text)
+    , _fagtrKind                  :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesGenerateTagResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fagtrFloodlightActivityTag'
+--
+-- * 'fagtrKind'
+floodlightActivitiesGenerateTagResponse
+    :: FloodlightActivitiesGenerateTagResponse
+floodlightActivitiesGenerateTagResponse =
+    FloodlightActivitiesGenerateTagResponse
+    { _fagtrFloodlightActivityTag = Nothing
+    , _fagtrKind = "dfareporting#floodlightActivitiesGenerateTagResponse"
+    }
+
+-- | Generated tag for this floodlight activity.
+fagtrFloodlightActivityTag :: Lens' FloodlightActivitiesGenerateTagResponse (Maybe Text)
+fagtrFloodlightActivityTag
+  = lens _fagtrFloodlightActivityTag
+      (\ s a -> s{_fagtrFloodlightActivityTag = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightActivitiesGenerateTagResponse\".
+fagtrKind :: Lens' FloodlightActivitiesGenerateTagResponse Text
+fagtrKind
+  = lens _fagtrKind (\ s a -> s{_fagtrKind = a})
+
+instance FromJSON
+         FloodlightActivitiesGenerateTagResponse where
+        parseJSON
+          = withObject
+              "FloodlightActivitiesGenerateTagResponse"
+              (\ o ->
+                 FloodlightActivitiesGenerateTagResponse <$>
+                   (o .:? "floodlightActivityTag") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightActivitiesGenerateTagResponse"))
+
+instance ToJSON
+         FloodlightActivitiesGenerateTagResponse where
+        toJSON FloodlightActivitiesGenerateTagResponse{..}
+          = object
+              (catMaybes
+                 [("floodlightActivityTag" .=) <$>
+                    _fagtrFloodlightActivityTag,
+                  Just ("kind" .= _fagtrKind)])
+
+-- | Directory Site Contact Assignment
+--
+-- /See:/ 'directorySiteContactAssignment' smart constructor.
+data DirectorySiteContactAssignment = DirectorySiteContactAssignment
+    { _dscaVisibility :: !(Maybe DirectorySiteContactAssignmentVisibility)
+    , _dscaContactId  :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySiteContactAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dscaVisibility'
+--
+-- * 'dscaContactId'
+directorySiteContactAssignment
+    :: DirectorySiteContactAssignment
+directorySiteContactAssignment =
+    DirectorySiteContactAssignment
+    { _dscaVisibility = Nothing
+    , _dscaContactId = Nothing
+    }
+
+-- | Visibility of this directory site contact assignment. When set to PUBLIC
+-- this contact assignment is visible to all account and agency users; when
+-- set to PRIVATE it is visible only to the site.
+dscaVisibility :: Lens' DirectorySiteContactAssignment (Maybe DirectorySiteContactAssignmentVisibility)
+dscaVisibility
+  = lens _dscaVisibility
+      (\ s a -> s{_dscaVisibility = a})
+
+-- | ID of this directory site contact. This is a read-only, auto-generated
+-- field.
+dscaContactId :: Lens' DirectorySiteContactAssignment (Maybe Int64)
+dscaContactId
+  = lens _dscaContactId
+      (\ s a -> s{_dscaContactId = a})
+      . mapping _Coerce
+
+instance FromJSON DirectorySiteContactAssignment
+         where
+        parseJSON
+          = withObject "DirectorySiteContactAssignment"
+              (\ o ->
+                 DirectorySiteContactAssignment <$>
+                   (o .:? "visibility") <*> (o .:? "contactId"))
+
+instance ToJSON DirectorySiteContactAssignment where
+        toJSON DirectorySiteContactAssignment{..}
+          = object
+              (catMaybes
+                 [("visibility" .=) <$> _dscaVisibility,
+                  ("contactId" .=) <$> _dscaContactId])
+
+-- | Ad Slot
+--
+-- /See:/ 'adSlot' smart constructor.
+data AdSlot = AdSlot
+    { _assHeight            :: !(Maybe (Textual Int64))
+    , _assPaymentSourceType :: !(Maybe AdSlotPaymentSourceType)
+    , _assLinkedPlacementId :: !(Maybe (Textual Int64))
+    , _assWidth             :: !(Maybe (Textual Int64))
+    , _assPrimary           :: !(Maybe Bool)
+    , _assName              :: !(Maybe Text)
+    , _assComment           :: !(Maybe Text)
+    , _assCompatibility     :: !(Maybe AdSlotCompatibility)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdSlot' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'assHeight'
+--
+-- * 'assPaymentSourceType'
+--
+-- * 'assLinkedPlacementId'
+--
+-- * 'assWidth'
+--
+-- * 'assPrimary'
+--
+-- * 'assName'
+--
+-- * 'assComment'
+--
+-- * 'assCompatibility'
+adSlot
+    :: AdSlot
+adSlot =
+    AdSlot
+    { _assHeight = Nothing
+    , _assPaymentSourceType = Nothing
+    , _assLinkedPlacementId = Nothing
+    , _assWidth = Nothing
+    , _assPrimary = Nothing
+    , _assName = Nothing
+    , _assComment = Nothing
+    , _assCompatibility = Nothing
+    }
+
+-- | Height of this ad slot.
+assHeight :: Lens' AdSlot (Maybe Int64)
+assHeight
+  = lens _assHeight (\ s a -> s{_assHeight = a}) .
+      mapping _Coerce
+
+-- | Payment source type of this ad slot.
+assPaymentSourceType :: Lens' AdSlot (Maybe AdSlotPaymentSourceType)
+assPaymentSourceType
+  = lens _assPaymentSourceType
+      (\ s a -> s{_assPaymentSourceType = a})
+
+-- | ID of the placement from an external platform that is linked to this ad
+-- slot.
+assLinkedPlacementId :: Lens' AdSlot (Maybe Int64)
+assLinkedPlacementId
+  = lens _assLinkedPlacementId
+      (\ s a -> s{_assLinkedPlacementId = a})
+      . mapping _Coerce
+
+-- | Width of this ad slot.
+assWidth :: Lens' AdSlot (Maybe Int64)
+assWidth
+  = lens _assWidth (\ s a -> s{_assWidth = a}) .
+      mapping _Coerce
+
+-- | Primary ad slot of a roadblock inventory item.
+assPrimary :: Lens' AdSlot (Maybe Bool)
+assPrimary
+  = lens _assPrimary (\ s a -> s{_assPrimary = a})
+
+-- | Name of this ad slot.
+assName :: Lens' AdSlot (Maybe Text)
+assName = lens _assName (\ s a -> s{_assName = a})
+
+-- | Comment for this ad slot.
+assComment :: Lens' AdSlot (Maybe Text)
+assComment
+  = lens _assComment (\ s a -> s{_assComment = a})
+
+-- | Ad slot compatibility. WEB and WEB_INTERSTITIAL refer to rendering
+-- either on desktop or on mobile devices for regular or interstitial ads
+-- respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.
+-- IN_STREAM_VIDEO refers to rendering in in-stream video ads developed
+-- with the VAST standard.
+assCompatibility :: Lens' AdSlot (Maybe AdSlotCompatibility)
+assCompatibility
+  = lens _assCompatibility
+      (\ s a -> s{_assCompatibility = a})
+
+instance FromJSON AdSlot where
+        parseJSON
+          = withObject "AdSlot"
+              (\ o ->
+                 AdSlot <$>
+                   (o .:? "height") <*> (o .:? "paymentSourceType") <*>
+                     (o .:? "linkedPlacementId")
+                     <*> (o .:? "width")
+                     <*> (o .:? "primary")
+                     <*> (o .:? "name")
+                     <*> (o .:? "comment")
+                     <*> (o .:? "compatibility"))
+
+instance ToJSON AdSlot where
+        toJSON AdSlot{..}
+          = object
+              (catMaybes
+                 [("height" .=) <$> _assHeight,
+                  ("paymentSourceType" .=) <$> _assPaymentSourceType,
+                  ("linkedPlacementId" .=) <$> _assLinkedPlacementId,
+                  ("width" .=) <$> _assWidth,
+                  ("primary" .=) <$> _assPrimary,
+                  ("name" .=) <$> _assName,
+                  ("comment" .=) <$> _assComment,
+                  ("compatibility" .=) <$> _assCompatibility])
+
+-- | Third-party Tracking URL.
+--
+-- /See:/ 'thirdPartyTrackingURL' smart constructor.
+data ThirdPartyTrackingURL = ThirdPartyTrackingURL
+    { _tptuURL               :: !(Maybe Text)
+    , _tptuThirdPartyURLType :: !(Maybe ThirdPartyTrackingURLThirdPartyURLType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ThirdPartyTrackingURL' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tptuURL'
+--
+-- * 'tptuThirdPartyURLType'
+thirdPartyTrackingURL
+    :: ThirdPartyTrackingURL
+thirdPartyTrackingURL =
+    ThirdPartyTrackingURL
+    { _tptuURL = Nothing
+    , _tptuThirdPartyURLType = Nothing
+    }
+
+-- | URL for the specified third-party URL type.
+tptuURL :: Lens' ThirdPartyTrackingURL (Maybe Text)
+tptuURL = lens _tptuURL (\ s a -> s{_tptuURL = a})
+
+-- | Third-party URL type for in-stream video creatives.
+tptuThirdPartyURLType :: Lens' ThirdPartyTrackingURL (Maybe ThirdPartyTrackingURLThirdPartyURLType)
+tptuThirdPartyURLType
+  = lens _tptuThirdPartyURLType
+      (\ s a -> s{_tptuThirdPartyURLType = a})
+
+instance FromJSON ThirdPartyTrackingURL where
+        parseJSON
+          = withObject "ThirdPartyTrackingURL"
+              (\ o ->
+                 ThirdPartyTrackingURL <$>
+                   (o .:? "url") <*> (o .:? "thirdPartyUrlType"))
+
+instance ToJSON ThirdPartyTrackingURL where
+        toJSON ThirdPartyTrackingURL{..}
+          = object
+              (catMaybes
+                 [("url" .=) <$> _tptuURL,
+                  ("thirdPartyUrlType" .=) <$> _tptuThirdPartyURLType])
+
+-- | Contains properties of a DoubleClick Planning order document.
+--
+-- /See:/ 'orderDocument' smart constructor.
+data OrderDocument = OrderDocument
+    { _odSigned                   :: !(Maybe Bool)
+    , _odKind                     :: !Text
+    , _odAdvertiserId             :: !(Maybe (Textual Int64))
+    , _odLastSentTime             :: !(Maybe DateTime')
+    , _odAmendedOrderDocumentId   :: !(Maybe (Textual Int64))
+    , _odLastSentRecipients       :: !(Maybe [Text])
+    , _odEffectiveDate            :: !(Maybe Date')
+    , _odApprovedByUserProFileIds :: !(Maybe [Textual Int64])
+    , _odAccountId                :: !(Maybe (Textual Int64))
+    , _odId                       :: !(Maybe (Textual Int64))
+    , _odProjectId                :: !(Maybe (Textual Int64))
+    , _odTitle                    :: !(Maybe Text)
+    , _odSubAccountId             :: !(Maybe (Textual Int64))
+    , _odType                     :: !(Maybe OrderDocumentType)
+    , _odOrderId                  :: !(Maybe (Textual Int64))
+    , _odCancelled                :: !(Maybe Bool)
+    , _odCreatedInfo              :: !(Maybe LastModifiedInfo)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrderDocument' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'odSigned'
+--
+-- * 'odKind'
+--
+-- * 'odAdvertiserId'
+--
+-- * 'odLastSentTime'
+--
+-- * 'odAmendedOrderDocumentId'
+--
+-- * 'odLastSentRecipients'
+--
+-- * 'odEffectiveDate'
+--
+-- * 'odApprovedByUserProFileIds'
+--
+-- * 'odAccountId'
+--
+-- * 'odId'
+--
+-- * 'odProjectId'
+--
+-- * 'odTitle'
+--
+-- * 'odSubAccountId'
+--
+-- * 'odType'
+--
+-- * 'odOrderId'
+--
+-- * 'odCancelled'
+--
+-- * 'odCreatedInfo'
+orderDocument
+    :: OrderDocument
+orderDocument =
+    OrderDocument
+    { _odSigned = Nothing
+    , _odKind = "dfareporting#orderDocument"
+    , _odAdvertiserId = Nothing
+    , _odLastSentTime = Nothing
+    , _odAmendedOrderDocumentId = Nothing
+    , _odLastSentRecipients = Nothing
+    , _odEffectiveDate = Nothing
+    , _odApprovedByUserProFileIds = Nothing
+    , _odAccountId = Nothing
+    , _odId = Nothing
+    , _odProjectId = Nothing
+    , _odTitle = Nothing
+    , _odSubAccountId = Nothing
+    , _odType = Nothing
+    , _odOrderId = Nothing
+    , _odCancelled = Nothing
+    , _odCreatedInfo = Nothing
+    }
+
+-- | Whether this order document has been signed.
+odSigned :: Lens' OrderDocument (Maybe Bool)
+odSigned = lens _odSigned (\ s a -> s{_odSigned = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#orderDocument\".
+odKind :: Lens' OrderDocument Text
+odKind = lens _odKind (\ s a -> s{_odKind = a})
+
+-- | Advertiser ID of this order document.
+odAdvertiserId :: Lens' OrderDocument (Maybe Int64)
+odAdvertiserId
+  = lens _odAdvertiserId
+      (\ s a -> s{_odAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Timestamp of the last email sent with this order document.
+odLastSentTime :: Lens' OrderDocument (Maybe UTCTime)
+odLastSentTime
+  = lens _odLastSentTime
+      (\ s a -> s{_odLastSentTime = a})
+      . mapping _DateTime
+
+-- | The amended order document ID of this order document. An order document
+-- can be created by optionally amending another order document so that the
+-- change history can be preserved.
+odAmendedOrderDocumentId :: Lens' OrderDocument (Maybe Int64)
+odAmendedOrderDocumentId
+  = lens _odAmendedOrderDocumentId
+      (\ s a -> s{_odAmendedOrderDocumentId = a})
+      . mapping _Coerce
+
+-- | List of email addresses that received the last sent document.
+odLastSentRecipients :: Lens' OrderDocument [Text]
+odLastSentRecipients
+  = lens _odLastSentRecipients
+      (\ s a -> s{_odLastSentRecipients = a})
+      . _Default
+      . _Coerce
+
+-- | Effective date of this order document.
+odEffectiveDate :: Lens' OrderDocument (Maybe Day)
+odEffectiveDate
+  = lens _odEffectiveDate
+      (\ s a -> s{_odEffectiveDate = a})
+      . mapping _Date
+
+-- | IDs of users who have approved this order document.
+odApprovedByUserProFileIds :: Lens' OrderDocument [Int64]
+odApprovedByUserProFileIds
+  = lens _odApprovedByUserProFileIds
+      (\ s a -> s{_odApprovedByUserProFileIds = a})
+      . _Default
+      . _Coerce
+
+-- | Account ID of this order document.
+odAccountId :: Lens' OrderDocument (Maybe Int64)
+odAccountId
+  = lens _odAccountId (\ s a -> s{_odAccountId = a}) .
+      mapping _Coerce
+
+-- | ID of this order document.
+odId :: Lens' OrderDocument (Maybe Int64)
+odId
+  = lens _odId (\ s a -> s{_odId = a}) .
+      mapping _Coerce
+
+-- | Project ID of this order document.
+odProjectId :: Lens' OrderDocument (Maybe Int64)
+odProjectId
+  = lens _odProjectId (\ s a -> s{_odProjectId = a}) .
+      mapping _Coerce
+
+-- | Title of this order document.
+odTitle :: Lens' OrderDocument (Maybe Text)
+odTitle = lens _odTitle (\ s a -> s{_odTitle = a})
+
+-- | Subaccount ID of this order document.
+odSubAccountId :: Lens' OrderDocument (Maybe Int64)
+odSubAccountId
+  = lens _odSubAccountId
+      (\ s a -> s{_odSubAccountId = a})
+      . mapping _Coerce
+
+-- | Type of this order document
+odType :: Lens' OrderDocument (Maybe OrderDocumentType)
+odType = lens _odType (\ s a -> s{_odType = a})
+
+-- | ID of the order from which this order document is created.
+odOrderId :: Lens' OrderDocument (Maybe Int64)
+odOrderId
+  = lens _odOrderId (\ s a -> s{_odOrderId = a}) .
+      mapping _Coerce
+
+-- | Whether this order document is cancelled.
+odCancelled :: Lens' OrderDocument (Maybe Bool)
+odCancelled
+  = lens _odCancelled (\ s a -> s{_odCancelled = a})
+
+-- | Information about the creation of this order document.
+odCreatedInfo :: Lens' OrderDocument (Maybe LastModifiedInfo)
+odCreatedInfo
+  = lens _odCreatedInfo
+      (\ s a -> s{_odCreatedInfo = a})
+
+instance FromJSON OrderDocument where
+        parseJSON
+          = withObject "OrderDocument"
+              (\ o ->
+                 OrderDocument <$>
+                   (o .:? "signed") <*>
+                     (o .:? "kind" .!= "dfareporting#orderDocument")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "lastSentTime")
+                     <*> (o .:? "amendedOrderDocumentId")
+                     <*> (o .:? "lastSentRecipients" .!= mempty)
+                     <*> (o .:? "effectiveDate")
+                     <*> (o .:? "approvedByUserProfileIds" .!= mempty)
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "projectId")
+                     <*> (o .:? "title")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "orderId")
+                     <*> (o .:? "cancelled")
+                     <*> (o .:? "createdInfo"))
+
+instance ToJSON OrderDocument where
+        toJSON OrderDocument{..}
+          = object
+              (catMaybes
+                 [("signed" .=) <$> _odSigned,
+                  Just ("kind" .= _odKind),
+                  ("advertiserId" .=) <$> _odAdvertiserId,
+                  ("lastSentTime" .=) <$> _odLastSentTime,
+                  ("amendedOrderDocumentId" .=) <$>
+                    _odAmendedOrderDocumentId,
+                  ("lastSentRecipients" .=) <$> _odLastSentRecipients,
+                  ("effectiveDate" .=) <$> _odEffectiveDate,
+                  ("approvedByUserProfileIds" .=) <$>
+                    _odApprovedByUserProFileIds,
+                  ("accountId" .=) <$> _odAccountId,
+                  ("id" .=) <$> _odId,
+                  ("projectId" .=) <$> _odProjectId,
+                  ("title" .=) <$> _odTitle,
+                  ("subaccountId" .=) <$> _odSubAccountId,
+                  ("type" .=) <$> _odType,
+                  ("orderId" .=) <$> _odOrderId,
+                  ("cancelled" .=) <$> _odCancelled,
+                  ("createdInfo" .=) <$> _odCreatedInfo])
+
+-- | Contains information about a metro region that can be targeted by ads.
+--
+-- /See:/ 'metro' smart constructor.
+data Metro = Metro
+    { _metMetroCode     :: !(Maybe Text)
+    , _metKind          :: !Text
+    , _metName          :: !(Maybe Text)
+    , _metCountryCode   :: !(Maybe Text)
+    , _metDmaId         :: !(Maybe (Textual Int64))
+    , _metCountryDartId :: !(Maybe (Textual Int64))
+    , _metDartId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Metro' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'metMetroCode'
+--
+-- * 'metKind'
+--
+-- * 'metName'
+--
+-- * 'metCountryCode'
+--
+-- * 'metDmaId'
+--
+-- * 'metCountryDartId'
+--
+-- * 'metDartId'
+metro
+    :: Metro
+metro =
+    Metro
+    { _metMetroCode = Nothing
+    , _metKind = "dfareporting#metro"
+    , _metName = Nothing
+    , _metCountryCode = Nothing
+    , _metDmaId = Nothing
+    , _metCountryDartId = Nothing
+    , _metDartId = Nothing
+    }
+
+-- | Metro code of this metro region. This is equivalent to dma_id.
+metMetroCode :: Lens' Metro (Maybe Text)
+metMetroCode
+  = lens _metMetroCode (\ s a -> s{_metMetroCode = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#metro\".
+metKind :: Lens' Metro Text
+metKind = lens _metKind (\ s a -> s{_metKind = a})
+
+-- | Name of this metro region.
+metName :: Lens' Metro (Maybe Text)
+metName = lens _metName (\ s a -> s{_metName = a})
+
+-- | Country code of the country to which this metro region belongs.
+metCountryCode :: Lens' Metro (Maybe Text)
+metCountryCode
+  = lens _metCountryCode
+      (\ s a -> s{_metCountryCode = a})
+
+-- | DMA ID of this metro region. This is the ID used for targeting and
+-- generating reports, and is equivalent to metro_code.
+metDmaId :: Lens' Metro (Maybe Int64)
+metDmaId
+  = lens _metDmaId (\ s a -> s{_metDmaId = a}) .
+      mapping _Coerce
+
+-- | DART ID of the country to which this metro region belongs.
+metCountryDartId :: Lens' Metro (Maybe Int64)
+metCountryDartId
+  = lens _metCountryDartId
+      (\ s a -> s{_metCountryDartId = a})
+      . mapping _Coerce
+
+-- | DART ID of this metro region.
+metDartId :: Lens' Metro (Maybe Int64)
+metDartId
+  = lens _metDartId (\ s a -> s{_metDartId = a}) .
+      mapping _Coerce
+
+instance FromJSON Metro where
+        parseJSON
+          = withObject "Metro"
+              (\ o ->
+                 Metro <$>
+                   (o .:? "metroCode") <*>
+                     (o .:? "kind" .!= "dfareporting#metro")
+                     <*> (o .:? "name")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "dmaId")
+                     <*> (o .:? "countryDartId")
+                     <*> (o .:? "dartId"))
+
+instance ToJSON Metro where
+        toJSON Metro{..}
+          = object
+              (catMaybes
+                 [("metroCode" .=) <$> _metMetroCode,
+                  Just ("kind" .= _metKind), ("name" .=) <$> _metName,
+                  ("countryCode" .=) <$> _metCountryCode,
+                  ("dmaId" .=) <$> _metDmaId,
+                  ("countryDartId" .=) <$> _metCountryDartId,
+                  ("dartId" .=) <$> _metDartId])
+
+-- | Contains properties of a placement.
+--
+-- /See:/ 'placement' smart constructor.
+data Placement = Placement
+    { _p1Status                         :: !(Maybe PlacementStatus)
+    , _p1PlacementStrategyId            :: !(Maybe (Textual Int64))
+    , _p1TagFormats                     :: !(Maybe [PlacementTagFormatsItem])
+    , _p1SiteIdDimensionValue           :: !(Maybe DimensionValue)
+    , _p1PricingSchedule                :: !(Maybe PricingSchedule)
+    , _p1Size                           :: !(Maybe Size)
+    , _p1Kind                           :: !Text
+    , _p1KeyName                        :: !(Maybe Text)
+    , _p1CampaignIdDimensionValue       :: !(Maybe DimensionValue)
+    , _p1AdvertiserId                   :: !(Maybe (Textual Int64))
+    , _p1AdvertiserIdDimensionValue     :: !(Maybe DimensionValue)
+    , _p1CampaignId                     :: !(Maybe (Textual Int64))
+    , _p1IdDimensionValue               :: !(Maybe DimensionValue)
+    , _p1Primary                        :: !(Maybe Bool)
+    , _p1LookbackConfiguration          :: !(Maybe LookbackConfiguration)
+    , _p1TagSetting                     :: !(Maybe TagSetting)
+    , _p1ContentCategoryId              :: !(Maybe (Textual Int64))
+    , _p1DirectorySiteIdDimensionValue  :: !(Maybe DimensionValue)
+    , _p1AccountId                      :: !(Maybe (Textual Int64))
+    , _p1PaymentSource                  :: !(Maybe PlacementPaymentSource)
+    , _p1Name                           :: !(Maybe Text)
+    , _p1DirectorySiteId                :: !(Maybe (Textual Int64))
+    , _p1CreateInfo                     :: !(Maybe LastModifiedInfo)
+    , _p1LastModifiedInfo               :: !(Maybe LastModifiedInfo)
+    , _p1Id                             :: !(Maybe (Textual Int64))
+    , _p1SSLRequired                    :: !(Maybe Bool)
+    , _p1SubAccountId                   :: !(Maybe (Textual Int64))
+    , _p1PlacementGroupIdDimensionValue :: !(Maybe DimensionValue)
+    , _p1ExternalId                     :: !(Maybe Text)
+    , _p1PlacementGroupId               :: !(Maybe (Textual Int64))
+    , _p1Comment                        :: !(Maybe Text)
+    , _p1SiteId                         :: !(Maybe (Textual Int64))
+    , _p1Compatibility                  :: !(Maybe PlacementCompatibility)
+    , _p1Archived                       :: !(Maybe Bool)
+    , _p1PaymentApproved                :: !(Maybe Bool)
+    , _p1PublisherUpdateInfo            :: !(Maybe LastModifiedInfo)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Placement' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'p1Status'
+--
+-- * 'p1PlacementStrategyId'
+--
+-- * 'p1TagFormats'
+--
+-- * 'p1SiteIdDimensionValue'
+--
+-- * 'p1PricingSchedule'
+--
+-- * 'p1Size'
+--
+-- * 'p1Kind'
+--
+-- * 'p1KeyName'
+--
+-- * 'p1CampaignIdDimensionValue'
+--
+-- * 'p1AdvertiserId'
+--
+-- * 'p1AdvertiserIdDimensionValue'
+--
+-- * 'p1CampaignId'
+--
+-- * 'p1IdDimensionValue'
+--
+-- * 'p1Primary'
+--
+-- * 'p1LookbackConfiguration'
+--
+-- * 'p1TagSetting'
+--
+-- * 'p1ContentCategoryId'
+--
+-- * 'p1DirectorySiteIdDimensionValue'
+--
+-- * 'p1AccountId'
+--
+-- * 'p1PaymentSource'
+--
+-- * 'p1Name'
+--
+-- * 'p1DirectorySiteId'
+--
+-- * 'p1CreateInfo'
+--
+-- * 'p1LastModifiedInfo'
+--
+-- * 'p1Id'
+--
+-- * 'p1SSLRequired'
+--
+-- * 'p1SubAccountId'
+--
+-- * 'p1PlacementGroupIdDimensionValue'
+--
+-- * 'p1ExternalId'
+--
+-- * 'p1PlacementGroupId'
+--
+-- * 'p1Comment'
+--
+-- * 'p1SiteId'
+--
+-- * 'p1Compatibility'
+--
+-- * 'p1Archived'
+--
+-- * 'p1PaymentApproved'
+--
+-- * 'p1PublisherUpdateInfo'
+placement
+    :: Placement
+placement =
+    Placement
+    { _p1Status = Nothing
+    , _p1PlacementStrategyId = Nothing
+    , _p1TagFormats = Nothing
+    , _p1SiteIdDimensionValue = Nothing
+    , _p1PricingSchedule = Nothing
+    , _p1Size = Nothing
+    , _p1Kind = "dfareporting#placement"
+    , _p1KeyName = Nothing
+    , _p1CampaignIdDimensionValue = Nothing
+    , _p1AdvertiserId = Nothing
+    , _p1AdvertiserIdDimensionValue = Nothing
+    , _p1CampaignId = Nothing
+    , _p1IdDimensionValue = Nothing
+    , _p1Primary = Nothing
+    , _p1LookbackConfiguration = Nothing
+    , _p1TagSetting = Nothing
+    , _p1ContentCategoryId = Nothing
+    , _p1DirectorySiteIdDimensionValue = Nothing
+    , _p1AccountId = Nothing
+    , _p1PaymentSource = Nothing
+    , _p1Name = Nothing
+    , _p1DirectorySiteId = Nothing
+    , _p1CreateInfo = Nothing
+    , _p1LastModifiedInfo = Nothing
+    , _p1Id = Nothing
+    , _p1SSLRequired = Nothing
+    , _p1SubAccountId = Nothing
+    , _p1PlacementGroupIdDimensionValue = Nothing
+    , _p1ExternalId = Nothing
+    , _p1PlacementGroupId = Nothing
+    , _p1Comment = Nothing
+    , _p1SiteId = Nothing
+    , _p1Compatibility = Nothing
+    , _p1Archived = Nothing
+    , _p1PaymentApproved = Nothing
+    , _p1PublisherUpdateInfo = Nothing
+    }
+
+-- | Third-party placement status.
+p1Status :: Lens' Placement (Maybe PlacementStatus)
+p1Status = lens _p1Status (\ s a -> s{_p1Status = a})
+
+-- | ID of the placement strategy assigned to this placement.
+p1PlacementStrategyId :: Lens' Placement (Maybe Int64)
+p1PlacementStrategyId
+  = lens _p1PlacementStrategyId
+      (\ s a -> s{_p1PlacementStrategyId = a})
+      . mapping _Coerce
+
+-- | Tag formats to generate for this placement. This field is required on
+-- insertion. Acceptable values are: - \"PLACEMENT_TAG_STANDARD\" -
+-- \"PLACEMENT_TAG_IFRAME_JAVASCRIPT\" - \"PLACEMENT_TAG_IFRAME_ILAYER\" -
+-- \"PLACEMENT_TAG_INTERNAL_REDIRECT\" - \"PLACEMENT_TAG_JAVASCRIPT\" -
+-- \"PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT\" -
+-- \"PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT\" -
+-- \"PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT\" -
+-- \"PLACEMENT_TAG_CLICK_COMMANDS\" -
+-- \"PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH\" - \"PLACEMENT_TAG_TRACKING\" -
+-- \"PLACEMENT_TAG_TRACKING_IFRAME\" -
+-- \"PLACEMENT_TAG_TRACKING_JAVASCRIPT\"
+p1TagFormats :: Lens' Placement [PlacementTagFormatsItem]
+p1TagFormats
+  = lens _p1TagFormats (\ s a -> s{_p1TagFormats = a})
+      . _Default
+      . _Coerce
+
+-- | Dimension value for the ID of the site. This is a read-only,
+-- auto-generated field.
+p1SiteIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1SiteIdDimensionValue
+  = lens _p1SiteIdDimensionValue
+      (\ s a -> s{_p1SiteIdDimensionValue = a})
+
+-- | Pricing schedule of this placement. This field is required on insertion,
+-- specifically subfields startDate, endDate and pricingType.
+p1PricingSchedule :: Lens' Placement (Maybe PricingSchedule)
+p1PricingSchedule
+  = lens _p1PricingSchedule
+      (\ s a -> s{_p1PricingSchedule = a})
+
+-- | Size associated with this placement. When inserting or updating a
+-- placement, only the size ID field is used. This field is required on
+-- insertion.
+p1Size :: Lens' Placement (Maybe Size)
+p1Size = lens _p1Size (\ s a -> s{_p1Size = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placement\".
+p1Kind :: Lens' Placement Text
+p1Kind = lens _p1Kind (\ s a -> s{_p1Kind = a})
+
+-- | Key name of this placement. This is a read-only, auto-generated field.
+p1KeyName :: Lens' Placement (Maybe Text)
+p1KeyName
+  = lens _p1KeyName (\ s a -> s{_p1KeyName = a})
+
+-- | Dimension value for the ID of the campaign. This is a read-only,
+-- auto-generated field.
+p1CampaignIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1CampaignIdDimensionValue
+  = lens _p1CampaignIdDimensionValue
+      (\ s a -> s{_p1CampaignIdDimensionValue = a})
+
+-- | Advertiser ID of this placement. This field can be left blank.
+p1AdvertiserId :: Lens' Placement (Maybe Int64)
+p1AdvertiserId
+  = lens _p1AdvertiserId
+      (\ s a -> s{_p1AdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+p1AdvertiserIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1AdvertiserIdDimensionValue
+  = lens _p1AdvertiserIdDimensionValue
+      (\ s a -> s{_p1AdvertiserIdDimensionValue = a})
+
+-- | Campaign ID of this placement. This field is a required field on
+-- insertion.
+p1CampaignId :: Lens' Placement (Maybe Int64)
+p1CampaignId
+  = lens _p1CampaignId (\ s a -> s{_p1CampaignId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of this placement. This is a read-only,
+-- auto-generated field.
+p1IdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1IdDimensionValue
+  = lens _p1IdDimensionValue
+      (\ s a -> s{_p1IdDimensionValue = a})
+
+-- | Whether this placement is the primary placement of a roadblock
+-- (placement group). You cannot change this field from true to false.
+-- Setting this field to true will automatically set the primary field on
+-- the original primary placement of the roadblock to false, and it will
+-- automatically set the roadblock\'s primaryPlacementId field to the ID of
+-- this placement.
+p1Primary :: Lens' Placement (Maybe Bool)
+p1Primary
+  = lens _p1Primary (\ s a -> s{_p1Primary = a})
+
+-- | Lookback window settings for this placement.
+p1LookbackConfiguration :: Lens' Placement (Maybe LookbackConfiguration)
+p1LookbackConfiguration
+  = lens _p1LookbackConfiguration
+      (\ s a -> s{_p1LookbackConfiguration = a})
+
+-- | Tag settings for this placement.
+p1TagSetting :: Lens' Placement (Maybe TagSetting)
+p1TagSetting
+  = lens _p1TagSetting (\ s a -> s{_p1TagSetting = a})
+
+-- | ID of the content category assigned to this placement.
+p1ContentCategoryId :: Lens' Placement (Maybe Int64)
+p1ContentCategoryId
+  = lens _p1ContentCategoryId
+      (\ s a -> s{_p1ContentCategoryId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the directory site. This is a read-only,
+-- auto-generated field.
+p1DirectorySiteIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1DirectorySiteIdDimensionValue
+  = lens _p1DirectorySiteIdDimensionValue
+      (\ s a -> s{_p1DirectorySiteIdDimensionValue = a})
+
+-- | Account ID of this placement. This field can be left blank.
+p1AccountId :: Lens' Placement (Maybe Int64)
+p1AccountId
+  = lens _p1AccountId (\ s a -> s{_p1AccountId = a}) .
+      mapping _Coerce
+
+-- | Payment source for this placement. This is a required field that is
+-- read-only after insertion.
+p1PaymentSource :: Lens' Placement (Maybe PlacementPaymentSource)
+p1PaymentSource
+  = lens _p1PaymentSource
+      (\ s a -> s{_p1PaymentSource = a})
+
+-- | Name of this placement.This is a required field and must be less than
+-- 256 characters long.
+p1Name :: Lens' Placement (Maybe Text)
+p1Name = lens _p1Name (\ s a -> s{_p1Name = a})
+
+-- | Directory site ID of this placement. On insert, you must set either this
+-- field or the siteId field to specify the site associated with this
+-- placement. This is a required field that is read-only after insertion.
+p1DirectorySiteId :: Lens' Placement (Maybe Int64)
+p1DirectorySiteId
+  = lens _p1DirectorySiteId
+      (\ s a -> s{_p1DirectorySiteId = a})
+      . mapping _Coerce
+
+-- | Information about the creation of this placement. This is a read-only
+-- field.
+p1CreateInfo :: Lens' Placement (Maybe LastModifiedInfo)
+p1CreateInfo
+  = lens _p1CreateInfo (\ s a -> s{_p1CreateInfo = a})
+
+-- | Information about the most recent modification of this placement. This
+-- is a read-only field.
+p1LastModifiedInfo :: Lens' Placement (Maybe LastModifiedInfo)
+p1LastModifiedInfo
+  = lens _p1LastModifiedInfo
+      (\ s a -> s{_p1LastModifiedInfo = a})
+
+-- | ID of this placement. This is a read-only, auto-generated field.
+p1Id :: Lens' Placement (Maybe Int64)
+p1Id
+  = lens _p1Id (\ s a -> s{_p1Id = a}) .
+      mapping _Coerce
+
+-- | Whether creatives assigned to this placement must be SSL-compliant.
+p1SSLRequired :: Lens' Placement (Maybe Bool)
+p1SSLRequired
+  = lens _p1SSLRequired
+      (\ s a -> s{_p1SSLRequired = a})
+
+-- | Subaccount ID of this placement. This field can be left blank.
+p1SubAccountId :: Lens' Placement (Maybe Int64)
+p1SubAccountId
+  = lens _p1SubAccountId
+      (\ s a -> s{_p1SubAccountId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the placement group. This is a read-only,
+-- auto-generated field.
+p1PlacementGroupIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1PlacementGroupIdDimensionValue
+  = lens _p1PlacementGroupIdDimensionValue
+      (\ s a -> s{_p1PlacementGroupIdDimensionValue = a})
+
+-- | External ID for this placement.
+p1ExternalId :: Lens' Placement (Maybe Text)
+p1ExternalId
+  = lens _p1ExternalId (\ s a -> s{_p1ExternalId = a})
+
+-- | ID of this placement\'s group, if applicable.
+p1PlacementGroupId :: Lens' Placement (Maybe Int64)
+p1PlacementGroupId
+  = lens _p1PlacementGroupId
+      (\ s a -> s{_p1PlacementGroupId = a})
+      . mapping _Coerce
+
+-- | Comments for this placement.
+p1Comment :: Lens' Placement (Maybe Text)
+p1Comment
+  = lens _p1Comment (\ s a -> s{_p1Comment = a})
+
+-- | Site ID associated with this placement. On insert, you must set either
+-- this field or the directorySiteId field to specify the site associated
+-- with this placement. This is a required field that is read-only after
+-- insertion.
+p1SiteId :: Lens' Placement (Maybe Int64)
+p1SiteId
+  = lens _p1SiteId (\ s a -> s{_p1SiteId = a}) .
+      mapping _Coerce
+
+-- | Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering
+-- either on desktop or on mobile devices for regular or interstitial ads,
+-- respectively. APP and APP_INTERSTITIAL are for rendering in mobile
+-- apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads
+-- developed with the VAST standard. This field is required on insertion.
+p1Compatibility :: Lens' Placement (Maybe PlacementCompatibility)
+p1Compatibility
+  = lens _p1Compatibility
+      (\ s a -> s{_p1Compatibility = a})
+
+-- | Whether this placement is archived.
+p1Archived :: Lens' Placement (Maybe Bool)
+p1Archived
+  = lens _p1Archived (\ s a -> s{_p1Archived = a})
+
+-- | Whether payment was approved for this placement. This is a read-only
+-- field relevant only to publisher-paid placements.
+p1PaymentApproved :: Lens' Placement (Maybe Bool)
+p1PaymentApproved
+  = lens _p1PaymentApproved
+      (\ s a -> s{_p1PaymentApproved = a})
+
+-- | Information about the last publisher update. This is a read-only field.
+p1PublisherUpdateInfo :: Lens' Placement (Maybe LastModifiedInfo)
+p1PublisherUpdateInfo
+  = lens _p1PublisherUpdateInfo
+      (\ s a -> s{_p1PublisherUpdateInfo = a})
+
+instance FromJSON Placement where
+        parseJSON
+          = withObject "Placement"
+              (\ o ->
+                 Placement <$>
+                   (o .:? "status") <*> (o .:? "placementStrategyId")
+                     <*> (o .:? "tagFormats" .!= mempty)
+                     <*> (o .:? "siteIdDimensionValue")
+                     <*> (o .:? "pricingSchedule")
+                     <*> (o .:? "size")
+                     <*> (o .:? "kind" .!= "dfareporting#placement")
+                     <*> (o .:? "keyName")
+                     <*> (o .:? "campaignIdDimensionValue")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "campaignId")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "primary")
+                     <*> (o .:? "lookbackConfiguration")
+                     <*> (o .:? "tagSetting")
+                     <*> (o .:? "contentCategoryId")
+                     <*> (o .:? "directorySiteIdDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "paymentSource")
+                     <*> (o .:? "name")
+                     <*> (o .:? "directorySiteId")
+                     <*> (o .:? "createInfo")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "sslRequired")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "placementGroupIdDimensionValue")
+                     <*> (o .:? "externalId")
+                     <*> (o .:? "placementGroupId")
+                     <*> (o .:? "comment")
+                     <*> (o .:? "siteId")
+                     <*> (o .:? "compatibility")
+                     <*> (o .:? "archived")
+                     <*> (o .:? "paymentApproved")
+                     <*> (o .:? "publisherUpdateInfo"))
+
+instance ToJSON Placement where
+        toJSON Placement{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _p1Status,
+                  ("placementStrategyId" .=) <$>
+                    _p1PlacementStrategyId,
+                  ("tagFormats" .=) <$> _p1TagFormats,
+                  ("siteIdDimensionValue" .=) <$>
+                    _p1SiteIdDimensionValue,
+                  ("pricingSchedule" .=) <$> _p1PricingSchedule,
+                  ("size" .=) <$> _p1Size, Just ("kind" .= _p1Kind),
+                  ("keyName" .=) <$> _p1KeyName,
+                  ("campaignIdDimensionValue" .=) <$>
+                    _p1CampaignIdDimensionValue,
+                  ("advertiserId" .=) <$> _p1AdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _p1AdvertiserIdDimensionValue,
+                  ("campaignId" .=) <$> _p1CampaignId,
+                  ("idDimensionValue" .=) <$> _p1IdDimensionValue,
+                  ("primary" .=) <$> _p1Primary,
+                  ("lookbackConfiguration" .=) <$>
+                    _p1LookbackConfiguration,
+                  ("tagSetting" .=) <$> _p1TagSetting,
+                  ("contentCategoryId" .=) <$> _p1ContentCategoryId,
+                  ("directorySiteIdDimensionValue" .=) <$>
+                    _p1DirectorySiteIdDimensionValue,
+                  ("accountId" .=) <$> _p1AccountId,
+                  ("paymentSource" .=) <$> _p1PaymentSource,
+                  ("name" .=) <$> _p1Name,
+                  ("directorySiteId" .=) <$> _p1DirectorySiteId,
+                  ("createInfo" .=) <$> _p1CreateInfo,
+                  ("lastModifiedInfo" .=) <$> _p1LastModifiedInfo,
+                  ("id" .=) <$> _p1Id,
+                  ("sslRequired" .=) <$> _p1SSLRequired,
+                  ("subaccountId" .=) <$> _p1SubAccountId,
+                  ("placementGroupIdDimensionValue" .=) <$>
+                    _p1PlacementGroupIdDimensionValue,
+                  ("externalId" .=) <$> _p1ExternalId,
+                  ("placementGroupId" .=) <$> _p1PlacementGroupId,
+                  ("comment" .=) <$> _p1Comment,
+                  ("siteId" .=) <$> _p1SiteId,
+                  ("compatibility" .=) <$> _p1Compatibility,
+                  ("archived" .=) <$> _p1Archived,
+                  ("paymentApproved" .=) <$> _p1PaymentApproved,
+                  ("publisherUpdateInfo" .=) <$>
+                    _p1PublisherUpdateInfo])
+
+-- | Site List Response
+--
+-- /See:/ 'sitesListResponse' smart constructor.
+data SitesListResponse = SitesListResponse
+    { _sitNextPageToken :: !(Maybe Text)
+    , _sitKind          :: !Text
+    , _sitSites         :: !(Maybe [Site])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SitesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sitNextPageToken'
+--
+-- * 'sitKind'
+--
+-- * 'sitSites'
+sitesListResponse
+    :: SitesListResponse
+sitesListResponse =
+    SitesListResponse
+    { _sitNextPageToken = Nothing
+    , _sitKind = "dfareporting#sitesListResponse"
+    , _sitSites = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+sitNextPageToken :: Lens' SitesListResponse (Maybe Text)
+sitNextPageToken
+  = lens _sitNextPageToken
+      (\ s a -> s{_sitNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#sitesListResponse\".
+sitKind :: Lens' SitesListResponse Text
+sitKind = lens _sitKind (\ s a -> s{_sitKind = a})
+
+-- | Site collection.
+sitSites :: Lens' SitesListResponse [Site]
+sitSites
+  = lens _sitSites (\ s a -> s{_sitSites = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON SitesListResponse where
+        parseJSON
+          = withObject "SitesListResponse"
+              (\ o ->
+                 SitesListResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#sitesListResponse")
+                     <*> (o .:? "sites" .!= mempty))
+
+instance ToJSON SitesListResponse where
+        toJSON SitesListResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _sitNextPageToken,
+                  Just ("kind" .= _sitKind),
+                  ("sites" .=) <$> _sitSites])
+
+-- | Contains properties of a creative field.
+--
+-- /See:/ 'creativeField' smart constructor.
+data CreativeField = CreativeField
+    { _cffKind                       :: !Text
+    , _cffAdvertiserId               :: !(Maybe (Textual Int64))
+    , _cffAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
+    , _cffAccountId                  :: !(Maybe (Textual Int64))
+    , _cffName                       :: !(Maybe Text)
+    , _cffId                         :: !(Maybe (Textual Int64))
+    , _cffSubAccountId               :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeField' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cffKind'
+--
+-- * 'cffAdvertiserId'
+--
+-- * 'cffAdvertiserIdDimensionValue'
+--
+-- * 'cffAccountId'
+--
+-- * 'cffName'
+--
+-- * 'cffId'
+--
+-- * 'cffSubAccountId'
+creativeField
+    :: CreativeField
+creativeField =
+    CreativeField
+    { _cffKind = "dfareporting#creativeField"
+    , _cffAdvertiserId = Nothing
+    , _cffAdvertiserIdDimensionValue = Nothing
+    , _cffAccountId = Nothing
+    , _cffName = Nothing
+    , _cffId = Nothing
+    , _cffSubAccountId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeField\".
+cffKind :: Lens' CreativeField Text
+cffKind = lens _cffKind (\ s a -> s{_cffKind = a})
+
+-- | Advertiser ID of this creative field. This is a required field on
+-- insertion.
+cffAdvertiserId :: Lens' CreativeField (Maybe Int64)
+cffAdvertiserId
+  = lens _cffAdvertiserId
+      (\ s a -> s{_cffAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+cffAdvertiserIdDimensionValue :: Lens' CreativeField (Maybe DimensionValue)
+cffAdvertiserIdDimensionValue
+  = lens _cffAdvertiserIdDimensionValue
+      (\ s a -> s{_cffAdvertiserIdDimensionValue = a})
+
+-- | Account ID of this creative field. This is a read-only field that can be
+-- left blank.
+cffAccountId :: Lens' CreativeField (Maybe Int64)
+cffAccountId
+  = lens _cffAccountId (\ s a -> s{_cffAccountId = a})
+      . mapping _Coerce
+
+-- | Name of this creative field. This is a required field and must be less
+-- than 256 characters long and unique among creative fields of the same
+-- advertiser.
+cffName :: Lens' CreativeField (Maybe Text)
+cffName = lens _cffName (\ s a -> s{_cffName = a})
+
+-- | ID of this creative field. This is a read-only, auto-generated field.
+cffId :: Lens' CreativeField (Maybe Int64)
+cffId
+  = lens _cffId (\ s a -> s{_cffId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this creative field. This is a read-only field that can
+-- be left blank.
+cffSubAccountId :: Lens' CreativeField (Maybe Int64)
+cffSubAccountId
+  = lens _cffSubAccountId
+      (\ s a -> s{_cffSubAccountId = a})
+      . mapping _Coerce
+
+instance FromJSON CreativeField where
+        parseJSON
+          = withObject "CreativeField"
+              (\ o ->
+                 CreativeField <$>
+                   (o .:? "kind" .!= "dfareporting#creativeField") <*>
+                     (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId"))
+
+instance ToJSON CreativeField where
+        toJSON CreativeField{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cffKind),
+                  ("advertiserId" .=) <$> _cffAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _cffAdvertiserIdDimensionValue,
+                  ("accountId" .=) <$> _cffAccountId,
+                  ("name" .=) <$> _cffName, ("id" .=) <$> _cffId,
+                  ("subaccountId" .=) <$> _cffSubAccountId])
+
+-- | Properties of inheriting and overriding the default click-through event
+-- tag. A campaign may override the event tag defined at the advertiser
+-- level, and an ad may also override the campaign\'s setting further.
+--
+-- /See:/ 'defaultClickThroughEventTagProperties' smart constructor.
+data DefaultClickThroughEventTagProperties = DefaultClickThroughEventTagProperties
+    { _dctetpOverrideInheritedEventTag     :: !(Maybe Bool)
+    , _dctetpDefaultClickThroughEventTagId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DefaultClickThroughEventTagProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dctetpOverrideInheritedEventTag'
+--
+-- * 'dctetpDefaultClickThroughEventTagId'
+defaultClickThroughEventTagProperties
+    :: DefaultClickThroughEventTagProperties
+defaultClickThroughEventTagProperties =
+    DefaultClickThroughEventTagProperties
+    { _dctetpOverrideInheritedEventTag = Nothing
+    , _dctetpDefaultClickThroughEventTagId = Nothing
+    }
+
+-- | Whether this entity should override the inherited default click-through
+-- event tag with its own defined value.
+dctetpOverrideInheritedEventTag :: Lens' DefaultClickThroughEventTagProperties (Maybe Bool)
+dctetpOverrideInheritedEventTag
+  = lens _dctetpOverrideInheritedEventTag
+      (\ s a -> s{_dctetpOverrideInheritedEventTag = a})
+
+-- | ID of the click-through event tag to apply to all ads in this entity\'s
+-- scope.
+dctetpDefaultClickThroughEventTagId :: Lens' DefaultClickThroughEventTagProperties (Maybe Int64)
+dctetpDefaultClickThroughEventTagId
+  = lens _dctetpDefaultClickThroughEventTagId
+      (\ s a ->
+         s{_dctetpDefaultClickThroughEventTagId = a})
+      . mapping _Coerce
+
+instance FromJSON
+         DefaultClickThroughEventTagProperties where
+        parseJSON
+          = withObject "DefaultClickThroughEventTagProperties"
+              (\ o ->
+                 DefaultClickThroughEventTagProperties <$>
+                   (o .:? "overrideInheritedEventTag") <*>
+                     (o .:? "defaultClickThroughEventTagId"))
+
+instance ToJSON DefaultClickThroughEventTagProperties
+         where
+        toJSON DefaultClickThroughEventTagProperties{..}
+          = object
+              (catMaybes
+                 [("overrideInheritedEventTag" .=) <$>
+                    _dctetpOverrideInheritedEventTag,
+                  ("defaultClickThroughEventTagId" .=) <$>
+                    _dctetpDefaultClickThroughEventTagId])
+
+-- | Remarketing List Targeting Expression.
+--
+-- /See:/ 'listTargetingExpression' smart constructor.
+newtype ListTargetingExpression = ListTargetingExpression
+    { _lteExpression :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListTargetingExpression' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lteExpression'
+listTargetingExpression
+    :: ListTargetingExpression
+listTargetingExpression =
+    ListTargetingExpression
+    { _lteExpression = Nothing
+    }
+
+-- | Expression describing which lists are being targeted by the ad.
+lteExpression :: Lens' ListTargetingExpression (Maybe Text)
+lteExpression
+  = lens _lteExpression
+      (\ s a -> s{_lteExpression = a})
+
+instance FromJSON ListTargetingExpression where
+        parseJSON
+          = withObject "ListTargetingExpression"
+              (\ o ->
+                 ListTargetingExpression <$> (o .:? "expression"))
+
+instance ToJSON ListTargetingExpression where
+        toJSON ListTargetingExpression{..}
+          = object
+              (catMaybes [("expression" .=) <$> _lteExpression])
diff --git a/gen/Network/Google/DFAReporting/Types/Sum.hs b/gen/Network/Google/DFAReporting/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DFAReporting/Types/Sum.hs
@@ -0,0 +1,7376 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE LambdaCase         #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.DFAReporting.Types.Sum
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.DFAReporting.Types.Sum where
+
+import           Network.Google.Prelude
+
+-- | Order of sorted results, default is ASCENDING.
+data PlacementsListSortOrder
+    = Ascending
+      -- ^ @ASCENDING@
+    | Descending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementsListSortOrder
+
+instance FromText PlacementsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just Ascending
+        "DESCENDING" -> Just Descending
+        _ -> Nothing
+
+instance ToText PlacementsListSortOrder where
+    toText = \case
+        Ascending -> "ASCENDING"
+        Descending -> "DESCENDING"
+
+instance FromJSON PlacementsListSortOrder where
+    parseJSON = parseJSONText "PlacementsListSortOrder"
+
+instance ToJSON PlacementsListSortOrder where
+    toJSON = toJSONText
+
+-- | The date range relative to the date of when the report is run.
+data DateRangeRelativeDateRange
+    = Last24Months
+      -- ^ @LAST_24_MONTHS@
+    | Last30Days
+      -- ^ @LAST_30_DAYS@
+    | Last365Days
+      -- ^ @LAST_365_DAYS@
+    | Last7Days
+      -- ^ @LAST_7_DAYS@
+    | Last90Days
+      -- ^ @LAST_90_DAYS@
+    | MonthToDate
+      -- ^ @MONTH_TO_DATE@
+    | PreviousMonth
+      -- ^ @PREVIOUS_MONTH@
+    | PreviousQuarter
+      -- ^ @PREVIOUS_QUARTER@
+    | PreviousWeek
+      -- ^ @PREVIOUS_WEEK@
+    | PreviousYear
+      -- ^ @PREVIOUS_YEAR@
+    | QuarterToDate
+      -- ^ @QUARTER_TO_DATE@
+    | Today
+      -- ^ @TODAY@
+    | WeekToDate
+      -- ^ @WEEK_TO_DATE@
+    | YearToDate
+      -- ^ @YEAR_TO_DATE@
+    | Yesterday
+      -- ^ @YESTERDAY@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DateRangeRelativeDateRange
+
+instance FromText DateRangeRelativeDateRange where
+    fromText = \case
+        "LAST_24_MONTHS" -> Just Last24Months
+        "LAST_30_DAYS" -> Just Last30Days
+        "LAST_365_DAYS" -> Just Last365Days
+        "LAST_7_DAYS" -> Just Last7Days
+        "LAST_90_DAYS" -> Just Last90Days
+        "MONTH_TO_DATE" -> Just MonthToDate
+        "PREVIOUS_MONTH" -> Just PreviousMonth
+        "PREVIOUS_QUARTER" -> Just PreviousQuarter
+        "PREVIOUS_WEEK" -> Just PreviousWeek
+        "PREVIOUS_YEAR" -> Just PreviousYear
+        "QUARTER_TO_DATE" -> Just QuarterToDate
+        "TODAY" -> Just Today
+        "WEEK_TO_DATE" -> Just WeekToDate
+        "YEAR_TO_DATE" -> Just YearToDate
+        "YESTERDAY" -> Just Yesterday
+        _ -> Nothing
+
+instance ToText DateRangeRelativeDateRange where
+    toText = \case
+        Last24Months -> "LAST_24_MONTHS"
+        Last30Days -> "LAST_30_DAYS"
+        Last365Days -> "LAST_365_DAYS"
+        Last7Days -> "LAST_7_DAYS"
+        Last90Days -> "LAST_90_DAYS"
+        MonthToDate -> "MONTH_TO_DATE"
+        PreviousMonth -> "PREVIOUS_MONTH"
+        PreviousQuarter -> "PREVIOUS_QUARTER"
+        PreviousWeek -> "PREVIOUS_WEEK"
+        PreviousYear -> "PREVIOUS_YEAR"
+        QuarterToDate -> "QUARTER_TO_DATE"
+        Today -> "TODAY"
+        WeekToDate -> "WEEK_TO_DATE"
+        YearToDate -> "YEAR_TO_DATE"
+        Yesterday -> "YESTERDAY"
+
+instance FromJSON DateRangeRelativeDateRange where
+    parseJSON = parseJSONText "DateRangeRelativeDateRange"
+
+instance ToJSON DateRangeRelativeDateRange where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data AdvertisersListSortField
+    = ID
+      -- ^ @ID@
+    | Name
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdvertisersListSortField
+
+instance FromText AdvertisersListSortField where
+    fromText = \case
+        "ID" -> Just ID
+        "NAME" -> Just Name
+        _ -> Nothing
+
+instance ToText AdvertisersListSortField where
+    toText = \case
+        ID -> "ID"
+        Name -> "NAME"
+
+instance FromJSON AdvertisersListSortField where
+    parseJSON = parseJSONText "AdvertisersListSortField"
+
+instance ToJSON AdvertisersListSortField where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CreativeFieldsListSortOrder
+    = CFLSOAscending
+      -- ^ @ASCENDING@
+    | CFLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeFieldsListSortOrder
+
+instance FromText CreativeFieldsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just CFLSOAscending
+        "DESCENDING" -> Just CFLSODescending
+        _ -> Nothing
+
+instance ToText CreativeFieldsListSortOrder where
+    toText = \case
+        CFLSOAscending -> "ASCENDING"
+        CFLSODescending -> "DESCENDING"
+
+instance FromJSON CreativeFieldsListSortOrder where
+    parseJSON = parseJSONText "CreativeFieldsListSortOrder"
+
+instance ToJSON CreativeFieldsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data UserRolesListSortField
+    = URLSFID
+      -- ^ @ID@
+    | URLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable UserRolesListSortField
+
+instance FromText UserRolesListSortField where
+    fromText = \case
+        "ID" -> Just URLSFID
+        "NAME" -> Just URLSFName
+        _ -> Nothing
+
+instance ToText UserRolesListSortField where
+    toText = \case
+        URLSFID -> "ID"
+        URLSFName -> "NAME"
+
+instance FromJSON UserRolesListSortField where
+    parseJSON = parseJSONText "UserRolesListSortField"
+
+instance ToJSON UserRolesListSortField where
+    toJSON = toJSONText
+
+-- | Tag format type for the floodlight activity. If left blank, the tag
+-- format will default to HTML.
+data FloodlightActivityTagFormat
+    = HTML
+      -- ^ @HTML@
+    | Xhtml
+      -- ^ @XHTML@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivityTagFormat
+
+instance FromText FloodlightActivityTagFormat where
+    fromText = \case
+        "HTML" -> Just HTML
+        "XHTML" -> Just Xhtml
+        _ -> Nothing
+
+instance ToText FloodlightActivityTagFormat where
+    toText = \case
+        HTML -> "HTML"
+        Xhtml -> "XHTML"
+
+instance FromJSON FloodlightActivityTagFormat where
+    parseJSON = parseJSONText "FloodlightActivityTagFormat"
+
+instance ToJSON FloodlightActivityTagFormat where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data OrderDocumentsListSortOrder
+    = ODLSOAscending
+      -- ^ @ASCENDING@
+    | ODLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable OrderDocumentsListSortOrder
+
+instance FromText OrderDocumentsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just ODLSOAscending
+        "DESCENDING" -> Just ODLSODescending
+        _ -> Nothing
+
+instance ToText OrderDocumentsListSortOrder where
+    toText = \case
+        ODLSOAscending -> "ASCENDING"
+        ODLSODescending -> "DESCENDING"
+
+instance FromJSON OrderDocumentsListSortOrder where
+    parseJSON = parseJSONText "OrderDocumentsListSortOrder"
+
+instance ToJSON OrderDocumentsListSortOrder where
+    toJSON = toJSONText
+
+-- | Role of the asset in relation to creative. Applicable to all but the
+-- following creative types: all REDIRECT and TRACKING_TEXT. This is a
+-- required field. PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE,
+-- HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain
+-- multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies
+-- to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all
+-- VPAID creatives. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to
+-- FLASH_INPAGE creatives. OTHER refers to assets from sources other than
+-- DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and
+-- all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user
+-- in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+-- TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO
+-- assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+-- ALTERNATE_VIDEO refers to the DCM representation of child asset videos
+-- from Studio, and is applicable to VPAID_LINEAR creatives. These cannot
+-- be added or removed within DCM. For VPAID_LINEAR creatives,
+-- PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are
+-- marked active serve as backup in case the VPAID creative cannot be
+-- served. Only PARENT_VIDEO assets can be added or removed for an
+-- INSTREAM_VIDEO or VPAID_LINEAR creative.
+data CreativeAssetRole
+    = AdditionalFlash
+      -- ^ @ADDITIONAL_FLASH@
+    | AdditionalImage
+      -- ^ @ADDITIONAL_IMAGE@
+    | AlternateVideo
+      -- ^ @ALTERNATE_VIDEO@
+    | BackupImage
+      -- ^ @BACKUP_IMAGE@
+    | Other
+      -- ^ @OTHER@
+    | ParentVideo
+      -- ^ @PARENT_VIDEO@
+    | Primary
+      -- ^ @PRIMARY@
+    | TranscodedVideo
+      -- ^ @TRANSCODED_VIDEO@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetRole
+
+instance FromText CreativeAssetRole where
+    fromText = \case
+        "ADDITIONAL_FLASH" -> Just AdditionalFlash
+        "ADDITIONAL_IMAGE" -> Just AdditionalImage
+        "ALTERNATE_VIDEO" -> Just AlternateVideo
+        "BACKUP_IMAGE" -> Just BackupImage
+        "OTHER" -> Just Other
+        "PARENT_VIDEO" -> Just ParentVideo
+        "PRIMARY" -> Just Primary
+        "TRANSCODED_VIDEO" -> Just TranscodedVideo
+        _ -> Nothing
+
+instance ToText CreativeAssetRole where
+    toText = \case
+        AdditionalFlash -> "ADDITIONAL_FLASH"
+        AdditionalImage -> "ADDITIONAL_IMAGE"
+        AlternateVideo -> "ALTERNATE_VIDEO"
+        BackupImage -> "BACKUP_IMAGE"
+        Other -> "OTHER"
+        ParentVideo -> "PARENT_VIDEO"
+        Primary -> "PRIMARY"
+        TranscodedVideo -> "TRANSCODED_VIDEO"
+
+instance FromJSON CreativeAssetRole where
+    parseJSON = parseJSONText "CreativeAssetRole"
+
+instance ToJSON CreativeAssetRole where
+    toJSON = toJSONText
+
+-- | The delivery type for the recipient.
+data RecipientDeliveryType
+    = Attachment
+      -- ^ @ATTACHMENT@
+    | Link
+      -- ^ @LINK@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable RecipientDeliveryType
+
+instance FromText RecipientDeliveryType where
+    fromText = \case
+        "ATTACHMENT" -> Just Attachment
+        "LINK" -> Just Link
+        _ -> Nothing
+
+instance ToText RecipientDeliveryType where
+    toText = \case
+        Attachment -> "ATTACHMENT"
+        Link -> "LINK"
+
+instance FromJSON RecipientDeliveryType where
+    parseJSON = parseJSONText "RecipientDeliveryType"
+
+instance ToJSON RecipientDeliveryType where
+    toJSON = toJSONText
+
+-- | Third-party URL type for in-stream video creatives.
+data ThirdPartyTrackingURLThirdPartyURLType
+    = ClickTracking
+      -- ^ @CLICK_TRACKING@
+    | Impression
+      -- ^ @IMPRESSION@
+    | RichMediaBackupImpression
+      -- ^ @RICH_MEDIA_BACKUP_IMPRESSION@
+    | RichMediaImpression
+      -- ^ @RICH_MEDIA_IMPRESSION@
+    | RichMediaRmImpression
+      -- ^ @RICH_MEDIA_RM_IMPRESSION@
+    | Survey
+      -- ^ @SURVEY@
+    | VideoComplete
+      -- ^ @VIDEO_COMPLETE@
+    | VideoCustom
+      -- ^ @VIDEO_CUSTOM@
+    | VideoFirstQuartile
+      -- ^ @VIDEO_FIRST_QUARTILE@
+    | VideoFullscreen
+      -- ^ @VIDEO_FULLSCREEN@
+    | VideoMidpoint
+      -- ^ @VIDEO_MIDPOINT@
+    | VideoMute
+      -- ^ @VIDEO_MUTE@
+    | VideoPause
+      -- ^ @VIDEO_PAUSE@
+    | VideoRewind
+      -- ^ @VIDEO_REWIND@
+    | VideoStart
+      -- ^ @VIDEO_START@
+    | VideoStop
+      -- ^ @VIDEO_STOP@
+    | VideoThirdQuartile
+      -- ^ @VIDEO_THIRD_QUARTILE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ThirdPartyTrackingURLThirdPartyURLType
+
+instance FromText ThirdPartyTrackingURLThirdPartyURLType where
+    fromText = \case
+        "CLICK_TRACKING" -> Just ClickTracking
+        "IMPRESSION" -> Just Impression
+        "RICH_MEDIA_BACKUP_IMPRESSION" -> Just RichMediaBackupImpression
+        "RICH_MEDIA_IMPRESSION" -> Just RichMediaImpression
+        "RICH_MEDIA_RM_IMPRESSION" -> Just RichMediaRmImpression
+        "SURVEY" -> Just Survey
+        "VIDEO_COMPLETE" -> Just VideoComplete
+        "VIDEO_CUSTOM" -> Just VideoCustom
+        "VIDEO_FIRST_QUARTILE" -> Just VideoFirstQuartile
+        "VIDEO_FULLSCREEN" -> Just VideoFullscreen
+        "VIDEO_MIDPOINT" -> Just VideoMidpoint
+        "VIDEO_MUTE" -> Just VideoMute
+        "VIDEO_PAUSE" -> Just VideoPause
+        "VIDEO_REWIND" -> Just VideoRewind
+        "VIDEO_START" -> Just VideoStart
+        "VIDEO_STOP" -> Just VideoStop
+        "VIDEO_THIRD_QUARTILE" -> Just VideoThirdQuartile
+        _ -> Nothing
+
+instance ToText ThirdPartyTrackingURLThirdPartyURLType where
+    toText = \case
+        ClickTracking -> "CLICK_TRACKING"
+        Impression -> "IMPRESSION"
+        RichMediaBackupImpression -> "RICH_MEDIA_BACKUP_IMPRESSION"
+        RichMediaImpression -> "RICH_MEDIA_IMPRESSION"
+        RichMediaRmImpression -> "RICH_MEDIA_RM_IMPRESSION"
+        Survey -> "SURVEY"
+        VideoComplete -> "VIDEO_COMPLETE"
+        VideoCustom -> "VIDEO_CUSTOM"
+        VideoFirstQuartile -> "VIDEO_FIRST_QUARTILE"
+        VideoFullscreen -> "VIDEO_FULLSCREEN"
+        VideoMidpoint -> "VIDEO_MIDPOINT"
+        VideoMute -> "VIDEO_MUTE"
+        VideoPause -> "VIDEO_PAUSE"
+        VideoRewind -> "VIDEO_REWIND"
+        VideoStart -> "VIDEO_START"
+        VideoStop -> "VIDEO_STOP"
+        VideoThirdQuartile -> "VIDEO_THIRD_QUARTILE"
+
+instance FromJSON ThirdPartyTrackingURLThirdPartyURLType where
+    parseJSON = parseJSONText "ThirdPartyTrackingURLThirdPartyURLType"
+
+instance ToJSON ThirdPartyTrackingURLThirdPartyURLType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data TargetableRemarketingListsListSortOrder
+    = TRLLSOAscending
+      -- ^ @ASCENDING@
+    | TRLLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable TargetableRemarketingListsListSortOrder
+
+instance FromText TargetableRemarketingListsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just TRLLSOAscending
+        "DESCENDING" -> Just TRLLSODescending
+        _ -> Nothing
+
+instance ToText TargetableRemarketingListsListSortOrder where
+    toText = \case
+        TRLLSOAscending -> "ASCENDING"
+        TRLLSODescending -> "DESCENDING"
+
+instance FromJSON TargetableRemarketingListsListSortOrder where
+    parseJSON = parseJSONText "TargetableRemarketingListsListSortOrder"
+
+instance ToJSON TargetableRemarketingListsListSortOrder where
+    toJSON = toJSONText
+
+-- | Offset left unit for an asset. This is a read-only field. Applicable to
+-- the following creative types: all RICH_MEDIA.
+data CreativeAssetPositionLeftUnit
+    = OffSetUnitPercent
+      -- ^ @OFFSET_UNIT_PERCENT@
+    | OffSetUnitPixel
+      -- ^ @OFFSET_UNIT_PIXEL@
+    | OffSetUnitPixelFromCenter
+      -- ^ @OFFSET_UNIT_PIXEL_FROM_CENTER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetPositionLeftUnit
+
+instance FromText CreativeAssetPositionLeftUnit where
+    fromText = \case
+        "OFFSET_UNIT_PERCENT" -> Just OffSetUnitPercent
+        "OFFSET_UNIT_PIXEL" -> Just OffSetUnitPixel
+        "OFFSET_UNIT_PIXEL_FROM_CENTER" -> Just OffSetUnitPixelFromCenter
+        _ -> Nothing
+
+instance ToText CreativeAssetPositionLeftUnit where
+    toText = \case
+        OffSetUnitPercent -> "OFFSET_UNIT_PERCENT"
+        OffSetUnitPixel -> "OFFSET_UNIT_PIXEL"
+        OffSetUnitPixelFromCenter -> "OFFSET_UNIT_PIXEL_FROM_CENTER"
+
+instance FromJSON CreativeAssetPositionLeftUnit where
+    parseJSON = parseJSONText "CreativeAssetPositionLeftUnit"
+
+instance ToJSON CreativeAssetPositionLeftUnit where
+    toJSON = toJSONText
+
+-- | Placement cap cost option.
+data PricingScheduleCapCostOption
+    = CapCostCumulative
+      -- ^ @CAP_COST_CUMULATIVE@
+    | CapCostMonthly
+      -- ^ @CAP_COST_MONTHLY@
+    | CapCostNone
+      -- ^ @CAP_COST_NONE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PricingScheduleCapCostOption
+
+instance FromText PricingScheduleCapCostOption where
+    fromText = \case
+        "CAP_COST_CUMULATIVE" -> Just CapCostCumulative
+        "CAP_COST_MONTHLY" -> Just CapCostMonthly
+        "CAP_COST_NONE" -> Just CapCostNone
+        _ -> Nothing
+
+instance ToText PricingScheduleCapCostOption where
+    toText = \case
+        CapCostCumulative -> "CAP_COST_CUMULATIVE"
+        CapCostMonthly -> "CAP_COST_MONTHLY"
+        CapCostNone -> "CAP_COST_NONE"
+
+instance FromJSON PricingScheduleCapCostOption where
+    parseJSON = parseJSONText "PricingScheduleCapCostOption"
+
+instance ToJSON PricingScheduleCapCostOption where
+    toJSON = toJSONText
+
+-- | Levels of availability for a user role permission.
+data UserRolePermissionAvailability
+    = AccountAlways
+      -- ^ @ACCOUNT_ALWAYS@
+    | AccountByDefault
+      -- ^ @ACCOUNT_BY_DEFAULT@
+    | NotAvailableByDefault
+      -- ^ @NOT_AVAILABLE_BY_DEFAULT@
+    | SubAccountAndAccountAlways
+      -- ^ @SUBACCOUNT_AND_ACCOUNT_ALWAYS@
+    | SubAccountAndAccountByDefault
+      -- ^ @SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable UserRolePermissionAvailability
+
+instance FromText UserRolePermissionAvailability where
+    fromText = \case
+        "ACCOUNT_ALWAYS" -> Just AccountAlways
+        "ACCOUNT_BY_DEFAULT" -> Just AccountByDefault
+        "NOT_AVAILABLE_BY_DEFAULT" -> Just NotAvailableByDefault
+        "SUBACCOUNT_AND_ACCOUNT_ALWAYS" -> Just SubAccountAndAccountAlways
+        "SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT" -> Just SubAccountAndAccountByDefault
+        _ -> Nothing
+
+instance ToText UserRolePermissionAvailability where
+    toText = \case
+        AccountAlways -> "ACCOUNT_ALWAYS"
+        AccountByDefault -> "ACCOUNT_BY_DEFAULT"
+        NotAvailableByDefault -> "NOT_AVAILABLE_BY_DEFAULT"
+        SubAccountAndAccountAlways -> "SUBACCOUNT_AND_ACCOUNT_ALWAYS"
+        SubAccountAndAccountByDefault -> "SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT"
+
+instance FromJSON UserRolePermissionAvailability where
+    parseJSON = parseJSONText "UserRolePermissionAvailability"
+
+instance ToJSON UserRolePermissionAvailability where
+    toJSON = toJSONText
+
+-- | Visibility of this directory site contact assignment. When set to PUBLIC
+-- this contact assignment is visible to all account and agency users; when
+-- set to PRIVATE it is visible only to the site.
+data DirectorySiteContactAssignmentVisibility
+    = Private
+      -- ^ @PRIVATE@
+    | Public
+      -- ^ @PUBLIC@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DirectorySiteContactAssignmentVisibility
+
+instance FromText DirectorySiteContactAssignmentVisibility where
+    fromText = \case
+        "PRIVATE" -> Just Private
+        "PUBLIC" -> Just Public
+        _ -> Nothing
+
+instance ToText DirectorySiteContactAssignmentVisibility where
+    toText = \case
+        Private -> "PRIVATE"
+        Public -> "PUBLIC"
+
+instance FromJSON DirectorySiteContactAssignmentVisibility where
+    parseJSON = parseJSONText "DirectorySiteContactAssignmentVisibility"
+
+instance ToJSON DirectorySiteContactAssignmentVisibility where
+    toJSON = toJSONText
+
+-- | Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering
+-- either on desktop or on mobile devices for regular or interstitial ads,
+-- respectively. APP and APP_INTERSTITIAL are for rendering in mobile
+-- apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads
+-- developed with the VAST standard. This field is required on insertion.
+data PlacementCompatibility
+    = App
+      -- ^ @APP@
+    | AppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | InStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+    | Web
+      -- ^ @WEB@
+    | WebInterstitial
+      -- ^ @WEB_INTERSTITIAL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementCompatibility
+
+instance FromText PlacementCompatibility where
+    fromText = \case
+        "APP" -> Just App
+        "APP_INTERSTITIAL" -> Just AppInterstitial
+        "IN_STREAM_VIDEO" -> Just InStreamVideo
+        "WEB" -> Just Web
+        "WEB_INTERSTITIAL" -> Just WebInterstitial
+        _ -> Nothing
+
+instance ToText PlacementCompatibility where
+    toText = \case
+        App -> "APP"
+        AppInterstitial -> "APP_INTERSTITIAL"
+        InStreamVideo -> "IN_STREAM_VIDEO"
+        Web -> "WEB"
+        WebInterstitial -> "WEB_INTERSTITIAL"
+
+instance FromJSON PlacementCompatibility where
+    parseJSON = parseJSONText "PlacementCompatibility"
+
+instance ToJSON PlacementCompatibility where
+    toJSON = toJSONText
+
+-- | Comparison operator of this term. This field is only relevant when type
+-- is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
+data ListPopulationTermOperator
+    = NumEquals
+      -- ^ @NUM_EQUALS@
+    | NumGreaterThan
+      -- ^ @NUM_GREATER_THAN@
+    | NumGreaterThanEqual
+      -- ^ @NUM_GREATER_THAN_EQUAL@
+    | NumLessThan
+      -- ^ @NUM_LESS_THAN@
+    | NumLessThanEqual
+      -- ^ @NUM_LESS_THAN_EQUAL@
+    | StringContains
+      -- ^ @STRING_CONTAINS@
+    | StringEquals
+      -- ^ @STRING_EQUALS@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ListPopulationTermOperator
+
+instance FromText ListPopulationTermOperator where
+    fromText = \case
+        "NUM_EQUALS" -> Just NumEquals
+        "NUM_GREATER_THAN" -> Just NumGreaterThan
+        "NUM_GREATER_THAN_EQUAL" -> Just NumGreaterThanEqual
+        "NUM_LESS_THAN" -> Just NumLessThan
+        "NUM_LESS_THAN_EQUAL" -> Just NumLessThanEqual
+        "STRING_CONTAINS" -> Just StringContains
+        "STRING_EQUALS" -> Just StringEquals
+        _ -> Nothing
+
+instance ToText ListPopulationTermOperator where
+    toText = \case
+        NumEquals -> "NUM_EQUALS"
+        NumGreaterThan -> "NUM_GREATER_THAN"
+        NumGreaterThanEqual -> "NUM_GREATER_THAN_EQUAL"
+        NumLessThan -> "NUM_LESS_THAN"
+        NumLessThanEqual -> "NUM_LESS_THAN_EQUAL"
+        StringContains -> "STRING_CONTAINS"
+        StringEquals -> "STRING_EQUALS"
+
+instance FromJSON ListPopulationTermOperator where
+    parseJSON = parseJSONText "ListPopulationTermOperator"
+
+instance ToJSON ListPopulationTermOperator where
+    toJSON = toJSONText
+
+-- | Select only placements with this payment source.
+data PlacementsListPaymentSource
+    = PlacementAgencyPaid
+      -- ^ @PLACEMENT_AGENCY_PAID@
+    | PlacementPublisherPaid
+      -- ^ @PLACEMENT_PUBLISHER_PAID@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementsListPaymentSource
+
+instance FromText PlacementsListPaymentSource where
+    fromText = \case
+        "PLACEMENT_AGENCY_PAID" -> Just PlacementAgencyPaid
+        "PLACEMENT_PUBLISHER_PAID" -> Just PlacementPublisherPaid
+        _ -> Nothing
+
+instance ToText PlacementsListPaymentSource where
+    toText = \case
+        PlacementAgencyPaid -> "PLACEMENT_AGENCY_PAID"
+        PlacementPublisherPaid -> "PLACEMENT_PUBLISHER_PAID"
+
+instance FromJSON PlacementsListPaymentSource where
+    parseJSON = parseJSONText "PlacementsListPaymentSource"
+
+instance ToJSON PlacementsListPaymentSource where
+    toJSON = toJSONText
+
+-- | The field by which to sort the list.
+data ReportsListSortField
+    = RLSFID
+      -- ^ @ID@
+      -- Sort by report ID.
+    | RLSFLastModifiedTime
+      -- ^ @LAST_MODIFIED_TIME@
+      -- Sort by \'lastModifiedTime\' field.
+    | RLSFName
+      -- ^ @NAME@
+      -- Sort by name of reports.
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportsListSortField
+
+instance FromText ReportsListSortField where
+    fromText = \case
+        "ID" -> Just RLSFID
+        "LAST_MODIFIED_TIME" -> Just RLSFLastModifiedTime
+        "NAME" -> Just RLSFName
+        _ -> Nothing
+
+instance ToText ReportsListSortField where
+    toText = \case
+        RLSFID -> "ID"
+        RLSFLastModifiedTime -> "LAST_MODIFIED_TIME"
+        RLSFName -> "NAME"
+
+instance FromJSON ReportsListSortField where
+    parseJSON = parseJSONText "ReportsListSortField"
+
+instance ToJSON ReportsListSortField where
+    toJSON = toJSONText
+
+-- | Ad slot compatibility. WEB and WEB_INTERSTITIAL refer to rendering
+-- either on desktop or on mobile devices for regular or interstitial ads
+-- respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.
+-- IN_STREAM_VIDEO refers to rendering in in-stream video ads developed
+-- with the VAST standard.
+data AdSlotCompatibility
+    = PlanningRenderingEnvironmentTypeApp
+      -- ^ @PLANNING_RENDERING_ENVIRONMENT_TYPE_APP@
+    | PlanningRenderingEnvironmentTypeAppInterstitial
+      -- ^ @PLANNING_RENDERING_ENVIRONMENT_TYPE_APP_INTERSTITIAL@
+    | PlanningRenderingEnvironmentTypeInStreamVideo
+      -- ^ @PLANNING_RENDERING_ENVIRONMENT_TYPE_IN_STREAM_VIDEO@
+    | PlanningRenderingEnvironmentTypeWeb
+      -- ^ @PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB@
+    | PlanningRenderingEnvironmentTypeWebInterstitial
+      -- ^ @PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB_INTERSTITIAL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdSlotCompatibility
+
+instance FromText AdSlotCompatibility where
+    fromText = \case
+        "PLANNING_RENDERING_ENVIRONMENT_TYPE_APP" -> Just PlanningRenderingEnvironmentTypeApp
+        "PLANNING_RENDERING_ENVIRONMENT_TYPE_APP_INTERSTITIAL" -> Just PlanningRenderingEnvironmentTypeAppInterstitial
+        "PLANNING_RENDERING_ENVIRONMENT_TYPE_IN_STREAM_VIDEO" -> Just PlanningRenderingEnvironmentTypeInStreamVideo
+        "PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB" -> Just PlanningRenderingEnvironmentTypeWeb
+        "PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB_INTERSTITIAL" -> Just PlanningRenderingEnvironmentTypeWebInterstitial
+        _ -> Nothing
+
+instance ToText AdSlotCompatibility where
+    toText = \case
+        PlanningRenderingEnvironmentTypeApp -> "PLANNING_RENDERING_ENVIRONMENT_TYPE_APP"
+        PlanningRenderingEnvironmentTypeAppInterstitial -> "PLANNING_RENDERING_ENVIRONMENT_TYPE_APP_INTERSTITIAL"
+        PlanningRenderingEnvironmentTypeInStreamVideo -> "PLANNING_RENDERING_ENVIRONMENT_TYPE_IN_STREAM_VIDEO"
+        PlanningRenderingEnvironmentTypeWeb -> "PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB"
+        PlanningRenderingEnvironmentTypeWebInterstitial -> "PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB_INTERSTITIAL"
+
+instance FromJSON AdSlotCompatibility where
+    parseJSON = parseJSONText "AdSlotCompatibility"
+
+instance ToJSON AdSlotCompatibility where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data CampaignsListSortField
+    = CLSFID
+      -- ^ @ID@
+    | CLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CampaignsListSortField
+
+instance FromText CampaignsListSortField where
+    fromText = \case
+        "ID" -> Just CLSFID
+        "NAME" -> Just CLSFName
+        _ -> Nothing
+
+instance ToText CampaignsListSortField where
+    toText = \case
+        CLSFID -> "ID"
+        CLSFName -> "NAME"
+
+instance FromJSON CampaignsListSortField where
+    parseJSON = parseJSONText "CampaignsListSortField"
+
+instance ToJSON CampaignsListSortField where
+    toJSON = toJSONText
+
+-- | Trafficker type of this user profile.
+data AccountUserProFileTraffickerType
+    = ExternalTrafficker
+      -- ^ @EXTERNAL_TRAFFICKER@
+    | InternalNonTrafficker
+      -- ^ @INTERNAL_NON_TRAFFICKER@
+    | InternalTrafficker
+      -- ^ @INTERNAL_TRAFFICKER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountUserProFileTraffickerType
+
+instance FromText AccountUserProFileTraffickerType where
+    fromText = \case
+        "EXTERNAL_TRAFFICKER" -> Just ExternalTrafficker
+        "INTERNAL_NON_TRAFFICKER" -> Just InternalNonTrafficker
+        "INTERNAL_TRAFFICKER" -> Just InternalTrafficker
+        _ -> Nothing
+
+instance ToText AccountUserProFileTraffickerType where
+    toText = \case
+        ExternalTrafficker -> "EXTERNAL_TRAFFICKER"
+        InternalNonTrafficker -> "INTERNAL_NON_TRAFFICKER"
+        InternalTrafficker -> "INTERNAL_TRAFFICKER"
+
+instance FromJSON AccountUserProFileTraffickerType where
+    parseJSON = parseJSONText "AccountUserProFileTraffickerType"
+
+instance ToJSON AccountUserProFileTraffickerType where
+    toJSON = toJSONText
+
+data CreativeAssetMetadataDetectedFeaturesItem
+    = ApplicationCache
+      -- ^ @APPLICATION_CACHE@
+    | Audio
+      -- ^ @AUDIO@
+    | Canvas
+      -- ^ @CANVAS@
+    | CanvasText
+      -- ^ @CANVAS_TEXT@
+    | CssAnimations
+      -- ^ @CSS_ANIMATIONS@
+    | CssBackgRoundSize
+      -- ^ @CSS_BACKGROUND_SIZE@
+    | CssBOrderImage
+      -- ^ @CSS_BORDER_IMAGE@
+    | CssBOrderRadius
+      -- ^ @CSS_BORDER_RADIUS@
+    | CssBoxShadow
+      -- ^ @CSS_BOX_SHADOW@
+    | CssColumns
+      -- ^ @CSS_COLUMNS@
+    | CssFlexBox
+      -- ^ @CSS_FLEX_BOX@
+    | CssFontFace
+      -- ^ @CSS_FONT_FACE@
+    | CssGeneratedContent
+      -- ^ @CSS_GENERATED_CONTENT@
+    | CssGradients
+      -- ^ @CSS_GRADIENTS@
+    | CssHsla
+      -- ^ @CSS_HSLA@
+    | CssMultipleBgs
+      -- ^ @CSS_MULTIPLE_BGS@
+    | CssOpacity
+      -- ^ @CSS_OPACITY@
+    | CssReflections
+      -- ^ @CSS_REFLECTIONS@
+    | CssRgba
+      -- ^ @CSS_RGBA@
+    | CssTextShadow
+      -- ^ @CSS_TEXT_SHADOW@
+    | CssTransforms
+      -- ^ @CSS_TRANSFORMS@
+    | CssTRANSFORMS3D
+      -- ^ @CSS_TRANSFORMS3D@
+    | CssTransitions
+      -- ^ @CSS_TRANSITIONS@
+    | DragAndDrop
+      -- ^ @DRAG_AND_DROP@
+    | GeoLocation
+      -- ^ @GEO_LOCATION@
+    | HashChange
+      -- ^ @HASH_CHANGE@
+    | History
+      -- ^ @HISTORY@
+    | IndexedDB
+      -- ^ @INDEXED_DB@
+    | InlineSvg
+      -- ^ @INLINE_SVG@
+    | InputAttrAutocomplete
+      -- ^ @INPUT_ATTR_AUTOCOMPLETE@
+    | InputAttrAutofocus
+      -- ^ @INPUT_ATTR_AUTOFOCUS@
+    | InputAttrList
+      -- ^ @INPUT_ATTR_LIST@
+    | InputAttrMax
+      -- ^ @INPUT_ATTR_MAX@
+    | InputAttrMin
+      -- ^ @INPUT_ATTR_MIN@
+    | InputAttrMultiple
+      -- ^ @INPUT_ATTR_MULTIPLE@
+    | InputAttrPattern
+      -- ^ @INPUT_ATTR_PATTERN@
+    | InputAttrPlaceholder
+      -- ^ @INPUT_ATTR_PLACEHOLDER@
+    | InputAttrRequired
+      -- ^ @INPUT_ATTR_REQUIRED@
+    | InputAttrStep
+      -- ^ @INPUT_ATTR_STEP@
+    | InputTypeColor
+      -- ^ @INPUT_TYPE_COLOR@
+    | InputTypeDate
+      -- ^ @INPUT_TYPE_DATE@
+    | InputTypeDatetime
+      -- ^ @INPUT_TYPE_DATETIME@
+    | InputTypeDatetimeLocal
+      -- ^ @INPUT_TYPE_DATETIME_LOCAL@
+    | InputTypeEmail
+      -- ^ @INPUT_TYPE_EMAIL@
+    | InputTypeMonth
+      -- ^ @INPUT_TYPE_MONTH@
+    | InputTypeNumber
+      -- ^ @INPUT_TYPE_NUMBER@
+    | InputTypeRange
+      -- ^ @INPUT_TYPE_RANGE@
+    | InputTypeSearch
+      -- ^ @INPUT_TYPE_SEARCH@
+    | InputTypeTel
+      -- ^ @INPUT_TYPE_TEL@
+    | InputTypeTime
+      -- ^ @INPUT_TYPE_TIME@
+    | InputTypeURL
+      -- ^ @INPUT_TYPE_URL@
+    | InputTypeWeek
+      -- ^ @INPUT_TYPE_WEEK@
+    | LocalStorage
+      -- ^ @LOCAL_STORAGE@
+    | PostMessage
+      -- ^ @POST_MESSAGE@
+    | SessionStorage
+      -- ^ @SESSION_STORAGE@
+    | Smil
+      -- ^ @SMIL@
+    | SvgClipPaths
+      -- ^ @SVG_CLIP_PATHS@
+    | SvgFeImage
+      -- ^ @SVG_FE_IMAGE@
+    | SvgFilters
+      -- ^ @SVG_FILTERS@
+    | SvgHref
+      -- ^ @SVG_HREF@
+    | Touch
+      -- ^ @TOUCH@
+    | Video
+      -- ^ @VIDEO@
+    | Webgl
+      -- ^ @WEBGL@
+    | WebSockets
+      -- ^ @WEB_SOCKETS@
+    | WebSQLDatabase
+      -- ^ @WEB_SQL_DATABASE@
+    | WebWorkers
+      -- ^ @WEB_WORKERS@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetMetadataDetectedFeaturesItem
+
+instance FromText CreativeAssetMetadataDetectedFeaturesItem where
+    fromText = \case
+        "APPLICATION_CACHE" -> Just ApplicationCache
+        "AUDIO" -> Just Audio
+        "CANVAS" -> Just Canvas
+        "CANVAS_TEXT" -> Just CanvasText
+        "CSS_ANIMATIONS" -> Just CssAnimations
+        "CSS_BACKGROUND_SIZE" -> Just CssBackgRoundSize
+        "CSS_BORDER_IMAGE" -> Just CssBOrderImage
+        "CSS_BORDER_RADIUS" -> Just CssBOrderRadius
+        "CSS_BOX_SHADOW" -> Just CssBoxShadow
+        "CSS_COLUMNS" -> Just CssColumns
+        "CSS_FLEX_BOX" -> Just CssFlexBox
+        "CSS_FONT_FACE" -> Just CssFontFace
+        "CSS_GENERATED_CONTENT" -> Just CssGeneratedContent
+        "CSS_GRADIENTS" -> Just CssGradients
+        "CSS_HSLA" -> Just CssHsla
+        "CSS_MULTIPLE_BGS" -> Just CssMultipleBgs
+        "CSS_OPACITY" -> Just CssOpacity
+        "CSS_REFLECTIONS" -> Just CssReflections
+        "CSS_RGBA" -> Just CssRgba
+        "CSS_TEXT_SHADOW" -> Just CssTextShadow
+        "CSS_TRANSFORMS" -> Just CssTransforms
+        "CSS_TRANSFORMS3D" -> Just CssTRANSFORMS3D
+        "CSS_TRANSITIONS" -> Just CssTransitions
+        "DRAG_AND_DROP" -> Just DragAndDrop
+        "GEO_LOCATION" -> Just GeoLocation
+        "HASH_CHANGE" -> Just HashChange
+        "HISTORY" -> Just History
+        "INDEXED_DB" -> Just IndexedDB
+        "INLINE_SVG" -> Just InlineSvg
+        "INPUT_ATTR_AUTOCOMPLETE" -> Just InputAttrAutocomplete
+        "INPUT_ATTR_AUTOFOCUS" -> Just InputAttrAutofocus
+        "INPUT_ATTR_LIST" -> Just InputAttrList
+        "INPUT_ATTR_MAX" -> Just InputAttrMax
+        "INPUT_ATTR_MIN" -> Just InputAttrMin
+        "INPUT_ATTR_MULTIPLE" -> Just InputAttrMultiple
+        "INPUT_ATTR_PATTERN" -> Just InputAttrPattern
+        "INPUT_ATTR_PLACEHOLDER" -> Just InputAttrPlaceholder
+        "INPUT_ATTR_REQUIRED" -> Just InputAttrRequired
+        "INPUT_ATTR_STEP" -> Just InputAttrStep
+        "INPUT_TYPE_COLOR" -> Just InputTypeColor
+        "INPUT_TYPE_DATE" -> Just InputTypeDate
+        "INPUT_TYPE_DATETIME" -> Just InputTypeDatetime
+        "INPUT_TYPE_DATETIME_LOCAL" -> Just InputTypeDatetimeLocal
+        "INPUT_TYPE_EMAIL" -> Just InputTypeEmail
+        "INPUT_TYPE_MONTH" -> Just InputTypeMonth
+        "INPUT_TYPE_NUMBER" -> Just InputTypeNumber
+        "INPUT_TYPE_RANGE" -> Just InputTypeRange
+        "INPUT_TYPE_SEARCH" -> Just InputTypeSearch
+        "INPUT_TYPE_TEL" -> Just InputTypeTel
+        "INPUT_TYPE_TIME" -> Just InputTypeTime
+        "INPUT_TYPE_URL" -> Just InputTypeURL
+        "INPUT_TYPE_WEEK" -> Just InputTypeWeek
+        "LOCAL_STORAGE" -> Just LocalStorage
+        "POST_MESSAGE" -> Just PostMessage
+        "SESSION_STORAGE" -> Just SessionStorage
+        "SMIL" -> Just Smil
+        "SVG_CLIP_PATHS" -> Just SvgClipPaths
+        "SVG_FE_IMAGE" -> Just SvgFeImage
+        "SVG_FILTERS" -> Just SvgFilters
+        "SVG_HREF" -> Just SvgHref
+        "TOUCH" -> Just Touch
+        "VIDEO" -> Just Video
+        "WEBGL" -> Just Webgl
+        "WEB_SOCKETS" -> Just WebSockets
+        "WEB_SQL_DATABASE" -> Just WebSQLDatabase
+        "WEB_WORKERS" -> Just WebWorkers
+        _ -> Nothing
+
+instance ToText CreativeAssetMetadataDetectedFeaturesItem where
+    toText = \case
+        ApplicationCache -> "APPLICATION_CACHE"
+        Audio -> "AUDIO"
+        Canvas -> "CANVAS"
+        CanvasText -> "CANVAS_TEXT"
+        CssAnimations -> "CSS_ANIMATIONS"
+        CssBackgRoundSize -> "CSS_BACKGROUND_SIZE"
+        CssBOrderImage -> "CSS_BORDER_IMAGE"
+        CssBOrderRadius -> "CSS_BORDER_RADIUS"
+        CssBoxShadow -> "CSS_BOX_SHADOW"
+        CssColumns -> "CSS_COLUMNS"
+        CssFlexBox -> "CSS_FLEX_BOX"
+        CssFontFace -> "CSS_FONT_FACE"
+        CssGeneratedContent -> "CSS_GENERATED_CONTENT"
+        CssGradients -> "CSS_GRADIENTS"
+        CssHsla -> "CSS_HSLA"
+        CssMultipleBgs -> "CSS_MULTIPLE_BGS"
+        CssOpacity -> "CSS_OPACITY"
+        CssReflections -> "CSS_REFLECTIONS"
+        CssRgba -> "CSS_RGBA"
+        CssTextShadow -> "CSS_TEXT_SHADOW"
+        CssTransforms -> "CSS_TRANSFORMS"
+        CssTRANSFORMS3D -> "CSS_TRANSFORMS3D"
+        CssTransitions -> "CSS_TRANSITIONS"
+        DragAndDrop -> "DRAG_AND_DROP"
+        GeoLocation -> "GEO_LOCATION"
+        HashChange -> "HASH_CHANGE"
+        History -> "HISTORY"
+        IndexedDB -> "INDEXED_DB"
+        InlineSvg -> "INLINE_SVG"
+        InputAttrAutocomplete -> "INPUT_ATTR_AUTOCOMPLETE"
+        InputAttrAutofocus -> "INPUT_ATTR_AUTOFOCUS"
+        InputAttrList -> "INPUT_ATTR_LIST"
+        InputAttrMax -> "INPUT_ATTR_MAX"
+        InputAttrMin -> "INPUT_ATTR_MIN"
+        InputAttrMultiple -> "INPUT_ATTR_MULTIPLE"
+        InputAttrPattern -> "INPUT_ATTR_PATTERN"
+        InputAttrPlaceholder -> "INPUT_ATTR_PLACEHOLDER"
+        InputAttrRequired -> "INPUT_ATTR_REQUIRED"
+        InputAttrStep -> "INPUT_ATTR_STEP"
+        InputTypeColor -> "INPUT_TYPE_COLOR"
+        InputTypeDate -> "INPUT_TYPE_DATE"
+        InputTypeDatetime -> "INPUT_TYPE_DATETIME"
+        InputTypeDatetimeLocal -> "INPUT_TYPE_DATETIME_LOCAL"
+        InputTypeEmail -> "INPUT_TYPE_EMAIL"
+        InputTypeMonth -> "INPUT_TYPE_MONTH"
+        InputTypeNumber -> "INPUT_TYPE_NUMBER"
+        InputTypeRange -> "INPUT_TYPE_RANGE"
+        InputTypeSearch -> "INPUT_TYPE_SEARCH"
+        InputTypeTel -> "INPUT_TYPE_TEL"
+        InputTypeTime -> "INPUT_TYPE_TIME"
+        InputTypeURL -> "INPUT_TYPE_URL"
+        InputTypeWeek -> "INPUT_TYPE_WEEK"
+        LocalStorage -> "LOCAL_STORAGE"
+        PostMessage -> "POST_MESSAGE"
+        SessionStorage -> "SESSION_STORAGE"
+        Smil -> "SMIL"
+        SvgClipPaths -> "SVG_CLIP_PATHS"
+        SvgFeImage -> "SVG_FE_IMAGE"
+        SvgFilters -> "SVG_FILTERS"
+        SvgHref -> "SVG_HREF"
+        Touch -> "TOUCH"
+        Video -> "VIDEO"
+        Webgl -> "WEBGL"
+        WebSockets -> "WEB_SOCKETS"
+        WebSQLDatabase -> "WEB_SQL_DATABASE"
+        WebWorkers -> "WEB_WORKERS"
+
+instance FromJSON CreativeAssetMetadataDetectedFeaturesItem where
+    parseJSON = parseJSONText "CreativeAssetMetadataDetectedFeaturesItem"
+
+instance ToJSON CreativeAssetMetadataDetectedFeaturesItem where
+    toJSON = toJSONText
+
+-- | Select default ads with the specified compatibility. Applicable when
+-- type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to
+-- rendering either on desktop or on mobile devices for regular or
+-- interstitial ads, respectively. APP and APP_INTERSTITIAL are for
+-- rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an
+-- in-stream video ads developed with the VAST standard.
+data AdsListCompatibility
+    = ALCApp
+      -- ^ @APP@
+    | ALCAppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | ALCInStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+    | ALCWeb
+      -- ^ @WEB@
+    | ALCWebInterstitial
+      -- ^ @WEB_INTERSTITIAL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdsListCompatibility
+
+instance FromText AdsListCompatibility where
+    fromText = \case
+        "APP" -> Just ALCApp
+        "APP_INTERSTITIAL" -> Just ALCAppInterstitial
+        "IN_STREAM_VIDEO" -> Just ALCInStreamVideo
+        "WEB" -> Just ALCWeb
+        "WEB_INTERSTITIAL" -> Just ALCWebInterstitial
+        _ -> Nothing
+
+instance ToText AdsListCompatibility where
+    toText = \case
+        ALCApp -> "APP"
+        ALCAppInterstitial -> "APP_INTERSTITIAL"
+        ALCInStreamVideo -> "IN_STREAM_VIDEO"
+        ALCWeb -> "WEB"
+        ALCWebInterstitial -> "WEB_INTERSTITIAL"
+
+instance FromJSON AdsListCompatibility where
+    parseJSON = parseJSONText "AdsListCompatibility"
+
+instance ToJSON AdsListCompatibility where
+    toJSON = toJSONText
+
+-- | Status of this event tag. Must be ENABLED for this event tag to fire.
+-- This is a required field.
+data EventTagStatus
+    = Disabled
+      -- ^ @DISABLED@
+    | Enabled
+      -- ^ @ENABLED@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable EventTagStatus
+
+instance FromText EventTagStatus where
+    fromText = \case
+        "DISABLED" -> Just Disabled
+        "ENABLED" -> Just Enabled
+        _ -> Nothing
+
+instance ToText EventTagStatus where
+    toText = \case
+        Disabled -> "DISABLED"
+        Enabled -> "ENABLED"
+
+instance FromJSON EventTagStatus where
+    parseJSON = parseJSONText "EventTagStatus"
+
+instance ToJSON EventTagStatus where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data SitesListSortField
+    = SLSFID
+      -- ^ @ID@
+    | SLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable SitesListSortField
+
+instance FromText SitesListSortField where
+    fromText = \case
+        "ID" -> Just SLSFID
+        "NAME" -> Just SLSFName
+        _ -> Nothing
+
+instance ToText SitesListSortField where
+    toText = \case
+        SLSFID -> "ID"
+        SLSFName -> "NAME"
+
+instance FromJSON SitesListSortField where
+    parseJSON = parseJSONText "SitesListSortField"
+
+instance ToJSON SitesListSortField where
+    toJSON = toJSONText
+
+-- | Select only event tags with the specified event tag types. Event tag
+-- types can be used to specify whether to use a third-party pixel, a
+-- third-party JavaScript URL, or a third-party click-through URL for
+-- either impression or click tracking.
+data EventTagsListEventTagTypes
+    = ClickThroughEventTag
+      -- ^ @CLICK_THROUGH_EVENT_TAG@
+    | ImpressionImageEventTag
+      -- ^ @IMPRESSION_IMAGE_EVENT_TAG@
+    | ImpressionJavascriptEventTag
+      -- ^ @IMPRESSION_JAVASCRIPT_EVENT_TAG@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable EventTagsListEventTagTypes
+
+instance FromText EventTagsListEventTagTypes where
+    fromText = \case
+        "CLICK_THROUGH_EVENT_TAG" -> Just ClickThroughEventTag
+        "IMPRESSION_IMAGE_EVENT_TAG" -> Just ImpressionImageEventTag
+        "IMPRESSION_JAVASCRIPT_EVENT_TAG" -> Just ImpressionJavascriptEventTag
+        _ -> Nothing
+
+instance ToText EventTagsListEventTagTypes where
+    toText = \case
+        ClickThroughEventTag -> "CLICK_THROUGH_EVENT_TAG"
+        ImpressionImageEventTag -> "IMPRESSION_IMAGE_EVENT_TAG"
+        ImpressionJavascriptEventTag -> "IMPRESSION_JAVASCRIPT_EVENT_TAG"
+
+instance FromJSON EventTagsListEventTagTypes where
+    parseJSON = parseJSONText "EventTagsListEventTagTypes"
+
+instance ToJSON EventTagsListEventTagTypes where
+    toJSON = toJSONText
+
+-- | The status of the report file.
+data FileStatus
+    = Cancelled
+      -- ^ @CANCELLED@
+    | Failed
+      -- ^ @FAILED@
+    | Processing
+      -- ^ @PROCESSING@
+    | ReportAvailable
+      -- ^ @REPORT_AVAILABLE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FileStatus
+
+instance FromText FileStatus where
+    fromText = \case
+        "CANCELLED" -> Just Cancelled
+        "FAILED" -> Just Failed
+        "PROCESSING" -> Just Processing
+        "REPORT_AVAILABLE" -> Just ReportAvailable
+        _ -> Nothing
+
+instance ToText FileStatus where
+    toText = \case
+        Cancelled -> "CANCELLED"
+        Failed -> "FAILED"
+        Processing -> "PROCESSING"
+        ReportAvailable -> "REPORT_AVAILABLE"
+
+instance FromJSON FileStatus where
+    parseJSON = parseJSONText "FileStatus"
+
+instance ToJSON FileStatus where
+    toJSON = toJSONText
+
+-- | Artwork type used by the creative.This is a read-only field.
+data CreativeCustomEventArtworkType
+    = ArtworkTypeFlash
+      -- ^ @ARTWORK_TYPE_FLASH@
+    | ArtworkTypeHTML5
+      -- ^ @ARTWORK_TYPE_HTML5@
+    | ArtworkTypeMixed
+      -- ^ @ARTWORK_TYPE_MIXED@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeCustomEventArtworkType
+
+instance FromText CreativeCustomEventArtworkType where
+    fromText = \case
+        "ARTWORK_TYPE_FLASH" -> Just ArtworkTypeFlash
+        "ARTWORK_TYPE_HTML5" -> Just ArtworkTypeHTML5
+        "ARTWORK_TYPE_MIXED" -> Just ArtworkTypeMixed
+        _ -> Nothing
+
+instance ToText CreativeCustomEventArtworkType where
+    toText = \case
+        ArtworkTypeFlash -> "ARTWORK_TYPE_FLASH"
+        ArtworkTypeHTML5 -> "ARTWORK_TYPE_HTML5"
+        ArtworkTypeMixed -> "ARTWORK_TYPE_MIXED"
+
+instance FromJSON CreativeCustomEventArtworkType where
+    parseJSON = parseJSONText "CreativeCustomEventArtworkType"
+
+instance ToJSON CreativeCustomEventArtworkType where
+    toJSON = toJSONText
+
+-- | Types of attribution options for natural search conversions.
+data FloodlightConfigurationNATuralSearchConversionAttributionOption
+    = ExcludeNATuralSearchConversionAttribution
+      -- ^ @EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION@
+    | IncludeNATuralSearchConversionAttribution
+      -- ^ @INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION@
+    | IncludeNATuralSearchTieredConversionAttribution
+      -- ^ @INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightConfigurationNATuralSearchConversionAttributionOption
+
+instance FromText FloodlightConfigurationNATuralSearchConversionAttributionOption where
+    fromText = \case
+        "EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION" -> Just ExcludeNATuralSearchConversionAttribution
+        "INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION" -> Just IncludeNATuralSearchConversionAttribution
+        "INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION" -> Just IncludeNATuralSearchTieredConversionAttribution
+        _ -> Nothing
+
+instance ToText FloodlightConfigurationNATuralSearchConversionAttributionOption where
+    toText = \case
+        ExcludeNATuralSearchConversionAttribution -> "EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION"
+        IncludeNATuralSearchConversionAttribution -> "INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION"
+        IncludeNATuralSearchTieredConversionAttribution -> "INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION"
+
+instance FromJSON FloodlightConfigurationNATuralSearchConversionAttributionOption where
+    parseJSON = parseJSONText "FloodlightConfigurationNATuralSearchConversionAttributionOption"
+
+instance ToJSON FloodlightConfigurationNATuralSearchConversionAttributionOption where
+    toJSON = toJSONText
+
+-- | Artwork type of rich media creative. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA.
+data CreativeAssetArtworkType
+    = CAATArtworkTypeFlash
+      -- ^ @ARTWORK_TYPE_FLASH@
+    | CAATArtworkTypeHTML5
+      -- ^ @ARTWORK_TYPE_HTML5@
+    | CAATArtworkTypeMixed
+      -- ^ @ARTWORK_TYPE_MIXED@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetArtworkType
+
+instance FromText CreativeAssetArtworkType where
+    fromText = \case
+        "ARTWORK_TYPE_FLASH" -> Just CAATArtworkTypeFlash
+        "ARTWORK_TYPE_HTML5" -> Just CAATArtworkTypeHTML5
+        "ARTWORK_TYPE_MIXED" -> Just CAATArtworkTypeMixed
+        _ -> Nothing
+
+instance ToText CreativeAssetArtworkType where
+    toText = \case
+        CAATArtworkTypeFlash -> "ARTWORK_TYPE_FLASH"
+        CAATArtworkTypeHTML5 -> "ARTWORK_TYPE_HTML5"
+        CAATArtworkTypeMixed -> "ARTWORK_TYPE_MIXED"
+
+instance FromJSON CreativeAssetArtworkType where
+    parseJSON = parseJSONText "CreativeAssetArtworkType"
+
+instance ToJSON CreativeAssetArtworkType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data FloodlightActivitiesListSortOrder
+    = FALSOAscending
+      -- ^ @ASCENDING@
+    | FALSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivitiesListSortOrder
+
+instance FromText FloodlightActivitiesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just FALSOAscending
+        "DESCENDING" -> Just FALSODescending
+        _ -> Nothing
+
+instance ToText FloodlightActivitiesListSortOrder where
+    toText = \case
+        FALSOAscending -> "ASCENDING"
+        FALSODescending -> "DESCENDING"
+
+instance FromJSON FloodlightActivitiesListSortOrder where
+    parseJSON = parseJSONText "FloodlightActivitiesListSortOrder"
+
+instance ToJSON FloodlightActivitiesListSortOrder where
+    toJSON = toJSONText
+
+-- | The output format of the report. Only available once the file is
+-- available.
+data FileFormat
+    = CSV
+      -- ^ @CSV@
+    | Excel
+      -- ^ @EXCEL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FileFormat
+
+instance FromText FileFormat where
+    fromText = \case
+        "CSV" -> Just CSV
+        "EXCEL" -> Just Excel
+        _ -> Nothing
+
+instance ToText FileFormat where
+    toText = \case
+        CSV -> "CSV"
+        Excel -> "EXCEL"
+
+instance FromJSON FileFormat where
+    parseJSON = parseJSONText "FileFormat"
+
+instance ToJSON FileFormat where
+    toJSON = toJSONText
+
+-- | Placement pricing type. This field is required on insertion.
+data PricingSchedulePricingType
+    = PricingTypeCpa
+      -- ^ @PRICING_TYPE_CPA@
+    | PricingTypeCpc
+      -- ^ @PRICING_TYPE_CPC@
+    | PricingTypeCpm
+      -- ^ @PRICING_TYPE_CPM@
+    | PricingTypeFlatRateClicks
+      -- ^ @PRICING_TYPE_FLAT_RATE_CLICKS@
+    | PricingTypeFlatRateImpressions
+      -- ^ @PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PricingSchedulePricingType
+
+instance FromText PricingSchedulePricingType where
+    fromText = \case
+        "PRICING_TYPE_CPA" -> Just PricingTypeCpa
+        "PRICING_TYPE_CPC" -> Just PricingTypeCpc
+        "PRICING_TYPE_CPM" -> Just PricingTypeCpm
+        "PRICING_TYPE_FLAT_RATE_CLICKS" -> Just PricingTypeFlatRateClicks
+        "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Just PricingTypeFlatRateImpressions
+        _ -> Nothing
+
+instance ToText PricingSchedulePricingType where
+    toText = \case
+        PricingTypeCpa -> "PRICING_TYPE_CPA"
+        PricingTypeCpc -> "PRICING_TYPE_CPC"
+        PricingTypeCpm -> "PRICING_TYPE_CPM"
+        PricingTypeFlatRateClicks -> "PRICING_TYPE_FLAT_RATE_CLICKS"
+        PricingTypeFlatRateImpressions -> "PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
+
+instance FromJSON PricingSchedulePricingType where
+    parseJSON = parseJSONText "PricingSchedulePricingType"
+
+instance ToJSON PricingSchedulePricingType where
+    toJSON = toJSONText
+
+-- | Target type used by the event.
+data CreativeCustomEventTargetType
+    = TargetBlank
+      -- ^ @TARGET_BLANK@
+    | TargetParent
+      -- ^ @TARGET_PARENT@
+    | TargetPopup
+      -- ^ @TARGET_POPUP@
+    | TargetSelf
+      -- ^ @TARGET_SELF@
+    | TargetTop
+      -- ^ @TARGET_TOP@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeCustomEventTargetType
+
+instance FromText CreativeCustomEventTargetType where
+    fromText = \case
+        "TARGET_BLANK" -> Just TargetBlank
+        "TARGET_PARENT" -> Just TargetParent
+        "TARGET_POPUP" -> Just TargetPopup
+        "TARGET_SELF" -> Just TargetSelf
+        "TARGET_TOP" -> Just TargetTop
+        _ -> Nothing
+
+instance ToText CreativeCustomEventTargetType where
+    toText = \case
+        TargetBlank -> "TARGET_BLANK"
+        TargetParent -> "TARGET_PARENT"
+        TargetPopup -> "TARGET_POPUP"
+        TargetSelf -> "TARGET_SELF"
+        TargetTop -> "TARGET_TOP"
+
+instance FromJSON CreativeCustomEventTargetType where
+    parseJSON = parseJSONText "CreativeCustomEventTargetType"
+
+instance ToJSON CreativeCustomEventTargetType where
+    toJSON = toJSONText
+
+-- | The scope that defines which results are returned, default is \'MINE\'.
+data ReportsListScope
+    = All
+      -- ^ @ALL@
+      -- All reports in account.
+    | Mine
+      -- ^ @MINE@
+      -- My reports.
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportsListScope
+
+instance FromText ReportsListScope where
+    fromText = \case
+        "ALL" -> Just All
+        "MINE" -> Just Mine
+        _ -> Nothing
+
+instance ToText ReportsListScope where
+    toText = \case
+        All -> "ALL"
+        Mine -> "MINE"
+
+instance FromJSON ReportsListScope where
+    parseJSON = parseJSONText "ReportsListScope"
+
+instance ToJSON ReportsListScope where
+    toJSON = toJSONText
+
+-- | Duration type for which an asset will be displayed. Applicable to the
+-- following creative types: all RICH_MEDIA.
+data CreativeAssetDurationType
+    = AssetDurationTypeAuto
+      -- ^ @ASSET_DURATION_TYPE_AUTO@
+    | AssetDurationTypeCustom
+      -- ^ @ASSET_DURATION_TYPE_CUSTOM@
+    | AssetDurationTypeNone
+      -- ^ @ASSET_DURATION_TYPE_NONE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetDurationType
+
+instance FromText CreativeAssetDurationType where
+    fromText = \case
+        "ASSET_DURATION_TYPE_AUTO" -> Just AssetDurationTypeAuto
+        "ASSET_DURATION_TYPE_CUSTOM" -> Just AssetDurationTypeCustom
+        "ASSET_DURATION_TYPE_NONE" -> Just AssetDurationTypeNone
+        _ -> Nothing
+
+instance ToText CreativeAssetDurationType where
+    toText = \case
+        AssetDurationTypeAuto -> "ASSET_DURATION_TYPE_AUTO"
+        AssetDurationTypeCustom -> "ASSET_DURATION_TYPE_CUSTOM"
+        AssetDurationTypeNone -> "ASSET_DURATION_TYPE_NONE"
+
+instance FromJSON CreativeAssetDurationType where
+    parseJSON = parseJSONText "CreativeAssetDurationType"
+
+instance ToJSON CreativeAssetDurationType where
+    toJSON = toJSONText
+
+-- | Product from which this targetable remarketing list was originated.
+data TargetableRemarketingListListSource
+    = RemarketingListSourceDBm
+      -- ^ @REMARKETING_LIST_SOURCE_DBM@
+    | RemarketingListSourceDfa
+      -- ^ @REMARKETING_LIST_SOURCE_DFA@
+    | RemarketingListSourceDmp
+      -- ^ @REMARKETING_LIST_SOURCE_DMP@
+    | RemarketingListSourceGa
+      -- ^ @REMARKETING_LIST_SOURCE_GA@
+    | RemarketingListSourceOther
+      -- ^ @REMARKETING_LIST_SOURCE_OTHER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable TargetableRemarketingListListSource
+
+instance FromText TargetableRemarketingListListSource where
+    fromText = \case
+        "REMARKETING_LIST_SOURCE_DBM" -> Just RemarketingListSourceDBm
+        "REMARKETING_LIST_SOURCE_DFA" -> Just RemarketingListSourceDfa
+        "REMARKETING_LIST_SOURCE_DMP" -> Just RemarketingListSourceDmp
+        "REMARKETING_LIST_SOURCE_GA" -> Just RemarketingListSourceGa
+        "REMARKETING_LIST_SOURCE_OTHER" -> Just RemarketingListSourceOther
+        _ -> Nothing
+
+instance ToText TargetableRemarketingListListSource where
+    toText = \case
+        RemarketingListSourceDBm -> "REMARKETING_LIST_SOURCE_DBM"
+        RemarketingListSourceDfa -> "REMARKETING_LIST_SOURCE_DFA"
+        RemarketingListSourceDmp -> "REMARKETING_LIST_SOURCE_DMP"
+        RemarketingListSourceGa -> "REMARKETING_LIST_SOURCE_GA"
+        RemarketingListSourceOther -> "REMARKETING_LIST_SOURCE_OTHER"
+
+instance FromJSON TargetableRemarketingListListSource where
+    parseJSON = parseJSONText "TargetableRemarketingListListSource"
+
+instance ToJSON TargetableRemarketingListListSource where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data CreativeGroupsListSortField
+    = CGLSFID
+      -- ^ @ID@
+    | CGLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeGroupsListSortField
+
+instance FromText CreativeGroupsListSortField where
+    fromText = \case
+        "ID" -> Just CGLSFID
+        "NAME" -> Just CGLSFName
+        _ -> Nothing
+
+instance ToText CreativeGroupsListSortField where
+    toText = \case
+        CGLSFID -> "ID"
+        CGLSFName -> "NAME"
+
+instance FromJSON CreativeGroupsListSortField where
+    parseJSON = parseJSONText "CreativeGroupsListSortField"
+
+instance ToJSON CreativeGroupsListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data PlacementsListSortField
+    = PLSFID
+      -- ^ @ID@
+    | PLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementsListSortField
+
+instance FromText PlacementsListSortField where
+    fromText = \case
+        "ID" -> Just PLSFID
+        "NAME" -> Just PLSFName
+        _ -> Nothing
+
+instance ToText PlacementsListSortField where
+    toText = \case
+        PLSFID -> "ID"
+        PLSFName -> "NAME"
+
+instance FromJSON PlacementsListSortField where
+    parseJSON = parseJSONText "PlacementsListSortField"
+
+instance ToJSON PlacementsListSortField where
+    toJSON = toJSONText
+
+data CreativeBackupImageFeaturesItem
+    = CBIFIApplicationCache
+      -- ^ @APPLICATION_CACHE@
+    | CBIFIAudio
+      -- ^ @AUDIO@
+    | CBIFICanvas
+      -- ^ @CANVAS@
+    | CBIFICanvasText
+      -- ^ @CANVAS_TEXT@
+    | CBIFICssAnimations
+      -- ^ @CSS_ANIMATIONS@
+    | CBIFICssBackgRoundSize
+      -- ^ @CSS_BACKGROUND_SIZE@
+    | CBIFICssBOrderImage
+      -- ^ @CSS_BORDER_IMAGE@
+    | CBIFICssBOrderRadius
+      -- ^ @CSS_BORDER_RADIUS@
+    | CBIFICssBoxShadow
+      -- ^ @CSS_BOX_SHADOW@
+    | CBIFICssColumns
+      -- ^ @CSS_COLUMNS@
+    | CBIFICssFlexBox
+      -- ^ @CSS_FLEX_BOX@
+    | CBIFICssFontFace
+      -- ^ @CSS_FONT_FACE@
+    | CBIFICssGeneratedContent
+      -- ^ @CSS_GENERATED_CONTENT@
+    | CBIFICssGradients
+      -- ^ @CSS_GRADIENTS@
+    | CBIFICssHsla
+      -- ^ @CSS_HSLA@
+    | CBIFICssMultipleBgs
+      -- ^ @CSS_MULTIPLE_BGS@
+    | CBIFICssOpacity
+      -- ^ @CSS_OPACITY@
+    | CBIFICssReflections
+      -- ^ @CSS_REFLECTIONS@
+    | CBIFICssRgba
+      -- ^ @CSS_RGBA@
+    | CBIFICssTextShadow
+      -- ^ @CSS_TEXT_SHADOW@
+    | CBIFICssTransforms
+      -- ^ @CSS_TRANSFORMS@
+    | CBIFICssTRANSFORMS3D
+      -- ^ @CSS_TRANSFORMS3D@
+    | CBIFICssTransitions
+      -- ^ @CSS_TRANSITIONS@
+    | CBIFIDragAndDrop
+      -- ^ @DRAG_AND_DROP@
+    | CBIFIGeoLocation
+      -- ^ @GEO_LOCATION@
+    | CBIFIHashChange
+      -- ^ @HASH_CHANGE@
+    | CBIFIHistory
+      -- ^ @HISTORY@
+    | CBIFIIndexedDB
+      -- ^ @INDEXED_DB@
+    | CBIFIInlineSvg
+      -- ^ @INLINE_SVG@
+    | CBIFIInputAttrAutocomplete
+      -- ^ @INPUT_ATTR_AUTOCOMPLETE@
+    | CBIFIInputAttrAutofocus
+      -- ^ @INPUT_ATTR_AUTOFOCUS@
+    | CBIFIInputAttrList
+      -- ^ @INPUT_ATTR_LIST@
+    | CBIFIInputAttrMax
+      -- ^ @INPUT_ATTR_MAX@
+    | CBIFIInputAttrMin
+      -- ^ @INPUT_ATTR_MIN@
+    | CBIFIInputAttrMultiple
+      -- ^ @INPUT_ATTR_MULTIPLE@
+    | CBIFIInputAttrPattern
+      -- ^ @INPUT_ATTR_PATTERN@
+    | CBIFIInputAttrPlaceholder
+      -- ^ @INPUT_ATTR_PLACEHOLDER@
+    | CBIFIInputAttrRequired
+      -- ^ @INPUT_ATTR_REQUIRED@
+    | CBIFIInputAttrStep
+      -- ^ @INPUT_ATTR_STEP@
+    | CBIFIInputTypeColor
+      -- ^ @INPUT_TYPE_COLOR@
+    | CBIFIInputTypeDate
+      -- ^ @INPUT_TYPE_DATE@
+    | CBIFIInputTypeDatetime
+      -- ^ @INPUT_TYPE_DATETIME@
+    | CBIFIInputTypeDatetimeLocal
+      -- ^ @INPUT_TYPE_DATETIME_LOCAL@
+    | CBIFIInputTypeEmail
+      -- ^ @INPUT_TYPE_EMAIL@
+    | CBIFIInputTypeMonth
+      -- ^ @INPUT_TYPE_MONTH@
+    | CBIFIInputTypeNumber
+      -- ^ @INPUT_TYPE_NUMBER@
+    | CBIFIInputTypeRange
+      -- ^ @INPUT_TYPE_RANGE@
+    | CBIFIInputTypeSearch
+      -- ^ @INPUT_TYPE_SEARCH@
+    | CBIFIInputTypeTel
+      -- ^ @INPUT_TYPE_TEL@
+    | CBIFIInputTypeTime
+      -- ^ @INPUT_TYPE_TIME@
+    | CBIFIInputTypeURL
+      -- ^ @INPUT_TYPE_URL@
+    | CBIFIInputTypeWeek
+      -- ^ @INPUT_TYPE_WEEK@
+    | CBIFILocalStorage
+      -- ^ @LOCAL_STORAGE@
+    | CBIFIPostMessage
+      -- ^ @POST_MESSAGE@
+    | CBIFISessionStorage
+      -- ^ @SESSION_STORAGE@
+    | CBIFISmil
+      -- ^ @SMIL@
+    | CBIFISvgClipPaths
+      -- ^ @SVG_CLIP_PATHS@
+    | CBIFISvgFeImage
+      -- ^ @SVG_FE_IMAGE@
+    | CBIFISvgFilters
+      -- ^ @SVG_FILTERS@
+    | CBIFISvgHref
+      -- ^ @SVG_HREF@
+    | CBIFITouch
+      -- ^ @TOUCH@
+    | CBIFIVideo
+      -- ^ @VIDEO@
+    | CBIFIWebgl
+      -- ^ @WEBGL@
+    | CBIFIWebSockets
+      -- ^ @WEB_SOCKETS@
+    | CBIFIWebSQLDatabase
+      -- ^ @WEB_SQL_DATABASE@
+    | CBIFIWebWorkers
+      -- ^ @WEB_WORKERS@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeBackupImageFeaturesItem
+
+instance FromText CreativeBackupImageFeaturesItem where
+    fromText = \case
+        "APPLICATION_CACHE" -> Just CBIFIApplicationCache
+        "AUDIO" -> Just CBIFIAudio
+        "CANVAS" -> Just CBIFICanvas
+        "CANVAS_TEXT" -> Just CBIFICanvasText
+        "CSS_ANIMATIONS" -> Just CBIFICssAnimations
+        "CSS_BACKGROUND_SIZE" -> Just CBIFICssBackgRoundSize
+        "CSS_BORDER_IMAGE" -> Just CBIFICssBOrderImage
+        "CSS_BORDER_RADIUS" -> Just CBIFICssBOrderRadius
+        "CSS_BOX_SHADOW" -> Just CBIFICssBoxShadow
+        "CSS_COLUMNS" -> Just CBIFICssColumns
+        "CSS_FLEX_BOX" -> Just CBIFICssFlexBox
+        "CSS_FONT_FACE" -> Just CBIFICssFontFace
+        "CSS_GENERATED_CONTENT" -> Just CBIFICssGeneratedContent
+        "CSS_GRADIENTS" -> Just CBIFICssGradients
+        "CSS_HSLA" -> Just CBIFICssHsla
+        "CSS_MULTIPLE_BGS" -> Just CBIFICssMultipleBgs
+        "CSS_OPACITY" -> Just CBIFICssOpacity
+        "CSS_REFLECTIONS" -> Just CBIFICssReflections
+        "CSS_RGBA" -> Just CBIFICssRgba
+        "CSS_TEXT_SHADOW" -> Just CBIFICssTextShadow
+        "CSS_TRANSFORMS" -> Just CBIFICssTransforms
+        "CSS_TRANSFORMS3D" -> Just CBIFICssTRANSFORMS3D
+        "CSS_TRANSITIONS" -> Just CBIFICssTransitions
+        "DRAG_AND_DROP" -> Just CBIFIDragAndDrop
+        "GEO_LOCATION" -> Just CBIFIGeoLocation
+        "HASH_CHANGE" -> Just CBIFIHashChange
+        "HISTORY" -> Just CBIFIHistory
+        "INDEXED_DB" -> Just CBIFIIndexedDB
+        "INLINE_SVG" -> Just CBIFIInlineSvg
+        "INPUT_ATTR_AUTOCOMPLETE" -> Just CBIFIInputAttrAutocomplete
+        "INPUT_ATTR_AUTOFOCUS" -> Just CBIFIInputAttrAutofocus
+        "INPUT_ATTR_LIST" -> Just CBIFIInputAttrList
+        "INPUT_ATTR_MAX" -> Just CBIFIInputAttrMax
+        "INPUT_ATTR_MIN" -> Just CBIFIInputAttrMin
+        "INPUT_ATTR_MULTIPLE" -> Just CBIFIInputAttrMultiple
+        "INPUT_ATTR_PATTERN" -> Just CBIFIInputAttrPattern
+        "INPUT_ATTR_PLACEHOLDER" -> Just CBIFIInputAttrPlaceholder
+        "INPUT_ATTR_REQUIRED" -> Just CBIFIInputAttrRequired
+        "INPUT_ATTR_STEP" -> Just CBIFIInputAttrStep
+        "INPUT_TYPE_COLOR" -> Just CBIFIInputTypeColor
+        "INPUT_TYPE_DATE" -> Just CBIFIInputTypeDate
+        "INPUT_TYPE_DATETIME" -> Just CBIFIInputTypeDatetime
+        "INPUT_TYPE_DATETIME_LOCAL" -> Just CBIFIInputTypeDatetimeLocal
+        "INPUT_TYPE_EMAIL" -> Just CBIFIInputTypeEmail
+        "INPUT_TYPE_MONTH" -> Just CBIFIInputTypeMonth
+        "INPUT_TYPE_NUMBER" -> Just CBIFIInputTypeNumber
+        "INPUT_TYPE_RANGE" -> Just CBIFIInputTypeRange
+        "INPUT_TYPE_SEARCH" -> Just CBIFIInputTypeSearch
+        "INPUT_TYPE_TEL" -> Just CBIFIInputTypeTel
+        "INPUT_TYPE_TIME" -> Just CBIFIInputTypeTime
+        "INPUT_TYPE_URL" -> Just CBIFIInputTypeURL
+        "INPUT_TYPE_WEEK" -> Just CBIFIInputTypeWeek
+        "LOCAL_STORAGE" -> Just CBIFILocalStorage
+        "POST_MESSAGE" -> Just CBIFIPostMessage
+        "SESSION_STORAGE" -> Just CBIFISessionStorage
+        "SMIL" -> Just CBIFISmil
+        "SVG_CLIP_PATHS" -> Just CBIFISvgClipPaths
+        "SVG_FE_IMAGE" -> Just CBIFISvgFeImage
+        "SVG_FILTERS" -> Just CBIFISvgFilters
+        "SVG_HREF" -> Just CBIFISvgHref
+        "TOUCH" -> Just CBIFITouch
+        "VIDEO" -> Just CBIFIVideo
+        "WEBGL" -> Just CBIFIWebgl
+        "WEB_SOCKETS" -> Just CBIFIWebSockets
+        "WEB_SQL_DATABASE" -> Just CBIFIWebSQLDatabase
+        "WEB_WORKERS" -> Just CBIFIWebWorkers
+        _ -> Nothing
+
+instance ToText CreativeBackupImageFeaturesItem where
+    toText = \case
+        CBIFIApplicationCache -> "APPLICATION_CACHE"
+        CBIFIAudio -> "AUDIO"
+        CBIFICanvas -> "CANVAS"
+        CBIFICanvasText -> "CANVAS_TEXT"
+        CBIFICssAnimations -> "CSS_ANIMATIONS"
+        CBIFICssBackgRoundSize -> "CSS_BACKGROUND_SIZE"
+        CBIFICssBOrderImage -> "CSS_BORDER_IMAGE"
+        CBIFICssBOrderRadius -> "CSS_BORDER_RADIUS"
+        CBIFICssBoxShadow -> "CSS_BOX_SHADOW"
+        CBIFICssColumns -> "CSS_COLUMNS"
+        CBIFICssFlexBox -> "CSS_FLEX_BOX"
+        CBIFICssFontFace -> "CSS_FONT_FACE"
+        CBIFICssGeneratedContent -> "CSS_GENERATED_CONTENT"
+        CBIFICssGradients -> "CSS_GRADIENTS"
+        CBIFICssHsla -> "CSS_HSLA"
+        CBIFICssMultipleBgs -> "CSS_MULTIPLE_BGS"
+        CBIFICssOpacity -> "CSS_OPACITY"
+        CBIFICssReflections -> "CSS_REFLECTIONS"
+        CBIFICssRgba -> "CSS_RGBA"
+        CBIFICssTextShadow -> "CSS_TEXT_SHADOW"
+        CBIFICssTransforms -> "CSS_TRANSFORMS"
+        CBIFICssTRANSFORMS3D -> "CSS_TRANSFORMS3D"
+        CBIFICssTransitions -> "CSS_TRANSITIONS"
+        CBIFIDragAndDrop -> "DRAG_AND_DROP"
+        CBIFIGeoLocation -> "GEO_LOCATION"
+        CBIFIHashChange -> "HASH_CHANGE"
+        CBIFIHistory -> "HISTORY"
+        CBIFIIndexedDB -> "INDEXED_DB"
+        CBIFIInlineSvg -> "INLINE_SVG"
+        CBIFIInputAttrAutocomplete -> "INPUT_ATTR_AUTOCOMPLETE"
+        CBIFIInputAttrAutofocus -> "INPUT_ATTR_AUTOFOCUS"
+        CBIFIInputAttrList -> "INPUT_ATTR_LIST"
+        CBIFIInputAttrMax -> "INPUT_ATTR_MAX"
+        CBIFIInputAttrMin -> "INPUT_ATTR_MIN"
+        CBIFIInputAttrMultiple -> "INPUT_ATTR_MULTIPLE"
+        CBIFIInputAttrPattern -> "INPUT_ATTR_PATTERN"
+        CBIFIInputAttrPlaceholder -> "INPUT_ATTR_PLACEHOLDER"
+        CBIFIInputAttrRequired -> "INPUT_ATTR_REQUIRED"
+        CBIFIInputAttrStep -> "INPUT_ATTR_STEP"
+        CBIFIInputTypeColor -> "INPUT_TYPE_COLOR"
+        CBIFIInputTypeDate -> "INPUT_TYPE_DATE"
+        CBIFIInputTypeDatetime -> "INPUT_TYPE_DATETIME"
+        CBIFIInputTypeDatetimeLocal -> "INPUT_TYPE_DATETIME_LOCAL"
+        CBIFIInputTypeEmail -> "INPUT_TYPE_EMAIL"
+        CBIFIInputTypeMonth -> "INPUT_TYPE_MONTH"
+        CBIFIInputTypeNumber -> "INPUT_TYPE_NUMBER"
+        CBIFIInputTypeRange -> "INPUT_TYPE_RANGE"
+        CBIFIInputTypeSearch -> "INPUT_TYPE_SEARCH"
+        CBIFIInputTypeTel -> "INPUT_TYPE_TEL"
+        CBIFIInputTypeTime -> "INPUT_TYPE_TIME"
+        CBIFIInputTypeURL -> "INPUT_TYPE_URL"
+        CBIFIInputTypeWeek -> "INPUT_TYPE_WEEK"
+        CBIFILocalStorage -> "LOCAL_STORAGE"
+        CBIFIPostMessage -> "POST_MESSAGE"
+        CBIFISessionStorage -> "SESSION_STORAGE"
+        CBIFISmil -> "SMIL"
+        CBIFISvgClipPaths -> "SVG_CLIP_PATHS"
+        CBIFISvgFeImage -> "SVG_FE_IMAGE"
+        CBIFISvgFilters -> "SVG_FILTERS"
+        CBIFISvgHref -> "SVG_HREF"
+        CBIFITouch -> "TOUCH"
+        CBIFIVideo -> "VIDEO"
+        CBIFIWebgl -> "WEBGL"
+        CBIFIWebSockets -> "WEB_SOCKETS"
+        CBIFIWebSQLDatabase -> "WEB_SQL_DATABASE"
+        CBIFIWebWorkers -> "WEB_WORKERS"
+
+instance FromJSON CreativeBackupImageFeaturesItem where
+    parseJSON = parseJSONText "CreativeBackupImageFeaturesItem"
+
+instance ToJSON CreativeBackupImageFeaturesItem where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data AdvertisersListSortOrder
+    = ALSOAscending
+      -- ^ @ASCENDING@
+    | ALSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdvertisersListSortOrder
+
+instance FromText AdvertisersListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just ALSOAscending
+        "DESCENDING" -> Just ALSODescending
+        _ -> Nothing
+
+instance ToText AdvertisersListSortOrder where
+    toText = \case
+        ALSOAscending -> "ASCENDING"
+        ALSODescending -> "DESCENDING"
+
+instance FromJSON AdvertisersListSortOrder where
+    parseJSON = parseJSONText "AdvertisersListSortOrder"
+
+instance ToJSON AdvertisersListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data CreativeFieldsListSortField
+    = CFLSFID
+      -- ^ @ID@
+    | CFLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeFieldsListSortField
+
+instance FromText CreativeFieldsListSortField where
+    fromText = \case
+        "ID" -> Just CFLSFID
+        "NAME" -> Just CFLSFName
+        _ -> Nothing
+
+instance ToText CreativeFieldsListSortField where
+    toText = \case
+        CFLSFID -> "ID"
+        CFLSFName -> "NAME"
+
+instance FromJSON CreativeFieldsListSortField where
+    parseJSON = parseJSONText "CreativeFieldsListSortField"
+
+instance ToJSON CreativeFieldsListSortField where
+    toJSON = toJSONText
+
+-- | Variable name in the tag. This is a required field.
+data UserDefinedVariableConfigurationVariableType
+    = U1
+      -- ^ @U1@
+    | U10
+      -- ^ @U10@
+    | U11
+      -- ^ @U11@
+    | U12
+      -- ^ @U12@
+    | U13
+      -- ^ @U13@
+    | U14
+      -- ^ @U14@
+    | U15
+      -- ^ @U15@
+    | U16
+      -- ^ @U16@
+    | U17
+      -- ^ @U17@
+    | U18
+      -- ^ @U18@
+    | U19
+      -- ^ @U19@
+    | U2
+      -- ^ @U2@
+    | U20
+      -- ^ @U20@
+    | U3
+      -- ^ @U3@
+    | U4
+      -- ^ @U4@
+    | U5
+      -- ^ @U5@
+    | U6
+      -- ^ @U6@
+    | U7
+      -- ^ @U7@
+    | U8
+      -- ^ @U8@
+    | U9
+      -- ^ @U9@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable UserDefinedVariableConfigurationVariableType
+
+instance FromText UserDefinedVariableConfigurationVariableType where
+    fromText = \case
+        "U1" -> Just U1
+        "U10" -> Just U10
+        "U11" -> Just U11
+        "U12" -> Just U12
+        "U13" -> Just U13
+        "U14" -> Just U14
+        "U15" -> Just U15
+        "U16" -> Just U16
+        "U17" -> Just U17
+        "U18" -> Just U18
+        "U19" -> Just U19
+        "U2" -> Just U2
+        "U20" -> Just U20
+        "U3" -> Just U3
+        "U4" -> Just U4
+        "U5" -> Just U5
+        "U6" -> Just U6
+        "U7" -> Just U7
+        "U8" -> Just U8
+        "U9" -> Just U9
+        _ -> Nothing
+
+instance ToText UserDefinedVariableConfigurationVariableType where
+    toText = \case
+        U1 -> "U1"
+        U10 -> "U10"
+        U11 -> "U11"
+        U12 -> "U12"
+        U13 -> "U13"
+        U14 -> "U14"
+        U15 -> "U15"
+        U16 -> "U16"
+        U17 -> "U17"
+        U18 -> "U18"
+        U19 -> "U19"
+        U2 -> "U2"
+        U20 -> "U20"
+        U3 -> "U3"
+        U4 -> "U4"
+        U5 -> "U5"
+        U6 -> "U6"
+        U7 -> "U7"
+        U8 -> "U8"
+        U9 -> "U9"
+
+instance FromJSON UserDefinedVariableConfigurationVariableType where
+    parseJSON = parseJSONText "UserDefinedVariableConfigurationVariableType"
+
+instance ToJSON UserDefinedVariableConfigurationVariableType where
+    toJSON = toJSONText
+
+-- | Position in the browser where the window will open.
+data FsCommandPositionOption
+    = Centered
+      -- ^ @CENTERED@
+    | DistanceFromTopLeftCorner
+      -- ^ @DISTANCE_FROM_TOP_LEFT_CORNER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FsCommandPositionOption
+
+instance FromText FsCommandPositionOption where
+    fromText = \case
+        "CENTERED" -> Just Centered
+        "DISTANCE_FROM_TOP_LEFT_CORNER" -> Just DistanceFromTopLeftCorner
+        _ -> Nothing
+
+instance ToText FsCommandPositionOption where
+    toText = \case
+        Centered -> "CENTERED"
+        DistanceFromTopLeftCorner -> "DISTANCE_FROM_TOP_LEFT_CORNER"
+
+instance FromJSON FsCommandPositionOption where
+    parseJSON = parseJSONText "FsCommandPositionOption"
+
+instance ToJSON FsCommandPositionOption where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data UserRolesListSortOrder
+    = URLSOAscending
+      -- ^ @ASCENDING@
+    | URLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable UserRolesListSortOrder
+
+instance FromText UserRolesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just URLSOAscending
+        "DESCENDING" -> Just URLSODescending
+        _ -> Nothing
+
+instance ToText UserRolesListSortOrder where
+    toText = \case
+        URLSOAscending -> "ASCENDING"
+        URLSODescending -> "DESCENDING"
+
+instance FromJSON UserRolesListSortOrder where
+    parseJSON = parseJSONText "UserRolesListSortOrder"
+
+instance ToJSON UserRolesListSortOrder where
+    toJSON = toJSONText
+
+-- | Select only placements that are associated with these compatibilities.
+-- WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on
+-- mobile devices for regular or interstitial ads respectively. APP and
+-- APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers
+-- to rendering in in-stream video ads developed with the VAST standard.
+data PlacementsListCompatibilities
+    = PLCApp
+      -- ^ @APP@
+    | PLCAppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | PLCInStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+    | PLCWeb
+      -- ^ @WEB@
+    | PLCWebInterstitial
+      -- ^ @WEB_INTERSTITIAL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementsListCompatibilities
+
+instance FromText PlacementsListCompatibilities where
+    fromText = \case
+        "APP" -> Just PLCApp
+        "APP_INTERSTITIAL" -> Just PLCAppInterstitial
+        "IN_STREAM_VIDEO" -> Just PLCInStreamVideo
+        "WEB" -> Just PLCWeb
+        "WEB_INTERSTITIAL" -> Just PLCWebInterstitial
+        _ -> Nothing
+
+instance ToText PlacementsListCompatibilities where
+    toText = \case
+        PLCApp -> "APP"
+        PLCAppInterstitial -> "APP_INTERSTITIAL"
+        PLCInStreamVideo -> "IN_STREAM_VIDEO"
+        PLCWeb -> "WEB"
+        PLCWebInterstitial -> "WEB_INTERSTITIAL"
+
+instance FromJSON PlacementsListCompatibilities where
+    parseJSON = parseJSONText "PlacementsListCompatibilities"
+
+instance ToJSON PlacementsListCompatibilities where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data OrderDocumentsListSortField
+    = ODLSFID
+      -- ^ @ID@
+    | ODLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable OrderDocumentsListSortField
+
+instance FromText OrderDocumentsListSortField where
+    fromText = \case
+        "ID" -> Just ODLSFID
+        "NAME" -> Just ODLSFName
+        _ -> Nothing
+
+instance ToText OrderDocumentsListSortField where
+    toText = \case
+        ODLSFID -> "ID"
+        ODLSFName -> "NAME"
+
+instance FromJSON OrderDocumentsListSortField where
+    parseJSON = parseJSONText "OrderDocumentsListSortField"
+
+instance ToJSON OrderDocumentsListSortField where
+    toJSON = toJSONText
+
+data CreativeCompatibilityItem
+    = CCIApp
+      -- ^ @APP@
+    | CCIAppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | CCIInStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+    | CCIWeb
+      -- ^ @WEB@
+    | CCIWebInterstitial
+      -- ^ @WEB_INTERSTITIAL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeCompatibilityItem
+
+instance FromText CreativeCompatibilityItem where
+    fromText = \case
+        "APP" -> Just CCIApp
+        "APP_INTERSTITIAL" -> Just CCIAppInterstitial
+        "IN_STREAM_VIDEO" -> Just CCIInStreamVideo
+        "WEB" -> Just CCIWeb
+        "WEB_INTERSTITIAL" -> Just CCIWebInterstitial
+        _ -> Nothing
+
+instance ToText CreativeCompatibilityItem where
+    toText = \case
+        CCIApp -> "APP"
+        CCIAppInterstitial -> "APP_INTERSTITIAL"
+        CCIInStreamVideo -> "IN_STREAM_VIDEO"
+        CCIWeb -> "WEB"
+        CCIWebInterstitial -> "WEB_INTERSTITIAL"
+
+instance FromJSON CreativeCompatibilityItem where
+    parseJSON = parseJSONText "CreativeCompatibilityItem"
+
+instance ToJSON CreativeCompatibilityItem where
+    toJSON = toJSONText
+
+-- | The type of delivery for the owner to receive, if enabled.
+data ReportDeliveryEmailOwnerDeliveryType
+    = RDEODTAttachment
+      -- ^ @ATTACHMENT@
+    | RDEODTLink
+      -- ^ @LINK@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportDeliveryEmailOwnerDeliveryType
+
+instance FromText ReportDeliveryEmailOwnerDeliveryType where
+    fromText = \case
+        "ATTACHMENT" -> Just RDEODTAttachment
+        "LINK" -> Just RDEODTLink
+        _ -> Nothing
+
+instance ToText ReportDeliveryEmailOwnerDeliveryType where
+    toText = \case
+        RDEODTAttachment -> "ATTACHMENT"
+        RDEODTLink -> "LINK"
+
+instance FromJSON ReportDeliveryEmailOwnerDeliveryType where
+    parseJSON = parseJSONText "ReportDeliveryEmailOwnerDeliveryType"
+
+instance ToJSON ReportDeliveryEmailOwnerDeliveryType where
+    toJSON = toJSONText
+
+-- | Site contact type.
+data SiteContactContactType
+    = SalesPerson
+      -- ^ @SALES_PERSON@
+    | Trafficker
+      -- ^ @TRAFFICKER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable SiteContactContactType
+
+instance FromText SiteContactContactType where
+    fromText = \case
+        "SALES_PERSON" -> Just SalesPerson
+        "TRAFFICKER" -> Just Trafficker
+        _ -> Nothing
+
+instance ToText SiteContactContactType where
+    toText = \case
+        SalesPerson -> "SALES_PERSON"
+        Trafficker -> "TRAFFICKER"
+
+instance FromJSON SiteContactContactType where
+    parseJSON = parseJSONText "SiteContactContactType"
+
+instance ToJSON SiteContactContactType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is \'DESCENDING\'.
+data ReportsListSortOrder
+    = RLSOAscending
+      -- ^ @ASCENDING@
+      -- Ascending order.
+    | RLSODescending
+      -- ^ @DESCENDING@
+      -- Descending order.
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportsListSortOrder
+
+instance FromText ReportsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just RLSOAscending
+        "DESCENDING" -> Just RLSODescending
+        _ -> Nothing
+
+instance ToText ReportsListSortOrder where
+    toText = \case
+        RLSOAscending -> "ASCENDING"
+        RLSODescending -> "DESCENDING"
+
+instance FromJSON ReportsListSortOrder where
+    parseJSON = parseJSONText "ReportsListSortOrder"
+
+instance ToJSON ReportsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data TargetableRemarketingListsListSortField
+    = TRLLSFID
+      -- ^ @ID@
+    | TRLLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable TargetableRemarketingListsListSortField
+
+instance FromText TargetableRemarketingListsListSortField where
+    fromText = \case
+        "ID" -> Just TRLLSFID
+        "NAME" -> Just TRLLSFName
+        _ -> Nothing
+
+instance ToText TargetableRemarketingListsListSortField where
+    toText = \case
+        TRLLSFID -> "ID"
+        TRLLSFName -> "NAME"
+
+instance FromJSON TargetableRemarketingListsListSortField where
+    parseJSON = parseJSONText "TargetableRemarketingListsListSortField"
+
+instance ToJSON TargetableRemarketingListsListSortField where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CampaignsListSortOrder
+    = CLSOAscending
+      -- ^ @ASCENDING@
+    | CLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CampaignsListSortOrder
+
+instance FromText CampaignsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just CLSOAscending
+        "DESCENDING" -> Just CLSODescending
+        _ -> Nothing
+
+instance ToText CampaignsListSortOrder where
+    toText = \case
+        CLSOAscending -> "ASCENDING"
+        CLSODescending -> "DESCENDING"
+
+instance FromJSON CampaignsListSortOrder where
+    parseJSON = parseJSONText "CampaignsListSortOrder"
+
+instance ToJSON CampaignsListSortOrder where
+    toJSON = toJSONText
+
+-- | Select only floodlight activity groups with the specified floodlight
+-- activity group type.
+data FloodlightActivityGroupsListType
+    = Counter
+      -- ^ @COUNTER@
+    | Sale
+      -- ^ @SALE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivityGroupsListType
+
+instance FromText FloodlightActivityGroupsListType where
+    fromText = \case
+        "COUNTER" -> Just Counter
+        "SALE" -> Just Sale
+        _ -> Nothing
+
+instance ToText FloodlightActivityGroupsListType where
+    toText = \case
+        Counter -> "COUNTER"
+        Sale -> "SALE"
+
+instance FromJSON FloodlightActivityGroupsListType where
+    parseJSON = parseJSONText "FloodlightActivityGroupsListType"
+
+instance ToJSON FloodlightActivityGroupsListType where
+    toJSON = toJSONText
+
+-- | Day that will be counted as the first day of the week in reports. This
+-- is a required field.
+data FloodlightConfigurationFirstDayOfWeek
+    = Monday
+      -- ^ @MONDAY@
+    | Sunday
+      -- ^ @SUNDAY@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightConfigurationFirstDayOfWeek
+
+instance FromText FloodlightConfigurationFirstDayOfWeek where
+    fromText = \case
+        "MONDAY" -> Just Monday
+        "SUNDAY" -> Just Sunday
+        _ -> Nothing
+
+instance ToText FloodlightConfigurationFirstDayOfWeek where
+    toText = \case
+        Monday -> "MONDAY"
+        Sunday -> "SUNDAY"
+
+instance FromJSON FloodlightConfigurationFirstDayOfWeek where
+    parseJSON = parseJSONText "FloodlightConfigurationFirstDayOfWeek"
+
+instance ToJSON FloodlightConfigurationFirstDayOfWeek where
+    toJSON = toJSONText
+
+-- | Serving priority of an ad, with respect to other ads. The lower the
+-- priority number, the greater the priority with which it is served.
+data DeliverySchedulePriority
+    = AdPriority01
+      -- ^ @AD_PRIORITY_01@
+    | AdPriority02
+      -- ^ @AD_PRIORITY_02@
+    | AdPriority03
+      -- ^ @AD_PRIORITY_03@
+    | AdPriority04
+      -- ^ @AD_PRIORITY_04@
+    | AdPriority05
+      -- ^ @AD_PRIORITY_05@
+    | AdPriority06
+      -- ^ @AD_PRIORITY_06@
+    | AdPriority07
+      -- ^ @AD_PRIORITY_07@
+    | AdPriority08
+      -- ^ @AD_PRIORITY_08@
+    | AdPriority09
+      -- ^ @AD_PRIORITY_09@
+    | AdPriority10
+      -- ^ @AD_PRIORITY_10@
+    | AdPriority11
+      -- ^ @AD_PRIORITY_11@
+    | AdPriority12
+      -- ^ @AD_PRIORITY_12@
+    | AdPriority13
+      -- ^ @AD_PRIORITY_13@
+    | AdPriority14
+      -- ^ @AD_PRIORITY_14@
+    | AdPriority15
+      -- ^ @AD_PRIORITY_15@
+    | AdPriority16
+      -- ^ @AD_PRIORITY_16@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DeliverySchedulePriority
+
+instance FromText DeliverySchedulePriority where
+    fromText = \case
+        "AD_PRIORITY_01" -> Just AdPriority01
+        "AD_PRIORITY_02" -> Just AdPriority02
+        "AD_PRIORITY_03" -> Just AdPriority03
+        "AD_PRIORITY_04" -> Just AdPriority04
+        "AD_PRIORITY_05" -> Just AdPriority05
+        "AD_PRIORITY_06" -> Just AdPriority06
+        "AD_PRIORITY_07" -> Just AdPriority07
+        "AD_PRIORITY_08" -> Just AdPriority08
+        "AD_PRIORITY_09" -> Just AdPriority09
+        "AD_PRIORITY_10" -> Just AdPriority10
+        "AD_PRIORITY_11" -> Just AdPriority11
+        "AD_PRIORITY_12" -> Just AdPriority12
+        "AD_PRIORITY_13" -> Just AdPriority13
+        "AD_PRIORITY_14" -> Just AdPriority14
+        "AD_PRIORITY_15" -> Just AdPriority15
+        "AD_PRIORITY_16" -> Just AdPriority16
+        _ -> Nothing
+
+instance ToText DeliverySchedulePriority where
+    toText = \case
+        AdPriority01 -> "AD_PRIORITY_01"
+        AdPriority02 -> "AD_PRIORITY_02"
+        AdPriority03 -> "AD_PRIORITY_03"
+        AdPriority04 -> "AD_PRIORITY_04"
+        AdPriority05 -> "AD_PRIORITY_05"
+        AdPriority06 -> "AD_PRIORITY_06"
+        AdPriority07 -> "AD_PRIORITY_07"
+        AdPriority08 -> "AD_PRIORITY_08"
+        AdPriority09 -> "AD_PRIORITY_09"
+        AdPriority10 -> "AD_PRIORITY_10"
+        AdPriority11 -> "AD_PRIORITY_11"
+        AdPriority12 -> "AD_PRIORITY_12"
+        AdPriority13 -> "AD_PRIORITY_13"
+        AdPriority14 -> "AD_PRIORITY_14"
+        AdPriority15 -> "AD_PRIORITY_15"
+        AdPriority16 -> "AD_PRIORITY_16"
+
+instance FromJSON DeliverySchedulePriority where
+    parseJSON = parseJSONText "DeliverySchedulePriority"
+
+instance ToJSON DeliverySchedulePriority where
+    toJSON = toJSONText
+
+-- | Select only floodlight activities with the specified floodlight activity
+-- group type.
+data FloodlightActivitiesListFloodlightActivityGroupType
+    = FALFAGTCounter
+      -- ^ @COUNTER@
+    | FALFAGTSale
+      -- ^ @SALE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivitiesListFloodlightActivityGroupType
+
+instance FromText FloodlightActivitiesListFloodlightActivityGroupType where
+    fromText = \case
+        "COUNTER" -> Just FALFAGTCounter
+        "SALE" -> Just FALFAGTSale
+        _ -> Nothing
+
+instance ToText FloodlightActivitiesListFloodlightActivityGroupType where
+    toText = \case
+        FALFAGTCounter -> "COUNTER"
+        FALFAGTSale -> "SALE"
+
+instance FromJSON FloodlightActivitiesListFloodlightActivityGroupType where
+    parseJSON = parseJSONText "FloodlightActivitiesListFloodlightActivityGroupType"
+
+instance ToJSON FloodlightActivitiesListFloodlightActivityGroupType where
+    toJSON = toJSONText
+
+data FloodlightConfigurationStandardVariableTypesItem
+    = Num
+      -- ^ @NUM@
+    | Ord
+      -- ^ @ORD@
+    | Tran
+      -- ^ @TRAN@
+    | U
+      -- ^ @U@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightConfigurationStandardVariableTypesItem
+
+instance FromText FloodlightConfigurationStandardVariableTypesItem where
+    fromText = \case
+        "NUM" -> Just Num
+        "ORD" -> Just Ord
+        "TRAN" -> Just Tran
+        "U" -> Just U
+        _ -> Nothing
+
+instance ToText FloodlightConfigurationStandardVariableTypesItem where
+    toText = \case
+        Num -> "NUM"
+        Ord -> "ORD"
+        Tran -> "TRAN"
+        U -> "U"
+
+instance FromJSON FloodlightConfigurationStandardVariableTypesItem where
+    parseJSON = parseJSONText "FloodlightConfigurationStandardVariableTypesItem"
+
+instance ToJSON FloodlightConfigurationStandardVariableTypesItem where
+    toJSON = toJSONText
+
+-- | Payment source for this placement. This is a required field that is
+-- read-only after insertion.
+data PlacementPaymentSource
+    = PPSPlacementAgencyPaid
+      -- ^ @PLACEMENT_AGENCY_PAID@
+    | PPSPlacementPublisherPaid
+      -- ^ @PLACEMENT_PUBLISHER_PAID@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementPaymentSource
+
+instance FromText PlacementPaymentSource where
+    fromText = \case
+        "PLACEMENT_AGENCY_PAID" -> Just PPSPlacementAgencyPaid
+        "PLACEMENT_PUBLISHER_PAID" -> Just PPSPlacementPublisherPaid
+        _ -> Nothing
+
+instance ToText PlacementPaymentSource where
+    toText = \case
+        PPSPlacementAgencyPaid -> "PLACEMENT_AGENCY_PAID"
+        PPSPlacementPublisherPaid -> "PLACEMENT_PUBLISHER_PAID"
+
+instance FromJSON PlacementPaymentSource where
+    parseJSON = parseJSONText "PlacementPaymentSource"
+
+instance ToJSON PlacementPaymentSource where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is \'DESCENDING\'.
+data ReportsFilesListSortOrder
+    = RFLSOAscending
+      -- ^ @ASCENDING@
+      -- Ascending order.
+    | RFLSODescending
+      -- ^ @DESCENDING@
+      -- Descending order.
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportsFilesListSortOrder
+
+instance FromText ReportsFilesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just RFLSOAscending
+        "DESCENDING" -> Just RFLSODescending
+        _ -> Nothing
+
+instance ToText ReportsFilesListSortOrder where
+    toText = \case
+        RFLSOAscending -> "ASCENDING"
+        RFLSODescending -> "DESCENDING"
+
+instance FromJSON ReportsFilesListSortOrder where
+    parseJSON = parseJSONText "ReportsFilesListSortOrder"
+
+instance ToJSON ReportsFilesListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data InventoryItemsListSortField
+    = IILSFID
+      -- ^ @ID@
+    | IILSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable InventoryItemsListSortField
+
+instance FromText InventoryItemsListSortField where
+    fromText = \case
+        "ID" -> Just IILSFID
+        "NAME" -> Just IILSFName
+        _ -> Nothing
+
+instance ToText InventoryItemsListSortField where
+    toText = \case
+        IILSFID -> "ID"
+        IILSFName -> "NAME"
+
+instance FromJSON InventoryItemsListSortField where
+    parseJSON = parseJSONText "InventoryItemsListSortField"
+
+instance ToJSON InventoryItemsListSortField where
+    toJSON = toJSONText
+
+-- | Event tag type. Can be used to specify whether to use a third-party
+-- pixel, a third-party JavaScript URL, or a third-party click-through URL
+-- for either impression or click tracking. This is a required field.
+data EventTagType
+    = ETTClickThroughEventTag
+      -- ^ @CLICK_THROUGH_EVENT_TAG@
+    | ETTImpressionImageEventTag
+      -- ^ @IMPRESSION_IMAGE_EVENT_TAG@
+    | ETTImpressionJavascriptEventTag
+      -- ^ @IMPRESSION_JAVASCRIPT_EVENT_TAG@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable EventTagType
+
+instance FromText EventTagType where
+    fromText = \case
+        "CLICK_THROUGH_EVENT_TAG" -> Just ETTClickThroughEventTag
+        "IMPRESSION_IMAGE_EVENT_TAG" -> Just ETTImpressionImageEventTag
+        "IMPRESSION_JAVASCRIPT_EVENT_TAG" -> Just ETTImpressionJavascriptEventTag
+        _ -> Nothing
+
+instance ToText EventTagType where
+    toText = \case
+        ETTClickThroughEventTag -> "CLICK_THROUGH_EVENT_TAG"
+        ETTImpressionImageEventTag -> "IMPRESSION_IMAGE_EVENT_TAG"
+        ETTImpressionJavascriptEventTag -> "IMPRESSION_JAVASCRIPT_EVENT_TAG"
+
+instance FromJSON EventTagType where
+    parseJSON = parseJSONText "EventTagType"
+
+instance ToJSON EventTagType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CreativesListSortOrder
+    = CAscending
+      -- ^ @ASCENDING@
+    | CDescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativesListSortOrder
+
+instance FromText CreativesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just CAscending
+        "DESCENDING" -> Just CDescending
+        _ -> Nothing
+
+instance ToText CreativesListSortOrder where
+    toText = \case
+        CAscending -> "ASCENDING"
+        CDescending -> "DESCENDING"
+
+instance FromJSON CreativesListSortOrder where
+    parseJSON = parseJSONText "CreativesListSortOrder"
+
+instance ToJSON CreativesListSortOrder where
+    toJSON = toJSONText
+
+-- | Popup window position either centered or at specific coordinate.
+data PopupWindowPropertiesPositionType
+    = Center
+      -- ^ @CENTER@
+    | Coordinates
+      -- ^ @COORDINATES@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PopupWindowPropertiesPositionType
+
+instance FromText PopupWindowPropertiesPositionType where
+    fromText = \case
+        "CENTER" -> Just Center
+        "COORDINATES" -> Just Coordinates
+        _ -> Nothing
+
+instance ToText PopupWindowPropertiesPositionType where
+    toText = \case
+        Center -> "CENTER"
+        Coordinates -> "COORDINATES"
+
+instance FromJSON PopupWindowPropertiesPositionType where
+    parseJSON = parseJSONText "PopupWindowPropertiesPositionType"
+
+instance ToJSON PopupWindowPropertiesPositionType where
+    toJSON = toJSONText
+
+-- | Directory site contact role.
+data DirectorySiteContactRole
+    = Admin
+      -- ^ @ADMIN@
+    | Edit
+      -- ^ @EDIT@
+    | View
+      -- ^ @VIEW@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DirectorySiteContactRole
+
+instance FromText DirectorySiteContactRole where
+    fromText = \case
+        "ADMIN" -> Just Admin
+        "EDIT" -> Just Edit
+        "VIEW" -> Just View
+        _ -> Nothing
+
+instance ToText DirectorySiteContactRole where
+    toText = \case
+        Admin -> "ADMIN"
+        Edit -> "EDIT"
+        View -> "VIEW"
+
+instance FromJSON DirectorySiteContactRole where
+    parseJSON = parseJSONText "DirectorySiteContactRole"
+
+instance ToJSON DirectorySiteContactRole where
+    toJSON = toJSONText
+
+-- | Option specifying how keywords are embedded in ad tags. This setting can
+-- be used to specify whether keyword placeholders are inserted in
+-- placement tags for this site. Publishers can then add keywords to those
+-- placeholders.
+data TagSettingKeywordOption
+    = GenerateSeparateTagForEachKeyword
+      -- ^ @GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD@
+    | Ignore
+      -- ^ @IGNORE@
+    | PlaceholderWithListOfKeywords
+      -- ^ @PLACEHOLDER_WITH_LIST_OF_KEYWORDS@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable TagSettingKeywordOption
+
+instance FromText TagSettingKeywordOption where
+    fromText = \case
+        "GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD" -> Just GenerateSeparateTagForEachKeyword
+        "IGNORE" -> Just Ignore
+        "PLACEHOLDER_WITH_LIST_OF_KEYWORDS" -> Just PlaceholderWithListOfKeywords
+        _ -> Nothing
+
+instance ToText TagSettingKeywordOption where
+    toText = \case
+        GenerateSeparateTagForEachKeyword -> "GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD"
+        Ignore -> "IGNORE"
+        PlaceholderWithListOfKeywords -> "PLACEHOLDER_WITH_LIST_OF_KEYWORDS"
+
+instance FromJSON TagSettingKeywordOption where
+    parseJSON = parseJSONText "TagSettingKeywordOption"
+
+instance ToJSON TagSettingKeywordOption where
+    toJSON = toJSONText
+
+-- | Authoring tool for HTML5 banner creatives. This is a read-only field.
+-- Applicable to the following creative types: HTML5_BANNER.
+data CreativeAuthoringTool
+    = Ninja
+      -- ^ @NINJA@
+    | Swiffy
+      -- ^ @SWIFFY@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAuthoringTool
+
+instance FromText CreativeAuthoringTool where
+    fromText = \case
+        "NINJA" -> Just Ninja
+        "SWIFFY" -> Just Swiffy
+        _ -> Nothing
+
+instance ToText CreativeAuthoringTool where
+    toText = \case
+        Ninja -> "NINJA"
+        Swiffy -> "SWIFFY"
+
+instance FromJSON CreativeAuthoringTool where
+    parseJSON = parseJSONText "CreativeAuthoringTool"
+
+instance ToJSON CreativeAuthoringTool where
+    toJSON = toJSONText
+
+-- | Type of this contact.
+data OrderContactContactType
+    = PlanningOrderContactBuyerBillingContact
+      -- ^ @PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT@
+    | PlanningOrderContactBuyerContact
+      -- ^ @PLANNING_ORDER_CONTACT_BUYER_CONTACT@
+    | PlanningOrderContactSellerContact
+      -- ^ @PLANNING_ORDER_CONTACT_SELLER_CONTACT@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable OrderContactContactType
+
+instance FromText OrderContactContactType where
+    fromText = \case
+        "PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT" -> Just PlanningOrderContactBuyerBillingContact
+        "PLANNING_ORDER_CONTACT_BUYER_CONTACT" -> Just PlanningOrderContactBuyerContact
+        "PLANNING_ORDER_CONTACT_SELLER_CONTACT" -> Just PlanningOrderContactSellerContact
+        _ -> Nothing
+
+instance ToText OrderContactContactType where
+    toText = \case
+        PlanningOrderContactBuyerBillingContact -> "PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT"
+        PlanningOrderContactBuyerContact -> "PLANNING_ORDER_CONTACT_BUYER_CONTACT"
+        PlanningOrderContactSellerContact -> "PLANNING_ORDER_CONTACT_SELLER_CONTACT"
+
+instance FromJSON OrderContactContactType where
+    parseJSON = parseJSONText "OrderContactContactType"
+
+instance ToJSON OrderContactContactType where
+    toJSON = toJSONText
+
+-- | Type of asset to upload. This is a required field. IMAGE is solely used
+-- for IMAGE creatives. Other image assets should use HTML_IMAGE.
+data CreativeAssetIdType
+    = CAITFlash
+      -- ^ @FLASH@
+    | CAITHTML
+      -- ^ @HTML@
+    | CAITHTMLImage
+      -- ^ @HTML_IMAGE@
+    | CAITImage
+      -- ^ @IMAGE@
+    | CAITVideo
+      -- ^ @VIDEO@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetIdType
+
+instance FromText CreativeAssetIdType where
+    fromText = \case
+        "FLASH" -> Just CAITFlash
+        "HTML" -> Just CAITHTML
+        "HTML_IMAGE" -> Just CAITHTMLImage
+        "IMAGE" -> Just CAITImage
+        "VIDEO" -> Just CAITVideo
+        _ -> Nothing
+
+instance ToText CreativeAssetIdType where
+    toText = \case
+        CAITFlash -> "FLASH"
+        CAITHTML -> "HTML"
+        CAITHTMLImage -> "HTML_IMAGE"
+        CAITImage -> "IMAGE"
+        CAITVideo -> "VIDEO"
+
+instance FromJSON CreativeAssetIdType where
+    parseJSON = parseJSONText "CreativeAssetIdType"
+
+instance ToJSON CreativeAssetIdType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data AccountUserProFilesListSortOrder
+    = AUPFLSOAscending
+      -- ^ @ASCENDING@
+    | AUPFLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountUserProFilesListSortOrder
+
+instance FromText AccountUserProFilesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just AUPFLSOAscending
+        "DESCENDING" -> Just AUPFLSODescending
+        _ -> Nothing
+
+instance ToText AccountUserProFilesListSortOrder where
+    toText = \case
+        AUPFLSOAscending -> "ASCENDING"
+        AUPFLSODescending -> "DESCENDING"
+
+instance FromJSON AccountUserProFilesListSortOrder where
+    parseJSON = parseJSONText "AccountUserProFilesListSortOrder"
+
+instance ToJSON AccountUserProFilesListSortOrder where
+    toJSON = toJSONText
+
+-- | Product from which this remarketing list was originated.
+data RemarketingListListSource
+    = RLLSRemarketingListSourceDBm
+      -- ^ @REMARKETING_LIST_SOURCE_DBM@
+    | RLLSRemarketingListSourceDfa
+      -- ^ @REMARKETING_LIST_SOURCE_DFA@
+    | RLLSRemarketingListSourceDmp
+      -- ^ @REMARKETING_LIST_SOURCE_DMP@
+    | RLLSRemarketingListSourceGa
+      -- ^ @REMARKETING_LIST_SOURCE_GA@
+    | RLLSRemarketingListSourceOther
+      -- ^ @REMARKETING_LIST_SOURCE_OTHER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable RemarketingListListSource
+
+instance FromText RemarketingListListSource where
+    fromText = \case
+        "REMARKETING_LIST_SOURCE_DBM" -> Just RLLSRemarketingListSourceDBm
+        "REMARKETING_LIST_SOURCE_DFA" -> Just RLLSRemarketingListSourceDfa
+        "REMARKETING_LIST_SOURCE_DMP" -> Just RLLSRemarketingListSourceDmp
+        "REMARKETING_LIST_SOURCE_GA" -> Just RLLSRemarketingListSourceGa
+        "REMARKETING_LIST_SOURCE_OTHER" -> Just RLLSRemarketingListSourceOther
+        _ -> Nothing
+
+instance ToText RemarketingListListSource where
+    toText = \case
+        RLLSRemarketingListSourceDBm -> "REMARKETING_LIST_SOURCE_DBM"
+        RLLSRemarketingListSourceDfa -> "REMARKETING_LIST_SOURCE_DFA"
+        RLLSRemarketingListSourceDmp -> "REMARKETING_LIST_SOURCE_DMP"
+        RLLSRemarketingListSourceGa -> "REMARKETING_LIST_SOURCE_GA"
+        RLLSRemarketingListSourceOther -> "REMARKETING_LIST_SOURCE_OTHER"
+
+instance FromJSON RemarketingListListSource where
+    parseJSON = parseJSONText "RemarketingListListSource"
+
+instance ToJSON RemarketingListListSource where
+    toJSON = toJSONText
+
+-- | User type of the user profile. This is a read-only field that can be
+-- left blank.
+data AccountUserProFileUserAccessType
+    = InternalAdministrator
+      -- ^ @INTERNAL_ADMINISTRATOR@
+    | NormalUser
+      -- ^ @NORMAL_USER@
+    | SuperUser
+      -- ^ @SUPER_USER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountUserProFileUserAccessType
+
+instance FromText AccountUserProFileUserAccessType where
+    fromText = \case
+        "INTERNAL_ADMINISTRATOR" -> Just InternalAdministrator
+        "NORMAL_USER" -> Just NormalUser
+        "SUPER_USER" -> Just SuperUser
+        _ -> Nothing
+
+instance ToText AccountUserProFileUserAccessType where
+    toText = \case
+        InternalAdministrator -> "INTERNAL_ADMINISTRATOR"
+        NormalUser -> "NORMAL_USER"
+        SuperUser -> "SUPER_USER"
+
+instance FromJSON AccountUserProFileUserAccessType where
+    parseJSON = parseJSONText "AccountUserProFileUserAccessType"
+
+instance ToJSON AccountUserProFileUserAccessType where
+    toJSON = toJSONText
+
+-- | Initial wait time type before making the asset visible. Applicable to
+-- the following creative types: all RICH_MEDIA.
+data CreativeAssetStartTimeType
+    = AssetStartTimeTypeCustom
+      -- ^ @ASSET_START_TIME_TYPE_CUSTOM@
+    | AssetStartTimeTypeNone
+      -- ^ @ASSET_START_TIME_TYPE_NONE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetStartTimeType
+
+instance FromText CreativeAssetStartTimeType where
+    fromText = \case
+        "ASSET_START_TIME_TYPE_CUSTOM" -> Just AssetStartTimeTypeCustom
+        "ASSET_START_TIME_TYPE_NONE" -> Just AssetStartTimeTypeNone
+        _ -> Nothing
+
+instance ToText CreativeAssetStartTimeType where
+    toText = \case
+        AssetStartTimeTypeCustom -> "ASSET_START_TIME_TYPE_CUSTOM"
+        AssetStartTimeTypeNone -> "ASSET_START_TIME_TYPE_NONE"
+
+instance FromJSON CreativeAssetStartTimeType where
+    parseJSON = parseJSONText "CreativeAssetStartTimeType"
+
+instance ToJSON CreativeAssetStartTimeType where
+    toJSON = toJSONText
+
+-- | Audience gender of this project.
+data ProjectAudienceGender
+    = PlanningAudienceGenderFemale
+      -- ^ @PLANNING_AUDIENCE_GENDER_FEMALE@
+    | PlanningAudienceGenderMale
+      -- ^ @PLANNING_AUDIENCE_GENDER_MALE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ProjectAudienceGender
+
+instance FromText ProjectAudienceGender where
+    fromText = \case
+        "PLANNING_AUDIENCE_GENDER_FEMALE" -> Just PlanningAudienceGenderFemale
+        "PLANNING_AUDIENCE_GENDER_MALE" -> Just PlanningAudienceGenderMale
+        _ -> Nothing
+
+instance ToText ProjectAudienceGender where
+    toText = \case
+        PlanningAudienceGenderFemale -> "PLANNING_AUDIENCE_GENDER_FEMALE"
+        PlanningAudienceGenderMale -> "PLANNING_AUDIENCE_GENDER_MALE"
+
+instance FromJSON ProjectAudienceGender where
+    parseJSON = parseJSONText "ProjectAudienceGender"
+
+instance ToJSON ProjectAudienceGender where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data PlacementStrategiesListSortField
+    = PSLSFID
+      -- ^ @ID@
+    | PSLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementStrategiesListSortField
+
+instance FromText PlacementStrategiesListSortField where
+    fromText = \case
+        "ID" -> Just PSLSFID
+        "NAME" -> Just PSLSFName
+        _ -> Nothing
+
+instance ToText PlacementStrategiesListSortField where
+    toText = \case
+        PSLSFID -> "ID"
+        PSLSFName -> "NAME"
+
+instance FromJSON PlacementStrategiesListSortField where
+    parseJSON = parseJSONText "PlacementStrategiesListSortField"
+
+instance ToJSON PlacementStrategiesListSortField where
+    toJSON = toJSONText
+
+-- | Data type for the variable. This is a required field.
+data UserDefinedVariableConfigurationDataType
+    = Number
+      -- ^ @NUMBER@
+    | String
+      -- ^ @STRING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable UserDefinedVariableConfigurationDataType
+
+instance FromText UserDefinedVariableConfigurationDataType where
+    fromText = \case
+        "NUMBER" -> Just Number
+        "STRING" -> Just String
+        _ -> Nothing
+
+instance ToText UserDefinedVariableConfigurationDataType where
+    toText = \case
+        Number -> "NUMBER"
+        String -> "STRING"
+
+instance FromJSON UserDefinedVariableConfigurationDataType where
+    parseJSON = parseJSONText "UserDefinedVariableConfigurationDataType"
+
+instance ToJSON UserDefinedVariableConfigurationDataType where
+    toJSON = toJSONText
+
+-- | Code type used for cache busting in the generated tag.
+data FloodlightActivityCacheBustingType
+    = ActiveServerPage
+      -- ^ @ACTIVE_SERVER_PAGE@
+    | ColdFusion
+      -- ^ @COLD_FUSION@
+    | Javascript
+      -- ^ @JAVASCRIPT@
+    | Jsp
+      -- ^ @JSP@
+    | Php
+      -- ^ @PHP@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivityCacheBustingType
+
+instance FromText FloodlightActivityCacheBustingType where
+    fromText = \case
+        "ACTIVE_SERVER_PAGE" -> Just ActiveServerPage
+        "COLD_FUSION" -> Just ColdFusion
+        "JAVASCRIPT" -> Just Javascript
+        "JSP" -> Just Jsp
+        "PHP" -> Just Php
+        _ -> Nothing
+
+instance ToText FloodlightActivityCacheBustingType where
+    toText = \case
+        ActiveServerPage -> "ACTIVE_SERVER_PAGE"
+        ColdFusion -> "COLD_FUSION"
+        Javascript -> "JAVASCRIPT"
+        Jsp -> "JSP"
+        Php -> "PHP"
+
+instance FromJSON FloodlightActivityCacheBustingType where
+    parseJSON = parseJSONText "FloodlightActivityCacheBustingType"
+
+instance ToJSON FloodlightActivityCacheBustingType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CreativeGroupsListSortOrder
+    = CGLSOAscending
+      -- ^ @ASCENDING@
+    | CGLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeGroupsListSortOrder
+
+instance FromText CreativeGroupsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just CGLSOAscending
+        "DESCENDING" -> Just CGLSODescending
+        _ -> Nothing
+
+instance ToText CreativeGroupsListSortOrder where
+    toText = \case
+        CGLSOAscending -> "ASCENDING"
+        CGLSODescending -> "DESCENDING"
+
+instance FromJSON CreativeGroupsListSortOrder where
+    parseJSON = parseJSONText "CreativeGroupsListSortOrder"
+
+instance ToJSON CreativeGroupsListSortOrder where
+    toJSON = toJSONText
+
+-- | Type of this order document
+data OrderDocumentType
+    = PlanningOrderTypeChangeOrder
+      -- ^ @PLANNING_ORDER_TYPE_CHANGE_ORDER@
+    | PlanningOrderTypeInsertionOrder
+      -- ^ @PLANNING_ORDER_TYPE_INSERTION_ORDER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable OrderDocumentType
+
+instance FromText OrderDocumentType where
+    fromText = \case
+        "PLANNING_ORDER_TYPE_CHANGE_ORDER" -> Just PlanningOrderTypeChangeOrder
+        "PLANNING_ORDER_TYPE_INSERTION_ORDER" -> Just PlanningOrderTypeInsertionOrder
+        _ -> Nothing
+
+instance ToText OrderDocumentType where
+    toText = \case
+        PlanningOrderTypeChangeOrder -> "PLANNING_ORDER_TYPE_CHANGE_ORDER"
+        PlanningOrderTypeInsertionOrder -> "PLANNING_ORDER_TYPE_INSERTION_ORDER"
+
+instance FromJSON OrderDocumentType where
+    parseJSON = parseJSONText "OrderDocumentType"
+
+instance ToJSON OrderDocumentType where
+    toJSON = toJSONText
+
+-- | TagData tag format of this tag.
+data TagDataFormat
+    = PlacementTagClickCommands
+      -- ^ @PLACEMENT_TAG_CLICK_COMMANDS@
+    | PlacementTagIframeIlayer
+      -- ^ @PLACEMENT_TAG_IFRAME_ILAYER@
+    | PlacementTagIframeJavascript
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT@
+    | PlacementTagIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY@
+    | PlacementTagInstreamVideoPrefetch
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH@
+    | PlacementTagInstreamVideoPrefetchVast3
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3@
+    | PlacementTagInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERNAL_REDIRECT@
+    | PlacementTagInterstitialIframeJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT@
+    | PlacementTagInterstitialIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY@
+    | PlacementTagInterstitialInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT@
+    | PlacementTagInterstitialJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT@
+    | PlacementTagInterstitialJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY@
+    | PlacementTagJavascript
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT@
+    | PlacementTagJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT_LEGACY@
+    | PlacementTagStandard
+      -- ^ @PLACEMENT_TAG_STANDARD@
+    | PlacementTagTracking
+      -- ^ @PLACEMENT_TAG_TRACKING@
+    | PlacementTagTrackingIframe
+      -- ^ @PLACEMENT_TAG_TRACKING_IFRAME@
+    | PlacementTagTrackingJavascript
+      -- ^ @PLACEMENT_TAG_TRACKING_JAVASCRIPT@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable TagDataFormat
+
+instance FromText TagDataFormat where
+    fromText = \case
+        "PLACEMENT_TAG_CLICK_COMMANDS" -> Just PlacementTagClickCommands
+        "PLACEMENT_TAG_IFRAME_ILAYER" -> Just PlacementTagIframeIlayer
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT" -> Just PlacementTagIframeJavascript
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY" -> Just PlacementTagIframeJavascriptLegacy
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH" -> Just PlacementTagInstreamVideoPrefetch
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3" -> Just PlacementTagInstreamVideoPrefetchVast3
+        "PLACEMENT_TAG_INTERNAL_REDIRECT" -> Just PlacementTagInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT" -> Just PlacementTagInterstitialIframeJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY" -> Just PlacementTagInterstitialIframeJavascriptLegacy
+        "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT" -> Just PlacementTagInterstitialInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT" -> Just PlacementTagInterstitialJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY" -> Just PlacementTagInterstitialJavascriptLegacy
+        "PLACEMENT_TAG_JAVASCRIPT" -> Just PlacementTagJavascript
+        "PLACEMENT_TAG_JAVASCRIPT_LEGACY" -> Just PlacementTagJavascriptLegacy
+        "PLACEMENT_TAG_STANDARD" -> Just PlacementTagStandard
+        "PLACEMENT_TAG_TRACKING" -> Just PlacementTagTracking
+        "PLACEMENT_TAG_TRACKING_IFRAME" -> Just PlacementTagTrackingIframe
+        "PLACEMENT_TAG_TRACKING_JAVASCRIPT" -> Just PlacementTagTrackingJavascript
+        _ -> Nothing
+
+instance ToText TagDataFormat where
+    toText = \case
+        PlacementTagClickCommands -> "PLACEMENT_TAG_CLICK_COMMANDS"
+        PlacementTagIframeIlayer -> "PLACEMENT_TAG_IFRAME_ILAYER"
+        PlacementTagIframeJavascript -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+        PlacementTagIframeJavascriptLegacy -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY"
+        PlacementTagInstreamVideoPrefetch -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        PlacementTagInstreamVideoPrefetchVast3 -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        PlacementTagInternalRedirect -> "PLACEMENT_TAG_INTERNAL_REDIRECT"
+        PlacementTagInterstitialIframeJavascript -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+        PlacementTagInterstitialIframeJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY"
+        PlacementTagInterstitialInternalRedirect -> "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+        PlacementTagInterstitialJavascript -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+        PlacementTagInterstitialJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY"
+        PlacementTagJavascript -> "PLACEMENT_TAG_JAVASCRIPT"
+        PlacementTagJavascriptLegacy -> "PLACEMENT_TAG_JAVASCRIPT_LEGACY"
+        PlacementTagStandard -> "PLACEMENT_TAG_STANDARD"
+        PlacementTagTracking -> "PLACEMENT_TAG_TRACKING"
+        PlacementTagTrackingIframe -> "PLACEMENT_TAG_TRACKING_IFRAME"
+        PlacementTagTrackingJavascript -> "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+
+instance FromJSON TagDataFormat where
+    parseJSON = parseJSONText "TagDataFormat"
+
+instance ToJSON TagDataFormat where
+    toJSON = toJSONText
+
+-- | Maximum number of active ads allowed for the account.
+data AccountActiveAdSummaryActiveAdsLimitTier
+    = ActiveAdsTier100K
+      -- ^ @ACTIVE_ADS_TIER_100K@
+    | ActiveAdsTier200K
+      -- ^ @ACTIVE_ADS_TIER_200K@
+    | ActiveAdsTier300K
+      -- ^ @ACTIVE_ADS_TIER_300K@
+    | ActiveAdsTier40K
+      -- ^ @ACTIVE_ADS_TIER_40K@
+    | ActiveAdsTier75K
+      -- ^ @ACTIVE_ADS_TIER_75K@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountActiveAdSummaryActiveAdsLimitTier
+
+instance FromText AccountActiveAdSummaryActiveAdsLimitTier where
+    fromText = \case
+        "ACTIVE_ADS_TIER_100K" -> Just ActiveAdsTier100K
+        "ACTIVE_ADS_TIER_200K" -> Just ActiveAdsTier200K
+        "ACTIVE_ADS_TIER_300K" -> Just ActiveAdsTier300K
+        "ACTIVE_ADS_TIER_40K" -> Just ActiveAdsTier40K
+        "ACTIVE_ADS_TIER_75K" -> Just ActiveAdsTier75K
+        _ -> Nothing
+
+instance ToText AccountActiveAdSummaryActiveAdsLimitTier where
+    toText = \case
+        ActiveAdsTier100K -> "ACTIVE_ADS_TIER_100K"
+        ActiveAdsTier200K -> "ACTIVE_ADS_TIER_200K"
+        ActiveAdsTier300K -> "ACTIVE_ADS_TIER_300K"
+        ActiveAdsTier40K -> "ACTIVE_ADS_TIER_40K"
+        ActiveAdsTier75K -> "ACTIVE_ADS_TIER_75K"
+
+instance FromJSON AccountActiveAdSummaryActiveAdsLimitTier where
+    parseJSON = parseJSONText "AccountActiveAdSummaryActiveAdsLimitTier"
+
+instance ToJSON AccountActiveAdSummaryActiveAdsLimitTier where
+    toJSON = toJSONText
+
+-- | Rich media child asset type. This is a read-only field. Applicable to
+-- the following creative types: all VPAID.
+data CreativeAssetChildAssetType
+    = ChildAssetTypeData
+      -- ^ @CHILD_ASSET_TYPE_DATA@
+    | ChildAssetTypeFlash
+      -- ^ @CHILD_ASSET_TYPE_FLASH@
+    | ChildAssetTypeImage
+      -- ^ @CHILD_ASSET_TYPE_IMAGE@
+    | ChildAssetTypeVideo
+      -- ^ @CHILD_ASSET_TYPE_VIDEO@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetChildAssetType
+
+instance FromText CreativeAssetChildAssetType where
+    fromText = \case
+        "CHILD_ASSET_TYPE_DATA" -> Just ChildAssetTypeData
+        "CHILD_ASSET_TYPE_FLASH" -> Just ChildAssetTypeFlash
+        "CHILD_ASSET_TYPE_IMAGE" -> Just ChildAssetTypeImage
+        "CHILD_ASSET_TYPE_VIDEO" -> Just ChildAssetTypeVideo
+        _ -> Nothing
+
+instance ToText CreativeAssetChildAssetType where
+    toText = \case
+        ChildAssetTypeData -> "CHILD_ASSET_TYPE_DATA"
+        ChildAssetTypeFlash -> "CHILD_ASSET_TYPE_FLASH"
+        ChildAssetTypeImage -> "CHILD_ASSET_TYPE_IMAGE"
+        ChildAssetTypeVideo -> "CHILD_ASSET_TYPE_VIDEO"
+
+instance FromJSON CreativeAssetChildAssetType where
+    parseJSON = parseJSONText "CreativeAssetChildAssetType"
+
+instance ToJSON CreativeAssetChildAssetType where
+    toJSON = toJSONText
+
+-- | Select only placement groups belonging with this group type. A package
+-- is a simple group of placements that acts as a single pricing point for
+-- a group of tags. A roadblock is a group of placements that not only acts
+-- as a single pricing point but also assumes that all the tags in it will
+-- be served at the same time. A roadblock requires one of its assigned
+-- placements to be marked as primary for reporting.
+data PlacementGroupsListPlacementGroupType
+    = PlacementPackage
+      -- ^ @PLACEMENT_PACKAGE@
+    | PlacementRoadblock
+      -- ^ @PLACEMENT_ROADBLOCK@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementGroupsListPlacementGroupType
+
+instance FromText PlacementGroupsListPlacementGroupType where
+    fromText = \case
+        "PLACEMENT_PACKAGE" -> Just PlacementPackage
+        "PLACEMENT_ROADBLOCK" -> Just PlacementRoadblock
+        _ -> Nothing
+
+instance ToText PlacementGroupsListPlacementGroupType where
+    toText = \case
+        PlacementPackage -> "PLACEMENT_PACKAGE"
+        PlacementRoadblock -> "PLACEMENT_ROADBLOCK"
+
+instance FromJSON PlacementGroupsListPlacementGroupType where
+    parseJSON = parseJSONText "PlacementGroupsListPlacementGroupType"
+
+instance ToJSON PlacementGroupsListPlacementGroupType where
+    toJSON = toJSONText
+
+-- | Status of the filter. NONE means the user has access to none of the
+-- objects. ALL means the user has access to all objects. ASSIGNED means
+-- the user has access to the objects with IDs in the objectIds list.
+data ObjectFilterStatus
+    = OFSAll
+      -- ^ @ALL@
+    | OFSAssigned
+      -- ^ @ASSIGNED@
+    | OFSNone
+      -- ^ @NONE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ObjectFilterStatus
+
+instance FromText ObjectFilterStatus where
+    fromText = \case
+        "ALL" -> Just OFSAll
+        "ASSIGNED" -> Just OFSAssigned
+        "NONE" -> Just OFSNone
+        _ -> Nothing
+
+instance ToText ObjectFilterStatus where
+    toText = \case
+        OFSAll -> "ALL"
+        OFSAssigned -> "ASSIGNED"
+        OFSNone -> "NONE"
+
+instance FromJSON ObjectFilterStatus where
+    parseJSON = parseJSONText "ObjectFilterStatus"
+
+instance ToJSON ObjectFilterStatus where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CampaignCreativeAssociationsListSortOrder
+    = CCALSOAscending
+      -- ^ @ASCENDING@
+    | CCALSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CampaignCreativeAssociationsListSortOrder
+
+instance FromText CampaignCreativeAssociationsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just CCALSOAscending
+        "DESCENDING" -> Just CCALSODescending
+        _ -> Nothing
+
+instance ToText CampaignCreativeAssociationsListSortOrder where
+    toText = \case
+        CCALSOAscending -> "ASCENDING"
+        CCALSODescending -> "DESCENDING"
+
+instance FromJSON CampaignCreativeAssociationsListSortOrder where
+    parseJSON = parseJSONText "CampaignCreativeAssociationsListSortOrder"
+
+instance ToJSON CampaignCreativeAssociationsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data FloodlightActivitiesListSortField
+    = FALSFID
+      -- ^ @ID@
+    | FALSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivitiesListSortField
+
+instance FromText FloodlightActivitiesListSortField where
+    fromText = \case
+        "ID" -> Just FALSFID
+        "NAME" -> Just FALSFName
+        _ -> Nothing
+
+instance ToText FloodlightActivitiesListSortField where
+    toText = \case
+        FALSFID -> "ID"
+        FALSFName -> "NAME"
+
+instance FromJSON FloodlightActivitiesListSortField where
+    parseJSON = parseJSONText "FloodlightActivitiesListSortField"
+
+instance ToJSON FloodlightActivitiesListSortField where
+    toJSON = toJSONText
+
+-- | Select only creatives with these creative types.
+data CreativesListTypes
+    = BrandSafeDefaultInstreamVideo
+      -- ^ @BRAND_SAFE_DEFAULT_INSTREAM_VIDEO@
+    | CustomInpage
+      -- ^ @CUSTOM_INPAGE@
+    | CustomInterstitial
+      -- ^ @CUSTOM_INTERSTITIAL@
+    | EnhancedBanner
+      -- ^ @ENHANCED_BANNER@
+    | EnhancedImage
+      -- ^ @ENHANCED_IMAGE@
+    | FlashInpage
+      -- ^ @FLASH_INPAGE@
+    | HTML5Banner
+      -- ^ @HTML5_BANNER@
+    | Image
+      -- ^ @IMAGE@
+    | InstreamVideo
+      -- ^ @INSTREAM_VIDEO@
+    | InternalRedirect
+      -- ^ @INTERNAL_REDIRECT@
+    | InterstitialInternalRedirect
+      -- ^ @INTERSTITIAL_INTERNAL_REDIRECT@
+    | Redirect
+      -- ^ @REDIRECT@
+    | RichMediaExpanding
+      -- ^ @RICH_MEDIA_EXPANDING@
+    | RichMediaImExpand
+      -- ^ @RICH_MEDIA_IM_EXPAND@
+    | RichMediaInpage
+      -- ^ @RICH_MEDIA_INPAGE@
+    | RichMediaInpageFloating
+      -- ^ @RICH_MEDIA_INPAGE_FLOATING@
+    | RichMediaInterstitialFloat
+      -- ^ @RICH_MEDIA_INTERSTITIAL_FLOAT@
+    | RichMediaMobileInApp
+      -- ^ @RICH_MEDIA_MOBILE_IN_APP@
+    | RichMediaMultiFloating
+      -- ^ @RICH_MEDIA_MULTI_FLOATING@
+    | RichMediaPeelDown
+      -- ^ @RICH_MEDIA_PEEL_DOWN@
+    | TrackingText
+      -- ^ @TRACKING_TEXT@
+    | VastRedirect
+      -- ^ @VAST_REDIRECT@
+    | VpaidLinear
+      -- ^ @VPAID_LINEAR@
+    | VpaidNonLinear
+      -- ^ @VPAID_NON_LINEAR@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativesListTypes
+
+instance FromText CreativesListTypes where
+    fromText = \case
+        "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO" -> Just BrandSafeDefaultInstreamVideo
+        "CUSTOM_INPAGE" -> Just CustomInpage
+        "CUSTOM_INTERSTITIAL" -> Just CustomInterstitial
+        "ENHANCED_BANNER" -> Just EnhancedBanner
+        "ENHANCED_IMAGE" -> Just EnhancedImage
+        "FLASH_INPAGE" -> Just FlashInpage
+        "HTML5_BANNER" -> Just HTML5Banner
+        "IMAGE" -> Just Image
+        "INSTREAM_VIDEO" -> Just InstreamVideo
+        "INTERNAL_REDIRECT" -> Just InternalRedirect
+        "INTERSTITIAL_INTERNAL_REDIRECT" -> Just InterstitialInternalRedirect
+        "REDIRECT" -> Just Redirect
+        "RICH_MEDIA_EXPANDING" -> Just RichMediaExpanding
+        "RICH_MEDIA_IM_EXPAND" -> Just RichMediaImExpand
+        "RICH_MEDIA_INPAGE" -> Just RichMediaInpage
+        "RICH_MEDIA_INPAGE_FLOATING" -> Just RichMediaInpageFloating
+        "RICH_MEDIA_INTERSTITIAL_FLOAT" -> Just RichMediaInterstitialFloat
+        "RICH_MEDIA_MOBILE_IN_APP" -> Just RichMediaMobileInApp
+        "RICH_MEDIA_MULTI_FLOATING" -> Just RichMediaMultiFloating
+        "RICH_MEDIA_PEEL_DOWN" -> Just RichMediaPeelDown
+        "TRACKING_TEXT" -> Just TrackingText
+        "VAST_REDIRECT" -> Just VastRedirect
+        "VPAID_LINEAR" -> Just VpaidLinear
+        "VPAID_NON_LINEAR" -> Just VpaidNonLinear
+        _ -> Nothing
+
+instance ToText CreativesListTypes where
+    toText = \case
+        BrandSafeDefaultInstreamVideo -> "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO"
+        CustomInpage -> "CUSTOM_INPAGE"
+        CustomInterstitial -> "CUSTOM_INTERSTITIAL"
+        EnhancedBanner -> "ENHANCED_BANNER"
+        EnhancedImage -> "ENHANCED_IMAGE"
+        FlashInpage -> "FLASH_INPAGE"
+        HTML5Banner -> "HTML5_BANNER"
+        Image -> "IMAGE"
+        InstreamVideo -> "INSTREAM_VIDEO"
+        InternalRedirect -> "INTERNAL_REDIRECT"
+        InterstitialInternalRedirect -> "INTERSTITIAL_INTERNAL_REDIRECT"
+        Redirect -> "REDIRECT"
+        RichMediaExpanding -> "RICH_MEDIA_EXPANDING"
+        RichMediaImExpand -> "RICH_MEDIA_IM_EXPAND"
+        RichMediaInpage -> "RICH_MEDIA_INPAGE"
+        RichMediaInpageFloating -> "RICH_MEDIA_INPAGE_FLOATING"
+        RichMediaInterstitialFloat -> "RICH_MEDIA_INTERSTITIAL_FLOAT"
+        RichMediaMobileInApp -> "RICH_MEDIA_MOBILE_IN_APP"
+        RichMediaMultiFloating -> "RICH_MEDIA_MULTI_FLOATING"
+        RichMediaPeelDown -> "RICH_MEDIA_PEEL_DOWN"
+        TrackingText -> "TRACKING_TEXT"
+        VastRedirect -> "VAST_REDIRECT"
+        VpaidLinear -> "VPAID_LINEAR"
+        VpaidNonLinear -> "VPAID_NON_LINEAR"
+
+instance FromJSON CreativesListTypes where
+    parseJSON = parseJSONText "CreativesListTypes"
+
+instance ToJSON CreativesListTypes where
+    toJSON = toJSONText
+
+data DirectorySiteInpageTagFormatsItem
+    = IframeJavascriptInpage
+      -- ^ @IFRAME_JAVASCRIPT_INPAGE@
+    | InternalRedirectInpage
+      -- ^ @INTERNAL_REDIRECT_INPAGE@
+    | JavascriptInpage
+      -- ^ @JAVASCRIPT_INPAGE@
+    | Standard
+      -- ^ @STANDARD@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DirectorySiteInpageTagFormatsItem
+
+instance FromText DirectorySiteInpageTagFormatsItem where
+    fromText = \case
+        "IFRAME_JAVASCRIPT_INPAGE" -> Just IframeJavascriptInpage
+        "INTERNAL_REDIRECT_INPAGE" -> Just InternalRedirectInpage
+        "JAVASCRIPT_INPAGE" -> Just JavascriptInpage
+        "STANDARD" -> Just Standard
+        _ -> Nothing
+
+instance ToText DirectorySiteInpageTagFormatsItem where
+    toText = \case
+        IframeJavascriptInpage -> "IFRAME_JAVASCRIPT_INPAGE"
+        InternalRedirectInpage -> "INTERNAL_REDIRECT_INPAGE"
+        JavascriptInpage -> "JAVASCRIPT_INPAGE"
+        Standard -> "STANDARD"
+
+instance FromJSON DirectorySiteInpageTagFormatsItem where
+    parseJSON = parseJSONText "DirectorySiteInpageTagFormatsItem"
+
+instance ToJSON DirectorySiteInpageTagFormatsItem where
+    toJSON = toJSONText
+
+-- | Window mode options for flash assets. Applicable to the following
+-- creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING,
+-- RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
+data CreativeAssetWindowMode
+    = Opaque
+      -- ^ @OPAQUE@
+    | Transparent
+      -- ^ @TRANSPARENT@
+    | Window
+      -- ^ @WINDOW@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetWindowMode
+
+instance FromText CreativeAssetWindowMode where
+    fromText = \case
+        "OPAQUE" -> Just Opaque
+        "TRANSPARENT" -> Just Transparent
+        "WINDOW" -> Just Window
+        _ -> Nothing
+
+instance ToText CreativeAssetWindowMode where
+    toText = \case
+        Opaque -> "OPAQUE"
+        Transparent -> "TRANSPARENT"
+        Window -> "WINDOW"
+
+instance FromJSON CreativeAssetWindowMode where
+    parseJSON = parseJSONText "CreativeAssetWindowMode"
+
+instance ToJSON CreativeAssetWindowMode where
+    toJSON = toJSONText
+
+-- | Possible alignments for an asset. This is a read-only field. Applicable
+-- to the following creative types: RICH_MEDIA_MULTI_FLOATING.
+data CreativeAssetAlignment
+    = AlignmentBottom
+      -- ^ @ALIGNMENT_BOTTOM@
+    | AlignmentLeft
+      -- ^ @ALIGNMENT_LEFT@
+    | AlignmentRight
+      -- ^ @ALIGNMENT_RIGHT@
+    | AlignmentTop
+      -- ^ @ALIGNMENT_TOP@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetAlignment
+
+instance FromText CreativeAssetAlignment where
+    fromText = \case
+        "ALIGNMENT_BOTTOM" -> Just AlignmentBottom
+        "ALIGNMENT_LEFT" -> Just AlignmentLeft
+        "ALIGNMENT_RIGHT" -> Just AlignmentRight
+        "ALIGNMENT_TOP" -> Just AlignmentTop
+        _ -> Nothing
+
+instance ToText CreativeAssetAlignment where
+    toText = \case
+        AlignmentBottom -> "ALIGNMENT_BOTTOM"
+        AlignmentLeft -> "ALIGNMENT_LEFT"
+        AlignmentRight -> "ALIGNMENT_RIGHT"
+        AlignmentTop -> "ALIGNMENT_TOP"
+
+instance FromJSON CreativeAssetAlignment where
+    parseJSON = parseJSONText "CreativeAssetAlignment"
+
+instance ToJSON CreativeAssetAlignment where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data RemarketingListsListSortOrder
+    = RLLSOAscending
+      -- ^ @ASCENDING@
+    | RLLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable RemarketingListsListSortOrder
+
+instance FromText RemarketingListsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just RLLSOAscending
+        "DESCENDING" -> Just RLLSODescending
+        _ -> Nothing
+
+instance ToText RemarketingListsListSortOrder where
+    toText = \case
+        RLLSOAscending -> "ASCENDING"
+        RLLSODescending -> "DESCENDING"
+
+instance FromJSON RemarketingListsListSortOrder where
+    parseJSON = parseJSONText "RemarketingListsListSortOrder"
+
+instance ToJSON RemarketingListsListSortOrder where
+    toJSON = toJSONText
+
+-- | Select only placement groups with these pricing types.
+data PlacementGroupsListPricingTypes
+    = PGLPTPricingTypeCpa
+      -- ^ @PRICING_TYPE_CPA@
+    | PGLPTPricingTypeCpc
+      -- ^ @PRICING_TYPE_CPC@
+    | PGLPTPricingTypeCpm
+      -- ^ @PRICING_TYPE_CPM@
+    | PGLPTPricingTypeFlatRateClicks
+      -- ^ @PRICING_TYPE_FLAT_RATE_CLICKS@
+    | PGLPTPricingTypeFlatRateImpressions
+      -- ^ @PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementGroupsListPricingTypes
+
+instance FromText PlacementGroupsListPricingTypes where
+    fromText = \case
+        "PRICING_TYPE_CPA" -> Just PGLPTPricingTypeCpa
+        "PRICING_TYPE_CPC" -> Just PGLPTPricingTypeCpc
+        "PRICING_TYPE_CPM" -> Just PGLPTPricingTypeCpm
+        "PRICING_TYPE_FLAT_RATE_CLICKS" -> Just PGLPTPricingTypeFlatRateClicks
+        "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Just PGLPTPricingTypeFlatRateImpressions
+        _ -> Nothing
+
+instance ToText PlacementGroupsListPricingTypes where
+    toText = \case
+        PGLPTPricingTypeCpa -> "PRICING_TYPE_CPA"
+        PGLPTPricingTypeCpc -> "PRICING_TYPE_CPC"
+        PGLPTPricingTypeCpm -> "PRICING_TYPE_CPM"
+        PGLPTPricingTypeFlatRateClicks -> "PRICING_TYPE_FLAT_RATE_CLICKS"
+        PGLPTPricingTypeFlatRateImpressions -> "PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
+
+instance FromJSON PlacementGroupsListPricingTypes where
+    parseJSON = parseJSONText "PlacementGroupsListPricingTypes"
+
+instance ToJSON PlacementGroupsListPricingTypes where
+    toJSON = toJSONText
+
+-- | Maximum number of active ads allowed for this account.
+data AccountActiveAdsLimitTier
+    = AAALTActiveAdsTier100K
+      -- ^ @ACTIVE_ADS_TIER_100K@
+    | AAALTActiveAdsTier200K
+      -- ^ @ACTIVE_ADS_TIER_200K@
+    | AAALTActiveAdsTier300K
+      -- ^ @ACTIVE_ADS_TIER_300K@
+    | AAALTActiveAdsTier40K
+      -- ^ @ACTIVE_ADS_TIER_40K@
+    | AAALTActiveAdsTier75K
+      -- ^ @ACTIVE_ADS_TIER_75K@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountActiveAdsLimitTier
+
+instance FromText AccountActiveAdsLimitTier where
+    fromText = \case
+        "ACTIVE_ADS_TIER_100K" -> Just AAALTActiveAdsTier100K
+        "ACTIVE_ADS_TIER_200K" -> Just AAALTActiveAdsTier200K
+        "ACTIVE_ADS_TIER_300K" -> Just AAALTActiveAdsTier300K
+        "ACTIVE_ADS_TIER_40K" -> Just AAALTActiveAdsTier40K
+        "ACTIVE_ADS_TIER_75K" -> Just AAALTActiveAdsTier75K
+        _ -> Nothing
+
+instance ToText AccountActiveAdsLimitTier where
+    toText = \case
+        AAALTActiveAdsTier100K -> "ACTIVE_ADS_TIER_100K"
+        AAALTActiveAdsTier200K -> "ACTIVE_ADS_TIER_200K"
+        AAALTActiveAdsTier300K -> "ACTIVE_ADS_TIER_300K"
+        AAALTActiveAdsTier40K -> "ACTIVE_ADS_TIER_40K"
+        AAALTActiveAdsTier75K -> "ACTIVE_ADS_TIER_75K"
+
+instance FromJSON AccountActiveAdsLimitTier where
+    parseJSON = parseJSONText "AccountActiveAdsLimitTier"
+
+instance ToJSON AccountActiveAdsLimitTier where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data AccountsListSortOrder
+    = AAscending
+      -- ^ @ASCENDING@
+    | ADescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountsListSortOrder
+
+instance FromText AccountsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just AAscending
+        "DESCENDING" -> Just ADescending
+        _ -> Nothing
+
+instance ToText AccountsListSortOrder where
+    toText = \case
+        AAscending -> "ASCENDING"
+        ADescending -> "DESCENDING"
+
+instance FromJSON AccountsListSortOrder where
+    parseJSON = parseJSONText "AccountsListSortOrder"
+
+instance ToJSON AccountsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data SubAccountsListSortField
+    = SALSFID
+      -- ^ @ID@
+    | SALSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable SubAccountsListSortField
+
+instance FromText SubAccountsListSortField where
+    fromText = \case
+        "ID" -> Just SALSFID
+        "NAME" -> Just SALSFName
+        _ -> Nothing
+
+instance ToText SubAccountsListSortField where
+    toText = \case
+        SALSFID -> "ID"
+        SALSFName -> "NAME"
+
+instance FromJSON SubAccountsListSortField where
+    parseJSON = parseJSONText "SubAccountsListSortField"
+
+instance ToJSON SubAccountsListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data AdsListSortField
+    = ALSFID
+      -- ^ @ID@
+    | ALSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdsListSortField
+
+instance FromText AdsListSortField where
+    fromText = \case
+        "ID" -> Just ALSFID
+        "NAME" -> Just ALSFName
+        _ -> Nothing
+
+instance ToText AdsListSortField where
+    toText = \case
+        ALSFID -> "ID"
+        ALSFName -> "NAME"
+
+instance FromJSON AdsListSortField where
+    parseJSON = parseJSONText "AdsListSortField"
+
+instance ToJSON AdsListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data ProjectsListSortField
+    = PID
+      -- ^ @ID@
+    | PName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ProjectsListSortField
+
+instance FromText ProjectsListSortField where
+    fromText = \case
+        "ID" -> Just PID
+        "NAME" -> Just PName
+        _ -> Nothing
+
+instance ToText ProjectsListSortField where
+    toText = \case
+        PID -> "ID"
+        PName -> "NAME"
+
+instance FromJSON ProjectsListSortField where
+    parseJSON = parseJSONText "ProjectsListSortField"
+
+instance ToJSON ProjectsListSortField where
+    toJSON = toJSONText
+
+-- | Select only ads with these types.
+data AdsListType
+    = AdServingClickTracker
+      -- ^ @AD_SERVING_CLICK_TRACKER@
+    | AdServingDefaultAd
+      -- ^ @AD_SERVING_DEFAULT_AD@
+    | AdServingStandardAd
+      -- ^ @AD_SERVING_STANDARD_AD@
+    | AdServingTracking
+      -- ^ @AD_SERVING_TRACKING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdsListType
+
+instance FromText AdsListType where
+    fromText = \case
+        "AD_SERVING_CLICK_TRACKER" -> Just AdServingClickTracker
+        "AD_SERVING_DEFAULT_AD" -> Just AdServingDefaultAd
+        "AD_SERVING_STANDARD_AD" -> Just AdServingStandardAd
+        "AD_SERVING_TRACKING" -> Just AdServingTracking
+        _ -> Nothing
+
+instance ToText AdsListType where
+    toText = \case
+        AdServingClickTracker -> "AD_SERVING_CLICK_TRACKER"
+        AdServingDefaultAd -> "AD_SERVING_DEFAULT_AD"
+        AdServingStandardAd -> "AD_SERVING_STANDARD_AD"
+        AdServingTracking -> "AD_SERVING_TRACKING"
+
+instance FromJSON AdsListType where
+    parseJSON = parseJSONText "AdsListType"
+
+instance ToJSON AdsListType where
+    toJSON = toJSONText
+
+-- | Optimization model for this configuration.
+data CreativeOptimizationConfigurationOptimizationModel
+    = Click
+      -- ^ @CLICK@
+    | PostClick
+      -- ^ @POST_CLICK@
+    | PostClickAndImpression
+      -- ^ @POST_CLICK_AND_IMPRESSION@
+    | PostImpression
+      -- ^ @POST_IMPRESSION@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeOptimizationConfigurationOptimizationModel
+
+instance FromText CreativeOptimizationConfigurationOptimizationModel where
+    fromText = \case
+        "CLICK" -> Just Click
+        "POST_CLICK" -> Just PostClick
+        "POST_CLICK_AND_IMPRESSION" -> Just PostClickAndImpression
+        "POST_IMPRESSION" -> Just PostImpression
+        _ -> Nothing
+
+instance ToText CreativeOptimizationConfigurationOptimizationModel where
+    toText = \case
+        Click -> "CLICK"
+        PostClick -> "POST_CLICK"
+        PostClickAndImpression -> "POST_CLICK_AND_IMPRESSION"
+        PostImpression -> "POST_IMPRESSION"
+
+instance FromJSON CreativeOptimizationConfigurationOptimizationModel where
+    parseJSON = parseJSONText "CreativeOptimizationConfigurationOptimizationModel"
+
+instance ToJSON CreativeOptimizationConfigurationOptimizationModel where
+    toJSON = toJSONText
+
+-- | Administrative level required to enable this account permission.
+data AccountPermissionLevel
+    = Administrator
+      -- ^ @ADMINISTRATOR@
+    | User
+      -- ^ @USER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountPermissionLevel
+
+instance FromText AccountPermissionLevel where
+    fromText = \case
+        "ADMINISTRATOR" -> Just Administrator
+        "USER" -> Just User
+        _ -> Nothing
+
+instance ToText AccountPermissionLevel where
+    toText = \case
+        Administrator -> "ADMINISTRATOR"
+        User -> "USER"
+
+instance FromJSON AccountPermissionLevel where
+    parseJSON = parseJSONText "AccountPermissionLevel"
+
+instance ToJSON AccountPermissionLevel where
+    toJSON = toJSONText
+
+-- | List population term type determines the applicable fields in this
+-- object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName,
+-- variableFriendlyName, operator, value, and negation are applicable. If
+-- set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are
+-- applicable. If set to REFERRER_TERM then operator, value, and negation
+-- are applicable.
+data ListPopulationTermType
+    = CustomVariableTerm
+      -- ^ @CUSTOM_VARIABLE_TERM@
+    | ListMembershipTerm
+      -- ^ @LIST_MEMBERSHIP_TERM@
+    | ReferrerTerm
+      -- ^ @REFERRER_TERM@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ListPopulationTermType
+
+instance FromText ListPopulationTermType where
+    fromText = \case
+        "CUSTOM_VARIABLE_TERM" -> Just CustomVariableTerm
+        "LIST_MEMBERSHIP_TERM" -> Just ListMembershipTerm
+        "REFERRER_TERM" -> Just ReferrerTerm
+        _ -> Nothing
+
+instance ToText ListPopulationTermType where
+    toText = \case
+        CustomVariableTerm -> "CUSTOM_VARIABLE_TERM"
+        ListMembershipTerm -> "LIST_MEMBERSHIP_TERM"
+        ReferrerTerm -> "REFERRER_TERM"
+
+instance FromJSON ListPopulationTermType where
+    parseJSON = parseJSONText "ListPopulationTermType"
+
+instance ToJSON ListPopulationTermType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data AdvertiserGroupsListSortOrder
+    = AGLSOAscending
+      -- ^ @ASCENDING@
+    | AGLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdvertiserGroupsListSortOrder
+
+instance FromText AdvertiserGroupsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just AGLSOAscending
+        "DESCENDING" -> Just AGLSODescending
+        _ -> Nothing
+
+instance ToText AdvertiserGroupsListSortOrder where
+    toText = \case
+        AGLSOAscending -> "ASCENDING"
+        AGLSODescending -> "DESCENDING"
+
+instance FromJSON AdvertiserGroupsListSortOrder where
+    parseJSON = parseJSONText "AdvertiserGroupsListSortOrder"
+
+instance ToJSON AdvertiserGroupsListSortOrder where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CreativeFieldValuesListSortOrder
+    = CFVLSOAscending
+      -- ^ @ASCENDING@
+    | CFVLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeFieldValuesListSortOrder
+
+instance FromText CreativeFieldValuesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just CFVLSOAscending
+        "DESCENDING" -> Just CFVLSODescending
+        _ -> Nothing
+
+instance ToText CreativeFieldValuesListSortOrder where
+    toText = \case
+        CFVLSOAscending -> "ASCENDING"
+        CFVLSODescending -> "DESCENDING"
+
+instance FromJSON CreativeFieldValuesListSortOrder where
+    parseJSON = parseJSONText "CreativeFieldValuesListSortOrder"
+
+instance ToJSON CreativeFieldValuesListSortOrder where
+    toJSON = toJSONText
+
+-- | An optional sort order for the dimension column.
+data SortedDimensionSortOrder
+    = SDSOAscending
+      -- ^ @ASCENDING@
+    | SDSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable SortedDimensionSortOrder
+
+instance FromText SortedDimensionSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just SDSOAscending
+        "DESCENDING" -> Just SDSODescending
+        _ -> Nothing
+
+instance ToText SortedDimensionSortOrder where
+    toText = \case
+        SDSOAscending -> "ASCENDING"
+        SDSODescending -> "DESCENDING"
+
+instance FromJSON SortedDimensionSortOrder where
+    parseJSON = parseJSONText "SortedDimensionSortOrder"
+
+instance ToJSON SortedDimensionSortOrder where
+    toJSON = toJSONText
+
+-- | The field by which to sort the list.
+data FilesListSortField
+    = FLSFID
+      -- ^ @ID@
+      -- Sort by file ID.
+    | FLSFLastModifiedTime
+      -- ^ @LAST_MODIFIED_TIME@
+      -- Sort by \'lastmodifiedAt\' field.
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FilesListSortField
+
+instance FromText FilesListSortField where
+    fromText = \case
+        "ID" -> Just FLSFID
+        "LAST_MODIFIED_TIME" -> Just FLSFLastModifiedTime
+        _ -> Nothing
+
+instance ToText FilesListSortField where
+    toText = \case
+        FLSFID -> "ID"
+        FLSFLastModifiedTime -> "LAST_MODIFIED_TIME"
+
+instance FromJSON FilesListSortField where
+    parseJSON = parseJSONText "FilesListSortField"
+
+instance ToJSON FilesListSortField where
+    toJSON = toJSONText
+
+data DirectorySiteInterstitialTagFormatsItem
+    = IframeJavascriptInterstitial
+      -- ^ @IFRAME_JAVASCRIPT_INTERSTITIAL@
+    | InternalRedirectInterstitial
+      -- ^ @INTERNAL_REDIRECT_INTERSTITIAL@
+    | JavascriptInterstitial
+      -- ^ @JAVASCRIPT_INTERSTITIAL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DirectorySiteInterstitialTagFormatsItem
+
+instance FromText DirectorySiteInterstitialTagFormatsItem where
+    fromText = \case
+        "IFRAME_JAVASCRIPT_INTERSTITIAL" -> Just IframeJavascriptInterstitial
+        "INTERNAL_REDIRECT_INTERSTITIAL" -> Just InternalRedirectInterstitial
+        "JAVASCRIPT_INTERSTITIAL" -> Just JavascriptInterstitial
+        _ -> Nothing
+
+instance ToText DirectorySiteInterstitialTagFormatsItem where
+    toText = \case
+        IframeJavascriptInterstitial -> "IFRAME_JAVASCRIPT_INTERSTITIAL"
+        InternalRedirectInterstitial -> "INTERNAL_REDIRECT_INTERSTITIAL"
+        JavascriptInterstitial -> "JAVASCRIPT_INTERSTITIAL"
+
+instance FromJSON DirectorySiteInterstitialTagFormatsItem where
+    parseJSON = parseJSONText "DirectorySiteInterstitialTagFormatsItem"
+
+instance ToJSON DirectorySiteInterstitialTagFormatsItem where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data EventTagsListSortField
+    = ETLSFID
+      -- ^ @ID@
+    | ETLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable EventTagsListSortField
+
+instance FromText EventTagsListSortField where
+    fromText = \case
+        "ID" -> Just ETLSFID
+        "NAME" -> Just ETLSFName
+        _ -> Nothing
+
+instance ToText EventTagsListSortField where
+    toText = \case
+        ETLSFID -> "ID"
+        ETLSFName -> "NAME"
+
+instance FromJSON EventTagsListSortField where
+    parseJSON = parseJSONText "EventTagsListSortField"
+
+instance ToJSON EventTagsListSortField where
+    toJSON = toJSONText
+
+-- | Offset top unit for an asset. This is a read-only field if the asset
+-- displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following
+-- creative types: all RICH_MEDIA.
+data CreativeAssetPositionTopUnit
+    = CAPTUOffSetUnitPercent
+      -- ^ @OFFSET_UNIT_PERCENT@
+    | CAPTUOffSetUnitPixel
+      -- ^ @OFFSET_UNIT_PIXEL@
+    | CAPTUOffSetUnitPixelFromCenter
+      -- ^ @OFFSET_UNIT_PIXEL_FROM_CENTER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetPositionTopUnit
+
+instance FromText CreativeAssetPositionTopUnit where
+    fromText = \case
+        "OFFSET_UNIT_PERCENT" -> Just CAPTUOffSetUnitPercent
+        "OFFSET_UNIT_PIXEL" -> Just CAPTUOffSetUnitPixel
+        "OFFSET_UNIT_PIXEL_FROM_CENTER" -> Just CAPTUOffSetUnitPixelFromCenter
+        _ -> Nothing
+
+instance ToText CreativeAssetPositionTopUnit where
+    toText = \case
+        CAPTUOffSetUnitPercent -> "OFFSET_UNIT_PERCENT"
+        CAPTUOffSetUnitPixel -> "OFFSET_UNIT_PIXEL"
+        CAPTUOffSetUnitPixelFromCenter -> "OFFSET_UNIT_PIXEL_FROM_CENTER"
+
+instance FromJSON CreativeAssetPositionTopUnit where
+    parseJSON = parseJSONText "CreativeAssetPositionTopUnit"
+
+instance ToJSON CreativeAssetPositionTopUnit where
+    toJSON = toJSONText
+
+-- | Type of the associated floodlight activity group. This is a read-only
+-- field.
+data FloodlightActivityFloodlightActivityGroupType
+    = FAFAGTCounter
+      -- ^ @COUNTER@
+    | FAFAGTSale
+      -- ^ @SALE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivityFloodlightActivityGroupType
+
+instance FromText FloodlightActivityFloodlightActivityGroupType where
+    fromText = \case
+        "COUNTER" -> Just FAFAGTCounter
+        "SALE" -> Just FAFAGTSale
+        _ -> Nothing
+
+instance ToText FloodlightActivityFloodlightActivityGroupType where
+    toText = \case
+        FAFAGTCounter -> "COUNTER"
+        FAFAGTSale -> "SALE"
+
+instance FromJSON FloodlightActivityFloodlightActivityGroupType where
+    parseJSON = parseJSONText "FloodlightActivityFloodlightActivityGroupType"
+
+instance ToJSON FloodlightActivityFloodlightActivityGroupType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data DirectorySiteContactsListSortOrder
+    = DSCLSOAscending
+      -- ^ @ASCENDING@
+    | DSCLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DirectorySiteContactsListSortOrder
+
+instance FromText DirectorySiteContactsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just DSCLSOAscending
+        "DESCENDING" -> Just DSCLSODescending
+        _ -> Nothing
+
+instance ToText DirectorySiteContactsListSortOrder where
+    toText = \case
+        DSCLSOAscending -> "ASCENDING"
+        DSCLSODescending -> "DESCENDING"
+
+instance FromJSON DirectorySiteContactsListSortOrder where
+    parseJSON = parseJSONText "DirectorySiteContactsListSortOrder"
+
+instance ToJSON DirectorySiteContactsListSortOrder where
+    toJSON = toJSONText
+
+-- | Group type of this inventory item if it represents a placement group. Is
+-- null otherwise. There are two type of placement groups:
+-- PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory
+-- items that acts as a single pricing point for a group of tags.
+-- PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items
+-- that not only acts as a single pricing point, but also assumes that all
+-- the tags in it will be served at the same time. A roadblock requires one
+-- of its assigned inventory items to be marked as primary.
+data PricingGroupType
+    = PlanningPlacementGroupTypePackage
+      -- ^ @PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE@
+    | PlanningPlacementGroupTypeRoadblock
+      -- ^ @PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PricingGroupType
+
+instance FromText PricingGroupType where
+    fromText = \case
+        "PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE" -> Just PlanningPlacementGroupTypePackage
+        "PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK" -> Just PlanningPlacementGroupTypeRoadblock
+        _ -> Nothing
+
+instance ToText PricingGroupType where
+    toText = \case
+        PlanningPlacementGroupTypePackage -> "PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE"
+        PlanningPlacementGroupTypeRoadblock -> "PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK"
+
+instance FromJSON PricingGroupType where
+    parseJSON = parseJSONText "PricingGroupType"
+
+instance ToJSON PricingGroupType where
+    toJSON = toJSONText
+
+-- | Select only ads with the specified creativeType.
+data AdsListCreativeType
+    = ALCTBrandSafeDefaultInstreamVideo
+      -- ^ @BRAND_SAFE_DEFAULT_INSTREAM_VIDEO@
+    | ALCTCustomInpage
+      -- ^ @CUSTOM_INPAGE@
+    | ALCTCustomInterstitial
+      -- ^ @CUSTOM_INTERSTITIAL@
+    | ALCTEnhancedBanner
+      -- ^ @ENHANCED_BANNER@
+    | ALCTEnhancedImage
+      -- ^ @ENHANCED_IMAGE@
+    | ALCTFlashInpage
+      -- ^ @FLASH_INPAGE@
+    | ALCTHTML5Banner
+      -- ^ @HTML5_BANNER@
+    | ALCTImage
+      -- ^ @IMAGE@
+    | ALCTInstreamVideo
+      -- ^ @INSTREAM_VIDEO@
+    | ALCTInternalRedirect
+      -- ^ @INTERNAL_REDIRECT@
+    | ALCTInterstitialInternalRedirect
+      -- ^ @INTERSTITIAL_INTERNAL_REDIRECT@
+    | ALCTRedirect
+      -- ^ @REDIRECT@
+    | ALCTRichMediaExpanding
+      -- ^ @RICH_MEDIA_EXPANDING@
+    | ALCTRichMediaImExpand
+      -- ^ @RICH_MEDIA_IM_EXPAND@
+    | ALCTRichMediaInpage
+      -- ^ @RICH_MEDIA_INPAGE@
+    | ALCTRichMediaInpageFloating
+      -- ^ @RICH_MEDIA_INPAGE_FLOATING@
+    | ALCTRichMediaInterstitialFloat
+      -- ^ @RICH_MEDIA_INTERSTITIAL_FLOAT@
+    | ALCTRichMediaMobileInApp
+      -- ^ @RICH_MEDIA_MOBILE_IN_APP@
+    | ALCTRichMediaMultiFloating
+      -- ^ @RICH_MEDIA_MULTI_FLOATING@
+    | ALCTRichMediaPeelDown
+      -- ^ @RICH_MEDIA_PEEL_DOWN@
+    | ALCTTrackingText
+      -- ^ @TRACKING_TEXT@
+    | ALCTVastRedirect
+      -- ^ @VAST_REDIRECT@
+    | ALCTVpaidLinear
+      -- ^ @VPAID_LINEAR@
+    | ALCTVpaidNonLinear
+      -- ^ @VPAID_NON_LINEAR@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdsListCreativeType
+
+instance FromText AdsListCreativeType where
+    fromText = \case
+        "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO" -> Just ALCTBrandSafeDefaultInstreamVideo
+        "CUSTOM_INPAGE" -> Just ALCTCustomInpage
+        "CUSTOM_INTERSTITIAL" -> Just ALCTCustomInterstitial
+        "ENHANCED_BANNER" -> Just ALCTEnhancedBanner
+        "ENHANCED_IMAGE" -> Just ALCTEnhancedImage
+        "FLASH_INPAGE" -> Just ALCTFlashInpage
+        "HTML5_BANNER" -> Just ALCTHTML5Banner
+        "IMAGE" -> Just ALCTImage
+        "INSTREAM_VIDEO" -> Just ALCTInstreamVideo
+        "INTERNAL_REDIRECT" -> Just ALCTInternalRedirect
+        "INTERSTITIAL_INTERNAL_REDIRECT" -> Just ALCTInterstitialInternalRedirect
+        "REDIRECT" -> Just ALCTRedirect
+        "RICH_MEDIA_EXPANDING" -> Just ALCTRichMediaExpanding
+        "RICH_MEDIA_IM_EXPAND" -> Just ALCTRichMediaImExpand
+        "RICH_MEDIA_INPAGE" -> Just ALCTRichMediaInpage
+        "RICH_MEDIA_INPAGE_FLOATING" -> Just ALCTRichMediaInpageFloating
+        "RICH_MEDIA_INTERSTITIAL_FLOAT" -> Just ALCTRichMediaInterstitialFloat
+        "RICH_MEDIA_MOBILE_IN_APP" -> Just ALCTRichMediaMobileInApp
+        "RICH_MEDIA_MULTI_FLOATING" -> Just ALCTRichMediaMultiFloating
+        "RICH_MEDIA_PEEL_DOWN" -> Just ALCTRichMediaPeelDown
+        "TRACKING_TEXT" -> Just ALCTTrackingText
+        "VAST_REDIRECT" -> Just ALCTVastRedirect
+        "VPAID_LINEAR" -> Just ALCTVpaidLinear
+        "VPAID_NON_LINEAR" -> Just ALCTVpaidNonLinear
+        _ -> Nothing
+
+instance ToText AdsListCreativeType where
+    toText = \case
+        ALCTBrandSafeDefaultInstreamVideo -> "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO"
+        ALCTCustomInpage -> "CUSTOM_INPAGE"
+        ALCTCustomInterstitial -> "CUSTOM_INTERSTITIAL"
+        ALCTEnhancedBanner -> "ENHANCED_BANNER"
+        ALCTEnhancedImage -> "ENHANCED_IMAGE"
+        ALCTFlashInpage -> "FLASH_INPAGE"
+        ALCTHTML5Banner -> "HTML5_BANNER"
+        ALCTImage -> "IMAGE"
+        ALCTInstreamVideo -> "INSTREAM_VIDEO"
+        ALCTInternalRedirect -> "INTERNAL_REDIRECT"
+        ALCTInterstitialInternalRedirect -> "INTERSTITIAL_INTERNAL_REDIRECT"
+        ALCTRedirect -> "REDIRECT"
+        ALCTRichMediaExpanding -> "RICH_MEDIA_EXPANDING"
+        ALCTRichMediaImExpand -> "RICH_MEDIA_IM_EXPAND"
+        ALCTRichMediaInpage -> "RICH_MEDIA_INPAGE"
+        ALCTRichMediaInpageFloating -> "RICH_MEDIA_INPAGE_FLOATING"
+        ALCTRichMediaInterstitialFloat -> "RICH_MEDIA_INTERSTITIAL_FLOAT"
+        ALCTRichMediaMobileInApp -> "RICH_MEDIA_MOBILE_IN_APP"
+        ALCTRichMediaMultiFloating -> "RICH_MEDIA_MULTI_FLOATING"
+        ALCTRichMediaPeelDown -> "RICH_MEDIA_PEEL_DOWN"
+        ALCTTrackingText -> "TRACKING_TEXT"
+        ALCTVastRedirect -> "VAST_REDIRECT"
+        ALCTVpaidLinear -> "VPAID_LINEAR"
+        ALCTVpaidNonLinear -> "VPAID_NON_LINEAR"
+
+instance FromJSON AdsListCreativeType where
+    parseJSON = parseJSONText "AdsListCreativeType"
+
+instance ToJSON AdsListCreativeType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data FloodlightActivityGroupsListSortOrder
+    = FAGLSOAscending
+      -- ^ @ASCENDING@
+    | FAGLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivityGroupsListSortOrder
+
+instance FromText FloodlightActivityGroupsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just FAGLSOAscending
+        "DESCENDING" -> Just FAGLSODescending
+        _ -> Nothing
+
+instance ToText FloodlightActivityGroupsListSortOrder where
+    toText = \case
+        FAGLSOAscending -> "ASCENDING"
+        FAGLSODescending -> "DESCENDING"
+
+instance FromJSON FloodlightActivityGroupsListSortOrder where
+    parseJSON = parseJSONText "FloodlightActivityGroupsListSortOrder"
+
+instance ToJSON FloodlightActivityGroupsListSortOrder where
+    toJSON = toJSONText
+
+-- | Type of creative rotation. Can be used to specify whether to use
+-- sequential or random rotation.
+data CreativeRotationType
+    = CreativeRotationTypeRandom
+      -- ^ @CREATIVE_ROTATION_TYPE_RANDOM@
+    | CreativeRotationTypeSequential
+      -- ^ @CREATIVE_ROTATION_TYPE_SEQUENTIAL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeRotationType
+
+instance FromText CreativeRotationType where
+    fromText = \case
+        "CREATIVE_ROTATION_TYPE_RANDOM" -> Just CreativeRotationTypeRandom
+        "CREATIVE_ROTATION_TYPE_SEQUENTIAL" -> Just CreativeRotationTypeSequential
+        _ -> Nothing
+
+instance ToText CreativeRotationType where
+    toText = \case
+        CreativeRotationTypeRandom -> "CREATIVE_ROTATION_TYPE_RANDOM"
+        CreativeRotationTypeSequential -> "CREATIVE_ROTATION_TYPE_SEQUENTIAL"
+
+instance FromJSON CreativeRotationType where
+    parseJSON = parseJSONText "CreativeRotationType"
+
+instance ToJSON CreativeRotationType where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data OrdersListSortField
+    = OLSFID
+      -- ^ @ID@
+    | OLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable OrdersListSortField
+
+instance FromText OrdersListSortField where
+    fromText = \case
+        "ID" -> Just OLSFID
+        "NAME" -> Just OLSFName
+        _ -> Nothing
+
+instance ToText OrdersListSortField where
+    toText = \case
+        OLSFID -> "ID"
+        OLSFName -> "NAME"
+
+instance FromJSON OrdersListSortField where
+    parseJSON = parseJSONText "OrdersListSortField"
+
+instance ToJSON OrdersListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data PlacementGroupsListSortField
+    = PGLSFID
+      -- ^ @ID@
+    | PGLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementGroupsListSortField
+
+instance FromText PlacementGroupsListSortField where
+    fromText = \case
+        "ID" -> Just PGLSFID
+        "NAME" -> Just PGLSFName
+        _ -> Nothing
+
+instance ToText PlacementGroupsListSortField where
+    toText = \case
+        PGLSFID -> "ID"
+        PGLSFName -> "NAME"
+
+instance FromJSON PlacementGroupsListSortField where
+    parseJSON = parseJSONText "PlacementGroupsListSortField"
+
+instance ToJSON PlacementGroupsListSortField where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data DirectorySitesListSortOrder
+    = DSLSOAscending
+      -- ^ @ASCENDING@
+    | DSLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DirectorySitesListSortOrder
+
+instance FromText DirectorySitesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just DSLSOAscending
+        "DESCENDING" -> Just DSLSODescending
+        _ -> Nothing
+
+instance ToText DirectorySitesListSortOrder where
+    toText = \case
+        DSLSOAscending -> "ASCENDING"
+        DSLSODescending -> "DESCENDING"
+
+instance FromJSON DirectorySitesListSortOrder where
+    parseJSON = parseJSONText "DirectorySitesListSortOrder"
+
+instance ToJSON DirectorySitesListSortOrder where
+    toJSON = toJSONText
+
+data CreativeAssetDetectedFeaturesItem
+    = CADFIApplicationCache
+      -- ^ @APPLICATION_CACHE@
+    | CADFIAudio
+      -- ^ @AUDIO@
+    | CADFICanvas
+      -- ^ @CANVAS@
+    | CADFICanvasText
+      -- ^ @CANVAS_TEXT@
+    | CADFICssAnimations
+      -- ^ @CSS_ANIMATIONS@
+    | CADFICssBackgRoundSize
+      -- ^ @CSS_BACKGROUND_SIZE@
+    | CADFICssBOrderImage
+      -- ^ @CSS_BORDER_IMAGE@
+    | CADFICssBOrderRadius
+      -- ^ @CSS_BORDER_RADIUS@
+    | CADFICssBoxShadow
+      -- ^ @CSS_BOX_SHADOW@
+    | CADFICssColumns
+      -- ^ @CSS_COLUMNS@
+    | CADFICssFlexBox
+      -- ^ @CSS_FLEX_BOX@
+    | CADFICssFontFace
+      -- ^ @CSS_FONT_FACE@
+    | CADFICssGeneratedContent
+      -- ^ @CSS_GENERATED_CONTENT@
+    | CADFICssGradients
+      -- ^ @CSS_GRADIENTS@
+    | CADFICssHsla
+      -- ^ @CSS_HSLA@
+    | CADFICssMultipleBgs
+      -- ^ @CSS_MULTIPLE_BGS@
+    | CADFICssOpacity
+      -- ^ @CSS_OPACITY@
+    | CADFICssReflections
+      -- ^ @CSS_REFLECTIONS@
+    | CADFICssRgba
+      -- ^ @CSS_RGBA@
+    | CADFICssTextShadow
+      -- ^ @CSS_TEXT_SHADOW@
+    | CADFICssTransforms
+      -- ^ @CSS_TRANSFORMS@
+    | CADFICssTRANSFORMS3D
+      -- ^ @CSS_TRANSFORMS3D@
+    | CADFICssTransitions
+      -- ^ @CSS_TRANSITIONS@
+    | CADFIDragAndDrop
+      -- ^ @DRAG_AND_DROP@
+    | CADFIGeoLocation
+      -- ^ @GEO_LOCATION@
+    | CADFIHashChange
+      -- ^ @HASH_CHANGE@
+    | CADFIHistory
+      -- ^ @HISTORY@
+    | CADFIIndexedDB
+      -- ^ @INDEXED_DB@
+    | CADFIInlineSvg
+      -- ^ @INLINE_SVG@
+    | CADFIInputAttrAutocomplete
+      -- ^ @INPUT_ATTR_AUTOCOMPLETE@
+    | CADFIInputAttrAutofocus
+      -- ^ @INPUT_ATTR_AUTOFOCUS@
+    | CADFIInputAttrList
+      -- ^ @INPUT_ATTR_LIST@
+    | CADFIInputAttrMax
+      -- ^ @INPUT_ATTR_MAX@
+    | CADFIInputAttrMin
+      -- ^ @INPUT_ATTR_MIN@
+    | CADFIInputAttrMultiple
+      -- ^ @INPUT_ATTR_MULTIPLE@
+    | CADFIInputAttrPattern
+      -- ^ @INPUT_ATTR_PATTERN@
+    | CADFIInputAttrPlaceholder
+      -- ^ @INPUT_ATTR_PLACEHOLDER@
+    | CADFIInputAttrRequired
+      -- ^ @INPUT_ATTR_REQUIRED@
+    | CADFIInputAttrStep
+      -- ^ @INPUT_ATTR_STEP@
+    | CADFIInputTypeColor
+      -- ^ @INPUT_TYPE_COLOR@
+    | CADFIInputTypeDate
+      -- ^ @INPUT_TYPE_DATE@
+    | CADFIInputTypeDatetime
+      -- ^ @INPUT_TYPE_DATETIME@
+    | CADFIInputTypeDatetimeLocal
+      -- ^ @INPUT_TYPE_DATETIME_LOCAL@
+    | CADFIInputTypeEmail
+      -- ^ @INPUT_TYPE_EMAIL@
+    | CADFIInputTypeMonth
+      -- ^ @INPUT_TYPE_MONTH@
+    | CADFIInputTypeNumber
+      -- ^ @INPUT_TYPE_NUMBER@
+    | CADFIInputTypeRange
+      -- ^ @INPUT_TYPE_RANGE@
+    | CADFIInputTypeSearch
+      -- ^ @INPUT_TYPE_SEARCH@
+    | CADFIInputTypeTel
+      -- ^ @INPUT_TYPE_TEL@
+    | CADFIInputTypeTime
+      -- ^ @INPUT_TYPE_TIME@
+    | CADFIInputTypeURL
+      -- ^ @INPUT_TYPE_URL@
+    | CADFIInputTypeWeek
+      -- ^ @INPUT_TYPE_WEEK@
+    | CADFILocalStorage
+      -- ^ @LOCAL_STORAGE@
+    | CADFIPostMessage
+      -- ^ @POST_MESSAGE@
+    | CADFISessionStorage
+      -- ^ @SESSION_STORAGE@
+    | CADFISmil
+      -- ^ @SMIL@
+    | CADFISvgClipPaths
+      -- ^ @SVG_CLIP_PATHS@
+    | CADFISvgFeImage
+      -- ^ @SVG_FE_IMAGE@
+    | CADFISvgFilters
+      -- ^ @SVG_FILTERS@
+    | CADFISvgHref
+      -- ^ @SVG_HREF@
+    | CADFITouch
+      -- ^ @TOUCH@
+    | CADFIVideo
+      -- ^ @VIDEO@
+    | CADFIWebgl
+      -- ^ @WEBGL@
+    | CADFIWebSockets
+      -- ^ @WEB_SOCKETS@
+    | CADFIWebSQLDatabase
+      -- ^ @WEB_SQL_DATABASE@
+    | CADFIWebWorkers
+      -- ^ @WEB_WORKERS@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetDetectedFeaturesItem
+
+instance FromText CreativeAssetDetectedFeaturesItem where
+    fromText = \case
+        "APPLICATION_CACHE" -> Just CADFIApplicationCache
+        "AUDIO" -> Just CADFIAudio
+        "CANVAS" -> Just CADFICanvas
+        "CANVAS_TEXT" -> Just CADFICanvasText
+        "CSS_ANIMATIONS" -> Just CADFICssAnimations
+        "CSS_BACKGROUND_SIZE" -> Just CADFICssBackgRoundSize
+        "CSS_BORDER_IMAGE" -> Just CADFICssBOrderImage
+        "CSS_BORDER_RADIUS" -> Just CADFICssBOrderRadius
+        "CSS_BOX_SHADOW" -> Just CADFICssBoxShadow
+        "CSS_COLUMNS" -> Just CADFICssColumns
+        "CSS_FLEX_BOX" -> Just CADFICssFlexBox
+        "CSS_FONT_FACE" -> Just CADFICssFontFace
+        "CSS_GENERATED_CONTENT" -> Just CADFICssGeneratedContent
+        "CSS_GRADIENTS" -> Just CADFICssGradients
+        "CSS_HSLA" -> Just CADFICssHsla
+        "CSS_MULTIPLE_BGS" -> Just CADFICssMultipleBgs
+        "CSS_OPACITY" -> Just CADFICssOpacity
+        "CSS_REFLECTIONS" -> Just CADFICssReflections
+        "CSS_RGBA" -> Just CADFICssRgba
+        "CSS_TEXT_SHADOW" -> Just CADFICssTextShadow
+        "CSS_TRANSFORMS" -> Just CADFICssTransforms
+        "CSS_TRANSFORMS3D" -> Just CADFICssTRANSFORMS3D
+        "CSS_TRANSITIONS" -> Just CADFICssTransitions
+        "DRAG_AND_DROP" -> Just CADFIDragAndDrop
+        "GEO_LOCATION" -> Just CADFIGeoLocation
+        "HASH_CHANGE" -> Just CADFIHashChange
+        "HISTORY" -> Just CADFIHistory
+        "INDEXED_DB" -> Just CADFIIndexedDB
+        "INLINE_SVG" -> Just CADFIInlineSvg
+        "INPUT_ATTR_AUTOCOMPLETE" -> Just CADFIInputAttrAutocomplete
+        "INPUT_ATTR_AUTOFOCUS" -> Just CADFIInputAttrAutofocus
+        "INPUT_ATTR_LIST" -> Just CADFIInputAttrList
+        "INPUT_ATTR_MAX" -> Just CADFIInputAttrMax
+        "INPUT_ATTR_MIN" -> Just CADFIInputAttrMin
+        "INPUT_ATTR_MULTIPLE" -> Just CADFIInputAttrMultiple
+        "INPUT_ATTR_PATTERN" -> Just CADFIInputAttrPattern
+        "INPUT_ATTR_PLACEHOLDER" -> Just CADFIInputAttrPlaceholder
+        "INPUT_ATTR_REQUIRED" -> Just CADFIInputAttrRequired
+        "INPUT_ATTR_STEP" -> Just CADFIInputAttrStep
+        "INPUT_TYPE_COLOR" -> Just CADFIInputTypeColor
+        "INPUT_TYPE_DATE" -> Just CADFIInputTypeDate
+        "INPUT_TYPE_DATETIME" -> Just CADFIInputTypeDatetime
+        "INPUT_TYPE_DATETIME_LOCAL" -> Just CADFIInputTypeDatetimeLocal
+        "INPUT_TYPE_EMAIL" -> Just CADFIInputTypeEmail
+        "INPUT_TYPE_MONTH" -> Just CADFIInputTypeMonth
+        "INPUT_TYPE_NUMBER" -> Just CADFIInputTypeNumber
+        "INPUT_TYPE_RANGE" -> Just CADFIInputTypeRange
+        "INPUT_TYPE_SEARCH" -> Just CADFIInputTypeSearch
+        "INPUT_TYPE_TEL" -> Just CADFIInputTypeTel
+        "INPUT_TYPE_TIME" -> Just CADFIInputTypeTime
+        "INPUT_TYPE_URL" -> Just CADFIInputTypeURL
+        "INPUT_TYPE_WEEK" -> Just CADFIInputTypeWeek
+        "LOCAL_STORAGE" -> Just CADFILocalStorage
+        "POST_MESSAGE" -> Just CADFIPostMessage
+        "SESSION_STORAGE" -> Just CADFISessionStorage
+        "SMIL" -> Just CADFISmil
+        "SVG_CLIP_PATHS" -> Just CADFISvgClipPaths
+        "SVG_FE_IMAGE" -> Just CADFISvgFeImage
+        "SVG_FILTERS" -> Just CADFISvgFilters
+        "SVG_HREF" -> Just CADFISvgHref
+        "TOUCH" -> Just CADFITouch
+        "VIDEO" -> Just CADFIVideo
+        "WEBGL" -> Just CADFIWebgl
+        "WEB_SOCKETS" -> Just CADFIWebSockets
+        "WEB_SQL_DATABASE" -> Just CADFIWebSQLDatabase
+        "WEB_WORKERS" -> Just CADFIWebWorkers
+        _ -> Nothing
+
+instance ToText CreativeAssetDetectedFeaturesItem where
+    toText = \case
+        CADFIApplicationCache -> "APPLICATION_CACHE"
+        CADFIAudio -> "AUDIO"
+        CADFICanvas -> "CANVAS"
+        CADFICanvasText -> "CANVAS_TEXT"
+        CADFICssAnimations -> "CSS_ANIMATIONS"
+        CADFICssBackgRoundSize -> "CSS_BACKGROUND_SIZE"
+        CADFICssBOrderImage -> "CSS_BORDER_IMAGE"
+        CADFICssBOrderRadius -> "CSS_BORDER_RADIUS"
+        CADFICssBoxShadow -> "CSS_BOX_SHADOW"
+        CADFICssColumns -> "CSS_COLUMNS"
+        CADFICssFlexBox -> "CSS_FLEX_BOX"
+        CADFICssFontFace -> "CSS_FONT_FACE"
+        CADFICssGeneratedContent -> "CSS_GENERATED_CONTENT"
+        CADFICssGradients -> "CSS_GRADIENTS"
+        CADFICssHsla -> "CSS_HSLA"
+        CADFICssMultipleBgs -> "CSS_MULTIPLE_BGS"
+        CADFICssOpacity -> "CSS_OPACITY"
+        CADFICssReflections -> "CSS_REFLECTIONS"
+        CADFICssRgba -> "CSS_RGBA"
+        CADFICssTextShadow -> "CSS_TEXT_SHADOW"
+        CADFICssTransforms -> "CSS_TRANSFORMS"
+        CADFICssTRANSFORMS3D -> "CSS_TRANSFORMS3D"
+        CADFICssTransitions -> "CSS_TRANSITIONS"
+        CADFIDragAndDrop -> "DRAG_AND_DROP"
+        CADFIGeoLocation -> "GEO_LOCATION"
+        CADFIHashChange -> "HASH_CHANGE"
+        CADFIHistory -> "HISTORY"
+        CADFIIndexedDB -> "INDEXED_DB"
+        CADFIInlineSvg -> "INLINE_SVG"
+        CADFIInputAttrAutocomplete -> "INPUT_ATTR_AUTOCOMPLETE"
+        CADFIInputAttrAutofocus -> "INPUT_ATTR_AUTOFOCUS"
+        CADFIInputAttrList -> "INPUT_ATTR_LIST"
+        CADFIInputAttrMax -> "INPUT_ATTR_MAX"
+        CADFIInputAttrMin -> "INPUT_ATTR_MIN"
+        CADFIInputAttrMultiple -> "INPUT_ATTR_MULTIPLE"
+        CADFIInputAttrPattern -> "INPUT_ATTR_PATTERN"
+        CADFIInputAttrPlaceholder -> "INPUT_ATTR_PLACEHOLDER"
+        CADFIInputAttrRequired -> "INPUT_ATTR_REQUIRED"
+        CADFIInputAttrStep -> "INPUT_ATTR_STEP"
+        CADFIInputTypeColor -> "INPUT_TYPE_COLOR"
+        CADFIInputTypeDate -> "INPUT_TYPE_DATE"
+        CADFIInputTypeDatetime -> "INPUT_TYPE_DATETIME"
+        CADFIInputTypeDatetimeLocal -> "INPUT_TYPE_DATETIME_LOCAL"
+        CADFIInputTypeEmail -> "INPUT_TYPE_EMAIL"
+        CADFIInputTypeMonth -> "INPUT_TYPE_MONTH"
+        CADFIInputTypeNumber -> "INPUT_TYPE_NUMBER"
+        CADFIInputTypeRange -> "INPUT_TYPE_RANGE"
+        CADFIInputTypeSearch -> "INPUT_TYPE_SEARCH"
+        CADFIInputTypeTel -> "INPUT_TYPE_TEL"
+        CADFIInputTypeTime -> "INPUT_TYPE_TIME"
+        CADFIInputTypeURL -> "INPUT_TYPE_URL"
+        CADFIInputTypeWeek -> "INPUT_TYPE_WEEK"
+        CADFILocalStorage -> "LOCAL_STORAGE"
+        CADFIPostMessage -> "POST_MESSAGE"
+        CADFISessionStorage -> "SESSION_STORAGE"
+        CADFISmil -> "SMIL"
+        CADFISvgClipPaths -> "SVG_CLIP_PATHS"
+        CADFISvgFeImage -> "SVG_FE_IMAGE"
+        CADFISvgFilters -> "SVG_FILTERS"
+        CADFISvgHref -> "SVG_HREF"
+        CADFITouch -> "TOUCH"
+        CADFIVideo -> "VIDEO"
+        CADFIWebgl -> "WEBGL"
+        CADFIWebSockets -> "WEB_SOCKETS"
+        CADFIWebSQLDatabase -> "WEB_SQL_DATABASE"
+        CADFIWebWorkers -> "WEB_WORKERS"
+
+instance FromJSON CreativeAssetDetectedFeaturesItem where
+    parseJSON = parseJSONText "CreativeAssetDetectedFeaturesItem"
+
+instance ToJSON CreativeAssetDetectedFeaturesItem where
+    toJSON = toJSONText
+
+-- | Type of the floodlight activity group. This is a required field that is
+-- read-only after insertion.
+data FloodlightActivityGroupType
+    = FAGTCounter
+      -- ^ @COUNTER@
+    | FAGTSale
+      -- ^ @SALE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivityGroupType
+
+instance FromText FloodlightActivityGroupType where
+    fromText = \case
+        "COUNTER" -> Just FAGTCounter
+        "SALE" -> Just FAGTSale
+        _ -> Nothing
+
+instance ToText FloodlightActivityGroupType where
+    toText = \case
+        FAGTCounter -> "COUNTER"
+        FAGTSale -> "SALE"
+
+instance FromJSON FloodlightActivityGroupType where
+    parseJSON = parseJSONText "FloodlightActivityGroupType"
+
+instance ToJSON FloodlightActivityGroupType where
+    toJSON = toJSONText
+
+-- | Directory site contact type.
+data DirectorySiteContactType
+    = DSCTBilling
+      -- ^ @BILLING@
+    | DSCTOther
+      -- ^ @OTHER@
+    | DSCTSales
+      -- ^ @SALES@
+    | DSCTTechnical
+      -- ^ @TECHNICAL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DirectorySiteContactType
+
+instance FromText DirectorySiteContactType where
+    fromText = \case
+        "BILLING" -> Just DSCTBilling
+        "OTHER" -> Just DSCTOther
+        "SALES" -> Just DSCTSales
+        "TECHNICAL" -> Just DSCTTechnical
+        _ -> Nothing
+
+instance ToText DirectorySiteContactType where
+    toText = \case
+        DSCTBilling -> "BILLING"
+        DSCTOther -> "OTHER"
+        DSCTSales -> "SALES"
+        DSCTTechnical -> "TECHNICAL"
+
+instance FromJSON DirectorySiteContactType where
+    parseJSON = parseJSONText "DirectorySiteContactType"
+
+instance ToJSON DirectorySiteContactType where
+    toJSON = toJSONText
+
+-- | Tag formats to generate for these placements.
+data PlacementsGeneratetagsTagFormats
+    = PGTFPlacementTagClickCommands
+      -- ^ @PLACEMENT_TAG_CLICK_COMMANDS@
+    | PGTFPlacementTagIframeIlayer
+      -- ^ @PLACEMENT_TAG_IFRAME_ILAYER@
+    | PGTFPlacementTagIframeJavascript
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT@
+    | PGTFPlacementTagIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY@
+    | PGTFPlacementTagInstreamVideoPrefetch
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH@
+    | PGTFPlacementTagInstreamVideoPrefetchVast3
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3@
+    | PGTFPlacementTagInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERNAL_REDIRECT@
+    | PGTFPlacementTagInterstitialIframeJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT@
+    | PGTFPlacementTagInterstitialIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY@
+    | PGTFPlacementTagInterstitialInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT@
+    | PGTFPlacementTagInterstitialJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT@
+    | PGTFPlacementTagInterstitialJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY@
+    | PGTFPlacementTagJavascript
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT@
+    | PGTFPlacementTagJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT_LEGACY@
+    | PGTFPlacementTagStandard
+      -- ^ @PLACEMENT_TAG_STANDARD@
+    | PGTFPlacementTagTracking
+      -- ^ @PLACEMENT_TAG_TRACKING@
+    | PGTFPlacementTagTrackingIframe
+      -- ^ @PLACEMENT_TAG_TRACKING_IFRAME@
+    | PGTFPlacementTagTrackingJavascript
+      -- ^ @PLACEMENT_TAG_TRACKING_JAVASCRIPT@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementsGeneratetagsTagFormats
+
+instance FromText PlacementsGeneratetagsTagFormats where
+    fromText = \case
+        "PLACEMENT_TAG_CLICK_COMMANDS" -> Just PGTFPlacementTagClickCommands
+        "PLACEMENT_TAG_IFRAME_ILAYER" -> Just PGTFPlacementTagIframeIlayer
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT" -> Just PGTFPlacementTagIframeJavascript
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY" -> Just PGTFPlacementTagIframeJavascriptLegacy
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH" -> Just PGTFPlacementTagInstreamVideoPrefetch
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3" -> Just PGTFPlacementTagInstreamVideoPrefetchVast3
+        "PLACEMENT_TAG_INTERNAL_REDIRECT" -> Just PGTFPlacementTagInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT" -> Just PGTFPlacementTagInterstitialIframeJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY" -> Just PGTFPlacementTagInterstitialIframeJavascriptLegacy
+        "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT" -> Just PGTFPlacementTagInterstitialInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT" -> Just PGTFPlacementTagInterstitialJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY" -> Just PGTFPlacementTagInterstitialJavascriptLegacy
+        "PLACEMENT_TAG_JAVASCRIPT" -> Just PGTFPlacementTagJavascript
+        "PLACEMENT_TAG_JAVASCRIPT_LEGACY" -> Just PGTFPlacementTagJavascriptLegacy
+        "PLACEMENT_TAG_STANDARD" -> Just PGTFPlacementTagStandard
+        "PLACEMENT_TAG_TRACKING" -> Just PGTFPlacementTagTracking
+        "PLACEMENT_TAG_TRACKING_IFRAME" -> Just PGTFPlacementTagTrackingIframe
+        "PLACEMENT_TAG_TRACKING_JAVASCRIPT" -> Just PGTFPlacementTagTrackingJavascript
+        _ -> Nothing
+
+instance ToText PlacementsGeneratetagsTagFormats where
+    toText = \case
+        PGTFPlacementTagClickCommands -> "PLACEMENT_TAG_CLICK_COMMANDS"
+        PGTFPlacementTagIframeIlayer -> "PLACEMENT_TAG_IFRAME_ILAYER"
+        PGTFPlacementTagIframeJavascript -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+        PGTFPlacementTagIframeJavascriptLegacy -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY"
+        PGTFPlacementTagInstreamVideoPrefetch -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        PGTFPlacementTagInstreamVideoPrefetchVast3 -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        PGTFPlacementTagInternalRedirect -> "PLACEMENT_TAG_INTERNAL_REDIRECT"
+        PGTFPlacementTagInterstitialIframeJavascript -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+        PGTFPlacementTagInterstitialIframeJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY"
+        PGTFPlacementTagInterstitialInternalRedirect -> "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+        PGTFPlacementTagInterstitialJavascript -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+        PGTFPlacementTagInterstitialJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY"
+        PGTFPlacementTagJavascript -> "PLACEMENT_TAG_JAVASCRIPT"
+        PGTFPlacementTagJavascriptLegacy -> "PLACEMENT_TAG_JAVASCRIPT_LEGACY"
+        PGTFPlacementTagStandard -> "PLACEMENT_TAG_STANDARD"
+        PGTFPlacementTagTracking -> "PLACEMENT_TAG_TRACKING"
+        PGTFPlacementTagTrackingIframe -> "PLACEMENT_TAG_TRACKING_IFRAME"
+        PGTFPlacementTagTrackingJavascript -> "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+
+instance FromJSON PlacementsGeneratetagsTagFormats where
+    parseJSON = parseJSONText "PlacementsGeneratetagsTagFormats"
+
+instance ToJSON PlacementsGeneratetagsTagFormats where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data AccountUserProFilesListSortField
+    = AUPFLSFID
+      -- ^ @ID@
+    | AUPFLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountUserProFilesListSortField
+
+instance FromText AccountUserProFilesListSortField where
+    fromText = \case
+        "ID" -> Just AUPFLSFID
+        "NAME" -> Just AUPFLSFName
+        _ -> Nothing
+
+instance ToText AccountUserProFilesListSortField where
+    toText = \case
+        AUPFLSFID -> "ID"
+        AUPFLSFName -> "NAME"
+
+instance FromJSON AccountUserProFilesListSortField where
+    parseJSON = parseJSONText "AccountUserProFilesListSortField"
+
+instance ToJSON AccountUserProFilesListSortField where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data InventoryItemsListSortOrder
+    = IILSOAscending
+      -- ^ @ASCENDING@
+    | IILSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable InventoryItemsListSortOrder
+
+instance FromText InventoryItemsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just IILSOAscending
+        "DESCENDING" -> Just IILSODescending
+        _ -> Nothing
+
+instance ToText InventoryItemsListSortOrder where
+    toText = \case
+        IILSOAscending -> "ASCENDING"
+        IILSODescending -> "DESCENDING"
+
+instance FromJSON InventoryItemsListSortOrder where
+    parseJSON = parseJSONText "InventoryItemsListSortOrder"
+
+instance ToJSON InventoryItemsListSortOrder where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data PlacementStrategiesListSortOrder
+    = PSLSOAscending
+      -- ^ @ASCENDING@
+    | PSLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementStrategiesListSortOrder
+
+instance FromText PlacementStrategiesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just PSLSOAscending
+        "DESCENDING" -> Just PSLSODescending
+        _ -> Nothing
+
+instance ToText PlacementStrategiesListSortOrder where
+    toText = \case
+        PSLSOAscending -> "ASCENDING"
+        PSLSODescending -> "DESCENDING"
+
+instance FromJSON PlacementStrategiesListSortOrder where
+    parseJSON = parseJSONText "PlacementStrategiesListSortOrder"
+
+instance ToJSON PlacementStrategiesListSortOrder where
+    toJSON = toJSONText
+
+-- | The field by which to sort the list.
+data ReportsFilesListSortField
+    = RFLSFID
+      -- ^ @ID@
+      -- Sort by file ID.
+    | RFLSFLastModifiedTime
+      -- ^ @LAST_MODIFIED_TIME@
+      -- Sort by \'lastmodifiedAt\' field.
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportsFilesListSortField
+
+instance FromText ReportsFilesListSortField where
+    fromText = \case
+        "ID" -> Just RFLSFID
+        "LAST_MODIFIED_TIME" -> Just RFLSFLastModifiedTime
+        _ -> Nothing
+
+instance ToText ReportsFilesListSortField where
+    toText = \case
+        RFLSFID -> "ID"
+        RFLSFLastModifiedTime -> "LAST_MODIFIED_TIME"
+
+instance FromJSON ReportsFilesListSortField where
+    parseJSON = parseJSONText "ReportsFilesListSortField"
+
+instance ToJSON ReportsFilesListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data CreativesListSortField
+    = CID
+      -- ^ @ID@
+    | CName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativesListSortField
+
+instance FromText CreativesListSortField where
+    fromText = \case
+        "ID" -> Just CID
+        "NAME" -> Just CName
+        _ -> Nothing
+
+instance ToText CreativesListSortField where
+    toText = \case
+        CID -> "ID"
+        CName -> "NAME"
+
+instance FromJSON CreativesListSortField where
+    parseJSON = parseJSONText "CreativesListSortField"
+
+instance ToJSON CreativesListSortField where
+    toJSON = toJSONText
+
+data DayPartTargetingDaysOfWeekItem
+    = DPTDOWIFriday
+      -- ^ @FRIDAY@
+    | DPTDOWIMonday
+      -- ^ @MONDAY@
+    | DPTDOWISaturday
+      -- ^ @SATURDAY@
+    | DPTDOWISunday
+      -- ^ @SUNDAY@
+    | DPTDOWIThursday
+      -- ^ @THURSDAY@
+    | DPTDOWITuesday
+      -- ^ @TUESDAY@
+    | DPTDOWIWednesday
+      -- ^ @WEDNESDAY@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DayPartTargetingDaysOfWeekItem
+
+instance FromText DayPartTargetingDaysOfWeekItem where
+    fromText = \case
+        "FRIDAY" -> Just DPTDOWIFriday
+        "MONDAY" -> Just DPTDOWIMonday
+        "SATURDAY" -> Just DPTDOWISaturday
+        "SUNDAY" -> Just DPTDOWISunday
+        "THURSDAY" -> Just DPTDOWIThursday
+        "TUESDAY" -> Just DPTDOWITuesday
+        "WEDNESDAY" -> Just DPTDOWIWednesday
+        _ -> Nothing
+
+instance ToText DayPartTargetingDaysOfWeekItem where
+    toText = \case
+        DPTDOWIFriday -> "FRIDAY"
+        DPTDOWIMonday -> "MONDAY"
+        DPTDOWISaturday -> "SATURDAY"
+        DPTDOWISunday -> "SUNDAY"
+        DPTDOWIThursday -> "THURSDAY"
+        DPTDOWITuesday -> "TUESDAY"
+        DPTDOWIWednesday -> "WEDNESDAY"
+
+instance FromJSON DayPartTargetingDaysOfWeekItem where
+    parseJSON = parseJSONText "DayPartTargetingDaysOfWeekItem"
+
+instance ToJSON DayPartTargetingDaysOfWeekItem where
+    toJSON = toJSONText
+
+-- | Strategy for calculating weights. Used with
+-- CREATIVE_ROTATION_TYPE_RANDOM.
+data CreativeRotationWeightCalculationStrategy
+    = WeightStrategyCustom
+      -- ^ @WEIGHT_STRATEGY_CUSTOM@
+    | WeightStrategyEqual
+      -- ^ @WEIGHT_STRATEGY_EQUAL@
+    | WeightStrategyHighestCtr
+      -- ^ @WEIGHT_STRATEGY_HIGHEST_CTR@
+    | WeightStrategyOptimized
+      -- ^ @WEIGHT_STRATEGY_OPTIMIZED@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeRotationWeightCalculationStrategy
+
+instance FromText CreativeRotationWeightCalculationStrategy where
+    fromText = \case
+        "WEIGHT_STRATEGY_CUSTOM" -> Just WeightStrategyCustom
+        "WEIGHT_STRATEGY_EQUAL" -> Just WeightStrategyEqual
+        "WEIGHT_STRATEGY_HIGHEST_CTR" -> Just WeightStrategyHighestCtr
+        "WEIGHT_STRATEGY_OPTIMIZED" -> Just WeightStrategyOptimized
+        _ -> Nothing
+
+instance ToText CreativeRotationWeightCalculationStrategy where
+    toText = \case
+        WeightStrategyCustom -> "WEIGHT_STRATEGY_CUSTOM"
+        WeightStrategyEqual -> "WEIGHT_STRATEGY_EQUAL"
+        WeightStrategyHighestCtr -> "WEIGHT_STRATEGY_HIGHEST_CTR"
+        WeightStrategyOptimized -> "WEIGHT_STRATEGY_OPTIMIZED"
+
+instance FromJSON CreativeRotationWeightCalculationStrategy where
+    parseJSON = parseJSONText "CreativeRotationWeightCalculationStrategy"
+
+instance ToJSON CreativeRotationWeightCalculationStrategy where
+    toJSON = toJSONText
+
+-- | The scope that defines which results are returned, default is \'MINE\'.
+data FilesListScope
+    = FLSAll
+      -- ^ @ALL@
+      -- All files in account.
+    | FLSMine
+      -- ^ @MINE@
+      -- My files.
+    | FLSSharedWithMe
+      -- ^ @SHARED_WITH_ME@
+      -- Files shared with me.
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FilesListScope
+
+instance FromText FilesListScope where
+    fromText = \case
+        "ALL" -> Just FLSAll
+        "MINE" -> Just FLSMine
+        "SHARED_WITH_ME" -> Just FLSSharedWithMe
+        _ -> Nothing
+
+instance ToText FilesListScope where
+    toText = \case
+        FLSAll -> "ALL"
+        FLSMine -> "MINE"
+        FLSSharedWithMe -> "SHARED_WITH_ME"
+
+instance FromJSON FilesListScope where
+    parseJSON = parseJSONText "FilesListScope"
+
+instance ToJSON FilesListScope where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data ContentCategoriesListSortField
+    = CCLSFID
+      -- ^ @ID@
+    | CCLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ContentCategoriesListSortField
+
+instance FromText ContentCategoriesListSortField where
+    fromText = \case
+        "ID" -> Just CCLSFID
+        "NAME" -> Just CCLSFName
+        _ -> Nothing
+
+instance ToText ContentCategoriesListSortField where
+    toText = \case
+        CCLSFID -> "ID"
+        CCLSFName -> "NAME"
+
+instance FromJSON ContentCategoriesListSortField where
+    parseJSON = parseJSONText "ContentCategoriesListSortField"
+
+instance ToJSON ContentCategoriesListSortField where
+    toJSON = toJSONText
+
+-- | Audience age group of this project.
+data ProjectAudienceAgeGroup
+    = PlanningAudienceAge1824
+      -- ^ @PLANNING_AUDIENCE_AGE_18_24@
+    | PlanningAudienceAge2534
+      -- ^ @PLANNING_AUDIENCE_AGE_25_34@
+    | PlanningAudienceAge3544
+      -- ^ @PLANNING_AUDIENCE_AGE_35_44@
+    | PlanningAudienceAge4554
+      -- ^ @PLANNING_AUDIENCE_AGE_45_54@
+    | PlanningAudienceAge5564
+      -- ^ @PLANNING_AUDIENCE_AGE_55_64@
+    | PlanningAudienceAge65OrMore
+      -- ^ @PLANNING_AUDIENCE_AGE_65_OR_MORE@
+    | PlanningAudienceAgeUnknown
+      -- ^ @PLANNING_AUDIENCE_AGE_UNKNOWN@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ProjectAudienceAgeGroup
+
+instance FromText ProjectAudienceAgeGroup where
+    fromText = \case
+        "PLANNING_AUDIENCE_AGE_18_24" -> Just PlanningAudienceAge1824
+        "PLANNING_AUDIENCE_AGE_25_34" -> Just PlanningAudienceAge2534
+        "PLANNING_AUDIENCE_AGE_35_44" -> Just PlanningAudienceAge3544
+        "PLANNING_AUDIENCE_AGE_45_54" -> Just PlanningAudienceAge4554
+        "PLANNING_AUDIENCE_AGE_55_64" -> Just PlanningAudienceAge5564
+        "PLANNING_AUDIENCE_AGE_65_OR_MORE" -> Just PlanningAudienceAge65OrMore
+        "PLANNING_AUDIENCE_AGE_UNKNOWN" -> Just PlanningAudienceAgeUnknown
+        _ -> Nothing
+
+instance ToText ProjectAudienceAgeGroup where
+    toText = \case
+        PlanningAudienceAge1824 -> "PLANNING_AUDIENCE_AGE_18_24"
+        PlanningAudienceAge2534 -> "PLANNING_AUDIENCE_AGE_25_34"
+        PlanningAudienceAge3544 -> "PLANNING_AUDIENCE_AGE_35_44"
+        PlanningAudienceAge4554 -> "PLANNING_AUDIENCE_AGE_45_54"
+        PlanningAudienceAge5564 -> "PLANNING_AUDIENCE_AGE_55_64"
+        PlanningAudienceAge65OrMore -> "PLANNING_AUDIENCE_AGE_65_OR_MORE"
+        PlanningAudienceAgeUnknown -> "PLANNING_AUDIENCE_AGE_UNKNOWN"
+
+instance FromJSON ProjectAudienceAgeGroup where
+    parseJSON = parseJSONText "ProjectAudienceAgeGroup"
+
+instance ToJSON ProjectAudienceAgeGroup where
+    toJSON = toJSONText
+
+-- | Type of ad. This is a required field on insertion. Note that default ads
+-- (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative
+-- resource).
+data AdType
+    = ATAdServingClickTracker
+      -- ^ @AD_SERVING_CLICK_TRACKER@
+    | ATAdServingDefaultAd
+      -- ^ @AD_SERVING_DEFAULT_AD@
+    | ATAdServingStandardAd
+      -- ^ @AD_SERVING_STANDARD_AD@
+    | ATAdServingTracking
+      -- ^ @AD_SERVING_TRACKING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdType
+
+instance FromText AdType where
+    fromText = \case
+        "AD_SERVING_CLICK_TRACKER" -> Just ATAdServingClickTracker
+        "AD_SERVING_DEFAULT_AD" -> Just ATAdServingDefaultAd
+        "AD_SERVING_STANDARD_AD" -> Just ATAdServingStandardAd
+        "AD_SERVING_TRACKING" -> Just ATAdServingTracking
+        _ -> Nothing
+
+instance ToText AdType where
+    toText = \case
+        ATAdServingClickTracker -> "AD_SERVING_CLICK_TRACKER"
+        ATAdServingDefaultAd -> "AD_SERVING_DEFAULT_AD"
+        ATAdServingStandardAd -> "AD_SERVING_STANDARD_AD"
+        ATAdServingTracking -> "AD_SERVING_TRACKING"
+
+instance FromJSON AdType where
+    parseJSON = parseJSONText "AdType"
+
+instance ToJSON AdType where
+    toJSON = toJSONText
+
+-- | Select only change logs with the specified action.
+data ChangeLogsListAction
+    = ActionAdd
+      -- ^ @ACTION_ADD@
+    | ActionAssign
+      -- ^ @ACTION_ASSIGN@
+    | ActionAssociate
+      -- ^ @ACTION_ASSOCIATE@
+    | ActionCreate
+      -- ^ @ACTION_CREATE@
+    | ActionDelete
+      -- ^ @ACTION_DELETE@
+    | ActionDisable
+      -- ^ @ACTION_DISABLE@
+    | ActionEmailTags
+      -- ^ @ACTION_EMAIL_TAGS@
+    | ActionEnable
+      -- ^ @ACTION_ENABLE@
+    | ActionLink
+      -- ^ @ACTION_LINK@
+    | ActionMarkAsDefault
+      -- ^ @ACTION_MARK_AS_DEFAULT@
+    | ActionPush
+      -- ^ @ACTION_PUSH@
+    | ActionRemove
+      -- ^ @ACTION_REMOVE@
+    | ActionSend
+      -- ^ @ACTION_SEND@
+    | ActionShare
+      -- ^ @ACTION_SHARE@
+    | ActionUnassign
+      -- ^ @ACTION_UNASSIGN@
+    | ActionUnlink
+      -- ^ @ACTION_UNLINK@
+    | ActionUpdate
+      -- ^ @ACTION_UPDATE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ChangeLogsListAction
+
+instance FromText ChangeLogsListAction where
+    fromText = \case
+        "ACTION_ADD" -> Just ActionAdd
+        "ACTION_ASSIGN" -> Just ActionAssign
+        "ACTION_ASSOCIATE" -> Just ActionAssociate
+        "ACTION_CREATE" -> Just ActionCreate
+        "ACTION_DELETE" -> Just ActionDelete
+        "ACTION_DISABLE" -> Just ActionDisable
+        "ACTION_EMAIL_TAGS" -> Just ActionEmailTags
+        "ACTION_ENABLE" -> Just ActionEnable
+        "ACTION_LINK" -> Just ActionLink
+        "ACTION_MARK_AS_DEFAULT" -> Just ActionMarkAsDefault
+        "ACTION_PUSH" -> Just ActionPush
+        "ACTION_REMOVE" -> Just ActionRemove
+        "ACTION_SEND" -> Just ActionSend
+        "ACTION_SHARE" -> Just ActionShare
+        "ACTION_UNASSIGN" -> Just ActionUnassign
+        "ACTION_UNLINK" -> Just ActionUnlink
+        "ACTION_UPDATE" -> Just ActionUpdate
+        _ -> Nothing
+
+instance ToText ChangeLogsListAction where
+    toText = \case
+        ActionAdd -> "ACTION_ADD"
+        ActionAssign -> "ACTION_ASSIGN"
+        ActionAssociate -> "ACTION_ASSOCIATE"
+        ActionCreate -> "ACTION_CREATE"
+        ActionDelete -> "ACTION_DELETE"
+        ActionDisable -> "ACTION_DISABLE"
+        ActionEmailTags -> "ACTION_EMAIL_TAGS"
+        ActionEnable -> "ACTION_ENABLE"
+        ActionLink -> "ACTION_LINK"
+        ActionMarkAsDefault -> "ACTION_MARK_AS_DEFAULT"
+        ActionPush -> "ACTION_PUSH"
+        ActionRemove -> "ACTION_REMOVE"
+        ActionSend -> "ACTION_SEND"
+        ActionShare -> "ACTION_SHARE"
+        ActionUnassign -> "ACTION_UNASSIGN"
+        ActionUnlink -> "ACTION_UNLINK"
+        ActionUpdate -> "ACTION_UPDATE"
+
+instance FromJSON ChangeLogsListAction where
+    parseJSON = parseJSONText "ChangeLogsListAction"
+
+instance ToJSON ChangeLogsListAction where
+    toJSON = toJSONText
+
+-- | Type of artwork used for the creative. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA, and all
+-- VPAID.
+data CreativeArtworkType
+    = CATArtworkTypeFlash
+      -- ^ @ARTWORK_TYPE_FLASH@
+    | CATArtworkTypeHTML5
+      -- ^ @ARTWORK_TYPE_HTML5@
+    | CATArtworkTypeMixed
+      -- ^ @ARTWORK_TYPE_MIXED@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeArtworkType
+
+instance FromText CreativeArtworkType where
+    fromText = \case
+        "ARTWORK_TYPE_FLASH" -> Just CATArtworkTypeFlash
+        "ARTWORK_TYPE_HTML5" -> Just CATArtworkTypeHTML5
+        "ARTWORK_TYPE_MIXED" -> Just CATArtworkTypeMixed
+        _ -> Nothing
+
+instance ToText CreativeArtworkType where
+    toText = \case
+        CATArtworkTypeFlash -> "ARTWORK_TYPE_FLASH"
+        CATArtworkTypeHTML5 -> "ARTWORK_TYPE_HTML5"
+        CATArtworkTypeMixed -> "ARTWORK_TYPE_MIXED"
+
+instance FromJSON CreativeArtworkType where
+    parseJSON = parseJSONText "CreativeArtworkType"
+
+instance ToJSON CreativeArtworkType where
+    toJSON = toJSONText
+
+-- | Third-party placement status.
+data PlacementStatus
+    = AcknowledgeAcceptance
+      -- ^ @ACKNOWLEDGE_ACCEPTANCE@
+    | AcknowledgeRejection
+      -- ^ @ACKNOWLEDGE_REJECTION@
+    | Draft
+      -- ^ @DRAFT@
+    | PaymentAccepted
+      -- ^ @PAYMENT_ACCEPTED@
+    | PaymentRejected
+      -- ^ @PAYMENT_REJECTED@
+    | PendingReview
+      -- ^ @PENDING_REVIEW@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementStatus
+
+instance FromText PlacementStatus where
+    fromText = \case
+        "ACKNOWLEDGE_ACCEPTANCE" -> Just AcknowledgeAcceptance
+        "ACKNOWLEDGE_REJECTION" -> Just AcknowledgeRejection
+        "DRAFT" -> Just Draft
+        "PAYMENT_ACCEPTED" -> Just PaymentAccepted
+        "PAYMENT_REJECTED" -> Just PaymentRejected
+        "PENDING_REVIEW" -> Just PendingReview
+        _ -> Nothing
+
+instance ToText PlacementStatus where
+    toText = \case
+        AcknowledgeAcceptance -> "ACKNOWLEDGE_ACCEPTANCE"
+        AcknowledgeRejection -> "ACKNOWLEDGE_REJECTION"
+        Draft -> "DRAFT"
+        PaymentAccepted -> "PAYMENT_ACCEPTED"
+        PaymentRejected -> "PAYMENT_REJECTED"
+        PendingReview -> "PENDING_REVIEW"
+
+instance FromJSON PlacementStatus where
+    parseJSON = parseJSONText "PlacementStatus"
+
+instance ToJSON PlacementStatus where
+    toJSON = toJSONText
+
+-- | Enum to define for \"MONTHLY\" scheduled reports whether reports should
+-- be repeated on the same day of the month as \"startDate\" or the same
+-- day of the week of the month. Example: If \'startDate\' is Monday, April
+-- 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on
+-- the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent
+-- reports on the first Monday of the month.
+data ReportScheduleRunsOnDayOfMonth
+    = DayOfMonth
+      -- ^ @DAY_OF_MONTH@
+    | WeekOfMonth
+      -- ^ @WEEK_OF_MONTH@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportScheduleRunsOnDayOfMonth
+
+instance FromText ReportScheduleRunsOnDayOfMonth where
+    fromText = \case
+        "DAY_OF_MONTH" -> Just DayOfMonth
+        "WEEK_OF_MONTH" -> Just WeekOfMonth
+        _ -> Nothing
+
+instance ToText ReportScheduleRunsOnDayOfMonth where
+    toText = \case
+        DayOfMonth -> "DAY_OF_MONTH"
+        WeekOfMonth -> "WEEK_OF_MONTH"
+
+instance FromJSON ReportScheduleRunsOnDayOfMonth where
+    parseJSON = parseJSONText "ReportScheduleRunsOnDayOfMonth"
+
+instance ToJSON ReportScheduleRunsOnDayOfMonth where
+    toJSON = toJSONText
+
+data FloodlightActivityUserDefinedVariableTypesItem
+    = FAUDVTIU1
+      -- ^ @U1@
+    | FAUDVTIU10
+      -- ^ @U10@
+    | FAUDVTIU11
+      -- ^ @U11@
+    | FAUDVTIU12
+      -- ^ @U12@
+    | FAUDVTIU13
+      -- ^ @U13@
+    | FAUDVTIU14
+      -- ^ @U14@
+    | FAUDVTIU15
+      -- ^ @U15@
+    | FAUDVTIU16
+      -- ^ @U16@
+    | FAUDVTIU17
+      -- ^ @U17@
+    | FAUDVTIU18
+      -- ^ @U18@
+    | FAUDVTIU19
+      -- ^ @U19@
+    | FAUDVTIU2
+      -- ^ @U2@
+    | FAUDVTIU20
+      -- ^ @U20@
+    | FAUDVTIU3
+      -- ^ @U3@
+    | FAUDVTIU4
+      -- ^ @U4@
+    | FAUDVTIU5
+      -- ^ @U5@
+    | FAUDVTIU6
+      -- ^ @U6@
+    | FAUDVTIU7
+      -- ^ @U7@
+    | FAUDVTIU8
+      -- ^ @U8@
+    | FAUDVTIU9
+      -- ^ @U9@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivityUserDefinedVariableTypesItem
+
+instance FromText FloodlightActivityUserDefinedVariableTypesItem where
+    fromText = \case
+        "U1" -> Just FAUDVTIU1
+        "U10" -> Just FAUDVTIU10
+        "U11" -> Just FAUDVTIU11
+        "U12" -> Just FAUDVTIU12
+        "U13" -> Just FAUDVTIU13
+        "U14" -> Just FAUDVTIU14
+        "U15" -> Just FAUDVTIU15
+        "U16" -> Just FAUDVTIU16
+        "U17" -> Just FAUDVTIU17
+        "U18" -> Just FAUDVTIU18
+        "U19" -> Just FAUDVTIU19
+        "U2" -> Just FAUDVTIU2
+        "U20" -> Just FAUDVTIU20
+        "U3" -> Just FAUDVTIU3
+        "U4" -> Just FAUDVTIU4
+        "U5" -> Just FAUDVTIU5
+        "U6" -> Just FAUDVTIU6
+        "U7" -> Just FAUDVTIU7
+        "U8" -> Just FAUDVTIU8
+        "U9" -> Just FAUDVTIU9
+        _ -> Nothing
+
+instance ToText FloodlightActivityUserDefinedVariableTypesItem where
+    toText = \case
+        FAUDVTIU1 -> "U1"
+        FAUDVTIU10 -> "U10"
+        FAUDVTIU11 -> "U11"
+        FAUDVTIU12 -> "U12"
+        FAUDVTIU13 -> "U13"
+        FAUDVTIU14 -> "U14"
+        FAUDVTIU15 -> "U15"
+        FAUDVTIU16 -> "U16"
+        FAUDVTIU17 -> "U17"
+        FAUDVTIU18 -> "U18"
+        FAUDVTIU19 -> "U19"
+        FAUDVTIU2 -> "U2"
+        FAUDVTIU20 -> "U20"
+        FAUDVTIU3 -> "U3"
+        FAUDVTIU4 -> "U4"
+        FAUDVTIU5 -> "U5"
+        FAUDVTIU6 -> "U6"
+        FAUDVTIU7 -> "U7"
+        FAUDVTIU8 -> "U8"
+        FAUDVTIU9 -> "U9"
+
+instance FromJSON FloodlightActivityUserDefinedVariableTypesItem where
+    parseJSON = parseJSONText "FloodlightActivityUserDefinedVariableTypesItem"
+
+instance ToJSON FloodlightActivityUserDefinedVariableTypesItem where
+    toJSON = toJSONText
+
+-- | Site filter type for this event tag. If no type is specified then the
+-- event tag will be applied to all sites.
+data EventTagSiteFilterType
+    = BlackList
+      -- ^ @BLACKLIST@
+    | WhiteList
+      -- ^ @WHITELIST@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable EventTagSiteFilterType
+
+instance FromText EventTagSiteFilterType where
+    fromText = \case
+        "BLACKLIST" -> Just BlackList
+        "WHITELIST" -> Just WhiteList
+        _ -> Nothing
+
+instance ToText EventTagSiteFilterType where
+    toText = \case
+        BlackList -> "BLACKLIST"
+        WhiteList -> "WHITELIST"
+
+instance FromJSON EventTagSiteFilterType where
+    parseJSON = parseJSONText "EventTagSiteFilterType"
+
+instance ToJSON EventTagSiteFilterType where
+    toJSON = toJSONText
+
+-- | The output format of the report. If not specified, default format is
+-- \"CSV\". Note that the actual format in the completed report file might
+-- differ if for instance the report\'s size exceeds the format\'s
+-- capabilities. \"CSV\" will then be the fallback format.
+data ReportFormat
+    = RFCSV
+      -- ^ @CSV@
+    | RFExcel
+      -- ^ @EXCEL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportFormat
+
+instance FromText ReportFormat where
+    fromText = \case
+        "CSV" -> Just RFCSV
+        "EXCEL" -> Just RFExcel
+        _ -> Nothing
+
+instance ToText ReportFormat where
+    toText = \case
+        RFCSV -> "CSV"
+        RFExcel -> "EXCEL"
+
+instance FromJSON ReportFormat where
+    parseJSON = parseJSONText "ReportFormat"
+
+instance ToJSON ReportFormat where
+    toJSON = toJSONText
+
+-- | Type of this placement group. A package is a simple group of placements
+-- that acts as a single pricing point for a group of tags. A roadblock is
+-- a group of placements that not only acts as a single pricing point, but
+-- also assumes that all the tags in it will be served at the same time. A
+-- roadblock requires one of its assigned placements to be marked as
+-- primary for reporting. This field is required on insertion.
+data PlacementGroupPlacementGroupType
+    = PGPGTPlacementPackage
+      -- ^ @PLACEMENT_PACKAGE@
+    | PGPGTPlacementRoadblock
+      -- ^ @PLACEMENT_ROADBLOCK@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementGroupPlacementGroupType
+
+instance FromText PlacementGroupPlacementGroupType where
+    fromText = \case
+        "PLACEMENT_PACKAGE" -> Just PGPGTPlacementPackage
+        "PLACEMENT_ROADBLOCK" -> Just PGPGTPlacementRoadblock
+        _ -> Nothing
+
+instance ToText PlacementGroupPlacementGroupType where
+    toText = \case
+        PGPGTPlacementPackage -> "PLACEMENT_PACKAGE"
+        PGPGTPlacementRoadblock -> "PLACEMENT_ROADBLOCK"
+
+instance FromJSON PlacementGroupPlacementGroupType where
+    parseJSON = parseJSONText "PlacementGroupPlacementGroupType"
+
+instance ToJSON PlacementGroupPlacementGroupType where
+    toJSON = toJSONText
+
+-- | Pricing type of this inventory item.
+data PricingPricingType
+    = PlanningPlacementPricingTypeClicks
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CLICKS@
+    | PlanningPlacementPricingTypeCpa
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CPA@
+    | PlanningPlacementPricingTypeCpc
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CPC@
+    | PlanningPlacementPricingTypeCpm
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CPM@
+    | PlanningPlacementPricingTypeFlatRateClicks
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS@
+    | PlanningPlacementPricingTypeFlatRateImpressions
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
+    | PlanningPlacementPricingTypeImpressions
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PricingPricingType
+
+instance FromText PricingPricingType where
+    fromText = \case
+        "PLANNING_PLACEMENT_PRICING_TYPE_CLICKS" -> Just PlanningPlacementPricingTypeClicks
+        "PLANNING_PLACEMENT_PRICING_TYPE_CPA" -> Just PlanningPlacementPricingTypeCpa
+        "PLANNING_PLACEMENT_PRICING_TYPE_CPC" -> Just PlanningPlacementPricingTypeCpc
+        "PLANNING_PLACEMENT_PRICING_TYPE_CPM" -> Just PlanningPlacementPricingTypeCpm
+        "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS" -> Just PlanningPlacementPricingTypeFlatRateClicks
+        "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Just PlanningPlacementPricingTypeFlatRateImpressions
+        "PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS" -> Just PlanningPlacementPricingTypeImpressions
+        _ -> Nothing
+
+instance ToText PricingPricingType where
+    toText = \case
+        PlanningPlacementPricingTypeClicks -> "PLANNING_PLACEMENT_PRICING_TYPE_CLICKS"
+        PlanningPlacementPricingTypeCpa -> "PLANNING_PLACEMENT_PRICING_TYPE_CPA"
+        PlanningPlacementPricingTypeCpc -> "PLANNING_PLACEMENT_PRICING_TYPE_CPC"
+        PlanningPlacementPricingTypeCpm -> "PLANNING_PLACEMENT_PRICING_TYPE_CPM"
+        PlanningPlacementPricingTypeFlatRateClicks -> "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS"
+        PlanningPlacementPricingTypeFlatRateImpressions -> "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
+        PlanningPlacementPricingTypeImpressions -> "PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS"
+
+instance FromJSON PricingPricingType where
+    parseJSON = parseJSONText "PricingPricingType"
+
+instance ToJSON PricingPricingType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data SubAccountsListSortOrder
+    = SALSOAscending
+      -- ^ @ASCENDING@
+    | SALSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable SubAccountsListSortOrder
+
+instance FromText SubAccountsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just SALSOAscending
+        "DESCENDING" -> Just SALSODescending
+        _ -> Nothing
+
+instance ToText SubAccountsListSortOrder where
+    toText = \case
+        SALSOAscending -> "ASCENDING"
+        SALSODescending -> "DESCENDING"
+
+instance FromJSON SubAccountsListSortOrder where
+    parseJSON = parseJSONText "SubAccountsListSortOrder"
+
+instance ToJSON SubAccountsListSortOrder where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data AdsListSortOrder
+    = ADSAscending
+      -- ^ @ASCENDING@
+    | ADSDescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdsListSortOrder
+
+instance FromText AdsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just ADSAscending
+        "DESCENDING" -> Just ADSDescending
+        _ -> Nothing
+
+instance ToText AdsListSortOrder where
+    toText = \case
+        ADSAscending -> "ASCENDING"
+        ADSDescending -> "DESCENDING"
+
+instance FromJSON AdsListSortOrder where
+    parseJSON = parseJSONText "AdsListSortOrder"
+
+instance ToJSON AdsListSortOrder where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data ProjectsListSortOrder
+    = PLSOAscending
+      -- ^ @ASCENDING@
+    | PLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ProjectsListSortOrder
+
+instance FromText ProjectsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just PLSOAscending
+        "DESCENDING" -> Just PLSODescending
+        _ -> Nothing
+
+instance ToText ProjectsListSortOrder where
+    toText = \case
+        PLSOAscending -> "ASCENDING"
+        PLSODescending -> "DESCENDING"
+
+instance FromJSON ProjectsListSortOrder where
+    parseJSON = parseJSONText "ProjectsListSortOrder"
+
+instance ToJSON ProjectsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data RemarketingListsListSortField
+    = RLLSFID
+      -- ^ @ID@
+    | RLLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable RemarketingListsListSortField
+
+instance FromText RemarketingListsListSortField where
+    fromText = \case
+        "ID" -> Just RLLSFID
+        "NAME" -> Just RLLSFName
+        _ -> Nothing
+
+instance ToText RemarketingListsListSortField where
+    toText = \case
+        RLLSFID -> "ID"
+        RLLSFName -> "NAME"
+
+instance FromJSON RemarketingListsListSortField where
+    parseJSON = parseJSONText "RemarketingListsListSortField"
+
+instance ToJSON RemarketingListsListSortField where
+    toJSON = toJSONText
+
+data ReportScheduleRepeatsOnWeekDaysItem
+    = RSROWDIFriday
+      -- ^ @FRIDAY@
+    | RSROWDIMonday
+      -- ^ @MONDAY@
+    | RSROWDISaturday
+      -- ^ @SATURDAY@
+    | RSROWDISunday
+      -- ^ @SUNDAY@
+    | RSROWDIThursday
+      -- ^ @THURSDAY@
+    | RSROWDITuesday
+      -- ^ @TUESDAY@
+    | RSROWDIWednesday
+      -- ^ @WEDNESDAY@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportScheduleRepeatsOnWeekDaysItem
+
+instance FromText ReportScheduleRepeatsOnWeekDaysItem where
+    fromText = \case
+        "FRIDAY" -> Just RSROWDIFriday
+        "MONDAY" -> Just RSROWDIMonday
+        "SATURDAY" -> Just RSROWDISaturday
+        "SUNDAY" -> Just RSROWDISunday
+        "THURSDAY" -> Just RSROWDIThursday
+        "TUESDAY" -> Just RSROWDITuesday
+        "WEDNESDAY" -> Just RSROWDIWednesday
+        _ -> Nothing
+
+instance ToText ReportScheduleRepeatsOnWeekDaysItem where
+    toText = \case
+        RSROWDIFriday -> "FRIDAY"
+        RSROWDIMonday -> "MONDAY"
+        RSROWDISaturday -> "SATURDAY"
+        RSROWDISunday -> "SUNDAY"
+        RSROWDIThursday -> "THURSDAY"
+        RSROWDITuesday -> "TUESDAY"
+        RSROWDIWednesday -> "WEDNESDAY"
+
+instance FromJSON ReportScheduleRepeatsOnWeekDaysItem where
+    parseJSON = parseJSONText "ReportScheduleRepeatsOnWeekDaysItem"
+
+instance ToJSON ReportScheduleRepeatsOnWeekDaysItem where
+    toJSON = toJSONText
+
+-- | Creative group number of the creative group assignment.
+data CreativeGroupAssignmentCreativeGroupNumber
+    = CreativeGroupOne
+      -- ^ @CREATIVE_GROUP_ONE@
+    | CreativeGroupTwo
+      -- ^ @CREATIVE_GROUP_TWO@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeGroupAssignmentCreativeGroupNumber
+
+instance FromText CreativeGroupAssignmentCreativeGroupNumber where
+    fromText = \case
+        "CREATIVE_GROUP_ONE" -> Just CreativeGroupOne
+        "CREATIVE_GROUP_TWO" -> Just CreativeGroupTwo
+        _ -> Nothing
+
+instance ToText CreativeGroupAssignmentCreativeGroupNumber where
+    toText = \case
+        CreativeGroupOne -> "CREATIVE_GROUP_ONE"
+        CreativeGroupTwo -> "CREATIVE_GROUP_TWO"
+
+instance FromJSON CreativeGroupAssignmentCreativeGroupNumber where
+    parseJSON = parseJSONText "CreativeGroupAssignmentCreativeGroupNumber"
+
+instance ToJSON CreativeGroupAssignmentCreativeGroupNumber where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data AccountsListSortField
+    = AID
+      -- ^ @ID@
+    | AName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountsListSortField
+
+instance FromText AccountsListSortField where
+    fromText = \case
+        "ID" -> Just AID
+        "NAME" -> Just AName
+        _ -> Nothing
+
+instance ToText AccountsListSortField where
+    toText = \case
+        AID -> "ID"
+        AName -> "NAME"
+
+instance FromJSON AccountsListSortField where
+    parseJSON = parseJSONText "AccountsListSortField"
+
+instance ToJSON AccountsListSortField where
+    toJSON = toJSONText
+
+-- | Select only advertisers with the specified status.
+data AdvertisersListStatus
+    = Approved
+      -- ^ @APPROVED@
+    | OnHold
+      -- ^ @ON_HOLD@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdvertisersListStatus
+
+instance FromText AdvertisersListStatus where
+    fromText = \case
+        "APPROVED" -> Just Approved
+        "ON_HOLD" -> Just OnHold
+        _ -> Nothing
+
+instance ToText AdvertisersListStatus where
+    toText = \case
+        Approved -> "APPROVED"
+        OnHold -> "ON_HOLD"
+
+instance FromJSON AdvertisersListStatus where
+    parseJSON = parseJSONText "AdvertisersListStatus"
+
+instance ToJSON AdvertisersListStatus where
+    toJSON = toJSONText
+
+-- | Determines how the \'value\' field is matched when filtering. If not
+-- specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, \'*\' is
+-- allowed as a placeholder for variable length character sequences, and it
+-- can be escaped with a backslash. Note, only paid search dimensions
+-- (\'dfa:paidSearch*\') allow a matchType other than EXACT.
+data DimensionValueMatchType
+    = BeginsWith
+      -- ^ @BEGINS_WITH@
+    | Contains
+      -- ^ @CONTAINS@
+    | Exact
+      -- ^ @EXACT@
+    | WildcardExpression
+      -- ^ @WILDCARD_EXPRESSION@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DimensionValueMatchType
+
+instance FromText DimensionValueMatchType where
+    fromText = \case
+        "BEGINS_WITH" -> Just BeginsWith
+        "CONTAINS" -> Just Contains
+        "EXACT" -> Just Exact
+        "WILDCARD_EXPRESSION" -> Just WildcardExpression
+        _ -> Nothing
+
+instance ToText DimensionValueMatchType where
+    toText = \case
+        BeginsWith -> "BEGINS_WITH"
+        Contains -> "CONTAINS"
+        Exact -> "EXACT"
+        WildcardExpression -> "WILDCARD_EXPRESSION"
+
+instance FromJSON DimensionValueMatchType where
+    parseJSON = parseJSONText "DimensionValueMatchType"
+
+instance ToJSON DimensionValueMatchType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data PlacementGroupsListSortOrder
+    = PGLSOAscending
+      -- ^ @ASCENDING@
+    | PGLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementGroupsListSortOrder
+
+instance FromText PlacementGroupsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just PGLSOAscending
+        "DESCENDING" -> Just PGLSODescending
+        _ -> Nothing
+
+instance ToText PlacementGroupsListSortOrder where
+    toText = \case
+        PGLSOAscending -> "ASCENDING"
+        PGLSODescending -> "DESCENDING"
+
+instance FromJSON PlacementGroupsListSortOrder where
+    parseJSON = parseJSONText "PlacementGroupsListSortOrder"
+
+instance ToJSON PlacementGroupsListSortOrder where
+    toJSON = toJSONText
+
+-- | Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+-- WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on
+-- mobile devices for regular or interstitial ads, respectively. APP and
+-- APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO
+-- refers to rendering an in-stream video ads developed with the VAST
+-- standard.
+data AdCompatibility
+    = ACApp
+      -- ^ @APP@
+    | ACAppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | ACInStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+    | ACWeb
+      -- ^ @WEB@
+    | ACWebInterstitial
+      -- ^ @WEB_INTERSTITIAL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdCompatibility
+
+instance FromText AdCompatibility where
+    fromText = \case
+        "APP" -> Just ACApp
+        "APP_INTERSTITIAL" -> Just ACAppInterstitial
+        "IN_STREAM_VIDEO" -> Just ACInStreamVideo
+        "WEB" -> Just ACWeb
+        "WEB_INTERSTITIAL" -> Just ACWebInterstitial
+        _ -> Nothing
+
+instance ToText AdCompatibility where
+    toText = \case
+        ACApp -> "APP"
+        ACAppInterstitial -> "APP_INTERSTITIAL"
+        ACInStreamVideo -> "IN_STREAM_VIDEO"
+        ACWeb -> "WEB"
+        ACWebInterstitial -> "WEB_INTERSTITIAL"
+
+instance FromJSON AdCompatibility where
+    parseJSON = parseJSONText "AdCompatibility"
+
+instance ToJSON AdCompatibility where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data CreativeFieldValuesListSortField
+    = CFVLSFID
+      -- ^ @ID@
+    | CFVLSFValue
+      -- ^ @VALUE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeFieldValuesListSortField
+
+instance FromText CreativeFieldValuesListSortField where
+    fromText = \case
+        "ID" -> Just CFVLSFID
+        "VALUE" -> Just CFVLSFValue
+        _ -> Nothing
+
+instance ToText CreativeFieldValuesListSortField where
+    toText = \case
+        CFVLSFID -> "ID"
+        CFVLSFValue -> "VALUE"
+
+instance FromJSON CreativeFieldValuesListSortField where
+    parseJSON = parseJSONText "CreativeFieldValuesListSortField"
+
+instance ToJSON CreativeFieldValuesListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data FloodlightActivityGroupsListSortField
+    = FAGLSFID
+      -- ^ @ID@
+    | FAGLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivityGroupsListSortField
+
+instance FromText FloodlightActivityGroupsListSortField where
+    fromText = \case
+        "ID" -> Just FAGLSFID
+        "NAME" -> Just FAGLSFName
+        _ -> Nothing
+
+instance ToText FloodlightActivityGroupsListSortField where
+    toText = \case
+        FAGLSFID -> "ID"
+        FAGLSFName -> "NAME"
+
+instance FromJSON FloodlightActivityGroupsListSortField where
+    parseJSON = parseJSONText "FloodlightActivityGroupsListSortField"
+
+instance ToJSON FloodlightActivityGroupsListSortField where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data OrdersListSortOrder
+    = OLSOAscending
+      -- ^ @ASCENDING@
+    | OLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable OrdersListSortOrder
+
+instance FromText OrdersListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just OLSOAscending
+        "DESCENDING" -> Just OLSODescending
+        _ -> Nothing
+
+instance ToText OrdersListSortOrder where
+    toText = \case
+        OLSOAscending -> "ASCENDING"
+        OLSODescending -> "DESCENDING"
+
+instance FromJSON OrdersListSortOrder where
+    parseJSON = parseJSONText "OrdersListSortOrder"
+
+instance ToJSON OrdersListSortOrder where
+    toJSON = toJSONText
+
+-- | Profile for this account. This is a read-only field that can be left
+-- blank.
+data AccountAccountProFile
+    = AccountProFileBasic
+      -- ^ @ACCOUNT_PROFILE_BASIC@
+    | AccountProFileStandard
+      -- ^ @ACCOUNT_PROFILE_STANDARD@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountAccountProFile
+
+instance FromText AccountAccountProFile where
+    fromText = \case
+        "ACCOUNT_PROFILE_BASIC" -> Just AccountProFileBasic
+        "ACCOUNT_PROFILE_STANDARD" -> Just AccountProFileStandard
+        _ -> Nothing
+
+instance ToText AccountAccountProFile where
+    toText = \case
+        AccountProFileBasic -> "ACCOUNT_PROFILE_BASIC"
+        AccountProFileStandard -> "ACCOUNT_PROFILE_STANDARD"
+
+instance FromJSON AccountAccountProFile where
+    parseJSON = parseJSONText "AccountAccountProFile"
+
+instance ToJSON AccountAccountProFile where
+    toJSON = toJSONText
+
+-- | Type of this creative.This is a required field. Applicable to all
+-- creative types.
+data CreativeType
+    = CTBrandSafeDefaultInstreamVideo
+      -- ^ @BRAND_SAFE_DEFAULT_INSTREAM_VIDEO@
+    | CTCustomInpage
+      -- ^ @CUSTOM_INPAGE@
+    | CTCustomInterstitial
+      -- ^ @CUSTOM_INTERSTITIAL@
+    | CTEnhancedBanner
+      -- ^ @ENHANCED_BANNER@
+    | CTEnhancedImage
+      -- ^ @ENHANCED_IMAGE@
+    | CTFlashInpage
+      -- ^ @FLASH_INPAGE@
+    | CTHTML5Banner
+      -- ^ @HTML5_BANNER@
+    | CTImage
+      -- ^ @IMAGE@
+    | CTInstreamVideo
+      -- ^ @INSTREAM_VIDEO@
+    | CTInternalRedirect
+      -- ^ @INTERNAL_REDIRECT@
+    | CTInterstitialInternalRedirect
+      -- ^ @INTERSTITIAL_INTERNAL_REDIRECT@
+    | CTRedirect
+      -- ^ @REDIRECT@
+    | CTRichMediaExpanding
+      -- ^ @RICH_MEDIA_EXPANDING@
+    | CTRichMediaImExpand
+      -- ^ @RICH_MEDIA_IM_EXPAND@
+    | CTRichMediaInpage
+      -- ^ @RICH_MEDIA_INPAGE@
+    | CTRichMediaInpageFloating
+      -- ^ @RICH_MEDIA_INPAGE_FLOATING@
+    | CTRichMediaInterstitialFloat
+      -- ^ @RICH_MEDIA_INTERSTITIAL_FLOAT@
+    | CTRichMediaMobileInApp
+      -- ^ @RICH_MEDIA_MOBILE_IN_APP@
+    | CTRichMediaMultiFloating
+      -- ^ @RICH_MEDIA_MULTI_FLOATING@
+    | CTRichMediaPeelDown
+      -- ^ @RICH_MEDIA_PEEL_DOWN@
+    | CTTrackingText
+      -- ^ @TRACKING_TEXT@
+    | CTVastRedirect
+      -- ^ @VAST_REDIRECT@
+    | CTVpaidLinear
+      -- ^ @VPAID_LINEAR@
+    | CTVpaidNonLinear
+      -- ^ @VPAID_NON_LINEAR@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeType
+
+instance FromText CreativeType where
+    fromText = \case
+        "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO" -> Just CTBrandSafeDefaultInstreamVideo
+        "CUSTOM_INPAGE" -> Just CTCustomInpage
+        "CUSTOM_INTERSTITIAL" -> Just CTCustomInterstitial
+        "ENHANCED_BANNER" -> Just CTEnhancedBanner
+        "ENHANCED_IMAGE" -> Just CTEnhancedImage
+        "FLASH_INPAGE" -> Just CTFlashInpage
+        "HTML5_BANNER" -> Just CTHTML5Banner
+        "IMAGE" -> Just CTImage
+        "INSTREAM_VIDEO" -> Just CTInstreamVideo
+        "INTERNAL_REDIRECT" -> Just CTInternalRedirect
+        "INTERSTITIAL_INTERNAL_REDIRECT" -> Just CTInterstitialInternalRedirect
+        "REDIRECT" -> Just CTRedirect
+        "RICH_MEDIA_EXPANDING" -> Just CTRichMediaExpanding
+        "RICH_MEDIA_IM_EXPAND" -> Just CTRichMediaImExpand
+        "RICH_MEDIA_INPAGE" -> Just CTRichMediaInpage
+        "RICH_MEDIA_INPAGE_FLOATING" -> Just CTRichMediaInpageFloating
+        "RICH_MEDIA_INTERSTITIAL_FLOAT" -> Just CTRichMediaInterstitialFloat
+        "RICH_MEDIA_MOBILE_IN_APP" -> Just CTRichMediaMobileInApp
+        "RICH_MEDIA_MULTI_FLOATING" -> Just CTRichMediaMultiFloating
+        "RICH_MEDIA_PEEL_DOWN" -> Just CTRichMediaPeelDown
+        "TRACKING_TEXT" -> Just CTTrackingText
+        "VAST_REDIRECT" -> Just CTVastRedirect
+        "VPAID_LINEAR" -> Just CTVpaidLinear
+        "VPAID_NON_LINEAR" -> Just CTVpaidNonLinear
+        _ -> Nothing
+
+instance ToText CreativeType where
+    toText = \case
+        CTBrandSafeDefaultInstreamVideo -> "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO"
+        CTCustomInpage -> "CUSTOM_INPAGE"
+        CTCustomInterstitial -> "CUSTOM_INTERSTITIAL"
+        CTEnhancedBanner -> "ENHANCED_BANNER"
+        CTEnhancedImage -> "ENHANCED_IMAGE"
+        CTFlashInpage -> "FLASH_INPAGE"
+        CTHTML5Banner -> "HTML5_BANNER"
+        CTImage -> "IMAGE"
+        CTInstreamVideo -> "INSTREAM_VIDEO"
+        CTInternalRedirect -> "INTERNAL_REDIRECT"
+        CTInterstitialInternalRedirect -> "INTERSTITIAL_INTERNAL_REDIRECT"
+        CTRedirect -> "REDIRECT"
+        CTRichMediaExpanding -> "RICH_MEDIA_EXPANDING"
+        CTRichMediaImExpand -> "RICH_MEDIA_IM_EXPAND"
+        CTRichMediaInpage -> "RICH_MEDIA_INPAGE"
+        CTRichMediaInpageFloating -> "RICH_MEDIA_INPAGE_FLOATING"
+        CTRichMediaInterstitialFloat -> "RICH_MEDIA_INTERSTITIAL_FLOAT"
+        CTRichMediaMobileInApp -> "RICH_MEDIA_MOBILE_IN_APP"
+        CTRichMediaMultiFloating -> "RICH_MEDIA_MULTI_FLOATING"
+        CTRichMediaPeelDown -> "RICH_MEDIA_PEEL_DOWN"
+        CTTrackingText -> "TRACKING_TEXT"
+        CTVastRedirect -> "VAST_REDIRECT"
+        CTVpaidLinear -> "VPAID_LINEAR"
+        CTVpaidNonLinear -> "VPAID_NON_LINEAR"
+
+instance FromJSON CreativeType where
+    parseJSON = parseJSONText "CreativeType"
+
+instance ToJSON CreativeType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is \'DESCENDING\'.
+data FilesListSortOrder
+    = FLSOAscending
+      -- ^ @ASCENDING@
+      -- Ascending order.
+    | FLSODescending
+      -- ^ @DESCENDING@
+      -- Descending order.
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FilesListSortOrder
+
+instance FromText FilesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just FLSOAscending
+        "DESCENDING" -> Just FLSODescending
+        _ -> Nothing
+
+instance ToText FilesListSortOrder where
+    toText = \case
+        FLSOAscending -> "ASCENDING"
+        FLSODescending -> "DESCENDING"
+
+instance FromJSON FilesListSortOrder where
+    parseJSON = parseJSONText "FilesListSortOrder"
+
+instance ToJSON FilesListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data AdvertiserGroupsListSortField
+    = AGLSFID
+      -- ^ @ID@
+    | AGLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdvertiserGroupsListSortField
+
+instance FromText AdvertiserGroupsListSortField where
+    fromText = \case
+        "ID" -> Just AGLSFID
+        "NAME" -> Just AGLSFName
+        _ -> Nothing
+
+instance ToText AdvertiserGroupsListSortField where
+    toText = \case
+        AGLSFID -> "ID"
+        AGLSFName -> "NAME"
+
+instance FromJSON AdvertiserGroupsListSortField where
+    parseJSON = parseJSONText "AdvertiserGroupsListSortField"
+
+instance ToJSON AdvertiserGroupsListSortField where
+    toJSON = toJSONText
+
+-- | Type of browser window for which the backup image of the flash creative
+-- can be displayed.
+data TargetWindowTargetWindowOption
+    = CurrentWindow
+      -- ^ @CURRENT_WINDOW@
+    | Custom
+      -- ^ @CUSTOM@
+    | NewWindow
+      -- ^ @NEW_WINDOW@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable TargetWindowTargetWindowOption
+
+instance FromText TargetWindowTargetWindowOption where
+    fromText = \case
+        "CURRENT_WINDOW" -> Just CurrentWindow
+        "CUSTOM" -> Just Custom
+        "NEW_WINDOW" -> Just NewWindow
+        _ -> Nothing
+
+instance ToText TargetWindowTargetWindowOption where
+    toText = \case
+        CurrentWindow -> "CURRENT_WINDOW"
+        Custom -> "CUSTOM"
+        NewWindow -> "NEW_WINDOW"
+
+instance FromJSON TargetWindowTargetWindowOption where
+    parseJSON = parseJSONText "TargetWindowTargetWindowOption"
+
+instance ToJSON TargetWindowTargetWindowOption where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data DirectorySiteContactsListSortField
+    = DSCLSFID
+      -- ^ @ID@
+    | DSCLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DirectorySiteContactsListSortField
+
+instance FromText DirectorySiteContactsListSortField where
+    fromText = \case
+        "ID" -> Just DSCLSFID
+        "NAME" -> Just DSCLSFName
+        _ -> Nothing
+
+instance ToText DirectorySiteContactsListSortField where
+    toText = \case
+        DSCLSFID -> "ID"
+        DSCLSFName -> "NAME"
+
+instance FromJSON DirectorySiteContactsListSortField where
+    parseJSON = parseJSONText "DirectorySiteContactsListSortField"
+
+instance ToJSON DirectorySiteContactsListSortField where
+    toJSON = toJSONText
+
+-- | Select only placements with these pricing types.
+data PlacementsListPricingTypes
+    = PLPTPricingTypeCpa
+      -- ^ @PRICING_TYPE_CPA@
+    | PLPTPricingTypeCpc
+      -- ^ @PRICING_TYPE_CPC@
+    | PLPTPricingTypeCpm
+      -- ^ @PRICING_TYPE_CPM@
+    | PLPTPricingTypeFlatRateClicks
+      -- ^ @PRICING_TYPE_FLAT_RATE_CLICKS@
+    | PLPTPricingTypeFlatRateImpressions
+      -- ^ @PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementsListPricingTypes
+
+instance FromText PlacementsListPricingTypes where
+    fromText = \case
+        "PRICING_TYPE_CPA" -> Just PLPTPricingTypeCpa
+        "PRICING_TYPE_CPC" -> Just PLPTPricingTypeCpc
+        "PRICING_TYPE_CPM" -> Just PLPTPricingTypeCpm
+        "PRICING_TYPE_FLAT_RATE_CLICKS" -> Just PLPTPricingTypeFlatRateClicks
+        "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Just PLPTPricingTypeFlatRateImpressions
+        _ -> Nothing
+
+instance ToText PlacementsListPricingTypes where
+    toText = \case
+        PLPTPricingTypeCpa -> "PRICING_TYPE_CPA"
+        PLPTPricingTypeCpc -> "PRICING_TYPE_CPC"
+        PLPTPricingTypeCpm -> "PRICING_TYPE_CPM"
+        PLPTPricingTypeFlatRateClicks -> "PRICING_TYPE_FLAT_RATE_CLICKS"
+        PLPTPricingTypeFlatRateImpressions -> "PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
+
+instance FromJSON PlacementsListPricingTypes where
+    parseJSON = parseJSONText "PlacementsListPricingTypes"
+
+instance ToJSON PlacementsListPricingTypes where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data EventTagsListSortOrder
+    = ETLSOAscending
+      -- ^ @ASCENDING@
+    | ETLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable EventTagsListSortOrder
+
+instance FromText EventTagsListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just ETLSOAscending
+        "DESCENDING" -> Just ETLSODescending
+        _ -> Nothing
+
+instance ToText EventTagsListSortOrder where
+    toText = \case
+        ETLSOAscending -> "ASCENDING"
+        ETLSODescending -> "DESCENDING"
+
+instance FromJSON EventTagsListSortOrder where
+    parseJSON = parseJSONText "EventTagsListSortOrder"
+
+instance ToJSON EventTagsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data DirectorySitesListSortField
+    = DSLSFID
+      -- ^ @ID@
+    | DSLSFName
+      -- ^ @NAME@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DirectorySitesListSortField
+
+instance FromText DirectorySitesListSortField where
+    fromText = \case
+        "ID" -> Just DSLSFID
+        "NAME" -> Just DSLSFName
+        _ -> Nothing
+
+instance ToText DirectorySitesListSortField where
+    toText = \case
+        DSLSFID -> "ID"
+        DSLSFName -> "NAME"
+
+instance FromJSON DirectorySitesListSortField where
+    parseJSON = parseJSONText "DirectorySitesListSortField"
+
+instance ToJSON DirectorySitesListSortField where
+    toJSON = toJSONText
+
+-- | The dimension option.
+data ReportCrossDimensionReachCriteriaDimension
+    = RCDRCDAdvertiser
+      -- ^ @ADVERTISER@
+    | RCDRCDCampaign
+      -- ^ @CAMPAIGN@
+    | RCDRCDSiteByAdvertiser
+      -- ^ @SITE_BY_ADVERTISER@
+    | RCDRCDSiteByCampaign
+      -- ^ @SITE_BY_CAMPAIGN@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportCrossDimensionReachCriteriaDimension
+
+instance FromText ReportCrossDimensionReachCriteriaDimension where
+    fromText = \case
+        "ADVERTISER" -> Just RCDRCDAdvertiser
+        "CAMPAIGN" -> Just RCDRCDCampaign
+        "SITE_BY_ADVERTISER" -> Just RCDRCDSiteByAdvertiser
+        "SITE_BY_CAMPAIGN" -> Just RCDRCDSiteByCampaign
+        _ -> Nothing
+
+instance ToText ReportCrossDimensionReachCriteriaDimension where
+    toText = \case
+        RCDRCDAdvertiser -> "ADVERTISER"
+        RCDRCDCampaign -> "CAMPAIGN"
+        RCDRCDSiteByAdvertiser -> "SITE_BY_ADVERTISER"
+        RCDRCDSiteByCampaign -> "SITE_BY_CAMPAIGN"
+
+instance FromJSON ReportCrossDimensionReachCriteriaDimension where
+    parseJSON = parseJSONText "ReportCrossDimensionReachCriteriaDimension"
+
+instance ToJSON ReportCrossDimensionReachCriteriaDimension where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data SitesListSortOrder
+    = SLSOAscending
+      -- ^ @ASCENDING@
+    | SLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable SitesListSortOrder
+
+instance FromText SitesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just SLSOAscending
+        "DESCENDING" -> Just SLSODescending
+        _ -> Nothing
+
+instance ToText SitesListSortOrder where
+    toText = \case
+        SLSOAscending -> "ASCENDING"
+        SLSODescending -> "DESCENDING"
+
+instance FromJSON SitesListSortOrder where
+    parseJSON = parseJSONText "SitesListSortOrder"
+
+instance ToJSON SitesListSortOrder where
+    toJSON = toJSONText
+
+data PlacementTagFormatsItem
+    = PTFIPlacementTagClickCommands
+      -- ^ @PLACEMENT_TAG_CLICK_COMMANDS@
+    | PTFIPlacementTagIframeIlayer
+      -- ^ @PLACEMENT_TAG_IFRAME_ILAYER@
+    | PTFIPlacementTagIframeJavascript
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT@
+    | PTFIPlacementTagIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY@
+    | PTFIPlacementTagInstreamVideoPrefetch
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH@
+    | PTFIPlacementTagInstreamVideoPrefetchVast3
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3@
+    | PTFIPlacementTagInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERNAL_REDIRECT@
+    | PTFIPlacementTagInterstitialIframeJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT@
+    | PTFIPlacementTagInterstitialIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY@
+    | PTFIPlacementTagInterstitialInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT@
+    | PTFIPlacementTagInterstitialJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT@
+    | PTFIPlacementTagInterstitialJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY@
+    | PTFIPlacementTagJavascript
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT@
+    | PTFIPlacementTagJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT_LEGACY@
+    | PTFIPlacementTagStandard
+      -- ^ @PLACEMENT_TAG_STANDARD@
+    | PTFIPlacementTagTracking
+      -- ^ @PLACEMENT_TAG_TRACKING@
+    | PTFIPlacementTagTrackingIframe
+      -- ^ @PLACEMENT_TAG_TRACKING_IFRAME@
+    | PTFIPlacementTagTrackingJavascript
+      -- ^ @PLACEMENT_TAG_TRACKING_JAVASCRIPT@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PlacementTagFormatsItem
+
+instance FromText PlacementTagFormatsItem where
+    fromText = \case
+        "PLACEMENT_TAG_CLICK_COMMANDS" -> Just PTFIPlacementTagClickCommands
+        "PLACEMENT_TAG_IFRAME_ILAYER" -> Just PTFIPlacementTagIframeIlayer
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT" -> Just PTFIPlacementTagIframeJavascript
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY" -> Just PTFIPlacementTagIframeJavascriptLegacy
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH" -> Just PTFIPlacementTagInstreamVideoPrefetch
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3" -> Just PTFIPlacementTagInstreamVideoPrefetchVast3
+        "PLACEMENT_TAG_INTERNAL_REDIRECT" -> Just PTFIPlacementTagInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT" -> Just PTFIPlacementTagInterstitialIframeJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY" -> Just PTFIPlacementTagInterstitialIframeJavascriptLegacy
+        "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT" -> Just PTFIPlacementTagInterstitialInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT" -> Just PTFIPlacementTagInterstitialJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY" -> Just PTFIPlacementTagInterstitialJavascriptLegacy
+        "PLACEMENT_TAG_JAVASCRIPT" -> Just PTFIPlacementTagJavascript
+        "PLACEMENT_TAG_JAVASCRIPT_LEGACY" -> Just PTFIPlacementTagJavascriptLegacy
+        "PLACEMENT_TAG_STANDARD" -> Just PTFIPlacementTagStandard
+        "PLACEMENT_TAG_TRACKING" -> Just PTFIPlacementTagTracking
+        "PLACEMENT_TAG_TRACKING_IFRAME" -> Just PTFIPlacementTagTrackingIframe
+        "PLACEMENT_TAG_TRACKING_JAVASCRIPT" -> Just PTFIPlacementTagTrackingJavascript
+        _ -> Nothing
+
+instance ToText PlacementTagFormatsItem where
+    toText = \case
+        PTFIPlacementTagClickCommands -> "PLACEMENT_TAG_CLICK_COMMANDS"
+        PTFIPlacementTagIframeIlayer -> "PLACEMENT_TAG_IFRAME_ILAYER"
+        PTFIPlacementTagIframeJavascript -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+        PTFIPlacementTagIframeJavascriptLegacy -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY"
+        PTFIPlacementTagInstreamVideoPrefetch -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        PTFIPlacementTagInstreamVideoPrefetchVast3 -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        PTFIPlacementTagInternalRedirect -> "PLACEMENT_TAG_INTERNAL_REDIRECT"
+        PTFIPlacementTagInterstitialIframeJavascript -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+        PTFIPlacementTagInterstitialIframeJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY"
+        PTFIPlacementTagInterstitialInternalRedirect -> "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+        PTFIPlacementTagInterstitialJavascript -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+        PTFIPlacementTagInterstitialJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY"
+        PTFIPlacementTagJavascript -> "PLACEMENT_TAG_JAVASCRIPT"
+        PTFIPlacementTagJavascriptLegacy -> "PLACEMENT_TAG_JAVASCRIPT_LEGACY"
+        PTFIPlacementTagStandard -> "PLACEMENT_TAG_STANDARD"
+        PTFIPlacementTagTracking -> "PLACEMENT_TAG_TRACKING"
+        PTFIPlacementTagTrackingIframe -> "PLACEMENT_TAG_TRACKING_IFRAME"
+        PTFIPlacementTagTrackingJavascript -> "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+
+instance FromJSON PlacementTagFormatsItem where
+    parseJSON = parseJSONText "PlacementTagFormatsItem"
+
+instance ToJSON PlacementTagFormatsItem where
+    toJSON = toJSONText
+
+-- | The type of the report.
+data ReportType
+    = RTCrossDimensionReach
+      -- ^ @CROSS_DIMENSION_REACH@
+    | RTFloodlight
+      -- ^ @FLOODLIGHT@
+    | RTPathToConversion
+      -- ^ @PATH_TO_CONVERSION@
+    | RTReach
+      -- ^ @REACH@
+    | RTStandard
+      -- ^ @STANDARD@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportType
+
+instance FromText ReportType where
+    fromText = \case
+        "CROSS_DIMENSION_REACH" -> Just RTCrossDimensionReach
+        "FLOODLIGHT" -> Just RTFloodlight
+        "PATH_TO_CONVERSION" -> Just RTPathToConversion
+        "REACH" -> Just RTReach
+        "STANDARD" -> Just RTStandard
+        _ -> Nothing
+
+instance ToText ReportType where
+    toText = \case
+        RTCrossDimensionReach -> "CROSS_DIMENSION_REACH"
+        RTFloodlight -> "FLOODLIGHT"
+        RTPathToConversion -> "PATH_TO_CONVERSION"
+        RTReach -> "REACH"
+        RTStandard -> "STANDARD"
+
+instance FromJSON ReportType where
+    parseJSON = parseJSONText "ReportType"
+
+instance ToJSON ReportType where
+    toJSON = toJSONText
+
+data CreativeAssetMetadataWarnedValidationRulesItem
+    = ADMobReferenced
+      -- ^ @ADMOB_REFERENCED@
+    | AssetFormatUnsupportedDcm
+      -- ^ @ASSET_FORMAT_UNSUPPORTED_DCM@
+    | AssetInvalid
+      -- ^ @ASSET_INVALID@
+    | ClickTagInvalid
+      -- ^ @CLICK_TAG_INVALID@
+    | ClickTagMissing
+      -- ^ @CLICK_TAG_MISSING@
+    | ClickTagMoreThanOne
+      -- ^ @CLICK_TAG_MORE_THAN_ONE@
+    | ClickTagNonTopLevel
+      -- ^ @CLICK_TAG_NON_TOP_LEVEL@
+    | ComponentUnsupportedDcm
+      -- ^ @COMPONENT_UNSUPPORTED_DCM@
+    | EnablerUnsupportedMethodDcm
+      -- ^ @ENABLER_UNSUPPORTED_METHOD_DCM@
+    | ExternalFileReferenced
+      -- ^ @EXTERNAL_FILE_REFERENCED@
+    | FileDetailEmpty
+      -- ^ @FILE_DETAIL_EMPTY@
+    | FileTypeInvalid
+      -- ^ @FILE_TYPE_INVALID@
+    | GwdPropertiesInvalid
+      -- ^ @GWD_PROPERTIES_INVALID@
+    | HTML5FeatureUnsupported
+      -- ^ @HTML5_FEATURE_UNSUPPORTED@
+    | LinkedFileNotFound
+      -- ^ @LINKED_FILE_NOT_FOUND@
+    | MaxFlashVersion11
+      -- ^ @MAX_FLASH_VERSION_11@
+    | MraidReferenced
+      -- ^ @MRAID_REFERENCED@
+    | NotSSLCompliant
+      -- ^ @NOT_SSL_COMPLIANT@
+    | OrphanedAsset
+      -- ^ @ORPHANED_ASSET@
+    | PrimaryHTMLMissing
+      -- ^ @PRIMARY_HTML_MISSING@
+    | ZipInvalid
+      -- ^ @ZIP_INVALID@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetMetadataWarnedValidationRulesItem
+
+instance FromText CreativeAssetMetadataWarnedValidationRulesItem where
+    fromText = \case
+        "ADMOB_REFERENCED" -> Just ADMobReferenced
+        "ASSET_FORMAT_UNSUPPORTED_DCM" -> Just AssetFormatUnsupportedDcm
+        "ASSET_INVALID" -> Just AssetInvalid
+        "CLICK_TAG_INVALID" -> Just ClickTagInvalid
+        "CLICK_TAG_MISSING" -> Just ClickTagMissing
+        "CLICK_TAG_MORE_THAN_ONE" -> Just ClickTagMoreThanOne
+        "CLICK_TAG_NON_TOP_LEVEL" -> Just ClickTagNonTopLevel
+        "COMPONENT_UNSUPPORTED_DCM" -> Just ComponentUnsupportedDcm
+        "ENABLER_UNSUPPORTED_METHOD_DCM" -> Just EnablerUnsupportedMethodDcm
+        "EXTERNAL_FILE_REFERENCED" -> Just ExternalFileReferenced
+        "FILE_DETAIL_EMPTY" -> Just FileDetailEmpty
+        "FILE_TYPE_INVALID" -> Just FileTypeInvalid
+        "GWD_PROPERTIES_INVALID" -> Just GwdPropertiesInvalid
+        "HTML5_FEATURE_UNSUPPORTED" -> Just HTML5FeatureUnsupported
+        "LINKED_FILE_NOT_FOUND" -> Just LinkedFileNotFound
+        "MAX_FLASH_VERSION_11" -> Just MaxFlashVersion11
+        "MRAID_REFERENCED" -> Just MraidReferenced
+        "NOT_SSL_COMPLIANT" -> Just NotSSLCompliant
+        "ORPHANED_ASSET" -> Just OrphanedAsset
+        "PRIMARY_HTML_MISSING" -> Just PrimaryHTMLMissing
+        "ZIP_INVALID" -> Just ZipInvalid
+        _ -> Nothing
+
+instance ToText CreativeAssetMetadataWarnedValidationRulesItem where
+    toText = \case
+        ADMobReferenced -> "ADMOB_REFERENCED"
+        AssetFormatUnsupportedDcm -> "ASSET_FORMAT_UNSUPPORTED_DCM"
+        AssetInvalid -> "ASSET_INVALID"
+        ClickTagInvalid -> "CLICK_TAG_INVALID"
+        ClickTagMissing -> "CLICK_TAG_MISSING"
+        ClickTagMoreThanOne -> "CLICK_TAG_MORE_THAN_ONE"
+        ClickTagNonTopLevel -> "CLICK_TAG_NON_TOP_LEVEL"
+        ComponentUnsupportedDcm -> "COMPONENT_UNSUPPORTED_DCM"
+        EnablerUnsupportedMethodDcm -> "ENABLER_UNSUPPORTED_METHOD_DCM"
+        ExternalFileReferenced -> "EXTERNAL_FILE_REFERENCED"
+        FileDetailEmpty -> "FILE_DETAIL_EMPTY"
+        FileTypeInvalid -> "FILE_TYPE_INVALID"
+        GwdPropertiesInvalid -> "GWD_PROPERTIES_INVALID"
+        HTML5FeatureUnsupported -> "HTML5_FEATURE_UNSUPPORTED"
+        LinkedFileNotFound -> "LINKED_FILE_NOT_FOUND"
+        MaxFlashVersion11 -> "MAX_FLASH_VERSION_11"
+        MraidReferenced -> "MRAID_REFERENCED"
+        NotSSLCompliant -> "NOT_SSL_COMPLIANT"
+        OrphanedAsset -> "ORPHANED_ASSET"
+        PrimaryHTMLMissing -> "PRIMARY_HTML_MISSING"
+        ZipInvalid -> "ZIP_INVALID"
+
+instance FromJSON CreativeAssetMetadataWarnedValidationRulesItem where
+    parseJSON = parseJSONText "CreativeAssetMetadataWarnedValidationRulesItem"
+
+instance ToJSON CreativeAssetMetadataWarnedValidationRulesItem where
+    toJSON = toJSONText
+
+-- | Payment source type of this ad slot.
+data AdSlotPaymentSourceType
+    = PlanningPaymentSourceTypeAgencyPaid
+      -- ^ @PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID@
+    | PlanningPaymentSourceTypePublisherPaid
+      -- ^ @PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdSlotPaymentSourceType
+
+instance FromText AdSlotPaymentSourceType where
+    fromText = \case
+        "PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID" -> Just PlanningPaymentSourceTypeAgencyPaid
+        "PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID" -> Just PlanningPaymentSourceTypePublisherPaid
+        _ -> Nothing
+
+instance ToText AdSlotPaymentSourceType where
+    toText = \case
+        PlanningPaymentSourceTypeAgencyPaid -> "PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID"
+        PlanningPaymentSourceTypePublisherPaid -> "PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID"
+
+instance FromJSON AdSlotPaymentSourceType where
+    parseJSON = parseJSONText "AdSlotPaymentSourceType"
+
+instance ToJSON AdSlotPaymentSourceType where
+    toJSON = toJSONText
+
+data AccountPermissionAccountProFilesItem
+    = APAPFIAccountProFileBasic
+      -- ^ @ACCOUNT_PROFILE_BASIC@
+    | APAPFIAccountProFileStandard
+      -- ^ @ACCOUNT_PROFILE_STANDARD@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AccountPermissionAccountProFilesItem
+
+instance FromText AccountPermissionAccountProFilesItem where
+    fromText = \case
+        "ACCOUNT_PROFILE_BASIC" -> Just APAPFIAccountProFileBasic
+        "ACCOUNT_PROFILE_STANDARD" -> Just APAPFIAccountProFileStandard
+        _ -> Nothing
+
+instance ToText AccountPermissionAccountProFilesItem where
+    toText = \case
+        APAPFIAccountProFileBasic -> "ACCOUNT_PROFILE_BASIC"
+        APAPFIAccountProFileStandard -> "ACCOUNT_PROFILE_STANDARD"
+
+instance FromJSON AccountPermissionAccountProFilesItem where
+    parseJSON = parseJSONText "AccountPermissionAccountProFilesItem"
+
+instance ToJSON AccountPermissionAccountProFilesItem where
+    toJSON = toJSONText
+
+-- | Type of the event. This is a read-only field.
+data CreativeCustomEventAdvertiserCustomEventType
+    = AdvertiserEventCounter
+      -- ^ @ADVERTISER_EVENT_COUNTER@
+    | AdvertiserEventExit
+      -- ^ @ADVERTISER_EVENT_EXIT@
+    | AdvertiserEventTimer
+      -- ^ @ADVERTISER_EVENT_TIMER@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeCustomEventAdvertiserCustomEventType
+
+instance FromText CreativeCustomEventAdvertiserCustomEventType where
+    fromText = \case
+        "ADVERTISER_EVENT_COUNTER" -> Just AdvertiserEventCounter
+        "ADVERTISER_EVENT_EXIT" -> Just AdvertiserEventExit
+        "ADVERTISER_EVENT_TIMER" -> Just AdvertiserEventTimer
+        _ -> Nothing
+
+instance ToText CreativeCustomEventAdvertiserCustomEventType where
+    toText = \case
+        AdvertiserEventCounter -> "ADVERTISER_EVENT_COUNTER"
+        AdvertiserEventExit -> "ADVERTISER_EVENT_EXIT"
+        AdvertiserEventTimer -> "ADVERTISER_EVENT_TIMER"
+
+instance FromJSON CreativeCustomEventAdvertiserCustomEventType where
+    parseJSON = parseJSONText "CreativeCustomEventAdvertiserCustomEventType"
+
+instance ToJSON CreativeCustomEventAdvertiserCustomEventType where
+    toJSON = toJSONText
+
+-- | Select only change logs with the specified object type.
+data ChangeLogsListObjectType
+    = ObjectAccount
+      -- ^ @OBJECT_ACCOUNT@
+    | ObjectAccountBillingFeature
+      -- ^ @OBJECT_ACCOUNT_BILLING_FEATURE@
+    | ObjectAd
+      -- ^ @OBJECT_AD@
+    | ObjectAdvertiser
+      -- ^ @OBJECT_ADVERTISER@
+    | ObjectAdvertiserGroup
+      -- ^ @OBJECT_ADVERTISER_GROUP@
+    | ObjectBillingAccountGroup
+      -- ^ @OBJECT_BILLING_ACCOUNT_GROUP@
+    | ObjectBillingFeature
+      -- ^ @OBJECT_BILLING_FEATURE@
+    | ObjectBillingMinimumFee
+      -- ^ @OBJECT_BILLING_MINIMUM_FEE@
+    | ObjectBillingProFile
+      -- ^ @OBJECT_BILLING_PROFILE@
+    | ObjectCampaign
+      -- ^ @OBJECT_CAMPAIGN@
+    | ObjectContentCategory
+      -- ^ @OBJECT_CONTENT_CATEGORY@
+    | ObjectCreative
+      -- ^ @OBJECT_CREATIVE@
+    | ObjectCreativeAsset
+      -- ^ @OBJECT_CREATIVE_ASSET@
+    | ObjectCreativeBundle
+      -- ^ @OBJECT_CREATIVE_BUNDLE@
+    | ObjectCreativeField
+      -- ^ @OBJECT_CREATIVE_FIELD@
+    | ObjectCreativeGroup
+      -- ^ @OBJECT_CREATIVE_GROUP@
+    | ObjectDfaSite
+      -- ^ @OBJECT_DFA_SITE@
+    | ObjectEventTag
+      -- ^ @OBJECT_EVENT_TAG@
+    | ObjectFloodlightActivityGroup
+      -- ^ @OBJECT_FLOODLIGHT_ACTIVITY_GROUP@
+    | ObjectFloodlightActvity
+      -- ^ @OBJECT_FLOODLIGHT_ACTVITY@
+    | ObjectFloodlightConfiguration
+      -- ^ @OBJECT_FLOODLIGHT_CONFIGURATION@
+    | ObjectInstreamCreative
+      -- ^ @OBJECT_INSTREAM_CREATIVE@
+    | ObjectLandingPage
+      -- ^ @OBJECT_LANDING_PAGE@
+    | ObjectMediaOrder
+      -- ^ @OBJECT_MEDIA_ORDER@
+    | ObjectPlacement
+      -- ^ @OBJECT_PLACEMENT@
+    | ObjectPlacementStrategy
+      -- ^ @OBJECT_PLACEMENT_STRATEGY@
+    | ObjectProvidedListClient
+      -- ^ @OBJECT_PROVIDED_LIST_CLIENT@
+    | ObjectRateCard
+      -- ^ @OBJECT_RATE_CARD@
+    | ObjectRemarketingList
+      -- ^ @OBJECT_REMARKETING_LIST@
+    | ObjectRichmediaCreative
+      -- ^ @OBJECT_RICHMEDIA_CREATIVE@
+    | ObjectSdSite
+      -- ^ @OBJECT_SD_SITE@
+    | ObjectSize
+      -- ^ @OBJECT_SIZE@
+    | ObjectSubAccount
+      -- ^ @OBJECT_SUBACCOUNT@
+    | ObjectUserProFile
+      -- ^ @OBJECT_USER_PROFILE@
+    | ObjectUserProFileFilter
+      -- ^ @OBJECT_USER_PROFILE_FILTER@
+    | ObjectUserRole
+      -- ^ @OBJECT_USER_ROLE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ChangeLogsListObjectType
+
+instance FromText ChangeLogsListObjectType where
+    fromText = \case
+        "OBJECT_ACCOUNT" -> Just ObjectAccount
+        "OBJECT_ACCOUNT_BILLING_FEATURE" -> Just ObjectAccountBillingFeature
+        "OBJECT_AD" -> Just ObjectAd
+        "OBJECT_ADVERTISER" -> Just ObjectAdvertiser
+        "OBJECT_ADVERTISER_GROUP" -> Just ObjectAdvertiserGroup
+        "OBJECT_BILLING_ACCOUNT_GROUP" -> Just ObjectBillingAccountGroup
+        "OBJECT_BILLING_FEATURE" -> Just ObjectBillingFeature
+        "OBJECT_BILLING_MINIMUM_FEE" -> Just ObjectBillingMinimumFee
+        "OBJECT_BILLING_PROFILE" -> Just ObjectBillingProFile
+        "OBJECT_CAMPAIGN" -> Just ObjectCampaign
+        "OBJECT_CONTENT_CATEGORY" -> Just ObjectContentCategory
+        "OBJECT_CREATIVE" -> Just ObjectCreative
+        "OBJECT_CREATIVE_ASSET" -> Just ObjectCreativeAsset
+        "OBJECT_CREATIVE_BUNDLE" -> Just ObjectCreativeBundle
+        "OBJECT_CREATIVE_FIELD" -> Just ObjectCreativeField
+        "OBJECT_CREATIVE_GROUP" -> Just ObjectCreativeGroup
+        "OBJECT_DFA_SITE" -> Just ObjectDfaSite
+        "OBJECT_EVENT_TAG" -> Just ObjectEventTag
+        "OBJECT_FLOODLIGHT_ACTIVITY_GROUP" -> Just ObjectFloodlightActivityGroup
+        "OBJECT_FLOODLIGHT_ACTVITY" -> Just ObjectFloodlightActvity
+        "OBJECT_FLOODLIGHT_CONFIGURATION" -> Just ObjectFloodlightConfiguration
+        "OBJECT_INSTREAM_CREATIVE" -> Just ObjectInstreamCreative
+        "OBJECT_LANDING_PAGE" -> Just ObjectLandingPage
+        "OBJECT_MEDIA_ORDER" -> Just ObjectMediaOrder
+        "OBJECT_PLACEMENT" -> Just ObjectPlacement
+        "OBJECT_PLACEMENT_STRATEGY" -> Just ObjectPlacementStrategy
+        "OBJECT_PROVIDED_LIST_CLIENT" -> Just ObjectProvidedListClient
+        "OBJECT_RATE_CARD" -> Just ObjectRateCard
+        "OBJECT_REMARKETING_LIST" -> Just ObjectRemarketingList
+        "OBJECT_RICHMEDIA_CREATIVE" -> Just ObjectRichmediaCreative
+        "OBJECT_SD_SITE" -> Just ObjectSdSite
+        "OBJECT_SIZE" -> Just ObjectSize
+        "OBJECT_SUBACCOUNT" -> Just ObjectSubAccount
+        "OBJECT_USER_PROFILE" -> Just ObjectUserProFile
+        "OBJECT_USER_PROFILE_FILTER" -> Just ObjectUserProFileFilter
+        "OBJECT_USER_ROLE" -> Just ObjectUserRole
+        _ -> Nothing
+
+instance ToText ChangeLogsListObjectType where
+    toText = \case
+        ObjectAccount -> "OBJECT_ACCOUNT"
+        ObjectAccountBillingFeature -> "OBJECT_ACCOUNT_BILLING_FEATURE"
+        ObjectAd -> "OBJECT_AD"
+        ObjectAdvertiser -> "OBJECT_ADVERTISER"
+        ObjectAdvertiserGroup -> "OBJECT_ADVERTISER_GROUP"
+        ObjectBillingAccountGroup -> "OBJECT_BILLING_ACCOUNT_GROUP"
+        ObjectBillingFeature -> "OBJECT_BILLING_FEATURE"
+        ObjectBillingMinimumFee -> "OBJECT_BILLING_MINIMUM_FEE"
+        ObjectBillingProFile -> "OBJECT_BILLING_PROFILE"
+        ObjectCampaign -> "OBJECT_CAMPAIGN"
+        ObjectContentCategory -> "OBJECT_CONTENT_CATEGORY"
+        ObjectCreative -> "OBJECT_CREATIVE"
+        ObjectCreativeAsset -> "OBJECT_CREATIVE_ASSET"
+        ObjectCreativeBundle -> "OBJECT_CREATIVE_BUNDLE"
+        ObjectCreativeField -> "OBJECT_CREATIVE_FIELD"
+        ObjectCreativeGroup -> "OBJECT_CREATIVE_GROUP"
+        ObjectDfaSite -> "OBJECT_DFA_SITE"
+        ObjectEventTag -> "OBJECT_EVENT_TAG"
+        ObjectFloodlightActivityGroup -> "OBJECT_FLOODLIGHT_ACTIVITY_GROUP"
+        ObjectFloodlightActvity -> "OBJECT_FLOODLIGHT_ACTVITY"
+        ObjectFloodlightConfiguration -> "OBJECT_FLOODLIGHT_CONFIGURATION"
+        ObjectInstreamCreative -> "OBJECT_INSTREAM_CREATIVE"
+        ObjectLandingPage -> "OBJECT_LANDING_PAGE"
+        ObjectMediaOrder -> "OBJECT_MEDIA_ORDER"
+        ObjectPlacement -> "OBJECT_PLACEMENT"
+        ObjectPlacementStrategy -> "OBJECT_PLACEMENT_STRATEGY"
+        ObjectProvidedListClient -> "OBJECT_PROVIDED_LIST_CLIENT"
+        ObjectRateCard -> "OBJECT_RATE_CARD"
+        ObjectRemarketingList -> "OBJECT_REMARKETING_LIST"
+        ObjectRichmediaCreative -> "OBJECT_RICHMEDIA_CREATIVE"
+        ObjectSdSite -> "OBJECT_SD_SITE"
+        ObjectSize -> "OBJECT_SIZE"
+        ObjectSubAccount -> "OBJECT_SUBACCOUNT"
+        ObjectUserProFile -> "OBJECT_USER_PROFILE"
+        ObjectUserProFileFilter -> "OBJECT_USER_PROFILE_FILTER"
+        ObjectUserRole -> "OBJECT_USER_ROLE"
+
+instance FromJSON ChangeLogsListObjectType where
+    parseJSON = parseJSONText "ChangeLogsListObjectType"
+
+instance ToJSON ChangeLogsListObjectType where
+    toJSON = toJSONText
+
+-- | Cap cost type of this inventory item.
+data PricingCapCostType
+    = PlanningPlacementCapCostTypeCumulative
+      -- ^ @PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE@
+    | PlanningPlacementCapCostTypeMonthly
+      -- ^ @PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY@
+    | PlanningPlacementCapCostTypeNone
+      -- ^ @PLANNING_PLACEMENT_CAP_COST_TYPE_NONE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable PricingCapCostType
+
+instance FromText PricingCapCostType where
+    fromText = \case
+        "PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE" -> Just PlanningPlacementCapCostTypeCumulative
+        "PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY" -> Just PlanningPlacementCapCostTypeMonthly
+        "PLANNING_PLACEMENT_CAP_COST_TYPE_NONE" -> Just PlanningPlacementCapCostTypeNone
+        _ -> Nothing
+
+instance ToText PricingCapCostType where
+    toText = \case
+        PlanningPlacementCapCostTypeCumulative -> "PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE"
+        PlanningPlacementCapCostTypeMonthly -> "PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY"
+        PlanningPlacementCapCostTypeNone -> "PLANNING_PLACEMENT_CAP_COST_TYPE_NONE"
+
+instance FromJSON PricingCapCostType where
+    parseJSON = parseJSONText "PricingCapCostType"
+
+instance ToJSON PricingCapCostType where
+    toJSON = toJSONText
+
+-- | Type of rich media asset. This is a read-only field. Applicable to the
+-- following creative types: all RICH_MEDIA.
+data CreativeAssetDisplayType
+    = AssetDisplayTypeExpanding
+      -- ^ @ASSET_DISPLAY_TYPE_EXPANDING@
+    | AssetDisplayTypeFlashInFlash
+      -- ^ @ASSET_DISPLAY_TYPE_FLASH_IN_FLASH@
+    | AssetDisplayTypeFlashInFlashExpanding
+      -- ^ @ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING@
+    | AssetDisplayTypeFloating
+      -- ^ @ASSET_DISPLAY_TYPE_FLOATING@
+    | AssetDisplayTypeInpage
+      -- ^ @ASSET_DISPLAY_TYPE_INPAGE@
+    | AssetDisplayTypeOverlay
+      -- ^ @ASSET_DISPLAY_TYPE_OVERLAY@
+    | AssetDisplayTypePeelDown
+      -- ^ @ASSET_DISPLAY_TYPE_PEEL_DOWN@
+    | AssetDisplayTypeVpaidLinear
+      -- ^ @ASSET_DISPLAY_TYPE_VPAID_LINEAR@
+    | AssetDisplayTypeVpaidNonLinear
+      -- ^ @ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable CreativeAssetDisplayType
+
+instance FromText CreativeAssetDisplayType where
+    fromText = \case
+        "ASSET_DISPLAY_TYPE_EXPANDING" -> Just AssetDisplayTypeExpanding
+        "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH" -> Just AssetDisplayTypeFlashInFlash
+        "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING" -> Just AssetDisplayTypeFlashInFlashExpanding
+        "ASSET_DISPLAY_TYPE_FLOATING" -> Just AssetDisplayTypeFloating
+        "ASSET_DISPLAY_TYPE_INPAGE" -> Just AssetDisplayTypeInpage
+        "ASSET_DISPLAY_TYPE_OVERLAY" -> Just AssetDisplayTypeOverlay
+        "ASSET_DISPLAY_TYPE_PEEL_DOWN" -> Just AssetDisplayTypePeelDown
+        "ASSET_DISPLAY_TYPE_VPAID_LINEAR" -> Just AssetDisplayTypeVpaidLinear
+        "ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR" -> Just AssetDisplayTypeVpaidNonLinear
+        _ -> Nothing
+
+instance ToText CreativeAssetDisplayType where
+    toText = \case
+        AssetDisplayTypeExpanding -> "ASSET_DISPLAY_TYPE_EXPANDING"
+        AssetDisplayTypeFlashInFlash -> "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH"
+        AssetDisplayTypeFlashInFlashExpanding -> "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING"
+        AssetDisplayTypeFloating -> "ASSET_DISPLAY_TYPE_FLOATING"
+        AssetDisplayTypeInpage -> "ASSET_DISPLAY_TYPE_INPAGE"
+        AssetDisplayTypeOverlay -> "ASSET_DISPLAY_TYPE_OVERLAY"
+        AssetDisplayTypePeelDown -> "ASSET_DISPLAY_TYPE_PEEL_DOWN"
+        AssetDisplayTypeVpaidLinear -> "ASSET_DISPLAY_TYPE_VPAID_LINEAR"
+        AssetDisplayTypeVpaidNonLinear -> "ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR"
+
+instance FromJSON CreativeAssetDisplayType where
+    parseJSON = parseJSONText "CreativeAssetDisplayType"
+
+instance ToJSON CreativeAssetDisplayType where
+    toJSON = toJSONText
+
+-- | Counting method for conversions for this floodlight activity. This is a
+-- required field.
+data FloodlightActivityCountingMethod
+    = ItemsSoldCounting
+      -- ^ @ITEMS_SOLD_COUNTING@
+    | SessionCounting
+      -- ^ @SESSION_COUNTING@
+    | StandardCounting
+      -- ^ @STANDARD_COUNTING@
+    | TransactionsCounting
+      -- ^ @TRANSACTIONS_COUNTING@
+    | UniqueCounting
+      -- ^ @UNIQUE_COUNTING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FloodlightActivityCountingMethod
+
+instance FromText FloodlightActivityCountingMethod where
+    fromText = \case
+        "ITEMS_SOLD_COUNTING" -> Just ItemsSoldCounting
+        "SESSION_COUNTING" -> Just SessionCounting
+        "STANDARD_COUNTING" -> Just StandardCounting
+        "TRANSACTIONS_COUNTING" -> Just TransactionsCounting
+        "UNIQUE_COUNTING" -> Just UniqueCounting
+        _ -> Nothing
+
+instance ToText FloodlightActivityCountingMethod where
+    toText = \case
+        ItemsSoldCounting -> "ITEMS_SOLD_COUNTING"
+        SessionCounting -> "SESSION_COUNTING"
+        StandardCounting -> "STANDARD_COUNTING"
+        TransactionsCounting -> "TRANSACTIONS_COUNTING"
+        UniqueCounting -> "UNIQUE_COUNTING"
+
+instance FromJSON FloodlightActivityCountingMethod where
+    parseJSON = parseJSONText "FloodlightActivityCountingMethod"
+
+instance ToJSON FloodlightActivityCountingMethod where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data ContentCategoriesListSortOrder
+    = CCLSOAscending
+      -- ^ @ASCENDING@
+    | CCLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ContentCategoriesListSortOrder
+
+instance FromText ContentCategoriesListSortOrder where
+    fromText = \case
+        "ASCENDING" -> Just CCLSOAscending
+        "DESCENDING" -> Just CCLSODescending
+        _ -> Nothing
+
+instance ToText ContentCategoriesListSortOrder where
+    toText = \case
+        CCLSOAscending -> "ASCENDING"
+        CCLSODescending -> "DESCENDING"
+
+instance FromJSON ContentCategoriesListSortOrder where
+    parseJSON = parseJSONText "ContentCategoriesListSortOrder"
+
+instance ToJSON ContentCategoriesListSortOrder where
+    toJSON = toJSONText
+
+-- | Status of this advertiser.
+data AdvertiserStatus
+    = ASApproved
+      -- ^ @APPROVED@
+    | ASOnHold
+      -- ^ @ON_HOLD@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable AdvertiserStatus
+
+instance FromText AdvertiserStatus where
+    fromText = \case
+        "APPROVED" -> Just ASApproved
+        "ON_HOLD" -> Just ASOnHold
+        _ -> Nothing
+
+instance ToText AdvertiserStatus where
+    toText = \case
+        ASApproved -> "APPROVED"
+        ASOnHold -> "ON_HOLD"
+
+instance FromJSON AdvertiserStatus where
+    parseJSON = parseJSONText "AdvertiserStatus"
+
+instance ToJSON AdvertiserStatus where
+    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountActiveAdSummaries/Get.hs b/gen/Network/Google/Resource/DFAReporting/AccountActiveAdSummaries/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AccountActiveAdSummaries/Get.hs
@@ -0,0 +1,105 @@
+{-# 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.DFAReporting.AccountActiveAdSummaries.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the account\'s active ad summary by account ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accountActiveAdSummaries.get@.
+module Network.Google.Resource.DFAReporting.AccountActiveAdSummaries.Get
+    (
+    -- * REST Resource
+      AccountActiveAdSummariesGetResource
+
+    -- * Creating a Request
+    , accountActiveAdSummariesGet
+    , AccountActiveAdSummariesGet
+
+    -- * Request Lenses
+    , aaasgProFileId
+    , aaasgSummaryAccountId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accountActiveAdSummaries.get@ method which the
+-- 'AccountActiveAdSummariesGet' request conforms to.
+type AccountActiveAdSummariesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accountActiveAdSummaries" :>
+               Capture "summaryAccountId" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] AccountActiveAdSummary
+
+-- | Gets the account\'s active ad summary by account ID.
+--
+-- /See:/ 'accountActiveAdSummariesGet' smart constructor.
+data AccountActiveAdSummariesGet = AccountActiveAdSummariesGet
+    { _aaasgProFileId        :: !(Textual Int64)
+    , _aaasgSummaryAccountId :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountActiveAdSummariesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aaasgProFileId'
+--
+-- * 'aaasgSummaryAccountId'
+accountActiveAdSummariesGet
+    :: Int64 -- ^ 'aaasgProFileId'
+    -> Int64 -- ^ 'aaasgSummaryAccountId'
+    -> AccountActiveAdSummariesGet
+accountActiveAdSummariesGet pAaasgProFileId_ pAaasgSummaryAccountId_ =
+    AccountActiveAdSummariesGet
+    { _aaasgProFileId = _Coerce # pAaasgProFileId_
+    , _aaasgSummaryAccountId = _Coerce # pAaasgSummaryAccountId_
+    }
+
+-- | User profile ID associated with this request.
+aaasgProFileId :: Lens' AccountActiveAdSummariesGet Int64
+aaasgProFileId
+  = lens _aaasgProFileId
+      (\ s a -> s{_aaasgProFileId = a})
+      . _Coerce
+
+-- | Account ID.
+aaasgSummaryAccountId :: Lens' AccountActiveAdSummariesGet Int64
+aaasgSummaryAccountId
+  = lens _aaasgSummaryAccountId
+      (\ s a -> s{_aaasgSummaryAccountId = a})
+      . _Coerce
+
+instance GoogleRequest AccountActiveAdSummariesGet
+         where
+        type Rs AccountActiveAdSummariesGet =
+             AccountActiveAdSummary
+        requestClient AccountActiveAdSummariesGet{..}
+          = go _aaasgProFileId _aaasgSummaryAccountId
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountActiveAdSummariesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/Get.hs
@@ -0,0 +1,102 @@
+{-# 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.DFAReporting.AccountPermissionGroups.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one account permission group by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accountPermissionGroups.get@.
+module Network.Google.Resource.DFAReporting.AccountPermissionGroups.Get
+    (
+    -- * REST Resource
+      AccountPermissionGroupsGetResource
+
+    -- * Creating a Request
+    , accountPermissionGroupsGet
+    , AccountPermissionGroupsGet
+
+    -- * Request Lenses
+    , apggProFileId
+    , apggId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accountPermissionGroups.get@ method which the
+-- 'AccountPermissionGroupsGet' request conforms to.
+type AccountPermissionGroupsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accountPermissionGroups" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] AccountPermissionGroup
+
+-- | Gets one account permission group by ID.
+--
+-- /See:/ 'accountPermissionGroupsGet' smart constructor.
+data AccountPermissionGroupsGet = AccountPermissionGroupsGet
+    { _apggProFileId :: !(Textual Int64)
+    , _apggId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermissionGroupsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apggProFileId'
+--
+-- * 'apggId'
+accountPermissionGroupsGet
+    :: Int64 -- ^ 'apggProFileId'
+    -> Int64 -- ^ 'apggId'
+    -> AccountPermissionGroupsGet
+accountPermissionGroupsGet pApggProFileId_ pApggId_ =
+    AccountPermissionGroupsGet
+    { _apggProFileId = _Coerce # pApggProFileId_
+    , _apggId = _Coerce # pApggId_
+    }
+
+-- | User profile ID associated with this request.
+apggProFileId :: Lens' AccountPermissionGroupsGet Int64
+apggProFileId
+  = lens _apggProFileId
+      (\ s a -> s{_apggProFileId = a})
+      . _Coerce
+
+-- | Account permission group ID.
+apggId :: Lens' AccountPermissionGroupsGet Int64
+apggId
+  = lens _apggId (\ s a -> s{_apggId = a}) . _Coerce
+
+instance GoogleRequest AccountPermissionGroupsGet
+         where
+        type Rs AccountPermissionGroupsGet =
+             AccountPermissionGroup
+        requestClient AccountPermissionGroupsGet{..}
+          = go _apggProFileId _apggId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountPermissionGroupsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/List.hs
@@ -0,0 +1,90 @@
+{-# 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.DFAReporting.AccountPermissionGroups.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of account permission groups.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accountPermissionGroups.list@.
+module Network.Google.Resource.DFAReporting.AccountPermissionGroups.List
+    (
+    -- * REST Resource
+      AccountPermissionGroupsListResource
+
+    -- * Creating a Request
+    , accountPermissionGroupsList
+    , AccountPermissionGroupsList
+
+    -- * Request Lenses
+    , apglProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accountPermissionGroups.list@ method which the
+-- 'AccountPermissionGroupsList' request conforms to.
+type AccountPermissionGroupsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accountPermissionGroups" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] AccountPermissionGroupsListResponse
+
+-- | Retrieves the list of account permission groups.
+--
+-- /See:/ 'accountPermissionGroupsList' smart constructor.
+newtype AccountPermissionGroupsList = AccountPermissionGroupsList
+    { _apglProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermissionGroupsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apglProFileId'
+accountPermissionGroupsList
+    :: Int64 -- ^ 'apglProFileId'
+    -> AccountPermissionGroupsList
+accountPermissionGroupsList pApglProFileId_ =
+    AccountPermissionGroupsList
+    { _apglProFileId = _Coerce # pApglProFileId_
+    }
+
+-- | User profile ID associated with this request.
+apglProFileId :: Lens' AccountPermissionGroupsList Int64
+apglProFileId
+  = lens _apglProFileId
+      (\ s a -> s{_apglProFileId = a})
+      . _Coerce
+
+instance GoogleRequest AccountPermissionGroupsList
+         where
+        type Rs AccountPermissionGroupsList =
+             AccountPermissionGroupsListResponse
+        requestClient AccountPermissionGroupsList{..}
+          = go _apglProFileId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountPermissionGroupsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountPermissions/Get.hs b/gen/Network/Google/Resource/DFAReporting/AccountPermissions/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AccountPermissions/Get.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.AccountPermissions.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one account permission by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accountPermissions.get@.
+module Network.Google.Resource.DFAReporting.AccountPermissions.Get
+    (
+    -- * REST Resource
+      AccountPermissionsGetResource
+
+    -- * Creating a Request
+    , accountPermissionsGet
+    , AccountPermissionsGet
+
+    -- * Request Lenses
+    , apgProFileId
+    , apgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accountPermissions.get@ method which the
+-- 'AccountPermissionsGet' request conforms to.
+type AccountPermissionsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accountPermissions" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] AccountPermission
+
+-- | Gets one account permission by ID.
+--
+-- /See:/ 'accountPermissionsGet' smart constructor.
+data AccountPermissionsGet = AccountPermissionsGet
+    { _apgProFileId :: !(Textual Int64)
+    , _apgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermissionsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apgProFileId'
+--
+-- * 'apgId'
+accountPermissionsGet
+    :: Int64 -- ^ 'apgProFileId'
+    -> Int64 -- ^ 'apgId'
+    -> AccountPermissionsGet
+accountPermissionsGet pApgProFileId_ pApgId_ =
+    AccountPermissionsGet
+    { _apgProFileId = _Coerce # pApgProFileId_
+    , _apgId = _Coerce # pApgId_
+    }
+
+-- | User profile ID associated with this request.
+apgProFileId :: Lens' AccountPermissionsGet Int64
+apgProFileId
+  = lens _apgProFileId (\ s a -> s{_apgProFileId = a})
+      . _Coerce
+
+-- | Account permission ID.
+apgId :: Lens' AccountPermissionsGet Int64
+apgId
+  = lens _apgId (\ s a -> s{_apgId = a}) . _Coerce
+
+instance GoogleRequest AccountPermissionsGet where
+        type Rs AccountPermissionsGet = AccountPermission
+        requestClient AccountPermissionsGet{..}
+          = go _apgProFileId _apgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountPermissionsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountPermissions/List.hs b/gen/Network/Google/Resource/DFAReporting/AccountPermissions/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AccountPermissions/List.hs
@@ -0,0 +1,87 @@
+{-# 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.DFAReporting.AccountPermissions.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of account permissions.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accountPermissions.list@.
+module Network.Google.Resource.DFAReporting.AccountPermissions.List
+    (
+    -- * REST Resource
+      AccountPermissionsListResource
+
+    -- * Creating a Request
+    , accountPermissionsList
+    , AccountPermissionsList
+
+    -- * Request Lenses
+    , aplProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accountPermissions.list@ method which the
+-- 'AccountPermissionsList' request conforms to.
+type AccountPermissionsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accountPermissions" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] AccountPermissionsListResponse
+
+-- | Retrieves the list of account permissions.
+--
+-- /See:/ 'accountPermissionsList' smart constructor.
+newtype AccountPermissionsList = AccountPermissionsList
+    { _aplProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermissionsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aplProFileId'
+accountPermissionsList
+    :: Int64 -- ^ 'aplProFileId'
+    -> AccountPermissionsList
+accountPermissionsList pAplProFileId_ =
+    AccountPermissionsList
+    { _aplProFileId = _Coerce # pAplProFileId_
+    }
+
+-- | User profile ID associated with this request.
+aplProFileId :: Lens' AccountPermissionsList Int64
+aplProFileId
+  = lens _aplProFileId (\ s a -> s{_aplProFileId = a})
+      . _Coerce
+
+instance GoogleRequest AccountPermissionsList where
+        type Rs AccountPermissionsList =
+             AccountPermissionsListResponse
+        requestClient AccountPermissionsList{..}
+          = go _aplProFileId (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountPermissionsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Get.hs b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Get.hs
@@ -0,0 +1,100 @@
+{-# 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.DFAReporting.AccountUserProFiles.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one account user profile by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accountUserProfiles.get@.
+module Network.Google.Resource.DFAReporting.AccountUserProFiles.Get
+    (
+    -- * REST Resource
+      AccountUserProFilesGetResource
+
+    -- * Creating a Request
+    , accountUserProFilesGet
+    , AccountUserProFilesGet
+
+    -- * Request Lenses
+    , aupfgProFileId
+    , aupfgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accountUserProfiles.get@ method which the
+-- 'AccountUserProFilesGet' request conforms to.
+type AccountUserProFilesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accountUserProfiles" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] AccountUserProFile
+
+-- | Gets one account user profile by ID.
+--
+-- /See:/ 'accountUserProFilesGet' smart constructor.
+data AccountUserProFilesGet = AccountUserProFilesGet
+    { _aupfgProFileId :: !(Textual Int64)
+    , _aupfgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountUserProFilesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aupfgProFileId'
+--
+-- * 'aupfgId'
+accountUserProFilesGet
+    :: Int64 -- ^ 'aupfgProFileId'
+    -> Int64 -- ^ 'aupfgId'
+    -> AccountUserProFilesGet
+accountUserProFilesGet pAupfgProFileId_ pAupfgId_ =
+    AccountUserProFilesGet
+    { _aupfgProFileId = _Coerce # pAupfgProFileId_
+    , _aupfgId = _Coerce # pAupfgId_
+    }
+
+-- | User profile ID associated with this request.
+aupfgProFileId :: Lens' AccountUserProFilesGet Int64
+aupfgProFileId
+  = lens _aupfgProFileId
+      (\ s a -> s{_aupfgProFileId = a})
+      . _Coerce
+
+-- | User profile ID.
+aupfgId :: Lens' AccountUserProFilesGet Int64
+aupfgId
+  = lens _aupfgId (\ s a -> s{_aupfgId = a}) . _Coerce
+
+instance GoogleRequest AccountUserProFilesGet where
+        type Rs AccountUserProFilesGet = AccountUserProFile
+        requestClient AccountUserProFilesGet{..}
+          = go _aupfgProFileId _aupfgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountUserProFilesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Insert.hs b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Insert.hs
@@ -0,0 +1,102 @@
+{-# 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.DFAReporting.AccountUserProFiles.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new account user profile.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accountUserProfiles.insert@.
+module Network.Google.Resource.DFAReporting.AccountUserProFiles.Insert
+    (
+    -- * REST Resource
+      AccountUserProFilesInsertResource
+
+    -- * Creating a Request
+    , accountUserProFilesInsert
+    , AccountUserProFilesInsert
+
+    -- * Request Lenses
+    , aupfiProFileId
+    , aupfiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accountUserProfiles.insert@ method which the
+-- 'AccountUserProFilesInsert' request conforms to.
+type AccountUserProFilesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accountUserProfiles" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] AccountUserProFile :>
+                   Post '[JSON] AccountUserProFile
+
+-- | Inserts a new account user profile.
+--
+-- /See:/ 'accountUserProFilesInsert' smart constructor.
+data AccountUserProFilesInsert = AccountUserProFilesInsert
+    { _aupfiProFileId :: !(Textual Int64)
+    , _aupfiPayload   :: !AccountUserProFile
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountUserProFilesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aupfiProFileId'
+--
+-- * 'aupfiPayload'
+accountUserProFilesInsert
+    :: Int64 -- ^ 'aupfiProFileId'
+    -> AccountUserProFile -- ^ 'aupfiPayload'
+    -> AccountUserProFilesInsert
+accountUserProFilesInsert pAupfiProFileId_ pAupfiPayload_ =
+    AccountUserProFilesInsert
+    { _aupfiProFileId = _Coerce # pAupfiProFileId_
+    , _aupfiPayload = pAupfiPayload_
+    }
+
+-- | User profile ID associated with this request.
+aupfiProFileId :: Lens' AccountUserProFilesInsert Int64
+aupfiProFileId
+  = lens _aupfiProFileId
+      (\ s a -> s{_aupfiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+aupfiPayload :: Lens' AccountUserProFilesInsert AccountUserProFile
+aupfiPayload
+  = lens _aupfiPayload (\ s a -> s{_aupfiPayload = a})
+
+instance GoogleRequest AccountUserProFilesInsert
+         where
+        type Rs AccountUserProFilesInsert =
+             AccountUserProFile
+        requestClient AccountUserProFilesInsert{..}
+          = go _aupfiProFileId (Just AltJSON) _aupfiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountUserProFilesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/List.hs b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/List.hs
@@ -0,0 +1,219 @@
+{-# 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.DFAReporting.AccountUserProFiles.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of account user profiles, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accountUserProfiles.list@.
+module Network.Google.Resource.DFAReporting.AccountUserProFiles.List
+    (
+    -- * REST Resource
+      AccountUserProFilesListResource
+
+    -- * Creating a Request
+    , accountUserProFilesList
+    , AccountUserProFilesList
+
+    -- * Request Lenses
+    , aupflUserRoleId
+    , aupflSearchString
+    , aupflIds
+    , aupflProFileId
+    , aupflSortOrder
+    , aupflActive
+    , aupflPageToken
+    , aupflSortField
+    , aupflSubAccountId
+    , aupflMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accountUserProfiles.list@ method which the
+-- 'AccountUserProFilesList' request conforms to.
+type AccountUserProFilesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accountUserProfiles" :>
+               QueryParam "userRoleId" (Textual Int64) :>
+                 QueryParam "searchString" Text :>
+                   QueryParams "ids" (Textual Int64) :>
+                     QueryParam "sortOrder"
+                       AccountUserProFilesListSortOrder
+                       :>
+                       QueryParam "active" Bool :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "sortField"
+                             AccountUserProFilesListSortField
+                             :>
+                             QueryParam "subaccountId" (Textual Int64) :>
+                               QueryParam "maxResults" (Textual Int32) :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] AccountUserProFilesListResponse
+
+-- | Retrieves a list of account user profiles, possibly filtered.
+--
+-- /See:/ 'accountUserProFilesList' smart constructor.
+data AccountUserProFilesList = AccountUserProFilesList
+    { _aupflUserRoleId   :: !(Maybe (Textual Int64))
+    , _aupflSearchString :: !(Maybe Text)
+    , _aupflIds          :: !(Maybe [Textual Int64])
+    , _aupflProFileId    :: !(Textual Int64)
+    , _aupflSortOrder    :: !(Maybe AccountUserProFilesListSortOrder)
+    , _aupflActive       :: !(Maybe Bool)
+    , _aupflPageToken    :: !(Maybe Text)
+    , _aupflSortField    :: !(Maybe AccountUserProFilesListSortField)
+    , _aupflSubAccountId :: !(Maybe (Textual Int64))
+    , _aupflMaxResults   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountUserProFilesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aupflUserRoleId'
+--
+-- * 'aupflSearchString'
+--
+-- * 'aupflIds'
+--
+-- * 'aupflProFileId'
+--
+-- * 'aupflSortOrder'
+--
+-- * 'aupflActive'
+--
+-- * 'aupflPageToken'
+--
+-- * 'aupflSortField'
+--
+-- * 'aupflSubAccountId'
+--
+-- * 'aupflMaxResults'
+accountUserProFilesList
+    :: Int64 -- ^ 'aupflProFileId'
+    -> AccountUserProFilesList
+accountUserProFilesList pAupflProFileId_ =
+    AccountUserProFilesList
+    { _aupflUserRoleId = Nothing
+    , _aupflSearchString = Nothing
+    , _aupflIds = Nothing
+    , _aupflProFileId = _Coerce # pAupflProFileId_
+    , _aupflSortOrder = Nothing
+    , _aupflActive = Nothing
+    , _aupflPageToken = Nothing
+    , _aupflSortField = Nothing
+    , _aupflSubAccountId = Nothing
+    , _aupflMaxResults = Nothing
+    }
+
+-- | Select only user profiles with the specified user role ID.
+aupflUserRoleId :: Lens' AccountUserProFilesList (Maybe Int64)
+aupflUserRoleId
+  = lens _aupflUserRoleId
+      (\ s a -> s{_aupflUserRoleId = a})
+      . mapping _Coerce
+
+-- | Allows searching for objects by name, ID or email. Wildcards (*) are
+-- allowed. For example, \"user profile*2015\" will return objects with
+-- names like \"user profile June 2015\", \"user profile April 2015\", or
+-- simply \"user profile 2015\". Most of the searches also add wildcards
+-- implicitly at the start and the end of the search string. For example, a
+-- search string of \"user profile\" will match objects with name \"my user
+-- profile\", \"user profile 2015\", or simply \"user profile\".
+aupflSearchString :: Lens' AccountUserProFilesList (Maybe Text)
+aupflSearchString
+  = lens _aupflSearchString
+      (\ s a -> s{_aupflSearchString = a})
+
+-- | Select only user profiles with these IDs.
+aupflIds :: Lens' AccountUserProFilesList [Int64]
+aupflIds
+  = lens _aupflIds (\ s a -> s{_aupflIds = a}) .
+      _Default
+      . _Coerce
+
+-- | User profile ID associated with this request.
+aupflProFileId :: Lens' AccountUserProFilesList Int64
+aupflProFileId
+  = lens _aupflProFileId
+      (\ s a -> s{_aupflProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+aupflSortOrder :: Lens' AccountUserProFilesList (Maybe AccountUserProFilesListSortOrder)
+aupflSortOrder
+  = lens _aupflSortOrder
+      (\ s a -> s{_aupflSortOrder = a})
+
+-- | Select only active user profiles.
+aupflActive :: Lens' AccountUserProFilesList (Maybe Bool)
+aupflActive
+  = lens _aupflActive (\ s a -> s{_aupflActive = a})
+
+-- | Value of the nextPageToken from the previous result page.
+aupflPageToken :: Lens' AccountUserProFilesList (Maybe Text)
+aupflPageToken
+  = lens _aupflPageToken
+      (\ s a -> s{_aupflPageToken = a})
+
+-- | Field by which to sort the list.
+aupflSortField :: Lens' AccountUserProFilesList (Maybe AccountUserProFilesListSortField)
+aupflSortField
+  = lens _aupflSortField
+      (\ s a -> s{_aupflSortField = a})
+
+-- | Select only user profiles with the specified subaccount ID.
+aupflSubAccountId :: Lens' AccountUserProFilesList (Maybe Int64)
+aupflSubAccountId
+  = lens _aupflSubAccountId
+      (\ s a -> s{_aupflSubAccountId = a})
+      . mapping _Coerce
+
+-- | Maximum number of results to return.
+aupflMaxResults :: Lens' AccountUserProFilesList (Maybe Int32)
+aupflMaxResults
+  = lens _aupflMaxResults
+      (\ s a -> s{_aupflMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AccountUserProFilesList where
+        type Rs AccountUserProFilesList =
+             AccountUserProFilesListResponse
+        requestClient AccountUserProFilesList{..}
+          = go _aupflProFileId _aupflUserRoleId
+              _aupflSearchString
+              (_aupflIds ^. _Default)
+              _aupflSortOrder
+              _aupflActive
+              _aupflPageToken
+              _aupflSortField
+              _aupflSubAccountId
+              _aupflMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountUserProFilesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Patch.hs b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Patch.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.AccountUserProFiles.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing account user profile. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accountUserProfiles.patch@.
+module Network.Google.Resource.DFAReporting.AccountUserProFiles.Patch
+    (
+    -- * REST Resource
+      AccountUserProFilesPatchResource
+
+    -- * Creating a Request
+    , accountUserProFilesPatch
+    , AccountUserProFilesPatch
+
+    -- * Request Lenses
+    , aupfpProFileId
+    , aupfpPayload
+    , aupfpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accountUserProfiles.patch@ method which the
+-- 'AccountUserProFilesPatch' request conforms to.
+type AccountUserProFilesPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accountUserProfiles" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] AccountUserProFile :>
+                     Patch '[JSON] AccountUserProFile
+
+-- | Updates an existing account user profile. This method supports patch
+-- semantics.
+--
+-- /See:/ 'accountUserProFilesPatch' smart constructor.
+data AccountUserProFilesPatch = AccountUserProFilesPatch
+    { _aupfpProFileId :: !(Textual Int64)
+    , _aupfpPayload   :: !AccountUserProFile
+    , _aupfpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountUserProFilesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aupfpProFileId'
+--
+-- * 'aupfpPayload'
+--
+-- * 'aupfpId'
+accountUserProFilesPatch
+    :: Int64 -- ^ 'aupfpProFileId'
+    -> AccountUserProFile -- ^ 'aupfpPayload'
+    -> Int64 -- ^ 'aupfpId'
+    -> AccountUserProFilesPatch
+accountUserProFilesPatch pAupfpProFileId_ pAupfpPayload_ pAupfpId_ =
+    AccountUserProFilesPatch
+    { _aupfpProFileId = _Coerce # pAupfpProFileId_
+    , _aupfpPayload = pAupfpPayload_
+    , _aupfpId = _Coerce # pAupfpId_
+    }
+
+-- | User profile ID associated with this request.
+aupfpProFileId :: Lens' AccountUserProFilesPatch Int64
+aupfpProFileId
+  = lens _aupfpProFileId
+      (\ s a -> s{_aupfpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+aupfpPayload :: Lens' AccountUserProFilesPatch AccountUserProFile
+aupfpPayload
+  = lens _aupfpPayload (\ s a -> s{_aupfpPayload = a})
+
+-- | User profile ID.
+aupfpId :: Lens' AccountUserProFilesPatch Int64
+aupfpId
+  = lens _aupfpId (\ s a -> s{_aupfpId = a}) . _Coerce
+
+instance GoogleRequest AccountUserProFilesPatch where
+        type Rs AccountUserProFilesPatch = AccountUserProFile
+        requestClient AccountUserProFilesPatch{..}
+          = go _aupfpProFileId (Just _aupfpId) (Just AltJSON)
+              _aupfpPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountUserProFilesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Update.hs b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Update.hs
@@ -0,0 +1,102 @@
+{-# 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.DFAReporting.AccountUserProFiles.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing account user profile.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accountUserProfiles.update@.
+module Network.Google.Resource.DFAReporting.AccountUserProFiles.Update
+    (
+    -- * REST Resource
+      AccountUserProFilesUpdateResource
+
+    -- * Creating a Request
+    , accountUserProFilesUpdate
+    , AccountUserProFilesUpdate
+
+    -- * Request Lenses
+    , aupfuProFileId
+    , aupfuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accountUserProfiles.update@ method which the
+-- 'AccountUserProFilesUpdate' request conforms to.
+type AccountUserProFilesUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accountUserProfiles" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] AccountUserProFile :>
+                   Put '[JSON] AccountUserProFile
+
+-- | Updates an existing account user profile.
+--
+-- /See:/ 'accountUserProFilesUpdate' smart constructor.
+data AccountUserProFilesUpdate = AccountUserProFilesUpdate
+    { _aupfuProFileId :: !(Textual Int64)
+    , _aupfuPayload   :: !AccountUserProFile
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountUserProFilesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aupfuProFileId'
+--
+-- * 'aupfuPayload'
+accountUserProFilesUpdate
+    :: Int64 -- ^ 'aupfuProFileId'
+    -> AccountUserProFile -- ^ 'aupfuPayload'
+    -> AccountUserProFilesUpdate
+accountUserProFilesUpdate pAupfuProFileId_ pAupfuPayload_ =
+    AccountUserProFilesUpdate
+    { _aupfuProFileId = _Coerce # pAupfuProFileId_
+    , _aupfuPayload = pAupfuPayload_
+    }
+
+-- | User profile ID associated with this request.
+aupfuProFileId :: Lens' AccountUserProFilesUpdate Int64
+aupfuProFileId
+  = lens _aupfuProFileId
+      (\ s a -> s{_aupfuProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+aupfuPayload :: Lens' AccountUserProFilesUpdate AccountUserProFile
+aupfuPayload
+  = lens _aupfuPayload (\ s a -> s{_aupfuPayload = a})
+
+instance GoogleRequest AccountUserProFilesUpdate
+         where
+        type Rs AccountUserProFilesUpdate =
+             AccountUserProFile
+        requestClient AccountUserProFilesUpdate{..}
+          = go _aupfuProFileId (Just AltJSON) _aupfuPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AccountUserProFilesUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Accounts/Get.hs b/gen/Network/Google/Resource/DFAReporting/Accounts/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Accounts/Get.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Accounts.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one account by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accounts.get@.
+module Network.Google.Resource.DFAReporting.Accounts.Get
+    (
+    -- * REST Resource
+      AccountsGetResource
+
+    -- * Creating a Request
+    , accountsGet
+    , AccountsGet
+
+    -- * Request Lenses
+    , aggProFileId
+    , aggId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accounts.get@ method which the
+-- 'AccountsGet' request conforms to.
+type AccountsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accounts" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Account
+
+-- | Gets one account by ID.
+--
+-- /See:/ 'accountsGet' smart constructor.
+data AccountsGet = AccountsGet
+    { _aggProFileId :: !(Textual Int64)
+    , _aggId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aggProFileId'
+--
+-- * 'aggId'
+accountsGet
+    :: Int64 -- ^ 'aggProFileId'
+    -> Int64 -- ^ 'aggId'
+    -> AccountsGet
+accountsGet pAggProFileId_ pAggId_ =
+    AccountsGet
+    { _aggProFileId = _Coerce # pAggProFileId_
+    , _aggId = _Coerce # pAggId_
+    }
+
+-- | User profile ID associated with this request.
+aggProFileId :: Lens' AccountsGet Int64
+aggProFileId
+  = lens _aggProFileId (\ s a -> s{_aggProFileId = a})
+      . _Coerce
+
+-- | Account ID.
+aggId :: Lens' AccountsGet Int64
+aggId
+  = lens _aggId (\ s a -> s{_aggId = a}) . _Coerce
+
+instance GoogleRequest AccountsGet where
+        type Rs AccountsGet = Account
+        requestClient AccountsGet{..}
+          = go _aggProFileId _aggId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy AccountsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Accounts/List.hs b/gen/Network/Google/Resource/DFAReporting/Accounts/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Accounts/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.DFAReporting.Accounts.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of accounts, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accounts.list@.
+module Network.Google.Resource.DFAReporting.Accounts.List
+    (
+    -- * REST Resource
+      AccountsListResource
+
+    -- * Creating a Request
+    , accountsList
+    , AccountsList
+
+    -- * Request Lenses
+    , accSearchString
+    , accIds
+    , accProFileId
+    , accSortOrder
+    , accActive
+    , accPageToken
+    , accSortField
+    , accMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accounts.list@ method which the
+-- 'AccountsList' request conforms to.
+type AccountsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accounts" :>
+               QueryParam "searchString" Text :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParam "sortOrder" AccountsListSortOrder :>
+                     QueryParam "active" Bool :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "sortField" AccountsListSortField :>
+                           QueryParam "maxResults" (Textual Int32) :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] AccountsListResponse
+
+-- | Retrieves the list of accounts, possibly filtered.
+--
+-- /See:/ 'accountsList' smart constructor.
+data AccountsList = AccountsList
+    { _accSearchString :: !(Maybe Text)
+    , _accIds          :: !(Maybe [Textual Int64])
+    , _accProFileId    :: !(Textual Int64)
+    , _accSortOrder    :: !(Maybe AccountsListSortOrder)
+    , _accActive       :: !(Maybe Bool)
+    , _accPageToken    :: !(Maybe Text)
+    , _accSortField    :: !(Maybe AccountsListSortField)
+    , _accMaxResults   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'accSearchString'
+--
+-- * 'accIds'
+--
+-- * 'accProFileId'
+--
+-- * 'accSortOrder'
+--
+-- * 'accActive'
+--
+-- * 'accPageToken'
+--
+-- * 'accSortField'
+--
+-- * 'accMaxResults'
+accountsList
+    :: Int64 -- ^ 'accProFileId'
+    -> AccountsList
+accountsList pAccProFileId_ =
+    AccountsList
+    { _accSearchString = Nothing
+    , _accIds = Nothing
+    , _accProFileId = _Coerce # pAccProFileId_
+    , _accSortOrder = Nothing
+    , _accActive = Nothing
+    , _accPageToken = Nothing
+    , _accSortField = Nothing
+    , _accMaxResults = Nothing
+    }
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"account*2015\" will return objects with names like
+-- \"account June 2015\", \"account April 2015\", or simply \"account
+-- 2015\". Most of the searches also add wildcards implicitly at the start
+-- and the end of the search string. For example, a search string of
+-- \"account\" will match objects with name \"my account\", \"account
+-- 2015\", or simply \"account\".
+accSearchString :: Lens' AccountsList (Maybe Text)
+accSearchString
+  = lens _accSearchString
+      (\ s a -> s{_accSearchString = a})
+
+-- | Select only accounts with these IDs.
+accIds :: Lens' AccountsList [Int64]
+accIds
+  = lens _accIds (\ s a -> s{_accIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+accProFileId :: Lens' AccountsList Int64
+accProFileId
+  = lens _accProFileId (\ s a -> s{_accProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+accSortOrder :: Lens' AccountsList (Maybe AccountsListSortOrder)
+accSortOrder
+  = lens _accSortOrder (\ s a -> s{_accSortOrder = a})
+
+-- | Select only active accounts. Don\'t set this field to select both active
+-- and non-active accounts.
+accActive :: Lens' AccountsList (Maybe Bool)
+accActive
+  = lens _accActive (\ s a -> s{_accActive = a})
+
+-- | Value of the nextPageToken from the previous result page.
+accPageToken :: Lens' AccountsList (Maybe Text)
+accPageToken
+  = lens _accPageToken (\ s a -> s{_accPageToken = a})
+
+-- | Field by which to sort the list.
+accSortField :: Lens' AccountsList (Maybe AccountsListSortField)
+accSortField
+  = lens _accSortField (\ s a -> s{_accSortField = a})
+
+-- | Maximum number of results to return.
+accMaxResults :: Lens' AccountsList (Maybe Int32)
+accMaxResults
+  = lens _accMaxResults
+      (\ s a -> s{_accMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AccountsList where
+        type Rs AccountsList = AccountsListResponse
+        requestClient AccountsList{..}
+          = go _accProFileId _accSearchString
+              (_accIds ^. _Default)
+              _accSortOrder
+              _accActive
+              _accPageToken
+              _accSortField
+              _accMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy AccountsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Accounts/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Accounts/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Accounts/Patch.hs
@@ -0,0 +1,110 @@
+{-# 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.DFAReporting.Accounts.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing account. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accounts.patch@.
+module Network.Google.Resource.DFAReporting.Accounts.Patch
+    (
+    -- * REST Resource
+      AccountsPatchResource
+
+    -- * Creating a Request
+    , accountsPatch
+    , AccountsPatch
+
+    -- * Request Lenses
+    , appProFileId
+    , appPayload
+    , appId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accounts.patch@ method which the
+-- 'AccountsPatch' request conforms to.
+type AccountsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accounts" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] Account :> Patch '[JSON] Account
+
+-- | Updates an existing account. This method supports patch semantics.
+--
+-- /See:/ 'accountsPatch' smart constructor.
+data AccountsPatch = AccountsPatch
+    { _appProFileId :: !(Textual Int64)
+    , _appPayload   :: !Account
+    , _appId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'appProFileId'
+--
+-- * 'appPayload'
+--
+-- * 'appId'
+accountsPatch
+    :: Int64 -- ^ 'appProFileId'
+    -> Account -- ^ 'appPayload'
+    -> Int64 -- ^ 'appId'
+    -> AccountsPatch
+accountsPatch pAppProFileId_ pAppPayload_ pAppId_ =
+    AccountsPatch
+    { _appProFileId = _Coerce # pAppProFileId_
+    , _appPayload = pAppPayload_
+    , _appId = _Coerce # pAppId_
+    }
+
+-- | User profile ID associated with this request.
+appProFileId :: Lens' AccountsPatch Int64
+appProFileId
+  = lens _appProFileId (\ s a -> s{_appProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+appPayload :: Lens' AccountsPatch Account
+appPayload
+  = lens _appPayload (\ s a -> s{_appPayload = a})
+
+-- | Account ID.
+appId :: Lens' AccountsPatch Int64
+appId
+  = lens _appId (\ s a -> s{_appId = a}) . _Coerce
+
+instance GoogleRequest AccountsPatch where
+        type Rs AccountsPatch = Account
+        requestClient AccountsPatch{..}
+          = go _appProFileId (Just _appId) (Just AltJSON)
+              _appPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy AccountsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Accounts/Update.hs b/gen/Network/Google/Resource/DFAReporting/Accounts/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Accounts/Update.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Accounts.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing account.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.accounts.update@.
+module Network.Google.Resource.DFAReporting.Accounts.Update
+    (
+    -- * REST Resource
+      AccountsUpdateResource
+
+    -- * Creating a Request
+    , accountsUpdate
+    , AccountsUpdate
+
+    -- * Request Lenses
+    , auuProFileId
+    , auuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.accounts.update@ method which the
+-- 'AccountsUpdate' request conforms to.
+type AccountsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "accounts" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Account :> Put '[JSON] Account
+
+-- | Updates an existing account.
+--
+-- /See:/ 'accountsUpdate' smart constructor.
+data AccountsUpdate = AccountsUpdate
+    { _auuProFileId :: !(Textual Int64)
+    , _auuPayload   :: !Account
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'auuProFileId'
+--
+-- * 'auuPayload'
+accountsUpdate
+    :: Int64 -- ^ 'auuProFileId'
+    -> Account -- ^ 'auuPayload'
+    -> AccountsUpdate
+accountsUpdate pAuuProFileId_ pAuuPayload_ =
+    AccountsUpdate
+    { _auuProFileId = _Coerce # pAuuProFileId_
+    , _auuPayload = pAuuPayload_
+    }
+
+-- | User profile ID associated with this request.
+auuProFileId :: Lens' AccountsUpdate Int64
+auuProFileId
+  = lens _auuProFileId (\ s a -> s{_auuProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+auuPayload :: Lens' AccountsUpdate Account
+auuPayload
+  = lens _auuPayload (\ s a -> s{_auuPayload = a})
+
+instance GoogleRequest AccountsUpdate where
+        type Rs AccountsUpdate = Account
+        requestClient AccountsUpdate{..}
+          = go _auuProFileId (Just AltJSON) _auuPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy AccountsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Ads/Get.hs b/gen/Network/Google/Resource/DFAReporting/Ads/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Ads/Get.hs
@@ -0,0 +1,96 @@
+{-# 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.DFAReporting.Ads.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one ad by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.ads.get@.
+module Network.Google.Resource.DFAReporting.Ads.Get
+    (
+    -- * REST Resource
+      AdsGetResource
+
+    -- * Creating a Request
+    , adsGet
+    , AdsGet
+
+    -- * Request Lenses
+    , adsProFileId
+    , adsId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.ads.get@ method which the
+-- 'AdsGet' request conforms to.
+type AdsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "ads" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Ad
+
+-- | Gets one ad by ID.
+--
+-- /See:/ 'adsGet' smart constructor.
+data AdsGet = AdsGet
+    { _adsProFileId :: !(Textual Int64)
+    , _adsId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'adsProFileId'
+--
+-- * 'adsId'
+adsGet
+    :: Int64 -- ^ 'adsProFileId'
+    -> Int64 -- ^ 'adsId'
+    -> AdsGet
+adsGet pAdsProFileId_ pAdsId_ =
+    AdsGet
+    { _adsProFileId = _Coerce # pAdsProFileId_
+    , _adsId = _Coerce # pAdsId_
+    }
+
+-- | User profile ID associated with this request.
+adsProFileId :: Lens' AdsGet Int64
+adsProFileId
+  = lens _adsProFileId (\ s a -> s{_adsProFileId = a})
+      . _Coerce
+
+-- | Ad ID.
+adsId :: Lens' AdsGet Int64
+adsId
+  = lens _adsId (\ s a -> s{_adsId = a}) . _Coerce
+
+instance GoogleRequest AdsGet where
+        type Rs AdsGet = Ad
+        requestClient AdsGet{..}
+          = go _adsProFileId _adsId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy AdsGetResource) mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Ads/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Ads/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Ads/Insert.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Ads.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new ad.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.ads.insert@.
+module Network.Google.Resource.DFAReporting.Ads.Insert
+    (
+    -- * REST Resource
+      AdsInsertResource
+
+    -- * Creating a Request
+    , adsInsert
+    , AdsInsert
+
+    -- * Request Lenses
+    , aiProFileId
+    , aiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.ads.insert@ method which the
+-- 'AdsInsert' request conforms to.
+type AdsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "ads" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Ad :> Post '[JSON] Ad
+
+-- | Inserts a new ad.
+--
+-- /See:/ 'adsInsert' smart constructor.
+data AdsInsert = AdsInsert
+    { _aiProFileId :: !(Textual Int64)
+    , _aiPayload   :: !Ad
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aiProFileId'
+--
+-- * 'aiPayload'
+adsInsert
+    :: Int64 -- ^ 'aiProFileId'
+    -> Ad -- ^ 'aiPayload'
+    -> AdsInsert
+adsInsert pAiProFileId_ pAiPayload_ =
+    AdsInsert
+    { _aiProFileId = _Coerce # pAiProFileId_
+    , _aiPayload = pAiPayload_
+    }
+
+-- | User profile ID associated with this request.
+aiProFileId :: Lens' AdsInsert Int64
+aiProFileId
+  = lens _aiProFileId (\ s a -> s{_aiProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+aiPayload :: Lens' AdsInsert Ad
+aiPayload
+  = lens _aiPayload (\ s a -> s{_aiPayload = a})
+
+instance GoogleRequest AdsInsert where
+        type Rs AdsInsert = Ad
+        requestClient AdsInsert{..}
+          = go _aiProFileId (Just AltJSON) _aiPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy AdsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Ads/List.hs b/gen/Network/Google/Resource/DFAReporting/Ads/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Ads/List.hs
@@ -0,0 +1,451 @@
+{-# 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.DFAReporting.Ads.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of ads, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.ads.list@.
+module Network.Google.Resource.DFAReporting.Ads.List
+    (
+    -- * REST Resource
+      AdsListResource
+
+    -- * Creating a Request
+    , adsList
+    , AdsList
+
+    -- * Request Lenses
+    , alRemarketingListIds
+    , alLandingPageIds
+    , alCreativeIds
+    , alAdvertiserId
+    , alCampaignIds
+    , alSearchString
+    , alSizeIds
+    , alSSLCompliant
+    , alIds
+    , alProFileId
+    , alSortOrder
+    , alActive
+    , alCreativeOptimizationConfigurationIds
+    , alPlacementIds
+    , alSSLRequired
+    , alOverriddenEventTagId
+    , alPageToken
+    , alSortField
+    , alType
+    , alCreativeType
+    , alDynamicClickTracker
+    , alCompatibility
+    , alArchived
+    , alMaxResults
+    , alAudienceSegmentIds
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.ads.list@ method which the
+-- 'AdsList' request conforms to.
+type AdsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "ads" :>
+               QueryParams "remarketingListIds" (Textual Int64) :>
+                 QueryParams "landingPageIds" (Textual Int64) :>
+                   QueryParams "creativeIds" (Textual Int64) :>
+                     QueryParam "advertiserId" (Textual Int64) :>
+                       QueryParams "campaignIds" (Textual Int64) :>
+                         QueryParam "searchString" Text :>
+                           QueryParams "sizeIds" (Textual Int64) :>
+                             QueryParam "sslCompliant" Bool :>
+                               QueryParams "ids" (Textual Int64) :>
+                                 QueryParam "sortOrder" AdsListSortOrder :>
+                                   QueryParam "active" Bool :>
+                                     QueryParams
+                                       "creativeOptimizationConfigurationIds"
+                                       (Textual Int64)
+                                       :>
+                                       QueryParams "placementIds"
+                                         (Textual Int64)
+                                         :>
+                                         QueryParam "sslRequired" Bool :>
+                                           QueryParam "overriddenEventTagId"
+                                             (Textual Int64)
+                                             :>
+                                             QueryParam "pageToken" Text :>
+                                               QueryParam "sortField"
+                                                 AdsListSortField
+                                                 :>
+                                                 QueryParams "type" AdsListType
+                                                   :>
+                                                   QueryParam "creativeType"
+                                                     AdsListCreativeType
+                                                     :>
+                                                     QueryParam
+                                                       "dynamicClickTracker"
+                                                       Bool
+                                                       :>
+                                                       QueryParam
+                                                         "compatibility"
+                                                         AdsListCompatibility
+                                                         :>
+                                                         QueryParam "archived"
+                                                           Bool
+                                                           :>
+                                                           QueryParam
+                                                             "maxResults"
+                                                             (Textual Int32)
+                                                             :>
+                                                             QueryParams
+                                                               "audienceSegmentIds"
+                                                               (Textual Int64)
+                                                               :>
+                                                               QueryParam "alt"
+                                                                 AltJSON
+                                                                 :>
+                                                                 Get '[JSON]
+                                                                   AdsListResponse
+
+-- | Retrieves a list of ads, possibly filtered.
+--
+-- /See:/ 'adsList' smart constructor.
+data AdsList = AdsList
+    { _alRemarketingListIds                   :: !(Maybe [Textual Int64])
+    , _alLandingPageIds                       :: !(Maybe [Textual Int64])
+    , _alCreativeIds                          :: !(Maybe [Textual Int64])
+    , _alAdvertiserId                         :: !(Maybe (Textual Int64))
+    , _alCampaignIds                          :: !(Maybe [Textual Int64])
+    , _alSearchString                         :: !(Maybe Text)
+    , _alSizeIds                              :: !(Maybe [Textual Int64])
+    , _alSSLCompliant                         :: !(Maybe Bool)
+    , _alIds                                  :: !(Maybe [Textual Int64])
+    , _alProFileId                            :: !(Textual Int64)
+    , _alSortOrder                            :: !(Maybe AdsListSortOrder)
+    , _alActive                               :: !(Maybe Bool)
+    , _alCreativeOptimizationConfigurationIds :: !(Maybe [Textual Int64])
+    , _alPlacementIds                         :: !(Maybe [Textual Int64])
+    , _alSSLRequired                          :: !(Maybe Bool)
+    , _alOverriddenEventTagId                 :: !(Maybe (Textual Int64))
+    , _alPageToken                            :: !(Maybe Text)
+    , _alSortField                            :: !(Maybe AdsListSortField)
+    , _alType                                 :: !(Maybe [AdsListType])
+    , _alCreativeType                         :: !(Maybe AdsListCreativeType)
+    , _alDynamicClickTracker                  :: !(Maybe Bool)
+    , _alCompatibility                        :: !(Maybe AdsListCompatibility)
+    , _alArchived                             :: !(Maybe Bool)
+    , _alMaxResults                           :: !(Maybe (Textual Int32))
+    , _alAudienceSegmentIds                   :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'alRemarketingListIds'
+--
+-- * 'alLandingPageIds'
+--
+-- * 'alCreativeIds'
+--
+-- * 'alAdvertiserId'
+--
+-- * 'alCampaignIds'
+--
+-- * 'alSearchString'
+--
+-- * 'alSizeIds'
+--
+-- * 'alSSLCompliant'
+--
+-- * 'alIds'
+--
+-- * 'alProFileId'
+--
+-- * 'alSortOrder'
+--
+-- * 'alActive'
+--
+-- * 'alCreativeOptimizationConfigurationIds'
+--
+-- * 'alPlacementIds'
+--
+-- * 'alSSLRequired'
+--
+-- * 'alOverriddenEventTagId'
+--
+-- * 'alPageToken'
+--
+-- * 'alSortField'
+--
+-- * 'alType'
+--
+-- * 'alCreativeType'
+--
+-- * 'alDynamicClickTracker'
+--
+-- * 'alCompatibility'
+--
+-- * 'alArchived'
+--
+-- * 'alMaxResults'
+--
+-- * 'alAudienceSegmentIds'
+adsList
+    :: Int64 -- ^ 'alProFileId'
+    -> AdsList
+adsList pAlProFileId_ =
+    AdsList
+    { _alRemarketingListIds = Nothing
+    , _alLandingPageIds = Nothing
+    , _alCreativeIds = Nothing
+    , _alAdvertiserId = Nothing
+    , _alCampaignIds = Nothing
+    , _alSearchString = Nothing
+    , _alSizeIds = Nothing
+    , _alSSLCompliant = Nothing
+    , _alIds = Nothing
+    , _alProFileId = _Coerce # pAlProFileId_
+    , _alSortOrder = Nothing
+    , _alActive = Nothing
+    , _alCreativeOptimizationConfigurationIds = Nothing
+    , _alPlacementIds = Nothing
+    , _alSSLRequired = Nothing
+    , _alOverriddenEventTagId = Nothing
+    , _alPageToken = Nothing
+    , _alSortField = Nothing
+    , _alType = Nothing
+    , _alCreativeType = Nothing
+    , _alDynamicClickTracker = Nothing
+    , _alCompatibility = Nothing
+    , _alArchived = Nothing
+    , _alMaxResults = Nothing
+    , _alAudienceSegmentIds = Nothing
+    }
+
+-- | Select only ads whose list targeting expression use these remarketing
+-- list IDs.
+alRemarketingListIds :: Lens' AdsList [Int64]
+alRemarketingListIds
+  = lens _alRemarketingListIds
+      (\ s a -> s{_alRemarketingListIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only ads with these landing page IDs.
+alLandingPageIds :: Lens' AdsList [Int64]
+alLandingPageIds
+  = lens _alLandingPageIds
+      (\ s a -> s{_alLandingPageIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only ads with these creative IDs assigned.
+alCreativeIds :: Lens' AdsList [Int64]
+alCreativeIds
+  = lens _alCreativeIds
+      (\ s a -> s{_alCreativeIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only ads with this advertiser ID.
+alAdvertiserId :: Lens' AdsList (Maybe Int64)
+alAdvertiserId
+  = lens _alAdvertiserId
+      (\ s a -> s{_alAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Select only ads with these campaign IDs.
+alCampaignIds :: Lens' AdsList [Int64]
+alCampaignIds
+  = lens _alCampaignIds
+      (\ s a -> s{_alCampaignIds = a})
+      . _Default
+      . _Coerce
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"ad*2015\" will return objects with names like \"ad June
+-- 2015\", \"ad April 2015\", or simply \"ad 2015\". Most of the searches
+-- also add wildcards implicitly at the start and the end of the search
+-- string. For example, a search string of \"ad\" will match objects with
+-- name \"my ad\", \"ad 2015\", or simply \"ad\".
+alSearchString :: Lens' AdsList (Maybe Text)
+alSearchString
+  = lens _alSearchString
+      (\ s a -> s{_alSearchString = a})
+
+-- | Select only ads with these size IDs.
+alSizeIds :: Lens' AdsList [Int64]
+alSizeIds
+  = lens _alSizeIds (\ s a -> s{_alSizeIds = a}) .
+      _Default
+      . _Coerce
+
+-- | Select only ads that are SSL-compliant.
+alSSLCompliant :: Lens' AdsList (Maybe Bool)
+alSSLCompliant
+  = lens _alSSLCompliant
+      (\ s a -> s{_alSSLCompliant = a})
+
+-- | Select only ads with these IDs.
+alIds :: Lens' AdsList [Int64]
+alIds
+  = lens _alIds (\ s a -> s{_alIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+alProFileId :: Lens' AdsList Int64
+alProFileId
+  = lens _alProFileId (\ s a -> s{_alProFileId = a}) .
+      _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+alSortOrder :: Lens' AdsList (Maybe AdsListSortOrder)
+alSortOrder
+  = lens _alSortOrder (\ s a -> s{_alSortOrder = a})
+
+-- | Select only active ads.
+alActive :: Lens' AdsList (Maybe Bool)
+alActive = lens _alActive (\ s a -> s{_alActive = a})
+
+-- | Select only ads with these creative optimization configuration IDs.
+alCreativeOptimizationConfigurationIds :: Lens' AdsList [Int64]
+alCreativeOptimizationConfigurationIds
+  = lens _alCreativeOptimizationConfigurationIds
+      (\ s a ->
+         s{_alCreativeOptimizationConfigurationIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only ads with these placement IDs assigned.
+alPlacementIds :: Lens' AdsList [Int64]
+alPlacementIds
+  = lens _alPlacementIds
+      (\ s a -> s{_alPlacementIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only ads that require SSL.
+alSSLRequired :: Lens' AdsList (Maybe Bool)
+alSSLRequired
+  = lens _alSSLRequired
+      (\ s a -> s{_alSSLRequired = a})
+
+-- | Select only ads with this event tag override ID.
+alOverriddenEventTagId :: Lens' AdsList (Maybe Int64)
+alOverriddenEventTagId
+  = lens _alOverriddenEventTagId
+      (\ s a -> s{_alOverriddenEventTagId = a})
+      . mapping _Coerce
+
+-- | Value of the nextPageToken from the previous result page.
+alPageToken :: Lens' AdsList (Maybe Text)
+alPageToken
+  = lens _alPageToken (\ s a -> s{_alPageToken = a})
+
+-- | Field by which to sort the list.
+alSortField :: Lens' AdsList (Maybe AdsListSortField)
+alSortField
+  = lens _alSortField (\ s a -> s{_alSortField = a})
+
+-- | Select only ads with these types.
+alType :: Lens' AdsList [AdsListType]
+alType
+  = lens _alType (\ s a -> s{_alType = a}) . _Default .
+      _Coerce
+
+-- | Select only ads with the specified creativeType.
+alCreativeType :: Lens' AdsList (Maybe AdsListCreativeType)
+alCreativeType
+  = lens _alCreativeType
+      (\ s a -> s{_alCreativeType = a})
+
+-- | Select only dynamic click trackers. Applicable when type is
+-- AD_SERVING_CLICK_TRACKER. If true, select dynamic click trackers. If
+-- false, select static click trackers. Leave unset to select both.
+alDynamicClickTracker :: Lens' AdsList (Maybe Bool)
+alDynamicClickTracker
+  = lens _alDynamicClickTracker
+      (\ s a -> s{_alDynamicClickTracker = a})
+
+-- | Select default ads with the specified compatibility. Applicable when
+-- type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to
+-- rendering either on desktop or on mobile devices for regular or
+-- interstitial ads, respectively. APP and APP_INTERSTITIAL are for
+-- rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an
+-- in-stream video ads developed with the VAST standard.
+alCompatibility :: Lens' AdsList (Maybe AdsListCompatibility)
+alCompatibility
+  = lens _alCompatibility
+      (\ s a -> s{_alCompatibility = a})
+
+-- | Select only archived ads.
+alArchived :: Lens' AdsList (Maybe Bool)
+alArchived
+  = lens _alArchived (\ s a -> s{_alArchived = a})
+
+-- | Maximum number of results to return.
+alMaxResults :: Lens' AdsList (Maybe Int32)
+alMaxResults
+  = lens _alMaxResults (\ s a -> s{_alMaxResults = a})
+      . mapping _Coerce
+
+-- | Select only ads with these audience segment IDs.
+alAudienceSegmentIds :: Lens' AdsList [Int64]
+alAudienceSegmentIds
+  = lens _alAudienceSegmentIds
+      (\ s a -> s{_alAudienceSegmentIds = a})
+      . _Default
+      . _Coerce
+
+instance GoogleRequest AdsList where
+        type Rs AdsList = AdsListResponse
+        requestClient AdsList{..}
+          = go _alProFileId (_alRemarketingListIds ^. _Default)
+              (_alLandingPageIds ^. _Default)
+              (_alCreativeIds ^. _Default)
+              _alAdvertiserId
+              (_alCampaignIds ^. _Default)
+              _alSearchString
+              (_alSizeIds ^. _Default)
+              _alSSLCompliant
+              (_alIds ^. _Default)
+              _alSortOrder
+              _alActive
+              (_alCreativeOptimizationConfigurationIds ^. _Default)
+              (_alPlacementIds ^. _Default)
+              _alSSLRequired
+              _alOverriddenEventTagId
+              _alPageToken
+              _alSortField
+              (_alType ^. _Default)
+              _alCreativeType
+              _alDynamicClickTracker
+              _alCompatibility
+              _alArchived
+              _alMaxResults
+              (_alAudienceSegmentIds ^. _Default)
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy AdsListResource) mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Ads/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Ads/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Ads/Patch.hs
@@ -0,0 +1,111 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Ads.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing ad. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.ads.patch@.
+module Network.Google.Resource.DFAReporting.Ads.Patch
+    (
+    -- * REST Resource
+      AdsPatchResource
+
+    -- * Creating a Request
+    , adsPatch
+    , AdsPatch
+
+    -- * Request Lenses
+    , adsdProFileId
+    , adsdPayload
+    , adsdId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.ads.patch@ method which the
+-- 'AdsPatch' request conforms to.
+type AdsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "ads" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] Ad :> Patch '[JSON] Ad
+
+-- | Updates an existing ad. This method supports patch semantics.
+--
+-- /See:/ 'adsPatch' smart constructor.
+data AdsPatch = AdsPatch
+    { _adsdProFileId :: !(Textual Int64)
+    , _adsdPayload   :: !Ad
+    , _adsdId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'adsdProFileId'
+--
+-- * 'adsdPayload'
+--
+-- * 'adsdId'
+adsPatch
+    :: Int64 -- ^ 'adsdProFileId'
+    -> Ad -- ^ 'adsdPayload'
+    -> Int64 -- ^ 'adsdId'
+    -> AdsPatch
+adsPatch pAdsdProFileId_ pAdsdPayload_ pAdsdId_ =
+    AdsPatch
+    { _adsdProFileId = _Coerce # pAdsdProFileId_
+    , _adsdPayload = pAdsdPayload_
+    , _adsdId = _Coerce # pAdsdId_
+    }
+
+-- | User profile ID associated with this request.
+adsdProFileId :: Lens' AdsPatch Int64
+adsdProFileId
+  = lens _adsdProFileId
+      (\ s a -> s{_adsdProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+adsdPayload :: Lens' AdsPatch Ad
+adsdPayload
+  = lens _adsdPayload (\ s a -> s{_adsdPayload = a})
+
+-- | Ad ID.
+adsdId :: Lens' AdsPatch Int64
+adsdId
+  = lens _adsdId (\ s a -> s{_adsdId = a}) . _Coerce
+
+instance GoogleRequest AdsPatch where
+        type Rs AdsPatch = Ad
+        requestClient AdsPatch{..}
+          = go _adsdProFileId (Just _adsdId) (Just AltJSON)
+              _adsdPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy AdsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Ads/Update.hs b/gen/Network/Google/Resource/DFAReporting/Ads/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Ads/Update.hs
@@ -0,0 +1,96 @@
+{-# 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.DFAReporting.Ads.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing ad.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.ads.update@.
+module Network.Google.Resource.DFAReporting.Ads.Update
+    (
+    -- * REST Resource
+      AdsUpdateResource
+
+    -- * Creating a Request
+    , adsUpdate
+    , AdsUpdate
+
+    -- * Request Lenses
+    , aProFileId
+    , aPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.ads.update@ method which the
+-- 'AdsUpdate' request conforms to.
+type AdsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "ads" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Ad :> Put '[JSON] Ad
+
+-- | Updates an existing ad.
+--
+-- /See:/ 'adsUpdate' smart constructor.
+data AdsUpdate = AdsUpdate
+    { _aProFileId :: !(Textual Int64)
+    , _aPayload   :: !Ad
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aProFileId'
+--
+-- * 'aPayload'
+adsUpdate
+    :: Int64 -- ^ 'aProFileId'
+    -> Ad -- ^ 'aPayload'
+    -> AdsUpdate
+adsUpdate pAProFileId_ pAPayload_ =
+    AdsUpdate
+    { _aProFileId = _Coerce # pAProFileId_
+    , _aPayload = pAPayload_
+    }
+
+-- | User profile ID associated with this request.
+aProFileId :: Lens' AdsUpdate Int64
+aProFileId
+  = lens _aProFileId (\ s a -> s{_aProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+aPayload :: Lens' AdsUpdate Ad
+aPayload = lens _aPayload (\ s a -> s{_aPayload = a})
+
+instance GoogleRequest AdsUpdate where
+        type Rs AdsUpdate = Ad
+        requestClient AdsUpdate{..}
+          = go _aProFileId (Just AltJSON) _aPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy AdsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Delete.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Delete.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.AdvertiserGroups.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing advertiser group.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertiserGroups.delete@.
+module Network.Google.Resource.DFAReporting.AdvertiserGroups.Delete
+    (
+    -- * REST Resource
+      AdvertiserGroupsDeleteResource
+
+    -- * Creating a Request
+    , advertiserGroupsDelete
+    , AdvertiserGroupsDelete
+
+    -- * Request Lenses
+    , agdProFileId
+    , agdId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertiserGroups.delete@ method which the
+-- 'AdvertiserGroupsDelete' request conforms to.
+type AdvertiserGroupsDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertiserGroups" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing advertiser group.
+--
+-- /See:/ 'advertiserGroupsDelete' smart constructor.
+data AdvertiserGroupsDelete = AdvertiserGroupsDelete
+    { _agdProFileId :: !(Textual Int64)
+    , _agdId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertiserGroupsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'agdProFileId'
+--
+-- * 'agdId'
+advertiserGroupsDelete
+    :: Int64 -- ^ 'agdProFileId'
+    -> Int64 -- ^ 'agdId'
+    -> AdvertiserGroupsDelete
+advertiserGroupsDelete pAgdProFileId_ pAgdId_ =
+    AdvertiserGroupsDelete
+    { _agdProFileId = _Coerce # pAgdProFileId_
+    , _agdId = _Coerce # pAgdId_
+    }
+
+-- | User profile ID associated with this request.
+agdProFileId :: Lens' AdvertiserGroupsDelete Int64
+agdProFileId
+  = lens _agdProFileId (\ s a -> s{_agdProFileId = a})
+      . _Coerce
+
+-- | Advertiser group ID.
+agdId :: Lens' AdvertiserGroupsDelete Int64
+agdId
+  = lens _agdId (\ s a -> s{_agdId = a}) . _Coerce
+
+instance GoogleRequest AdvertiserGroupsDelete where
+        type Rs AdvertiserGroupsDelete = ()
+        requestClient AdvertiserGroupsDelete{..}
+          = go _agdProFileId _agdId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AdvertiserGroupsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Get.hs
@@ -0,0 +1,100 @@
+{-# 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.DFAReporting.AdvertiserGroups.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one advertiser group by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertiserGroups.get@.
+module Network.Google.Resource.DFAReporting.AdvertiserGroups.Get
+    (
+    -- * REST Resource
+      AdvertiserGroupsGetResource
+
+    -- * Creating a Request
+    , advertiserGroupsGet
+    , AdvertiserGroupsGet
+
+    -- * Request Lenses
+    , agggProFileId
+    , agggId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertiserGroups.get@ method which the
+-- 'AdvertiserGroupsGet' request conforms to.
+type AdvertiserGroupsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertiserGroups" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] AdvertiserGroup
+
+-- | Gets one advertiser group by ID.
+--
+-- /See:/ 'advertiserGroupsGet' smart constructor.
+data AdvertiserGroupsGet = AdvertiserGroupsGet
+    { _agggProFileId :: !(Textual Int64)
+    , _agggId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertiserGroupsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'agggProFileId'
+--
+-- * 'agggId'
+advertiserGroupsGet
+    :: Int64 -- ^ 'agggProFileId'
+    -> Int64 -- ^ 'agggId'
+    -> AdvertiserGroupsGet
+advertiserGroupsGet pAgggProFileId_ pAgggId_ =
+    AdvertiserGroupsGet
+    { _agggProFileId = _Coerce # pAgggProFileId_
+    , _agggId = _Coerce # pAgggId_
+    }
+
+-- | User profile ID associated with this request.
+agggProFileId :: Lens' AdvertiserGroupsGet Int64
+agggProFileId
+  = lens _agggProFileId
+      (\ s a -> s{_agggProFileId = a})
+      . _Coerce
+
+-- | Advertiser group ID.
+agggId :: Lens' AdvertiserGroupsGet Int64
+agggId
+  = lens _agggId (\ s a -> s{_agggId = a}) . _Coerce
+
+instance GoogleRequest AdvertiserGroupsGet where
+        type Rs AdvertiserGroupsGet = AdvertiserGroup
+        requestClient AdvertiserGroupsGet{..}
+          = go _agggProFileId _agggId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AdvertiserGroupsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Insert.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Insert.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.AdvertiserGroups.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new advertiser group.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertiserGroups.insert@.
+module Network.Google.Resource.DFAReporting.AdvertiserGroups.Insert
+    (
+    -- * REST Resource
+      AdvertiserGroupsInsertResource
+
+    -- * Creating a Request
+    , advertiserGroupsInsert
+    , AdvertiserGroupsInsert
+
+    -- * Request Lenses
+    , agiProFileId
+    , agiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertiserGroups.insert@ method which the
+-- 'AdvertiserGroupsInsert' request conforms to.
+type AdvertiserGroupsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertiserGroups" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] AdvertiserGroup :>
+                   Post '[JSON] AdvertiserGroup
+
+-- | Inserts a new advertiser group.
+--
+-- /See:/ 'advertiserGroupsInsert' smart constructor.
+data AdvertiserGroupsInsert = AdvertiserGroupsInsert
+    { _agiProFileId :: !(Textual Int64)
+    , _agiPayload   :: !AdvertiserGroup
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertiserGroupsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'agiProFileId'
+--
+-- * 'agiPayload'
+advertiserGroupsInsert
+    :: Int64 -- ^ 'agiProFileId'
+    -> AdvertiserGroup -- ^ 'agiPayload'
+    -> AdvertiserGroupsInsert
+advertiserGroupsInsert pAgiProFileId_ pAgiPayload_ =
+    AdvertiserGroupsInsert
+    { _agiProFileId = _Coerce # pAgiProFileId_
+    , _agiPayload = pAgiPayload_
+    }
+
+-- | User profile ID associated with this request.
+agiProFileId :: Lens' AdvertiserGroupsInsert Int64
+agiProFileId
+  = lens _agiProFileId (\ s a -> s{_agiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+agiPayload :: Lens' AdvertiserGroupsInsert AdvertiserGroup
+agiPayload
+  = lens _agiPayload (\ s a -> s{_agiPayload = a})
+
+instance GoogleRequest AdvertiserGroupsInsert where
+        type Rs AdvertiserGroupsInsert = AdvertiserGroup
+        requestClient AdvertiserGroupsInsert{..}
+          = go _agiProFileId (Just AltJSON) _agiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AdvertiserGroupsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/List.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.AdvertiserGroups.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of advertiser groups, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertiserGroups.list@.
+module Network.Google.Resource.DFAReporting.AdvertiserGroups.List
+    (
+    -- * REST Resource
+      AdvertiserGroupsListResource
+
+    -- * Creating a Request
+    , advertiserGroupsList
+    , AdvertiserGroupsList
+
+    -- * Request Lenses
+    , aglSearchString
+    , aglIds
+    , aglProFileId
+    , aglSortOrder
+    , aglPageToken
+    , aglSortField
+    , aglMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertiserGroups.list@ method which the
+-- 'AdvertiserGroupsList' request conforms to.
+type AdvertiserGroupsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertiserGroups" :>
+               QueryParam "searchString" Text :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParam "sortOrder" AdvertiserGroupsListSortOrder
+                     :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "sortField" AdvertiserGroupsListSortField
+                         :>
+                         QueryParam "maxResults" (Textual Int32) :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] AdvertiserGroupsListResponse
+
+-- | Retrieves a list of advertiser groups, possibly filtered.
+--
+-- /See:/ 'advertiserGroupsList' smart constructor.
+data AdvertiserGroupsList = AdvertiserGroupsList
+    { _aglSearchString :: !(Maybe Text)
+    , _aglIds          :: !(Maybe [Textual Int64])
+    , _aglProFileId    :: !(Textual Int64)
+    , _aglSortOrder    :: !(Maybe AdvertiserGroupsListSortOrder)
+    , _aglPageToken    :: !(Maybe Text)
+    , _aglSortField    :: !(Maybe AdvertiserGroupsListSortField)
+    , _aglMaxResults   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertiserGroupsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aglSearchString'
+--
+-- * 'aglIds'
+--
+-- * 'aglProFileId'
+--
+-- * 'aglSortOrder'
+--
+-- * 'aglPageToken'
+--
+-- * 'aglSortField'
+--
+-- * 'aglMaxResults'
+advertiserGroupsList
+    :: Int64 -- ^ 'aglProFileId'
+    -> AdvertiserGroupsList
+advertiserGroupsList pAglProFileId_ =
+    AdvertiserGroupsList
+    { _aglSearchString = Nothing
+    , _aglIds = Nothing
+    , _aglProFileId = _Coerce # pAglProFileId_
+    , _aglSortOrder = Nothing
+    , _aglPageToken = Nothing
+    , _aglSortField = Nothing
+    , _aglMaxResults = Nothing
+    }
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"advertiser*2015\" will return objects with names like
+-- \"advertiser group June 2015\", \"advertiser group April 2015\", or
+-- simply \"advertiser group 2015\". Most of the searches also add
+-- wildcards implicitly at the start and the end of the search string. For
+-- example, a search string of \"advertisergroup\" will match objects with
+-- name \"my advertisergroup\", \"advertisergroup 2015\", or simply
+-- \"advertisergroup\".
+aglSearchString :: Lens' AdvertiserGroupsList (Maybe Text)
+aglSearchString
+  = lens _aglSearchString
+      (\ s a -> s{_aglSearchString = a})
+
+-- | Select only advertiser groups with these IDs.
+aglIds :: Lens' AdvertiserGroupsList [Int64]
+aglIds
+  = lens _aglIds (\ s a -> s{_aglIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+aglProFileId :: Lens' AdvertiserGroupsList Int64
+aglProFileId
+  = lens _aglProFileId (\ s a -> s{_aglProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+aglSortOrder :: Lens' AdvertiserGroupsList (Maybe AdvertiserGroupsListSortOrder)
+aglSortOrder
+  = lens _aglSortOrder (\ s a -> s{_aglSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+aglPageToken :: Lens' AdvertiserGroupsList (Maybe Text)
+aglPageToken
+  = lens _aglPageToken (\ s a -> s{_aglPageToken = a})
+
+-- | Field by which to sort the list.
+aglSortField :: Lens' AdvertiserGroupsList (Maybe AdvertiserGroupsListSortField)
+aglSortField
+  = lens _aglSortField (\ s a -> s{_aglSortField = a})
+
+-- | Maximum number of results to return.
+aglMaxResults :: Lens' AdvertiserGroupsList (Maybe Int32)
+aglMaxResults
+  = lens _aglMaxResults
+      (\ s a -> s{_aglMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AdvertiserGroupsList where
+        type Rs AdvertiserGroupsList =
+             AdvertiserGroupsListResponse
+        requestClient AdvertiserGroupsList{..}
+          = go _aglProFileId _aglSearchString
+              (_aglIds ^. _Default)
+              _aglSortOrder
+              _aglPageToken
+              _aglSortField
+              _aglMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AdvertiserGroupsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Patch.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Patch.hs
@@ -0,0 +1,114 @@
+{-# 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.DFAReporting.AdvertiserGroups.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing advertiser group. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertiserGroups.patch@.
+module Network.Google.Resource.DFAReporting.AdvertiserGroups.Patch
+    (
+    -- * REST Resource
+      AdvertiserGroupsPatchResource
+
+    -- * Creating a Request
+    , advertiserGroupsPatch
+    , AdvertiserGroupsPatch
+
+    -- * Request Lenses
+    , agpProFileId
+    , agpPayload
+    , agpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertiserGroups.patch@ method which the
+-- 'AdvertiserGroupsPatch' request conforms to.
+type AdvertiserGroupsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertiserGroups" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] AdvertiserGroup :>
+                     Patch '[JSON] AdvertiserGroup
+
+-- | Updates an existing advertiser group. This method supports patch
+-- semantics.
+--
+-- /See:/ 'advertiserGroupsPatch' smart constructor.
+data AdvertiserGroupsPatch = AdvertiserGroupsPatch
+    { _agpProFileId :: !(Textual Int64)
+    , _agpPayload   :: !AdvertiserGroup
+    , _agpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertiserGroupsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'agpProFileId'
+--
+-- * 'agpPayload'
+--
+-- * 'agpId'
+advertiserGroupsPatch
+    :: Int64 -- ^ 'agpProFileId'
+    -> AdvertiserGroup -- ^ 'agpPayload'
+    -> Int64 -- ^ 'agpId'
+    -> AdvertiserGroupsPatch
+advertiserGroupsPatch pAgpProFileId_ pAgpPayload_ pAgpId_ =
+    AdvertiserGroupsPatch
+    { _agpProFileId = _Coerce # pAgpProFileId_
+    , _agpPayload = pAgpPayload_
+    , _agpId = _Coerce # pAgpId_
+    }
+
+-- | User profile ID associated with this request.
+agpProFileId :: Lens' AdvertiserGroupsPatch Int64
+agpProFileId
+  = lens _agpProFileId (\ s a -> s{_agpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+agpPayload :: Lens' AdvertiserGroupsPatch AdvertiserGroup
+agpPayload
+  = lens _agpPayload (\ s a -> s{_agpPayload = a})
+
+-- | Advertiser group ID.
+agpId :: Lens' AdvertiserGroupsPatch Int64
+agpId
+  = lens _agpId (\ s a -> s{_agpId = a}) . _Coerce
+
+instance GoogleRequest AdvertiserGroupsPatch where
+        type Rs AdvertiserGroupsPatch = AdvertiserGroup
+        requestClient AdvertiserGroupsPatch{..}
+          = go _agpProFileId (Just _agpId) (Just AltJSON)
+              _agpPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AdvertiserGroupsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Update.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Update.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.AdvertiserGroups.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing advertiser group.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertiserGroups.update@.
+module Network.Google.Resource.DFAReporting.AdvertiserGroups.Update
+    (
+    -- * REST Resource
+      AdvertiserGroupsUpdateResource
+
+    -- * Creating a Request
+    , advertiserGroupsUpdate
+    , AdvertiserGroupsUpdate
+
+    -- * Request Lenses
+    , aguProFileId
+    , aguPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertiserGroups.update@ method which the
+-- 'AdvertiserGroupsUpdate' request conforms to.
+type AdvertiserGroupsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertiserGroups" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] AdvertiserGroup :>
+                   Put '[JSON] AdvertiserGroup
+
+-- | Updates an existing advertiser group.
+--
+-- /See:/ 'advertiserGroupsUpdate' smart constructor.
+data AdvertiserGroupsUpdate = AdvertiserGroupsUpdate
+    { _aguProFileId :: !(Textual Int64)
+    , _aguPayload   :: !AdvertiserGroup
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertiserGroupsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aguProFileId'
+--
+-- * 'aguPayload'
+advertiserGroupsUpdate
+    :: Int64 -- ^ 'aguProFileId'
+    -> AdvertiserGroup -- ^ 'aguPayload'
+    -> AdvertiserGroupsUpdate
+advertiserGroupsUpdate pAguProFileId_ pAguPayload_ =
+    AdvertiserGroupsUpdate
+    { _aguProFileId = _Coerce # pAguProFileId_
+    , _aguPayload = pAguPayload_
+    }
+
+-- | User profile ID associated with this request.
+aguProFileId :: Lens' AdvertiserGroupsUpdate Int64
+aguProFileId
+  = lens _aguProFileId (\ s a -> s{_aguProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+aguPayload :: Lens' AdvertiserGroupsUpdate AdvertiserGroup
+aguPayload
+  = lens _aguPayload (\ s a -> s{_aguPayload = a})
+
+instance GoogleRequest AdvertiserGroupsUpdate where
+        type Rs AdvertiserGroupsUpdate = AdvertiserGroup
+        requestClient AdvertiserGroupsUpdate{..}
+          = go _aguProFileId (Just AltJSON) _aguPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AdvertiserGroupsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Advertisers/Get.hs b/gen/Network/Google/Resource/DFAReporting/Advertisers/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Advertisers/Get.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Advertisers.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one advertiser by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertisers.get@.
+module Network.Google.Resource.DFAReporting.Advertisers.Get
+    (
+    -- * REST Resource
+      AdvertisersGetResource
+
+    -- * Creating a Request
+    , advertisersGet
+    , AdvertisersGet
+
+    -- * Request Lenses
+    , advProFileId
+    , advId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertisers.get@ method which the
+-- 'AdvertisersGet' request conforms to.
+type AdvertisersGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertisers" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Advertiser
+
+-- | Gets one advertiser by ID.
+--
+-- /See:/ 'advertisersGet' smart constructor.
+data AdvertisersGet = AdvertisersGet
+    { _advProFileId :: !(Textual Int64)
+    , _advId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertisersGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'advProFileId'
+--
+-- * 'advId'
+advertisersGet
+    :: Int64 -- ^ 'advProFileId'
+    -> Int64 -- ^ 'advId'
+    -> AdvertisersGet
+advertisersGet pAdvProFileId_ pAdvId_ =
+    AdvertisersGet
+    { _advProFileId = _Coerce # pAdvProFileId_
+    , _advId = _Coerce # pAdvId_
+    }
+
+-- | User profile ID associated with this request.
+advProFileId :: Lens' AdvertisersGet Int64
+advProFileId
+  = lens _advProFileId (\ s a -> s{_advProFileId = a})
+      . _Coerce
+
+-- | Advertiser ID.
+advId :: Lens' AdvertisersGet Int64
+advId
+  = lens _advId (\ s a -> s{_advId = a}) . _Coerce
+
+instance GoogleRequest AdvertisersGet where
+        type Rs AdvertisersGet = Advertiser
+        requestClient AdvertisersGet{..}
+          = go _advProFileId _advId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy AdvertisersGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Advertisers/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Advertisers/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Advertisers/Insert.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Advertisers.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new advertiser.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertisers.insert@.
+module Network.Google.Resource.DFAReporting.Advertisers.Insert
+    (
+    -- * REST Resource
+      AdvertisersInsertResource
+
+    -- * Creating a Request
+    , advertisersInsert
+    , AdvertisersInsert
+
+    -- * Request Lenses
+    , aiiProFileId
+    , aiiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertisers.insert@ method which the
+-- 'AdvertisersInsert' request conforms to.
+type AdvertisersInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertisers" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Advertiser :> Post '[JSON] Advertiser
+
+-- | Inserts a new advertiser.
+--
+-- /See:/ 'advertisersInsert' smart constructor.
+data AdvertisersInsert = AdvertisersInsert
+    { _aiiProFileId :: !(Textual Int64)
+    , _aiiPayload   :: !Advertiser
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertisersInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aiiProFileId'
+--
+-- * 'aiiPayload'
+advertisersInsert
+    :: Int64 -- ^ 'aiiProFileId'
+    -> Advertiser -- ^ 'aiiPayload'
+    -> AdvertisersInsert
+advertisersInsert pAiiProFileId_ pAiiPayload_ =
+    AdvertisersInsert
+    { _aiiProFileId = _Coerce # pAiiProFileId_
+    , _aiiPayload = pAiiPayload_
+    }
+
+-- | User profile ID associated with this request.
+aiiProFileId :: Lens' AdvertisersInsert Int64
+aiiProFileId
+  = lens _aiiProFileId (\ s a -> s{_aiiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+aiiPayload :: Lens' AdvertisersInsert Advertiser
+aiiPayload
+  = lens _aiiPayload (\ s a -> s{_aiiPayload = a})
+
+instance GoogleRequest AdvertisersInsert where
+        type Rs AdvertisersInsert = Advertiser
+        requestClient AdvertisersInsert{..}
+          = go _aiiProFileId (Just AltJSON) _aiiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AdvertisersInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Advertisers/List.hs b/gen/Network/Google/Resource/DFAReporting/Advertisers/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Advertisers/List.hs
@@ -0,0 +1,256 @@
+{-# 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.DFAReporting.Advertisers.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of advertisers, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertisers.list@.
+module Network.Google.Resource.DFAReporting.Advertisers.List
+    (
+    -- * REST Resource
+      AdvertisersListResource
+
+    -- * Creating a Request
+    , advertisersList
+    , AdvertisersList
+
+    -- * Request Lenses
+    , allStatus
+    , allOnlyParent
+    , allSearchString
+    , allIds
+    , allIncludeAdvertisersWithoutGroupsOnly
+    , allProFileId
+    , allSortOrder
+    , allAdvertiserGroupIds
+    , allPageToken
+    , allSortField
+    , allSubAccountId
+    , allFloodlightConfigurationIds
+    , allMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertisers.list@ method which the
+-- 'AdvertisersList' request conforms to.
+type AdvertisersListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertisers" :>
+               QueryParam "status" AdvertisersListStatus :>
+                 QueryParam "onlyParent" Bool :>
+                   QueryParam "searchString" Text :>
+                     QueryParams "ids" (Textual Int64) :>
+                       QueryParam "includeAdvertisersWithoutGroupsOnly" Bool
+                         :>
+                         QueryParam "sortOrder" AdvertisersListSortOrder :>
+                           QueryParams "advertiserGroupIds" (Textual Int64) :>
+                             QueryParam "pageToken" Text :>
+                               QueryParam "sortField" AdvertisersListSortField
+                                 :>
+                                 QueryParam "subaccountId" (Textual Int64) :>
+                                   QueryParams "floodlightConfigurationIds"
+                                     (Textual Int64)
+                                     :>
+                                     QueryParam "maxResults" (Textual Int32) :>
+                                       QueryParam "alt" AltJSON :>
+                                         Get '[JSON] AdvertisersListResponse
+
+-- | Retrieves a list of advertisers, possibly filtered.
+--
+-- /See:/ 'advertisersList' smart constructor.
+data AdvertisersList = AdvertisersList
+    { _allStatus                              :: !(Maybe AdvertisersListStatus)
+    , _allOnlyParent                          :: !(Maybe Bool)
+    , _allSearchString                        :: !(Maybe Text)
+    , _allIds                                 :: !(Maybe [Textual Int64])
+    , _allIncludeAdvertisersWithoutGroupsOnly :: !(Maybe Bool)
+    , _allProFileId                           :: !(Textual Int64)
+    , _allSortOrder                           :: !(Maybe AdvertisersListSortOrder)
+    , _allAdvertiserGroupIds                  :: !(Maybe [Textual Int64])
+    , _allPageToken                           :: !(Maybe Text)
+    , _allSortField                           :: !(Maybe AdvertisersListSortField)
+    , _allSubAccountId                        :: !(Maybe (Textual Int64))
+    , _allFloodlightConfigurationIds          :: !(Maybe [Textual Int64])
+    , _allMaxResults                          :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertisersList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'allStatus'
+--
+-- * 'allOnlyParent'
+--
+-- * 'allSearchString'
+--
+-- * 'allIds'
+--
+-- * 'allIncludeAdvertisersWithoutGroupsOnly'
+--
+-- * 'allProFileId'
+--
+-- * 'allSortOrder'
+--
+-- * 'allAdvertiserGroupIds'
+--
+-- * 'allPageToken'
+--
+-- * 'allSortField'
+--
+-- * 'allSubAccountId'
+--
+-- * 'allFloodlightConfigurationIds'
+--
+-- * 'allMaxResults'
+advertisersList
+    :: Int64 -- ^ 'allProFileId'
+    -> AdvertisersList
+advertisersList pAllProFileId_ =
+    AdvertisersList
+    { _allStatus = Nothing
+    , _allOnlyParent = Nothing
+    , _allSearchString = Nothing
+    , _allIds = Nothing
+    , _allIncludeAdvertisersWithoutGroupsOnly = Nothing
+    , _allProFileId = _Coerce # pAllProFileId_
+    , _allSortOrder = Nothing
+    , _allAdvertiserGroupIds = Nothing
+    , _allPageToken = Nothing
+    , _allSortField = Nothing
+    , _allSubAccountId = Nothing
+    , _allFloodlightConfigurationIds = Nothing
+    , _allMaxResults = Nothing
+    }
+
+-- | Select only advertisers with the specified status.
+allStatus :: Lens' AdvertisersList (Maybe AdvertisersListStatus)
+allStatus
+  = lens _allStatus (\ s a -> s{_allStatus = a})
+
+-- | Select only advertisers which use another advertiser\'s floodlight
+-- configuration.
+allOnlyParent :: Lens' AdvertisersList (Maybe Bool)
+allOnlyParent
+  = lens _allOnlyParent
+      (\ s a -> s{_allOnlyParent = a})
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"advertiser*2015\" will return objects with names like
+-- \"advertiser June 2015\", \"advertiser April 2015\", or simply
+-- \"advertiser 2015\". Most of the searches also add wildcards implicitly
+-- at the start and the end of the search string. For example, a search
+-- string of \"advertiser\" will match objects with name \"my advertiser\",
+-- \"advertiser 2015\", or simply \"advertiser\".
+allSearchString :: Lens' AdvertisersList (Maybe Text)
+allSearchString
+  = lens _allSearchString
+      (\ s a -> s{_allSearchString = a})
+
+-- | Select only advertisers with these IDs.
+allIds :: Lens' AdvertisersList [Int64]
+allIds
+  = lens _allIds (\ s a -> s{_allIds = a}) . _Default .
+      _Coerce
+
+-- | Select only advertisers which do not belong to any advertiser group.
+allIncludeAdvertisersWithoutGroupsOnly :: Lens' AdvertisersList (Maybe Bool)
+allIncludeAdvertisersWithoutGroupsOnly
+  = lens _allIncludeAdvertisersWithoutGroupsOnly
+      (\ s a ->
+         s{_allIncludeAdvertisersWithoutGroupsOnly = a})
+
+-- | User profile ID associated with this request.
+allProFileId :: Lens' AdvertisersList Int64
+allProFileId
+  = lens _allProFileId (\ s a -> s{_allProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+allSortOrder :: Lens' AdvertisersList (Maybe AdvertisersListSortOrder)
+allSortOrder
+  = lens _allSortOrder (\ s a -> s{_allSortOrder = a})
+
+-- | Select only advertisers with these advertiser group IDs.
+allAdvertiserGroupIds :: Lens' AdvertisersList [Int64]
+allAdvertiserGroupIds
+  = lens _allAdvertiserGroupIds
+      (\ s a -> s{_allAdvertiserGroupIds = a})
+      . _Default
+      . _Coerce
+
+-- | Value of the nextPageToken from the previous result page.
+allPageToken :: Lens' AdvertisersList (Maybe Text)
+allPageToken
+  = lens _allPageToken (\ s a -> s{_allPageToken = a})
+
+-- | Field by which to sort the list.
+allSortField :: Lens' AdvertisersList (Maybe AdvertisersListSortField)
+allSortField
+  = lens _allSortField (\ s a -> s{_allSortField = a})
+
+-- | Select only advertisers with these subaccount IDs.
+allSubAccountId :: Lens' AdvertisersList (Maybe Int64)
+allSubAccountId
+  = lens _allSubAccountId
+      (\ s a -> s{_allSubAccountId = a})
+      . mapping _Coerce
+
+-- | Select only advertisers with these floodlight configuration IDs.
+allFloodlightConfigurationIds :: Lens' AdvertisersList [Int64]
+allFloodlightConfigurationIds
+  = lens _allFloodlightConfigurationIds
+      (\ s a -> s{_allFloodlightConfigurationIds = a})
+      . _Default
+      . _Coerce
+
+-- | Maximum number of results to return.
+allMaxResults :: Lens' AdvertisersList (Maybe Int32)
+allMaxResults
+  = lens _allMaxResults
+      (\ s a -> s{_allMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest AdvertisersList where
+        type Rs AdvertisersList = AdvertisersListResponse
+        requestClient AdvertisersList{..}
+          = go _allProFileId _allStatus _allOnlyParent
+              _allSearchString
+              (_allIds ^. _Default)
+              _allIncludeAdvertisersWithoutGroupsOnly
+              _allSortOrder
+              (_allAdvertiserGroupIds ^. _Default)
+              _allPageToken
+              _allSortField
+              _allSubAccountId
+              (_allFloodlightConfigurationIds ^. _Default)
+              _allMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AdvertisersListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Advertisers/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Advertisers/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Advertisers/Patch.hs
@@ -0,0 +1,111 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Advertisers.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing advertiser. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertisers.patch@.
+module Network.Google.Resource.DFAReporting.Advertisers.Patch
+    (
+    -- * REST Resource
+      AdvertisersPatchResource
+
+    -- * Creating a Request
+    , advertisersPatch
+    , AdvertisersPatch
+
+    -- * Request Lenses
+    , apProFileId
+    , apPayload
+    , apId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertisers.patch@ method which the
+-- 'AdvertisersPatch' request conforms to.
+type AdvertisersPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertisers" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] Advertiser :>
+                     Patch '[JSON] Advertiser
+
+-- | Updates an existing advertiser. This method supports patch semantics.
+--
+-- /See:/ 'advertisersPatch' smart constructor.
+data AdvertisersPatch = AdvertisersPatch
+    { _apProFileId :: !(Textual Int64)
+    , _apPayload   :: !Advertiser
+    , _apId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertisersPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apProFileId'
+--
+-- * 'apPayload'
+--
+-- * 'apId'
+advertisersPatch
+    :: Int64 -- ^ 'apProFileId'
+    -> Advertiser -- ^ 'apPayload'
+    -> Int64 -- ^ 'apId'
+    -> AdvertisersPatch
+advertisersPatch pApProFileId_ pApPayload_ pApId_ =
+    AdvertisersPatch
+    { _apProFileId = _Coerce # pApProFileId_
+    , _apPayload = pApPayload_
+    , _apId = _Coerce # pApId_
+    }
+
+-- | User profile ID associated with this request.
+apProFileId :: Lens' AdvertisersPatch Int64
+apProFileId
+  = lens _apProFileId (\ s a -> s{_apProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+apPayload :: Lens' AdvertisersPatch Advertiser
+apPayload
+  = lens _apPayload (\ s a -> s{_apPayload = a})
+
+-- | Advertiser ID.
+apId :: Lens' AdvertisersPatch Int64
+apId = lens _apId (\ s a -> s{_apId = a}) . _Coerce
+
+instance GoogleRequest AdvertisersPatch where
+        type Rs AdvertisersPatch = Advertiser
+        requestClient AdvertisersPatch{..}
+          = go _apProFileId (Just _apId) (Just AltJSON)
+              _apPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AdvertisersPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Advertisers/Update.hs b/gen/Network/Google/Resource/DFAReporting/Advertisers/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Advertisers/Update.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Advertisers.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing advertiser.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.advertisers.update@.
+module Network.Google.Resource.DFAReporting.Advertisers.Update
+    (
+    -- * REST Resource
+      AdvertisersUpdateResource
+
+    -- * Creating a Request
+    , advertisersUpdate
+    , AdvertisersUpdate
+
+    -- * Request Lenses
+    , auProFileId
+    , auPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.advertisers.update@ method which the
+-- 'AdvertisersUpdate' request conforms to.
+type AdvertisersUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "advertisers" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Advertiser :> Put '[JSON] Advertiser
+
+-- | Updates an existing advertiser.
+--
+-- /See:/ 'advertisersUpdate' smart constructor.
+data AdvertisersUpdate = AdvertisersUpdate
+    { _auProFileId :: !(Textual Int64)
+    , _auPayload   :: !Advertiser
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertisersUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'auProFileId'
+--
+-- * 'auPayload'
+advertisersUpdate
+    :: Int64 -- ^ 'auProFileId'
+    -> Advertiser -- ^ 'auPayload'
+    -> AdvertisersUpdate
+advertisersUpdate pAuProFileId_ pAuPayload_ =
+    AdvertisersUpdate
+    { _auProFileId = _Coerce # pAuProFileId_
+    , _auPayload = pAuPayload_
+    }
+
+-- | User profile ID associated with this request.
+auProFileId :: Lens' AdvertisersUpdate Int64
+auProFileId
+  = lens _auProFileId (\ s a -> s{_auProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+auPayload :: Lens' AdvertisersUpdate Advertiser
+auPayload
+  = lens _auPayload (\ s a -> s{_auPayload = a})
+
+instance GoogleRequest AdvertisersUpdate where
+        type Rs AdvertisersUpdate = Advertiser
+        requestClient AdvertisersUpdate{..}
+          = go _auProFileId (Just AltJSON) _auPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AdvertisersUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Browsers/List.hs b/gen/Network/Google/Resource/DFAReporting/Browsers/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Browsers/List.hs
@@ -0,0 +1,85 @@
+{-# 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.DFAReporting.Browsers.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of browsers.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.browsers.list@.
+module Network.Google.Resource.DFAReporting.Browsers.List
+    (
+    -- * REST Resource
+      BrowsersListResource
+
+    -- * Creating a Request
+    , browsersList
+    , BrowsersList
+
+    -- * Request Lenses
+    , blProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.browsers.list@ method which the
+-- 'BrowsersList' request conforms to.
+type BrowsersListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "browsers" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] BrowsersListResponse
+
+-- | Retrieves a list of browsers.
+--
+-- /See:/ 'browsersList' smart constructor.
+newtype BrowsersList = BrowsersList
+    { _blProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BrowsersList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blProFileId'
+browsersList
+    :: Int64 -- ^ 'blProFileId'
+    -> BrowsersList
+browsersList pBlProFileId_ =
+    BrowsersList
+    { _blProFileId = _Coerce # pBlProFileId_
+    }
+
+-- | User profile ID associated with this request.
+blProFileId :: Lens' BrowsersList Int64
+blProFileId
+  = lens _blProFileId (\ s a -> s{_blProFileId = a}) .
+      _Coerce
+
+instance GoogleRequest BrowsersList where
+        type Rs BrowsersList = BrowsersListResponse
+        requestClient BrowsersList{..}
+          = go _blProFileId (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy BrowsersListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/Insert.hs b/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/Insert.hs
@@ -0,0 +1,123 @@
+{-# 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.DFAReporting.CampaignCreativeAssociations.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Associates a creative with the specified campaign. This method creates a
+-- default ad with dimensions matching the creative in the campaign if such
+-- a default ad does not exist already.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.campaignCreativeAssociations.insert@.
+module Network.Google.Resource.DFAReporting.CampaignCreativeAssociations.Insert
+    (
+    -- * REST Resource
+      CampaignCreativeAssociationsInsertResource
+
+    -- * Creating a Request
+    , campaignCreativeAssociationsInsert
+    , CampaignCreativeAssociationsInsert
+
+    -- * Request Lenses
+    , ccaiCampaignId
+    , ccaiProFileId
+    , ccaiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.campaignCreativeAssociations.insert@ method which the
+-- 'CampaignCreativeAssociationsInsert' request conforms to.
+type CampaignCreativeAssociationsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               Capture "campaignId" (Textual Int64) :>
+                 "campaignCreativeAssociations" :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] CampaignCreativeAssociation :>
+                       Post '[JSON] CampaignCreativeAssociation
+
+-- | Associates a creative with the specified campaign. This method creates a
+-- default ad with dimensions matching the creative in the campaign if such
+-- a default ad does not exist already.
+--
+-- /See:/ 'campaignCreativeAssociationsInsert' smart constructor.
+data CampaignCreativeAssociationsInsert = CampaignCreativeAssociationsInsert
+    { _ccaiCampaignId :: !(Textual Int64)
+    , _ccaiProFileId  :: !(Textual Int64)
+    , _ccaiPayload    :: !CampaignCreativeAssociation
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignCreativeAssociationsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccaiCampaignId'
+--
+-- * 'ccaiProFileId'
+--
+-- * 'ccaiPayload'
+campaignCreativeAssociationsInsert
+    :: Int64 -- ^ 'ccaiCampaignId'
+    -> Int64 -- ^ 'ccaiProFileId'
+    -> CampaignCreativeAssociation -- ^ 'ccaiPayload'
+    -> CampaignCreativeAssociationsInsert
+campaignCreativeAssociationsInsert pCcaiCampaignId_ pCcaiProFileId_ pCcaiPayload_ =
+    CampaignCreativeAssociationsInsert
+    { _ccaiCampaignId = _Coerce # pCcaiCampaignId_
+    , _ccaiProFileId = _Coerce # pCcaiProFileId_
+    , _ccaiPayload = pCcaiPayload_
+    }
+
+-- | Campaign ID in this association.
+ccaiCampaignId :: Lens' CampaignCreativeAssociationsInsert Int64
+ccaiCampaignId
+  = lens _ccaiCampaignId
+      (\ s a -> s{_ccaiCampaignId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+ccaiProFileId :: Lens' CampaignCreativeAssociationsInsert Int64
+ccaiProFileId
+  = lens _ccaiProFileId
+      (\ s a -> s{_ccaiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+ccaiPayload :: Lens' CampaignCreativeAssociationsInsert CampaignCreativeAssociation
+ccaiPayload
+  = lens _ccaiPayload (\ s a -> s{_ccaiPayload = a})
+
+instance GoogleRequest
+         CampaignCreativeAssociationsInsert where
+        type Rs CampaignCreativeAssociationsInsert =
+             CampaignCreativeAssociation
+        requestClient CampaignCreativeAssociationsInsert{..}
+          = go _ccaiProFileId _ccaiCampaignId (Just AltJSON)
+              _ccaiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy CampaignCreativeAssociationsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/List.hs b/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/List.hs
@@ -0,0 +1,150 @@
+{-# 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.DFAReporting.CampaignCreativeAssociations.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of creative IDs associated with the specified
+-- campaign.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.campaignCreativeAssociations.list@.
+module Network.Google.Resource.DFAReporting.CampaignCreativeAssociations.List
+    (
+    -- * REST Resource
+      CampaignCreativeAssociationsListResource
+
+    -- * Creating a Request
+    , campaignCreativeAssociationsList
+    , CampaignCreativeAssociationsList
+
+    -- * Request Lenses
+    , ccalCampaignId
+    , ccalProFileId
+    , ccalSortOrder
+    , ccalPageToken
+    , ccalMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.campaignCreativeAssociations.list@ method which the
+-- 'CampaignCreativeAssociationsList' request conforms to.
+type CampaignCreativeAssociationsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               Capture "campaignId" (Textual Int64) :>
+                 "campaignCreativeAssociations" :>
+                   QueryParam "sortOrder"
+                     CampaignCreativeAssociationsListSortOrder
+                     :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "maxResults" (Textual Int32) :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] CampaignCreativeAssociationsListResponse
+
+-- | Retrieves the list of creative IDs associated with the specified
+-- campaign.
+--
+-- /See:/ 'campaignCreativeAssociationsList' smart constructor.
+data CampaignCreativeAssociationsList = CampaignCreativeAssociationsList
+    { _ccalCampaignId :: !(Textual Int64)
+    , _ccalProFileId  :: !(Textual Int64)
+    , _ccalSortOrder  :: !(Maybe CampaignCreativeAssociationsListSortOrder)
+    , _ccalPageToken  :: !(Maybe Text)
+    , _ccalMaxResults :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignCreativeAssociationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccalCampaignId'
+--
+-- * 'ccalProFileId'
+--
+-- * 'ccalSortOrder'
+--
+-- * 'ccalPageToken'
+--
+-- * 'ccalMaxResults'
+campaignCreativeAssociationsList
+    :: Int64 -- ^ 'ccalCampaignId'
+    -> Int64 -- ^ 'ccalProFileId'
+    -> CampaignCreativeAssociationsList
+campaignCreativeAssociationsList pCcalCampaignId_ pCcalProFileId_ =
+    CampaignCreativeAssociationsList
+    { _ccalCampaignId = _Coerce # pCcalCampaignId_
+    , _ccalProFileId = _Coerce # pCcalProFileId_
+    , _ccalSortOrder = Nothing
+    , _ccalPageToken = Nothing
+    , _ccalMaxResults = Nothing
+    }
+
+-- | Campaign ID in this association.
+ccalCampaignId :: Lens' CampaignCreativeAssociationsList Int64
+ccalCampaignId
+  = lens _ccalCampaignId
+      (\ s a -> s{_ccalCampaignId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+ccalProFileId :: Lens' CampaignCreativeAssociationsList Int64
+ccalProFileId
+  = lens _ccalProFileId
+      (\ s a -> s{_ccalProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+ccalSortOrder :: Lens' CampaignCreativeAssociationsList (Maybe CampaignCreativeAssociationsListSortOrder)
+ccalSortOrder
+  = lens _ccalSortOrder
+      (\ s a -> s{_ccalSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+ccalPageToken :: Lens' CampaignCreativeAssociationsList (Maybe Text)
+ccalPageToken
+  = lens _ccalPageToken
+      (\ s a -> s{_ccalPageToken = a})
+
+-- | Maximum number of results to return.
+ccalMaxResults :: Lens' CampaignCreativeAssociationsList (Maybe Int32)
+ccalMaxResults
+  = lens _ccalMaxResults
+      (\ s a -> s{_ccalMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest
+         CampaignCreativeAssociationsList where
+        type Rs CampaignCreativeAssociationsList =
+             CampaignCreativeAssociationsListResponse
+        requestClient CampaignCreativeAssociationsList{..}
+          = go _ccalProFileId _ccalCampaignId _ccalSortOrder
+              _ccalPageToken
+              _ccalMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy CampaignCreativeAssociationsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Campaigns/Get.hs b/gen/Network/Google/Resource/DFAReporting/Campaigns/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Campaigns/Get.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Campaigns.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one campaign by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.campaigns.get@.
+module Network.Google.Resource.DFAReporting.Campaigns.Get
+    (
+    -- * REST Resource
+      CampaignsGetResource
+
+    -- * Creating a Request
+    , campaignsGet
+    , CampaignsGet
+
+    -- * Request Lenses
+    , cggProFileId
+    , cggId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.campaigns.get@ method which the
+-- 'CampaignsGet' request conforms to.
+type CampaignsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Campaign
+
+-- | Gets one campaign by ID.
+--
+-- /See:/ 'campaignsGet' smart constructor.
+data CampaignsGet = CampaignsGet
+    { _cggProFileId :: !(Textual Int64)
+    , _cggId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cggProFileId'
+--
+-- * 'cggId'
+campaignsGet
+    :: Int64 -- ^ 'cggProFileId'
+    -> Int64 -- ^ 'cggId'
+    -> CampaignsGet
+campaignsGet pCggProFileId_ pCggId_ =
+    CampaignsGet
+    { _cggProFileId = _Coerce # pCggProFileId_
+    , _cggId = _Coerce # pCggId_
+    }
+
+-- | User profile ID associated with this request.
+cggProFileId :: Lens' CampaignsGet Int64
+cggProFileId
+  = lens _cggProFileId (\ s a -> s{_cggProFileId = a})
+      . _Coerce
+
+-- | Campaign ID.
+cggId :: Lens' CampaignsGet Int64
+cggId
+  = lens _cggId (\ s a -> s{_cggId = a}) . _Coerce
+
+instance GoogleRequest CampaignsGet where
+        type Rs CampaignsGet = Campaign
+        requestClient CampaignsGet{..}
+          = go _cggProFileId _cggId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy CampaignsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Campaigns/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Campaigns/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Campaigns/Insert.hs
@@ -0,0 +1,128 @@
+{-# 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.DFAReporting.Campaigns.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new campaign.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.campaigns.insert@.
+module Network.Google.Resource.DFAReporting.Campaigns.Insert
+    (
+    -- * REST Resource
+      CampaignsInsertResource
+
+    -- * Creating a Request
+    , campaignsInsert
+    , CampaignsInsert
+
+    -- * Request Lenses
+    , camProFileId
+    , camPayload
+    , camDefaultLandingPageURL
+    , camDefaultLandingPageName
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.campaigns.insert@ method which the
+-- 'CampaignsInsert' request conforms to.
+type CampaignsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               QueryParam "defaultLandingPageName" Text :>
+                 QueryParam "defaultLandingPageUrl" Text :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] Campaign :> Post '[JSON] Campaign
+
+-- | Inserts a new campaign.
+--
+-- /See:/ 'campaignsInsert' smart constructor.
+data CampaignsInsert = CampaignsInsert
+    { _camProFileId              :: !(Textual Int64)
+    , _camPayload                :: !Campaign
+    , _camDefaultLandingPageURL  :: !Text
+    , _camDefaultLandingPageName :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'camProFileId'
+--
+-- * 'camPayload'
+--
+-- * 'camDefaultLandingPageURL'
+--
+-- * 'camDefaultLandingPageName'
+campaignsInsert
+    :: Int64 -- ^ 'camProFileId'
+    -> Campaign -- ^ 'camPayload'
+    -> Text -- ^ 'camDefaultLandingPageURL'
+    -> Text -- ^ 'camDefaultLandingPageName'
+    -> CampaignsInsert
+campaignsInsert pCamProFileId_ pCamPayload_ pCamDefaultLandingPageURL_ pCamDefaultLandingPageName_ =
+    CampaignsInsert
+    { _camProFileId = _Coerce # pCamProFileId_
+    , _camPayload = pCamPayload_
+    , _camDefaultLandingPageURL = pCamDefaultLandingPageURL_
+    , _camDefaultLandingPageName = pCamDefaultLandingPageName_
+    }
+
+-- | User profile ID associated with this request.
+camProFileId :: Lens' CampaignsInsert Int64
+camProFileId
+  = lens _camProFileId (\ s a -> s{_camProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+camPayload :: Lens' CampaignsInsert Campaign
+camPayload
+  = lens _camPayload (\ s a -> s{_camPayload = a})
+
+-- | Default landing page URL for this new campaign.
+camDefaultLandingPageURL :: Lens' CampaignsInsert Text
+camDefaultLandingPageURL
+  = lens _camDefaultLandingPageURL
+      (\ s a -> s{_camDefaultLandingPageURL = a})
+
+-- | Default landing page name for this new campaign. Must be less than 256
+-- characters long.
+camDefaultLandingPageName :: Lens' CampaignsInsert Text
+camDefaultLandingPageName
+  = lens _camDefaultLandingPageName
+      (\ s a -> s{_camDefaultLandingPageName = a})
+
+instance GoogleRequest CampaignsInsert where
+        type Rs CampaignsInsert = Campaign
+        requestClient CampaignsInsert{..}
+          = go _camProFileId (Just _camDefaultLandingPageName)
+              (Just _camDefaultLandingPageURL)
+              (Just AltJSON)
+              _camPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CampaignsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Campaigns/List.hs b/gen/Network/Google/Resource/DFAReporting/Campaigns/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Campaigns/List.hs
@@ -0,0 +1,269 @@
+{-# 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.DFAReporting.Campaigns.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of campaigns, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.campaigns.list@.
+module Network.Google.Resource.DFAReporting.Campaigns.List
+    (
+    -- * REST Resource
+      CampaignsListResource
+
+    -- * Creating a Request
+    , campaignsList
+    , CampaignsList
+
+    -- * Request Lenses
+    , clExcludedIds
+    , clSearchString
+    , clIds
+    , clProFileId
+    , clSortOrder
+    , clAdvertiserGroupIds
+    , clAtLeastOneOptimizationActivity
+    , clOverriddenEventTagId
+    , clPageToken
+    , clSortField
+    , clSubAccountId
+    , clAdvertiserIds
+    , clArchived
+    , clMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.campaigns.list@ method which the
+-- 'CampaignsList' request conforms to.
+type CampaignsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               QueryParams "excludedIds" (Textual Int64) :>
+                 QueryParam "searchString" Text :>
+                   QueryParams "ids" (Textual Int64) :>
+                     QueryParam "sortOrder" CampaignsListSortOrder :>
+                       QueryParams "advertiserGroupIds" (Textual Int64) :>
+                         QueryParam "atLeastOneOptimizationActivity" Bool :>
+                           QueryParam "overriddenEventTagId" (Textual Int64) :>
+                             QueryParam "pageToken" Text :>
+                               QueryParam "sortField" CampaignsListSortField :>
+                                 QueryParam "subaccountId" (Textual Int64) :>
+                                   QueryParams "advertiserIds" (Textual Int64)
+                                     :>
+                                     QueryParam "archived" Bool :>
+                                       QueryParam "maxResults" (Textual Int32)
+                                         :>
+                                         QueryParam "alt" AltJSON :>
+                                           Get '[JSON] CampaignsListResponse
+
+-- | Retrieves a list of campaigns, possibly filtered.
+--
+-- /See:/ 'campaignsList' smart constructor.
+data CampaignsList = CampaignsList
+    { _clExcludedIds                    :: !(Maybe [Textual Int64])
+    , _clSearchString                   :: !(Maybe Text)
+    , _clIds                            :: !(Maybe [Textual Int64])
+    , _clProFileId                      :: !(Textual Int64)
+    , _clSortOrder                      :: !(Maybe CampaignsListSortOrder)
+    , _clAdvertiserGroupIds             :: !(Maybe [Textual Int64])
+    , _clAtLeastOneOptimizationActivity :: !(Maybe Bool)
+    , _clOverriddenEventTagId           :: !(Maybe (Textual Int64))
+    , _clPageToken                      :: !(Maybe Text)
+    , _clSortField                      :: !(Maybe CampaignsListSortField)
+    , _clSubAccountId                   :: !(Maybe (Textual Int64))
+    , _clAdvertiserIds                  :: !(Maybe [Textual Int64])
+    , _clArchived                       :: !(Maybe Bool)
+    , _clMaxResults                     :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'clExcludedIds'
+--
+-- * 'clSearchString'
+--
+-- * 'clIds'
+--
+-- * 'clProFileId'
+--
+-- * 'clSortOrder'
+--
+-- * 'clAdvertiserGroupIds'
+--
+-- * 'clAtLeastOneOptimizationActivity'
+--
+-- * 'clOverriddenEventTagId'
+--
+-- * 'clPageToken'
+--
+-- * 'clSortField'
+--
+-- * 'clSubAccountId'
+--
+-- * 'clAdvertiserIds'
+--
+-- * 'clArchived'
+--
+-- * 'clMaxResults'
+campaignsList
+    :: Int64 -- ^ 'clProFileId'
+    -> CampaignsList
+campaignsList pClProFileId_ =
+    CampaignsList
+    { _clExcludedIds = Nothing
+    , _clSearchString = Nothing
+    , _clIds = Nothing
+    , _clProFileId = _Coerce # pClProFileId_
+    , _clSortOrder = Nothing
+    , _clAdvertiserGroupIds = Nothing
+    , _clAtLeastOneOptimizationActivity = Nothing
+    , _clOverriddenEventTagId = Nothing
+    , _clPageToken = Nothing
+    , _clSortField = Nothing
+    , _clSubAccountId = Nothing
+    , _clAdvertiserIds = Nothing
+    , _clArchived = Nothing
+    , _clMaxResults = Nothing
+    }
+
+-- | Exclude campaigns with these IDs.
+clExcludedIds :: Lens' CampaignsList [Int64]
+clExcludedIds
+  = lens _clExcludedIds
+      (\ s a -> s{_clExcludedIds = a})
+      . _Default
+      . _Coerce
+
+-- | Allows searching for campaigns by name or ID. Wildcards (*) are allowed.
+-- For example, \"campaign*2015\" will return campaigns with names like
+-- \"campaign June 2015\", \"campaign April 2015\", or simply \"campaign
+-- 2015\". Most of the searches also add wildcards implicitly at the start
+-- and the end of the search string. For example, a search string of
+-- \"campaign\" will match campaigns with name \"my campaign\", \"campaign
+-- 2015\", or simply \"campaign\".
+clSearchString :: Lens' CampaignsList (Maybe Text)
+clSearchString
+  = lens _clSearchString
+      (\ s a -> s{_clSearchString = a})
+
+-- | Select only campaigns with these IDs.
+clIds :: Lens' CampaignsList [Int64]
+clIds
+  = lens _clIds (\ s a -> s{_clIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+clProFileId :: Lens' CampaignsList Int64
+clProFileId
+  = lens _clProFileId (\ s a -> s{_clProFileId = a}) .
+      _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+clSortOrder :: Lens' CampaignsList (Maybe CampaignsListSortOrder)
+clSortOrder
+  = lens _clSortOrder (\ s a -> s{_clSortOrder = a})
+
+-- | Select only campaigns whose advertisers belong to these advertiser
+-- groups.
+clAdvertiserGroupIds :: Lens' CampaignsList [Int64]
+clAdvertiserGroupIds
+  = lens _clAdvertiserGroupIds
+      (\ s a -> s{_clAdvertiserGroupIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only campaigns that have at least one optimization activity.
+clAtLeastOneOptimizationActivity :: Lens' CampaignsList (Maybe Bool)
+clAtLeastOneOptimizationActivity
+  = lens _clAtLeastOneOptimizationActivity
+      (\ s a -> s{_clAtLeastOneOptimizationActivity = a})
+
+-- | Select only campaigns that have overridden this event tag ID.
+clOverriddenEventTagId :: Lens' CampaignsList (Maybe Int64)
+clOverriddenEventTagId
+  = lens _clOverriddenEventTagId
+      (\ s a -> s{_clOverriddenEventTagId = a})
+      . mapping _Coerce
+
+-- | Value of the nextPageToken from the previous result page.
+clPageToken :: Lens' CampaignsList (Maybe Text)
+clPageToken
+  = lens _clPageToken (\ s a -> s{_clPageToken = a})
+
+-- | Field by which to sort the list.
+clSortField :: Lens' CampaignsList (Maybe CampaignsListSortField)
+clSortField
+  = lens _clSortField (\ s a -> s{_clSortField = a})
+
+-- | Select only campaigns that belong to this subaccount.
+clSubAccountId :: Lens' CampaignsList (Maybe Int64)
+clSubAccountId
+  = lens _clSubAccountId
+      (\ s a -> s{_clSubAccountId = a})
+      . mapping _Coerce
+
+-- | Select only campaigns that belong to these advertisers.
+clAdvertiserIds :: Lens' CampaignsList [Int64]
+clAdvertiserIds
+  = lens _clAdvertiserIds
+      (\ s a -> s{_clAdvertiserIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only archived campaigns. Don\'t set this field to select both
+-- archived and non-archived campaigns.
+clArchived :: Lens' CampaignsList (Maybe Bool)
+clArchived
+  = lens _clArchived (\ s a -> s{_clArchived = a})
+
+-- | Maximum number of results to return.
+clMaxResults :: Lens' CampaignsList (Maybe Int32)
+clMaxResults
+  = lens _clMaxResults (\ s a -> s{_clMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest CampaignsList where
+        type Rs CampaignsList = CampaignsListResponse
+        requestClient CampaignsList{..}
+          = go _clProFileId (_clExcludedIds ^. _Default)
+              _clSearchString
+              (_clIds ^. _Default)
+              _clSortOrder
+              (_clAdvertiserGroupIds ^. _Default)
+              _clAtLeastOneOptimizationActivity
+              _clOverriddenEventTagId
+              _clPageToken
+              _clSortField
+              _clSubAccountId
+              (_clAdvertiserIds ^. _Default)
+              _clArchived
+              _clMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy CampaignsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Campaigns/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Campaigns/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Campaigns/Patch.hs
@@ -0,0 +1,109 @@
+{-# 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.DFAReporting.Campaigns.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing campaign. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.campaigns.patch@.
+module Network.Google.Resource.DFAReporting.Campaigns.Patch
+    (
+    -- * REST Resource
+      CampaignsPatchResource
+
+    -- * Creating a Request
+    , campaignsPatch
+    , CampaignsPatch
+
+    -- * Request Lenses
+    , cpProFileId
+    , cpPayload
+    , cpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.campaigns.patch@ method which the
+-- 'CampaignsPatch' request conforms to.
+type CampaignsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] Campaign :> Patch '[JSON] Campaign
+
+-- | Updates an existing campaign. This method supports patch semantics.
+--
+-- /See:/ 'campaignsPatch' smart constructor.
+data CampaignsPatch = CampaignsPatch
+    { _cpProFileId :: !(Textual Int64)
+    , _cpPayload   :: !Campaign
+    , _cpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cpProFileId'
+--
+-- * 'cpPayload'
+--
+-- * 'cpId'
+campaignsPatch
+    :: Int64 -- ^ 'cpProFileId'
+    -> Campaign -- ^ 'cpPayload'
+    -> Int64 -- ^ 'cpId'
+    -> CampaignsPatch
+campaignsPatch pCpProFileId_ pCpPayload_ pCpId_ =
+    CampaignsPatch
+    { _cpProFileId = _Coerce # pCpProFileId_
+    , _cpPayload = pCpPayload_
+    , _cpId = _Coerce # pCpId_
+    }
+
+-- | User profile ID associated with this request.
+cpProFileId :: Lens' CampaignsPatch Int64
+cpProFileId
+  = lens _cpProFileId (\ s a -> s{_cpProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+cpPayload :: Lens' CampaignsPatch Campaign
+cpPayload
+  = lens _cpPayload (\ s a -> s{_cpPayload = a})
+
+-- | Campaign ID.
+cpId :: Lens' CampaignsPatch Int64
+cpId = lens _cpId (\ s a -> s{_cpId = a}) . _Coerce
+
+instance GoogleRequest CampaignsPatch where
+        type Rs CampaignsPatch = Campaign
+        requestClient CampaignsPatch{..}
+          = go _cpProFileId (Just _cpId) (Just AltJSON)
+              _cpPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy CampaignsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Campaigns/Update.hs b/gen/Network/Google/Resource/DFAReporting/Campaigns/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Campaigns/Update.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Campaigns.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing campaign.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.campaigns.update@.
+module Network.Google.Resource.DFAReporting.Campaigns.Update
+    (
+    -- * REST Resource
+      CampaignsUpdateResource
+
+    -- * Creating a Request
+    , campaignsUpdate
+    , CampaignsUpdate
+
+    -- * Request Lenses
+    , cuProFileId
+    , cuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.campaigns.update@ method which the
+-- 'CampaignsUpdate' request conforms to.
+type CampaignsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Campaign :> Put '[JSON] Campaign
+
+-- | Updates an existing campaign.
+--
+-- /See:/ 'campaignsUpdate' smart constructor.
+data CampaignsUpdate = CampaignsUpdate
+    { _cuProFileId :: !(Textual Int64)
+    , _cuPayload   :: !Campaign
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cuProFileId'
+--
+-- * 'cuPayload'
+campaignsUpdate
+    :: Int64 -- ^ 'cuProFileId'
+    -> Campaign -- ^ 'cuPayload'
+    -> CampaignsUpdate
+campaignsUpdate pCuProFileId_ pCuPayload_ =
+    CampaignsUpdate
+    { _cuProFileId = _Coerce # pCuProFileId_
+    , _cuPayload = pCuPayload_
+    }
+
+-- | User profile ID associated with this request.
+cuProFileId :: Lens' CampaignsUpdate Int64
+cuProFileId
+  = lens _cuProFileId (\ s a -> s{_cuProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+cuPayload :: Lens' CampaignsUpdate Campaign
+cuPayload
+  = lens _cuPayload (\ s a -> s{_cuPayload = a})
+
+instance GoogleRequest CampaignsUpdate where
+        type Rs CampaignsUpdate = Campaign
+        requestClient CampaignsUpdate{..}
+          = go _cuProFileId (Just AltJSON) _cuPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CampaignsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/ChangeLogs/Get.hs b/gen/Network/Google/Resource/DFAReporting/ChangeLogs/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/ChangeLogs/Get.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.ChangeLogs.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one change log by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.changeLogs.get@.
+module Network.Google.Resource.DFAReporting.ChangeLogs.Get
+    (
+    -- * REST Resource
+      ChangeLogsGetResource
+
+    -- * Creating a Request
+    , changeLogsGet
+    , ChangeLogsGet
+
+    -- * Request Lenses
+    , clgProFileId
+    , clgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.changeLogs.get@ method which the
+-- 'ChangeLogsGet' request conforms to.
+type ChangeLogsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "changeLogs" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] ChangeLog
+
+-- | Gets one change log by ID.
+--
+-- /See:/ 'changeLogsGet' smart constructor.
+data ChangeLogsGet = ChangeLogsGet
+    { _clgProFileId :: !(Textual Int64)
+    , _clgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ChangeLogsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'clgProFileId'
+--
+-- * 'clgId'
+changeLogsGet
+    :: Int64 -- ^ 'clgProFileId'
+    -> Int64 -- ^ 'clgId'
+    -> ChangeLogsGet
+changeLogsGet pClgProFileId_ pClgId_ =
+    ChangeLogsGet
+    { _clgProFileId = _Coerce # pClgProFileId_
+    , _clgId = _Coerce # pClgId_
+    }
+
+-- | User profile ID associated with this request.
+clgProFileId :: Lens' ChangeLogsGet Int64
+clgProFileId
+  = lens _clgProFileId (\ s a -> s{_clgProFileId = a})
+      . _Coerce
+
+-- | Change log ID.
+clgId :: Lens' ChangeLogsGet Int64
+clgId
+  = lens _clgId (\ s a -> s{_clgId = a}) . _Coerce
+
+instance GoogleRequest ChangeLogsGet where
+        type Rs ChangeLogsGet = ChangeLog
+        requestClient ChangeLogsGet{..}
+          = go _clgProFileId _clgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ChangeLogsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/ChangeLogs/List.hs b/gen/Network/Google/Resource/DFAReporting/ChangeLogs/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/ChangeLogs/List.hs
@@ -0,0 +1,231 @@
+{-# 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.DFAReporting.ChangeLogs.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of change logs.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.changeLogs.list@.
+module Network.Google.Resource.DFAReporting.ChangeLogs.List
+    (
+    -- * REST Resource
+      ChangeLogsListResource
+
+    -- * Creating a Request
+    , changeLogsList
+    , ChangeLogsList
+
+    -- * Request Lenses
+    , cllUserProFileIds
+    , cllObjectType
+    , cllSearchString
+    , cllIds
+    , cllProFileId
+    , cllAction
+    , cllMinChangeTime
+    , cllMaxChangeTime
+    , cllPageToken
+    , cllObjectIds
+    , cllMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.changeLogs.list@ method which the
+-- 'ChangeLogsList' request conforms to.
+type ChangeLogsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "changeLogs" :>
+               QueryParams "userProfileIds" (Textual Int64) :>
+                 QueryParam "objectType" ChangeLogsListObjectType :>
+                   QueryParam "searchString" Text :>
+                     QueryParams "ids" (Textual Int64) :>
+                       QueryParam "action" ChangeLogsListAction :>
+                         QueryParam "minChangeTime" Text :>
+                           QueryParam "maxChangeTime" Text :>
+                             QueryParam "pageToken" Text :>
+                               QueryParams "objectIds" (Textual Int64) :>
+                                 QueryParam "maxResults" (Textual Int32) :>
+                                   QueryParam "alt" AltJSON :>
+                                     Get '[JSON] ChangeLogsListResponse
+
+-- | Retrieves a list of change logs.
+--
+-- /See:/ 'changeLogsList' smart constructor.
+data ChangeLogsList = ChangeLogsList
+    { _cllUserProFileIds :: !(Maybe [Textual Int64])
+    , _cllObjectType     :: !(Maybe ChangeLogsListObjectType)
+    , _cllSearchString   :: !(Maybe Text)
+    , _cllIds            :: !(Maybe [Textual Int64])
+    , _cllProFileId      :: !(Textual Int64)
+    , _cllAction         :: !(Maybe ChangeLogsListAction)
+    , _cllMinChangeTime  :: !(Maybe Text)
+    , _cllMaxChangeTime  :: !(Maybe Text)
+    , _cllPageToken      :: !(Maybe Text)
+    , _cllObjectIds      :: !(Maybe [Textual Int64])
+    , _cllMaxResults     :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ChangeLogsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cllUserProFileIds'
+--
+-- * 'cllObjectType'
+--
+-- * 'cllSearchString'
+--
+-- * 'cllIds'
+--
+-- * 'cllProFileId'
+--
+-- * 'cllAction'
+--
+-- * 'cllMinChangeTime'
+--
+-- * 'cllMaxChangeTime'
+--
+-- * 'cllPageToken'
+--
+-- * 'cllObjectIds'
+--
+-- * 'cllMaxResults'
+changeLogsList
+    :: Int64 -- ^ 'cllProFileId'
+    -> ChangeLogsList
+changeLogsList pCllProFileId_ =
+    ChangeLogsList
+    { _cllUserProFileIds = Nothing
+    , _cllObjectType = Nothing
+    , _cllSearchString = Nothing
+    , _cllIds = Nothing
+    , _cllProFileId = _Coerce # pCllProFileId_
+    , _cllAction = Nothing
+    , _cllMinChangeTime = Nothing
+    , _cllMaxChangeTime = Nothing
+    , _cllPageToken = Nothing
+    , _cllObjectIds = Nothing
+    , _cllMaxResults = Nothing
+    }
+
+-- | Select only change logs with these user profile IDs.
+cllUserProFileIds :: Lens' ChangeLogsList [Int64]
+cllUserProFileIds
+  = lens _cllUserProFileIds
+      (\ s a -> s{_cllUserProFileIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only change logs with the specified object type.
+cllObjectType :: Lens' ChangeLogsList (Maybe ChangeLogsListObjectType)
+cllObjectType
+  = lens _cllObjectType
+      (\ s a -> s{_cllObjectType = a})
+
+-- | Select only change logs whose object ID, user name, old or new values
+-- match the search string.
+cllSearchString :: Lens' ChangeLogsList (Maybe Text)
+cllSearchString
+  = lens _cllSearchString
+      (\ s a -> s{_cllSearchString = a})
+
+-- | Select only change logs with these IDs.
+cllIds :: Lens' ChangeLogsList [Int64]
+cllIds
+  = lens _cllIds (\ s a -> s{_cllIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+cllProFileId :: Lens' ChangeLogsList Int64
+cllProFileId
+  = lens _cllProFileId (\ s a -> s{_cllProFileId = a})
+      . _Coerce
+
+-- | Select only change logs with the specified action.
+cllAction :: Lens' ChangeLogsList (Maybe ChangeLogsListAction)
+cllAction
+  = lens _cllAction (\ s a -> s{_cllAction = a})
+
+-- | Select only change logs whose change time is before the specified
+-- minChangeTime.The time should be formatted as an RFC3339 date\/time
+-- string. For example, for 10:54 PM on July 18th, 2015, in the
+-- America\/New York time zone, the format is
+-- \"2015-07-18T22:54:00-04:00\". In other words, the year, month, day, the
+-- letter T, the hour (24-hour clock system), minute, second, and then the
+-- time zone offset.
+cllMinChangeTime :: Lens' ChangeLogsList (Maybe Text)
+cllMinChangeTime
+  = lens _cllMinChangeTime
+      (\ s a -> s{_cllMinChangeTime = a})
+
+-- | Select only change logs whose change time is before the specified
+-- maxChangeTime.The time should be formatted as an RFC3339 date\/time
+-- string. For example, for 10:54 PM on July 18th, 2015, in the
+-- America\/New York time zone, the format is
+-- \"2015-07-18T22:54:00-04:00\". In other words, the year, month, day, the
+-- letter T, the hour (24-hour clock system), minute, second, and then the
+-- time zone offset.
+cllMaxChangeTime :: Lens' ChangeLogsList (Maybe Text)
+cllMaxChangeTime
+  = lens _cllMaxChangeTime
+      (\ s a -> s{_cllMaxChangeTime = a})
+
+-- | Value of the nextPageToken from the previous result page.
+cllPageToken :: Lens' ChangeLogsList (Maybe Text)
+cllPageToken
+  = lens _cllPageToken (\ s a -> s{_cllPageToken = a})
+
+-- | Select only change logs with these object IDs.
+cllObjectIds :: Lens' ChangeLogsList [Int64]
+cllObjectIds
+  = lens _cllObjectIds (\ s a -> s{_cllObjectIds = a})
+      . _Default
+      . _Coerce
+
+-- | Maximum number of results to return.
+cllMaxResults :: Lens' ChangeLogsList (Maybe Int32)
+cllMaxResults
+  = lens _cllMaxResults
+      (\ s a -> s{_cllMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest ChangeLogsList where
+        type Rs ChangeLogsList = ChangeLogsListResponse
+        requestClient ChangeLogsList{..}
+          = go _cllProFileId (_cllUserProFileIds ^. _Default)
+              _cllObjectType
+              _cllSearchString
+              (_cllIds ^. _Default)
+              _cllAction
+              _cllMinChangeTime
+              _cllMaxChangeTime
+              _cllPageToken
+              (_cllObjectIds ^. _Default)
+              _cllMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ChangeLogsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Cities/List.hs b/gen/Network/Google/Resource/DFAReporting/Cities/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Cities/List.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Cities.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of cities, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.cities.list@.
+module Network.Google.Resource.DFAReporting.Cities.List
+    (
+    -- * REST Resource
+      CitiesListResource
+
+    -- * Creating a Request
+    , citiesList
+    , CitiesList
+
+    -- * Request Lenses
+    , citRegionDartIds
+    , citProFileId
+    , citNamePrefix
+    , citCountryDartIds
+    , citDartIds
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.cities.list@ method which the
+-- 'CitiesList' request conforms to.
+type CitiesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "cities" :>
+               QueryParams "regionDartIds" (Textual Int64) :>
+                 QueryParam "namePrefix" Text :>
+                   QueryParams "countryDartIds" (Textual Int64) :>
+                     QueryParams "dartIds" (Textual Int64) :>
+                       QueryParam "alt" AltJSON :>
+                         Get '[JSON] CitiesListResponse
+
+-- | Retrieves a list of cities, possibly filtered.
+--
+-- /See:/ 'citiesList' smart constructor.
+data CitiesList = CitiesList
+    { _citRegionDartIds  :: !(Maybe [Textual Int64])
+    , _citProFileId      :: !(Textual Int64)
+    , _citNamePrefix     :: !(Maybe Text)
+    , _citCountryDartIds :: !(Maybe [Textual Int64])
+    , _citDartIds        :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CitiesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'citRegionDartIds'
+--
+-- * 'citProFileId'
+--
+-- * 'citNamePrefix'
+--
+-- * 'citCountryDartIds'
+--
+-- * 'citDartIds'
+citiesList
+    :: Int64 -- ^ 'citProFileId'
+    -> CitiesList
+citiesList pCitProFileId_ =
+    CitiesList
+    { _citRegionDartIds = Nothing
+    , _citProFileId = _Coerce # pCitProFileId_
+    , _citNamePrefix = Nothing
+    , _citCountryDartIds = Nothing
+    , _citDartIds = Nothing
+    }
+
+-- | Select only cities from these regions.
+citRegionDartIds :: Lens' CitiesList [Int64]
+citRegionDartIds
+  = lens _citRegionDartIds
+      (\ s a -> s{_citRegionDartIds = a})
+      . _Default
+      . _Coerce
+
+-- | User profile ID associated with this request.
+citProFileId :: Lens' CitiesList Int64
+citProFileId
+  = lens _citProFileId (\ s a -> s{_citProFileId = a})
+      . _Coerce
+
+-- | Select only cities with names starting with this prefix.
+citNamePrefix :: Lens' CitiesList (Maybe Text)
+citNamePrefix
+  = lens _citNamePrefix
+      (\ s a -> s{_citNamePrefix = a})
+
+-- | Select only cities from these countries.
+citCountryDartIds :: Lens' CitiesList [Int64]
+citCountryDartIds
+  = lens _citCountryDartIds
+      (\ s a -> s{_citCountryDartIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only cities with these DART IDs.
+citDartIds :: Lens' CitiesList [Int64]
+citDartIds
+  = lens _citDartIds (\ s a -> s{_citDartIds = a}) .
+      _Default
+      . _Coerce
+
+instance GoogleRequest CitiesList where
+        type Rs CitiesList = CitiesListResponse
+        requestClient CitiesList{..}
+          = go _citProFileId (_citRegionDartIds ^. _Default)
+              _citNamePrefix
+              (_citCountryDartIds ^. _Default)
+              (_citDartIds ^. _Default)
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy CitiesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/Get.hs b/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/Get.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.ConnectionTypes.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one connection type by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.connectionTypes.get@.
+module Network.Google.Resource.DFAReporting.ConnectionTypes.Get
+    (
+    -- * REST Resource
+      ConnectionTypesGetResource
+
+    -- * Creating a Request
+    , connectionTypesGet
+    , ConnectionTypesGet
+
+    -- * Request Lenses
+    , ctgProFileId
+    , ctgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.connectionTypes.get@ method which the
+-- 'ConnectionTypesGet' request conforms to.
+type ConnectionTypesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "connectionTypes" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] ConnectionType
+
+-- | Gets one connection type by ID.
+--
+-- /See:/ 'connectionTypesGet' smart constructor.
+data ConnectionTypesGet = ConnectionTypesGet
+    { _ctgProFileId :: !(Textual Int64)
+    , _ctgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConnectionTypesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctgProFileId'
+--
+-- * 'ctgId'
+connectionTypesGet
+    :: Int64 -- ^ 'ctgProFileId'
+    -> Int64 -- ^ 'ctgId'
+    -> ConnectionTypesGet
+connectionTypesGet pCtgProFileId_ pCtgId_ =
+    ConnectionTypesGet
+    { _ctgProFileId = _Coerce # pCtgProFileId_
+    , _ctgId = _Coerce # pCtgId_
+    }
+
+-- | User profile ID associated with this request.
+ctgProFileId :: Lens' ConnectionTypesGet Int64
+ctgProFileId
+  = lens _ctgProFileId (\ s a -> s{_ctgProFileId = a})
+      . _Coerce
+
+-- | Connection type ID.
+ctgId :: Lens' ConnectionTypesGet Int64
+ctgId
+  = lens _ctgId (\ s a -> s{_ctgId = a}) . _Coerce
+
+instance GoogleRequest ConnectionTypesGet where
+        type Rs ConnectionTypesGet = ConnectionType
+        requestClient ConnectionTypesGet{..}
+          = go _ctgProFileId _ctgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ConnectionTypesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/List.hs b/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/List.hs
@@ -0,0 +1,87 @@
+{-# 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.DFAReporting.ConnectionTypes.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of connection types.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.connectionTypes.list@.
+module Network.Google.Resource.DFAReporting.ConnectionTypes.List
+    (
+    -- * REST Resource
+      ConnectionTypesListResource
+
+    -- * Creating a Request
+    , connectionTypesList
+    , ConnectionTypesList
+
+    -- * Request Lenses
+    , ctlProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.connectionTypes.list@ method which the
+-- 'ConnectionTypesList' request conforms to.
+type ConnectionTypesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "connectionTypes" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] ConnectionTypesListResponse
+
+-- | Retrieves a list of connection types.
+--
+-- /See:/ 'connectionTypesList' smart constructor.
+newtype ConnectionTypesList = ConnectionTypesList
+    { _ctlProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConnectionTypesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctlProFileId'
+connectionTypesList
+    :: Int64 -- ^ 'ctlProFileId'
+    -> ConnectionTypesList
+connectionTypesList pCtlProFileId_ =
+    ConnectionTypesList
+    { _ctlProFileId = _Coerce # pCtlProFileId_
+    }
+
+-- | User profile ID associated with this request.
+ctlProFileId :: Lens' ConnectionTypesList Int64
+ctlProFileId
+  = lens _ctlProFileId (\ s a -> s{_ctlProFileId = a})
+      . _Coerce
+
+instance GoogleRequest ConnectionTypesList where
+        type Rs ConnectionTypesList =
+             ConnectionTypesListResponse
+        requestClient ConnectionTypesList{..}
+          = go _ctlProFileId (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ConnectionTypesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Delete.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Delete.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.ContentCategories.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing content category.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.contentCategories.delete@.
+module Network.Google.Resource.DFAReporting.ContentCategories.Delete
+    (
+    -- * REST Resource
+      ContentCategoriesDeleteResource
+
+    -- * Creating a Request
+    , contentCategoriesDelete
+    , ContentCategoriesDelete
+
+    -- * Request Lenses
+    , ccdProFileId
+    , ccdId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.contentCategories.delete@ method which the
+-- 'ContentCategoriesDelete' request conforms to.
+type ContentCategoriesDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "contentCategories" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing content category.
+--
+-- /See:/ 'contentCategoriesDelete' smart constructor.
+data ContentCategoriesDelete = ContentCategoriesDelete
+    { _ccdProFileId :: !(Textual Int64)
+    , _ccdId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContentCategoriesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccdProFileId'
+--
+-- * 'ccdId'
+contentCategoriesDelete
+    :: Int64 -- ^ 'ccdProFileId'
+    -> Int64 -- ^ 'ccdId'
+    -> ContentCategoriesDelete
+contentCategoriesDelete pCcdProFileId_ pCcdId_ =
+    ContentCategoriesDelete
+    { _ccdProFileId = _Coerce # pCcdProFileId_
+    , _ccdId = _Coerce # pCcdId_
+    }
+
+-- | User profile ID associated with this request.
+ccdProFileId :: Lens' ContentCategoriesDelete Int64
+ccdProFileId
+  = lens _ccdProFileId (\ s a -> s{_ccdProFileId = a})
+      . _Coerce
+
+-- | Content category ID.
+ccdId :: Lens' ContentCategoriesDelete Int64
+ccdId
+  = lens _ccdId (\ s a -> s{_ccdId = a}) . _Coerce
+
+instance GoogleRequest ContentCategoriesDelete where
+        type Rs ContentCategoriesDelete = ()
+        requestClient ContentCategoriesDelete{..}
+          = go _ccdProFileId _ccdId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ContentCategoriesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Get.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Get.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.ContentCategories.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one content category by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.contentCategories.get@.
+module Network.Google.Resource.DFAReporting.ContentCategories.Get
+    (
+    -- * REST Resource
+      ContentCategoriesGetResource
+
+    -- * Creating a Request
+    , contentCategoriesGet
+    , ContentCategoriesGet
+
+    -- * Request Lenses
+    , ccgProFileId
+    , ccgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.contentCategories.get@ method which the
+-- 'ContentCategoriesGet' request conforms to.
+type ContentCategoriesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "contentCategories" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] ContentCategory
+
+-- | Gets one content category by ID.
+--
+-- /See:/ 'contentCategoriesGet' smart constructor.
+data ContentCategoriesGet = ContentCategoriesGet
+    { _ccgProFileId :: !(Textual Int64)
+    , _ccgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContentCategoriesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccgProFileId'
+--
+-- * 'ccgId'
+contentCategoriesGet
+    :: Int64 -- ^ 'ccgProFileId'
+    -> Int64 -- ^ 'ccgId'
+    -> ContentCategoriesGet
+contentCategoriesGet pCcgProFileId_ pCcgId_ =
+    ContentCategoriesGet
+    { _ccgProFileId = _Coerce # pCcgProFileId_
+    , _ccgId = _Coerce # pCcgId_
+    }
+
+-- | User profile ID associated with this request.
+ccgProFileId :: Lens' ContentCategoriesGet Int64
+ccgProFileId
+  = lens _ccgProFileId (\ s a -> s{_ccgProFileId = a})
+      . _Coerce
+
+-- | Content category ID.
+ccgId :: Lens' ContentCategoriesGet Int64
+ccgId
+  = lens _ccgId (\ s a -> s{_ccgId = a}) . _Coerce
+
+instance GoogleRequest ContentCategoriesGet where
+        type Rs ContentCategoriesGet = ContentCategory
+        requestClient ContentCategoriesGet{..}
+          = go _ccgProFileId _ccgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ContentCategoriesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Insert.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Insert.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.ContentCategories.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new content category.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.contentCategories.insert@.
+module Network.Google.Resource.DFAReporting.ContentCategories.Insert
+    (
+    -- * REST Resource
+      ContentCategoriesInsertResource
+
+    -- * Creating a Request
+    , contentCategoriesInsert
+    , ContentCategoriesInsert
+
+    -- * Request Lenses
+    , cciProFileId
+    , cciPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.contentCategories.insert@ method which the
+-- 'ContentCategoriesInsert' request conforms to.
+type ContentCategoriesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "contentCategories" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] ContentCategory :>
+                   Post '[JSON] ContentCategory
+
+-- | Inserts a new content category.
+--
+-- /See:/ 'contentCategoriesInsert' smart constructor.
+data ContentCategoriesInsert = ContentCategoriesInsert
+    { _cciProFileId :: !(Textual Int64)
+    , _cciPayload   :: !ContentCategory
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContentCategoriesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cciProFileId'
+--
+-- * 'cciPayload'
+contentCategoriesInsert
+    :: Int64 -- ^ 'cciProFileId'
+    -> ContentCategory -- ^ 'cciPayload'
+    -> ContentCategoriesInsert
+contentCategoriesInsert pCciProFileId_ pCciPayload_ =
+    ContentCategoriesInsert
+    { _cciProFileId = _Coerce # pCciProFileId_
+    , _cciPayload = pCciPayload_
+    }
+
+-- | User profile ID associated with this request.
+cciProFileId :: Lens' ContentCategoriesInsert Int64
+cciProFileId
+  = lens _cciProFileId (\ s a -> s{_cciProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cciPayload :: Lens' ContentCategoriesInsert ContentCategory
+cciPayload
+  = lens _cciPayload (\ s a -> s{_cciPayload = a})
+
+instance GoogleRequest ContentCategoriesInsert where
+        type Rs ContentCategoriesInsert = ContentCategory
+        requestClient ContentCategoriesInsert{..}
+          = go _cciProFileId (Just AltJSON) _cciPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ContentCategoriesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/List.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/List.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.ContentCategories.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of content categories, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.contentCategories.list@.
+module Network.Google.Resource.DFAReporting.ContentCategories.List
+    (
+    -- * REST Resource
+      ContentCategoriesListResource
+
+    -- * Creating a Request
+    , contentCategoriesList
+    , ContentCategoriesList
+
+    -- * Request Lenses
+    , cclSearchString
+    , cclIds
+    , cclProFileId
+    , cclSortOrder
+    , cclPageToken
+    , cclSortField
+    , cclMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.contentCategories.list@ method which the
+-- 'ContentCategoriesList' request conforms to.
+type ContentCategoriesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "contentCategories" :>
+               QueryParam "searchString" Text :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParam "sortOrder" ContentCategoriesListSortOrder
+                     :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "sortField" ContentCategoriesListSortField
+                         :>
+                         QueryParam "maxResults" (Textual Int32) :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ContentCategoriesListResponse
+
+-- | Retrieves a list of content categories, possibly filtered.
+--
+-- /See:/ 'contentCategoriesList' smart constructor.
+data ContentCategoriesList = ContentCategoriesList
+    { _cclSearchString :: !(Maybe Text)
+    , _cclIds          :: !(Maybe [Textual Int64])
+    , _cclProFileId    :: !(Textual Int64)
+    , _cclSortOrder    :: !(Maybe ContentCategoriesListSortOrder)
+    , _cclPageToken    :: !(Maybe Text)
+    , _cclSortField    :: !(Maybe ContentCategoriesListSortField)
+    , _cclMaxResults   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContentCategoriesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cclSearchString'
+--
+-- * 'cclIds'
+--
+-- * 'cclProFileId'
+--
+-- * 'cclSortOrder'
+--
+-- * 'cclPageToken'
+--
+-- * 'cclSortField'
+--
+-- * 'cclMaxResults'
+contentCategoriesList
+    :: Int64 -- ^ 'cclProFileId'
+    -> ContentCategoriesList
+contentCategoriesList pCclProFileId_ =
+    ContentCategoriesList
+    { _cclSearchString = Nothing
+    , _cclIds = Nothing
+    , _cclProFileId = _Coerce # pCclProFileId_
+    , _cclSortOrder = Nothing
+    , _cclPageToken = Nothing
+    , _cclSortField = Nothing
+    , _cclMaxResults = Nothing
+    }
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"contentcategory*2015\" will return objects with names
+-- like \"contentcategory June 2015\", \"contentcategory April 2015\", or
+-- simply \"contentcategory 2015\". Most of the searches also add wildcards
+-- implicitly at the start and the end of the search string. For example, a
+-- search string of \"contentcategory\" will match objects with name \"my
+-- contentcategory\", \"contentcategory 2015\", or simply
+-- \"contentcategory\".
+cclSearchString :: Lens' ContentCategoriesList (Maybe Text)
+cclSearchString
+  = lens _cclSearchString
+      (\ s a -> s{_cclSearchString = a})
+
+-- | Select only content categories with these IDs.
+cclIds :: Lens' ContentCategoriesList [Int64]
+cclIds
+  = lens _cclIds (\ s a -> s{_cclIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+cclProFileId :: Lens' ContentCategoriesList Int64
+cclProFileId
+  = lens _cclProFileId (\ s a -> s{_cclProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+cclSortOrder :: Lens' ContentCategoriesList (Maybe ContentCategoriesListSortOrder)
+cclSortOrder
+  = lens _cclSortOrder (\ s a -> s{_cclSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+cclPageToken :: Lens' ContentCategoriesList (Maybe Text)
+cclPageToken
+  = lens _cclPageToken (\ s a -> s{_cclPageToken = a})
+
+-- | Field by which to sort the list.
+cclSortField :: Lens' ContentCategoriesList (Maybe ContentCategoriesListSortField)
+cclSortField
+  = lens _cclSortField (\ s a -> s{_cclSortField = a})
+
+-- | Maximum number of results to return.
+cclMaxResults :: Lens' ContentCategoriesList (Maybe Int32)
+cclMaxResults
+  = lens _cclMaxResults
+      (\ s a -> s{_cclMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest ContentCategoriesList where
+        type Rs ContentCategoriesList =
+             ContentCategoriesListResponse
+        requestClient ContentCategoriesList{..}
+          = go _cclProFileId _cclSearchString
+              (_cclIds ^. _Default)
+              _cclSortOrder
+              _cclPageToken
+              _cclSortField
+              _cclMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ContentCategoriesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Patch.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Patch.hs
@@ -0,0 +1,114 @@
+{-# 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.DFAReporting.ContentCategories.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing content category. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.contentCategories.patch@.
+module Network.Google.Resource.DFAReporting.ContentCategories.Patch
+    (
+    -- * REST Resource
+      ContentCategoriesPatchResource
+
+    -- * Creating a Request
+    , contentCategoriesPatch
+    , ContentCategoriesPatch
+
+    -- * Request Lenses
+    , ccpProFileId
+    , ccpPayload
+    , ccpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.contentCategories.patch@ method which the
+-- 'ContentCategoriesPatch' request conforms to.
+type ContentCategoriesPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "contentCategories" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] ContentCategory :>
+                     Patch '[JSON] ContentCategory
+
+-- | Updates an existing content category. This method supports patch
+-- semantics.
+--
+-- /See:/ 'contentCategoriesPatch' smart constructor.
+data ContentCategoriesPatch = ContentCategoriesPatch
+    { _ccpProFileId :: !(Textual Int64)
+    , _ccpPayload   :: !ContentCategory
+    , _ccpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContentCategoriesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccpProFileId'
+--
+-- * 'ccpPayload'
+--
+-- * 'ccpId'
+contentCategoriesPatch
+    :: Int64 -- ^ 'ccpProFileId'
+    -> ContentCategory -- ^ 'ccpPayload'
+    -> Int64 -- ^ 'ccpId'
+    -> ContentCategoriesPatch
+contentCategoriesPatch pCcpProFileId_ pCcpPayload_ pCcpId_ =
+    ContentCategoriesPatch
+    { _ccpProFileId = _Coerce # pCcpProFileId_
+    , _ccpPayload = pCcpPayload_
+    , _ccpId = _Coerce # pCcpId_
+    }
+
+-- | User profile ID associated with this request.
+ccpProFileId :: Lens' ContentCategoriesPatch Int64
+ccpProFileId
+  = lens _ccpProFileId (\ s a -> s{_ccpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+ccpPayload :: Lens' ContentCategoriesPatch ContentCategory
+ccpPayload
+  = lens _ccpPayload (\ s a -> s{_ccpPayload = a})
+
+-- | Content category ID.
+ccpId :: Lens' ContentCategoriesPatch Int64
+ccpId
+  = lens _ccpId (\ s a -> s{_ccpId = a}) . _Coerce
+
+instance GoogleRequest ContentCategoriesPatch where
+        type Rs ContentCategoriesPatch = ContentCategory
+        requestClient ContentCategoriesPatch{..}
+          = go _ccpProFileId (Just _ccpId) (Just AltJSON)
+              _ccpPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ContentCategoriesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Update.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Update.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.ContentCategories.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing content category.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.contentCategories.update@.
+module Network.Google.Resource.DFAReporting.ContentCategories.Update
+    (
+    -- * REST Resource
+      ContentCategoriesUpdateResource
+
+    -- * Creating a Request
+    , contentCategoriesUpdate
+    , ContentCategoriesUpdate
+
+    -- * Request Lenses
+    , ccuProFileId
+    , ccuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.contentCategories.update@ method which the
+-- 'ContentCategoriesUpdate' request conforms to.
+type ContentCategoriesUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "contentCategories" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] ContentCategory :>
+                   Put '[JSON] ContentCategory
+
+-- | Updates an existing content category.
+--
+-- /See:/ 'contentCategoriesUpdate' smart constructor.
+data ContentCategoriesUpdate = ContentCategoriesUpdate
+    { _ccuProFileId :: !(Textual Int64)
+    , _ccuPayload   :: !ContentCategory
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContentCategoriesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccuProFileId'
+--
+-- * 'ccuPayload'
+contentCategoriesUpdate
+    :: Int64 -- ^ 'ccuProFileId'
+    -> ContentCategory -- ^ 'ccuPayload'
+    -> ContentCategoriesUpdate
+contentCategoriesUpdate pCcuProFileId_ pCcuPayload_ =
+    ContentCategoriesUpdate
+    { _ccuProFileId = _Coerce # pCcuProFileId_
+    , _ccuPayload = pCcuPayload_
+    }
+
+-- | User profile ID associated with this request.
+ccuProFileId :: Lens' ContentCategoriesUpdate Int64
+ccuProFileId
+  = lens _ccuProFileId (\ s a -> s{_ccuProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+ccuPayload :: Lens' ContentCategoriesUpdate ContentCategory
+ccuPayload
+  = lens _ccuPayload (\ s a -> s{_ccuPayload = a})
+
+instance GoogleRequest ContentCategoriesUpdate where
+        type Rs ContentCategoriesUpdate = ContentCategory
+        requestClient ContentCategoriesUpdate{..}
+          = go _ccuProFileId (Just AltJSON) _ccuPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ContentCategoriesUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Countries/Get.hs b/gen/Network/Google/Resource/DFAReporting/Countries/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Countries/Get.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Countries.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one country by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.countries.get@.
+module Network.Google.Resource.DFAReporting.Countries.Get
+    (
+    -- * REST Resource
+      CountriesGetResource
+
+    -- * Creating a Request
+    , countriesGet
+    , CountriesGet
+
+    -- * Request Lenses
+    , cgProFileId
+    , cgDartId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.countries.get@ method which the
+-- 'CountriesGet' request conforms to.
+type CountriesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "countries" :>
+               Capture "dartId" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Country
+
+-- | Gets one country by ID.
+--
+-- /See:/ 'countriesGet' smart constructor.
+data CountriesGet = CountriesGet
+    { _cgProFileId :: !(Textual Int64)
+    , _cgDartId    :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CountriesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cgProFileId'
+--
+-- * 'cgDartId'
+countriesGet
+    :: Int64 -- ^ 'cgProFileId'
+    -> Int64 -- ^ 'cgDartId'
+    -> CountriesGet
+countriesGet pCgProFileId_ pCgDartId_ =
+    CountriesGet
+    { _cgProFileId = _Coerce # pCgProFileId_
+    , _cgDartId = _Coerce # pCgDartId_
+    }
+
+-- | User profile ID associated with this request.
+cgProFileId :: Lens' CountriesGet Int64
+cgProFileId
+  = lens _cgProFileId (\ s a -> s{_cgProFileId = a}) .
+      _Coerce
+
+-- | Country DART ID.
+cgDartId :: Lens' CountriesGet Int64
+cgDartId
+  = lens _cgDartId (\ s a -> s{_cgDartId = a}) .
+      _Coerce
+
+instance GoogleRequest CountriesGet where
+        type Rs CountriesGet = Country
+        requestClient CountriesGet{..}
+          = go _cgProFileId _cgDartId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy CountriesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Countries/List.hs b/gen/Network/Google/Resource/DFAReporting/Countries/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Countries/List.hs
@@ -0,0 +1,85 @@
+{-# 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.DFAReporting.Countries.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of countries.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.countries.list@.
+module Network.Google.Resource.DFAReporting.Countries.List
+    (
+    -- * REST Resource
+      CountriesListResource
+
+    -- * Creating a Request
+    , countriesList
+    , CountriesList
+
+    -- * Request Lenses
+    , couProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.countries.list@ method which the
+-- 'CountriesList' request conforms to.
+type CountriesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "countries" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] CountriesListResponse
+
+-- | Retrieves a list of countries.
+--
+-- /See:/ 'countriesList' smart constructor.
+newtype CountriesList = CountriesList
+    { _couProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CountriesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'couProFileId'
+countriesList
+    :: Int64 -- ^ 'couProFileId'
+    -> CountriesList
+countriesList pCouProFileId_ =
+    CountriesList
+    { _couProFileId = _Coerce # pCouProFileId_
+    }
+
+-- | User profile ID associated with this request.
+couProFileId :: Lens' CountriesList Int64
+couProFileId
+  = lens _couProFileId (\ s a -> s{_couProFileId = a})
+      . _Coerce
+
+instance GoogleRequest CountriesList where
+        type Rs CountriesList = CountriesListResponse
+        requestClient CountriesList{..}
+          = go _couProFileId (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy CountriesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeAssets/Insert.hs b/gen/Network/Google/Resource/DFAReporting/CreativeAssets/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeAssets/Insert.hs
@@ -0,0 +1,145 @@
+{-# 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.DFAReporting.CreativeAssets.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new creative asset.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeAssets.insert@.
+module Network.Google.Resource.DFAReporting.CreativeAssets.Insert
+    (
+    -- * REST Resource
+      CreativeAssetsInsertResource
+
+    -- * Creating a Request
+    , creativeAssetsInsert
+    , CreativeAssetsInsert
+
+    -- * Request Lenses
+    , caiAdvertiserId
+    , caiProFileId
+    , caiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeAssets.insert@ method which the
+-- 'CreativeAssetsInsert' request conforms to.
+type CreativeAssetsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeAssets" :>
+               Capture "advertiserId" (Textual Int64) :>
+                 "creativeAssets" :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] CreativeAssetMetadata :>
+                       Post '[JSON] CreativeAssetMetadata
+       :<|>
+       "upload" :>
+         "dfareporting" :>
+           "v2.2" :>
+             "userprofiles" :>
+               Capture "profileId" (Textual Int64) :>
+                 "creativeAssets" :>
+                   Capture "advertiserId" (Textual Int64) :>
+                     "creativeAssets" :>
+                       QueryParam "alt" AltJSON :>
+                         QueryParam "uploadType" AltMedia :>
+                           MultipartRelated '[JSON] CreativeAssetMetadata
+                             RequestBody
+                             :> Post '[JSON] CreativeAssetMetadata
+
+-- | Inserts a new creative asset.
+--
+-- /See:/ 'creativeAssetsInsert' smart constructor.
+data CreativeAssetsInsert = CreativeAssetsInsert
+    { _caiAdvertiserId :: !(Textual Int64)
+    , _caiProFileId    :: !(Textual Int64)
+    , _caiPayload      :: !CreativeAssetMetadata
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeAssetsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'caiAdvertiserId'
+--
+-- * 'caiProFileId'
+--
+-- * 'caiPayload'
+creativeAssetsInsert
+    :: Int64 -- ^ 'caiAdvertiserId'
+    -> Int64 -- ^ 'caiProFileId'
+    -> CreativeAssetMetadata -- ^ 'caiPayload'
+    -> CreativeAssetsInsert
+creativeAssetsInsert pCaiAdvertiserId_ pCaiProFileId_ pCaiPayload_ =
+    CreativeAssetsInsert
+    { _caiAdvertiserId = _Coerce # pCaiAdvertiserId_
+    , _caiProFileId = _Coerce # pCaiProFileId_
+    , _caiPayload = pCaiPayload_
+    }
+
+-- | Advertiser ID of this creative. This is a required field.
+caiAdvertiserId :: Lens' CreativeAssetsInsert Int64
+caiAdvertiserId
+  = lens _caiAdvertiserId
+      (\ s a -> s{_caiAdvertiserId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+caiProFileId :: Lens' CreativeAssetsInsert Int64
+caiProFileId
+  = lens _caiProFileId (\ s a -> s{_caiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+caiPayload :: Lens' CreativeAssetsInsert CreativeAssetMetadata
+caiPayload
+  = lens _caiPayload (\ s a -> s{_caiPayload = a})
+
+instance GoogleRequest CreativeAssetsInsert where
+        type Rs CreativeAssetsInsert = CreativeAssetMetadata
+        requestClient CreativeAssetsInsert{..}
+          = go _caiProFileId _caiAdvertiserId (Just AltJSON)
+              _caiPayload
+              dFAReportingService
+          where go :<|> _
+                  = buildClient
+                      (Proxy :: Proxy CreativeAssetsInsertResource)
+                      mempty
+
+instance GoogleRequest
+         (MediaUpload CreativeAssetsInsert) where
+        type Rs (MediaUpload CreativeAssetsInsert) =
+             CreativeAssetMetadata
+        requestClient
+          (MediaUpload CreativeAssetsInsert{..} body)
+          = go _caiProFileId _caiAdvertiserId (Just AltJSON)
+              (Just AltMedia)
+              _caiPayload
+              body
+              dFAReportingService
+          where _ :<|> go
+                  = buildClient
+                      (Proxy :: Proxy CreativeAssetsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Delete.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Delete.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.CreativeFieldValues.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing creative field value.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFieldValues.delete@.
+module Network.Google.Resource.DFAReporting.CreativeFieldValues.Delete
+    (
+    -- * REST Resource
+      CreativeFieldValuesDeleteResource
+
+    -- * Creating a Request
+    , creativeFieldValuesDelete
+    , CreativeFieldValuesDelete
+
+    -- * Request Lenses
+    , cfvdCreativeFieldId
+    , cfvdProFileId
+    , cfvdId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFieldValues.delete@ method which the
+-- 'CreativeFieldValuesDelete' request conforms to.
+type CreativeFieldValuesDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               Capture "creativeFieldId" (Textual Int64) :>
+                 "creativeFieldValues" :>
+                   Capture "id" (Textual Int64) :>
+                     QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing creative field value.
+--
+-- /See:/ 'creativeFieldValuesDelete' smart constructor.
+data CreativeFieldValuesDelete = CreativeFieldValuesDelete
+    { _cfvdCreativeFieldId :: !(Textual Int64)
+    , _cfvdProFileId       :: !(Textual Int64)
+    , _cfvdId              :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldValuesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfvdCreativeFieldId'
+--
+-- * 'cfvdProFileId'
+--
+-- * 'cfvdId'
+creativeFieldValuesDelete
+    :: Int64 -- ^ 'cfvdCreativeFieldId'
+    -> Int64 -- ^ 'cfvdProFileId'
+    -> Int64 -- ^ 'cfvdId'
+    -> CreativeFieldValuesDelete
+creativeFieldValuesDelete pCfvdCreativeFieldId_ pCfvdProFileId_ pCfvdId_ =
+    CreativeFieldValuesDelete
+    { _cfvdCreativeFieldId = _Coerce # pCfvdCreativeFieldId_
+    , _cfvdProFileId = _Coerce # pCfvdProFileId_
+    , _cfvdId = _Coerce # pCfvdId_
+    }
+
+-- | Creative field ID for this creative field value.
+cfvdCreativeFieldId :: Lens' CreativeFieldValuesDelete Int64
+cfvdCreativeFieldId
+  = lens _cfvdCreativeFieldId
+      (\ s a -> s{_cfvdCreativeFieldId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+cfvdProFileId :: Lens' CreativeFieldValuesDelete Int64
+cfvdProFileId
+  = lens _cfvdProFileId
+      (\ s a -> s{_cfvdProFileId = a})
+      . _Coerce
+
+-- | Creative Field Value ID
+cfvdId :: Lens' CreativeFieldValuesDelete Int64
+cfvdId
+  = lens _cfvdId (\ s a -> s{_cfvdId = a}) . _Coerce
+
+instance GoogleRequest CreativeFieldValuesDelete
+         where
+        type Rs CreativeFieldValuesDelete = ()
+        requestClient CreativeFieldValuesDelete{..}
+          = go _cfvdProFileId _cfvdCreativeFieldId _cfvdId
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldValuesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Get.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Get.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.CreativeFieldValues.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one creative field value by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFieldValues.get@.
+module Network.Google.Resource.DFAReporting.CreativeFieldValues.Get
+    (
+    -- * REST Resource
+      CreativeFieldValuesGetResource
+
+    -- * Creating a Request
+    , creativeFieldValuesGet
+    , CreativeFieldValuesGet
+
+    -- * Request Lenses
+    , cfvgCreativeFieldId
+    , cfvgProFileId
+    , cfvgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFieldValues.get@ method which the
+-- 'CreativeFieldValuesGet' request conforms to.
+type CreativeFieldValuesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               Capture "creativeFieldId" (Textual Int64) :>
+                 "creativeFieldValues" :>
+                   Capture "id" (Textual Int64) :>
+                     QueryParam "alt" AltJSON :>
+                       Get '[JSON] CreativeFieldValue
+
+-- | Gets one creative field value by ID.
+--
+-- /See:/ 'creativeFieldValuesGet' smart constructor.
+data CreativeFieldValuesGet = CreativeFieldValuesGet
+    { _cfvgCreativeFieldId :: !(Textual Int64)
+    , _cfvgProFileId       :: !(Textual Int64)
+    , _cfvgId              :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldValuesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfvgCreativeFieldId'
+--
+-- * 'cfvgProFileId'
+--
+-- * 'cfvgId'
+creativeFieldValuesGet
+    :: Int64 -- ^ 'cfvgCreativeFieldId'
+    -> Int64 -- ^ 'cfvgProFileId'
+    -> Int64 -- ^ 'cfvgId'
+    -> CreativeFieldValuesGet
+creativeFieldValuesGet pCfvgCreativeFieldId_ pCfvgProFileId_ pCfvgId_ =
+    CreativeFieldValuesGet
+    { _cfvgCreativeFieldId = _Coerce # pCfvgCreativeFieldId_
+    , _cfvgProFileId = _Coerce # pCfvgProFileId_
+    , _cfvgId = _Coerce # pCfvgId_
+    }
+
+-- | Creative field ID for this creative field value.
+cfvgCreativeFieldId :: Lens' CreativeFieldValuesGet Int64
+cfvgCreativeFieldId
+  = lens _cfvgCreativeFieldId
+      (\ s a -> s{_cfvgCreativeFieldId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+cfvgProFileId :: Lens' CreativeFieldValuesGet Int64
+cfvgProFileId
+  = lens _cfvgProFileId
+      (\ s a -> s{_cfvgProFileId = a})
+      . _Coerce
+
+-- | Creative Field Value ID
+cfvgId :: Lens' CreativeFieldValuesGet Int64
+cfvgId
+  = lens _cfvgId (\ s a -> s{_cfvgId = a}) . _Coerce
+
+instance GoogleRequest CreativeFieldValuesGet where
+        type Rs CreativeFieldValuesGet = CreativeFieldValue
+        requestClient CreativeFieldValuesGet{..}
+          = go _cfvgProFileId _cfvgCreativeFieldId _cfvgId
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldValuesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Insert.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Insert.hs
@@ -0,0 +1,119 @@
+{-# 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.DFAReporting.CreativeFieldValues.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new creative field value.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFieldValues.insert@.
+module Network.Google.Resource.DFAReporting.CreativeFieldValues.Insert
+    (
+    -- * REST Resource
+      CreativeFieldValuesInsertResource
+
+    -- * Creating a Request
+    , creativeFieldValuesInsert
+    , CreativeFieldValuesInsert
+
+    -- * Request Lenses
+    , cfviCreativeFieldId
+    , cfviProFileId
+    , cfviPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFieldValues.insert@ method which the
+-- 'CreativeFieldValuesInsert' request conforms to.
+type CreativeFieldValuesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               Capture "creativeFieldId" (Textual Int64) :>
+                 "creativeFieldValues" :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] CreativeFieldValue :>
+                       Post '[JSON] CreativeFieldValue
+
+-- | Inserts a new creative field value.
+--
+-- /See:/ 'creativeFieldValuesInsert' smart constructor.
+data CreativeFieldValuesInsert = CreativeFieldValuesInsert
+    { _cfviCreativeFieldId :: !(Textual Int64)
+    , _cfviProFileId       :: !(Textual Int64)
+    , _cfviPayload         :: !CreativeFieldValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldValuesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfviCreativeFieldId'
+--
+-- * 'cfviProFileId'
+--
+-- * 'cfviPayload'
+creativeFieldValuesInsert
+    :: Int64 -- ^ 'cfviCreativeFieldId'
+    -> Int64 -- ^ 'cfviProFileId'
+    -> CreativeFieldValue -- ^ 'cfviPayload'
+    -> CreativeFieldValuesInsert
+creativeFieldValuesInsert pCfviCreativeFieldId_ pCfviProFileId_ pCfviPayload_ =
+    CreativeFieldValuesInsert
+    { _cfviCreativeFieldId = _Coerce # pCfviCreativeFieldId_
+    , _cfviProFileId = _Coerce # pCfviProFileId_
+    , _cfviPayload = pCfviPayload_
+    }
+
+-- | Creative field ID for this creative field value.
+cfviCreativeFieldId :: Lens' CreativeFieldValuesInsert Int64
+cfviCreativeFieldId
+  = lens _cfviCreativeFieldId
+      (\ s a -> s{_cfviCreativeFieldId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+cfviProFileId :: Lens' CreativeFieldValuesInsert Int64
+cfviProFileId
+  = lens _cfviProFileId
+      (\ s a -> s{_cfviProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cfviPayload :: Lens' CreativeFieldValuesInsert CreativeFieldValue
+cfviPayload
+  = lens _cfviPayload (\ s a -> s{_cfviPayload = a})
+
+instance GoogleRequest CreativeFieldValuesInsert
+         where
+        type Rs CreativeFieldValuesInsert =
+             CreativeFieldValue
+        requestClient CreativeFieldValuesInsert{..}
+          = go _cfviProFileId _cfviCreativeFieldId
+              (Just AltJSON)
+              _cfviPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldValuesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/List.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/List.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.DFAReporting.CreativeFieldValues.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of creative field values, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFieldValues.list@.
+module Network.Google.Resource.DFAReporting.CreativeFieldValues.List
+    (
+    -- * REST Resource
+      CreativeFieldValuesListResource
+
+    -- * Creating a Request
+    , creativeFieldValuesList
+    , CreativeFieldValuesList
+
+    -- * Request Lenses
+    , cfvlCreativeFieldId
+    , cfvlSearchString
+    , cfvlIds
+    , cfvlProFileId
+    , cfvlSortOrder
+    , cfvlPageToken
+    , cfvlSortField
+    , cfvlMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFieldValues.list@ method which the
+-- 'CreativeFieldValuesList' request conforms to.
+type CreativeFieldValuesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               Capture "creativeFieldId" (Textual Int64) :>
+                 "creativeFieldValues" :>
+                   QueryParam "searchString" Text :>
+                     QueryParams "ids" (Textual Int64) :>
+                       QueryParam "sortOrder"
+                         CreativeFieldValuesListSortOrder
+                         :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "sortField"
+                             CreativeFieldValuesListSortField
+                             :>
+                             QueryParam "maxResults" (Textual Int32) :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] CreativeFieldValuesListResponse
+
+-- | Retrieves a list of creative field values, possibly filtered.
+--
+-- /See:/ 'creativeFieldValuesList' smart constructor.
+data CreativeFieldValuesList = CreativeFieldValuesList
+    { _cfvlCreativeFieldId :: !(Textual Int64)
+    , _cfvlSearchString    :: !(Maybe Text)
+    , _cfvlIds             :: !(Maybe [Textual Int64])
+    , _cfvlProFileId       :: !(Textual Int64)
+    , _cfvlSortOrder       :: !(Maybe CreativeFieldValuesListSortOrder)
+    , _cfvlPageToken       :: !(Maybe Text)
+    , _cfvlSortField       :: !(Maybe CreativeFieldValuesListSortField)
+    , _cfvlMaxResults      :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldValuesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfvlCreativeFieldId'
+--
+-- * 'cfvlSearchString'
+--
+-- * 'cfvlIds'
+--
+-- * 'cfvlProFileId'
+--
+-- * 'cfvlSortOrder'
+--
+-- * 'cfvlPageToken'
+--
+-- * 'cfvlSortField'
+--
+-- * 'cfvlMaxResults'
+creativeFieldValuesList
+    :: Int64 -- ^ 'cfvlCreativeFieldId'
+    -> Int64 -- ^ 'cfvlProFileId'
+    -> CreativeFieldValuesList
+creativeFieldValuesList pCfvlCreativeFieldId_ pCfvlProFileId_ =
+    CreativeFieldValuesList
+    { _cfvlCreativeFieldId = _Coerce # pCfvlCreativeFieldId_
+    , _cfvlSearchString = Nothing
+    , _cfvlIds = Nothing
+    , _cfvlProFileId = _Coerce # pCfvlProFileId_
+    , _cfvlSortOrder = Nothing
+    , _cfvlPageToken = Nothing
+    , _cfvlSortField = Nothing
+    , _cfvlMaxResults = Nothing
+    }
+
+-- | Creative field ID for this creative field value.
+cfvlCreativeFieldId :: Lens' CreativeFieldValuesList Int64
+cfvlCreativeFieldId
+  = lens _cfvlCreativeFieldId
+      (\ s a -> s{_cfvlCreativeFieldId = a})
+      . _Coerce
+
+-- | Allows searching for creative field values by their values. Wildcards
+-- (e.g. *) are not allowed.
+cfvlSearchString :: Lens' CreativeFieldValuesList (Maybe Text)
+cfvlSearchString
+  = lens _cfvlSearchString
+      (\ s a -> s{_cfvlSearchString = a})
+
+-- | Select only creative field values with these IDs.
+cfvlIds :: Lens' CreativeFieldValuesList [Int64]
+cfvlIds
+  = lens _cfvlIds (\ s a -> s{_cfvlIds = a}) . _Default
+      . _Coerce
+
+-- | User profile ID associated with this request.
+cfvlProFileId :: Lens' CreativeFieldValuesList Int64
+cfvlProFileId
+  = lens _cfvlProFileId
+      (\ s a -> s{_cfvlProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+cfvlSortOrder :: Lens' CreativeFieldValuesList (Maybe CreativeFieldValuesListSortOrder)
+cfvlSortOrder
+  = lens _cfvlSortOrder
+      (\ s a -> s{_cfvlSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+cfvlPageToken :: Lens' CreativeFieldValuesList (Maybe Text)
+cfvlPageToken
+  = lens _cfvlPageToken
+      (\ s a -> s{_cfvlPageToken = a})
+
+-- | Field by which to sort the list.
+cfvlSortField :: Lens' CreativeFieldValuesList (Maybe CreativeFieldValuesListSortField)
+cfvlSortField
+  = lens _cfvlSortField
+      (\ s a -> s{_cfvlSortField = a})
+
+-- | Maximum number of results to return.
+cfvlMaxResults :: Lens' CreativeFieldValuesList (Maybe Int32)
+cfvlMaxResults
+  = lens _cfvlMaxResults
+      (\ s a -> s{_cfvlMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest CreativeFieldValuesList where
+        type Rs CreativeFieldValuesList =
+             CreativeFieldValuesListResponse
+        requestClient CreativeFieldValuesList{..}
+          = go _cfvlProFileId _cfvlCreativeFieldId
+              _cfvlSearchString
+              (_cfvlIds ^. _Default)
+              _cfvlSortOrder
+              _cfvlPageToken
+              _cfvlSortField
+              _cfvlMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldValuesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Patch.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.CreativeFieldValues.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing creative field value. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFieldValues.patch@.
+module Network.Google.Resource.DFAReporting.CreativeFieldValues.Patch
+    (
+    -- * REST Resource
+      CreativeFieldValuesPatchResource
+
+    -- * Creating a Request
+    , creativeFieldValuesPatch
+    , CreativeFieldValuesPatch
+
+    -- * Request Lenses
+    , cfvpCreativeFieldId
+    , cfvpProFileId
+    , cfvpPayload
+    , cfvpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFieldValues.patch@ method which the
+-- 'CreativeFieldValuesPatch' request conforms to.
+type CreativeFieldValuesPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               Capture "creativeFieldId" (Textual Int64) :>
+                 "creativeFieldValues" :>
+                   QueryParam "id" (Textual Int64) :>
+                     QueryParam "alt" AltJSON :>
+                       ReqBody '[JSON] CreativeFieldValue :>
+                         Patch '[JSON] CreativeFieldValue
+
+-- | Updates an existing creative field value. This method supports patch
+-- semantics.
+--
+-- /See:/ 'creativeFieldValuesPatch' smart constructor.
+data CreativeFieldValuesPatch = CreativeFieldValuesPatch
+    { _cfvpCreativeFieldId :: !(Textual Int64)
+    , _cfvpProFileId       :: !(Textual Int64)
+    , _cfvpPayload         :: !CreativeFieldValue
+    , _cfvpId              :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldValuesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfvpCreativeFieldId'
+--
+-- * 'cfvpProFileId'
+--
+-- * 'cfvpPayload'
+--
+-- * 'cfvpId'
+creativeFieldValuesPatch
+    :: Int64 -- ^ 'cfvpCreativeFieldId'
+    -> Int64 -- ^ 'cfvpProFileId'
+    -> CreativeFieldValue -- ^ 'cfvpPayload'
+    -> Int64 -- ^ 'cfvpId'
+    -> CreativeFieldValuesPatch
+creativeFieldValuesPatch pCfvpCreativeFieldId_ pCfvpProFileId_ pCfvpPayload_ pCfvpId_ =
+    CreativeFieldValuesPatch
+    { _cfvpCreativeFieldId = _Coerce # pCfvpCreativeFieldId_
+    , _cfvpProFileId = _Coerce # pCfvpProFileId_
+    , _cfvpPayload = pCfvpPayload_
+    , _cfvpId = _Coerce # pCfvpId_
+    }
+
+-- | Creative field ID for this creative field value.
+cfvpCreativeFieldId :: Lens' CreativeFieldValuesPatch Int64
+cfvpCreativeFieldId
+  = lens _cfvpCreativeFieldId
+      (\ s a -> s{_cfvpCreativeFieldId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+cfvpProFileId :: Lens' CreativeFieldValuesPatch Int64
+cfvpProFileId
+  = lens _cfvpProFileId
+      (\ s a -> s{_cfvpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cfvpPayload :: Lens' CreativeFieldValuesPatch CreativeFieldValue
+cfvpPayload
+  = lens _cfvpPayload (\ s a -> s{_cfvpPayload = a})
+
+-- | Creative Field Value ID
+cfvpId :: Lens' CreativeFieldValuesPatch Int64
+cfvpId
+  = lens _cfvpId (\ s a -> s{_cfvpId = a}) . _Coerce
+
+instance GoogleRequest CreativeFieldValuesPatch where
+        type Rs CreativeFieldValuesPatch = CreativeFieldValue
+        requestClient CreativeFieldValuesPatch{..}
+          = go _cfvpProFileId _cfvpCreativeFieldId
+              (Just _cfvpId)
+              (Just AltJSON)
+              _cfvpPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldValuesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Update.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Update.hs
@@ -0,0 +1,119 @@
+{-# 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.DFAReporting.CreativeFieldValues.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing creative field value.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFieldValues.update@.
+module Network.Google.Resource.DFAReporting.CreativeFieldValues.Update
+    (
+    -- * REST Resource
+      CreativeFieldValuesUpdateResource
+
+    -- * Creating a Request
+    , creativeFieldValuesUpdate
+    , CreativeFieldValuesUpdate
+
+    -- * Request Lenses
+    , cfvuCreativeFieldId
+    , cfvuProFileId
+    , cfvuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFieldValues.update@ method which the
+-- 'CreativeFieldValuesUpdate' request conforms to.
+type CreativeFieldValuesUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               Capture "creativeFieldId" (Textual Int64) :>
+                 "creativeFieldValues" :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] CreativeFieldValue :>
+                       Put '[JSON] CreativeFieldValue
+
+-- | Updates an existing creative field value.
+--
+-- /See:/ 'creativeFieldValuesUpdate' smart constructor.
+data CreativeFieldValuesUpdate = CreativeFieldValuesUpdate
+    { _cfvuCreativeFieldId :: !(Textual Int64)
+    , _cfvuProFileId       :: !(Textual Int64)
+    , _cfvuPayload         :: !CreativeFieldValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldValuesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfvuCreativeFieldId'
+--
+-- * 'cfvuProFileId'
+--
+-- * 'cfvuPayload'
+creativeFieldValuesUpdate
+    :: Int64 -- ^ 'cfvuCreativeFieldId'
+    -> Int64 -- ^ 'cfvuProFileId'
+    -> CreativeFieldValue -- ^ 'cfvuPayload'
+    -> CreativeFieldValuesUpdate
+creativeFieldValuesUpdate pCfvuCreativeFieldId_ pCfvuProFileId_ pCfvuPayload_ =
+    CreativeFieldValuesUpdate
+    { _cfvuCreativeFieldId = _Coerce # pCfvuCreativeFieldId_
+    , _cfvuProFileId = _Coerce # pCfvuProFileId_
+    , _cfvuPayload = pCfvuPayload_
+    }
+
+-- | Creative field ID for this creative field value.
+cfvuCreativeFieldId :: Lens' CreativeFieldValuesUpdate Int64
+cfvuCreativeFieldId
+  = lens _cfvuCreativeFieldId
+      (\ s a -> s{_cfvuCreativeFieldId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+cfvuProFileId :: Lens' CreativeFieldValuesUpdate Int64
+cfvuProFileId
+  = lens _cfvuProFileId
+      (\ s a -> s{_cfvuProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cfvuPayload :: Lens' CreativeFieldValuesUpdate CreativeFieldValue
+cfvuPayload
+  = lens _cfvuPayload (\ s a -> s{_cfvuPayload = a})
+
+instance GoogleRequest CreativeFieldValuesUpdate
+         where
+        type Rs CreativeFieldValuesUpdate =
+             CreativeFieldValue
+        requestClient CreativeFieldValuesUpdate{..}
+          = go _cfvuProFileId _cfvuCreativeFieldId
+              (Just AltJSON)
+              _cfvuPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldValuesUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Delete.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Delete.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.CreativeFields.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing creative field.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFields.delete@.
+module Network.Google.Resource.DFAReporting.CreativeFields.Delete
+    (
+    -- * REST Resource
+      CreativeFieldsDeleteResource
+
+    -- * Creating a Request
+    , creativeFieldsDelete
+    , CreativeFieldsDelete
+
+    -- * Request Lenses
+    , cfdProFileId
+    , cfdId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFields.delete@ method which the
+-- 'CreativeFieldsDelete' request conforms to.
+type CreativeFieldsDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing creative field.
+--
+-- /See:/ 'creativeFieldsDelete' smart constructor.
+data CreativeFieldsDelete = CreativeFieldsDelete
+    { _cfdProFileId :: !(Textual Int64)
+    , _cfdId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfdProFileId'
+--
+-- * 'cfdId'
+creativeFieldsDelete
+    :: Int64 -- ^ 'cfdProFileId'
+    -> Int64 -- ^ 'cfdId'
+    -> CreativeFieldsDelete
+creativeFieldsDelete pCfdProFileId_ pCfdId_ =
+    CreativeFieldsDelete
+    { _cfdProFileId = _Coerce # pCfdProFileId_
+    , _cfdId = _Coerce # pCfdId_
+    }
+
+-- | User profile ID associated with this request.
+cfdProFileId :: Lens' CreativeFieldsDelete Int64
+cfdProFileId
+  = lens _cfdProFileId (\ s a -> s{_cfdProFileId = a})
+      . _Coerce
+
+-- | Creative Field ID
+cfdId :: Lens' CreativeFieldsDelete Int64
+cfdId
+  = lens _cfdId (\ s a -> s{_cfdId = a}) . _Coerce
+
+instance GoogleRequest CreativeFieldsDelete where
+        type Rs CreativeFieldsDelete = ()
+        requestClient CreativeFieldsDelete{..}
+          = go _cfdProFileId _cfdId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Get.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Get.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.CreativeFields.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one creative field by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFields.get@.
+module Network.Google.Resource.DFAReporting.CreativeFields.Get
+    (
+    -- * REST Resource
+      CreativeFieldsGetResource
+
+    -- * Creating a Request
+    , creativeFieldsGet
+    , CreativeFieldsGet
+
+    -- * Request Lenses
+    , cfgProFileId
+    , cfgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFields.get@ method which the
+-- 'CreativeFieldsGet' request conforms to.
+type CreativeFieldsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] CreativeField
+
+-- | Gets one creative field by ID.
+--
+-- /See:/ 'creativeFieldsGet' smart constructor.
+data CreativeFieldsGet = CreativeFieldsGet
+    { _cfgProFileId :: !(Textual Int64)
+    , _cfgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfgProFileId'
+--
+-- * 'cfgId'
+creativeFieldsGet
+    :: Int64 -- ^ 'cfgProFileId'
+    -> Int64 -- ^ 'cfgId'
+    -> CreativeFieldsGet
+creativeFieldsGet pCfgProFileId_ pCfgId_ =
+    CreativeFieldsGet
+    { _cfgProFileId = _Coerce # pCfgProFileId_
+    , _cfgId = _Coerce # pCfgId_
+    }
+
+-- | User profile ID associated with this request.
+cfgProFileId :: Lens' CreativeFieldsGet Int64
+cfgProFileId
+  = lens _cfgProFileId (\ s a -> s{_cfgProFileId = a})
+      . _Coerce
+
+-- | Creative Field ID
+cfgId :: Lens' CreativeFieldsGet Int64
+cfgId
+  = lens _cfgId (\ s a -> s{_cfgId = a}) . _Coerce
+
+instance GoogleRequest CreativeFieldsGet where
+        type Rs CreativeFieldsGet = CreativeField
+        requestClient CreativeFieldsGet{..}
+          = go _cfgProFileId _cfgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Insert.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Insert.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.CreativeFields.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new creative field.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFields.insert@.
+module Network.Google.Resource.DFAReporting.CreativeFields.Insert
+    (
+    -- * REST Resource
+      CreativeFieldsInsertResource
+
+    -- * Creating a Request
+    , creativeFieldsInsert
+    , CreativeFieldsInsert
+
+    -- * Request Lenses
+    , cfiProFileId
+    , cfiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFields.insert@ method which the
+-- 'CreativeFieldsInsert' request conforms to.
+type CreativeFieldsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] CreativeField :>
+                   Post '[JSON] CreativeField
+
+-- | Inserts a new creative field.
+--
+-- /See:/ 'creativeFieldsInsert' smart constructor.
+data CreativeFieldsInsert = CreativeFieldsInsert
+    { _cfiProFileId :: !(Textual Int64)
+    , _cfiPayload   :: !CreativeField
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfiProFileId'
+--
+-- * 'cfiPayload'
+creativeFieldsInsert
+    :: Int64 -- ^ 'cfiProFileId'
+    -> CreativeField -- ^ 'cfiPayload'
+    -> CreativeFieldsInsert
+creativeFieldsInsert pCfiProFileId_ pCfiPayload_ =
+    CreativeFieldsInsert
+    { _cfiProFileId = _Coerce # pCfiProFileId_
+    , _cfiPayload = pCfiPayload_
+    }
+
+-- | User profile ID associated with this request.
+cfiProFileId :: Lens' CreativeFieldsInsert Int64
+cfiProFileId
+  = lens _cfiProFileId (\ s a -> s{_cfiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cfiPayload :: Lens' CreativeFieldsInsert CreativeField
+cfiPayload
+  = lens _cfiPayload (\ s a -> s{_cfiPayload = a})
+
+instance GoogleRequest CreativeFieldsInsert where
+        type Rs CreativeFieldsInsert = CreativeField
+        requestClient CreativeFieldsInsert{..}
+          = go _cfiProFileId (Just AltJSON) _cfiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/List.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/List.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.DFAReporting.CreativeFields.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of creative fields, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFields.list@.
+module Network.Google.Resource.DFAReporting.CreativeFields.List
+    (
+    -- * REST Resource
+      CreativeFieldsListResource
+
+    -- * Creating a Request
+    , creativeFieldsList
+    , CreativeFieldsList
+
+    -- * Request Lenses
+    , cflSearchString
+    , cflIds
+    , cflProFileId
+    , cflSortOrder
+    , cflPageToken
+    , cflSortField
+    , cflAdvertiserIds
+    , cflMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFields.list@ method which the
+-- 'CreativeFieldsList' request conforms to.
+type CreativeFieldsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               QueryParam "searchString" Text :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParam "sortOrder" CreativeFieldsListSortOrder :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "sortField" CreativeFieldsListSortField :>
+                         QueryParams "advertiserIds" (Textual Int64) :>
+                           QueryParam "maxResults" (Textual Int32) :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] CreativeFieldsListResponse
+
+-- | Retrieves a list of creative fields, possibly filtered.
+--
+-- /See:/ 'creativeFieldsList' smart constructor.
+data CreativeFieldsList = CreativeFieldsList
+    { _cflSearchString  :: !(Maybe Text)
+    , _cflIds           :: !(Maybe [Textual Int64])
+    , _cflProFileId     :: !(Textual Int64)
+    , _cflSortOrder     :: !(Maybe CreativeFieldsListSortOrder)
+    , _cflPageToken     :: !(Maybe Text)
+    , _cflSortField     :: !(Maybe CreativeFieldsListSortField)
+    , _cflAdvertiserIds :: !(Maybe [Textual Int64])
+    , _cflMaxResults    :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cflSearchString'
+--
+-- * 'cflIds'
+--
+-- * 'cflProFileId'
+--
+-- * 'cflSortOrder'
+--
+-- * 'cflPageToken'
+--
+-- * 'cflSortField'
+--
+-- * 'cflAdvertiserIds'
+--
+-- * 'cflMaxResults'
+creativeFieldsList
+    :: Int64 -- ^ 'cflProFileId'
+    -> CreativeFieldsList
+creativeFieldsList pCflProFileId_ =
+    CreativeFieldsList
+    { _cflSearchString = Nothing
+    , _cflIds = Nothing
+    , _cflProFileId = _Coerce # pCflProFileId_
+    , _cflSortOrder = Nothing
+    , _cflPageToken = Nothing
+    , _cflSortField = Nothing
+    , _cflAdvertiserIds = Nothing
+    , _cflMaxResults = Nothing
+    }
+
+-- | Allows searching for creative fields by name or ID. Wildcards (*) are
+-- allowed. For example, \"creativefield*2015\" will return creative fields
+-- with names like \"creativefield June 2015\", \"creativefield April
+-- 2015\", or simply \"creativefield 2015\". Most of the searches also add
+-- wild-cards implicitly at the start and the end of the search string. For
+-- example, a search string of \"creativefield\" will match creative fields
+-- with the name \"my creativefield\", \"creativefield 2015\", or simply
+-- \"creativefield\".
+cflSearchString :: Lens' CreativeFieldsList (Maybe Text)
+cflSearchString
+  = lens _cflSearchString
+      (\ s a -> s{_cflSearchString = a})
+
+-- | Select only creative fields with these IDs.
+cflIds :: Lens' CreativeFieldsList [Int64]
+cflIds
+  = lens _cflIds (\ s a -> s{_cflIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+cflProFileId :: Lens' CreativeFieldsList Int64
+cflProFileId
+  = lens _cflProFileId (\ s a -> s{_cflProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+cflSortOrder :: Lens' CreativeFieldsList (Maybe CreativeFieldsListSortOrder)
+cflSortOrder
+  = lens _cflSortOrder (\ s a -> s{_cflSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+cflPageToken :: Lens' CreativeFieldsList (Maybe Text)
+cflPageToken
+  = lens _cflPageToken (\ s a -> s{_cflPageToken = a})
+
+-- | Field by which to sort the list.
+cflSortField :: Lens' CreativeFieldsList (Maybe CreativeFieldsListSortField)
+cflSortField
+  = lens _cflSortField (\ s a -> s{_cflSortField = a})
+
+-- | Select only creative fields that belong to these advertisers.
+cflAdvertiserIds :: Lens' CreativeFieldsList [Int64]
+cflAdvertiserIds
+  = lens _cflAdvertiserIds
+      (\ s a -> s{_cflAdvertiserIds = a})
+      . _Default
+      . _Coerce
+
+-- | Maximum number of results to return.
+cflMaxResults :: Lens' CreativeFieldsList (Maybe Int32)
+cflMaxResults
+  = lens _cflMaxResults
+      (\ s a -> s{_cflMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest CreativeFieldsList where
+        type Rs CreativeFieldsList =
+             CreativeFieldsListResponse
+        requestClient CreativeFieldsList{..}
+          = go _cflProFileId _cflSearchString
+              (_cflIds ^. _Default)
+              _cflSortOrder
+              _cflPageToken
+              _cflSortField
+              (_cflAdvertiserIds ^. _Default)
+              _cflMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Patch.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Patch.hs
@@ -0,0 +1,114 @@
+{-# 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.DFAReporting.CreativeFields.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing creative field. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFields.patch@.
+module Network.Google.Resource.DFAReporting.CreativeFields.Patch
+    (
+    -- * REST Resource
+      CreativeFieldsPatchResource
+
+    -- * Creating a Request
+    , creativeFieldsPatch
+    , CreativeFieldsPatch
+
+    -- * Request Lenses
+    , cfpProFileId
+    , cfpPayload
+    , cfpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFields.patch@ method which the
+-- 'CreativeFieldsPatch' request conforms to.
+type CreativeFieldsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] CreativeField :>
+                     Patch '[JSON] CreativeField
+
+-- | Updates an existing creative field. This method supports patch
+-- semantics.
+--
+-- /See:/ 'creativeFieldsPatch' smart constructor.
+data CreativeFieldsPatch = CreativeFieldsPatch
+    { _cfpProFileId :: !(Textual Int64)
+    , _cfpPayload   :: !CreativeField
+    , _cfpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfpProFileId'
+--
+-- * 'cfpPayload'
+--
+-- * 'cfpId'
+creativeFieldsPatch
+    :: Int64 -- ^ 'cfpProFileId'
+    -> CreativeField -- ^ 'cfpPayload'
+    -> Int64 -- ^ 'cfpId'
+    -> CreativeFieldsPatch
+creativeFieldsPatch pCfpProFileId_ pCfpPayload_ pCfpId_ =
+    CreativeFieldsPatch
+    { _cfpProFileId = _Coerce # pCfpProFileId_
+    , _cfpPayload = pCfpPayload_
+    , _cfpId = _Coerce # pCfpId_
+    }
+
+-- | User profile ID associated with this request.
+cfpProFileId :: Lens' CreativeFieldsPatch Int64
+cfpProFileId
+  = lens _cfpProFileId (\ s a -> s{_cfpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cfpPayload :: Lens' CreativeFieldsPatch CreativeField
+cfpPayload
+  = lens _cfpPayload (\ s a -> s{_cfpPayload = a})
+
+-- | Creative Field ID
+cfpId :: Lens' CreativeFieldsPatch Int64
+cfpId
+  = lens _cfpId (\ s a -> s{_cfpId = a}) . _Coerce
+
+instance GoogleRequest CreativeFieldsPatch where
+        type Rs CreativeFieldsPatch = CreativeField
+        requestClient CreativeFieldsPatch{..}
+          = go _cfpProFileId (Just _cfpId) (Just AltJSON)
+              _cfpPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Update.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Update.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.CreativeFields.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing creative field.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeFields.update@.
+module Network.Google.Resource.DFAReporting.CreativeFields.Update
+    (
+    -- * REST Resource
+      CreativeFieldsUpdateResource
+
+    -- * Creating a Request
+    , creativeFieldsUpdate
+    , CreativeFieldsUpdate
+
+    -- * Request Lenses
+    , cfuProFileId
+    , cfuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeFields.update@ method which the
+-- 'CreativeFieldsUpdate' request conforms to.
+type CreativeFieldsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeFields" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] CreativeField :>
+                   Put '[JSON] CreativeField
+
+-- | Updates an existing creative field.
+--
+-- /See:/ 'creativeFieldsUpdate' smart constructor.
+data CreativeFieldsUpdate = CreativeFieldsUpdate
+    { _cfuProFileId :: !(Textual Int64)
+    , _cfuPayload   :: !CreativeField
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfuProFileId'
+--
+-- * 'cfuPayload'
+creativeFieldsUpdate
+    :: Int64 -- ^ 'cfuProFileId'
+    -> CreativeField -- ^ 'cfuPayload'
+    -> CreativeFieldsUpdate
+creativeFieldsUpdate pCfuProFileId_ pCfuPayload_ =
+    CreativeFieldsUpdate
+    { _cfuProFileId = _Coerce # pCfuProFileId_
+    , _cfuPayload = pCfuPayload_
+    }
+
+-- | User profile ID associated with this request.
+cfuProFileId :: Lens' CreativeFieldsUpdate Int64
+cfuProFileId
+  = lens _cfuProFileId (\ s a -> s{_cfuProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cfuPayload :: Lens' CreativeFieldsUpdate CreativeField
+cfuPayload
+  = lens _cfuPayload (\ s a -> s{_cfuPayload = a})
+
+instance GoogleRequest CreativeFieldsUpdate where
+        type Rs CreativeFieldsUpdate = CreativeField
+        requestClient CreativeFieldsUpdate{..}
+          = go _cfuProFileId (Just AltJSON) _cfuPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeFieldsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Get.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.CreativeGroups.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one creative group by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeGroups.get@.
+module Network.Google.Resource.DFAReporting.CreativeGroups.Get
+    (
+    -- * REST Resource
+      CreativeGroupsGetResource
+
+    -- * Creating a Request
+    , creativeGroupsGet
+    , CreativeGroupsGet
+
+    -- * Request Lenses
+    , cgggProFileId
+    , cgggId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeGroups.get@ method which the
+-- 'CreativeGroupsGet' request conforms to.
+type CreativeGroupsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeGroups" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] CreativeGroup
+
+-- | Gets one creative group by ID.
+--
+-- /See:/ 'creativeGroupsGet' smart constructor.
+data CreativeGroupsGet = CreativeGroupsGet
+    { _cgggProFileId :: !(Textual Int64)
+    , _cgggId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroupsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cgggProFileId'
+--
+-- * 'cgggId'
+creativeGroupsGet
+    :: Int64 -- ^ 'cgggProFileId'
+    -> Int64 -- ^ 'cgggId'
+    -> CreativeGroupsGet
+creativeGroupsGet pCgggProFileId_ pCgggId_ =
+    CreativeGroupsGet
+    { _cgggProFileId = _Coerce # pCgggProFileId_
+    , _cgggId = _Coerce # pCgggId_
+    }
+
+-- | User profile ID associated with this request.
+cgggProFileId :: Lens' CreativeGroupsGet Int64
+cgggProFileId
+  = lens _cgggProFileId
+      (\ s a -> s{_cgggProFileId = a})
+      . _Coerce
+
+-- | Creative group ID.
+cgggId :: Lens' CreativeGroupsGet Int64
+cgggId
+  = lens _cgggId (\ s a -> s{_cgggId = a}) . _Coerce
+
+instance GoogleRequest CreativeGroupsGet where
+        type Rs CreativeGroupsGet = CreativeGroup
+        requestClient CreativeGroupsGet{..}
+          = go _cgggProFileId _cgggId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeGroupsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Insert.hs b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Insert.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.CreativeGroups.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new creative group.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeGroups.insert@.
+module Network.Google.Resource.DFAReporting.CreativeGroups.Insert
+    (
+    -- * REST Resource
+      CreativeGroupsInsertResource
+
+    -- * Creating a Request
+    , creativeGroupsInsert
+    , CreativeGroupsInsert
+
+    -- * Request Lenses
+    , cgiProFileId
+    , cgiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeGroups.insert@ method which the
+-- 'CreativeGroupsInsert' request conforms to.
+type CreativeGroupsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeGroups" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] CreativeGroup :>
+                   Post '[JSON] CreativeGroup
+
+-- | Inserts a new creative group.
+--
+-- /See:/ 'creativeGroupsInsert' smart constructor.
+data CreativeGroupsInsert = CreativeGroupsInsert
+    { _cgiProFileId :: !(Textual Int64)
+    , _cgiPayload   :: !CreativeGroup
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroupsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cgiProFileId'
+--
+-- * 'cgiPayload'
+creativeGroupsInsert
+    :: Int64 -- ^ 'cgiProFileId'
+    -> CreativeGroup -- ^ 'cgiPayload'
+    -> CreativeGroupsInsert
+creativeGroupsInsert pCgiProFileId_ pCgiPayload_ =
+    CreativeGroupsInsert
+    { _cgiProFileId = _Coerce # pCgiProFileId_
+    , _cgiPayload = pCgiPayload_
+    }
+
+-- | User profile ID associated with this request.
+cgiProFileId :: Lens' CreativeGroupsInsert Int64
+cgiProFileId
+  = lens _cgiProFileId (\ s a -> s{_cgiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cgiPayload :: Lens' CreativeGroupsInsert CreativeGroup
+cgiPayload
+  = lens _cgiPayload (\ s a -> s{_cgiPayload = a})
+
+instance GoogleRequest CreativeGroupsInsert where
+        type Rs CreativeGroupsInsert = CreativeGroup
+        requestClient CreativeGroupsInsert{..}
+          = go _cgiProFileId (Just AltJSON) _cgiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeGroupsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/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.DFAReporting.CreativeGroups.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of creative groups, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeGroups.list@.
+module Network.Google.Resource.DFAReporting.CreativeGroups.List
+    (
+    -- * REST Resource
+      CreativeGroupsListResource
+
+    -- * Creating a Request
+    , creativeGroupsList
+    , CreativeGroupsList
+
+    -- * Request Lenses
+    , cglSearchString
+    , cglIds
+    , cglProFileId
+    , cglSortOrder
+    , cglGroupNumber
+    , cglPageToken
+    , cglSortField
+    , cglAdvertiserIds
+    , cglMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeGroups.list@ method which the
+-- 'CreativeGroupsList' request conforms to.
+type CreativeGroupsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeGroups" :>
+               QueryParam "searchString" Text :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParam "sortOrder" CreativeGroupsListSortOrder :>
+                     QueryParam "groupNumber" (Textual Int32) :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "sortField" CreativeGroupsListSortField :>
+                           QueryParams "advertiserIds" (Textual Int64) :>
+                             QueryParam "maxResults" (Textual Int32) :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] CreativeGroupsListResponse
+
+-- | Retrieves a list of creative groups, possibly filtered.
+--
+-- /See:/ 'creativeGroupsList' smart constructor.
+data CreativeGroupsList = CreativeGroupsList
+    { _cglSearchString  :: !(Maybe Text)
+    , _cglIds           :: !(Maybe [Textual Int64])
+    , _cglProFileId     :: !(Textual Int64)
+    , _cglSortOrder     :: !(Maybe CreativeGroupsListSortOrder)
+    , _cglGroupNumber   :: !(Maybe (Textual Int32))
+    , _cglPageToken     :: !(Maybe Text)
+    , _cglSortField     :: !(Maybe CreativeGroupsListSortField)
+    , _cglAdvertiserIds :: !(Maybe [Textual Int64])
+    , _cglMaxResults    :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroupsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cglSearchString'
+--
+-- * 'cglIds'
+--
+-- * 'cglProFileId'
+--
+-- * 'cglSortOrder'
+--
+-- * 'cglGroupNumber'
+--
+-- * 'cglPageToken'
+--
+-- * 'cglSortField'
+--
+-- * 'cglAdvertiserIds'
+--
+-- * 'cglMaxResults'
+creativeGroupsList
+    :: Int64 -- ^ 'cglProFileId'
+    -> CreativeGroupsList
+creativeGroupsList pCglProFileId_ =
+    CreativeGroupsList
+    { _cglSearchString = Nothing
+    , _cglIds = Nothing
+    , _cglProFileId = _Coerce # pCglProFileId_
+    , _cglSortOrder = Nothing
+    , _cglGroupNumber = Nothing
+    , _cglPageToken = Nothing
+    , _cglSortField = Nothing
+    , _cglAdvertiserIds = Nothing
+    , _cglMaxResults = Nothing
+    }
+
+-- | Allows searching for creative groups by name or ID. Wildcards (*) are
+-- allowed. For example, \"creativegroup*2015\" will return creative groups
+-- with names like \"creativegroup June 2015\", \"creativegroup April
+-- 2015\", or simply \"creativegroup 2015\". Most of the searches also add
+-- wild-cards implicitly at the start and the end of the search string. For
+-- example, a search string of \"creativegroup\" will match creative groups
+-- with the name \"my creativegroup\", \"creativegroup 2015\", or simply
+-- \"creativegroup\".
+cglSearchString :: Lens' CreativeGroupsList (Maybe Text)
+cglSearchString
+  = lens _cglSearchString
+      (\ s a -> s{_cglSearchString = a})
+
+-- | Select only creative groups with these IDs.
+cglIds :: Lens' CreativeGroupsList [Int64]
+cglIds
+  = lens _cglIds (\ s a -> s{_cglIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+cglProFileId :: Lens' CreativeGroupsList Int64
+cglProFileId
+  = lens _cglProFileId (\ s a -> s{_cglProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+cglSortOrder :: Lens' CreativeGroupsList (Maybe CreativeGroupsListSortOrder)
+cglSortOrder
+  = lens _cglSortOrder (\ s a -> s{_cglSortOrder = a})
+
+-- | Select only creative groups that belong to this subgroup.
+cglGroupNumber :: Lens' CreativeGroupsList (Maybe Int32)
+cglGroupNumber
+  = lens _cglGroupNumber
+      (\ s a -> s{_cglGroupNumber = a})
+      . mapping _Coerce
+
+-- | Value of the nextPageToken from the previous result page.
+cglPageToken :: Lens' CreativeGroupsList (Maybe Text)
+cglPageToken
+  = lens _cglPageToken (\ s a -> s{_cglPageToken = a})
+
+-- | Field by which to sort the list.
+cglSortField :: Lens' CreativeGroupsList (Maybe CreativeGroupsListSortField)
+cglSortField
+  = lens _cglSortField (\ s a -> s{_cglSortField = a})
+
+-- | Select only creative groups that belong to these advertisers.
+cglAdvertiserIds :: Lens' CreativeGroupsList [Int64]
+cglAdvertiserIds
+  = lens _cglAdvertiserIds
+      (\ s a -> s{_cglAdvertiserIds = a})
+      . _Default
+      . _Coerce
+
+-- | Maximum number of results to return.
+cglMaxResults :: Lens' CreativeGroupsList (Maybe Int32)
+cglMaxResults
+  = lens _cglMaxResults
+      (\ s a -> s{_cglMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest CreativeGroupsList where
+        type Rs CreativeGroupsList =
+             CreativeGroupsListResponse
+        requestClient CreativeGroupsList{..}
+          = go _cglProFileId _cglSearchString
+              (_cglIds ^. _Default)
+              _cglSortOrder
+              _cglGroupNumber
+              _cglPageToken
+              _cglSortField
+              (_cglAdvertiserIds ^. _Default)
+              _cglMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeGroupsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Patch.hs b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Patch.hs
@@ -0,0 +1,114 @@
+{-# 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.DFAReporting.CreativeGroups.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing creative group. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeGroups.patch@.
+module Network.Google.Resource.DFAReporting.CreativeGroups.Patch
+    (
+    -- * REST Resource
+      CreativeGroupsPatchResource
+
+    -- * Creating a Request
+    , creativeGroupsPatch
+    , CreativeGroupsPatch
+
+    -- * Request Lenses
+    , cgpProFileId
+    , cgpPayload
+    , cgpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeGroups.patch@ method which the
+-- 'CreativeGroupsPatch' request conforms to.
+type CreativeGroupsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeGroups" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] CreativeGroup :>
+                     Patch '[JSON] CreativeGroup
+
+-- | Updates an existing creative group. This method supports patch
+-- semantics.
+--
+-- /See:/ 'creativeGroupsPatch' smart constructor.
+data CreativeGroupsPatch = CreativeGroupsPatch
+    { _cgpProFileId :: !(Textual Int64)
+    , _cgpPayload   :: !CreativeGroup
+    , _cgpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroupsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cgpProFileId'
+--
+-- * 'cgpPayload'
+--
+-- * 'cgpId'
+creativeGroupsPatch
+    :: Int64 -- ^ 'cgpProFileId'
+    -> CreativeGroup -- ^ 'cgpPayload'
+    -> Int64 -- ^ 'cgpId'
+    -> CreativeGroupsPatch
+creativeGroupsPatch pCgpProFileId_ pCgpPayload_ pCgpId_ =
+    CreativeGroupsPatch
+    { _cgpProFileId = _Coerce # pCgpProFileId_
+    , _cgpPayload = pCgpPayload_
+    , _cgpId = _Coerce # pCgpId_
+    }
+
+-- | User profile ID associated with this request.
+cgpProFileId :: Lens' CreativeGroupsPatch Int64
+cgpProFileId
+  = lens _cgpProFileId (\ s a -> s{_cgpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cgpPayload :: Lens' CreativeGroupsPatch CreativeGroup
+cgpPayload
+  = lens _cgpPayload (\ s a -> s{_cgpPayload = a})
+
+-- | Creative group ID.
+cgpId :: Lens' CreativeGroupsPatch Int64
+cgpId
+  = lens _cgpId (\ s a -> s{_cgpId = a}) . _Coerce
+
+instance GoogleRequest CreativeGroupsPatch where
+        type Rs CreativeGroupsPatch = CreativeGroup
+        requestClient CreativeGroupsPatch{..}
+          = go _cgpProFileId (Just _cgpId) (Just AltJSON)
+              _cgpPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeGroupsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Update.hs b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Update.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.CreativeGroups.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing creative group.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creativeGroups.update@.
+module Network.Google.Resource.DFAReporting.CreativeGroups.Update
+    (
+    -- * REST Resource
+      CreativeGroupsUpdateResource
+
+    -- * Creating a Request
+    , creativeGroupsUpdate
+    , CreativeGroupsUpdate
+
+    -- * Request Lenses
+    , cguProFileId
+    , cguPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creativeGroups.update@ method which the
+-- 'CreativeGroupsUpdate' request conforms to.
+type CreativeGroupsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creativeGroups" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] CreativeGroup :>
+                   Put '[JSON] CreativeGroup
+
+-- | Updates an existing creative group.
+--
+-- /See:/ 'creativeGroupsUpdate' smart constructor.
+data CreativeGroupsUpdate = CreativeGroupsUpdate
+    { _cguProFileId :: !(Textual Int64)
+    , _cguPayload   :: !CreativeGroup
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroupsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cguProFileId'
+--
+-- * 'cguPayload'
+creativeGroupsUpdate
+    :: Int64 -- ^ 'cguProFileId'
+    -> CreativeGroup -- ^ 'cguPayload'
+    -> CreativeGroupsUpdate
+creativeGroupsUpdate pCguProFileId_ pCguPayload_ =
+    CreativeGroupsUpdate
+    { _cguProFileId = _Coerce # pCguProFileId_
+    , _cguPayload = pCguPayload_
+    }
+
+-- | User profile ID associated with this request.
+cguProFileId :: Lens' CreativeGroupsUpdate Int64
+cguProFileId
+  = lens _cguProFileId (\ s a -> s{_cguProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cguPayload :: Lens' CreativeGroupsUpdate CreativeGroup
+cguPayload
+  = lens _cguPayload (\ s a -> s{_cguPayload = a})
+
+instance GoogleRequest CreativeGroupsUpdate where
+        type Rs CreativeGroupsUpdate = CreativeGroup
+        requestClient CreativeGroupsUpdate{..}
+          = go _cguProFileId (Just AltJSON) _cguPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativeGroupsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Creatives/Get.hs b/gen/Network/Google/Resource/DFAReporting/Creatives/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Creatives/Get.hs
@@ -0,0 +1,96 @@
+{-# 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.DFAReporting.Creatives.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one creative by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creatives.get@.
+module Network.Google.Resource.DFAReporting.Creatives.Get
+    (
+    -- * REST Resource
+      CreativesGetResource
+
+    -- * Creating a Request
+    , creativesGet
+    , CreativesGet
+
+    -- * Request Lenses
+    , ccProFileId
+    , ccId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creatives.get@ method which the
+-- 'CreativesGet' request conforms to.
+type CreativesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creatives" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Creative
+
+-- | Gets one creative by ID.
+--
+-- /See:/ 'creativesGet' smart constructor.
+data CreativesGet = CreativesGet
+    { _ccProFileId :: !(Textual Int64)
+    , _ccId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccProFileId'
+--
+-- * 'ccId'
+creativesGet
+    :: Int64 -- ^ 'ccProFileId'
+    -> Int64 -- ^ 'ccId'
+    -> CreativesGet
+creativesGet pCcProFileId_ pCcId_ =
+    CreativesGet
+    { _ccProFileId = _Coerce # pCcProFileId_
+    , _ccId = _Coerce # pCcId_
+    }
+
+-- | User profile ID associated with this request.
+ccProFileId :: Lens' CreativesGet Int64
+ccProFileId
+  = lens _ccProFileId (\ s a -> s{_ccProFileId = a}) .
+      _Coerce
+
+-- | Creative ID.
+ccId :: Lens' CreativesGet Int64
+ccId = lens _ccId (\ s a -> s{_ccId = a}) . _Coerce
+
+instance GoogleRequest CreativesGet where
+        type Rs CreativesGet = Creative
+        requestClient CreativesGet{..}
+          = go _ccProFileId _ccId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy CreativesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Creatives/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Creatives/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Creatives/Insert.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Creatives.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new creative.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creatives.insert@.
+module Network.Google.Resource.DFAReporting.Creatives.Insert
+    (
+    -- * REST Resource
+      CreativesInsertResource
+
+    -- * Creating a Request
+    , creativesInsert
+    , CreativesInsert
+
+    -- * Request Lenses
+    , ciProFileId
+    , ciPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creatives.insert@ method which the
+-- 'CreativesInsert' request conforms to.
+type CreativesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creatives" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Creative :> Post '[JSON] Creative
+
+-- | Inserts a new creative.
+--
+-- /See:/ 'creativesInsert' smart constructor.
+data CreativesInsert = CreativesInsert
+    { _ciProFileId :: !(Textual Int64)
+    , _ciPayload   :: !Creative
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ciProFileId'
+--
+-- * 'ciPayload'
+creativesInsert
+    :: Int64 -- ^ 'ciProFileId'
+    -> Creative -- ^ 'ciPayload'
+    -> CreativesInsert
+creativesInsert pCiProFileId_ pCiPayload_ =
+    CreativesInsert
+    { _ciProFileId = _Coerce # pCiProFileId_
+    , _ciPayload = pCiPayload_
+    }
+
+-- | User profile ID associated with this request.
+ciProFileId :: Lens' CreativesInsert Int64
+ciProFileId
+  = lens _ciProFileId (\ s a -> s{_ciProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+ciPayload :: Lens' CreativesInsert Creative
+ciPayload
+  = lens _ciPayload (\ s a -> s{_ciPayload = a})
+
+instance GoogleRequest CreativesInsert where
+        type Rs CreativesInsert = Creative
+        requestClient CreativesInsert{..}
+          = go _ciProFileId (Just AltJSON) _ciPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Creatives/List.hs b/gen/Network/Google/Resource/DFAReporting/Creatives/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Creatives/List.hs
@@ -0,0 +1,314 @@
+{-# 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.DFAReporting.Creatives.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of creatives, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creatives.list@.
+module Network.Google.Resource.DFAReporting.Creatives.List
+    (
+    -- * REST Resource
+      CreativesListResource
+
+    -- * Creating a Request
+    , creativesList
+    , CreativesList
+
+    -- * Request Lenses
+    , cRenderingIds
+    , cAdvertiserId
+    , cSearchString
+    , cSizeIds
+    , cCompanionCreativeIds
+    , cCampaignId
+    , cTypes
+    , cIds
+    , cProFileId
+    , cSortOrder
+    , cActive
+    , cCreativeFieldIds
+    , cPageToken
+    , cSortField
+    , cStudioCreativeId
+    , cArchived
+    , cMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creatives.list@ method which the
+-- 'CreativesList' request conforms to.
+type CreativesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creatives" :>
+               QueryParams "renderingIds" (Textual Int64) :>
+                 QueryParam "advertiserId" (Textual Int64) :>
+                   QueryParam "searchString" Text :>
+                     QueryParams "sizeIds" (Textual Int64) :>
+                       QueryParams "companionCreativeIds" (Textual Int64) :>
+                         QueryParam "campaignId" (Textual Int64) :>
+                           QueryParams "types" CreativesListTypes :>
+                             QueryParams "ids" (Textual Int64) :>
+                               QueryParam "sortOrder" CreativesListSortOrder :>
+                                 QueryParam "active" Bool :>
+                                   QueryParams "creativeFieldIds"
+                                     (Textual Int64)
+                                     :>
+                                     QueryParam "pageToken" Text :>
+                                       QueryParam "sortField"
+                                         CreativesListSortField
+                                         :>
+                                         QueryParam "studioCreativeId"
+                                           (Textual Int64)
+                                           :>
+                                           QueryParam "archived" Bool :>
+                                             QueryParam "maxResults"
+                                               (Textual Int32)
+                                               :>
+                                               QueryParam "alt" AltJSON :>
+                                                 Get '[JSON]
+                                                   CreativesListResponse
+
+-- | Retrieves a list of creatives, possibly filtered.
+--
+-- /See:/ 'creativesList' smart constructor.
+data CreativesList = CreativesList
+    { _cRenderingIds         :: !(Maybe [Textual Int64])
+    , _cAdvertiserId         :: !(Maybe (Textual Int64))
+    , _cSearchString         :: !(Maybe Text)
+    , _cSizeIds              :: !(Maybe [Textual Int64])
+    , _cCompanionCreativeIds :: !(Maybe [Textual Int64])
+    , _cCampaignId           :: !(Maybe (Textual Int64))
+    , _cTypes                :: !(Maybe [CreativesListTypes])
+    , _cIds                  :: !(Maybe [Textual Int64])
+    , _cProFileId            :: !(Textual Int64)
+    , _cSortOrder            :: !(Maybe CreativesListSortOrder)
+    , _cActive               :: !(Maybe Bool)
+    , _cCreativeFieldIds     :: !(Maybe [Textual Int64])
+    , _cPageToken            :: !(Maybe Text)
+    , _cSortField            :: !(Maybe CreativesListSortField)
+    , _cStudioCreativeId     :: !(Maybe (Textual Int64))
+    , _cArchived             :: !(Maybe Bool)
+    , _cMaxResults           :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cRenderingIds'
+--
+-- * 'cAdvertiserId'
+--
+-- * 'cSearchString'
+--
+-- * 'cSizeIds'
+--
+-- * 'cCompanionCreativeIds'
+--
+-- * 'cCampaignId'
+--
+-- * 'cTypes'
+--
+-- * 'cIds'
+--
+-- * 'cProFileId'
+--
+-- * 'cSortOrder'
+--
+-- * 'cActive'
+--
+-- * 'cCreativeFieldIds'
+--
+-- * 'cPageToken'
+--
+-- * 'cSortField'
+--
+-- * 'cStudioCreativeId'
+--
+-- * 'cArchived'
+--
+-- * 'cMaxResults'
+creativesList
+    :: Int64 -- ^ 'cProFileId'
+    -> CreativesList
+creativesList pCProFileId_ =
+    CreativesList
+    { _cRenderingIds = Nothing
+    , _cAdvertiserId = Nothing
+    , _cSearchString = Nothing
+    , _cSizeIds = Nothing
+    , _cCompanionCreativeIds = Nothing
+    , _cCampaignId = Nothing
+    , _cTypes = Nothing
+    , _cIds = Nothing
+    , _cProFileId = _Coerce # pCProFileId_
+    , _cSortOrder = Nothing
+    , _cActive = Nothing
+    , _cCreativeFieldIds = Nothing
+    , _cPageToken = Nothing
+    , _cSortField = Nothing
+    , _cStudioCreativeId = Nothing
+    , _cArchived = Nothing
+    , _cMaxResults = Nothing
+    }
+
+-- | Select only creatives with these rendering IDs.
+cRenderingIds :: Lens' CreativesList [Int64]
+cRenderingIds
+  = lens _cRenderingIds
+      (\ s a -> s{_cRenderingIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only creatives with this advertiser ID.
+cAdvertiserId :: Lens' CreativesList (Maybe Int64)
+cAdvertiserId
+  = lens _cAdvertiserId
+      (\ s a -> s{_cAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"creative*2015\" will return objects with names like
+-- \"creative June 2015\", \"creative April 2015\", or simply \"creative
+-- 2015\". Most of the searches also add wildcards implicitly at the start
+-- and the end of the search string. For example, a search string of
+-- \"creative\" will match objects with name \"my creative\", \"creative
+-- 2015\", or simply \"creative\".
+cSearchString :: Lens' CreativesList (Maybe Text)
+cSearchString
+  = lens _cSearchString
+      (\ s a -> s{_cSearchString = a})
+
+-- | Select only creatives with these size IDs.
+cSizeIds :: Lens' CreativesList [Int64]
+cSizeIds
+  = lens _cSizeIds (\ s a -> s{_cSizeIds = a}) .
+      _Default
+      . _Coerce
+
+-- | Select only in-stream video creatives with these companion IDs.
+cCompanionCreativeIds :: Lens' CreativesList [Int64]
+cCompanionCreativeIds
+  = lens _cCompanionCreativeIds
+      (\ s a -> s{_cCompanionCreativeIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only creatives with this campaign ID.
+cCampaignId :: Lens' CreativesList (Maybe Int64)
+cCampaignId
+  = lens _cCampaignId (\ s a -> s{_cCampaignId = a}) .
+      mapping _Coerce
+
+-- | Select only creatives with these creative types.
+cTypes :: Lens' CreativesList [CreativesListTypes]
+cTypes
+  = lens _cTypes (\ s a -> s{_cTypes = a}) . _Default .
+      _Coerce
+
+-- | Select only creatives with these IDs.
+cIds :: Lens' CreativesList [Int64]
+cIds
+  = lens _cIds (\ s a -> s{_cIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+cProFileId :: Lens' CreativesList Int64
+cProFileId
+  = lens _cProFileId (\ s a -> s{_cProFileId = a}) .
+      _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+cSortOrder :: Lens' CreativesList (Maybe CreativesListSortOrder)
+cSortOrder
+  = lens _cSortOrder (\ s a -> s{_cSortOrder = a})
+
+-- | Select only active creatives. Leave blank to select active and inactive
+-- creatives.
+cActive :: Lens' CreativesList (Maybe Bool)
+cActive = lens _cActive (\ s a -> s{_cActive = a})
+
+-- | Select only creatives with these creative field IDs.
+cCreativeFieldIds :: Lens' CreativesList [Int64]
+cCreativeFieldIds
+  = lens _cCreativeFieldIds
+      (\ s a -> s{_cCreativeFieldIds = a})
+      . _Default
+      . _Coerce
+
+-- | Value of the nextPageToken from the previous result page.
+cPageToken :: Lens' CreativesList (Maybe Text)
+cPageToken
+  = lens _cPageToken (\ s a -> s{_cPageToken = a})
+
+-- | Field by which to sort the list.
+cSortField :: Lens' CreativesList (Maybe CreativesListSortField)
+cSortField
+  = lens _cSortField (\ s a -> s{_cSortField = a})
+
+-- | Select only creatives corresponding to this Studio creative ID.
+cStudioCreativeId :: Lens' CreativesList (Maybe Int64)
+cStudioCreativeId
+  = lens _cStudioCreativeId
+      (\ s a -> s{_cStudioCreativeId = a})
+      . mapping _Coerce
+
+-- | Select only archived creatives. Leave blank to select archived and
+-- unarchived creatives.
+cArchived :: Lens' CreativesList (Maybe Bool)
+cArchived
+  = lens _cArchived (\ s a -> s{_cArchived = a})
+
+-- | Maximum number of results to return.
+cMaxResults :: Lens' CreativesList (Maybe Int32)
+cMaxResults
+  = lens _cMaxResults (\ s a -> s{_cMaxResults = a}) .
+      mapping _Coerce
+
+instance GoogleRequest CreativesList where
+        type Rs CreativesList = CreativesListResponse
+        requestClient CreativesList{..}
+          = go _cProFileId (_cRenderingIds ^. _Default)
+              _cAdvertiserId
+              _cSearchString
+              (_cSizeIds ^. _Default)
+              (_cCompanionCreativeIds ^. _Default)
+              _cCampaignId
+              (_cTypes ^. _Default)
+              (_cIds ^. _Default)
+              _cSortOrder
+              _cActive
+              (_cCreativeFieldIds ^. _Default)
+              _cPageToken
+              _cSortField
+              _cStudioCreativeId
+              _cArchived
+              _cMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy CreativesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Creatives/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Creatives/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Creatives/Patch.hs
@@ -0,0 +1,110 @@
+{-# 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.DFAReporting.Creatives.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing creative. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creatives.patch@.
+module Network.Google.Resource.DFAReporting.Creatives.Patch
+    (
+    -- * REST Resource
+      CreativesPatchResource
+
+    -- * Creating a Request
+    , creativesPatch
+    , CreativesPatch
+
+    -- * Request Lenses
+    , cppProFileId
+    , cppPayload
+    , cppId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creatives.patch@ method which the
+-- 'CreativesPatch' request conforms to.
+type CreativesPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creatives" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] Creative :> Patch '[JSON] Creative
+
+-- | Updates an existing creative. This method supports patch semantics.
+--
+-- /See:/ 'creativesPatch' smart constructor.
+data CreativesPatch = CreativesPatch
+    { _cppProFileId :: !(Textual Int64)
+    , _cppPayload   :: !Creative
+    , _cppId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cppProFileId'
+--
+-- * 'cppPayload'
+--
+-- * 'cppId'
+creativesPatch
+    :: Int64 -- ^ 'cppProFileId'
+    -> Creative -- ^ 'cppPayload'
+    -> Int64 -- ^ 'cppId'
+    -> CreativesPatch
+creativesPatch pCppProFileId_ pCppPayload_ pCppId_ =
+    CreativesPatch
+    { _cppProFileId = _Coerce # pCppProFileId_
+    , _cppPayload = pCppPayload_
+    , _cppId = _Coerce # pCppId_
+    }
+
+-- | User profile ID associated with this request.
+cppProFileId :: Lens' CreativesPatch Int64
+cppProFileId
+  = lens _cppProFileId (\ s a -> s{_cppProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+cppPayload :: Lens' CreativesPatch Creative
+cppPayload
+  = lens _cppPayload (\ s a -> s{_cppPayload = a})
+
+-- | Creative ID.
+cppId :: Lens' CreativesPatch Int64
+cppId
+  = lens _cppId (\ s a -> s{_cppId = a}) . _Coerce
+
+instance GoogleRequest CreativesPatch where
+        type Rs CreativesPatch = Creative
+        requestClient CreativesPatch{..}
+          = go _cppProFileId (Just _cppId) (Just AltJSON)
+              _cppPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy CreativesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Creatives/Update.hs b/gen/Network/Google/Resource/DFAReporting/Creatives/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Creatives/Update.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Creatives.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing creative.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.creatives.update@.
+module Network.Google.Resource.DFAReporting.Creatives.Update
+    (
+    -- * REST Resource
+      CreativesUpdateResource
+
+    -- * Creating a Request
+    , creativesUpdate
+    , CreativesUpdate
+
+    -- * Request Lenses
+    , creProFileId
+    , crePayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.creatives.update@ method which the
+-- 'CreativesUpdate' request conforms to.
+type CreativesUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "creatives" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Creative :> Put '[JSON] Creative
+
+-- | Updates an existing creative.
+--
+-- /See:/ 'creativesUpdate' smart constructor.
+data CreativesUpdate = CreativesUpdate
+    { _creProFileId :: !(Textual Int64)
+    , _crePayload   :: !Creative
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'creProFileId'
+--
+-- * 'crePayload'
+creativesUpdate
+    :: Int64 -- ^ 'creProFileId'
+    -> Creative -- ^ 'crePayload'
+    -> CreativesUpdate
+creativesUpdate pCreProFileId_ pCrePayload_ =
+    CreativesUpdate
+    { _creProFileId = _Coerce # pCreProFileId_
+    , _crePayload = pCrePayload_
+    }
+
+-- | User profile ID associated with this request.
+creProFileId :: Lens' CreativesUpdate Int64
+creProFileId
+  = lens _creProFileId (\ s a -> s{_creProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+crePayload :: Lens' CreativesUpdate Creative
+crePayload
+  = lens _crePayload (\ s a -> s{_crePayload = a})
+
+instance GoogleRequest CreativesUpdate where
+        type Rs CreativesUpdate = Creative
+        requestClient CreativesUpdate{..}
+          = go _creProFileId (Just AltJSON) _crePayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CreativesUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/DimensionValues/Query.hs b/gen/Network/Google/Resource/DFAReporting/DimensionValues/Query.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/DimensionValues/Query.hs
@@ -0,0 +1,126 @@
+{-# 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.DFAReporting.DimensionValues.Query
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves list of report dimension values for a list of filters.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.dimensionValues.query@.
+module Network.Google.Resource.DFAReporting.DimensionValues.Query
+    (
+    -- * REST Resource
+      DimensionValuesQueryResource
+
+    -- * Creating a Request
+    , dimensionValuesQuery
+    , DimensionValuesQuery
+
+    -- * Request Lenses
+    , dvqProFileId
+    , dvqPayload
+    , dvqPageToken
+    , dvqMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.dimensionValues.query@ method which the
+-- 'DimensionValuesQuery' request conforms to.
+type DimensionValuesQueryResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "dimensionvalues" :>
+               "query" :>
+                 QueryParam "pageToken" Text :>
+                   QueryParam "maxResults" (Textual Int32) :>
+                     QueryParam "alt" AltJSON :>
+                       ReqBody '[JSON] DimensionValueRequest :>
+                         Post '[JSON] DimensionValueList
+
+-- | Retrieves list of report dimension values for a list of filters.
+--
+-- /See:/ 'dimensionValuesQuery' smart constructor.
+data DimensionValuesQuery = DimensionValuesQuery
+    { _dvqProFileId  :: !(Textual Int64)
+    , _dvqPayload    :: !DimensionValueRequest
+    , _dvqPageToken  :: !(Maybe Text)
+    , _dvqMaxResults :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DimensionValuesQuery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dvqProFileId'
+--
+-- * 'dvqPayload'
+--
+-- * 'dvqPageToken'
+--
+-- * 'dvqMaxResults'
+dimensionValuesQuery
+    :: Int64 -- ^ 'dvqProFileId'
+    -> DimensionValueRequest -- ^ 'dvqPayload'
+    -> DimensionValuesQuery
+dimensionValuesQuery pDvqProFileId_ pDvqPayload_ =
+    DimensionValuesQuery
+    { _dvqProFileId = _Coerce # pDvqProFileId_
+    , _dvqPayload = pDvqPayload_
+    , _dvqPageToken = Nothing
+    , _dvqMaxResults = Nothing
+    }
+
+-- | The DFA user profile ID.
+dvqProFileId :: Lens' DimensionValuesQuery Int64
+dvqProFileId
+  = lens _dvqProFileId (\ s a -> s{_dvqProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+dvqPayload :: Lens' DimensionValuesQuery DimensionValueRequest
+dvqPayload
+  = lens _dvqPayload (\ s a -> s{_dvqPayload = a})
+
+-- | The value of the nextToken from the previous result page.
+dvqPageToken :: Lens' DimensionValuesQuery (Maybe Text)
+dvqPageToken
+  = lens _dvqPageToken (\ s a -> s{_dvqPageToken = a})
+
+-- | Maximum number of results to return.
+dvqMaxResults :: Lens' DimensionValuesQuery (Maybe Int32)
+dvqMaxResults
+  = lens _dvqMaxResults
+      (\ s a -> s{_dvqMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest DimensionValuesQuery where
+        type Rs DimensionValuesQuery = DimensionValueList
+        requestClient DimensionValuesQuery{..}
+          = go _dvqProFileId _dvqPageToken _dvqMaxResults
+              (Just AltJSON)
+              _dvqPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DimensionValuesQueryResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/Get.hs b/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/Get.hs
@@ -0,0 +1,101 @@
+{-# 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.DFAReporting.DirectorySiteContacts.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one directory site contact by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.directorySiteContacts.get@.
+module Network.Google.Resource.DFAReporting.DirectorySiteContacts.Get
+    (
+    -- * REST Resource
+      DirectorySiteContactsGetResource
+
+    -- * Creating a Request
+    , directorySiteContactsGet
+    , DirectorySiteContactsGet
+
+    -- * Request Lenses
+    , dscgProFileId
+    , dscgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.directorySiteContacts.get@ method which the
+-- 'DirectorySiteContactsGet' request conforms to.
+type DirectorySiteContactsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "directorySiteContacts" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] DirectorySiteContact
+
+-- | Gets one directory site contact by ID.
+--
+-- /See:/ 'directorySiteContactsGet' smart constructor.
+data DirectorySiteContactsGet = DirectorySiteContactsGet
+    { _dscgProFileId :: !(Textual Int64)
+    , _dscgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySiteContactsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dscgProFileId'
+--
+-- * 'dscgId'
+directorySiteContactsGet
+    :: Int64 -- ^ 'dscgProFileId'
+    -> Int64 -- ^ 'dscgId'
+    -> DirectorySiteContactsGet
+directorySiteContactsGet pDscgProFileId_ pDscgId_ =
+    DirectorySiteContactsGet
+    { _dscgProFileId = _Coerce # pDscgProFileId_
+    , _dscgId = _Coerce # pDscgId_
+    }
+
+-- | User profile ID associated with this request.
+dscgProFileId :: Lens' DirectorySiteContactsGet Int64
+dscgProFileId
+  = lens _dscgProFileId
+      (\ s a -> s{_dscgProFileId = a})
+      . _Coerce
+
+-- | Directory site contact ID.
+dscgId :: Lens' DirectorySiteContactsGet Int64
+dscgId
+  = lens _dscgId (\ s a -> s{_dscgId = a}) . _Coerce
+
+instance GoogleRequest DirectorySiteContactsGet where
+        type Rs DirectorySiteContactsGet =
+             DirectorySiteContact
+        requestClient DirectorySiteContactsGet{..}
+          = go _dscgProFileId _dscgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DirectorySiteContactsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/List.hs b/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/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.DFAReporting.DirectorySiteContacts.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of directory site contacts, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.directorySiteContacts.list@.
+module Network.Google.Resource.DFAReporting.DirectorySiteContacts.List
+    (
+    -- * REST Resource
+      DirectorySiteContactsListResource
+
+    -- * Creating a Request
+    , directorySiteContactsList
+    , DirectorySiteContactsList
+
+    -- * Request Lenses
+    , dsclSearchString
+    , dsclIds
+    , dsclProFileId
+    , dsclDirectorySiteIds
+    , dsclSortOrder
+    , dsclPageToken
+    , dsclSortField
+    , dsclMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.directorySiteContacts.list@ method which the
+-- 'DirectorySiteContactsList' request conforms to.
+type DirectorySiteContactsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "directorySiteContacts" :>
+               QueryParam "searchString" Text :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParams "directorySiteIds" (Textual Int64) :>
+                     QueryParam "sortOrder"
+                       DirectorySiteContactsListSortOrder
+                       :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "sortField"
+                           DirectorySiteContactsListSortField
+                           :>
+                           QueryParam "maxResults" (Textual Int32) :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] DirectorySiteContactsListResponse
+
+-- | Retrieves a list of directory site contacts, possibly filtered.
+--
+-- /See:/ 'directorySiteContactsList' smart constructor.
+data DirectorySiteContactsList = DirectorySiteContactsList
+    { _dsclSearchString     :: !(Maybe Text)
+    , _dsclIds              :: !(Maybe [Textual Int64])
+    , _dsclProFileId        :: !(Textual Int64)
+    , _dsclDirectorySiteIds :: !(Maybe [Textual Int64])
+    , _dsclSortOrder        :: !(Maybe DirectorySiteContactsListSortOrder)
+    , _dsclPageToken        :: !(Maybe Text)
+    , _dsclSortField        :: !(Maybe DirectorySiteContactsListSortField)
+    , _dsclMaxResults       :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySiteContactsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsclSearchString'
+--
+-- * 'dsclIds'
+--
+-- * 'dsclProFileId'
+--
+-- * 'dsclDirectorySiteIds'
+--
+-- * 'dsclSortOrder'
+--
+-- * 'dsclPageToken'
+--
+-- * 'dsclSortField'
+--
+-- * 'dsclMaxResults'
+directorySiteContactsList
+    :: Int64 -- ^ 'dsclProFileId'
+    -> DirectorySiteContactsList
+directorySiteContactsList pDsclProFileId_ =
+    DirectorySiteContactsList
+    { _dsclSearchString = Nothing
+    , _dsclIds = Nothing
+    , _dsclProFileId = _Coerce # pDsclProFileId_
+    , _dsclDirectorySiteIds = Nothing
+    , _dsclSortOrder = Nothing
+    , _dsclPageToken = Nothing
+    , _dsclSortField = Nothing
+    , _dsclMaxResults = Nothing
+    }
+
+-- | Allows searching for objects by name, ID or email. Wildcards (*) are
+-- allowed. For example, \"directory site contact*2015\" will return
+-- objects with names like \"directory site contact June 2015\",
+-- \"directory site contact April 2015\", or simply \"directory site
+-- contact 2015\". Most of the searches also add wildcards implicitly at
+-- the start and the end of the search string. For example, a search string
+-- of \"directory site contact\" will match objects with name \"my
+-- directory site contact\", \"directory site contact 2015\", or simply
+-- \"directory site contact\".
+dsclSearchString :: Lens' DirectorySiteContactsList (Maybe Text)
+dsclSearchString
+  = lens _dsclSearchString
+      (\ s a -> s{_dsclSearchString = a})
+
+-- | Select only directory site contacts with these IDs.
+dsclIds :: Lens' DirectorySiteContactsList [Int64]
+dsclIds
+  = lens _dsclIds (\ s a -> s{_dsclIds = a}) . _Default
+      . _Coerce
+
+-- | User profile ID associated with this request.
+dsclProFileId :: Lens' DirectorySiteContactsList Int64
+dsclProFileId
+  = lens _dsclProFileId
+      (\ s a -> s{_dsclProFileId = a})
+      . _Coerce
+
+-- | Select only directory site contacts with these directory site IDs. This
+-- is a required field.
+dsclDirectorySiteIds :: Lens' DirectorySiteContactsList [Int64]
+dsclDirectorySiteIds
+  = lens _dsclDirectorySiteIds
+      (\ s a -> s{_dsclDirectorySiteIds = a})
+      . _Default
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+dsclSortOrder :: Lens' DirectorySiteContactsList (Maybe DirectorySiteContactsListSortOrder)
+dsclSortOrder
+  = lens _dsclSortOrder
+      (\ s a -> s{_dsclSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+dsclPageToken :: Lens' DirectorySiteContactsList (Maybe Text)
+dsclPageToken
+  = lens _dsclPageToken
+      (\ s a -> s{_dsclPageToken = a})
+
+-- | Field by which to sort the list.
+dsclSortField :: Lens' DirectorySiteContactsList (Maybe DirectorySiteContactsListSortField)
+dsclSortField
+  = lens _dsclSortField
+      (\ s a -> s{_dsclSortField = a})
+
+-- | Maximum number of results to return.
+dsclMaxResults :: Lens' DirectorySiteContactsList (Maybe Int32)
+dsclMaxResults
+  = lens _dsclMaxResults
+      (\ s a -> s{_dsclMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest DirectorySiteContactsList
+         where
+        type Rs DirectorySiteContactsList =
+             DirectorySiteContactsListResponse
+        requestClient DirectorySiteContactsList{..}
+          = go _dsclProFileId _dsclSearchString
+              (_dsclIds ^. _Default)
+              (_dsclDirectorySiteIds ^. _Default)
+              _dsclSortOrder
+              _dsclPageToken
+              _dsclSortField
+              _dsclMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DirectorySiteContactsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/DirectorySites/Get.hs b/gen/Network/Google/Resource/DFAReporting/DirectorySites/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/DirectorySites/Get.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.DirectorySites.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one directory site by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.directorySites.get@.
+module Network.Google.Resource.DFAReporting.DirectorySites.Get
+    (
+    -- * REST Resource
+      DirectorySitesGetResource
+
+    -- * Creating a Request
+    , directorySitesGet
+    , DirectorySitesGet
+
+    -- * Request Lenses
+    , dsgProFileId
+    , dsgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.directorySites.get@ method which the
+-- 'DirectorySitesGet' request conforms to.
+type DirectorySitesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "directorySites" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] DirectorySite
+
+-- | Gets one directory site by ID.
+--
+-- /See:/ 'directorySitesGet' smart constructor.
+data DirectorySitesGet = DirectorySitesGet
+    { _dsgProFileId :: !(Textual Int64)
+    , _dsgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySitesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsgProFileId'
+--
+-- * 'dsgId'
+directorySitesGet
+    :: Int64 -- ^ 'dsgProFileId'
+    -> Int64 -- ^ 'dsgId'
+    -> DirectorySitesGet
+directorySitesGet pDsgProFileId_ pDsgId_ =
+    DirectorySitesGet
+    { _dsgProFileId = _Coerce # pDsgProFileId_
+    , _dsgId = _Coerce # pDsgId_
+    }
+
+-- | User profile ID associated with this request.
+dsgProFileId :: Lens' DirectorySitesGet Int64
+dsgProFileId
+  = lens _dsgProFileId (\ s a -> s{_dsgProFileId = a})
+      . _Coerce
+
+-- | Directory site ID.
+dsgId :: Lens' DirectorySitesGet Int64
+dsgId
+  = lens _dsgId (\ s a -> s{_dsgId = a}) . _Coerce
+
+instance GoogleRequest DirectorySitesGet where
+        type Rs DirectorySitesGet = DirectorySite
+        requestClient DirectorySitesGet{..}
+          = go _dsgProFileId _dsgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DirectorySitesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/DirectorySites/Insert.hs b/gen/Network/Google/Resource/DFAReporting/DirectorySites/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/DirectorySites/Insert.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.DirectorySites.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new directory site.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.directorySites.insert@.
+module Network.Google.Resource.DFAReporting.DirectorySites.Insert
+    (
+    -- * REST Resource
+      DirectorySitesInsertResource
+
+    -- * Creating a Request
+    , directorySitesInsert
+    , DirectorySitesInsert
+
+    -- * Request Lenses
+    , dsiProFileId
+    , dsiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.directorySites.insert@ method which the
+-- 'DirectorySitesInsert' request conforms to.
+type DirectorySitesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "directorySites" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] DirectorySite :>
+                   Post '[JSON] DirectorySite
+
+-- | Inserts a new directory site.
+--
+-- /See:/ 'directorySitesInsert' smart constructor.
+data DirectorySitesInsert = DirectorySitesInsert
+    { _dsiProFileId :: !(Textual Int64)
+    , _dsiPayload   :: !DirectorySite
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySitesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsiProFileId'
+--
+-- * 'dsiPayload'
+directorySitesInsert
+    :: Int64 -- ^ 'dsiProFileId'
+    -> DirectorySite -- ^ 'dsiPayload'
+    -> DirectorySitesInsert
+directorySitesInsert pDsiProFileId_ pDsiPayload_ =
+    DirectorySitesInsert
+    { _dsiProFileId = _Coerce # pDsiProFileId_
+    , _dsiPayload = pDsiPayload_
+    }
+
+-- | User profile ID associated with this request.
+dsiProFileId :: Lens' DirectorySitesInsert Int64
+dsiProFileId
+  = lens _dsiProFileId (\ s a -> s{_dsiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+dsiPayload :: Lens' DirectorySitesInsert DirectorySite
+dsiPayload
+  = lens _dsiPayload (\ s a -> s{_dsiPayload = a})
+
+instance GoogleRequest DirectorySitesInsert where
+        type Rs DirectorySitesInsert = DirectorySite
+        requestClient DirectorySitesInsert{..}
+          = go _dsiProFileId (Just AltJSON) _dsiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DirectorySitesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/DirectorySites/List.hs b/gen/Network/Google/Resource/DFAReporting/DirectorySites/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/DirectorySites/List.hs
@@ -0,0 +1,270 @@
+{-# 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.DFAReporting.DirectorySites.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of directory sites, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.directorySites.list@.
+module Network.Google.Resource.DFAReporting.DirectorySites.List
+    (
+    -- * REST Resource
+      DirectorySitesListResource
+
+    -- * Creating a Request
+    , directorySitesList
+    , DirectorySitesList
+
+    -- * Request Lenses
+    , dslSearchString
+    , dslAcceptsInterstitialPlacements
+    , dslAcceptsPublisherPaidPlacements
+    , dslIds
+    , dslProFileId
+    , dslSortOrder
+    , dslActive
+    , dslCountryId
+    , dslPageToken
+    , dslSortField
+    , dslAcceptsInStreamVideoPlacements
+    , dslMaxResults
+    , dslParentId
+    , dslDfpNetworkCode
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.directorySites.list@ method which the
+-- 'DirectorySitesList' request conforms to.
+type DirectorySitesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "directorySites" :>
+               QueryParam "searchString" Text :>
+                 QueryParam "acceptsInterstitialPlacements" Bool :>
+                   QueryParam "acceptsPublisherPaidPlacements" Bool :>
+                     QueryParams "ids" (Textual Int64) :>
+                       QueryParam "sortOrder" DirectorySitesListSortOrder :>
+                         QueryParam "active" Bool :>
+                           QueryParam "countryId" (Textual Int64) :>
+                             QueryParam "pageToken" Text :>
+                               QueryParam "sortField"
+                                 DirectorySitesListSortField
+                                 :>
+                                 QueryParam "acceptsInStreamVideoPlacements"
+                                   Bool
+                                   :>
+                                   QueryParam "maxResults" (Textual Int32) :>
+                                     QueryParam "parentId" (Textual Int64) :>
+                                       QueryParam "dfp_network_code" Text :>
+                                         QueryParam "alt" AltJSON :>
+                                           Get '[JSON]
+                                             DirectorySitesListResponse
+
+-- | Retrieves a list of directory sites, possibly filtered.
+--
+-- /See:/ 'directorySitesList' smart constructor.
+data DirectorySitesList = DirectorySitesList
+    { _dslSearchString                   :: !(Maybe Text)
+    , _dslAcceptsInterstitialPlacements  :: !(Maybe Bool)
+    , _dslAcceptsPublisherPaidPlacements :: !(Maybe Bool)
+    , _dslIds                            :: !(Maybe [Textual Int64])
+    , _dslProFileId                      :: !(Textual Int64)
+    , _dslSortOrder                      :: !(Maybe DirectorySitesListSortOrder)
+    , _dslActive                         :: !(Maybe Bool)
+    , _dslCountryId                      :: !(Maybe (Textual Int64))
+    , _dslPageToken                      :: !(Maybe Text)
+    , _dslSortField                      :: !(Maybe DirectorySitesListSortField)
+    , _dslAcceptsInStreamVideoPlacements :: !(Maybe Bool)
+    , _dslMaxResults                     :: !(Maybe (Textual Int32))
+    , _dslParentId                       :: !(Maybe (Textual Int64))
+    , _dslDfpNetworkCode                 :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySitesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dslSearchString'
+--
+-- * 'dslAcceptsInterstitialPlacements'
+--
+-- * 'dslAcceptsPublisherPaidPlacements'
+--
+-- * 'dslIds'
+--
+-- * 'dslProFileId'
+--
+-- * 'dslSortOrder'
+--
+-- * 'dslActive'
+--
+-- * 'dslCountryId'
+--
+-- * 'dslPageToken'
+--
+-- * 'dslSortField'
+--
+-- * 'dslAcceptsInStreamVideoPlacements'
+--
+-- * 'dslMaxResults'
+--
+-- * 'dslParentId'
+--
+-- * 'dslDfpNetworkCode'
+directorySitesList
+    :: Int64 -- ^ 'dslProFileId'
+    -> DirectorySitesList
+directorySitesList pDslProFileId_ =
+    DirectorySitesList
+    { _dslSearchString = Nothing
+    , _dslAcceptsInterstitialPlacements = Nothing
+    , _dslAcceptsPublisherPaidPlacements = Nothing
+    , _dslIds = Nothing
+    , _dslProFileId = _Coerce # pDslProFileId_
+    , _dslSortOrder = Nothing
+    , _dslActive = Nothing
+    , _dslCountryId = Nothing
+    , _dslPageToken = Nothing
+    , _dslSortField = Nothing
+    , _dslAcceptsInStreamVideoPlacements = Nothing
+    , _dslMaxResults = Nothing
+    , _dslParentId = Nothing
+    , _dslDfpNetworkCode = Nothing
+    }
+
+-- | Allows searching for objects by name, ID or URL. Wildcards (*) are
+-- allowed. For example, \"directory site*2015\" will return objects with
+-- names like \"directory site June 2015\", \"directory site April 2015\",
+-- or simply \"directory site 2015\". Most of the searches also add
+-- wildcards implicitly at the start and the end of the search string. For
+-- example, a search string of \"directory site\" will match objects with
+-- name \"my directory site\", \"directory site 2015\" or simply,
+-- \"directory site\".
+dslSearchString :: Lens' DirectorySitesList (Maybe Text)
+dslSearchString
+  = lens _dslSearchString
+      (\ s a -> s{_dslSearchString = a})
+
+-- | This search filter is no longer supported and will have no effect on the
+-- results returned.
+dslAcceptsInterstitialPlacements :: Lens' DirectorySitesList (Maybe Bool)
+dslAcceptsInterstitialPlacements
+  = lens _dslAcceptsInterstitialPlacements
+      (\ s a -> s{_dslAcceptsInterstitialPlacements = a})
+
+-- | Select only directory sites that accept publisher paid placements. This
+-- field can be left blank.
+dslAcceptsPublisherPaidPlacements :: Lens' DirectorySitesList (Maybe Bool)
+dslAcceptsPublisherPaidPlacements
+  = lens _dslAcceptsPublisherPaidPlacements
+      (\ s a -> s{_dslAcceptsPublisherPaidPlacements = a})
+
+-- | Select only directory sites with these IDs.
+dslIds :: Lens' DirectorySitesList [Int64]
+dslIds
+  = lens _dslIds (\ s a -> s{_dslIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+dslProFileId :: Lens' DirectorySitesList Int64
+dslProFileId
+  = lens _dslProFileId (\ s a -> s{_dslProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+dslSortOrder :: Lens' DirectorySitesList (Maybe DirectorySitesListSortOrder)
+dslSortOrder
+  = lens _dslSortOrder (\ s a -> s{_dslSortOrder = a})
+
+-- | Select only active directory sites. Leave blank to retrieve both active
+-- and inactive directory sites.
+dslActive :: Lens' DirectorySitesList (Maybe Bool)
+dslActive
+  = lens _dslActive (\ s a -> s{_dslActive = a})
+
+-- | Select only directory sites with this country ID.
+dslCountryId :: Lens' DirectorySitesList (Maybe Int64)
+dslCountryId
+  = lens _dslCountryId (\ s a -> s{_dslCountryId = a})
+      . mapping _Coerce
+
+-- | Value of the nextPageToken from the previous result page.
+dslPageToken :: Lens' DirectorySitesList (Maybe Text)
+dslPageToken
+  = lens _dslPageToken (\ s a -> s{_dslPageToken = a})
+
+-- | Field by which to sort the list.
+dslSortField :: Lens' DirectorySitesList (Maybe DirectorySitesListSortField)
+dslSortField
+  = lens _dslSortField (\ s a -> s{_dslSortField = a})
+
+-- | This search filter is no longer supported and will have no effect on the
+-- results returned.
+dslAcceptsInStreamVideoPlacements :: Lens' DirectorySitesList (Maybe Bool)
+dslAcceptsInStreamVideoPlacements
+  = lens _dslAcceptsInStreamVideoPlacements
+      (\ s a -> s{_dslAcceptsInStreamVideoPlacements = a})
+
+-- | Maximum number of results to return.
+dslMaxResults :: Lens' DirectorySitesList (Maybe Int32)
+dslMaxResults
+  = lens _dslMaxResults
+      (\ s a -> s{_dslMaxResults = a})
+      . mapping _Coerce
+
+-- | Select only directory sites with this parent ID.
+dslParentId :: Lens' DirectorySitesList (Maybe Int64)
+dslParentId
+  = lens _dslParentId (\ s a -> s{_dslParentId = a}) .
+      mapping _Coerce
+
+-- | Select only directory sites with this DFP network code.
+dslDfpNetworkCode :: Lens' DirectorySitesList (Maybe Text)
+dslDfpNetworkCode
+  = lens _dslDfpNetworkCode
+      (\ s a -> s{_dslDfpNetworkCode = a})
+
+instance GoogleRequest DirectorySitesList where
+        type Rs DirectorySitesList =
+             DirectorySitesListResponse
+        requestClient DirectorySitesList{..}
+          = go _dslProFileId _dslSearchString
+              _dslAcceptsInterstitialPlacements
+              _dslAcceptsPublisherPaidPlacements
+              (_dslIds ^. _Default)
+              _dslSortOrder
+              _dslActive
+              _dslCountryId
+              _dslPageToken
+              _dslSortField
+              _dslAcceptsInStreamVideoPlacements
+              _dslMaxResults
+              _dslParentId
+              _dslDfpNetworkCode
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DirectorySitesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/Delete.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/Delete.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.EventTags.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing event tag.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.eventTags.delete@.
+module Network.Google.Resource.DFAReporting.EventTags.Delete
+    (
+    -- * REST Resource
+      EventTagsDeleteResource
+
+    -- * Creating a Request
+    , eventTagsDelete
+    , EventTagsDelete
+
+    -- * Request Lenses
+    , etdProFileId
+    , etdId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.eventTags.delete@ method which the
+-- 'EventTagsDelete' request conforms to.
+type EventTagsDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "eventTags" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing event tag.
+--
+-- /See:/ 'eventTagsDelete' smart constructor.
+data EventTagsDelete = EventTagsDelete
+    { _etdProFileId :: !(Textual Int64)
+    , _etdId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTagsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etdProFileId'
+--
+-- * 'etdId'
+eventTagsDelete
+    :: Int64 -- ^ 'etdProFileId'
+    -> Int64 -- ^ 'etdId'
+    -> EventTagsDelete
+eventTagsDelete pEtdProFileId_ pEtdId_ =
+    EventTagsDelete
+    { _etdProFileId = _Coerce # pEtdProFileId_
+    , _etdId = _Coerce # pEtdId_
+    }
+
+-- | User profile ID associated with this request.
+etdProFileId :: Lens' EventTagsDelete Int64
+etdProFileId
+  = lens _etdProFileId (\ s a -> s{_etdProFileId = a})
+      . _Coerce
+
+-- | Event tag ID.
+etdId :: Lens' EventTagsDelete Int64
+etdId
+  = lens _etdId (\ s a -> s{_etdId = a}) . _Coerce
+
+instance GoogleRequest EventTagsDelete where
+        type Rs EventTagsDelete = ()
+        requestClient EventTagsDelete{..}
+          = go _etdProFileId _etdId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy EventTagsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/Get.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/Get.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.EventTags.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one event tag by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.eventTags.get@.
+module Network.Google.Resource.DFAReporting.EventTags.Get
+    (
+    -- * REST Resource
+      EventTagsGetResource
+
+    -- * Creating a Request
+    , eventTagsGet
+    , EventTagsGet
+
+    -- * Request Lenses
+    , etgProFileId
+    , etgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.eventTags.get@ method which the
+-- 'EventTagsGet' request conforms to.
+type EventTagsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "eventTags" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] EventTag
+
+-- | Gets one event tag by ID.
+--
+-- /See:/ 'eventTagsGet' smart constructor.
+data EventTagsGet = EventTagsGet
+    { _etgProFileId :: !(Textual Int64)
+    , _etgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTagsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etgProFileId'
+--
+-- * 'etgId'
+eventTagsGet
+    :: Int64 -- ^ 'etgProFileId'
+    -> Int64 -- ^ 'etgId'
+    -> EventTagsGet
+eventTagsGet pEtgProFileId_ pEtgId_ =
+    EventTagsGet
+    { _etgProFileId = _Coerce # pEtgProFileId_
+    , _etgId = _Coerce # pEtgId_
+    }
+
+-- | User profile ID associated with this request.
+etgProFileId :: Lens' EventTagsGet Int64
+etgProFileId
+  = lens _etgProFileId (\ s a -> s{_etgProFileId = a})
+      . _Coerce
+
+-- | Event tag ID.
+etgId :: Lens' EventTagsGet Int64
+etgId
+  = lens _etgId (\ s a -> s{_etgId = a}) . _Coerce
+
+instance GoogleRequest EventTagsGet where
+        type Rs EventTagsGet = EventTag
+        requestClient EventTagsGet{..}
+          = go _etgProFileId _etgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy EventTagsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/Insert.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/Insert.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.EventTags.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new event tag.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.eventTags.insert@.
+module Network.Google.Resource.DFAReporting.EventTags.Insert
+    (
+    -- * REST Resource
+      EventTagsInsertResource
+
+    -- * Creating a Request
+    , eventTagsInsert
+    , EventTagsInsert
+
+    -- * Request Lenses
+    , etiProFileId
+    , etiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.eventTags.insert@ method which the
+-- 'EventTagsInsert' request conforms to.
+type EventTagsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "eventTags" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] EventTag :> Post '[JSON] EventTag
+
+-- | Inserts a new event tag.
+--
+-- /See:/ 'eventTagsInsert' smart constructor.
+data EventTagsInsert = EventTagsInsert
+    { _etiProFileId :: !(Textual Int64)
+    , _etiPayload   :: !EventTag
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTagsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etiProFileId'
+--
+-- * 'etiPayload'
+eventTagsInsert
+    :: Int64 -- ^ 'etiProFileId'
+    -> EventTag -- ^ 'etiPayload'
+    -> EventTagsInsert
+eventTagsInsert pEtiProFileId_ pEtiPayload_ =
+    EventTagsInsert
+    { _etiProFileId = _Coerce # pEtiProFileId_
+    , _etiPayload = pEtiPayload_
+    }
+
+-- | User profile ID associated with this request.
+etiProFileId :: Lens' EventTagsInsert Int64
+etiProFileId
+  = lens _etiProFileId (\ s a -> s{_etiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+etiPayload :: Lens' EventTagsInsert EventTag
+etiPayload
+  = lens _etiPayload (\ s a -> s{_etiPayload = a})
+
+instance GoogleRequest EventTagsInsert where
+        type Rs EventTagsInsert = EventTag
+        requestClient EventTagsInsert{..}
+          = go _etiProFileId (Just AltJSON) _etiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy EventTagsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/List.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/List.hs
@@ -0,0 +1,240 @@
+{-# 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.DFAReporting.EventTags.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of event tags, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.eventTags.list@.
+module Network.Google.Resource.DFAReporting.EventTags.List
+    (
+    -- * REST Resource
+      EventTagsListResource
+
+    -- * Creating a Request
+    , eventTagsList
+    , EventTagsList
+
+    -- * Request Lenses
+    , etlDefinitionsOnly
+    , etlEventTagTypes
+    , etlEnabled
+    , etlAdvertiserId
+    , etlSearchString
+    , etlCampaignId
+    , etlIds
+    , etlProFileId
+    , etlSortOrder
+    , etlAdId
+    , etlSortField
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.eventTags.list@ method which the
+-- 'EventTagsList' request conforms to.
+type EventTagsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "eventTags" :>
+               QueryParam "definitionsOnly" Bool :>
+                 QueryParams "eventTagTypes"
+                   EventTagsListEventTagTypes
+                   :>
+                   QueryParam "enabled" Bool :>
+                     QueryParam "advertiserId" (Textual Int64) :>
+                       QueryParam "searchString" Text :>
+                         QueryParam "campaignId" (Textual Int64) :>
+                           QueryParams "ids" (Textual Int64) :>
+                             QueryParam "sortOrder" EventTagsListSortOrder :>
+                               QueryParam "adId" (Textual Int64) :>
+                                 QueryParam "sortField" EventTagsListSortField
+                                   :>
+                                   QueryParam "alt" AltJSON :>
+                                     Get '[JSON] EventTagsListResponse
+
+-- | Retrieves a list of event tags, possibly filtered.
+--
+-- /See:/ 'eventTagsList' smart constructor.
+data EventTagsList = EventTagsList
+    { _etlDefinitionsOnly :: !(Maybe Bool)
+    , _etlEventTagTypes   :: !(Maybe [EventTagsListEventTagTypes])
+    , _etlEnabled         :: !(Maybe Bool)
+    , _etlAdvertiserId    :: !(Maybe (Textual Int64))
+    , _etlSearchString    :: !(Maybe Text)
+    , _etlCampaignId      :: !(Maybe (Textual Int64))
+    , _etlIds             :: !(Maybe [Textual Int64])
+    , _etlProFileId       :: !(Textual Int64)
+    , _etlSortOrder       :: !(Maybe EventTagsListSortOrder)
+    , _etlAdId            :: !(Maybe (Textual Int64))
+    , _etlSortField       :: !(Maybe EventTagsListSortField)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTagsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etlDefinitionsOnly'
+--
+-- * 'etlEventTagTypes'
+--
+-- * 'etlEnabled'
+--
+-- * 'etlAdvertiserId'
+--
+-- * 'etlSearchString'
+--
+-- * 'etlCampaignId'
+--
+-- * 'etlIds'
+--
+-- * 'etlProFileId'
+--
+-- * 'etlSortOrder'
+--
+-- * 'etlAdId'
+--
+-- * 'etlSortField'
+eventTagsList
+    :: Int64 -- ^ 'etlProFileId'
+    -> EventTagsList
+eventTagsList pEtlProFileId_ =
+    EventTagsList
+    { _etlDefinitionsOnly = Nothing
+    , _etlEventTagTypes = Nothing
+    , _etlEnabled = Nothing
+    , _etlAdvertiserId = Nothing
+    , _etlSearchString = Nothing
+    , _etlCampaignId = Nothing
+    , _etlIds = Nothing
+    , _etlProFileId = _Coerce # pEtlProFileId_
+    , _etlSortOrder = Nothing
+    , _etlAdId = Nothing
+    , _etlSortField = Nothing
+    }
+
+-- | Examine only the specified campaign or advertiser\'s event tags for
+-- matching selector criteria. When set to false, the parent advertiser and
+-- parent campaign of the specified ad or campaign is examined as well. In
+-- addition, when set to false, the status field is examined as well, along
+-- with the enabledByDefault field. This parameter can not be set to true
+-- when adId is specified as ads do not define their own even tags.
+etlDefinitionsOnly :: Lens' EventTagsList (Maybe Bool)
+etlDefinitionsOnly
+  = lens _etlDefinitionsOnly
+      (\ s a -> s{_etlDefinitionsOnly = a})
+
+-- | Select only event tags with the specified event tag types. Event tag
+-- types can be used to specify whether to use a third-party pixel, a
+-- third-party JavaScript URL, or a third-party click-through URL for
+-- either impression or click tracking.
+etlEventTagTypes :: Lens' EventTagsList [EventTagsListEventTagTypes]
+etlEventTagTypes
+  = lens _etlEventTagTypes
+      (\ s a -> s{_etlEventTagTypes = a})
+      . _Default
+      . _Coerce
+
+-- | Select only enabled event tags. What is considered enabled or disabled
+-- depends on the definitionsOnly parameter. When definitionsOnly is set to
+-- true, only the specified advertiser or campaign\'s event tags\'
+-- enabledByDefault field is examined. When definitionsOnly is set to
+-- false, the specified ad or specified campaign\'s parent advertiser\'s or
+-- parent campaign\'s event tags\' enabledByDefault and status fields are
+-- examined as well.
+etlEnabled :: Lens' EventTagsList (Maybe Bool)
+etlEnabled
+  = lens _etlEnabled (\ s a -> s{_etlEnabled = a})
+
+-- | Select only event tags that belong to this advertiser.
+etlAdvertiserId :: Lens' EventTagsList (Maybe Int64)
+etlAdvertiserId
+  = lens _etlAdvertiserId
+      (\ s a -> s{_etlAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"eventtag*2015\" will return objects with names like
+-- \"eventtag June 2015\", \"eventtag April 2015\", or simply \"eventtag
+-- 2015\". Most of the searches also add wildcards implicitly at the start
+-- and the end of the search string. For example, a search string of
+-- \"eventtag\" will match objects with name \"my eventtag\", \"eventtag
+-- 2015\", or simply \"eventtag\".
+etlSearchString :: Lens' EventTagsList (Maybe Text)
+etlSearchString
+  = lens _etlSearchString
+      (\ s a -> s{_etlSearchString = a})
+
+-- | Select only event tags that belong to this campaign.
+etlCampaignId :: Lens' EventTagsList (Maybe Int64)
+etlCampaignId
+  = lens _etlCampaignId
+      (\ s a -> s{_etlCampaignId = a})
+      . mapping _Coerce
+
+-- | Select only event tags with these IDs.
+etlIds :: Lens' EventTagsList [Int64]
+etlIds
+  = lens _etlIds (\ s a -> s{_etlIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+etlProFileId :: Lens' EventTagsList Int64
+etlProFileId
+  = lens _etlProFileId (\ s a -> s{_etlProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+etlSortOrder :: Lens' EventTagsList (Maybe EventTagsListSortOrder)
+etlSortOrder
+  = lens _etlSortOrder (\ s a -> s{_etlSortOrder = a})
+
+-- | Select only event tags that belong to this ad.
+etlAdId :: Lens' EventTagsList (Maybe Int64)
+etlAdId
+  = lens _etlAdId (\ s a -> s{_etlAdId = a}) .
+      mapping _Coerce
+
+-- | Field by which to sort the list.
+etlSortField :: Lens' EventTagsList (Maybe EventTagsListSortField)
+etlSortField
+  = lens _etlSortField (\ s a -> s{_etlSortField = a})
+
+instance GoogleRequest EventTagsList where
+        type Rs EventTagsList = EventTagsListResponse
+        requestClient EventTagsList{..}
+          = go _etlProFileId _etlDefinitionsOnly
+              (_etlEventTagTypes ^. _Default)
+              _etlEnabled
+              _etlAdvertiserId
+              _etlSearchString
+              _etlCampaignId
+              (_etlIds ^. _Default)
+              _etlSortOrder
+              _etlAdId
+              _etlSortField
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy EventTagsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/Patch.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/Patch.hs
@@ -0,0 +1,110 @@
+{-# 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.DFAReporting.EventTags.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing event tag. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.eventTags.patch@.
+module Network.Google.Resource.DFAReporting.EventTags.Patch
+    (
+    -- * REST Resource
+      EventTagsPatchResource
+
+    -- * Creating a Request
+    , eventTagsPatch
+    , EventTagsPatch
+
+    -- * Request Lenses
+    , etpProFileId
+    , etpPayload
+    , etpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.eventTags.patch@ method which the
+-- 'EventTagsPatch' request conforms to.
+type EventTagsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "eventTags" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] EventTag :> Patch '[JSON] EventTag
+
+-- | Updates an existing event tag. This method supports patch semantics.
+--
+-- /See:/ 'eventTagsPatch' smart constructor.
+data EventTagsPatch = EventTagsPatch
+    { _etpProFileId :: !(Textual Int64)
+    , _etpPayload   :: !EventTag
+    , _etpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTagsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etpProFileId'
+--
+-- * 'etpPayload'
+--
+-- * 'etpId'
+eventTagsPatch
+    :: Int64 -- ^ 'etpProFileId'
+    -> EventTag -- ^ 'etpPayload'
+    -> Int64 -- ^ 'etpId'
+    -> EventTagsPatch
+eventTagsPatch pEtpProFileId_ pEtpPayload_ pEtpId_ =
+    EventTagsPatch
+    { _etpProFileId = _Coerce # pEtpProFileId_
+    , _etpPayload = pEtpPayload_
+    , _etpId = _Coerce # pEtpId_
+    }
+
+-- | User profile ID associated with this request.
+etpProFileId :: Lens' EventTagsPatch Int64
+etpProFileId
+  = lens _etpProFileId (\ s a -> s{_etpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+etpPayload :: Lens' EventTagsPatch EventTag
+etpPayload
+  = lens _etpPayload (\ s a -> s{_etpPayload = a})
+
+-- | Event tag ID.
+etpId :: Lens' EventTagsPatch Int64
+etpId
+  = lens _etpId (\ s a -> s{_etpId = a}) . _Coerce
+
+instance GoogleRequest EventTagsPatch where
+        type Rs EventTagsPatch = EventTag
+        requestClient EventTagsPatch{..}
+          = go _etpProFileId (Just _etpId) (Just AltJSON)
+              _etpPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy EventTagsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/Update.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/Update.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.EventTags.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing event tag.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.eventTags.update@.
+module Network.Google.Resource.DFAReporting.EventTags.Update
+    (
+    -- * REST Resource
+      EventTagsUpdateResource
+
+    -- * Creating a Request
+    , eventTagsUpdate
+    , EventTagsUpdate
+
+    -- * Request Lenses
+    , etuProFileId
+    , etuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.eventTags.update@ method which the
+-- 'EventTagsUpdate' request conforms to.
+type EventTagsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "eventTags" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] EventTag :> Put '[JSON] EventTag
+
+-- | Updates an existing event tag.
+--
+-- /See:/ 'eventTagsUpdate' smart constructor.
+data EventTagsUpdate = EventTagsUpdate
+    { _etuProFileId :: !(Textual Int64)
+    , _etuPayload   :: !EventTag
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTagsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etuProFileId'
+--
+-- * 'etuPayload'
+eventTagsUpdate
+    :: Int64 -- ^ 'etuProFileId'
+    -> EventTag -- ^ 'etuPayload'
+    -> EventTagsUpdate
+eventTagsUpdate pEtuProFileId_ pEtuPayload_ =
+    EventTagsUpdate
+    { _etuProFileId = _Coerce # pEtuProFileId_
+    , _etuPayload = pEtuPayload_
+    }
+
+-- | User profile ID associated with this request.
+etuProFileId :: Lens' EventTagsUpdate Int64
+etuProFileId
+  = lens _etuProFileId (\ s a -> s{_etuProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+etuPayload :: Lens' EventTagsUpdate EventTag
+etuPayload
+  = lens _etuPayload (\ s a -> s{_etuPayload = a})
+
+instance GoogleRequest EventTagsUpdate where
+        type Rs EventTagsUpdate = EventTag
+        requestClient EventTagsUpdate{..}
+          = go _etuProFileId (Just AltJSON) _etuPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy EventTagsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Files/Get.hs b/gen/Network/Google/Resource/DFAReporting/Files/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Files/Get.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Files.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a report file by its report ID and file ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.files.get@.
+module Network.Google.Resource.DFAReporting.Files.Get
+    (
+    -- * REST Resource
+      FilesGetResource
+
+    -- * Creating a Request
+    , filesGet
+    , FilesGet
+
+    -- * Request Lenses
+    , fgReportId
+    , fgFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.files.get@ method which the
+-- 'FilesGet' request conforms to.
+type FilesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "reports" :>
+           Capture "reportId" (Textual Int64) :>
+             "files" :>
+               Capture "fileId" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] File
+       :<|>
+       "dfareporting" :>
+         "v2.2" :>
+           "reports" :>
+             Capture "reportId" (Textual Int64) :>
+               "files" :>
+                 Capture "fileId" (Textual Int64) :>
+                   QueryParam "alt" AltMedia :>
+                     Get '[OctetStream] Stream
+
+-- | Retrieves a report file by its report ID and file ID.
+--
+-- /See:/ 'filesGet' smart constructor.
+data FilesGet = FilesGet
+    { _fgReportId :: !(Textual Int64)
+    , _fgFileId   :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FilesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fgReportId'
+--
+-- * 'fgFileId'
+filesGet
+    :: Int64 -- ^ 'fgReportId'
+    -> Int64 -- ^ 'fgFileId'
+    -> FilesGet
+filesGet pFgReportId_ pFgFileId_ =
+    FilesGet
+    { _fgReportId = _Coerce # pFgReportId_
+    , _fgFileId = _Coerce # pFgFileId_
+    }
+
+-- | The ID of the report.
+fgReportId :: Lens' FilesGet Int64
+fgReportId
+  = lens _fgReportId (\ s a -> s{_fgReportId = a}) .
+      _Coerce
+
+-- | The ID of the report file.
+fgFileId :: Lens' FilesGet Int64
+fgFileId
+  = lens _fgFileId (\ s a -> s{_fgFileId = a}) .
+      _Coerce
+
+instance GoogleRequest FilesGet where
+        type Rs FilesGet = File
+        requestClient FilesGet{..}
+          = go _fgReportId _fgFileId (Just AltJSON)
+              dFAReportingService
+          where go :<|> _
+                  = buildClient (Proxy :: Proxy FilesGetResource)
+                      mempty
+
+instance GoogleRequest (MediaDownload FilesGet) where
+        type Rs (MediaDownload FilesGet) = Stream
+        requestClient (MediaDownload FilesGet{..})
+          = go _fgReportId _fgFileId (Just AltMedia)
+              dFAReportingService
+          where _ :<|> go
+                  = buildClient (Proxy :: Proxy FilesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Files/List.hs b/gen/Network/Google/Resource/DFAReporting/Files/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Files/List.hs
@@ -0,0 +1,144 @@
+{-# 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.DFAReporting.Files.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists files for a user profile.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.files.list@.
+module Network.Google.Resource.DFAReporting.Files.List
+    (
+    -- * REST Resource
+      FilesListResource
+
+    -- * Creating a Request
+    , filesList
+    , FilesList
+
+    -- * Request Lenses
+    , flProFileId
+    , flSortOrder
+    , flScope
+    , flPageToken
+    , flSortField
+    , flMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.files.list@ method which the
+-- 'FilesList' request conforms to.
+type FilesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "files" :>
+               QueryParam "sortOrder" FilesListSortOrder :>
+                 QueryParam "scope" FilesListScope :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "sortField" FilesListSortField :>
+                       QueryParam "maxResults" (Textual Int32) :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] FileList
+
+-- | Lists files for a user profile.
+--
+-- /See:/ 'filesList' smart constructor.
+data FilesList = FilesList
+    { _flProFileId  :: !(Textual Int64)
+    , _flSortOrder  :: !FilesListSortOrder
+    , _flScope      :: !FilesListScope
+    , _flPageToken  :: !(Maybe Text)
+    , _flSortField  :: !FilesListSortField
+    , _flMaxResults :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FilesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'flProFileId'
+--
+-- * 'flSortOrder'
+--
+-- * 'flScope'
+--
+-- * 'flPageToken'
+--
+-- * 'flSortField'
+--
+-- * 'flMaxResults'
+filesList
+    :: Int64 -- ^ 'flProFileId'
+    -> FilesList
+filesList pFlProFileId_ =
+    FilesList
+    { _flProFileId = _Coerce # pFlProFileId_
+    , _flSortOrder = FLSODescending
+    , _flScope = FLSMine
+    , _flPageToken = Nothing
+    , _flSortField = FLSFLastModifiedTime
+    , _flMaxResults = Nothing
+    }
+
+-- | The DFA profile ID.
+flProFileId :: Lens' FilesList Int64
+flProFileId
+  = lens _flProFileId (\ s a -> s{_flProFileId = a}) .
+      _Coerce
+
+-- | Order of sorted results, default is \'DESCENDING\'.
+flSortOrder :: Lens' FilesList FilesListSortOrder
+flSortOrder
+  = lens _flSortOrder (\ s a -> s{_flSortOrder = a})
+
+-- | The scope that defines which results are returned, default is \'MINE\'.
+flScope :: Lens' FilesList FilesListScope
+flScope = lens _flScope (\ s a -> s{_flScope = a})
+
+-- | The value of the nextToken from the previous result page.
+flPageToken :: Lens' FilesList (Maybe Text)
+flPageToken
+  = lens _flPageToken (\ s a -> s{_flPageToken = a})
+
+-- | The field by which to sort the list.
+flSortField :: Lens' FilesList FilesListSortField
+flSortField
+  = lens _flSortField (\ s a -> s{_flSortField = a})
+
+-- | Maximum number of results to return.
+flMaxResults :: Lens' FilesList (Maybe Int32)
+flMaxResults
+  = lens _flMaxResults (\ s a -> s{_flMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest FilesList where
+        type Rs FilesList = FileList
+        requestClient FilesList{..}
+          = go _flProFileId (Just _flSortOrder) (Just _flScope)
+              _flPageToken
+              (Just _flSortField)
+              _flMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy FilesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Delete.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Delete.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.FloodlightActivities.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing floodlight activity.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivities.delete@.
+module Network.Google.Resource.DFAReporting.FloodlightActivities.Delete
+    (
+    -- * REST Resource
+      FloodlightActivitiesDeleteResource
+
+    -- * Creating a Request
+    , floodlightActivitiesDelete
+    , FloodlightActivitiesDelete
+
+    -- * Request Lenses
+    , fadProFileId
+    , fadId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivities.delete@ method which the
+-- 'FloodlightActivitiesDelete' request conforms to.
+type FloodlightActivitiesDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivities" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing floodlight activity.
+--
+-- /See:/ 'floodlightActivitiesDelete' smart constructor.
+data FloodlightActivitiesDelete = FloodlightActivitiesDelete
+    { _fadProFileId :: !(Textual Int64)
+    , _fadId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fadProFileId'
+--
+-- * 'fadId'
+floodlightActivitiesDelete
+    :: Int64 -- ^ 'fadProFileId'
+    -> Int64 -- ^ 'fadId'
+    -> FloodlightActivitiesDelete
+floodlightActivitiesDelete pFadProFileId_ pFadId_ =
+    FloodlightActivitiesDelete
+    { _fadProFileId = _Coerce # pFadProFileId_
+    , _fadId = _Coerce # pFadId_
+    }
+
+-- | User profile ID associated with this request.
+fadProFileId :: Lens' FloodlightActivitiesDelete Int64
+fadProFileId
+  = lens _fadProFileId (\ s a -> s{_fadProFileId = a})
+      . _Coerce
+
+-- | Floodlight activity ID.
+fadId :: Lens' FloodlightActivitiesDelete Int64
+fadId
+  = lens _fadId (\ s a -> s{_fadId = a}) . _Coerce
+
+instance GoogleRequest FloodlightActivitiesDelete
+         where
+        type Rs FloodlightActivitiesDelete = ()
+        requestClient FloodlightActivitiesDelete{..}
+          = go _fadProFileId _fadId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy FloodlightActivitiesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Generatetag.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Generatetag.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Generatetag.hs
@@ -0,0 +1,105 @@
+{-# 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.DFAReporting.FloodlightActivities.Generatetag
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Generates a tag for a floodlight activity.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivities.generatetag@.
+module Network.Google.Resource.DFAReporting.FloodlightActivities.Generatetag
+    (
+    -- * REST Resource
+      FloodlightActivitiesGeneratetagResource
+
+    -- * Creating a Request
+    , floodlightActivitiesGeneratetag
+    , FloodlightActivitiesGeneratetag
+
+    -- * Request Lenses
+    , fagFloodlightActivityId
+    , fagProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivities.generatetag@ method which the
+-- 'FloodlightActivitiesGeneratetag' request conforms to.
+type FloodlightActivitiesGeneratetagResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivities" :>
+               "generatetag" :>
+                 QueryParam "floodlightActivityId" (Textual Int64) :>
+                   QueryParam "alt" AltJSON :>
+                     Post '[JSON] FloodlightActivitiesGenerateTagResponse
+
+-- | Generates a tag for a floodlight activity.
+--
+-- /See:/ 'floodlightActivitiesGeneratetag' smart constructor.
+data FloodlightActivitiesGeneratetag = FloodlightActivitiesGeneratetag
+    { _fagFloodlightActivityId :: !(Maybe (Textual Int64))
+    , _fagProFileId            :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesGeneratetag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fagFloodlightActivityId'
+--
+-- * 'fagProFileId'
+floodlightActivitiesGeneratetag
+    :: Int64 -- ^ 'fagProFileId'
+    -> FloodlightActivitiesGeneratetag
+floodlightActivitiesGeneratetag pFagProFileId_ =
+    FloodlightActivitiesGeneratetag
+    { _fagFloodlightActivityId = Nothing
+    , _fagProFileId = _Coerce # pFagProFileId_
+    }
+
+-- | Floodlight activity ID for which we want to generate a tag.
+fagFloodlightActivityId :: Lens' FloodlightActivitiesGeneratetag (Maybe Int64)
+fagFloodlightActivityId
+  = lens _fagFloodlightActivityId
+      (\ s a -> s{_fagFloodlightActivityId = a})
+      . mapping _Coerce
+
+-- | User profile ID associated with this request.
+fagProFileId :: Lens' FloodlightActivitiesGeneratetag Int64
+fagProFileId
+  = lens _fagProFileId (\ s a -> s{_fagProFileId = a})
+      . _Coerce
+
+instance GoogleRequest
+         FloodlightActivitiesGeneratetag where
+        type Rs FloodlightActivitiesGeneratetag =
+             FloodlightActivitiesGenerateTagResponse
+        requestClient FloodlightActivitiesGeneratetag{..}
+          = go _fagProFileId _fagFloodlightActivityId
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy FloodlightActivitiesGeneratetagResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Get.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Get.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.FloodlightActivities.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one floodlight activity by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivities.get@.
+module Network.Google.Resource.DFAReporting.FloodlightActivities.Get
+    (
+    -- * REST Resource
+      FloodlightActivitiesGetResource
+
+    -- * Creating a Request
+    , floodlightActivitiesGet
+    , FloodlightActivitiesGet
+
+    -- * Request Lenses
+    , fProFileId
+    , fId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivities.get@ method which the
+-- 'FloodlightActivitiesGet' request conforms to.
+type FloodlightActivitiesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivities" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] FloodlightActivity
+
+-- | Gets one floodlight activity by ID.
+--
+-- /See:/ 'floodlightActivitiesGet' smart constructor.
+data FloodlightActivitiesGet = FloodlightActivitiesGet
+    { _fProFileId :: !(Textual Int64)
+    , _fId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fProFileId'
+--
+-- * 'fId'
+floodlightActivitiesGet
+    :: Int64 -- ^ 'fProFileId'
+    -> Int64 -- ^ 'fId'
+    -> FloodlightActivitiesGet
+floodlightActivitiesGet pFProFileId_ pFId_ =
+    FloodlightActivitiesGet
+    { _fProFileId = _Coerce # pFProFileId_
+    , _fId = _Coerce # pFId_
+    }
+
+-- | User profile ID associated with this request.
+fProFileId :: Lens' FloodlightActivitiesGet Int64
+fProFileId
+  = lens _fProFileId (\ s a -> s{_fProFileId = a}) .
+      _Coerce
+
+-- | Floodlight activity ID.
+fId :: Lens' FloodlightActivitiesGet Int64
+fId = lens _fId (\ s a -> s{_fId = a}) . _Coerce
+
+instance GoogleRequest FloodlightActivitiesGet where
+        type Rs FloodlightActivitiesGet = FloodlightActivity
+        requestClient FloodlightActivitiesGet{..}
+          = go _fProFileId _fId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy FloodlightActivitiesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Insert.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Insert.hs
@@ -0,0 +1,101 @@
+{-# 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.DFAReporting.FloodlightActivities.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new floodlight activity.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivities.insert@.
+module Network.Google.Resource.DFAReporting.FloodlightActivities.Insert
+    (
+    -- * REST Resource
+      FloodlightActivitiesInsertResource
+
+    -- * Creating a Request
+    , floodlightActivitiesInsert
+    , FloodlightActivitiesInsert
+
+    -- * Request Lenses
+    , faiProFileId
+    , faiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivities.insert@ method which the
+-- 'FloodlightActivitiesInsert' request conforms to.
+type FloodlightActivitiesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivities" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] FloodlightActivity :>
+                   Post '[JSON] FloodlightActivity
+
+-- | Inserts a new floodlight activity.
+--
+-- /See:/ 'floodlightActivitiesInsert' smart constructor.
+data FloodlightActivitiesInsert = FloodlightActivitiesInsert
+    { _faiProFileId :: !(Textual Int64)
+    , _faiPayload   :: !FloodlightActivity
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'faiProFileId'
+--
+-- * 'faiPayload'
+floodlightActivitiesInsert
+    :: Int64 -- ^ 'faiProFileId'
+    -> FloodlightActivity -- ^ 'faiPayload'
+    -> FloodlightActivitiesInsert
+floodlightActivitiesInsert pFaiProFileId_ pFaiPayload_ =
+    FloodlightActivitiesInsert
+    { _faiProFileId = _Coerce # pFaiProFileId_
+    , _faiPayload = pFaiPayload_
+    }
+
+-- | User profile ID associated with this request.
+faiProFileId :: Lens' FloodlightActivitiesInsert Int64
+faiProFileId
+  = lens _faiProFileId (\ s a -> s{_faiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+faiPayload :: Lens' FloodlightActivitiesInsert FloodlightActivity
+faiPayload
+  = lens _faiPayload (\ s a -> s{_faiPayload = a})
+
+instance GoogleRequest FloodlightActivitiesInsert
+         where
+        type Rs FloodlightActivitiesInsert =
+             FloodlightActivity
+        requestClient FloodlightActivitiesInsert{..}
+          = go _faiProFileId (Just AltJSON) _faiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy FloodlightActivitiesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/List.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/List.hs
@@ -0,0 +1,289 @@
+{-# 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.DFAReporting.FloodlightActivities.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of floodlight activities, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivities.list@.
+module Network.Google.Resource.DFAReporting.FloodlightActivities.List
+    (
+    -- * REST Resource
+      FloodlightActivitiesListResource
+
+    -- * Creating a Request
+    , floodlightActivitiesList
+    , FloodlightActivitiesList
+
+    -- * Request Lenses
+    , falTagString
+    , falFloodlightActivityGroupTagString
+    , falFloodlightConfigurationId
+    , falAdvertiserId
+    , falSearchString
+    , falIds
+    , falProFileId
+    , falFloodlightActivityGroupIds
+    , falSortOrder
+    , falFloodlightActivityGroupType
+    , falFloodlightActivityGroupName
+    , falPageToken
+    , falSortField
+    , falMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivities.list@ method which the
+-- 'FloodlightActivitiesList' request conforms to.
+type FloodlightActivitiesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivities" :>
+               QueryParam "tagString" Text :>
+                 QueryParam "floodlightActivityGroupTagString" Text :>
+                   QueryParam "floodlightConfigurationId"
+                     (Textual Int64)
+                     :>
+                     QueryParam "advertiserId" (Textual Int64) :>
+                       QueryParam "searchString" Text :>
+                         QueryParams "ids" (Textual Int64) :>
+                           QueryParams "floodlightActivityGroupIds"
+                             (Textual Int64)
+                             :>
+                             QueryParam "sortOrder"
+                               FloodlightActivitiesListSortOrder
+                               :>
+                               QueryParam "floodlightActivityGroupType"
+                                 FloodlightActivitiesListFloodlightActivityGroupType
+                                 :>
+                                 QueryParam "floodlightActivityGroupName" Text
+                                   :>
+                                   QueryParam "pageToken" Text :>
+                                     QueryParam "sortField"
+                                       FloodlightActivitiesListSortField
+                                       :>
+                                       QueryParam "maxResults" (Textual Int32)
+                                         :>
+                                         QueryParam "alt" AltJSON :>
+                                           Get '[JSON]
+                                             FloodlightActivitiesListResponse
+
+-- | Retrieves a list of floodlight activities, possibly filtered.
+--
+-- /See:/ 'floodlightActivitiesList' smart constructor.
+data FloodlightActivitiesList = FloodlightActivitiesList
+    { _falTagString                        :: !(Maybe Text)
+    , _falFloodlightActivityGroupTagString :: !(Maybe Text)
+    , _falFloodlightConfigurationId        :: !(Maybe (Textual Int64))
+    , _falAdvertiserId                     :: !(Maybe (Textual Int64))
+    , _falSearchString                     :: !(Maybe Text)
+    , _falIds                              :: !(Maybe [Textual Int64])
+    , _falProFileId                        :: !(Textual Int64)
+    , _falFloodlightActivityGroupIds       :: !(Maybe [Textual Int64])
+    , _falSortOrder                        :: !(Maybe FloodlightActivitiesListSortOrder)
+    , _falFloodlightActivityGroupType      :: !(Maybe FloodlightActivitiesListFloodlightActivityGroupType)
+    , _falFloodlightActivityGroupName      :: !(Maybe Text)
+    , _falPageToken                        :: !(Maybe Text)
+    , _falSortField                        :: !(Maybe FloodlightActivitiesListSortField)
+    , _falMaxResults                       :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'falTagString'
+--
+-- * 'falFloodlightActivityGroupTagString'
+--
+-- * 'falFloodlightConfigurationId'
+--
+-- * 'falAdvertiserId'
+--
+-- * 'falSearchString'
+--
+-- * 'falIds'
+--
+-- * 'falProFileId'
+--
+-- * 'falFloodlightActivityGroupIds'
+--
+-- * 'falSortOrder'
+--
+-- * 'falFloodlightActivityGroupType'
+--
+-- * 'falFloodlightActivityGroupName'
+--
+-- * 'falPageToken'
+--
+-- * 'falSortField'
+--
+-- * 'falMaxResults'
+floodlightActivitiesList
+    :: Int64 -- ^ 'falProFileId'
+    -> FloodlightActivitiesList
+floodlightActivitiesList pFalProFileId_ =
+    FloodlightActivitiesList
+    { _falTagString = Nothing
+    , _falFloodlightActivityGroupTagString = Nothing
+    , _falFloodlightConfigurationId = Nothing
+    , _falAdvertiserId = Nothing
+    , _falSearchString = Nothing
+    , _falIds = Nothing
+    , _falProFileId = _Coerce # pFalProFileId_
+    , _falFloodlightActivityGroupIds = Nothing
+    , _falSortOrder = Nothing
+    , _falFloodlightActivityGroupType = Nothing
+    , _falFloodlightActivityGroupName = Nothing
+    , _falPageToken = Nothing
+    , _falSortField = Nothing
+    , _falMaxResults = Nothing
+    }
+
+-- | Select only floodlight activities with the specified tag string.
+falTagString :: Lens' FloodlightActivitiesList (Maybe Text)
+falTagString
+  = lens _falTagString (\ s a -> s{_falTagString = a})
+
+-- | Select only floodlight activities with the specified floodlight activity
+-- group tag string.
+falFloodlightActivityGroupTagString :: Lens' FloodlightActivitiesList (Maybe Text)
+falFloodlightActivityGroupTagString
+  = lens _falFloodlightActivityGroupTagString
+      (\ s a ->
+         s{_falFloodlightActivityGroupTagString = a})
+
+-- | Select only floodlight activities for the specified floodlight
+-- configuration ID. Must specify either ids, advertiserId, or
+-- floodlightConfigurationId for a non-empty result.
+falFloodlightConfigurationId :: Lens' FloodlightActivitiesList (Maybe Int64)
+falFloodlightConfigurationId
+  = lens _falFloodlightConfigurationId
+      (\ s a -> s{_falFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Select only floodlight activities for the specified advertiser ID. Must
+-- specify either ids, advertiserId, or floodlightConfigurationId for a
+-- non-empty result.
+falAdvertiserId :: Lens' FloodlightActivitiesList (Maybe Int64)
+falAdvertiserId
+  = lens _falAdvertiserId
+      (\ s a -> s{_falAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"floodlightactivity*2015\" will return objects with names
+-- like \"floodlightactivity June 2015\", \"floodlightactivity April
+-- 2015\", or simply \"floodlightactivity 2015\". Most of the searches also
+-- add wildcards implicitly at the start and the end of the search string.
+-- For example, a search string of \"floodlightactivity\" will match
+-- objects with name \"my floodlightactivity activity\",
+-- \"floodlightactivity 2015\", or simply \"floodlightactivity\".
+falSearchString :: Lens' FloodlightActivitiesList (Maybe Text)
+falSearchString
+  = lens _falSearchString
+      (\ s a -> s{_falSearchString = a})
+
+-- | Select only floodlight activities with the specified IDs. Must specify
+-- either ids, advertiserId, or floodlightConfigurationId for a non-empty
+-- result.
+falIds :: Lens' FloodlightActivitiesList [Int64]
+falIds
+  = lens _falIds (\ s a -> s{_falIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+falProFileId :: Lens' FloodlightActivitiesList Int64
+falProFileId
+  = lens _falProFileId (\ s a -> s{_falProFileId = a})
+      . _Coerce
+
+-- | Select only floodlight activities with the specified floodlight activity
+-- group IDs.
+falFloodlightActivityGroupIds :: Lens' FloodlightActivitiesList [Int64]
+falFloodlightActivityGroupIds
+  = lens _falFloodlightActivityGroupIds
+      (\ s a -> s{_falFloodlightActivityGroupIds = a})
+      . _Default
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+falSortOrder :: Lens' FloodlightActivitiesList (Maybe FloodlightActivitiesListSortOrder)
+falSortOrder
+  = lens _falSortOrder (\ s a -> s{_falSortOrder = a})
+
+-- | Select only floodlight activities with the specified floodlight activity
+-- group type.
+falFloodlightActivityGroupType :: Lens' FloodlightActivitiesList (Maybe FloodlightActivitiesListFloodlightActivityGroupType)
+falFloodlightActivityGroupType
+  = lens _falFloodlightActivityGroupType
+      (\ s a -> s{_falFloodlightActivityGroupType = a})
+
+-- | Select only floodlight activities with the specified floodlight activity
+-- group name.
+falFloodlightActivityGroupName :: Lens' FloodlightActivitiesList (Maybe Text)
+falFloodlightActivityGroupName
+  = lens _falFloodlightActivityGroupName
+      (\ s a -> s{_falFloodlightActivityGroupName = a})
+
+-- | Value of the nextPageToken from the previous result page.
+falPageToken :: Lens' FloodlightActivitiesList (Maybe Text)
+falPageToken
+  = lens _falPageToken (\ s a -> s{_falPageToken = a})
+
+-- | Field by which to sort the list.
+falSortField :: Lens' FloodlightActivitiesList (Maybe FloodlightActivitiesListSortField)
+falSortField
+  = lens _falSortField (\ s a -> s{_falSortField = a})
+
+-- | Maximum number of results to return.
+falMaxResults :: Lens' FloodlightActivitiesList (Maybe Int32)
+falMaxResults
+  = lens _falMaxResults
+      (\ s a -> s{_falMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest FloodlightActivitiesList where
+        type Rs FloodlightActivitiesList =
+             FloodlightActivitiesListResponse
+        requestClient FloodlightActivitiesList{..}
+          = go _falProFileId _falTagString
+              _falFloodlightActivityGroupTagString
+              _falFloodlightConfigurationId
+              _falAdvertiserId
+              _falSearchString
+              (_falIds ^. _Default)
+              (_falFloodlightActivityGroupIds ^. _Default)
+              _falSortOrder
+              _falFloodlightActivityGroupType
+              _falFloodlightActivityGroupName
+              _falPageToken
+              _falSortField
+              _falMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy FloodlightActivitiesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Patch.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Patch.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.FloodlightActivities.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing floodlight activity. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivities.patch@.
+module Network.Google.Resource.DFAReporting.FloodlightActivities.Patch
+    (
+    -- * REST Resource
+      FloodlightActivitiesPatchResource
+
+    -- * Creating a Request
+    , floodlightActivitiesPatch
+    , FloodlightActivitiesPatch
+
+    -- * Request Lenses
+    , fapProFileId
+    , fapPayload
+    , fapId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivities.patch@ method which the
+-- 'FloodlightActivitiesPatch' request conforms to.
+type FloodlightActivitiesPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivities" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] FloodlightActivity :>
+                     Patch '[JSON] FloodlightActivity
+
+-- | Updates an existing floodlight activity. This method supports patch
+-- semantics.
+--
+-- /See:/ 'floodlightActivitiesPatch' smart constructor.
+data FloodlightActivitiesPatch = FloodlightActivitiesPatch
+    { _fapProFileId :: !(Textual Int64)
+    , _fapPayload   :: !FloodlightActivity
+    , _fapId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fapProFileId'
+--
+-- * 'fapPayload'
+--
+-- * 'fapId'
+floodlightActivitiesPatch
+    :: Int64 -- ^ 'fapProFileId'
+    -> FloodlightActivity -- ^ 'fapPayload'
+    -> Int64 -- ^ 'fapId'
+    -> FloodlightActivitiesPatch
+floodlightActivitiesPatch pFapProFileId_ pFapPayload_ pFapId_ =
+    FloodlightActivitiesPatch
+    { _fapProFileId = _Coerce # pFapProFileId_
+    , _fapPayload = pFapPayload_
+    , _fapId = _Coerce # pFapId_
+    }
+
+-- | User profile ID associated with this request.
+fapProFileId :: Lens' FloodlightActivitiesPatch Int64
+fapProFileId
+  = lens _fapProFileId (\ s a -> s{_fapProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+fapPayload :: Lens' FloodlightActivitiesPatch FloodlightActivity
+fapPayload
+  = lens _fapPayload (\ s a -> s{_fapPayload = a})
+
+-- | Floodlight activity ID.
+fapId :: Lens' FloodlightActivitiesPatch Int64
+fapId
+  = lens _fapId (\ s a -> s{_fapId = a}) . _Coerce
+
+instance GoogleRequest FloodlightActivitiesPatch
+         where
+        type Rs FloodlightActivitiesPatch =
+             FloodlightActivity
+        requestClient FloodlightActivitiesPatch{..}
+          = go _fapProFileId (Just _fapId) (Just AltJSON)
+              _fapPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy FloodlightActivitiesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Update.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Update.hs
@@ -0,0 +1,101 @@
+{-# 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.DFAReporting.FloodlightActivities.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing floodlight activity.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivities.update@.
+module Network.Google.Resource.DFAReporting.FloodlightActivities.Update
+    (
+    -- * REST Resource
+      FloodlightActivitiesUpdateResource
+
+    -- * Creating a Request
+    , floodlightActivitiesUpdate
+    , FloodlightActivitiesUpdate
+
+    -- * Request Lenses
+    , fauProFileId
+    , fauPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivities.update@ method which the
+-- 'FloodlightActivitiesUpdate' request conforms to.
+type FloodlightActivitiesUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivities" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] FloodlightActivity :>
+                   Put '[JSON] FloodlightActivity
+
+-- | Updates an existing floodlight activity.
+--
+-- /See:/ 'floodlightActivitiesUpdate' smart constructor.
+data FloodlightActivitiesUpdate = FloodlightActivitiesUpdate
+    { _fauProFileId :: !(Textual Int64)
+    , _fauPayload   :: !FloodlightActivity
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fauProFileId'
+--
+-- * 'fauPayload'
+floodlightActivitiesUpdate
+    :: Int64 -- ^ 'fauProFileId'
+    -> FloodlightActivity -- ^ 'fauPayload'
+    -> FloodlightActivitiesUpdate
+floodlightActivitiesUpdate pFauProFileId_ pFauPayload_ =
+    FloodlightActivitiesUpdate
+    { _fauProFileId = _Coerce # pFauProFileId_
+    , _fauPayload = pFauPayload_
+    }
+
+-- | User profile ID associated with this request.
+fauProFileId :: Lens' FloodlightActivitiesUpdate Int64
+fauProFileId
+  = lens _fauProFileId (\ s a -> s{_fauProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+fauPayload :: Lens' FloodlightActivitiesUpdate FloodlightActivity
+fauPayload
+  = lens _fauPayload (\ s a -> s{_fauPayload = a})
+
+instance GoogleRequest FloodlightActivitiesUpdate
+         where
+        type Rs FloodlightActivitiesUpdate =
+             FloodlightActivity
+        requestClient FloodlightActivitiesUpdate{..}
+          = go _fauProFileId (Just AltJSON) _fauPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy FloodlightActivitiesUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Delete.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Delete.hs
@@ -0,0 +1,101 @@
+{-# 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.DFAReporting.FloodlightActivityGroups.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing floodlight activity group.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivityGroups.delete@.
+module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Delete
+    (
+    -- * REST Resource
+      FloodlightActivityGroupsDeleteResource
+
+    -- * Creating a Request
+    , floodlightActivityGroupsDelete
+    , FloodlightActivityGroupsDelete
+
+    -- * Request Lenses
+    , fagdProFileId
+    , fagdId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivityGroups.delete@ method which the
+-- 'FloodlightActivityGroupsDelete' request conforms to.
+type FloodlightActivityGroupsDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivityGroups" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing floodlight activity group.
+--
+-- /See:/ 'floodlightActivityGroupsDelete' smart constructor.
+data FloodlightActivityGroupsDelete = FloodlightActivityGroupsDelete
+    { _fagdProFileId :: !(Textual Int64)
+    , _fagdId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityGroupsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fagdProFileId'
+--
+-- * 'fagdId'
+floodlightActivityGroupsDelete
+    :: Int64 -- ^ 'fagdProFileId'
+    -> Int64 -- ^ 'fagdId'
+    -> FloodlightActivityGroupsDelete
+floodlightActivityGroupsDelete pFagdProFileId_ pFagdId_ =
+    FloodlightActivityGroupsDelete
+    { _fagdProFileId = _Coerce # pFagdProFileId_
+    , _fagdId = _Coerce # pFagdId_
+    }
+
+-- | User profile ID associated with this request.
+fagdProFileId :: Lens' FloodlightActivityGroupsDelete Int64
+fagdProFileId
+  = lens _fagdProFileId
+      (\ s a -> s{_fagdProFileId = a})
+      . _Coerce
+
+-- | Floodlight activity Group ID.
+fagdId :: Lens' FloodlightActivityGroupsDelete Int64
+fagdId
+  = lens _fagdId (\ s a -> s{_fagdId = a}) . _Coerce
+
+instance GoogleRequest FloodlightActivityGroupsDelete
+         where
+        type Rs FloodlightActivityGroupsDelete = ()
+        requestClient FloodlightActivityGroupsDelete{..}
+          = go _fagdProFileId _fagdId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy FloodlightActivityGroupsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Get.hs
@@ -0,0 +1,102 @@
+{-# 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.DFAReporting.FloodlightActivityGroups.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one floodlight activity group by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivityGroups.get@.
+module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Get
+    (
+    -- * REST Resource
+      FloodlightActivityGroupsGetResource
+
+    -- * Creating a Request
+    , floodlightActivityGroupsGet
+    , FloodlightActivityGroupsGet
+
+    -- * Request Lenses
+    , faggProFileId
+    , faggId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivityGroups.get@ method which the
+-- 'FloodlightActivityGroupsGet' request conforms to.
+type FloodlightActivityGroupsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivityGroups" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] FloodlightActivityGroup
+
+-- | Gets one floodlight activity group by ID.
+--
+-- /See:/ 'floodlightActivityGroupsGet' smart constructor.
+data FloodlightActivityGroupsGet = FloodlightActivityGroupsGet
+    { _faggProFileId :: !(Textual Int64)
+    , _faggId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityGroupsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'faggProFileId'
+--
+-- * 'faggId'
+floodlightActivityGroupsGet
+    :: Int64 -- ^ 'faggProFileId'
+    -> Int64 -- ^ 'faggId'
+    -> FloodlightActivityGroupsGet
+floodlightActivityGroupsGet pFaggProFileId_ pFaggId_ =
+    FloodlightActivityGroupsGet
+    { _faggProFileId = _Coerce # pFaggProFileId_
+    , _faggId = _Coerce # pFaggId_
+    }
+
+-- | User profile ID associated with this request.
+faggProFileId :: Lens' FloodlightActivityGroupsGet Int64
+faggProFileId
+  = lens _faggProFileId
+      (\ s a -> s{_faggProFileId = a})
+      . _Coerce
+
+-- | Floodlight activity Group ID.
+faggId :: Lens' FloodlightActivityGroupsGet Int64
+faggId
+  = lens _faggId (\ s a -> s{_faggId = a}) . _Coerce
+
+instance GoogleRequest FloodlightActivityGroupsGet
+         where
+        type Rs FloodlightActivityGroupsGet =
+             FloodlightActivityGroup
+        requestClient FloodlightActivityGroupsGet{..}
+          = go _faggProFileId _faggId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy FloodlightActivityGroupsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Insert.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Insert.hs
@@ -0,0 +1,103 @@
+{-# 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.DFAReporting.FloodlightActivityGroups.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new floodlight activity group.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivityGroups.insert@.
+module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Insert
+    (
+    -- * REST Resource
+      FloodlightActivityGroupsInsertResource
+
+    -- * Creating a Request
+    , floodlightActivityGroupsInsert
+    , FloodlightActivityGroupsInsert
+
+    -- * Request Lenses
+    , fagiProFileId
+    , fagiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivityGroups.insert@ method which the
+-- 'FloodlightActivityGroupsInsert' request conforms to.
+type FloodlightActivityGroupsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivityGroups" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] FloodlightActivityGroup :>
+                   Post '[JSON] FloodlightActivityGroup
+
+-- | Inserts a new floodlight activity group.
+--
+-- /See:/ 'floodlightActivityGroupsInsert' smart constructor.
+data FloodlightActivityGroupsInsert = FloodlightActivityGroupsInsert
+    { _fagiProFileId :: !(Textual Int64)
+    , _fagiPayload   :: !FloodlightActivityGroup
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityGroupsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fagiProFileId'
+--
+-- * 'fagiPayload'
+floodlightActivityGroupsInsert
+    :: Int64 -- ^ 'fagiProFileId'
+    -> FloodlightActivityGroup -- ^ 'fagiPayload'
+    -> FloodlightActivityGroupsInsert
+floodlightActivityGroupsInsert pFagiProFileId_ pFagiPayload_ =
+    FloodlightActivityGroupsInsert
+    { _fagiProFileId = _Coerce # pFagiProFileId_
+    , _fagiPayload = pFagiPayload_
+    }
+
+-- | User profile ID associated with this request.
+fagiProFileId :: Lens' FloodlightActivityGroupsInsert Int64
+fagiProFileId
+  = lens _fagiProFileId
+      (\ s a -> s{_fagiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+fagiPayload :: Lens' FloodlightActivityGroupsInsert FloodlightActivityGroup
+fagiPayload
+  = lens _fagiPayload (\ s a -> s{_fagiPayload = a})
+
+instance GoogleRequest FloodlightActivityGroupsInsert
+         where
+        type Rs FloodlightActivityGroupsInsert =
+             FloodlightActivityGroup
+        requestClient FloodlightActivityGroupsInsert{..}
+          = go _fagiProFileId (Just AltJSON) _fagiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy FloodlightActivityGroupsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/List.hs
@@ -0,0 +1,231 @@
+{-# 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.DFAReporting.FloodlightActivityGroups.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of floodlight activity groups, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivityGroups.list@.
+module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.List
+    (
+    -- * REST Resource
+      FloodlightActivityGroupsListResource
+
+    -- * Creating a Request
+    , floodlightActivityGroupsList
+    , FloodlightActivityGroupsList
+
+    -- * Request Lenses
+    , faglFloodlightConfigurationId
+    , faglAdvertiserId
+    , faglSearchString
+    , faglIds
+    , faglProFileId
+    , faglSortOrder
+    , faglPageToken
+    , faglSortField
+    , faglType
+    , faglMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivityGroups.list@ method which the
+-- 'FloodlightActivityGroupsList' request conforms to.
+type FloodlightActivityGroupsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivityGroups" :>
+               QueryParam "floodlightConfigurationId"
+                 (Textual Int64)
+                 :>
+                 QueryParam "advertiserId" (Textual Int64) :>
+                   QueryParam "searchString" Text :>
+                     QueryParams "ids" (Textual Int64) :>
+                       QueryParam "sortOrder"
+                         FloodlightActivityGroupsListSortOrder
+                         :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "sortField"
+                             FloodlightActivityGroupsListSortField
+                             :>
+                             QueryParam "type" FloodlightActivityGroupsListType
+                               :>
+                               QueryParam "maxResults" (Textual Int32) :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON]
+                                     FloodlightActivityGroupsListResponse
+
+-- | Retrieves a list of floodlight activity groups, possibly filtered.
+--
+-- /See:/ 'floodlightActivityGroupsList' smart constructor.
+data FloodlightActivityGroupsList = FloodlightActivityGroupsList
+    { _faglFloodlightConfigurationId :: !(Maybe (Textual Int64))
+    , _faglAdvertiserId              :: !(Maybe (Textual Int64))
+    , _faglSearchString              :: !(Maybe Text)
+    , _faglIds                       :: !(Maybe [Textual Int64])
+    , _faglProFileId                 :: !(Textual Int64)
+    , _faglSortOrder                 :: !(Maybe FloodlightActivityGroupsListSortOrder)
+    , _faglPageToken                 :: !(Maybe Text)
+    , _faglSortField                 :: !(Maybe FloodlightActivityGroupsListSortField)
+    , _faglType                      :: !(Maybe FloodlightActivityGroupsListType)
+    , _faglMaxResults                :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityGroupsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'faglFloodlightConfigurationId'
+--
+-- * 'faglAdvertiserId'
+--
+-- * 'faglSearchString'
+--
+-- * 'faglIds'
+--
+-- * 'faglProFileId'
+--
+-- * 'faglSortOrder'
+--
+-- * 'faglPageToken'
+--
+-- * 'faglSortField'
+--
+-- * 'faglType'
+--
+-- * 'faglMaxResults'
+floodlightActivityGroupsList
+    :: Int64 -- ^ 'faglProFileId'
+    -> FloodlightActivityGroupsList
+floodlightActivityGroupsList pFaglProFileId_ =
+    FloodlightActivityGroupsList
+    { _faglFloodlightConfigurationId = Nothing
+    , _faglAdvertiserId = Nothing
+    , _faglSearchString = Nothing
+    , _faglIds = Nothing
+    , _faglProFileId = _Coerce # pFaglProFileId_
+    , _faglSortOrder = Nothing
+    , _faglPageToken = Nothing
+    , _faglSortField = Nothing
+    , _faglType = Nothing
+    , _faglMaxResults = Nothing
+    }
+
+-- | Select only floodlight activity groups with the specified floodlight
+-- configuration ID. Must specify either advertiserId, or
+-- floodlightConfigurationId for a non-empty result.
+faglFloodlightConfigurationId :: Lens' FloodlightActivityGroupsList (Maybe Int64)
+faglFloodlightConfigurationId
+  = lens _faglFloodlightConfigurationId
+      (\ s a -> s{_faglFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Select only floodlight activity groups with the specified advertiser ID.
+-- Must specify either advertiserId or floodlightConfigurationId for a
+-- non-empty result.
+faglAdvertiserId :: Lens' FloodlightActivityGroupsList (Maybe Int64)
+faglAdvertiserId
+  = lens _faglAdvertiserId
+      (\ s a -> s{_faglAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"floodlightactivitygroup*2015\" will return objects with
+-- names like \"floodlightactivitygroup June 2015\",
+-- \"floodlightactivitygroup April 2015\", or simply
+-- \"floodlightactivitygroup 2015\". Most of the searches also add
+-- wildcards implicitly at the start and the end of the search string. For
+-- example, a search string of \"floodlightactivitygroup\" will match
+-- objects with name \"my floodlightactivitygroup activity\",
+-- \"floodlightactivitygroup 2015\", or simply \"floodlightactivitygroup\".
+faglSearchString :: Lens' FloodlightActivityGroupsList (Maybe Text)
+faglSearchString
+  = lens _faglSearchString
+      (\ s a -> s{_faglSearchString = a})
+
+-- | Select only floodlight activity groups with the specified IDs. Must
+-- specify either advertiserId or floodlightConfigurationId for a non-empty
+-- result.
+faglIds :: Lens' FloodlightActivityGroupsList [Int64]
+faglIds
+  = lens _faglIds (\ s a -> s{_faglIds = a}) . _Default
+      . _Coerce
+
+-- | User profile ID associated with this request.
+faglProFileId :: Lens' FloodlightActivityGroupsList Int64
+faglProFileId
+  = lens _faglProFileId
+      (\ s a -> s{_faglProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+faglSortOrder :: Lens' FloodlightActivityGroupsList (Maybe FloodlightActivityGroupsListSortOrder)
+faglSortOrder
+  = lens _faglSortOrder
+      (\ s a -> s{_faglSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+faglPageToken :: Lens' FloodlightActivityGroupsList (Maybe Text)
+faglPageToken
+  = lens _faglPageToken
+      (\ s a -> s{_faglPageToken = a})
+
+-- | Field by which to sort the list.
+faglSortField :: Lens' FloodlightActivityGroupsList (Maybe FloodlightActivityGroupsListSortField)
+faglSortField
+  = lens _faglSortField
+      (\ s a -> s{_faglSortField = a})
+
+-- | Select only floodlight activity groups with the specified floodlight
+-- activity group type.
+faglType :: Lens' FloodlightActivityGroupsList (Maybe FloodlightActivityGroupsListType)
+faglType = lens _faglType (\ s a -> s{_faglType = a})
+
+-- | Maximum number of results to return.
+faglMaxResults :: Lens' FloodlightActivityGroupsList (Maybe Int32)
+faglMaxResults
+  = lens _faglMaxResults
+      (\ s a -> s{_faglMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest FloodlightActivityGroupsList
+         where
+        type Rs FloodlightActivityGroupsList =
+             FloodlightActivityGroupsListResponse
+        requestClient FloodlightActivityGroupsList{..}
+          = go _faglProFileId _faglFloodlightConfigurationId
+              _faglAdvertiserId
+              _faglSearchString
+              (_faglIds ^. _Default)
+              _faglSortOrder
+              _faglPageToken
+              _faglSortField
+              _faglType
+              _faglMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy FloodlightActivityGroupsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Patch.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Patch.hs
@@ -0,0 +1,118 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing floodlight activity group. This method supports
+-- patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivityGroups.patch@.
+module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Patch
+    (
+    -- * REST Resource
+      FloodlightActivityGroupsPatchResource
+
+    -- * Creating a Request
+    , floodlightActivityGroupsPatch
+    , FloodlightActivityGroupsPatch
+
+    -- * Request Lenses
+    , fagpProFileId
+    , fagpPayload
+    , fagpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivityGroups.patch@ method which the
+-- 'FloodlightActivityGroupsPatch' request conforms to.
+type FloodlightActivityGroupsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivityGroups" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] FloodlightActivityGroup :>
+                     Patch '[JSON] FloodlightActivityGroup
+
+-- | Updates an existing floodlight activity group. This method supports
+-- patch semantics.
+--
+-- /See:/ 'floodlightActivityGroupsPatch' smart constructor.
+data FloodlightActivityGroupsPatch = FloodlightActivityGroupsPatch
+    { _fagpProFileId :: !(Textual Int64)
+    , _fagpPayload   :: !FloodlightActivityGroup
+    , _fagpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityGroupsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fagpProFileId'
+--
+-- * 'fagpPayload'
+--
+-- * 'fagpId'
+floodlightActivityGroupsPatch
+    :: Int64 -- ^ 'fagpProFileId'
+    -> FloodlightActivityGroup -- ^ 'fagpPayload'
+    -> Int64 -- ^ 'fagpId'
+    -> FloodlightActivityGroupsPatch
+floodlightActivityGroupsPatch pFagpProFileId_ pFagpPayload_ pFagpId_ =
+    FloodlightActivityGroupsPatch
+    { _fagpProFileId = _Coerce # pFagpProFileId_
+    , _fagpPayload = pFagpPayload_
+    , _fagpId = _Coerce # pFagpId_
+    }
+
+-- | User profile ID associated with this request.
+fagpProFileId :: Lens' FloodlightActivityGroupsPatch Int64
+fagpProFileId
+  = lens _fagpProFileId
+      (\ s a -> s{_fagpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+fagpPayload :: Lens' FloodlightActivityGroupsPatch FloodlightActivityGroup
+fagpPayload
+  = lens _fagpPayload (\ s a -> s{_fagpPayload = a})
+
+-- | Floodlight activity Group ID.
+fagpId :: Lens' FloodlightActivityGroupsPatch Int64
+fagpId
+  = lens _fagpId (\ s a -> s{_fagpId = a}) . _Coerce
+
+instance GoogleRequest FloodlightActivityGroupsPatch
+         where
+        type Rs FloodlightActivityGroupsPatch =
+             FloodlightActivityGroup
+        requestClient FloodlightActivityGroupsPatch{..}
+          = go _fagpProFileId (Just _fagpId) (Just AltJSON)
+              _fagpPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy FloodlightActivityGroupsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Update.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Update.hs
@@ -0,0 +1,103 @@
+{-# 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.DFAReporting.FloodlightActivityGroups.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing floodlight activity group.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivityGroups.update@.
+module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Update
+    (
+    -- * REST Resource
+      FloodlightActivityGroupsUpdateResource
+
+    -- * Creating a Request
+    , floodlightActivityGroupsUpdate
+    , FloodlightActivityGroupsUpdate
+
+    -- * Request Lenses
+    , faguProFileId
+    , faguPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightActivityGroups.update@ method which the
+-- 'FloodlightActivityGroupsUpdate' request conforms to.
+type FloodlightActivityGroupsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightActivityGroups" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] FloodlightActivityGroup :>
+                   Put '[JSON] FloodlightActivityGroup
+
+-- | Updates an existing floodlight activity group.
+--
+-- /See:/ 'floodlightActivityGroupsUpdate' smart constructor.
+data FloodlightActivityGroupsUpdate = FloodlightActivityGroupsUpdate
+    { _faguProFileId :: !(Textual Int64)
+    , _faguPayload   :: !FloodlightActivityGroup
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityGroupsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'faguProFileId'
+--
+-- * 'faguPayload'
+floodlightActivityGroupsUpdate
+    :: Int64 -- ^ 'faguProFileId'
+    -> FloodlightActivityGroup -- ^ 'faguPayload'
+    -> FloodlightActivityGroupsUpdate
+floodlightActivityGroupsUpdate pFaguProFileId_ pFaguPayload_ =
+    FloodlightActivityGroupsUpdate
+    { _faguProFileId = _Coerce # pFaguProFileId_
+    , _faguPayload = pFaguPayload_
+    }
+
+-- | User profile ID associated with this request.
+faguProFileId :: Lens' FloodlightActivityGroupsUpdate Int64
+faguProFileId
+  = lens _faguProFileId
+      (\ s a -> s{_faguProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+faguPayload :: Lens' FloodlightActivityGroupsUpdate FloodlightActivityGroup
+faguPayload
+  = lens _faguPayload (\ s a -> s{_faguPayload = a})
+
+instance GoogleRequest FloodlightActivityGroupsUpdate
+         where
+        type Rs FloodlightActivityGroupsUpdate =
+             FloodlightActivityGroup
+        requestClient FloodlightActivityGroupsUpdate{..}
+          = go _faguProFileId (Just AltJSON) _faguPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy FloodlightActivityGroupsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Get.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Get.hs
@@ -0,0 +1,101 @@
+{-# 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.DFAReporting.FloodlightConfigurations.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one floodlight configuration by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightConfigurations.get@.
+module Network.Google.Resource.DFAReporting.FloodlightConfigurations.Get
+    (
+    -- * REST Resource
+      FloodlightConfigurationsGetResource
+
+    -- * Creating a Request
+    , floodlightConfigurationsGet
+    , FloodlightConfigurationsGet
+
+    -- * Request Lenses
+    , fcgProFileId
+    , fcgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightConfigurations.get@ method which the
+-- 'FloodlightConfigurationsGet' request conforms to.
+type FloodlightConfigurationsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightConfigurations" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] FloodlightConfiguration
+
+-- | Gets one floodlight configuration by ID.
+--
+-- /See:/ 'floodlightConfigurationsGet' smart constructor.
+data FloodlightConfigurationsGet = FloodlightConfigurationsGet
+    { _fcgProFileId :: !(Textual Int64)
+    , _fcgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightConfigurationsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fcgProFileId'
+--
+-- * 'fcgId'
+floodlightConfigurationsGet
+    :: Int64 -- ^ 'fcgProFileId'
+    -> Int64 -- ^ 'fcgId'
+    -> FloodlightConfigurationsGet
+floodlightConfigurationsGet pFcgProFileId_ pFcgId_ =
+    FloodlightConfigurationsGet
+    { _fcgProFileId = _Coerce # pFcgProFileId_
+    , _fcgId = _Coerce # pFcgId_
+    }
+
+-- | User profile ID associated with this request.
+fcgProFileId :: Lens' FloodlightConfigurationsGet Int64
+fcgProFileId
+  = lens _fcgProFileId (\ s a -> s{_fcgProFileId = a})
+      . _Coerce
+
+-- | Floodlight configuration ID.
+fcgId :: Lens' FloodlightConfigurationsGet Int64
+fcgId
+  = lens _fcgId (\ s a -> s{_fcgId = a}) . _Coerce
+
+instance GoogleRequest FloodlightConfigurationsGet
+         where
+        type Rs FloodlightConfigurationsGet =
+             FloodlightConfiguration
+        requestClient FloodlightConfigurationsGet{..}
+          = go _fcgProFileId _fcgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy FloodlightConfigurationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/List.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/List.hs
@@ -0,0 +1,103 @@
+{-# 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.DFAReporting.FloodlightConfigurations.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of floodlight configurations, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightConfigurations.list@.
+module Network.Google.Resource.DFAReporting.FloodlightConfigurations.List
+    (
+    -- * REST Resource
+      FloodlightConfigurationsListResource
+
+    -- * Creating a Request
+    , floodlightConfigurationsList
+    , FloodlightConfigurationsList
+
+    -- * Request Lenses
+    , fclIds
+    , fclProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightConfigurations.list@ method which the
+-- 'FloodlightConfigurationsList' request conforms to.
+type FloodlightConfigurationsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightConfigurations" :>
+               QueryParams "ids" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] FloodlightConfigurationsListResponse
+
+-- | Retrieves a list of floodlight configurations, possibly filtered.
+--
+-- /See:/ 'floodlightConfigurationsList' smart constructor.
+data FloodlightConfigurationsList = FloodlightConfigurationsList
+    { _fclIds       :: !(Maybe [Textual Int64])
+    , _fclProFileId :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightConfigurationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fclIds'
+--
+-- * 'fclProFileId'
+floodlightConfigurationsList
+    :: Int64 -- ^ 'fclProFileId'
+    -> FloodlightConfigurationsList
+floodlightConfigurationsList pFclProFileId_ =
+    FloodlightConfigurationsList
+    { _fclIds = Nothing
+    , _fclProFileId = _Coerce # pFclProFileId_
+    }
+
+-- | Set of IDs of floodlight configurations to retrieve. Required field;
+-- otherwise an empty list will be returned.
+fclIds :: Lens' FloodlightConfigurationsList [Int64]
+fclIds
+  = lens _fclIds (\ s a -> s{_fclIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+fclProFileId :: Lens' FloodlightConfigurationsList Int64
+fclProFileId
+  = lens _fclProFileId (\ s a -> s{_fclProFileId = a})
+      . _Coerce
+
+instance GoogleRequest FloodlightConfigurationsList
+         where
+        type Rs FloodlightConfigurationsList =
+             FloodlightConfigurationsListResponse
+        requestClient FloodlightConfigurationsList{..}
+          = go _fclProFileId (_fclIds ^. _Default)
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy FloodlightConfigurationsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Patch.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Patch.hs
@@ -0,0 +1,117 @@
+{-# 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.DFAReporting.FloodlightConfigurations.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing floodlight configuration. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightConfigurations.patch@.
+module Network.Google.Resource.DFAReporting.FloodlightConfigurations.Patch
+    (
+    -- * REST Resource
+      FloodlightConfigurationsPatchResource
+
+    -- * Creating a Request
+    , floodlightConfigurationsPatch
+    , FloodlightConfigurationsPatch
+
+    -- * Request Lenses
+    , fcpProFileId
+    , fcpPayload
+    , fcpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightConfigurations.patch@ method which the
+-- 'FloodlightConfigurationsPatch' request conforms to.
+type FloodlightConfigurationsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightConfigurations" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] FloodlightConfiguration :>
+                     Patch '[JSON] FloodlightConfiguration
+
+-- | Updates an existing floodlight configuration. This method supports patch
+-- semantics.
+--
+-- /See:/ 'floodlightConfigurationsPatch' smart constructor.
+data FloodlightConfigurationsPatch = FloodlightConfigurationsPatch
+    { _fcpProFileId :: !(Textual Int64)
+    , _fcpPayload   :: !FloodlightConfiguration
+    , _fcpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightConfigurationsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fcpProFileId'
+--
+-- * 'fcpPayload'
+--
+-- * 'fcpId'
+floodlightConfigurationsPatch
+    :: Int64 -- ^ 'fcpProFileId'
+    -> FloodlightConfiguration -- ^ 'fcpPayload'
+    -> Int64 -- ^ 'fcpId'
+    -> FloodlightConfigurationsPatch
+floodlightConfigurationsPatch pFcpProFileId_ pFcpPayload_ pFcpId_ =
+    FloodlightConfigurationsPatch
+    { _fcpProFileId = _Coerce # pFcpProFileId_
+    , _fcpPayload = pFcpPayload_
+    , _fcpId = _Coerce # pFcpId_
+    }
+
+-- | User profile ID associated with this request.
+fcpProFileId :: Lens' FloodlightConfigurationsPatch Int64
+fcpProFileId
+  = lens _fcpProFileId (\ s a -> s{_fcpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+fcpPayload :: Lens' FloodlightConfigurationsPatch FloodlightConfiguration
+fcpPayload
+  = lens _fcpPayload (\ s a -> s{_fcpPayload = a})
+
+-- | Floodlight configuration ID.
+fcpId :: Lens' FloodlightConfigurationsPatch Int64
+fcpId
+  = lens _fcpId (\ s a -> s{_fcpId = a}) . _Coerce
+
+instance GoogleRequest FloodlightConfigurationsPatch
+         where
+        type Rs FloodlightConfigurationsPatch =
+             FloodlightConfiguration
+        requestClient FloodlightConfigurationsPatch{..}
+          = go _fcpProFileId (Just _fcpId) (Just AltJSON)
+              _fcpPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy FloodlightConfigurationsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Update.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Update.hs
@@ -0,0 +1,102 @@
+{-# 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.DFAReporting.FloodlightConfigurations.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing floodlight configuration.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightConfigurations.update@.
+module Network.Google.Resource.DFAReporting.FloodlightConfigurations.Update
+    (
+    -- * REST Resource
+      FloodlightConfigurationsUpdateResource
+
+    -- * Creating a Request
+    , floodlightConfigurationsUpdate
+    , FloodlightConfigurationsUpdate
+
+    -- * Request Lenses
+    , fcuProFileId
+    , fcuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.floodlightConfigurations.update@ method which the
+-- 'FloodlightConfigurationsUpdate' request conforms to.
+type FloodlightConfigurationsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "floodlightConfigurations" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] FloodlightConfiguration :>
+                   Put '[JSON] FloodlightConfiguration
+
+-- | Updates an existing floodlight configuration.
+--
+-- /See:/ 'floodlightConfigurationsUpdate' smart constructor.
+data FloodlightConfigurationsUpdate = FloodlightConfigurationsUpdate
+    { _fcuProFileId :: !(Textual Int64)
+    , _fcuPayload   :: !FloodlightConfiguration
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightConfigurationsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fcuProFileId'
+--
+-- * 'fcuPayload'
+floodlightConfigurationsUpdate
+    :: Int64 -- ^ 'fcuProFileId'
+    -> FloodlightConfiguration -- ^ 'fcuPayload'
+    -> FloodlightConfigurationsUpdate
+floodlightConfigurationsUpdate pFcuProFileId_ pFcuPayload_ =
+    FloodlightConfigurationsUpdate
+    { _fcuProFileId = _Coerce # pFcuProFileId_
+    , _fcuPayload = pFcuPayload_
+    }
+
+-- | User profile ID associated with this request.
+fcuProFileId :: Lens' FloodlightConfigurationsUpdate Int64
+fcuProFileId
+  = lens _fcuProFileId (\ s a -> s{_fcuProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+fcuPayload :: Lens' FloodlightConfigurationsUpdate FloodlightConfiguration
+fcuPayload
+  = lens _fcuPayload (\ s a -> s{_fcuPayload = a})
+
+instance GoogleRequest FloodlightConfigurationsUpdate
+         where
+        type Rs FloodlightConfigurationsUpdate =
+             FloodlightConfiguration
+        requestClient FloodlightConfigurationsUpdate{..}
+          = go _fcuProFileId (Just AltJSON) _fcuPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy FloodlightConfigurationsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/InventoryItems/Get.hs b/gen/Network/Google/Resource/DFAReporting/InventoryItems/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/InventoryItems/Get.hs
@@ -0,0 +1,113 @@
+{-# 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.DFAReporting.InventoryItems.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one inventory item by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.inventoryItems.get@.
+module Network.Google.Resource.DFAReporting.InventoryItems.Get
+    (
+    -- * REST Resource
+      InventoryItemsGetResource
+
+    -- * Creating a Request
+    , inventoryItemsGet
+    , InventoryItemsGet
+
+    -- * Request Lenses
+    , iigProFileId
+    , iigId
+    , iigProjectId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.inventoryItems.get@ method which the
+-- 'InventoryItemsGet' request conforms to.
+type InventoryItemsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "projects" :>
+               Capture "projectId" (Textual Int64) :>
+                 "inventoryItems" :>
+                   Capture "id" (Textual Int64) :>
+                     QueryParam "alt" AltJSON :> Get '[JSON] InventoryItem
+
+-- | Gets one inventory item by ID.
+--
+-- /See:/ 'inventoryItemsGet' smart constructor.
+data InventoryItemsGet = InventoryItemsGet
+    { _iigProFileId :: !(Textual Int64)
+    , _iigId        :: !(Textual Int64)
+    , _iigProjectId :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InventoryItemsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iigProFileId'
+--
+-- * 'iigId'
+--
+-- * 'iigProjectId'
+inventoryItemsGet
+    :: Int64 -- ^ 'iigProFileId'
+    -> Int64 -- ^ 'iigId'
+    -> Int64 -- ^ 'iigProjectId'
+    -> InventoryItemsGet
+inventoryItemsGet pIigProFileId_ pIigId_ pIigProjectId_ =
+    InventoryItemsGet
+    { _iigProFileId = _Coerce # pIigProFileId_
+    , _iigId = _Coerce # pIigId_
+    , _iigProjectId = _Coerce # pIigProjectId_
+    }
+
+-- | User profile ID associated with this request.
+iigProFileId :: Lens' InventoryItemsGet Int64
+iigProFileId
+  = lens _iigProFileId (\ s a -> s{_iigProFileId = a})
+      . _Coerce
+
+-- | Inventory item ID.
+iigId :: Lens' InventoryItemsGet Int64
+iigId
+  = lens _iigId (\ s a -> s{_iigId = a}) . _Coerce
+
+-- | Project ID for order documents.
+iigProjectId :: Lens' InventoryItemsGet Int64
+iigProjectId
+  = lens _iigProjectId (\ s a -> s{_iigProjectId = a})
+      . _Coerce
+
+instance GoogleRequest InventoryItemsGet where
+        type Rs InventoryItemsGet = InventoryItem
+        requestClient InventoryItemsGet{..}
+          = go _iigProFileId _iigProjectId _iigId
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy InventoryItemsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/InventoryItems/List.hs b/gen/Network/Google/Resource/DFAReporting/InventoryItems/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/InventoryItems/List.hs
@@ -0,0 +1,206 @@
+{-# 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.DFAReporting.InventoryItems.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of inventory items, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.inventoryItems.list@.
+module Network.Google.Resource.DFAReporting.InventoryItems.List
+    (
+    -- * REST Resource
+      InventoryItemsListResource
+
+    -- * Creating a Request
+    , inventoryItemsList
+    , InventoryItemsList
+
+    -- * Request Lenses
+    , iilIds
+    , iilProFileId
+    , iilSortOrder
+    , iilInPlan
+    , iilPageToken
+    , iilProjectId
+    , iilSortField
+    , iilOrderId
+    , iilSiteId
+    , iilMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.inventoryItems.list@ method which the
+-- 'InventoryItemsList' request conforms to.
+type InventoryItemsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "projects" :>
+               Capture "projectId" (Textual Int64) :>
+                 "inventoryItems" :>
+                   QueryParams "ids" (Textual Int64) :>
+                     QueryParam "sortOrder" InventoryItemsListSortOrder :>
+                       QueryParam "inPlan" Bool :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "sortField" InventoryItemsListSortField :>
+                             QueryParams "orderId" (Textual Int64) :>
+                               QueryParams "siteId" (Textual Int64) :>
+                                 QueryParam "maxResults" (Textual Int32) :>
+                                   QueryParam "alt" AltJSON :>
+                                     Get '[JSON] InventoryItemsListResponse
+
+-- | Retrieves a list of inventory items, possibly filtered.
+--
+-- /See:/ 'inventoryItemsList' smart constructor.
+data InventoryItemsList = InventoryItemsList
+    { _iilIds        :: !(Maybe [Textual Int64])
+    , _iilProFileId  :: !(Textual Int64)
+    , _iilSortOrder  :: !(Maybe InventoryItemsListSortOrder)
+    , _iilInPlan     :: !(Maybe Bool)
+    , _iilPageToken  :: !(Maybe Text)
+    , _iilProjectId  :: !(Textual Int64)
+    , _iilSortField  :: !(Maybe InventoryItemsListSortField)
+    , _iilOrderId    :: !(Maybe [Textual Int64])
+    , _iilSiteId     :: !(Maybe [Textual Int64])
+    , _iilMaxResults :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InventoryItemsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iilIds'
+--
+-- * 'iilProFileId'
+--
+-- * 'iilSortOrder'
+--
+-- * 'iilInPlan'
+--
+-- * 'iilPageToken'
+--
+-- * 'iilProjectId'
+--
+-- * 'iilSortField'
+--
+-- * 'iilOrderId'
+--
+-- * 'iilSiteId'
+--
+-- * 'iilMaxResults'
+inventoryItemsList
+    :: Int64 -- ^ 'iilProFileId'
+    -> Int64 -- ^ 'iilProjectId'
+    -> InventoryItemsList
+inventoryItemsList pIilProFileId_ pIilProjectId_ =
+    InventoryItemsList
+    { _iilIds = Nothing
+    , _iilProFileId = _Coerce # pIilProFileId_
+    , _iilSortOrder = Nothing
+    , _iilInPlan = Nothing
+    , _iilPageToken = Nothing
+    , _iilProjectId = _Coerce # pIilProjectId_
+    , _iilSortField = Nothing
+    , _iilOrderId = Nothing
+    , _iilSiteId = Nothing
+    , _iilMaxResults = Nothing
+    }
+
+-- | Select only inventory items with these IDs.
+iilIds :: Lens' InventoryItemsList [Int64]
+iilIds
+  = lens _iilIds (\ s a -> s{_iilIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+iilProFileId :: Lens' InventoryItemsList Int64
+iilProFileId
+  = lens _iilProFileId (\ s a -> s{_iilProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+iilSortOrder :: Lens' InventoryItemsList (Maybe InventoryItemsListSortOrder)
+iilSortOrder
+  = lens _iilSortOrder (\ s a -> s{_iilSortOrder = a})
+
+-- | Select only inventory items that are in plan.
+iilInPlan :: Lens' InventoryItemsList (Maybe Bool)
+iilInPlan
+  = lens _iilInPlan (\ s a -> s{_iilInPlan = a})
+
+-- | Value of the nextPageToken from the previous result page.
+iilPageToken :: Lens' InventoryItemsList (Maybe Text)
+iilPageToken
+  = lens _iilPageToken (\ s a -> s{_iilPageToken = a})
+
+-- | Project ID for order documents.
+iilProjectId :: Lens' InventoryItemsList Int64
+iilProjectId
+  = lens _iilProjectId (\ s a -> s{_iilProjectId = a})
+      . _Coerce
+
+-- | Field by which to sort the list.
+iilSortField :: Lens' InventoryItemsList (Maybe InventoryItemsListSortField)
+iilSortField
+  = lens _iilSortField (\ s a -> s{_iilSortField = a})
+
+-- | Select only inventory items that belong to specified orders.
+iilOrderId :: Lens' InventoryItemsList [Int64]
+iilOrderId
+  = lens _iilOrderId (\ s a -> s{_iilOrderId = a}) .
+      _Default
+      . _Coerce
+
+-- | Select only inventory items that are associated with these sites.
+iilSiteId :: Lens' InventoryItemsList [Int64]
+iilSiteId
+  = lens _iilSiteId (\ s a -> s{_iilSiteId = a}) .
+      _Default
+      . _Coerce
+
+-- | Maximum number of results to return.
+iilMaxResults :: Lens' InventoryItemsList (Maybe Int32)
+iilMaxResults
+  = lens _iilMaxResults
+      (\ s a -> s{_iilMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest InventoryItemsList where
+        type Rs InventoryItemsList =
+             InventoryItemsListResponse
+        requestClient InventoryItemsList{..}
+          = go _iilProFileId _iilProjectId
+              (_iilIds ^. _Default)
+              _iilSortOrder
+              _iilInPlan
+              _iilPageToken
+              _iilSortField
+              (_iilOrderId ^. _Default)
+              (_iilSiteId ^. _Default)
+              _iilMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy InventoryItemsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/Delete.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/Delete.hs
@@ -0,0 +1,114 @@
+{-# 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.DFAReporting.LandingPages.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing campaign landing page.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.landingPages.delete@.
+module Network.Google.Resource.DFAReporting.LandingPages.Delete
+    (
+    -- * REST Resource
+      LandingPagesDeleteResource
+
+    -- * Creating a Request
+    , landingPagesDelete
+    , LandingPagesDelete
+
+    -- * Request Lenses
+    , lpdCampaignId
+    , lpdProFileId
+    , lpdId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.landingPages.delete@ method which the
+-- 'LandingPagesDelete' request conforms to.
+type LandingPagesDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               Capture "campaignId" (Textual Int64) :>
+                 "landingPages" :>
+                   Capture "id" (Textual Int64) :>
+                     QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing campaign landing page.
+--
+-- /See:/ 'landingPagesDelete' smart constructor.
+data LandingPagesDelete = LandingPagesDelete
+    { _lpdCampaignId :: !(Textual Int64)
+    , _lpdProFileId  :: !(Textual Int64)
+    , _lpdId         :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LandingPagesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpdCampaignId'
+--
+-- * 'lpdProFileId'
+--
+-- * 'lpdId'
+landingPagesDelete
+    :: Int64 -- ^ 'lpdCampaignId'
+    -> Int64 -- ^ 'lpdProFileId'
+    -> Int64 -- ^ 'lpdId'
+    -> LandingPagesDelete
+landingPagesDelete pLpdCampaignId_ pLpdProFileId_ pLpdId_ =
+    LandingPagesDelete
+    { _lpdCampaignId = _Coerce # pLpdCampaignId_
+    , _lpdProFileId = _Coerce # pLpdProFileId_
+    , _lpdId = _Coerce # pLpdId_
+    }
+
+-- | Landing page campaign ID.
+lpdCampaignId :: Lens' LandingPagesDelete Int64
+lpdCampaignId
+  = lens _lpdCampaignId
+      (\ s a -> s{_lpdCampaignId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+lpdProFileId :: Lens' LandingPagesDelete Int64
+lpdProFileId
+  = lens _lpdProFileId (\ s a -> s{_lpdProFileId = a})
+      . _Coerce
+
+-- | Landing page ID.
+lpdId :: Lens' LandingPagesDelete Int64
+lpdId
+  = lens _lpdId (\ s a -> s{_lpdId = a}) . _Coerce
+
+instance GoogleRequest LandingPagesDelete where
+        type Rs LandingPagesDelete = ()
+        requestClient LandingPagesDelete{..}
+          = go _lpdProFileId _lpdCampaignId _lpdId
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy LandingPagesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/Get.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/Get.hs
@@ -0,0 +1,114 @@
+{-# 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.DFAReporting.LandingPages.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one campaign landing page by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.landingPages.get@.
+module Network.Google.Resource.DFAReporting.LandingPages.Get
+    (
+    -- * REST Resource
+      LandingPagesGetResource
+
+    -- * Creating a Request
+    , landingPagesGet
+    , LandingPagesGet
+
+    -- * Request Lenses
+    , lpgCampaignId
+    , lpgProFileId
+    , lpgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.landingPages.get@ method which the
+-- 'LandingPagesGet' request conforms to.
+type LandingPagesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               Capture "campaignId" (Textual Int64) :>
+                 "landingPages" :>
+                   Capture "id" (Textual Int64) :>
+                     QueryParam "alt" AltJSON :> Get '[JSON] LandingPage
+
+-- | Gets one campaign landing page by ID.
+--
+-- /See:/ 'landingPagesGet' smart constructor.
+data LandingPagesGet = LandingPagesGet
+    { _lpgCampaignId :: !(Textual Int64)
+    , _lpgProFileId  :: !(Textual Int64)
+    , _lpgId         :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LandingPagesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpgCampaignId'
+--
+-- * 'lpgProFileId'
+--
+-- * 'lpgId'
+landingPagesGet
+    :: Int64 -- ^ 'lpgCampaignId'
+    -> Int64 -- ^ 'lpgProFileId'
+    -> Int64 -- ^ 'lpgId'
+    -> LandingPagesGet
+landingPagesGet pLpgCampaignId_ pLpgProFileId_ pLpgId_ =
+    LandingPagesGet
+    { _lpgCampaignId = _Coerce # pLpgCampaignId_
+    , _lpgProFileId = _Coerce # pLpgProFileId_
+    , _lpgId = _Coerce # pLpgId_
+    }
+
+-- | Landing page campaign ID.
+lpgCampaignId :: Lens' LandingPagesGet Int64
+lpgCampaignId
+  = lens _lpgCampaignId
+      (\ s a -> s{_lpgCampaignId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+lpgProFileId :: Lens' LandingPagesGet Int64
+lpgProFileId
+  = lens _lpgProFileId (\ s a -> s{_lpgProFileId = a})
+      . _Coerce
+
+-- | Landing page ID.
+lpgId :: Lens' LandingPagesGet Int64
+lpgId
+  = lens _lpgId (\ s a -> s{_lpgId = a}) . _Coerce
+
+instance GoogleRequest LandingPagesGet where
+        type Rs LandingPagesGet = LandingPage
+        requestClient LandingPagesGet{..}
+          = go _lpgProFileId _lpgCampaignId _lpgId
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy LandingPagesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/Insert.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/Insert.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.LandingPages.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new landing page for the specified campaign.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.landingPages.insert@.
+module Network.Google.Resource.DFAReporting.LandingPages.Insert
+    (
+    -- * REST Resource
+      LandingPagesInsertResource
+
+    -- * Creating a Request
+    , landingPagesInsert
+    , LandingPagesInsert
+
+    -- * Request Lenses
+    , lpiCampaignId
+    , lpiProFileId
+    , lpiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.landingPages.insert@ method which the
+-- 'LandingPagesInsert' request conforms to.
+type LandingPagesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               Capture "campaignId" (Textual Int64) :>
+                 "landingPages" :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] LandingPage :>
+                       Post '[JSON] LandingPage
+
+-- | Inserts a new landing page for the specified campaign.
+--
+-- /See:/ 'landingPagesInsert' smart constructor.
+data LandingPagesInsert = LandingPagesInsert
+    { _lpiCampaignId :: !(Textual Int64)
+    , _lpiProFileId  :: !(Textual Int64)
+    , _lpiPayload    :: !LandingPage
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LandingPagesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpiCampaignId'
+--
+-- * 'lpiProFileId'
+--
+-- * 'lpiPayload'
+landingPagesInsert
+    :: Int64 -- ^ 'lpiCampaignId'
+    -> Int64 -- ^ 'lpiProFileId'
+    -> LandingPage -- ^ 'lpiPayload'
+    -> LandingPagesInsert
+landingPagesInsert pLpiCampaignId_ pLpiProFileId_ pLpiPayload_ =
+    LandingPagesInsert
+    { _lpiCampaignId = _Coerce # pLpiCampaignId_
+    , _lpiProFileId = _Coerce # pLpiProFileId_
+    , _lpiPayload = pLpiPayload_
+    }
+
+-- | Landing page campaign ID.
+lpiCampaignId :: Lens' LandingPagesInsert Int64
+lpiCampaignId
+  = lens _lpiCampaignId
+      (\ s a -> s{_lpiCampaignId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+lpiProFileId :: Lens' LandingPagesInsert Int64
+lpiProFileId
+  = lens _lpiProFileId (\ s a -> s{_lpiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+lpiPayload :: Lens' LandingPagesInsert LandingPage
+lpiPayload
+  = lens _lpiPayload (\ s a -> s{_lpiPayload = a})
+
+instance GoogleRequest LandingPagesInsert where
+        type Rs LandingPagesInsert = LandingPage
+        requestClient LandingPagesInsert{..}
+          = go _lpiProFileId _lpiCampaignId (Just AltJSON)
+              _lpiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy LandingPagesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/List.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/List.hs
@@ -0,0 +1,102 @@
+{-# 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.DFAReporting.LandingPages.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of landing pages for the specified campaign.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.landingPages.list@.
+module Network.Google.Resource.DFAReporting.LandingPages.List
+    (
+    -- * REST Resource
+      LandingPagesListResource
+
+    -- * Creating a Request
+    , landingPagesList
+    , LandingPagesList
+
+    -- * Request Lenses
+    , lplCampaignId
+    , lplProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.landingPages.list@ method which the
+-- 'LandingPagesList' request conforms to.
+type LandingPagesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               Capture "campaignId" (Textual Int64) :>
+                 "landingPages" :>
+                   QueryParam "alt" AltJSON :>
+                     Get '[JSON] LandingPagesListResponse
+
+-- | Retrieves the list of landing pages for the specified campaign.
+--
+-- /See:/ 'landingPagesList' smart constructor.
+data LandingPagesList = LandingPagesList
+    { _lplCampaignId :: !(Textual Int64)
+    , _lplProFileId  :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LandingPagesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lplCampaignId'
+--
+-- * 'lplProFileId'
+landingPagesList
+    :: Int64 -- ^ 'lplCampaignId'
+    -> Int64 -- ^ 'lplProFileId'
+    -> LandingPagesList
+landingPagesList pLplCampaignId_ pLplProFileId_ =
+    LandingPagesList
+    { _lplCampaignId = _Coerce # pLplCampaignId_
+    , _lplProFileId = _Coerce # pLplProFileId_
+    }
+
+-- | Landing page campaign ID.
+lplCampaignId :: Lens' LandingPagesList Int64
+lplCampaignId
+  = lens _lplCampaignId
+      (\ s a -> s{_lplCampaignId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+lplProFileId :: Lens' LandingPagesList Int64
+lplProFileId
+  = lens _lplProFileId (\ s a -> s{_lplProFileId = a})
+      . _Coerce
+
+instance GoogleRequest LandingPagesList where
+        type Rs LandingPagesList = LandingPagesListResponse
+        requestClient LandingPagesList{..}
+          = go _lplProFileId _lplCampaignId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy LandingPagesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/Patch.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/Patch.hs
@@ -0,0 +1,130 @@
+{-# 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.DFAReporting.LandingPages.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing campaign landing page. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.landingPages.patch@.
+module Network.Google.Resource.DFAReporting.LandingPages.Patch
+    (
+    -- * REST Resource
+      LandingPagesPatchResource
+
+    -- * Creating a Request
+    , landingPagesPatch
+    , LandingPagesPatch
+
+    -- * Request Lenses
+    , lppCampaignId
+    , lppProFileId
+    , lppPayload
+    , lppId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.landingPages.patch@ method which the
+-- 'LandingPagesPatch' request conforms to.
+type LandingPagesPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               Capture "campaignId" (Textual Int64) :>
+                 "landingPages" :>
+                   QueryParam "id" (Textual Int64) :>
+                     QueryParam "alt" AltJSON :>
+                       ReqBody '[JSON] LandingPage :>
+                         Patch '[JSON] LandingPage
+
+-- | Updates an existing campaign landing page. This method supports patch
+-- semantics.
+--
+-- /See:/ 'landingPagesPatch' smart constructor.
+data LandingPagesPatch = LandingPagesPatch
+    { _lppCampaignId :: !(Textual Int64)
+    , _lppProFileId  :: !(Textual Int64)
+    , _lppPayload    :: !LandingPage
+    , _lppId         :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LandingPagesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lppCampaignId'
+--
+-- * 'lppProFileId'
+--
+-- * 'lppPayload'
+--
+-- * 'lppId'
+landingPagesPatch
+    :: Int64 -- ^ 'lppCampaignId'
+    -> Int64 -- ^ 'lppProFileId'
+    -> LandingPage -- ^ 'lppPayload'
+    -> Int64 -- ^ 'lppId'
+    -> LandingPagesPatch
+landingPagesPatch pLppCampaignId_ pLppProFileId_ pLppPayload_ pLppId_ =
+    LandingPagesPatch
+    { _lppCampaignId = _Coerce # pLppCampaignId_
+    , _lppProFileId = _Coerce # pLppProFileId_
+    , _lppPayload = pLppPayload_
+    , _lppId = _Coerce # pLppId_
+    }
+
+-- | Landing page campaign ID.
+lppCampaignId :: Lens' LandingPagesPatch Int64
+lppCampaignId
+  = lens _lppCampaignId
+      (\ s a -> s{_lppCampaignId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+lppProFileId :: Lens' LandingPagesPatch Int64
+lppProFileId
+  = lens _lppProFileId (\ s a -> s{_lppProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+lppPayload :: Lens' LandingPagesPatch LandingPage
+lppPayload
+  = lens _lppPayload (\ s a -> s{_lppPayload = a})
+
+-- | Landing page ID.
+lppId :: Lens' LandingPagesPatch Int64
+lppId
+  = lens _lppId (\ s a -> s{_lppId = a}) . _Coerce
+
+instance GoogleRequest LandingPagesPatch where
+        type Rs LandingPagesPatch = LandingPage
+        requestClient LandingPagesPatch{..}
+          = go _lppProFileId _lppCampaignId (Just _lppId)
+              (Just AltJSON)
+              _lppPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy LandingPagesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/Update.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/Update.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.LandingPages.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing campaign landing page.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.landingPages.update@.
+module Network.Google.Resource.DFAReporting.LandingPages.Update
+    (
+    -- * REST Resource
+      LandingPagesUpdateResource
+
+    -- * Creating a Request
+    , landingPagesUpdate
+    , LandingPagesUpdate
+
+    -- * Request Lenses
+    , lpuCampaignId
+    , lpuProFileId
+    , lpuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.landingPages.update@ method which the
+-- 'LandingPagesUpdate' request conforms to.
+type LandingPagesUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "campaigns" :>
+               Capture "campaignId" (Textual Int64) :>
+                 "landingPages" :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] LandingPage :>
+                       Put '[JSON] LandingPage
+
+-- | Updates an existing campaign landing page.
+--
+-- /See:/ 'landingPagesUpdate' smart constructor.
+data LandingPagesUpdate = LandingPagesUpdate
+    { _lpuCampaignId :: !(Textual Int64)
+    , _lpuProFileId  :: !(Textual Int64)
+    , _lpuPayload    :: !LandingPage
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LandingPagesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpuCampaignId'
+--
+-- * 'lpuProFileId'
+--
+-- * 'lpuPayload'
+landingPagesUpdate
+    :: Int64 -- ^ 'lpuCampaignId'
+    -> Int64 -- ^ 'lpuProFileId'
+    -> LandingPage -- ^ 'lpuPayload'
+    -> LandingPagesUpdate
+landingPagesUpdate pLpuCampaignId_ pLpuProFileId_ pLpuPayload_ =
+    LandingPagesUpdate
+    { _lpuCampaignId = _Coerce # pLpuCampaignId_
+    , _lpuProFileId = _Coerce # pLpuProFileId_
+    , _lpuPayload = pLpuPayload_
+    }
+
+-- | Landing page campaign ID.
+lpuCampaignId :: Lens' LandingPagesUpdate Int64
+lpuCampaignId
+  = lens _lpuCampaignId
+      (\ s a -> s{_lpuCampaignId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+lpuProFileId :: Lens' LandingPagesUpdate Int64
+lpuProFileId
+  = lens _lpuProFileId (\ s a -> s{_lpuProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+lpuPayload :: Lens' LandingPagesUpdate LandingPage
+lpuPayload
+  = lens _lpuPayload (\ s a -> s{_lpuPayload = a})
+
+instance GoogleRequest LandingPagesUpdate where
+        type Rs LandingPagesUpdate = LandingPage
+        requestClient LandingPagesUpdate{..}
+          = go _lpuProFileId _lpuCampaignId (Just AltJSON)
+              _lpuPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy LandingPagesUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Metros/List.hs b/gen/Network/Google/Resource/DFAReporting/Metros/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Metros/List.hs
@@ -0,0 +1,85 @@
+{-# 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.DFAReporting.Metros.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of metros.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.metros.list@.
+module Network.Google.Resource.DFAReporting.Metros.List
+    (
+    -- * REST Resource
+      MetrosListResource
+
+    -- * Creating a Request
+    , metrosList
+    , MetrosList
+
+    -- * Request Lenses
+    , mlProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.metros.list@ method which the
+-- 'MetrosList' request conforms to.
+type MetrosListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "metros" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] MetrosListResponse
+
+-- | Retrieves a list of metros.
+--
+-- /See:/ 'metrosList' smart constructor.
+newtype MetrosList = MetrosList
+    { _mlProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MetrosList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mlProFileId'
+metrosList
+    :: Int64 -- ^ 'mlProFileId'
+    -> MetrosList
+metrosList pMlProFileId_ =
+    MetrosList
+    { _mlProFileId = _Coerce # pMlProFileId_
+    }
+
+-- | User profile ID associated with this request.
+mlProFileId :: Lens' MetrosList Int64
+mlProFileId
+  = lens _mlProFileId (\ s a -> s{_mlProFileId = a}) .
+      _Coerce
+
+instance GoogleRequest MetrosList where
+        type Rs MetrosList = MetrosListResponse
+        requestClient MetrosList{..}
+          = go _mlProFileId (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy MetrosListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/MobileCarriers/Get.hs b/gen/Network/Google/Resource/DFAReporting/MobileCarriers/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/MobileCarriers/Get.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.MobileCarriers.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one mobile carrier by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.mobileCarriers.get@.
+module Network.Google.Resource.DFAReporting.MobileCarriers.Get
+    (
+    -- * REST Resource
+      MobileCarriersGetResource
+
+    -- * Creating a Request
+    , mobileCarriersGet
+    , MobileCarriersGet
+
+    -- * Request Lenses
+    , mcgProFileId
+    , mcgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.mobileCarriers.get@ method which the
+-- 'MobileCarriersGet' request conforms to.
+type MobileCarriersGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "mobileCarriers" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] MobileCarrier
+
+-- | Gets one mobile carrier by ID.
+--
+-- /See:/ 'mobileCarriersGet' smart constructor.
+data MobileCarriersGet = MobileCarriersGet
+    { _mcgProFileId :: !(Textual Int64)
+    , _mcgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MobileCarriersGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mcgProFileId'
+--
+-- * 'mcgId'
+mobileCarriersGet
+    :: Int64 -- ^ 'mcgProFileId'
+    -> Int64 -- ^ 'mcgId'
+    -> MobileCarriersGet
+mobileCarriersGet pMcgProFileId_ pMcgId_ =
+    MobileCarriersGet
+    { _mcgProFileId = _Coerce # pMcgProFileId_
+    , _mcgId = _Coerce # pMcgId_
+    }
+
+-- | User profile ID associated with this request.
+mcgProFileId :: Lens' MobileCarriersGet Int64
+mcgProFileId
+  = lens _mcgProFileId (\ s a -> s{_mcgProFileId = a})
+      . _Coerce
+
+-- | Mobile carrier ID.
+mcgId :: Lens' MobileCarriersGet Int64
+mcgId
+  = lens _mcgId (\ s a -> s{_mcgId = a}) . _Coerce
+
+instance GoogleRequest MobileCarriersGet where
+        type Rs MobileCarriersGet = MobileCarrier
+        requestClient MobileCarriersGet{..}
+          = go _mcgProFileId _mcgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy MobileCarriersGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/MobileCarriers/List.hs b/gen/Network/Google/Resource/DFAReporting/MobileCarriers/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/MobileCarriers/List.hs
@@ -0,0 +1,87 @@
+{-# 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.DFAReporting.MobileCarriers.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of mobile carriers.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.mobileCarriers.list@.
+module Network.Google.Resource.DFAReporting.MobileCarriers.List
+    (
+    -- * REST Resource
+      MobileCarriersListResource
+
+    -- * Creating a Request
+    , mobileCarriersList
+    , MobileCarriersList
+
+    -- * Request Lenses
+    , mclProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.mobileCarriers.list@ method which the
+-- 'MobileCarriersList' request conforms to.
+type MobileCarriersListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "mobileCarriers" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] MobileCarriersListResponse
+
+-- | Retrieves a list of mobile carriers.
+--
+-- /See:/ 'mobileCarriersList' smart constructor.
+newtype MobileCarriersList = MobileCarriersList
+    { _mclProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MobileCarriersList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mclProFileId'
+mobileCarriersList
+    :: Int64 -- ^ 'mclProFileId'
+    -> MobileCarriersList
+mobileCarriersList pMclProFileId_ =
+    MobileCarriersList
+    { _mclProFileId = _Coerce # pMclProFileId_
+    }
+
+-- | User profile ID associated with this request.
+mclProFileId :: Lens' MobileCarriersList Int64
+mclProFileId
+  = lens _mclProFileId (\ s a -> s{_mclProFileId = a})
+      . _Coerce
+
+instance GoogleRequest MobileCarriersList where
+        type Rs MobileCarriersList =
+             MobileCarriersListResponse
+        requestClient MobileCarriersList{..}
+          = go _mclProFileId (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy MobileCarriersListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/Get.hs b/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/Get.hs
@@ -0,0 +1,102 @@
+{-# 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.DFAReporting.OperatingSystemVersions.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one operating system version by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.operatingSystemVersions.get@.
+module Network.Google.Resource.DFAReporting.OperatingSystemVersions.Get
+    (
+    -- * REST Resource
+      OperatingSystemVersionsGetResource
+
+    -- * Creating a Request
+    , operatingSystemVersionsGet
+    , OperatingSystemVersionsGet
+
+    -- * Request Lenses
+    , osvgProFileId
+    , osvgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.operatingSystemVersions.get@ method which the
+-- 'OperatingSystemVersionsGet' request conforms to.
+type OperatingSystemVersionsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "operatingSystemVersions" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] OperatingSystemVersion
+
+-- | Gets one operating system version by ID.
+--
+-- /See:/ 'operatingSystemVersionsGet' smart constructor.
+data OperatingSystemVersionsGet = OperatingSystemVersionsGet
+    { _osvgProFileId :: !(Textual Int64)
+    , _osvgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemVersionsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osvgProFileId'
+--
+-- * 'osvgId'
+operatingSystemVersionsGet
+    :: Int64 -- ^ 'osvgProFileId'
+    -> Int64 -- ^ 'osvgId'
+    -> OperatingSystemVersionsGet
+operatingSystemVersionsGet pOsvgProFileId_ pOsvgId_ =
+    OperatingSystemVersionsGet
+    { _osvgProFileId = _Coerce # pOsvgProFileId_
+    , _osvgId = _Coerce # pOsvgId_
+    }
+
+-- | User profile ID associated with this request.
+osvgProFileId :: Lens' OperatingSystemVersionsGet Int64
+osvgProFileId
+  = lens _osvgProFileId
+      (\ s a -> s{_osvgProFileId = a})
+      . _Coerce
+
+-- | Operating system version ID.
+osvgId :: Lens' OperatingSystemVersionsGet Int64
+osvgId
+  = lens _osvgId (\ s a -> s{_osvgId = a}) . _Coerce
+
+instance GoogleRequest OperatingSystemVersionsGet
+         where
+        type Rs OperatingSystemVersionsGet =
+             OperatingSystemVersion
+        requestClient OperatingSystemVersionsGet{..}
+          = go _osvgProFileId _osvgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy OperatingSystemVersionsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/List.hs b/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/List.hs
@@ -0,0 +1,90 @@
+{-# 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.DFAReporting.OperatingSystemVersions.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of operating system versions.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.operatingSystemVersions.list@.
+module Network.Google.Resource.DFAReporting.OperatingSystemVersions.List
+    (
+    -- * REST Resource
+      OperatingSystemVersionsListResource
+
+    -- * Creating a Request
+    , operatingSystemVersionsList
+    , OperatingSystemVersionsList
+
+    -- * Request Lenses
+    , osvlProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.operatingSystemVersions.list@ method which the
+-- 'OperatingSystemVersionsList' request conforms to.
+type OperatingSystemVersionsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "operatingSystemVersions" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] OperatingSystemVersionsListResponse
+
+-- | Retrieves a list of operating system versions.
+--
+-- /See:/ 'operatingSystemVersionsList' smart constructor.
+newtype OperatingSystemVersionsList = OperatingSystemVersionsList
+    { _osvlProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemVersionsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osvlProFileId'
+operatingSystemVersionsList
+    :: Int64 -- ^ 'osvlProFileId'
+    -> OperatingSystemVersionsList
+operatingSystemVersionsList pOsvlProFileId_ =
+    OperatingSystemVersionsList
+    { _osvlProFileId = _Coerce # pOsvlProFileId_
+    }
+
+-- | User profile ID associated with this request.
+osvlProFileId :: Lens' OperatingSystemVersionsList Int64
+osvlProFileId
+  = lens _osvlProFileId
+      (\ s a -> s{_osvlProFileId = a})
+      . _Coerce
+
+instance GoogleRequest OperatingSystemVersionsList
+         where
+        type Rs OperatingSystemVersionsList =
+             OperatingSystemVersionsListResponse
+        requestClient OperatingSystemVersionsList{..}
+          = go _osvlProFileId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy OperatingSystemVersionsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/OperatingSystems/Get.hs b/gen/Network/Google/Resource/DFAReporting/OperatingSystems/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/OperatingSystems/Get.hs
@@ -0,0 +1,100 @@
+{-# 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.DFAReporting.OperatingSystems.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one operating system by DART ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.operatingSystems.get@.
+module Network.Google.Resource.DFAReporting.OperatingSystems.Get
+    (
+    -- * REST Resource
+      OperatingSystemsGetResource
+
+    -- * Creating a Request
+    , operatingSystemsGet
+    , OperatingSystemsGet
+
+    -- * Request Lenses
+    , osgProFileId
+    , osgDartId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.operatingSystems.get@ method which the
+-- 'OperatingSystemsGet' request conforms to.
+type OperatingSystemsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "operatingSystems" :>
+               Capture "dartId" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] OperatingSystem
+
+-- | Gets one operating system by DART ID.
+--
+-- /See:/ 'operatingSystemsGet' smart constructor.
+data OperatingSystemsGet = OperatingSystemsGet
+    { _osgProFileId :: !(Textual Int64)
+    , _osgDartId    :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osgProFileId'
+--
+-- * 'osgDartId'
+operatingSystemsGet
+    :: Int64 -- ^ 'osgProFileId'
+    -> Int64 -- ^ 'osgDartId'
+    -> OperatingSystemsGet
+operatingSystemsGet pOsgProFileId_ pOsgDartId_ =
+    OperatingSystemsGet
+    { _osgProFileId = _Coerce # pOsgProFileId_
+    , _osgDartId = _Coerce # pOsgDartId_
+    }
+
+-- | User profile ID associated with this request.
+osgProFileId :: Lens' OperatingSystemsGet Int64
+osgProFileId
+  = lens _osgProFileId (\ s a -> s{_osgProFileId = a})
+      . _Coerce
+
+-- | Operating system DART ID.
+osgDartId :: Lens' OperatingSystemsGet Int64
+osgDartId
+  = lens _osgDartId (\ s a -> s{_osgDartId = a}) .
+      _Coerce
+
+instance GoogleRequest OperatingSystemsGet where
+        type Rs OperatingSystemsGet = OperatingSystem
+        requestClient OperatingSystemsGet{..}
+          = go _osgProFileId _osgDartId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy OperatingSystemsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/OperatingSystems/List.hs b/gen/Network/Google/Resource/DFAReporting/OperatingSystems/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/OperatingSystems/List.hs
@@ -0,0 +1,87 @@
+{-# 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.DFAReporting.OperatingSystems.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of operating systems.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.operatingSystems.list@.
+module Network.Google.Resource.DFAReporting.OperatingSystems.List
+    (
+    -- * REST Resource
+      OperatingSystemsListResource
+
+    -- * Creating a Request
+    , operatingSystemsList
+    , OperatingSystemsList
+
+    -- * Request Lenses
+    , oslProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.operatingSystems.list@ method which the
+-- 'OperatingSystemsList' request conforms to.
+type OperatingSystemsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "operatingSystems" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] OperatingSystemsListResponse
+
+-- | Retrieves a list of operating systems.
+--
+-- /See:/ 'operatingSystemsList' smart constructor.
+newtype OperatingSystemsList = OperatingSystemsList
+    { _oslProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'oslProFileId'
+operatingSystemsList
+    :: Int64 -- ^ 'oslProFileId'
+    -> OperatingSystemsList
+operatingSystemsList pOslProFileId_ =
+    OperatingSystemsList
+    { _oslProFileId = _Coerce # pOslProFileId_
+    }
+
+-- | User profile ID associated with this request.
+oslProFileId :: Lens' OperatingSystemsList Int64
+oslProFileId
+  = lens _oslProFileId (\ s a -> s{_oslProFileId = a})
+      . _Coerce
+
+instance GoogleRequest OperatingSystemsList where
+        type Rs OperatingSystemsList =
+             OperatingSystemsListResponse
+        requestClient OperatingSystemsList{..}
+          = go _oslProFileId (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy OperatingSystemsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/OrderDocuments/Get.hs b/gen/Network/Google/Resource/DFAReporting/OrderDocuments/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/OrderDocuments/Get.hs
@@ -0,0 +1,113 @@
+{-# 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.DFAReporting.OrderDocuments.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one order document by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.orderDocuments.get@.
+module Network.Google.Resource.DFAReporting.OrderDocuments.Get
+    (
+    -- * REST Resource
+      OrderDocumentsGetResource
+
+    -- * Creating a Request
+    , orderDocumentsGet
+    , OrderDocumentsGet
+
+    -- * Request Lenses
+    , odgProFileId
+    , odgId
+    , odgProjectId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.orderDocuments.get@ method which the
+-- 'OrderDocumentsGet' request conforms to.
+type OrderDocumentsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "projects" :>
+               Capture "projectId" (Textual Int64) :>
+                 "orderDocuments" :>
+                   Capture "id" (Textual Int64) :>
+                     QueryParam "alt" AltJSON :> Get '[JSON] OrderDocument
+
+-- | Gets one order document by ID.
+--
+-- /See:/ 'orderDocumentsGet' smart constructor.
+data OrderDocumentsGet = OrderDocumentsGet
+    { _odgProFileId :: !(Textual Int64)
+    , _odgId        :: !(Textual Int64)
+    , _odgProjectId :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrderDocumentsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'odgProFileId'
+--
+-- * 'odgId'
+--
+-- * 'odgProjectId'
+orderDocumentsGet
+    :: Int64 -- ^ 'odgProFileId'
+    -> Int64 -- ^ 'odgId'
+    -> Int64 -- ^ 'odgProjectId'
+    -> OrderDocumentsGet
+orderDocumentsGet pOdgProFileId_ pOdgId_ pOdgProjectId_ =
+    OrderDocumentsGet
+    { _odgProFileId = _Coerce # pOdgProFileId_
+    , _odgId = _Coerce # pOdgId_
+    , _odgProjectId = _Coerce # pOdgProjectId_
+    }
+
+-- | User profile ID associated with this request.
+odgProFileId :: Lens' OrderDocumentsGet Int64
+odgProFileId
+  = lens _odgProFileId (\ s a -> s{_odgProFileId = a})
+      . _Coerce
+
+-- | Order document ID.
+odgId :: Lens' OrderDocumentsGet Int64
+odgId
+  = lens _odgId (\ s a -> s{_odgId = a}) . _Coerce
+
+-- | Project ID for order documents.
+odgProjectId :: Lens' OrderDocumentsGet Int64
+odgProjectId
+  = lens _odgProjectId (\ s a -> s{_odgProjectId = a})
+      . _Coerce
+
+instance GoogleRequest OrderDocumentsGet where
+        type Rs OrderDocumentsGet = OrderDocument
+        requestClient OrderDocumentsGet{..}
+          = go _odgProFileId _odgProjectId _odgId
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy OrderDocumentsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/OrderDocuments/List.hs b/gen/Network/Google/Resource/DFAReporting/OrderDocuments/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/OrderDocuments/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.DFAReporting.OrderDocuments.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of order documents, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.orderDocuments.list@.
+module Network.Google.Resource.DFAReporting.OrderDocuments.List
+    (
+    -- * REST Resource
+      OrderDocumentsListResource
+
+    -- * Creating a Request
+    , orderDocumentsList
+    , OrderDocumentsList
+
+    -- * Request Lenses
+    , odlSearchString
+    , odlIds
+    , odlProFileId
+    , odlSortOrder
+    , odlPageToken
+    , odlProjectId
+    , odlSortField
+    , odlOrderId
+    , odlApproved
+    , odlSiteId
+    , odlMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.orderDocuments.list@ method which the
+-- 'OrderDocumentsList' request conforms to.
+type OrderDocumentsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "projects" :>
+               Capture "projectId" (Textual Int64) :>
+                 "orderDocuments" :>
+                   QueryParam "searchString" Text :>
+                     QueryParams "ids" (Textual Int64) :>
+                       QueryParam "sortOrder" OrderDocumentsListSortOrder :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "sortField" OrderDocumentsListSortField :>
+                             QueryParams "orderId" (Textual Int64) :>
+                               QueryParam "approved" Bool :>
+                                 QueryParams "siteId" (Textual Int64) :>
+                                   QueryParam "maxResults" (Textual Int32) :>
+                                     QueryParam "alt" AltJSON :>
+                                       Get '[JSON] OrderDocumentsListResponse
+
+-- | Retrieves a list of order documents, possibly filtered.
+--
+-- /See:/ 'orderDocumentsList' smart constructor.
+data OrderDocumentsList = OrderDocumentsList
+    { _odlSearchString :: !(Maybe Text)
+    , _odlIds          :: !(Maybe [Textual Int64])
+    , _odlProFileId    :: !(Textual Int64)
+    , _odlSortOrder    :: !(Maybe OrderDocumentsListSortOrder)
+    , _odlPageToken    :: !(Maybe Text)
+    , _odlProjectId    :: !(Textual Int64)
+    , _odlSortField    :: !(Maybe OrderDocumentsListSortField)
+    , _odlOrderId      :: !(Maybe [Textual Int64])
+    , _odlApproved     :: !(Maybe Bool)
+    , _odlSiteId       :: !(Maybe [Textual Int64])
+    , _odlMaxResults   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrderDocumentsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'odlSearchString'
+--
+-- * 'odlIds'
+--
+-- * 'odlProFileId'
+--
+-- * 'odlSortOrder'
+--
+-- * 'odlPageToken'
+--
+-- * 'odlProjectId'
+--
+-- * 'odlSortField'
+--
+-- * 'odlOrderId'
+--
+-- * 'odlApproved'
+--
+-- * 'odlSiteId'
+--
+-- * 'odlMaxResults'
+orderDocumentsList
+    :: Int64 -- ^ 'odlProFileId'
+    -> Int64 -- ^ 'odlProjectId'
+    -> OrderDocumentsList
+orderDocumentsList pOdlProFileId_ pOdlProjectId_ =
+    OrderDocumentsList
+    { _odlSearchString = Nothing
+    , _odlIds = Nothing
+    , _odlProFileId = _Coerce # pOdlProFileId_
+    , _odlSortOrder = Nothing
+    , _odlPageToken = Nothing
+    , _odlProjectId = _Coerce # pOdlProjectId_
+    , _odlSortField = Nothing
+    , _odlOrderId = Nothing
+    , _odlApproved = Nothing
+    , _odlSiteId = Nothing
+    , _odlMaxResults = Nothing
+    }
+
+-- | Allows searching for order documents by name or ID. Wildcards (*) are
+-- allowed. For example, \"orderdocument*2015\" will return order documents
+-- with names like \"orderdocument June 2015\", \"orderdocument April
+-- 2015\", or simply \"orderdocument 2015\". Most of the searches also add
+-- wildcards implicitly at the start and the end of the search string. For
+-- example, a search string of \"orderdocument\" will match order documents
+-- with name \"my orderdocument\", \"orderdocument 2015\", or simply
+-- \"orderdocument\".
+odlSearchString :: Lens' OrderDocumentsList (Maybe Text)
+odlSearchString
+  = lens _odlSearchString
+      (\ s a -> s{_odlSearchString = a})
+
+-- | Select only order documents with these IDs.
+odlIds :: Lens' OrderDocumentsList [Int64]
+odlIds
+  = lens _odlIds (\ s a -> s{_odlIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+odlProFileId :: Lens' OrderDocumentsList Int64
+odlProFileId
+  = lens _odlProFileId (\ s a -> s{_odlProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+odlSortOrder :: Lens' OrderDocumentsList (Maybe OrderDocumentsListSortOrder)
+odlSortOrder
+  = lens _odlSortOrder (\ s a -> s{_odlSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+odlPageToken :: Lens' OrderDocumentsList (Maybe Text)
+odlPageToken
+  = lens _odlPageToken (\ s a -> s{_odlPageToken = a})
+
+-- | Project ID for order documents.
+odlProjectId :: Lens' OrderDocumentsList Int64
+odlProjectId
+  = lens _odlProjectId (\ s a -> s{_odlProjectId = a})
+      . _Coerce
+
+-- | Field by which to sort the list.
+odlSortField :: Lens' OrderDocumentsList (Maybe OrderDocumentsListSortField)
+odlSortField
+  = lens _odlSortField (\ s a -> s{_odlSortField = a})
+
+-- | Select only order documents for specified orders.
+odlOrderId :: Lens' OrderDocumentsList [Int64]
+odlOrderId
+  = lens _odlOrderId (\ s a -> s{_odlOrderId = a}) .
+      _Default
+      . _Coerce
+
+-- | Select only order documents that have been approved by at least one
+-- user.
+odlApproved :: Lens' OrderDocumentsList (Maybe Bool)
+odlApproved
+  = lens _odlApproved (\ s a -> s{_odlApproved = a})
+
+-- | Select only order documents that are associated with these sites.
+odlSiteId :: Lens' OrderDocumentsList [Int64]
+odlSiteId
+  = lens _odlSiteId (\ s a -> s{_odlSiteId = a}) .
+      _Default
+      . _Coerce
+
+-- | Maximum number of results to return.
+odlMaxResults :: Lens' OrderDocumentsList (Maybe Int32)
+odlMaxResults
+  = lens _odlMaxResults
+      (\ s a -> s{_odlMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest OrderDocumentsList where
+        type Rs OrderDocumentsList =
+             OrderDocumentsListResponse
+        requestClient OrderDocumentsList{..}
+          = go _odlProFileId _odlProjectId _odlSearchString
+              (_odlIds ^. _Default)
+              _odlSortOrder
+              _odlPageToken
+              _odlSortField
+              (_odlOrderId ^. _Default)
+              _odlApproved
+              (_odlSiteId ^. _Default)
+              _odlMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy OrderDocumentsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Orders/Get.hs b/gen/Network/Google/Resource/DFAReporting/Orders/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Orders/Get.hs
@@ -0,0 +1,110 @@
+{-# 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.DFAReporting.Orders.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one order by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.orders.get@.
+module Network.Google.Resource.DFAReporting.Orders.Get
+    (
+    -- * REST Resource
+      OrdersGetResource
+
+    -- * Creating a Request
+    , ordersGet
+    , OrdersGet
+
+    -- * Request Lenses
+    , ogProFileId
+    , ogId
+    , ogProjectId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.orders.get@ method which the
+-- 'OrdersGet' request conforms to.
+type OrdersGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "projects" :>
+               Capture "projectId" (Textual Int64) :>
+                 "orders" :>
+                   Capture "id" (Textual Int64) :>
+                     QueryParam "alt" AltJSON :> Get '[JSON] Order
+
+-- | Gets one order by ID.
+--
+-- /See:/ 'ordersGet' smart constructor.
+data OrdersGet = OrdersGet
+    { _ogProFileId :: !(Textual Int64)
+    , _ogId        :: !(Textual Int64)
+    , _ogProjectId :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrdersGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ogProFileId'
+--
+-- * 'ogId'
+--
+-- * 'ogProjectId'
+ordersGet
+    :: Int64 -- ^ 'ogProFileId'
+    -> Int64 -- ^ 'ogId'
+    -> Int64 -- ^ 'ogProjectId'
+    -> OrdersGet
+ordersGet pOgProFileId_ pOgId_ pOgProjectId_ =
+    OrdersGet
+    { _ogProFileId = _Coerce # pOgProFileId_
+    , _ogId = _Coerce # pOgId_
+    , _ogProjectId = _Coerce # pOgProjectId_
+    }
+
+-- | User profile ID associated with this request.
+ogProFileId :: Lens' OrdersGet Int64
+ogProFileId
+  = lens _ogProFileId (\ s a -> s{_ogProFileId = a}) .
+      _Coerce
+
+-- | Order ID.
+ogId :: Lens' OrdersGet Int64
+ogId = lens _ogId (\ s a -> s{_ogId = a}) . _Coerce
+
+-- | Project ID for orders.
+ogProjectId :: Lens' OrdersGet Int64
+ogProjectId
+  = lens _ogProjectId (\ s a -> s{_ogProjectId = a}) .
+      _Coerce
+
+instance GoogleRequest OrdersGet where
+        type Rs OrdersGet = Order
+        requestClient OrdersGet{..}
+          = go _ogProFileId _ogProjectId _ogId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy OrdersGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Orders/List.hs b/gen/Network/Google/Resource/DFAReporting/Orders/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Orders/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.DFAReporting.Orders.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of orders, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.orders.list@.
+module Network.Google.Resource.DFAReporting.Orders.List
+    (
+    -- * REST Resource
+      OrdersListResource
+
+    -- * Creating a Request
+    , ordersList
+    , OrdersList
+
+    -- * Request Lenses
+    , olSearchString
+    , olIds
+    , olProFileId
+    , olSortOrder
+    , olPageToken
+    , olProjectId
+    , olSortField
+    , olSiteId
+    , olMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.orders.list@ method which the
+-- 'OrdersList' request conforms to.
+type OrdersListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "projects" :>
+               Capture "projectId" (Textual Int64) :>
+                 "orders" :>
+                   QueryParam "searchString" Text :>
+                     QueryParams "ids" (Textual Int64) :>
+                       QueryParam "sortOrder" OrdersListSortOrder :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "sortField" OrdersListSortField :>
+                             QueryParams "siteId" (Textual Int64) :>
+                               QueryParam "maxResults" (Textual Int32) :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] OrdersListResponse
+
+-- | Retrieves a list of orders, possibly filtered.
+--
+-- /See:/ 'ordersList' smart constructor.
+data OrdersList = OrdersList
+    { _olSearchString :: !(Maybe Text)
+    , _olIds          :: !(Maybe [Textual Int64])
+    , _olProFileId    :: !(Textual Int64)
+    , _olSortOrder    :: !(Maybe OrdersListSortOrder)
+    , _olPageToken    :: !(Maybe Text)
+    , _olProjectId    :: !(Textual Int64)
+    , _olSortField    :: !(Maybe OrdersListSortField)
+    , _olSiteId       :: !(Maybe [Textual Int64])
+    , _olMaxResults   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrdersList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'olSearchString'
+--
+-- * 'olIds'
+--
+-- * 'olProFileId'
+--
+-- * 'olSortOrder'
+--
+-- * 'olPageToken'
+--
+-- * 'olProjectId'
+--
+-- * 'olSortField'
+--
+-- * 'olSiteId'
+--
+-- * 'olMaxResults'
+ordersList
+    :: Int64 -- ^ 'olProFileId'
+    -> Int64 -- ^ 'olProjectId'
+    -> OrdersList
+ordersList pOlProFileId_ pOlProjectId_ =
+    OrdersList
+    { _olSearchString = Nothing
+    , _olIds = Nothing
+    , _olProFileId = _Coerce # pOlProFileId_
+    , _olSortOrder = Nothing
+    , _olPageToken = Nothing
+    , _olProjectId = _Coerce # pOlProjectId_
+    , _olSortField = Nothing
+    , _olSiteId = Nothing
+    , _olMaxResults = Nothing
+    }
+
+-- | Allows searching for orders by name or ID. Wildcards (*) are allowed.
+-- For example, \"order*2015\" will return orders with names like \"order
+-- June 2015\", \"order April 2015\", or simply \"order 2015\". Most of the
+-- searches also add wildcards implicitly at the start and the end of the
+-- search string. For example, a search string of \"order\" will match
+-- orders with name \"my order\", \"order 2015\", or simply \"order\".
+olSearchString :: Lens' OrdersList (Maybe Text)
+olSearchString
+  = lens _olSearchString
+      (\ s a -> s{_olSearchString = a})
+
+-- | Select only orders with these IDs.
+olIds :: Lens' OrdersList [Int64]
+olIds
+  = lens _olIds (\ s a -> s{_olIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+olProFileId :: Lens' OrdersList Int64
+olProFileId
+  = lens _olProFileId (\ s a -> s{_olProFileId = a}) .
+      _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+olSortOrder :: Lens' OrdersList (Maybe OrdersListSortOrder)
+olSortOrder
+  = lens _olSortOrder (\ s a -> s{_olSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+olPageToken :: Lens' OrdersList (Maybe Text)
+olPageToken
+  = lens _olPageToken (\ s a -> s{_olPageToken = a})
+
+-- | Project ID for orders.
+olProjectId :: Lens' OrdersList Int64
+olProjectId
+  = lens _olProjectId (\ s a -> s{_olProjectId = a}) .
+      _Coerce
+
+-- | Field by which to sort the list.
+olSortField :: Lens' OrdersList (Maybe OrdersListSortField)
+olSortField
+  = lens _olSortField (\ s a -> s{_olSortField = a})
+
+-- | Select only orders that are associated with these site IDs.
+olSiteId :: Lens' OrdersList [Int64]
+olSiteId
+  = lens _olSiteId (\ s a -> s{_olSiteId = a}) .
+      _Default
+      . _Coerce
+
+-- | Maximum number of results to return.
+olMaxResults :: Lens' OrdersList (Maybe Int32)
+olMaxResults
+  = lens _olMaxResults (\ s a -> s{_olMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest OrdersList where
+        type Rs OrdersList = OrdersListResponse
+        requestClient OrdersList{..}
+          = go _olProFileId _olProjectId _olSearchString
+              (_olIds ^. _Default)
+              _olSortOrder
+              _olPageToken
+              _olSortField
+              (_olSiteId ^. _Default)
+              _olMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy OrdersListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Get.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.PlacementGroups.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one placement group by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementGroups.get@.
+module Network.Google.Resource.DFAReporting.PlacementGroups.Get
+    (
+    -- * REST Resource
+      PlacementGroupsGetResource
+
+    -- * Creating a Request
+    , placementGroupsGet
+    , PlacementGroupsGet
+
+    -- * Request Lenses
+    , pggProFileId
+    , pggId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementGroups.get@ method which the
+-- 'PlacementGroupsGet' request conforms to.
+type PlacementGroupsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementGroups" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] PlacementGroup
+
+-- | Gets one placement group by ID.
+--
+-- /See:/ 'placementGroupsGet' smart constructor.
+data PlacementGroupsGet = PlacementGroupsGet
+    { _pggProFileId :: !(Textual Int64)
+    , _pggId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementGroupsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pggProFileId'
+--
+-- * 'pggId'
+placementGroupsGet
+    :: Int64 -- ^ 'pggProFileId'
+    -> Int64 -- ^ 'pggId'
+    -> PlacementGroupsGet
+placementGroupsGet pPggProFileId_ pPggId_ =
+    PlacementGroupsGet
+    { _pggProFileId = _Coerce # pPggProFileId_
+    , _pggId = _Coerce # pPggId_
+    }
+
+-- | User profile ID associated with this request.
+pggProFileId :: Lens' PlacementGroupsGet Int64
+pggProFileId
+  = lens _pggProFileId (\ s a -> s{_pggProFileId = a})
+      . _Coerce
+
+-- | Placement group ID.
+pggId :: Lens' PlacementGroupsGet Int64
+pggId
+  = lens _pggId (\ s a -> s{_pggId = a}) . _Coerce
+
+instance GoogleRequest PlacementGroupsGet where
+        type Rs PlacementGroupsGet = PlacementGroup
+        requestClient PlacementGroupsGet{..}
+          = go _pggProFileId _pggId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementGroupsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Insert.hs b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Insert.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.PlacementGroups.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new placement group.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementGroups.insert@.
+module Network.Google.Resource.DFAReporting.PlacementGroups.Insert
+    (
+    -- * REST Resource
+      PlacementGroupsInsertResource
+
+    -- * Creating a Request
+    , placementGroupsInsert
+    , PlacementGroupsInsert
+
+    -- * Request Lenses
+    , pgiProFileId
+    , pgiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementGroups.insert@ method which the
+-- 'PlacementGroupsInsert' request conforms to.
+type PlacementGroupsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementGroups" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] PlacementGroup :>
+                   Post '[JSON] PlacementGroup
+
+-- | Inserts a new placement group.
+--
+-- /See:/ 'placementGroupsInsert' smart constructor.
+data PlacementGroupsInsert = PlacementGroupsInsert
+    { _pgiProFileId :: !(Textual Int64)
+    , _pgiPayload   :: !PlacementGroup
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementGroupsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pgiProFileId'
+--
+-- * 'pgiPayload'
+placementGroupsInsert
+    :: Int64 -- ^ 'pgiProFileId'
+    -> PlacementGroup -- ^ 'pgiPayload'
+    -> PlacementGroupsInsert
+placementGroupsInsert pPgiProFileId_ pPgiPayload_ =
+    PlacementGroupsInsert
+    { _pgiProFileId = _Coerce # pPgiProFileId_
+    , _pgiPayload = pPgiPayload_
+    }
+
+-- | User profile ID associated with this request.
+pgiProFileId :: Lens' PlacementGroupsInsert Int64
+pgiProFileId
+  = lens _pgiProFileId (\ s a -> s{_pgiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+pgiPayload :: Lens' PlacementGroupsInsert PlacementGroup
+pgiPayload
+  = lens _pgiPayload (\ s a -> s{_pgiPayload = a})
+
+instance GoogleRequest PlacementGroupsInsert where
+        type Rs PlacementGroupsInsert = PlacementGroup
+        requestClient PlacementGroupsInsert{..}
+          = go _pgiProFileId (Just AltJSON) _pgiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementGroupsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/List.hs
@@ -0,0 +1,384 @@
+{-# 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.DFAReporting.PlacementGroups.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of placement groups, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementGroups.list@.
+module Network.Google.Resource.DFAReporting.PlacementGroups.List
+    (
+    -- * REST Resource
+      PlacementGroupsListResource
+
+    -- * Creating a Request
+    , placementGroupsList
+    , PlacementGroupsList
+
+    -- * Request Lenses
+    , pglPlacementStrategyIds
+    , pglContentCategoryIds
+    , pglMaxEndDate
+    , pglCampaignIds
+    , pglPricingTypes
+    , pglSearchString
+    , pglIds
+    , pglProFileId
+    , pglPlacementGroupType
+    , pglDirectorySiteIds
+    , pglSortOrder
+    , pglSiteIds
+    , pglPageToken
+    , pglSortField
+    , pglMaxStartDate
+    , pglAdvertiserIds
+    , pglMinStartDate
+    , pglArchived
+    , pglMaxResults
+    , pglMinEndDate
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementGroups.list@ method which the
+-- 'PlacementGroupsList' request conforms to.
+type PlacementGroupsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementGroups" :>
+               QueryParams "placementStrategyIds" (Textual Int64) :>
+                 QueryParams "contentCategoryIds" (Textual Int64) :>
+                   QueryParam "maxEndDate" Text :>
+                     QueryParams "campaignIds" (Textual Int64) :>
+                       QueryParams "pricingTypes"
+                         PlacementGroupsListPricingTypes
+                         :>
+                         QueryParam "searchString" Text :>
+                           QueryParams "ids" (Textual Int64) :>
+                             QueryParam "placementGroupType"
+                               PlacementGroupsListPlacementGroupType
+                               :>
+                               QueryParams "directorySiteIds" (Textual Int64) :>
+                                 QueryParam "sortOrder"
+                                   PlacementGroupsListSortOrder
+                                   :>
+                                   QueryParams "siteIds" (Textual Int64) :>
+                                     QueryParam "pageToken" Text :>
+                                       QueryParam "sortField"
+                                         PlacementGroupsListSortField
+                                         :>
+                                         QueryParam "maxStartDate" Text :>
+                                           QueryParams "advertiserIds"
+                                             (Textual Int64)
+                                             :>
+                                             QueryParam "minStartDate" Text :>
+                                               QueryParam "archived" Bool :>
+                                                 QueryParam "maxResults"
+                                                   (Textual Int32)
+                                                   :>
+                                                   QueryParam "minEndDate" Text
+                                                     :>
+                                                     QueryParam "alt" AltJSON :>
+                                                       Get '[JSON]
+                                                         PlacementGroupsListResponse
+
+-- | Retrieves a list of placement groups, possibly filtered.
+--
+-- /See:/ 'placementGroupsList' smart constructor.
+data PlacementGroupsList = PlacementGroupsList
+    { _pglPlacementStrategyIds :: !(Maybe [Textual Int64])
+    , _pglContentCategoryIds   :: !(Maybe [Textual Int64])
+    , _pglMaxEndDate           :: !(Maybe Text)
+    , _pglCampaignIds          :: !(Maybe [Textual Int64])
+    , _pglPricingTypes         :: !(Maybe [PlacementGroupsListPricingTypes])
+    , _pglSearchString         :: !(Maybe Text)
+    , _pglIds                  :: !(Maybe [Textual Int64])
+    , _pglProFileId            :: !(Textual Int64)
+    , _pglPlacementGroupType   :: !(Maybe PlacementGroupsListPlacementGroupType)
+    , _pglDirectorySiteIds     :: !(Maybe [Textual Int64])
+    , _pglSortOrder            :: !(Maybe PlacementGroupsListSortOrder)
+    , _pglSiteIds              :: !(Maybe [Textual Int64])
+    , _pglPageToken            :: !(Maybe Text)
+    , _pglSortField            :: !(Maybe PlacementGroupsListSortField)
+    , _pglMaxStartDate         :: !(Maybe Text)
+    , _pglAdvertiserIds        :: !(Maybe [Textual Int64])
+    , _pglMinStartDate         :: !(Maybe Text)
+    , _pglArchived             :: !(Maybe Bool)
+    , _pglMaxResults           :: !(Maybe (Textual Int32))
+    , _pglMinEndDate           :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementGroupsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pglPlacementStrategyIds'
+--
+-- * 'pglContentCategoryIds'
+--
+-- * 'pglMaxEndDate'
+--
+-- * 'pglCampaignIds'
+--
+-- * 'pglPricingTypes'
+--
+-- * 'pglSearchString'
+--
+-- * 'pglIds'
+--
+-- * 'pglProFileId'
+--
+-- * 'pglPlacementGroupType'
+--
+-- * 'pglDirectorySiteIds'
+--
+-- * 'pglSortOrder'
+--
+-- * 'pglSiteIds'
+--
+-- * 'pglPageToken'
+--
+-- * 'pglSortField'
+--
+-- * 'pglMaxStartDate'
+--
+-- * 'pglAdvertiserIds'
+--
+-- * 'pglMinStartDate'
+--
+-- * 'pglArchived'
+--
+-- * 'pglMaxResults'
+--
+-- * 'pglMinEndDate'
+placementGroupsList
+    :: Int64 -- ^ 'pglProFileId'
+    -> PlacementGroupsList
+placementGroupsList pPglProFileId_ =
+    PlacementGroupsList
+    { _pglPlacementStrategyIds = Nothing
+    , _pglContentCategoryIds = Nothing
+    , _pglMaxEndDate = Nothing
+    , _pglCampaignIds = Nothing
+    , _pglPricingTypes = Nothing
+    , _pglSearchString = Nothing
+    , _pglIds = Nothing
+    , _pglProFileId = _Coerce # pPglProFileId_
+    , _pglPlacementGroupType = Nothing
+    , _pglDirectorySiteIds = Nothing
+    , _pglSortOrder = Nothing
+    , _pglSiteIds = Nothing
+    , _pglPageToken = Nothing
+    , _pglSortField = Nothing
+    , _pglMaxStartDate = Nothing
+    , _pglAdvertiserIds = Nothing
+    , _pglMinStartDate = Nothing
+    , _pglArchived = Nothing
+    , _pglMaxResults = Nothing
+    , _pglMinEndDate = Nothing
+    }
+
+-- | Select only placement groups that are associated with these placement
+-- strategies.
+pglPlacementStrategyIds :: Lens' PlacementGroupsList [Int64]
+pglPlacementStrategyIds
+  = lens _pglPlacementStrategyIds
+      (\ s a -> s{_pglPlacementStrategyIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only placement groups that are associated with these content
+-- categories.
+pglContentCategoryIds :: Lens' PlacementGroupsList [Int64]
+pglContentCategoryIds
+  = lens _pglContentCategoryIds
+      (\ s a -> s{_pglContentCategoryIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only placements or placement groups whose end date is on or
+-- before the specified maxEndDate. The date should be formatted as
+-- \"yyyy-MM-dd\".
+pglMaxEndDate :: Lens' PlacementGroupsList (Maybe Text)
+pglMaxEndDate
+  = lens _pglMaxEndDate
+      (\ s a -> s{_pglMaxEndDate = a})
+
+-- | Select only placement groups that belong to these campaigns.
+pglCampaignIds :: Lens' PlacementGroupsList [Int64]
+pglCampaignIds
+  = lens _pglCampaignIds
+      (\ s a -> s{_pglCampaignIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only placement groups with these pricing types.
+pglPricingTypes :: Lens' PlacementGroupsList [PlacementGroupsListPricingTypes]
+pglPricingTypes
+  = lens _pglPricingTypes
+      (\ s a -> s{_pglPricingTypes = a})
+      . _Default
+      . _Coerce
+
+-- | Allows searching for placement groups by name or ID. Wildcards (*) are
+-- allowed. For example, \"placement*2015\" will return placement groups
+-- with names like \"placement group June 2015\", \"placement group May
+-- 2015\", or simply \"placements 2015\". Most of the searches also add
+-- wildcards implicitly at the start and the end of the search string. For
+-- example, a search string of \"placementgroup\" will match placement
+-- groups with name \"my placementgroup\", \"placementgroup 2015\", or
+-- simply \"placementgroup\".
+pglSearchString :: Lens' PlacementGroupsList (Maybe Text)
+pglSearchString
+  = lens _pglSearchString
+      (\ s a -> s{_pglSearchString = a})
+
+-- | Select only placement groups with these IDs.
+pglIds :: Lens' PlacementGroupsList [Int64]
+pglIds
+  = lens _pglIds (\ s a -> s{_pglIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+pglProFileId :: Lens' PlacementGroupsList Int64
+pglProFileId
+  = lens _pglProFileId (\ s a -> s{_pglProFileId = a})
+      . _Coerce
+
+-- | Select only placement groups belonging with this group type. A package
+-- is a simple group of placements that acts as a single pricing point for
+-- a group of tags. A roadblock is a group of placements that not only acts
+-- as a single pricing point but also assumes that all the tags in it will
+-- be served at the same time. A roadblock requires one of its assigned
+-- placements to be marked as primary for reporting.
+pglPlacementGroupType :: Lens' PlacementGroupsList (Maybe PlacementGroupsListPlacementGroupType)
+pglPlacementGroupType
+  = lens _pglPlacementGroupType
+      (\ s a -> s{_pglPlacementGroupType = a})
+
+-- | Select only placement groups that are associated with these directory
+-- sites.
+pglDirectorySiteIds :: Lens' PlacementGroupsList [Int64]
+pglDirectorySiteIds
+  = lens _pglDirectorySiteIds
+      (\ s a -> s{_pglDirectorySiteIds = a})
+      . _Default
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+pglSortOrder :: Lens' PlacementGroupsList (Maybe PlacementGroupsListSortOrder)
+pglSortOrder
+  = lens _pglSortOrder (\ s a -> s{_pglSortOrder = a})
+
+-- | Select only placement groups that are associated with these sites.
+pglSiteIds :: Lens' PlacementGroupsList [Int64]
+pglSiteIds
+  = lens _pglSiteIds (\ s a -> s{_pglSiteIds = a}) .
+      _Default
+      . _Coerce
+
+-- | Value of the nextPageToken from the previous result page.
+pglPageToken :: Lens' PlacementGroupsList (Maybe Text)
+pglPageToken
+  = lens _pglPageToken (\ s a -> s{_pglPageToken = a})
+
+-- | Field by which to sort the list.
+pglSortField :: Lens' PlacementGroupsList (Maybe PlacementGroupsListSortField)
+pglSortField
+  = lens _pglSortField (\ s a -> s{_pglSortField = a})
+
+-- | Select only placements or placement groups whose start date is on or
+-- before the specified maxStartDate. The date should be formatted as
+-- \"yyyy-MM-dd\".
+pglMaxStartDate :: Lens' PlacementGroupsList (Maybe Text)
+pglMaxStartDate
+  = lens _pglMaxStartDate
+      (\ s a -> s{_pglMaxStartDate = a})
+
+-- | Select only placement groups that belong to these advertisers.
+pglAdvertiserIds :: Lens' PlacementGroupsList [Int64]
+pglAdvertiserIds
+  = lens _pglAdvertiserIds
+      (\ s a -> s{_pglAdvertiserIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only placements or placement groups whose start date is on or
+-- after the specified minStartDate. The date should be formatted as
+-- \"yyyy-MM-dd\".
+pglMinStartDate :: Lens' PlacementGroupsList (Maybe Text)
+pglMinStartDate
+  = lens _pglMinStartDate
+      (\ s a -> s{_pglMinStartDate = a})
+
+-- | Select only archived placements. Don\'t set this field to select both
+-- archived and non-archived placements.
+pglArchived :: Lens' PlacementGroupsList (Maybe Bool)
+pglArchived
+  = lens _pglArchived (\ s a -> s{_pglArchived = a})
+
+-- | Maximum number of results to return.
+pglMaxResults :: Lens' PlacementGroupsList (Maybe Int32)
+pglMaxResults
+  = lens _pglMaxResults
+      (\ s a -> s{_pglMaxResults = a})
+      . mapping _Coerce
+
+-- | Select only placements or placement groups whose end date is on or after
+-- the specified minEndDate. The date should be formatted as
+-- \"yyyy-MM-dd\".
+pglMinEndDate :: Lens' PlacementGroupsList (Maybe Text)
+pglMinEndDate
+  = lens _pglMinEndDate
+      (\ s a -> s{_pglMinEndDate = a})
+
+instance GoogleRequest PlacementGroupsList where
+        type Rs PlacementGroupsList =
+             PlacementGroupsListResponse
+        requestClient PlacementGroupsList{..}
+          = go _pglProFileId
+              (_pglPlacementStrategyIds ^. _Default)
+              (_pglContentCategoryIds ^. _Default)
+              _pglMaxEndDate
+              (_pglCampaignIds ^. _Default)
+              (_pglPricingTypes ^. _Default)
+              _pglSearchString
+              (_pglIds ^. _Default)
+              _pglPlacementGroupType
+              (_pglDirectorySiteIds ^. _Default)
+              _pglSortOrder
+              (_pglSiteIds ^. _Default)
+              _pglPageToken
+              _pglSortField
+              _pglMaxStartDate
+              (_pglAdvertiserIds ^. _Default)
+              _pglMinStartDate
+              _pglArchived
+              _pglMaxResults
+              _pglMinEndDate
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementGroupsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Patch.hs b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Patch.hs
@@ -0,0 +1,114 @@
+{-# 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.DFAReporting.PlacementGroups.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing placement group. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementGroups.patch@.
+module Network.Google.Resource.DFAReporting.PlacementGroups.Patch
+    (
+    -- * REST Resource
+      PlacementGroupsPatchResource
+
+    -- * Creating a Request
+    , placementGroupsPatch
+    , PlacementGroupsPatch
+
+    -- * Request Lenses
+    , pgpProFileId
+    , pgpPayload
+    , pgpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementGroups.patch@ method which the
+-- 'PlacementGroupsPatch' request conforms to.
+type PlacementGroupsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementGroups" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] PlacementGroup :>
+                     Patch '[JSON] PlacementGroup
+
+-- | Updates an existing placement group. This method supports patch
+-- semantics.
+--
+-- /See:/ 'placementGroupsPatch' smart constructor.
+data PlacementGroupsPatch = PlacementGroupsPatch
+    { _pgpProFileId :: !(Textual Int64)
+    , _pgpPayload   :: !PlacementGroup
+    , _pgpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementGroupsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pgpProFileId'
+--
+-- * 'pgpPayload'
+--
+-- * 'pgpId'
+placementGroupsPatch
+    :: Int64 -- ^ 'pgpProFileId'
+    -> PlacementGroup -- ^ 'pgpPayload'
+    -> Int64 -- ^ 'pgpId'
+    -> PlacementGroupsPatch
+placementGroupsPatch pPgpProFileId_ pPgpPayload_ pPgpId_ =
+    PlacementGroupsPatch
+    { _pgpProFileId = _Coerce # pPgpProFileId_
+    , _pgpPayload = pPgpPayload_
+    , _pgpId = _Coerce # pPgpId_
+    }
+
+-- | User profile ID associated with this request.
+pgpProFileId :: Lens' PlacementGroupsPatch Int64
+pgpProFileId
+  = lens _pgpProFileId (\ s a -> s{_pgpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+pgpPayload :: Lens' PlacementGroupsPatch PlacementGroup
+pgpPayload
+  = lens _pgpPayload (\ s a -> s{_pgpPayload = a})
+
+-- | Placement group ID.
+pgpId :: Lens' PlacementGroupsPatch Int64
+pgpId
+  = lens _pgpId (\ s a -> s{_pgpId = a}) . _Coerce
+
+instance GoogleRequest PlacementGroupsPatch where
+        type Rs PlacementGroupsPatch = PlacementGroup
+        requestClient PlacementGroupsPatch{..}
+          = go _pgpProFileId (Just _pgpId) (Just AltJSON)
+              _pgpPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementGroupsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Update.hs b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Update.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.PlacementGroups.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing placement group.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementGroups.update@.
+module Network.Google.Resource.DFAReporting.PlacementGroups.Update
+    (
+    -- * REST Resource
+      PlacementGroupsUpdateResource
+
+    -- * Creating a Request
+    , placementGroupsUpdate
+    , PlacementGroupsUpdate
+
+    -- * Request Lenses
+    , pguProFileId
+    , pguPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementGroups.update@ method which the
+-- 'PlacementGroupsUpdate' request conforms to.
+type PlacementGroupsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementGroups" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] PlacementGroup :>
+                   Put '[JSON] PlacementGroup
+
+-- | Updates an existing placement group.
+--
+-- /See:/ 'placementGroupsUpdate' smart constructor.
+data PlacementGroupsUpdate = PlacementGroupsUpdate
+    { _pguProFileId :: !(Textual Int64)
+    , _pguPayload   :: !PlacementGroup
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementGroupsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pguProFileId'
+--
+-- * 'pguPayload'
+placementGroupsUpdate
+    :: Int64 -- ^ 'pguProFileId'
+    -> PlacementGroup -- ^ 'pguPayload'
+    -> PlacementGroupsUpdate
+placementGroupsUpdate pPguProFileId_ pPguPayload_ =
+    PlacementGroupsUpdate
+    { _pguProFileId = _Coerce # pPguProFileId_
+    , _pguPayload = pPguPayload_
+    }
+
+-- | User profile ID associated with this request.
+pguProFileId :: Lens' PlacementGroupsUpdate Int64
+pguProFileId
+  = lens _pguProFileId (\ s a -> s{_pguProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+pguPayload :: Lens' PlacementGroupsUpdate PlacementGroup
+pguPayload
+  = lens _pguPayload (\ s a -> s{_pguPayload = a})
+
+instance GoogleRequest PlacementGroupsUpdate where
+        type Rs PlacementGroupsUpdate = PlacementGroup
+        requestClient PlacementGroupsUpdate{..}
+          = go _pguProFileId (Just AltJSON) _pguPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementGroupsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Delete.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Delete.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.PlacementStrategies.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing placement strategy.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementStrategies.delete@.
+module Network.Google.Resource.DFAReporting.PlacementStrategies.Delete
+    (
+    -- * REST Resource
+      PlacementStrategiesDeleteResource
+
+    -- * Creating a Request
+    , placementStrategiesDelete
+    , PlacementStrategiesDelete
+
+    -- * Request Lenses
+    , psdProFileId
+    , psdId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementStrategies.delete@ method which the
+-- 'PlacementStrategiesDelete' request conforms to.
+type PlacementStrategiesDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementStrategies" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing placement strategy.
+--
+-- /See:/ 'placementStrategiesDelete' smart constructor.
+data PlacementStrategiesDelete = PlacementStrategiesDelete
+    { _psdProFileId :: !(Textual Int64)
+    , _psdId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementStrategiesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psdProFileId'
+--
+-- * 'psdId'
+placementStrategiesDelete
+    :: Int64 -- ^ 'psdProFileId'
+    -> Int64 -- ^ 'psdId'
+    -> PlacementStrategiesDelete
+placementStrategiesDelete pPsdProFileId_ pPsdId_ =
+    PlacementStrategiesDelete
+    { _psdProFileId = _Coerce # pPsdProFileId_
+    , _psdId = _Coerce # pPsdId_
+    }
+
+-- | User profile ID associated with this request.
+psdProFileId :: Lens' PlacementStrategiesDelete Int64
+psdProFileId
+  = lens _psdProFileId (\ s a -> s{_psdProFileId = a})
+      . _Coerce
+
+-- | Placement strategy ID.
+psdId :: Lens' PlacementStrategiesDelete Int64
+psdId
+  = lens _psdId (\ s a -> s{_psdId = a}) . _Coerce
+
+instance GoogleRequest PlacementStrategiesDelete
+         where
+        type Rs PlacementStrategiesDelete = ()
+        requestClient PlacementStrategiesDelete{..}
+          = go _psdProFileId _psdId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementStrategiesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Get.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Get.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.PlacementStrategies.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one placement strategy by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementStrategies.get@.
+module Network.Google.Resource.DFAReporting.PlacementStrategies.Get
+    (
+    -- * REST Resource
+      PlacementStrategiesGetResource
+
+    -- * Creating a Request
+    , placementStrategiesGet
+    , PlacementStrategiesGet
+
+    -- * Request Lenses
+    , psgProFileId
+    , psgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementStrategies.get@ method which the
+-- 'PlacementStrategiesGet' request conforms to.
+type PlacementStrategiesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementStrategies" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] PlacementStrategy
+
+-- | Gets one placement strategy by ID.
+--
+-- /See:/ 'placementStrategiesGet' smart constructor.
+data PlacementStrategiesGet = PlacementStrategiesGet
+    { _psgProFileId :: !(Textual Int64)
+    , _psgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementStrategiesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psgProFileId'
+--
+-- * 'psgId'
+placementStrategiesGet
+    :: Int64 -- ^ 'psgProFileId'
+    -> Int64 -- ^ 'psgId'
+    -> PlacementStrategiesGet
+placementStrategiesGet pPsgProFileId_ pPsgId_ =
+    PlacementStrategiesGet
+    { _psgProFileId = _Coerce # pPsgProFileId_
+    , _psgId = _Coerce # pPsgId_
+    }
+
+-- | User profile ID associated with this request.
+psgProFileId :: Lens' PlacementStrategiesGet Int64
+psgProFileId
+  = lens _psgProFileId (\ s a -> s{_psgProFileId = a})
+      . _Coerce
+
+-- | Placement strategy ID.
+psgId :: Lens' PlacementStrategiesGet Int64
+psgId
+  = lens _psgId (\ s a -> s{_psgId = a}) . _Coerce
+
+instance GoogleRequest PlacementStrategiesGet where
+        type Rs PlacementStrategiesGet = PlacementStrategy
+        requestClient PlacementStrategiesGet{..}
+          = go _psgProFileId _psgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementStrategiesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Insert.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Insert.hs
@@ -0,0 +1,100 @@
+{-# 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.DFAReporting.PlacementStrategies.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new placement strategy.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementStrategies.insert@.
+module Network.Google.Resource.DFAReporting.PlacementStrategies.Insert
+    (
+    -- * REST Resource
+      PlacementStrategiesInsertResource
+
+    -- * Creating a Request
+    , placementStrategiesInsert
+    , PlacementStrategiesInsert
+
+    -- * Request Lenses
+    , psiProFileId
+    , psiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementStrategies.insert@ method which the
+-- 'PlacementStrategiesInsert' request conforms to.
+type PlacementStrategiesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementStrategies" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] PlacementStrategy :>
+                   Post '[JSON] PlacementStrategy
+
+-- | Inserts a new placement strategy.
+--
+-- /See:/ 'placementStrategiesInsert' smart constructor.
+data PlacementStrategiesInsert = PlacementStrategiesInsert
+    { _psiProFileId :: !(Textual Int64)
+    , _psiPayload   :: !PlacementStrategy
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementStrategiesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psiProFileId'
+--
+-- * 'psiPayload'
+placementStrategiesInsert
+    :: Int64 -- ^ 'psiProFileId'
+    -> PlacementStrategy -- ^ 'psiPayload'
+    -> PlacementStrategiesInsert
+placementStrategiesInsert pPsiProFileId_ pPsiPayload_ =
+    PlacementStrategiesInsert
+    { _psiProFileId = _Coerce # pPsiProFileId_
+    , _psiPayload = pPsiPayload_
+    }
+
+-- | User profile ID associated with this request.
+psiProFileId :: Lens' PlacementStrategiesInsert Int64
+psiProFileId
+  = lens _psiProFileId (\ s a -> s{_psiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+psiPayload :: Lens' PlacementStrategiesInsert PlacementStrategy
+psiPayload
+  = lens _psiPayload (\ s a -> s{_psiPayload = a})
+
+instance GoogleRequest PlacementStrategiesInsert
+         where
+        type Rs PlacementStrategiesInsert = PlacementStrategy
+        requestClient PlacementStrategiesInsert{..}
+          = go _psiProFileId (Just AltJSON) _psiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementStrategiesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/List.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/List.hs
@@ -0,0 +1,175 @@
+{-# 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.DFAReporting.PlacementStrategies.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of placement strategies, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementStrategies.list@.
+module Network.Google.Resource.DFAReporting.PlacementStrategies.List
+    (
+    -- * REST Resource
+      PlacementStrategiesListResource
+
+    -- * Creating a Request
+    , placementStrategiesList
+    , PlacementStrategiesList
+
+    -- * Request Lenses
+    , pslSearchString
+    , pslIds
+    , pslProFileId
+    , pslSortOrder
+    , pslPageToken
+    , pslSortField
+    , pslMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementStrategies.list@ method which the
+-- 'PlacementStrategiesList' request conforms to.
+type PlacementStrategiesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementStrategies" :>
+               QueryParam "searchString" Text :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParam "sortOrder"
+                     PlacementStrategiesListSortOrder
+                     :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "sortField"
+                         PlacementStrategiesListSortField
+                         :>
+                         QueryParam "maxResults" (Textual Int32) :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] PlacementStrategiesListResponse
+
+-- | Retrieves a list of placement strategies, possibly filtered.
+--
+-- /See:/ 'placementStrategiesList' smart constructor.
+data PlacementStrategiesList = PlacementStrategiesList
+    { _pslSearchString :: !(Maybe Text)
+    , _pslIds          :: !(Maybe [Textual Int64])
+    , _pslProFileId    :: !(Textual Int64)
+    , _pslSortOrder    :: !(Maybe PlacementStrategiesListSortOrder)
+    , _pslPageToken    :: !(Maybe Text)
+    , _pslSortField    :: !(Maybe PlacementStrategiesListSortField)
+    , _pslMaxResults   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementStrategiesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pslSearchString'
+--
+-- * 'pslIds'
+--
+-- * 'pslProFileId'
+--
+-- * 'pslSortOrder'
+--
+-- * 'pslPageToken'
+--
+-- * 'pslSortField'
+--
+-- * 'pslMaxResults'
+placementStrategiesList
+    :: Int64 -- ^ 'pslProFileId'
+    -> PlacementStrategiesList
+placementStrategiesList pPslProFileId_ =
+    PlacementStrategiesList
+    { _pslSearchString = Nothing
+    , _pslIds = Nothing
+    , _pslProFileId = _Coerce # pPslProFileId_
+    , _pslSortOrder = Nothing
+    , _pslPageToken = Nothing
+    , _pslSortField = Nothing
+    , _pslMaxResults = Nothing
+    }
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"placementstrategy*2015\" will return objects with names
+-- like \"placementstrategy June 2015\", \"placementstrategy April 2015\",
+-- or simply \"placementstrategy 2015\". Most of the searches also add
+-- wildcards implicitly at the start and the end of the search string. For
+-- example, a search string of \"placementstrategy\" will match objects
+-- with name \"my placementstrategy\", \"placementstrategy 2015\", or
+-- simply \"placementstrategy\".
+pslSearchString :: Lens' PlacementStrategiesList (Maybe Text)
+pslSearchString
+  = lens _pslSearchString
+      (\ s a -> s{_pslSearchString = a})
+
+-- | Select only placement strategies with these IDs.
+pslIds :: Lens' PlacementStrategiesList [Int64]
+pslIds
+  = lens _pslIds (\ s a -> s{_pslIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+pslProFileId :: Lens' PlacementStrategiesList Int64
+pslProFileId
+  = lens _pslProFileId (\ s a -> s{_pslProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+pslSortOrder :: Lens' PlacementStrategiesList (Maybe PlacementStrategiesListSortOrder)
+pslSortOrder
+  = lens _pslSortOrder (\ s a -> s{_pslSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+pslPageToken :: Lens' PlacementStrategiesList (Maybe Text)
+pslPageToken
+  = lens _pslPageToken (\ s a -> s{_pslPageToken = a})
+
+-- | Field by which to sort the list.
+pslSortField :: Lens' PlacementStrategiesList (Maybe PlacementStrategiesListSortField)
+pslSortField
+  = lens _pslSortField (\ s a -> s{_pslSortField = a})
+
+-- | Maximum number of results to return.
+pslMaxResults :: Lens' PlacementStrategiesList (Maybe Int32)
+pslMaxResults
+  = lens _pslMaxResults
+      (\ s a -> s{_pslMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest PlacementStrategiesList where
+        type Rs PlacementStrategiesList =
+             PlacementStrategiesListResponse
+        requestClient PlacementStrategiesList{..}
+          = go _pslProFileId _pslSearchString
+              (_pslIds ^. _Default)
+              _pslSortOrder
+              _pslPageToken
+              _pslSortField
+              _pslMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementStrategiesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Patch.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Patch.hs
@@ -0,0 +1,114 @@
+{-# 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.DFAReporting.PlacementStrategies.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing placement strategy. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementStrategies.patch@.
+module Network.Google.Resource.DFAReporting.PlacementStrategies.Patch
+    (
+    -- * REST Resource
+      PlacementStrategiesPatchResource
+
+    -- * Creating a Request
+    , placementStrategiesPatch
+    , PlacementStrategiesPatch
+
+    -- * Request Lenses
+    , pspProFileId
+    , pspPayload
+    , pspId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementStrategies.patch@ method which the
+-- 'PlacementStrategiesPatch' request conforms to.
+type PlacementStrategiesPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementStrategies" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] PlacementStrategy :>
+                     Patch '[JSON] PlacementStrategy
+
+-- | Updates an existing placement strategy. This method supports patch
+-- semantics.
+--
+-- /See:/ 'placementStrategiesPatch' smart constructor.
+data PlacementStrategiesPatch = PlacementStrategiesPatch
+    { _pspProFileId :: !(Textual Int64)
+    , _pspPayload   :: !PlacementStrategy
+    , _pspId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementStrategiesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pspProFileId'
+--
+-- * 'pspPayload'
+--
+-- * 'pspId'
+placementStrategiesPatch
+    :: Int64 -- ^ 'pspProFileId'
+    -> PlacementStrategy -- ^ 'pspPayload'
+    -> Int64 -- ^ 'pspId'
+    -> PlacementStrategiesPatch
+placementStrategiesPatch pPspProFileId_ pPspPayload_ pPspId_ =
+    PlacementStrategiesPatch
+    { _pspProFileId = _Coerce # pPspProFileId_
+    , _pspPayload = pPspPayload_
+    , _pspId = _Coerce # pPspId_
+    }
+
+-- | User profile ID associated with this request.
+pspProFileId :: Lens' PlacementStrategiesPatch Int64
+pspProFileId
+  = lens _pspProFileId (\ s a -> s{_pspProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+pspPayload :: Lens' PlacementStrategiesPatch PlacementStrategy
+pspPayload
+  = lens _pspPayload (\ s a -> s{_pspPayload = a})
+
+-- | Placement strategy ID.
+pspId :: Lens' PlacementStrategiesPatch Int64
+pspId
+  = lens _pspId (\ s a -> s{_pspId = a}) . _Coerce
+
+instance GoogleRequest PlacementStrategiesPatch where
+        type Rs PlacementStrategiesPatch = PlacementStrategy
+        requestClient PlacementStrategiesPatch{..}
+          = go _pspProFileId (Just _pspId) (Just AltJSON)
+              _pspPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementStrategiesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Update.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Update.hs
@@ -0,0 +1,100 @@
+{-# 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.DFAReporting.PlacementStrategies.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing placement strategy.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placementStrategies.update@.
+module Network.Google.Resource.DFAReporting.PlacementStrategies.Update
+    (
+    -- * REST Resource
+      PlacementStrategiesUpdateResource
+
+    -- * Creating a Request
+    , placementStrategiesUpdate
+    , PlacementStrategiesUpdate
+
+    -- * Request Lenses
+    , psuProFileId
+    , psuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placementStrategies.update@ method which the
+-- 'PlacementStrategiesUpdate' request conforms to.
+type PlacementStrategiesUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placementStrategies" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] PlacementStrategy :>
+                   Put '[JSON] PlacementStrategy
+
+-- | Updates an existing placement strategy.
+--
+-- /See:/ 'placementStrategiesUpdate' smart constructor.
+data PlacementStrategiesUpdate = PlacementStrategiesUpdate
+    { _psuProFileId :: !(Textual Int64)
+    , _psuPayload   :: !PlacementStrategy
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementStrategiesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psuProFileId'
+--
+-- * 'psuPayload'
+placementStrategiesUpdate
+    :: Int64 -- ^ 'psuProFileId'
+    -> PlacementStrategy -- ^ 'psuPayload'
+    -> PlacementStrategiesUpdate
+placementStrategiesUpdate pPsuProFileId_ pPsuPayload_ =
+    PlacementStrategiesUpdate
+    { _psuProFileId = _Coerce # pPsuProFileId_
+    , _psuPayload = pPsuPayload_
+    }
+
+-- | User profile ID associated with this request.
+psuProFileId :: Lens' PlacementStrategiesUpdate Int64
+psuProFileId
+  = lens _psuProFileId (\ s a -> s{_psuProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+psuPayload :: Lens' PlacementStrategiesUpdate PlacementStrategy
+psuPayload
+  = lens _psuPayload (\ s a -> s{_psuPayload = a})
+
+instance GoogleRequest PlacementStrategiesUpdate
+         where
+        type Rs PlacementStrategiesUpdate = PlacementStrategy
+        requestClient PlacementStrategiesUpdate{..}
+          = go _psuProFileId (Just AltJSON) _psuPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementStrategiesUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/Generatetags.hs b/gen/Network/Google/Resource/DFAReporting/Placements/Generatetags.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/Generatetags.hs
@@ -0,0 +1,136 @@
+{-# 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.DFAReporting.Placements.Generatetags
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Generates tags for a placement.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placements.generatetags@.
+module Network.Google.Resource.DFAReporting.Placements.Generatetags
+    (
+    -- * REST Resource
+      PlacementsGeneratetagsResource
+
+    -- * Creating a Request
+    , placementsGeneratetags
+    , PlacementsGeneratetags
+
+    -- * Request Lenses
+    , pgsTagFormats
+    , pgsCampaignId
+    , pgsProFileId
+    , pgsPlacementIds
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placements.generatetags@ method which the
+-- 'PlacementsGeneratetags' request conforms to.
+type PlacementsGeneratetagsResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placements" :>
+               "generatetags" :>
+                 QueryParams "tagFormats"
+                   PlacementsGeneratetagsTagFormats
+                   :>
+                   QueryParam "campaignId" (Textual Int64) :>
+                     QueryParams "placementIds" (Textual Int64) :>
+                       QueryParam "alt" AltJSON :>
+                         Post '[JSON] PlacementsGenerateTagsResponse
+
+-- | Generates tags for a placement.
+--
+-- /See:/ 'placementsGeneratetags' smart constructor.
+data PlacementsGeneratetags = PlacementsGeneratetags
+    { _pgsTagFormats   :: !(Maybe [PlacementsGeneratetagsTagFormats])
+    , _pgsCampaignId   :: !(Maybe (Textual Int64))
+    , _pgsProFileId    :: !(Textual Int64)
+    , _pgsPlacementIds :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementsGeneratetags' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pgsTagFormats'
+--
+-- * 'pgsCampaignId'
+--
+-- * 'pgsProFileId'
+--
+-- * 'pgsPlacementIds'
+placementsGeneratetags
+    :: Int64 -- ^ 'pgsProFileId'
+    -> PlacementsGeneratetags
+placementsGeneratetags pPgsProFileId_ =
+    PlacementsGeneratetags
+    { _pgsTagFormats = Nothing
+    , _pgsCampaignId = Nothing
+    , _pgsProFileId = _Coerce # pPgsProFileId_
+    , _pgsPlacementIds = Nothing
+    }
+
+-- | Tag formats to generate for these placements.
+pgsTagFormats :: Lens' PlacementsGeneratetags [PlacementsGeneratetagsTagFormats]
+pgsTagFormats
+  = lens _pgsTagFormats
+      (\ s a -> s{_pgsTagFormats = a})
+      . _Default
+      . _Coerce
+
+-- | Generate placements belonging to this campaign. This is a required
+-- field.
+pgsCampaignId :: Lens' PlacementsGeneratetags (Maybe Int64)
+pgsCampaignId
+  = lens _pgsCampaignId
+      (\ s a -> s{_pgsCampaignId = a})
+      . mapping _Coerce
+
+-- | User profile ID associated with this request.
+pgsProFileId :: Lens' PlacementsGeneratetags Int64
+pgsProFileId
+  = lens _pgsProFileId (\ s a -> s{_pgsProFileId = a})
+      . _Coerce
+
+-- | Generate tags for these placements.
+pgsPlacementIds :: Lens' PlacementsGeneratetags [Int64]
+pgsPlacementIds
+  = lens _pgsPlacementIds
+      (\ s a -> s{_pgsPlacementIds = a})
+      . _Default
+      . _Coerce
+
+instance GoogleRequest PlacementsGeneratetags where
+        type Rs PlacementsGeneratetags =
+             PlacementsGenerateTagsResponse
+        requestClient PlacementsGeneratetags{..}
+          = go _pgsProFileId (_pgsTagFormats ^. _Default)
+              _pgsCampaignId
+              (_pgsPlacementIds ^. _Default)
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementsGeneratetagsResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/Get.hs b/gen/Network/Google/Resource/DFAReporting/Placements/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/Get.hs
@@ -0,0 +1,96 @@
+{-# 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.DFAReporting.Placements.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one placement by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placements.get@.
+module Network.Google.Resource.DFAReporting.Placements.Get
+    (
+    -- * REST Resource
+      PlacementsGetResource
+
+    -- * Creating a Request
+    , placementsGet
+    , PlacementsGet
+
+    -- * Request Lenses
+    , pgProFileId
+    , pgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placements.get@ method which the
+-- 'PlacementsGet' request conforms to.
+type PlacementsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placements" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Placement
+
+-- | Gets one placement by ID.
+--
+-- /See:/ 'placementsGet' smart constructor.
+data PlacementsGet = PlacementsGet
+    { _pgProFileId :: !(Textual Int64)
+    , _pgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pgProFileId'
+--
+-- * 'pgId'
+placementsGet
+    :: Int64 -- ^ 'pgProFileId'
+    -> Int64 -- ^ 'pgId'
+    -> PlacementsGet
+placementsGet pPgProFileId_ pPgId_ =
+    PlacementsGet
+    { _pgProFileId = _Coerce # pPgProFileId_
+    , _pgId = _Coerce # pPgId_
+    }
+
+-- | User profile ID associated with this request.
+pgProFileId :: Lens' PlacementsGet Int64
+pgProFileId
+  = lens _pgProFileId (\ s a -> s{_pgProFileId = a}) .
+      _Coerce
+
+-- | Placement ID.
+pgId :: Lens' PlacementsGet Int64
+pgId = lens _pgId (\ s a -> s{_pgId = a}) . _Coerce
+
+instance GoogleRequest PlacementsGet where
+        type Rs PlacementsGet = Placement
+        requestClient PlacementsGet{..}
+          = go _pgProFileId _pgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy PlacementsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Placements/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/Insert.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Placements.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new placement.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placements.insert@.
+module Network.Google.Resource.DFAReporting.Placements.Insert
+    (
+    -- * REST Resource
+      PlacementsInsertResource
+
+    -- * Creating a Request
+    , placementsInsert
+    , PlacementsInsert
+
+    -- * Request Lenses
+    , piProFileId
+    , piPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placements.insert@ method which the
+-- 'PlacementsInsert' request conforms to.
+type PlacementsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placements" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Placement :> Post '[JSON] Placement
+
+-- | Inserts a new placement.
+--
+-- /See:/ 'placementsInsert' smart constructor.
+data PlacementsInsert = PlacementsInsert
+    { _piProFileId :: !(Textual Int64)
+    , _piPayload   :: !Placement
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'piProFileId'
+--
+-- * 'piPayload'
+placementsInsert
+    :: Int64 -- ^ 'piProFileId'
+    -> Placement -- ^ 'piPayload'
+    -> PlacementsInsert
+placementsInsert pPiProFileId_ pPiPayload_ =
+    PlacementsInsert
+    { _piProFileId = _Coerce # pPiProFileId_
+    , _piPayload = pPiPayload_
+    }
+
+-- | User profile ID associated with this request.
+piProFileId :: Lens' PlacementsInsert Int64
+piProFileId
+  = lens _piProFileId (\ s a -> s{_piProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+piPayload :: Lens' PlacementsInsert Placement
+piPayload
+  = lens _piPayload (\ s a -> s{_piPayload = a})
+
+instance GoogleRequest PlacementsInsert where
+        type Rs PlacementsInsert = Placement
+        requestClient PlacementsInsert{..}
+          = go _piProFileId (Just AltJSON) _piPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/List.hs b/gen/Network/Google/Resource/DFAReporting/Placements/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/List.hs
@@ -0,0 +1,425 @@
+{-# 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.DFAReporting.Placements.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of placements, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placements.list@.
+module Network.Google.Resource.DFAReporting.Placements.List
+    (
+    -- * REST Resource
+      PlacementsListResource
+
+    -- * Creating a Request
+    , placementsList
+    , PlacementsList
+
+    -- * Request Lenses
+    , pPlacementStrategyIds
+    , pContentCategoryIds
+    , pMaxEndDate
+    , pCampaignIds
+    , pPricingTypes
+    , pSearchString
+    , pSizeIds
+    , pIds
+    , pProFileId
+    , pGroupIds
+    , pDirectorySiteIds
+    , pSortOrder
+    , pPaymentSource
+    , pSiteIds
+    , pPageToken
+    , pSortField
+    , pCompatibilities
+    , pMaxStartDate
+    , pAdvertiserIds
+    , pMinStartDate
+    , pArchived
+    , pMaxResults
+    , pMinEndDate
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placements.list@ method which the
+-- 'PlacementsList' request conforms to.
+type PlacementsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placements" :>
+               QueryParams "placementStrategyIds" (Textual Int64) :>
+                 QueryParams "contentCategoryIds" (Textual Int64) :>
+                   QueryParam "maxEndDate" Text :>
+                     QueryParams "campaignIds" (Textual Int64) :>
+                       QueryParams "pricingTypes" PlacementsListPricingTypes
+                         :>
+                         QueryParam "searchString" Text :>
+                           QueryParams "sizeIds" (Textual Int64) :>
+                             QueryParams "ids" (Textual Int64) :>
+                               QueryParams "groupIds" (Textual Int64) :>
+                                 QueryParams "directorySiteIds" (Textual Int64)
+                                   :>
+                                   QueryParam "sortOrder"
+                                     PlacementsListSortOrder
+                                     :>
+                                     QueryParam "paymentSource"
+                                       PlacementsListPaymentSource
+                                       :>
+                                       QueryParams "siteIds" (Textual Int64) :>
+                                         QueryParam "pageToken" Text :>
+                                           QueryParam "sortField"
+                                             PlacementsListSortField
+                                             :>
+                                             QueryParams "compatibilities"
+                                               PlacementsListCompatibilities
+                                               :>
+                                               QueryParam "maxStartDate" Text :>
+                                                 QueryParams "advertiserIds"
+                                                   (Textual Int64)
+                                                   :>
+                                                   QueryParam "minStartDate"
+                                                     Text
+                                                     :>
+                                                     QueryParam "archived" Bool
+                                                       :>
+                                                       QueryParam "maxResults"
+                                                         (Textual Int32)
+                                                         :>
+                                                         QueryParam "minEndDate"
+                                                           Text
+                                                           :>
+                                                           QueryParam "alt"
+                                                             AltJSON
+                                                             :>
+                                                             Get '[JSON]
+                                                               PlacementsListResponse
+
+-- | Retrieves a list of placements, possibly filtered.
+--
+-- /See:/ 'placementsList' smart constructor.
+data PlacementsList = PlacementsList
+    { _pPlacementStrategyIds :: !(Maybe [Textual Int64])
+    , _pContentCategoryIds   :: !(Maybe [Textual Int64])
+    , _pMaxEndDate           :: !(Maybe Text)
+    , _pCampaignIds          :: !(Maybe [Textual Int64])
+    , _pPricingTypes         :: !(Maybe [PlacementsListPricingTypes])
+    , _pSearchString         :: !(Maybe Text)
+    , _pSizeIds              :: !(Maybe [Textual Int64])
+    , _pIds                  :: !(Maybe [Textual Int64])
+    , _pProFileId            :: !(Textual Int64)
+    , _pGroupIds             :: !(Maybe [Textual Int64])
+    , _pDirectorySiteIds     :: !(Maybe [Textual Int64])
+    , _pSortOrder            :: !(Maybe PlacementsListSortOrder)
+    , _pPaymentSource        :: !(Maybe PlacementsListPaymentSource)
+    , _pSiteIds              :: !(Maybe [Textual Int64])
+    , _pPageToken            :: !(Maybe Text)
+    , _pSortField            :: !(Maybe PlacementsListSortField)
+    , _pCompatibilities      :: !(Maybe [PlacementsListCompatibilities])
+    , _pMaxStartDate         :: !(Maybe Text)
+    , _pAdvertiserIds        :: !(Maybe [Textual Int64])
+    , _pMinStartDate         :: !(Maybe Text)
+    , _pArchived             :: !(Maybe Bool)
+    , _pMaxResults           :: !(Maybe (Textual Int32))
+    , _pMinEndDate           :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pPlacementStrategyIds'
+--
+-- * 'pContentCategoryIds'
+--
+-- * 'pMaxEndDate'
+--
+-- * 'pCampaignIds'
+--
+-- * 'pPricingTypes'
+--
+-- * 'pSearchString'
+--
+-- * 'pSizeIds'
+--
+-- * 'pIds'
+--
+-- * 'pProFileId'
+--
+-- * 'pGroupIds'
+--
+-- * 'pDirectorySiteIds'
+--
+-- * 'pSortOrder'
+--
+-- * 'pPaymentSource'
+--
+-- * 'pSiteIds'
+--
+-- * 'pPageToken'
+--
+-- * 'pSortField'
+--
+-- * 'pCompatibilities'
+--
+-- * 'pMaxStartDate'
+--
+-- * 'pAdvertiserIds'
+--
+-- * 'pMinStartDate'
+--
+-- * 'pArchived'
+--
+-- * 'pMaxResults'
+--
+-- * 'pMinEndDate'
+placementsList
+    :: Int64 -- ^ 'pProFileId'
+    -> PlacementsList
+placementsList pPProFileId_ =
+    PlacementsList
+    { _pPlacementStrategyIds = Nothing
+    , _pContentCategoryIds = Nothing
+    , _pMaxEndDate = Nothing
+    , _pCampaignIds = Nothing
+    , _pPricingTypes = Nothing
+    , _pSearchString = Nothing
+    , _pSizeIds = Nothing
+    , _pIds = Nothing
+    , _pProFileId = _Coerce # pPProFileId_
+    , _pGroupIds = Nothing
+    , _pDirectorySiteIds = Nothing
+    , _pSortOrder = Nothing
+    , _pPaymentSource = Nothing
+    , _pSiteIds = Nothing
+    , _pPageToken = Nothing
+    , _pSortField = Nothing
+    , _pCompatibilities = Nothing
+    , _pMaxStartDate = Nothing
+    , _pAdvertiserIds = Nothing
+    , _pMinStartDate = Nothing
+    , _pArchived = Nothing
+    , _pMaxResults = Nothing
+    , _pMinEndDate = Nothing
+    }
+
+-- | Select only placements that are associated with these placement
+-- strategies.
+pPlacementStrategyIds :: Lens' PlacementsList [Int64]
+pPlacementStrategyIds
+  = lens _pPlacementStrategyIds
+      (\ s a -> s{_pPlacementStrategyIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only placements that are associated with these content
+-- categories.
+pContentCategoryIds :: Lens' PlacementsList [Int64]
+pContentCategoryIds
+  = lens _pContentCategoryIds
+      (\ s a -> s{_pContentCategoryIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only placements or placement groups whose end date is on or
+-- before the specified maxEndDate. The date should be formatted as
+-- \"yyyy-MM-dd\".
+pMaxEndDate :: Lens' PlacementsList (Maybe Text)
+pMaxEndDate
+  = lens _pMaxEndDate (\ s a -> s{_pMaxEndDate = a})
+
+-- | Select only placements that belong to these campaigns.
+pCampaignIds :: Lens' PlacementsList [Int64]
+pCampaignIds
+  = lens _pCampaignIds (\ s a -> s{_pCampaignIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only placements with these pricing types.
+pPricingTypes :: Lens' PlacementsList [PlacementsListPricingTypes]
+pPricingTypes
+  = lens _pPricingTypes
+      (\ s a -> s{_pPricingTypes = a})
+      . _Default
+      . _Coerce
+
+-- | Allows searching for placements by name or ID. Wildcards (*) are
+-- allowed. For example, \"placement*2015\" will return placements with
+-- names like \"placement June 2015\", \"placement May 2015\", or simply
+-- \"placements 2015\". Most of the searches also add wildcards implicitly
+-- at the start and the end of the search string. For example, a search
+-- string of \"placement\" will match placements with name \"my
+-- placement\", \"placement 2015\", or simply \"placement\".
+pSearchString :: Lens' PlacementsList (Maybe Text)
+pSearchString
+  = lens _pSearchString
+      (\ s a -> s{_pSearchString = a})
+
+-- | Select only placements that are associated with these sizes.
+pSizeIds :: Lens' PlacementsList [Int64]
+pSizeIds
+  = lens _pSizeIds (\ s a -> s{_pSizeIds = a}) .
+      _Default
+      . _Coerce
+
+-- | Select only placements with these IDs.
+pIds :: Lens' PlacementsList [Int64]
+pIds
+  = lens _pIds (\ s a -> s{_pIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+pProFileId :: Lens' PlacementsList Int64
+pProFileId
+  = lens _pProFileId (\ s a -> s{_pProFileId = a}) .
+      _Coerce
+
+-- | Select only placements that belong to these placement groups.
+pGroupIds :: Lens' PlacementsList [Int64]
+pGroupIds
+  = lens _pGroupIds (\ s a -> s{_pGroupIds = a}) .
+      _Default
+      . _Coerce
+
+-- | Select only placements that are associated with these directory sites.
+pDirectorySiteIds :: Lens' PlacementsList [Int64]
+pDirectorySiteIds
+  = lens _pDirectorySiteIds
+      (\ s a -> s{_pDirectorySiteIds = a})
+      . _Default
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+pSortOrder :: Lens' PlacementsList (Maybe PlacementsListSortOrder)
+pSortOrder
+  = lens _pSortOrder (\ s a -> s{_pSortOrder = a})
+
+-- | Select only placements with this payment source.
+pPaymentSource :: Lens' PlacementsList (Maybe PlacementsListPaymentSource)
+pPaymentSource
+  = lens _pPaymentSource
+      (\ s a -> s{_pPaymentSource = a})
+
+-- | Select only placements that are associated with these sites.
+pSiteIds :: Lens' PlacementsList [Int64]
+pSiteIds
+  = lens _pSiteIds (\ s a -> s{_pSiteIds = a}) .
+      _Default
+      . _Coerce
+
+-- | Value of the nextPageToken from the previous result page.
+pPageToken :: Lens' PlacementsList (Maybe Text)
+pPageToken
+  = lens _pPageToken (\ s a -> s{_pPageToken = a})
+
+-- | Field by which to sort the list.
+pSortField :: Lens' PlacementsList (Maybe PlacementsListSortField)
+pSortField
+  = lens _pSortField (\ s a -> s{_pSortField = a})
+
+-- | Select only placements that are associated with these compatibilities.
+-- WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on
+-- mobile devices for regular or interstitial ads respectively. APP and
+-- APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers
+-- to rendering in in-stream video ads developed with the VAST standard.
+pCompatibilities :: Lens' PlacementsList [PlacementsListCompatibilities]
+pCompatibilities
+  = lens _pCompatibilities
+      (\ s a -> s{_pCompatibilities = a})
+      . _Default
+      . _Coerce
+
+-- | Select only placements or placement groups whose start date is on or
+-- before the specified maxStartDate. The date should be formatted as
+-- \"yyyy-MM-dd\".
+pMaxStartDate :: Lens' PlacementsList (Maybe Text)
+pMaxStartDate
+  = lens _pMaxStartDate
+      (\ s a -> s{_pMaxStartDate = a})
+
+-- | Select only placements that belong to these advertisers.
+pAdvertiserIds :: Lens' PlacementsList [Int64]
+pAdvertiserIds
+  = lens _pAdvertiserIds
+      (\ s a -> s{_pAdvertiserIds = a})
+      . _Default
+      . _Coerce
+
+-- | Select only placements or placement groups whose start date is on or
+-- after the specified minStartDate. The date should be formatted as
+-- \"yyyy-MM-dd\".
+pMinStartDate :: Lens' PlacementsList (Maybe Text)
+pMinStartDate
+  = lens _pMinStartDate
+      (\ s a -> s{_pMinStartDate = a})
+
+-- | Select only archived placements. Don\'t set this field to select both
+-- archived and non-archived placements.
+pArchived :: Lens' PlacementsList (Maybe Bool)
+pArchived
+  = lens _pArchived (\ s a -> s{_pArchived = a})
+
+-- | Maximum number of results to return.
+pMaxResults :: Lens' PlacementsList (Maybe Int32)
+pMaxResults
+  = lens _pMaxResults (\ s a -> s{_pMaxResults = a}) .
+      mapping _Coerce
+
+-- | Select only placements or placement groups whose end date is on or after
+-- the specified minEndDate. The date should be formatted as
+-- \"yyyy-MM-dd\".
+pMinEndDate :: Lens' PlacementsList (Maybe Text)
+pMinEndDate
+  = lens _pMinEndDate (\ s a -> s{_pMinEndDate = a})
+
+instance GoogleRequest PlacementsList where
+        type Rs PlacementsList = PlacementsListResponse
+        requestClient PlacementsList{..}
+          = go _pProFileId (_pPlacementStrategyIds ^. _Default)
+              (_pContentCategoryIds ^. _Default)
+              _pMaxEndDate
+              (_pCampaignIds ^. _Default)
+              (_pPricingTypes ^. _Default)
+              _pSearchString
+              (_pSizeIds ^. _Default)
+              (_pIds ^. _Default)
+              (_pGroupIds ^. _Default)
+              (_pDirectorySiteIds ^. _Default)
+              _pSortOrder
+              _pPaymentSource
+              (_pSiteIds ^. _Default)
+              _pPageToken
+              _pSortField
+              (_pCompatibilities ^. _Default)
+              _pMaxStartDate
+              (_pAdvertiserIds ^. _Default)
+              _pMinStartDate
+              _pArchived
+              _pMaxResults
+              _pMinEndDate
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy PlacementsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Placements/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/Patch.hs
@@ -0,0 +1,110 @@
+{-# 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.DFAReporting.Placements.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing placement. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placements.patch@.
+module Network.Google.Resource.DFAReporting.Placements.Patch
+    (
+    -- * REST Resource
+      PlacementsPatchResource
+
+    -- * Creating a Request
+    , placementsPatch
+    , PlacementsPatch
+
+    -- * Request Lenses
+    , ppProFileId
+    , ppPayload
+    , ppId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placements.patch@ method which the
+-- 'PlacementsPatch' request conforms to.
+type PlacementsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placements" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] Placement :> Patch '[JSON] Placement
+
+-- | Updates an existing placement. This method supports patch semantics.
+--
+-- /See:/ 'placementsPatch' smart constructor.
+data PlacementsPatch = PlacementsPatch
+    { _ppProFileId :: !(Textual Int64)
+    , _ppPayload   :: !Placement
+    , _ppId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ppProFileId'
+--
+-- * 'ppPayload'
+--
+-- * 'ppId'
+placementsPatch
+    :: Int64 -- ^ 'ppProFileId'
+    -> Placement -- ^ 'ppPayload'
+    -> Int64 -- ^ 'ppId'
+    -> PlacementsPatch
+placementsPatch pPpProFileId_ pPpPayload_ pPpId_ =
+    PlacementsPatch
+    { _ppProFileId = _Coerce # pPpProFileId_
+    , _ppPayload = pPpPayload_
+    , _ppId = _Coerce # pPpId_
+    }
+
+-- | User profile ID associated with this request.
+ppProFileId :: Lens' PlacementsPatch Int64
+ppProFileId
+  = lens _ppProFileId (\ s a -> s{_ppProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+ppPayload :: Lens' PlacementsPatch Placement
+ppPayload
+  = lens _ppPayload (\ s a -> s{_ppPayload = a})
+
+-- | Placement ID.
+ppId :: Lens' PlacementsPatch Int64
+ppId = lens _ppId (\ s a -> s{_ppId = a}) . _Coerce
+
+instance GoogleRequest PlacementsPatch where
+        type Rs PlacementsPatch = Placement
+        requestClient PlacementsPatch{..}
+          = go _ppProFileId (Just _ppId) (Just AltJSON)
+              _ppPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/Update.hs b/gen/Network/Google/Resource/DFAReporting/Placements/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/Update.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Placements.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing placement.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.placements.update@.
+module Network.Google.Resource.DFAReporting.Placements.Update
+    (
+    -- * REST Resource
+      PlacementsUpdateResource
+
+    -- * Creating a Request
+    , placementsUpdate
+    , PlacementsUpdate
+
+    -- * Request Lenses
+    , puProFileId
+    , puPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.placements.update@ method which the
+-- 'PlacementsUpdate' request conforms to.
+type PlacementsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "placements" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Placement :> Put '[JSON] Placement
+
+-- | Updates an existing placement.
+--
+-- /See:/ 'placementsUpdate' smart constructor.
+data PlacementsUpdate = PlacementsUpdate
+    { _puProFileId :: !(Textual Int64)
+    , _puPayload   :: !Placement
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'puProFileId'
+--
+-- * 'puPayload'
+placementsUpdate
+    :: Int64 -- ^ 'puProFileId'
+    -> Placement -- ^ 'puPayload'
+    -> PlacementsUpdate
+placementsUpdate pPuProFileId_ pPuPayload_ =
+    PlacementsUpdate
+    { _puProFileId = _Coerce # pPuProFileId_
+    , _puPayload = pPuPayload_
+    }
+
+-- | User profile ID associated with this request.
+puProFileId :: Lens' PlacementsUpdate Int64
+puProFileId
+  = lens _puProFileId (\ s a -> s{_puProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+puPayload :: Lens' PlacementsUpdate Placement
+puPayload
+  = lens _puPayload (\ s a -> s{_puPayload = a})
+
+instance GoogleRequest PlacementsUpdate where
+        type Rs PlacementsUpdate = Placement
+        requestClient PlacementsUpdate{..}
+          = go _puProFileId (Just AltJSON) _puPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlacementsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlatformTypes/Get.hs b/gen/Network/Google/Resource/DFAReporting/PlatformTypes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlatformTypes/Get.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.PlatformTypes.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one platform type by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.platformTypes.get@.
+module Network.Google.Resource.DFAReporting.PlatformTypes.Get
+    (
+    -- * REST Resource
+      PlatformTypesGetResource
+
+    -- * Creating a Request
+    , platformTypesGet
+    , PlatformTypesGet
+
+    -- * Request Lenses
+    , ptgProFileId
+    , ptgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.platformTypes.get@ method which the
+-- 'PlatformTypesGet' request conforms to.
+type PlatformTypesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "platformTypes" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] PlatformType
+
+-- | Gets one platform type by ID.
+--
+-- /See:/ 'platformTypesGet' smart constructor.
+data PlatformTypesGet = PlatformTypesGet
+    { _ptgProFileId :: !(Textual Int64)
+    , _ptgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlatformTypesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptgProFileId'
+--
+-- * 'ptgId'
+platformTypesGet
+    :: Int64 -- ^ 'ptgProFileId'
+    -> Int64 -- ^ 'ptgId'
+    -> PlatformTypesGet
+platformTypesGet pPtgProFileId_ pPtgId_ =
+    PlatformTypesGet
+    { _ptgProFileId = _Coerce # pPtgProFileId_
+    , _ptgId = _Coerce # pPtgId_
+    }
+
+-- | User profile ID associated with this request.
+ptgProFileId :: Lens' PlatformTypesGet Int64
+ptgProFileId
+  = lens _ptgProFileId (\ s a -> s{_ptgProFileId = a})
+      . _Coerce
+
+-- | Platform type ID.
+ptgId :: Lens' PlatformTypesGet Int64
+ptgId
+  = lens _ptgId (\ s a -> s{_ptgId = a}) . _Coerce
+
+instance GoogleRequest PlatformTypesGet where
+        type Rs PlatformTypesGet = PlatformType
+        requestClient PlatformTypesGet{..}
+          = go _ptgProFileId _ptgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlatformTypesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PlatformTypes/List.hs b/gen/Network/Google/Resource/DFAReporting/PlatformTypes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PlatformTypes/List.hs
@@ -0,0 +1,86 @@
+{-# 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.DFAReporting.PlatformTypes.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of platform types.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.platformTypes.list@.
+module Network.Google.Resource.DFAReporting.PlatformTypes.List
+    (
+    -- * REST Resource
+      PlatformTypesListResource
+
+    -- * Creating a Request
+    , platformTypesList
+    , PlatformTypesList
+
+    -- * Request Lenses
+    , ptlProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.platformTypes.list@ method which the
+-- 'PlatformTypesList' request conforms to.
+type PlatformTypesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "platformTypes" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] PlatformTypesListResponse
+
+-- | Retrieves a list of platform types.
+--
+-- /See:/ 'platformTypesList' smart constructor.
+newtype PlatformTypesList = PlatformTypesList
+    { _ptlProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlatformTypesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptlProFileId'
+platformTypesList
+    :: Int64 -- ^ 'ptlProFileId'
+    -> PlatformTypesList
+platformTypesList pPtlProFileId_ =
+    PlatformTypesList
+    { _ptlProFileId = _Coerce # pPtlProFileId_
+    }
+
+-- | User profile ID associated with this request.
+ptlProFileId :: Lens' PlatformTypesList Int64
+ptlProFileId
+  = lens _ptlProFileId (\ s a -> s{_ptlProFileId = a})
+      . _Coerce
+
+instance GoogleRequest PlatformTypesList where
+        type Rs PlatformTypesList = PlatformTypesListResponse
+        requestClient PlatformTypesList{..}
+          = go _ptlProFileId (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PlatformTypesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PostalCodes/Get.hs b/gen/Network/Google/Resource/DFAReporting/PostalCodes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PostalCodes/Get.hs
@@ -0,0 +1,96 @@
+{-# 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.DFAReporting.PostalCodes.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one postal code by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.postalCodes.get@.
+module Network.Google.Resource.DFAReporting.PostalCodes.Get
+    (
+    -- * REST Resource
+      PostalCodesGetResource
+
+    -- * Creating a Request
+    , postalCodesGet
+    , PostalCodesGet
+
+    -- * Request Lenses
+    , pcgProFileId
+    , pcgCode
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.postalCodes.get@ method which the
+-- 'PostalCodesGet' request conforms to.
+type PostalCodesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "postalCodes" :>
+               Capture "code" Text :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] PostalCode
+
+-- | Gets one postal code by ID.
+--
+-- /See:/ 'postalCodesGet' smart constructor.
+data PostalCodesGet = PostalCodesGet
+    { _pcgProFileId :: !(Textual Int64)
+    , _pcgCode      :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PostalCodesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pcgProFileId'
+--
+-- * 'pcgCode'
+postalCodesGet
+    :: Int64 -- ^ 'pcgProFileId'
+    -> Text -- ^ 'pcgCode'
+    -> PostalCodesGet
+postalCodesGet pPcgProFileId_ pPcgCode_ =
+    PostalCodesGet
+    { _pcgProFileId = _Coerce # pPcgProFileId_
+    , _pcgCode = pPcgCode_
+    }
+
+-- | User profile ID associated with this request.
+pcgProFileId :: Lens' PostalCodesGet Int64
+pcgProFileId
+  = lens _pcgProFileId (\ s a -> s{_pcgProFileId = a})
+      . _Coerce
+
+-- | Postal code ID.
+pcgCode :: Lens' PostalCodesGet Text
+pcgCode = lens _pcgCode (\ s a -> s{_pcgCode = a})
+
+instance GoogleRequest PostalCodesGet where
+        type Rs PostalCodesGet = PostalCode
+        requestClient PostalCodesGet{..}
+          = go _pcgProFileId _pcgCode (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy PostalCodesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/PostalCodes/List.hs b/gen/Network/Google/Resource/DFAReporting/PostalCodes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/PostalCodes/List.hs
@@ -0,0 +1,86 @@
+{-# 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.DFAReporting.PostalCodes.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of postal codes.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.postalCodes.list@.
+module Network.Google.Resource.DFAReporting.PostalCodes.List
+    (
+    -- * REST Resource
+      PostalCodesListResource
+
+    -- * Creating a Request
+    , postalCodesList
+    , PostalCodesList
+
+    -- * Request Lenses
+    , pclProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.postalCodes.list@ method which the
+-- 'PostalCodesList' request conforms to.
+type PostalCodesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "postalCodes" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] PostalCodesListResponse
+
+-- | Retrieves a list of postal codes.
+--
+-- /See:/ 'postalCodesList' smart constructor.
+newtype PostalCodesList = PostalCodesList
+    { _pclProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PostalCodesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pclProFileId'
+postalCodesList
+    :: Int64 -- ^ 'pclProFileId'
+    -> PostalCodesList
+postalCodesList pPclProFileId_ =
+    PostalCodesList
+    { _pclProFileId = _Coerce # pPclProFileId_
+    }
+
+-- | User profile ID associated with this request.
+pclProFileId :: Lens' PostalCodesList Int64
+pclProFileId
+  = lens _pclProFileId (\ s a -> s{_pclProFileId = a})
+      . _Coerce
+
+instance GoogleRequest PostalCodesList where
+        type Rs PostalCodesList = PostalCodesListResponse
+        requestClient PostalCodesList{..}
+          = go _pclProFileId (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy PostalCodesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Projects/Get.hs b/gen/Network/Google/Resource/DFAReporting/Projects/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Projects/Get.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Projects.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one project by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.projects.get@.
+module Network.Google.Resource.DFAReporting.Projects.Get
+    (
+    -- * REST Resource
+      ProjectsGetResource
+
+    -- * Creating a Request
+    , projectsGet
+    , ProjectsGet
+
+    -- * Request Lenses
+    , proProFileId
+    , proId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.projects.get@ method which the
+-- 'ProjectsGet' request conforms to.
+type ProjectsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "projects" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Project
+
+-- | Gets one project by ID.
+--
+-- /See:/ 'projectsGet' smart constructor.
+data ProjectsGet = ProjectsGet
+    { _proProFileId :: !(Textual Int64)
+    , _proId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'proProFileId'
+--
+-- * 'proId'
+projectsGet
+    :: Int64 -- ^ 'proProFileId'
+    -> Int64 -- ^ 'proId'
+    -> ProjectsGet
+projectsGet pProProFileId_ pProId_ =
+    ProjectsGet
+    { _proProFileId = _Coerce # pProProFileId_
+    , _proId = _Coerce # pProId_
+    }
+
+-- | User profile ID associated with this request.
+proProFileId :: Lens' ProjectsGet Int64
+proProFileId
+  = lens _proProFileId (\ s a -> s{_proProFileId = a})
+      . _Coerce
+
+-- | Project ID.
+proId :: Lens' ProjectsGet Int64
+proId
+  = lens _proId (\ s a -> s{_proId = a}) . _Coerce
+
+instance GoogleRequest ProjectsGet where
+        type Rs ProjectsGet = Project
+        requestClient ProjectsGet{..}
+          = go _proProFileId _proId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ProjectsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Projects/List.hs b/gen/Network/Google/Resource/DFAReporting/Projects/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Projects/List.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.DFAReporting.Projects.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of projects, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.projects.list@.
+module Network.Google.Resource.DFAReporting.Projects.List
+    (
+    -- * REST Resource
+      ProjectsListResource
+
+    -- * Creating a Request
+    , projectsList
+    , ProjectsList
+
+    -- * Request Lenses
+    , plSearchString
+    , plIds
+    , plProFileId
+    , plSortOrder
+    , plPageToken
+    , plSortField
+    , plAdvertiserIds
+    , plMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.projects.list@ method which the
+-- 'ProjectsList' request conforms to.
+type ProjectsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "projects" :>
+               QueryParam "searchString" Text :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParam "sortOrder" ProjectsListSortOrder :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "sortField" ProjectsListSortField :>
+                         QueryParams "advertiserIds" (Textual Int64) :>
+                           QueryParam "maxResults" (Textual Int32) :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ProjectsListResponse
+
+-- | Retrieves a list of projects, possibly filtered.
+--
+-- /See:/ 'projectsList' smart constructor.
+data ProjectsList = ProjectsList
+    { _plSearchString  :: !(Maybe Text)
+    , _plIds           :: !(Maybe [Textual Int64])
+    , _plProFileId     :: !(Textual Int64)
+    , _plSortOrder     :: !(Maybe ProjectsListSortOrder)
+    , _plPageToken     :: !(Maybe Text)
+    , _plSortField     :: !(Maybe ProjectsListSortField)
+    , _plAdvertiserIds :: !(Maybe [Textual Int64])
+    , _plMaxResults    :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plSearchString'
+--
+-- * 'plIds'
+--
+-- * 'plProFileId'
+--
+-- * 'plSortOrder'
+--
+-- * 'plPageToken'
+--
+-- * 'plSortField'
+--
+-- * 'plAdvertiserIds'
+--
+-- * 'plMaxResults'
+projectsList
+    :: Int64 -- ^ 'plProFileId'
+    -> ProjectsList
+projectsList pPlProFileId_ =
+    ProjectsList
+    { _plSearchString = Nothing
+    , _plIds = Nothing
+    , _plProFileId = _Coerce # pPlProFileId_
+    , _plSortOrder = Nothing
+    , _plPageToken = Nothing
+    , _plSortField = Nothing
+    , _plAdvertiserIds = Nothing
+    , _plMaxResults = Nothing
+    }
+
+-- | Allows searching for projects by name or ID. Wildcards (*) are allowed.
+-- For example, \"project*2015\" will return projects with names like
+-- \"project June 2015\", \"project April 2015\", or simply \"project
+-- 2015\". Most of the searches also add wildcards implicitly at the start
+-- and the end of the search string. For example, a search string of
+-- \"project\" will match projects with name \"my project\", \"project
+-- 2015\", or simply \"project\".
+plSearchString :: Lens' ProjectsList (Maybe Text)
+plSearchString
+  = lens _plSearchString
+      (\ s a -> s{_plSearchString = a})
+
+-- | Select only projects with these IDs.
+plIds :: Lens' ProjectsList [Int64]
+plIds
+  = lens _plIds (\ s a -> s{_plIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+plProFileId :: Lens' ProjectsList Int64
+plProFileId
+  = lens _plProFileId (\ s a -> s{_plProFileId = a}) .
+      _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+plSortOrder :: Lens' ProjectsList (Maybe ProjectsListSortOrder)
+plSortOrder
+  = lens _plSortOrder (\ s a -> s{_plSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+plPageToken :: Lens' ProjectsList (Maybe Text)
+plPageToken
+  = lens _plPageToken (\ s a -> s{_plPageToken = a})
+
+-- | Field by which to sort the list.
+plSortField :: Lens' ProjectsList (Maybe ProjectsListSortField)
+plSortField
+  = lens _plSortField (\ s a -> s{_plSortField = a})
+
+-- | Select only projects with these advertiser IDs.
+plAdvertiserIds :: Lens' ProjectsList [Int64]
+plAdvertiserIds
+  = lens _plAdvertiserIds
+      (\ s a -> s{_plAdvertiserIds = a})
+      . _Default
+      . _Coerce
+
+-- | Maximum number of results to return.
+plMaxResults :: Lens' ProjectsList (Maybe Int32)
+plMaxResults
+  = lens _plMaxResults (\ s a -> s{_plMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest ProjectsList where
+        type Rs ProjectsList = ProjectsListResponse
+        requestClient ProjectsList{..}
+          = go _plProFileId _plSearchString
+              (_plIds ^. _Default)
+              _plSortOrder
+              _plPageToken
+              _plSortField
+              (_plAdvertiserIds ^. _Default)
+              _plMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ProjectsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Regions/List.hs b/gen/Network/Google/Resource/DFAReporting/Regions/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Regions/List.hs
@@ -0,0 +1,85 @@
+{-# 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.DFAReporting.Regions.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of regions.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.regions.list@.
+module Network.Google.Resource.DFAReporting.Regions.List
+    (
+    -- * REST Resource
+      RegionsListResource
+
+    -- * Creating a Request
+    , regionsList
+    , RegionsList
+
+    -- * Request Lenses
+    , rProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.regions.list@ method which the
+-- 'RegionsList' request conforms to.
+type RegionsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "regions" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] RegionsListResponse
+
+-- | Retrieves a list of regions.
+--
+-- /See:/ 'regionsList' smart constructor.
+newtype RegionsList = RegionsList
+    { _rProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RegionsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rProFileId'
+regionsList
+    :: Int64 -- ^ 'rProFileId'
+    -> RegionsList
+regionsList pRProFileId_ =
+    RegionsList
+    { _rProFileId = _Coerce # pRProFileId_
+    }
+
+-- | User profile ID associated with this request.
+rProFileId :: Lens' RegionsList Int64
+rProFileId
+  = lens _rProFileId (\ s a -> s{_rProFileId = a}) .
+      _Coerce
+
+instance GoogleRequest RegionsList where
+        type Rs RegionsList = RegionsListResponse
+        requestClient RegionsList{..}
+          = go _rProFileId (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy RegionsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Get.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Get.hs
@@ -0,0 +1,104 @@
+{-# 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.DFAReporting.RemarketingListShares.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one remarketing list share by remarketing list ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.remarketingListShares.get@.
+module Network.Google.Resource.DFAReporting.RemarketingListShares.Get
+    (
+    -- * REST Resource
+      RemarketingListSharesGetResource
+
+    -- * Creating a Request
+    , remarketingListSharesGet
+    , RemarketingListSharesGet
+
+    -- * Request Lenses
+    , rlsgProFileId
+    , rlsgRemarketingListId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.remarketingListShares.get@ method which the
+-- 'RemarketingListSharesGet' request conforms to.
+type RemarketingListSharesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "remarketingListShares" :>
+               Capture "remarketingListId" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] RemarketingListShare
+
+-- | Gets one remarketing list share by remarketing list ID.
+--
+-- /See:/ 'remarketingListSharesGet' smart constructor.
+data RemarketingListSharesGet = RemarketingListSharesGet
+    { _rlsgProFileId         :: !(Textual Int64)
+    , _rlsgRemarketingListId :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListSharesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlsgProFileId'
+--
+-- * 'rlsgRemarketingListId'
+remarketingListSharesGet
+    :: Int64 -- ^ 'rlsgProFileId'
+    -> Int64 -- ^ 'rlsgRemarketingListId'
+    -> RemarketingListSharesGet
+remarketingListSharesGet pRlsgProFileId_ pRlsgRemarketingListId_ =
+    RemarketingListSharesGet
+    { _rlsgProFileId = _Coerce # pRlsgProFileId_
+    , _rlsgRemarketingListId = _Coerce # pRlsgRemarketingListId_
+    }
+
+-- | User profile ID associated with this request.
+rlsgProFileId :: Lens' RemarketingListSharesGet Int64
+rlsgProFileId
+  = lens _rlsgProFileId
+      (\ s a -> s{_rlsgProFileId = a})
+      . _Coerce
+
+-- | Remarketing list ID.
+rlsgRemarketingListId :: Lens' RemarketingListSharesGet Int64
+rlsgRemarketingListId
+  = lens _rlsgRemarketingListId
+      (\ s a -> s{_rlsgRemarketingListId = a})
+      . _Coerce
+
+instance GoogleRequest RemarketingListSharesGet where
+        type Rs RemarketingListSharesGet =
+             RemarketingListShare
+        requestClient RemarketingListSharesGet{..}
+          = go _rlsgProFileId _rlsgRemarketingListId
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy RemarketingListSharesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Patch.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Patch.hs
@@ -0,0 +1,120 @@
+{-# 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.DFAReporting.RemarketingListShares.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing remarketing list share. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.remarketingListShares.patch@.
+module Network.Google.Resource.DFAReporting.RemarketingListShares.Patch
+    (
+    -- * REST Resource
+      RemarketingListSharesPatchResource
+
+    -- * Creating a Request
+    , remarketingListSharesPatch
+    , RemarketingListSharesPatch
+
+    -- * Request Lenses
+    , rlspProFileId
+    , rlspPayload
+    , rlspRemarketingListId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.remarketingListShares.patch@ method which the
+-- 'RemarketingListSharesPatch' request conforms to.
+type RemarketingListSharesPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "remarketingListShares" :>
+               QueryParam "remarketingListId" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] RemarketingListShare :>
+                     Patch '[JSON] RemarketingListShare
+
+-- | Updates an existing remarketing list share. This method supports patch
+-- semantics.
+--
+-- /See:/ 'remarketingListSharesPatch' smart constructor.
+data RemarketingListSharesPatch = RemarketingListSharesPatch
+    { _rlspProFileId         :: !(Textual Int64)
+    , _rlspPayload           :: !RemarketingListShare
+    , _rlspRemarketingListId :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListSharesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlspProFileId'
+--
+-- * 'rlspPayload'
+--
+-- * 'rlspRemarketingListId'
+remarketingListSharesPatch
+    :: Int64 -- ^ 'rlspProFileId'
+    -> RemarketingListShare -- ^ 'rlspPayload'
+    -> Int64 -- ^ 'rlspRemarketingListId'
+    -> RemarketingListSharesPatch
+remarketingListSharesPatch pRlspProFileId_ pRlspPayload_ pRlspRemarketingListId_ =
+    RemarketingListSharesPatch
+    { _rlspProFileId = _Coerce # pRlspProFileId_
+    , _rlspPayload = pRlspPayload_
+    , _rlspRemarketingListId = _Coerce # pRlspRemarketingListId_
+    }
+
+-- | User profile ID associated with this request.
+rlspProFileId :: Lens' RemarketingListSharesPatch Int64
+rlspProFileId
+  = lens _rlspProFileId
+      (\ s a -> s{_rlspProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+rlspPayload :: Lens' RemarketingListSharesPatch RemarketingListShare
+rlspPayload
+  = lens _rlspPayload (\ s a -> s{_rlspPayload = a})
+
+-- | Remarketing list ID.
+rlspRemarketingListId :: Lens' RemarketingListSharesPatch Int64
+rlspRemarketingListId
+  = lens _rlspRemarketingListId
+      (\ s a -> s{_rlspRemarketingListId = a})
+      . _Coerce
+
+instance GoogleRequest RemarketingListSharesPatch
+         where
+        type Rs RemarketingListSharesPatch =
+             RemarketingListShare
+        requestClient RemarketingListSharesPatch{..}
+          = go _rlspProFileId (Just _rlspRemarketingListId)
+              (Just AltJSON)
+              _rlspPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy RemarketingListSharesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Update.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Update.hs
@@ -0,0 +1,102 @@
+{-# 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.DFAReporting.RemarketingListShares.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing remarketing list share.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.remarketingListShares.update@.
+module Network.Google.Resource.DFAReporting.RemarketingListShares.Update
+    (
+    -- * REST Resource
+      RemarketingListSharesUpdateResource
+
+    -- * Creating a Request
+    , remarketingListSharesUpdate
+    , RemarketingListSharesUpdate
+
+    -- * Request Lenses
+    , rlsuProFileId
+    , rlsuPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.remarketingListShares.update@ method which the
+-- 'RemarketingListSharesUpdate' request conforms to.
+type RemarketingListSharesUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "remarketingListShares" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] RemarketingListShare :>
+                   Put '[JSON] RemarketingListShare
+
+-- | Updates an existing remarketing list share.
+--
+-- /See:/ 'remarketingListSharesUpdate' smart constructor.
+data RemarketingListSharesUpdate = RemarketingListSharesUpdate
+    { _rlsuProFileId :: !(Textual Int64)
+    , _rlsuPayload   :: !RemarketingListShare
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListSharesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlsuProFileId'
+--
+-- * 'rlsuPayload'
+remarketingListSharesUpdate
+    :: Int64 -- ^ 'rlsuProFileId'
+    -> RemarketingListShare -- ^ 'rlsuPayload'
+    -> RemarketingListSharesUpdate
+remarketingListSharesUpdate pRlsuProFileId_ pRlsuPayload_ =
+    RemarketingListSharesUpdate
+    { _rlsuProFileId = _Coerce # pRlsuProFileId_
+    , _rlsuPayload = pRlsuPayload_
+    }
+
+-- | User profile ID associated with this request.
+rlsuProFileId :: Lens' RemarketingListSharesUpdate Int64
+rlsuProFileId
+  = lens _rlsuProFileId
+      (\ s a -> s{_rlsuProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+rlsuPayload :: Lens' RemarketingListSharesUpdate RemarketingListShare
+rlsuPayload
+  = lens _rlsuPayload (\ s a -> s{_rlsuPayload = a})
+
+instance GoogleRequest RemarketingListSharesUpdate
+         where
+        type Rs RemarketingListSharesUpdate =
+             RemarketingListShare
+        requestClient RemarketingListSharesUpdate{..}
+          = go _rlsuProFileId (Just AltJSON) _rlsuPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy RemarketingListSharesUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Get.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Get.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.RemarketingLists.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one remarketing list by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.remarketingLists.get@.
+module Network.Google.Resource.DFAReporting.RemarketingLists.Get
+    (
+    -- * REST Resource
+      RemarketingListsGetResource
+
+    -- * Creating a Request
+    , remarketingListsGet
+    , RemarketingListsGet
+
+    -- * Request Lenses
+    , rlgProFileId
+    , rlgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.remarketingLists.get@ method which the
+-- 'RemarketingListsGet' request conforms to.
+type RemarketingListsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "remarketingLists" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] RemarketingList
+
+-- | Gets one remarketing list by ID.
+--
+-- /See:/ 'remarketingListsGet' smart constructor.
+data RemarketingListsGet = RemarketingListsGet
+    { _rlgProFileId :: !(Textual Int64)
+    , _rlgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlgProFileId'
+--
+-- * 'rlgId'
+remarketingListsGet
+    :: Int64 -- ^ 'rlgProFileId'
+    -> Int64 -- ^ 'rlgId'
+    -> RemarketingListsGet
+remarketingListsGet pRlgProFileId_ pRlgId_ =
+    RemarketingListsGet
+    { _rlgProFileId = _Coerce # pRlgProFileId_
+    , _rlgId = _Coerce # pRlgId_
+    }
+
+-- | User profile ID associated with this request.
+rlgProFileId :: Lens' RemarketingListsGet Int64
+rlgProFileId
+  = lens _rlgProFileId (\ s a -> s{_rlgProFileId = a})
+      . _Coerce
+
+-- | Remarketing list ID.
+rlgId :: Lens' RemarketingListsGet Int64
+rlgId
+  = lens _rlgId (\ s a -> s{_rlgId = a}) . _Coerce
+
+instance GoogleRequest RemarketingListsGet where
+        type Rs RemarketingListsGet = RemarketingList
+        requestClient RemarketingListsGet{..}
+          = go _rlgProFileId _rlgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy RemarketingListsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Insert.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Insert.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.RemarketingLists.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new remarketing list.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.remarketingLists.insert@.
+module Network.Google.Resource.DFAReporting.RemarketingLists.Insert
+    (
+    -- * REST Resource
+      RemarketingListsInsertResource
+
+    -- * Creating a Request
+    , remarketingListsInsert
+    , RemarketingListsInsert
+
+    -- * Request Lenses
+    , rliProFileId
+    , rliPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.remarketingLists.insert@ method which the
+-- 'RemarketingListsInsert' request conforms to.
+type RemarketingListsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "remarketingLists" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] RemarketingList :>
+                   Post '[JSON] RemarketingList
+
+-- | Inserts a new remarketing list.
+--
+-- /See:/ 'remarketingListsInsert' smart constructor.
+data RemarketingListsInsert = RemarketingListsInsert
+    { _rliProFileId :: !(Textual Int64)
+    , _rliPayload   :: !RemarketingList
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rliProFileId'
+--
+-- * 'rliPayload'
+remarketingListsInsert
+    :: Int64 -- ^ 'rliProFileId'
+    -> RemarketingList -- ^ 'rliPayload'
+    -> RemarketingListsInsert
+remarketingListsInsert pRliProFileId_ pRliPayload_ =
+    RemarketingListsInsert
+    { _rliProFileId = _Coerce # pRliProFileId_
+    , _rliPayload = pRliPayload_
+    }
+
+-- | User profile ID associated with this request.
+rliProFileId :: Lens' RemarketingListsInsert Int64
+rliProFileId
+  = lens _rliProFileId (\ s a -> s{_rliProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+rliPayload :: Lens' RemarketingListsInsert RemarketingList
+rliPayload
+  = lens _rliPayload (\ s a -> s{_rliPayload = a})
+
+instance GoogleRequest RemarketingListsInsert where
+        type Rs RemarketingListsInsert = RemarketingList
+        requestClient RemarketingListsInsert{..}
+          = go _rliProFileId (Just AltJSON) _rliPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy RemarketingListsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/List.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/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.DFAReporting.RemarketingLists.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of remarketing lists, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.remarketingLists.list@.
+module Network.Google.Resource.DFAReporting.RemarketingLists.List
+    (
+    -- * REST Resource
+      RemarketingListsListResource
+
+    -- * Creating a Request
+    , remarketingListsList
+    , RemarketingListsList
+
+    -- * Request Lenses
+    , rllFloodlightActivityId
+    , rllAdvertiserId
+    , rllProFileId
+    , rllSortOrder
+    , rllActive
+    , rllName
+    , rllPageToken
+    , rllSortField
+    , rllMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.remarketingLists.list@ method which the
+-- 'RemarketingListsList' request conforms to.
+type RemarketingListsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "remarketingLists" :>
+               QueryParam "advertiserId" (Textual Int64) :>
+                 QueryParam "floodlightActivityId" (Textual Int64) :>
+                   QueryParam "sortOrder" RemarketingListsListSortOrder
+                     :>
+                     QueryParam "active" Bool :>
+                       QueryParam "name" Text :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "sortField" RemarketingListsListSortField
+                             :>
+                             QueryParam "maxResults" (Textual Int32) :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] RemarketingListsListResponse
+
+-- | Retrieves a list of remarketing lists, possibly filtered.
+--
+-- /See:/ 'remarketingListsList' smart constructor.
+data RemarketingListsList = RemarketingListsList
+    { _rllFloodlightActivityId :: !(Maybe (Textual Int64))
+    , _rllAdvertiserId         :: !(Textual Int64)
+    , _rllProFileId            :: !(Textual Int64)
+    , _rllSortOrder            :: !(Maybe RemarketingListsListSortOrder)
+    , _rllActive               :: !(Maybe Bool)
+    , _rllName                 :: !(Maybe Text)
+    , _rllPageToken            :: !(Maybe Text)
+    , _rllSortField            :: !(Maybe RemarketingListsListSortField)
+    , _rllMaxResults           :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rllFloodlightActivityId'
+--
+-- * 'rllAdvertiserId'
+--
+-- * 'rllProFileId'
+--
+-- * 'rllSortOrder'
+--
+-- * 'rllActive'
+--
+-- * 'rllName'
+--
+-- * 'rllPageToken'
+--
+-- * 'rllSortField'
+--
+-- * 'rllMaxResults'
+remarketingListsList
+    :: Int64 -- ^ 'rllAdvertiserId'
+    -> Int64 -- ^ 'rllProFileId'
+    -> RemarketingListsList
+remarketingListsList pRllAdvertiserId_ pRllProFileId_ =
+    RemarketingListsList
+    { _rllFloodlightActivityId = Nothing
+    , _rllAdvertiserId = _Coerce # pRllAdvertiserId_
+    , _rllProFileId = _Coerce # pRllProFileId_
+    , _rllSortOrder = Nothing
+    , _rllActive = Nothing
+    , _rllName = Nothing
+    , _rllPageToken = Nothing
+    , _rllSortField = Nothing
+    , _rllMaxResults = Nothing
+    }
+
+-- | Select only remarketing lists that have this floodlight activity ID.
+rllFloodlightActivityId :: Lens' RemarketingListsList (Maybe Int64)
+rllFloodlightActivityId
+  = lens _rllFloodlightActivityId
+      (\ s a -> s{_rllFloodlightActivityId = a})
+      . mapping _Coerce
+
+-- | Select only remarketing lists owned by this advertiser.
+rllAdvertiserId :: Lens' RemarketingListsList Int64
+rllAdvertiserId
+  = lens _rllAdvertiserId
+      (\ s a -> s{_rllAdvertiserId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+rllProFileId :: Lens' RemarketingListsList Int64
+rllProFileId
+  = lens _rllProFileId (\ s a -> s{_rllProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+rllSortOrder :: Lens' RemarketingListsList (Maybe RemarketingListsListSortOrder)
+rllSortOrder
+  = lens _rllSortOrder (\ s a -> s{_rllSortOrder = a})
+
+-- | Select only active or only inactive remarketing lists.
+rllActive :: Lens' RemarketingListsList (Maybe Bool)
+rllActive
+  = lens _rllActive (\ s a -> s{_rllActive = a})
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"remarketing list*2015\" will return objects with names
+-- like \"remarketing list June 2015\", \"remarketing list April 2015\", or
+-- simply \"remarketing list 2015\". Most of the searches also add
+-- wildcards implicitly at the start and the end of the search string. For
+-- example, a search string of \"remarketing list\" will match objects with
+-- name \"my remarketing list\", \"remarketing list 2015\", or simply
+-- \"remarketing list\".
+rllName :: Lens' RemarketingListsList (Maybe Text)
+rllName = lens _rllName (\ s a -> s{_rllName = a})
+
+-- | Value of the nextPageToken from the previous result page.
+rllPageToken :: Lens' RemarketingListsList (Maybe Text)
+rllPageToken
+  = lens _rllPageToken (\ s a -> s{_rllPageToken = a})
+
+-- | Field by which to sort the list.
+rllSortField :: Lens' RemarketingListsList (Maybe RemarketingListsListSortField)
+rllSortField
+  = lens _rllSortField (\ s a -> s{_rllSortField = a})
+
+-- | Maximum number of results to return.
+rllMaxResults :: Lens' RemarketingListsList (Maybe Int32)
+rllMaxResults
+  = lens _rllMaxResults
+      (\ s a -> s{_rllMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest RemarketingListsList where
+        type Rs RemarketingListsList =
+             RemarketingListsListResponse
+        requestClient RemarketingListsList{..}
+          = go _rllProFileId (Just _rllAdvertiserId)
+              _rllFloodlightActivityId
+              _rllSortOrder
+              _rllActive
+              _rllName
+              _rllPageToken
+              _rllSortField
+              _rllMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy RemarketingListsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Patch.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Patch.hs
@@ -0,0 +1,114 @@
+{-# 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.DFAReporting.RemarketingLists.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing remarketing list. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.remarketingLists.patch@.
+module Network.Google.Resource.DFAReporting.RemarketingLists.Patch
+    (
+    -- * REST Resource
+      RemarketingListsPatchResource
+
+    -- * Creating a Request
+    , remarketingListsPatch
+    , RemarketingListsPatch
+
+    -- * Request Lenses
+    , rlpProFileId
+    , rlpPayload
+    , rlpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.remarketingLists.patch@ method which the
+-- 'RemarketingListsPatch' request conforms to.
+type RemarketingListsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "remarketingLists" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] RemarketingList :>
+                     Patch '[JSON] RemarketingList
+
+-- | Updates an existing remarketing list. This method supports patch
+-- semantics.
+--
+-- /See:/ 'remarketingListsPatch' smart constructor.
+data RemarketingListsPatch = RemarketingListsPatch
+    { _rlpProFileId :: !(Textual Int64)
+    , _rlpPayload   :: !RemarketingList
+    , _rlpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlpProFileId'
+--
+-- * 'rlpPayload'
+--
+-- * 'rlpId'
+remarketingListsPatch
+    :: Int64 -- ^ 'rlpProFileId'
+    -> RemarketingList -- ^ 'rlpPayload'
+    -> Int64 -- ^ 'rlpId'
+    -> RemarketingListsPatch
+remarketingListsPatch pRlpProFileId_ pRlpPayload_ pRlpId_ =
+    RemarketingListsPatch
+    { _rlpProFileId = _Coerce # pRlpProFileId_
+    , _rlpPayload = pRlpPayload_
+    , _rlpId = _Coerce # pRlpId_
+    }
+
+-- | User profile ID associated with this request.
+rlpProFileId :: Lens' RemarketingListsPatch Int64
+rlpProFileId
+  = lens _rlpProFileId (\ s a -> s{_rlpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+rlpPayload :: Lens' RemarketingListsPatch RemarketingList
+rlpPayload
+  = lens _rlpPayload (\ s a -> s{_rlpPayload = a})
+
+-- | Remarketing list ID.
+rlpId :: Lens' RemarketingListsPatch Int64
+rlpId
+  = lens _rlpId (\ s a -> s{_rlpId = a}) . _Coerce
+
+instance GoogleRequest RemarketingListsPatch where
+        type Rs RemarketingListsPatch = RemarketingList
+        requestClient RemarketingListsPatch{..}
+          = go _rlpProFileId (Just _rlpId) (Just AltJSON)
+              _rlpPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy RemarketingListsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Update.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Update.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.RemarketingLists.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing remarketing list.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.remarketingLists.update@.
+module Network.Google.Resource.DFAReporting.RemarketingLists.Update
+    (
+    -- * REST Resource
+      RemarketingListsUpdateResource
+
+    -- * Creating a Request
+    , remarketingListsUpdate
+    , RemarketingListsUpdate
+
+    -- * Request Lenses
+    , rluProFileId
+    , rluPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.remarketingLists.update@ method which the
+-- 'RemarketingListsUpdate' request conforms to.
+type RemarketingListsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "remarketingLists" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] RemarketingList :>
+                   Put '[JSON] RemarketingList
+
+-- | Updates an existing remarketing list.
+--
+-- /See:/ 'remarketingListsUpdate' smart constructor.
+data RemarketingListsUpdate = RemarketingListsUpdate
+    { _rluProFileId :: !(Textual Int64)
+    , _rluPayload   :: !RemarketingList
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rluProFileId'
+--
+-- * 'rluPayload'
+remarketingListsUpdate
+    :: Int64 -- ^ 'rluProFileId'
+    -> RemarketingList -- ^ 'rluPayload'
+    -> RemarketingListsUpdate
+remarketingListsUpdate pRluProFileId_ pRluPayload_ =
+    RemarketingListsUpdate
+    { _rluProFileId = _Coerce # pRluProFileId_
+    , _rluPayload = pRluPayload_
+    }
+
+-- | User profile ID associated with this request.
+rluProFileId :: Lens' RemarketingListsUpdate Int64
+rluProFileId
+  = lens _rluProFileId (\ s a -> s{_rluProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+rluPayload :: Lens' RemarketingListsUpdate RemarketingList
+rluPayload
+  = lens _rluPayload (\ s a -> s{_rluPayload = a})
+
+instance GoogleRequest RemarketingListsUpdate where
+        type Rs RemarketingListsUpdate = RemarketingList
+        requestClient RemarketingListsUpdate{..}
+          = go _rluProFileId (Just AltJSON) _rluPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy RemarketingListsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/CompatibleFields/Query.hs b/gen/Network/Google/Resource/DFAReporting/Reports/CompatibleFields/Query.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/CompatibleFields/Query.hs
@@ -0,0 +1,108 @@
+{-# 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.DFAReporting.Reports.CompatibleFields.Query
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the fields that are compatible to be selected in the respective
+-- sections of a report criteria, given the fields already selected in the
+-- input report and user permissions.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.reports.compatibleFields.query@.
+module Network.Google.Resource.DFAReporting.Reports.CompatibleFields.Query
+    (
+    -- * REST Resource
+      ReportsCompatibleFieldsQueryResource
+
+    -- * Creating a Request
+    , reportsCompatibleFieldsQuery
+    , ReportsCompatibleFieldsQuery
+
+    -- * Request Lenses
+    , rcfqProFileId
+    , rcfqPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.reports.compatibleFields.query@ method which the
+-- 'ReportsCompatibleFieldsQuery' request conforms to.
+type ReportsCompatibleFieldsQueryResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "reports" :>
+               "compatiblefields" :>
+                 "query" :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] Report :>
+                       Post '[JSON] CompatibleFields
+
+-- | Returns the fields that are compatible to be selected in the respective
+-- sections of a report criteria, given the fields already selected in the
+-- input report and user permissions.
+--
+-- /See:/ 'reportsCompatibleFieldsQuery' smart constructor.
+data ReportsCompatibleFieldsQuery = ReportsCompatibleFieldsQuery
+    { _rcfqProFileId :: !(Textual Int64)
+    , _rcfqPayload   :: !Report
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsCompatibleFieldsQuery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcfqProFileId'
+--
+-- * 'rcfqPayload'
+reportsCompatibleFieldsQuery
+    :: Int64 -- ^ 'rcfqProFileId'
+    -> Report -- ^ 'rcfqPayload'
+    -> ReportsCompatibleFieldsQuery
+reportsCompatibleFieldsQuery pRcfqProFileId_ pRcfqPayload_ =
+    ReportsCompatibleFieldsQuery
+    { _rcfqProFileId = _Coerce # pRcfqProFileId_
+    , _rcfqPayload = pRcfqPayload_
+    }
+
+-- | The DFA user profile ID.
+rcfqProFileId :: Lens' ReportsCompatibleFieldsQuery Int64
+rcfqProFileId
+  = lens _rcfqProFileId
+      (\ s a -> s{_rcfqProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+rcfqPayload :: Lens' ReportsCompatibleFieldsQuery Report
+rcfqPayload
+  = lens _rcfqPayload (\ s a -> s{_rcfqPayload = a})
+
+instance GoogleRequest ReportsCompatibleFieldsQuery
+         where
+        type Rs ReportsCompatibleFieldsQuery =
+             CompatibleFields
+        requestClient ReportsCompatibleFieldsQuery{..}
+          = go _rcfqProFileId (Just AltJSON) _rcfqPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ReportsCompatibleFieldsQueryResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Delete.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Delete.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Reports.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a report by its ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.reports.delete@.
+module Network.Google.Resource.DFAReporting.Reports.Delete
+    (
+    -- * REST Resource
+      ReportsDeleteResource
+
+    -- * Creating a Request
+    , reportsDelete
+    , ReportsDelete
+
+    -- * Request Lenses
+    , rdReportId
+    , rdProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.reports.delete@ method which the
+-- 'ReportsDelete' request conforms to.
+type ReportsDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "reports" :>
+               Capture "reportId" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes a report by its ID.
+--
+-- /See:/ 'reportsDelete' smart constructor.
+data ReportsDelete = ReportsDelete
+    { _rdReportId  :: !(Textual Int64)
+    , _rdProFileId :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdReportId'
+--
+-- * 'rdProFileId'
+reportsDelete
+    :: Int64 -- ^ 'rdReportId'
+    -> Int64 -- ^ 'rdProFileId'
+    -> ReportsDelete
+reportsDelete pRdReportId_ pRdProFileId_ =
+    ReportsDelete
+    { _rdReportId = _Coerce # pRdReportId_
+    , _rdProFileId = _Coerce # pRdProFileId_
+    }
+
+-- | The ID of the report.
+rdReportId :: Lens' ReportsDelete Int64
+rdReportId
+  = lens _rdReportId (\ s a -> s{_rdReportId = a}) .
+      _Coerce
+
+-- | The DFA user profile ID.
+rdProFileId :: Lens' ReportsDelete Int64
+rdProFileId
+  = lens _rdProFileId (\ s a -> s{_rdProFileId = a}) .
+      _Coerce
+
+instance GoogleRequest ReportsDelete where
+        type Rs ReportsDelete = ()
+        requestClient ReportsDelete{..}
+          = go _rdProFileId _rdReportId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ReportsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Files/Get.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Files/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Files/Get.hs
@@ -0,0 +1,137 @@
+{-# 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.DFAReporting.Reports.Files.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a report file.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.reports.files.get@.
+module Network.Google.Resource.DFAReporting.Reports.Files.Get
+    (
+    -- * REST Resource
+      ReportsFilesGetResource
+
+    -- * Creating a Request
+    , reportsFilesGet
+    , ReportsFilesGet
+
+    -- * Request Lenses
+    , rfgReportId
+    , rfgProFileId
+    , rfgFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.reports.files.get@ method which the
+-- 'ReportsFilesGet' request conforms to.
+type ReportsFilesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "reports" :>
+               Capture "reportId" (Textual Int64) :>
+                 "files" :>
+                   Capture "fileId" (Textual Int64) :>
+                     QueryParam "alt" AltJSON :> Get '[JSON] File
+       :<|>
+       "dfareporting" :>
+         "v2.2" :>
+           "userprofiles" :>
+             Capture "profileId" (Textual Int64) :>
+               "reports" :>
+                 Capture "reportId" (Textual Int64) :>
+                   "files" :>
+                     Capture "fileId" (Textual Int64) :>
+                       QueryParam "alt" AltMedia :>
+                         Get '[OctetStream] Stream
+
+-- | Retrieves a report file.
+--
+-- /See:/ 'reportsFilesGet' smart constructor.
+data ReportsFilesGet = ReportsFilesGet
+    { _rfgReportId  :: !(Textual Int64)
+    , _rfgProFileId :: !(Textual Int64)
+    , _rfgFileId    :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsFilesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rfgReportId'
+--
+-- * 'rfgProFileId'
+--
+-- * 'rfgFileId'
+reportsFilesGet
+    :: Int64 -- ^ 'rfgReportId'
+    -> Int64 -- ^ 'rfgProFileId'
+    -> Int64 -- ^ 'rfgFileId'
+    -> ReportsFilesGet
+reportsFilesGet pRfgReportId_ pRfgProFileId_ pRfgFileId_ =
+    ReportsFilesGet
+    { _rfgReportId = _Coerce # pRfgReportId_
+    , _rfgProFileId = _Coerce # pRfgProFileId_
+    , _rfgFileId = _Coerce # pRfgFileId_
+    }
+
+-- | The ID of the report.
+rfgReportId :: Lens' ReportsFilesGet Int64
+rfgReportId
+  = lens _rfgReportId (\ s a -> s{_rfgReportId = a}) .
+      _Coerce
+
+-- | The DFA profile ID.
+rfgProFileId :: Lens' ReportsFilesGet Int64
+rfgProFileId
+  = lens _rfgProFileId (\ s a -> s{_rfgProFileId = a})
+      . _Coerce
+
+-- | The ID of the report file.
+rfgFileId :: Lens' ReportsFilesGet Int64
+rfgFileId
+  = lens _rfgFileId (\ s a -> s{_rfgFileId = a}) .
+      _Coerce
+
+instance GoogleRequest ReportsFilesGet where
+        type Rs ReportsFilesGet = File
+        requestClient ReportsFilesGet{..}
+          = go _rfgProFileId _rfgReportId _rfgFileId
+              (Just AltJSON)
+              dFAReportingService
+          where go :<|> _
+                  = buildClient
+                      (Proxy :: Proxy ReportsFilesGetResource)
+                      mempty
+
+instance GoogleRequest
+         (MediaDownload ReportsFilesGet) where
+        type Rs (MediaDownload ReportsFilesGet) = Stream
+        requestClient (MediaDownload ReportsFilesGet{..})
+          = go _rfgProFileId _rfgReportId _rfgFileId
+              (Just AltMedia)
+              dFAReportingService
+          where _ :<|> go
+                  = buildClient
+                      (Proxy :: Proxy ReportsFilesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Files/List.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Files/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Files/List.hs
@@ -0,0 +1,150 @@
+{-# 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.DFAReporting.Reports.Files.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists files for a report.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.reports.files.list@.
+module Network.Google.Resource.DFAReporting.Reports.Files.List
+    (
+    -- * REST Resource
+      ReportsFilesListResource
+
+    -- * Creating a Request
+    , reportsFilesList
+    , ReportsFilesList
+
+    -- * Request Lenses
+    , rflReportId
+    , rflProFileId
+    , rflSortOrder
+    , rflPageToken
+    , rflSortField
+    , rflMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.reports.files.list@ method which the
+-- 'ReportsFilesList' request conforms to.
+type ReportsFilesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "reports" :>
+               Capture "reportId" (Textual Int64) :>
+                 "files" :>
+                   QueryParam "sortOrder" ReportsFilesListSortOrder :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "sortField" ReportsFilesListSortField :>
+                         QueryParam "maxResults" (Textual Int32) :>
+                           QueryParam "alt" AltJSON :> Get '[JSON] FileList
+
+-- | Lists files for a report.
+--
+-- /See:/ 'reportsFilesList' smart constructor.
+data ReportsFilesList = ReportsFilesList
+    { _rflReportId   :: !(Textual Int64)
+    , _rflProFileId  :: !(Textual Int64)
+    , _rflSortOrder  :: !ReportsFilesListSortOrder
+    , _rflPageToken  :: !(Maybe Text)
+    , _rflSortField  :: !ReportsFilesListSortField
+    , _rflMaxResults :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsFilesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rflReportId'
+--
+-- * 'rflProFileId'
+--
+-- * 'rflSortOrder'
+--
+-- * 'rflPageToken'
+--
+-- * 'rflSortField'
+--
+-- * 'rflMaxResults'
+reportsFilesList
+    :: Int64 -- ^ 'rflReportId'
+    -> Int64 -- ^ 'rflProFileId'
+    -> ReportsFilesList
+reportsFilesList pRflReportId_ pRflProFileId_ =
+    ReportsFilesList
+    { _rflReportId = _Coerce # pRflReportId_
+    , _rflProFileId = _Coerce # pRflProFileId_
+    , _rflSortOrder = RFLSODescending
+    , _rflPageToken = Nothing
+    , _rflSortField = RFLSFLastModifiedTime
+    , _rflMaxResults = Nothing
+    }
+
+-- | The ID of the parent report.
+rflReportId :: Lens' ReportsFilesList Int64
+rflReportId
+  = lens _rflReportId (\ s a -> s{_rflReportId = a}) .
+      _Coerce
+
+-- | The DFA profile ID.
+rflProFileId :: Lens' ReportsFilesList Int64
+rflProFileId
+  = lens _rflProFileId (\ s a -> s{_rflProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is \'DESCENDING\'.
+rflSortOrder :: Lens' ReportsFilesList ReportsFilesListSortOrder
+rflSortOrder
+  = lens _rflSortOrder (\ s a -> s{_rflSortOrder = a})
+
+-- | The value of the nextToken from the previous result page.
+rflPageToken :: Lens' ReportsFilesList (Maybe Text)
+rflPageToken
+  = lens _rflPageToken (\ s a -> s{_rflPageToken = a})
+
+-- | The field by which to sort the list.
+rflSortField :: Lens' ReportsFilesList ReportsFilesListSortField
+rflSortField
+  = lens _rflSortField (\ s a -> s{_rflSortField = a})
+
+-- | Maximum number of results to return.
+rflMaxResults :: Lens' ReportsFilesList (Maybe Int32)
+rflMaxResults
+  = lens _rflMaxResults
+      (\ s a -> s{_rflMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest ReportsFilesList where
+        type Rs ReportsFilesList = FileList
+        requestClient ReportsFilesList{..}
+          = go _rflProFileId _rflReportId (Just _rflSortOrder)
+              _rflPageToken
+              (Just _rflSortField)
+              _rflMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ReportsFilesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Get.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Get.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Reports.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a report by its ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.reports.get@.
+module Network.Google.Resource.DFAReporting.Reports.Get
+    (
+    -- * REST Resource
+      ReportsGetResource
+
+    -- * Creating a Request
+    , reportsGet
+    , ReportsGet
+
+    -- * Request Lenses
+    , rgReportId
+    , rgProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.reports.get@ method which the
+-- 'ReportsGet' request conforms to.
+type ReportsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "reports" :>
+               Capture "reportId" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Report
+
+-- | Retrieves a report by its ID.
+--
+-- /See:/ 'reportsGet' smart constructor.
+data ReportsGet = ReportsGet
+    { _rgReportId  :: !(Textual Int64)
+    , _rgProFileId :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rgReportId'
+--
+-- * 'rgProFileId'
+reportsGet
+    :: Int64 -- ^ 'rgReportId'
+    -> Int64 -- ^ 'rgProFileId'
+    -> ReportsGet
+reportsGet pRgReportId_ pRgProFileId_ =
+    ReportsGet
+    { _rgReportId = _Coerce # pRgReportId_
+    , _rgProFileId = _Coerce # pRgProFileId_
+    }
+
+-- | The ID of the report.
+rgReportId :: Lens' ReportsGet Int64
+rgReportId
+  = lens _rgReportId (\ s a -> s{_rgReportId = a}) .
+      _Coerce
+
+-- | The DFA user profile ID.
+rgProFileId :: Lens' ReportsGet Int64
+rgProFileId
+  = lens _rgProFileId (\ s a -> s{_rgProFileId = a}) .
+      _Coerce
+
+instance GoogleRequest ReportsGet where
+        type Rs ReportsGet = Report
+        requestClient ReportsGet{..}
+          = go _rgProFileId _rgReportId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ReportsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Insert.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Reports.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a report.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.reports.insert@.
+module Network.Google.Resource.DFAReporting.Reports.Insert
+    (
+    -- * REST Resource
+      ReportsInsertResource
+
+    -- * Creating a Request
+    , reportsInsert
+    , ReportsInsert
+
+    -- * Request Lenses
+    , riProFileId
+    , riPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.reports.insert@ method which the
+-- 'ReportsInsert' request conforms to.
+type ReportsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "reports" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Report :> Post '[JSON] Report
+
+-- | Creates a report.
+--
+-- /See:/ 'reportsInsert' smart constructor.
+data ReportsInsert = ReportsInsert
+    { _riProFileId :: !(Textual Int64)
+    , _riPayload   :: !Report
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'riProFileId'
+--
+-- * 'riPayload'
+reportsInsert
+    :: Int64 -- ^ 'riProFileId'
+    -> Report -- ^ 'riPayload'
+    -> ReportsInsert
+reportsInsert pRiProFileId_ pRiPayload_ =
+    ReportsInsert
+    { _riProFileId = _Coerce # pRiProFileId_
+    , _riPayload = pRiPayload_
+    }
+
+-- | The DFA user profile ID.
+riProFileId :: Lens' ReportsInsert Int64
+riProFileId
+  = lens _riProFileId (\ s a -> s{_riProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+riPayload :: Lens' ReportsInsert Report
+riPayload
+  = lens _riPayload (\ s a -> s{_riPayload = a})
+
+instance GoogleRequest ReportsInsert where
+        type Rs ReportsInsert = Report
+        requestClient ReportsInsert{..}
+          = go _riProFileId (Just AltJSON) _riPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ReportsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/List.hs b/gen/Network/Google/Resource/DFAReporting/Reports/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/List.hs
@@ -0,0 +1,144 @@
+{-# 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.DFAReporting.Reports.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves list of reports.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.reports.list@.
+module Network.Google.Resource.DFAReporting.Reports.List
+    (
+    -- * REST Resource
+      ReportsListResource
+
+    -- * Creating a Request
+    , reportsList
+    , ReportsList
+
+    -- * Request Lenses
+    , rlProFileId
+    , rlSortOrder
+    , rlScope
+    , rlPageToken
+    , rlSortField
+    , rlMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.reports.list@ method which the
+-- 'ReportsList' request conforms to.
+type ReportsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "reports" :>
+               QueryParam "sortOrder" ReportsListSortOrder :>
+                 QueryParam "scope" ReportsListScope :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "sortField" ReportsListSortField :>
+                       QueryParam "maxResults" (Textual Int32) :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] ReportList
+
+-- | Retrieves list of reports.
+--
+-- /See:/ 'reportsList' smart constructor.
+data ReportsList = ReportsList
+    { _rlProFileId  :: !(Textual Int64)
+    , _rlSortOrder  :: !ReportsListSortOrder
+    , _rlScope      :: !ReportsListScope
+    , _rlPageToken  :: !(Maybe Text)
+    , _rlSortField  :: !ReportsListSortField
+    , _rlMaxResults :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlProFileId'
+--
+-- * 'rlSortOrder'
+--
+-- * 'rlScope'
+--
+-- * 'rlPageToken'
+--
+-- * 'rlSortField'
+--
+-- * 'rlMaxResults'
+reportsList
+    :: Int64 -- ^ 'rlProFileId'
+    -> ReportsList
+reportsList pRlProFileId_ =
+    ReportsList
+    { _rlProFileId = _Coerce # pRlProFileId_
+    , _rlSortOrder = RLSODescending
+    , _rlScope = Mine
+    , _rlPageToken = Nothing
+    , _rlSortField = RLSFLastModifiedTime
+    , _rlMaxResults = Nothing
+    }
+
+-- | The DFA user profile ID.
+rlProFileId :: Lens' ReportsList Int64
+rlProFileId
+  = lens _rlProFileId (\ s a -> s{_rlProFileId = a}) .
+      _Coerce
+
+-- | Order of sorted results, default is \'DESCENDING\'.
+rlSortOrder :: Lens' ReportsList ReportsListSortOrder
+rlSortOrder
+  = lens _rlSortOrder (\ s a -> s{_rlSortOrder = a})
+
+-- | The scope that defines which results are returned, default is \'MINE\'.
+rlScope :: Lens' ReportsList ReportsListScope
+rlScope = lens _rlScope (\ s a -> s{_rlScope = a})
+
+-- | The value of the nextToken from the previous result page.
+rlPageToken :: Lens' ReportsList (Maybe Text)
+rlPageToken
+  = lens _rlPageToken (\ s a -> s{_rlPageToken = a})
+
+-- | The field by which to sort the list.
+rlSortField :: Lens' ReportsList ReportsListSortField
+rlSortField
+  = lens _rlSortField (\ s a -> s{_rlSortField = a})
+
+-- | Maximum number of results to return.
+rlMaxResults :: Lens' ReportsList (Maybe Int32)
+rlMaxResults
+  = lens _rlMaxResults (\ s a -> s{_rlMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest ReportsList where
+        type Rs ReportsList = ReportList
+        requestClient ReportsList{..}
+          = go _rlProFileId (Just _rlSortOrder) (Just _rlScope)
+              _rlPageToken
+              (Just _rlSortField)
+              _rlMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ReportsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Patch.hs
@@ -0,0 +1,111 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Reports.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a report. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.reports.patch@.
+module Network.Google.Resource.DFAReporting.Reports.Patch
+    (
+    -- * REST Resource
+      ReportsPatchResource
+
+    -- * Creating a Request
+    , reportsPatch
+    , ReportsPatch
+
+    -- * Request Lenses
+    , rpReportId
+    , rpProFileId
+    , rpPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.reports.patch@ method which the
+-- 'ReportsPatch' request conforms to.
+type ReportsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "reports" :>
+               Capture "reportId" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] Report :> Patch '[JSON] Report
+
+-- | Updates a report. This method supports patch semantics.
+--
+-- /See:/ 'reportsPatch' smart constructor.
+data ReportsPatch = ReportsPatch
+    { _rpReportId  :: !(Textual Int64)
+    , _rpProFileId :: !(Textual Int64)
+    , _rpPayload   :: !Report
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rpReportId'
+--
+-- * 'rpProFileId'
+--
+-- * 'rpPayload'
+reportsPatch
+    :: Int64 -- ^ 'rpReportId'
+    -> Int64 -- ^ 'rpProFileId'
+    -> Report -- ^ 'rpPayload'
+    -> ReportsPatch
+reportsPatch pRpReportId_ pRpProFileId_ pRpPayload_ =
+    ReportsPatch
+    { _rpReportId = _Coerce # pRpReportId_
+    , _rpProFileId = _Coerce # pRpProFileId_
+    , _rpPayload = pRpPayload_
+    }
+
+-- | The ID of the report.
+rpReportId :: Lens' ReportsPatch Int64
+rpReportId
+  = lens _rpReportId (\ s a -> s{_rpReportId = a}) .
+      _Coerce
+
+-- | The DFA user profile ID.
+rpProFileId :: Lens' ReportsPatch Int64
+rpProFileId
+  = lens _rpProFileId (\ s a -> s{_rpProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+rpPayload :: Lens' ReportsPatch Report
+rpPayload
+  = lens _rpPayload (\ s a -> s{_rpPayload = a})
+
+instance GoogleRequest ReportsPatch where
+        type Rs ReportsPatch = Report
+        requestClient ReportsPatch{..}
+          = go _rpProFileId _rpReportId (Just AltJSON)
+              _rpPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ReportsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Run.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Run.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Run.hs
@@ -0,0 +1,112 @@
+{-# 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.DFAReporting.Reports.Run
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Runs a report.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.reports.run@.
+module Network.Google.Resource.DFAReporting.Reports.Run
+    (
+    -- * REST Resource
+      ReportsRunResource
+
+    -- * Creating a Request
+    , reportsRun
+    , ReportsRun
+
+    -- * Request Lenses
+    , rrSynchronous
+    , rrReportId
+    , rrProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.reports.run@ method which the
+-- 'ReportsRun' request conforms to.
+type ReportsRunResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "reports" :>
+               Capture "reportId" (Textual Int64) :>
+                 "run" :>
+                   QueryParam "synchronous" Bool :>
+                     QueryParam "alt" AltJSON :> Post '[JSON] File
+
+-- | Runs a report.
+--
+-- /See:/ 'reportsRun' smart constructor.
+data ReportsRun = ReportsRun
+    { _rrSynchronous :: !(Maybe Bool)
+    , _rrReportId    :: !(Textual Int64)
+    , _rrProFileId   :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsRun' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rrSynchronous'
+--
+-- * 'rrReportId'
+--
+-- * 'rrProFileId'
+reportsRun
+    :: Int64 -- ^ 'rrReportId'
+    -> Int64 -- ^ 'rrProFileId'
+    -> ReportsRun
+reportsRun pRrReportId_ pRrProFileId_ =
+    ReportsRun
+    { _rrSynchronous = Nothing
+    , _rrReportId = _Coerce # pRrReportId_
+    , _rrProFileId = _Coerce # pRrProFileId_
+    }
+
+-- | If set and true, tries to run the report synchronously.
+rrSynchronous :: Lens' ReportsRun (Maybe Bool)
+rrSynchronous
+  = lens _rrSynchronous
+      (\ s a -> s{_rrSynchronous = a})
+
+-- | The ID of the report.
+rrReportId :: Lens' ReportsRun Int64
+rrReportId
+  = lens _rrReportId (\ s a -> s{_rrReportId = a}) .
+      _Coerce
+
+-- | The DFA profile ID.
+rrProFileId :: Lens' ReportsRun Int64
+rrProFileId
+  = lens _rrProFileId (\ s a -> s{_rrProFileId = a}) .
+      _Coerce
+
+instance GoogleRequest ReportsRun where
+        type Rs ReportsRun = File
+        requestClient ReportsRun{..}
+          = go _rrProFileId _rrReportId _rrSynchronous
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ReportsRunResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Update.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Update.hs
@@ -0,0 +1,111 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Reports.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a report.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.reports.update@.
+module Network.Google.Resource.DFAReporting.Reports.Update
+    (
+    -- * REST Resource
+      ReportsUpdateResource
+
+    -- * Creating a Request
+    , reportsUpdate
+    , ReportsUpdate
+
+    -- * Request Lenses
+    , ruReportId
+    , ruProFileId
+    , ruPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.reports.update@ method which the
+-- 'ReportsUpdate' request conforms to.
+type ReportsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "reports" :>
+               Capture "reportId" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] Report :> Put '[JSON] Report
+
+-- | Updates a report.
+--
+-- /See:/ 'reportsUpdate' smart constructor.
+data ReportsUpdate = ReportsUpdate
+    { _ruReportId  :: !(Textual Int64)
+    , _ruProFileId :: !(Textual Int64)
+    , _ruPayload   :: !Report
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ruReportId'
+--
+-- * 'ruProFileId'
+--
+-- * 'ruPayload'
+reportsUpdate
+    :: Int64 -- ^ 'ruReportId'
+    -> Int64 -- ^ 'ruProFileId'
+    -> Report -- ^ 'ruPayload'
+    -> ReportsUpdate
+reportsUpdate pRuReportId_ pRuProFileId_ pRuPayload_ =
+    ReportsUpdate
+    { _ruReportId = _Coerce # pRuReportId_
+    , _ruProFileId = _Coerce # pRuProFileId_
+    , _ruPayload = pRuPayload_
+    }
+
+-- | The ID of the report.
+ruReportId :: Lens' ReportsUpdate Int64
+ruReportId
+  = lens _ruReportId (\ s a -> s{_ruReportId = a}) .
+      _Coerce
+
+-- | The DFA user profile ID.
+ruProFileId :: Lens' ReportsUpdate Int64
+ruProFileId
+  = lens _ruProFileId (\ s a -> s{_ruProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+ruPayload :: Lens' ReportsUpdate Report
+ruPayload
+  = lens _ruPayload (\ s a -> s{_ruPayload = a})
+
+instance GoogleRequest ReportsUpdate where
+        type Rs ReportsUpdate = Report
+        requestClient ReportsUpdate{..}
+          = go _ruProFileId _ruReportId (Just AltJSON)
+              _ruPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy ReportsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Sites/Get.hs b/gen/Network/Google/Resource/DFAReporting/Sites/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Sites/Get.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Sites.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one site by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.sites.get@.
+module Network.Google.Resource.DFAReporting.Sites.Get
+    (
+    -- * REST Resource
+      SitesGetResource
+
+    -- * Creating a Request
+    , sitesGet
+    , SitesGet
+
+    -- * Request Lenses
+    , sggProFileId
+    , sggId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.sites.get@ method which the
+-- 'SitesGet' request conforms to.
+type SitesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "sites" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Site
+
+-- | Gets one site by ID.
+--
+-- /See:/ 'sitesGet' smart constructor.
+data SitesGet = SitesGet
+    { _sggProFileId :: !(Textual Int64)
+    , _sggId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SitesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sggProFileId'
+--
+-- * 'sggId'
+sitesGet
+    :: Int64 -- ^ 'sggProFileId'
+    -> Int64 -- ^ 'sggId'
+    -> SitesGet
+sitesGet pSggProFileId_ pSggId_ =
+    SitesGet
+    { _sggProFileId = _Coerce # pSggProFileId_
+    , _sggId = _Coerce # pSggId_
+    }
+
+-- | User profile ID associated with this request.
+sggProFileId :: Lens' SitesGet Int64
+sggProFileId
+  = lens _sggProFileId (\ s a -> s{_sggProFileId = a})
+      . _Coerce
+
+-- | Site ID.
+sggId :: Lens' SitesGet Int64
+sggId
+  = lens _sggId (\ s a -> s{_sggId = a}) . _Coerce
+
+instance GoogleRequest SitesGet where
+        type Rs SitesGet = Site
+        requestClient SitesGet{..}
+          = go _sggProFileId _sggId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy SitesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Sites/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Sites/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Sites/Insert.hs
@@ -0,0 +1,96 @@
+{-# 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.DFAReporting.Sites.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new site.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.sites.insert@.
+module Network.Google.Resource.DFAReporting.Sites.Insert
+    (
+    -- * REST Resource
+      SitesInsertResource
+
+    -- * Creating a Request
+    , sitesInsert
+    , SitesInsert
+
+    -- * Request Lenses
+    , sProFileId
+    , sPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.sites.insert@ method which the
+-- 'SitesInsert' request conforms to.
+type SitesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "sites" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Site :> Post '[JSON] Site
+
+-- | Inserts a new site.
+--
+-- /See:/ 'sitesInsert' smart constructor.
+data SitesInsert = SitesInsert
+    { _sProFileId :: !(Textual Int64)
+    , _sPayload   :: !Site
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SitesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sProFileId'
+--
+-- * 'sPayload'
+sitesInsert
+    :: Int64 -- ^ 'sProFileId'
+    -> Site -- ^ 'sPayload'
+    -> SitesInsert
+sitesInsert pSProFileId_ pSPayload_ =
+    SitesInsert
+    { _sProFileId = _Coerce # pSProFileId_
+    , _sPayload = pSPayload_
+    }
+
+-- | User profile ID associated with this request.
+sProFileId :: Lens' SitesInsert Int64
+sProFileId
+  = lens _sProFileId (\ s a -> s{_sProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+sPayload :: Lens' SitesInsert Site
+sPayload = lens _sPayload (\ s a -> s{_sPayload = a})
+
+instance GoogleRequest SitesInsert where
+        type Rs SitesInsert = Site
+        requestClient SitesInsert{..}
+          = go _sProFileId (Just AltJSON) _sPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy SitesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Sites/List.hs b/gen/Network/Google/Resource/DFAReporting/Sites/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Sites/List.hs
@@ -0,0 +1,294 @@
+{-# 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.DFAReporting.Sites.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of sites, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.sites.list@.
+module Network.Google.Resource.DFAReporting.Sites.List
+    (
+    -- * REST Resource
+      SitesListResource
+
+    -- * Creating a Request
+    , sitesList
+    , SitesList
+
+    -- * Request Lenses
+    , sitUnmAppedSite
+    , sitCampaignIds
+    , sitSearchString
+    , sitAcceptsInterstitialPlacements
+    , sitAcceptsPublisherPaidPlacements
+    , sitIds
+    , sitProFileId
+    , sitDirectorySiteIds
+    , sitSortOrder
+    , sitPageToken
+    , sitSortField
+    , sitSubAccountId
+    , sitAcceptsInStreamVideoPlacements
+    , sitApproved
+    , sitAdWordsSite
+    , sitMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.sites.list@ method which the
+-- 'SitesList' request conforms to.
+type SitesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "sites" :>
+               QueryParam "unmappedSite" Bool :>
+                 QueryParams "campaignIds" (Textual Int64) :>
+                   QueryParam "searchString" Text :>
+                     QueryParam "acceptsInterstitialPlacements" Bool :>
+                       QueryParam "acceptsPublisherPaidPlacements" Bool :>
+                         QueryParams "ids" (Textual Int64) :>
+                           QueryParams "directorySiteIds" (Textual Int64) :>
+                             QueryParam "sortOrder" SitesListSortOrder :>
+                               QueryParam "pageToken" Text :>
+                                 QueryParam "sortField" SitesListSortField :>
+                                   QueryParam "subaccountId" (Textual Int64) :>
+                                     QueryParam "acceptsInStreamVideoPlacements"
+                                       Bool
+                                       :>
+                                       QueryParam "approved" Bool :>
+                                         QueryParam "adWordsSite" Bool :>
+                                           QueryParam "maxResults"
+                                             (Textual Int32)
+                                             :>
+                                             QueryParam "alt" AltJSON :>
+                                               Get '[JSON] SitesListResponse
+
+-- | Retrieves a list of sites, possibly filtered.
+--
+-- /See:/ 'sitesList' smart constructor.
+data SitesList = SitesList
+    { _sitUnmAppedSite                   :: !(Maybe Bool)
+    , _sitCampaignIds                    :: !(Maybe [Textual Int64])
+    , _sitSearchString                   :: !(Maybe Text)
+    , _sitAcceptsInterstitialPlacements  :: !(Maybe Bool)
+    , _sitAcceptsPublisherPaidPlacements :: !(Maybe Bool)
+    , _sitIds                            :: !(Maybe [Textual Int64])
+    , _sitProFileId                      :: !(Textual Int64)
+    , _sitDirectorySiteIds               :: !(Maybe [Textual Int64])
+    , _sitSortOrder                      :: !(Maybe SitesListSortOrder)
+    , _sitPageToken                      :: !(Maybe Text)
+    , _sitSortField                      :: !(Maybe SitesListSortField)
+    , _sitSubAccountId                   :: !(Maybe (Textual Int64))
+    , _sitAcceptsInStreamVideoPlacements :: !(Maybe Bool)
+    , _sitApproved                       :: !(Maybe Bool)
+    , _sitAdWordsSite                    :: !(Maybe Bool)
+    , _sitMaxResults                     :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SitesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sitUnmAppedSite'
+--
+-- * 'sitCampaignIds'
+--
+-- * 'sitSearchString'
+--
+-- * 'sitAcceptsInterstitialPlacements'
+--
+-- * 'sitAcceptsPublisherPaidPlacements'
+--
+-- * 'sitIds'
+--
+-- * 'sitProFileId'
+--
+-- * 'sitDirectorySiteIds'
+--
+-- * 'sitSortOrder'
+--
+-- * 'sitPageToken'
+--
+-- * 'sitSortField'
+--
+-- * 'sitSubAccountId'
+--
+-- * 'sitAcceptsInStreamVideoPlacements'
+--
+-- * 'sitApproved'
+--
+-- * 'sitAdWordsSite'
+--
+-- * 'sitMaxResults'
+sitesList
+    :: Int64 -- ^ 'sitProFileId'
+    -> SitesList
+sitesList pSitProFileId_ =
+    SitesList
+    { _sitUnmAppedSite = Nothing
+    , _sitCampaignIds = Nothing
+    , _sitSearchString = Nothing
+    , _sitAcceptsInterstitialPlacements = Nothing
+    , _sitAcceptsPublisherPaidPlacements = Nothing
+    , _sitIds = Nothing
+    , _sitProFileId = _Coerce # pSitProFileId_
+    , _sitDirectorySiteIds = Nothing
+    , _sitSortOrder = Nothing
+    , _sitPageToken = Nothing
+    , _sitSortField = Nothing
+    , _sitSubAccountId = Nothing
+    , _sitAcceptsInStreamVideoPlacements = Nothing
+    , _sitApproved = Nothing
+    , _sitAdWordsSite = Nothing
+    , _sitMaxResults = Nothing
+    }
+
+-- | Select only sites that have not been mapped to a directory site.
+sitUnmAppedSite :: Lens' SitesList (Maybe Bool)
+sitUnmAppedSite
+  = lens _sitUnmAppedSite
+      (\ s a -> s{_sitUnmAppedSite = a})
+
+-- | Select only sites with these campaign IDs.
+sitCampaignIds :: Lens' SitesList [Int64]
+sitCampaignIds
+  = lens _sitCampaignIds
+      (\ s a -> s{_sitCampaignIds = a})
+      . _Default
+      . _Coerce
+
+-- | Allows searching for objects by name, ID or keyName. Wildcards (*) are
+-- allowed. For example, \"site*2015\" will return objects with names like
+-- \"site June 2015\", \"site April 2015\", or simply \"site 2015\". Most
+-- of the searches also add wildcards implicitly at the start and the end
+-- of the search string. For example, a search string of \"site\" will
+-- match objects with name \"my site\", \"site 2015\", or simply \"site\".
+sitSearchString :: Lens' SitesList (Maybe Text)
+sitSearchString
+  = lens _sitSearchString
+      (\ s a -> s{_sitSearchString = a})
+
+-- | This search filter is no longer supported and will have no effect on the
+-- results returned.
+sitAcceptsInterstitialPlacements :: Lens' SitesList (Maybe Bool)
+sitAcceptsInterstitialPlacements
+  = lens _sitAcceptsInterstitialPlacements
+      (\ s a -> s{_sitAcceptsInterstitialPlacements = a})
+
+-- | Select only sites that accept publisher paid placements.
+sitAcceptsPublisherPaidPlacements :: Lens' SitesList (Maybe Bool)
+sitAcceptsPublisherPaidPlacements
+  = lens _sitAcceptsPublisherPaidPlacements
+      (\ s a -> s{_sitAcceptsPublisherPaidPlacements = a})
+
+-- | Select only sites with these IDs.
+sitIds :: Lens' SitesList [Int64]
+sitIds
+  = lens _sitIds (\ s a -> s{_sitIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+sitProFileId :: Lens' SitesList Int64
+sitProFileId
+  = lens _sitProFileId (\ s a -> s{_sitProFileId = a})
+      . _Coerce
+
+-- | Select only sites with these directory site IDs.
+sitDirectorySiteIds :: Lens' SitesList [Int64]
+sitDirectorySiteIds
+  = lens _sitDirectorySiteIds
+      (\ s a -> s{_sitDirectorySiteIds = a})
+      . _Default
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+sitSortOrder :: Lens' SitesList (Maybe SitesListSortOrder)
+sitSortOrder
+  = lens _sitSortOrder (\ s a -> s{_sitSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+sitPageToken :: Lens' SitesList (Maybe Text)
+sitPageToken
+  = lens _sitPageToken (\ s a -> s{_sitPageToken = a})
+
+-- | Field by which to sort the list.
+sitSortField :: Lens' SitesList (Maybe SitesListSortField)
+sitSortField
+  = lens _sitSortField (\ s a -> s{_sitSortField = a})
+
+-- | Select only sites with this subaccount ID.
+sitSubAccountId :: Lens' SitesList (Maybe Int64)
+sitSubAccountId
+  = lens _sitSubAccountId
+      (\ s a -> s{_sitSubAccountId = a})
+      . mapping _Coerce
+
+-- | This search filter is no longer supported and will have no effect on the
+-- results returned.
+sitAcceptsInStreamVideoPlacements :: Lens' SitesList (Maybe Bool)
+sitAcceptsInStreamVideoPlacements
+  = lens _sitAcceptsInStreamVideoPlacements
+      (\ s a -> s{_sitAcceptsInStreamVideoPlacements = a})
+
+-- | Select only approved sites.
+sitApproved :: Lens' SitesList (Maybe Bool)
+sitApproved
+  = lens _sitApproved (\ s a -> s{_sitApproved = a})
+
+-- | Select only AdWords sites.
+sitAdWordsSite :: Lens' SitesList (Maybe Bool)
+sitAdWordsSite
+  = lens _sitAdWordsSite
+      (\ s a -> s{_sitAdWordsSite = a})
+
+-- | Maximum number of results to return.
+sitMaxResults :: Lens' SitesList (Maybe Int32)
+sitMaxResults
+  = lens _sitMaxResults
+      (\ s a -> s{_sitMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest SitesList where
+        type Rs SitesList = SitesListResponse
+        requestClient SitesList{..}
+          = go _sitProFileId _sitUnmAppedSite
+              (_sitCampaignIds ^. _Default)
+              _sitSearchString
+              _sitAcceptsInterstitialPlacements
+              _sitAcceptsPublisherPaidPlacements
+              (_sitIds ^. _Default)
+              (_sitDirectorySiteIds ^. _Default)
+              _sitSortOrder
+              _sitPageToken
+              _sitSortField
+              _sitSubAccountId
+              _sitAcceptsInStreamVideoPlacements
+              _sitApproved
+              _sitAdWordsSite
+              _sitMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy SitesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Sites/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Sites/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Sites/Patch.hs
@@ -0,0 +1,109 @@
+{-# 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.DFAReporting.Sites.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing site. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.sites.patch@.
+module Network.Google.Resource.DFAReporting.Sites.Patch
+    (
+    -- * REST Resource
+      SitesPatchResource
+
+    -- * Creating a Request
+    , sitesPatch
+    , SitesPatch
+
+    -- * Request Lenses
+    , spProFileId
+    , spPayload
+    , spId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.sites.patch@ method which the
+-- 'SitesPatch' request conforms to.
+type SitesPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "sites" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] Site :> Patch '[JSON] Site
+
+-- | Updates an existing site. This method supports patch semantics.
+--
+-- /See:/ 'sitesPatch' smart constructor.
+data SitesPatch = SitesPatch
+    { _spProFileId :: !(Textual Int64)
+    , _spPayload   :: !Site
+    , _spId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SitesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'spProFileId'
+--
+-- * 'spPayload'
+--
+-- * 'spId'
+sitesPatch
+    :: Int64 -- ^ 'spProFileId'
+    -> Site -- ^ 'spPayload'
+    -> Int64 -- ^ 'spId'
+    -> SitesPatch
+sitesPatch pSpProFileId_ pSpPayload_ pSpId_ =
+    SitesPatch
+    { _spProFileId = _Coerce # pSpProFileId_
+    , _spPayload = pSpPayload_
+    , _spId = _Coerce # pSpId_
+    }
+
+-- | User profile ID associated with this request.
+spProFileId :: Lens' SitesPatch Int64
+spProFileId
+  = lens _spProFileId (\ s a -> s{_spProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+spPayload :: Lens' SitesPatch Site
+spPayload
+  = lens _spPayload (\ s a -> s{_spPayload = a})
+
+-- | Site ID.
+spId :: Lens' SitesPatch Int64
+spId = lens _spId (\ s a -> s{_spId = a}) . _Coerce
+
+instance GoogleRequest SitesPatch where
+        type Rs SitesPatch = Site
+        requestClient SitesPatch{..}
+          = go _spProFileId (Just _spId) (Just AltJSON)
+              _spPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy SitesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Sites/Update.hs b/gen/Network/Google/Resource/DFAReporting/Sites/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Sites/Update.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Sites.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing site.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.sites.update@.
+module Network.Google.Resource.DFAReporting.Sites.Update
+    (
+    -- * REST Resource
+      SitesUpdateResource
+
+    -- * Creating a Request
+    , sitesUpdate
+    , SitesUpdate
+
+    -- * Request Lenses
+    , suProFileId
+    , suPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.sites.update@ method which the
+-- 'SitesUpdate' request conforms to.
+type SitesUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "sites" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Site :> Put '[JSON] Site
+
+-- | Updates an existing site.
+--
+-- /See:/ 'sitesUpdate' smart constructor.
+data SitesUpdate = SitesUpdate
+    { _suProFileId :: !(Textual Int64)
+    , _suPayload   :: !Site
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SitesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'suProFileId'
+--
+-- * 'suPayload'
+sitesUpdate
+    :: Int64 -- ^ 'suProFileId'
+    -> Site -- ^ 'suPayload'
+    -> SitesUpdate
+sitesUpdate pSuProFileId_ pSuPayload_ =
+    SitesUpdate
+    { _suProFileId = _Coerce # pSuProFileId_
+    , _suPayload = pSuPayload_
+    }
+
+-- | User profile ID associated with this request.
+suProFileId :: Lens' SitesUpdate Int64
+suProFileId
+  = lens _suProFileId (\ s a -> s{_suProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+suPayload :: Lens' SitesUpdate Site
+suPayload
+  = lens _suPayload (\ s a -> s{_suPayload = a})
+
+instance GoogleRequest SitesUpdate where
+        type Rs SitesUpdate = Site
+        requestClient SitesUpdate{..}
+          = go _suProFileId (Just AltJSON) _suPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy SitesUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Sizes/Get.hs b/gen/Network/Google/Resource/DFAReporting/Sizes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Sizes/Get.hs
@@ -0,0 +1,96 @@
+{-# 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.DFAReporting.Sizes.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one size by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.sizes.get@.
+module Network.Google.Resource.DFAReporting.Sizes.Get
+    (
+    -- * REST Resource
+      SizesGetResource
+
+    -- * Creating a Request
+    , sizesGet
+    , SizesGet
+
+    -- * Request Lenses
+    , sgProFileId
+    , sgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.sizes.get@ method which the
+-- 'SizesGet' request conforms to.
+type SizesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "sizes" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] Size
+
+-- | Gets one size by ID.
+--
+-- /See:/ 'sizesGet' smart constructor.
+data SizesGet = SizesGet
+    { _sgProFileId :: !(Textual Int64)
+    , _sgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SizesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sgProFileId'
+--
+-- * 'sgId'
+sizesGet
+    :: Int64 -- ^ 'sgProFileId'
+    -> Int64 -- ^ 'sgId'
+    -> SizesGet
+sizesGet pSgProFileId_ pSgId_ =
+    SizesGet
+    { _sgProFileId = _Coerce # pSgProFileId_
+    , _sgId = _Coerce # pSgId_
+    }
+
+-- | User profile ID associated with this request.
+sgProFileId :: Lens' SizesGet Int64
+sgProFileId
+  = lens _sgProFileId (\ s a -> s{_sgProFileId = a}) .
+      _Coerce
+
+-- | Size ID.
+sgId :: Lens' SizesGet Int64
+sgId = lens _sgId (\ s a -> s{_sgId = a}) . _Coerce
+
+instance GoogleRequest SizesGet where
+        type Rs SizesGet = Size
+        requestClient SizesGet{..}
+          = go _sgProFileId _sgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy SizesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Sizes/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Sizes/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Sizes/Insert.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Sizes.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new size.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.sizes.insert@.
+module Network.Google.Resource.DFAReporting.Sizes.Insert
+    (
+    -- * REST Resource
+      SizesInsertResource
+
+    -- * Creating a Request
+    , sizesInsert
+    , SizesInsert
+
+    -- * Request Lenses
+    , siProFileId
+    , siPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.sizes.insert@ method which the
+-- 'SizesInsert' request conforms to.
+type SizesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "sizes" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] Size :> Post '[JSON] Size
+
+-- | Inserts a new size.
+--
+-- /See:/ 'sizesInsert' smart constructor.
+data SizesInsert = SizesInsert
+    { _siProFileId :: !(Textual Int64)
+    , _siPayload   :: !Size
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SizesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'siProFileId'
+--
+-- * 'siPayload'
+sizesInsert
+    :: Int64 -- ^ 'siProFileId'
+    -> Size -- ^ 'siPayload'
+    -> SizesInsert
+sizesInsert pSiProFileId_ pSiPayload_ =
+    SizesInsert
+    { _siProFileId = _Coerce # pSiProFileId_
+    , _siPayload = pSiPayload_
+    }
+
+-- | User profile ID associated with this request.
+siProFileId :: Lens' SizesInsert Int64
+siProFileId
+  = lens _siProFileId (\ s a -> s{_siProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+siPayload :: Lens' SizesInsert Size
+siPayload
+  = lens _siPayload (\ s a -> s{_siPayload = a})
+
+instance GoogleRequest SizesInsert where
+        type Rs SizesInsert = Size
+        requestClient SizesInsert{..}
+          = go _siProFileId (Just AltJSON) _siPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy SizesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Sizes/List.hs b/gen/Network/Google/Resource/DFAReporting/Sizes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Sizes/List.hs
@@ -0,0 +1,137 @@
+{-# 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.DFAReporting.Sizes.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of sizes, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.sizes.list@.
+module Network.Google.Resource.DFAReporting.Sizes.List
+    (
+    -- * REST Resource
+      SizesListResource
+
+    -- * Creating a Request
+    , sizesList
+    , SizesList
+
+    -- * Request Lenses
+    , slHeight
+    , slIds
+    , slWidth
+    , slProFileId
+    , slIabStandard
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.sizes.list@ method which the
+-- 'SizesList' request conforms to.
+type SizesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "sizes" :>
+               QueryParam "height" (Textual Int32) :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParam "width" (Textual Int32) :>
+                     QueryParam "iabStandard" Bool :>
+                       QueryParam "alt" AltJSON :>
+                         Get '[JSON] SizesListResponse
+
+-- | Retrieves a list of sizes, possibly filtered.
+--
+-- /See:/ 'sizesList' smart constructor.
+data SizesList = SizesList
+    { _slHeight      :: !(Maybe (Textual Int32))
+    , _slIds         :: !(Maybe [Textual Int64])
+    , _slWidth       :: !(Maybe (Textual Int32))
+    , _slProFileId   :: !(Textual Int64)
+    , _slIabStandard :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SizesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'slHeight'
+--
+-- * 'slIds'
+--
+-- * 'slWidth'
+--
+-- * 'slProFileId'
+--
+-- * 'slIabStandard'
+sizesList
+    :: Int64 -- ^ 'slProFileId'
+    -> SizesList
+sizesList pSlProFileId_ =
+    SizesList
+    { _slHeight = Nothing
+    , _slIds = Nothing
+    , _slWidth = Nothing
+    , _slProFileId = _Coerce # pSlProFileId_
+    , _slIabStandard = Nothing
+    }
+
+-- | Select only sizes with this height.
+slHeight :: Lens' SizesList (Maybe Int32)
+slHeight
+  = lens _slHeight (\ s a -> s{_slHeight = a}) .
+      mapping _Coerce
+
+-- | Select only sizes with these IDs.
+slIds :: Lens' SizesList [Int64]
+slIds
+  = lens _slIds (\ s a -> s{_slIds = a}) . _Default .
+      _Coerce
+
+-- | Select only sizes with this width.
+slWidth :: Lens' SizesList (Maybe Int32)
+slWidth
+  = lens _slWidth (\ s a -> s{_slWidth = a}) .
+      mapping _Coerce
+
+-- | User profile ID associated with this request.
+slProFileId :: Lens' SizesList Int64
+slProFileId
+  = lens _slProFileId (\ s a -> s{_slProFileId = a}) .
+      _Coerce
+
+-- | Select only IAB standard sizes.
+slIabStandard :: Lens' SizesList (Maybe Bool)
+slIabStandard
+  = lens _slIabStandard
+      (\ s a -> s{_slIabStandard = a})
+
+instance GoogleRequest SizesList where
+        type Rs SizesList = SizesListResponse
+        requestClient SizesList{..}
+          = go _slProFileId _slHeight (_slIds ^. _Default)
+              _slWidth
+              _slIabStandard
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy SizesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Get.hs b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Get.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.SubAccounts.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one subaccount by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.subaccounts.get@.
+module Network.Google.Resource.DFAReporting.SubAccounts.Get
+    (
+    -- * REST Resource
+      SubAccountsGetResource
+
+    -- * Creating a Request
+    , subAccountsGet
+    , SubAccountsGet
+
+    -- * Request Lenses
+    , sagProFileId
+    , sagId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.subaccounts.get@ method which the
+-- 'SubAccountsGet' request conforms to.
+type SubAccountsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "subaccounts" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] SubAccount
+
+-- | Gets one subaccount by ID.
+--
+-- /See:/ 'subAccountsGet' smart constructor.
+data SubAccountsGet = SubAccountsGet
+    { _sagProFileId :: !(Textual Int64)
+    , _sagId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubAccountsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sagProFileId'
+--
+-- * 'sagId'
+subAccountsGet
+    :: Int64 -- ^ 'sagProFileId'
+    -> Int64 -- ^ 'sagId'
+    -> SubAccountsGet
+subAccountsGet pSagProFileId_ pSagId_ =
+    SubAccountsGet
+    { _sagProFileId = _Coerce # pSagProFileId_
+    , _sagId = _Coerce # pSagId_
+    }
+
+-- | User profile ID associated with this request.
+sagProFileId :: Lens' SubAccountsGet Int64
+sagProFileId
+  = lens _sagProFileId (\ s a -> s{_sagProFileId = a})
+      . _Coerce
+
+-- | Subaccount ID.
+sagId :: Lens' SubAccountsGet Int64
+sagId
+  = lens _sagId (\ s a -> s{_sagId = a}) . _Coerce
+
+instance GoogleRequest SubAccountsGet where
+        type Rs SubAccountsGet = SubAccount
+        requestClient SubAccountsGet{..}
+          = go _sagProFileId _sagId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy SubAccountsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Insert.hs b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Insert.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.SubAccounts.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new subaccount.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.subaccounts.insert@.
+module Network.Google.Resource.DFAReporting.SubAccounts.Insert
+    (
+    -- * REST Resource
+      SubAccountsInsertResource
+
+    -- * Creating a Request
+    , subAccountsInsert
+    , SubAccountsInsert
+
+    -- * Request Lenses
+    , saiProFileId
+    , saiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.subaccounts.insert@ method which the
+-- 'SubAccountsInsert' request conforms to.
+type SubAccountsInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "subaccounts" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] SubAccount :> Post '[JSON] SubAccount
+
+-- | Inserts a new subaccount.
+--
+-- /See:/ 'subAccountsInsert' smart constructor.
+data SubAccountsInsert = SubAccountsInsert
+    { _saiProFileId :: !(Textual Int64)
+    , _saiPayload   :: !SubAccount
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubAccountsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'saiProFileId'
+--
+-- * 'saiPayload'
+subAccountsInsert
+    :: Int64 -- ^ 'saiProFileId'
+    -> SubAccount -- ^ 'saiPayload'
+    -> SubAccountsInsert
+subAccountsInsert pSaiProFileId_ pSaiPayload_ =
+    SubAccountsInsert
+    { _saiProFileId = _Coerce # pSaiProFileId_
+    , _saiPayload = pSaiPayload_
+    }
+
+-- | User profile ID associated with this request.
+saiProFileId :: Lens' SubAccountsInsert Int64
+saiProFileId
+  = lens _saiProFileId (\ s a -> s{_saiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+saiPayload :: Lens' SubAccountsInsert SubAccount
+saiPayload
+  = lens _saiPayload (\ s a -> s{_saiPayload = a})
+
+instance GoogleRequest SubAccountsInsert where
+        type Rs SubAccountsInsert = SubAccount
+        requestClient SubAccountsInsert{..}
+          = go _saiProFileId (Just AltJSON) _saiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy SubAccountsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/SubAccounts/List.hs b/gen/Network/Google/Resource/DFAReporting/SubAccounts/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/SubAccounts/List.hs
@@ -0,0 +1,169 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.SubAccounts.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a list of subaccounts, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.subaccounts.list@.
+module Network.Google.Resource.DFAReporting.SubAccounts.List
+    (
+    -- * REST Resource
+      SubAccountsListResource
+
+    -- * Creating a Request
+    , subAccountsList
+    , SubAccountsList
+
+    -- * Request Lenses
+    , salSearchString
+    , salIds
+    , salProFileId
+    , salSortOrder
+    , salPageToken
+    , salSortField
+    , salMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.subaccounts.list@ method which the
+-- 'SubAccountsList' request conforms to.
+type SubAccountsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "subaccounts" :>
+               QueryParam "searchString" Text :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParam "sortOrder" SubAccountsListSortOrder :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "sortField" SubAccountsListSortField :>
+                         QueryParam "maxResults" (Textual Int32) :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] SubAccountsListResponse
+
+-- | Gets a list of subaccounts, possibly filtered.
+--
+-- /See:/ 'subAccountsList' smart constructor.
+data SubAccountsList = SubAccountsList
+    { _salSearchString :: !(Maybe Text)
+    , _salIds          :: !(Maybe [Textual Int64])
+    , _salProFileId    :: !(Textual Int64)
+    , _salSortOrder    :: !(Maybe SubAccountsListSortOrder)
+    , _salPageToken    :: !(Maybe Text)
+    , _salSortField    :: !(Maybe SubAccountsListSortField)
+    , _salMaxResults   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubAccountsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'salSearchString'
+--
+-- * 'salIds'
+--
+-- * 'salProFileId'
+--
+-- * 'salSortOrder'
+--
+-- * 'salPageToken'
+--
+-- * 'salSortField'
+--
+-- * 'salMaxResults'
+subAccountsList
+    :: Int64 -- ^ 'salProFileId'
+    -> SubAccountsList
+subAccountsList pSalProFileId_ =
+    SubAccountsList
+    { _salSearchString = Nothing
+    , _salIds = Nothing
+    , _salProFileId = _Coerce # pSalProFileId_
+    , _salSortOrder = Nothing
+    , _salPageToken = Nothing
+    , _salSortField = Nothing
+    , _salMaxResults = Nothing
+    }
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"subaccount*2015\" will return objects with names like
+-- \"subaccount June 2015\", \"subaccount April 2015\", or simply
+-- \"subaccount 2015\". Most of the searches also add wildcards implicitly
+-- at the start and the end of the search string. For example, a search
+-- string of \"subaccount\" will match objects with name \"my subaccount\",
+-- \"subaccount 2015\", or simply \"subaccount\".
+salSearchString :: Lens' SubAccountsList (Maybe Text)
+salSearchString
+  = lens _salSearchString
+      (\ s a -> s{_salSearchString = a})
+
+-- | Select only subaccounts with these IDs.
+salIds :: Lens' SubAccountsList [Int64]
+salIds
+  = lens _salIds (\ s a -> s{_salIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+salProFileId :: Lens' SubAccountsList Int64
+salProFileId
+  = lens _salProFileId (\ s a -> s{_salProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+salSortOrder :: Lens' SubAccountsList (Maybe SubAccountsListSortOrder)
+salSortOrder
+  = lens _salSortOrder (\ s a -> s{_salSortOrder = a})
+
+-- | Value of the nextPageToken from the previous result page.
+salPageToken :: Lens' SubAccountsList (Maybe Text)
+salPageToken
+  = lens _salPageToken (\ s a -> s{_salPageToken = a})
+
+-- | Field by which to sort the list.
+salSortField :: Lens' SubAccountsList (Maybe SubAccountsListSortField)
+salSortField
+  = lens _salSortField (\ s a -> s{_salSortField = a})
+
+-- | Maximum number of results to return.
+salMaxResults :: Lens' SubAccountsList (Maybe Int32)
+salMaxResults
+  = lens _salMaxResults
+      (\ s a -> s{_salMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest SubAccountsList where
+        type Rs SubAccountsList = SubAccountsListResponse
+        requestClient SubAccountsList{..}
+          = go _salProFileId _salSearchString
+              (_salIds ^. _Default)
+              _salSortOrder
+              _salPageToken
+              _salSortField
+              _salMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy SubAccountsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Patch.hs b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Patch.hs
@@ -0,0 +1,112 @@
+{-# 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.DFAReporting.SubAccounts.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing subaccount. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.subaccounts.patch@.
+module Network.Google.Resource.DFAReporting.SubAccounts.Patch
+    (
+    -- * REST Resource
+      SubAccountsPatchResource
+
+    -- * Creating a Request
+    , subAccountsPatch
+    , SubAccountsPatch
+
+    -- * Request Lenses
+    , sapProFileId
+    , sapPayload
+    , sapId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.subaccounts.patch@ method which the
+-- 'SubAccountsPatch' request conforms to.
+type SubAccountsPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "subaccounts" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] SubAccount :>
+                     Patch '[JSON] SubAccount
+
+-- | Updates an existing subaccount. This method supports patch semantics.
+--
+-- /See:/ 'subAccountsPatch' smart constructor.
+data SubAccountsPatch = SubAccountsPatch
+    { _sapProFileId :: !(Textual Int64)
+    , _sapPayload   :: !SubAccount
+    , _sapId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubAccountsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sapProFileId'
+--
+-- * 'sapPayload'
+--
+-- * 'sapId'
+subAccountsPatch
+    :: Int64 -- ^ 'sapProFileId'
+    -> SubAccount -- ^ 'sapPayload'
+    -> Int64 -- ^ 'sapId'
+    -> SubAccountsPatch
+subAccountsPatch pSapProFileId_ pSapPayload_ pSapId_ =
+    SubAccountsPatch
+    { _sapProFileId = _Coerce # pSapProFileId_
+    , _sapPayload = pSapPayload_
+    , _sapId = _Coerce # pSapId_
+    }
+
+-- | User profile ID associated with this request.
+sapProFileId :: Lens' SubAccountsPatch Int64
+sapProFileId
+  = lens _sapProFileId (\ s a -> s{_sapProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+sapPayload :: Lens' SubAccountsPatch SubAccount
+sapPayload
+  = lens _sapPayload (\ s a -> s{_sapPayload = a})
+
+-- | Subaccount ID.
+sapId :: Lens' SubAccountsPatch Int64
+sapId
+  = lens _sapId (\ s a -> s{_sapId = a}) . _Coerce
+
+instance GoogleRequest SubAccountsPatch where
+        type Rs SubAccountsPatch = SubAccount
+        requestClient SubAccountsPatch{..}
+          = go _sapProFileId (Just _sapId) (Just AltJSON)
+              _sapPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy SubAccountsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Update.hs b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Update.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.SubAccounts.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing subaccount.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.subaccounts.update@.
+module Network.Google.Resource.DFAReporting.SubAccounts.Update
+    (
+    -- * REST Resource
+      SubAccountsUpdateResource
+
+    -- * Creating a Request
+    , subAccountsUpdate
+    , SubAccountsUpdate
+
+    -- * Request Lenses
+    , sauProFileId
+    , sauPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.subaccounts.update@ method which the
+-- 'SubAccountsUpdate' request conforms to.
+type SubAccountsUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "subaccounts" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] SubAccount :> Put '[JSON] SubAccount
+
+-- | Updates an existing subaccount.
+--
+-- /See:/ 'subAccountsUpdate' smart constructor.
+data SubAccountsUpdate = SubAccountsUpdate
+    { _sauProFileId :: !(Textual Int64)
+    , _sauPayload   :: !SubAccount
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubAccountsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sauProFileId'
+--
+-- * 'sauPayload'
+subAccountsUpdate
+    :: Int64 -- ^ 'sauProFileId'
+    -> SubAccount -- ^ 'sauPayload'
+    -> SubAccountsUpdate
+subAccountsUpdate pSauProFileId_ pSauPayload_ =
+    SubAccountsUpdate
+    { _sauProFileId = _Coerce # pSauProFileId_
+    , _sauPayload = pSauPayload_
+    }
+
+-- | User profile ID associated with this request.
+sauProFileId :: Lens' SubAccountsUpdate Int64
+sauProFileId
+  = lens _sauProFileId (\ s a -> s{_sauProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+sauPayload :: Lens' SubAccountsUpdate SubAccount
+sauPayload
+  = lens _sauPayload (\ s a -> s{_sauPayload = a})
+
+instance GoogleRequest SubAccountsUpdate where
+        type Rs SubAccountsUpdate = SubAccount
+        requestClient SubAccountsUpdate{..}
+          = go _sauProFileId (Just AltJSON) _sauPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy SubAccountsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/Get.hs b/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/Get.hs
@@ -0,0 +1,103 @@
+{-# 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.DFAReporting.TargetableRemarketingLists.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one remarketing list by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.targetableRemarketingLists.get@.
+module Network.Google.Resource.DFAReporting.TargetableRemarketingLists.Get
+    (
+    -- * REST Resource
+      TargetableRemarketingListsGetResource
+
+    -- * Creating a Request
+    , targetableRemarketingListsGet
+    , TargetableRemarketingListsGet
+
+    -- * Request Lenses
+    , trlgProFileId
+    , trlgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.targetableRemarketingLists.get@ method which the
+-- 'TargetableRemarketingListsGet' request conforms to.
+type TargetableRemarketingListsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "targetableRemarketingLists" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] TargetableRemarketingList
+
+-- | Gets one remarketing list by ID.
+--
+-- /See:/ 'targetableRemarketingListsGet' smart constructor.
+data TargetableRemarketingListsGet = TargetableRemarketingListsGet
+    { _trlgProFileId :: !(Textual Int64)
+    , _trlgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetableRemarketingListsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trlgProFileId'
+--
+-- * 'trlgId'
+targetableRemarketingListsGet
+    :: Int64 -- ^ 'trlgProFileId'
+    -> Int64 -- ^ 'trlgId'
+    -> TargetableRemarketingListsGet
+targetableRemarketingListsGet pTrlgProFileId_ pTrlgId_ =
+    TargetableRemarketingListsGet
+    { _trlgProFileId = _Coerce # pTrlgProFileId_
+    , _trlgId = _Coerce # pTrlgId_
+    }
+
+-- | User profile ID associated with this request.
+trlgProFileId :: Lens' TargetableRemarketingListsGet Int64
+trlgProFileId
+  = lens _trlgProFileId
+      (\ s a -> s{_trlgProFileId = a})
+      . _Coerce
+
+-- | Remarketing list ID.
+trlgId :: Lens' TargetableRemarketingListsGet Int64
+trlgId
+  = lens _trlgId (\ s a -> s{_trlgId = a}) . _Coerce
+
+instance GoogleRequest TargetableRemarketingListsGet
+         where
+        type Rs TargetableRemarketingListsGet =
+             TargetableRemarketingList
+        requestClient TargetableRemarketingListsGet{..}
+          = go _trlgProFileId _trlgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy TargetableRemarketingListsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/List.hs b/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/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.DFAReporting.TargetableRemarketingLists.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of targetable remarketing lists, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.targetableRemarketingLists.list@.
+module Network.Google.Resource.DFAReporting.TargetableRemarketingLists.List
+    (
+    -- * REST Resource
+      TargetableRemarketingListsListResource
+
+    -- * Creating a Request
+    , targetableRemarketingListsList
+    , TargetableRemarketingListsList
+
+    -- * Request Lenses
+    , trllAdvertiserId
+    , trllProFileId
+    , trllSortOrder
+    , trllActive
+    , trllName
+    , trllPageToken
+    , trllSortField
+    , trllMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.targetableRemarketingLists.list@ method which the
+-- 'TargetableRemarketingListsList' request conforms to.
+type TargetableRemarketingListsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "targetableRemarketingLists" :>
+               QueryParam "advertiserId" (Textual Int64) :>
+                 QueryParam "sortOrder"
+                   TargetableRemarketingListsListSortOrder
+                   :>
+                   QueryParam "active" Bool :>
+                     QueryParam "name" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "sortField"
+                           TargetableRemarketingListsListSortField
+                           :>
+                           QueryParam "maxResults" (Textual Int32) :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON]
+                                 TargetableRemarketingListsListResponse
+
+-- | Retrieves a list of targetable remarketing lists, possibly filtered.
+--
+-- /See:/ 'targetableRemarketingListsList' smart constructor.
+data TargetableRemarketingListsList = TargetableRemarketingListsList
+    { _trllAdvertiserId :: !(Textual Int64)
+    , _trllProFileId    :: !(Textual Int64)
+    , _trllSortOrder    :: !(Maybe TargetableRemarketingListsListSortOrder)
+    , _trllActive       :: !(Maybe Bool)
+    , _trllName         :: !(Maybe Text)
+    , _trllPageToken    :: !(Maybe Text)
+    , _trllSortField    :: !(Maybe TargetableRemarketingListsListSortField)
+    , _trllMaxResults   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetableRemarketingListsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trllAdvertiserId'
+--
+-- * 'trllProFileId'
+--
+-- * 'trllSortOrder'
+--
+-- * 'trllActive'
+--
+-- * 'trllName'
+--
+-- * 'trllPageToken'
+--
+-- * 'trllSortField'
+--
+-- * 'trllMaxResults'
+targetableRemarketingListsList
+    :: Int64 -- ^ 'trllAdvertiserId'
+    -> Int64 -- ^ 'trllProFileId'
+    -> TargetableRemarketingListsList
+targetableRemarketingListsList pTrllAdvertiserId_ pTrllProFileId_ =
+    TargetableRemarketingListsList
+    { _trllAdvertiserId = _Coerce # pTrllAdvertiserId_
+    , _trllProFileId = _Coerce # pTrllProFileId_
+    , _trllSortOrder = Nothing
+    , _trllActive = Nothing
+    , _trllName = Nothing
+    , _trllPageToken = Nothing
+    , _trllSortField = Nothing
+    , _trllMaxResults = Nothing
+    }
+
+-- | Select only targetable remarketing lists targetable by these
+-- advertisers.
+trllAdvertiserId :: Lens' TargetableRemarketingListsList Int64
+trllAdvertiserId
+  = lens _trllAdvertiserId
+      (\ s a -> s{_trllAdvertiserId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+trllProFileId :: Lens' TargetableRemarketingListsList Int64
+trllProFileId
+  = lens _trllProFileId
+      (\ s a -> s{_trllProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+trllSortOrder :: Lens' TargetableRemarketingListsList (Maybe TargetableRemarketingListsListSortOrder)
+trllSortOrder
+  = lens _trllSortOrder
+      (\ s a -> s{_trllSortOrder = a})
+
+-- | Select only active or only inactive targetable remarketing lists.
+trllActive :: Lens' TargetableRemarketingListsList (Maybe Bool)
+trllActive
+  = lens _trllActive (\ s a -> s{_trllActive = a})
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"remarketing list*2015\" will return objects with names
+-- like \"remarketing list June 2015\", \"remarketing list April 2015\", or
+-- simply \"remarketing list 2015\". Most of the searches also add
+-- wildcards implicitly at the start and the end of the search string. For
+-- example, a search string of \"remarketing list\" will match objects with
+-- name \"my remarketing list\", \"remarketing list 2015\", or simply
+-- \"remarketing list\".
+trllName :: Lens' TargetableRemarketingListsList (Maybe Text)
+trllName = lens _trllName (\ s a -> s{_trllName = a})
+
+-- | Value of the nextPageToken from the previous result page.
+trllPageToken :: Lens' TargetableRemarketingListsList (Maybe Text)
+trllPageToken
+  = lens _trllPageToken
+      (\ s a -> s{_trllPageToken = a})
+
+-- | Field by which to sort the list.
+trllSortField :: Lens' TargetableRemarketingListsList (Maybe TargetableRemarketingListsListSortField)
+trllSortField
+  = lens _trllSortField
+      (\ s a -> s{_trllSortField = a})
+
+-- | Maximum number of results to return.
+trllMaxResults :: Lens' TargetableRemarketingListsList (Maybe Int32)
+trllMaxResults
+  = lens _trllMaxResults
+      (\ s a -> s{_trllMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest TargetableRemarketingListsList
+         where
+        type Rs TargetableRemarketingListsList =
+             TargetableRemarketingListsListResponse
+        requestClient TargetableRemarketingListsList{..}
+          = go _trllProFileId (Just _trllAdvertiserId)
+              _trllSortOrder
+              _trllActive
+              _trllName
+              _trllPageToken
+              _trllSortField
+              _trllMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy TargetableRemarketingListsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserProFiles/Get.hs b/gen/Network/Google/Resource/DFAReporting/UserProFiles/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserProFiles/Get.hs
@@ -0,0 +1,86 @@
+{-# 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.DFAReporting.UserProFiles.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one user profile by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userProfiles.get@.
+module Network.Google.Resource.DFAReporting.UserProFiles.Get
+    (
+    -- * REST Resource
+      UserProFilesGetResource
+
+    -- * Creating a Request
+    , userProFilesGet
+    , UserProFilesGet
+
+    -- * Request Lenses
+    , upfgProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userProfiles.get@ method which the
+-- 'UserProFilesGet' request conforms to.
+type UserProFilesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             QueryParam "alt" AltJSON :> Get '[JSON] UserProFile
+
+-- | Gets one user profile by ID.
+--
+-- /See:/ 'userProFilesGet' smart constructor.
+newtype UserProFilesGet = UserProFilesGet
+    { _upfgProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFilesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upfgProFileId'
+userProFilesGet
+    :: Int64 -- ^ 'upfgProFileId'
+    -> UserProFilesGet
+userProFilesGet pUpfgProFileId_ =
+    UserProFilesGet
+    { _upfgProFileId = _Coerce # pUpfgProFileId_
+    }
+
+-- | The user profile ID.
+upfgProFileId :: Lens' UserProFilesGet Int64
+upfgProFileId
+  = lens _upfgProFileId
+      (\ s a -> s{_upfgProFileId = a})
+      . _Coerce
+
+instance GoogleRequest UserProFilesGet where
+        type Rs UserProFilesGet = UserProFile
+        requestClient UserProFilesGet{..}
+          = go _upfgProFileId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserProFilesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserProFiles/List.hs b/gen/Network/Google/Resource/DFAReporting/UserProFiles/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserProFiles/List.hs
@@ -0,0 +1,69 @@
+{-# 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.DFAReporting.UserProFiles.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves list of user profiles for a user.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userProfiles.list@.
+module Network.Google.Resource.DFAReporting.UserProFiles.List
+    (
+    -- * REST Resource
+      UserProFilesListResource
+
+    -- * Creating a Request
+    , userProFilesList
+    , UserProFilesList
+
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userProfiles.list@ method which the
+-- 'UserProFilesList' request conforms to.
+type UserProFilesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           QueryParam "alt" AltJSON :>
+             Get '[JSON] UserProFileList
+
+-- | Retrieves list of user profiles for a user.
+--
+-- /See:/ 'userProFilesList' smart constructor.
+data UserProFilesList =
+    UserProFilesList
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFilesList' with the minimum fields required to make a request.
+--
+userProFilesList
+    :: UserProFilesList
+userProFilesList = UserProFilesList
+
+instance GoogleRequest UserProFilesList where
+        type Rs UserProFilesList = UserProFileList
+        requestClient UserProFilesList{}
+          = go (Just AltJSON) dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserProFilesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/Get.hs
@@ -0,0 +1,102 @@
+{-# 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.DFAReporting.UserRolePermissionGroups.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one user role permission group by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userRolePermissionGroups.get@.
+module Network.Google.Resource.DFAReporting.UserRolePermissionGroups.Get
+    (
+    -- * REST Resource
+      UserRolePermissionGroupsGetResource
+
+    -- * Creating a Request
+    , userRolePermissionGroupsGet
+    , UserRolePermissionGroupsGet
+
+    -- * Request Lenses
+    , urpggProFileId
+    , urpggId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userRolePermissionGroups.get@ method which the
+-- 'UserRolePermissionGroupsGet' request conforms to.
+type UserRolePermissionGroupsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "userRolePermissionGroups" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] UserRolePermissionGroup
+
+-- | Gets one user role permission group by ID.
+--
+-- /See:/ 'userRolePermissionGroupsGet' smart constructor.
+data UserRolePermissionGroupsGet = UserRolePermissionGroupsGet
+    { _urpggProFileId :: !(Textual Int64)
+    , _urpggId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermissionGroupsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urpggProFileId'
+--
+-- * 'urpggId'
+userRolePermissionGroupsGet
+    :: Int64 -- ^ 'urpggProFileId'
+    -> Int64 -- ^ 'urpggId'
+    -> UserRolePermissionGroupsGet
+userRolePermissionGroupsGet pUrpggProFileId_ pUrpggId_ =
+    UserRolePermissionGroupsGet
+    { _urpggProFileId = _Coerce # pUrpggProFileId_
+    , _urpggId = _Coerce # pUrpggId_
+    }
+
+-- | User profile ID associated with this request.
+urpggProFileId :: Lens' UserRolePermissionGroupsGet Int64
+urpggProFileId
+  = lens _urpggProFileId
+      (\ s a -> s{_urpggProFileId = a})
+      . _Coerce
+
+-- | User role permission group ID.
+urpggId :: Lens' UserRolePermissionGroupsGet Int64
+urpggId
+  = lens _urpggId (\ s a -> s{_urpggId = a}) . _Coerce
+
+instance GoogleRequest UserRolePermissionGroupsGet
+         where
+        type Rs UserRolePermissionGroupsGet =
+             UserRolePermissionGroup
+        requestClient UserRolePermissionGroupsGet{..}
+          = go _urpggProFileId _urpggId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserRolePermissionGroupsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/List.hs
@@ -0,0 +1,90 @@
+{-# 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.DFAReporting.UserRolePermissionGroups.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a list of all supported user role permission groups.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userRolePermissionGroups.list@.
+module Network.Google.Resource.DFAReporting.UserRolePermissionGroups.List
+    (
+    -- * REST Resource
+      UserRolePermissionGroupsListResource
+
+    -- * Creating a Request
+    , userRolePermissionGroupsList
+    , UserRolePermissionGroupsList
+
+    -- * Request Lenses
+    , urpglProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userRolePermissionGroups.list@ method which the
+-- 'UserRolePermissionGroupsList' request conforms to.
+type UserRolePermissionGroupsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "userRolePermissionGroups" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] UserRolePermissionGroupsListResponse
+
+-- | Gets a list of all supported user role permission groups.
+--
+-- /See:/ 'userRolePermissionGroupsList' smart constructor.
+newtype UserRolePermissionGroupsList = UserRolePermissionGroupsList
+    { _urpglProFileId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermissionGroupsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urpglProFileId'
+userRolePermissionGroupsList
+    :: Int64 -- ^ 'urpglProFileId'
+    -> UserRolePermissionGroupsList
+userRolePermissionGroupsList pUrpglProFileId_ =
+    UserRolePermissionGroupsList
+    { _urpglProFileId = _Coerce # pUrpglProFileId_
+    }
+
+-- | User profile ID associated with this request.
+urpglProFileId :: Lens' UserRolePermissionGroupsList Int64
+urpglProFileId
+  = lens _urpglProFileId
+      (\ s a -> s{_urpglProFileId = a})
+      . _Coerce
+
+instance GoogleRequest UserRolePermissionGroupsList
+         where
+        type Rs UserRolePermissionGroupsList =
+             UserRolePermissionGroupsListResponse
+        requestClient UserRolePermissionGroupsList{..}
+          = go _urpglProFileId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserRolePermissionGroupsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/Get.hs b/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/Get.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.UserRolePermissions.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one user role permission by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userRolePermissions.get@.
+module Network.Google.Resource.DFAReporting.UserRolePermissions.Get
+    (
+    -- * REST Resource
+      UserRolePermissionsGetResource
+
+    -- * Creating a Request
+    , userRolePermissionsGet
+    , UserRolePermissionsGet
+
+    -- * Request Lenses
+    , uProFileId
+    , uId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userRolePermissions.get@ method which the
+-- 'UserRolePermissionsGet' request conforms to.
+type UserRolePermissionsGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "userRolePermissions" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] UserRolePermission
+
+-- | Gets one user role permission by ID.
+--
+-- /See:/ 'userRolePermissionsGet' smart constructor.
+data UserRolePermissionsGet = UserRolePermissionsGet
+    { _uProFileId :: !(Textual Int64)
+    , _uId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermissionsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'uProFileId'
+--
+-- * 'uId'
+userRolePermissionsGet
+    :: Int64 -- ^ 'uProFileId'
+    -> Int64 -- ^ 'uId'
+    -> UserRolePermissionsGet
+userRolePermissionsGet pUProFileId_ pUId_ =
+    UserRolePermissionsGet
+    { _uProFileId = _Coerce # pUProFileId_
+    , _uId = _Coerce # pUId_
+    }
+
+-- | User profile ID associated with this request.
+uProFileId :: Lens' UserRolePermissionsGet Int64
+uProFileId
+  = lens _uProFileId (\ s a -> s{_uProFileId = a}) .
+      _Coerce
+
+-- | User role permission ID.
+uId :: Lens' UserRolePermissionsGet Int64
+uId = lens _uId (\ s a -> s{_uId = a}) . _Coerce
+
+instance GoogleRequest UserRolePermissionsGet where
+        type Rs UserRolePermissionsGet = UserRolePermission
+        requestClient UserRolePermissionsGet{..}
+          = go _uProFileId _uId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserRolePermissionsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/List.hs b/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/List.hs
@@ -0,0 +1,102 @@
+{-# 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.DFAReporting.UserRolePermissions.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a list of user role permissions, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userRolePermissions.list@.
+module Network.Google.Resource.DFAReporting.UserRolePermissions.List
+    (
+    -- * REST Resource
+      UserRolePermissionsListResource
+
+    -- * Creating a Request
+    , userRolePermissionsList
+    , UserRolePermissionsList
+
+    -- * Request Lenses
+    , urplIds
+    , urplProFileId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userRolePermissions.list@ method which the
+-- 'UserRolePermissionsList' request conforms to.
+type UserRolePermissionsListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "userRolePermissions" :>
+               QueryParams "ids" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] UserRolePermissionsListResponse
+
+-- | Gets a list of user role permissions, possibly filtered.
+--
+-- /See:/ 'userRolePermissionsList' smart constructor.
+data UserRolePermissionsList = UserRolePermissionsList
+    { _urplIds       :: !(Maybe [Textual Int64])
+    , _urplProFileId :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermissionsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urplIds'
+--
+-- * 'urplProFileId'
+userRolePermissionsList
+    :: Int64 -- ^ 'urplProFileId'
+    -> UserRolePermissionsList
+userRolePermissionsList pUrplProFileId_ =
+    UserRolePermissionsList
+    { _urplIds = Nothing
+    , _urplProFileId = _Coerce # pUrplProFileId_
+    }
+
+-- | Select only user role permissions with these IDs.
+urplIds :: Lens' UserRolePermissionsList [Int64]
+urplIds
+  = lens _urplIds (\ s a -> s{_urplIds = a}) . _Default
+      . _Coerce
+
+-- | User profile ID associated with this request.
+urplProFileId :: Lens' UserRolePermissionsList Int64
+urplProFileId
+  = lens _urplProFileId
+      (\ s a -> s{_urplProFileId = a})
+      . _Coerce
+
+instance GoogleRequest UserRolePermissionsList where
+        type Rs UserRolePermissionsList =
+             UserRolePermissionsListResponse
+        requestClient UserRolePermissionsList{..}
+          = go _urplProFileId (_urplIds ^. _Default)
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserRolePermissionsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/Delete.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/Delete.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.UserRoles.Delete
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing user role.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userRoles.delete@.
+module Network.Google.Resource.DFAReporting.UserRoles.Delete
+    (
+    -- * REST Resource
+      UserRolesDeleteResource
+
+    -- * Creating a Request
+    , userRolesDelete
+    , UserRolesDelete
+
+    -- * Request Lenses
+    , urdProFileId
+    , urdId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userRoles.delete@ method which the
+-- 'UserRolesDelete' request conforms to.
+type UserRolesDeleteResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "userRoles" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing user role.
+--
+-- /See:/ 'userRolesDelete' smart constructor.
+data UserRolesDelete = UserRolesDelete
+    { _urdProFileId :: !(Textual Int64)
+    , _urdId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urdProFileId'
+--
+-- * 'urdId'
+userRolesDelete
+    :: Int64 -- ^ 'urdProFileId'
+    -> Int64 -- ^ 'urdId'
+    -> UserRolesDelete
+userRolesDelete pUrdProFileId_ pUrdId_ =
+    UserRolesDelete
+    { _urdProFileId = _Coerce # pUrdProFileId_
+    , _urdId = _Coerce # pUrdId_
+    }
+
+-- | User profile ID associated with this request.
+urdProFileId :: Lens' UserRolesDelete Int64
+urdProFileId
+  = lens _urdProFileId (\ s a -> s{_urdProFileId = a})
+      . _Coerce
+
+-- | User role ID.
+urdId :: Lens' UserRolesDelete Int64
+urdId
+  = lens _urdId (\ s a -> s{_urdId = a}) . _Coerce
+
+instance GoogleRequest UserRolesDelete where
+        type Rs UserRolesDelete = ()
+        requestClient UserRolesDelete{..}
+          = go _urdProFileId _urdId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserRolesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/Get.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/Get.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.UserRoles.Get
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets one user role by ID.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userRoles.get@.
+module Network.Google.Resource.DFAReporting.UserRoles.Get
+    (
+    -- * REST Resource
+      UserRolesGetResource
+
+    -- * Creating a Request
+    , userRolesGet
+    , UserRolesGet
+
+    -- * Request Lenses
+    , urgProFileId
+    , urgId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userRoles.get@ method which the
+-- 'UserRolesGet' request conforms to.
+type UserRolesGetResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "userRoles" :>
+               Capture "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] UserRole
+
+-- | Gets one user role by ID.
+--
+-- /See:/ 'userRolesGet' smart constructor.
+data UserRolesGet = UserRolesGet
+    { _urgProFileId :: !(Textual Int64)
+    , _urgId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urgProFileId'
+--
+-- * 'urgId'
+userRolesGet
+    :: Int64 -- ^ 'urgProFileId'
+    -> Int64 -- ^ 'urgId'
+    -> UserRolesGet
+userRolesGet pUrgProFileId_ pUrgId_ =
+    UserRolesGet
+    { _urgProFileId = _Coerce # pUrgProFileId_
+    , _urgId = _Coerce # pUrgId_
+    }
+
+-- | User profile ID associated with this request.
+urgProFileId :: Lens' UserRolesGet Int64
+urgProFileId
+  = lens _urgProFileId (\ s a -> s{_urgProFileId = a})
+      . _Coerce
+
+-- | User role ID.
+urgId :: Lens' UserRolesGet Int64
+urgId
+  = lens _urgId (\ s a -> s{_urgId = a}) . _Coerce
+
+instance GoogleRequest UserRolesGet where
+        type Rs UserRolesGet = UserRole
+        requestClient UserRolesGet{..}
+          = go _urgProFileId _urgId (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy UserRolesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/Insert.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/Insert.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.UserRoles.Insert
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new user role.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userRoles.insert@.
+module Network.Google.Resource.DFAReporting.UserRoles.Insert
+    (
+    -- * REST Resource
+      UserRolesInsertResource
+
+    -- * Creating a Request
+    , userRolesInsert
+    , UserRolesInsert
+
+    -- * Request Lenses
+    , uriProFileId
+    , uriPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userRoles.insert@ method which the
+-- 'UserRolesInsert' request conforms to.
+type UserRolesInsertResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "userRoles" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] UserRole :> Post '[JSON] UserRole
+
+-- | Inserts a new user role.
+--
+-- /See:/ 'userRolesInsert' smart constructor.
+data UserRolesInsert = UserRolesInsert
+    { _uriProFileId :: !(Textual Int64)
+    , _uriPayload   :: !UserRole
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolesInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'uriProFileId'
+--
+-- * 'uriPayload'
+userRolesInsert
+    :: Int64 -- ^ 'uriProFileId'
+    -> UserRole -- ^ 'uriPayload'
+    -> UserRolesInsert
+userRolesInsert pUriProFileId_ pUriPayload_ =
+    UserRolesInsert
+    { _uriProFileId = _Coerce # pUriProFileId_
+    , _uriPayload = pUriPayload_
+    }
+
+-- | User profile ID associated with this request.
+uriProFileId :: Lens' UserRolesInsert Int64
+uriProFileId
+  = lens _uriProFileId (\ s a -> s{_uriProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+uriPayload :: Lens' UserRolesInsert UserRole
+uriPayload
+  = lens _uriPayload (\ s a -> s{_uriPayload = a})
+
+instance GoogleRequest UserRolesInsert where
+        type Rs UserRolesInsert = UserRole
+        requestClient UserRolesInsert{..}
+          = go _uriProFileId (Just AltJSON) _uriPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserRolesInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/List.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/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.DFAReporting.UserRoles.List
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of user roles, possibly filtered.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userRoles.list@.
+module Network.Google.Resource.DFAReporting.UserRoles.List
+    (
+    -- * REST Resource
+      UserRolesListResource
+
+    -- * Creating a Request
+    , userRolesList
+    , UserRolesList
+
+    -- * Request Lenses
+    , urlSearchString
+    , urlIds
+    , urlProFileId
+    , urlSortOrder
+    , urlAccountUserRoleOnly
+    , urlPageToken
+    , urlSortField
+    , urlSubAccountId
+    , urlMaxResults
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userRoles.list@ method which the
+-- 'UserRolesList' request conforms to.
+type UserRolesListResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "userRoles" :>
+               QueryParam "searchString" Text :>
+                 QueryParams "ids" (Textual Int64) :>
+                   QueryParam "sortOrder" UserRolesListSortOrder :>
+                     QueryParam "accountUserRoleOnly" Bool :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "sortField" UserRolesListSortField :>
+                           QueryParam "subaccountId" (Textual Int64) :>
+                             QueryParam "maxResults" (Textual Int32) :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] UserRolesListResponse
+
+-- | Retrieves a list of user roles, possibly filtered.
+--
+-- /See:/ 'userRolesList' smart constructor.
+data UserRolesList = UserRolesList
+    { _urlSearchString        :: !(Maybe Text)
+    , _urlIds                 :: !(Maybe [Textual Int64])
+    , _urlProFileId           :: !(Textual Int64)
+    , _urlSortOrder           :: !(Maybe UserRolesListSortOrder)
+    , _urlAccountUserRoleOnly :: !(Maybe Bool)
+    , _urlPageToken           :: !(Maybe Text)
+    , _urlSortField           :: !(Maybe UserRolesListSortField)
+    , _urlSubAccountId        :: !(Maybe (Textual Int64))
+    , _urlMaxResults          :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urlSearchString'
+--
+-- * 'urlIds'
+--
+-- * 'urlProFileId'
+--
+-- * 'urlSortOrder'
+--
+-- * 'urlAccountUserRoleOnly'
+--
+-- * 'urlPageToken'
+--
+-- * 'urlSortField'
+--
+-- * 'urlSubAccountId'
+--
+-- * 'urlMaxResults'
+userRolesList
+    :: Int64 -- ^ 'urlProFileId'
+    -> UserRolesList
+userRolesList pUrlProFileId_ =
+    UserRolesList
+    { _urlSearchString = Nothing
+    , _urlIds = Nothing
+    , _urlProFileId = _Coerce # pUrlProFileId_
+    , _urlSortOrder = Nothing
+    , _urlAccountUserRoleOnly = Nothing
+    , _urlPageToken = Nothing
+    , _urlSortField = Nothing
+    , _urlSubAccountId = Nothing
+    , _urlMaxResults = Nothing
+    }
+
+-- | Allows searching for objects by name or ID. Wildcards (*) are allowed.
+-- For example, \"userrole*2015\" will return objects with names like
+-- \"userrole June 2015\", \"userrole April 2015\", or simply \"userrole
+-- 2015\". Most of the searches also add wildcards implicitly at the start
+-- and the end of the search string. For example, a search string of
+-- \"userrole\" will match objects with name \"my userrole\", \"userrole
+-- 2015\", or simply \"userrole\".
+urlSearchString :: Lens' UserRolesList (Maybe Text)
+urlSearchString
+  = lens _urlSearchString
+      (\ s a -> s{_urlSearchString = a})
+
+-- | Select only user roles with the specified IDs.
+urlIds :: Lens' UserRolesList [Int64]
+urlIds
+  = lens _urlIds (\ s a -> s{_urlIds = a}) . _Default .
+      _Coerce
+
+-- | User profile ID associated with this request.
+urlProFileId :: Lens' UserRolesList Int64
+urlProFileId
+  = lens _urlProFileId (\ s a -> s{_urlProFileId = a})
+      . _Coerce
+
+-- | Order of sorted results, default is ASCENDING.
+urlSortOrder :: Lens' UserRolesList (Maybe UserRolesListSortOrder)
+urlSortOrder
+  = lens _urlSortOrder (\ s a -> s{_urlSortOrder = a})
+
+-- | Select only account level user roles not associated with any specific
+-- subaccount.
+urlAccountUserRoleOnly :: Lens' UserRolesList (Maybe Bool)
+urlAccountUserRoleOnly
+  = lens _urlAccountUserRoleOnly
+      (\ s a -> s{_urlAccountUserRoleOnly = a})
+
+-- | Value of the nextPageToken from the previous result page.
+urlPageToken :: Lens' UserRolesList (Maybe Text)
+urlPageToken
+  = lens _urlPageToken (\ s a -> s{_urlPageToken = a})
+
+-- | Field by which to sort the list.
+urlSortField :: Lens' UserRolesList (Maybe UserRolesListSortField)
+urlSortField
+  = lens _urlSortField (\ s a -> s{_urlSortField = a})
+
+-- | Select only user roles that belong to this subaccount.
+urlSubAccountId :: Lens' UserRolesList (Maybe Int64)
+urlSubAccountId
+  = lens _urlSubAccountId
+      (\ s a -> s{_urlSubAccountId = a})
+      . mapping _Coerce
+
+-- | Maximum number of results to return.
+urlMaxResults :: Lens' UserRolesList (Maybe Int32)
+urlMaxResults
+  = lens _urlMaxResults
+      (\ s a -> s{_urlMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest UserRolesList where
+        type Rs UserRolesList = UserRolesListResponse
+        requestClient UserRolesList{..}
+          = go _urlProFileId _urlSearchString
+              (_urlIds ^. _Default)
+              _urlSortOrder
+              _urlAccountUserRoleOnly
+              _urlPageToken
+              _urlSortField
+              _urlSubAccountId
+              _urlMaxResults
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy UserRolesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/Patch.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/Patch.hs
@@ -0,0 +1,110 @@
+{-# 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.DFAReporting.UserRoles.Patch
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing user role. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userRoles.patch@.
+module Network.Google.Resource.DFAReporting.UserRoles.Patch
+    (
+    -- * REST Resource
+      UserRolesPatchResource
+
+    -- * Creating a Request
+    , userRolesPatch
+    , UserRolesPatch
+
+    -- * Request Lenses
+    , urpProFileId
+    , urpPayload
+    , urpId
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userRoles.patch@ method which the
+-- 'UserRolesPatch' request conforms to.
+type UserRolesPatchResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "userRoles" :>
+               QueryParam "id" (Textual Int64) :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] UserRole :> Patch '[JSON] UserRole
+
+-- | Updates an existing user role. This method supports patch semantics.
+--
+-- /See:/ 'userRolesPatch' smart constructor.
+data UserRolesPatch = UserRolesPatch
+    { _urpProFileId :: !(Textual Int64)
+    , _urpPayload   :: !UserRole
+    , _urpId        :: !(Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urpProFileId'
+--
+-- * 'urpPayload'
+--
+-- * 'urpId'
+userRolesPatch
+    :: Int64 -- ^ 'urpProFileId'
+    -> UserRole -- ^ 'urpPayload'
+    -> Int64 -- ^ 'urpId'
+    -> UserRolesPatch
+userRolesPatch pUrpProFileId_ pUrpPayload_ pUrpId_ =
+    UserRolesPatch
+    { _urpProFileId = _Coerce # pUrpProFileId_
+    , _urpPayload = pUrpPayload_
+    , _urpId = _Coerce # pUrpId_
+    }
+
+-- | User profile ID associated with this request.
+urpProFileId :: Lens' UserRolesPatch Int64
+urpProFileId
+  = lens _urpProFileId (\ s a -> s{_urpProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+urpPayload :: Lens' UserRolesPatch UserRole
+urpPayload
+  = lens _urpPayload (\ s a -> s{_urpPayload = a})
+
+-- | User role ID.
+urpId :: Lens' UserRolesPatch Int64
+urpId
+  = lens _urpId (\ s a -> s{_urpId = a}) . _Coerce
+
+instance GoogleRequest UserRolesPatch where
+        type Rs UserRolesPatch = UserRole
+        requestClient UserRolesPatch{..}
+          = go _urpProFileId (Just _urpId) (Just AltJSON)
+              _urpPayload
+              dFAReportingService
+          where go
+                  = buildClient (Proxy :: Proxy UserRolesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/Update.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/Update.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.UserRoles.Update
+-- Copyright   : (c) 2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing user role.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.userRoles.update@.
+module Network.Google.Resource.DFAReporting.UserRoles.Update
+    (
+    -- * REST Resource
+      UserRolesUpdateResource
+
+    -- * Creating a Request
+    , userRolesUpdate
+    , UserRolesUpdate
+
+    -- * Request Lenses
+    , uruProFileId
+    , uruPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.userRoles.update@ method which the
+-- 'UserRolesUpdate' request conforms to.
+type UserRolesUpdateResource =
+     "dfareporting" :>
+       "v2.2" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "userRoles" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] UserRole :> Put '[JSON] UserRole
+
+-- | Updates an existing user role.
+--
+-- /See:/ 'userRolesUpdate' smart constructor.
+data UserRolesUpdate = UserRolesUpdate
+    { _uruProFileId :: !(Textual Int64)
+    , _uruPayload   :: !UserRole
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolesUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'uruProFileId'
+--
+-- * 'uruPayload'
+userRolesUpdate
+    :: Int64 -- ^ 'uruProFileId'
+    -> UserRole -- ^ 'uruPayload'
+    -> UserRolesUpdate
+userRolesUpdate pUruProFileId_ pUruPayload_ =
+    UserRolesUpdate
+    { _uruProFileId = _Coerce # pUruProFileId_
+    , _uruPayload = pUruPayload_
+    }
+
+-- | User profile ID associated with this request.
+uruProFileId :: Lens' UserRolesUpdate Int64
+uruProFileId
+  = lens _uruProFileId (\ s a -> s{_uruProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+uruPayload :: Lens' UserRolesUpdate UserRole
+uruPayload
+  = lens _uruPayload (\ s a -> s{_uruPayload = a})
+
+instance GoogleRequest UserRolesUpdate where
+        type Rs UserRolesUpdate = UserRole
+        requestClient UserRolesUpdate{..}
+          = go _uruProFileId (Just AltJSON) _uruPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserRolesUpdateResource)
+                      mempty
diff --git a/gogol-dfareporting.cabal b/gogol-dfareporting.cabal
new file mode 100644
--- /dev/null
+++ b/gogol-dfareporting.cabal
@@ -0,0 +1,238 @@
+name:                  gogol-dfareporting
+version:               0.0.1
+synopsis:              Google DCM/DFA Reporting And Trafficking SDK.
+homepage:              https://github.com/brendanhay/gogol
+bug-reports:           https://github.com/brendanhay/gogol/issues
+license:               OtherLicense
+license-file:          LICENSE
+author:                Brendan Hay
+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
+copyright:             Copyright (c) 2015 Brendan Hay
+category:              Network, Google, Cloud
+build-type:            Simple
+cabal-version:         >= 1.10
+extra-source-files:    README.md
+
+description:
+    Manage your DoubleClick Campaign Manager ad campaigns and reports.
+    .
+    /Warning:/ This is an experimental prototype/preview release which is still
+    under exploratory development and not intended for public use, caveat emptor!
+    .
+    This library is compatible with version @v2.2@
+    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.DFAReporting
+        , Network.Google.DFAReporting.Types
+        , Network.Google.Resource.DFAReporting.AccountActiveAdSummaries.Get
+        , Network.Google.Resource.DFAReporting.AccountPermissionGroups.Get
+        , Network.Google.Resource.DFAReporting.AccountPermissionGroups.List
+        , Network.Google.Resource.DFAReporting.AccountPermissions.Get
+        , Network.Google.Resource.DFAReporting.AccountPermissions.List
+        , Network.Google.Resource.DFAReporting.AccountUserProFiles.Get
+        , Network.Google.Resource.DFAReporting.AccountUserProFiles.Insert
+        , Network.Google.Resource.DFAReporting.AccountUserProFiles.List
+        , Network.Google.Resource.DFAReporting.AccountUserProFiles.Patch
+        , Network.Google.Resource.DFAReporting.AccountUserProFiles.Update
+        , Network.Google.Resource.DFAReporting.Accounts.Get
+        , Network.Google.Resource.DFAReporting.Accounts.List
+        , Network.Google.Resource.DFAReporting.Accounts.Patch
+        , Network.Google.Resource.DFAReporting.Accounts.Update
+        , Network.Google.Resource.DFAReporting.Ads.Get
+        , Network.Google.Resource.DFAReporting.Ads.Insert
+        , Network.Google.Resource.DFAReporting.Ads.List
+        , Network.Google.Resource.DFAReporting.Ads.Patch
+        , Network.Google.Resource.DFAReporting.Ads.Update
+        , Network.Google.Resource.DFAReporting.AdvertiserGroups.Delete
+        , Network.Google.Resource.DFAReporting.AdvertiserGroups.Get
+        , Network.Google.Resource.DFAReporting.AdvertiserGroups.Insert
+        , Network.Google.Resource.DFAReporting.AdvertiserGroups.List
+        , Network.Google.Resource.DFAReporting.AdvertiserGroups.Patch
+        , Network.Google.Resource.DFAReporting.AdvertiserGroups.Update
+        , Network.Google.Resource.DFAReporting.Advertisers.Get
+        , Network.Google.Resource.DFAReporting.Advertisers.Insert
+        , Network.Google.Resource.DFAReporting.Advertisers.List
+        , Network.Google.Resource.DFAReporting.Advertisers.Patch
+        , Network.Google.Resource.DFAReporting.Advertisers.Update
+        , Network.Google.Resource.DFAReporting.Browsers.List
+        , Network.Google.Resource.DFAReporting.CampaignCreativeAssociations.Insert
+        , Network.Google.Resource.DFAReporting.CampaignCreativeAssociations.List
+        , Network.Google.Resource.DFAReporting.Campaigns.Get
+        , Network.Google.Resource.DFAReporting.Campaigns.Insert
+        , Network.Google.Resource.DFAReporting.Campaigns.List
+        , Network.Google.Resource.DFAReporting.Campaigns.Patch
+        , Network.Google.Resource.DFAReporting.Campaigns.Update
+        , Network.Google.Resource.DFAReporting.ChangeLogs.Get
+        , Network.Google.Resource.DFAReporting.ChangeLogs.List
+        , Network.Google.Resource.DFAReporting.Cities.List
+        , Network.Google.Resource.DFAReporting.ConnectionTypes.Get
+        , Network.Google.Resource.DFAReporting.ConnectionTypes.List
+        , Network.Google.Resource.DFAReporting.ContentCategories.Delete
+        , Network.Google.Resource.DFAReporting.ContentCategories.Get
+        , Network.Google.Resource.DFAReporting.ContentCategories.Insert
+        , Network.Google.Resource.DFAReporting.ContentCategories.List
+        , Network.Google.Resource.DFAReporting.ContentCategories.Patch
+        , Network.Google.Resource.DFAReporting.ContentCategories.Update
+        , Network.Google.Resource.DFAReporting.Countries.Get
+        , Network.Google.Resource.DFAReporting.Countries.List
+        , Network.Google.Resource.DFAReporting.CreativeAssets.Insert
+        , Network.Google.Resource.DFAReporting.CreativeFieldValues.Delete
+        , Network.Google.Resource.DFAReporting.CreativeFieldValues.Get
+        , Network.Google.Resource.DFAReporting.CreativeFieldValues.Insert
+        , Network.Google.Resource.DFAReporting.CreativeFieldValues.List
+        , Network.Google.Resource.DFAReporting.CreativeFieldValues.Patch
+        , Network.Google.Resource.DFAReporting.CreativeFieldValues.Update
+        , Network.Google.Resource.DFAReporting.CreativeFields.Delete
+        , Network.Google.Resource.DFAReporting.CreativeFields.Get
+        , Network.Google.Resource.DFAReporting.CreativeFields.Insert
+        , Network.Google.Resource.DFAReporting.CreativeFields.List
+        , Network.Google.Resource.DFAReporting.CreativeFields.Patch
+        , Network.Google.Resource.DFAReporting.CreativeFields.Update
+        , Network.Google.Resource.DFAReporting.CreativeGroups.Get
+        , Network.Google.Resource.DFAReporting.CreativeGroups.Insert
+        , Network.Google.Resource.DFAReporting.CreativeGroups.List
+        , Network.Google.Resource.DFAReporting.CreativeGroups.Patch
+        , Network.Google.Resource.DFAReporting.CreativeGroups.Update
+        , Network.Google.Resource.DFAReporting.Creatives.Get
+        , Network.Google.Resource.DFAReporting.Creatives.Insert
+        , Network.Google.Resource.DFAReporting.Creatives.List
+        , Network.Google.Resource.DFAReporting.Creatives.Patch
+        , Network.Google.Resource.DFAReporting.Creatives.Update
+        , Network.Google.Resource.DFAReporting.DimensionValues.Query
+        , Network.Google.Resource.DFAReporting.DirectorySiteContacts.Get
+        , Network.Google.Resource.DFAReporting.DirectorySiteContacts.List
+        , Network.Google.Resource.DFAReporting.DirectorySites.Get
+        , Network.Google.Resource.DFAReporting.DirectorySites.Insert
+        , Network.Google.Resource.DFAReporting.DirectorySites.List
+        , Network.Google.Resource.DFAReporting.EventTags.Delete
+        , Network.Google.Resource.DFAReporting.EventTags.Get
+        , Network.Google.Resource.DFAReporting.EventTags.Insert
+        , Network.Google.Resource.DFAReporting.EventTags.List
+        , Network.Google.Resource.DFAReporting.EventTags.Patch
+        , Network.Google.Resource.DFAReporting.EventTags.Update
+        , Network.Google.Resource.DFAReporting.Files.Get
+        , Network.Google.Resource.DFAReporting.Files.List
+        , Network.Google.Resource.DFAReporting.FloodlightActivities.Delete
+        , Network.Google.Resource.DFAReporting.FloodlightActivities.Generatetag
+        , Network.Google.Resource.DFAReporting.FloodlightActivities.Get
+        , Network.Google.Resource.DFAReporting.FloodlightActivities.Insert
+        , Network.Google.Resource.DFAReporting.FloodlightActivities.List
+        , Network.Google.Resource.DFAReporting.FloodlightActivities.Patch
+        , Network.Google.Resource.DFAReporting.FloodlightActivities.Update
+        , Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Delete
+        , Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Get
+        , Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Insert
+        , Network.Google.Resource.DFAReporting.FloodlightActivityGroups.List
+        , Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Patch
+        , Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Update
+        , Network.Google.Resource.DFAReporting.FloodlightConfigurations.Get
+        , Network.Google.Resource.DFAReporting.FloodlightConfigurations.List
+        , Network.Google.Resource.DFAReporting.FloodlightConfigurations.Patch
+        , Network.Google.Resource.DFAReporting.FloodlightConfigurations.Update
+        , Network.Google.Resource.DFAReporting.InventoryItems.Get
+        , Network.Google.Resource.DFAReporting.InventoryItems.List
+        , Network.Google.Resource.DFAReporting.LandingPages.Delete
+        , Network.Google.Resource.DFAReporting.LandingPages.Get
+        , Network.Google.Resource.DFAReporting.LandingPages.Insert
+        , Network.Google.Resource.DFAReporting.LandingPages.List
+        , Network.Google.Resource.DFAReporting.LandingPages.Patch
+        , Network.Google.Resource.DFAReporting.LandingPages.Update
+        , Network.Google.Resource.DFAReporting.Metros.List
+        , Network.Google.Resource.DFAReporting.MobileCarriers.Get
+        , Network.Google.Resource.DFAReporting.MobileCarriers.List
+        , Network.Google.Resource.DFAReporting.OperatingSystemVersions.Get
+        , Network.Google.Resource.DFAReporting.OperatingSystemVersions.List
+        , Network.Google.Resource.DFAReporting.OperatingSystems.Get
+        , Network.Google.Resource.DFAReporting.OperatingSystems.List
+        , Network.Google.Resource.DFAReporting.OrderDocuments.Get
+        , Network.Google.Resource.DFAReporting.OrderDocuments.List
+        , Network.Google.Resource.DFAReporting.Orders.Get
+        , Network.Google.Resource.DFAReporting.Orders.List
+        , Network.Google.Resource.DFAReporting.PlacementGroups.Get
+        , Network.Google.Resource.DFAReporting.PlacementGroups.Insert
+        , Network.Google.Resource.DFAReporting.PlacementGroups.List
+        , Network.Google.Resource.DFAReporting.PlacementGroups.Patch
+        , Network.Google.Resource.DFAReporting.PlacementGroups.Update
+        , Network.Google.Resource.DFAReporting.PlacementStrategies.Delete
+        , Network.Google.Resource.DFAReporting.PlacementStrategies.Get
+        , Network.Google.Resource.DFAReporting.PlacementStrategies.Insert
+        , Network.Google.Resource.DFAReporting.PlacementStrategies.List
+        , Network.Google.Resource.DFAReporting.PlacementStrategies.Patch
+        , Network.Google.Resource.DFAReporting.PlacementStrategies.Update
+        , Network.Google.Resource.DFAReporting.Placements.Generatetags
+        , Network.Google.Resource.DFAReporting.Placements.Get
+        , Network.Google.Resource.DFAReporting.Placements.Insert
+        , Network.Google.Resource.DFAReporting.Placements.List
+        , Network.Google.Resource.DFAReporting.Placements.Patch
+        , Network.Google.Resource.DFAReporting.Placements.Update
+        , Network.Google.Resource.DFAReporting.PlatformTypes.Get
+        , Network.Google.Resource.DFAReporting.PlatformTypes.List
+        , Network.Google.Resource.DFAReporting.PostalCodes.Get
+        , Network.Google.Resource.DFAReporting.PostalCodes.List
+        , Network.Google.Resource.DFAReporting.Projects.Get
+        , Network.Google.Resource.DFAReporting.Projects.List
+        , Network.Google.Resource.DFAReporting.Regions.List
+        , Network.Google.Resource.DFAReporting.RemarketingListShares.Get
+        , Network.Google.Resource.DFAReporting.RemarketingListShares.Patch
+        , Network.Google.Resource.DFAReporting.RemarketingListShares.Update
+        , Network.Google.Resource.DFAReporting.RemarketingLists.Get
+        , Network.Google.Resource.DFAReporting.RemarketingLists.Insert
+        , Network.Google.Resource.DFAReporting.RemarketingLists.List
+        , Network.Google.Resource.DFAReporting.RemarketingLists.Patch
+        , Network.Google.Resource.DFAReporting.RemarketingLists.Update
+        , Network.Google.Resource.DFAReporting.Reports.CompatibleFields.Query
+        , Network.Google.Resource.DFAReporting.Reports.Delete
+        , Network.Google.Resource.DFAReporting.Reports.Files.Get
+        , Network.Google.Resource.DFAReporting.Reports.Files.List
+        , Network.Google.Resource.DFAReporting.Reports.Get
+        , Network.Google.Resource.DFAReporting.Reports.Insert
+        , Network.Google.Resource.DFAReporting.Reports.List
+        , Network.Google.Resource.DFAReporting.Reports.Patch
+        , Network.Google.Resource.DFAReporting.Reports.Run
+        , Network.Google.Resource.DFAReporting.Reports.Update
+        , Network.Google.Resource.DFAReporting.Sites.Get
+        , Network.Google.Resource.DFAReporting.Sites.Insert
+        , Network.Google.Resource.DFAReporting.Sites.List
+        , Network.Google.Resource.DFAReporting.Sites.Patch
+        , Network.Google.Resource.DFAReporting.Sites.Update
+        , Network.Google.Resource.DFAReporting.Sizes.Get
+        , Network.Google.Resource.DFAReporting.Sizes.Insert
+        , Network.Google.Resource.DFAReporting.Sizes.List
+        , Network.Google.Resource.DFAReporting.SubAccounts.Get
+        , Network.Google.Resource.DFAReporting.SubAccounts.Insert
+        , Network.Google.Resource.DFAReporting.SubAccounts.List
+        , Network.Google.Resource.DFAReporting.SubAccounts.Patch
+        , Network.Google.Resource.DFAReporting.SubAccounts.Update
+        , Network.Google.Resource.DFAReporting.TargetableRemarketingLists.Get
+        , Network.Google.Resource.DFAReporting.TargetableRemarketingLists.List
+        , Network.Google.Resource.DFAReporting.UserProFiles.Get
+        , Network.Google.Resource.DFAReporting.UserProFiles.List
+        , Network.Google.Resource.DFAReporting.UserRolePermissionGroups.Get
+        , Network.Google.Resource.DFAReporting.UserRolePermissionGroups.List
+        , Network.Google.Resource.DFAReporting.UserRolePermissions.Get
+        , Network.Google.Resource.DFAReporting.UserRolePermissions.List
+        , Network.Google.Resource.DFAReporting.UserRoles.Delete
+        , Network.Google.Resource.DFAReporting.UserRoles.Get
+        , Network.Google.Resource.DFAReporting.UserRoles.Insert
+        , Network.Google.Resource.DFAReporting.UserRoles.List
+        , Network.Google.Resource.DFAReporting.UserRoles.Patch
+        , Network.Google.Resource.DFAReporting.UserRoles.Update
+
+    other-modules:
+          Network.Google.DFAReporting.Types.Product
+        , Network.Google.DFAReporting.Types.Sum
+
+    build-depends:
+          gogol-core == 0.0.1.*
+        , base       >= 4.7 && < 5
