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-doubleclick-bids
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.0.1`
+
+
+## Description
+
+A client library for the Google DoubleClick Bid Manager.
+
+
+## Contribute
+
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+
+> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+
+
+## Licence
+
+`gogol-doubleclick-bids` 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/DoubleClickBids.hs b/gen/Network/Google/DoubleClickBids.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DoubleClickBids.hs
@@ -0,0 +1,269 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module      : Network.Google.DoubleClickBids
+-- 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)
+--
+-- API for viewing and managing your reports in DoubleClick Bid Manager.
+--
+-- /See:/ <https://developers.google.com/bid-manager/ DoubleClick Bid Manager API Reference>
+module Network.Google.DoubleClickBids
+    (
+    -- * Service Configuration
+      doubleClickBidsService
+
+    -- * API Declaration
+    , DoubleClickBidsAPI
+
+    -- * Resources
+
+    -- ** doubleclickbidmanager.lineitems.downloadlineitems
+    , module Network.Google.Resource.DoubleClickBidManager.Lineitems.Downloadlineitems
+
+    -- ** doubleclickbidmanager.lineitems.uploadlineitems
+    , module Network.Google.Resource.DoubleClickBidManager.Lineitems.Uploadlineitems
+
+    -- ** doubleclickbidmanager.queries.createquery
+    , module Network.Google.Resource.DoubleClickBidManager.Queries.CreateQuery
+
+    -- ** doubleclickbidmanager.queries.deletequery
+    , module Network.Google.Resource.DoubleClickBidManager.Queries.DeleteQuery
+
+    -- ** doubleclickbidmanager.queries.getquery
+    , module Network.Google.Resource.DoubleClickBidManager.Queries.GetQuery
+
+    -- ** doubleclickbidmanager.queries.listqueries
+    , module Network.Google.Resource.DoubleClickBidManager.Queries.Listqueries
+
+    -- ** doubleclickbidmanager.queries.runquery
+    , module Network.Google.Resource.DoubleClickBidManager.Queries.RunQuery
+
+    -- ** doubleclickbidmanager.reports.listreports
+    , module Network.Google.Resource.DoubleClickBidManager.Reports.Listreports
+
+    -- * Types
+
+    -- ** ListReportsResponse
+    , ListReportsResponse
+    , listReportsResponse
+    , lrrReports
+    , lrrKind
+
+    -- ** QueryMetadataFormat
+    , QueryMetadataFormat (..)
+
+    -- ** QueryMetadata
+    , QueryMetadata
+    , queryMetadata
+    , qmGoogleCloudStoragePathForLatestReport
+    , qmLocale
+    , qmFormat
+    , qmGoogleDrivePathForLatestReport
+    , qmShareEmailAddress
+    , qmRunning
+    , qmDataRange
+    , qmLatestReportRunTimeMs
+    , qmReportCount
+    , qmTitle
+    , qmSendNotification
+
+    -- ** RunQueryRequest
+    , RunQueryRequest
+    , runQueryRequest
+    , rqrReportDataEndTimeMs
+    , rqrDataRange
+    , rqrReportDataStartTimeMs
+    , rqrTimezoneCode
+
+    -- ** FilterPair
+    , FilterPair
+    , filterPair
+    , fpValue
+    , fpType
+
+    -- ** UploadLineItemsRequest
+    , UploadLineItemsRequest
+    , uploadLineItemsRequest
+    , ulirLineItems
+    , ulirFormat
+    , ulirDryRun
+
+    -- ** ParametersType
+    , ParametersType (..)
+
+    -- ** DownloadLineItemsRequestFilterType
+    , DownloadLineItemsRequestFilterType (..)
+
+    -- ** DownloadLineItemsRequest
+    , DownloadLineItemsRequest
+    , downloadLineItemsRequest
+    , dlirFilterType
+    , dlirFormat
+    , dlirFileSpec
+    , dlirFilterIds
+
+    -- ** ListQueriesResponse
+    , ListQueriesResponse
+    , listQueriesResponse
+    , lqrQueries
+    , lqrKind
+
+    -- ** UploadLineItemsResponse
+    , UploadLineItemsResponse
+    , uploadLineItemsResponse
+    , ulirUploadStatus
+
+    -- ** QueryMetadataDataRange
+    , QueryMetadataDataRange (..)
+
+    -- ** ParametersMetricsItem
+    , ParametersMetricsItem (..)
+
+    -- ** QueryScheduleFrequency
+    , QueryScheduleFrequency (..)
+
+    -- ** ReportMetadata
+    , ReportMetadata
+    , reportMetadata
+    , rmStatus
+    , rmReportDataEndTimeMs
+    , rmGoogleCloudStoragePath
+    , rmReportDataStartTimeMs
+
+    -- ** Report
+    , Report
+    , report
+    , rParams
+    , rKey
+    , rMetadata
+
+    -- ** RowStatus
+    , RowStatus
+    , rowStatus
+    , rsEntityName
+    , rsChanged
+    , rsPersisted
+    , rsRowNumber
+    , rsErrors
+    , rsEntityId
+
+    -- ** DownloadLineItemsRequestFileSpec
+    , DownloadLineItemsRequestFileSpec (..)
+
+    -- ** ReportKey
+    , ReportKey
+    , reportKey
+    , rkQueryId
+    , rkReportId
+
+    -- ** UploadLineItemsRequestFormat
+    , UploadLineItemsRequestFormat (..)
+
+    -- ** UploadStatus
+    , UploadStatus
+    , uploadStatus
+    , usRowStatus
+    , usErrors
+
+    -- ** QuerySchedule
+    , QuerySchedule
+    , querySchedule
+    , qsFrequency
+    , qsEndTimeMs
+    , qsNextRunMinuteOfDay
+    , qsNextRunTimezoneCode
+
+    -- ** DownloadLineItemsResponse
+    , DownloadLineItemsResponse
+    , downloadLineItemsResponse
+    , dlirLineItems
+
+    -- ** ReportStatus
+    , ReportStatus
+    , reportStatus
+    , rsState
+    , rsFinishTimeMs
+    , rsFormat
+    , rsFailure
+
+    -- ** Query
+    , Query
+    , query
+    , qQueryId
+    , qReportDataEndTimeMs
+    , qSchedule
+    , qKind
+    , qParams
+    , qMetadata
+    , qReportDataStartTimeMs
+    , qTimezoneCode
+
+    -- ** Parameters
+    , Parameters
+    , parameters
+    , pMetrics
+    , pIncludeInviteData
+    , pFilters
+    , pGroupBys
+    , pType
+
+    -- ** FilterPairType
+    , FilterPairType (..)
+
+    -- ** RunQueryRequestDataRange
+    , RunQueryRequestDataRange (..)
+
+    -- ** ReportStatusState
+    , ReportStatusState (..)
+
+    -- ** ParametersGroupBysItem
+    , ParametersGroupBysItem (..)
+
+    -- ** ReportFailureErrorCode
+    , ReportFailureErrorCode (..)
+
+    -- ** DownloadLineItemsRequestFormat
+    , DownloadLineItemsRequestFormat (..)
+
+    -- ** ReportFailure
+    , ReportFailure
+    , reportFailure
+    , rfErrorCode
+
+    -- ** ReportStatusFormat
+    , ReportStatusFormat (..)
+    ) where
+
+import           Network.Google.DoubleClickBids.Types
+import           Network.Google.Prelude
+import           Network.Google.Resource.DoubleClickBidManager.Lineitems.Downloadlineitems
+import           Network.Google.Resource.DoubleClickBidManager.Lineitems.Uploadlineitems
+import           Network.Google.Resource.DoubleClickBidManager.Queries.CreateQuery
+import           Network.Google.Resource.DoubleClickBidManager.Queries.DeleteQuery
+import           Network.Google.Resource.DoubleClickBidManager.Queries.GetQuery
+import           Network.Google.Resource.DoubleClickBidManager.Queries.Listqueries
+import           Network.Google.Resource.DoubleClickBidManager.Queries.RunQuery
+import           Network.Google.Resource.DoubleClickBidManager.Reports.Listreports
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the DoubleClick Bid Manager API service.
+type DoubleClickBidsAPI =
+     QueriesGetQueryResource :<|> QueriesRunQueryResource
+       :<|> QueriesDeleteQueryResource
+       :<|> QueriesCreateQueryResource
+       :<|> QueriesListqueriesResource
+       :<|> ReportsListreportsResource
+       :<|> LineitemsUploadlineitemsResource
+       :<|> LineitemsDownloadlineitemsResource
diff --git a/gen/Network/Google/DoubleClickBids/Types.hs b/gen/Network/Google/DoubleClickBids/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DoubleClickBids/Types.hs
@@ -0,0 +1,221 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.DoubleClickBids.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.DoubleClickBids.Types
+    (
+    -- * Service Configuration
+      doubleClickBidsService
+
+    -- * ListReportsResponse
+    , ListReportsResponse
+    , listReportsResponse
+    , lrrReports
+    , lrrKind
+
+    -- * QueryMetadataFormat
+    , QueryMetadataFormat (..)
+
+    -- * QueryMetadata
+    , QueryMetadata
+    , queryMetadata
+    , qmGoogleCloudStoragePathForLatestReport
+    , qmLocale
+    , qmFormat
+    , qmGoogleDrivePathForLatestReport
+    , qmShareEmailAddress
+    , qmRunning
+    , qmDataRange
+    , qmLatestReportRunTimeMs
+    , qmReportCount
+    , qmTitle
+    , qmSendNotification
+
+    -- * RunQueryRequest
+    , RunQueryRequest
+    , runQueryRequest
+    , rqrReportDataEndTimeMs
+    , rqrDataRange
+    , rqrReportDataStartTimeMs
+    , rqrTimezoneCode
+
+    -- * FilterPair
+    , FilterPair
+    , filterPair
+    , fpValue
+    , fpType
+
+    -- * UploadLineItemsRequest
+    , UploadLineItemsRequest
+    , uploadLineItemsRequest
+    , ulirLineItems
+    , ulirFormat
+    , ulirDryRun
+
+    -- * ParametersType
+    , ParametersType (..)
+
+    -- * DownloadLineItemsRequestFilterType
+    , DownloadLineItemsRequestFilterType (..)
+
+    -- * DownloadLineItemsRequest
+    , DownloadLineItemsRequest
+    , downloadLineItemsRequest
+    , dlirFilterType
+    , dlirFormat
+    , dlirFileSpec
+    , dlirFilterIds
+
+    -- * ListQueriesResponse
+    , ListQueriesResponse
+    , listQueriesResponse
+    , lqrQueries
+    , lqrKind
+
+    -- * UploadLineItemsResponse
+    , UploadLineItemsResponse
+    , uploadLineItemsResponse
+    , ulirUploadStatus
+
+    -- * QueryMetadataDataRange
+    , QueryMetadataDataRange (..)
+
+    -- * ParametersMetricsItem
+    , ParametersMetricsItem (..)
+
+    -- * QueryScheduleFrequency
+    , QueryScheduleFrequency (..)
+
+    -- * ReportMetadata
+    , ReportMetadata
+    , reportMetadata
+    , rmStatus
+    , rmReportDataEndTimeMs
+    , rmGoogleCloudStoragePath
+    , rmReportDataStartTimeMs
+
+    -- * Report
+    , Report
+    , report
+    , rParams
+    , rKey
+    , rMetadata
+
+    -- * RowStatus
+    , RowStatus
+    , rowStatus
+    , rsEntityName
+    , rsChanged
+    , rsPersisted
+    , rsRowNumber
+    , rsErrors
+    , rsEntityId
+
+    -- * DownloadLineItemsRequestFileSpec
+    , DownloadLineItemsRequestFileSpec (..)
+
+    -- * ReportKey
+    , ReportKey
+    , reportKey
+    , rkQueryId
+    , rkReportId
+
+    -- * UploadLineItemsRequestFormat
+    , UploadLineItemsRequestFormat (..)
+
+    -- * UploadStatus
+    , UploadStatus
+    , uploadStatus
+    , usRowStatus
+    , usErrors
+
+    -- * QuerySchedule
+    , QuerySchedule
+    , querySchedule
+    , qsFrequency
+    , qsEndTimeMs
+    , qsNextRunMinuteOfDay
+    , qsNextRunTimezoneCode
+
+    -- * DownloadLineItemsResponse
+    , DownloadLineItemsResponse
+    , downloadLineItemsResponse
+    , dlirLineItems
+
+    -- * ReportStatus
+    , ReportStatus
+    , reportStatus
+    , rsState
+    , rsFinishTimeMs
+    , rsFormat
+    , rsFailure
+
+    -- * Query
+    , Query
+    , query
+    , qQueryId
+    , qReportDataEndTimeMs
+    , qSchedule
+    , qKind
+    , qParams
+    , qMetadata
+    , qReportDataStartTimeMs
+    , qTimezoneCode
+
+    -- * Parameters
+    , Parameters
+    , parameters
+    , pMetrics
+    , pIncludeInviteData
+    , pFilters
+    , pGroupBys
+    , pType
+
+    -- * FilterPairType
+    , FilterPairType (..)
+
+    -- * RunQueryRequestDataRange
+    , RunQueryRequestDataRange (..)
+
+    -- * ReportStatusState
+    , ReportStatusState (..)
+
+    -- * ParametersGroupBysItem
+    , ParametersGroupBysItem (..)
+
+    -- * ReportFailureErrorCode
+    , ReportFailureErrorCode (..)
+
+    -- * DownloadLineItemsRequestFormat
+    , DownloadLineItemsRequestFormat (..)
+
+    -- * ReportFailure
+    , ReportFailure
+    , reportFailure
+    , rfErrorCode
+
+    -- * ReportStatusFormat
+    , ReportStatusFormat (..)
+    ) where
+
+import           Network.Google.DoubleClickBids.Types.Product
+import           Network.Google.DoubleClickBids.Types.Sum
+import           Network.Google.Prelude
+
+-- | Default request referring to version 'v1' of the DoubleClick Bid Manager API. This contains the host and root path used as a starting point for constructing service requests.
+doubleClickBidsService :: Service
+doubleClickBidsService
+  = defaultService
+      (ServiceId "doubleclickbidmanager:v1")
+      "www.googleapis.com"
diff --git a/gen/Network/Google/DoubleClickBids/Types/Product.hs b/gen/Network/Google/DoubleClickBids/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DoubleClickBids/Types/Product.hs
@@ -0,0 +1,1340 @@
+{-# 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.DoubleClickBids.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.DoubleClickBids.Types.Product where
+
+import           Network.Google.DoubleClickBids.Types.Sum
+import           Network.Google.Prelude
+
+-- | List reports response.
+--
+-- /See:/ 'listReportsResponse' smart constructor.
+data ListReportsResponse = ListReportsResponse
+    { _lrrReports :: !(Maybe [Report])
+    , _lrrKind    :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListReportsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lrrReports'
+--
+-- * 'lrrKind'
+listReportsResponse
+    :: ListReportsResponse
+listReportsResponse =
+    ListReportsResponse
+    { _lrrReports = Nothing
+    , _lrrKind = "doubleclickbidmanager#listReportsResponse"
+    }
+
+-- | Retrieved reports.
+lrrReports :: Lens' ListReportsResponse [Report]
+lrrReports
+  = lens _lrrReports (\ s a -> s{_lrrReports = a}) .
+      _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"doubleclickbidmanager#listReportsResponse\".
+lrrKind :: Lens' ListReportsResponse Text
+lrrKind = lens _lrrKind (\ s a -> s{_lrrKind = a})
+
+instance FromJSON ListReportsResponse where
+        parseJSON
+          = withObject "ListReportsResponse"
+              (\ o ->
+                 ListReportsResponse <$>
+                   (o .:? "reports" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "doubleclickbidmanager#listReportsResponse"))
+
+instance ToJSON ListReportsResponse where
+        toJSON ListReportsResponse{..}
+          = object
+              (catMaybes
+                 [("reports" .=) <$> _lrrReports,
+                  Just ("kind" .= _lrrKind)])
+
+-- | Query metadata.
+--
+-- /See:/ 'queryMetadata' smart constructor.
+data QueryMetadata = QueryMetadata
+    { _qmGoogleCloudStoragePathForLatestReport :: !(Maybe Text)
+    , _qmLocale                                :: !(Maybe Text)
+    , _qmFormat                                :: !(Maybe QueryMetadataFormat)
+    , _qmGoogleDrivePathForLatestReport        :: !(Maybe Text)
+    , _qmShareEmailAddress                     :: !(Maybe [Text])
+    , _qmRunning                               :: !(Maybe Bool)
+    , _qmDataRange                             :: !(Maybe QueryMetadataDataRange)
+    , _qmLatestReportRunTimeMs                 :: !(Maybe (Textual Int64))
+    , _qmReportCount                           :: !(Maybe (Textual Int32))
+    , _qmTitle                                 :: !(Maybe Text)
+    , _qmSendNotification                      :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'QueryMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'qmGoogleCloudStoragePathForLatestReport'
+--
+-- * 'qmLocale'
+--
+-- * 'qmFormat'
+--
+-- * 'qmGoogleDrivePathForLatestReport'
+--
+-- * 'qmShareEmailAddress'
+--
+-- * 'qmRunning'
+--
+-- * 'qmDataRange'
+--
+-- * 'qmLatestReportRunTimeMs'
+--
+-- * 'qmReportCount'
+--
+-- * 'qmTitle'
+--
+-- * 'qmSendNotification'
+queryMetadata
+    :: QueryMetadata
+queryMetadata =
+    QueryMetadata
+    { _qmGoogleCloudStoragePathForLatestReport = Nothing
+    , _qmLocale = Nothing
+    , _qmFormat = Nothing
+    , _qmGoogleDrivePathForLatestReport = Nothing
+    , _qmShareEmailAddress = Nothing
+    , _qmRunning = Nothing
+    , _qmDataRange = Nothing
+    , _qmLatestReportRunTimeMs = Nothing
+    , _qmReportCount = Nothing
+    , _qmTitle = Nothing
+    , _qmSendNotification = Nothing
+    }
+
+-- | The path to the location in Google Cloud Storage where the latest report
+-- is stored.
+qmGoogleCloudStoragePathForLatestReport :: Lens' QueryMetadata (Maybe Text)
+qmGoogleCloudStoragePathForLatestReport
+  = lens _qmGoogleCloudStoragePathForLatestReport
+      (\ s a ->
+         s{_qmGoogleCloudStoragePathForLatestReport = a})
+
+-- | Locale of the generated reports. Valid values are cs CZECH de GERMAN en
+-- ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH
+-- pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN
+-- CHINA_CHINESE zh-TW TAIWAN_CHINESE An locale string not in the list
+-- above will generate reports in English.
+qmLocale :: Lens' QueryMetadata (Maybe Text)
+qmLocale = lens _qmLocale (\ s a -> s{_qmLocale = a})
+
+-- | Format of the generated report.
+qmFormat :: Lens' QueryMetadata (Maybe QueryMetadataFormat)
+qmFormat = lens _qmFormat (\ s a -> s{_qmFormat = a})
+
+-- | The path in Google Drive for the latest report.
+qmGoogleDrivePathForLatestReport :: Lens' QueryMetadata (Maybe Text)
+qmGoogleDrivePathForLatestReport
+  = lens _qmGoogleDrivePathForLatestReport
+      (\ s a -> s{_qmGoogleDrivePathForLatestReport = a})
+
+-- | List of email addresses which are sent email notifications when the
+-- report is finished. Separate from sendNotification.
+qmShareEmailAddress :: Lens' QueryMetadata [Text]
+qmShareEmailAddress
+  = lens _qmShareEmailAddress
+      (\ s a -> s{_qmShareEmailAddress = a})
+      . _Default
+      . _Coerce
+
+-- | Whether the latest report is currently running.
+qmRunning :: Lens' QueryMetadata (Maybe Bool)
+qmRunning
+  = lens _qmRunning (\ s a -> s{_qmRunning = a})
+
+-- | Range of report data.
+qmDataRange :: Lens' QueryMetadata (Maybe QueryMetadataDataRange)
+qmDataRange
+  = lens _qmDataRange (\ s a -> s{_qmDataRange = a})
+
+-- | The time when the latest report started to run.
+qmLatestReportRunTimeMs :: Lens' QueryMetadata (Maybe Int64)
+qmLatestReportRunTimeMs
+  = lens _qmLatestReportRunTimeMs
+      (\ s a -> s{_qmLatestReportRunTimeMs = a})
+      . mapping _Coerce
+
+-- | Number of reports that have been generated for the query.
+qmReportCount :: Lens' QueryMetadata (Maybe Int32)
+qmReportCount
+  = lens _qmReportCount
+      (\ s a -> s{_qmReportCount = a})
+      . mapping _Coerce
+
+-- | Query title. It is used to name the reports generated from this query.
+qmTitle :: Lens' QueryMetadata (Maybe Text)
+qmTitle = lens _qmTitle (\ s a -> s{_qmTitle = a})
+
+-- | Whether to send an email notification when a report is ready. Default to
+-- false.
+qmSendNotification :: Lens' QueryMetadata (Maybe Bool)
+qmSendNotification
+  = lens _qmSendNotification
+      (\ s a -> s{_qmSendNotification = a})
+
+instance FromJSON QueryMetadata where
+        parseJSON
+          = withObject "QueryMetadata"
+              (\ o ->
+                 QueryMetadata <$>
+                   (o .:? "googleCloudStoragePathForLatestReport") <*>
+                     (o .:? "locale")
+                     <*> (o .:? "format")
+                     <*> (o .:? "googleDrivePathForLatestReport")
+                     <*> (o .:? "shareEmailAddress" .!= mempty)
+                     <*> (o .:? "running")
+                     <*> (o .:? "dataRange")
+                     <*> (o .:? "latestReportRunTimeMs")
+                     <*> (o .:? "reportCount")
+                     <*> (o .:? "title")
+                     <*> (o .:? "sendNotification"))
+
+instance ToJSON QueryMetadata where
+        toJSON QueryMetadata{..}
+          = object
+              (catMaybes
+                 [("googleCloudStoragePathForLatestReport" .=) <$>
+                    _qmGoogleCloudStoragePathForLatestReport,
+                  ("locale" .=) <$> _qmLocale,
+                  ("format" .=) <$> _qmFormat,
+                  ("googleDrivePathForLatestReport" .=) <$>
+                    _qmGoogleDrivePathForLatestReport,
+                  ("shareEmailAddress" .=) <$> _qmShareEmailAddress,
+                  ("running" .=) <$> _qmRunning,
+                  ("dataRange" .=) <$> _qmDataRange,
+                  ("latestReportRunTimeMs" .=) <$>
+                    _qmLatestReportRunTimeMs,
+                  ("reportCount" .=) <$> _qmReportCount,
+                  ("title" .=) <$> _qmTitle,
+                  ("sendNotification" .=) <$> _qmSendNotification])
+
+-- | Request to run a stored query to generate a report.
+--
+-- /See:/ 'runQueryRequest' smart constructor.
+data RunQueryRequest = RunQueryRequest
+    { _rqrReportDataEndTimeMs   :: !(Maybe (Textual Int64))
+    , _rqrDataRange             :: !(Maybe RunQueryRequestDataRange)
+    , _rqrReportDataStartTimeMs :: !(Maybe (Textual Int64))
+    , _rqrTimezoneCode          :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RunQueryRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rqrReportDataEndTimeMs'
+--
+-- * 'rqrDataRange'
+--
+-- * 'rqrReportDataStartTimeMs'
+--
+-- * 'rqrTimezoneCode'
+runQueryRequest
+    :: RunQueryRequest
+runQueryRequest =
+    RunQueryRequest
+    { _rqrReportDataEndTimeMs = Nothing
+    , _rqrDataRange = Nothing
+    , _rqrReportDataStartTimeMs = Nothing
+    , _rqrTimezoneCode = Nothing
+    }
+
+-- | The ending time for the data that is shown in the report. Note,
+-- reportDataEndTimeMs is required if dataRange is CUSTOM_DATES and ignored
+-- otherwise.
+rqrReportDataEndTimeMs :: Lens' RunQueryRequest (Maybe Int64)
+rqrReportDataEndTimeMs
+  = lens _rqrReportDataEndTimeMs
+      (\ s a -> s{_rqrReportDataEndTimeMs = a})
+      . mapping _Coerce
+
+-- | Report data range used to generate the report.
+rqrDataRange :: Lens' RunQueryRequest (Maybe RunQueryRequestDataRange)
+rqrDataRange
+  = lens _rqrDataRange (\ s a -> s{_rqrDataRange = a})
+
+-- | The starting time for the data that is shown in the report. Note,
+-- reportDataStartTimeMs is required if dataRange is CUSTOM_DATES and
+-- ignored otherwise.
+rqrReportDataStartTimeMs :: Lens' RunQueryRequest (Maybe Int64)
+rqrReportDataStartTimeMs
+  = lens _rqrReportDataStartTimeMs
+      (\ s a -> s{_rqrReportDataStartTimeMs = a})
+      . mapping _Coerce
+
+-- | Canonical timezone code for report data time. Defaults to
+-- America\/New_York.
+rqrTimezoneCode :: Lens' RunQueryRequest (Maybe Text)
+rqrTimezoneCode
+  = lens _rqrTimezoneCode
+      (\ s a -> s{_rqrTimezoneCode = a})
+
+instance FromJSON RunQueryRequest where
+        parseJSON
+          = withObject "RunQueryRequest"
+              (\ o ->
+                 RunQueryRequest <$>
+                   (o .:? "reportDataEndTimeMs") <*> (o .:? "dataRange")
+                     <*> (o .:? "reportDataStartTimeMs")
+                     <*> (o .:? "timezoneCode"))
+
+instance ToJSON RunQueryRequest where
+        toJSON RunQueryRequest{..}
+          = object
+              (catMaybes
+                 [("reportDataEndTimeMs" .=) <$>
+                    _rqrReportDataEndTimeMs,
+                  ("dataRange" .=) <$> _rqrDataRange,
+                  ("reportDataStartTimeMs" .=) <$>
+                    _rqrReportDataStartTimeMs,
+                  ("timezoneCode" .=) <$> _rqrTimezoneCode])
+
+-- | Filter used to match traffic data in your report.
+--
+-- /See:/ 'filterPair' smart constructor.
+data FilterPair = FilterPair
+    { _fpValue :: !(Maybe Text)
+    , _fpType  :: !(Maybe FilterPairType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FilterPair' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fpValue'
+--
+-- * 'fpType'
+filterPair
+    :: FilterPair
+filterPair =
+    FilterPair
+    { _fpValue = Nothing
+    , _fpType = Nothing
+    }
+
+-- | Filter value.
+fpValue :: Lens' FilterPair (Maybe Text)
+fpValue = lens _fpValue (\ s a -> s{_fpValue = a})
+
+-- | Filter type.
+fpType :: Lens' FilterPair (Maybe FilterPairType)
+fpType = lens _fpType (\ s a -> s{_fpType = a})
+
+instance FromJSON FilterPair where
+        parseJSON
+          = withObject "FilterPair"
+              (\ o ->
+                 FilterPair <$> (o .:? "value") <*> (o .:? "type"))
+
+instance ToJSON FilterPair where
+        toJSON FilterPair{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _fpValue, ("type" .=) <$> _fpType])
+
+-- | Request to upload line items.
+--
+-- /See:/ 'uploadLineItemsRequest' smart constructor.
+data UploadLineItemsRequest = UploadLineItemsRequest
+    { _ulirLineItems :: !(Maybe Text)
+    , _ulirFormat    :: !(Maybe UploadLineItemsRequestFormat)
+    , _ulirDryRun    :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UploadLineItemsRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ulirLineItems'
+--
+-- * 'ulirFormat'
+--
+-- * 'ulirDryRun'
+uploadLineItemsRequest
+    :: UploadLineItemsRequest
+uploadLineItemsRequest =
+    UploadLineItemsRequest
+    { _ulirLineItems = Nothing
+    , _ulirFormat = Nothing
+    , _ulirDryRun = Nothing
+    }
+
+-- | Line items in CSV to upload. Refer to Entity Write File Format for more
+-- information on file format.
+ulirLineItems :: Lens' UploadLineItemsRequest (Maybe Text)
+ulirLineItems
+  = lens _ulirLineItems
+      (\ s a -> s{_ulirLineItems = a})
+
+-- | Format the line items are in. Default to CSV.
+ulirFormat :: Lens' UploadLineItemsRequest (Maybe UploadLineItemsRequestFormat)
+ulirFormat
+  = lens _ulirFormat (\ s a -> s{_ulirFormat = a})
+
+-- | Set to true to get upload status without actually persisting the line
+-- items.
+ulirDryRun :: Lens' UploadLineItemsRequest (Maybe Bool)
+ulirDryRun
+  = lens _ulirDryRun (\ s a -> s{_ulirDryRun = a})
+
+instance FromJSON UploadLineItemsRequest where
+        parseJSON
+          = withObject "UploadLineItemsRequest"
+              (\ o ->
+                 UploadLineItemsRequest <$>
+                   (o .:? "lineItems") <*> (o .:? "format") <*>
+                     (o .:? "dryRun"))
+
+instance ToJSON UploadLineItemsRequest where
+        toJSON UploadLineItemsRequest{..}
+          = object
+              (catMaybes
+                 [("lineItems" .=) <$> _ulirLineItems,
+                  ("format" .=) <$> _ulirFormat,
+                  ("dryRun" .=) <$> _ulirDryRun])
+
+-- | Request to fetch stored line items.
+--
+-- /See:/ 'downloadLineItemsRequest' smart constructor.
+data DownloadLineItemsRequest = DownloadLineItemsRequest
+    { _dlirFilterType :: !(Maybe DownloadLineItemsRequestFilterType)
+    , _dlirFormat     :: !(Maybe DownloadLineItemsRequestFormat)
+    , _dlirFileSpec   :: !(Maybe DownloadLineItemsRequestFileSpec)
+    , _dlirFilterIds  :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DownloadLineItemsRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dlirFilterType'
+--
+-- * 'dlirFormat'
+--
+-- * 'dlirFileSpec'
+--
+-- * 'dlirFilterIds'
+downloadLineItemsRequest
+    :: DownloadLineItemsRequest
+downloadLineItemsRequest =
+    DownloadLineItemsRequest
+    { _dlirFilterType = Nothing
+    , _dlirFormat = Nothing
+    , _dlirFileSpec = Nothing
+    , _dlirFilterIds = Nothing
+    }
+
+-- | Filter type used to filter line items to fetch.
+dlirFilterType :: Lens' DownloadLineItemsRequest (Maybe DownloadLineItemsRequestFilterType)
+dlirFilterType
+  = lens _dlirFilterType
+      (\ s a -> s{_dlirFilterType = a})
+
+-- | Format in which the line items will be returned. Default to CSV.
+dlirFormat :: Lens' DownloadLineItemsRequest (Maybe DownloadLineItemsRequestFormat)
+dlirFormat
+  = lens _dlirFormat (\ s a -> s{_dlirFormat = a})
+
+-- | File specification (column names, types, order) in which the line items
+-- will be returned. Default to EWF.
+dlirFileSpec :: Lens' DownloadLineItemsRequest (Maybe DownloadLineItemsRequestFileSpec)
+dlirFileSpec
+  = lens _dlirFileSpec (\ s a -> s{_dlirFileSpec = a})
+
+-- | Ids of the specified filter type used to filter line items to fetch. If
+-- omitted, all the line items will be returned.
+dlirFilterIds :: Lens' DownloadLineItemsRequest [Int64]
+dlirFilterIds
+  = lens _dlirFilterIds
+      (\ s a -> s{_dlirFilterIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON DownloadLineItemsRequest where
+        parseJSON
+          = withObject "DownloadLineItemsRequest"
+              (\ o ->
+                 DownloadLineItemsRequest <$>
+                   (o .:? "filterType") <*> (o .:? "format") <*>
+                     (o .:? "fileSpec")
+                     <*> (o .:? "filterIds" .!= mempty))
+
+instance ToJSON DownloadLineItemsRequest where
+        toJSON DownloadLineItemsRequest{..}
+          = object
+              (catMaybes
+                 [("filterType" .=) <$> _dlirFilterType,
+                  ("format" .=) <$> _dlirFormat,
+                  ("fileSpec" .=) <$> _dlirFileSpec,
+                  ("filterIds" .=) <$> _dlirFilterIds])
+
+-- | List queries response.
+--
+-- /See:/ 'listQueriesResponse' smart constructor.
+data ListQueriesResponse = ListQueriesResponse
+    { _lqrQueries :: !(Maybe [Query])
+    , _lqrKind    :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListQueriesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lqrQueries'
+--
+-- * 'lqrKind'
+listQueriesResponse
+    :: ListQueriesResponse
+listQueriesResponse =
+    ListQueriesResponse
+    { _lqrQueries = Nothing
+    , _lqrKind = "doubleclickbidmanager#listQueriesResponse"
+    }
+
+-- | Retrieved queries.
+lqrQueries :: Lens' ListQueriesResponse [Query]
+lqrQueries
+  = lens _lqrQueries (\ s a -> s{_lqrQueries = a}) .
+      _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"doubleclickbidmanager#listQueriesResponse\".
+lqrKind :: Lens' ListQueriesResponse Text
+lqrKind = lens _lqrKind (\ s a -> s{_lqrKind = a})
+
+instance FromJSON ListQueriesResponse where
+        parseJSON
+          = withObject "ListQueriesResponse"
+              (\ o ->
+                 ListQueriesResponse <$>
+                   (o .:? "queries" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "doubleclickbidmanager#listQueriesResponse"))
+
+instance ToJSON ListQueriesResponse where
+        toJSON ListQueriesResponse{..}
+          = object
+              (catMaybes
+                 [("queries" .=) <$> _lqrQueries,
+                  Just ("kind" .= _lqrKind)])
+
+-- | Upload line items response.
+--
+-- /See:/ 'uploadLineItemsResponse' smart constructor.
+newtype UploadLineItemsResponse = UploadLineItemsResponse
+    { _ulirUploadStatus :: Maybe UploadStatus
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UploadLineItemsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ulirUploadStatus'
+uploadLineItemsResponse
+    :: UploadLineItemsResponse
+uploadLineItemsResponse =
+    UploadLineItemsResponse
+    { _ulirUploadStatus = Nothing
+    }
+
+-- | Status of upload.
+ulirUploadStatus :: Lens' UploadLineItemsResponse (Maybe UploadStatus)
+ulirUploadStatus
+  = lens _ulirUploadStatus
+      (\ s a -> s{_ulirUploadStatus = a})
+
+instance FromJSON UploadLineItemsResponse where
+        parseJSON
+          = withObject "UploadLineItemsResponse"
+              (\ o ->
+                 UploadLineItemsResponse <$> (o .:? "uploadStatus"))
+
+instance ToJSON UploadLineItemsResponse where
+        toJSON UploadLineItemsResponse{..}
+          = object
+              (catMaybes
+                 [("uploadStatus" .=) <$> _ulirUploadStatus])
+
+-- | Report metadata.
+--
+-- /See:/ 'reportMetadata' smart constructor.
+data ReportMetadata = ReportMetadata
+    { _rmStatus                 :: !(Maybe ReportStatus)
+    , _rmReportDataEndTimeMs    :: !(Maybe (Textual Int64))
+    , _rmGoogleCloudStoragePath :: !(Maybe Text)
+    , _rmReportDataStartTimeMs  :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rmStatus'
+--
+-- * 'rmReportDataEndTimeMs'
+--
+-- * 'rmGoogleCloudStoragePath'
+--
+-- * 'rmReportDataStartTimeMs'
+reportMetadata
+    :: ReportMetadata
+reportMetadata =
+    ReportMetadata
+    { _rmStatus = Nothing
+    , _rmReportDataEndTimeMs = Nothing
+    , _rmGoogleCloudStoragePath = Nothing
+    , _rmReportDataStartTimeMs = Nothing
+    }
+
+-- | Report status.
+rmStatus :: Lens' ReportMetadata (Maybe ReportStatus)
+rmStatus = lens _rmStatus (\ s a -> s{_rmStatus = a})
+
+-- | The ending time for the data that is shown in the report.
+rmReportDataEndTimeMs :: Lens' ReportMetadata (Maybe Int64)
+rmReportDataEndTimeMs
+  = lens _rmReportDataEndTimeMs
+      (\ s a -> s{_rmReportDataEndTimeMs = a})
+      . mapping _Coerce
+
+-- | The path to the location in Google Cloud Storage where the report is
+-- stored.
+rmGoogleCloudStoragePath :: Lens' ReportMetadata (Maybe Text)
+rmGoogleCloudStoragePath
+  = lens _rmGoogleCloudStoragePath
+      (\ s a -> s{_rmGoogleCloudStoragePath = a})
+
+-- | The starting time for the data that is shown in the report.
+rmReportDataStartTimeMs :: Lens' ReportMetadata (Maybe Int64)
+rmReportDataStartTimeMs
+  = lens _rmReportDataStartTimeMs
+      (\ s a -> s{_rmReportDataStartTimeMs = a})
+      . mapping _Coerce
+
+instance FromJSON ReportMetadata where
+        parseJSON
+          = withObject "ReportMetadata"
+              (\ o ->
+                 ReportMetadata <$>
+                   (o .:? "status") <*> (o .:? "reportDataEndTimeMs")
+                     <*> (o .:? "googleCloudStoragePath")
+                     <*> (o .:? "reportDataStartTimeMs"))
+
+instance ToJSON ReportMetadata where
+        toJSON ReportMetadata{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _rmStatus,
+                  ("reportDataEndTimeMs" .=) <$>
+                    _rmReportDataEndTimeMs,
+                  ("googleCloudStoragePath" .=) <$>
+                    _rmGoogleCloudStoragePath,
+                  ("reportDataStartTimeMs" .=) <$>
+                    _rmReportDataStartTimeMs])
+
+-- | Represents a report.
+--
+-- /See:/ 'report' smart constructor.
+data Report = Report
+    { _rParams   :: !(Maybe Parameters)
+    , _rKey      :: !(Maybe ReportKey)
+    , _rMetadata :: !(Maybe ReportMetadata)
+    } 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:
+--
+-- * 'rParams'
+--
+-- * 'rKey'
+--
+-- * 'rMetadata'
+report
+    :: Report
+report =
+    Report
+    { _rParams = Nothing
+    , _rKey = Nothing
+    , _rMetadata = Nothing
+    }
+
+-- | Report parameters.
+rParams :: Lens' Report (Maybe Parameters)
+rParams = lens _rParams (\ s a -> s{_rParams = a})
+
+-- | Key used to identify a report.
+rKey :: Lens' Report (Maybe ReportKey)
+rKey = lens _rKey (\ s a -> s{_rKey = a})
+
+-- | Report metadata.
+rMetadata :: Lens' Report (Maybe ReportMetadata)
+rMetadata
+  = lens _rMetadata (\ s a -> s{_rMetadata = a})
+
+instance FromJSON Report where
+        parseJSON
+          = withObject "Report"
+              (\ o ->
+                 Report <$>
+                   (o .:? "params") <*> (o .:? "key") <*>
+                     (o .:? "metadata"))
+
+instance ToJSON Report where
+        toJSON Report{..}
+          = object
+              (catMaybes
+                 [("params" .=) <$> _rParams, ("key" .=) <$> _rKey,
+                  ("metadata" .=) <$> _rMetadata])
+
+-- | Represents the upload status of a row in the request.
+--
+-- /See:/ 'rowStatus' smart constructor.
+data RowStatus = RowStatus
+    { _rsEntityName :: !(Maybe Text)
+    , _rsChanged    :: !(Maybe Bool)
+    , _rsPersisted  :: !(Maybe Bool)
+    , _rsRowNumber  :: !(Maybe (Textual Int32))
+    , _rsErrors     :: !(Maybe [Text])
+    , _rsEntityId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RowStatus' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rsEntityName'
+--
+-- * 'rsChanged'
+--
+-- * 'rsPersisted'
+--
+-- * 'rsRowNumber'
+--
+-- * 'rsErrors'
+--
+-- * 'rsEntityId'
+rowStatus
+    :: RowStatus
+rowStatus =
+    RowStatus
+    { _rsEntityName = Nothing
+    , _rsChanged = Nothing
+    , _rsPersisted = Nothing
+    , _rsRowNumber = Nothing
+    , _rsErrors = Nothing
+    , _rsEntityId = Nothing
+    }
+
+-- | Entity name.
+rsEntityName :: Lens' RowStatus (Maybe Text)
+rsEntityName
+  = lens _rsEntityName (\ s a -> s{_rsEntityName = a})
+
+-- | Whether the stored entity is changed as a result of upload.
+rsChanged :: Lens' RowStatus (Maybe Bool)
+rsChanged
+  = lens _rsChanged (\ s a -> s{_rsChanged = a})
+
+-- | Whether the entity is persisted.
+rsPersisted :: Lens' RowStatus (Maybe Bool)
+rsPersisted
+  = lens _rsPersisted (\ s a -> s{_rsPersisted = a})
+
+-- | Row number.
+rsRowNumber :: Lens' RowStatus (Maybe Int32)
+rsRowNumber
+  = lens _rsRowNumber (\ s a -> s{_rsRowNumber = a}) .
+      mapping _Coerce
+
+-- | Reasons why the entity can\'t be uploaded.
+rsErrors :: Lens' RowStatus [Text]
+rsErrors
+  = lens _rsErrors (\ s a -> s{_rsErrors = a}) .
+      _Default
+      . _Coerce
+
+-- | Entity Id.
+rsEntityId :: Lens' RowStatus (Maybe Int64)
+rsEntityId
+  = lens _rsEntityId (\ s a -> s{_rsEntityId = a}) .
+      mapping _Coerce
+
+instance FromJSON RowStatus where
+        parseJSON
+          = withObject "RowStatus"
+              (\ o ->
+                 RowStatus <$>
+                   (o .:? "entityName") <*> (o .:? "changed") <*>
+                     (o .:? "persisted")
+                     <*> (o .:? "rowNumber")
+                     <*> (o .:? "errors" .!= mempty)
+                     <*> (o .:? "entityId"))
+
+instance ToJSON RowStatus where
+        toJSON RowStatus{..}
+          = object
+              (catMaybes
+                 [("entityName" .=) <$> _rsEntityName,
+                  ("changed" .=) <$> _rsChanged,
+                  ("persisted" .=) <$> _rsPersisted,
+                  ("rowNumber" .=) <$> _rsRowNumber,
+                  ("errors" .=) <$> _rsErrors,
+                  ("entityId" .=) <$> _rsEntityId])
+
+-- | Key used to identify a report.
+--
+-- /See:/ 'reportKey' smart constructor.
+data ReportKey = ReportKey
+    { _rkQueryId  :: !(Maybe (Textual Int64))
+    , _rkReportId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportKey' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rkQueryId'
+--
+-- * 'rkReportId'
+reportKey
+    :: ReportKey
+reportKey =
+    ReportKey
+    { _rkQueryId = Nothing
+    , _rkReportId = Nothing
+    }
+
+-- | Query ID.
+rkQueryId :: Lens' ReportKey (Maybe Int64)
+rkQueryId
+  = lens _rkQueryId (\ s a -> s{_rkQueryId = a}) .
+      mapping _Coerce
+
+-- | Report ID.
+rkReportId :: Lens' ReportKey (Maybe Int64)
+rkReportId
+  = lens _rkReportId (\ s a -> s{_rkReportId = a}) .
+      mapping _Coerce
+
+instance FromJSON ReportKey where
+        parseJSON
+          = withObject "ReportKey"
+              (\ o ->
+                 ReportKey <$>
+                   (o .:? "queryId") <*> (o .:? "reportId"))
+
+instance ToJSON ReportKey where
+        toJSON ReportKey{..}
+          = object
+              (catMaybes
+                 [("queryId" .=) <$> _rkQueryId,
+                  ("reportId" .=) <$> _rkReportId])
+
+-- | Represents the status of upload.
+--
+-- /See:/ 'uploadStatus' smart constructor.
+data UploadStatus = UploadStatus
+    { _usRowStatus :: !(Maybe [RowStatus])
+    , _usErrors    :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UploadStatus' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usRowStatus'
+--
+-- * 'usErrors'
+uploadStatus
+    :: UploadStatus
+uploadStatus =
+    UploadStatus
+    { _usRowStatus = Nothing
+    , _usErrors = Nothing
+    }
+
+-- | Per-row upload status.
+usRowStatus :: Lens' UploadStatus [RowStatus]
+usRowStatus
+  = lens _usRowStatus (\ s a -> s{_usRowStatus = a}) .
+      _Default
+      . _Coerce
+
+-- | Reasons why upload can\'t be completed.
+usErrors :: Lens' UploadStatus [Text]
+usErrors
+  = lens _usErrors (\ s a -> s{_usErrors = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON UploadStatus where
+        parseJSON
+          = withObject "UploadStatus"
+              (\ o ->
+                 UploadStatus <$>
+                   (o .:? "rowStatus" .!= mempty) <*>
+                     (o .:? "errors" .!= mempty))
+
+instance ToJSON UploadStatus where
+        toJSON UploadStatus{..}
+          = object
+              (catMaybes
+                 [("rowStatus" .=) <$> _usRowStatus,
+                  ("errors" .=) <$> _usErrors])
+
+-- | Information on how frequently and when to run a query.
+--
+-- /See:/ 'querySchedule' smart constructor.
+data QuerySchedule = QuerySchedule
+    { _qsFrequency           :: !(Maybe QueryScheduleFrequency)
+    , _qsEndTimeMs           :: !(Maybe (Textual Int64))
+    , _qsNextRunMinuteOfDay  :: !(Maybe (Textual Int32))
+    , _qsNextRunTimezoneCode :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'QuerySchedule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'qsFrequency'
+--
+-- * 'qsEndTimeMs'
+--
+-- * 'qsNextRunMinuteOfDay'
+--
+-- * 'qsNextRunTimezoneCode'
+querySchedule
+    :: QuerySchedule
+querySchedule =
+    QuerySchedule
+    { _qsFrequency = Nothing
+    , _qsEndTimeMs = Nothing
+    , _qsNextRunMinuteOfDay = Nothing
+    , _qsNextRunTimezoneCode = Nothing
+    }
+
+-- | How often the query is run.
+qsFrequency :: Lens' QuerySchedule (Maybe QueryScheduleFrequency)
+qsFrequency
+  = lens _qsFrequency (\ s a -> s{_qsFrequency = a})
+
+-- | Datetime to periodically run the query until.
+qsEndTimeMs :: Lens' QuerySchedule (Maybe Int64)
+qsEndTimeMs
+  = lens _qsEndTimeMs (\ s a -> s{_qsEndTimeMs = a}) .
+      mapping _Coerce
+
+-- | Time of day at which a new report will be generated, represented as
+-- minutes past midnight. Range is 0 to 1439. Only applies to scheduled
+-- reports.
+qsNextRunMinuteOfDay :: Lens' QuerySchedule (Maybe Int32)
+qsNextRunMinuteOfDay
+  = lens _qsNextRunMinuteOfDay
+      (\ s a -> s{_qsNextRunMinuteOfDay = a})
+      . mapping _Coerce
+
+-- | Canonical timezone code for report generation time. Defaults to
+-- America\/New_York.
+qsNextRunTimezoneCode :: Lens' QuerySchedule (Maybe Text)
+qsNextRunTimezoneCode
+  = lens _qsNextRunTimezoneCode
+      (\ s a -> s{_qsNextRunTimezoneCode = a})
+
+instance FromJSON QuerySchedule where
+        parseJSON
+          = withObject "QuerySchedule"
+              (\ o ->
+                 QuerySchedule <$>
+                   (o .:? "frequency") <*> (o .:? "endTimeMs") <*>
+                     (o .:? "nextRunMinuteOfDay")
+                     <*> (o .:? "nextRunTimezoneCode"))
+
+instance ToJSON QuerySchedule where
+        toJSON QuerySchedule{..}
+          = object
+              (catMaybes
+                 [("frequency" .=) <$> _qsFrequency,
+                  ("endTimeMs" .=) <$> _qsEndTimeMs,
+                  ("nextRunMinuteOfDay" .=) <$> _qsNextRunMinuteOfDay,
+                  ("nextRunTimezoneCode" .=) <$>
+                    _qsNextRunTimezoneCode])
+
+-- | Download line items response.
+--
+-- /See:/ 'downloadLineItemsResponse' smart constructor.
+newtype DownloadLineItemsResponse = DownloadLineItemsResponse
+    { _dlirLineItems :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DownloadLineItemsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dlirLineItems'
+downloadLineItemsResponse
+    :: DownloadLineItemsResponse
+downloadLineItemsResponse =
+    DownloadLineItemsResponse
+    { _dlirLineItems = Nothing
+    }
+
+-- | Retrieved line items in CSV format. Refer to Entity Write File Format or
+-- Structured Data File Format for more information on file formats.
+dlirLineItems :: Lens' DownloadLineItemsResponse (Maybe Text)
+dlirLineItems
+  = lens _dlirLineItems
+      (\ s a -> s{_dlirLineItems = a})
+
+instance FromJSON DownloadLineItemsResponse where
+        parseJSON
+          = withObject "DownloadLineItemsResponse"
+              (\ o ->
+                 DownloadLineItemsResponse <$> (o .:? "lineItems"))
+
+instance ToJSON DownloadLineItemsResponse where
+        toJSON DownloadLineItemsResponse{..}
+          = object
+              (catMaybes [("lineItems" .=) <$> _dlirLineItems])
+
+-- | Report status.
+--
+-- /See:/ 'reportStatus' smart constructor.
+data ReportStatus = ReportStatus
+    { _rsState        :: !(Maybe ReportStatusState)
+    , _rsFinishTimeMs :: !(Maybe (Textual Int64))
+    , _rsFormat       :: !(Maybe ReportStatusFormat)
+    , _rsFailure      :: !(Maybe ReportFailure)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportStatus' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rsState'
+--
+-- * 'rsFinishTimeMs'
+--
+-- * 'rsFormat'
+--
+-- * 'rsFailure'
+reportStatus
+    :: ReportStatus
+reportStatus =
+    ReportStatus
+    { _rsState = Nothing
+    , _rsFinishTimeMs = Nothing
+    , _rsFormat = Nothing
+    , _rsFailure = Nothing
+    }
+
+-- | The state of the report.
+rsState :: Lens' ReportStatus (Maybe ReportStatusState)
+rsState = lens _rsState (\ s a -> s{_rsState = a})
+
+-- | The time when this report either completed successfully or failed.
+rsFinishTimeMs :: Lens' ReportStatus (Maybe Int64)
+rsFinishTimeMs
+  = lens _rsFinishTimeMs
+      (\ s a -> s{_rsFinishTimeMs = a})
+      . mapping _Coerce
+
+-- | The file type of the report.
+rsFormat :: Lens' ReportStatus (Maybe ReportStatusFormat)
+rsFormat = lens _rsFormat (\ s a -> s{_rsFormat = a})
+
+-- | If the report failed, this records the cause.
+rsFailure :: Lens' ReportStatus (Maybe ReportFailure)
+rsFailure
+  = lens _rsFailure (\ s a -> s{_rsFailure = a})
+
+instance FromJSON ReportStatus where
+        parseJSON
+          = withObject "ReportStatus"
+              (\ o ->
+                 ReportStatus <$>
+                   (o .:? "state") <*> (o .:? "finishTimeMs") <*>
+                     (o .:? "format")
+                     <*> (o .:? "failure"))
+
+instance ToJSON ReportStatus where
+        toJSON ReportStatus{..}
+          = object
+              (catMaybes
+                 [("state" .=) <$> _rsState,
+                  ("finishTimeMs" .=) <$> _rsFinishTimeMs,
+                  ("format" .=) <$> _rsFormat,
+                  ("failure" .=) <$> _rsFailure])
+
+-- | Represents a query.
+--
+-- /See:/ 'query' smart constructor.
+data Query = Query
+    { _qQueryId               :: !(Maybe (Textual Int64))
+    , _qReportDataEndTimeMs   :: !(Maybe (Textual Int64))
+    , _qSchedule              :: !(Maybe QuerySchedule)
+    , _qKind                  :: !Text
+    , _qParams                :: !(Maybe Parameters)
+    , _qMetadata              :: !(Maybe QueryMetadata)
+    , _qReportDataStartTimeMs :: !(Maybe (Textual Int64))
+    , _qTimezoneCode          :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Query' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'qQueryId'
+--
+-- * 'qReportDataEndTimeMs'
+--
+-- * 'qSchedule'
+--
+-- * 'qKind'
+--
+-- * 'qParams'
+--
+-- * 'qMetadata'
+--
+-- * 'qReportDataStartTimeMs'
+--
+-- * 'qTimezoneCode'
+query
+    :: Query
+query =
+    Query
+    { _qQueryId = Nothing
+    , _qReportDataEndTimeMs = Nothing
+    , _qSchedule = Nothing
+    , _qKind = "doubleclickbidmanager#query"
+    , _qParams = Nothing
+    , _qMetadata = Nothing
+    , _qReportDataStartTimeMs = Nothing
+    , _qTimezoneCode = Nothing
+    }
+
+-- | Query ID.
+qQueryId :: Lens' Query (Maybe Int64)
+qQueryId
+  = lens _qQueryId (\ s a -> s{_qQueryId = a}) .
+      mapping _Coerce
+
+-- | The ending time for the data that is shown in the report. Note,
+-- reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES
+-- and ignored otherwise.
+qReportDataEndTimeMs :: Lens' Query (Maybe Int64)
+qReportDataEndTimeMs
+  = lens _qReportDataEndTimeMs
+      (\ s a -> s{_qReportDataEndTimeMs = a})
+      . mapping _Coerce
+
+-- | Information on how often and when to run a query.
+qSchedule :: Lens' Query (Maybe QuerySchedule)
+qSchedule
+  = lens _qSchedule (\ s a -> s{_qSchedule = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"doubleclickbidmanager#query\".
+qKind :: Lens' Query Text
+qKind = lens _qKind (\ s a -> s{_qKind = a})
+
+-- | Query parameters.
+qParams :: Lens' Query (Maybe Parameters)
+qParams = lens _qParams (\ s a -> s{_qParams = a})
+
+-- | Query metadata.
+qMetadata :: Lens' Query (Maybe QueryMetadata)
+qMetadata
+  = lens _qMetadata (\ s a -> s{_qMetadata = a})
+
+-- | The starting time for the data that is shown in the report. Note,
+-- reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES
+-- and ignored otherwise.
+qReportDataStartTimeMs :: Lens' Query (Maybe Int64)
+qReportDataStartTimeMs
+  = lens _qReportDataStartTimeMs
+      (\ s a -> s{_qReportDataStartTimeMs = a})
+      . mapping _Coerce
+
+-- | Canonical timezone code for report data time. Defaults to
+-- America\/New_York.
+qTimezoneCode :: Lens' Query (Maybe Text)
+qTimezoneCode
+  = lens _qTimezoneCode
+      (\ s a -> s{_qTimezoneCode = a})
+
+instance FromJSON Query where
+        parseJSON
+          = withObject "Query"
+              (\ o ->
+                 Query <$>
+                   (o .:? "queryId") <*> (o .:? "reportDataEndTimeMs")
+                     <*> (o .:? "schedule")
+                     <*> (o .:? "kind" .!= "doubleclickbidmanager#query")
+                     <*> (o .:? "params")
+                     <*> (o .:? "metadata")
+                     <*> (o .:? "reportDataStartTimeMs")
+                     <*> (o .:? "timezoneCode"))
+
+instance ToJSON Query where
+        toJSON Query{..}
+          = object
+              (catMaybes
+                 [("queryId" .=) <$> _qQueryId,
+                  ("reportDataEndTimeMs" .=) <$> _qReportDataEndTimeMs,
+                  ("schedule" .=) <$> _qSchedule,
+                  Just ("kind" .= _qKind), ("params" .=) <$> _qParams,
+                  ("metadata" .=) <$> _qMetadata,
+                  ("reportDataStartTimeMs" .=) <$>
+                    _qReportDataStartTimeMs,
+                  ("timezoneCode" .=) <$> _qTimezoneCode])
+
+-- | Parameters of a query or report.
+--
+-- /See:/ 'parameters' smart constructor.
+data Parameters = Parameters
+    { _pMetrics           :: !(Maybe [ParametersMetricsItem])
+    , _pIncludeInviteData :: !(Maybe Bool)
+    , _pFilters           :: !(Maybe [FilterPair])
+    , _pGroupBys          :: !(Maybe [ParametersGroupBysItem])
+    , _pType              :: !(Maybe ParametersType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Parameters' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pMetrics'
+--
+-- * 'pIncludeInviteData'
+--
+-- * 'pFilters'
+--
+-- * 'pGroupBys'
+--
+-- * 'pType'
+parameters
+    :: Parameters
+parameters =
+    Parameters
+    { _pMetrics = Nothing
+    , _pIncludeInviteData = Nothing
+    , _pFilters = Nothing
+    , _pGroupBys = Nothing
+    , _pType = Nothing
+    }
+
+-- | Metrics to include as columns in your report.
+pMetrics :: Lens' Parameters [ParametersMetricsItem]
+pMetrics
+  = lens _pMetrics (\ s a -> s{_pMetrics = a}) .
+      _Default
+      . _Coerce
+
+-- | Whether to include data from Invite Media.
+pIncludeInviteData :: Lens' Parameters (Maybe Bool)
+pIncludeInviteData
+  = lens _pIncludeInviteData
+      (\ s a -> s{_pIncludeInviteData = a})
+
+-- | Filters used to match traffic data in your report.
+pFilters :: Lens' Parameters [FilterPair]
+pFilters
+  = lens _pFilters (\ s a -> s{_pFilters = a}) .
+      _Default
+      . _Coerce
+
+-- | Data is grouped by the filters listed in this field.
+pGroupBys :: Lens' Parameters [ParametersGroupBysItem]
+pGroupBys
+  = lens _pGroupBys (\ s a -> s{_pGroupBys = a}) .
+      _Default
+      . _Coerce
+
+-- | Report type.
+pType :: Lens' Parameters (Maybe ParametersType)
+pType = lens _pType (\ s a -> s{_pType = a})
+
+instance FromJSON Parameters where
+        parseJSON
+          = withObject "Parameters"
+              (\ o ->
+                 Parameters <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "includeInviteData")
+                     <*> (o .:? "filters" .!= mempty)
+                     <*> (o .:? "groupBys" .!= mempty)
+                     <*> (o .:? "type"))
+
+instance ToJSON Parameters where
+        toJSON Parameters{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _pMetrics,
+                  ("includeInviteData" .=) <$> _pIncludeInviteData,
+                  ("filters" .=) <$> _pFilters,
+                  ("groupBys" .=) <$> _pGroupBys,
+                  ("type" .=) <$> _pType])
+
+-- | An explanation of a report failure.
+--
+-- /See:/ 'reportFailure' smart constructor.
+newtype ReportFailure = ReportFailure
+    { _rfErrorCode :: Maybe ReportFailureErrorCode
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportFailure' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rfErrorCode'
+reportFailure
+    :: ReportFailure
+reportFailure =
+    ReportFailure
+    { _rfErrorCode = Nothing
+    }
+
+-- | Error code that shows why the report was not created.
+rfErrorCode :: Lens' ReportFailure (Maybe ReportFailureErrorCode)
+rfErrorCode
+  = lens _rfErrorCode (\ s a -> s{_rfErrorCode = a})
+
+instance FromJSON ReportFailure where
+        parseJSON
+          = withObject "ReportFailure"
+              (\ o -> ReportFailure <$> (o .:? "errorCode"))
+
+instance ToJSON ReportFailure where
+        toJSON ReportFailure{..}
+          = object
+              (catMaybes [("errorCode" .=) <$> _rfErrorCode])
diff --git a/gen/Network/Google/DoubleClickBids/Types/Sum.hs b/gen/Network/Google/DoubleClickBids/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/DoubleClickBids/Types/Sum.hs
@@ -0,0 +1,2447 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE LambdaCase         #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.DoubleClickBids.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.DoubleClickBids.Types.Sum where
+
+import           Network.Google.Prelude
+
+-- | Format of the generated report.
+data QueryMetadataFormat
+    = CSV
+      -- ^ @CSV@
+    | ExcelCSV
+      -- ^ @EXCEL_CSV@
+    | Xlsx
+      -- ^ @XLSX@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable QueryMetadataFormat
+
+instance FromText QueryMetadataFormat where
+    fromText = \case
+        "CSV" -> Just CSV
+        "EXCEL_CSV" -> Just ExcelCSV
+        "XLSX" -> Just Xlsx
+        _ -> Nothing
+
+instance ToText QueryMetadataFormat where
+    toText = \case
+        CSV -> "CSV"
+        ExcelCSV -> "EXCEL_CSV"
+        Xlsx -> "XLSX"
+
+instance FromJSON QueryMetadataFormat where
+    parseJSON = parseJSONText "QueryMetadataFormat"
+
+instance ToJSON QueryMetadataFormat where
+    toJSON = toJSONText
+
+-- | Report type.
+data ParametersType
+    = TypeActiveGrp
+      -- ^ @TYPE_ACTIVE_GRP@
+    | TypeAudienceComPosition
+      -- ^ @TYPE_AUDIENCE_COMPOSITION@
+    | TypeAudiencePerformance
+      -- ^ @TYPE_AUDIENCE_PERFORMANCE@
+    | TypeClientSafe
+      -- ^ @TYPE_CLIENT_SAFE@
+    | TypeComscoreVce
+      -- ^ @TYPE_COMSCORE_VCE@
+    | TypeCrossFee
+      -- ^ @TYPE_CROSS_FEE@
+    | TypeCrossPartner
+      -- ^ @TYPE_CROSS_PARTNER@
+    | TypeCrossPartnerThirdPartyDataProvider
+      -- ^ @TYPE_CROSS_PARTNER_THIRD_PARTY_DATA_PROVIDER@
+    | TypeEstimatedConversion
+      -- ^ @TYPE_ESTIMATED_CONVERSION@
+    | TypeFee
+      -- ^ @TYPE_FEE@
+    | TypeGeneral
+      -- ^ @TYPE_GENERAL@
+    | TypeInventoryAvailability
+      -- ^ @TYPE_INVENTORY_AVAILABILITY@
+    | TypeKeyword
+      -- ^ @TYPE_KEYWORD@
+    | TypeNielsenAudienceProFile
+      -- ^ @TYPE_NIELSEN_AUDIENCE_PROFILE@
+    | TypeNielsenDailyReachBuild
+      -- ^ @TYPE_NIELSEN_DAILY_REACH_BUILD@
+    | TypeNielsenOnlineGlobalMarket
+      -- ^ @TYPE_NIELSEN_ONLINE_GLOBAL_MARKET@
+    | TypeNielsenSite
+      -- ^ @TYPE_NIELSEN_SITE@
+    | TypeOrderId
+      -- ^ @TYPE_ORDER_ID@
+    | TypePageCategory
+      -- ^ @TYPE_PAGE_CATEGORY@
+    | TypePixelLoad
+      -- ^ @TYPE_PIXEL_LOAD@
+    | TypeReachAndFrequency
+      -- ^ @TYPE_REACH_AND_FREQUENCY@
+    | TypeThirdPartyDataProvider
+      -- ^ @TYPE_THIRD_PARTY_DATA_PROVIDER@
+    | TypeTrueview
+      -- ^ @TYPE_TRUEVIEW@
+    | TypeTrueviewIar
+      -- ^ @TYPE_TRUEVIEW_IAR@
+    | TypeVerification
+      -- ^ @TYPE_VERIFICATION@
+    | TypeYouTubeVertical
+      -- ^ @TYPE_YOUTUBE_VERTICAL@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ParametersType
+
+instance FromText ParametersType where
+    fromText = \case
+        "TYPE_ACTIVE_GRP" -> Just TypeActiveGrp
+        "TYPE_AUDIENCE_COMPOSITION" -> Just TypeAudienceComPosition
+        "TYPE_AUDIENCE_PERFORMANCE" -> Just TypeAudiencePerformance
+        "TYPE_CLIENT_SAFE" -> Just TypeClientSafe
+        "TYPE_COMSCORE_VCE" -> Just TypeComscoreVce
+        "TYPE_CROSS_FEE" -> Just TypeCrossFee
+        "TYPE_CROSS_PARTNER" -> Just TypeCrossPartner
+        "TYPE_CROSS_PARTNER_THIRD_PARTY_DATA_PROVIDER" -> Just TypeCrossPartnerThirdPartyDataProvider
+        "TYPE_ESTIMATED_CONVERSION" -> Just TypeEstimatedConversion
+        "TYPE_FEE" -> Just TypeFee
+        "TYPE_GENERAL" -> Just TypeGeneral
+        "TYPE_INVENTORY_AVAILABILITY" -> Just TypeInventoryAvailability
+        "TYPE_KEYWORD" -> Just TypeKeyword
+        "TYPE_NIELSEN_AUDIENCE_PROFILE" -> Just TypeNielsenAudienceProFile
+        "TYPE_NIELSEN_DAILY_REACH_BUILD" -> Just TypeNielsenDailyReachBuild
+        "TYPE_NIELSEN_ONLINE_GLOBAL_MARKET" -> Just TypeNielsenOnlineGlobalMarket
+        "TYPE_NIELSEN_SITE" -> Just TypeNielsenSite
+        "TYPE_ORDER_ID" -> Just TypeOrderId
+        "TYPE_PAGE_CATEGORY" -> Just TypePageCategory
+        "TYPE_PIXEL_LOAD" -> Just TypePixelLoad
+        "TYPE_REACH_AND_FREQUENCY" -> Just TypeReachAndFrequency
+        "TYPE_THIRD_PARTY_DATA_PROVIDER" -> Just TypeThirdPartyDataProvider
+        "TYPE_TRUEVIEW" -> Just TypeTrueview
+        "TYPE_TRUEVIEW_IAR" -> Just TypeTrueviewIar
+        "TYPE_VERIFICATION" -> Just TypeVerification
+        "TYPE_YOUTUBE_VERTICAL" -> Just TypeYouTubeVertical
+        _ -> Nothing
+
+instance ToText ParametersType where
+    toText = \case
+        TypeActiveGrp -> "TYPE_ACTIVE_GRP"
+        TypeAudienceComPosition -> "TYPE_AUDIENCE_COMPOSITION"
+        TypeAudiencePerformance -> "TYPE_AUDIENCE_PERFORMANCE"
+        TypeClientSafe -> "TYPE_CLIENT_SAFE"
+        TypeComscoreVce -> "TYPE_COMSCORE_VCE"
+        TypeCrossFee -> "TYPE_CROSS_FEE"
+        TypeCrossPartner -> "TYPE_CROSS_PARTNER"
+        TypeCrossPartnerThirdPartyDataProvider -> "TYPE_CROSS_PARTNER_THIRD_PARTY_DATA_PROVIDER"
+        TypeEstimatedConversion -> "TYPE_ESTIMATED_CONVERSION"
+        TypeFee -> "TYPE_FEE"
+        TypeGeneral -> "TYPE_GENERAL"
+        TypeInventoryAvailability -> "TYPE_INVENTORY_AVAILABILITY"
+        TypeKeyword -> "TYPE_KEYWORD"
+        TypeNielsenAudienceProFile -> "TYPE_NIELSEN_AUDIENCE_PROFILE"
+        TypeNielsenDailyReachBuild -> "TYPE_NIELSEN_DAILY_REACH_BUILD"
+        TypeNielsenOnlineGlobalMarket -> "TYPE_NIELSEN_ONLINE_GLOBAL_MARKET"
+        TypeNielsenSite -> "TYPE_NIELSEN_SITE"
+        TypeOrderId -> "TYPE_ORDER_ID"
+        TypePageCategory -> "TYPE_PAGE_CATEGORY"
+        TypePixelLoad -> "TYPE_PIXEL_LOAD"
+        TypeReachAndFrequency -> "TYPE_REACH_AND_FREQUENCY"
+        TypeThirdPartyDataProvider -> "TYPE_THIRD_PARTY_DATA_PROVIDER"
+        TypeTrueview -> "TYPE_TRUEVIEW"
+        TypeTrueviewIar -> "TYPE_TRUEVIEW_IAR"
+        TypeVerification -> "TYPE_VERIFICATION"
+        TypeYouTubeVertical -> "TYPE_YOUTUBE_VERTICAL"
+
+instance FromJSON ParametersType where
+    parseJSON = parseJSONText "ParametersType"
+
+instance ToJSON ParametersType where
+    toJSON = toJSONText
+
+-- | Filter type used to filter line items to fetch.
+data DownloadLineItemsRequestFilterType
+    = AdvertiserId
+      -- ^ @ADVERTISER_ID@
+    | InsertionOrderId
+      -- ^ @INSERTION_ORDER_ID@
+    | LineItemId
+      -- ^ @LINE_ITEM_ID@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DownloadLineItemsRequestFilterType
+
+instance FromText DownloadLineItemsRequestFilterType where
+    fromText = \case
+        "ADVERTISER_ID" -> Just AdvertiserId
+        "INSERTION_ORDER_ID" -> Just InsertionOrderId
+        "LINE_ITEM_ID" -> Just LineItemId
+        _ -> Nothing
+
+instance ToText DownloadLineItemsRequestFilterType where
+    toText = \case
+        AdvertiserId -> "ADVERTISER_ID"
+        InsertionOrderId -> "INSERTION_ORDER_ID"
+        LineItemId -> "LINE_ITEM_ID"
+
+instance FromJSON DownloadLineItemsRequestFilterType where
+    parseJSON = parseJSONText "DownloadLineItemsRequestFilterType"
+
+instance ToJSON DownloadLineItemsRequestFilterType where
+    toJSON = toJSONText
+
+-- | Range of report data.
+data QueryMetadataDataRange
+    = AllTime
+      -- ^ @ALL_TIME@
+    | CurrentDay
+      -- ^ @CURRENT_DAY@
+    | CustomDates
+      -- ^ @CUSTOM_DATES@
+    | Last14Days
+      -- ^ @LAST_14_DAYS@
+    | Last30Days
+      -- ^ @LAST_30_DAYS@
+    | Last365Days
+      -- ^ @LAST_365_DAYS@
+    | Last7Days
+      -- ^ @LAST_7_DAYS@
+    | Last90Days
+      -- ^ @LAST_90_DAYS@
+    | MonthToDate
+      -- ^ @MONTH_TO_DATE@
+    | PreviousDay
+      -- ^ @PREVIOUS_DAY@
+    | PreviousHalfMonth
+      -- ^ @PREVIOUS_HALF_MONTH@
+    | PreviousMonth
+      -- ^ @PREVIOUS_MONTH@
+    | PreviousQuarter
+      -- ^ @PREVIOUS_QUARTER@
+    | PreviousWeek
+      -- ^ @PREVIOUS_WEEK@
+    | PreviousYear
+      -- ^ @PREVIOUS_YEAR@
+    | QuarterToDate
+      -- ^ @QUARTER_TO_DATE@
+    | WeekToDate
+      -- ^ @WEEK_TO_DATE@
+    | YearToDate
+      -- ^ @YEAR_TO_DATE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable QueryMetadataDataRange
+
+instance FromText QueryMetadataDataRange where
+    fromText = \case
+        "ALL_TIME" -> Just AllTime
+        "CURRENT_DAY" -> Just CurrentDay
+        "CUSTOM_DATES" -> Just CustomDates
+        "LAST_14_DAYS" -> Just Last14Days
+        "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_DAY" -> Just PreviousDay
+        "PREVIOUS_HALF_MONTH" -> Just PreviousHalfMonth
+        "PREVIOUS_MONTH" -> Just PreviousMonth
+        "PREVIOUS_QUARTER" -> Just PreviousQuarter
+        "PREVIOUS_WEEK" -> Just PreviousWeek
+        "PREVIOUS_YEAR" -> Just PreviousYear
+        "QUARTER_TO_DATE" -> Just QuarterToDate
+        "WEEK_TO_DATE" -> Just WeekToDate
+        "YEAR_TO_DATE" -> Just YearToDate
+        _ -> Nothing
+
+instance ToText QueryMetadataDataRange where
+    toText = \case
+        AllTime -> "ALL_TIME"
+        CurrentDay -> "CURRENT_DAY"
+        CustomDates -> "CUSTOM_DATES"
+        Last14Days -> "LAST_14_DAYS"
+        Last30Days -> "LAST_30_DAYS"
+        Last365Days -> "LAST_365_DAYS"
+        Last7Days -> "LAST_7_DAYS"
+        Last90Days -> "LAST_90_DAYS"
+        MonthToDate -> "MONTH_TO_DATE"
+        PreviousDay -> "PREVIOUS_DAY"
+        PreviousHalfMonth -> "PREVIOUS_HALF_MONTH"
+        PreviousMonth -> "PREVIOUS_MONTH"
+        PreviousQuarter -> "PREVIOUS_QUARTER"
+        PreviousWeek -> "PREVIOUS_WEEK"
+        PreviousYear -> "PREVIOUS_YEAR"
+        QuarterToDate -> "QUARTER_TO_DATE"
+        WeekToDate -> "WEEK_TO_DATE"
+        YearToDate -> "YEAR_TO_DATE"
+
+instance FromJSON QueryMetadataDataRange where
+    parseJSON = parseJSONText "QueryMetadataDataRange"
+
+instance ToJSON QueryMetadataDataRange where
+    toJSON = toJSONText
+
+data ParametersMetricsItem
+    = MetricBidRequests
+      -- ^ @METRIC_BID_REQUESTS@
+    | MetricBillableCostAdvertiser
+      -- ^ @METRIC_BILLABLE_COST_ADVERTISER@
+    | MetricBillableCostPartner
+      -- ^ @METRIC_BILLABLE_COST_PARTNER@
+    | MetricBillableCostUsd
+      -- ^ @METRIC_BILLABLE_COST_USD@
+    | MetricClicks
+      -- ^ @METRIC_CLICKS@
+    | MetricClickToPostClickConversionRate
+      -- ^ @METRIC_CLICK_TO_POST_CLICK_CONVERSION_RATE@
+    | MetricComscoreVceAudienceAvgFrequency
+      -- ^ @METRIC_COMSCORE_VCE_AUDIENCE_AVG_FREQUENCY@
+    | MetricComscoreVceAudienceImpressions
+      -- ^ @METRIC_COMSCORE_VCE_AUDIENCE_IMPRESSIONS@
+    | MetricComscoreVceAudienceImpressionsShare
+      -- ^ @METRIC_COMSCORE_VCE_AUDIENCE_IMPRESSIONS_SHARE@
+    | MetricComscoreVceAudienceReachPct
+      -- ^ @METRIC_COMSCORE_VCE_AUDIENCE_REACH_PCT@
+    | MetricComscoreVceAudienceSharePct
+      -- ^ @METRIC_COMSCORE_VCE_AUDIENCE_SHARE_PCT@
+    | MetricComscoreVceGrossRatingPoints
+      -- ^ @METRIC_COMSCORE_VCE_GROSS_RATING_POINTS@
+    | MetricComscoreVcePopulation
+      -- ^ @METRIC_COMSCORE_VCE_POPULATION@
+    | MetricComscoreVceUniqueAudience
+      -- ^ @METRIC_COMSCORE_VCE_UNIQUE_AUDIENCE@
+    | MetricConversionsPerMille
+      -- ^ @METRIC_CONVERSIONS_PER_MILLE@
+    | MetricCpmFEE1Advertiser
+      -- ^ @METRIC_CPM_FEE1_ADVERTISER@
+    | MetricCpmFEE1Partner
+      -- ^ @METRIC_CPM_FEE1_PARTNER@
+    | MetricCpmFEE1Usd
+      -- ^ @METRIC_CPM_FEE1_USD@
+    | MetricCpmFEE2Advertiser
+      -- ^ @METRIC_CPM_FEE2_ADVERTISER@
+    | MetricCpmFEE2Partner
+      -- ^ @METRIC_CPM_FEE2_PARTNER@
+    | MetricCpmFEE2Usd
+      -- ^ @METRIC_CPM_FEE2_USD@
+    | MetricCpmFEE3Advertiser
+      -- ^ @METRIC_CPM_FEE3_ADVERTISER@
+    | MetricCpmFEE3Partner
+      -- ^ @METRIC_CPM_FEE3_PARTNER@
+    | MetricCpmFEE3Usd
+      -- ^ @METRIC_CPM_FEE3_USD@
+    | MetricCpmFEE4Advertiser
+      -- ^ @METRIC_CPM_FEE4_ADVERTISER@
+    | MetricCpmFEE4Partner
+      -- ^ @METRIC_CPM_FEE4_PARTNER@
+    | MetricCpmFEE4Usd
+      -- ^ @METRIC_CPM_FEE4_USD@
+    | MetricCpmFEE5Advertiser
+      -- ^ @METRIC_CPM_FEE5_ADVERTISER@
+    | MetricCpmFEE5Partner
+      -- ^ @METRIC_CPM_FEE5_PARTNER@
+    | MetricCpmFEE5Usd
+      -- ^ @METRIC_CPM_FEE5_USD@
+    | MetricCtr
+      -- ^ @METRIC_CTR@
+    | MetricDataCostAdvertiser
+      -- ^ @METRIC_DATA_COST_ADVERTISER@
+    | MetricDataCostPartner
+      -- ^ @METRIC_DATA_COST_PARTNER@
+    | MetricDataCostUsd
+      -- ^ @METRIC_DATA_COST_USD@
+    | MetricFEE10Advertiser
+      -- ^ @METRIC_FEE10_ADVERTISER@
+    | MetricFEE10Partner
+      -- ^ @METRIC_FEE10_PARTNER@
+    | MetricFEE10Usd
+      -- ^ @METRIC_FEE10_USD@
+    | MetricFEE11Advertiser
+      -- ^ @METRIC_FEE11_ADVERTISER@
+    | MetricFEE11Partner
+      -- ^ @METRIC_FEE11_PARTNER@
+    | MetricFEE11Usd
+      -- ^ @METRIC_FEE11_USD@
+    | MetricFEE12Advertiser
+      -- ^ @METRIC_FEE12_ADVERTISER@
+    | MetricFEE12Partner
+      -- ^ @METRIC_FEE12_PARTNER@
+    | MetricFEE12Usd
+      -- ^ @METRIC_FEE12_USD@
+    | MetricFEE13Advertiser
+      -- ^ @METRIC_FEE13_ADVERTISER@
+    | MetricFEE13Partner
+      -- ^ @METRIC_FEE13_PARTNER@
+    | MetricFEE13Usd
+      -- ^ @METRIC_FEE13_USD@
+    | MetricFEE14Advertiser
+      -- ^ @METRIC_FEE14_ADVERTISER@
+    | MetricFEE14Partner
+      -- ^ @METRIC_FEE14_PARTNER@
+    | MetricFEE14Usd
+      -- ^ @METRIC_FEE14_USD@
+    | MetricFEE15Advertiser
+      -- ^ @METRIC_FEE15_ADVERTISER@
+    | MetricFEE15Partner
+      -- ^ @METRIC_FEE15_PARTNER@
+    | MetricFEE15Usd
+      -- ^ @METRIC_FEE15_USD@
+    | MetricFEE16Advertiser
+      -- ^ @METRIC_FEE16_ADVERTISER@
+    | MetricFEE16Partner
+      -- ^ @METRIC_FEE16_PARTNER@
+    | MetricFEE16Usd
+      -- ^ @METRIC_FEE16_USD@
+    | MetricFEE17Advertiser
+      -- ^ @METRIC_FEE17_ADVERTISER@
+    | MetricFEE17Partner
+      -- ^ @METRIC_FEE17_PARTNER@
+    | MetricFEE17Usd
+      -- ^ @METRIC_FEE17_USD@
+    | MetricFEE18Advertiser
+      -- ^ @METRIC_FEE18_ADVERTISER@
+    | MetricFEE18Partner
+      -- ^ @METRIC_FEE18_PARTNER@
+    | MetricFEE18Usd
+      -- ^ @METRIC_FEE18_USD@
+    | MetricFEE19Advertiser
+      -- ^ @METRIC_FEE19_ADVERTISER@
+    | MetricFEE19Partner
+      -- ^ @METRIC_FEE19_PARTNER@
+    | MetricFEE19Usd
+      -- ^ @METRIC_FEE19_USD@
+    | MetricFEE20Advertiser
+      -- ^ @METRIC_FEE20_ADVERTISER@
+    | MetricFEE20Partner
+      -- ^ @METRIC_FEE20_PARTNER@
+    | MetricFEE20Usd
+      -- ^ @METRIC_FEE20_USD@
+    | MetricFEE21Advertiser
+      -- ^ @METRIC_FEE21_ADVERTISER@
+    | MetricFEE21Partner
+      -- ^ @METRIC_FEE21_PARTNER@
+    | MetricFEE21Usd
+      -- ^ @METRIC_FEE21_USD@
+    | MetricFEE22Advertiser
+      -- ^ @METRIC_FEE22_ADVERTISER@
+    | MetricFEE22Partner
+      -- ^ @METRIC_FEE22_PARTNER@
+    | MetricFEE22Usd
+      -- ^ @METRIC_FEE22_USD@
+    | MetricFEE2Advertiser
+      -- ^ @METRIC_FEE2_ADVERTISER@
+    | MetricFEE2Partner
+      -- ^ @METRIC_FEE2_PARTNER@
+    | MetricFEE2Usd
+      -- ^ @METRIC_FEE2_USD@
+    | MetricFEE3Advertiser
+      -- ^ @METRIC_FEE3_ADVERTISER@
+    | MetricFEE3Partner
+      -- ^ @METRIC_FEE3_PARTNER@
+    | MetricFEE3Usd
+      -- ^ @METRIC_FEE3_USD@
+    | MetricFEE4Advertiser
+      -- ^ @METRIC_FEE4_ADVERTISER@
+    | MetricFEE4Partner
+      -- ^ @METRIC_FEE4_PARTNER@
+    | MetricFEE4Usd
+      -- ^ @METRIC_FEE4_USD@
+    | MetricFEE5Advertiser
+      -- ^ @METRIC_FEE5_ADVERTISER@
+    | MetricFEE5Partner
+      -- ^ @METRIC_FEE5_PARTNER@
+    | MetricFEE5Usd
+      -- ^ @METRIC_FEE5_USD@
+    | MetricFEE6Advertiser
+      -- ^ @METRIC_FEE6_ADVERTISER@
+    | MetricFEE6Partner
+      -- ^ @METRIC_FEE6_PARTNER@
+    | MetricFEE6Usd
+      -- ^ @METRIC_FEE6_USD@
+    | MetricFEE7Advertiser
+      -- ^ @METRIC_FEE7_ADVERTISER@
+    | MetricFEE7Partner
+      -- ^ @METRIC_FEE7_PARTNER@
+    | MetricFEE7Usd
+      -- ^ @METRIC_FEE7_USD@
+    | MetricFEE8Advertiser
+      -- ^ @METRIC_FEE8_ADVERTISER@
+    | MetricFEE8Partner
+      -- ^ @METRIC_FEE8_PARTNER@
+    | MetricFEE8Usd
+      -- ^ @METRIC_FEE8_USD@
+    | MetricFEE9Advertiser
+      -- ^ @METRIC_FEE9_ADVERTISER@
+    | MetricFEE9Partner
+      -- ^ @METRIC_FEE9_PARTNER@
+    | MetricFEE9Usd
+      -- ^ @METRIC_FEE9_USD@
+    | MetricImpressions
+      -- ^ @METRIC_IMPRESSIONS@
+    | MetricImpressionsToConversionRate
+      -- ^ @METRIC_IMPRESSIONS_TO_CONVERSION_RATE@
+    | MetricLastClicks
+      -- ^ @METRIC_LAST_CLICKS@
+    | MetricLastImpressions
+      -- ^ @METRIC_LAST_IMPRESSIONS@
+    | MetricMediaCostAdvertiser
+      -- ^ @METRIC_MEDIA_COST_ADVERTISER@
+    | MetricMediaCostEcpapcAdvertiser
+      -- ^ @METRIC_MEDIA_COST_ECPAPC_ADVERTISER@
+    | MetricMediaCostEcpapcPartner
+      -- ^ @METRIC_MEDIA_COST_ECPAPC_PARTNER@
+    | MetricMediaCostEcpapcUsd
+      -- ^ @METRIC_MEDIA_COST_ECPAPC_USD@
+    | MetricMediaCostEcpapvAdvertiser
+      -- ^ @METRIC_MEDIA_COST_ECPAPV_ADVERTISER@
+    | MetricMediaCostEcpapvPartner
+      -- ^ @METRIC_MEDIA_COST_ECPAPV_PARTNER@
+    | MetricMediaCostEcpapvUsd
+      -- ^ @METRIC_MEDIA_COST_ECPAPV_USD@
+    | MetricMediaCostEcpaAdvertiser
+      -- ^ @METRIC_MEDIA_COST_ECPA_ADVERTISER@
+    | MetricMediaCostEcpaPartner
+      -- ^ @METRIC_MEDIA_COST_ECPA_PARTNER@
+    | MetricMediaCostEcpaUsd
+      -- ^ @METRIC_MEDIA_COST_ECPA_USD@
+    | MetricMediaCostEcpcvAdvertiser
+      -- ^ @METRIC_MEDIA_COST_ECPCV_ADVERTISER@
+    | MetricMediaCostEcpcvPartner
+      -- ^ @METRIC_MEDIA_COST_ECPCV_PARTNER@
+    | MetricMediaCostEcpcvUsd
+      -- ^ @METRIC_MEDIA_COST_ECPCV_USD@
+    | MetricMediaCostEcpcAdvertiser
+      -- ^ @METRIC_MEDIA_COST_ECPC_ADVERTISER@
+    | MetricMediaCostEcpcPartner
+      -- ^ @METRIC_MEDIA_COST_ECPC_PARTNER@
+    | MetricMediaCostEcpcUsd
+      -- ^ @METRIC_MEDIA_COST_ECPC_USD@
+    | MetricMediaCostEcpmAdvertiser
+      -- ^ @METRIC_MEDIA_COST_ECPM_ADVERTISER@
+    | MetricMediaCostEcpmPartner
+      -- ^ @METRIC_MEDIA_COST_ECPM_PARTNER@
+    | MetricMediaCostEcpmUsd
+      -- ^ @METRIC_MEDIA_COST_ECPM_USD@
+    | MetricMediaCostPartner
+      -- ^ @METRIC_MEDIA_COST_PARTNER@
+    | MetricMediaCostUsd
+      -- ^ @METRIC_MEDIA_COST_USD@
+    | MetricMediaCostViewableEcpmAdvertiser
+      -- ^ @METRIC_MEDIA_COST_VIEWABLE_ECPM_ADVERTISER@
+    | MetricMediaCostViewableEcpmPartner
+      -- ^ @METRIC_MEDIA_COST_VIEWABLE_ECPM_PARTNER@
+    | MetricMediaCostViewableEcpmUsd
+      -- ^ @METRIC_MEDIA_COST_VIEWABLE_ECPM_USD@
+    | MetricMediaFEE1Advertiser
+      -- ^ @METRIC_MEDIA_FEE1_ADVERTISER@
+    | MetricMediaFEE1Partner
+      -- ^ @METRIC_MEDIA_FEE1_PARTNER@
+    | MetricMediaFEE1Usd
+      -- ^ @METRIC_MEDIA_FEE1_USD@
+    | MetricMediaFEE2Advertiser
+      -- ^ @METRIC_MEDIA_FEE2_ADVERTISER@
+    | MetricMediaFEE2Partner
+      -- ^ @METRIC_MEDIA_FEE2_PARTNER@
+    | MetricMediaFEE2Usd
+      -- ^ @METRIC_MEDIA_FEE2_USD@
+    | MetricMediaFEE3Advertiser
+      -- ^ @METRIC_MEDIA_FEE3_ADVERTISER@
+    | MetricMediaFEE3Partner
+      -- ^ @METRIC_MEDIA_FEE3_PARTNER@
+    | MetricMediaFEE3Usd
+      -- ^ @METRIC_MEDIA_FEE3_USD@
+    | MetricMediaFEE4Advertiser
+      -- ^ @METRIC_MEDIA_FEE4_ADVERTISER@
+    | MetricMediaFEE4Partner
+      -- ^ @METRIC_MEDIA_FEE4_PARTNER@
+    | MetricMediaFEE4Usd
+      -- ^ @METRIC_MEDIA_FEE4_USD@
+    | MetricMediaFEE5Advertiser
+      -- ^ @METRIC_MEDIA_FEE5_ADVERTISER@
+    | MetricMediaFEE5Partner
+      -- ^ @METRIC_MEDIA_FEE5_PARTNER@
+    | MetricMediaFEE5Usd
+      -- ^ @METRIC_MEDIA_FEE5_USD@
+    | MetricPixelLoads
+      -- ^ @METRIC_PIXEL_LOADS@
+    | MetricPlatformFeeAdvertiser
+      -- ^ @METRIC_PLATFORM_FEE_ADVERTISER@
+    | MetricPlatformFeePartner
+      -- ^ @METRIC_PLATFORM_FEE_PARTNER@
+    | MetricPlatformFeeUsd
+      -- ^ @METRIC_PLATFORM_FEE_USD@
+    | MetricPostClickDfaRevenue
+      -- ^ @METRIC_POST_CLICK_DFA_REVENUE@
+    | MetricPostViewDfaRevenue
+      -- ^ @METRIC_POST_VIEW_DFA_REVENUE@
+    | MetricProfitAdvertiser
+      -- ^ @METRIC_PROFIT_ADVERTISER@
+    | MetricProfitEcpapcAdvertiser
+      -- ^ @METRIC_PROFIT_ECPAPC_ADVERTISER@
+    | MetricProfitEcpapcPartner
+      -- ^ @METRIC_PROFIT_ECPAPC_PARTNER@
+    | MetricProfitEcpapcUsd
+      -- ^ @METRIC_PROFIT_ECPAPC_USD@
+    | MetricProfitEcpapvAdvertiser
+      -- ^ @METRIC_PROFIT_ECPAPV_ADVERTISER@
+    | MetricProfitEcpapvPartner
+      -- ^ @METRIC_PROFIT_ECPAPV_PARTNER@
+    | MetricProfitEcpapvUsd
+      -- ^ @METRIC_PROFIT_ECPAPV_USD@
+    | MetricProfitEcpaAdvertiser
+      -- ^ @METRIC_PROFIT_ECPA_ADVERTISER@
+    | MetricProfitEcpaPartner
+      -- ^ @METRIC_PROFIT_ECPA_PARTNER@
+    | MetricProfitEcpaUsd
+      -- ^ @METRIC_PROFIT_ECPA_USD@
+    | MetricProfitEcpcAdvertiser
+      -- ^ @METRIC_PROFIT_ECPC_ADVERTISER@
+    | MetricProfitEcpcPartner
+      -- ^ @METRIC_PROFIT_ECPC_PARTNER@
+    | MetricProfitEcpcUsd
+      -- ^ @METRIC_PROFIT_ECPC_USD@
+    | MetricProfitEcpmAdvertiser
+      -- ^ @METRIC_PROFIT_ECPM_ADVERTISER@
+    | MetricProfitEcpmPartner
+      -- ^ @METRIC_PROFIT_ECPM_PARTNER@
+    | MetricProfitEcpmUsd
+      -- ^ @METRIC_PROFIT_ECPM_USD@
+    | MetricProfitMargin
+      -- ^ @METRIC_PROFIT_MARGIN@
+    | MetricProfitPartner
+      -- ^ @METRIC_PROFIT_PARTNER@
+    | MetricProfitUsd
+      -- ^ @METRIC_PROFIT_USD@
+    | MetricProfitViewableEcpmAdvertiser
+      -- ^ @METRIC_PROFIT_VIEWABLE_ECPM_ADVERTISER@
+    | MetricProfitViewableEcpmPartner
+      -- ^ @METRIC_PROFIT_VIEWABLE_ECPM_PARTNER@
+    | MetricProfitViewableEcpmUsd
+      -- ^ @METRIC_PROFIT_VIEWABLE_ECPM_USD@
+    | MetricRevenueAdvertiser
+      -- ^ @METRIC_REVENUE_ADVERTISER@
+    | MetricRevenueEcpapcAdvertiser
+      -- ^ @METRIC_REVENUE_ECPAPC_ADVERTISER@
+    | MetricRevenueEcpapcPartner
+      -- ^ @METRIC_REVENUE_ECPAPC_PARTNER@
+    | MetricRevenueEcpapcUsd
+      -- ^ @METRIC_REVENUE_ECPAPC_USD@
+    | MetricRevenueEcpapvAdvertiser
+      -- ^ @METRIC_REVENUE_ECPAPV_ADVERTISER@
+    | MetricRevenueEcpapvPartner
+      -- ^ @METRIC_REVENUE_ECPAPV_PARTNER@
+    | MetricRevenueEcpapvUsd
+      -- ^ @METRIC_REVENUE_ECPAPV_USD@
+    | MetricRevenueEcpaAdvertiser
+      -- ^ @METRIC_REVENUE_ECPA_ADVERTISER@
+    | MetricRevenueEcpaPartner
+      -- ^ @METRIC_REVENUE_ECPA_PARTNER@
+    | MetricRevenueEcpaUsd
+      -- ^ @METRIC_REVENUE_ECPA_USD@
+    | MetricRevenueEcpcvAdvertiser
+      -- ^ @METRIC_REVENUE_ECPCV_ADVERTISER@
+    | MetricRevenueEcpcvPartner
+      -- ^ @METRIC_REVENUE_ECPCV_PARTNER@
+    | MetricRevenueEcpcvUsd
+      -- ^ @METRIC_REVENUE_ECPCV_USD@
+    | MetricRevenueEcpcAdvertiser
+      -- ^ @METRIC_REVENUE_ECPC_ADVERTISER@
+    | MetricRevenueEcpcPartner
+      -- ^ @METRIC_REVENUE_ECPC_PARTNER@
+    | MetricRevenueEcpcUsd
+      -- ^ @METRIC_REVENUE_ECPC_USD@
+    | MetricRevenueEcpmAdvertiser
+      -- ^ @METRIC_REVENUE_ECPM_ADVERTISER@
+    | MetricRevenueEcpmPartner
+      -- ^ @METRIC_REVENUE_ECPM_PARTNER@
+    | MetricRevenueEcpmUsd
+      -- ^ @METRIC_REVENUE_ECPM_USD@
+    | MetricRevenuePartner
+      -- ^ @METRIC_REVENUE_PARTNER@
+    | MetricRevenueUsd
+      -- ^ @METRIC_REVENUE_USD@
+    | MetricRevenueViewableEcpmAdvertiser
+      -- ^ @METRIC_REVENUE_VIEWABLE_ECPM_ADVERTISER@
+    | MetricRevenueViewableEcpmPartner
+      -- ^ @METRIC_REVENUE_VIEWABLE_ECPM_PARTNER@
+    | MetricRevenueViewableEcpmUsd
+      -- ^ @METRIC_REVENUE_VIEWABLE_ECPM_USD@
+    | MetricRichMediaVideoCompletions
+      -- ^ @METRIC_RICH_MEDIA_VIDEO_COMPLETIONS@
+    | MetricRichMediaVideoFirstQuartileCompletes
+      -- ^ @METRIC_RICH_MEDIA_VIDEO_FIRST_QUARTILE_COMPLETES@
+    | MetricRichMediaVideoFullScreens
+      -- ^ @METRIC_RICH_MEDIA_VIDEO_FULL_SCREENS@
+    | MetricRichMediaVideoMidpoints
+      -- ^ @METRIC_RICH_MEDIA_VIDEO_MIDPOINTS@
+    | MetricRichMediaVideoMutes
+      -- ^ @METRIC_RICH_MEDIA_VIDEO_MUTES@
+    | MetricRichMediaVideoPauses
+      -- ^ @METRIC_RICH_MEDIA_VIDEO_PAUSES@
+    | MetricRichMediaVideoPlays
+      -- ^ @METRIC_RICH_MEDIA_VIDEO_PLAYS@
+    | MetricRichMediaVideoSkips
+      -- ^ @METRIC_RICH_MEDIA_VIDEO_SKIPS@
+    | MetricRichMediaVideoThirdQuartileCompletes
+      -- ^ @METRIC_RICH_MEDIA_VIDEO_THIRD_QUARTILE_COMPLETES@
+    | MetricTeaTrueviewImpressions
+      -- ^ @METRIC_TEA_TRUEVIEW_IMPRESSIONS@
+    | MetricTeaTrueviewUniqueCookies
+      -- ^ @METRIC_TEA_TRUEVIEW_UNIQUE_COOKIES@
+    | MetricTeaTrueviewUniquePeople
+      -- ^ @METRIC_TEA_TRUEVIEW_UNIQUE_PEOPLE@
+    | MetricTotalConversions
+      -- ^ @METRIC_TOTAL_CONVERSIONS@
+    | MetricTotalMediaCostAdvertiser
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ADVERTISER@
+    | MetricTotalMediaCostEcpapcAdvertiser
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPAPC_ADVERTISER@
+    | MetricTotalMediaCostEcpapcPartner
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPAPC_PARTNER@
+    | MetricTotalMediaCostEcpapcUsd
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPAPC_USD@
+    | MetricTotalMediaCostEcpapvAdvertiser
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPAPV_ADVERTISER@
+    | MetricTotalMediaCostEcpapvPartner
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPAPV_PARTNER@
+    | MetricTotalMediaCostEcpapvUsd
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPAPV_USD@
+    | MetricTotalMediaCostEcpaAdvertiser
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPA_ADVERTISER@
+    | MetricTotalMediaCostEcpaPartner
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPA_PARTNER@
+    | MetricTotalMediaCostEcpaUsd
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPA_USD@
+    | MetricTotalMediaCostEcpcvAdvertiser
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPCV_ADVERTISER@
+    | MetricTotalMediaCostEcpcvPartner
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPCV_PARTNER@
+    | MetricTotalMediaCostEcpcvUsd
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPCV_USD@
+    | MetricTotalMediaCostEcpcAdvertiser
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPC_ADVERTISER@
+    | MetricTotalMediaCostEcpcPartner
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPC_PARTNER@
+    | MetricTotalMediaCostEcpcUsd
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPC_USD@
+    | MetricTotalMediaCostEcpmAdvertiser
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPM_ADVERTISER@
+    | MetricTotalMediaCostEcpmPartner
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPM_PARTNER@
+    | MetricTotalMediaCostEcpmUsd
+      -- ^ @METRIC_TOTAL_MEDIA_COST_ECPM_USD@
+    | MetricTotalMediaCostPartner
+      -- ^ @METRIC_TOTAL_MEDIA_COST_PARTNER@
+    | MetricTotalMediaCostUsd
+      -- ^ @METRIC_TOTAL_MEDIA_COST_USD@
+    | MetricTotalMediaCostViewableEcpmAdvertiser
+      -- ^ @METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_ADVERTISER@
+    | MetricTotalMediaCostViewableEcpmPartner
+      -- ^ @METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_PARTNER@
+    | MetricTotalMediaCostViewableEcpmUsd
+      -- ^ @METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_USD@
+    | MetricTrueviewConversionCostManyPerViewAdvertiser
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_ADVERTISER@
+    | MetricTrueviewConversionCostManyPerViewPartner
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_PARTNER@
+    | MetricTrueviewConversionCostManyPerViewUsd
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_USD@
+    | MetricTrueviewConversionCostOnePerViewAdvertiser
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_COST_ONE_PER_VIEW_ADVERTISER@
+    | MetricTrueviewConversionCostOnePerViewPartner
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_COST_ONE_PER_VIEW_PARTNER@
+    | MetricTrueviewConversionCostOnePerViewUsd
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_COST_ONE_PER_VIEW_USD@
+    | MetricTrueviewConversionManyPerView
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_MANY_PER_VIEW@
+    | MetricTrueviewConversionOnePerView
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_ONE_PER_VIEW@
+    | MetricTrueviewConversionRateOnePerView
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_RATE_ONE_PER_VIEW@
+    | MetricTrueviewConversionValueManyPerViewAdvertiser
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_VALUE_MANY_PER_VIEW_ADVERTISER@
+    | MetricTrueviewConversionValueManyPerViewPartner
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_VALUE_MANY_PER_VIEW_PARTNER@
+    | MetricTrueviewConversionValueManyPerViewUsd
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_VALUE_MANY_PER_VIEW_USD@
+    | MetricTrueviewConversionValueOnePerViewAdvertiser
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_VALUE_ONE_PER_VIEW_ADVERTISER@
+    | MetricTrueviewConversionValueOnePerViewPartner
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_VALUE_ONE_PER_VIEW_PARTNER@
+    | MetricTrueviewConversionValueOnePerViewUsd
+      -- ^ @METRIC_TRUEVIEW_CONVERSION_VALUE_ONE_PER_VIEW_USD@
+    | MetricTrueviewCostConversionManyPerViewRatio
+      -- ^ @METRIC_TRUEVIEW_COST_CONVERSION_MANY_PER_VIEW_RATIO@
+    | MetricTrueviewCostConversionOnePerViewRatio
+      -- ^ @METRIC_TRUEVIEW_COST_CONVERSION_ONE_PER_VIEW_RATIO@
+    | MetricTrueviewCpvAdvertiser
+      -- ^ @METRIC_TRUEVIEW_CPV_ADVERTISER@
+    | MetricTrueviewCpvPartner
+      -- ^ @METRIC_TRUEVIEW_CPV_PARTNER@
+    | MetricTrueviewCpvUsd
+      -- ^ @METRIC_TRUEVIEW_CPV_USD@
+    | MetricTrueviewEarnedLikes
+      -- ^ @METRIC_TRUEVIEW_EARNED_LIKES@
+    | MetricTrueviewEarnedPlayListAdditions
+      -- ^ @METRIC_TRUEVIEW_EARNED_PLAYLIST_ADDITIONS@
+    | MetricTrueviewEarnedShares
+      -- ^ @METRIC_TRUEVIEW_EARNED_SHARES@
+    | MetricTrueviewEarnedSubscribers
+      -- ^ @METRIC_TRUEVIEW_EARNED_SUBSCRIBERS@
+    | MetricTrueviewEarnedViews
+      -- ^ @METRIC_TRUEVIEW_EARNED_VIEWS@
+    | MetricTrueviewImpressionShare
+      -- ^ @METRIC_TRUEVIEW_IMPRESSION_SHARE@
+    | MetricTrueviewLostIsBudget
+      -- ^ @METRIC_TRUEVIEW_LOST_IS_BUDGET@
+    | MetricTrueviewLostIsRank
+      -- ^ @METRIC_TRUEVIEW_LOST_IS_RANK@
+    | MetricTrueviewTotalConversionValue
+      -- ^ @METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUE@
+    | MetricTrueviewTotalConversionValuesAdvertiser
+      -- ^ @METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_ADVERTISER@
+    | MetricTrueviewTotalConversionValuesPartner
+      -- ^ @METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_PARTNER@
+    | MetricTrueviewTotalConversionValuesUsd
+      -- ^ @METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_USD@
+    | MetricTrueviewUniqueViewers
+      -- ^ @METRIC_TRUEVIEW_UNIQUE_VIEWERS@
+    | MetricTrueviewValueConversionManyPerViewRatio
+      -- ^ @METRIC_TRUEVIEW_VALUE_CONVERSION_MANY_PER_VIEW_RATIO@
+    | MetricTrueviewValueConversionOnePerViewRatio
+      -- ^ @METRIC_TRUEVIEW_VALUE_CONVERSION_ONE_PER_VIEW_RATIO@
+    | MetricTrueviewViews
+      -- ^ @METRIC_TRUEVIEW_VIEWS@
+    | MetricTrueviewViewRate
+      -- ^ @METRIC_TRUEVIEW_VIEW_RATE@
+    | MetricTrueviewViewThroughConversion
+      -- ^ @METRIC_TRUEVIEW_VIEW_THROUGH_CONVERSION@
+    | MetricUniqueVisitorsCookies
+      -- ^ @METRIC_UNIQUE_VISITORS_COOKIES@
+    | MetricUnknown
+      -- ^ @METRIC_UNKNOWN@
+    | MetricVideoCompanionClicks
+      -- ^ @METRIC_VIDEO_COMPANION_CLICKS@
+    | MetricVideoCompanionImpressions
+      -- ^ @METRIC_VIDEO_COMPANION_IMPRESSIONS@
+    | MetricVideoCompletionRate
+      -- ^ @METRIC_VIDEO_COMPLETION_RATE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ParametersMetricsItem
+
+instance FromText ParametersMetricsItem where
+    fromText = \case
+        "METRIC_BID_REQUESTS" -> Just MetricBidRequests
+        "METRIC_BILLABLE_COST_ADVERTISER" -> Just MetricBillableCostAdvertiser
+        "METRIC_BILLABLE_COST_PARTNER" -> Just MetricBillableCostPartner
+        "METRIC_BILLABLE_COST_USD" -> Just MetricBillableCostUsd
+        "METRIC_CLICKS" -> Just MetricClicks
+        "METRIC_CLICK_TO_POST_CLICK_CONVERSION_RATE" -> Just MetricClickToPostClickConversionRate
+        "METRIC_COMSCORE_VCE_AUDIENCE_AVG_FREQUENCY" -> Just MetricComscoreVceAudienceAvgFrequency
+        "METRIC_COMSCORE_VCE_AUDIENCE_IMPRESSIONS" -> Just MetricComscoreVceAudienceImpressions
+        "METRIC_COMSCORE_VCE_AUDIENCE_IMPRESSIONS_SHARE" -> Just MetricComscoreVceAudienceImpressionsShare
+        "METRIC_COMSCORE_VCE_AUDIENCE_REACH_PCT" -> Just MetricComscoreVceAudienceReachPct
+        "METRIC_COMSCORE_VCE_AUDIENCE_SHARE_PCT" -> Just MetricComscoreVceAudienceSharePct
+        "METRIC_COMSCORE_VCE_GROSS_RATING_POINTS" -> Just MetricComscoreVceGrossRatingPoints
+        "METRIC_COMSCORE_VCE_POPULATION" -> Just MetricComscoreVcePopulation
+        "METRIC_COMSCORE_VCE_UNIQUE_AUDIENCE" -> Just MetricComscoreVceUniqueAudience
+        "METRIC_CONVERSIONS_PER_MILLE" -> Just MetricConversionsPerMille
+        "METRIC_CPM_FEE1_ADVERTISER" -> Just MetricCpmFEE1Advertiser
+        "METRIC_CPM_FEE1_PARTNER" -> Just MetricCpmFEE1Partner
+        "METRIC_CPM_FEE1_USD" -> Just MetricCpmFEE1Usd
+        "METRIC_CPM_FEE2_ADVERTISER" -> Just MetricCpmFEE2Advertiser
+        "METRIC_CPM_FEE2_PARTNER" -> Just MetricCpmFEE2Partner
+        "METRIC_CPM_FEE2_USD" -> Just MetricCpmFEE2Usd
+        "METRIC_CPM_FEE3_ADVERTISER" -> Just MetricCpmFEE3Advertiser
+        "METRIC_CPM_FEE3_PARTNER" -> Just MetricCpmFEE3Partner
+        "METRIC_CPM_FEE3_USD" -> Just MetricCpmFEE3Usd
+        "METRIC_CPM_FEE4_ADVERTISER" -> Just MetricCpmFEE4Advertiser
+        "METRIC_CPM_FEE4_PARTNER" -> Just MetricCpmFEE4Partner
+        "METRIC_CPM_FEE4_USD" -> Just MetricCpmFEE4Usd
+        "METRIC_CPM_FEE5_ADVERTISER" -> Just MetricCpmFEE5Advertiser
+        "METRIC_CPM_FEE5_PARTNER" -> Just MetricCpmFEE5Partner
+        "METRIC_CPM_FEE5_USD" -> Just MetricCpmFEE5Usd
+        "METRIC_CTR" -> Just MetricCtr
+        "METRIC_DATA_COST_ADVERTISER" -> Just MetricDataCostAdvertiser
+        "METRIC_DATA_COST_PARTNER" -> Just MetricDataCostPartner
+        "METRIC_DATA_COST_USD" -> Just MetricDataCostUsd
+        "METRIC_FEE10_ADVERTISER" -> Just MetricFEE10Advertiser
+        "METRIC_FEE10_PARTNER" -> Just MetricFEE10Partner
+        "METRIC_FEE10_USD" -> Just MetricFEE10Usd
+        "METRIC_FEE11_ADVERTISER" -> Just MetricFEE11Advertiser
+        "METRIC_FEE11_PARTNER" -> Just MetricFEE11Partner
+        "METRIC_FEE11_USD" -> Just MetricFEE11Usd
+        "METRIC_FEE12_ADVERTISER" -> Just MetricFEE12Advertiser
+        "METRIC_FEE12_PARTNER" -> Just MetricFEE12Partner
+        "METRIC_FEE12_USD" -> Just MetricFEE12Usd
+        "METRIC_FEE13_ADVERTISER" -> Just MetricFEE13Advertiser
+        "METRIC_FEE13_PARTNER" -> Just MetricFEE13Partner
+        "METRIC_FEE13_USD" -> Just MetricFEE13Usd
+        "METRIC_FEE14_ADVERTISER" -> Just MetricFEE14Advertiser
+        "METRIC_FEE14_PARTNER" -> Just MetricFEE14Partner
+        "METRIC_FEE14_USD" -> Just MetricFEE14Usd
+        "METRIC_FEE15_ADVERTISER" -> Just MetricFEE15Advertiser
+        "METRIC_FEE15_PARTNER" -> Just MetricFEE15Partner
+        "METRIC_FEE15_USD" -> Just MetricFEE15Usd
+        "METRIC_FEE16_ADVERTISER" -> Just MetricFEE16Advertiser
+        "METRIC_FEE16_PARTNER" -> Just MetricFEE16Partner
+        "METRIC_FEE16_USD" -> Just MetricFEE16Usd
+        "METRIC_FEE17_ADVERTISER" -> Just MetricFEE17Advertiser
+        "METRIC_FEE17_PARTNER" -> Just MetricFEE17Partner
+        "METRIC_FEE17_USD" -> Just MetricFEE17Usd
+        "METRIC_FEE18_ADVERTISER" -> Just MetricFEE18Advertiser
+        "METRIC_FEE18_PARTNER" -> Just MetricFEE18Partner
+        "METRIC_FEE18_USD" -> Just MetricFEE18Usd
+        "METRIC_FEE19_ADVERTISER" -> Just MetricFEE19Advertiser
+        "METRIC_FEE19_PARTNER" -> Just MetricFEE19Partner
+        "METRIC_FEE19_USD" -> Just MetricFEE19Usd
+        "METRIC_FEE20_ADVERTISER" -> Just MetricFEE20Advertiser
+        "METRIC_FEE20_PARTNER" -> Just MetricFEE20Partner
+        "METRIC_FEE20_USD" -> Just MetricFEE20Usd
+        "METRIC_FEE21_ADVERTISER" -> Just MetricFEE21Advertiser
+        "METRIC_FEE21_PARTNER" -> Just MetricFEE21Partner
+        "METRIC_FEE21_USD" -> Just MetricFEE21Usd
+        "METRIC_FEE22_ADVERTISER" -> Just MetricFEE22Advertiser
+        "METRIC_FEE22_PARTNER" -> Just MetricFEE22Partner
+        "METRIC_FEE22_USD" -> Just MetricFEE22Usd
+        "METRIC_FEE2_ADVERTISER" -> Just MetricFEE2Advertiser
+        "METRIC_FEE2_PARTNER" -> Just MetricFEE2Partner
+        "METRIC_FEE2_USD" -> Just MetricFEE2Usd
+        "METRIC_FEE3_ADVERTISER" -> Just MetricFEE3Advertiser
+        "METRIC_FEE3_PARTNER" -> Just MetricFEE3Partner
+        "METRIC_FEE3_USD" -> Just MetricFEE3Usd
+        "METRIC_FEE4_ADVERTISER" -> Just MetricFEE4Advertiser
+        "METRIC_FEE4_PARTNER" -> Just MetricFEE4Partner
+        "METRIC_FEE4_USD" -> Just MetricFEE4Usd
+        "METRIC_FEE5_ADVERTISER" -> Just MetricFEE5Advertiser
+        "METRIC_FEE5_PARTNER" -> Just MetricFEE5Partner
+        "METRIC_FEE5_USD" -> Just MetricFEE5Usd
+        "METRIC_FEE6_ADVERTISER" -> Just MetricFEE6Advertiser
+        "METRIC_FEE6_PARTNER" -> Just MetricFEE6Partner
+        "METRIC_FEE6_USD" -> Just MetricFEE6Usd
+        "METRIC_FEE7_ADVERTISER" -> Just MetricFEE7Advertiser
+        "METRIC_FEE7_PARTNER" -> Just MetricFEE7Partner
+        "METRIC_FEE7_USD" -> Just MetricFEE7Usd
+        "METRIC_FEE8_ADVERTISER" -> Just MetricFEE8Advertiser
+        "METRIC_FEE8_PARTNER" -> Just MetricFEE8Partner
+        "METRIC_FEE8_USD" -> Just MetricFEE8Usd
+        "METRIC_FEE9_ADVERTISER" -> Just MetricFEE9Advertiser
+        "METRIC_FEE9_PARTNER" -> Just MetricFEE9Partner
+        "METRIC_FEE9_USD" -> Just MetricFEE9Usd
+        "METRIC_IMPRESSIONS" -> Just MetricImpressions
+        "METRIC_IMPRESSIONS_TO_CONVERSION_RATE" -> Just MetricImpressionsToConversionRate
+        "METRIC_LAST_CLICKS" -> Just MetricLastClicks
+        "METRIC_LAST_IMPRESSIONS" -> Just MetricLastImpressions
+        "METRIC_MEDIA_COST_ADVERTISER" -> Just MetricMediaCostAdvertiser
+        "METRIC_MEDIA_COST_ECPAPC_ADVERTISER" -> Just MetricMediaCostEcpapcAdvertiser
+        "METRIC_MEDIA_COST_ECPAPC_PARTNER" -> Just MetricMediaCostEcpapcPartner
+        "METRIC_MEDIA_COST_ECPAPC_USD" -> Just MetricMediaCostEcpapcUsd
+        "METRIC_MEDIA_COST_ECPAPV_ADVERTISER" -> Just MetricMediaCostEcpapvAdvertiser
+        "METRIC_MEDIA_COST_ECPAPV_PARTNER" -> Just MetricMediaCostEcpapvPartner
+        "METRIC_MEDIA_COST_ECPAPV_USD" -> Just MetricMediaCostEcpapvUsd
+        "METRIC_MEDIA_COST_ECPA_ADVERTISER" -> Just MetricMediaCostEcpaAdvertiser
+        "METRIC_MEDIA_COST_ECPA_PARTNER" -> Just MetricMediaCostEcpaPartner
+        "METRIC_MEDIA_COST_ECPA_USD" -> Just MetricMediaCostEcpaUsd
+        "METRIC_MEDIA_COST_ECPCV_ADVERTISER" -> Just MetricMediaCostEcpcvAdvertiser
+        "METRIC_MEDIA_COST_ECPCV_PARTNER" -> Just MetricMediaCostEcpcvPartner
+        "METRIC_MEDIA_COST_ECPCV_USD" -> Just MetricMediaCostEcpcvUsd
+        "METRIC_MEDIA_COST_ECPC_ADVERTISER" -> Just MetricMediaCostEcpcAdvertiser
+        "METRIC_MEDIA_COST_ECPC_PARTNER" -> Just MetricMediaCostEcpcPartner
+        "METRIC_MEDIA_COST_ECPC_USD" -> Just MetricMediaCostEcpcUsd
+        "METRIC_MEDIA_COST_ECPM_ADVERTISER" -> Just MetricMediaCostEcpmAdvertiser
+        "METRIC_MEDIA_COST_ECPM_PARTNER" -> Just MetricMediaCostEcpmPartner
+        "METRIC_MEDIA_COST_ECPM_USD" -> Just MetricMediaCostEcpmUsd
+        "METRIC_MEDIA_COST_PARTNER" -> Just MetricMediaCostPartner
+        "METRIC_MEDIA_COST_USD" -> Just MetricMediaCostUsd
+        "METRIC_MEDIA_COST_VIEWABLE_ECPM_ADVERTISER" -> Just MetricMediaCostViewableEcpmAdvertiser
+        "METRIC_MEDIA_COST_VIEWABLE_ECPM_PARTNER" -> Just MetricMediaCostViewableEcpmPartner
+        "METRIC_MEDIA_COST_VIEWABLE_ECPM_USD" -> Just MetricMediaCostViewableEcpmUsd
+        "METRIC_MEDIA_FEE1_ADVERTISER" -> Just MetricMediaFEE1Advertiser
+        "METRIC_MEDIA_FEE1_PARTNER" -> Just MetricMediaFEE1Partner
+        "METRIC_MEDIA_FEE1_USD" -> Just MetricMediaFEE1Usd
+        "METRIC_MEDIA_FEE2_ADVERTISER" -> Just MetricMediaFEE2Advertiser
+        "METRIC_MEDIA_FEE2_PARTNER" -> Just MetricMediaFEE2Partner
+        "METRIC_MEDIA_FEE2_USD" -> Just MetricMediaFEE2Usd
+        "METRIC_MEDIA_FEE3_ADVERTISER" -> Just MetricMediaFEE3Advertiser
+        "METRIC_MEDIA_FEE3_PARTNER" -> Just MetricMediaFEE3Partner
+        "METRIC_MEDIA_FEE3_USD" -> Just MetricMediaFEE3Usd
+        "METRIC_MEDIA_FEE4_ADVERTISER" -> Just MetricMediaFEE4Advertiser
+        "METRIC_MEDIA_FEE4_PARTNER" -> Just MetricMediaFEE4Partner
+        "METRIC_MEDIA_FEE4_USD" -> Just MetricMediaFEE4Usd
+        "METRIC_MEDIA_FEE5_ADVERTISER" -> Just MetricMediaFEE5Advertiser
+        "METRIC_MEDIA_FEE5_PARTNER" -> Just MetricMediaFEE5Partner
+        "METRIC_MEDIA_FEE5_USD" -> Just MetricMediaFEE5Usd
+        "METRIC_PIXEL_LOADS" -> Just MetricPixelLoads
+        "METRIC_PLATFORM_FEE_ADVERTISER" -> Just MetricPlatformFeeAdvertiser
+        "METRIC_PLATFORM_FEE_PARTNER" -> Just MetricPlatformFeePartner
+        "METRIC_PLATFORM_FEE_USD" -> Just MetricPlatformFeeUsd
+        "METRIC_POST_CLICK_DFA_REVENUE" -> Just MetricPostClickDfaRevenue
+        "METRIC_POST_VIEW_DFA_REVENUE" -> Just MetricPostViewDfaRevenue
+        "METRIC_PROFIT_ADVERTISER" -> Just MetricProfitAdvertiser
+        "METRIC_PROFIT_ECPAPC_ADVERTISER" -> Just MetricProfitEcpapcAdvertiser
+        "METRIC_PROFIT_ECPAPC_PARTNER" -> Just MetricProfitEcpapcPartner
+        "METRIC_PROFIT_ECPAPC_USD" -> Just MetricProfitEcpapcUsd
+        "METRIC_PROFIT_ECPAPV_ADVERTISER" -> Just MetricProfitEcpapvAdvertiser
+        "METRIC_PROFIT_ECPAPV_PARTNER" -> Just MetricProfitEcpapvPartner
+        "METRIC_PROFIT_ECPAPV_USD" -> Just MetricProfitEcpapvUsd
+        "METRIC_PROFIT_ECPA_ADVERTISER" -> Just MetricProfitEcpaAdvertiser
+        "METRIC_PROFIT_ECPA_PARTNER" -> Just MetricProfitEcpaPartner
+        "METRIC_PROFIT_ECPA_USD" -> Just MetricProfitEcpaUsd
+        "METRIC_PROFIT_ECPC_ADVERTISER" -> Just MetricProfitEcpcAdvertiser
+        "METRIC_PROFIT_ECPC_PARTNER" -> Just MetricProfitEcpcPartner
+        "METRIC_PROFIT_ECPC_USD" -> Just MetricProfitEcpcUsd
+        "METRIC_PROFIT_ECPM_ADVERTISER" -> Just MetricProfitEcpmAdvertiser
+        "METRIC_PROFIT_ECPM_PARTNER" -> Just MetricProfitEcpmPartner
+        "METRIC_PROFIT_ECPM_USD" -> Just MetricProfitEcpmUsd
+        "METRIC_PROFIT_MARGIN" -> Just MetricProfitMargin
+        "METRIC_PROFIT_PARTNER" -> Just MetricProfitPartner
+        "METRIC_PROFIT_USD" -> Just MetricProfitUsd
+        "METRIC_PROFIT_VIEWABLE_ECPM_ADVERTISER" -> Just MetricProfitViewableEcpmAdvertiser
+        "METRIC_PROFIT_VIEWABLE_ECPM_PARTNER" -> Just MetricProfitViewableEcpmPartner
+        "METRIC_PROFIT_VIEWABLE_ECPM_USD" -> Just MetricProfitViewableEcpmUsd
+        "METRIC_REVENUE_ADVERTISER" -> Just MetricRevenueAdvertiser
+        "METRIC_REVENUE_ECPAPC_ADVERTISER" -> Just MetricRevenueEcpapcAdvertiser
+        "METRIC_REVENUE_ECPAPC_PARTNER" -> Just MetricRevenueEcpapcPartner
+        "METRIC_REVENUE_ECPAPC_USD" -> Just MetricRevenueEcpapcUsd
+        "METRIC_REVENUE_ECPAPV_ADVERTISER" -> Just MetricRevenueEcpapvAdvertiser
+        "METRIC_REVENUE_ECPAPV_PARTNER" -> Just MetricRevenueEcpapvPartner
+        "METRIC_REVENUE_ECPAPV_USD" -> Just MetricRevenueEcpapvUsd
+        "METRIC_REVENUE_ECPA_ADVERTISER" -> Just MetricRevenueEcpaAdvertiser
+        "METRIC_REVENUE_ECPA_PARTNER" -> Just MetricRevenueEcpaPartner
+        "METRIC_REVENUE_ECPA_USD" -> Just MetricRevenueEcpaUsd
+        "METRIC_REVENUE_ECPCV_ADVERTISER" -> Just MetricRevenueEcpcvAdvertiser
+        "METRIC_REVENUE_ECPCV_PARTNER" -> Just MetricRevenueEcpcvPartner
+        "METRIC_REVENUE_ECPCV_USD" -> Just MetricRevenueEcpcvUsd
+        "METRIC_REVENUE_ECPC_ADVERTISER" -> Just MetricRevenueEcpcAdvertiser
+        "METRIC_REVENUE_ECPC_PARTNER" -> Just MetricRevenueEcpcPartner
+        "METRIC_REVENUE_ECPC_USD" -> Just MetricRevenueEcpcUsd
+        "METRIC_REVENUE_ECPM_ADVERTISER" -> Just MetricRevenueEcpmAdvertiser
+        "METRIC_REVENUE_ECPM_PARTNER" -> Just MetricRevenueEcpmPartner
+        "METRIC_REVENUE_ECPM_USD" -> Just MetricRevenueEcpmUsd
+        "METRIC_REVENUE_PARTNER" -> Just MetricRevenuePartner
+        "METRIC_REVENUE_USD" -> Just MetricRevenueUsd
+        "METRIC_REVENUE_VIEWABLE_ECPM_ADVERTISER" -> Just MetricRevenueViewableEcpmAdvertiser
+        "METRIC_REVENUE_VIEWABLE_ECPM_PARTNER" -> Just MetricRevenueViewableEcpmPartner
+        "METRIC_REVENUE_VIEWABLE_ECPM_USD" -> Just MetricRevenueViewableEcpmUsd
+        "METRIC_RICH_MEDIA_VIDEO_COMPLETIONS" -> Just MetricRichMediaVideoCompletions
+        "METRIC_RICH_MEDIA_VIDEO_FIRST_QUARTILE_COMPLETES" -> Just MetricRichMediaVideoFirstQuartileCompletes
+        "METRIC_RICH_MEDIA_VIDEO_FULL_SCREENS" -> Just MetricRichMediaVideoFullScreens
+        "METRIC_RICH_MEDIA_VIDEO_MIDPOINTS" -> Just MetricRichMediaVideoMidpoints
+        "METRIC_RICH_MEDIA_VIDEO_MUTES" -> Just MetricRichMediaVideoMutes
+        "METRIC_RICH_MEDIA_VIDEO_PAUSES" -> Just MetricRichMediaVideoPauses
+        "METRIC_RICH_MEDIA_VIDEO_PLAYS" -> Just MetricRichMediaVideoPlays
+        "METRIC_RICH_MEDIA_VIDEO_SKIPS" -> Just MetricRichMediaVideoSkips
+        "METRIC_RICH_MEDIA_VIDEO_THIRD_QUARTILE_COMPLETES" -> Just MetricRichMediaVideoThirdQuartileCompletes
+        "METRIC_TEA_TRUEVIEW_IMPRESSIONS" -> Just MetricTeaTrueviewImpressions
+        "METRIC_TEA_TRUEVIEW_UNIQUE_COOKIES" -> Just MetricTeaTrueviewUniqueCookies
+        "METRIC_TEA_TRUEVIEW_UNIQUE_PEOPLE" -> Just MetricTeaTrueviewUniquePeople
+        "METRIC_TOTAL_CONVERSIONS" -> Just MetricTotalConversions
+        "METRIC_TOTAL_MEDIA_COST_ADVERTISER" -> Just MetricTotalMediaCostAdvertiser
+        "METRIC_TOTAL_MEDIA_COST_ECPAPC_ADVERTISER" -> Just MetricTotalMediaCostEcpapcAdvertiser
+        "METRIC_TOTAL_MEDIA_COST_ECPAPC_PARTNER" -> Just MetricTotalMediaCostEcpapcPartner
+        "METRIC_TOTAL_MEDIA_COST_ECPAPC_USD" -> Just MetricTotalMediaCostEcpapcUsd
+        "METRIC_TOTAL_MEDIA_COST_ECPAPV_ADVERTISER" -> Just MetricTotalMediaCostEcpapvAdvertiser
+        "METRIC_TOTAL_MEDIA_COST_ECPAPV_PARTNER" -> Just MetricTotalMediaCostEcpapvPartner
+        "METRIC_TOTAL_MEDIA_COST_ECPAPV_USD" -> Just MetricTotalMediaCostEcpapvUsd
+        "METRIC_TOTAL_MEDIA_COST_ECPA_ADVERTISER" -> Just MetricTotalMediaCostEcpaAdvertiser
+        "METRIC_TOTAL_MEDIA_COST_ECPA_PARTNER" -> Just MetricTotalMediaCostEcpaPartner
+        "METRIC_TOTAL_MEDIA_COST_ECPA_USD" -> Just MetricTotalMediaCostEcpaUsd
+        "METRIC_TOTAL_MEDIA_COST_ECPCV_ADVERTISER" -> Just MetricTotalMediaCostEcpcvAdvertiser
+        "METRIC_TOTAL_MEDIA_COST_ECPCV_PARTNER" -> Just MetricTotalMediaCostEcpcvPartner
+        "METRIC_TOTAL_MEDIA_COST_ECPCV_USD" -> Just MetricTotalMediaCostEcpcvUsd
+        "METRIC_TOTAL_MEDIA_COST_ECPC_ADVERTISER" -> Just MetricTotalMediaCostEcpcAdvertiser
+        "METRIC_TOTAL_MEDIA_COST_ECPC_PARTNER" -> Just MetricTotalMediaCostEcpcPartner
+        "METRIC_TOTAL_MEDIA_COST_ECPC_USD" -> Just MetricTotalMediaCostEcpcUsd
+        "METRIC_TOTAL_MEDIA_COST_ECPM_ADVERTISER" -> Just MetricTotalMediaCostEcpmAdvertiser
+        "METRIC_TOTAL_MEDIA_COST_ECPM_PARTNER" -> Just MetricTotalMediaCostEcpmPartner
+        "METRIC_TOTAL_MEDIA_COST_ECPM_USD" -> Just MetricTotalMediaCostEcpmUsd
+        "METRIC_TOTAL_MEDIA_COST_PARTNER" -> Just MetricTotalMediaCostPartner
+        "METRIC_TOTAL_MEDIA_COST_USD" -> Just MetricTotalMediaCostUsd
+        "METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_ADVERTISER" -> Just MetricTotalMediaCostViewableEcpmAdvertiser
+        "METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_PARTNER" -> Just MetricTotalMediaCostViewableEcpmPartner
+        "METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_USD" -> Just MetricTotalMediaCostViewableEcpmUsd
+        "METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_ADVERTISER" -> Just MetricTrueviewConversionCostManyPerViewAdvertiser
+        "METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_PARTNER" -> Just MetricTrueviewConversionCostManyPerViewPartner
+        "METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_USD" -> Just MetricTrueviewConversionCostManyPerViewUsd
+        "METRIC_TRUEVIEW_CONVERSION_COST_ONE_PER_VIEW_ADVERTISER" -> Just MetricTrueviewConversionCostOnePerViewAdvertiser
+        "METRIC_TRUEVIEW_CONVERSION_COST_ONE_PER_VIEW_PARTNER" -> Just MetricTrueviewConversionCostOnePerViewPartner
+        "METRIC_TRUEVIEW_CONVERSION_COST_ONE_PER_VIEW_USD" -> Just MetricTrueviewConversionCostOnePerViewUsd
+        "METRIC_TRUEVIEW_CONVERSION_MANY_PER_VIEW" -> Just MetricTrueviewConversionManyPerView
+        "METRIC_TRUEVIEW_CONVERSION_ONE_PER_VIEW" -> Just MetricTrueviewConversionOnePerView
+        "METRIC_TRUEVIEW_CONVERSION_RATE_ONE_PER_VIEW" -> Just MetricTrueviewConversionRateOnePerView
+        "METRIC_TRUEVIEW_CONVERSION_VALUE_MANY_PER_VIEW_ADVERTISER" -> Just MetricTrueviewConversionValueManyPerViewAdvertiser
+        "METRIC_TRUEVIEW_CONVERSION_VALUE_MANY_PER_VIEW_PARTNER" -> Just MetricTrueviewConversionValueManyPerViewPartner
+        "METRIC_TRUEVIEW_CONVERSION_VALUE_MANY_PER_VIEW_USD" -> Just MetricTrueviewConversionValueManyPerViewUsd
+        "METRIC_TRUEVIEW_CONVERSION_VALUE_ONE_PER_VIEW_ADVERTISER" -> Just MetricTrueviewConversionValueOnePerViewAdvertiser
+        "METRIC_TRUEVIEW_CONVERSION_VALUE_ONE_PER_VIEW_PARTNER" -> Just MetricTrueviewConversionValueOnePerViewPartner
+        "METRIC_TRUEVIEW_CONVERSION_VALUE_ONE_PER_VIEW_USD" -> Just MetricTrueviewConversionValueOnePerViewUsd
+        "METRIC_TRUEVIEW_COST_CONVERSION_MANY_PER_VIEW_RATIO" -> Just MetricTrueviewCostConversionManyPerViewRatio
+        "METRIC_TRUEVIEW_COST_CONVERSION_ONE_PER_VIEW_RATIO" -> Just MetricTrueviewCostConversionOnePerViewRatio
+        "METRIC_TRUEVIEW_CPV_ADVERTISER" -> Just MetricTrueviewCpvAdvertiser
+        "METRIC_TRUEVIEW_CPV_PARTNER" -> Just MetricTrueviewCpvPartner
+        "METRIC_TRUEVIEW_CPV_USD" -> Just MetricTrueviewCpvUsd
+        "METRIC_TRUEVIEW_EARNED_LIKES" -> Just MetricTrueviewEarnedLikes
+        "METRIC_TRUEVIEW_EARNED_PLAYLIST_ADDITIONS" -> Just MetricTrueviewEarnedPlayListAdditions
+        "METRIC_TRUEVIEW_EARNED_SHARES" -> Just MetricTrueviewEarnedShares
+        "METRIC_TRUEVIEW_EARNED_SUBSCRIBERS" -> Just MetricTrueviewEarnedSubscribers
+        "METRIC_TRUEVIEW_EARNED_VIEWS" -> Just MetricTrueviewEarnedViews
+        "METRIC_TRUEVIEW_IMPRESSION_SHARE" -> Just MetricTrueviewImpressionShare
+        "METRIC_TRUEVIEW_LOST_IS_BUDGET" -> Just MetricTrueviewLostIsBudget
+        "METRIC_TRUEVIEW_LOST_IS_RANK" -> Just MetricTrueviewLostIsRank
+        "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUE" -> Just MetricTrueviewTotalConversionValue
+        "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_ADVERTISER" -> Just MetricTrueviewTotalConversionValuesAdvertiser
+        "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_PARTNER" -> Just MetricTrueviewTotalConversionValuesPartner
+        "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_USD" -> Just MetricTrueviewTotalConversionValuesUsd
+        "METRIC_TRUEVIEW_UNIQUE_VIEWERS" -> Just MetricTrueviewUniqueViewers
+        "METRIC_TRUEVIEW_VALUE_CONVERSION_MANY_PER_VIEW_RATIO" -> Just MetricTrueviewValueConversionManyPerViewRatio
+        "METRIC_TRUEVIEW_VALUE_CONVERSION_ONE_PER_VIEW_RATIO" -> Just MetricTrueviewValueConversionOnePerViewRatio
+        "METRIC_TRUEVIEW_VIEWS" -> Just MetricTrueviewViews
+        "METRIC_TRUEVIEW_VIEW_RATE" -> Just MetricTrueviewViewRate
+        "METRIC_TRUEVIEW_VIEW_THROUGH_CONVERSION" -> Just MetricTrueviewViewThroughConversion
+        "METRIC_UNIQUE_VISITORS_COOKIES" -> Just MetricUniqueVisitorsCookies
+        "METRIC_UNKNOWN" -> Just MetricUnknown
+        "METRIC_VIDEO_COMPANION_CLICKS" -> Just MetricVideoCompanionClicks
+        "METRIC_VIDEO_COMPANION_IMPRESSIONS" -> Just MetricVideoCompanionImpressions
+        "METRIC_VIDEO_COMPLETION_RATE" -> Just MetricVideoCompletionRate
+        _ -> Nothing
+
+instance ToText ParametersMetricsItem where
+    toText = \case
+        MetricBidRequests -> "METRIC_BID_REQUESTS"
+        MetricBillableCostAdvertiser -> "METRIC_BILLABLE_COST_ADVERTISER"
+        MetricBillableCostPartner -> "METRIC_BILLABLE_COST_PARTNER"
+        MetricBillableCostUsd -> "METRIC_BILLABLE_COST_USD"
+        MetricClicks -> "METRIC_CLICKS"
+        MetricClickToPostClickConversionRate -> "METRIC_CLICK_TO_POST_CLICK_CONVERSION_RATE"
+        MetricComscoreVceAudienceAvgFrequency -> "METRIC_COMSCORE_VCE_AUDIENCE_AVG_FREQUENCY"
+        MetricComscoreVceAudienceImpressions -> "METRIC_COMSCORE_VCE_AUDIENCE_IMPRESSIONS"
+        MetricComscoreVceAudienceImpressionsShare -> "METRIC_COMSCORE_VCE_AUDIENCE_IMPRESSIONS_SHARE"
+        MetricComscoreVceAudienceReachPct -> "METRIC_COMSCORE_VCE_AUDIENCE_REACH_PCT"
+        MetricComscoreVceAudienceSharePct -> "METRIC_COMSCORE_VCE_AUDIENCE_SHARE_PCT"
+        MetricComscoreVceGrossRatingPoints -> "METRIC_COMSCORE_VCE_GROSS_RATING_POINTS"
+        MetricComscoreVcePopulation -> "METRIC_COMSCORE_VCE_POPULATION"
+        MetricComscoreVceUniqueAudience -> "METRIC_COMSCORE_VCE_UNIQUE_AUDIENCE"
+        MetricConversionsPerMille -> "METRIC_CONVERSIONS_PER_MILLE"
+        MetricCpmFEE1Advertiser -> "METRIC_CPM_FEE1_ADVERTISER"
+        MetricCpmFEE1Partner -> "METRIC_CPM_FEE1_PARTNER"
+        MetricCpmFEE1Usd -> "METRIC_CPM_FEE1_USD"
+        MetricCpmFEE2Advertiser -> "METRIC_CPM_FEE2_ADVERTISER"
+        MetricCpmFEE2Partner -> "METRIC_CPM_FEE2_PARTNER"
+        MetricCpmFEE2Usd -> "METRIC_CPM_FEE2_USD"
+        MetricCpmFEE3Advertiser -> "METRIC_CPM_FEE3_ADVERTISER"
+        MetricCpmFEE3Partner -> "METRIC_CPM_FEE3_PARTNER"
+        MetricCpmFEE3Usd -> "METRIC_CPM_FEE3_USD"
+        MetricCpmFEE4Advertiser -> "METRIC_CPM_FEE4_ADVERTISER"
+        MetricCpmFEE4Partner -> "METRIC_CPM_FEE4_PARTNER"
+        MetricCpmFEE4Usd -> "METRIC_CPM_FEE4_USD"
+        MetricCpmFEE5Advertiser -> "METRIC_CPM_FEE5_ADVERTISER"
+        MetricCpmFEE5Partner -> "METRIC_CPM_FEE5_PARTNER"
+        MetricCpmFEE5Usd -> "METRIC_CPM_FEE5_USD"
+        MetricCtr -> "METRIC_CTR"
+        MetricDataCostAdvertiser -> "METRIC_DATA_COST_ADVERTISER"
+        MetricDataCostPartner -> "METRIC_DATA_COST_PARTNER"
+        MetricDataCostUsd -> "METRIC_DATA_COST_USD"
+        MetricFEE10Advertiser -> "METRIC_FEE10_ADVERTISER"
+        MetricFEE10Partner -> "METRIC_FEE10_PARTNER"
+        MetricFEE10Usd -> "METRIC_FEE10_USD"
+        MetricFEE11Advertiser -> "METRIC_FEE11_ADVERTISER"
+        MetricFEE11Partner -> "METRIC_FEE11_PARTNER"
+        MetricFEE11Usd -> "METRIC_FEE11_USD"
+        MetricFEE12Advertiser -> "METRIC_FEE12_ADVERTISER"
+        MetricFEE12Partner -> "METRIC_FEE12_PARTNER"
+        MetricFEE12Usd -> "METRIC_FEE12_USD"
+        MetricFEE13Advertiser -> "METRIC_FEE13_ADVERTISER"
+        MetricFEE13Partner -> "METRIC_FEE13_PARTNER"
+        MetricFEE13Usd -> "METRIC_FEE13_USD"
+        MetricFEE14Advertiser -> "METRIC_FEE14_ADVERTISER"
+        MetricFEE14Partner -> "METRIC_FEE14_PARTNER"
+        MetricFEE14Usd -> "METRIC_FEE14_USD"
+        MetricFEE15Advertiser -> "METRIC_FEE15_ADVERTISER"
+        MetricFEE15Partner -> "METRIC_FEE15_PARTNER"
+        MetricFEE15Usd -> "METRIC_FEE15_USD"
+        MetricFEE16Advertiser -> "METRIC_FEE16_ADVERTISER"
+        MetricFEE16Partner -> "METRIC_FEE16_PARTNER"
+        MetricFEE16Usd -> "METRIC_FEE16_USD"
+        MetricFEE17Advertiser -> "METRIC_FEE17_ADVERTISER"
+        MetricFEE17Partner -> "METRIC_FEE17_PARTNER"
+        MetricFEE17Usd -> "METRIC_FEE17_USD"
+        MetricFEE18Advertiser -> "METRIC_FEE18_ADVERTISER"
+        MetricFEE18Partner -> "METRIC_FEE18_PARTNER"
+        MetricFEE18Usd -> "METRIC_FEE18_USD"
+        MetricFEE19Advertiser -> "METRIC_FEE19_ADVERTISER"
+        MetricFEE19Partner -> "METRIC_FEE19_PARTNER"
+        MetricFEE19Usd -> "METRIC_FEE19_USD"
+        MetricFEE20Advertiser -> "METRIC_FEE20_ADVERTISER"
+        MetricFEE20Partner -> "METRIC_FEE20_PARTNER"
+        MetricFEE20Usd -> "METRIC_FEE20_USD"
+        MetricFEE21Advertiser -> "METRIC_FEE21_ADVERTISER"
+        MetricFEE21Partner -> "METRIC_FEE21_PARTNER"
+        MetricFEE21Usd -> "METRIC_FEE21_USD"
+        MetricFEE22Advertiser -> "METRIC_FEE22_ADVERTISER"
+        MetricFEE22Partner -> "METRIC_FEE22_PARTNER"
+        MetricFEE22Usd -> "METRIC_FEE22_USD"
+        MetricFEE2Advertiser -> "METRIC_FEE2_ADVERTISER"
+        MetricFEE2Partner -> "METRIC_FEE2_PARTNER"
+        MetricFEE2Usd -> "METRIC_FEE2_USD"
+        MetricFEE3Advertiser -> "METRIC_FEE3_ADVERTISER"
+        MetricFEE3Partner -> "METRIC_FEE3_PARTNER"
+        MetricFEE3Usd -> "METRIC_FEE3_USD"
+        MetricFEE4Advertiser -> "METRIC_FEE4_ADVERTISER"
+        MetricFEE4Partner -> "METRIC_FEE4_PARTNER"
+        MetricFEE4Usd -> "METRIC_FEE4_USD"
+        MetricFEE5Advertiser -> "METRIC_FEE5_ADVERTISER"
+        MetricFEE5Partner -> "METRIC_FEE5_PARTNER"
+        MetricFEE5Usd -> "METRIC_FEE5_USD"
+        MetricFEE6Advertiser -> "METRIC_FEE6_ADVERTISER"
+        MetricFEE6Partner -> "METRIC_FEE6_PARTNER"
+        MetricFEE6Usd -> "METRIC_FEE6_USD"
+        MetricFEE7Advertiser -> "METRIC_FEE7_ADVERTISER"
+        MetricFEE7Partner -> "METRIC_FEE7_PARTNER"
+        MetricFEE7Usd -> "METRIC_FEE7_USD"
+        MetricFEE8Advertiser -> "METRIC_FEE8_ADVERTISER"
+        MetricFEE8Partner -> "METRIC_FEE8_PARTNER"
+        MetricFEE8Usd -> "METRIC_FEE8_USD"
+        MetricFEE9Advertiser -> "METRIC_FEE9_ADVERTISER"
+        MetricFEE9Partner -> "METRIC_FEE9_PARTNER"
+        MetricFEE9Usd -> "METRIC_FEE9_USD"
+        MetricImpressions -> "METRIC_IMPRESSIONS"
+        MetricImpressionsToConversionRate -> "METRIC_IMPRESSIONS_TO_CONVERSION_RATE"
+        MetricLastClicks -> "METRIC_LAST_CLICKS"
+        MetricLastImpressions -> "METRIC_LAST_IMPRESSIONS"
+        MetricMediaCostAdvertiser -> "METRIC_MEDIA_COST_ADVERTISER"
+        MetricMediaCostEcpapcAdvertiser -> "METRIC_MEDIA_COST_ECPAPC_ADVERTISER"
+        MetricMediaCostEcpapcPartner -> "METRIC_MEDIA_COST_ECPAPC_PARTNER"
+        MetricMediaCostEcpapcUsd -> "METRIC_MEDIA_COST_ECPAPC_USD"
+        MetricMediaCostEcpapvAdvertiser -> "METRIC_MEDIA_COST_ECPAPV_ADVERTISER"
+        MetricMediaCostEcpapvPartner -> "METRIC_MEDIA_COST_ECPAPV_PARTNER"
+        MetricMediaCostEcpapvUsd -> "METRIC_MEDIA_COST_ECPAPV_USD"
+        MetricMediaCostEcpaAdvertiser -> "METRIC_MEDIA_COST_ECPA_ADVERTISER"
+        MetricMediaCostEcpaPartner -> "METRIC_MEDIA_COST_ECPA_PARTNER"
+        MetricMediaCostEcpaUsd -> "METRIC_MEDIA_COST_ECPA_USD"
+        MetricMediaCostEcpcvAdvertiser -> "METRIC_MEDIA_COST_ECPCV_ADVERTISER"
+        MetricMediaCostEcpcvPartner -> "METRIC_MEDIA_COST_ECPCV_PARTNER"
+        MetricMediaCostEcpcvUsd -> "METRIC_MEDIA_COST_ECPCV_USD"
+        MetricMediaCostEcpcAdvertiser -> "METRIC_MEDIA_COST_ECPC_ADVERTISER"
+        MetricMediaCostEcpcPartner -> "METRIC_MEDIA_COST_ECPC_PARTNER"
+        MetricMediaCostEcpcUsd -> "METRIC_MEDIA_COST_ECPC_USD"
+        MetricMediaCostEcpmAdvertiser -> "METRIC_MEDIA_COST_ECPM_ADVERTISER"
+        MetricMediaCostEcpmPartner -> "METRIC_MEDIA_COST_ECPM_PARTNER"
+        MetricMediaCostEcpmUsd -> "METRIC_MEDIA_COST_ECPM_USD"
+        MetricMediaCostPartner -> "METRIC_MEDIA_COST_PARTNER"
+        MetricMediaCostUsd -> "METRIC_MEDIA_COST_USD"
+        MetricMediaCostViewableEcpmAdvertiser -> "METRIC_MEDIA_COST_VIEWABLE_ECPM_ADVERTISER"
+        MetricMediaCostViewableEcpmPartner -> "METRIC_MEDIA_COST_VIEWABLE_ECPM_PARTNER"
+        MetricMediaCostViewableEcpmUsd -> "METRIC_MEDIA_COST_VIEWABLE_ECPM_USD"
+        MetricMediaFEE1Advertiser -> "METRIC_MEDIA_FEE1_ADVERTISER"
+        MetricMediaFEE1Partner -> "METRIC_MEDIA_FEE1_PARTNER"
+        MetricMediaFEE1Usd -> "METRIC_MEDIA_FEE1_USD"
+        MetricMediaFEE2Advertiser -> "METRIC_MEDIA_FEE2_ADVERTISER"
+        MetricMediaFEE2Partner -> "METRIC_MEDIA_FEE2_PARTNER"
+        MetricMediaFEE2Usd -> "METRIC_MEDIA_FEE2_USD"
+        MetricMediaFEE3Advertiser -> "METRIC_MEDIA_FEE3_ADVERTISER"
+        MetricMediaFEE3Partner -> "METRIC_MEDIA_FEE3_PARTNER"
+        MetricMediaFEE3Usd -> "METRIC_MEDIA_FEE3_USD"
+        MetricMediaFEE4Advertiser -> "METRIC_MEDIA_FEE4_ADVERTISER"
+        MetricMediaFEE4Partner -> "METRIC_MEDIA_FEE4_PARTNER"
+        MetricMediaFEE4Usd -> "METRIC_MEDIA_FEE4_USD"
+        MetricMediaFEE5Advertiser -> "METRIC_MEDIA_FEE5_ADVERTISER"
+        MetricMediaFEE5Partner -> "METRIC_MEDIA_FEE5_PARTNER"
+        MetricMediaFEE5Usd -> "METRIC_MEDIA_FEE5_USD"
+        MetricPixelLoads -> "METRIC_PIXEL_LOADS"
+        MetricPlatformFeeAdvertiser -> "METRIC_PLATFORM_FEE_ADVERTISER"
+        MetricPlatformFeePartner -> "METRIC_PLATFORM_FEE_PARTNER"
+        MetricPlatformFeeUsd -> "METRIC_PLATFORM_FEE_USD"
+        MetricPostClickDfaRevenue -> "METRIC_POST_CLICK_DFA_REVENUE"
+        MetricPostViewDfaRevenue -> "METRIC_POST_VIEW_DFA_REVENUE"
+        MetricProfitAdvertiser -> "METRIC_PROFIT_ADVERTISER"
+        MetricProfitEcpapcAdvertiser -> "METRIC_PROFIT_ECPAPC_ADVERTISER"
+        MetricProfitEcpapcPartner -> "METRIC_PROFIT_ECPAPC_PARTNER"
+        MetricProfitEcpapcUsd -> "METRIC_PROFIT_ECPAPC_USD"
+        MetricProfitEcpapvAdvertiser -> "METRIC_PROFIT_ECPAPV_ADVERTISER"
+        MetricProfitEcpapvPartner -> "METRIC_PROFIT_ECPAPV_PARTNER"
+        MetricProfitEcpapvUsd -> "METRIC_PROFIT_ECPAPV_USD"
+        MetricProfitEcpaAdvertiser -> "METRIC_PROFIT_ECPA_ADVERTISER"
+        MetricProfitEcpaPartner -> "METRIC_PROFIT_ECPA_PARTNER"
+        MetricProfitEcpaUsd -> "METRIC_PROFIT_ECPA_USD"
+        MetricProfitEcpcAdvertiser -> "METRIC_PROFIT_ECPC_ADVERTISER"
+        MetricProfitEcpcPartner -> "METRIC_PROFIT_ECPC_PARTNER"
+        MetricProfitEcpcUsd -> "METRIC_PROFIT_ECPC_USD"
+        MetricProfitEcpmAdvertiser -> "METRIC_PROFIT_ECPM_ADVERTISER"
+        MetricProfitEcpmPartner -> "METRIC_PROFIT_ECPM_PARTNER"
+        MetricProfitEcpmUsd -> "METRIC_PROFIT_ECPM_USD"
+        MetricProfitMargin -> "METRIC_PROFIT_MARGIN"
+        MetricProfitPartner -> "METRIC_PROFIT_PARTNER"
+        MetricProfitUsd -> "METRIC_PROFIT_USD"
+        MetricProfitViewableEcpmAdvertiser -> "METRIC_PROFIT_VIEWABLE_ECPM_ADVERTISER"
+        MetricProfitViewableEcpmPartner -> "METRIC_PROFIT_VIEWABLE_ECPM_PARTNER"
+        MetricProfitViewableEcpmUsd -> "METRIC_PROFIT_VIEWABLE_ECPM_USD"
+        MetricRevenueAdvertiser -> "METRIC_REVENUE_ADVERTISER"
+        MetricRevenueEcpapcAdvertiser -> "METRIC_REVENUE_ECPAPC_ADVERTISER"
+        MetricRevenueEcpapcPartner -> "METRIC_REVENUE_ECPAPC_PARTNER"
+        MetricRevenueEcpapcUsd -> "METRIC_REVENUE_ECPAPC_USD"
+        MetricRevenueEcpapvAdvertiser -> "METRIC_REVENUE_ECPAPV_ADVERTISER"
+        MetricRevenueEcpapvPartner -> "METRIC_REVENUE_ECPAPV_PARTNER"
+        MetricRevenueEcpapvUsd -> "METRIC_REVENUE_ECPAPV_USD"
+        MetricRevenueEcpaAdvertiser -> "METRIC_REVENUE_ECPA_ADVERTISER"
+        MetricRevenueEcpaPartner -> "METRIC_REVENUE_ECPA_PARTNER"
+        MetricRevenueEcpaUsd -> "METRIC_REVENUE_ECPA_USD"
+        MetricRevenueEcpcvAdvertiser -> "METRIC_REVENUE_ECPCV_ADVERTISER"
+        MetricRevenueEcpcvPartner -> "METRIC_REVENUE_ECPCV_PARTNER"
+        MetricRevenueEcpcvUsd -> "METRIC_REVENUE_ECPCV_USD"
+        MetricRevenueEcpcAdvertiser -> "METRIC_REVENUE_ECPC_ADVERTISER"
+        MetricRevenueEcpcPartner -> "METRIC_REVENUE_ECPC_PARTNER"
+        MetricRevenueEcpcUsd -> "METRIC_REVENUE_ECPC_USD"
+        MetricRevenueEcpmAdvertiser -> "METRIC_REVENUE_ECPM_ADVERTISER"
+        MetricRevenueEcpmPartner -> "METRIC_REVENUE_ECPM_PARTNER"
+        MetricRevenueEcpmUsd -> "METRIC_REVENUE_ECPM_USD"
+        MetricRevenuePartner -> "METRIC_REVENUE_PARTNER"
+        MetricRevenueUsd -> "METRIC_REVENUE_USD"
+        MetricRevenueViewableEcpmAdvertiser -> "METRIC_REVENUE_VIEWABLE_ECPM_ADVERTISER"
+        MetricRevenueViewableEcpmPartner -> "METRIC_REVENUE_VIEWABLE_ECPM_PARTNER"
+        MetricRevenueViewableEcpmUsd -> "METRIC_REVENUE_VIEWABLE_ECPM_USD"
+        MetricRichMediaVideoCompletions -> "METRIC_RICH_MEDIA_VIDEO_COMPLETIONS"
+        MetricRichMediaVideoFirstQuartileCompletes -> "METRIC_RICH_MEDIA_VIDEO_FIRST_QUARTILE_COMPLETES"
+        MetricRichMediaVideoFullScreens -> "METRIC_RICH_MEDIA_VIDEO_FULL_SCREENS"
+        MetricRichMediaVideoMidpoints -> "METRIC_RICH_MEDIA_VIDEO_MIDPOINTS"
+        MetricRichMediaVideoMutes -> "METRIC_RICH_MEDIA_VIDEO_MUTES"
+        MetricRichMediaVideoPauses -> "METRIC_RICH_MEDIA_VIDEO_PAUSES"
+        MetricRichMediaVideoPlays -> "METRIC_RICH_MEDIA_VIDEO_PLAYS"
+        MetricRichMediaVideoSkips -> "METRIC_RICH_MEDIA_VIDEO_SKIPS"
+        MetricRichMediaVideoThirdQuartileCompletes -> "METRIC_RICH_MEDIA_VIDEO_THIRD_QUARTILE_COMPLETES"
+        MetricTeaTrueviewImpressions -> "METRIC_TEA_TRUEVIEW_IMPRESSIONS"
+        MetricTeaTrueviewUniqueCookies -> "METRIC_TEA_TRUEVIEW_UNIQUE_COOKIES"
+        MetricTeaTrueviewUniquePeople -> "METRIC_TEA_TRUEVIEW_UNIQUE_PEOPLE"
+        MetricTotalConversions -> "METRIC_TOTAL_CONVERSIONS"
+        MetricTotalMediaCostAdvertiser -> "METRIC_TOTAL_MEDIA_COST_ADVERTISER"
+        MetricTotalMediaCostEcpapcAdvertiser -> "METRIC_TOTAL_MEDIA_COST_ECPAPC_ADVERTISER"
+        MetricTotalMediaCostEcpapcPartner -> "METRIC_TOTAL_MEDIA_COST_ECPAPC_PARTNER"
+        MetricTotalMediaCostEcpapcUsd -> "METRIC_TOTAL_MEDIA_COST_ECPAPC_USD"
+        MetricTotalMediaCostEcpapvAdvertiser -> "METRIC_TOTAL_MEDIA_COST_ECPAPV_ADVERTISER"
+        MetricTotalMediaCostEcpapvPartner -> "METRIC_TOTAL_MEDIA_COST_ECPAPV_PARTNER"
+        MetricTotalMediaCostEcpapvUsd -> "METRIC_TOTAL_MEDIA_COST_ECPAPV_USD"
+        MetricTotalMediaCostEcpaAdvertiser -> "METRIC_TOTAL_MEDIA_COST_ECPA_ADVERTISER"
+        MetricTotalMediaCostEcpaPartner -> "METRIC_TOTAL_MEDIA_COST_ECPA_PARTNER"
+        MetricTotalMediaCostEcpaUsd -> "METRIC_TOTAL_MEDIA_COST_ECPA_USD"
+        MetricTotalMediaCostEcpcvAdvertiser -> "METRIC_TOTAL_MEDIA_COST_ECPCV_ADVERTISER"
+        MetricTotalMediaCostEcpcvPartner -> "METRIC_TOTAL_MEDIA_COST_ECPCV_PARTNER"
+        MetricTotalMediaCostEcpcvUsd -> "METRIC_TOTAL_MEDIA_COST_ECPCV_USD"
+        MetricTotalMediaCostEcpcAdvertiser -> "METRIC_TOTAL_MEDIA_COST_ECPC_ADVERTISER"
+        MetricTotalMediaCostEcpcPartner -> "METRIC_TOTAL_MEDIA_COST_ECPC_PARTNER"
+        MetricTotalMediaCostEcpcUsd -> "METRIC_TOTAL_MEDIA_COST_ECPC_USD"
+        MetricTotalMediaCostEcpmAdvertiser -> "METRIC_TOTAL_MEDIA_COST_ECPM_ADVERTISER"
+        MetricTotalMediaCostEcpmPartner -> "METRIC_TOTAL_MEDIA_COST_ECPM_PARTNER"
+        MetricTotalMediaCostEcpmUsd -> "METRIC_TOTAL_MEDIA_COST_ECPM_USD"
+        MetricTotalMediaCostPartner -> "METRIC_TOTAL_MEDIA_COST_PARTNER"
+        MetricTotalMediaCostUsd -> "METRIC_TOTAL_MEDIA_COST_USD"
+        MetricTotalMediaCostViewableEcpmAdvertiser -> "METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_ADVERTISER"
+        MetricTotalMediaCostViewableEcpmPartner -> "METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_PARTNER"
+        MetricTotalMediaCostViewableEcpmUsd -> "METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_USD"
+        MetricTrueviewConversionCostManyPerViewAdvertiser -> "METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_ADVERTISER"
+        MetricTrueviewConversionCostManyPerViewPartner -> "METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_PARTNER"
+        MetricTrueviewConversionCostManyPerViewUsd -> "METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_USD"
+        MetricTrueviewConversionCostOnePerViewAdvertiser -> "METRIC_TRUEVIEW_CONVERSION_COST_ONE_PER_VIEW_ADVERTISER"
+        MetricTrueviewConversionCostOnePerViewPartner -> "METRIC_TRUEVIEW_CONVERSION_COST_ONE_PER_VIEW_PARTNER"
+        MetricTrueviewConversionCostOnePerViewUsd -> "METRIC_TRUEVIEW_CONVERSION_COST_ONE_PER_VIEW_USD"
+        MetricTrueviewConversionManyPerView -> "METRIC_TRUEVIEW_CONVERSION_MANY_PER_VIEW"
+        MetricTrueviewConversionOnePerView -> "METRIC_TRUEVIEW_CONVERSION_ONE_PER_VIEW"
+        MetricTrueviewConversionRateOnePerView -> "METRIC_TRUEVIEW_CONVERSION_RATE_ONE_PER_VIEW"
+        MetricTrueviewConversionValueManyPerViewAdvertiser -> "METRIC_TRUEVIEW_CONVERSION_VALUE_MANY_PER_VIEW_ADVERTISER"
+        MetricTrueviewConversionValueManyPerViewPartner -> "METRIC_TRUEVIEW_CONVERSION_VALUE_MANY_PER_VIEW_PARTNER"
+        MetricTrueviewConversionValueManyPerViewUsd -> "METRIC_TRUEVIEW_CONVERSION_VALUE_MANY_PER_VIEW_USD"
+        MetricTrueviewConversionValueOnePerViewAdvertiser -> "METRIC_TRUEVIEW_CONVERSION_VALUE_ONE_PER_VIEW_ADVERTISER"
+        MetricTrueviewConversionValueOnePerViewPartner -> "METRIC_TRUEVIEW_CONVERSION_VALUE_ONE_PER_VIEW_PARTNER"
+        MetricTrueviewConversionValueOnePerViewUsd -> "METRIC_TRUEVIEW_CONVERSION_VALUE_ONE_PER_VIEW_USD"
+        MetricTrueviewCostConversionManyPerViewRatio -> "METRIC_TRUEVIEW_COST_CONVERSION_MANY_PER_VIEW_RATIO"
+        MetricTrueviewCostConversionOnePerViewRatio -> "METRIC_TRUEVIEW_COST_CONVERSION_ONE_PER_VIEW_RATIO"
+        MetricTrueviewCpvAdvertiser -> "METRIC_TRUEVIEW_CPV_ADVERTISER"
+        MetricTrueviewCpvPartner -> "METRIC_TRUEVIEW_CPV_PARTNER"
+        MetricTrueviewCpvUsd -> "METRIC_TRUEVIEW_CPV_USD"
+        MetricTrueviewEarnedLikes -> "METRIC_TRUEVIEW_EARNED_LIKES"
+        MetricTrueviewEarnedPlayListAdditions -> "METRIC_TRUEVIEW_EARNED_PLAYLIST_ADDITIONS"
+        MetricTrueviewEarnedShares -> "METRIC_TRUEVIEW_EARNED_SHARES"
+        MetricTrueviewEarnedSubscribers -> "METRIC_TRUEVIEW_EARNED_SUBSCRIBERS"
+        MetricTrueviewEarnedViews -> "METRIC_TRUEVIEW_EARNED_VIEWS"
+        MetricTrueviewImpressionShare -> "METRIC_TRUEVIEW_IMPRESSION_SHARE"
+        MetricTrueviewLostIsBudget -> "METRIC_TRUEVIEW_LOST_IS_BUDGET"
+        MetricTrueviewLostIsRank -> "METRIC_TRUEVIEW_LOST_IS_RANK"
+        MetricTrueviewTotalConversionValue -> "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUE"
+        MetricTrueviewTotalConversionValuesAdvertiser -> "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_ADVERTISER"
+        MetricTrueviewTotalConversionValuesPartner -> "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_PARTNER"
+        MetricTrueviewTotalConversionValuesUsd -> "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_USD"
+        MetricTrueviewUniqueViewers -> "METRIC_TRUEVIEW_UNIQUE_VIEWERS"
+        MetricTrueviewValueConversionManyPerViewRatio -> "METRIC_TRUEVIEW_VALUE_CONVERSION_MANY_PER_VIEW_RATIO"
+        MetricTrueviewValueConversionOnePerViewRatio -> "METRIC_TRUEVIEW_VALUE_CONVERSION_ONE_PER_VIEW_RATIO"
+        MetricTrueviewViews -> "METRIC_TRUEVIEW_VIEWS"
+        MetricTrueviewViewRate -> "METRIC_TRUEVIEW_VIEW_RATE"
+        MetricTrueviewViewThroughConversion -> "METRIC_TRUEVIEW_VIEW_THROUGH_CONVERSION"
+        MetricUniqueVisitorsCookies -> "METRIC_UNIQUE_VISITORS_COOKIES"
+        MetricUnknown -> "METRIC_UNKNOWN"
+        MetricVideoCompanionClicks -> "METRIC_VIDEO_COMPANION_CLICKS"
+        MetricVideoCompanionImpressions -> "METRIC_VIDEO_COMPANION_IMPRESSIONS"
+        MetricVideoCompletionRate -> "METRIC_VIDEO_COMPLETION_RATE"
+
+instance FromJSON ParametersMetricsItem where
+    parseJSON = parseJSONText "ParametersMetricsItem"
+
+instance ToJSON ParametersMetricsItem where
+    toJSON = toJSONText
+
+-- | How often the query is run.
+data QueryScheduleFrequency
+    = Daily
+      -- ^ @DAILY@
+    | Monthly
+      -- ^ @MONTHLY@
+    | OneTime
+      -- ^ @ONE_TIME@
+    | Quarterly
+      -- ^ @QUARTERLY@
+    | SemiMonthly
+      -- ^ @SEMI_MONTHLY@
+    | Weekly
+      -- ^ @WEEKLY@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable QueryScheduleFrequency
+
+instance FromText QueryScheduleFrequency where
+    fromText = \case
+        "DAILY" -> Just Daily
+        "MONTHLY" -> Just Monthly
+        "ONE_TIME" -> Just OneTime
+        "QUARTERLY" -> Just Quarterly
+        "SEMI_MONTHLY" -> Just SemiMonthly
+        "WEEKLY" -> Just Weekly
+        _ -> Nothing
+
+instance ToText QueryScheduleFrequency where
+    toText = \case
+        Daily -> "DAILY"
+        Monthly -> "MONTHLY"
+        OneTime -> "ONE_TIME"
+        Quarterly -> "QUARTERLY"
+        SemiMonthly -> "SEMI_MONTHLY"
+        Weekly -> "WEEKLY"
+
+instance FromJSON QueryScheduleFrequency where
+    parseJSON = parseJSONText "QueryScheduleFrequency"
+
+instance ToJSON QueryScheduleFrequency where
+    toJSON = toJSONText
+
+-- | File specification (column names, types, order) in which the line items
+-- will be returned. Default to EWF.
+data DownloadLineItemsRequestFileSpec
+    = Ewf
+      -- ^ @EWF@
+    | Sdf
+      -- ^ @SDF@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DownloadLineItemsRequestFileSpec
+
+instance FromText DownloadLineItemsRequestFileSpec where
+    fromText = \case
+        "EWF" -> Just Ewf
+        "SDF" -> Just Sdf
+        _ -> Nothing
+
+instance ToText DownloadLineItemsRequestFileSpec where
+    toText = \case
+        Ewf -> "EWF"
+        Sdf -> "SDF"
+
+instance FromJSON DownloadLineItemsRequestFileSpec where
+    parseJSON = parseJSONText "DownloadLineItemsRequestFileSpec"
+
+instance ToJSON DownloadLineItemsRequestFileSpec where
+    toJSON = toJSONText
+
+-- | Format the line items are in. Default to CSV.
+data UploadLineItemsRequestFormat
+    = ULIRFCSV
+      -- ^ @CSV@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable UploadLineItemsRequestFormat
+
+instance FromText UploadLineItemsRequestFormat where
+    fromText = \case
+        "CSV" -> Just ULIRFCSV
+        _ -> Nothing
+
+instance ToText UploadLineItemsRequestFormat where
+    toText = \case
+        ULIRFCSV -> "CSV"
+
+instance FromJSON UploadLineItemsRequestFormat where
+    parseJSON = parseJSONText "UploadLineItemsRequestFormat"
+
+instance ToJSON UploadLineItemsRequestFormat where
+    toJSON = toJSONText
+
+-- | Filter type.
+data FilterPairType
+    = FilterActiveViewExpectedViewability
+      -- ^ @FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY@
+    | FilterActivityId
+      -- ^ @FILTER_ACTIVITY_ID@
+    | FilterAdvertiser
+      -- ^ @FILTER_ADVERTISER@
+    | FilterAdvertiserCurrency
+      -- ^ @FILTER_ADVERTISER_CURRENCY@
+    | FilterAdvertiserTimezone
+      -- ^ @FILTER_ADVERTISER_TIMEZONE@
+    | FilterAdPosition
+      -- ^ @FILTER_AD_POSITION@
+    | FilterAge
+      -- ^ @FILTER_AGE@
+    | FilterBrandsafeChannelId
+      -- ^ @FILTER_BRANDSAFE_CHANNEL_ID@
+    | FilterBrowser
+      -- ^ @FILTER_BROWSER@
+    | FilterCampaignDailyFrequency
+      -- ^ @FILTER_CAMPAIGN_DAILY_FREQUENCY@
+    | FilterCarrier
+      -- ^ @FILTER_CARRIER@
+    | FilterChannelId
+      -- ^ @FILTER_CHANNEL_ID@
+    | FilterCity
+      -- ^ @FILTER_CITY@
+    | FilterConversionDelay
+      -- ^ @FILTER_CONVERSION_DELAY@
+    | FilterCountry
+      -- ^ @FILTER_COUNTRY@
+    | FilterCreativeHeight
+      -- ^ @FILTER_CREATIVE_HEIGHT@
+    | FilterCreativeId
+      -- ^ @FILTER_CREATIVE_ID@
+    | FilterCreativeSize
+      -- ^ @FILTER_CREATIVE_SIZE@
+    | FilterCreativeType
+      -- ^ @FILTER_CREATIVE_TYPE@
+    | FilterCreativeWidth
+      -- ^ @FILTER_CREATIVE_WIDTH@
+    | FilterDataProvider
+      -- ^ @FILTER_DATA_PROVIDER@
+    | FilterDate
+      -- ^ @FILTER_DATE@
+    | FilterDayOfWeek
+      -- ^ @FILTER_DAY_OF_WEEK@
+    | FilterDma
+      -- ^ @FILTER_DMA@
+    | FilterExchangeId
+      -- ^ @FILTER_EXCHANGE_ID@
+    | FilterFloodlightPixelId
+      -- ^ @FILTER_FLOODLIGHT_PIXEL_ID@
+    | FilterGender
+      -- ^ @FILTER_GENDER@
+    | FilterInsertionOrder
+      -- ^ @FILTER_INSERTION_ORDER@
+    | FilterInventoryFormat
+      -- ^ @FILTER_INVENTORY_FORMAT@
+    | FilterInventorySource
+      -- ^ @FILTER_INVENTORY_SOURCE@
+    | FilterInventorySourceType
+      -- ^ @FILTER_INVENTORY_SOURCE_TYPE@
+    | FilterKeyword
+      -- ^ @FILTER_KEYWORD@
+    | FilterLineItem
+      -- ^ @FILTER_LINE_ITEM@
+    | FilterLineItemDailyFrequency
+      -- ^ @FILTER_LINE_ITEM_DAILY_FREQUENCY@
+    | FilterLineItemLifetimeFrequency
+      -- ^ @FILTER_LINE_ITEM_LIFETIME_FREQUENCY@
+    | FilterLineItemType
+      -- ^ @FILTER_LINE_ITEM_TYPE@
+    | FilterMobileDeviceMake
+      -- ^ @FILTER_MOBILE_DEVICE_MAKE@
+    | FilterMobileDeviceMakeModel
+      -- ^ @FILTER_MOBILE_DEVICE_MAKE_MODEL@
+    | FilterMobileDeviceType
+      -- ^ @FILTER_MOBILE_DEVICE_TYPE@
+    | FilterMobileGeo
+      -- ^ @FILTER_MOBILE_GEO@
+    | FilterMonth
+      -- ^ @FILTER_MONTH@
+    | FilterMraidSupport
+      -- ^ @FILTER_MRAID_SUPPORT@
+    | FilterNielsenAge
+      -- ^ @FILTER_NIELSEN_AGE@
+    | FilterNielsenCountryCode
+      -- ^ @FILTER_NIELSEN_COUNTRY_CODE@
+    | FilterNielsenDeviceId
+      -- ^ @FILTER_NIELSEN_DEVICE_ID@
+    | FilterNielsenGender
+      -- ^ @FILTER_NIELSEN_GENDER@
+    | FilterOrderId
+      -- ^ @FILTER_ORDER_ID@
+    | FilterOS
+      -- ^ @FILTER_OS@
+    | FilterPageCategory
+      -- ^ @FILTER_PAGE_CATEGORY@
+    | FilterPageLayout
+      -- ^ @FILTER_PAGE_LAYOUT@
+    | FilterPartner
+      -- ^ @FILTER_PARTNER@
+    | FilterPartnerCurrency
+      -- ^ @FILTER_PARTNER_CURRENCY@
+    | FilterPublicInventory
+      -- ^ @FILTER_PUBLIC_INVENTORY@
+    | FilterQuarter
+      -- ^ @FILTER_QUARTER@
+    | FilterRegion
+      -- ^ @FILTER_REGION@
+    | FilterRegularChannelId
+      -- ^ @FILTER_REGULAR_CHANNEL_ID@
+    | FilterSiteId
+      -- ^ @FILTER_SITE_ID@
+    | FilterSiteLanguage
+      -- ^ @FILTER_SITE_LANGUAGE@
+    | FilterTargetedUserList
+      -- ^ @FILTER_TARGETED_USER_LIST@
+    | FilterTimeOfDay
+      -- ^ @FILTER_TIME_OF_DAY@
+    | FilterTrueviewConversionType
+      -- ^ @FILTER_TRUEVIEW_CONVERSION_TYPE@
+    | FilterUnknown
+      -- ^ @FILTER_UNKNOWN@
+    | FilterUserList
+      -- ^ @FILTER_USER_LIST@
+    | FilterUserListFirstParty
+      -- ^ @FILTER_USER_LIST_FIRST_PARTY@
+    | FilterUserListThirdParty
+      -- ^ @FILTER_USER_LIST_THIRD_PARTY@
+    | FilterVideoAdPositionInStream
+      -- ^ @FILTER_VIDEO_AD_POSITION_IN_STREAM@
+    | FilterVideoCompanionSize
+      -- ^ @FILTER_VIDEO_COMPANION_SIZE@
+    | FilterVideoCompanionType
+      -- ^ @FILTER_VIDEO_COMPANION_TYPE@
+    | FilterVideoCreativeDuration
+      -- ^ @FILTER_VIDEO_CREATIVE_DURATION@
+    | FilterVideoCreativeDurationSkippable
+      -- ^ @FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE@
+    | FilterVideoDurationSeconds
+      -- ^ @FILTER_VIDEO_DURATION_SECONDS@
+    | FilterVideoFormatSupport
+      -- ^ @FILTER_VIDEO_FORMAT_SUPPORT@
+    | FilterVideoInventoryType
+      -- ^ @FILTER_VIDEO_INVENTORY_TYPE@
+    | FilterVideoPlayerSize
+      -- ^ @FILTER_VIDEO_PLAYER_SIZE@
+    | FilterVideoRatingTier
+      -- ^ @FILTER_VIDEO_RATING_TIER@
+    | FilterVideoSkippableSupport
+      -- ^ @FILTER_VIDEO_SKIPPABLE_SUPPORT@
+    | FilterVideoVpaidSupport
+      -- ^ @FILTER_VIDEO_VPAID_SUPPORT@
+    | FilterWeek
+      -- ^ @FILTER_WEEK@
+    | FilterYear
+      -- ^ @FILTER_YEAR@
+    | FilterYouTubeVertical
+      -- ^ @FILTER_YOUTUBE_VERTICAL@
+    | FilterZipCode
+      -- ^ @FILTER_ZIP_CODE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable FilterPairType
+
+instance FromText FilterPairType where
+    fromText = \case
+        "FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY" -> Just FilterActiveViewExpectedViewability
+        "FILTER_ACTIVITY_ID" -> Just FilterActivityId
+        "FILTER_ADVERTISER" -> Just FilterAdvertiser
+        "FILTER_ADVERTISER_CURRENCY" -> Just FilterAdvertiserCurrency
+        "FILTER_ADVERTISER_TIMEZONE" -> Just FilterAdvertiserTimezone
+        "FILTER_AD_POSITION" -> Just FilterAdPosition
+        "FILTER_AGE" -> Just FilterAge
+        "FILTER_BRANDSAFE_CHANNEL_ID" -> Just FilterBrandsafeChannelId
+        "FILTER_BROWSER" -> Just FilterBrowser
+        "FILTER_CAMPAIGN_DAILY_FREQUENCY" -> Just FilterCampaignDailyFrequency
+        "FILTER_CARRIER" -> Just FilterCarrier
+        "FILTER_CHANNEL_ID" -> Just FilterChannelId
+        "FILTER_CITY" -> Just FilterCity
+        "FILTER_CONVERSION_DELAY" -> Just FilterConversionDelay
+        "FILTER_COUNTRY" -> Just FilterCountry
+        "FILTER_CREATIVE_HEIGHT" -> Just FilterCreativeHeight
+        "FILTER_CREATIVE_ID" -> Just FilterCreativeId
+        "FILTER_CREATIVE_SIZE" -> Just FilterCreativeSize
+        "FILTER_CREATIVE_TYPE" -> Just FilterCreativeType
+        "FILTER_CREATIVE_WIDTH" -> Just FilterCreativeWidth
+        "FILTER_DATA_PROVIDER" -> Just FilterDataProvider
+        "FILTER_DATE" -> Just FilterDate
+        "FILTER_DAY_OF_WEEK" -> Just FilterDayOfWeek
+        "FILTER_DMA" -> Just FilterDma
+        "FILTER_EXCHANGE_ID" -> Just FilterExchangeId
+        "FILTER_FLOODLIGHT_PIXEL_ID" -> Just FilterFloodlightPixelId
+        "FILTER_GENDER" -> Just FilterGender
+        "FILTER_INSERTION_ORDER" -> Just FilterInsertionOrder
+        "FILTER_INVENTORY_FORMAT" -> Just FilterInventoryFormat
+        "FILTER_INVENTORY_SOURCE" -> Just FilterInventorySource
+        "FILTER_INVENTORY_SOURCE_TYPE" -> Just FilterInventorySourceType
+        "FILTER_KEYWORD" -> Just FilterKeyword
+        "FILTER_LINE_ITEM" -> Just FilterLineItem
+        "FILTER_LINE_ITEM_DAILY_FREQUENCY" -> Just FilterLineItemDailyFrequency
+        "FILTER_LINE_ITEM_LIFETIME_FREQUENCY" -> Just FilterLineItemLifetimeFrequency
+        "FILTER_LINE_ITEM_TYPE" -> Just FilterLineItemType
+        "FILTER_MOBILE_DEVICE_MAKE" -> Just FilterMobileDeviceMake
+        "FILTER_MOBILE_DEVICE_MAKE_MODEL" -> Just FilterMobileDeviceMakeModel
+        "FILTER_MOBILE_DEVICE_TYPE" -> Just FilterMobileDeviceType
+        "FILTER_MOBILE_GEO" -> Just FilterMobileGeo
+        "FILTER_MONTH" -> Just FilterMonth
+        "FILTER_MRAID_SUPPORT" -> Just FilterMraidSupport
+        "FILTER_NIELSEN_AGE" -> Just FilterNielsenAge
+        "FILTER_NIELSEN_COUNTRY_CODE" -> Just FilterNielsenCountryCode
+        "FILTER_NIELSEN_DEVICE_ID" -> Just FilterNielsenDeviceId
+        "FILTER_NIELSEN_GENDER" -> Just FilterNielsenGender
+        "FILTER_ORDER_ID" -> Just FilterOrderId
+        "FILTER_OS" -> Just FilterOS
+        "FILTER_PAGE_CATEGORY" -> Just FilterPageCategory
+        "FILTER_PAGE_LAYOUT" -> Just FilterPageLayout
+        "FILTER_PARTNER" -> Just FilterPartner
+        "FILTER_PARTNER_CURRENCY" -> Just FilterPartnerCurrency
+        "FILTER_PUBLIC_INVENTORY" -> Just FilterPublicInventory
+        "FILTER_QUARTER" -> Just FilterQuarter
+        "FILTER_REGION" -> Just FilterRegion
+        "FILTER_REGULAR_CHANNEL_ID" -> Just FilterRegularChannelId
+        "FILTER_SITE_ID" -> Just FilterSiteId
+        "FILTER_SITE_LANGUAGE" -> Just FilterSiteLanguage
+        "FILTER_TARGETED_USER_LIST" -> Just FilterTargetedUserList
+        "FILTER_TIME_OF_DAY" -> Just FilterTimeOfDay
+        "FILTER_TRUEVIEW_CONVERSION_TYPE" -> Just FilterTrueviewConversionType
+        "FILTER_UNKNOWN" -> Just FilterUnknown
+        "FILTER_USER_LIST" -> Just FilterUserList
+        "FILTER_USER_LIST_FIRST_PARTY" -> Just FilterUserListFirstParty
+        "FILTER_USER_LIST_THIRD_PARTY" -> Just FilterUserListThirdParty
+        "FILTER_VIDEO_AD_POSITION_IN_STREAM" -> Just FilterVideoAdPositionInStream
+        "FILTER_VIDEO_COMPANION_SIZE" -> Just FilterVideoCompanionSize
+        "FILTER_VIDEO_COMPANION_TYPE" -> Just FilterVideoCompanionType
+        "FILTER_VIDEO_CREATIVE_DURATION" -> Just FilterVideoCreativeDuration
+        "FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE" -> Just FilterVideoCreativeDurationSkippable
+        "FILTER_VIDEO_DURATION_SECONDS" -> Just FilterVideoDurationSeconds
+        "FILTER_VIDEO_FORMAT_SUPPORT" -> Just FilterVideoFormatSupport
+        "FILTER_VIDEO_INVENTORY_TYPE" -> Just FilterVideoInventoryType
+        "FILTER_VIDEO_PLAYER_SIZE" -> Just FilterVideoPlayerSize
+        "FILTER_VIDEO_RATING_TIER" -> Just FilterVideoRatingTier
+        "FILTER_VIDEO_SKIPPABLE_SUPPORT" -> Just FilterVideoSkippableSupport
+        "FILTER_VIDEO_VPAID_SUPPORT" -> Just FilterVideoVpaidSupport
+        "FILTER_WEEK" -> Just FilterWeek
+        "FILTER_YEAR" -> Just FilterYear
+        "FILTER_YOUTUBE_VERTICAL" -> Just FilterYouTubeVertical
+        "FILTER_ZIP_CODE" -> Just FilterZipCode
+        _ -> Nothing
+
+instance ToText FilterPairType where
+    toText = \case
+        FilterActiveViewExpectedViewability -> "FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY"
+        FilterActivityId -> "FILTER_ACTIVITY_ID"
+        FilterAdvertiser -> "FILTER_ADVERTISER"
+        FilterAdvertiserCurrency -> "FILTER_ADVERTISER_CURRENCY"
+        FilterAdvertiserTimezone -> "FILTER_ADVERTISER_TIMEZONE"
+        FilterAdPosition -> "FILTER_AD_POSITION"
+        FilterAge -> "FILTER_AGE"
+        FilterBrandsafeChannelId -> "FILTER_BRANDSAFE_CHANNEL_ID"
+        FilterBrowser -> "FILTER_BROWSER"
+        FilterCampaignDailyFrequency -> "FILTER_CAMPAIGN_DAILY_FREQUENCY"
+        FilterCarrier -> "FILTER_CARRIER"
+        FilterChannelId -> "FILTER_CHANNEL_ID"
+        FilterCity -> "FILTER_CITY"
+        FilterConversionDelay -> "FILTER_CONVERSION_DELAY"
+        FilterCountry -> "FILTER_COUNTRY"
+        FilterCreativeHeight -> "FILTER_CREATIVE_HEIGHT"
+        FilterCreativeId -> "FILTER_CREATIVE_ID"
+        FilterCreativeSize -> "FILTER_CREATIVE_SIZE"
+        FilterCreativeType -> "FILTER_CREATIVE_TYPE"
+        FilterCreativeWidth -> "FILTER_CREATIVE_WIDTH"
+        FilterDataProvider -> "FILTER_DATA_PROVIDER"
+        FilterDate -> "FILTER_DATE"
+        FilterDayOfWeek -> "FILTER_DAY_OF_WEEK"
+        FilterDma -> "FILTER_DMA"
+        FilterExchangeId -> "FILTER_EXCHANGE_ID"
+        FilterFloodlightPixelId -> "FILTER_FLOODLIGHT_PIXEL_ID"
+        FilterGender -> "FILTER_GENDER"
+        FilterInsertionOrder -> "FILTER_INSERTION_ORDER"
+        FilterInventoryFormat -> "FILTER_INVENTORY_FORMAT"
+        FilterInventorySource -> "FILTER_INVENTORY_SOURCE"
+        FilterInventorySourceType -> "FILTER_INVENTORY_SOURCE_TYPE"
+        FilterKeyword -> "FILTER_KEYWORD"
+        FilterLineItem -> "FILTER_LINE_ITEM"
+        FilterLineItemDailyFrequency -> "FILTER_LINE_ITEM_DAILY_FREQUENCY"
+        FilterLineItemLifetimeFrequency -> "FILTER_LINE_ITEM_LIFETIME_FREQUENCY"
+        FilterLineItemType -> "FILTER_LINE_ITEM_TYPE"
+        FilterMobileDeviceMake -> "FILTER_MOBILE_DEVICE_MAKE"
+        FilterMobileDeviceMakeModel -> "FILTER_MOBILE_DEVICE_MAKE_MODEL"
+        FilterMobileDeviceType -> "FILTER_MOBILE_DEVICE_TYPE"
+        FilterMobileGeo -> "FILTER_MOBILE_GEO"
+        FilterMonth -> "FILTER_MONTH"
+        FilterMraidSupport -> "FILTER_MRAID_SUPPORT"
+        FilterNielsenAge -> "FILTER_NIELSEN_AGE"
+        FilterNielsenCountryCode -> "FILTER_NIELSEN_COUNTRY_CODE"
+        FilterNielsenDeviceId -> "FILTER_NIELSEN_DEVICE_ID"
+        FilterNielsenGender -> "FILTER_NIELSEN_GENDER"
+        FilterOrderId -> "FILTER_ORDER_ID"
+        FilterOS -> "FILTER_OS"
+        FilterPageCategory -> "FILTER_PAGE_CATEGORY"
+        FilterPageLayout -> "FILTER_PAGE_LAYOUT"
+        FilterPartner -> "FILTER_PARTNER"
+        FilterPartnerCurrency -> "FILTER_PARTNER_CURRENCY"
+        FilterPublicInventory -> "FILTER_PUBLIC_INVENTORY"
+        FilterQuarter -> "FILTER_QUARTER"
+        FilterRegion -> "FILTER_REGION"
+        FilterRegularChannelId -> "FILTER_REGULAR_CHANNEL_ID"
+        FilterSiteId -> "FILTER_SITE_ID"
+        FilterSiteLanguage -> "FILTER_SITE_LANGUAGE"
+        FilterTargetedUserList -> "FILTER_TARGETED_USER_LIST"
+        FilterTimeOfDay -> "FILTER_TIME_OF_DAY"
+        FilterTrueviewConversionType -> "FILTER_TRUEVIEW_CONVERSION_TYPE"
+        FilterUnknown -> "FILTER_UNKNOWN"
+        FilterUserList -> "FILTER_USER_LIST"
+        FilterUserListFirstParty -> "FILTER_USER_LIST_FIRST_PARTY"
+        FilterUserListThirdParty -> "FILTER_USER_LIST_THIRD_PARTY"
+        FilterVideoAdPositionInStream -> "FILTER_VIDEO_AD_POSITION_IN_STREAM"
+        FilterVideoCompanionSize -> "FILTER_VIDEO_COMPANION_SIZE"
+        FilterVideoCompanionType -> "FILTER_VIDEO_COMPANION_TYPE"
+        FilterVideoCreativeDuration -> "FILTER_VIDEO_CREATIVE_DURATION"
+        FilterVideoCreativeDurationSkippable -> "FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE"
+        FilterVideoDurationSeconds -> "FILTER_VIDEO_DURATION_SECONDS"
+        FilterVideoFormatSupport -> "FILTER_VIDEO_FORMAT_SUPPORT"
+        FilterVideoInventoryType -> "FILTER_VIDEO_INVENTORY_TYPE"
+        FilterVideoPlayerSize -> "FILTER_VIDEO_PLAYER_SIZE"
+        FilterVideoRatingTier -> "FILTER_VIDEO_RATING_TIER"
+        FilterVideoSkippableSupport -> "FILTER_VIDEO_SKIPPABLE_SUPPORT"
+        FilterVideoVpaidSupport -> "FILTER_VIDEO_VPAID_SUPPORT"
+        FilterWeek -> "FILTER_WEEK"
+        FilterYear -> "FILTER_YEAR"
+        FilterYouTubeVertical -> "FILTER_YOUTUBE_VERTICAL"
+        FilterZipCode -> "FILTER_ZIP_CODE"
+
+instance FromJSON FilterPairType where
+    parseJSON = parseJSONText "FilterPairType"
+
+instance ToJSON FilterPairType where
+    toJSON = toJSONText
+
+-- | Report data range used to generate the report.
+data RunQueryRequestDataRange
+    = RQRDRAllTime
+      -- ^ @ALL_TIME@
+    | RQRDRCurrentDay
+      -- ^ @CURRENT_DAY@
+    | RQRDRCustomDates
+      -- ^ @CUSTOM_DATES@
+    | RQRDRLast14Days
+      -- ^ @LAST_14_DAYS@
+    | RQRDRLast30Days
+      -- ^ @LAST_30_DAYS@
+    | RQRDRLast365Days
+      -- ^ @LAST_365_DAYS@
+    | RQRDRLast7Days
+      -- ^ @LAST_7_DAYS@
+    | RQRDRLast90Days
+      -- ^ @LAST_90_DAYS@
+    | RQRDRMonthToDate
+      -- ^ @MONTH_TO_DATE@
+    | RQRDRPreviousDay
+      -- ^ @PREVIOUS_DAY@
+    | RQRDRPreviousHalfMonth
+      -- ^ @PREVIOUS_HALF_MONTH@
+    | RQRDRPreviousMonth
+      -- ^ @PREVIOUS_MONTH@
+    | RQRDRPreviousQuarter
+      -- ^ @PREVIOUS_QUARTER@
+    | RQRDRPreviousWeek
+      -- ^ @PREVIOUS_WEEK@
+    | RQRDRPreviousYear
+      -- ^ @PREVIOUS_YEAR@
+    | RQRDRQuarterToDate
+      -- ^ @QUARTER_TO_DATE@
+    | RQRDRWeekToDate
+      -- ^ @WEEK_TO_DATE@
+    | RQRDRYearToDate
+      -- ^ @YEAR_TO_DATE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable RunQueryRequestDataRange
+
+instance FromText RunQueryRequestDataRange where
+    fromText = \case
+        "ALL_TIME" -> Just RQRDRAllTime
+        "CURRENT_DAY" -> Just RQRDRCurrentDay
+        "CUSTOM_DATES" -> Just RQRDRCustomDates
+        "LAST_14_DAYS" -> Just RQRDRLast14Days
+        "LAST_30_DAYS" -> Just RQRDRLast30Days
+        "LAST_365_DAYS" -> Just RQRDRLast365Days
+        "LAST_7_DAYS" -> Just RQRDRLast7Days
+        "LAST_90_DAYS" -> Just RQRDRLast90Days
+        "MONTH_TO_DATE" -> Just RQRDRMonthToDate
+        "PREVIOUS_DAY" -> Just RQRDRPreviousDay
+        "PREVIOUS_HALF_MONTH" -> Just RQRDRPreviousHalfMonth
+        "PREVIOUS_MONTH" -> Just RQRDRPreviousMonth
+        "PREVIOUS_QUARTER" -> Just RQRDRPreviousQuarter
+        "PREVIOUS_WEEK" -> Just RQRDRPreviousWeek
+        "PREVIOUS_YEAR" -> Just RQRDRPreviousYear
+        "QUARTER_TO_DATE" -> Just RQRDRQuarterToDate
+        "WEEK_TO_DATE" -> Just RQRDRWeekToDate
+        "YEAR_TO_DATE" -> Just RQRDRYearToDate
+        _ -> Nothing
+
+instance ToText RunQueryRequestDataRange where
+    toText = \case
+        RQRDRAllTime -> "ALL_TIME"
+        RQRDRCurrentDay -> "CURRENT_DAY"
+        RQRDRCustomDates -> "CUSTOM_DATES"
+        RQRDRLast14Days -> "LAST_14_DAYS"
+        RQRDRLast30Days -> "LAST_30_DAYS"
+        RQRDRLast365Days -> "LAST_365_DAYS"
+        RQRDRLast7Days -> "LAST_7_DAYS"
+        RQRDRLast90Days -> "LAST_90_DAYS"
+        RQRDRMonthToDate -> "MONTH_TO_DATE"
+        RQRDRPreviousDay -> "PREVIOUS_DAY"
+        RQRDRPreviousHalfMonth -> "PREVIOUS_HALF_MONTH"
+        RQRDRPreviousMonth -> "PREVIOUS_MONTH"
+        RQRDRPreviousQuarter -> "PREVIOUS_QUARTER"
+        RQRDRPreviousWeek -> "PREVIOUS_WEEK"
+        RQRDRPreviousYear -> "PREVIOUS_YEAR"
+        RQRDRQuarterToDate -> "QUARTER_TO_DATE"
+        RQRDRWeekToDate -> "WEEK_TO_DATE"
+        RQRDRYearToDate -> "YEAR_TO_DATE"
+
+instance FromJSON RunQueryRequestDataRange where
+    parseJSON = parseJSONText "RunQueryRequestDataRange"
+
+instance ToJSON RunQueryRequestDataRange where
+    toJSON = toJSONText
+
+-- | The state of the report.
+data ReportStatusState
+    = Done
+      -- ^ @DONE@
+    | Failed
+      -- ^ @FAILED@
+    | Running
+      -- ^ @RUNNING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportStatusState
+
+instance FromText ReportStatusState where
+    fromText = \case
+        "DONE" -> Just Done
+        "FAILED" -> Just Failed
+        "RUNNING" -> Just Running
+        _ -> Nothing
+
+instance ToText ReportStatusState where
+    toText = \case
+        Done -> "DONE"
+        Failed -> "FAILED"
+        Running -> "RUNNING"
+
+instance FromJSON ReportStatusState where
+    parseJSON = parseJSONText "ReportStatusState"
+
+instance ToJSON ReportStatusState where
+    toJSON = toJSONText
+
+data ParametersGroupBysItem
+    = PGBIFilterActiveViewExpectedViewability
+      -- ^ @FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY@
+    | PGBIFilterActivityId
+      -- ^ @FILTER_ACTIVITY_ID@
+    | PGBIFilterAdvertiser
+      -- ^ @FILTER_ADVERTISER@
+    | PGBIFilterAdvertiserCurrency
+      -- ^ @FILTER_ADVERTISER_CURRENCY@
+    | PGBIFilterAdvertiserTimezone
+      -- ^ @FILTER_ADVERTISER_TIMEZONE@
+    | PGBIFilterAdPosition
+      -- ^ @FILTER_AD_POSITION@
+    | PGBIFilterAge
+      -- ^ @FILTER_AGE@
+    | PGBIFilterBrandsafeChannelId
+      -- ^ @FILTER_BRANDSAFE_CHANNEL_ID@
+    | PGBIFilterBrowser
+      -- ^ @FILTER_BROWSER@
+    | PGBIFilterCampaignDailyFrequency
+      -- ^ @FILTER_CAMPAIGN_DAILY_FREQUENCY@
+    | PGBIFilterCarrier
+      -- ^ @FILTER_CARRIER@
+    | PGBIFilterChannelId
+      -- ^ @FILTER_CHANNEL_ID@
+    | PGBIFilterCity
+      -- ^ @FILTER_CITY@
+    | PGBIFilterConversionDelay
+      -- ^ @FILTER_CONVERSION_DELAY@
+    | PGBIFilterCountry
+      -- ^ @FILTER_COUNTRY@
+    | PGBIFilterCreativeHeight
+      -- ^ @FILTER_CREATIVE_HEIGHT@
+    | PGBIFilterCreativeId
+      -- ^ @FILTER_CREATIVE_ID@
+    | PGBIFilterCreativeSize
+      -- ^ @FILTER_CREATIVE_SIZE@
+    | PGBIFilterCreativeType
+      -- ^ @FILTER_CREATIVE_TYPE@
+    | PGBIFilterCreativeWidth
+      -- ^ @FILTER_CREATIVE_WIDTH@
+    | PGBIFilterDataProvider
+      -- ^ @FILTER_DATA_PROVIDER@
+    | PGBIFilterDate
+      -- ^ @FILTER_DATE@
+    | PGBIFilterDayOfWeek
+      -- ^ @FILTER_DAY_OF_WEEK@
+    | PGBIFilterDma
+      -- ^ @FILTER_DMA@
+    | PGBIFilterExchangeId
+      -- ^ @FILTER_EXCHANGE_ID@
+    | PGBIFilterFloodlightPixelId
+      -- ^ @FILTER_FLOODLIGHT_PIXEL_ID@
+    | PGBIFilterGender
+      -- ^ @FILTER_GENDER@
+    | PGBIFilterInsertionOrder
+      -- ^ @FILTER_INSERTION_ORDER@
+    | PGBIFilterInventoryFormat
+      -- ^ @FILTER_INVENTORY_FORMAT@
+    | PGBIFilterInventorySource
+      -- ^ @FILTER_INVENTORY_SOURCE@
+    | PGBIFilterInventorySourceType
+      -- ^ @FILTER_INVENTORY_SOURCE_TYPE@
+    | PGBIFilterKeyword
+      -- ^ @FILTER_KEYWORD@
+    | PGBIFilterLineItem
+      -- ^ @FILTER_LINE_ITEM@
+    | PGBIFilterLineItemDailyFrequency
+      -- ^ @FILTER_LINE_ITEM_DAILY_FREQUENCY@
+    | PGBIFilterLineItemLifetimeFrequency
+      -- ^ @FILTER_LINE_ITEM_LIFETIME_FREQUENCY@
+    | PGBIFilterLineItemType
+      -- ^ @FILTER_LINE_ITEM_TYPE@
+    | PGBIFilterMobileDeviceMake
+      -- ^ @FILTER_MOBILE_DEVICE_MAKE@
+    | PGBIFilterMobileDeviceMakeModel
+      -- ^ @FILTER_MOBILE_DEVICE_MAKE_MODEL@
+    | PGBIFilterMobileDeviceType
+      -- ^ @FILTER_MOBILE_DEVICE_TYPE@
+    | PGBIFilterMobileGeo
+      -- ^ @FILTER_MOBILE_GEO@
+    | PGBIFilterMonth
+      -- ^ @FILTER_MONTH@
+    | PGBIFilterMraidSupport
+      -- ^ @FILTER_MRAID_SUPPORT@
+    | PGBIFilterNielsenAge
+      -- ^ @FILTER_NIELSEN_AGE@
+    | PGBIFilterNielsenCountryCode
+      -- ^ @FILTER_NIELSEN_COUNTRY_CODE@
+    | PGBIFilterNielsenDeviceId
+      -- ^ @FILTER_NIELSEN_DEVICE_ID@
+    | PGBIFilterNielsenGender
+      -- ^ @FILTER_NIELSEN_GENDER@
+    | PGBIFilterOrderId
+      -- ^ @FILTER_ORDER_ID@
+    | PGBIFilterOS
+      -- ^ @FILTER_OS@
+    | PGBIFilterPageCategory
+      -- ^ @FILTER_PAGE_CATEGORY@
+    | PGBIFilterPageLayout
+      -- ^ @FILTER_PAGE_LAYOUT@
+    | PGBIFilterPartner
+      -- ^ @FILTER_PARTNER@
+    | PGBIFilterPartnerCurrency
+      -- ^ @FILTER_PARTNER_CURRENCY@
+    | PGBIFilterPublicInventory
+      -- ^ @FILTER_PUBLIC_INVENTORY@
+    | PGBIFilterQuarter
+      -- ^ @FILTER_QUARTER@
+    | PGBIFilterRegion
+      -- ^ @FILTER_REGION@
+    | PGBIFilterRegularChannelId
+      -- ^ @FILTER_REGULAR_CHANNEL_ID@
+    | PGBIFilterSiteId
+      -- ^ @FILTER_SITE_ID@
+    | PGBIFilterSiteLanguage
+      -- ^ @FILTER_SITE_LANGUAGE@
+    | PGBIFilterTargetedUserList
+      -- ^ @FILTER_TARGETED_USER_LIST@
+    | PGBIFilterTimeOfDay
+      -- ^ @FILTER_TIME_OF_DAY@
+    | PGBIFilterTrueviewConversionType
+      -- ^ @FILTER_TRUEVIEW_CONVERSION_TYPE@
+    | PGBIFilterUnknown
+      -- ^ @FILTER_UNKNOWN@
+    | PGBIFilterUserList
+      -- ^ @FILTER_USER_LIST@
+    | PGBIFilterUserListFirstParty
+      -- ^ @FILTER_USER_LIST_FIRST_PARTY@
+    | PGBIFilterUserListThirdParty
+      -- ^ @FILTER_USER_LIST_THIRD_PARTY@
+    | PGBIFilterVideoAdPositionInStream
+      -- ^ @FILTER_VIDEO_AD_POSITION_IN_STREAM@
+    | PGBIFilterVideoCompanionSize
+      -- ^ @FILTER_VIDEO_COMPANION_SIZE@
+    | PGBIFilterVideoCompanionType
+      -- ^ @FILTER_VIDEO_COMPANION_TYPE@
+    | PGBIFilterVideoCreativeDuration
+      -- ^ @FILTER_VIDEO_CREATIVE_DURATION@
+    | PGBIFilterVideoCreativeDurationSkippable
+      -- ^ @FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE@
+    | PGBIFilterVideoDurationSeconds
+      -- ^ @FILTER_VIDEO_DURATION_SECONDS@
+    | PGBIFilterVideoFormatSupport
+      -- ^ @FILTER_VIDEO_FORMAT_SUPPORT@
+    | PGBIFilterVideoInventoryType
+      -- ^ @FILTER_VIDEO_INVENTORY_TYPE@
+    | PGBIFilterVideoPlayerSize
+      -- ^ @FILTER_VIDEO_PLAYER_SIZE@
+    | PGBIFilterVideoRatingTier
+      -- ^ @FILTER_VIDEO_RATING_TIER@
+    | PGBIFilterVideoSkippableSupport
+      -- ^ @FILTER_VIDEO_SKIPPABLE_SUPPORT@
+    | PGBIFilterVideoVpaidSupport
+      -- ^ @FILTER_VIDEO_VPAID_SUPPORT@
+    | PGBIFilterWeek
+      -- ^ @FILTER_WEEK@
+    | PGBIFilterYear
+      -- ^ @FILTER_YEAR@
+    | PGBIFilterYouTubeVertical
+      -- ^ @FILTER_YOUTUBE_VERTICAL@
+    | PGBIFilterZipCode
+      -- ^ @FILTER_ZIP_CODE@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ParametersGroupBysItem
+
+instance FromText ParametersGroupBysItem where
+    fromText = \case
+        "FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY" -> Just PGBIFilterActiveViewExpectedViewability
+        "FILTER_ACTIVITY_ID" -> Just PGBIFilterActivityId
+        "FILTER_ADVERTISER" -> Just PGBIFilterAdvertiser
+        "FILTER_ADVERTISER_CURRENCY" -> Just PGBIFilterAdvertiserCurrency
+        "FILTER_ADVERTISER_TIMEZONE" -> Just PGBIFilterAdvertiserTimezone
+        "FILTER_AD_POSITION" -> Just PGBIFilterAdPosition
+        "FILTER_AGE" -> Just PGBIFilterAge
+        "FILTER_BRANDSAFE_CHANNEL_ID" -> Just PGBIFilterBrandsafeChannelId
+        "FILTER_BROWSER" -> Just PGBIFilterBrowser
+        "FILTER_CAMPAIGN_DAILY_FREQUENCY" -> Just PGBIFilterCampaignDailyFrequency
+        "FILTER_CARRIER" -> Just PGBIFilterCarrier
+        "FILTER_CHANNEL_ID" -> Just PGBIFilterChannelId
+        "FILTER_CITY" -> Just PGBIFilterCity
+        "FILTER_CONVERSION_DELAY" -> Just PGBIFilterConversionDelay
+        "FILTER_COUNTRY" -> Just PGBIFilterCountry
+        "FILTER_CREATIVE_HEIGHT" -> Just PGBIFilterCreativeHeight
+        "FILTER_CREATIVE_ID" -> Just PGBIFilterCreativeId
+        "FILTER_CREATIVE_SIZE" -> Just PGBIFilterCreativeSize
+        "FILTER_CREATIVE_TYPE" -> Just PGBIFilterCreativeType
+        "FILTER_CREATIVE_WIDTH" -> Just PGBIFilterCreativeWidth
+        "FILTER_DATA_PROVIDER" -> Just PGBIFilterDataProvider
+        "FILTER_DATE" -> Just PGBIFilterDate
+        "FILTER_DAY_OF_WEEK" -> Just PGBIFilterDayOfWeek
+        "FILTER_DMA" -> Just PGBIFilterDma
+        "FILTER_EXCHANGE_ID" -> Just PGBIFilterExchangeId
+        "FILTER_FLOODLIGHT_PIXEL_ID" -> Just PGBIFilterFloodlightPixelId
+        "FILTER_GENDER" -> Just PGBIFilterGender
+        "FILTER_INSERTION_ORDER" -> Just PGBIFilterInsertionOrder
+        "FILTER_INVENTORY_FORMAT" -> Just PGBIFilterInventoryFormat
+        "FILTER_INVENTORY_SOURCE" -> Just PGBIFilterInventorySource
+        "FILTER_INVENTORY_SOURCE_TYPE" -> Just PGBIFilterInventorySourceType
+        "FILTER_KEYWORD" -> Just PGBIFilterKeyword
+        "FILTER_LINE_ITEM" -> Just PGBIFilterLineItem
+        "FILTER_LINE_ITEM_DAILY_FREQUENCY" -> Just PGBIFilterLineItemDailyFrequency
+        "FILTER_LINE_ITEM_LIFETIME_FREQUENCY" -> Just PGBIFilterLineItemLifetimeFrequency
+        "FILTER_LINE_ITEM_TYPE" -> Just PGBIFilterLineItemType
+        "FILTER_MOBILE_DEVICE_MAKE" -> Just PGBIFilterMobileDeviceMake
+        "FILTER_MOBILE_DEVICE_MAKE_MODEL" -> Just PGBIFilterMobileDeviceMakeModel
+        "FILTER_MOBILE_DEVICE_TYPE" -> Just PGBIFilterMobileDeviceType
+        "FILTER_MOBILE_GEO" -> Just PGBIFilterMobileGeo
+        "FILTER_MONTH" -> Just PGBIFilterMonth
+        "FILTER_MRAID_SUPPORT" -> Just PGBIFilterMraidSupport
+        "FILTER_NIELSEN_AGE" -> Just PGBIFilterNielsenAge
+        "FILTER_NIELSEN_COUNTRY_CODE" -> Just PGBIFilterNielsenCountryCode
+        "FILTER_NIELSEN_DEVICE_ID" -> Just PGBIFilterNielsenDeviceId
+        "FILTER_NIELSEN_GENDER" -> Just PGBIFilterNielsenGender
+        "FILTER_ORDER_ID" -> Just PGBIFilterOrderId
+        "FILTER_OS" -> Just PGBIFilterOS
+        "FILTER_PAGE_CATEGORY" -> Just PGBIFilterPageCategory
+        "FILTER_PAGE_LAYOUT" -> Just PGBIFilterPageLayout
+        "FILTER_PARTNER" -> Just PGBIFilterPartner
+        "FILTER_PARTNER_CURRENCY" -> Just PGBIFilterPartnerCurrency
+        "FILTER_PUBLIC_INVENTORY" -> Just PGBIFilterPublicInventory
+        "FILTER_QUARTER" -> Just PGBIFilterQuarter
+        "FILTER_REGION" -> Just PGBIFilterRegion
+        "FILTER_REGULAR_CHANNEL_ID" -> Just PGBIFilterRegularChannelId
+        "FILTER_SITE_ID" -> Just PGBIFilterSiteId
+        "FILTER_SITE_LANGUAGE" -> Just PGBIFilterSiteLanguage
+        "FILTER_TARGETED_USER_LIST" -> Just PGBIFilterTargetedUserList
+        "FILTER_TIME_OF_DAY" -> Just PGBIFilterTimeOfDay
+        "FILTER_TRUEVIEW_CONVERSION_TYPE" -> Just PGBIFilterTrueviewConversionType
+        "FILTER_UNKNOWN" -> Just PGBIFilterUnknown
+        "FILTER_USER_LIST" -> Just PGBIFilterUserList
+        "FILTER_USER_LIST_FIRST_PARTY" -> Just PGBIFilterUserListFirstParty
+        "FILTER_USER_LIST_THIRD_PARTY" -> Just PGBIFilterUserListThirdParty
+        "FILTER_VIDEO_AD_POSITION_IN_STREAM" -> Just PGBIFilterVideoAdPositionInStream
+        "FILTER_VIDEO_COMPANION_SIZE" -> Just PGBIFilterVideoCompanionSize
+        "FILTER_VIDEO_COMPANION_TYPE" -> Just PGBIFilterVideoCompanionType
+        "FILTER_VIDEO_CREATIVE_DURATION" -> Just PGBIFilterVideoCreativeDuration
+        "FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE" -> Just PGBIFilterVideoCreativeDurationSkippable
+        "FILTER_VIDEO_DURATION_SECONDS" -> Just PGBIFilterVideoDurationSeconds
+        "FILTER_VIDEO_FORMAT_SUPPORT" -> Just PGBIFilterVideoFormatSupport
+        "FILTER_VIDEO_INVENTORY_TYPE" -> Just PGBIFilterVideoInventoryType
+        "FILTER_VIDEO_PLAYER_SIZE" -> Just PGBIFilterVideoPlayerSize
+        "FILTER_VIDEO_RATING_TIER" -> Just PGBIFilterVideoRatingTier
+        "FILTER_VIDEO_SKIPPABLE_SUPPORT" -> Just PGBIFilterVideoSkippableSupport
+        "FILTER_VIDEO_VPAID_SUPPORT" -> Just PGBIFilterVideoVpaidSupport
+        "FILTER_WEEK" -> Just PGBIFilterWeek
+        "FILTER_YEAR" -> Just PGBIFilterYear
+        "FILTER_YOUTUBE_VERTICAL" -> Just PGBIFilterYouTubeVertical
+        "FILTER_ZIP_CODE" -> Just PGBIFilterZipCode
+        _ -> Nothing
+
+instance ToText ParametersGroupBysItem where
+    toText = \case
+        PGBIFilterActiveViewExpectedViewability -> "FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY"
+        PGBIFilterActivityId -> "FILTER_ACTIVITY_ID"
+        PGBIFilterAdvertiser -> "FILTER_ADVERTISER"
+        PGBIFilterAdvertiserCurrency -> "FILTER_ADVERTISER_CURRENCY"
+        PGBIFilterAdvertiserTimezone -> "FILTER_ADVERTISER_TIMEZONE"
+        PGBIFilterAdPosition -> "FILTER_AD_POSITION"
+        PGBIFilterAge -> "FILTER_AGE"
+        PGBIFilterBrandsafeChannelId -> "FILTER_BRANDSAFE_CHANNEL_ID"
+        PGBIFilterBrowser -> "FILTER_BROWSER"
+        PGBIFilterCampaignDailyFrequency -> "FILTER_CAMPAIGN_DAILY_FREQUENCY"
+        PGBIFilterCarrier -> "FILTER_CARRIER"
+        PGBIFilterChannelId -> "FILTER_CHANNEL_ID"
+        PGBIFilterCity -> "FILTER_CITY"
+        PGBIFilterConversionDelay -> "FILTER_CONVERSION_DELAY"
+        PGBIFilterCountry -> "FILTER_COUNTRY"
+        PGBIFilterCreativeHeight -> "FILTER_CREATIVE_HEIGHT"
+        PGBIFilterCreativeId -> "FILTER_CREATIVE_ID"
+        PGBIFilterCreativeSize -> "FILTER_CREATIVE_SIZE"
+        PGBIFilterCreativeType -> "FILTER_CREATIVE_TYPE"
+        PGBIFilterCreativeWidth -> "FILTER_CREATIVE_WIDTH"
+        PGBIFilterDataProvider -> "FILTER_DATA_PROVIDER"
+        PGBIFilterDate -> "FILTER_DATE"
+        PGBIFilterDayOfWeek -> "FILTER_DAY_OF_WEEK"
+        PGBIFilterDma -> "FILTER_DMA"
+        PGBIFilterExchangeId -> "FILTER_EXCHANGE_ID"
+        PGBIFilterFloodlightPixelId -> "FILTER_FLOODLIGHT_PIXEL_ID"
+        PGBIFilterGender -> "FILTER_GENDER"
+        PGBIFilterInsertionOrder -> "FILTER_INSERTION_ORDER"
+        PGBIFilterInventoryFormat -> "FILTER_INVENTORY_FORMAT"
+        PGBIFilterInventorySource -> "FILTER_INVENTORY_SOURCE"
+        PGBIFilterInventorySourceType -> "FILTER_INVENTORY_SOURCE_TYPE"
+        PGBIFilterKeyword -> "FILTER_KEYWORD"
+        PGBIFilterLineItem -> "FILTER_LINE_ITEM"
+        PGBIFilterLineItemDailyFrequency -> "FILTER_LINE_ITEM_DAILY_FREQUENCY"
+        PGBIFilterLineItemLifetimeFrequency -> "FILTER_LINE_ITEM_LIFETIME_FREQUENCY"
+        PGBIFilterLineItemType -> "FILTER_LINE_ITEM_TYPE"
+        PGBIFilterMobileDeviceMake -> "FILTER_MOBILE_DEVICE_MAKE"
+        PGBIFilterMobileDeviceMakeModel -> "FILTER_MOBILE_DEVICE_MAKE_MODEL"
+        PGBIFilterMobileDeviceType -> "FILTER_MOBILE_DEVICE_TYPE"
+        PGBIFilterMobileGeo -> "FILTER_MOBILE_GEO"
+        PGBIFilterMonth -> "FILTER_MONTH"
+        PGBIFilterMraidSupport -> "FILTER_MRAID_SUPPORT"
+        PGBIFilterNielsenAge -> "FILTER_NIELSEN_AGE"
+        PGBIFilterNielsenCountryCode -> "FILTER_NIELSEN_COUNTRY_CODE"
+        PGBIFilterNielsenDeviceId -> "FILTER_NIELSEN_DEVICE_ID"
+        PGBIFilterNielsenGender -> "FILTER_NIELSEN_GENDER"
+        PGBIFilterOrderId -> "FILTER_ORDER_ID"
+        PGBIFilterOS -> "FILTER_OS"
+        PGBIFilterPageCategory -> "FILTER_PAGE_CATEGORY"
+        PGBIFilterPageLayout -> "FILTER_PAGE_LAYOUT"
+        PGBIFilterPartner -> "FILTER_PARTNER"
+        PGBIFilterPartnerCurrency -> "FILTER_PARTNER_CURRENCY"
+        PGBIFilterPublicInventory -> "FILTER_PUBLIC_INVENTORY"
+        PGBIFilterQuarter -> "FILTER_QUARTER"
+        PGBIFilterRegion -> "FILTER_REGION"
+        PGBIFilterRegularChannelId -> "FILTER_REGULAR_CHANNEL_ID"
+        PGBIFilterSiteId -> "FILTER_SITE_ID"
+        PGBIFilterSiteLanguage -> "FILTER_SITE_LANGUAGE"
+        PGBIFilterTargetedUserList -> "FILTER_TARGETED_USER_LIST"
+        PGBIFilterTimeOfDay -> "FILTER_TIME_OF_DAY"
+        PGBIFilterTrueviewConversionType -> "FILTER_TRUEVIEW_CONVERSION_TYPE"
+        PGBIFilterUnknown -> "FILTER_UNKNOWN"
+        PGBIFilterUserList -> "FILTER_USER_LIST"
+        PGBIFilterUserListFirstParty -> "FILTER_USER_LIST_FIRST_PARTY"
+        PGBIFilterUserListThirdParty -> "FILTER_USER_LIST_THIRD_PARTY"
+        PGBIFilterVideoAdPositionInStream -> "FILTER_VIDEO_AD_POSITION_IN_STREAM"
+        PGBIFilterVideoCompanionSize -> "FILTER_VIDEO_COMPANION_SIZE"
+        PGBIFilterVideoCompanionType -> "FILTER_VIDEO_COMPANION_TYPE"
+        PGBIFilterVideoCreativeDuration -> "FILTER_VIDEO_CREATIVE_DURATION"
+        PGBIFilterVideoCreativeDurationSkippable -> "FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE"
+        PGBIFilterVideoDurationSeconds -> "FILTER_VIDEO_DURATION_SECONDS"
+        PGBIFilterVideoFormatSupport -> "FILTER_VIDEO_FORMAT_SUPPORT"
+        PGBIFilterVideoInventoryType -> "FILTER_VIDEO_INVENTORY_TYPE"
+        PGBIFilterVideoPlayerSize -> "FILTER_VIDEO_PLAYER_SIZE"
+        PGBIFilterVideoRatingTier -> "FILTER_VIDEO_RATING_TIER"
+        PGBIFilterVideoSkippableSupport -> "FILTER_VIDEO_SKIPPABLE_SUPPORT"
+        PGBIFilterVideoVpaidSupport -> "FILTER_VIDEO_VPAID_SUPPORT"
+        PGBIFilterWeek -> "FILTER_WEEK"
+        PGBIFilterYear -> "FILTER_YEAR"
+        PGBIFilterYouTubeVertical -> "FILTER_YOUTUBE_VERTICAL"
+        PGBIFilterZipCode -> "FILTER_ZIP_CODE"
+
+instance FromJSON ParametersGroupBysItem where
+    parseJSON = parseJSONText "ParametersGroupBysItem"
+
+instance ToJSON ParametersGroupBysItem where
+    toJSON = toJSONText
+
+-- | Error code that shows why the report was not created.
+data ReportFailureErrorCode
+    = AuthenticationError
+      -- ^ @AUTHENTICATION_ERROR@
+    | DeprecatedReportingInvalidQuery
+      -- ^ @DEPRECATED_REPORTING_INVALID_QUERY@
+    | ReportingBucketNotFound
+      -- ^ @REPORTING_BUCKET_NOT_FOUND@
+    | ReportingCreateBucketFailed
+      -- ^ @REPORTING_CREATE_BUCKET_FAILED@
+    | ReportingDeleteBucketFailed
+      -- ^ @REPORTING_DELETE_BUCKET_FAILED@
+    | ReportingFatalError
+      -- ^ @REPORTING_FATAL_ERROR@
+    | ReportingIllegalFilename
+      -- ^ @REPORTING_ILLEGAL_FILENAME@
+    | ReportingImcompatibleMetrics
+      -- ^ @REPORTING_IMCOMPATIBLE_METRICS@
+    | ReportingInvalidQueryMissingPartnerAndAdvertiserFilters
+      -- ^ @REPORTING_INVALID_QUERY_MISSING_PARTNER_AND_ADVERTISER_FILTERS@
+    | ReportingInvalidQueryTitleMissing
+      -- ^ @REPORTING_INVALID_QUERY_TITLE_MISSING@
+    | ReportingInvalidQueryTooManyUnfilteredLargeGroupBys
+      -- ^ @REPORTING_INVALID_QUERY_TOO_MANY_UNFILTERED_LARGE_GROUP_BYS@
+    | ReportingQueryNotFound
+      -- ^ @REPORTING_QUERY_NOT_FOUND@
+    | ReportingTransientError
+      -- ^ @REPORTING_TRANSIENT_ERROR@
+    | ReportingUpdateBucketPermissionFailed
+      -- ^ @REPORTING_UPDATE_BUCKET_PERMISSION_FAILED@
+    | ReportingWriteBucketObjectFailed
+      -- ^ @REPORTING_WRITE_BUCKET_OBJECT_FAILED@
+    | ServerError
+      -- ^ @SERVER_ERROR@
+    | UnauthorizedAPIAccess
+      -- ^ @UNAUTHORIZED_API_ACCESS@
+    | ValidationError
+      -- ^ @VALIDATION_ERROR@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportFailureErrorCode
+
+instance FromText ReportFailureErrorCode where
+    fromText = \case
+        "AUTHENTICATION_ERROR" -> Just AuthenticationError
+        "DEPRECATED_REPORTING_INVALID_QUERY" -> Just DeprecatedReportingInvalidQuery
+        "REPORTING_BUCKET_NOT_FOUND" -> Just ReportingBucketNotFound
+        "REPORTING_CREATE_BUCKET_FAILED" -> Just ReportingCreateBucketFailed
+        "REPORTING_DELETE_BUCKET_FAILED" -> Just ReportingDeleteBucketFailed
+        "REPORTING_FATAL_ERROR" -> Just ReportingFatalError
+        "REPORTING_ILLEGAL_FILENAME" -> Just ReportingIllegalFilename
+        "REPORTING_IMCOMPATIBLE_METRICS" -> Just ReportingImcompatibleMetrics
+        "REPORTING_INVALID_QUERY_MISSING_PARTNER_AND_ADVERTISER_FILTERS" -> Just ReportingInvalidQueryMissingPartnerAndAdvertiserFilters
+        "REPORTING_INVALID_QUERY_TITLE_MISSING" -> Just ReportingInvalidQueryTitleMissing
+        "REPORTING_INVALID_QUERY_TOO_MANY_UNFILTERED_LARGE_GROUP_BYS" -> Just ReportingInvalidQueryTooManyUnfilteredLargeGroupBys
+        "REPORTING_QUERY_NOT_FOUND" -> Just ReportingQueryNotFound
+        "REPORTING_TRANSIENT_ERROR" -> Just ReportingTransientError
+        "REPORTING_UPDATE_BUCKET_PERMISSION_FAILED" -> Just ReportingUpdateBucketPermissionFailed
+        "REPORTING_WRITE_BUCKET_OBJECT_FAILED" -> Just ReportingWriteBucketObjectFailed
+        "SERVER_ERROR" -> Just ServerError
+        "UNAUTHORIZED_API_ACCESS" -> Just UnauthorizedAPIAccess
+        "VALIDATION_ERROR" -> Just ValidationError
+        _ -> Nothing
+
+instance ToText ReportFailureErrorCode where
+    toText = \case
+        AuthenticationError -> "AUTHENTICATION_ERROR"
+        DeprecatedReportingInvalidQuery -> "DEPRECATED_REPORTING_INVALID_QUERY"
+        ReportingBucketNotFound -> "REPORTING_BUCKET_NOT_FOUND"
+        ReportingCreateBucketFailed -> "REPORTING_CREATE_BUCKET_FAILED"
+        ReportingDeleteBucketFailed -> "REPORTING_DELETE_BUCKET_FAILED"
+        ReportingFatalError -> "REPORTING_FATAL_ERROR"
+        ReportingIllegalFilename -> "REPORTING_ILLEGAL_FILENAME"
+        ReportingImcompatibleMetrics -> "REPORTING_IMCOMPATIBLE_METRICS"
+        ReportingInvalidQueryMissingPartnerAndAdvertiserFilters -> "REPORTING_INVALID_QUERY_MISSING_PARTNER_AND_ADVERTISER_FILTERS"
+        ReportingInvalidQueryTitleMissing -> "REPORTING_INVALID_QUERY_TITLE_MISSING"
+        ReportingInvalidQueryTooManyUnfilteredLargeGroupBys -> "REPORTING_INVALID_QUERY_TOO_MANY_UNFILTERED_LARGE_GROUP_BYS"
+        ReportingQueryNotFound -> "REPORTING_QUERY_NOT_FOUND"
+        ReportingTransientError -> "REPORTING_TRANSIENT_ERROR"
+        ReportingUpdateBucketPermissionFailed -> "REPORTING_UPDATE_BUCKET_PERMISSION_FAILED"
+        ReportingWriteBucketObjectFailed -> "REPORTING_WRITE_BUCKET_OBJECT_FAILED"
+        ServerError -> "SERVER_ERROR"
+        UnauthorizedAPIAccess -> "UNAUTHORIZED_API_ACCESS"
+        ValidationError -> "VALIDATION_ERROR"
+
+instance FromJSON ReportFailureErrorCode where
+    parseJSON = parseJSONText "ReportFailureErrorCode"
+
+instance ToJSON ReportFailureErrorCode where
+    toJSON = toJSONText
+
+-- | Format in which the line items will be returned. Default to CSV.
+data DownloadLineItemsRequestFormat
+    = DLIRFCSV
+      -- ^ @CSV@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable DownloadLineItemsRequestFormat
+
+instance FromText DownloadLineItemsRequestFormat where
+    fromText = \case
+        "CSV" -> Just DLIRFCSV
+        _ -> Nothing
+
+instance ToText DownloadLineItemsRequestFormat where
+    toText = \case
+        DLIRFCSV -> "CSV"
+
+instance FromJSON DownloadLineItemsRequestFormat where
+    parseJSON = parseJSONText "DownloadLineItemsRequestFormat"
+
+instance ToJSON DownloadLineItemsRequestFormat where
+    toJSON = toJSONText
+
+-- | The file type of the report.
+data ReportStatusFormat
+    = RSFCSV
+      -- ^ @CSV@
+    | RSFExcelCSV
+      -- ^ @EXCEL_CSV@
+    | RSFXlsx
+      -- ^ @XLSX@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ReportStatusFormat
+
+instance FromText ReportStatusFormat where
+    fromText = \case
+        "CSV" -> Just RSFCSV
+        "EXCEL_CSV" -> Just RSFExcelCSV
+        "XLSX" -> Just RSFXlsx
+        _ -> Nothing
+
+instance ToText ReportStatusFormat where
+    toText = \case
+        RSFCSV -> "CSV"
+        RSFExcelCSV -> "EXCEL_CSV"
+        RSFXlsx -> "XLSX"
+
+instance FromJSON ReportStatusFormat where
+    parseJSON = parseJSONText "ReportStatusFormat"
+
+instance ToJSON ReportStatusFormat where
+    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/DoubleClickBidManager/Lineitems/Downloadlineitems.hs b/gen/Network/Google/Resource/DoubleClickBidManager/Lineitems/Downloadlineitems.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DoubleClickBidManager/Lineitems/Downloadlineitems.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.DoubleClickBidManager.Lineitems.Downloadlineitems
+-- 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 line items in CSV format.
+--
+-- /See:/ <https://developers.google.com/bid-manager/ DoubleClick Bid Manager API Reference> for @doubleclickbidmanager.lineitems.downloadlineitems@.
+module Network.Google.Resource.DoubleClickBidManager.Lineitems.Downloadlineitems
+    (
+    -- * REST Resource
+      LineitemsDownloadlineitemsResource
+
+    -- * Creating a Request
+    , lineitemsDownloadlineitems
+    , LineitemsDownloadlineitems
+
+    -- * Request Lenses
+    , ldPayload
+    ) where
+
+import           Network.Google.DoubleClickBids.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @doubleclickbidmanager.lineitems.downloadlineitems@ method which the
+-- 'LineitemsDownloadlineitems' request conforms to.
+type LineitemsDownloadlineitemsResource =
+     "doubleclickbidmanager" :>
+       "v1" :>
+         "lineitems" :>
+           "downloadlineitems" :>
+             QueryParam "alt" AltJSON :>
+               ReqBody '[JSON] DownloadLineItemsRequest :>
+                 Post '[JSON] DownloadLineItemsResponse
+
+-- | Retrieves line items in CSV format.
+--
+-- /See:/ 'lineitemsDownloadlineitems' smart constructor.
+newtype LineitemsDownloadlineitems = LineitemsDownloadlineitems
+    { _ldPayload :: DownloadLineItemsRequest
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LineitemsDownloadlineitems' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ldPayload'
+lineitemsDownloadlineitems
+    :: DownloadLineItemsRequest -- ^ 'ldPayload'
+    -> LineitemsDownloadlineitems
+lineitemsDownloadlineitems pLdPayload_ =
+    LineitemsDownloadlineitems
+    { _ldPayload = pLdPayload_
+    }
+
+-- | Multipart request metadata.
+ldPayload :: Lens' LineitemsDownloadlineitems DownloadLineItemsRequest
+ldPayload
+  = lens _ldPayload (\ s a -> s{_ldPayload = a})
+
+instance GoogleRequest LineitemsDownloadlineitems
+         where
+        type Rs LineitemsDownloadlineitems =
+             DownloadLineItemsResponse
+        requestClient LineitemsDownloadlineitems{..}
+          = go (Just AltJSON) _ldPayload doubleClickBidsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy LineitemsDownloadlineitemsResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DoubleClickBidManager/Lineitems/Uploadlineitems.hs b/gen/Network/Google/Resource/DoubleClickBidManager/Lineitems/Uploadlineitems.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DoubleClickBidManager/Lineitems/Uploadlineitems.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.DoubleClickBidManager.Lineitems.Uploadlineitems
+-- 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)
+--
+-- Uploads line items in CSV format.
+--
+-- /See:/ <https://developers.google.com/bid-manager/ DoubleClick Bid Manager API Reference> for @doubleclickbidmanager.lineitems.uploadlineitems@.
+module Network.Google.Resource.DoubleClickBidManager.Lineitems.Uploadlineitems
+    (
+    -- * REST Resource
+      LineitemsUploadlineitemsResource
+
+    -- * Creating a Request
+    , lineitemsUploadlineitems
+    , LineitemsUploadlineitems
+
+    -- * Request Lenses
+    , luPayload
+    ) where
+
+import           Network.Google.DoubleClickBids.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @doubleclickbidmanager.lineitems.uploadlineitems@ method which the
+-- 'LineitemsUploadlineitems' request conforms to.
+type LineitemsUploadlineitemsResource =
+     "doubleclickbidmanager" :>
+       "v1" :>
+         "lineitems" :>
+           "uploadlineitems" :>
+             QueryParam "alt" AltJSON :>
+               ReqBody '[JSON] UploadLineItemsRequest :>
+                 Post '[JSON] UploadLineItemsResponse
+
+-- | Uploads line items in CSV format.
+--
+-- /See:/ 'lineitemsUploadlineitems' smart constructor.
+newtype LineitemsUploadlineitems = LineitemsUploadlineitems
+    { _luPayload :: UploadLineItemsRequest
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LineitemsUploadlineitems' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'luPayload'
+lineitemsUploadlineitems
+    :: UploadLineItemsRequest -- ^ 'luPayload'
+    -> LineitemsUploadlineitems
+lineitemsUploadlineitems pLuPayload_ =
+    LineitemsUploadlineitems
+    { _luPayload = pLuPayload_
+    }
+
+-- | Multipart request metadata.
+luPayload :: Lens' LineitemsUploadlineitems UploadLineItemsRequest
+luPayload
+  = lens _luPayload (\ s a -> s{_luPayload = a})
+
+instance GoogleRequest LineitemsUploadlineitems where
+        type Rs LineitemsUploadlineitems =
+             UploadLineItemsResponse
+        requestClient LineitemsUploadlineitems{..}
+          = go (Just AltJSON) _luPayload doubleClickBidsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy LineitemsUploadlineitemsResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DoubleClickBidManager/Queries/CreateQuery.hs b/gen/Network/Google/Resource/DoubleClickBidManager/Queries/CreateQuery.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DoubleClickBidManager/Queries/CreateQuery.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DoubleClickBidManager.Queries.CreateQuery
+-- 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 query.
+--
+-- /See:/ <https://developers.google.com/bid-manager/ DoubleClick Bid Manager API Reference> for @doubleclickbidmanager.queries.createquery@.
+module Network.Google.Resource.DoubleClickBidManager.Queries.CreateQuery
+    (
+    -- * REST Resource
+      QueriesCreateQueryResource
+
+    -- * Creating a Request
+    , queriesCreateQuery
+    , QueriesCreateQuery
+
+    -- * Request Lenses
+    , qcqPayload
+    ) where
+
+import           Network.Google.DoubleClickBids.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @doubleclickbidmanager.queries.createquery@ method which the
+-- 'QueriesCreateQuery' request conforms to.
+type QueriesCreateQueryResource =
+     "doubleclickbidmanager" :>
+       "v1" :>
+         "query" :>
+           QueryParam "alt" AltJSON :>
+             ReqBody '[JSON] Query :> Post '[JSON] Query
+
+-- | Creates a query.
+--
+-- /See:/ 'queriesCreateQuery' smart constructor.
+newtype QueriesCreateQuery = QueriesCreateQuery
+    { _qcqPayload :: Query
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'QueriesCreateQuery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'qcqPayload'
+queriesCreateQuery
+    :: Query -- ^ 'qcqPayload'
+    -> QueriesCreateQuery
+queriesCreateQuery pQcqPayload_ =
+    QueriesCreateQuery
+    { _qcqPayload = pQcqPayload_
+    }
+
+-- | Multipart request metadata.
+qcqPayload :: Lens' QueriesCreateQuery Query
+qcqPayload
+  = lens _qcqPayload (\ s a -> s{_qcqPayload = a})
+
+instance GoogleRequest QueriesCreateQuery where
+        type Rs QueriesCreateQuery = Query
+        requestClient QueriesCreateQuery{..}
+          = go (Just AltJSON) _qcqPayload
+              doubleClickBidsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy QueriesCreateQueryResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DoubleClickBidManager/Queries/DeleteQuery.hs b/gen/Network/Google/Resource/DoubleClickBidManager/Queries/DeleteQuery.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DoubleClickBidManager/Queries/DeleteQuery.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.DoubleClickBidManager.Queries.DeleteQuery
+-- 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 stored query as well as the associated stored reports.
+--
+-- /See:/ <https://developers.google.com/bid-manager/ DoubleClick Bid Manager API Reference> for @doubleclickbidmanager.queries.deletequery@.
+module Network.Google.Resource.DoubleClickBidManager.Queries.DeleteQuery
+    (
+    -- * REST Resource
+      QueriesDeleteQueryResource
+
+    -- * Creating a Request
+    , queriesDeleteQuery
+    , QueriesDeleteQuery
+
+    -- * Request Lenses
+    , qdqQueryId
+    ) where
+
+import           Network.Google.DoubleClickBids.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @doubleclickbidmanager.queries.deletequery@ method which the
+-- 'QueriesDeleteQuery' request conforms to.
+type QueriesDeleteQueryResource =
+     "doubleclickbidmanager" :>
+       "v1" :>
+         "query" :>
+           Capture "queryId" (Textual Int64) :>
+             QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes a stored query as well as the associated stored reports.
+--
+-- /See:/ 'queriesDeleteQuery' smart constructor.
+newtype QueriesDeleteQuery = QueriesDeleteQuery
+    { _qdqQueryId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'QueriesDeleteQuery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'qdqQueryId'
+queriesDeleteQuery
+    :: Int64 -- ^ 'qdqQueryId'
+    -> QueriesDeleteQuery
+queriesDeleteQuery pQdqQueryId_ =
+    QueriesDeleteQuery
+    { _qdqQueryId = _Coerce # pQdqQueryId_
+    }
+
+-- | Query ID to delete.
+qdqQueryId :: Lens' QueriesDeleteQuery Int64
+qdqQueryId
+  = lens _qdqQueryId (\ s a -> s{_qdqQueryId = a}) .
+      _Coerce
+
+instance GoogleRequest QueriesDeleteQuery where
+        type Rs QueriesDeleteQuery = ()
+        requestClient QueriesDeleteQuery{..}
+          = go _qdqQueryId (Just AltJSON)
+              doubleClickBidsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy QueriesDeleteQueryResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DoubleClickBidManager/Queries/GetQuery.hs b/gen/Network/Google/Resource/DoubleClickBidManager/Queries/GetQuery.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DoubleClickBidManager/Queries/GetQuery.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.DoubleClickBidManager.Queries.GetQuery
+-- 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 stored query.
+--
+-- /See:/ <https://developers.google.com/bid-manager/ DoubleClick Bid Manager API Reference> for @doubleclickbidmanager.queries.getquery@.
+module Network.Google.Resource.DoubleClickBidManager.Queries.GetQuery
+    (
+    -- * REST Resource
+      QueriesGetQueryResource
+
+    -- * Creating a Request
+    , queriesGetQuery
+    , QueriesGetQuery
+
+    -- * Request Lenses
+    , qgqQueryId
+    ) where
+
+import           Network.Google.DoubleClickBids.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @doubleclickbidmanager.queries.getquery@ method which the
+-- 'QueriesGetQuery' request conforms to.
+type QueriesGetQueryResource =
+     "doubleclickbidmanager" :>
+       "v1" :>
+         "query" :>
+           Capture "queryId" (Textual Int64) :>
+             QueryParam "alt" AltJSON :> Get '[JSON] Query
+
+-- | Retrieves a stored query.
+--
+-- /See:/ 'queriesGetQuery' smart constructor.
+newtype QueriesGetQuery = QueriesGetQuery
+    { _qgqQueryId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'QueriesGetQuery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'qgqQueryId'
+queriesGetQuery
+    :: Int64 -- ^ 'qgqQueryId'
+    -> QueriesGetQuery
+queriesGetQuery pQgqQueryId_ =
+    QueriesGetQuery
+    { _qgqQueryId = _Coerce # pQgqQueryId_
+    }
+
+-- | Query ID to retrieve.
+qgqQueryId :: Lens' QueriesGetQuery Int64
+qgqQueryId
+  = lens _qgqQueryId (\ s a -> s{_qgqQueryId = a}) .
+      _Coerce
+
+instance GoogleRequest QueriesGetQuery where
+        type Rs QueriesGetQuery = Query
+        requestClient QueriesGetQuery{..}
+          = go _qgqQueryId (Just AltJSON)
+              doubleClickBidsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy QueriesGetQueryResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DoubleClickBidManager/Queries/Listqueries.hs b/gen/Network/Google/Resource/DoubleClickBidManager/Queries/Listqueries.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DoubleClickBidManager/Queries/Listqueries.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.DoubleClickBidManager.Queries.Listqueries
+-- 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 stored queries.
+--
+-- /See:/ <https://developers.google.com/bid-manager/ DoubleClick Bid Manager API Reference> for @doubleclickbidmanager.queries.listqueries@.
+module Network.Google.Resource.DoubleClickBidManager.Queries.Listqueries
+    (
+    -- * REST Resource
+      QueriesListqueriesResource
+
+    -- * Creating a Request
+    , queriesListqueries
+    , QueriesListqueries
+
+    ) where
+
+import           Network.Google.DoubleClickBids.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @doubleclickbidmanager.queries.listqueries@ method which the
+-- 'QueriesListqueries' request conforms to.
+type QueriesListqueriesResource =
+     "doubleclickbidmanager" :>
+       "v1" :>
+         "queries" :>
+           QueryParam "alt" AltJSON :>
+             Get '[JSON] ListQueriesResponse
+
+-- | Retrieves stored queries.
+--
+-- /See:/ 'queriesListqueries' smart constructor.
+data QueriesListqueries =
+    QueriesListqueries
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'QueriesListqueries' with the minimum fields required to make a request.
+--
+queriesListqueries
+    :: QueriesListqueries
+queriesListqueries = QueriesListqueries
+
+instance GoogleRequest QueriesListqueries where
+        type Rs QueriesListqueries = ListQueriesResponse
+        requestClient QueriesListqueries{}
+          = go (Just AltJSON) doubleClickBidsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy QueriesListqueriesResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DoubleClickBidManager/Queries/RunQuery.hs b/gen/Network/Google/Resource/DoubleClickBidManager/Queries/RunQuery.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DoubleClickBidManager/Queries/RunQuery.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.DoubleClickBidManager.Queries.RunQuery
+-- 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 stored query to generate a report.
+--
+-- /See:/ <https://developers.google.com/bid-manager/ DoubleClick Bid Manager API Reference> for @doubleclickbidmanager.queries.runquery@.
+module Network.Google.Resource.DoubleClickBidManager.Queries.RunQuery
+    (
+    -- * REST Resource
+      QueriesRunQueryResource
+
+    -- * Creating a Request
+    , queriesRunQuery
+    , QueriesRunQuery
+
+    -- * Request Lenses
+    , qrqQueryId
+    , qrqPayload
+    ) where
+
+import           Network.Google.DoubleClickBids.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @doubleclickbidmanager.queries.runquery@ method which the
+-- 'QueriesRunQuery' request conforms to.
+type QueriesRunQueryResource =
+     "doubleclickbidmanager" :>
+       "v1" :>
+         "query" :>
+           Capture "queryId" (Textual Int64) :>
+             QueryParam "alt" AltJSON :>
+               ReqBody '[JSON] RunQueryRequest :> Post '[JSON] ()
+
+-- | Runs a stored query to generate a report.
+--
+-- /See:/ 'queriesRunQuery' smart constructor.
+data QueriesRunQuery = QueriesRunQuery
+    { _qrqQueryId :: !(Textual Int64)
+    , _qrqPayload :: !RunQueryRequest
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'QueriesRunQuery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'qrqQueryId'
+--
+-- * 'qrqPayload'
+queriesRunQuery
+    :: Int64 -- ^ 'qrqQueryId'
+    -> RunQueryRequest -- ^ 'qrqPayload'
+    -> QueriesRunQuery
+queriesRunQuery pQrqQueryId_ pQrqPayload_ =
+    QueriesRunQuery
+    { _qrqQueryId = _Coerce # pQrqQueryId_
+    , _qrqPayload = pQrqPayload_
+    }
+
+-- | Query ID to run.
+qrqQueryId :: Lens' QueriesRunQuery Int64
+qrqQueryId
+  = lens _qrqQueryId (\ s a -> s{_qrqQueryId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+qrqPayload :: Lens' QueriesRunQuery RunQueryRequest
+qrqPayload
+  = lens _qrqPayload (\ s a -> s{_qrqPayload = a})
+
+instance GoogleRequest QueriesRunQuery where
+        type Rs QueriesRunQuery = ()
+        requestClient QueriesRunQuery{..}
+          = go _qrqQueryId (Just AltJSON) _qrqPayload
+              doubleClickBidsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy QueriesRunQueryResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DoubleClickBidManager/Reports/Listreports.hs b/gen/Network/Google/Resource/DoubleClickBidManager/Reports/Listreports.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DoubleClickBidManager/Reports/Listreports.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.DoubleClickBidManager.Reports.Listreports
+-- 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 stored reports.
+--
+-- /See:/ <https://developers.google.com/bid-manager/ DoubleClick Bid Manager API Reference> for @doubleclickbidmanager.reports.listreports@.
+module Network.Google.Resource.DoubleClickBidManager.Reports.Listreports
+    (
+    -- * REST Resource
+      ReportsListreportsResource
+
+    -- * Creating a Request
+    , reportsListreports
+    , ReportsListreports
+
+    -- * Request Lenses
+    , rlQueryId
+    ) where
+
+import           Network.Google.DoubleClickBids.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @doubleclickbidmanager.reports.listreports@ method which the
+-- 'ReportsListreports' request conforms to.
+type ReportsListreportsResource =
+     "doubleclickbidmanager" :>
+       "v1" :>
+         "queries" :>
+           Capture "queryId" (Textual Int64) :>
+             "reports" :>
+               QueryParam "alt" AltJSON :>
+                 Get '[JSON] ListReportsResponse
+
+-- | Retrieves stored reports.
+--
+-- /See:/ 'reportsListreports' smart constructor.
+newtype ReportsListreports = ReportsListreports
+    { _rlQueryId :: Textual Int64
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsListreports' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlQueryId'
+reportsListreports
+    :: Int64 -- ^ 'rlQueryId'
+    -> ReportsListreports
+reportsListreports pRlQueryId_ =
+    ReportsListreports
+    { _rlQueryId = _Coerce # pRlQueryId_
+    }
+
+-- | Query ID with which the reports are associated.
+rlQueryId :: Lens' ReportsListreports Int64
+rlQueryId
+  = lens _rlQueryId (\ s a -> s{_rlQueryId = a}) .
+      _Coerce
+
+instance GoogleRequest ReportsListreports where
+        type Rs ReportsListreports = ListReportsResponse
+        requestClient ReportsListreports{..}
+          = go _rlQueryId (Just AltJSON) doubleClickBidsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ReportsListreportsResource)
+                      mempty
diff --git a/gogol-doubleclick-bids.cabal b/gogol-doubleclick-bids.cabal
new file mode 100644
--- /dev/null
+++ b/gogol-doubleclick-bids.cabal
@@ -0,0 +1,57 @@
+name:                  gogol-doubleclick-bids
+version:               0.0.1
+synopsis:              Google DoubleClick Bid Manager SDK.
+homepage:              https://github.com/brendanhay/gogol
+bug-reports:           https://github.com/brendanhay/gogol/issues
+license:               OtherLicense
+license-file:          LICENSE
+author:                Brendan Hay
+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
+copyright:             Copyright (c) 2015 Brendan Hay
+category:              Network, Google, Cloud
+build-type:            Simple
+cabal-version:         >= 1.10
+extra-source-files:    README.md
+
+description:
+    API for viewing and managing your reports in DoubleClick Bid Manager.
+    .
+    /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 @v1@
+    of the API.
+    .
+    Labels:
+    .
+    * Limited Availability
+
+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.DoubleClickBids
+        , Network.Google.DoubleClickBids.Types
+        , Network.Google.Resource.DoubleClickBidManager.Lineitems.Downloadlineitems
+        , Network.Google.Resource.DoubleClickBidManager.Lineitems.Uploadlineitems
+        , Network.Google.Resource.DoubleClickBidManager.Queries.CreateQuery
+        , Network.Google.Resource.DoubleClickBidManager.Queries.DeleteQuery
+        , Network.Google.Resource.DoubleClickBidManager.Queries.GetQuery
+        , Network.Google.Resource.DoubleClickBidManager.Queries.Listqueries
+        , Network.Google.Resource.DoubleClickBidManager.Queries.RunQuery
+        , Network.Google.Resource.DoubleClickBidManager.Reports.Listreports
+
+    other-modules:
+          Network.Google.DoubleClickBids.Types.Product
+        , Network.Google.DoubleClickBids.Types.Sum
+
+    build-depends:
+          gogol-core == 0.0.1.*
+        , base       >= 4.7 && < 5
