diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.0.1`
+`0.1.0`
 
 
 ## Description
@@ -18,9 +18,9 @@
 
 ## Contribute
 
-For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).
 
-> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.
 
 
 ## Licence
diff --git a/gen/Network/Google/DFAReporting.hs b/gen/Network/Google/DFAReporting.hs
--- a/gen/Network/Google/DFAReporting.hs
+++ b/gen/Network/Google/DFAReporting.hs
@@ -7,13 +7,13 @@
 
 -- |
 -- Module      : Network.Google.DFAReporting
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Manage your DoubleClick Campaign Manager ad campaigns and reports.
+-- Manages your DoubleClick Campaign Manager ad campaigns and reports.
 --
 -- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference>
 module Network.Google.DFAReporting
@@ -21,6 +21,11 @@
     -- * Service Configuration
       dFAReportingService
 
+    -- * OAuth Scopes
+    , dFAReportingScope
+    , ddmconversionsScope
+    , dfatraffickingScope
+
     -- * API Declaration
     , DFAReportingAPI
 
@@ -173,6 +178,9 @@
     -- ** dfareporting.contentCategories.update
     , module Network.Google.Resource.DFAReporting.ContentCategories.Update
 
+    -- ** dfareporting.conversions.batchinsert
+    , module Network.Google.Resource.DFAReporting.Conversions.Batchinsert
+
     -- ** dfareporting.countries.get
     , module Network.Google.Resource.DFAReporting.Countries.Get
 
@@ -266,6 +274,15 @@
     -- ** dfareporting.directorySites.list
     , module Network.Google.Resource.DFAReporting.DirectorySites.List
 
+    -- ** dfareporting.dynamicTargetingKeys.delete
+    , module Network.Google.Resource.DFAReporting.DynamicTargetingKeys.Delete
+
+    -- ** dfareporting.dynamicTargetingKeys.insert
+    , module Network.Google.Resource.DFAReporting.DynamicTargetingKeys.Insert
+
+    -- ** dfareporting.dynamicTargetingKeys.list
+    , module Network.Google.Resource.DFAReporting.DynamicTargetingKeys.List
+
     -- ** dfareporting.eventTags.delete
     , module Network.Google.Resource.DFAReporting.EventTags.Delete
 
@@ -311,9 +328,6 @@
     -- ** dfareporting.floodlightActivities.update
     , module Network.Google.Resource.DFAReporting.FloodlightActivities.Update
 
-    -- ** dfareporting.floodlightActivityGroups.delete
-    , module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Delete
-
     -- ** dfareporting.floodlightActivityGroups.get
     , module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Get
 
@@ -642,6 +656,7 @@
     -- ** CreativeCustomEvent
     , CreativeCustomEvent
     , creativeCustomEvent
+    , cceAdvertiserCustomEventId
     , cceAdvertiserCustomEventType
     , cceAdvertiserCustomEventName
     , cceExitURL
@@ -714,6 +729,9 @@
     -- ** CreativeAssetRole
     , CreativeAssetRole (..)
 
+    -- ** DynamicTargetingKeysListObjectType
+    , DynamicTargetingKeysListObjectType (..)
+
     -- ** RecipientDeliveryType
     , RecipientDeliveryType (..)
 
@@ -806,6 +824,7 @@
     , iiEstimatedConversionRate
     , iiProjectId
     , iiSubAccountId
+    , iiType
     , iiOrderId
     , iiSiteId
 
@@ -1081,6 +1100,9 @@
     , iilrNextPageToken
     , iilrKind
 
+    -- ** CustomFloodlightVariableType
+    , CustomFloodlightVariableType (..)
+
     -- ** Ad
     , Ad
     , ad
@@ -1122,6 +1144,9 @@
     , aDefaultClickThroughEventTagProperties
     , aPlacementAssignments
 
+    -- ** ConversionErrorCode
+    , ConversionErrorCode (..)
+
     -- ** FloodlightActivitiesListSortOrder
     , FloodlightActivitiesListSortOrder (..)
 
@@ -1153,6 +1178,9 @@
     -- ** FileFormat
     , FileFormat (..)
 
+    -- ** EncryptionInfoEncryptionEntityType
+    , EncryptionInfoEncryptionEntityType (..)
+
     -- ** PricingSchedulePricingType
     , PricingSchedulePricingType (..)
 
@@ -1445,6 +1473,14 @@
     , rllrRemarketingLists
     , rllrKind
 
+    -- ** DynamicTargetingKey
+    , DynamicTargetingKey
+    , dynamicTargetingKey
+    , dtkObjectType
+    , dtkKind
+    , dtkObjectId
+    , dtkName
+
     -- ** Creative
     , Creative
     , creative
@@ -1489,6 +1525,7 @@
     , creThirdPartyRichMediaImpressionsURL
     , creLastModifiedInfo
     , creId
+    , creAuthoringSource
     , creStudioAdvertiserId
     , creCreativeAssets
     , creSubAccountId
@@ -1518,6 +1555,9 @@
     , scTitle
     , scContactType
 
+    -- ** CreativeAuthoringSource
+    , CreativeAuthoringSource (..)
+
     -- ** AccountsListResponse
     , AccountsListResponse
     , accountsListResponse
@@ -1605,6 +1645,9 @@
     -- ** CreativesListSortOrder
     , CreativesListSortOrder (..)
 
+    -- ** InventoryItemsListType
+    , InventoryItemsListType (..)
+
     -- ** ThirdPartyAuthenticationToken
     , ThirdPartyAuthenticationToken
     , thirdPartyAuthenticationToken
@@ -1666,6 +1709,7 @@
     , ssLookbackConfiguration
     , ssTagSetting
     , ssActiveViewOptOut
+    , ssVideoActiveViewOptOut
     , ssCreativeSettings
 
     -- ** PlacementStrategiesListSortField
@@ -1723,6 +1767,13 @@
     , aaDefaultCreativeSizeId
     , aaDescription
 
+    -- ** ConversionsBatchInsertRequest
+    , ConversionsBatchInsertRequest
+    , conversionsBatchInsertRequest
+    , cbirKind
+    , cbirConversions
+    , cbirEncryptionInfo
+
     -- ** AccountActiveAdSummaryActiveAdsLimitTier
     , AccountActiveAdSummaryActiveAdsLimitTier (..)
 
@@ -1790,6 +1841,12 @@
     -- ** FloodlightActivitiesListSortField
     , FloodlightActivitiesListSortField (..)
 
+    -- ** DynamicTargetingKeysListResponse
+    , DynamicTargetingKeysListResponse
+    , dynamicTargetingKeysListResponse
+    , dtklrKind
+    , dtklrDynamicTargetingKeys
+
     -- ** DimensionValueList
     , DimensionValueList
     , dimensionValueList
@@ -1858,6 +1915,9 @@
     -- ** PlacementGroupsListPricingTypes
     , PlacementGroupsListPricingTypes (..)
 
+    -- ** DynamicTargetingKeysDeleteObjectType
+    , DynamicTargetingKeysDeleteObjectType (..)
+
     -- ** AccountActiveAdsLimitTier
     , AccountActiveAdsLimitTier (..)
 
@@ -1931,6 +1991,13 @@
     , ccaKind
     , ccaCreativeId
 
+    -- ** ConversionStatus
+    , ConversionStatus
+    , conversionStatus
+    , csKind
+    , csConversion
+    , csErrors
+
     -- ** LookbackConfiguration
     , LookbackConfiguration
     , lookbackConfiguration
@@ -2060,6 +2127,9 @@
     , ptcrcfCustomFloodlightVariables
     , ptcrcfPerInteractionDimensions
 
+    -- ** InventoryItemType
+    , InventoryItemType (..)
+
     -- ** CreativeAssetPositionTopUnit
     , CreativeAssetPositionTopUnit (..)
 
@@ -2315,6 +2385,13 @@
     -- ** DayPartTargetingDaysOfWeekItem
     , DayPartTargetingDaysOfWeekItem (..)
 
+    -- ** CustomFloodlightVariable
+    , CustomFloodlightVariable
+    , customFloodlightVariable
+    , cusKind
+    , cusValue
+    , cusType
+
     -- ** CreativeRotationWeightCalculationStrategy
     , CreativeRotationWeightCalculationStrategy (..)
 
@@ -2416,6 +2493,13 @@
     , dslrKind
     , dslrDirectorySites
 
+    -- ** ConversionError
+    , ConversionError
+    , conversionError
+    , ceKind
+    , ceCode
+    , ceMessage
+
     -- ** PricingPricingType
     , PricingPricingType (..)
 
@@ -2510,7 +2594,6 @@
     , fcLookbackConfiguration
     , fcAccountId
     , fcId
-    , fcSSLRequired
     , fcNATuralSearchConversionAttributionOption
     , fcUserDefinedVariableConfigurations
     , fcSubAccountId
@@ -2531,6 +2614,22 @@
     -- ** CreativeGroupAssignmentCreativeGroupNumber
     , CreativeGroupAssignmentCreativeGroupNumber (..)
 
+    -- ** Conversion
+    , Conversion
+    , conversion
+    , conoTimestampMicros
+    , conoLimitAdTracking
+    , conoEncryptedUserId
+    , conoMobileDeviceId
+    , conoFloodlightConfigurationId
+    , conoKind
+    , conoFloodlightActivityId
+    , conoQuantity
+    , conoValue
+    , conoCustomVariables
+    , conoChildDirectedTreatment
+    , conoOrdinal
+
     -- ** CreativeFieldValuesListResponse
     , CreativeFieldValuesListResponse
     , creativeFieldValuesListResponse
@@ -2675,6 +2774,13 @@
     -- ** AccountAccountProFile
     , AccountAccountProFile (..)
 
+    -- ** ConversionsBatchInsertResponse
+    , ConversionsBatchInsertResponse
+    , conversionsBatchInsertResponse
+    , cbirbStatus
+    , cbirbKind
+    , cbirbHasFailures
+
     -- ** OrderDocumentsListResponse
     , OrderDocumentsListResponse
     , orderDocumentsListResponse
@@ -2710,6 +2816,9 @@
     -- ** EventTagsListSortOrder
     , EventTagsListSortOrder (..)
 
+    -- ** EncryptionInfoEncryptionSource
+    , EncryptionInfoEncryptionSource (..)
+
     -- ** DirectorySitesListSortField
     , DirectorySitesListSortField (..)
 
@@ -2825,6 +2934,9 @@
     , csIFrameHeader
     , csIFrameFooter
 
+    -- ** DynamicTargetingKeyObjectType
+    , DynamicTargetingKeyObjectType (..)
+
     -- ** ReportType
     , ReportType (..)
 
@@ -3065,6 +3177,14 @@
     -- ** FloodlightActivityCountingMethod
     , FloodlightActivityCountingMethod (..)
 
+    -- ** EncryptionInfo
+    , EncryptionInfo
+    , encryptionInfo
+    , eiEncryptionSource
+    , eiKind
+    , eiEncryptionEntityType
+    , eiEncryptionEntityId
+
     -- ** SitesListResponse
     , SitesListResponse
     , sitesListResponse
@@ -3152,6 +3272,7 @@
 import           Network.Google.Resource.DFAReporting.ContentCategories.List
 import           Network.Google.Resource.DFAReporting.ContentCategories.Patch
 import           Network.Google.Resource.DFAReporting.ContentCategories.Update
+import           Network.Google.Resource.DFAReporting.Conversions.Batchinsert
 import           Network.Google.Resource.DFAReporting.Countries.Get
 import           Network.Google.Resource.DFAReporting.Countries.List
 import           Network.Google.Resource.DFAReporting.CreativeAssets.Insert
@@ -3183,6 +3304,9 @@
 import           Network.Google.Resource.DFAReporting.DirectorySites.Get
 import           Network.Google.Resource.DFAReporting.DirectorySites.Insert
 import           Network.Google.Resource.DFAReporting.DirectorySites.List
+import           Network.Google.Resource.DFAReporting.DynamicTargetingKeys.Delete
+import           Network.Google.Resource.DFAReporting.DynamicTargetingKeys.Insert
+import           Network.Google.Resource.DFAReporting.DynamicTargetingKeys.List
 import           Network.Google.Resource.DFAReporting.EventTags.Delete
 import           Network.Google.Resource.DFAReporting.EventTags.Get
 import           Network.Google.Resource.DFAReporting.EventTags.Insert
@@ -3198,7 +3322,6 @@
 import           Network.Google.Resource.DFAReporting.FloodlightActivities.List
 import           Network.Google.Resource.DFAReporting.FloodlightActivities.Patch
 import           Network.Google.Resource.DFAReporting.FloodlightActivities.Update
-import           Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Delete
 import           Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Get
 import           Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Insert
 import           Network.Google.Resource.DFAReporting.FloodlightActivityGroups.List
@@ -3356,6 +3479,9 @@
        :<|> CampaignsPatchResource
        :<|> CampaignsGetResource
        :<|> CampaignsUpdateResource
+       :<|> DynamicTargetingKeysInsertResource
+       :<|> DynamicTargetingKeysListResource
+       :<|> DynamicTargetingKeysDeleteResource
        :<|> AccountUserProFilesInsertResource
        :<|> AccountUserProFilesListResource
        :<|> AccountUserProFilesPatchResource
@@ -3372,6 +3498,7 @@
        :<|> FloodlightConfigurationsPatchResource
        :<|> FloodlightConfigurationsGetResource
        :<|> FloodlightConfigurationsUpdateResource
+       :<|> ConversionsBatchinsertResource
        :<|> FloodlightActivitiesInsertResource
        :<|> FloodlightActivitiesListResource
        :<|> FloodlightActivitiesPatchResource
@@ -3494,5 +3621,4 @@
        :<|> FloodlightActivityGroupsListResource
        :<|> FloodlightActivityGroupsPatchResource
        :<|> FloodlightActivityGroupsGetResource
-       :<|> FloodlightActivityGroupsDeleteResource
        :<|> FloodlightActivityGroupsUpdateResource
diff --git a/gen/Network/Google/DFAReporting/Types.hs b/gen/Network/Google/DFAReporting/Types.hs
--- a/gen/Network/Google/DFAReporting/Types.hs
+++ b/gen/Network/Google/DFAReporting/Types.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE DataKinds          #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE NoImplicitPrelude  #-}
@@ -7,7 +8,7 @@
 
 -- |
 -- Module      : Network.Google.DFAReporting.Types
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -19,7 +20,8 @@
       dFAReportingService
 
     -- * OAuth Scopes
-    , dfareportingScope
+    , dFAReportingScope
+    , ddmconversionsScope
     , dfatraffickingScope
 
     -- * PlacementsListSortOrder
@@ -57,6 +59,7 @@
     -- * CreativeCustomEvent
     , CreativeCustomEvent
     , creativeCustomEvent
+    , cceAdvertiserCustomEventId
     , cceAdvertiserCustomEventType
     , cceAdvertiserCustomEventName
     , cceExitURL
@@ -129,6 +132,9 @@
     -- * CreativeAssetRole
     , CreativeAssetRole (..)
 
+    -- * DynamicTargetingKeysListObjectType
+    , DynamicTargetingKeysListObjectType (..)
+
     -- * RecipientDeliveryType
     , RecipientDeliveryType (..)
 
@@ -221,6 +227,7 @@
     , iiEstimatedConversionRate
     , iiProjectId
     , iiSubAccountId
+    , iiType
     , iiOrderId
     , iiSiteId
 
@@ -496,6 +503,9 @@
     , iilrNextPageToken
     , iilrKind
 
+    -- * CustomFloodlightVariableType
+    , CustomFloodlightVariableType (..)
+
     -- * Ad
     , Ad
     , ad
@@ -537,6 +547,9 @@
     , aDefaultClickThroughEventTagProperties
     , aPlacementAssignments
 
+    -- * ConversionErrorCode
+    , ConversionErrorCode (..)
+
     -- * FloodlightActivitiesListSortOrder
     , FloodlightActivitiesListSortOrder (..)
 
@@ -568,6 +581,9 @@
     -- * FileFormat
     , FileFormat (..)
 
+    -- * EncryptionInfoEncryptionEntityType
+    , EncryptionInfoEncryptionEntityType (..)
+
     -- * PricingSchedulePricingType
     , PricingSchedulePricingType (..)
 
@@ -860,6 +876,14 @@
     , rllrRemarketingLists
     , rllrKind
 
+    -- * DynamicTargetingKey
+    , DynamicTargetingKey
+    , dynamicTargetingKey
+    , dtkObjectType
+    , dtkKind
+    , dtkObjectId
+    , dtkName
+
     -- * Creative
     , Creative
     , creative
@@ -904,6 +928,7 @@
     , creThirdPartyRichMediaImpressionsURL
     , creLastModifiedInfo
     , creId
+    , creAuthoringSource
     , creStudioAdvertiserId
     , creCreativeAssets
     , creSubAccountId
@@ -933,6 +958,9 @@
     , scTitle
     , scContactType
 
+    -- * CreativeAuthoringSource
+    , CreativeAuthoringSource (..)
+
     -- * AccountsListResponse
     , AccountsListResponse
     , accountsListResponse
@@ -1020,6 +1048,9 @@
     -- * CreativesListSortOrder
     , CreativesListSortOrder (..)
 
+    -- * InventoryItemsListType
+    , InventoryItemsListType (..)
+
     -- * ThirdPartyAuthenticationToken
     , ThirdPartyAuthenticationToken
     , thirdPartyAuthenticationToken
@@ -1081,6 +1112,7 @@
     , ssLookbackConfiguration
     , ssTagSetting
     , ssActiveViewOptOut
+    , ssVideoActiveViewOptOut
     , ssCreativeSettings
 
     -- * PlacementStrategiesListSortField
@@ -1138,6 +1170,13 @@
     , aaDefaultCreativeSizeId
     , aaDescription
 
+    -- * ConversionsBatchInsertRequest
+    , ConversionsBatchInsertRequest
+    , conversionsBatchInsertRequest
+    , cbirKind
+    , cbirConversions
+    , cbirEncryptionInfo
+
     -- * AccountActiveAdSummaryActiveAdsLimitTier
     , AccountActiveAdSummaryActiveAdsLimitTier (..)
 
@@ -1205,6 +1244,12 @@
     -- * FloodlightActivitiesListSortField
     , FloodlightActivitiesListSortField (..)
 
+    -- * DynamicTargetingKeysListResponse
+    , DynamicTargetingKeysListResponse
+    , dynamicTargetingKeysListResponse
+    , dtklrKind
+    , dtklrDynamicTargetingKeys
+
     -- * DimensionValueList
     , DimensionValueList
     , dimensionValueList
@@ -1273,6 +1318,9 @@
     -- * PlacementGroupsListPricingTypes
     , PlacementGroupsListPricingTypes (..)
 
+    -- * DynamicTargetingKeysDeleteObjectType
+    , DynamicTargetingKeysDeleteObjectType (..)
+
     -- * AccountActiveAdsLimitTier
     , AccountActiveAdsLimitTier (..)
 
@@ -1346,6 +1394,13 @@
     , ccaKind
     , ccaCreativeId
 
+    -- * ConversionStatus
+    , ConversionStatus
+    , conversionStatus
+    , csKind
+    , csConversion
+    , csErrors
+
     -- * LookbackConfiguration
     , LookbackConfiguration
     , lookbackConfiguration
@@ -1475,6 +1530,9 @@
     , ptcrcfCustomFloodlightVariables
     , ptcrcfPerInteractionDimensions
 
+    -- * InventoryItemType
+    , InventoryItemType (..)
+
     -- * CreativeAssetPositionTopUnit
     , CreativeAssetPositionTopUnit (..)
 
@@ -1730,6 +1788,13 @@
     -- * DayPartTargetingDaysOfWeekItem
     , DayPartTargetingDaysOfWeekItem (..)
 
+    -- * CustomFloodlightVariable
+    , CustomFloodlightVariable
+    , customFloodlightVariable
+    , cusKind
+    , cusValue
+    , cusType
+
     -- * CreativeRotationWeightCalculationStrategy
     , CreativeRotationWeightCalculationStrategy (..)
 
@@ -1831,6 +1896,13 @@
     , dslrKind
     , dslrDirectorySites
 
+    -- * ConversionError
+    , ConversionError
+    , conversionError
+    , ceKind
+    , ceCode
+    , ceMessage
+
     -- * PricingPricingType
     , PricingPricingType (..)
 
@@ -1925,7 +1997,6 @@
     , fcLookbackConfiguration
     , fcAccountId
     , fcId
-    , fcSSLRequired
     , fcNATuralSearchConversionAttributionOption
     , fcUserDefinedVariableConfigurations
     , fcSubAccountId
@@ -1946,6 +2017,22 @@
     -- * CreativeGroupAssignmentCreativeGroupNumber
     , CreativeGroupAssignmentCreativeGroupNumber (..)
 
+    -- * Conversion
+    , Conversion
+    , conversion
+    , conoTimestampMicros
+    , conoLimitAdTracking
+    , conoEncryptedUserId
+    , conoMobileDeviceId
+    , conoFloodlightConfigurationId
+    , conoKind
+    , conoFloodlightActivityId
+    , conoQuantity
+    , conoValue
+    , conoCustomVariables
+    , conoChildDirectedTreatment
+    , conoOrdinal
+
     -- * CreativeFieldValuesListResponse
     , CreativeFieldValuesListResponse
     , creativeFieldValuesListResponse
@@ -2090,6 +2177,13 @@
     -- * AccountAccountProFile
     , AccountAccountProFile (..)
 
+    -- * ConversionsBatchInsertResponse
+    , ConversionsBatchInsertResponse
+    , conversionsBatchInsertResponse
+    , cbirbStatus
+    , cbirbKind
+    , cbirbHasFailures
+
     -- * OrderDocumentsListResponse
     , OrderDocumentsListResponse
     , orderDocumentsListResponse
@@ -2125,6 +2219,9 @@
     -- * EventTagsListSortOrder
     , EventTagsListSortOrder (..)
 
+    -- * EncryptionInfoEncryptionSource
+    , EncryptionInfoEncryptionSource (..)
+
     -- * DirectorySitesListSortField
     , DirectorySitesListSortField (..)
 
@@ -2240,6 +2337,9 @@
     , csIFrameHeader
     , csIFrameFooter
 
+    -- * DynamicTargetingKeyObjectType
+    , DynamicTargetingKeyObjectType (..)
+
     -- * ReportType
     , ReportType (..)
 
@@ -2480,6 +2580,14 @@
     -- * FloodlightActivityCountingMethod
     , FloodlightActivityCountingMethod (..)
 
+    -- * EncryptionInfo
+    , EncryptionInfo
+    , encryptionInfo
+    , eiEncryptionSource
+    , eiKind
+    , eiEncryptionEntityType
+    , eiEncryptionEntityId
+
     -- * SitesListResponse
     , SitesListResponse
     , sitesListResponse
@@ -2520,17 +2628,21 @@
 import           Network.Google.DFAReporting.Types.Sum
 import           Network.Google.Prelude
 
--- | Default request referring to version 'v2.2' of the DCM/DFA Reporting And Trafficking API. This contains the host and root path used as a starting point for constructing service requests.
-dFAReportingService :: Service
+-- | Default request referring to version 'v2.5' of the DCM/DFA Reporting And Trafficking API. This contains the host and root path used as a starting point for constructing service requests.
+dFAReportingService :: ServiceConfig
 dFAReportingService
-  = defaultService (ServiceId "dfareporting:v2.2")
+  = defaultService (ServiceId "dfareporting:v2.5")
       "www.googleapis.com"
 
 -- | View and manage DoubleClick for Advertisers reports
-dfareportingScope :: OAuthScope
-dfareportingScope = "https://www.googleapis.com/auth/dfareporting";
+dFAReportingScope :: Proxy '["https://www.googleapis.com/auth/dfareporting"]
+dFAReportingScope = Proxy;
 
+-- | Manage DoubleClick Digital Marketing conversions
+ddmconversionsScope :: Proxy '["https://www.googleapis.com/auth/ddmconversions"]
+ddmconversionsScope = Proxy;
+
 -- | View and manage your DoubleClick Campaign Manager\'s (DCM) display ad
 -- campaigns
-dfatraffickingScope :: OAuthScope
-dfatraffickingScope = "https://www.googleapis.com/auth/dfatrafficking";
+dfatraffickingScope :: Proxy '["https://www.googleapis.com/auth/dfatrafficking"]
+dfatraffickingScope = Proxy;
diff --git a/gen/Network/Google/DFAReporting/Types/Product.hs b/gen/Network/Google/DFAReporting/Types/Product.hs
--- a/gen/Network/Google/DFAReporting/Types/Product.hs
+++ b/gen/Network/Google/DFAReporting/Types/Product.hs
@@ -9,20447 +9,21239 @@
 
 -- |
 -- Module      : Network.Google.DFAReporting.Types.Product
--- Copyright   : (c) 2015 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.Google.DFAReporting.Types.Product where
-
-import           Network.Google.DFAReporting.Types.Sum
-import           Network.Google.Prelude
-
--- | Represents the list of File resources.
---
--- /See:/ 'fileList' smart constructor.
-data FileList = FileList
-    { _flEtag          :: !(Maybe Text)
-    , _flNextPageToken :: !(Maybe Text)
-    , _flKind          :: !Text
-    , _flItems         :: !(Maybe [File])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FileList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'flEtag'
---
--- * 'flNextPageToken'
---
--- * 'flKind'
---
--- * 'flItems'
-fileList
-    :: FileList
-fileList =
-    FileList
-    { _flEtag = Nothing
-    , _flNextPageToken = Nothing
-    , _flKind = "dfareporting#fileList"
-    , _flItems = Nothing
-    }
-
--- | The eTag of this response for caching purposes.
-flEtag :: Lens' FileList (Maybe Text)
-flEtag = lens _flEtag (\ s a -> s{_flEtag = a})
-
--- | Continuation token used to page through files. To retrieve the next page
--- of results, set the next request\'s \"pageToken\" to the value of this
--- field. The page token is only valid for a limited amount of time and
--- should not be persisted.
-flNextPageToken :: Lens' FileList (Maybe Text)
-flNextPageToken
-  = lens _flNextPageToken
-      (\ s a -> s{_flNextPageToken = a})
-
--- | The kind of list this is, in this case dfareporting#fileList.
-flKind :: Lens' FileList Text
-flKind = lens _flKind (\ s a -> s{_flKind = a})
-
--- | The files returned in this response.
-flItems :: Lens' FileList [File]
-flItems
-  = lens _flItems (\ s a -> s{_flItems = a}) . _Default
-      . _Coerce
-
-instance FromJSON FileList where
-        parseJSON
-          = withObject "FileList"
-              (\ o ->
-                 FileList <$>
-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "dfareporting#fileList")
-                     <*> (o .:? "items" .!= mempty))
-
-instance ToJSON FileList where
-        toJSON FileList{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _flEtag,
-                  ("nextPageToken" .=) <$> _flNextPageToken,
-                  Just ("kind" .= _flKind), ("items" .=) <$> _flItems])
-
--- | Creative optimization activity.
---
--- /See:/ 'optimizationActivity' smart constructor.
-data OptimizationActivity = OptimizationActivity
-    { _oaWeight                             :: !(Maybe (Textual Int32))
-    , _oaFloodlightActivityId               :: !(Maybe (Textual Int64))
-    , _oaFloodlightActivityIdDimensionValue :: !(Maybe DimensionValue)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OptimizationActivity' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oaWeight'
---
--- * 'oaFloodlightActivityId'
---
--- * 'oaFloodlightActivityIdDimensionValue'
-optimizationActivity
-    :: OptimizationActivity
-optimizationActivity =
-    OptimizationActivity
-    { _oaWeight = Nothing
-    , _oaFloodlightActivityId = Nothing
-    , _oaFloodlightActivityIdDimensionValue = Nothing
-    }
-
--- | Weight associated with this optimization. Must be greater than 1. The
--- weight assigned will be understood in proportion to the weights assigned
--- to the other optimization activities.
-oaWeight :: Lens' OptimizationActivity (Maybe Int32)
-oaWeight
-  = lens _oaWeight (\ s a -> s{_oaWeight = a}) .
-      mapping _Coerce
-
--- | Floodlight activity ID of this optimization activity. This is a required
--- field.
-oaFloodlightActivityId :: Lens' OptimizationActivity (Maybe Int64)
-oaFloodlightActivityId
-  = lens _oaFloodlightActivityId
-      (\ s a -> s{_oaFloodlightActivityId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the floodlight activity. This is a
--- read-only, auto-generated field.
-oaFloodlightActivityIdDimensionValue :: Lens' OptimizationActivity (Maybe DimensionValue)
-oaFloodlightActivityIdDimensionValue
-  = lens _oaFloodlightActivityIdDimensionValue
-      (\ s a ->
-         s{_oaFloodlightActivityIdDimensionValue = a})
-
-instance FromJSON OptimizationActivity where
-        parseJSON
-          = withObject "OptimizationActivity"
-              (\ o ->
-                 OptimizationActivity <$>
-                   (o .:? "weight") <*> (o .:? "floodlightActivityId")
-                     <*> (o .:? "floodlightActivityIdDimensionValue"))
-
-instance ToJSON OptimizationActivity where
-        toJSON OptimizationActivity{..}
-          = object
-              (catMaybes
-                 [("weight" .=) <$> _oaWeight,
-                  ("floodlightActivityId" .=) <$>
-                    _oaFloodlightActivityId,
-                  ("floodlightActivityIdDimensionValue" .=) <$>
-                    _oaFloodlightActivityIdDimensionValue])
-
--- | A group clause made up of list population terms representing constraints
--- joined by ORs.
---
--- /See:/ 'listPopulationClause' smart constructor.
-newtype ListPopulationClause = ListPopulationClause
-    { _lpcTerms :: Maybe [ListPopulationTerm]
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListPopulationClause' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lpcTerms'
-listPopulationClause
-    :: ListPopulationClause
-listPopulationClause =
-    ListPopulationClause
-    { _lpcTerms = Nothing
-    }
-
--- | Terms of this list population clause. Each clause is made up of list
--- population terms representing constraints and are joined by ORs.
-lpcTerms :: Lens' ListPopulationClause [ListPopulationTerm]
-lpcTerms
-  = lens _lpcTerms (\ s a -> s{_lpcTerms = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON ListPopulationClause where
-        parseJSON
-          = withObject "ListPopulationClause"
-              (\ o ->
-                 ListPopulationClause <$> (o .:? "terms" .!= mempty))
-
-instance ToJSON ListPopulationClause where
-        toJSON ListPopulationClause{..}
-          = object (catMaybes [("terms" .=) <$> _lpcTerms])
-
--- | Creative Custom Event.
---
--- /See:/ 'creativeCustomEvent' smart constructor.
-data CreativeCustomEvent = CreativeCustomEvent
-    { _cceAdvertiserCustomEventType :: !(Maybe CreativeCustomEventAdvertiserCustomEventType)
-    , _cceAdvertiserCustomEventName :: !(Maybe Text)
-    , _cceExitURL                   :: !(Maybe Text)
-    , _cceTargetType                :: !(Maybe CreativeCustomEventTargetType)
-    , _ccePopupWindowProperties     :: !(Maybe PopupWindowProperties)
-    , _cceVideoReportingId          :: !(Maybe Text)
-    , _cceId                        :: !(Maybe (Textual Int64))
-    , _cceArtworkLabel              :: !(Maybe Text)
-    , _cceArtworkType               :: !(Maybe CreativeCustomEventArtworkType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeCustomEvent' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cceAdvertiserCustomEventType'
---
--- * 'cceAdvertiserCustomEventName'
---
--- * 'cceExitURL'
---
--- * 'cceTargetType'
---
--- * 'ccePopupWindowProperties'
---
--- * 'cceVideoReportingId'
---
--- * 'cceId'
---
--- * 'cceArtworkLabel'
---
--- * 'cceArtworkType'
-creativeCustomEvent
-    :: CreativeCustomEvent
-creativeCustomEvent =
-    CreativeCustomEvent
-    { _cceAdvertiserCustomEventType = Nothing
-    , _cceAdvertiserCustomEventName = Nothing
-    , _cceExitURL = Nothing
-    , _cceTargetType = Nothing
-    , _ccePopupWindowProperties = Nothing
-    , _cceVideoReportingId = Nothing
-    , _cceId = Nothing
-    , _cceArtworkLabel = Nothing
-    , _cceArtworkType = Nothing
-    }
-
--- | Type of the event. This is a read-only field.
-cceAdvertiserCustomEventType :: Lens' CreativeCustomEvent (Maybe CreativeCustomEventAdvertiserCustomEventType)
-cceAdvertiserCustomEventType
-  = lens _cceAdvertiserCustomEventType
-      (\ s a -> s{_cceAdvertiserCustomEventType = a})
-
--- | User-entered name for the event.
-cceAdvertiserCustomEventName :: Lens' CreativeCustomEvent (Maybe Text)
-cceAdvertiserCustomEventName
-  = lens _cceAdvertiserCustomEventName
-      (\ s a -> s{_cceAdvertiserCustomEventName = a})
-
--- | Exit URL of the event. This field is used only for exit events.
-cceExitURL :: Lens' CreativeCustomEvent (Maybe Text)
-cceExitURL
-  = lens _cceExitURL (\ s a -> s{_cceExitURL = a})
-
--- | Target type used by the event.
-cceTargetType :: Lens' CreativeCustomEvent (Maybe CreativeCustomEventTargetType)
-cceTargetType
-  = lens _cceTargetType
-      (\ s a -> s{_cceTargetType = a})
-
--- | Properties for rich media popup windows. This field is used only for
--- exit events.
-ccePopupWindowProperties :: Lens' CreativeCustomEvent (Maybe PopupWindowProperties)
-ccePopupWindowProperties
-  = lens _ccePopupWindowProperties
-      (\ s a -> s{_ccePopupWindowProperties = a})
-
--- | Reporting ID, used to differentiate multiple videos in a single
--- creative.
-cceVideoReportingId :: Lens' CreativeCustomEvent (Maybe Text)
-cceVideoReportingId
-  = lens _cceVideoReportingId
-      (\ s a -> s{_cceVideoReportingId = a})
-
--- | ID of this event. This is a required field and should not be modified
--- after insertion.
-cceId :: Lens' CreativeCustomEvent (Maybe Int64)
-cceId
-  = lens _cceId (\ s a -> s{_cceId = a}) .
-      mapping _Coerce
-
--- | Artwork label column, used to link events in DCM back to events in
--- Studio. This is a required field and should not be modified after
--- insertion.
-cceArtworkLabel :: Lens' CreativeCustomEvent (Maybe Text)
-cceArtworkLabel
-  = lens _cceArtworkLabel
-      (\ s a -> s{_cceArtworkLabel = a})
-
--- | Artwork type used by the creative.This is a read-only field.
-cceArtworkType :: Lens' CreativeCustomEvent (Maybe CreativeCustomEventArtworkType)
-cceArtworkType
-  = lens _cceArtworkType
-      (\ s a -> s{_cceArtworkType = a})
-
-instance FromJSON CreativeCustomEvent where
-        parseJSON
-          = withObject "CreativeCustomEvent"
-              (\ o ->
-                 CreativeCustomEvent <$>
-                   (o .:? "advertiserCustomEventType") <*>
-                     (o .:? "advertiserCustomEventName")
-                     <*> (o .:? "exitUrl")
-                     <*> (o .:? "targetType")
-                     <*> (o .:? "popupWindowProperties")
-                     <*> (o .:? "videoReportingId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "artworkLabel")
-                     <*> (o .:? "artworkType"))
-
-instance ToJSON CreativeCustomEvent where
-        toJSON CreativeCustomEvent{..}
-          = object
-              (catMaybes
-                 [("advertiserCustomEventType" .=) <$>
-                    _cceAdvertiserCustomEventType,
-                  ("advertiserCustomEventName" .=) <$>
-                    _cceAdvertiserCustomEventName,
-                  ("exitUrl" .=) <$> _cceExitURL,
-                  ("targetType" .=) <$> _cceTargetType,
-                  ("popupWindowProperties" .=) <$>
-                    _ccePopupWindowProperties,
-                  ("videoReportingId" .=) <$> _cceVideoReportingId,
-                  ("id" .=) <$> _cceId,
-                  ("artworkLabel" .=) <$> _cceArtworkLabel,
-                  ("artworkType" .=) <$> _cceArtworkType])
-
--- | Creative Click Tag.
---
--- /See:/ 'clickTag' smart constructor.
-data ClickTag = ClickTag
-    { _ctValue     :: !(Maybe Text)
-    , _ctName      :: !(Maybe Text)
-    , _ctEventName :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ClickTag' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ctValue'
---
--- * 'ctName'
---
--- * 'ctEventName'
-clickTag
-    :: ClickTag
-clickTag =
-    ClickTag
-    { _ctValue = Nothing
-    , _ctName = Nothing
-    , _ctEventName = Nothing
-    }
-
--- | Parameter value for the specified click tag. This field contains a
--- click-through url.
-ctValue :: Lens' ClickTag (Maybe Text)
-ctValue = lens _ctValue (\ s a -> s{_ctValue = a})
-
--- | Parameter name for the specified click tag. For ENHANCED_IMAGE creative
--- assets, this field must match the value of the creative asset\'s
--- creativeAssetId.name field.
-ctName :: Lens' ClickTag (Maybe Text)
-ctName = lens _ctName (\ s a -> s{_ctName = a})
-
--- | Advertiser event name associated with the click tag. This field is used
--- by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
-ctEventName :: Lens' ClickTag (Maybe Text)
-ctEventName
-  = lens _ctEventName (\ s a -> s{_ctEventName = a})
-
-instance FromJSON ClickTag where
-        parseJSON
-          = withObject "ClickTag"
-              (\ o ->
-                 ClickTag <$>
-                   (o .:? "value") <*> (o .:? "name") <*>
-                     (o .:? "eventName"))
-
-instance ToJSON ClickTag where
-        toJSON ClickTag{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ctValue, ("name" .=) <$> _ctName,
-                  ("eventName" .=) <$> _ctEventName])
-
--- | Campaign List Response
---
--- /See:/ 'campaignsListResponse' smart constructor.
-data CampaignsListResponse = CampaignsListResponse
-    { _clrNextPageToken :: !(Maybe Text)
-    , _clrCampaigns     :: !(Maybe [Campaign])
-    , _clrKind          :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CampaignsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clrNextPageToken'
---
--- * 'clrCampaigns'
---
--- * 'clrKind'
-campaignsListResponse
-    :: CampaignsListResponse
-campaignsListResponse =
-    CampaignsListResponse
-    { _clrNextPageToken = Nothing
-    , _clrCampaigns = Nothing
-    , _clrKind = "dfareporting#campaignsListResponse"
-    }
-
--- | Pagination token to be used for the next list operation.
-clrNextPageToken :: Lens' CampaignsListResponse (Maybe Text)
-clrNextPageToken
-  = lens _clrNextPageToken
-      (\ s a -> s{_clrNextPageToken = a})
-
--- | Campaign collection.
-clrCampaigns :: Lens' CampaignsListResponse [Campaign]
-clrCampaigns
-  = lens _clrCampaigns (\ s a -> s{_clrCampaigns = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#campaignsListResponse\".
-clrKind :: Lens' CampaignsListResponse Text
-clrKind = lens _clrKind (\ s a -> s{_clrKind = a})
-
-instance FromJSON CampaignsListResponse where
-        parseJSON
-          = withObject "CampaignsListResponse"
-              (\ o ->
-                 CampaignsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "campaigns" .!= mempty)
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#campaignsListResponse"))
-
-instance ToJSON CampaignsListResponse where
-        toJSON CampaignsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _clrNextPageToken,
-                  ("campaigns" .=) <$> _clrCampaigns,
-                  Just ("kind" .= _clrKind)])
-
--- | Geographical Targeting.
---
--- /See:/ 'geoTargeting' smart constructor.
-data GeoTargeting = GeoTargeting
-    { _gtRegions          :: !(Maybe [Region])
-    , _gtCountries        :: !(Maybe [Country])
-    , _gtCities           :: !(Maybe [City])
-    , _gtMetros           :: !(Maybe [Metro])
-    , _gtExcludeCountries :: !(Maybe Bool)
-    , _gtPostalCodes      :: !(Maybe [PostalCode])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GeoTargeting' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gtRegions'
---
--- * 'gtCountries'
---
--- * 'gtCities'
---
--- * 'gtMetros'
---
--- * 'gtExcludeCountries'
---
--- * 'gtPostalCodes'
-geoTargeting
-    :: GeoTargeting
-geoTargeting =
-    GeoTargeting
-    { _gtRegions = Nothing
-    , _gtCountries = Nothing
-    , _gtCities = Nothing
-    , _gtMetros = Nothing
-    , _gtExcludeCountries = Nothing
-    , _gtPostalCodes = Nothing
-    }
-
--- | Regions to be targeted. For each region only dartId is required. The
--- other fields are populated automatically when the ad is inserted or
--- updated. If targeting a region, do not target or exclude the country of
--- the region.
-gtRegions :: Lens' GeoTargeting [Region]
-gtRegions
-  = lens _gtRegions (\ s a -> s{_gtRegions = a}) .
-      _Default
-      . _Coerce
-
--- | Countries to be targeted or excluded from targeting, depending on the
--- setting of the excludeCountries field. For each country only dartId is
--- required. The other fields are populated automatically when the ad is
--- inserted or updated. If targeting or excluding a country, do not target
--- regions, cities, metros, or postal codes in the same country.
-gtCountries :: Lens' GeoTargeting [Country]
-gtCountries
-  = lens _gtCountries (\ s a -> s{_gtCountries = a}) .
-      _Default
-      . _Coerce
-
--- | Cities to be targeted. For each city only dartId is required. The other
--- fields are populated automatically when the ad is inserted or updated.
--- If targeting a city, do not target or exclude the country of the city,
--- and do not target the metro or region of the city.
-gtCities :: Lens' GeoTargeting [City]
-gtCities
-  = lens _gtCities (\ s a -> s{_gtCities = a}) .
-      _Default
-      . _Coerce
-
--- | Metros to be targeted. For each metro only dmaId is required. The other
--- fields are populated automatically when the ad is inserted or updated.
--- If targeting a metro, do not target or exclude the country of the metro.
-gtMetros :: Lens' GeoTargeting [Metro]
-gtMetros
-  = lens _gtMetros (\ s a -> s{_gtMetros = a}) .
-      _Default
-      . _Coerce
-
--- | Whether or not to exclude the countries in the countries field from
--- targeting. If false, the countries field refers to countries which will
--- be targeted by the ad.
-gtExcludeCountries :: Lens' GeoTargeting (Maybe Bool)
-gtExcludeCountries
-  = lens _gtExcludeCountries
-      (\ s a -> s{_gtExcludeCountries = a})
-
--- | Postal codes to be targeted. For each postal code only id is required.
--- The other fields are populated automatically when the ad is inserted or
--- updated. If targeting a postal code, do not target or exclude the
--- country of the postal code.
-gtPostalCodes :: Lens' GeoTargeting [PostalCode]
-gtPostalCodes
-  = lens _gtPostalCodes
-      (\ s a -> s{_gtPostalCodes = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON GeoTargeting where
-        parseJSON
-          = withObject "GeoTargeting"
-              (\ o ->
-                 GeoTargeting <$>
-                   (o .:? "regions" .!= mempty) <*>
-                     (o .:? "countries" .!= mempty)
-                     <*> (o .:? "cities" .!= mempty)
-                     <*> (o .:? "metros" .!= mempty)
-                     <*> (o .:? "excludeCountries")
-                     <*> (o .:? "postalCodes" .!= mempty))
-
-instance ToJSON GeoTargeting where
-        toJSON GeoTargeting{..}
-          = object
-              (catMaybes
-                 [("regions" .=) <$> _gtRegions,
-                  ("countries" .=) <$> _gtCountries,
-                  ("cities" .=) <$> _gtCities,
-                  ("metros" .=) <$> _gtMetros,
-                  ("excludeCountries" .=) <$> _gtExcludeCountries,
-                  ("postalCodes" .=) <$> _gtPostalCodes])
-
--- | Represents fields that are compatible to be selected for a report of
--- type \"REACH\".
---
--- /See:/ 'reachReportCompatibleFields' smart constructor.
-data ReachReportCompatibleFields = ReachReportCompatibleFields
-    { _rrcfMetrics                 :: !(Maybe [Metric])
-    , _rrcfReachByFrequencyMetrics :: !(Maybe [Metric])
-    , _rrcfKind                    :: !Text
-    , _rrcfDimensionFilters        :: !(Maybe [Dimension])
-    , _rrcfPivotedActivityMetrics  :: !(Maybe [Metric])
-    , _rrcfDimensions              :: !(Maybe [Dimension])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReachReportCompatibleFields' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rrcfMetrics'
---
--- * 'rrcfReachByFrequencyMetrics'
---
--- * 'rrcfKind'
---
--- * 'rrcfDimensionFilters'
---
--- * 'rrcfPivotedActivityMetrics'
---
--- * 'rrcfDimensions'
-reachReportCompatibleFields
-    :: ReachReportCompatibleFields
-reachReportCompatibleFields =
-    ReachReportCompatibleFields
-    { _rrcfMetrics = Nothing
-    , _rrcfReachByFrequencyMetrics = Nothing
-    , _rrcfKind = "dfareporting#reachReportCompatibleFields"
-    , _rrcfDimensionFilters = Nothing
-    , _rrcfPivotedActivityMetrics = Nothing
-    , _rrcfDimensions = Nothing
-    }
-
--- | Metrics which are compatible to be selected in the \"metricNames\"
--- section of the report.
-rrcfMetrics :: Lens' ReachReportCompatibleFields [Metric]
-rrcfMetrics
-  = lens _rrcfMetrics (\ s a -> s{_rrcfMetrics = a}) .
-      _Default
-      . _Coerce
-
--- | Metrics which are compatible to be selected in the
--- \"reachByFrequencyMetricNames\" section of the report.
-rrcfReachByFrequencyMetrics :: Lens' ReachReportCompatibleFields [Metric]
-rrcfReachByFrequencyMetrics
-  = lens _rrcfReachByFrequencyMetrics
-      (\ s a -> s{_rrcfReachByFrequencyMetrics = a})
-      . _Default
-      . _Coerce
-
--- | The kind of resource this is, in this case
--- dfareporting#reachReportCompatibleFields.
-rrcfKind :: Lens' ReachReportCompatibleFields Text
-rrcfKind = lens _rrcfKind (\ s a -> s{_rrcfKind = a})
-
--- | Dimensions which are compatible to be selected in the
--- \"dimensionFilters\" section of the report.
-rrcfDimensionFilters :: Lens' ReachReportCompatibleFields [Dimension]
-rrcfDimensionFilters
-  = lens _rrcfDimensionFilters
-      (\ s a -> s{_rrcfDimensionFilters = a})
-      . _Default
-      . _Coerce
-
--- | Metrics which are compatible to be selected as activity metrics to pivot
--- on in the \"activities\" section of the report.
-rrcfPivotedActivityMetrics :: Lens' ReachReportCompatibleFields [Metric]
-rrcfPivotedActivityMetrics
-  = lens _rrcfPivotedActivityMetrics
-      (\ s a -> s{_rrcfPivotedActivityMetrics = a})
-      . _Default
-      . _Coerce
-
--- | Dimensions which are compatible to be selected in the \"dimensions\"
--- section of the report.
-rrcfDimensions :: Lens' ReachReportCompatibleFields [Dimension]
-rrcfDimensions
-  = lens _rrcfDimensions
-      (\ s a -> s{_rrcfDimensions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ReachReportCompatibleFields where
-        parseJSON
-          = withObject "ReachReportCompatibleFields"
-              (\ o ->
-                 ReachReportCompatibleFields <$>
-                   (o .:? "metrics" .!= mempty) <*>
-                     (o .:? "reachByFrequencyMetrics" .!= mempty)
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#reachReportCompatibleFields")
-                     <*> (o .:? "dimensionFilters" .!= mempty)
-                     <*> (o .:? "pivotedActivityMetrics" .!= mempty)
-                     <*> (o .:? "dimensions" .!= mempty))
-
-instance ToJSON ReachReportCompatibleFields where
-        toJSON ReachReportCompatibleFields{..}
-          = object
-              (catMaybes
-                 [("metrics" .=) <$> _rrcfMetrics,
-                  ("reachByFrequencyMetrics" .=) <$>
-                    _rrcfReachByFrequencyMetrics,
-                  Just ("kind" .= _rrcfKind),
-                  ("dimensionFilters" .=) <$> _rrcfDimensionFilters,
-                  ("pivotedActivityMetrics" .=) <$>
-                    _rrcfPivotedActivityMetrics,
-                  ("dimensions" .=) <$> _rrcfDimensions])
-
--- | Contains information about a browser that can be targeted by ads.
---
--- /See:/ 'browser' smart constructor.
-data Browser = Browser
-    { _bMinorVersion     :: !(Maybe Text)
-    , _bKind             :: !Text
-    , _bBrowserVersionId :: !(Maybe (Textual Int64))
-    , _bMajorVersion     :: !(Maybe Text)
-    , _bName             :: !(Maybe Text)
-    , _bDartId           :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Browser' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bMinorVersion'
---
--- * 'bKind'
---
--- * 'bBrowserVersionId'
---
--- * 'bMajorVersion'
---
--- * 'bName'
---
--- * 'bDartId'
-browser
-    :: Browser
-browser =
-    Browser
-    { _bMinorVersion = Nothing
-    , _bKind = "dfareporting#browser"
-    , _bBrowserVersionId = Nothing
-    , _bMajorVersion = Nothing
-    , _bName = Nothing
-    , _bDartId = Nothing
-    }
-
--- | Minor version number (number after first dot on left) of this browser.
--- For example, for Chrome 5.0.375.86 beta, this field should be set to 0.
--- An asterisk (*) may be used to target any version number, and a question
--- mark (?) may be used to target cases where the version number cannot be
--- identified. For example, Chrome *.* targets any version of Chrome: 1.2,
--- 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0.
--- Firefox ?.? targets cases where the ad server knows the browser is
--- Firefox but can\'t tell which version it is.
-bMinorVersion :: Lens' Browser (Maybe Text)
-bMinorVersion
-  = lens _bMinorVersion
-      (\ s a -> s{_bMinorVersion = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#browser\".
-bKind :: Lens' Browser Text
-bKind = lens _bKind (\ s a -> s{_bKind = a})
-
--- | ID referring to this grouping of browser and version numbers. This is
--- the ID used for targeting.
-bBrowserVersionId :: Lens' Browser (Maybe Int64)
-bBrowserVersionId
-  = lens _bBrowserVersionId
-      (\ s a -> s{_bBrowserVersionId = a})
-      . mapping _Coerce
-
--- | Major version number (leftmost number) of this browser. For example, for
--- Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*)
--- may be used to target any version number, and a question mark (?) may be
--- used to target cases where the version number cannot be identified. For
--- example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so
--- on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets
--- cases where the ad server knows the browser is Firefox but can\'t tell
--- which version it is.
-bMajorVersion :: Lens' Browser (Maybe Text)
-bMajorVersion
-  = lens _bMajorVersion
-      (\ s a -> s{_bMajorVersion = a})
-
--- | Name of this browser.
-bName :: Lens' Browser (Maybe Text)
-bName = lens _bName (\ s a -> s{_bName = a})
-
--- | DART ID of this browser. This is the ID used when generating reports.
-bDartId :: Lens' Browser (Maybe Int64)
-bDartId
-  = lens _bDartId (\ s a -> s{_bDartId = a}) .
-      mapping _Coerce
-
-instance FromJSON Browser where
-        parseJSON
-          = withObject "Browser"
-              (\ o ->
-                 Browser <$>
-                   (o .:? "minorVersion") <*>
-                     (o .:? "kind" .!= "dfareporting#browser")
-                     <*> (o .:? "browserVersionId")
-                     <*> (o .:? "majorVersion")
-                     <*> (o .:? "name")
-                     <*> (o .:? "dartId"))
-
-instance ToJSON Browser where
-        toJSON Browser{..}
-          = object
-              (catMaybes
-                 [("minorVersion" .=) <$> _bMinorVersion,
-                  Just ("kind" .= _bKind),
-                  ("browserVersionId" .=) <$> _bBrowserVersionId,
-                  ("majorVersion" .=) <$> _bMajorVersion,
-                  ("name" .=) <$> _bName, ("dartId" .=) <$> _bDartId])
-
--- | Creative Group Assignment.
---
--- /See:/ 'creativeGroupAssignment' smart constructor.
-data CreativeGroupAssignment = CreativeGroupAssignment
-    { _cgaCreativeGroupNumber :: !(Maybe CreativeGroupAssignmentCreativeGroupNumber)
-    , _cgaCreativeGroupId     :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeGroupAssignment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cgaCreativeGroupNumber'
---
--- * 'cgaCreativeGroupId'
-creativeGroupAssignment
-    :: CreativeGroupAssignment
-creativeGroupAssignment =
-    CreativeGroupAssignment
-    { _cgaCreativeGroupNumber = Nothing
-    , _cgaCreativeGroupId = Nothing
-    }
-
--- | Creative group number of the creative group assignment.
-cgaCreativeGroupNumber :: Lens' CreativeGroupAssignment (Maybe CreativeGroupAssignmentCreativeGroupNumber)
-cgaCreativeGroupNumber
-  = lens _cgaCreativeGroupNumber
-      (\ s a -> s{_cgaCreativeGroupNumber = a})
-
--- | ID of the creative group to be assigned.
-cgaCreativeGroupId :: Lens' CreativeGroupAssignment (Maybe Int64)
-cgaCreativeGroupId
-  = lens _cgaCreativeGroupId
-      (\ s a -> s{_cgaCreativeGroupId = a})
-      . mapping _Coerce
-
-instance FromJSON CreativeGroupAssignment where
-        parseJSON
-          = withObject "CreativeGroupAssignment"
-              (\ o ->
-                 CreativeGroupAssignment <$>
-                   (o .:? "creativeGroupNumber") <*>
-                     (o .:? "creativeGroupId"))
-
-instance ToJSON CreativeGroupAssignment where
-        toJSON CreativeGroupAssignment{..}
-          = object
-              (catMaybes
-                 [("creativeGroupNumber" .=) <$>
-                    _cgaCreativeGroupNumber,
-                  ("creativeGroupId" .=) <$> _cgaCreativeGroupId])
-
--- | Directory Site Settings
---
--- /See:/ 'directorySiteSettings' smart constructor.
-data DirectorySiteSettings = DirectorySiteSettings
-    { _dssInterstitialPlacementAccepted  :: !(Maybe Bool)
-    , _dssDfpSettings                    :: !(Maybe DfpSettings)
-    , _dssVerificationTagOptOut          :: !(Maybe Bool)
-    , _dssActiveViewOptOut               :: !(Maybe Bool)
-    , _dssVideoActiveViewOptOut          :: !(Maybe Bool)
-    , _dssInstreamVideoPlacementAccepted :: !(Maybe Bool)
-    , _dssNielsenOCROptOut               :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DirectorySiteSettings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dssInterstitialPlacementAccepted'
---
--- * 'dssDfpSettings'
---
--- * 'dssVerificationTagOptOut'
---
--- * 'dssActiveViewOptOut'
---
--- * 'dssVideoActiveViewOptOut'
---
--- * 'dssInstreamVideoPlacementAccepted'
---
--- * 'dssNielsenOCROptOut'
-directorySiteSettings
-    :: DirectorySiteSettings
-directorySiteSettings =
-    DirectorySiteSettings
-    { _dssInterstitialPlacementAccepted = Nothing
-    , _dssDfpSettings = Nothing
-    , _dssVerificationTagOptOut = Nothing
-    , _dssActiveViewOptOut = Nothing
-    , _dssVideoActiveViewOptOut = Nothing
-    , _dssInstreamVideoPlacementAccepted = Nothing
-    , _dssNielsenOCROptOut = Nothing
-    }
-
--- | Whether this site accepts interstitial ads.
-dssInterstitialPlacementAccepted :: Lens' DirectorySiteSettings (Maybe Bool)
-dssInterstitialPlacementAccepted
-  = lens _dssInterstitialPlacementAccepted
-      (\ s a -> s{_dssInterstitialPlacementAccepted = a})
-
--- | Directory site DFP settings.
-dssDfpSettings :: Lens' DirectorySiteSettings (Maybe DfpSettings)
-dssDfpSettings
-  = lens _dssDfpSettings
-      (\ s a -> s{_dssDfpSettings = a})
-
--- | Whether this directory site has disabled generation of Verification ins
--- tags.
-dssVerificationTagOptOut :: Lens' DirectorySiteSettings (Maybe Bool)
-dssVerificationTagOptOut
-  = lens _dssVerificationTagOptOut
-      (\ s a -> s{_dssVerificationTagOptOut = a})
-
--- | Whether this directory site has disabled active view creatives.
-dssActiveViewOptOut :: Lens' DirectorySiteSettings (Maybe Bool)
-dssActiveViewOptOut
-  = lens _dssActiveViewOptOut
-      (\ s a -> s{_dssActiveViewOptOut = a})
-
--- | Whether this directory site has disabled active view for in-stream video
--- creatives.
-dssVideoActiveViewOptOut :: Lens' DirectorySiteSettings (Maybe Bool)
-dssVideoActiveViewOptOut
-  = lens _dssVideoActiveViewOptOut
-      (\ s a -> s{_dssVideoActiveViewOptOut = a})
-
--- | Whether this site accepts in-stream video ads.
-dssInstreamVideoPlacementAccepted :: Lens' DirectorySiteSettings (Maybe Bool)
-dssInstreamVideoPlacementAccepted
-  = lens _dssInstreamVideoPlacementAccepted
-      (\ s a -> s{_dssInstreamVideoPlacementAccepted = a})
-
--- | Whether this directory site has disabled Nielsen OCR reach ratings.
-dssNielsenOCROptOut :: Lens' DirectorySiteSettings (Maybe Bool)
-dssNielsenOCROptOut
-  = lens _dssNielsenOCROptOut
-      (\ s a -> s{_dssNielsenOCROptOut = a})
-
-instance FromJSON DirectorySiteSettings where
-        parseJSON
-          = withObject "DirectorySiteSettings"
-              (\ o ->
-                 DirectorySiteSettings <$>
-                   (o .:? "interstitialPlacementAccepted") <*>
-                     (o .:? "dfp_settings")
-                     <*> (o .:? "verificationTagOptOut")
-                     <*> (o .:? "activeViewOptOut")
-                     <*> (o .:? "videoActiveViewOptOut")
-                     <*> (o .:? "instream_video_placement_accepted")
-                     <*> (o .:? "nielsenOcrOptOut"))
-
-instance ToJSON DirectorySiteSettings where
-        toJSON DirectorySiteSettings{..}
-          = object
-              (catMaybes
-                 [("interstitialPlacementAccepted" .=) <$>
-                    _dssInterstitialPlacementAccepted,
-                  ("dfp_settings" .=) <$> _dssDfpSettings,
-                  ("verificationTagOptOut" .=) <$>
-                    _dssVerificationTagOptOut,
-                  ("activeViewOptOut" .=) <$> _dssActiveViewOptOut,
-                  ("videoActiveViewOptOut" .=) <$>
-                    _dssVideoActiveViewOptOut,
-                  ("instream_video_placement_accepted" .=) <$>
-                    _dssInstreamVideoPlacementAccepted,
-                  ("nielsenOcrOptOut" .=) <$> _dssNielsenOCROptOut])
-
--- | Remarketing List Population Rule.
---
--- /See:/ 'listPopulationRule' smart constructor.
-data ListPopulationRule = ListPopulationRule
-    { _lprFloodlightActivityName :: !(Maybe Text)
-    , _lprFloodlightActivityId   :: !(Maybe (Textual Int64))
-    , _lprListPopulationClauses  :: !(Maybe [ListPopulationClause])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListPopulationRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lprFloodlightActivityName'
---
--- * 'lprFloodlightActivityId'
---
--- * 'lprListPopulationClauses'
-listPopulationRule
-    :: ListPopulationRule
-listPopulationRule =
-    ListPopulationRule
-    { _lprFloodlightActivityName = Nothing
-    , _lprFloodlightActivityId = Nothing
-    , _lprListPopulationClauses = Nothing
-    }
-
--- | Name of floodlight activity associated with this rule. This is a
--- read-only, auto-generated field.
-lprFloodlightActivityName :: Lens' ListPopulationRule (Maybe Text)
-lprFloodlightActivityName
-  = lens _lprFloodlightActivityName
-      (\ s a -> s{_lprFloodlightActivityName = a})
-
--- | Floodlight activity ID associated with this rule. This field can be left
--- blank.
-lprFloodlightActivityId :: Lens' ListPopulationRule (Maybe Int64)
-lprFloodlightActivityId
-  = lens _lprFloodlightActivityId
-      (\ s a -> s{_lprFloodlightActivityId = a})
-      . mapping _Coerce
-
--- | Clauses that make up this list population rule. Clauses are joined by
--- ANDs, and the clauses themselves are made up of list population terms
--- which are joined by ORs.
-lprListPopulationClauses :: Lens' ListPopulationRule [ListPopulationClause]
-lprListPopulationClauses
-  = lens _lprListPopulationClauses
-      (\ s a -> s{_lprListPopulationClauses = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ListPopulationRule where
-        parseJSON
-          = withObject "ListPopulationRule"
-              (\ o ->
-                 ListPopulationRule <$>
-                   (o .:? "floodlightActivityName") <*>
-                     (o .:? "floodlightActivityId")
-                     <*> (o .:? "listPopulationClauses" .!= mempty))
-
-instance ToJSON ListPopulationRule where
-        toJSON ListPopulationRule{..}
-          = object
-              (catMaybes
-                 [("floodlightActivityName" .=) <$>
-                    _lprFloodlightActivityName,
-                  ("floodlightActivityId" .=) <$>
-                    _lprFloodlightActivityId,
-                  ("listPopulationClauses" .=) <$>
-                    _lprListPopulationClauses])
-
--- | Size List Response
---
--- /See:/ 'sizesListResponse' smart constructor.
-data SizesListResponse = SizesListResponse
-    { _slrKind  :: !Text
-    , _slrSizes :: !(Maybe [Size])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'SizesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'slrKind'
---
--- * 'slrSizes'
-sizesListResponse
-    :: SizesListResponse
-sizesListResponse =
-    SizesListResponse
-    { _slrKind = "dfareporting#sizesListResponse"
-    , _slrSizes = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#sizesListResponse\".
-slrKind :: Lens' SizesListResponse Text
-slrKind = lens _slrKind (\ s a -> s{_slrKind = a})
-
--- | Size collection.
-slrSizes :: Lens' SizesListResponse [Size]
-slrSizes
-  = lens _slrSizes (\ s a -> s{_slrSizes = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON SizesListResponse where
-        parseJSON
-          = withObject "SizesListResponse"
-              (\ o ->
-                 SizesListResponse <$>
-                   (o .:? "kind" .!= "dfareporting#sizesListResponse")
-                     <*> (o .:? "sizes" .!= mempty))
-
-instance ToJSON SizesListResponse where
-        toJSON SizesListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _slrKind),
-                  ("sizes" .=) <$> _slrSizes])
-
--- | Creative Rotation.
---
--- /See:/ 'creativeRotation' smart constructor.
-data CreativeRotation = CreativeRotation
-    { _crWeightCalculationStrategy           :: !(Maybe CreativeRotationWeightCalculationStrategy)
-    , _crCreativeAssignments                 :: !(Maybe [CreativeAssignment])
-    , _crCreativeOptimizationConfigurationId :: !(Maybe (Textual Int64))
-    , _crType                                :: !(Maybe CreativeRotationType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeRotation' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'crWeightCalculationStrategy'
---
--- * 'crCreativeAssignments'
---
--- * 'crCreativeOptimizationConfigurationId'
---
--- * 'crType'
-creativeRotation
-    :: CreativeRotation
-creativeRotation =
-    CreativeRotation
-    { _crWeightCalculationStrategy = Nothing
-    , _crCreativeAssignments = Nothing
-    , _crCreativeOptimizationConfigurationId = Nothing
-    , _crType = Nothing
-    }
-
--- | Strategy for calculating weights. Used with
--- CREATIVE_ROTATION_TYPE_RANDOM.
-crWeightCalculationStrategy :: Lens' CreativeRotation (Maybe CreativeRotationWeightCalculationStrategy)
-crWeightCalculationStrategy
-  = lens _crWeightCalculationStrategy
-      (\ s a -> s{_crWeightCalculationStrategy = a})
-
--- | Creative assignments in this creative rotation.
-crCreativeAssignments :: Lens' CreativeRotation [CreativeAssignment]
-crCreativeAssignments
-  = lens _crCreativeAssignments
-      (\ s a -> s{_crCreativeAssignments = a})
-      . _Default
-      . _Coerce
-
--- | Creative optimization configuration that is used by this ad. It should
--- refer to one of the existing optimization configurations in the ad\'s
--- campaign. If it is unset or set to 0, then the campaign\'s default
--- optimization configuration will be used for this ad.
-crCreativeOptimizationConfigurationId :: Lens' CreativeRotation (Maybe Int64)
-crCreativeOptimizationConfigurationId
-  = lens _crCreativeOptimizationConfigurationId
-      (\ s a ->
-         s{_crCreativeOptimizationConfigurationId = a})
-      . mapping _Coerce
-
--- | Type of creative rotation. Can be used to specify whether to use
--- sequential or random rotation.
-crType :: Lens' CreativeRotation (Maybe CreativeRotationType)
-crType = lens _crType (\ s a -> s{_crType = a})
-
-instance FromJSON CreativeRotation where
-        parseJSON
-          = withObject "CreativeRotation"
-              (\ o ->
-                 CreativeRotation <$>
-                   (o .:? "weightCalculationStrategy") <*>
-                     (o .:? "creativeAssignments" .!= mempty)
-                     <*> (o .:? "creativeOptimizationConfigurationId")
-                     <*> (o .:? "type"))
-
-instance ToJSON CreativeRotation where
-        toJSON CreativeRotation{..}
-          = object
-              (catMaybes
-                 [("weightCalculationStrategy" .=) <$>
-                    _crWeightCalculationStrategy,
-                  ("creativeAssignments" .=) <$>
-                    _crCreativeAssignments,
-                  ("creativeOptimizationConfigurationId" .=) <$>
-                    _crCreativeOptimizationConfigurationId,
-                  ("type" .=) <$> _crType])
-
--- | Technology Targeting.
---
--- /See:/ 'technologyTargeting' smart constructor.
-data TechnologyTargeting = TechnologyTargeting
-    { _ttMobileCarriers          :: !(Maybe [MobileCarrier])
-    , _ttOperatingSystemVersions :: !(Maybe [OperatingSystemVersion])
-    , _ttPlatformTypes           :: !(Maybe [PlatformType])
-    , _ttBrowsers                :: !(Maybe [Browser])
-    , _ttConnectionTypes         :: !(Maybe [ConnectionType])
-    , _ttOperatingSystems        :: !(Maybe [OperatingSystem])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TechnologyTargeting' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttMobileCarriers'
---
--- * 'ttOperatingSystemVersions'
---
--- * 'ttPlatformTypes'
---
--- * 'ttBrowsers'
---
--- * 'ttConnectionTypes'
---
--- * 'ttOperatingSystems'
-technologyTargeting
-    :: TechnologyTargeting
-technologyTargeting =
-    TechnologyTargeting
-    { _ttMobileCarriers = Nothing
-    , _ttOperatingSystemVersions = Nothing
-    , _ttPlatformTypes = Nothing
-    , _ttBrowsers = Nothing
-    , _ttConnectionTypes = Nothing
-    , _ttOperatingSystems = Nothing
-    }
-
--- | Mobile carriers that this ad targets. For each mobile carrier only id is
--- required, and the other fields are populated automatically when the ad
--- is inserted or updated. If targeting a mobile carrier, do not set
--- targeting for any zip codes.
-ttMobileCarriers :: Lens' TechnologyTargeting [MobileCarrier]
-ttMobileCarriers
-  = lens _ttMobileCarriers
-      (\ s a -> s{_ttMobileCarriers = a})
-      . _Default
-      . _Coerce
-
--- | Operating system versions that this ad targets. To target all versions,
--- use operatingSystems. For each operating system version, only id is
--- required. The other fields are populated automatically when the ad is
--- inserted or updated. If targeting an operating system version, do not
--- set targeting for the corresponding operating system in
--- operatingSystems.
-ttOperatingSystemVersions :: Lens' TechnologyTargeting [OperatingSystemVersion]
-ttOperatingSystemVersions
-  = lens _ttOperatingSystemVersions
-      (\ s a -> s{_ttOperatingSystemVersions = a})
-      . _Default
-      . _Coerce
-
--- | Platform types that this ad targets. For example, desktop, mobile, or
--- tablet. For each platform type, only id is required, and the other
--- fields are populated automatically when the ad is inserted or updated.
-ttPlatformTypes :: Lens' TechnologyTargeting [PlatformType]
-ttPlatformTypes
-  = lens _ttPlatformTypes
-      (\ s a -> s{_ttPlatformTypes = a})
-      . _Default
-      . _Coerce
-
--- | Browsers that this ad targets. For each browser either set
--- browserVersionId or dartId along with the version numbers. If both are
--- specified, only browserVersionId will be used.The other fields are
--- populated automatically when the ad is inserted or updated.
-ttBrowsers :: Lens' TechnologyTargeting [Browser]
-ttBrowsers
-  = lens _ttBrowsers (\ s a -> s{_ttBrowsers = a}) .
-      _Default
-      . _Coerce
-
--- | Connection types that this ad targets. For each connection type only id
--- is required.The other fields are populated automatically when the ad is
--- inserted or updated.
-ttConnectionTypes :: Lens' TechnologyTargeting [ConnectionType]
-ttConnectionTypes
-  = lens _ttConnectionTypes
-      (\ s a -> s{_ttConnectionTypes = a})
-      . _Default
-      . _Coerce
-
--- | Operating systems that this ad targets. To target specific versions, use
--- operatingSystemVersions. For each operating system only dartId is
--- required. The other fields are populated automatically when the ad is
--- inserted or updated. If targeting an operating system, do not set
--- targeting for operating system versions for the same operating system.
-ttOperatingSystems :: Lens' TechnologyTargeting [OperatingSystem]
-ttOperatingSystems
-  = lens _ttOperatingSystems
-      (\ s a -> s{_ttOperatingSystems = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TechnologyTargeting where
-        parseJSON
-          = withObject "TechnologyTargeting"
-              (\ o ->
-                 TechnologyTargeting <$>
-                   (o .:? "mobileCarriers" .!= mempty) <*>
-                     (o .:? "operatingSystemVersions" .!= mempty)
-                     <*> (o .:? "platformTypes" .!= mempty)
-                     <*> (o .:? "browsers" .!= mempty)
-                     <*> (o .:? "connectionTypes" .!= mempty)
-                     <*> (o .:? "operatingSystems" .!= mempty))
-
-instance ToJSON TechnologyTargeting where
-        toJSON TechnologyTargeting{..}
-          = object
-              (catMaybes
-                 [("mobileCarriers" .=) <$> _ttMobileCarriers,
-                  ("operatingSystemVersions" .=) <$>
-                    _ttOperatingSystemVersions,
-                  ("platformTypes" .=) <$> _ttPlatformTypes,
-                  ("browsers" .=) <$> _ttBrowsers,
-                  ("connectionTypes" .=) <$> _ttConnectionTypes,
-                  ("operatingSystems" .=) <$> _ttOperatingSystems])
-
--- | Represents a buy from the DoubleClick Planning inventory store.
---
--- /See:/ 'inventoryItem' smart constructor.
-data InventoryItem = InventoryItem
-    { _iiPlacementStrategyId       :: !(Maybe (Textual Int64))
-    , _iiEstimatedClickThroughRate :: !(Maybe (Textual Int64))
-    , _iiPricing                   :: !(Maybe Pricing)
-    , _iiKind                      :: !Text
-    , _iiAdvertiserId              :: !(Maybe (Textual Int64))
-    , _iiRfpId                     :: !(Maybe (Textual Int64))
-    , _iiContentCategoryId         :: !(Maybe (Textual Int64))
-    , _iiInPlan                    :: !(Maybe Bool)
-    , _iiAccountId                 :: !(Maybe (Textual Int64))
-    , _iiName                      :: !(Maybe Text)
-    , _iiAdSlots                   :: !(Maybe [AdSlot])
-    , _iiNegotiationChannelId      :: !(Maybe (Textual Int64))
-    , _iiLastModifiedInfo          :: !(Maybe LastModifiedInfo)
-    , _iiId                        :: !(Maybe (Textual Int64))
-    , _iiEstimatedConversionRate   :: !(Maybe (Textual Int64))
-    , _iiProjectId                 :: !(Maybe (Textual Int64))
-    , _iiSubAccountId              :: !(Maybe (Textual Int64))
-    , _iiOrderId                   :: !(Maybe (Textual Int64))
-    , _iiSiteId                    :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'InventoryItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iiPlacementStrategyId'
---
--- * 'iiEstimatedClickThroughRate'
---
--- * 'iiPricing'
---
--- * 'iiKind'
---
--- * 'iiAdvertiserId'
---
--- * 'iiRfpId'
---
--- * 'iiContentCategoryId'
---
--- * 'iiInPlan'
---
--- * 'iiAccountId'
---
--- * 'iiName'
---
--- * 'iiAdSlots'
---
--- * 'iiNegotiationChannelId'
---
--- * 'iiLastModifiedInfo'
---
--- * 'iiId'
---
--- * 'iiEstimatedConversionRate'
---
--- * 'iiProjectId'
---
--- * 'iiSubAccountId'
---
--- * 'iiOrderId'
---
--- * 'iiSiteId'
-inventoryItem
-    :: InventoryItem
-inventoryItem =
-    InventoryItem
-    { _iiPlacementStrategyId = Nothing
-    , _iiEstimatedClickThroughRate = Nothing
-    , _iiPricing = Nothing
-    , _iiKind = "dfareporting#inventoryItem"
-    , _iiAdvertiserId = Nothing
-    , _iiRfpId = Nothing
-    , _iiContentCategoryId = Nothing
-    , _iiInPlan = Nothing
-    , _iiAccountId = Nothing
-    , _iiName = Nothing
-    , _iiAdSlots = Nothing
-    , _iiNegotiationChannelId = Nothing
-    , _iiLastModifiedInfo = Nothing
-    , _iiId = Nothing
-    , _iiEstimatedConversionRate = Nothing
-    , _iiProjectId = Nothing
-    , _iiSubAccountId = Nothing
-    , _iiOrderId = Nothing
-    , _iiSiteId = Nothing
-    }
-
--- | Placement strategy ID of this inventory item.
-iiPlacementStrategyId :: Lens' InventoryItem (Maybe Int64)
-iiPlacementStrategyId
-  = lens _iiPlacementStrategyId
-      (\ s a -> s{_iiPlacementStrategyId = a})
-      . mapping _Coerce
-
--- | Estimated click-through rate of this inventory item.
-iiEstimatedClickThroughRate :: Lens' InventoryItem (Maybe Int64)
-iiEstimatedClickThroughRate
-  = lens _iiEstimatedClickThroughRate
-      (\ s a -> s{_iiEstimatedClickThroughRate = a})
-      . mapping _Coerce
-
--- | Pricing of this inventory item.
-iiPricing :: Lens' InventoryItem (Maybe Pricing)
-iiPricing
-  = lens _iiPricing (\ s a -> s{_iiPricing = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#inventoryItem\".
-iiKind :: Lens' InventoryItem Text
-iiKind = lens _iiKind (\ s a -> s{_iiKind = a})
-
--- | Advertiser ID of this inventory item.
-iiAdvertiserId :: Lens' InventoryItem (Maybe Int64)
-iiAdvertiserId
-  = lens _iiAdvertiserId
-      (\ s a -> s{_iiAdvertiserId = a})
-      . mapping _Coerce
-
--- | RFP ID of this inventory item.
-iiRfpId :: Lens' InventoryItem (Maybe Int64)
-iiRfpId
-  = lens _iiRfpId (\ s a -> s{_iiRfpId = a}) .
-      mapping _Coerce
-
--- | Content category ID of this inventory item.
-iiContentCategoryId :: Lens' InventoryItem (Maybe Int64)
-iiContentCategoryId
-  = lens _iiContentCategoryId
-      (\ s a -> s{_iiContentCategoryId = a})
-      . mapping _Coerce
-
--- | Whether this inventory item is in plan.
-iiInPlan :: Lens' InventoryItem (Maybe Bool)
-iiInPlan = lens _iiInPlan (\ s a -> s{_iiInPlan = a})
-
--- | Account ID of this inventory item.
-iiAccountId :: Lens' InventoryItem (Maybe Int64)
-iiAccountId
-  = lens _iiAccountId (\ s a -> s{_iiAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this inventory item. For standalone inventory items, this is the
--- same name as that of its only ad slot. For group inventory items, this
--- can differ from the name of any of its ad slots.
-iiName :: Lens' InventoryItem (Maybe Text)
-iiName = lens _iiName (\ s a -> s{_iiName = a})
-
--- | Ad slots of this inventory item. If this inventory item represents a
--- standalone placement, there will be exactly one ad slot. If this
--- inventory item represents a placement group, there will be more than one
--- ad slot, each representing one child placement in that placement group.
-iiAdSlots :: Lens' InventoryItem [AdSlot]
-iiAdSlots
-  = lens _iiAdSlots (\ s a -> s{_iiAdSlots = a}) .
-      _Default
-      . _Coerce
-
--- | Negotiation channel ID of this inventory item.
-iiNegotiationChannelId :: Lens' InventoryItem (Maybe Int64)
-iiNegotiationChannelId
-  = lens _iiNegotiationChannelId
-      (\ s a -> s{_iiNegotiationChannelId = a})
-      . mapping _Coerce
-
--- | Information about the most recent modification of this inventory item.
-iiLastModifiedInfo :: Lens' InventoryItem (Maybe LastModifiedInfo)
-iiLastModifiedInfo
-  = lens _iiLastModifiedInfo
-      (\ s a -> s{_iiLastModifiedInfo = a})
-
--- | ID of this inventory item.
-iiId :: Lens' InventoryItem (Maybe Int64)
-iiId
-  = lens _iiId (\ s a -> s{_iiId = a}) .
-      mapping _Coerce
-
--- | Estimated conversion rate of this inventory item.
-iiEstimatedConversionRate :: Lens' InventoryItem (Maybe Int64)
-iiEstimatedConversionRate
-  = lens _iiEstimatedConversionRate
-      (\ s a -> s{_iiEstimatedConversionRate = a})
-      . mapping _Coerce
-
--- | Project ID of this inventory item.
-iiProjectId :: Lens' InventoryItem (Maybe Int64)
-iiProjectId
-  = lens _iiProjectId (\ s a -> s{_iiProjectId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this inventory item.
-iiSubAccountId :: Lens' InventoryItem (Maybe Int64)
-iiSubAccountId
-  = lens _iiSubAccountId
-      (\ s a -> s{_iiSubAccountId = a})
-      . mapping _Coerce
-
--- | Order ID of this inventory item.
-iiOrderId :: Lens' InventoryItem (Maybe Int64)
-iiOrderId
-  = lens _iiOrderId (\ s a -> s{_iiOrderId = a}) .
-      mapping _Coerce
-
--- | ID of the site this inventory item is associated with.
-iiSiteId :: Lens' InventoryItem (Maybe Int64)
-iiSiteId
-  = lens _iiSiteId (\ s a -> s{_iiSiteId = a}) .
-      mapping _Coerce
-
-instance FromJSON InventoryItem where
-        parseJSON
-          = withObject "InventoryItem"
-              (\ o ->
-                 InventoryItem <$>
-                   (o .:? "placementStrategyId") <*>
-                     (o .:? "estimatedClickThroughRate")
-                     <*> (o .:? "pricing")
-                     <*> (o .:? "kind" .!= "dfareporting#inventoryItem")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "rfpId")
-                     <*> (o .:? "contentCategoryId")
-                     <*> (o .:? "inPlan")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "adSlots" .!= mempty)
-                     <*> (o .:? "negotiationChannelId")
-                     <*> (o .:? "lastModifiedInfo")
-                     <*> (o .:? "id")
-                     <*> (o .:? "estimatedConversionRate")
-                     <*> (o .:? "projectId")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "orderId")
-                     <*> (o .:? "siteId"))
-
-instance ToJSON InventoryItem where
-        toJSON InventoryItem{..}
-          = object
-              (catMaybes
-                 [("placementStrategyId" .=) <$>
-                    _iiPlacementStrategyId,
-                  ("estimatedClickThroughRate" .=) <$>
-                    _iiEstimatedClickThroughRate,
-                  ("pricing" .=) <$> _iiPricing,
-                  Just ("kind" .= _iiKind),
-                  ("advertiserId" .=) <$> _iiAdvertiserId,
-                  ("rfpId" .=) <$> _iiRfpId,
-                  ("contentCategoryId" .=) <$> _iiContentCategoryId,
-                  ("inPlan" .=) <$> _iiInPlan,
-                  ("accountId" .=) <$> _iiAccountId,
-                  ("name" .=) <$> _iiName,
-                  ("adSlots" .=) <$> _iiAdSlots,
-                  ("negotiationChannelId" .=) <$>
-                    _iiNegotiationChannelId,
-                  ("lastModifiedInfo" .=) <$> _iiLastModifiedInfo,
-                  ("id" .=) <$> _iiId,
-                  ("estimatedConversionRate" .=) <$>
-                    _iiEstimatedConversionRate,
-                  ("projectId" .=) <$> _iiProjectId,
-                  ("subaccountId" .=) <$> _iiSubAccountId,
-                  ("orderId" .=) <$> _iiOrderId,
-                  ("siteId" .=) <$> _iiSiteId])
-
--- | Project List Response
---
--- /See:/ 'projectsListResponse' smart constructor.
-data ProjectsListResponse = ProjectsListResponse
-    { _plrNextPageToken :: !(Maybe Text)
-    , _plrKind          :: !Text
-    , _plrProjects      :: !(Maybe [Project])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ProjectsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'plrNextPageToken'
---
--- * 'plrKind'
---
--- * 'plrProjects'
-projectsListResponse
-    :: ProjectsListResponse
-projectsListResponse =
-    ProjectsListResponse
-    { _plrNextPageToken = Nothing
-    , _plrKind = "dfareporting#projectsListResponse"
-    , _plrProjects = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-plrNextPageToken :: Lens' ProjectsListResponse (Maybe Text)
-plrNextPageToken
-  = lens _plrNextPageToken
-      (\ s a -> s{_plrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#projectsListResponse\".
-plrKind :: Lens' ProjectsListResponse Text
-plrKind = lens _plrKind (\ s a -> s{_plrKind = a})
-
--- | Project collection.
-plrProjects :: Lens' ProjectsListResponse [Project]
-plrProjects
-  = lens _plrProjects (\ s a -> s{_plrProjects = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON ProjectsListResponse where
-        parseJSON
-          = withObject "ProjectsListResponse"
-              (\ o ->
-                 ProjectsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#projectsListResponse")
-                     <*> (o .:? "projects" .!= mempty))
-
-instance ToJSON ProjectsListResponse where
-        toJSON ProjectsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _plrNextPageToken,
-                  Just ("kind" .= _plrKind),
-                  ("projects" .=) <$> _plrProjects])
-
--- | Ad List Response
---
--- /See:/ 'adsListResponse' smart constructor.
-data AdsListResponse = AdsListResponse
-    { _alrNextPageToken :: !(Maybe Text)
-    , _alrKind          :: !Text
-    , _alrAds           :: !(Maybe [Ad])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AdsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'alrNextPageToken'
---
--- * 'alrKind'
---
--- * 'alrAds'
-adsListResponse
-    :: AdsListResponse
-adsListResponse =
-    AdsListResponse
-    { _alrNextPageToken = Nothing
-    , _alrKind = "dfareporting#adsListResponse"
-    , _alrAds = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-alrNextPageToken :: Lens' AdsListResponse (Maybe Text)
-alrNextPageToken
-  = lens _alrNextPageToken
-      (\ s a -> s{_alrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#adsListResponse\".
-alrKind :: Lens' AdsListResponse Text
-alrKind = lens _alrKind (\ s a -> s{_alrKind = a})
-
--- | Ad collection.
-alrAds :: Lens' AdsListResponse [Ad]
-alrAds
-  = lens _alrAds (\ s a -> s{_alrAds = a}) . _Default .
-      _Coerce
-
-instance FromJSON AdsListResponse where
-        parseJSON
-          = withObject "AdsListResponse"
-              (\ o ->
-                 AdsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "dfareporting#adsListResponse")
-                     <*> (o .:? "ads" .!= mempty))
-
-instance ToJSON AdsListResponse where
-        toJSON AdsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _alrNextPageToken,
-                  Just ("kind" .= _alrKind), ("ads" .=) <$> _alrAds])
-
--- | Remarketing List Population Rule Term.
---
--- /See:/ 'listPopulationTerm' smart constructor.
-data ListPopulationTerm = ListPopulationTerm
-    { _lptOperator             :: !(Maybe ListPopulationTermOperator)
-    , _lptValue                :: !(Maybe Text)
-    , _lptVariableFriendlyName :: !(Maybe Text)
-    , _lptNegation             :: !(Maybe Bool)
-    , _lptVariableName         :: !(Maybe Text)
-    , _lptRemarketingListId    :: !(Maybe (Textual Int64))
-    , _lptType                 :: !(Maybe ListPopulationTermType)
-    , _lptContains             :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListPopulationTerm' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lptOperator'
---
--- * 'lptValue'
---
--- * 'lptVariableFriendlyName'
---
--- * 'lptNegation'
---
--- * 'lptVariableName'
---
--- * 'lptRemarketingListId'
---
--- * 'lptType'
---
--- * 'lptContains'
-listPopulationTerm
-    :: ListPopulationTerm
-listPopulationTerm =
-    ListPopulationTerm
-    { _lptOperator = Nothing
-    , _lptValue = Nothing
-    , _lptVariableFriendlyName = Nothing
-    , _lptNegation = Nothing
-    , _lptVariableName = Nothing
-    , _lptRemarketingListId = Nothing
-    , _lptType = Nothing
-    , _lptContains = Nothing
-    }
-
--- | Comparison operator of this term. This field is only relevant when type
--- is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-lptOperator :: Lens' ListPopulationTerm (Maybe ListPopulationTermOperator)
-lptOperator
-  = lens _lptOperator (\ s a -> s{_lptOperator = a})
-
--- | Literal to compare the variable to. This field is only relevant when
--- type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-lptValue :: Lens' ListPopulationTerm (Maybe Text)
-lptValue = lens _lptValue (\ s a -> s{_lptValue = a})
-
--- | Friendly name of this term\'s variable. This is a read-only,
--- auto-generated field. This field is only relevant when type is left
--- unset or set to CUSTOM_VARIABLE_TERM.
-lptVariableFriendlyName :: Lens' ListPopulationTerm (Maybe Text)
-lptVariableFriendlyName
-  = lens _lptVariableFriendlyName
-      (\ s a -> s{_lptVariableFriendlyName = a})
-
--- | Whether to negate the comparison result of this term during rule
--- evaluation. This field is only relevant when type is left unset or set
--- to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-lptNegation :: Lens' ListPopulationTerm (Maybe Bool)
-lptNegation
-  = lens _lptNegation (\ s a -> s{_lptNegation = a})
-
--- | Name of the variable (U1, U2, etc.) being compared in this term. This
--- field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or
--- REFERRER_TERM.
-lptVariableName :: Lens' ListPopulationTerm (Maybe Text)
-lptVariableName
-  = lens _lptVariableName
-      (\ s a -> s{_lptVariableName = a})
-
--- | ID of the list in question. This field is only relevant when type is set
--- to LIST_MEMBERSHIP_TERM.
-lptRemarketingListId :: Lens' ListPopulationTerm (Maybe Int64)
-lptRemarketingListId
-  = lens _lptRemarketingListId
-      (\ s a -> s{_lptRemarketingListId = a})
-      . mapping _Coerce
-
--- | List population term type determines the applicable fields in this
--- object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName,
--- variableFriendlyName, operator, value, and negation are applicable. If
--- set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are
--- applicable. If set to REFERRER_TERM then operator, value, and negation
--- are applicable.
-lptType :: Lens' ListPopulationTerm (Maybe ListPopulationTermType)
-lptType = lens _lptType (\ s a -> s{_lptType = a})
-
--- | Will be true if the term should check if the user is in the list and
--- false if the term should check if the user is not in the list. This
--- field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False
--- by default.
-lptContains :: Lens' ListPopulationTerm (Maybe Bool)
-lptContains
-  = lens _lptContains (\ s a -> s{_lptContains = a})
-
-instance FromJSON ListPopulationTerm where
-        parseJSON
-          = withObject "ListPopulationTerm"
-              (\ o ->
-                 ListPopulationTerm <$>
-                   (o .:? "operator") <*> (o .:? "value") <*>
-                     (o .:? "variableFriendlyName")
-                     <*> (o .:? "negation")
-                     <*> (o .:? "variableName")
-                     <*> (o .:? "remarketingListId")
-                     <*> (o .:? "type")
-                     <*> (o .:? "contains"))
-
-instance ToJSON ListPopulationTerm where
-        toJSON ListPopulationTerm{..}
-          = object
-              (catMaybes
-                 [("operator" .=) <$> _lptOperator,
-                  ("value" .=) <$> _lptValue,
-                  ("variableFriendlyName" .=) <$>
-                    _lptVariableFriendlyName,
-                  ("negation" .=) <$> _lptNegation,
-                  ("variableName" .=) <$> _lptVariableName,
-                  ("remarketingListId" .=) <$> _lptRemarketingListId,
-                  ("type" .=) <$> _lptType,
-                  ("contains" .=) <$> _lptContains])
-
--- | Dynamic and Image Tag Settings.
---
--- /See:/ 'tagSettings' smart constructor.
-data TagSettings = TagSettings
-    { _tsDynamicTagEnabled :: !(Maybe Bool)
-    , _tsImageTagEnabled   :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TagSettings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tsDynamicTagEnabled'
---
--- * 'tsImageTagEnabled'
-tagSettings
-    :: TagSettings
-tagSettings =
-    TagSettings
-    { _tsDynamicTagEnabled = Nothing
-    , _tsImageTagEnabled = Nothing
-    }
-
--- | Whether dynamic floodlight tags are enabled.
-tsDynamicTagEnabled :: Lens' TagSettings (Maybe Bool)
-tsDynamicTagEnabled
-  = lens _tsDynamicTagEnabled
-      (\ s a -> s{_tsDynamicTagEnabled = a})
-
--- | Whether image tags are enabled.
-tsImageTagEnabled :: Lens' TagSettings (Maybe Bool)
-tsImageTagEnabled
-  = lens _tsImageTagEnabled
-      (\ s a -> s{_tsImageTagEnabled = a})
-
-instance FromJSON TagSettings where
-        parseJSON
-          = withObject "TagSettings"
-              (\ o ->
-                 TagSettings <$>
-                   (o .:? "dynamicTagEnabled") <*>
-                     (o .:? "imageTagEnabled"))
-
-instance ToJSON TagSettings where
-        toJSON TagSettings{..}
-          = object
-              (catMaybes
-                 [("dynamicTagEnabled" .=) <$> _tsDynamicTagEnabled,
-                  ("imageTagEnabled" .=) <$> _tsImageTagEnabled])
-
--- | Subaccount List Response
---
--- /See:/ 'subAccountsListResponse' smart constructor.
-data SubAccountsListResponse = SubAccountsListResponse
-    { _salrNextPageToken :: !(Maybe Text)
-    , _salrKind          :: !Text
-    , _salrSubAccounts   :: !(Maybe [SubAccount])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'SubAccountsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'salrNextPageToken'
---
--- * 'salrKind'
---
--- * 'salrSubAccounts'
-subAccountsListResponse
-    :: SubAccountsListResponse
-subAccountsListResponse =
-    SubAccountsListResponse
-    { _salrNextPageToken = Nothing
-    , _salrKind = "dfareporting#subaccountsListResponse"
-    , _salrSubAccounts = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-salrNextPageToken :: Lens' SubAccountsListResponse (Maybe Text)
-salrNextPageToken
-  = lens _salrNextPageToken
-      (\ s a -> s{_salrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#subaccountsListResponse\".
-salrKind :: Lens' SubAccountsListResponse Text
-salrKind = lens _salrKind (\ s a -> s{_salrKind = a})
-
--- | Subaccount collection.
-salrSubAccounts :: Lens' SubAccountsListResponse [SubAccount]
-salrSubAccounts
-  = lens _salrSubAccounts
-      (\ s a -> s{_salrSubAccounts = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON SubAccountsListResponse where
-        parseJSON
-          = withObject "SubAccountsListResponse"
-              (\ o ->
-                 SubAccountsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#subaccountsListResponse")
-                     <*> (o .:? "subaccounts" .!= mempty))
-
-instance ToJSON SubAccountsListResponse where
-        toJSON SubAccountsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _salrNextPageToken,
-                  Just ("kind" .= _salrKind),
-                  ("subaccounts" .=) <$> _salrSubAccounts])
-
--- | Contains properties of a Site Directory contact.
---
--- /See:/ 'directorySiteContact' smart constructor.
-data DirectorySiteContact = DirectorySiteContact
-    { _dscEmail     :: !(Maybe Text)
-    , _dscPhone     :: !(Maybe Text)
-    , _dscLastName  :: !(Maybe Text)
-    , _dscKind      :: !Text
-    , _dscAddress   :: !(Maybe Text)
-    , _dscRole      :: !(Maybe DirectorySiteContactRole)
-    , _dscFirstName :: !(Maybe Text)
-    , _dscId        :: !(Maybe (Textual Int64))
-    , _dscTitle     :: !(Maybe Text)
-    , _dscType      :: !(Maybe DirectorySiteContactType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DirectorySiteContact' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dscEmail'
---
--- * 'dscPhone'
---
--- * 'dscLastName'
---
--- * 'dscKind'
---
--- * 'dscAddress'
---
--- * 'dscRole'
---
--- * 'dscFirstName'
---
--- * 'dscId'
---
--- * 'dscTitle'
---
--- * 'dscType'
-directorySiteContact
-    :: DirectorySiteContact
-directorySiteContact =
-    DirectorySiteContact
-    { _dscEmail = Nothing
-    , _dscPhone = Nothing
-    , _dscLastName = Nothing
-    , _dscKind = "dfareporting#directorySiteContact"
-    , _dscAddress = Nothing
-    , _dscRole = Nothing
-    , _dscFirstName = Nothing
-    , _dscId = Nothing
-    , _dscTitle = Nothing
-    , _dscType = Nothing
-    }
-
--- | Email address of this directory site contact.
-dscEmail :: Lens' DirectorySiteContact (Maybe Text)
-dscEmail = lens _dscEmail (\ s a -> s{_dscEmail = a})
-
--- | Phone number of this directory site contact.
-dscPhone :: Lens' DirectorySiteContact (Maybe Text)
-dscPhone = lens _dscPhone (\ s a -> s{_dscPhone = a})
-
--- | Last name of this directory site contact.
-dscLastName :: Lens' DirectorySiteContact (Maybe Text)
-dscLastName
-  = lens _dscLastName (\ s a -> s{_dscLastName = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#directorySiteContact\".
-dscKind :: Lens' DirectorySiteContact Text
-dscKind = lens _dscKind (\ s a -> s{_dscKind = a})
-
--- | Address of this directory site contact.
-dscAddress :: Lens' DirectorySiteContact (Maybe Text)
-dscAddress
-  = lens _dscAddress (\ s a -> s{_dscAddress = a})
-
--- | Directory site contact role.
-dscRole :: Lens' DirectorySiteContact (Maybe DirectorySiteContactRole)
-dscRole = lens _dscRole (\ s a -> s{_dscRole = a})
-
--- | First name of this directory site contact.
-dscFirstName :: Lens' DirectorySiteContact (Maybe Text)
-dscFirstName
-  = lens _dscFirstName (\ s a -> s{_dscFirstName = a})
-
--- | ID of this directory site contact. This is a read-only, auto-generated
--- field.
-dscId :: Lens' DirectorySiteContact (Maybe Int64)
-dscId
-  = lens _dscId (\ s a -> s{_dscId = a}) .
-      mapping _Coerce
-
--- | Title or designation of this directory site contact.
-dscTitle :: Lens' DirectorySiteContact (Maybe Text)
-dscTitle = lens _dscTitle (\ s a -> s{_dscTitle = a})
-
--- | Directory site contact type.
-dscType :: Lens' DirectorySiteContact (Maybe DirectorySiteContactType)
-dscType = lens _dscType (\ s a -> s{_dscType = a})
-
-instance FromJSON DirectorySiteContact where
-        parseJSON
-          = withObject "DirectorySiteContact"
-              (\ o ->
-                 DirectorySiteContact <$>
-                   (o .:? "email") <*> (o .:? "phone") <*>
-                     (o .:? "lastName")
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#directorySiteContact")
-                     <*> (o .:? "address")
-                     <*> (o .:? "role")
-                     <*> (o .:? "firstName")
-                     <*> (o .:? "id")
-                     <*> (o .:? "title")
-                     <*> (o .:? "type"))
-
-instance ToJSON DirectorySiteContact where
-        toJSON DirectorySiteContact{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _dscEmail,
-                  ("phone" .=) <$> _dscPhone,
-                  ("lastName" .=) <$> _dscLastName,
-                  Just ("kind" .= _dscKind),
-                  ("address" .=) <$> _dscAddress,
-                  ("role" .=) <$> _dscRole,
-                  ("firstName" .=) <$> _dscFirstName,
-                  ("id" .=) <$> _dscId, ("title" .=) <$> _dscTitle,
-                  ("type" .=) <$> _dscType])
-
--- | Region List Response
---
--- /See:/ 'regionsListResponse' smart constructor.
-data RegionsListResponse = RegionsListResponse
-    { _rlrKind    :: !Text
-    , _rlrRegions :: !(Maybe [Region])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RegionsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rlrKind'
---
--- * 'rlrRegions'
-regionsListResponse
-    :: RegionsListResponse
-regionsListResponse =
-    RegionsListResponse
-    { _rlrKind = "dfareporting#regionsListResponse"
-    , _rlrRegions = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#regionsListResponse\".
-rlrKind :: Lens' RegionsListResponse Text
-rlrKind = lens _rlrKind (\ s a -> s{_rlrKind = a})
-
--- | Region collection.
-rlrRegions :: Lens' RegionsListResponse [Region]
-rlrRegions
-  = lens _rlrRegions (\ s a -> s{_rlrRegions = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON RegionsListResponse where
-        parseJSON
-          = withObject "RegionsListResponse"
-              (\ o ->
-                 RegionsListResponse <$>
-                   (o .:? "kind" .!= "dfareporting#regionsListResponse")
-                     <*> (o .:? "regions" .!= mempty))
-
-instance ToJSON RegionsListResponse where
-        toJSON RegionsListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _rlrKind),
-                  ("regions" .=) <$> _rlrRegions])
-
--- | Dynamic Tag
---
--- /See:/ 'floodlightActivityDynamicTag' smart constructor.
-data FloodlightActivityDynamicTag = FloodlightActivityDynamicTag
-    { _fadtTag  :: !(Maybe Text)
-    , _fadtName :: !(Maybe Text)
-    , _fadtId   :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightActivityDynamicTag' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fadtTag'
---
--- * 'fadtName'
---
--- * 'fadtId'
-floodlightActivityDynamicTag
-    :: FloodlightActivityDynamicTag
-floodlightActivityDynamicTag =
-    FloodlightActivityDynamicTag
-    { _fadtTag = Nothing
-    , _fadtName = Nothing
-    , _fadtId = Nothing
-    }
-
--- | Tag code.
-fadtTag :: Lens' FloodlightActivityDynamicTag (Maybe Text)
-fadtTag = lens _fadtTag (\ s a -> s{_fadtTag = a})
-
--- | Name of this tag.
-fadtName :: Lens' FloodlightActivityDynamicTag (Maybe Text)
-fadtName = lens _fadtName (\ s a -> s{_fadtName = a})
-
--- | ID of this dynamic tag. This is a read-only, auto-generated field.
-fadtId :: Lens' FloodlightActivityDynamicTag (Maybe Int64)
-fadtId
-  = lens _fadtId (\ s a -> s{_fadtId = a}) .
-      mapping _Coerce
-
-instance FromJSON FloodlightActivityDynamicTag where
-        parseJSON
-          = withObject "FloodlightActivityDynamicTag"
-              (\ o ->
-                 FloodlightActivityDynamicTag <$>
-                   (o .:? "tag") <*> (o .:? "name") <*> (o .:? "id"))
-
-instance ToJSON FloodlightActivityDynamicTag where
-        toJSON FloodlightActivityDynamicTag{..}
-          = object
-              (catMaybes
-                 [("tag" .=) <$> _fadtTag, ("name" .=) <$> _fadtName,
-                  ("id" .=) <$> _fadtId])
-
--- | DirectorySites contains properties of a website from the Site Directory.
--- Sites need to be added to an account via the Sites resource before they
--- can be assigned to a placement.
---
--- /See:/ 'directorySite' smart constructor.
-data DirectorySite = DirectorySite
-    { _dsCurrencyId             :: !(Maybe (Textual Int64))
-    , _dsSettings               :: !(Maybe DirectorySiteSettings)
-    , _dsInterstitialTagFormats :: !(Maybe [DirectorySiteInterstitialTagFormatsItem])
-    , _dsKind                   :: !Text
-    , _dsURL                    :: !(Maybe Text)
-    , _dsIdDimensionValue       :: !(Maybe DimensionValue)
-    , _dsInpageTagFormats       :: !(Maybe [DirectorySiteInpageTagFormatsItem])
-    , _dsActive                 :: !(Maybe Bool)
-    , _dsName                   :: !(Maybe Text)
-    , _dsId                     :: !(Maybe (Textual Int64))
-    , _dsCountryId              :: !(Maybe (Textual Int64))
-    , _dsContactAssignments     :: !(Maybe [DirectorySiteContactAssignment])
-    , _dsDescription            :: !(Maybe Text)
-    , _dsParentId               :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DirectorySite' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dsCurrencyId'
---
--- * 'dsSettings'
---
--- * 'dsInterstitialTagFormats'
---
--- * 'dsKind'
---
--- * 'dsURL'
---
--- * 'dsIdDimensionValue'
---
--- * 'dsInpageTagFormats'
---
--- * 'dsActive'
---
--- * 'dsName'
---
--- * 'dsId'
---
--- * 'dsCountryId'
---
--- * 'dsContactAssignments'
---
--- * 'dsDescription'
---
--- * 'dsParentId'
-directorySite
-    :: DirectorySite
-directorySite =
-    DirectorySite
-    { _dsCurrencyId = Nothing
-    , _dsSettings = Nothing
-    , _dsInterstitialTagFormats = Nothing
-    , _dsKind = "dfareporting#directorySite"
-    , _dsURL = Nothing
-    , _dsIdDimensionValue = Nothing
-    , _dsInpageTagFormats = Nothing
-    , _dsActive = Nothing
-    , _dsName = Nothing
-    , _dsId = Nothing
-    , _dsCountryId = Nothing
-    , _dsContactAssignments = Nothing
-    , _dsDescription = Nothing
-    , _dsParentId = Nothing
-    }
-
--- | Currency ID of this directory site. Possible values are: - \"1\" for USD
--- - \"2\" for GBP - \"3\" for ESP - \"4\" for SEK - \"5\" for CAD - \"6\"
--- for JPY - \"7\" for DEM - \"8\" for AUD - \"9\" for FRF - \"10\" for ITL
--- - \"11\" for DKK - \"12\" for NOK - \"13\" for FIM - \"14\" for ZAR -
--- \"15\" for IEP - \"16\" for NLG - \"17\" for EUR - \"18\" for KRW -
--- \"19\" for TWD - \"20\" for SGD - \"21\" for CNY - \"22\" for HKD -
--- \"23\" for NZD - \"24\" for MYR - \"25\" for BRL - \"26\" for PTE -
--- \"27\" for MXP - \"28\" for CLP - \"29\" for TRY - \"30\" for ARS -
--- \"31\" for PEN - \"32\" for ILS - \"33\" for CHF - \"34\" for VEF -
--- \"35\" for COP - \"36\" for GTQ
-dsCurrencyId :: Lens' DirectorySite (Maybe Int64)
-dsCurrencyId
-  = lens _dsCurrencyId (\ s a -> s{_dsCurrencyId = a})
-      . mapping _Coerce
-
--- | Directory site settings.
-dsSettings :: Lens' DirectorySite (Maybe DirectorySiteSettings)
-dsSettings
-  = lens _dsSettings (\ s a -> s{_dsSettings = a})
-
--- | Tag types for interstitial placements. Acceptable values are: -
--- \"IFRAME_JAVASCRIPT_INTERSTITIAL\" - \"INTERNAL_REDIRECT_INTERSTITIAL\"
--- - \"JAVASCRIPT_INTERSTITIAL\"
-dsInterstitialTagFormats :: Lens' DirectorySite [DirectorySiteInterstitialTagFormatsItem]
-dsInterstitialTagFormats
-  = lens _dsInterstitialTagFormats
-      (\ s a -> s{_dsInterstitialTagFormats = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#directorySite\".
-dsKind :: Lens' DirectorySite Text
-dsKind = lens _dsKind (\ s a -> s{_dsKind = a})
-
--- | URL of this directory site.
-dsURL :: Lens' DirectorySite (Maybe Text)
-dsURL = lens _dsURL (\ s a -> s{_dsURL = a})
-
--- | Dimension value for the ID of this directory site. This is a read-only,
--- auto-generated field.
-dsIdDimensionValue :: Lens' DirectorySite (Maybe DimensionValue)
-dsIdDimensionValue
-  = lens _dsIdDimensionValue
-      (\ s a -> s{_dsIdDimensionValue = a})
-
--- | Tag types for regular placements. Acceptable values are: - \"STANDARD\"
--- - \"IFRAME_JAVASCRIPT_INPAGE\" - \"INTERNAL_REDIRECT_INPAGE\" -
--- \"JAVASCRIPT_INPAGE\"
-dsInpageTagFormats :: Lens' DirectorySite [DirectorySiteInpageTagFormatsItem]
-dsInpageTagFormats
-  = lens _dsInpageTagFormats
-      (\ s a -> s{_dsInpageTagFormats = a})
-      . _Default
-      . _Coerce
-
--- | Whether this directory site is active.
-dsActive :: Lens' DirectorySite (Maybe Bool)
-dsActive = lens _dsActive (\ s a -> s{_dsActive = a})
-
--- | Name of this directory site.
-dsName :: Lens' DirectorySite (Maybe Text)
-dsName = lens _dsName (\ s a -> s{_dsName = a})
-
--- | ID of this directory site. This is a read-only, auto-generated field.
-dsId :: Lens' DirectorySite (Maybe Int64)
-dsId
-  = lens _dsId (\ s a -> s{_dsId = a}) .
-      mapping _Coerce
-
--- | Country ID of this directory site.
-dsCountryId :: Lens' DirectorySite (Maybe Int64)
-dsCountryId
-  = lens _dsCountryId (\ s a -> s{_dsCountryId = a}) .
-      mapping _Coerce
-
--- | Directory site contacts.
-dsContactAssignments :: Lens' DirectorySite [DirectorySiteContactAssignment]
-dsContactAssignments
-  = lens _dsContactAssignments
-      (\ s a -> s{_dsContactAssignments = a})
-      . _Default
-      . _Coerce
-
--- | Description of this directory site.
-dsDescription :: Lens' DirectorySite (Maybe Text)
-dsDescription
-  = lens _dsDescription
-      (\ s a -> s{_dsDescription = a})
-
--- | Parent directory site ID.
-dsParentId :: Lens' DirectorySite (Maybe Int64)
-dsParentId
-  = lens _dsParentId (\ s a -> s{_dsParentId = a}) .
-      mapping _Coerce
-
-instance FromJSON DirectorySite where
-        parseJSON
-          = withObject "DirectorySite"
-              (\ o ->
-                 DirectorySite <$>
-                   (o .:? "currencyId") <*> (o .:? "settings") <*>
-                     (o .:? "interstitialTagFormats" .!= mempty)
-                     <*> (o .:? "kind" .!= "dfareporting#directorySite")
-                     <*> (o .:? "url")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "inpageTagFormats" .!= mempty)
-                     <*> (o .:? "active")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "countryId")
-                     <*> (o .:? "contactAssignments" .!= mempty)
-                     <*> (o .:? "description")
-                     <*> (o .:? "parentId"))
-
-instance ToJSON DirectorySite where
-        toJSON DirectorySite{..}
-          = object
-              (catMaybes
-                 [("currencyId" .=) <$> _dsCurrencyId,
-                  ("settings" .=) <$> _dsSettings,
-                  ("interstitialTagFormats" .=) <$>
-                    _dsInterstitialTagFormats,
-                  Just ("kind" .= _dsKind), ("url" .=) <$> _dsURL,
-                  ("idDimensionValue" .=) <$> _dsIdDimensionValue,
-                  ("inpageTagFormats" .=) <$> _dsInpageTagFormats,
-                  ("active" .=) <$> _dsActive, ("name" .=) <$> _dsName,
-                  ("id" .=) <$> _dsId,
-                  ("countryId" .=) <$> _dsCountryId,
-                  ("contactAssignments" .=) <$> _dsContactAssignments,
-                  ("description" .=) <$> _dsDescription,
-                  ("parentId" .=) <$> _dsParentId])
-
--- | The properties of the report.
---
--- /See:/ 'reportFloodlightCriteriaReportProperties' smart constructor.
-data ReportFloodlightCriteriaReportProperties = ReportFloodlightCriteriaReportProperties
-    { _rfcrpIncludeUnattributedIPConversions     :: !(Maybe Bool)
-    , _rfcrpIncludeUnattributedCookieConversions :: !(Maybe Bool)
-    , _rfcrpIncludeAttributedIPConversions       :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportFloodlightCriteriaReportProperties' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rfcrpIncludeUnattributedIPConversions'
---
--- * 'rfcrpIncludeUnattributedCookieConversions'
---
--- * 'rfcrpIncludeAttributedIPConversions'
-reportFloodlightCriteriaReportProperties
-    :: ReportFloodlightCriteriaReportProperties
-reportFloodlightCriteriaReportProperties =
-    ReportFloodlightCriteriaReportProperties
-    { _rfcrpIncludeUnattributedIPConversions = Nothing
-    , _rfcrpIncludeUnattributedCookieConversions = Nothing
-    , _rfcrpIncludeAttributedIPConversions = Nothing
-    }
-
--- | Include conversions that have no associated cookies and no exposures.
--- It’s therefore impossible to know how the user was exposed to your ads
--- during the lookback window prior to a conversion.
-rfcrpIncludeUnattributedIPConversions :: Lens' ReportFloodlightCriteriaReportProperties (Maybe Bool)
-rfcrpIncludeUnattributedIPConversions
-  = lens _rfcrpIncludeUnattributedIPConversions
-      (\ s a ->
-         s{_rfcrpIncludeUnattributedIPConversions = a})
-
--- | Include conversions of users with a DoubleClick cookie but without an
--- exposure. That means the user did not click or see an ad from the
--- advertiser within the Floodlight group, or that the interaction happened
--- outside the lookback window.
-rfcrpIncludeUnattributedCookieConversions :: Lens' ReportFloodlightCriteriaReportProperties (Maybe Bool)
-rfcrpIncludeUnattributedCookieConversions
-  = lens _rfcrpIncludeUnattributedCookieConversions
-      (\ s a ->
-         s{_rfcrpIncludeUnattributedCookieConversions = a})
-
--- | Include conversions that have no cookie, but do have an exposure path.
-rfcrpIncludeAttributedIPConversions :: Lens' ReportFloodlightCriteriaReportProperties (Maybe Bool)
-rfcrpIncludeAttributedIPConversions
-  = lens _rfcrpIncludeAttributedIPConversions
-      (\ s a ->
-         s{_rfcrpIncludeAttributedIPConversions = a})
-
-instance FromJSON
-         ReportFloodlightCriteriaReportProperties where
-        parseJSON
-          = withObject
-              "ReportFloodlightCriteriaReportProperties"
-              (\ o ->
-                 ReportFloodlightCriteriaReportProperties <$>
-                   (o .:? "includeUnattributedIPConversions") <*>
-                     (o .:? "includeUnattributedCookieConversions")
-                     <*> (o .:? "includeAttributedIPConversions"))
-
-instance ToJSON
-         ReportFloodlightCriteriaReportProperties where
-        toJSON ReportFloodlightCriteriaReportProperties{..}
-          = object
-              (catMaybes
-                 [("includeUnattributedIPConversions" .=) <$>
-                    _rfcrpIncludeUnattributedIPConversions,
-                  ("includeUnattributedCookieConversions" .=) <$>
-                    _rfcrpIncludeUnattributedCookieConversions,
-                  ("includeAttributedIPConversions" .=) <$>
-                    _rfcrpIncludeAttributedIPConversions])
-
--- | Contains properties of a Floodlight activity group.
---
--- /See:/ 'floodlightActivityGroup' smart constructor.
-data FloodlightActivityGroup = FloodlightActivityGroup
-    { _fagTagString                               :: !(Maybe Text)
-    , _fagFloodlightConfigurationId               :: !(Maybe (Textual Int64))
-    , _fagKind                                    :: !Text
-    , _fagAdvertiserId                            :: !(Maybe (Textual Int64))
-    , _fagAdvertiserIdDimensionValue              :: !(Maybe DimensionValue)
-    , _fagIdDimensionValue                        :: !(Maybe DimensionValue)
-    , _fagAccountId                               :: !(Maybe (Textual Int64))
-    , _fagName                                    :: !(Maybe Text)
-    , _fagId                                      :: !(Maybe (Textual Int64))
-    , _fagSubAccountId                            :: !(Maybe (Textual Int64))
-    , _fagType                                    :: !(Maybe FloodlightActivityGroupType)
-    , _fagFloodlightConfigurationIdDimensionValue :: !(Maybe DimensionValue)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightActivityGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fagTagString'
---
--- * 'fagFloodlightConfigurationId'
---
--- * 'fagKind'
---
--- * 'fagAdvertiserId'
---
--- * 'fagAdvertiserIdDimensionValue'
---
--- * 'fagIdDimensionValue'
---
--- * 'fagAccountId'
---
--- * 'fagName'
---
--- * 'fagId'
---
--- * 'fagSubAccountId'
---
--- * 'fagType'
---
--- * 'fagFloodlightConfigurationIdDimensionValue'
-floodlightActivityGroup
-    :: FloodlightActivityGroup
-floodlightActivityGroup =
-    FloodlightActivityGroup
-    { _fagTagString = Nothing
-    , _fagFloodlightConfigurationId = Nothing
-    , _fagKind = "dfareporting#floodlightActivityGroup"
-    , _fagAdvertiserId = Nothing
-    , _fagAdvertiserIdDimensionValue = Nothing
-    , _fagIdDimensionValue = Nothing
-    , _fagAccountId = Nothing
-    , _fagName = Nothing
-    , _fagId = Nothing
-    , _fagSubAccountId = Nothing
-    , _fagType = Nothing
-    , _fagFloodlightConfigurationIdDimensionValue = Nothing
-    }
-
--- | Value of the type= parameter in the floodlight tag, which the ad servers
--- use to identify the activity group that the activity belongs to. This is
--- optional: if empty, a new tag string will be generated for you. This
--- string must be 1 to 8 characters long, with valid characters being
--- [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among
--- activity groups of the same floodlight configuration. This field is
--- read-only after insertion.
-fagTagString :: Lens' FloodlightActivityGroup (Maybe Text)
-fagTagString
-  = lens _fagTagString (\ s a -> s{_fagTagString = a})
-
--- | Floodlight configuration ID of this floodlight activity group. This is a
--- required field.
-fagFloodlightConfigurationId :: Lens' FloodlightActivityGroup (Maybe Int64)
-fagFloodlightConfigurationId
-  = lens _fagFloodlightConfigurationId
-      (\ s a -> s{_fagFloodlightConfigurationId = a})
-      . mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#floodlightActivityGroup\".
-fagKind :: Lens' FloodlightActivityGroup Text
-fagKind = lens _fagKind (\ s a -> s{_fagKind = a})
-
--- | Advertiser ID of this floodlight activity group. If this field is left
--- blank, the value will be copied over either from the floodlight
--- configuration\'s advertiser or from the existing activity group\'s
--- advertiser.
-fagAdvertiserId :: Lens' FloodlightActivityGroup (Maybe Int64)
-fagAdvertiserId
-  = lens _fagAdvertiserId
-      (\ s a -> s{_fagAdvertiserId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the advertiser. This is a read-only,
--- auto-generated field.
-fagAdvertiserIdDimensionValue :: Lens' FloodlightActivityGroup (Maybe DimensionValue)
-fagAdvertiserIdDimensionValue
-  = lens _fagAdvertiserIdDimensionValue
-      (\ s a -> s{_fagAdvertiserIdDimensionValue = a})
-
--- | Dimension value for the ID of this floodlight activity group. This is a
--- read-only, auto-generated field.
-fagIdDimensionValue :: Lens' FloodlightActivityGroup (Maybe DimensionValue)
-fagIdDimensionValue
-  = lens _fagIdDimensionValue
-      (\ s a -> s{_fagIdDimensionValue = a})
-
--- | Account ID of this floodlight activity group. This is a read-only field
--- that can be left blank.
-fagAccountId :: Lens' FloodlightActivityGroup (Maybe Int64)
-fagAccountId
-  = lens _fagAccountId (\ s a -> s{_fagAccountId = a})
-      . mapping _Coerce
-
--- | Name of this floodlight activity group. This is a required field. Must
--- be less than 65 characters long and cannot contain quotes.
-fagName :: Lens' FloodlightActivityGroup (Maybe Text)
-fagName = lens _fagName (\ s a -> s{_fagName = a})
-
--- | ID of this floodlight activity group. This is a read-only,
--- auto-generated field.
-fagId :: Lens' FloodlightActivityGroup (Maybe Int64)
-fagId
-  = lens _fagId (\ s a -> s{_fagId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this floodlight activity group. This is a read-only
--- field that can be left blank.
-fagSubAccountId :: Lens' FloodlightActivityGroup (Maybe Int64)
-fagSubAccountId
-  = lens _fagSubAccountId
-      (\ s a -> s{_fagSubAccountId = a})
-      . mapping _Coerce
-
--- | Type of the floodlight activity group. This is a required field that is
--- read-only after insertion.
-fagType :: Lens' FloodlightActivityGroup (Maybe FloodlightActivityGroupType)
-fagType = lens _fagType (\ s a -> s{_fagType = a})
-
--- | Dimension value for the ID of the floodlight configuration. This is a
--- read-only, auto-generated field.
-fagFloodlightConfigurationIdDimensionValue :: Lens' FloodlightActivityGroup (Maybe DimensionValue)
-fagFloodlightConfigurationIdDimensionValue
-  = lens _fagFloodlightConfigurationIdDimensionValue
-      (\ s a ->
-         s{_fagFloodlightConfigurationIdDimensionValue = a})
-
-instance FromJSON FloodlightActivityGroup where
-        parseJSON
-          = withObject "FloodlightActivityGroup"
-              (\ o ->
-                 FloodlightActivityGroup <$>
-                   (o .:? "tagString") <*>
-                     (o .:? "floodlightConfigurationId")
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#floodlightActivityGroup")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "type")
-                     <*>
-                     (o .:? "floodlightConfigurationIdDimensionValue"))
-
-instance ToJSON FloodlightActivityGroup where
-        toJSON FloodlightActivityGroup{..}
-          = object
-              (catMaybes
-                 [("tagString" .=) <$> _fagTagString,
-                  ("floodlightConfigurationId" .=) <$>
-                    _fagFloodlightConfigurationId,
-                  Just ("kind" .= _fagKind),
-                  ("advertiserId" .=) <$> _fagAdvertiserId,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _fagAdvertiserIdDimensionValue,
-                  ("idDimensionValue" .=) <$> _fagIdDimensionValue,
-                  ("accountId" .=) <$> _fagAccountId,
-                  ("name" .=) <$> _fagName, ("id" .=) <$> _fagId,
-                  ("subaccountId" .=) <$> _fagSubAccountId,
-                  ("type" .=) <$> _fagType,
-                  ("floodlightConfigurationIdDimensionValue" .=) <$>
-                    _fagFloodlightConfigurationIdDimensionValue])
-
--- | Represents fields that are compatible to be selected for a report of
--- type \"CROSS_DIMENSION_REACH\".
---
--- /See:/ 'crossDimensionReachReportCompatibleFields' smart constructor.
-data CrossDimensionReachReportCompatibleFields = CrossDimensionReachReportCompatibleFields
-    { _cdrrcfMetrics          :: !(Maybe [Metric])
-    , _cdrrcfBreakdown        :: !(Maybe [Dimension])
-    , _cdrrcfKind             :: !Text
-    , _cdrrcfDimensionFilters :: !(Maybe [Dimension])
-    , _cdrrcfOverlapMetrics   :: !(Maybe [Metric])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CrossDimensionReachReportCompatibleFields' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdrrcfMetrics'
---
--- * 'cdrrcfBreakdown'
---
--- * 'cdrrcfKind'
---
--- * 'cdrrcfDimensionFilters'
---
--- * 'cdrrcfOverlapMetrics'
-crossDimensionReachReportCompatibleFields
-    :: CrossDimensionReachReportCompatibleFields
-crossDimensionReachReportCompatibleFields =
-    CrossDimensionReachReportCompatibleFields
-    { _cdrrcfMetrics = Nothing
-    , _cdrrcfBreakdown = Nothing
-    , _cdrrcfKind = "dfareporting#crossDimensionReachReportCompatibleFields"
-    , _cdrrcfDimensionFilters = Nothing
-    , _cdrrcfOverlapMetrics = Nothing
-    }
-
--- | Metrics which are compatible to be selected in the \"metricNames\"
--- section of the report.
-cdrrcfMetrics :: Lens' CrossDimensionReachReportCompatibleFields [Metric]
-cdrrcfMetrics
-  = lens _cdrrcfMetrics
-      (\ s a -> s{_cdrrcfMetrics = a})
-      . _Default
-      . _Coerce
-
--- | Dimensions which are compatible to be selected in the \"breakdown\"
--- section of the report.
-cdrrcfBreakdown :: Lens' CrossDimensionReachReportCompatibleFields [Dimension]
-cdrrcfBreakdown
-  = lens _cdrrcfBreakdown
-      (\ s a -> s{_cdrrcfBreakdown = a})
-      . _Default
-      . _Coerce
-
--- | The kind of resource this is, in this case
--- dfareporting#crossDimensionReachReportCompatibleFields.
-cdrrcfKind :: Lens' CrossDimensionReachReportCompatibleFields Text
-cdrrcfKind
-  = lens _cdrrcfKind (\ s a -> s{_cdrrcfKind = a})
-
--- | Dimensions which are compatible to be selected in the
--- \"dimensionFilters\" section of the report.
-cdrrcfDimensionFilters :: Lens' CrossDimensionReachReportCompatibleFields [Dimension]
-cdrrcfDimensionFilters
-  = lens _cdrrcfDimensionFilters
-      (\ s a -> s{_cdrrcfDimensionFilters = a})
-      . _Default
-      . _Coerce
-
--- | Metrics which are compatible to be selected in the
--- \"overlapMetricNames\" section of the report.
-cdrrcfOverlapMetrics :: Lens' CrossDimensionReachReportCompatibleFields [Metric]
-cdrrcfOverlapMetrics
-  = lens _cdrrcfOverlapMetrics
-      (\ s a -> s{_cdrrcfOverlapMetrics = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-         CrossDimensionReachReportCompatibleFields where
-        parseJSON
-          = withObject
-              "CrossDimensionReachReportCompatibleFields"
-              (\ o ->
-                 CrossDimensionReachReportCompatibleFields <$>
-                   (o .:? "metrics" .!= mempty) <*>
-                     (o .:? "breakdown" .!= mempty)
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#crossDimensionReachReportCompatibleFields")
-                     <*> (o .:? "dimensionFilters" .!= mempty)
-                     <*> (o .:? "overlapMetrics" .!= mempty))
-
-instance ToJSON
-         CrossDimensionReachReportCompatibleFields where
-        toJSON CrossDimensionReachReportCompatibleFields{..}
-          = object
-              (catMaybes
-                 [("metrics" .=) <$> _cdrrcfMetrics,
-                  ("breakdown" .=) <$> _cdrrcfBreakdown,
-                  Just ("kind" .= _cdrrcfKind),
-                  ("dimensionFilters" .=) <$> _cdrrcfDimensionFilters,
-                  ("overlapMetrics" .=) <$> _cdrrcfOverlapMetrics])
-
--- | FsCommand.
---
--- /See:/ 'fsCommand' smart constructor.
-data FsCommand = FsCommand
-    { _fcPositionOption :: !(Maybe FsCommandPositionOption)
-    , _fcLeft           :: !(Maybe (Textual Int32))
-    , _fcWindowHeight   :: !(Maybe (Textual Int32))
-    , _fcWindowWidth    :: !(Maybe (Textual Int32))
-    , _fcTop            :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FsCommand' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fcPositionOption'
---
--- * 'fcLeft'
---
--- * 'fcWindowHeight'
---
--- * 'fcWindowWidth'
---
--- * 'fcTop'
-fsCommand
-    :: FsCommand
-fsCommand =
-    FsCommand
-    { _fcPositionOption = Nothing
-    , _fcLeft = Nothing
-    , _fcWindowHeight = Nothing
-    , _fcWindowWidth = Nothing
-    , _fcTop = Nothing
-    }
-
--- | Position in the browser where the window will open.
-fcPositionOption :: Lens' FsCommand (Maybe FsCommandPositionOption)
-fcPositionOption
-  = lens _fcPositionOption
-      (\ s a -> s{_fcPositionOption = a})
-
--- | Distance from the left of the browser.Applicable when positionOption is
--- DISTANCE_FROM_TOP_LEFT_CORNER.
-fcLeft :: Lens' FsCommand (Maybe Int32)
-fcLeft
-  = lens _fcLeft (\ s a -> s{_fcLeft = a}) .
-      mapping _Coerce
-
--- | Height of the window.
-fcWindowHeight :: Lens' FsCommand (Maybe Int32)
-fcWindowHeight
-  = lens _fcWindowHeight
-      (\ s a -> s{_fcWindowHeight = a})
-      . mapping _Coerce
-
--- | Width of the window.
-fcWindowWidth :: Lens' FsCommand (Maybe Int32)
-fcWindowWidth
-  = lens _fcWindowWidth
-      (\ s a -> s{_fcWindowWidth = a})
-      . mapping _Coerce
-
--- | Distance from the top of the browser. Applicable when positionOption is
--- DISTANCE_FROM_TOP_LEFT_CORNER.
-fcTop :: Lens' FsCommand (Maybe Int32)
-fcTop
-  = lens _fcTop (\ s a -> s{_fcTop = a}) .
-      mapping _Coerce
-
-instance FromJSON FsCommand where
-        parseJSON
-          = withObject "FsCommand"
-              (\ o ->
-                 FsCommand <$>
-                   (o .:? "positionOption") <*> (o .:? "left") <*>
-                     (o .:? "windowHeight")
-                     <*> (o .:? "windowWidth")
-                     <*> (o .:? "top"))
-
-instance ToJSON FsCommand where
-        toJSON FsCommand{..}
-          = object
-              (catMaybes
-                 [("positionOption" .=) <$> _fcPositionOption,
-                  ("left" .=) <$> _fcLeft,
-                  ("windowHeight" .=) <$> _fcWindowHeight,
-                  ("windowWidth" .=) <$> _fcWindowWidth,
-                  ("top" .=) <$> _fcTop])
-
--- | Placement Assignment.
---
--- /See:/ 'placementAssignment' smart constructor.
-data PlacementAssignment = PlacementAssignment
-    { _paPlacementId               :: !(Maybe (Textual Int64))
-    , _paPlacementIdDimensionValue :: !(Maybe DimensionValue)
-    , _paActive                    :: !(Maybe Bool)
-    , _paSSLRequired               :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PlacementAssignment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'paPlacementId'
---
--- * 'paPlacementIdDimensionValue'
---
--- * 'paActive'
---
--- * 'paSSLRequired'
-placementAssignment
-    :: PlacementAssignment
-placementAssignment =
-    PlacementAssignment
-    { _paPlacementId = Nothing
-    , _paPlacementIdDimensionValue = Nothing
-    , _paActive = Nothing
-    , _paSSLRequired = Nothing
-    }
-
--- | ID of the placement to be assigned. This is a required field.
-paPlacementId :: Lens' PlacementAssignment (Maybe Int64)
-paPlacementId
-  = lens _paPlacementId
-      (\ s a -> s{_paPlacementId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the placement. This is a read-only,
--- auto-generated field.
-paPlacementIdDimensionValue :: Lens' PlacementAssignment (Maybe DimensionValue)
-paPlacementIdDimensionValue
-  = lens _paPlacementIdDimensionValue
-      (\ s a -> s{_paPlacementIdDimensionValue = a})
-
--- | Whether this placement assignment is active. When true, the placement
--- will be included in the ad\'s rotation.
-paActive :: Lens' PlacementAssignment (Maybe Bool)
-paActive = lens _paActive (\ s a -> s{_paActive = a})
-
--- | Whether the placement to be assigned requires SSL. This is a read-only
--- field that is auto-generated when the ad is inserted or updated.
-paSSLRequired :: Lens' PlacementAssignment (Maybe Bool)
-paSSLRequired
-  = lens _paSSLRequired
-      (\ s a -> s{_paSSLRequired = a})
-
-instance FromJSON PlacementAssignment where
-        parseJSON
-          = withObject "PlacementAssignment"
-              (\ o ->
-                 PlacementAssignment <$>
-                   (o .:? "placementId") <*>
-                     (o .:? "placementIdDimensionValue")
-                     <*> (o .:? "active")
-                     <*> (o .:? "sslRequired"))
-
-instance ToJSON PlacementAssignment where
-        toJSON PlacementAssignment{..}
-          = object
-              (catMaybes
-                 [("placementId" .=) <$> _paPlacementId,
-                  ("placementIdDimensionValue" .=) <$>
-                    _paPlacementIdDimensionValue,
-                  ("active" .=) <$> _paActive,
-                  ("sslRequired" .=) <$> _paSSLRequired])
-
--- | Contains properties of a creative field value.
---
--- /See:/ 'creativeFieldValue' smart constructor.
-data CreativeFieldValue = CreativeFieldValue
-    { _cfvKind  :: !Text
-    , _cfvValue :: !(Maybe Text)
-    , _cfvId    :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeFieldValue' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cfvKind'
---
--- * 'cfvValue'
---
--- * 'cfvId'
-creativeFieldValue
-    :: CreativeFieldValue
-creativeFieldValue =
-    CreativeFieldValue
-    { _cfvKind = "dfareporting#creativeFieldValue"
-    , _cfvValue = Nothing
-    , _cfvId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#creativeFieldValue\".
-cfvKind :: Lens' CreativeFieldValue Text
-cfvKind = lens _cfvKind (\ s a -> s{_cfvKind = a})
-
--- | Value of this creative field value. It needs to be less than 256
--- characters in length and unique per creative field.
-cfvValue :: Lens' CreativeFieldValue (Maybe Text)
-cfvValue = lens _cfvValue (\ s a -> s{_cfvValue = a})
-
--- | ID of this creative field value. This is a read-only, auto-generated
--- field.
-cfvId :: Lens' CreativeFieldValue (Maybe Int64)
-cfvId
-  = lens _cfvId (\ s a -> s{_cfvId = a}) .
-      mapping _Coerce
-
-instance FromJSON CreativeFieldValue where
-        parseJSON
-          = withObject "CreativeFieldValue"
-              (\ o ->
-                 CreativeFieldValue <$>
-                   (o .:? "kind" .!= "dfareporting#creativeFieldValue")
-                     <*> (o .:? "value")
-                     <*> (o .:? "id"))
-
-instance ToJSON CreativeFieldValue where
-        toJSON CreativeFieldValue{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _cfvKind),
-                  ("value" .=) <$> _cfvValue, ("id" .=) <$> _cfvId])
-
--- | Represents a DimensionValuesRequest.
---
--- /See:/ 'dimensionValueRequest' smart constructor.
-data DimensionValueRequest = DimensionValueRequest
-    { _dvrKind          :: !Text
-    , _dvrEndDate       :: !(Maybe Date')
-    , _dvrFilters       :: !(Maybe [DimensionFilter])
-    , _dvrStartDate     :: !(Maybe Date')
-    , _dvrDimensionName :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DimensionValueRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dvrKind'
---
--- * 'dvrEndDate'
---
--- * 'dvrFilters'
---
--- * 'dvrStartDate'
---
--- * 'dvrDimensionName'
-dimensionValueRequest
-    :: DimensionValueRequest
-dimensionValueRequest =
-    DimensionValueRequest
-    { _dvrKind = "dfareporting#dimensionValueRequest"
-    , _dvrEndDate = Nothing
-    , _dvrFilters = Nothing
-    , _dvrStartDate = Nothing
-    , _dvrDimensionName = Nothing
-    }
-
--- | The kind of request this is, in this case
--- dfareporting#dimensionValueRequest.
-dvrKind :: Lens' DimensionValueRequest Text
-dvrKind = lens _dvrKind (\ s a -> s{_dvrKind = a})
-
--- | The end date of the date range for which to retrieve dimension values. A
--- string of the format \"yyyy-MM-dd\".
-dvrEndDate :: Lens' DimensionValueRequest (Maybe Day)
-dvrEndDate
-  = lens _dvrEndDate (\ s a -> s{_dvrEndDate = a}) .
-      mapping _Date
-
--- | The list of filters by which to filter values. The filters are ANDed.
-dvrFilters :: Lens' DimensionValueRequest [DimensionFilter]
-dvrFilters
-  = lens _dvrFilters (\ s a -> s{_dvrFilters = a}) .
-      _Default
-      . _Coerce
-
--- | The start date of the date range for which to retrieve dimension values.
--- A string of the format \"yyyy-MM-dd\".
-dvrStartDate :: Lens' DimensionValueRequest (Maybe Day)
-dvrStartDate
-  = lens _dvrStartDate (\ s a -> s{_dvrStartDate = a})
-      . mapping _Date
-
--- | The name of the dimension for which values should be requested.
-dvrDimensionName :: Lens' DimensionValueRequest (Maybe Text)
-dvrDimensionName
-  = lens _dvrDimensionName
-      (\ s a -> s{_dvrDimensionName = a})
-
-instance FromJSON DimensionValueRequest where
-        parseJSON
-          = withObject "DimensionValueRequest"
-              (\ o ->
-                 DimensionValueRequest <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#dimensionValueRequest")
-                     <*> (o .:? "endDate")
-                     <*> (o .:? "filters" .!= mempty)
-                     <*> (o .:? "startDate")
-                     <*> (o .:? "dimensionName"))
-
-instance ToJSON DimensionValueRequest where
-        toJSON DimensionValueRequest{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _dvrKind),
-                  ("endDate" .=) <$> _dvrEndDate,
-                  ("filters" .=) <$> _dvrFilters,
-                  ("startDate" .=) <$> _dvrStartDate,
-                  ("dimensionName" .=) <$> _dvrDimensionName])
-
--- | Floodlight Configuration List Response
---
--- /See:/ 'floodlightConfigurationsListResponse' smart constructor.
-data FloodlightConfigurationsListResponse = FloodlightConfigurationsListResponse
-    { _fclrKind                     :: !Text
-    , _fclrFloodlightConfigurations :: !(Maybe [FloodlightConfiguration])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightConfigurationsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fclrKind'
---
--- * 'fclrFloodlightConfigurations'
-floodlightConfigurationsListResponse
-    :: FloodlightConfigurationsListResponse
-floodlightConfigurationsListResponse =
-    FloodlightConfigurationsListResponse
-    { _fclrKind = "dfareporting#floodlightConfigurationsListResponse"
-    , _fclrFloodlightConfigurations = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#floodlightConfigurationsListResponse\".
-fclrKind :: Lens' FloodlightConfigurationsListResponse Text
-fclrKind = lens _fclrKind (\ s a -> s{_fclrKind = a})
-
--- | Floodlight configuration collection.
-fclrFloodlightConfigurations :: Lens' FloodlightConfigurationsListResponse [FloodlightConfiguration]
-fclrFloodlightConfigurations
-  = lens _fclrFloodlightConfigurations
-      (\ s a -> s{_fclrFloodlightConfigurations = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-         FloodlightConfigurationsListResponse where
-        parseJSON
-          = withObject "FloodlightConfigurationsListResponse"
-              (\ o ->
-                 FloodlightConfigurationsListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#floodlightConfigurationsListResponse")
-                     <*> (o .:? "floodlightConfigurations" .!= mempty))
-
-instance ToJSON FloodlightConfigurationsListResponse
-         where
-        toJSON FloodlightConfigurationsListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _fclrKind),
-                  ("floodlightConfigurations" .=) <$>
-                    _fclrFloodlightConfigurations])
-
--- | Floodlight Activity List Response
---
--- /See:/ 'floodlightActivitiesListResponse' smart constructor.
-data FloodlightActivitiesListResponse = FloodlightActivitiesListResponse
-    { _falrNextPageToken        :: !(Maybe Text)
-    , _falrKind                 :: !Text
-    , _falrFloodlightActivities :: !(Maybe [FloodlightActivity])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightActivitiesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'falrNextPageToken'
---
--- * 'falrKind'
---
--- * 'falrFloodlightActivities'
-floodlightActivitiesListResponse
-    :: FloodlightActivitiesListResponse
-floodlightActivitiesListResponse =
-    FloodlightActivitiesListResponse
-    { _falrNextPageToken = Nothing
-    , _falrKind = "dfareporting#floodlightActivitiesListResponse"
-    , _falrFloodlightActivities = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-falrNextPageToken :: Lens' FloodlightActivitiesListResponse (Maybe Text)
-falrNextPageToken
-  = lens _falrNextPageToken
-      (\ s a -> s{_falrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#floodlightActivitiesListResponse\".
-falrKind :: Lens' FloodlightActivitiesListResponse Text
-falrKind = lens _falrKind (\ s a -> s{_falrKind = a})
-
--- | Floodlight activity collection.
-falrFloodlightActivities :: Lens' FloodlightActivitiesListResponse [FloodlightActivity]
-falrFloodlightActivities
-  = lens _falrFloodlightActivities
-      (\ s a -> s{_falrFloodlightActivities = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON FloodlightActivitiesListResponse
-         where
-        parseJSON
-          = withObject "FloodlightActivitiesListResponse"
-              (\ o ->
-                 FloodlightActivitiesListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#floodlightActivitiesListResponse")
-                     <*> (o .:? "floodlightActivities" .!= mempty))
-
-instance ToJSON FloodlightActivitiesListResponse
-         where
-        toJSON FloodlightActivitiesListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _falrNextPageToken,
-                  Just ("kind" .= _falrKind),
-                  ("floodlightActivities" .=) <$>
-                    _falrFloodlightActivities])
-
--- | Creative Field Assignment.
---
--- /See:/ 'creativeFieldAssignment' smart constructor.
-data CreativeFieldAssignment = CreativeFieldAssignment
-    { _cfaCreativeFieldId      :: !(Maybe (Textual Int64))
-    , _cfaCreativeFieldValueId :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeFieldAssignment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cfaCreativeFieldId'
---
--- * 'cfaCreativeFieldValueId'
-creativeFieldAssignment
-    :: CreativeFieldAssignment
-creativeFieldAssignment =
-    CreativeFieldAssignment
-    { _cfaCreativeFieldId = Nothing
-    , _cfaCreativeFieldValueId = Nothing
-    }
-
--- | ID of the creative field.
-cfaCreativeFieldId :: Lens' CreativeFieldAssignment (Maybe Int64)
-cfaCreativeFieldId
-  = lens _cfaCreativeFieldId
-      (\ s a -> s{_cfaCreativeFieldId = a})
-      . mapping _Coerce
-
--- | ID of the creative field value.
-cfaCreativeFieldValueId :: Lens' CreativeFieldAssignment (Maybe Int64)
-cfaCreativeFieldValueId
-  = lens _cfaCreativeFieldValueId
-      (\ s a -> s{_cfaCreativeFieldValueId = a})
-      . mapping _Coerce
-
-instance FromJSON CreativeFieldAssignment where
-        parseJSON
-          = withObject "CreativeFieldAssignment"
-              (\ o ->
-                 CreativeFieldAssignment <$>
-                   (o .:? "creativeFieldId") <*>
-                     (o .:? "creativeFieldValueId"))
-
-instance ToJSON CreativeFieldAssignment where
-        toJSON CreativeFieldAssignment{..}
-          = object
-              (catMaybes
-                 [("creativeFieldId" .=) <$> _cfaCreativeFieldId,
-                  ("creativeFieldValueId" .=) <$>
-                    _cfaCreativeFieldValueId])
-
--- | Groups advertisers together so that reports can be generated for the
--- entire group at once.
---
--- /See:/ 'advertiserGroup' smart constructor.
-data AdvertiserGroup = AdvertiserGroup
-    { _agKind      :: !Text
-    , _agAccountId :: !(Maybe (Textual Int64))
-    , _agName      :: !(Maybe Text)
-    , _agId        :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AdvertiserGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'agKind'
---
--- * 'agAccountId'
---
--- * 'agName'
---
--- * 'agId'
-advertiserGroup
-    :: AdvertiserGroup
-advertiserGroup =
-    AdvertiserGroup
-    { _agKind = "dfareporting#advertiserGroup"
-    , _agAccountId = Nothing
-    , _agName = Nothing
-    , _agId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#advertiserGroup\".
-agKind :: Lens' AdvertiserGroup Text
-agKind = lens _agKind (\ s a -> s{_agKind = a})
-
--- | Account ID of this advertiser group. This is a read-only field that can
--- be left blank.
-agAccountId :: Lens' AdvertiserGroup (Maybe Int64)
-agAccountId
-  = lens _agAccountId (\ s a -> s{_agAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this advertiser group. This is a required field and must be less
--- than 256 characters long and unique among advertiser groups of the same
--- account.
-agName :: Lens' AdvertiserGroup (Maybe Text)
-agName = lens _agName (\ s a -> s{_agName = a})
-
--- | ID of this advertiser group. This is a read-only, auto-generated field.
-agId :: Lens' AdvertiserGroup (Maybe Int64)
-agId
-  = lens _agId (\ s a -> s{_agId = a}) .
-      mapping _Coerce
-
-instance FromJSON AdvertiserGroup where
-        parseJSON
-          = withObject "AdvertiserGroup"
-              (\ o ->
-                 AdvertiserGroup <$>
-                   (o .:? "kind" .!= "dfareporting#advertiserGroup") <*>
-                     (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON AdvertiserGroup where
-        toJSON AdvertiserGroup{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _agKind),
-                  ("accountId" .=) <$> _agAccountId,
-                  ("name" .=) <$> _agName, ("id" .=) <$> _agId])
-
--- | Placement Tag Data
---
--- /See:/ 'tagData' smart constructor.
-data TagData = TagData
-    { _tdClickTag      :: !(Maybe Text)
-    , _tdFormat        :: !(Maybe TagDataFormat)
-    , _tdCreativeId    :: !(Maybe (Textual Int64))
-    , _tdAdId          :: !(Maybe (Textual Int64))
-    , _tdImpressionTag :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TagData' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tdClickTag'
---
--- * 'tdFormat'
---
--- * 'tdCreativeId'
---
--- * 'tdAdId'
---
--- * 'tdImpressionTag'
-tagData
-    :: TagData
-tagData =
-    TagData
-    { _tdClickTag = Nothing
-    , _tdFormat = Nothing
-    , _tdCreativeId = Nothing
-    , _tdAdId = Nothing
-    , _tdImpressionTag = Nothing
-    }
-
--- | Tag string to record a click.
-tdClickTag :: Lens' TagData (Maybe Text)
-tdClickTag
-  = lens _tdClickTag (\ s a -> s{_tdClickTag = a})
-
--- | TagData tag format of this tag.
-tdFormat :: Lens' TagData (Maybe TagDataFormat)
-tdFormat = lens _tdFormat (\ s a -> s{_tdFormat = a})
-
--- | Creative associated with this placement tag.
-tdCreativeId :: Lens' TagData (Maybe Int64)
-tdCreativeId
-  = lens _tdCreativeId (\ s a -> s{_tdCreativeId = a})
-      . mapping _Coerce
-
--- | Ad associated with this placement tag.
-tdAdId :: Lens' TagData (Maybe Int64)
-tdAdId
-  = lens _tdAdId (\ s a -> s{_tdAdId = a}) .
-      mapping _Coerce
-
--- | Tag string for serving an ad.
-tdImpressionTag :: Lens' TagData (Maybe Text)
-tdImpressionTag
-  = lens _tdImpressionTag
-      (\ s a -> s{_tdImpressionTag = a})
-
-instance FromJSON TagData where
-        parseJSON
-          = withObject "TagData"
-              (\ o ->
-                 TagData <$>
-                   (o .:? "clickTag") <*> (o .:? "format") <*>
-                     (o .:? "creativeId")
-                     <*> (o .:? "adId")
-                     <*> (o .:? "impressionTag"))
-
-instance ToJSON TagData where
-        toJSON TagData{..}
-          = object
-              (catMaybes
-                 [("clickTag" .=) <$> _tdClickTag,
-                  ("format" .=) <$> _tdFormat,
-                  ("creativeId" .=) <$> _tdCreativeId,
-                  ("adId" .=) <$> _tdAdId,
-                  ("impressionTag" .=) <$> _tdImpressionTag])
-
--- | Day Part Targeting.
---
--- /See:/ 'dayPartTargeting' smart constructor.
-data DayPartTargeting = DayPartTargeting
-    { _dptDaysOfWeek    :: !(Maybe [DayPartTargetingDaysOfWeekItem])
-    , _dptHoursOfDay    :: !(Maybe [Textual Int32])
-    , _dptUserLocalTime :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DayPartTargeting' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dptDaysOfWeek'
---
--- * 'dptHoursOfDay'
---
--- * 'dptUserLocalTime'
-dayPartTargeting
-    :: DayPartTargeting
-dayPartTargeting =
-    DayPartTargeting
-    { _dptDaysOfWeek = Nothing
-    , _dptHoursOfDay = Nothing
-    , _dptUserLocalTime = Nothing
-    }
-
--- | Days of the week when the ad will serve. Acceptable values are: -
--- \"SUNDAY\" - \"MONDAY\" - \"TUESDAY\" - \"WEDNESDAY\" - \"THURSDAY\" -
--- \"FRIDAY\" - \"SATURDAY\"
-dptDaysOfWeek :: Lens' DayPartTargeting [DayPartTargetingDaysOfWeekItem]
-dptDaysOfWeek
-  = lens _dptDaysOfWeek
-      (\ s a -> s{_dptDaysOfWeek = a})
-      . _Default
-      . _Coerce
-
--- | Hours of the day when the ad will serve. Must be an integer between 0
--- and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to
--- midnight. Can be specified with days of week, in which case the ad would
--- serve during these hours on the specified days. For example, if Monday,
--- Wednesday, Friday are the days of week specified and 9-10am, 3-5pm
--- (hours 9, 15, and 16) is specified, the ad would serve Monday,
--- Wednesdays, and Fridays at 9-10am and 3-5pm.
-dptHoursOfDay :: Lens' DayPartTargeting [Int32]
-dptHoursOfDay
-  = lens _dptHoursOfDay
-      (\ s a -> s{_dptHoursOfDay = a})
-      . _Default
-      . _Coerce
-
--- | Whether or not to use the user\'s local time. If false, the America\/New
--- York time zone applies.
-dptUserLocalTime :: Lens' DayPartTargeting (Maybe Bool)
-dptUserLocalTime
-  = lens _dptUserLocalTime
-      (\ s a -> s{_dptUserLocalTime = a})
-
-instance FromJSON DayPartTargeting where
-        parseJSON
-          = withObject "DayPartTargeting"
-              (\ o ->
-                 DayPartTargeting <$>
-                   (o .:? "daysOfWeek" .!= mempty) <*>
-                     (o .:? "hoursOfDay" .!= mempty)
-                     <*> (o .:? "userLocalTime"))
-
-instance ToJSON DayPartTargeting where
-        toJSON DayPartTargeting{..}
-          = object
-              (catMaybes
-                 [("daysOfWeek" .=) <$> _dptDaysOfWeek,
-                  ("hoursOfDay" .=) <$> _dptHoursOfDay,
-                  ("userLocalTime" .=) <$> _dptUserLocalTime])
-
--- | Creative optimization settings.
---
--- /See:/ 'creativeOptimizationConfiguration' smart constructor.
-data CreativeOptimizationConfiguration = CreativeOptimizationConfiguration
-    { _cocOptimizationModel     :: !(Maybe CreativeOptimizationConfigurationOptimizationModel)
-    , _cocName                  :: !(Maybe Text)
-    , _cocOptimizationActivitys :: !(Maybe [OptimizationActivity])
-    , _cocId                    :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeOptimizationConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cocOptimizationModel'
---
--- * 'cocName'
---
--- * 'cocOptimizationActivitys'
---
--- * 'cocId'
-creativeOptimizationConfiguration
-    :: CreativeOptimizationConfiguration
-creativeOptimizationConfiguration =
-    CreativeOptimizationConfiguration
-    { _cocOptimizationModel = Nothing
-    , _cocName = Nothing
-    , _cocOptimizationActivitys = Nothing
-    , _cocId = Nothing
-    }
-
--- | Optimization model for this configuration.
-cocOptimizationModel :: Lens' CreativeOptimizationConfiguration (Maybe CreativeOptimizationConfigurationOptimizationModel)
-cocOptimizationModel
-  = lens _cocOptimizationModel
-      (\ s a -> s{_cocOptimizationModel = a})
-
--- | Name of this creative optimization config. This is a required field and
--- must be less than 129 characters long.
-cocName :: Lens' CreativeOptimizationConfiguration (Maybe Text)
-cocName = lens _cocName (\ s a -> s{_cocName = a})
-
--- | List of optimization activities associated with this configuration.
-cocOptimizationActivitys :: Lens' CreativeOptimizationConfiguration [OptimizationActivity]
-cocOptimizationActivitys
-  = lens _cocOptimizationActivitys
-      (\ s a -> s{_cocOptimizationActivitys = a})
-      . _Default
-      . _Coerce
-
--- | ID of this creative optimization config. This field is auto-generated
--- when the campaign is inserted or updated. It can be null for existing
--- campaigns.
-cocId :: Lens' CreativeOptimizationConfiguration (Maybe Int64)
-cocId
-  = lens _cocId (\ s a -> s{_cocId = a}) .
-      mapping _Coerce
-
-instance FromJSON CreativeOptimizationConfiguration
-         where
-        parseJSON
-          = withObject "CreativeOptimizationConfiguration"
-              (\ o ->
-                 CreativeOptimizationConfiguration <$>
-                   (o .:? "optimizationModel") <*> (o .:? "name") <*>
-                     (o .:? "optimizationActivitys" .!= mempty)
-                     <*> (o .:? "id"))
-
-instance ToJSON CreativeOptimizationConfiguration
-         where
-        toJSON CreativeOptimizationConfiguration{..}
-          = object
-              (catMaybes
-                 [("optimizationModel" .=) <$> _cocOptimizationModel,
-                  ("name" .=) <$> _cocName,
-                  ("optimizationActivitys" .=) <$>
-                    _cocOptimizationActivitys,
-                  ("id" .=) <$> _cocId])
-
--- | The report criteria for a report of type \"STANDARD\".
---
--- /See:/ 'reportCriteria' smart constructor.
-data ReportCriteria = ReportCriteria
-    { _rcMetricNames           :: !(Maybe [Text])
-    , _rcCustomRichMediaEvents :: !(Maybe CustomRichMediaEvents)
-    , _rcDimensionFilters      :: !(Maybe [DimensionValue])
-    , _rcActivities            :: !(Maybe Activities)
-    , _rcDateRange             :: !(Maybe DateRange)
-    , _rcDimensions            :: !(Maybe [SortedDimension])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportCriteria' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rcMetricNames'
---
--- * 'rcCustomRichMediaEvents'
---
--- * 'rcDimensionFilters'
---
--- * 'rcActivities'
---
--- * 'rcDateRange'
---
--- * 'rcDimensions'
-reportCriteria
-    :: ReportCriteria
-reportCriteria =
-    ReportCriteria
-    { _rcMetricNames = Nothing
-    , _rcCustomRichMediaEvents = Nothing
-    , _rcDimensionFilters = Nothing
-    , _rcActivities = Nothing
-    , _rcDateRange = Nothing
-    , _rcDimensions = Nothing
-    }
-
--- | The list of names of metrics the report should include.
-rcMetricNames :: Lens' ReportCriteria [Text]
-rcMetricNames
-  = lens _rcMetricNames
-      (\ s a -> s{_rcMetricNames = a})
-      . _Default
-      . _Coerce
-
--- | Custom Rich Media Events group.
-rcCustomRichMediaEvents :: Lens' ReportCriteria (Maybe CustomRichMediaEvents)
-rcCustomRichMediaEvents
-  = lens _rcCustomRichMediaEvents
-      (\ s a -> s{_rcCustomRichMediaEvents = a})
-
--- | The list of filters on which dimensions are filtered. Filters for
--- different dimensions are ANDed, filters for the same dimension are
--- grouped together and ORed.
-rcDimensionFilters :: Lens' ReportCriteria [DimensionValue]
-rcDimensionFilters
-  = lens _rcDimensionFilters
-      (\ s a -> s{_rcDimensionFilters = a})
-      . _Default
-      . _Coerce
-
--- | Activity group.
-rcActivities :: Lens' ReportCriteria (Maybe Activities)
-rcActivities
-  = lens _rcActivities (\ s a -> s{_rcActivities = a})
-
--- | The date range for which this report should be run.
-rcDateRange :: Lens' ReportCriteria (Maybe DateRange)
-rcDateRange
-  = lens _rcDateRange (\ s a -> s{_rcDateRange = a})
-
--- | The list of standard dimensions the report should include.
-rcDimensions :: Lens' ReportCriteria [SortedDimension]
-rcDimensions
-  = lens _rcDimensions (\ s a -> s{_rcDimensions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ReportCriteria where
-        parseJSON
-          = withObject "ReportCriteria"
-              (\ o ->
-                 ReportCriteria <$>
-                   (o .:? "metricNames" .!= mempty) <*>
-                     (o .:? "customRichMediaEvents")
-                     <*> (o .:? "dimensionFilters" .!= mempty)
-                     <*> (o .:? "activities")
-                     <*> (o .:? "dateRange")
-                     <*> (o .:? "dimensions" .!= mempty))
-
-instance ToJSON ReportCriteria where
-        toJSON ReportCriteria{..}
-          = object
-              (catMaybes
-                 [("metricNames" .=) <$> _rcMetricNames,
-                  ("customRichMediaEvents" .=) <$>
-                    _rcCustomRichMediaEvents,
-                  ("dimensionFilters" .=) <$> _rcDimensionFilters,
-                  ("activities" .=) <$> _rcActivities,
-                  ("dateRange" .=) <$> _rcDateRange,
-                  ("dimensions" .=) <$> _rcDimensions])
-
--- | Placement Strategy List Response
---
--- /See:/ 'placementStrategiesListResponse' smart constructor.
-data PlacementStrategiesListResponse = PlacementStrategiesListResponse
-    { _pslrPlacementStrategies :: !(Maybe [PlacementStrategy])
-    , _pslrNextPageToken       :: !(Maybe Text)
-    , _pslrKind                :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PlacementStrategiesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pslrPlacementStrategies'
---
--- * 'pslrNextPageToken'
---
--- * 'pslrKind'
-placementStrategiesListResponse
-    :: PlacementStrategiesListResponse
-placementStrategiesListResponse =
-    PlacementStrategiesListResponse
-    { _pslrPlacementStrategies = Nothing
-    , _pslrNextPageToken = Nothing
-    , _pslrKind = "dfareporting#placementStrategiesListResponse"
-    }
-
--- | Placement strategy collection.
-pslrPlacementStrategies :: Lens' PlacementStrategiesListResponse [PlacementStrategy]
-pslrPlacementStrategies
-  = lens _pslrPlacementStrategies
-      (\ s a -> s{_pslrPlacementStrategies = a})
-      . _Default
-      . _Coerce
-
--- | Pagination token to be used for the next list operation.
-pslrNextPageToken :: Lens' PlacementStrategiesListResponse (Maybe Text)
-pslrNextPageToken
-  = lens _pslrNextPageToken
-      (\ s a -> s{_pslrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#placementStrategiesListResponse\".
-pslrKind :: Lens' PlacementStrategiesListResponse Text
-pslrKind = lens _pslrKind (\ s a -> s{_pslrKind = a})
-
-instance FromJSON PlacementStrategiesListResponse
-         where
-        parseJSON
-          = withObject "PlacementStrategiesListResponse"
-              (\ o ->
-                 PlacementStrategiesListResponse <$>
-                   (o .:? "placementStrategies" .!= mempty) <*>
-                     (o .:? "nextPageToken")
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#placementStrategiesListResponse"))
-
-instance ToJSON PlacementStrategiesListResponse where
-        toJSON PlacementStrategiesListResponse{..}
-          = object
-              (catMaybes
-                 [("placementStrategies" .=) <$>
-                    _pslrPlacementStrategies,
-                  ("nextPageToken" .=) <$> _pslrNextPageToken,
-                  Just ("kind" .= _pslrKind)])
-
--- | Contains properties of a DCM subaccount.
---
--- /See:/ 'subAccount' smart constructor.
-data SubAccount = SubAccount
-    { _saKind                   :: !Text
-    , _saAvailablePermissionIds :: !(Maybe [Textual Int64])
-    , _saAccountId              :: !(Maybe (Textual Int64))
-    , _saName                   :: !(Maybe Text)
-    , _saId                     :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'SubAccount' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'saKind'
---
--- * 'saAvailablePermissionIds'
---
--- * 'saAccountId'
---
--- * 'saName'
---
--- * 'saId'
-subAccount
-    :: SubAccount
-subAccount =
-    SubAccount
-    { _saKind = "dfareporting#subaccount"
-    , _saAvailablePermissionIds = Nothing
-    , _saAccountId = Nothing
-    , _saName = Nothing
-    , _saId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#subaccount\".
-saKind :: Lens' SubAccount Text
-saKind = lens _saKind (\ s a -> s{_saKind = a})
-
--- | IDs of the available user role permissions for this subaccount.
-saAvailablePermissionIds :: Lens' SubAccount [Int64]
-saAvailablePermissionIds
-  = lens _saAvailablePermissionIds
-      (\ s a -> s{_saAvailablePermissionIds = a})
-      . _Default
-      . _Coerce
-
--- | ID of the account that contains this subaccount. This is a read-only
--- field that can be left blank.
-saAccountId :: Lens' SubAccount (Maybe Int64)
-saAccountId
-  = lens _saAccountId (\ s a -> s{_saAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this subaccount. This is a required field. Must be less than 128
--- characters long and be unique among subaccounts of the same account.
-saName :: Lens' SubAccount (Maybe Text)
-saName = lens _saName (\ s a -> s{_saName = a})
-
--- | ID of this subaccount. This is a read-only, auto-generated field.
-saId :: Lens' SubAccount (Maybe Int64)
-saId
-  = lens _saId (\ s a -> s{_saId = a}) .
-      mapping _Coerce
-
-instance FromJSON SubAccount where
-        parseJSON
-          = withObject "SubAccount"
-              (\ o ->
-                 SubAccount <$>
-                   (o .:? "kind" .!= "dfareporting#subaccount") <*>
-                     (o .:? "availablePermissionIds" .!= mempty)
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON SubAccount where
-        toJSON SubAccount{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _saKind),
-                  ("availablePermissionIds" .=) <$>
-                    _saAvailablePermissionIds,
-                  ("accountId" .=) <$> _saAccountId,
-                  ("name" .=) <$> _saName, ("id" .=) <$> _saId])
-
--- | Inventory item List Response
---
--- /See:/ 'inventoryItemsListResponse' smart constructor.
-data InventoryItemsListResponse = InventoryItemsListResponse
-    { _iilrInventoryItems :: !(Maybe [InventoryItem])
-    , _iilrNextPageToken  :: !(Maybe Text)
-    , _iilrKind           :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'InventoryItemsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iilrInventoryItems'
---
--- * 'iilrNextPageToken'
---
--- * 'iilrKind'
-inventoryItemsListResponse
-    :: InventoryItemsListResponse
-inventoryItemsListResponse =
-    InventoryItemsListResponse
-    { _iilrInventoryItems = Nothing
-    , _iilrNextPageToken = Nothing
-    , _iilrKind = "dfareporting#inventoryItemsListResponse"
-    }
-
--- | Inventory item collection
-iilrInventoryItems :: Lens' InventoryItemsListResponse [InventoryItem]
-iilrInventoryItems
-  = lens _iilrInventoryItems
-      (\ s a -> s{_iilrInventoryItems = a})
-      . _Default
-      . _Coerce
-
--- | Pagination token to be used for the next list operation.
-iilrNextPageToken :: Lens' InventoryItemsListResponse (Maybe Text)
-iilrNextPageToken
-  = lens _iilrNextPageToken
-      (\ s a -> s{_iilrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#inventoryItemsListResponse\".
-iilrKind :: Lens' InventoryItemsListResponse Text
-iilrKind = lens _iilrKind (\ s a -> s{_iilrKind = a})
-
-instance FromJSON InventoryItemsListResponse where
-        parseJSON
-          = withObject "InventoryItemsListResponse"
-              (\ o ->
-                 InventoryItemsListResponse <$>
-                   (o .:? "inventoryItems" .!= mempty) <*>
-                     (o .:? "nextPageToken")
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#inventoryItemsListResponse"))
-
-instance ToJSON InventoryItemsListResponse where
-        toJSON InventoryItemsListResponse{..}
-          = object
-              (catMaybes
-                 [("inventoryItems" .=) <$> _iilrInventoryItems,
-                  ("nextPageToken" .=) <$> _iilrNextPageToken,
-                  Just ("kind" .= _iilrKind)])
-
--- | Contains properties of a DCM ad.
---
--- /See:/ 'ad' smart constructor.
-data Ad = Ad
-    { _aCreativeGroupAssignments              :: !(Maybe [CreativeGroupAssignment])
-    , _aGeoTargeting                          :: !(Maybe GeoTargeting)
-    , _aCreativeRotation                      :: !(Maybe CreativeRotation)
-    , _aTechnologyTargeting                   :: !(Maybe TechnologyTargeting)
-    , _aAudienceSegmentId                     :: !(Maybe (Textual Int64))
-    , _aDayPartTargeting                      :: !(Maybe DayPartTargeting)
-    , _aSize                                  :: !(Maybe Size)
-    , _aStartTime                             :: !(Maybe DateTime')
-    , _aKind                                  :: !Text
-    , _aClickThroughURLSuffixProperties       :: !(Maybe ClickThroughURLSuffixProperties)
-    , _aCampaignIdDimensionValue              :: !(Maybe DimensionValue)
-    , _aAdvertiserId                          :: !(Maybe (Textual Int64))
-    , _aAdvertiserIdDimensionValue            :: !(Maybe DimensionValue)
-    , _aSSLCompliant                          :: !(Maybe Bool)
-    , _aCampaignId                            :: !(Maybe (Textual Int64))
-    , _aIdDimensionValue                      :: !(Maybe DimensionValue)
-    , _aClickThroughURL                       :: !(Maybe ClickThroughURL)
-    , _aDeliverySchedule                      :: !(Maybe DeliverySchedule)
-    , _aEventTagOverrides                     :: !(Maybe [EventTagOverride])
-    , _aActive                                :: !(Maybe Bool)
-    , _aAccountId                             :: !(Maybe (Textual Int64))
-    , _aName                                  :: !(Maybe Text)
-    , _aKeyValueTargetingExpression           :: !(Maybe KeyValueTargetingExpression)
-    , _aEndTime                               :: !(Maybe DateTime')
-    , _aCreateInfo                            :: !(Maybe LastModifiedInfo)
-    , _aLastModifiedInfo                      :: !(Maybe LastModifiedInfo)
-    , _aId                                    :: !(Maybe (Textual Int64))
-    , _aSSLRequired                           :: !(Maybe Bool)
-    , _aComments                              :: !(Maybe Text)
-    , _aSubAccountId                          :: !(Maybe (Textual Int64))
-    , _aType                                  :: !(Maybe AdType)
-    , _aRemarketingListExpression             :: !(Maybe ListTargetingExpression)
-    , _aDynamicClickTracker                   :: !(Maybe Bool)
-    , _aCompatibility                         :: !(Maybe AdCompatibility)
-    , _aArchived                              :: !(Maybe Bool)
-    , _aDefaultClickThroughEventTagProperties :: !(Maybe DefaultClickThroughEventTagProperties)
-    , _aPlacementAssignments                  :: !(Maybe [PlacementAssignment])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Ad' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aCreativeGroupAssignments'
---
--- * 'aGeoTargeting'
---
--- * 'aCreativeRotation'
---
--- * 'aTechnologyTargeting'
---
--- * 'aAudienceSegmentId'
---
--- * 'aDayPartTargeting'
---
--- * 'aSize'
---
--- * 'aStartTime'
---
--- * 'aKind'
---
--- * 'aClickThroughURLSuffixProperties'
---
--- * 'aCampaignIdDimensionValue'
---
--- * 'aAdvertiserId'
---
--- * 'aAdvertiserIdDimensionValue'
---
--- * 'aSSLCompliant'
---
--- * 'aCampaignId'
---
--- * 'aIdDimensionValue'
---
--- * 'aClickThroughURL'
---
--- * 'aDeliverySchedule'
---
--- * 'aEventTagOverrides'
---
--- * 'aActive'
---
--- * 'aAccountId'
---
--- * 'aName'
---
--- * 'aKeyValueTargetingExpression'
---
--- * 'aEndTime'
---
--- * 'aCreateInfo'
---
--- * 'aLastModifiedInfo'
---
--- * 'aId'
---
--- * 'aSSLRequired'
---
--- * 'aComments'
---
--- * 'aSubAccountId'
---
--- * 'aType'
---
--- * 'aRemarketingListExpression'
---
--- * 'aDynamicClickTracker'
---
--- * 'aCompatibility'
---
--- * 'aArchived'
---
--- * 'aDefaultClickThroughEventTagProperties'
---
--- * 'aPlacementAssignments'
-ad
-    :: Ad
-ad =
-    Ad
-    { _aCreativeGroupAssignments = Nothing
-    , _aGeoTargeting = Nothing
-    , _aCreativeRotation = Nothing
-    , _aTechnologyTargeting = Nothing
-    , _aAudienceSegmentId = Nothing
-    , _aDayPartTargeting = Nothing
-    , _aSize = Nothing
-    , _aStartTime = Nothing
-    , _aKind = "dfareporting#ad"
-    , _aClickThroughURLSuffixProperties = Nothing
-    , _aCampaignIdDimensionValue = Nothing
-    , _aAdvertiserId = Nothing
-    , _aAdvertiserIdDimensionValue = Nothing
-    , _aSSLCompliant = Nothing
-    , _aCampaignId = Nothing
-    , _aIdDimensionValue = Nothing
-    , _aClickThroughURL = Nothing
-    , _aDeliverySchedule = Nothing
-    , _aEventTagOverrides = Nothing
-    , _aActive = Nothing
-    , _aAccountId = Nothing
-    , _aName = Nothing
-    , _aKeyValueTargetingExpression = Nothing
-    , _aEndTime = Nothing
-    , _aCreateInfo = Nothing
-    , _aLastModifiedInfo = Nothing
-    , _aId = Nothing
-    , _aSSLRequired = Nothing
-    , _aComments = Nothing
-    , _aSubAccountId = Nothing
-    , _aType = Nothing
-    , _aRemarketingListExpression = Nothing
-    , _aDynamicClickTracker = Nothing
-    , _aCompatibility = Nothing
-    , _aArchived = Nothing
-    , _aDefaultClickThroughEventTagProperties = Nothing
-    , _aPlacementAssignments = Nothing
-    }
-
--- | Creative group assignments for this ad. Applicable when type is
--- AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number
--- is allowed for a maximum of two assignments.
-aCreativeGroupAssignments :: Lens' Ad [CreativeGroupAssignment]
-aCreativeGroupAssignments
-  = lens _aCreativeGroupAssignments
-      (\ s a -> s{_aCreativeGroupAssignments = a})
-      . _Default
-      . _Coerce
-
--- | Geographical targeting information for this ad.Applicable when type is
--- AD_SERVING_STANDARD_AD.
-aGeoTargeting :: Lens' Ad (Maybe GeoTargeting)
-aGeoTargeting
-  = lens _aGeoTargeting
-      (\ s a -> s{_aGeoTargeting = a})
-
--- | Creative rotation for this ad. Applicable when type is
--- AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING.
--- When type is AD_SERVING_DEFAULT_AD, this field should have exactly one
--- creativeAssignment.
-aCreativeRotation :: Lens' Ad (Maybe CreativeRotation)
-aCreativeRotation
-  = lens _aCreativeRotation
-      (\ s a -> s{_aCreativeRotation = a})
-
--- | Technology platform targeting information for this ad. Applicable when
--- type is AD_SERVING_STANDARD_AD.
-aTechnologyTargeting :: Lens' Ad (Maybe TechnologyTargeting)
-aTechnologyTargeting
-  = lens _aTechnologyTargeting
-      (\ s a -> s{_aTechnologyTargeting = a})
-
--- | Audience segment ID that is being targeted for this ad. Applicable when
--- type is AD_SERVING_STANDARD_AD.
-aAudienceSegmentId :: Lens' Ad (Maybe Int64)
-aAudienceSegmentId
-  = lens _aAudienceSegmentId
-      (\ s a -> s{_aAudienceSegmentId = a})
-      . mapping _Coerce
-
--- | Time and day targeting information for this ad. Applicable when type is
--- AD_SERVING_STANDARD_AD.
-aDayPartTargeting :: Lens' Ad (Maybe DayPartTargeting)
-aDayPartTargeting
-  = lens _aDayPartTargeting
-      (\ s a -> s{_aDayPartTargeting = a})
-
--- | Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-aSize :: Lens' Ad (Maybe Size)
-aSize = lens _aSize (\ s a -> s{_aSize = a})
-
--- | Date and time that this ad should start serving. If creating an ad, this
--- field must be a time in the future. This is a required field on
--- insertion.
-aStartTime :: Lens' Ad (Maybe UTCTime)
-aStartTime
-  = lens _aStartTime (\ s a -> s{_aStartTime = a}) .
-      mapping _DateTime
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#ad\".
-aKind :: Lens' Ad Text
-aKind = lens _aKind (\ s a -> s{_aKind = a})
-
--- | Click-through URL suffix properties for this ad. Applies to the URL in
--- the ad or (if overriding ad properties) the URL in the creative.
-aClickThroughURLSuffixProperties :: Lens' Ad (Maybe ClickThroughURLSuffixProperties)
-aClickThroughURLSuffixProperties
-  = lens _aClickThroughURLSuffixProperties
-      (\ s a -> s{_aClickThroughURLSuffixProperties = a})
-
--- | Dimension value for the ID of the campaign. This is a read-only,
--- auto-generated field.
-aCampaignIdDimensionValue :: Lens' Ad (Maybe DimensionValue)
-aCampaignIdDimensionValue
-  = lens _aCampaignIdDimensionValue
-      (\ s a -> s{_aCampaignIdDimensionValue = a})
-
--- | Advertiser ID of this ad. This is a required field on insertion.
-aAdvertiserId :: Lens' Ad (Maybe Int64)
-aAdvertiserId
-  = lens _aAdvertiserId
-      (\ s a -> s{_aAdvertiserId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the advertiser. This is a read-only,
--- auto-generated field.
-aAdvertiserIdDimensionValue :: Lens' Ad (Maybe DimensionValue)
-aAdvertiserIdDimensionValue
-  = lens _aAdvertiserIdDimensionValue
-      (\ s a -> s{_aAdvertiserIdDimensionValue = a})
-
--- | Whether this ad is ssl compliant. This is a read-only field that is
--- auto-generated when the ad is inserted or updated.
-aSSLCompliant :: Lens' Ad (Maybe Bool)
-aSSLCompliant
-  = lens _aSSLCompliant
-      (\ s a -> s{_aSSLCompliant = a})
-
--- | Campaign ID of this ad. This is a required field on insertion.
-aCampaignId :: Lens' Ad (Maybe Int64)
-aCampaignId
-  = lens _aCampaignId (\ s a -> s{_aCampaignId = a}) .
-      mapping _Coerce
-
--- | Dimension value for the ID of this ad. This is a read-only,
--- auto-generated field.
-aIdDimensionValue :: Lens' Ad (Maybe DimensionValue)
-aIdDimensionValue
-  = lens _aIdDimensionValue
-      (\ s a -> s{_aIdDimensionValue = a})
-
--- | Click-through URL for this ad. This is a required field on insertion.
--- Applicable when type is AD_SERVING_CLICK_TRACKER.
-aClickThroughURL :: Lens' Ad (Maybe ClickThroughURL)
-aClickThroughURL
-  = lens _aClickThroughURL
-      (\ s a -> s{_aClickThroughURL = a})
-
--- | Delivery schedule information for this ad. Applicable when type is
--- AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with
--- subfields priority and impressionRatio are required on insertion when
--- type is AD_SERVING_STANDARD_AD.
-aDeliverySchedule :: Lens' Ad (Maybe DeliverySchedule)
-aDeliverySchedule
-  = lens _aDeliverySchedule
-      (\ s a -> s{_aDeliverySchedule = a})
-
--- | Event tag overrides for this ad.
-aEventTagOverrides :: Lens' Ad [EventTagOverride]
-aEventTagOverrides
-  = lens _aEventTagOverrides
-      (\ s a -> s{_aEventTagOverrides = a})
-      . _Default
-      . _Coerce
-
--- | Whether this ad is active.
-aActive :: Lens' Ad (Maybe Bool)
-aActive = lens _aActive (\ s a -> s{_aActive = a})
-
--- | Account ID of this ad. This is a read-only field that can be left blank.
-aAccountId :: Lens' Ad (Maybe Int64)
-aAccountId
-  = lens _aAccountId (\ s a -> s{_aAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this ad. This is a required field and must be less than 256
--- characters long.
-aName :: Lens' Ad (Maybe Text)
-aName = lens _aName (\ s a -> s{_aName = a})
-
--- | Key-value targeting information for this ad. Applicable when type is
--- AD_SERVING_STANDARD_AD.
-aKeyValueTargetingExpression :: Lens' Ad (Maybe KeyValueTargetingExpression)
-aKeyValueTargetingExpression
-  = lens _aKeyValueTargetingExpression
-      (\ s a -> s{_aKeyValueTargetingExpression = a})
-
--- | Date and time that this ad should stop serving. Must be later than the
--- start time. This is a required field on insertion.
-aEndTime :: Lens' Ad (Maybe UTCTime)
-aEndTime
-  = lens _aEndTime (\ s a -> s{_aEndTime = a}) .
-      mapping _DateTime
-
--- | Information about the creation of this ad.This is a read-only field.
-aCreateInfo :: Lens' Ad (Maybe LastModifiedInfo)
-aCreateInfo
-  = lens _aCreateInfo (\ s a -> s{_aCreateInfo = a})
-
--- | Information about the most recent modification of this ad. This is a
--- read-only field.
-aLastModifiedInfo :: Lens' Ad (Maybe LastModifiedInfo)
-aLastModifiedInfo
-  = lens _aLastModifiedInfo
-      (\ s a -> s{_aLastModifiedInfo = a})
-
--- | ID of this ad. This is a read-only, auto-generated field.
-aId :: Lens' Ad (Maybe Int64)
-aId
-  = lens _aId (\ s a -> s{_aId = a}) . mapping _Coerce
-
--- | Whether this ad requires ssl. This is a read-only field that is
--- auto-generated when the ad is inserted or updated.
-aSSLRequired :: Lens' Ad (Maybe Bool)
-aSSLRequired
-  = lens _aSSLRequired (\ s a -> s{_aSSLRequired = a})
-
--- | Comments for this ad.
-aComments :: Lens' Ad (Maybe Text)
-aComments
-  = lens _aComments (\ s a -> s{_aComments = a})
-
--- | Subaccount ID of this ad. This is a read-only field that can be left
--- blank.
-aSubAccountId :: Lens' Ad (Maybe Int64)
-aSubAccountId
-  = lens _aSubAccountId
-      (\ s a -> s{_aSubAccountId = a})
-      . mapping _Coerce
-
--- | Type of ad. This is a required field on insertion. Note that default ads
--- (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative
--- resource).
-aType :: Lens' Ad (Maybe AdType)
-aType = lens _aType (\ s a -> s{_aType = a})
-
--- | Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list
--- targeting expression for this ad.
-aRemarketingListExpression :: Lens' Ad (Maybe ListTargetingExpression)
-aRemarketingListExpression
-  = lens _aRemarketingListExpression
-      (\ s a -> s{_aRemarketingListExpression = a})
-
--- | Whether this ad is a dynamic click tracker. Applicable when type is
--- AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is
--- read-only after insert.
-aDynamicClickTracker :: Lens' Ad (Maybe Bool)
-aDynamicClickTracker
-  = lens _aDynamicClickTracker
-      (\ s a -> s{_aDynamicClickTracker = a})
-
--- | Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
--- WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on
--- mobile devices for regular or interstitial ads, respectively. APP and
--- APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO
--- refers to rendering an in-stream video ads developed with the VAST
--- standard.
-aCompatibility :: Lens' Ad (Maybe AdCompatibility)
-aCompatibility
-  = lens _aCompatibility
-      (\ s a -> s{_aCompatibility = a})
-
--- | Whether this ad is archived.
-aArchived :: Lens' Ad (Maybe Bool)
-aArchived
-  = lens _aArchived (\ s a -> s{_aArchived = a})
-
--- | Default click-through event tag properties for this ad.
-aDefaultClickThroughEventTagProperties :: Lens' Ad (Maybe DefaultClickThroughEventTagProperties)
-aDefaultClickThroughEventTagProperties
-  = lens _aDefaultClickThroughEventTagProperties
-      (\ s a ->
-         s{_aDefaultClickThroughEventTagProperties = a})
-
--- | Placement assignments for this ad.
-aPlacementAssignments :: Lens' Ad [PlacementAssignment]
-aPlacementAssignments
-  = lens _aPlacementAssignments
-      (\ s a -> s{_aPlacementAssignments = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON Ad where
-        parseJSON
-          = withObject "Ad"
-              (\ o ->
-                 Ad <$>
-                   (o .:? "creativeGroupAssignments" .!= mempty) <*>
-                     (o .:? "geoTargeting")
-                     <*> (o .:? "creativeRotation")
-                     <*> (o .:? "technologyTargeting")
-                     <*> (o .:? "audienceSegmentId")
-                     <*> (o .:? "dayPartTargeting")
-                     <*> (o .:? "size")
-                     <*> (o .:? "startTime")
-                     <*> (o .:? "kind" .!= "dfareporting#ad")
-                     <*> (o .:? "clickThroughUrlSuffixProperties")
-                     <*> (o .:? "campaignIdDimensionValue")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "sslCompliant")
-                     <*> (o .:? "campaignId")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "clickThroughUrl")
-                     <*> (o .:? "deliverySchedule")
-                     <*> (o .:? "eventTagOverrides" .!= mempty)
-                     <*> (o .:? "active")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "keyValueTargetingExpression")
-                     <*> (o .:? "endTime")
-                     <*> (o .:? "createInfo")
-                     <*> (o .:? "lastModifiedInfo")
-                     <*> (o .:? "id")
-                     <*> (o .:? "sslRequired")
-                     <*> (o .:? "comments")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "type")
-                     <*> (o .:? "remarketingListExpression")
-                     <*> (o .:? "dynamicClickTracker")
-                     <*> (o .:? "compatibility")
-                     <*> (o .:? "archived")
-                     <*> (o .:? "defaultClickThroughEventTagProperties")
-                     <*> (o .:? "placementAssignments" .!= mempty))
-
-instance ToJSON Ad where
-        toJSON Ad{..}
-          = object
-              (catMaybes
-                 [("creativeGroupAssignments" .=) <$>
-                    _aCreativeGroupAssignments,
-                  ("geoTargeting" .=) <$> _aGeoTargeting,
-                  ("creativeRotation" .=) <$> _aCreativeRotation,
-                  ("technologyTargeting" .=) <$> _aTechnologyTargeting,
-                  ("audienceSegmentId" .=) <$> _aAudienceSegmentId,
-                  ("dayPartTargeting" .=) <$> _aDayPartTargeting,
-                  ("size" .=) <$> _aSize,
-                  ("startTime" .=) <$> _aStartTime,
-                  Just ("kind" .= _aKind),
-                  ("clickThroughUrlSuffixProperties" .=) <$>
-                    _aClickThroughURLSuffixProperties,
-                  ("campaignIdDimensionValue" .=) <$>
-                    _aCampaignIdDimensionValue,
-                  ("advertiserId" .=) <$> _aAdvertiserId,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _aAdvertiserIdDimensionValue,
-                  ("sslCompliant" .=) <$> _aSSLCompliant,
-                  ("campaignId" .=) <$> _aCampaignId,
-                  ("idDimensionValue" .=) <$> _aIdDimensionValue,
-                  ("clickThroughUrl" .=) <$> _aClickThroughURL,
-                  ("deliverySchedule" .=) <$> _aDeliverySchedule,
-                  ("eventTagOverrides" .=) <$> _aEventTagOverrides,
-                  ("active" .=) <$> _aActive,
-                  ("accountId" .=) <$> _aAccountId,
-                  ("name" .=) <$> _aName,
-                  ("keyValueTargetingExpression" .=) <$>
-                    _aKeyValueTargetingExpression,
-                  ("endTime" .=) <$> _aEndTime,
-                  ("createInfo" .=) <$> _aCreateInfo,
-                  ("lastModifiedInfo" .=) <$> _aLastModifiedInfo,
-                  ("id" .=) <$> _aId,
-                  ("sslRequired" .=) <$> _aSSLRequired,
-                  ("comments" .=) <$> _aComments,
-                  ("subaccountId" .=) <$> _aSubAccountId,
-                  ("type" .=) <$> _aType,
-                  ("remarketingListExpression" .=) <$>
-                    _aRemarketingListExpression,
-                  ("dynamicClickTracker" .=) <$> _aDynamicClickTracker,
-                  ("compatibility" .=) <$> _aCompatibility,
-                  ("archived" .=) <$> _aArchived,
-                  ("defaultClickThroughEventTagProperties" .=) <$>
-                    _aDefaultClickThroughEventTagProperties,
-                  ("placementAssignments" .=) <$>
-                    _aPlacementAssignments])
-
--- | Contains properties of a DoubleClick Planning project.
---
--- /See:/ 'project' smart constructor.
-data Project = Project
-    { _pTargetClicks      :: !(Maybe (Textual Int64))
-    , _pClientBillingCode :: !(Maybe Text)
-    , _pTargetCpmNanos    :: !(Maybe (Textual Int64))
-    , _pTargetConversions :: !(Maybe (Textual Int64))
-    , _pBudget            :: !(Maybe (Textual Int64))
-    , _pKind              :: !Text
-    , _pAdvertiserId      :: !(Maybe (Textual Int64))
-    , _pEndDate           :: !(Maybe Date')
-    , _pOverview          :: !(Maybe Text)
-    , _pTargetImpressions :: !(Maybe (Textual Int64))
-    , _pStartDate         :: !(Maybe Date')
-    , _pTargetCpcNanos    :: !(Maybe (Textual Int64))
-    , _pAccountId         :: !(Maybe (Textual Int64))
-    , _pName              :: !(Maybe Text)
-    , _pLastModifiedInfo  :: !(Maybe LastModifiedInfo)
-    , _pId                :: !(Maybe (Textual Int64))
-    , _pAudienceAgeGroup  :: !(Maybe ProjectAudienceAgeGroup)
-    , _pSubAccountId      :: !(Maybe (Textual Int64))
-    , _pAudienceGender    :: !(Maybe ProjectAudienceGender)
-    , _pClientName        :: !(Maybe Text)
-    , _pTargetCpaNanos    :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Project' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pTargetClicks'
---
--- * 'pClientBillingCode'
---
--- * 'pTargetCpmNanos'
---
--- * 'pTargetConversions'
---
--- * 'pBudget'
---
--- * 'pKind'
---
--- * 'pAdvertiserId'
---
--- * 'pEndDate'
---
--- * 'pOverview'
---
--- * 'pTargetImpressions'
---
--- * 'pStartDate'
---
--- * 'pTargetCpcNanos'
---
--- * 'pAccountId'
---
--- * 'pName'
---
--- * 'pLastModifiedInfo'
---
--- * 'pId'
---
--- * 'pAudienceAgeGroup'
---
--- * 'pSubAccountId'
---
--- * 'pAudienceGender'
---
--- * 'pClientName'
---
--- * 'pTargetCpaNanos'
-project
-    :: Project
-project =
-    Project
-    { _pTargetClicks = Nothing
-    , _pClientBillingCode = Nothing
-    , _pTargetCpmNanos = Nothing
-    , _pTargetConversions = Nothing
-    , _pBudget = Nothing
-    , _pKind = "dfareporting#project"
-    , _pAdvertiserId = Nothing
-    , _pEndDate = Nothing
-    , _pOverview = Nothing
-    , _pTargetImpressions = Nothing
-    , _pStartDate = Nothing
-    , _pTargetCpcNanos = Nothing
-    , _pAccountId = Nothing
-    , _pName = Nothing
-    , _pLastModifiedInfo = Nothing
-    , _pId = Nothing
-    , _pAudienceAgeGroup = Nothing
-    , _pSubAccountId = Nothing
-    , _pAudienceGender = Nothing
-    , _pClientName = Nothing
-    , _pTargetCpaNanos = Nothing
-    }
-
--- | Number of clicks that the advertiser is targeting.
-pTargetClicks :: Lens' Project (Maybe Int64)
-pTargetClicks
-  = lens _pTargetClicks
-      (\ s a -> s{_pTargetClicks = a})
-      . mapping _Coerce
-
--- | Client billing code of this project.
-pClientBillingCode :: Lens' Project (Maybe Text)
-pClientBillingCode
-  = lens _pClientBillingCode
-      (\ s a -> s{_pClientBillingCode = a})
-
--- | CPM that the advertiser is targeting.
-pTargetCpmNanos :: Lens' Project (Maybe Int64)
-pTargetCpmNanos
-  = lens _pTargetCpmNanos
-      (\ s a -> s{_pTargetCpmNanos = a})
-      . mapping _Coerce
-
--- | Number of conversions that the advertiser is targeting.
-pTargetConversions :: Lens' Project (Maybe Int64)
-pTargetConversions
-  = lens _pTargetConversions
-      (\ s a -> s{_pTargetConversions = a})
-      . mapping _Coerce
-
--- | Budget of this project in the currency specified by the current account.
--- The value stored in this field represents only the non-fractional
--- amount. For example, for USD, the smallest value that can be represented
--- by this field is 1 US dollar.
-pBudget :: Lens' Project (Maybe Int64)
-pBudget
-  = lens _pBudget (\ s a -> s{_pBudget = a}) .
-      mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#project\".
-pKind :: Lens' Project Text
-pKind = lens _pKind (\ s a -> s{_pKind = a})
-
--- | Advertiser ID of this project.
-pAdvertiserId :: Lens' Project (Maybe Int64)
-pAdvertiserId
-  = lens _pAdvertiserId
-      (\ s a -> s{_pAdvertiserId = a})
-      . mapping _Coerce
-
--- | End date of the project.
-pEndDate :: Lens' Project (Maybe Day)
-pEndDate
-  = lens _pEndDate (\ s a -> s{_pEndDate = a}) .
-      mapping _Date
-
--- | Overview of this project.
-pOverview :: Lens' Project (Maybe Text)
-pOverview
-  = lens _pOverview (\ s a -> s{_pOverview = a})
-
--- | Number of impressions that the advertiser is targeting.
-pTargetImpressions :: Lens' Project (Maybe Int64)
-pTargetImpressions
-  = lens _pTargetImpressions
-      (\ s a -> s{_pTargetImpressions = a})
-      . mapping _Coerce
-
--- | Start date of the project.
-pStartDate :: Lens' Project (Maybe Day)
-pStartDate
-  = lens _pStartDate (\ s a -> s{_pStartDate = a}) .
-      mapping _Date
-
--- | CPC that the advertiser is targeting.
-pTargetCpcNanos :: Lens' Project (Maybe Int64)
-pTargetCpcNanos
-  = lens _pTargetCpcNanos
-      (\ s a -> s{_pTargetCpcNanos = a})
-      . mapping _Coerce
-
--- | Account ID of this project.
-pAccountId :: Lens' Project (Maybe Int64)
-pAccountId
-  = lens _pAccountId (\ s a -> s{_pAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this project.
-pName :: Lens' Project (Maybe Text)
-pName = lens _pName (\ s a -> s{_pName = a})
-
--- | Information about the most recent modification of this project.
-pLastModifiedInfo :: Lens' Project (Maybe LastModifiedInfo)
-pLastModifiedInfo
-  = lens _pLastModifiedInfo
-      (\ s a -> s{_pLastModifiedInfo = a})
-
--- | ID of this project. This is a read-only, auto-generated field.
-pId :: Lens' Project (Maybe Int64)
-pId
-  = lens _pId (\ s a -> s{_pId = a}) . mapping _Coerce
-
--- | Audience age group of this project.
-pAudienceAgeGroup :: Lens' Project (Maybe ProjectAudienceAgeGroup)
-pAudienceAgeGroup
-  = lens _pAudienceAgeGroup
-      (\ s a -> s{_pAudienceAgeGroup = a})
-
--- | Subaccount ID of this project.
-pSubAccountId :: Lens' Project (Maybe Int64)
-pSubAccountId
-  = lens _pSubAccountId
-      (\ s a -> s{_pSubAccountId = a})
-      . mapping _Coerce
-
--- | Audience gender of this project.
-pAudienceGender :: Lens' Project (Maybe ProjectAudienceGender)
-pAudienceGender
-  = lens _pAudienceGender
-      (\ s a -> s{_pAudienceGender = a})
-
--- | Name of the project client.
-pClientName :: Lens' Project (Maybe Text)
-pClientName
-  = lens _pClientName (\ s a -> s{_pClientName = a})
-
--- | CPA that the advertiser is targeting.
-pTargetCpaNanos :: Lens' Project (Maybe Int64)
-pTargetCpaNanos
-  = lens _pTargetCpaNanos
-      (\ s a -> s{_pTargetCpaNanos = a})
-      . mapping _Coerce
-
-instance FromJSON Project where
-        parseJSON
-          = withObject "Project"
-              (\ o ->
-                 Project <$>
-                   (o .:? "targetClicks") <*>
-                     (o .:? "clientBillingCode")
-                     <*> (o .:? "targetCpmNanos")
-                     <*> (o .:? "targetConversions")
-                     <*> (o .:? "budget")
-                     <*> (o .:? "kind" .!= "dfareporting#project")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "endDate")
-                     <*> (o .:? "overview")
-                     <*> (o .:? "targetImpressions")
-                     <*> (o .:? "startDate")
-                     <*> (o .:? "targetCpcNanos")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "lastModifiedInfo")
-                     <*> (o .:? "id")
-                     <*> (o .:? "audienceAgeGroup")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "audienceGender")
-                     <*> (o .:? "clientName")
-                     <*> (o .:? "targetCpaNanos"))
-
-instance ToJSON Project where
-        toJSON Project{..}
-          = object
-              (catMaybes
-                 [("targetClicks" .=) <$> _pTargetClicks,
-                  ("clientBillingCode" .=) <$> _pClientBillingCode,
-                  ("targetCpmNanos" .=) <$> _pTargetCpmNanos,
-                  ("targetConversions" .=) <$> _pTargetConversions,
-                  ("budget" .=) <$> _pBudget, Just ("kind" .= _pKind),
-                  ("advertiserId" .=) <$> _pAdvertiserId,
-                  ("endDate" .=) <$> _pEndDate,
-                  ("overview" .=) <$> _pOverview,
-                  ("targetImpressions" .=) <$> _pTargetImpressions,
-                  ("startDate" .=) <$> _pStartDate,
-                  ("targetCpcNanos" .=) <$> _pTargetCpcNanos,
-                  ("accountId" .=) <$> _pAccountId,
-                  ("name" .=) <$> _pName,
-                  ("lastModifiedInfo" .=) <$> _pLastModifiedInfo,
-                  ("id" .=) <$> _pId,
-                  ("audienceAgeGroup" .=) <$> _pAudienceAgeGroup,
-                  ("subaccountId" .=) <$> _pSubAccountId,
-                  ("audienceGender" .=) <$> _pAudienceGender,
-                  ("clientName" .=) <$> _pClientName,
-                  ("targetCpaNanos" .=) <$> _pTargetCpaNanos])
-
--- | The report criteria for a report of type \"FLOODLIGHT\".
---
--- /See:/ 'reportFloodlightCriteria' smart constructor.
-data ReportFloodlightCriteria = ReportFloodlightCriteria
-    { _rfcReportProperties      :: !(Maybe ReportFloodlightCriteriaReportProperties)
-    , _rfcMetricNames           :: !(Maybe [Text])
-    , _rfcCustomRichMediaEvents :: !(Maybe [DimensionValue])
-    , _rfcDimensionFilters      :: !(Maybe [DimensionValue])
-    , _rfcDateRange             :: !(Maybe DateRange)
-    , _rfcFloodlightConfigId    :: !(Maybe DimensionValue)
-    , _rfcDimensions            :: !(Maybe [SortedDimension])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportFloodlightCriteria' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rfcReportProperties'
---
--- * 'rfcMetricNames'
---
--- * 'rfcCustomRichMediaEvents'
---
--- * 'rfcDimensionFilters'
---
--- * 'rfcDateRange'
---
--- * 'rfcFloodlightConfigId'
---
--- * 'rfcDimensions'
-reportFloodlightCriteria
-    :: ReportFloodlightCriteria
-reportFloodlightCriteria =
-    ReportFloodlightCriteria
-    { _rfcReportProperties = Nothing
-    , _rfcMetricNames = Nothing
-    , _rfcCustomRichMediaEvents = Nothing
-    , _rfcDimensionFilters = Nothing
-    , _rfcDateRange = Nothing
-    , _rfcFloodlightConfigId = Nothing
-    , _rfcDimensions = Nothing
-    }
-
--- | The properties of the report.
-rfcReportProperties :: Lens' ReportFloodlightCriteria (Maybe ReportFloodlightCriteriaReportProperties)
-rfcReportProperties
-  = lens _rfcReportProperties
-      (\ s a -> s{_rfcReportProperties = a})
-
--- | The list of names of metrics the report should include.
-rfcMetricNames :: Lens' ReportFloodlightCriteria [Text]
-rfcMetricNames
-  = lens _rfcMetricNames
-      (\ s a -> s{_rfcMetricNames = a})
-      . _Default
-      . _Coerce
-
--- | The list of custom rich media events to include.
-rfcCustomRichMediaEvents :: Lens' ReportFloodlightCriteria [DimensionValue]
-rfcCustomRichMediaEvents
-  = lens _rfcCustomRichMediaEvents
-      (\ s a -> s{_rfcCustomRichMediaEvents = a})
-      . _Default
-      . _Coerce
-
--- | The list of filters on which dimensions are filtered. Filters for
--- different dimensions are ANDed, filters for the same dimension are
--- grouped together and ORed.
-rfcDimensionFilters :: Lens' ReportFloodlightCriteria [DimensionValue]
-rfcDimensionFilters
-  = lens _rfcDimensionFilters
-      (\ s a -> s{_rfcDimensionFilters = a})
-      . _Default
-      . _Coerce
-
--- | The date range this report should be run for.
-rfcDateRange :: Lens' ReportFloodlightCriteria (Maybe DateRange)
-rfcDateRange
-  = lens _rfcDateRange (\ s a -> s{_rfcDateRange = a})
-
--- | The floodlight ID for which to show data in this report. All advertisers
--- associated with that ID will automatically be added. The dimension of
--- the value needs to be \'dfa:floodlightConfigId\'.
-rfcFloodlightConfigId :: Lens' ReportFloodlightCriteria (Maybe DimensionValue)
-rfcFloodlightConfigId
-  = lens _rfcFloodlightConfigId
-      (\ s a -> s{_rfcFloodlightConfigId = a})
-
--- | The list of dimensions the report should include.
-rfcDimensions :: Lens' ReportFloodlightCriteria [SortedDimension]
-rfcDimensions
-  = lens _rfcDimensions
-      (\ s a -> s{_rfcDimensions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ReportFloodlightCriteria where
-        parseJSON
-          = withObject "ReportFloodlightCriteria"
-              (\ o ->
-                 ReportFloodlightCriteria <$>
-                   (o .:? "reportProperties") <*>
-                     (o .:? "metricNames" .!= mempty)
-                     <*> (o .:? "customRichMediaEvents" .!= mempty)
-                     <*> (o .:? "dimensionFilters" .!= mempty)
-                     <*> (o .:? "dateRange")
-                     <*> (o .:? "floodlightConfigId")
-                     <*> (o .:? "dimensions" .!= mempty))
-
-instance ToJSON ReportFloodlightCriteria where
-        toJSON ReportFloodlightCriteria{..}
-          = object
-              (catMaybes
-                 [("reportProperties" .=) <$> _rfcReportProperties,
-                  ("metricNames" .=) <$> _rfcMetricNames,
-                  ("customRichMediaEvents" .=) <$>
-                    _rfcCustomRichMediaEvents,
-                  ("dimensionFilters" .=) <$> _rfcDimensionFilters,
-                  ("dateRange" .=) <$> _rfcDateRange,
-                  ("floodlightConfigId" .=) <$> _rfcFloodlightConfigId,
-                  ("dimensions" .=) <$> _rfcDimensions])
-
--- | Represents the dimensions of ads, placements, creatives, or creative
--- assets.
---
--- /See:/ 'size' smart constructor.
-data Size = Size
-    { _sHeight :: !(Maybe (Textual Int32))
-    , _sKind   :: !Text
-    , _sWidth  :: !(Maybe (Textual Int32))
-    , _sIab    :: !(Maybe Bool)
-    , _sId     :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Size' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sHeight'
---
--- * 'sKind'
---
--- * 'sWidth'
---
--- * 'sIab'
---
--- * 'sId'
-size
-    :: Size
-size =
-    Size
-    { _sHeight = Nothing
-    , _sKind = "dfareporting#size"
-    , _sWidth = Nothing
-    , _sIab = Nothing
-    , _sId = Nothing
-    }
-
--- | Height of this size.
-sHeight :: Lens' Size (Maybe Int32)
-sHeight
-  = lens _sHeight (\ s a -> s{_sHeight = a}) .
-      mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#size\".
-sKind :: Lens' Size Text
-sKind = lens _sKind (\ s a -> s{_sKind = a})
-
--- | Width of this size.
-sWidth :: Lens' Size (Maybe Int32)
-sWidth
-  = lens _sWidth (\ s a -> s{_sWidth = a}) .
-      mapping _Coerce
-
--- | IAB standard size. This is a read-only, auto-generated field.
-sIab :: Lens' Size (Maybe Bool)
-sIab = lens _sIab (\ s a -> s{_sIab = a})
-
--- | ID of this size. This is a read-only, auto-generated field.
-sId :: Lens' Size (Maybe Int64)
-sId
-  = lens _sId (\ s a -> s{_sId = a}) . mapping _Coerce
-
-instance FromJSON Size where
-        parseJSON
-          = withObject "Size"
-              (\ o ->
-                 Size <$>
-                   (o .:? "height") <*>
-                     (o .:? "kind" .!= "dfareporting#size")
-                     <*> (o .:? "width")
-                     <*> (o .:? "iab")
-                     <*> (o .:? "id"))
-
-instance ToJSON Size where
-        toJSON Size{..}
-          = object
-              (catMaybes
-                 [("height" .=) <$> _sHeight, Just ("kind" .= _sKind),
-                  ("width" .=) <$> _sWidth, ("iab" .=) <$> _sIab,
-                  ("id" .=) <$> _sId])
-
--- | Object Filter.
---
--- /See:/ 'objectFilter' smart constructor.
-data ObjectFilter = ObjectFilter
-    { _ofStatus    :: !(Maybe ObjectFilterStatus)
-    , _ofKind      :: !Text
-    , _ofObjectIds :: !(Maybe [Textual Int64])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ObjectFilter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ofStatus'
---
--- * 'ofKind'
---
--- * 'ofObjectIds'
-objectFilter
-    :: ObjectFilter
-objectFilter =
-    ObjectFilter
-    { _ofStatus = Nothing
-    , _ofKind = "dfareporting#objectFilter"
-    , _ofObjectIds = Nothing
-    }
-
--- | Status of the filter. NONE means the user has access to none of the
--- objects. ALL means the user has access to all objects. ASSIGNED means
--- the user has access to the objects with IDs in the objectIds list.
-ofStatus :: Lens' ObjectFilter (Maybe ObjectFilterStatus)
-ofStatus = lens _ofStatus (\ s a -> s{_ofStatus = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#objectFilter\".
-ofKind :: Lens' ObjectFilter Text
-ofKind = lens _ofKind (\ s a -> s{_ofKind = a})
-
--- | Applicable when status is ASSIGNED. The user has access to objects with
--- these object IDs.
-ofObjectIds :: Lens' ObjectFilter [Int64]
-ofObjectIds
-  = lens _ofObjectIds (\ s a -> s{_ofObjectIds = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON ObjectFilter where
-        parseJSON
-          = withObject "ObjectFilter"
-              (\ o ->
-                 ObjectFilter <$>
-                   (o .:? "status") <*>
-                     (o .:? "kind" .!= "dfareporting#objectFilter")
-                     <*> (o .:? "objectIds" .!= mempty))
-
-instance ToJSON ObjectFilter where
-        toJSON ObjectFilter{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _ofStatus,
-                  Just ("kind" .= _ofKind),
-                  ("objectIds" .=) <$> _ofObjectIds])
-
--- | Reporting Configuration
---
--- /See:/ 'reportsConfiguration' smart constructor.
-data ReportsConfiguration = ReportsConfiguration
-    { _rcExposureToConversionEnabled :: !(Maybe Bool)
-    , _rcReportGenerationTimeZoneId  :: !(Maybe (Textual Int64))
-    , _rcLookbackConfiguration       :: !(Maybe LookbackConfiguration)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportsConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rcExposureToConversionEnabled'
---
--- * 'rcReportGenerationTimeZoneId'
---
--- * 'rcLookbackConfiguration'
-reportsConfiguration
-    :: ReportsConfiguration
-reportsConfiguration =
-    ReportsConfiguration
-    { _rcExposureToConversionEnabled = Nothing
-    , _rcReportGenerationTimeZoneId = Nothing
-    , _rcLookbackConfiguration = Nothing
-    }
-
--- | Whether the exposure to conversion report is enabled. This report shows
--- detailed pathway information on up to 10 of the most recent ad exposures
--- seen by a user before converting.
-rcExposureToConversionEnabled :: Lens' ReportsConfiguration (Maybe Bool)
-rcExposureToConversionEnabled
-  = lens _rcExposureToConversionEnabled
-      (\ s a -> s{_rcExposureToConversionEnabled = a})
-
--- | Report generation time zone ID of this account. This is a required field
--- that can only be changed by a superuser. Acceptable values are: - \"1\"
--- for \"America\/New_York\" - \"2\" for \"Europe\/London\" - \"3\" for
--- \"Europe\/Paris\" - \"4\" for \"Africa\/Johannesburg\" - \"5\" for
--- \"Asia\/Jerusalem\" - \"6\" for \"Asia\/Shanghai\" - \"7\" for
--- \"Asia\/Hong_Kong\" - \"8\" for \"Asia\/Tokyo\" - \"9\" for
--- \"Australia\/Sydney\" - \"10\" for \"Asia\/Dubai\" - \"11\" for
--- \"America\/Los_Angeles\" - \"12\" for \"Pacific\/Auckland\" - \"13\" for
--- \"America\/Sao_Paulo\"
-rcReportGenerationTimeZoneId :: Lens' ReportsConfiguration (Maybe Int64)
-rcReportGenerationTimeZoneId
-  = lens _rcReportGenerationTimeZoneId
-      (\ s a -> s{_rcReportGenerationTimeZoneId = a})
-      . mapping _Coerce
-
--- | Default lookback windows for new advertisers in this account.
-rcLookbackConfiguration :: Lens' ReportsConfiguration (Maybe LookbackConfiguration)
-rcLookbackConfiguration
-  = lens _rcLookbackConfiguration
-      (\ s a -> s{_rcLookbackConfiguration = a})
-
-instance FromJSON ReportsConfiguration where
-        parseJSON
-          = withObject "ReportsConfiguration"
-              (\ o ->
-                 ReportsConfiguration <$>
-                   (o .:? "exposureToConversionEnabled") <*>
-                     (o .:? "reportGenerationTimeZoneId")
-                     <*> (o .:? "lookbackConfiguration"))
-
-instance ToJSON ReportsConfiguration where
-        toJSON ReportsConfiguration{..}
-          = object
-              (catMaybes
-                 [("exposureToConversionEnabled" .=) <$>
-                    _rcExposureToConversionEnabled,
-                  ("reportGenerationTimeZoneId" .=) <$>
-                    _rcReportGenerationTimeZoneId,
-                  ("lookbackConfiguration" .=) <$>
-                    _rcLookbackConfiguration])
-
--- | Pricing Schedule
---
--- /See:/ 'pricingSchedule' smart constructor.
-data PricingSchedule = PricingSchedule
-    { _psTestingStartDate      :: !(Maybe Date')
-    , _psFloodlightActivityId  :: !(Maybe (Textual Int64))
-    , _psEndDate               :: !(Maybe Date')
-    , _psDisregardOverdelivery :: !(Maybe Bool)
-    , _psStartDate             :: !(Maybe Date')
-    , _psCapCostOption         :: !(Maybe PricingScheduleCapCostOption)
-    , _psPricingType           :: !(Maybe PricingSchedulePricingType)
-    , _psPricingPeriods        :: !(Maybe [PricingSchedulePricingPeriod])
-    , _psFlighted              :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PricingSchedule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'psTestingStartDate'
---
--- * 'psFloodlightActivityId'
---
--- * 'psEndDate'
---
--- * 'psDisregardOverdelivery'
---
--- * 'psStartDate'
---
--- * 'psCapCostOption'
---
--- * 'psPricingType'
---
--- * 'psPricingPeriods'
---
--- * 'psFlighted'
-pricingSchedule
-    :: PricingSchedule
-pricingSchedule =
-    PricingSchedule
-    { _psTestingStartDate = Nothing
-    , _psFloodlightActivityId = Nothing
-    , _psEndDate = Nothing
-    , _psDisregardOverdelivery = Nothing
-    , _psStartDate = Nothing
-    , _psCapCostOption = Nothing
-    , _psPricingType = Nothing
-    , _psPricingPeriods = Nothing
-    , _psFlighted = Nothing
-    }
-
--- | Testing start date of this placement. The hours, minutes, and seconds of
--- the start date should not be set, as doing so will result in an error.
-psTestingStartDate :: Lens' PricingSchedule (Maybe Day)
-psTestingStartDate
-  = lens _psTestingStartDate
-      (\ s a -> s{_psTestingStartDate = a})
-      . mapping _Date
-
--- | Floodlight activity ID associated with this placement. This field should
--- be set when placement pricing type is set to PRICING_TYPE_CPA.
-psFloodlightActivityId :: Lens' PricingSchedule (Maybe Int64)
-psFloodlightActivityId
-  = lens _psFloodlightActivityId
-      (\ s a -> s{_psFloodlightActivityId = a})
-      . mapping _Coerce
-
--- | Placement end date. This date must be later than, or the same day as,
--- the placement start date, but not later than the campaign end date. If,
--- for example, you set 6\/25\/2015 as both the start and end dates, the
--- effective placement date is just that day only, 6\/25\/2015. The hours,
--- minutes, and seconds of the end date should not be set, as doing so will
--- result in an error. This field is required on insertion.
-psEndDate :: Lens' PricingSchedule (Maybe Day)
-psEndDate
-  = lens _psEndDate (\ s a -> s{_psEndDate = a}) .
-      mapping _Date
-
--- | Whether cap costs are ignored by ad serving.
-psDisregardOverdelivery :: Lens' PricingSchedule (Maybe Bool)
-psDisregardOverdelivery
-  = lens _psDisregardOverdelivery
-      (\ s a -> s{_psDisregardOverdelivery = a})
-
--- | Placement start date. This date must be later than, or the same day as,
--- the campaign start date. The hours, minutes, and seconds of the start
--- date should not be set, as doing so will result in an error. This field
--- is required on insertion.
-psStartDate :: Lens' PricingSchedule (Maybe Day)
-psStartDate
-  = lens _psStartDate (\ s a -> s{_psStartDate = a}) .
-      mapping _Date
-
--- | Placement cap cost option.
-psCapCostOption :: Lens' PricingSchedule (Maybe PricingScheduleCapCostOption)
-psCapCostOption
-  = lens _psCapCostOption
-      (\ s a -> s{_psCapCostOption = a})
-
--- | Placement pricing type. This field is required on insertion.
-psPricingType :: Lens' PricingSchedule (Maybe PricingSchedulePricingType)
-psPricingType
-  = lens _psPricingType
-      (\ s a -> s{_psPricingType = a})
-
--- | Pricing periods for this placement.
-psPricingPeriods :: Lens' PricingSchedule [PricingSchedulePricingPeriod]
-psPricingPeriods
-  = lens _psPricingPeriods
-      (\ s a -> s{_psPricingPeriods = a})
-      . _Default
-      . _Coerce
-
--- | Whether this placement is flighted. If true, pricing periods will be
--- computed automatically.
-psFlighted :: Lens' PricingSchedule (Maybe Bool)
-psFlighted
-  = lens _psFlighted (\ s a -> s{_psFlighted = a})
-
-instance FromJSON PricingSchedule where
-        parseJSON
-          = withObject "PricingSchedule"
-              (\ o ->
-                 PricingSchedule <$>
-                   (o .:? "testingStartDate") <*>
-                     (o .:? "floodlightActivityId")
-                     <*> (o .:? "endDate")
-                     <*> (o .:? "disregardOverdelivery")
-                     <*> (o .:? "startDate")
-                     <*> (o .:? "capCostOption")
-                     <*> (o .:? "pricingType")
-                     <*> (o .:? "pricingPeriods" .!= mempty)
-                     <*> (o .:? "flighted"))
-
-instance ToJSON PricingSchedule where
-        toJSON PricingSchedule{..}
-          = object
-              (catMaybes
-                 [("testingStartDate" .=) <$> _psTestingStartDate,
-                  ("floodlightActivityId" .=) <$>
-                    _psFloodlightActivityId,
-                  ("endDate" .=) <$> _psEndDate,
-                  ("disregardOverdelivery" .=) <$>
-                    _psDisregardOverdelivery,
-                  ("startDate" .=) <$> _psStartDate,
-                  ("capCostOption" .=) <$> _psCapCostOption,
-                  ("pricingType" .=) <$> _psPricingType,
-                  ("pricingPeriods" .=) <$> _psPricingPeriods,
-                  ("flighted" .=) <$> _psFlighted])
-
--- | Contains information about a postal code that can be targeted by ads.
---
--- /See:/ 'postalCode' smart constructor.
-data PostalCode = PostalCode
-    { _pcKind          :: !Text
-    , _pcCode          :: !(Maybe Text)
-    , _pcCountryCode   :: !(Maybe Text)
-    , _pcId            :: !(Maybe Text)
-    , _pcCountryDartId :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PostalCode' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pcKind'
---
--- * 'pcCode'
---
--- * 'pcCountryCode'
---
--- * 'pcId'
---
--- * 'pcCountryDartId'
-postalCode
-    :: PostalCode
-postalCode =
-    PostalCode
-    { _pcKind = "dfareporting#postalCode"
-    , _pcCode = Nothing
-    , _pcCountryCode = Nothing
-    , _pcId = Nothing
-    , _pcCountryDartId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#postalCode\".
-pcKind :: Lens' PostalCode Text
-pcKind = lens _pcKind (\ s a -> s{_pcKind = a})
-
--- | Postal code. This is equivalent to the id field.
-pcCode :: Lens' PostalCode (Maybe Text)
-pcCode = lens _pcCode (\ s a -> s{_pcCode = a})
-
--- | Country code of the country to which this postal code belongs.
-pcCountryCode :: Lens' PostalCode (Maybe Text)
-pcCountryCode
-  = lens _pcCountryCode
-      (\ s a -> s{_pcCountryCode = a})
-
--- | ID of this postal code.
-pcId :: Lens' PostalCode (Maybe Text)
-pcId = lens _pcId (\ s a -> s{_pcId = a})
-
--- | DART ID of the country to which this postal code belongs.
-pcCountryDartId :: Lens' PostalCode (Maybe Int64)
-pcCountryDartId
-  = lens _pcCountryDartId
-      (\ s a -> s{_pcCountryDartId = a})
-      . mapping _Coerce
-
-instance FromJSON PostalCode where
-        parseJSON
-          = withObject "PostalCode"
-              (\ o ->
-                 PostalCode <$>
-                   (o .:? "kind" .!= "dfareporting#postalCode") <*>
-                     (o .:? "code")
-                     <*> (o .:? "countryCode")
-                     <*> (o .:? "id")
-                     <*> (o .:? "countryDartId"))
-
-instance ToJSON PostalCode where
-        toJSON PostalCode{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _pcKind), ("code" .=) <$> _pcCode,
-                  ("countryCode" .=) <$> _pcCountryCode,
-                  ("id" .=) <$> _pcId,
-                  ("countryDartId" .=) <$> _pcCountryDartId])
-
--- | Account Permission List Response
---
--- /See:/ 'accountPermissionsListResponse' smart constructor.
-data AccountPermissionsListResponse = AccountPermissionsListResponse
-    { _aplrKind               :: !Text
-    , _aplrAccountPermissions :: !(Maybe [AccountPermission])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountPermissionsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aplrKind'
---
--- * 'aplrAccountPermissions'
-accountPermissionsListResponse
-    :: AccountPermissionsListResponse
-accountPermissionsListResponse =
-    AccountPermissionsListResponse
-    { _aplrKind = "dfareporting#accountPermissionsListResponse"
-    , _aplrAccountPermissions = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#accountPermissionsListResponse\".
-aplrKind :: Lens' AccountPermissionsListResponse Text
-aplrKind = lens _aplrKind (\ s a -> s{_aplrKind = a})
-
--- | Account permission collection.
-aplrAccountPermissions :: Lens' AccountPermissionsListResponse [AccountPermission]
-aplrAccountPermissions
-  = lens _aplrAccountPermissions
-      (\ s a -> s{_aplrAccountPermissions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON AccountPermissionsListResponse
-         where
-        parseJSON
-          = withObject "AccountPermissionsListResponse"
-              (\ o ->
-                 AccountPermissionsListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#accountPermissionsListResponse")
-                     <*> (o .:? "accountPermissions" .!= mempty))
-
-instance ToJSON AccountPermissionsListResponse where
-        toJSON AccountPermissionsListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _aplrKind),
-                  ("accountPermissions" .=) <$>
-                    _aplrAccountPermissions])
-
--- | Contains information about a country that can be targeted by ads.
---
--- /See:/ 'country' smart constructor.
-data Country = Country
-    { _cKind        :: !Text
-    , _cName        :: !(Maybe Text)
-    , _cCountryCode :: !(Maybe Text)
-    , _cDartId      :: !(Maybe (Textual Int64))
-    , _cSSLEnabled  :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Country' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cKind'
---
--- * 'cName'
---
--- * 'cCountryCode'
---
--- * 'cDartId'
---
--- * 'cSSLEnabled'
-country
-    :: Country
-country =
-    Country
-    { _cKind = "dfareporting#country"
-    , _cName = Nothing
-    , _cCountryCode = Nothing
-    , _cDartId = Nothing
-    , _cSSLEnabled = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#country\".
-cKind :: Lens' Country Text
-cKind = lens _cKind (\ s a -> s{_cKind = a})
-
--- | Name of this country.
-cName :: Lens' Country (Maybe Text)
-cName = lens _cName (\ s a -> s{_cName = a})
-
--- | Country code.
-cCountryCode :: Lens' Country (Maybe Text)
-cCountryCode
-  = lens _cCountryCode (\ s a -> s{_cCountryCode = a})
-
--- | DART ID of this country. This is the ID used for targeting and
--- generating reports.
-cDartId :: Lens' Country (Maybe Int64)
-cDartId
-  = lens _cDartId (\ s a -> s{_cDartId = a}) .
-      mapping _Coerce
-
--- | Whether ad serving supports secure servers in this country.
-cSSLEnabled :: Lens' Country (Maybe Bool)
-cSSLEnabled
-  = lens _cSSLEnabled (\ s a -> s{_cSSLEnabled = a})
-
-instance FromJSON Country where
-        parseJSON
-          = withObject "Country"
-              (\ o ->
-                 Country <$>
-                   (o .:? "kind" .!= "dfareporting#country") <*>
-                     (o .:? "name")
-                     <*> (o .:? "countryCode")
-                     <*> (o .:? "dartId")
-                     <*> (o .:? "sslEnabled"))
-
-instance ToJSON Country where
-        toJSON Country{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _cKind), ("name" .=) <$> _cName,
-                  ("countryCode" .=) <$> _cCountryCode,
-                  ("dartId" .=) <$> _cDartId,
-                  ("sslEnabled" .=) <$> _cSSLEnabled])
-
--- | Operating System Version List Response
---
--- /See:/ 'operatingSystemVersionsListResponse' smart constructor.
-data OperatingSystemVersionsListResponse = OperatingSystemVersionsListResponse
-    { _osvlrKind                    :: !Text
-    , _osvlrOperatingSystemVersions :: !(Maybe [OperatingSystemVersion])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OperatingSystemVersionsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'osvlrKind'
---
--- * 'osvlrOperatingSystemVersions'
-operatingSystemVersionsListResponse
-    :: OperatingSystemVersionsListResponse
-operatingSystemVersionsListResponse =
-    OperatingSystemVersionsListResponse
-    { _osvlrKind = "dfareporting#operatingSystemVersionsListResponse"
-    , _osvlrOperatingSystemVersions = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#operatingSystemVersionsListResponse\".
-osvlrKind :: Lens' OperatingSystemVersionsListResponse Text
-osvlrKind
-  = lens _osvlrKind (\ s a -> s{_osvlrKind = a})
-
--- | Operating system version collection.
-osvlrOperatingSystemVersions :: Lens' OperatingSystemVersionsListResponse [OperatingSystemVersion]
-osvlrOperatingSystemVersions
-  = lens _osvlrOperatingSystemVersions
-      (\ s a -> s{_osvlrOperatingSystemVersions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON OperatingSystemVersionsListResponse
-         where
-        parseJSON
-          = withObject "OperatingSystemVersionsListResponse"
-              (\ o ->
-                 OperatingSystemVersionsListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#operatingSystemVersionsListResponse")
-                     <*> (o .:? "operatingSystemVersions" .!= mempty))
-
-instance ToJSON OperatingSystemVersionsListResponse
-         where
-        toJSON OperatingSystemVersionsListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _osvlrKind),
-                  ("operatingSystemVersions" .=) <$>
-                    _osvlrOperatingSystemVersions])
-
--- | Click Through URL Suffix settings.
---
--- /See:/ 'clickThroughURLSuffixProperties' smart constructor.
-data ClickThroughURLSuffixProperties = ClickThroughURLSuffixProperties
-    { _ctuspOverrideInheritedSuffix :: !(Maybe Bool)
-    , _ctuspClickThroughURLSuffix   :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ClickThroughURLSuffixProperties' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ctuspOverrideInheritedSuffix'
---
--- * 'ctuspClickThroughURLSuffix'
-clickThroughURLSuffixProperties
-    :: ClickThroughURLSuffixProperties
-clickThroughURLSuffixProperties =
-    ClickThroughURLSuffixProperties
-    { _ctuspOverrideInheritedSuffix = Nothing
-    , _ctuspClickThroughURLSuffix = Nothing
-    }
-
--- | Whether this entity should override the inherited click-through URL
--- suffix with its own defined value.
-ctuspOverrideInheritedSuffix :: Lens' ClickThroughURLSuffixProperties (Maybe Bool)
-ctuspOverrideInheritedSuffix
-  = lens _ctuspOverrideInheritedSuffix
-      (\ s a -> s{_ctuspOverrideInheritedSuffix = a})
-
--- | Click-through URL suffix to apply to all ads in this entity\'s scope.
--- Must be less than 128 characters long.
-ctuspClickThroughURLSuffix :: Lens' ClickThroughURLSuffixProperties (Maybe Text)
-ctuspClickThroughURLSuffix
-  = lens _ctuspClickThroughURLSuffix
-      (\ s a -> s{_ctuspClickThroughURLSuffix = a})
-
-instance FromJSON ClickThroughURLSuffixProperties
-         where
-        parseJSON
-          = withObject "ClickThroughURLSuffixProperties"
-              (\ o ->
-                 ClickThroughURLSuffixProperties <$>
-                   (o .:? "overrideInheritedSuffix") <*>
-                     (o .:? "clickThroughUrlSuffix"))
-
-instance ToJSON ClickThroughURLSuffixProperties where
-        toJSON ClickThroughURLSuffixProperties{..}
-          = object
-              (catMaybes
-                 [("overrideInheritedSuffix" .=) <$>
-                    _ctuspOverrideInheritedSuffix,
-                  ("clickThroughUrlSuffix" .=) <$>
-                    _ctuspClickThroughURLSuffix])
-
--- | Pricing Information
---
--- /See:/ 'pricing' smart constructor.
-data Pricing = Pricing
-    { _priEndDate     :: !(Maybe Date')
-    , _priStartDate   :: !(Maybe Date')
-    , _priGroupType   :: !(Maybe PricingGroupType)
-    , _priPricingType :: !(Maybe PricingPricingType)
-    , _priFlights     :: !(Maybe [Flight])
-    , _priCapCostType :: !(Maybe PricingCapCostType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Pricing' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'priEndDate'
---
--- * 'priStartDate'
---
--- * 'priGroupType'
---
--- * 'priPricingType'
---
--- * 'priFlights'
---
--- * 'priCapCostType'
-pricing
-    :: Pricing
-pricing =
-    Pricing
-    { _priEndDate = Nothing
-    , _priStartDate = Nothing
-    , _priGroupType = Nothing
-    , _priPricingType = Nothing
-    , _priFlights = Nothing
-    , _priCapCostType = Nothing
-    }
-
--- | End date of this inventory item.
-priEndDate :: Lens' Pricing (Maybe Day)
-priEndDate
-  = lens _priEndDate (\ s a -> s{_priEndDate = a}) .
-      mapping _Date
-
--- | Start date of this inventory item.
-priStartDate :: Lens' Pricing (Maybe Day)
-priStartDate
-  = lens _priStartDate (\ s a -> s{_priStartDate = a})
-      . mapping _Date
-
--- | Group type of this inventory item if it represents a placement group. Is
--- null otherwise. There are two type of placement groups:
--- PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory
--- items that acts as a single pricing point for a group of tags.
--- PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items
--- that not only acts as a single pricing point, but also assumes that all
--- the tags in it will be served at the same time. A roadblock requires one
--- of its assigned inventory items to be marked as primary.
-priGroupType :: Lens' Pricing (Maybe PricingGroupType)
-priGroupType
-  = lens _priGroupType (\ s a -> s{_priGroupType = a})
-
--- | Pricing type of this inventory item.
-priPricingType :: Lens' Pricing (Maybe PricingPricingType)
-priPricingType
-  = lens _priPricingType
-      (\ s a -> s{_priPricingType = a})
-
--- | Flights of this inventory item. A flight (a.k.a. pricing period)
--- represents the inventory item pricing information for a specific period
--- of time.
-priFlights :: Lens' Pricing [Flight]
-priFlights
-  = lens _priFlights (\ s a -> s{_priFlights = a}) .
-      _Default
-      . _Coerce
-
--- | Cap cost type of this inventory item.
-priCapCostType :: Lens' Pricing (Maybe PricingCapCostType)
-priCapCostType
-  = lens _priCapCostType
-      (\ s a -> s{_priCapCostType = a})
-
-instance FromJSON Pricing where
-        parseJSON
-          = withObject "Pricing"
-              (\ o ->
-                 Pricing <$>
-                   (o .:? "endDate") <*> (o .:? "startDate") <*>
-                     (o .:? "groupType")
-                     <*> (o .:? "pricingType")
-                     <*> (o .:? "flights" .!= mempty)
-                     <*> (o .:? "capCostType"))
-
-instance ToJSON Pricing where
-        toJSON Pricing{..}
-          = object
-              (catMaybes
-                 [("endDate" .=) <$> _priEndDate,
-                  ("startDate" .=) <$> _priStartDate,
-                  ("groupType" .=) <$> _priGroupType,
-                  ("pricingType" .=) <$> _priPricingType,
-                  ("flights" .=) <$> _priFlights,
-                  ("capCostType" .=) <$> _priCapCostType])
-
--- | Audience Segment Group.
---
--- /See:/ 'audienceSegmentGroup' smart constructor.
-data AudienceSegmentGroup = AudienceSegmentGroup
-    { _asgAudienceSegments :: !(Maybe [AudienceSegment])
-    , _asgName             :: !(Maybe Text)
-    , _asgId               :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AudienceSegmentGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'asgAudienceSegments'
---
--- * 'asgName'
---
--- * 'asgId'
-audienceSegmentGroup
-    :: AudienceSegmentGroup
-audienceSegmentGroup =
-    AudienceSegmentGroup
-    { _asgAudienceSegments = Nothing
-    , _asgName = Nothing
-    , _asgId = Nothing
-    }
-
--- | Audience segments assigned to this group. The number of segments must be
--- between 2 and 100.
-asgAudienceSegments :: Lens' AudienceSegmentGroup [AudienceSegment]
-asgAudienceSegments
-  = lens _asgAudienceSegments
-      (\ s a -> s{_asgAudienceSegments = a})
-      . _Default
-      . _Coerce
-
--- | Name of this audience segment group. This is a required field and must
--- be less than 65 characters long.
-asgName :: Lens' AudienceSegmentGroup (Maybe Text)
-asgName = lens _asgName (\ s a -> s{_asgName = a})
-
--- | ID of this audience segment group. This is a read-only, auto-generated
--- field.
-asgId :: Lens' AudienceSegmentGroup (Maybe Int64)
-asgId
-  = lens _asgId (\ s a -> s{_asgId = a}) .
-      mapping _Coerce
-
-instance FromJSON AudienceSegmentGroup where
-        parseJSON
-          = withObject "AudienceSegmentGroup"
-              (\ o ->
-                 AudienceSegmentGroup <$>
-                   (o .:? "audienceSegments" .!= mempty) <*>
-                     (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON AudienceSegmentGroup where
-        toJSON AudienceSegmentGroup{..}
-          = object
-              (catMaybes
-                 [("audienceSegments" .=) <$> _asgAudienceSegments,
-                  ("name" .=) <$> _asgName, ("id" .=) <$> _asgId])
-
--- | Contains information about an operating system that can be targeted by
--- ads.
---
--- /See:/ 'operatingSystem' smart constructor.
-data OperatingSystem = OperatingSystem
-    { _osDesktop :: !(Maybe Bool)
-    , _osKind    :: !Text
-    , _osName    :: !(Maybe Text)
-    , _osMobile  :: !(Maybe Bool)
-    , _osDartId  :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OperatingSystem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'osDesktop'
---
--- * 'osKind'
---
--- * 'osName'
---
--- * 'osMobile'
---
--- * 'osDartId'
-operatingSystem
-    :: OperatingSystem
-operatingSystem =
-    OperatingSystem
-    { _osDesktop = Nothing
-    , _osKind = "dfareporting#operatingSystem"
-    , _osName = Nothing
-    , _osMobile = Nothing
-    , _osDartId = Nothing
-    }
-
--- | Whether this operating system is for desktop.
-osDesktop :: Lens' OperatingSystem (Maybe Bool)
-osDesktop
-  = lens _osDesktop (\ s a -> s{_osDesktop = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#operatingSystem\".
-osKind :: Lens' OperatingSystem Text
-osKind = lens _osKind (\ s a -> s{_osKind = a})
-
--- | Name of this operating system.
-osName :: Lens' OperatingSystem (Maybe Text)
-osName = lens _osName (\ s a -> s{_osName = a})
-
--- | Whether this operating system is for mobile.
-osMobile :: Lens' OperatingSystem (Maybe Bool)
-osMobile = lens _osMobile (\ s a -> s{_osMobile = a})
-
--- | DART ID of this operating system. This is the ID used for targeting.
-osDartId :: Lens' OperatingSystem (Maybe Int64)
-osDartId
-  = lens _osDartId (\ s a -> s{_osDartId = a}) .
-      mapping _Coerce
-
-instance FromJSON OperatingSystem where
-        parseJSON
-          = withObject "OperatingSystem"
-              (\ o ->
-                 OperatingSystem <$>
-                   (o .:? "desktop") <*>
-                     (o .:? "kind" .!= "dfareporting#operatingSystem")
-                     <*> (o .:? "name")
-                     <*> (o .:? "mobile")
-                     <*> (o .:? "dartId"))
-
-instance ToJSON OperatingSystem where
-        toJSON OperatingSystem{..}
-          = object
-              (catMaybes
-                 [("desktop" .=) <$> _osDesktop,
-                  Just ("kind" .= _osKind), ("name" .=) <$> _osName,
-                  ("mobile" .=) <$> _osMobile,
-                  ("dartId" .=) <$> _osDartId])
-
--- | Flight
---
--- /See:/ 'flight' smart constructor.
-data Flight = Flight
-    { _fRateOrCost :: !(Maybe (Textual Int64))
-    , _fEndDate    :: !(Maybe Date')
-    , _fStartDate  :: !(Maybe Date')
-    , _fUnits      :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Flight' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fRateOrCost'
---
--- * 'fEndDate'
---
--- * 'fStartDate'
---
--- * 'fUnits'
-flight
-    :: Flight
-flight =
-    Flight
-    { _fRateOrCost = Nothing
-    , _fEndDate = Nothing
-    , _fStartDate = Nothing
-    , _fUnits = Nothing
-    }
-
--- | Rate or cost of this flight.
-fRateOrCost :: Lens' Flight (Maybe Int64)
-fRateOrCost
-  = lens _fRateOrCost (\ s a -> s{_fRateOrCost = a}) .
-      mapping _Coerce
-
--- | Inventory item flight end date.
-fEndDate :: Lens' Flight (Maybe Day)
-fEndDate
-  = lens _fEndDate (\ s a -> s{_fEndDate = a}) .
-      mapping _Date
-
--- | Inventory item flight start date.
-fStartDate :: Lens' Flight (Maybe Day)
-fStartDate
-  = lens _fStartDate (\ s a -> s{_fStartDate = a}) .
-      mapping _Date
-
--- | Units of this flight.
-fUnits :: Lens' Flight (Maybe Int64)
-fUnits
-  = lens _fUnits (\ s a -> s{_fUnits = a}) .
-      mapping _Coerce
-
-instance FromJSON Flight where
-        parseJSON
-          = withObject "Flight"
-              (\ o ->
-                 Flight <$>
-                   (o .:? "rateOrCost") <*> (o .:? "endDate") <*>
-                     (o .:? "startDate")
-                     <*> (o .:? "units"))
-
-instance ToJSON Flight where
-        toJSON Flight{..}
-          = object
-              (catMaybes
-                 [("rateOrCost" .=) <$> _fRateOrCost,
-                  ("endDate" .=) <$> _fEndDate,
-                  ("startDate" .=) <$> _fStartDate,
-                  ("units" .=) <$> _fUnits])
-
--- | City List Response
---
--- /See:/ 'citiesListResponse' smart constructor.
-data CitiesListResponse = CitiesListResponse
-    { _citKind   :: !Text
-    , _citCities :: !(Maybe [City])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CitiesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'citKind'
---
--- * 'citCities'
-citiesListResponse
-    :: CitiesListResponse
-citiesListResponse =
-    CitiesListResponse
-    { _citKind = "dfareporting#citiesListResponse"
-    , _citCities = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#citiesListResponse\".
-citKind :: Lens' CitiesListResponse Text
-citKind = lens _citKind (\ s a -> s{_citKind = a})
-
--- | City collection.
-citCities :: Lens' CitiesListResponse [City]
-citCities
-  = lens _citCities (\ s a -> s{_citCities = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON CitiesListResponse where
-        parseJSON
-          = withObject "CitiesListResponse"
-              (\ o ->
-                 CitiesListResponse <$>
-                   (o .:? "kind" .!= "dfareporting#citiesListResponse")
-                     <*> (o .:? "cities" .!= mempty))
-
-instance ToJSON CitiesListResponse where
-        toJSON CitiesListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _citKind),
-                  ("cities" .=) <$> _citCities])
-
--- | Represents a dimension.
---
--- /See:/ 'dimension' smart constructor.
-data Dimension = Dimension
-    { _dKind :: !Text
-    , _dName :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Dimension' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dKind'
---
--- * 'dName'
-dimension
-    :: Dimension
-dimension =
-    Dimension
-    { _dKind = "dfareporting#dimension"
-    , _dName = Nothing
-    }
-
--- | The kind of resource this is, in this case dfareporting#dimension.
-dKind :: Lens' Dimension Text
-dKind = lens _dKind (\ s a -> s{_dKind = a})
-
--- | The dimension name, e.g. dfa:advertiser
-dName :: Lens' Dimension (Maybe Text)
-dName = lens _dName (\ s a -> s{_dName = a})
-
-instance FromJSON Dimension where
-        parseJSON
-          = withObject "Dimension"
-              (\ o ->
-                 Dimension <$>
-                   (o .:? "kind" .!= "dfareporting#dimension") <*>
-                     (o .:? "name"))
-
-instance ToJSON Dimension where
-        toJSON Dimension{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _dKind), ("name" .=) <$> _dName])
-
--- | The report criteria for a report of type \"REACH\".
---
--- /See:/ 'reportReachCriteria' smart constructor.
-data ReportReachCriteria = ReportReachCriteria
-    { _rrcReachByFrequencyMetricNames    :: !(Maybe [Text])
-    , _rrcEnableAllDimensionCombinations :: !(Maybe Bool)
-    , _rrcMetricNames                    :: !(Maybe [Text])
-    , _rrcCustomRichMediaEvents          :: !(Maybe CustomRichMediaEvents)
-    , _rrcDimensionFilters               :: !(Maybe [DimensionValue])
-    , _rrcActivities                     :: !(Maybe Activities)
-    , _rrcDateRange                      :: !(Maybe DateRange)
-    , _rrcDimensions                     :: !(Maybe [SortedDimension])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportReachCriteria' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rrcReachByFrequencyMetricNames'
---
--- * 'rrcEnableAllDimensionCombinations'
---
--- * 'rrcMetricNames'
---
--- * 'rrcCustomRichMediaEvents'
---
--- * 'rrcDimensionFilters'
---
--- * 'rrcActivities'
---
--- * 'rrcDateRange'
---
--- * 'rrcDimensions'
-reportReachCriteria
-    :: ReportReachCriteria
-reportReachCriteria =
-    ReportReachCriteria
-    { _rrcReachByFrequencyMetricNames = Nothing
-    , _rrcEnableAllDimensionCombinations = Nothing
-    , _rrcMetricNames = Nothing
-    , _rrcCustomRichMediaEvents = Nothing
-    , _rrcDimensionFilters = Nothing
-    , _rrcActivities = Nothing
-    , _rrcDateRange = Nothing
-    , _rrcDimensions = Nothing
-    }
-
--- | The list of names of Reach By Frequency metrics the report should
--- include.
-rrcReachByFrequencyMetricNames :: Lens' ReportReachCriteria [Text]
-rrcReachByFrequencyMetricNames
-  = lens _rrcReachByFrequencyMetricNames
-      (\ s a -> s{_rrcReachByFrequencyMetricNames = a})
-      . _Default
-      . _Coerce
-
--- | Whether to enable all reach dimension combinations in the report.
--- Defaults to false. If enabled, the date range of the report should be
--- within the last three months.
-rrcEnableAllDimensionCombinations :: Lens' ReportReachCriteria (Maybe Bool)
-rrcEnableAllDimensionCombinations
-  = lens _rrcEnableAllDimensionCombinations
-      (\ s a -> s{_rrcEnableAllDimensionCombinations = a})
-
--- | The list of names of metrics the report should include.
-rrcMetricNames :: Lens' ReportReachCriteria [Text]
-rrcMetricNames
-  = lens _rrcMetricNames
-      (\ s a -> s{_rrcMetricNames = a})
-      . _Default
-      . _Coerce
-
--- | Custom Rich Media Events group.
-rrcCustomRichMediaEvents :: Lens' ReportReachCriteria (Maybe CustomRichMediaEvents)
-rrcCustomRichMediaEvents
-  = lens _rrcCustomRichMediaEvents
-      (\ s a -> s{_rrcCustomRichMediaEvents = a})
-
--- | The list of filters on which dimensions are filtered. Filters for
--- different dimensions are ANDed, filters for the same dimension are
--- grouped together and ORed.
-rrcDimensionFilters :: Lens' ReportReachCriteria [DimensionValue]
-rrcDimensionFilters
-  = lens _rrcDimensionFilters
-      (\ s a -> s{_rrcDimensionFilters = a})
-      . _Default
-      . _Coerce
-
--- | Activity group.
-rrcActivities :: Lens' ReportReachCriteria (Maybe Activities)
-rrcActivities
-  = lens _rrcActivities
-      (\ s a -> s{_rrcActivities = a})
-
--- | The date range this report should be run for.
-rrcDateRange :: Lens' ReportReachCriteria (Maybe DateRange)
-rrcDateRange
-  = lens _rrcDateRange (\ s a -> s{_rrcDateRange = a})
-
--- | The list of dimensions the report should include.
-rrcDimensions :: Lens' ReportReachCriteria [SortedDimension]
-rrcDimensions
-  = lens _rrcDimensions
-      (\ s a -> s{_rrcDimensions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ReportReachCriteria where
-        parseJSON
-          = withObject "ReportReachCriteria"
-              (\ o ->
-                 ReportReachCriteria <$>
-                   (o .:? "reachByFrequencyMetricNames" .!= mempty) <*>
-                     (o .:? "enableAllDimensionCombinations")
-                     <*> (o .:? "metricNames" .!= mempty)
-                     <*> (o .:? "customRichMediaEvents")
-                     <*> (o .:? "dimensionFilters" .!= mempty)
-                     <*> (o .:? "activities")
-                     <*> (o .:? "dateRange")
-                     <*> (o .:? "dimensions" .!= mempty))
-
-instance ToJSON ReportReachCriteria where
-        toJSON ReportReachCriteria{..}
-          = object
-              (catMaybes
-                 [("reachByFrequencyMetricNames" .=) <$>
-                    _rrcReachByFrequencyMetricNames,
-                  ("enableAllDimensionCombinations" .=) <$>
-                    _rrcEnableAllDimensionCombinations,
-                  ("metricNames" .=) <$> _rrcMetricNames,
-                  ("customRichMediaEvents" .=) <$>
-                    _rrcCustomRichMediaEvents,
-                  ("dimensionFilters" .=) <$> _rrcDimensionFilters,
-                  ("activities" .=) <$> _rrcActivities,
-                  ("dateRange" .=) <$> _rrcDateRange,
-                  ("dimensions" .=) <$> _rrcDimensions])
-
--- | Represents a Custom Rich Media Events group.
---
--- /See:/ 'customRichMediaEvents' smart constructor.
-data CustomRichMediaEvents = CustomRichMediaEvents
-    { _crmeKind             :: !Text
-    , _crmeFilteredEventIds :: !(Maybe [DimensionValue])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomRichMediaEvents' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'crmeKind'
---
--- * 'crmeFilteredEventIds'
-customRichMediaEvents
-    :: CustomRichMediaEvents
-customRichMediaEvents =
-    CustomRichMediaEvents
-    { _crmeKind = "dfareporting#customRichMediaEvents"
-    , _crmeFilteredEventIds = Nothing
-    }
-
--- | The kind of resource this is, in this case
--- dfareporting#customRichMediaEvents.
-crmeKind :: Lens' CustomRichMediaEvents Text
-crmeKind = lens _crmeKind (\ s a -> s{_crmeKind = a})
-
--- | List of custom rich media event IDs. Dimension values must be all of
--- type dfa:richMediaEventTypeIdAndName.
-crmeFilteredEventIds :: Lens' CustomRichMediaEvents [DimensionValue]
-crmeFilteredEventIds
-  = lens _crmeFilteredEventIds
-      (\ s a -> s{_crmeFilteredEventIds = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON CustomRichMediaEvents where
-        parseJSON
-          = withObject "CustomRichMediaEvents"
-              (\ o ->
-                 CustomRichMediaEvents <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#customRichMediaEvents")
-                     <*> (o .:? "filteredEventIds" .!= mempty))
-
-instance ToJSON CustomRichMediaEvents where
-        toJSON CustomRichMediaEvents{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _crmeKind),
-                  ("filteredEventIds" .=) <$> _crmeFilteredEventIds])
-
--- | Targetable remarketing list response
---
--- /See:/ 'targetableRemarketingListsListResponse' smart constructor.
-data TargetableRemarketingListsListResponse = TargetableRemarketingListsListResponse
-    { _trllrNextPageToken              :: !(Maybe Text)
-    , _trllrKind                       :: !Text
-    , _trllrTargetableRemarketingLists :: !(Maybe [TargetableRemarketingList])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TargetableRemarketingListsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'trllrNextPageToken'
---
--- * 'trllrKind'
---
--- * 'trllrTargetableRemarketingLists'
-targetableRemarketingListsListResponse
-    :: TargetableRemarketingListsListResponse
-targetableRemarketingListsListResponse =
-    TargetableRemarketingListsListResponse
-    { _trllrNextPageToken = Nothing
-    , _trllrKind = "dfareporting#targetableRemarketingListsListResponse"
-    , _trllrTargetableRemarketingLists = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-trllrNextPageToken :: Lens' TargetableRemarketingListsListResponse (Maybe Text)
-trllrNextPageToken
-  = lens _trllrNextPageToken
-      (\ s a -> s{_trllrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#targetableRemarketingListsListResponse\".
-trllrKind :: Lens' TargetableRemarketingListsListResponse Text
-trllrKind
-  = lens _trllrKind (\ s a -> s{_trllrKind = a})
-
--- | Targetable remarketing list collection.
-trllrTargetableRemarketingLists :: Lens' TargetableRemarketingListsListResponse [TargetableRemarketingList]
-trllrTargetableRemarketingLists
-  = lens _trllrTargetableRemarketingLists
-      (\ s a -> s{_trllrTargetableRemarketingLists = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-         TargetableRemarketingListsListResponse where
-        parseJSON
-          = withObject "TargetableRemarketingListsListResponse"
-              (\ o ->
-                 TargetableRemarketingListsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#targetableRemarketingListsListResponse")
-                     <*> (o .:? "targetableRemarketingLists" .!= mempty))
-
-instance ToJSON
-         TargetableRemarketingListsListResponse where
-        toJSON TargetableRemarketingListsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _trllrNextPageToken,
-                  Just ("kind" .= _trllrKind),
-                  ("targetableRemarketingLists" .=) <$>
-                    _trllrTargetableRemarketingLists])
-
--- | Change Log List Response
---
--- /See:/ 'changeLogsListResponse' smart constructor.
-data ChangeLogsListResponse = ChangeLogsListResponse
-    { _cllrNextPageToken :: !(Maybe Text)
-    , _cllrKind          :: !Text
-    , _cllrChangeLogs    :: !(Maybe [ChangeLog])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ChangeLogsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cllrNextPageToken'
---
--- * 'cllrKind'
---
--- * 'cllrChangeLogs'
-changeLogsListResponse
-    :: ChangeLogsListResponse
-changeLogsListResponse =
-    ChangeLogsListResponse
-    { _cllrNextPageToken = Nothing
-    , _cllrKind = "dfareporting#changeLogsListResponse"
-    , _cllrChangeLogs = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-cllrNextPageToken :: Lens' ChangeLogsListResponse (Maybe Text)
-cllrNextPageToken
-  = lens _cllrNextPageToken
-      (\ s a -> s{_cllrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#changeLogsListResponse\".
-cllrKind :: Lens' ChangeLogsListResponse Text
-cllrKind = lens _cllrKind (\ s a -> s{_cllrKind = a})
-
--- | Change log collection.
-cllrChangeLogs :: Lens' ChangeLogsListResponse [ChangeLog]
-cllrChangeLogs
-  = lens _cllrChangeLogs
-      (\ s a -> s{_cllrChangeLogs = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ChangeLogsListResponse where
-        parseJSON
-          = withObject "ChangeLogsListResponse"
-              (\ o ->
-                 ChangeLogsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#changeLogsListResponse")
-                     <*> (o .:? "changeLogs" .!= mempty))
-
-instance ToJSON ChangeLogsListResponse where
-        toJSON ChangeLogsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _cllrNextPageToken,
-                  Just ("kind" .= _cllrKind),
-                  ("changeLogs" .=) <$> _cllrChangeLogs])
-
--- | AccountUserProfiles contains properties of a DCM user profile. This
--- resource is specifically for managing user profiles, whereas
--- UserProfiles is for accessing the API.
---
--- /See:/ 'accountUserProFile' smart constructor.
-data AccountUserProFile = AccountUserProFile
-    { _aupfEmail            :: !(Maybe Text)
-    , _aupfUserRoleFilter   :: !(Maybe ObjectFilter)
-    , _aupfAdvertiserFilter :: !(Maybe ObjectFilter)
-    , _aupfUserRoleId       :: !(Maybe (Textual Int64))
-    , _aupfKind             :: !Text
-    , _aupfLocale           :: !(Maybe Text)
-    , _aupfSiteFilter       :: !(Maybe ObjectFilter)
-    , _aupfTraffickerType   :: !(Maybe AccountUserProFileTraffickerType)
-    , _aupfActive           :: !(Maybe Bool)
-    , _aupfAccountId        :: !(Maybe (Textual Int64))
-    , _aupfName             :: !(Maybe Text)
-    , _aupfId               :: !(Maybe (Textual Int64))
-    , _aupfUserAccessType   :: !(Maybe AccountUserProFileUserAccessType)
-    , _aupfComments         :: !(Maybe Text)
-    , _aupfSubAccountId     :: !(Maybe (Textual Int64))
-    , _aupfCampaignFilter   :: !(Maybe ObjectFilter)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountUserProFile' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aupfEmail'
---
--- * 'aupfUserRoleFilter'
---
--- * 'aupfAdvertiserFilter'
---
--- * 'aupfUserRoleId'
---
--- * 'aupfKind'
---
--- * 'aupfLocale'
---
--- * 'aupfSiteFilter'
---
--- * 'aupfTraffickerType'
---
--- * 'aupfActive'
---
--- * 'aupfAccountId'
---
--- * 'aupfName'
---
--- * 'aupfId'
---
--- * 'aupfUserAccessType'
---
--- * 'aupfComments'
---
--- * 'aupfSubAccountId'
---
--- * 'aupfCampaignFilter'
-accountUserProFile
-    :: AccountUserProFile
-accountUserProFile =
-    AccountUserProFile
-    { _aupfEmail = Nothing
-    , _aupfUserRoleFilter = Nothing
-    , _aupfAdvertiserFilter = Nothing
-    , _aupfUserRoleId = Nothing
-    , _aupfKind = "dfareporting#accountUserProfile"
-    , _aupfLocale = Nothing
-    , _aupfSiteFilter = Nothing
-    , _aupfTraffickerType = Nothing
-    , _aupfActive = Nothing
-    , _aupfAccountId = Nothing
-    , _aupfName = Nothing
-    , _aupfId = Nothing
-    , _aupfUserAccessType = Nothing
-    , _aupfComments = Nothing
-    , _aupfSubAccountId = Nothing
-    , _aupfCampaignFilter = Nothing
-    }
-
--- | Email of the user profile. The email addresss must be linked to a Google
--- Account. This field is required on insertion and is read-only after
--- insertion.
-aupfEmail :: Lens' AccountUserProFile (Maybe Text)
-aupfEmail
-  = lens _aupfEmail (\ s a -> s{_aupfEmail = a})
-
--- | Filter that describes which user roles are visible to the user profile.
-aupfUserRoleFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
-aupfUserRoleFilter
-  = lens _aupfUserRoleFilter
-      (\ s a -> s{_aupfUserRoleFilter = a})
-
--- | Filter that describes which advertisers are visible to the user profile.
-aupfAdvertiserFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
-aupfAdvertiserFilter
-  = lens _aupfAdvertiserFilter
-      (\ s a -> s{_aupfAdvertiserFilter = a})
-
--- | User role ID of the user profile. This is a required field.
-aupfUserRoleId :: Lens' AccountUserProFile (Maybe Int64)
-aupfUserRoleId
-  = lens _aupfUserRoleId
-      (\ s a -> s{_aupfUserRoleId = a})
-      . mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#accountUserProfile\".
-aupfKind :: Lens' AccountUserProFile Text
-aupfKind = lens _aupfKind (\ s a -> s{_aupfKind = a})
-
--- | Locale of the user profile. This is a required field. Acceptable values
--- are: - \"cs\" (Czech) - \"de\" (German) - \"en\" (English) - \"en-GB\"
--- (English United Kingdom) - \"es\" (Spanish) - \"fr\" (French) - \"it\"
--- (Italian) - \"ja\" (Japanese) - \"ko\" (Korean) - \"pl\" (Polish) -
--- \"pt-BR\" (Portuguese Brazil) - \"ru\" (Russian) - \"sv\" (Swedish) -
--- \"tr\" (Turkish) - \"zh-CN\" (Chinese Simplified) - \"zh-TW\" (Chinese
--- Traditional)
-aupfLocale :: Lens' AccountUserProFile (Maybe Text)
-aupfLocale
-  = lens _aupfLocale (\ s a -> s{_aupfLocale = a})
-
--- | Filter that describes which sites are visible to the user profile.
-aupfSiteFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
-aupfSiteFilter
-  = lens _aupfSiteFilter
-      (\ s a -> s{_aupfSiteFilter = a})
-
--- | Trafficker type of this user profile.
-aupfTraffickerType :: Lens' AccountUserProFile (Maybe AccountUserProFileTraffickerType)
-aupfTraffickerType
-  = lens _aupfTraffickerType
-      (\ s a -> s{_aupfTraffickerType = a})
-
--- | Whether this user profile is active. This defaults to false, and must be
--- set true on insert for the user profile to be usable.
-aupfActive :: Lens' AccountUserProFile (Maybe Bool)
-aupfActive
-  = lens _aupfActive (\ s a -> s{_aupfActive = a})
-
--- | Account ID of the user profile. This is a read-only field that can be
--- left blank.
-aupfAccountId :: Lens' AccountUserProFile (Maybe Int64)
-aupfAccountId
-  = lens _aupfAccountId
-      (\ s a -> s{_aupfAccountId = a})
-      . mapping _Coerce
-
--- | Name of the user profile. This is a required field. Must be less than 64
--- characters long, must be globally unique, and cannot contain whitespace
--- or any of the following characters: \"&;\"#%,\".
-aupfName :: Lens' AccountUserProFile (Maybe Text)
-aupfName = lens _aupfName (\ s a -> s{_aupfName = a})
-
--- | ID of the user profile. This is a read-only, auto-generated field.
-aupfId :: Lens' AccountUserProFile (Maybe Int64)
-aupfId
-  = lens _aupfId (\ s a -> s{_aupfId = a}) .
-      mapping _Coerce
-
--- | User type of the user profile. This is a read-only field that can be
--- left blank.
-aupfUserAccessType :: Lens' AccountUserProFile (Maybe AccountUserProFileUserAccessType)
-aupfUserAccessType
-  = lens _aupfUserAccessType
-      (\ s a -> s{_aupfUserAccessType = a})
-
--- | Comments for this user profile.
-aupfComments :: Lens' AccountUserProFile (Maybe Text)
-aupfComments
-  = lens _aupfComments (\ s a -> s{_aupfComments = a})
-
--- | Subaccount ID of the user profile. This is a read-only field that can be
--- left blank.
-aupfSubAccountId :: Lens' AccountUserProFile (Maybe Int64)
-aupfSubAccountId
-  = lens _aupfSubAccountId
-      (\ s a -> s{_aupfSubAccountId = a})
-      . mapping _Coerce
-
--- | Filter that describes which campaigns are visible to the user profile.
-aupfCampaignFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
-aupfCampaignFilter
-  = lens _aupfCampaignFilter
-      (\ s a -> s{_aupfCampaignFilter = a})
-
-instance FromJSON AccountUserProFile where
-        parseJSON
-          = withObject "AccountUserProFile"
-              (\ o ->
-                 AccountUserProFile <$>
-                   (o .:? "email") <*> (o .:? "userRoleFilter") <*>
-                     (o .:? "advertiserFilter")
-                     <*> (o .:? "userRoleId")
-                     <*>
-                     (o .:? "kind" .!= "dfareporting#accountUserProfile")
-                     <*> (o .:? "locale")
-                     <*> (o .:? "siteFilter")
-                     <*> (o .:? "traffickerType")
-                     <*> (o .:? "active")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "userAccessType")
-                     <*> (o .:? "comments")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "campaignFilter"))
-
-instance ToJSON AccountUserProFile where
-        toJSON AccountUserProFile{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _aupfEmail,
-                  ("userRoleFilter" .=) <$> _aupfUserRoleFilter,
-                  ("advertiserFilter" .=) <$> _aupfAdvertiserFilter,
-                  ("userRoleId" .=) <$> _aupfUserRoleId,
-                  Just ("kind" .= _aupfKind),
-                  ("locale" .=) <$> _aupfLocale,
-                  ("siteFilter" .=) <$> _aupfSiteFilter,
-                  ("traffickerType" .=) <$> _aupfTraffickerType,
-                  ("active" .=) <$> _aupfActive,
-                  ("accountId" .=) <$> _aupfAccountId,
-                  ("name" .=) <$> _aupfName, ("id" .=) <$> _aupfId,
-                  ("userAccessType" .=) <$> _aupfUserAccessType,
-                  ("comments" .=) <$> _aupfComments,
-                  ("subaccountId" .=) <$> _aupfSubAccountId,
-                  ("campaignFilter" .=) <$> _aupfCampaignFilter])
-
--- | Represents a DimensionValue resource.
---
--- /See:/ 'dimensionValue' smart constructor.
-data DimensionValue = DimensionValue
-    { _dvEtag          :: !(Maybe Text)
-    , _dvKind          :: !Text
-    , _dvValue         :: !(Maybe Text)
-    , _dvMatchType     :: !(Maybe DimensionValueMatchType)
-    , _dvDimensionName :: !(Maybe Text)
-    , _dvId            :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DimensionValue' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dvEtag'
---
--- * 'dvKind'
---
--- * 'dvValue'
---
--- * 'dvMatchType'
---
--- * 'dvDimensionName'
---
--- * 'dvId'
-dimensionValue
-    :: DimensionValue
-dimensionValue =
-    DimensionValue
-    { _dvEtag = Nothing
-    , _dvKind = "dfareporting#dimensionValue"
-    , _dvValue = Nothing
-    , _dvMatchType = Nothing
-    , _dvDimensionName = Nothing
-    , _dvId = Nothing
-    }
-
--- | The eTag of this response for caching purposes.
-dvEtag :: Lens' DimensionValue (Maybe Text)
-dvEtag = lens _dvEtag (\ s a -> s{_dvEtag = a})
-
--- | The kind of resource this is, in this case dfareporting#dimensionValue.
-dvKind :: Lens' DimensionValue Text
-dvKind = lens _dvKind (\ s a -> s{_dvKind = a})
-
--- | The value of the dimension.
-dvValue :: Lens' DimensionValue (Maybe Text)
-dvValue = lens _dvValue (\ s a -> s{_dvValue = a})
-
--- | Determines how the \'value\' field is matched when filtering. If not
--- specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, \'*\' is
--- allowed as a placeholder for variable length character sequences, and it
--- can be escaped with a backslash. Note, only paid search dimensions
--- (\'dfa:paidSearch*\') allow a matchType other than EXACT.
-dvMatchType :: Lens' DimensionValue (Maybe DimensionValueMatchType)
-dvMatchType
-  = lens _dvMatchType (\ s a -> s{_dvMatchType = a})
-
--- | The name of the dimension.
-dvDimensionName :: Lens' DimensionValue (Maybe Text)
-dvDimensionName
-  = lens _dvDimensionName
-      (\ s a -> s{_dvDimensionName = a})
-
--- | The ID associated with the value if available.
-dvId :: Lens' DimensionValue (Maybe Text)
-dvId = lens _dvId (\ s a -> s{_dvId = a})
-
-instance FromJSON DimensionValue where
-        parseJSON
-          = withObject "DimensionValue"
-              (\ o ->
-                 DimensionValue <$>
-                   (o .:? "etag") <*>
-                     (o .:? "kind" .!= "dfareporting#dimensionValue")
-                     <*> (o .:? "value")
-                     <*> (o .:? "matchType")
-                     <*> (o .:? "dimensionName")
-                     <*> (o .:? "id"))
-
-instance ToJSON DimensionValue where
-        toJSON DimensionValue{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _dvEtag, Just ("kind" .= _dvKind),
-                  ("value" .=) <$> _dvValue,
-                  ("matchType" .=) <$> _dvMatchType,
-                  ("dimensionName" .=) <$> _dvDimensionName,
-                  ("id" .=) <$> _dvId])
-
--- | Represents an activity group.
---
--- /See:/ 'activities' smart constructor.
-data Activities = Activities
-    { _actKind        :: !Text
-    , _actMetricNames :: !(Maybe [Text])
-    , _actFilters     :: !(Maybe [DimensionValue])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Activities' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'actKind'
---
--- * 'actMetricNames'
---
--- * 'actFilters'
-activities
-    :: Activities
-activities =
-    Activities
-    { _actKind = "dfareporting#activities"
-    , _actMetricNames = Nothing
-    , _actFilters = Nothing
-    }
-
--- | The kind of resource this is, in this case dfareporting#activities.
-actKind :: Lens' Activities Text
-actKind = lens _actKind (\ s a -> s{_actKind = a})
-
--- | List of names of floodlight activity metrics.
-actMetricNames :: Lens' Activities [Text]
-actMetricNames
-  = lens _actMetricNames
-      (\ s a -> s{_actMetricNames = a})
-      . _Default
-      . _Coerce
-
--- | List of activity filters. The dimension values need to be all either of
--- type \"dfa:activity\" or \"dfa:activityGroup\".
-actFilters :: Lens' Activities [DimensionValue]
-actFilters
-  = lens _actFilters (\ s a -> s{_actFilters = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON Activities where
-        parseJSON
-          = withObject "Activities"
-              (\ o ->
-                 Activities <$>
-                   (o .:? "kind" .!= "dfareporting#activities") <*>
-                     (o .:? "metricNames" .!= mempty)
-                     <*> (o .:? "filters" .!= mempty))
-
-instance ToJSON Activities where
-        toJSON Activities{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _actKind),
-                  ("metricNames" .=) <$> _actMetricNames,
-                  ("filters" .=) <$> _actFilters])
-
--- | User Role Permission Group List Response
---
--- /See:/ 'userRolePermissionGroupsListResponse' smart constructor.
-data UserRolePermissionGroupsListResponse = UserRolePermissionGroupsListResponse
-    { _urpglrUserRolePermissionGroups :: !(Maybe [UserRolePermissionGroup])
-    , _urpglrKind                     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserRolePermissionGroupsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'urpglrUserRolePermissionGroups'
---
--- * 'urpglrKind'
-userRolePermissionGroupsListResponse
-    :: UserRolePermissionGroupsListResponse
-userRolePermissionGroupsListResponse =
-    UserRolePermissionGroupsListResponse
-    { _urpglrUserRolePermissionGroups = Nothing
-    , _urpglrKind = "dfareporting#userRolePermissionGroupsListResponse"
-    }
-
--- | User role permission group collection.
-urpglrUserRolePermissionGroups :: Lens' UserRolePermissionGroupsListResponse [UserRolePermissionGroup]
-urpglrUserRolePermissionGroups
-  = lens _urpglrUserRolePermissionGroups
-      (\ s a -> s{_urpglrUserRolePermissionGroups = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#userRolePermissionGroupsListResponse\".
-urpglrKind :: Lens' UserRolePermissionGroupsListResponse Text
-urpglrKind
-  = lens _urpglrKind (\ s a -> s{_urpglrKind = a})
-
-instance FromJSON
-         UserRolePermissionGroupsListResponse where
-        parseJSON
-          = withObject "UserRolePermissionGroupsListResponse"
-              (\ o ->
-                 UserRolePermissionGroupsListResponse <$>
-                   (o .:? "userRolePermissionGroups" .!= mempty) <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#userRolePermissionGroupsListResponse"))
-
-instance ToJSON UserRolePermissionGroupsListResponse
-         where
-        toJSON UserRolePermissionGroupsListResponse{..}
-          = object
-              (catMaybes
-                 [("userRolePermissionGroups" .=) <$>
-                    _urpglrUserRolePermissionGroups,
-                  Just ("kind" .= _urpglrKind)])
-
--- | Placement Tag
---
--- /See:/ 'placementTag' smart constructor.
-data PlacementTag = PlacementTag
-    { _ptPlacementId :: !(Maybe (Textual Int64))
-    , _ptTagDatas    :: !(Maybe [TagData])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PlacementTag' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ptPlacementId'
---
--- * 'ptTagDatas'
-placementTag
-    :: PlacementTag
-placementTag =
-    PlacementTag
-    { _ptPlacementId = Nothing
-    , _ptTagDatas = Nothing
-    }
-
--- | Placement ID
-ptPlacementId :: Lens' PlacementTag (Maybe Int64)
-ptPlacementId
-  = lens _ptPlacementId
-      (\ s a -> s{_ptPlacementId = a})
-      . mapping _Coerce
-
--- | Tags generated for this placement.
-ptTagDatas :: Lens' PlacementTag [TagData]
-ptTagDatas
-  = lens _ptTagDatas (\ s a -> s{_ptTagDatas = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON PlacementTag where
-        parseJSON
-          = withObject "PlacementTag"
-              (\ o ->
-                 PlacementTag <$>
-                   (o .:? "placementId") <*>
-                     (o .:? "tagDatas" .!= mempty))
-
-instance ToJSON PlacementTag where
-        toJSON PlacementTag{..}
-          = object
-              (catMaybes
-                 [("placementId" .=) <$> _ptPlacementId,
-                  ("tagDatas" .=) <$> _ptTagDatas])
-
--- | Remarketing list response
---
--- /See:/ 'remarketingListsListResponse' smart constructor.
-data RemarketingListsListResponse = RemarketingListsListResponse
-    { _rllrNextPageToken    :: !(Maybe Text)
-    , _rllrRemarketingLists :: !(Maybe [RemarketingList])
-    , _rllrKind             :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RemarketingListsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rllrNextPageToken'
---
--- * 'rllrRemarketingLists'
---
--- * 'rllrKind'
-remarketingListsListResponse
-    :: RemarketingListsListResponse
-remarketingListsListResponse =
-    RemarketingListsListResponse
-    { _rllrNextPageToken = Nothing
-    , _rllrRemarketingLists = Nothing
-    , _rllrKind = "dfareporting#remarketingListsListResponse"
-    }
-
--- | Pagination token to be used for the next list operation.
-rllrNextPageToken :: Lens' RemarketingListsListResponse (Maybe Text)
-rllrNextPageToken
-  = lens _rllrNextPageToken
-      (\ s a -> s{_rllrNextPageToken = a})
-
--- | Remarketing list collection.
-rllrRemarketingLists :: Lens' RemarketingListsListResponse [RemarketingList]
-rllrRemarketingLists
-  = lens _rllrRemarketingLists
-      (\ s a -> s{_rllrRemarketingLists = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#remarketingListsListResponse\".
-rllrKind :: Lens' RemarketingListsListResponse Text
-rllrKind = lens _rllrKind (\ s a -> s{_rllrKind = a})
-
-instance FromJSON RemarketingListsListResponse where
-        parseJSON
-          = withObject "RemarketingListsListResponse"
-              (\ o ->
-                 RemarketingListsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "remarketingLists" .!= mempty)
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#remarketingListsListResponse"))
-
-instance ToJSON RemarketingListsListResponse where
-        toJSON RemarketingListsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _rllrNextPageToken,
-                  ("remarketingLists" .=) <$> _rllrRemarketingLists,
-                  Just ("kind" .= _rllrKind)])
-
--- | Contains properties of a Creative.
---
--- /See:/ 'creative' smart constructor.
-data Creative = Creative
-    { _creConvertFlashToHTML5                 :: !(Maybe Bool)
-    , _creBackupImageTargetWindow             :: !(Maybe TargetWindow)
-    , _creRenderingIdDimensionValue           :: !(Maybe DimensionValue)
-    , _creCustomKeyValues                     :: !(Maybe [Text])
-    , _creVideoDuration                       :: !(Maybe (Textual Double))
-    , _creRenderingId                         :: !(Maybe (Textual Int64))
-    , _creThirdPartyBackupImageImpressionsURL :: !(Maybe Text)
-    , _creFsCommand                           :: !(Maybe FsCommand)
-    , _creAllowScriptAccess                   :: !(Maybe Bool)
-    , _creHTMLCodeLocked                      :: !(Maybe Bool)
-    , _creRequiredFlashPluginVersion          :: !(Maybe Text)
-    , _creAuthoringTool                       :: !(Maybe CreativeAuthoringTool)
-    , _creSize                                :: !(Maybe Size)
-    , _creThirdPartyURLs                      :: !(Maybe [ThirdPartyTrackingURL])
-    , _creCounterCustomEvents                 :: !(Maybe [CreativeCustomEvent])
-    , _creKind                                :: !Text
-    , _creSSLOverride                         :: !(Maybe Bool)
-    , _creHTMLCode                            :: !(Maybe Text)
-    , _creAdvertiserId                        :: !(Maybe (Textual Int64))
-    , _creRequiredFlashVersion                :: !(Maybe (Textual Int32))
-    , _creBackgRoundColor                     :: !(Maybe Text)
-    , _creAdTagKeys                           :: !(Maybe [Text])
-    , _creSkippable                           :: !(Maybe Bool)
-    , _creSSLCompliant                        :: !(Maybe Bool)
-    , _creIdDimensionValue                    :: !(Maybe DimensionValue)
-    , _creBackupImageReportingLabel           :: !(Maybe Text)
-    , _creCommercialId                        :: !(Maybe Text)
-    , _creActive                              :: !(Maybe Bool)
-    , _creExitCustomEvents                    :: !(Maybe [CreativeCustomEvent])
-    , _creAccountId                           :: !(Maybe (Textual Int64))
-    , _creBackupImageClickThroughURL          :: !(Maybe Text)
-    , _creName                                :: !(Maybe Text)
-    , _creOverrideCss                         :: !(Maybe Text)
-    , _creVideoDescription                    :: !(Maybe Text)
-    , _creClickTags                           :: !(Maybe [ClickTag])
-    , _creAdParameters                        :: !(Maybe Text)
-    , _creVersion                             :: !(Maybe (Textual Int32))
-    , _creLatestTraffickedCreativeId          :: !(Maybe (Textual Int64))
-    , _creThirdPartyRichMediaImpressionsURL   :: !(Maybe Text)
-    , _creLastModifiedInfo                    :: !(Maybe LastModifiedInfo)
-    , _creId                                  :: !(Maybe (Textual Int64))
-    , _creStudioAdvertiserId                  :: !(Maybe (Textual Int64))
-    , _creCreativeAssets                      :: !(Maybe [CreativeAsset])
-    , _creSubAccountId                        :: !(Maybe (Textual Int64))
-    , _creType                                :: !(Maybe CreativeType)
-    , _creTimerCustomEvents                   :: !(Maybe [CreativeCustomEvent])
-    , _creStudioCreativeId                    :: !(Maybe (Textual Int64))
-    , _creCompatibility                       :: !(Maybe [CreativeCompatibilityItem])
-    , _creBackupImageFeatures                 :: !(Maybe [CreativeBackupImageFeaturesItem])
-    , _creArtworkType                         :: !(Maybe CreativeArtworkType)
-    , _creArchived                            :: !(Maybe Bool)
-    , _creCompanionCreatives                  :: !(Maybe [Textual Int64])
-    , _creTotalFileSize                       :: !(Maybe (Textual Int64))
-    , _creStudioTraffickedCreativeId          :: !(Maybe (Textual Int64))
-    , _creRedirectURL                         :: !(Maybe Text)
-    , _creAutoAdvanceImages                   :: !(Maybe Bool)
-    , _creCreativeFieldAssignments            :: !(Maybe [CreativeFieldAssignment])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Creative' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'creConvertFlashToHTML5'
---
--- * 'creBackupImageTargetWindow'
---
--- * 'creRenderingIdDimensionValue'
---
--- * 'creCustomKeyValues'
---
--- * 'creVideoDuration'
---
--- * 'creRenderingId'
---
--- * 'creThirdPartyBackupImageImpressionsURL'
---
--- * 'creFsCommand'
---
--- * 'creAllowScriptAccess'
---
--- * 'creHTMLCodeLocked'
---
--- * 'creRequiredFlashPluginVersion'
---
--- * 'creAuthoringTool'
---
--- * 'creSize'
---
--- * 'creThirdPartyURLs'
---
--- * 'creCounterCustomEvents'
---
--- * 'creKind'
---
--- * 'creSSLOverride'
---
--- * 'creHTMLCode'
---
--- * 'creAdvertiserId'
---
--- * 'creRequiredFlashVersion'
---
--- * 'creBackgRoundColor'
---
--- * 'creAdTagKeys'
---
--- * 'creSkippable'
---
--- * 'creSSLCompliant'
---
--- * 'creIdDimensionValue'
---
--- * 'creBackupImageReportingLabel'
---
--- * 'creCommercialId'
---
--- * 'creActive'
---
--- * 'creExitCustomEvents'
---
--- * 'creAccountId'
---
--- * 'creBackupImageClickThroughURL'
---
--- * 'creName'
---
--- * 'creOverrideCss'
---
--- * 'creVideoDescription'
---
--- * 'creClickTags'
---
--- * 'creAdParameters'
---
--- * 'creVersion'
---
--- * 'creLatestTraffickedCreativeId'
---
--- * 'creThirdPartyRichMediaImpressionsURL'
---
--- * 'creLastModifiedInfo'
---
--- * 'creId'
---
--- * 'creStudioAdvertiserId'
---
--- * 'creCreativeAssets'
---
--- * 'creSubAccountId'
---
--- * 'creType'
---
--- * 'creTimerCustomEvents'
---
--- * 'creStudioCreativeId'
---
--- * 'creCompatibility'
---
--- * 'creBackupImageFeatures'
---
--- * 'creArtworkType'
---
--- * 'creArchived'
---
--- * 'creCompanionCreatives'
---
--- * 'creTotalFileSize'
---
--- * 'creStudioTraffickedCreativeId'
---
--- * 'creRedirectURL'
---
--- * 'creAutoAdvanceImages'
---
--- * 'creCreativeFieldAssignments'
-creative
-    :: Creative
-creative =
-    Creative
-    { _creConvertFlashToHTML5 = Nothing
-    , _creBackupImageTargetWindow = Nothing
-    , _creRenderingIdDimensionValue = Nothing
-    , _creCustomKeyValues = Nothing
-    , _creVideoDuration = Nothing
-    , _creRenderingId = Nothing
-    , _creThirdPartyBackupImageImpressionsURL = Nothing
-    , _creFsCommand = Nothing
-    , _creAllowScriptAccess = Nothing
-    , _creHTMLCodeLocked = Nothing
-    , _creRequiredFlashPluginVersion = Nothing
-    , _creAuthoringTool = Nothing
-    , _creSize = Nothing
-    , _creThirdPartyURLs = Nothing
-    , _creCounterCustomEvents = Nothing
-    , _creKind = "dfareporting#creative"
-    , _creSSLOverride = Nothing
-    , _creHTMLCode = Nothing
-    , _creAdvertiserId = Nothing
-    , _creRequiredFlashVersion = Nothing
-    , _creBackgRoundColor = Nothing
-    , _creAdTagKeys = Nothing
-    , _creSkippable = Nothing
-    , _creSSLCompliant = Nothing
-    , _creIdDimensionValue = Nothing
-    , _creBackupImageReportingLabel = Nothing
-    , _creCommercialId = Nothing
-    , _creActive = Nothing
-    , _creExitCustomEvents = Nothing
-    , _creAccountId = Nothing
-    , _creBackupImageClickThroughURL = Nothing
-    , _creName = Nothing
-    , _creOverrideCss = Nothing
-    , _creVideoDescription = Nothing
-    , _creClickTags = Nothing
-    , _creAdParameters = Nothing
-    , _creVersion = Nothing
-    , _creLatestTraffickedCreativeId = Nothing
-    , _creThirdPartyRichMediaImpressionsURL = Nothing
-    , _creLastModifiedInfo = Nothing
-    , _creId = Nothing
-    , _creStudioAdvertiserId = Nothing
-    , _creCreativeAssets = Nothing
-    , _creSubAccountId = Nothing
-    , _creType = Nothing
-    , _creTimerCustomEvents = Nothing
-    , _creStudioCreativeId = Nothing
-    , _creCompatibility = Nothing
-    , _creBackupImageFeatures = Nothing
-    , _creArtworkType = Nothing
-    , _creArchived = Nothing
-    , _creCompanionCreatives = Nothing
-    , _creTotalFileSize = Nothing
-    , _creStudioTraffickedCreativeId = Nothing
-    , _creRedirectURL = Nothing
-    , _creAutoAdvanceImages = Nothing
-    , _creCreativeFieldAssignments = Nothing
-    }
-
--- | Whether Flash assets associated with the creative need to be
--- automatically converted to HTML5. This flag is enabled by default and
--- users can choose to disable it if they don\'t want the system to
--- generate and use HTML5 asset for this creative. Applicable to the
--- following creative types: ENHANCED_BANNER and FLASH_INPAGE.
-creConvertFlashToHTML5 :: Lens' Creative (Maybe Bool)
-creConvertFlashToHTML5
-  = lens _creConvertFlashToHTML5
-      (\ s a -> s{_creConvertFlashToHTML5 = a})
-
--- | Target window for backup image. Applicable to the following creative
--- types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
-creBackupImageTargetWindow :: Lens' Creative (Maybe TargetWindow)
-creBackupImageTargetWindow
-  = lens _creBackupImageTargetWindow
-      (\ s a -> s{_creBackupImageTargetWindow = a})
-
--- | Dimension value for the rendering ID of this creative. This is a
--- read-only field. Applicable to all creative types.
-creRenderingIdDimensionValue :: Lens' Creative (Maybe DimensionValue)
-creRenderingIdDimensionValue
-  = lens _creRenderingIdDimensionValue
-      (\ s a -> s{_creRenderingIdDimensionValue = a})
-
--- | Custom key-values for a Rich Media creative. Key-values let you
--- customize the creative settings of a Rich Media ad running on your site
--- without having to contact the advertiser. You can use key-values to
--- dynamically change the look or functionality of a creative. Applicable
--- to the following creative types: all RICH_MEDIA, and all VPAID.
-creCustomKeyValues :: Lens' Creative [Text]
-creCustomKeyValues
-  = lens _creCustomKeyValues
-      (\ s a -> s{_creCustomKeyValues = a})
-      . _Default
-      . _Coerce
-
--- | Creative video duration in seconds. This is a read-only field.
--- Applicable to the following creative types: INSTREAM_VIDEO, all
--- RICH_MEDIA, and all VPAID.
-creVideoDuration :: Lens' Creative (Maybe Double)
-creVideoDuration
-  = lens _creVideoDuration
-      (\ s a -> s{_creVideoDuration = a})
-      . mapping _Coerce
-
--- | ID of current rendering version. This is a read-only field. Applicable
--- to all creative types.
-creRenderingId :: Lens' Creative (Maybe Int64)
-creRenderingId
-  = lens _creRenderingId
-      (\ s a -> s{_creRenderingId = a})
-      . mapping _Coerce
-
--- | Third-party URL used to record backup image impressions. Applicable to
--- the following creative types: all RICH_MEDIA
-creThirdPartyBackupImageImpressionsURL :: Lens' Creative (Maybe Text)
-creThirdPartyBackupImageImpressionsURL
-  = lens _creThirdPartyBackupImageImpressionsURL
-      (\ s a ->
-         s{_creThirdPartyBackupImageImpressionsURL = a})
-
--- | OpenWindow FSCommand of this creative. This lets the SWF file
--- communicate with either Flash Player or the program hosting Flash
--- Player, such as a web browser. This is only triggered if
--- allowScriptAccess field is true. Applicable to the following creative
--- types: FLASH_INPAGE.
-creFsCommand :: Lens' Creative (Maybe FsCommand)
-creFsCommand
-  = lens _creFsCommand (\ s a -> s{_creFsCommand = a})
-
--- | Whether script access is allowed for this creative. This is a read-only
--- and deprecated field which will automatically be set to true on update.
--- Applicable to the following creative types: FLASH_INPAGE.
-creAllowScriptAccess :: Lens' Creative (Maybe Bool)
-creAllowScriptAccess
-  = lens _creAllowScriptAccess
-      (\ s a -> s{_creAllowScriptAccess = a})
-
--- | Whether HTML code is DCM-generated or manually entered. Set to true to
--- ignore changes to htmlCode. Applicable to the following creative types:
--- FLASH_INPAGE and HTML5_BANNER.
-creHTMLCodeLocked :: Lens' Creative (Maybe Bool)
-creHTMLCodeLocked
-  = lens _creHTMLCodeLocked
-      (\ s a -> s{_creHTMLCodeLocked = a})
-
--- | The minimum required Flash plugin version for this creative. For
--- example, 11.2.202.235. This is a read-only field. Applicable to the
--- following creative types: all RICH_MEDIA, and all VPAID.
-creRequiredFlashPluginVersion :: Lens' Creative (Maybe Text)
-creRequiredFlashPluginVersion
-  = lens _creRequiredFlashPluginVersion
-      (\ s a -> s{_creRequiredFlashPluginVersion = a})
-
--- | Authoring tool for HTML5 banner creatives. This is a read-only field.
--- Applicable to the following creative types: HTML5_BANNER.
-creAuthoringTool :: Lens' Creative (Maybe CreativeAuthoringTool)
-creAuthoringTool
-  = lens _creAuthoringTool
-      (\ s a -> s{_creAuthoringTool = a})
-
--- | Size associated with this creative. When inserting or updating a
--- creative either the size ID field or size width and height fields can be
--- used. This is a required field when applicable; however for IMAGE and
--- FLASH_INPAGE creatives, if left blank, this field will be automatically
--- set using the actual size of the associated image assets. Applicable to
--- the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE,
--- FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-creSize :: Lens' Creative (Maybe Size)
-creSize = lens _creSize (\ s a -> s{_creSize = a})
-
--- | Third-party URLs for tracking in-stream video creative events.
--- Applicable to the following creative types: INSTREAM_VIDEO and all
--- VPAID.
-creThirdPartyURLs :: Lens' Creative [ThirdPartyTrackingURL]
-creThirdPartyURLs
-  = lens _creThirdPartyURLs
-      (\ s a -> s{_creThirdPartyURLs = a})
-      . _Default
-      . _Coerce
-
--- | List of counter events configured for the creative. Applicable to the
--- following creative types: all RICH_MEDIA, and all VPAID.
-creCounterCustomEvents :: Lens' Creative [CreativeCustomEvent]
-creCounterCustomEvents
-  = lens _creCounterCustomEvents
-      (\ s a -> s{_creCounterCustomEvents = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#creative\".
-creKind :: Lens' Creative Text
-creKind = lens _creKind (\ s a -> s{_creKind = a})
-
--- | Whether creative should be treated as SSL compliant even if the system
--- scan shows it\'s not.
-creSSLOverride :: Lens' Creative (Maybe Bool)
-creSSLOverride
-  = lens _creSSLOverride
-      (\ s a -> s{_creSSLOverride = a})
-
--- | HTML code for the creative. This is a required field when applicable.
--- This field is ignored if htmlCodeLocked is false. Applicable to the
--- following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER,
--- and all RICH_MEDIA.
-creHTMLCode :: Lens' Creative (Maybe Text)
-creHTMLCode
-  = lens _creHTMLCode (\ s a -> s{_creHTMLCode = a})
-
--- | Advertiser ID of this creative. This is a required field. Applicable to
--- all creative types.
-creAdvertiserId :: Lens' Creative (Maybe Int64)
-creAdvertiserId
-  = lens _creAdvertiserId
-      (\ s a -> s{_creAdvertiserId = a})
-      . mapping _Coerce
-
--- | The internal Flash version for this creative as calculated by
--- DoubleClick Studio. This is a read-only field. Applicable to the
--- following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA,
--- and all VPAID.
-creRequiredFlashVersion :: Lens' Creative (Maybe Int32)
-creRequiredFlashVersion
-  = lens _creRequiredFlashVersion
-      (\ s a -> s{_creRequiredFlashVersion = a})
-      . mapping _Coerce
-
--- | The 6-character HTML color code, beginning with #, for the background of
--- the window area where the Flash file is displayed. Default is white.
--- Applicable to the following creative types: FLASH_INPAGE.
-creBackgRoundColor :: Lens' Creative (Maybe Text)
-creBackgRoundColor
-  = lens _creBackgRoundColor
-      (\ s a -> s{_creBackgRoundColor = a})
-
--- | Keywords for a Rich Media creative. Keywords let you customize the
--- creative settings of a Rich Media ad running on your site without having
--- to contact the advertiser. You can use keywords to dynamically change
--- the look or functionality of a creative. Applicable to the following
--- creative types: all RICH_MEDIA, and all VPAID.
-creAdTagKeys :: Lens' Creative [Text]
-creAdTagKeys
-  = lens _creAdTagKeys (\ s a -> s{_creAdTagKeys = a})
-      . _Default
-      . _Coerce
-
--- | Whether the user can choose to skip the creative. Applicable to the
--- following creative types: INSTREAM_VIDEO.
-creSkippable :: Lens' Creative (Maybe Bool)
-creSkippable
-  = lens _creSkippable (\ s a -> s{_creSkippable = a})
-
--- | Whether the creative is SSL-compliant. This is a read-only field.
--- Applicable to all creative types.
-creSSLCompliant :: Lens' Creative (Maybe Bool)
-creSSLCompliant
-  = lens _creSSLCompliant
-      (\ s a -> s{_creSSLCompliant = a})
-
--- | Dimension value for the ID of this creative. This is a read-only field.
--- Applicable to all creative types.
-creIdDimensionValue :: Lens' Creative (Maybe DimensionValue)
-creIdDimensionValue
-  = lens _creIdDimensionValue
-      (\ s a -> s{_creIdDimensionValue = a})
-
--- | Reporting label used for HTML5 banner backup image. Applicable to the
--- following creative types: ENHANCED_BANNER.
-creBackupImageReportingLabel :: Lens' Creative (Maybe Text)
-creBackupImageReportingLabel
-  = lens _creBackupImageReportingLabel
-      (\ s a -> s{_creBackupImageReportingLabel = a})
-
--- | Industry standard ID assigned to creative for reach and frequency.
--- Applicable to the following creative types: INSTREAM_VIDEO and all
--- VPAID.
-creCommercialId :: Lens' Creative (Maybe Text)
-creCommercialId
-  = lens _creCommercialId
-      (\ s a -> s{_creCommercialId = a})
-
--- | Whether the creative is active. Applicable to all creative types.
-creActive :: Lens' Creative (Maybe Bool)
-creActive
-  = lens _creActive (\ s a -> s{_creActive = a})
-
--- | List of exit events configured for the creative. Applicable to the
--- following creative types: all RICH_MEDIA, and all VPAID.
-creExitCustomEvents :: Lens' Creative [CreativeCustomEvent]
-creExitCustomEvents
-  = lens _creExitCustomEvents
-      (\ s a -> s{_creExitCustomEvents = a})
-      . _Default
-      . _Coerce
-
--- | Account ID of this creative. This field, if left unset, will be
--- auto-generated for both insert and update operations. Applicable to all
--- creative types.
-creAccountId :: Lens' Creative (Maybe Int64)
-creAccountId
-  = lens _creAccountId (\ s a -> s{_creAccountId = a})
-      . mapping _Coerce
-
--- | Click-through URL for backup image. Applicable to the following creative
--- types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
-creBackupImageClickThroughURL :: Lens' Creative (Maybe Text)
-creBackupImageClickThroughURL
-  = lens _creBackupImageClickThroughURL
-      (\ s a -> s{_creBackupImageClickThroughURL = a})
-
--- | Name of the creative. This is a required field and must be less than 256
--- characters long. Applicable to all creative types.
-creName :: Lens' Creative (Maybe Text)
-creName = lens _creName (\ s a -> s{_creName = a})
-
--- | Override CSS value for rich media creatives. Applicable to the following
--- creative types: all RICH_MEDIA.
-creOverrideCss :: Lens' Creative (Maybe Text)
-creOverrideCss
-  = lens _creOverrideCss
-      (\ s a -> s{_creOverrideCss = a})
-
--- | Description of the video ad. Applicable to the following creative types:
--- INSTREAM_VIDEO and all VPAID.
-creVideoDescription :: Lens' Creative (Maybe Text)
-creVideoDescription
-  = lens _creVideoDescription
-      (\ s a -> s{_creVideoDescription = a})
-
--- | Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and
--- HTML5_BANNER creatives, this is a subset of detected click tags for the
--- assets associated with this creative. After creating a flash asset,
--- detected click tags will be returned in the creativeAssetMetadata. When
--- inserting the creative, populate the creative clickTags field using the
--- creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives,
--- there should be exactly one entry in this list for each image creative
--- asset. A click tag is matched with a corresponding creative asset by
--- matching the clickTag.name field with the
--- creativeAsset.assetIdentifier.name field. Applicable to the following
--- creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE,
--- HTML5_BANNER.
-creClickTags :: Lens' Creative [ClickTag]
-creClickTags
-  = lens _creClickTags (\ s a -> s{_creClickTags = a})
-      . _Default
-      . _Coerce
-
--- | Ad parameters user for VPAID creative. This is a read-only field.
--- Applicable to the following creative types: all VPAID.
-creAdParameters :: Lens' Creative (Maybe Text)
-creAdParameters
-  = lens _creAdParameters
-      (\ s a -> s{_creAdParameters = a})
-
--- | The version number helps you keep track of multiple versions of your
--- creative in your reports. The version number will always be
--- auto-generated during insert operations to start at 1. For tracking
--- creatives the version cannot be incremented and will always remain at 1.
--- For all other creative types the version can be incremented only by 1
--- during update operations. In addition, the version will be automatically
--- incremented by 1 when undergoing Rich Media creative merging. Applicable
--- to all creative types.
-creVersion :: Lens' Creative (Maybe Int32)
-creVersion
-  = lens _creVersion (\ s a -> s{_creVersion = a}) .
-      mapping _Coerce
-
--- | Latest Studio trafficked creative ID associated with rich media and
--- VPAID creatives. This is a read-only field. Applicable to the following
--- creative types: all RICH_MEDIA, and all VPAID.
-creLatestTraffickedCreativeId :: Lens' Creative (Maybe Int64)
-creLatestTraffickedCreativeId
-  = lens _creLatestTraffickedCreativeId
-      (\ s a -> s{_creLatestTraffickedCreativeId = a})
-      . mapping _Coerce
-
--- | Third-party URL used to record rich media impressions. Applicable to the
--- following creative types: all RICH_MEDIA
-creThirdPartyRichMediaImpressionsURL :: Lens' Creative (Maybe Text)
-creThirdPartyRichMediaImpressionsURL
-  = lens _creThirdPartyRichMediaImpressionsURL
-      (\ s a ->
-         s{_creThirdPartyRichMediaImpressionsURL = a})
-
--- | Creative last modification information. This is a read-only field.
--- Applicable to all creative types.
-creLastModifiedInfo :: Lens' Creative (Maybe LastModifiedInfo)
-creLastModifiedInfo
-  = lens _creLastModifiedInfo
-      (\ s a -> s{_creLastModifiedInfo = a})
-
--- | ID of this creative. This is a read-only, auto-generated field.
--- Applicable to all creative types.
-creId :: Lens' Creative (Maybe Int64)
-creId
-  = lens _creId (\ s a -> s{_creId = a}) .
-      mapping _Coerce
-
--- | Studio advertiser ID associated with rich media and VPAID creatives.
--- This is a read-only field. Applicable to the following creative types:
--- all RICH_MEDIA, and all VPAID.
-creStudioAdvertiserId :: Lens' Creative (Maybe Int64)
-creStudioAdvertiserId
-  = lens _creStudioAdvertiserId
-      (\ s a -> s{_creStudioAdvertiserId = a})
-      . mapping _Coerce
-
--- | Assets associated with a creative. Applicable to all but the following
--- creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and
--- REDIRECT
-creCreativeAssets :: Lens' Creative [CreativeAsset]
-creCreativeAssets
-  = lens _creCreativeAssets
-      (\ s a -> s{_creCreativeAssets = a})
-      . _Default
-      . _Coerce
-
--- | Subaccount ID of this creative. This field, if left unset, will be
--- auto-generated for both insert and update operations. Applicable to all
--- creative types.
-creSubAccountId :: Lens' Creative (Maybe Int64)
-creSubAccountId
-  = lens _creSubAccountId
-      (\ s a -> s{_creSubAccountId = a})
-      . mapping _Coerce
-
--- | Type of this creative.This is a required field. Applicable to all
--- creative types.
-creType :: Lens' Creative (Maybe CreativeType)
-creType = lens _creType (\ s a -> s{_creType = a})
-
--- | List of timer events configured for the creative. Applicable to the
--- following creative types: all RICH_MEDIA, and all VPAID.
-creTimerCustomEvents :: Lens' Creative [CreativeCustomEvent]
-creTimerCustomEvents
-  = lens _creTimerCustomEvents
-      (\ s a -> s{_creTimerCustomEvents = a})
-      . _Default
-      . _Coerce
-
--- | Studio creative ID associated with rich media and VPAID creatives. This
--- is a read-only field. Applicable to the following creative types: all
--- RICH_MEDIA, and all VPAID.
-creStudioCreativeId :: Lens' Creative (Maybe Int64)
-creStudioCreativeId
-  = lens _creStudioCreativeId
-      (\ s a -> s{_creStudioCreativeId = a})
-      . mapping _Coerce
-
--- | Compatibilities associated with this creative. This is a read-only
--- field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or
--- on mobile devices for regular or interstitial ads, respectively. APP and
--- APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO
--- refers to rendering in in-stream video ads developed with the VAST
--- standard. Applicable to all creative types. Acceptable values are: -
--- \"APP\" - \"APP_INTERSTITIAL\" - \"IN_STREAM_VIDEO\" - \"WEB\" -
--- \"WEB_INTERSTITIAL\"
-creCompatibility :: Lens' Creative [CreativeCompatibilityItem]
-creCompatibility
-  = lens _creCompatibility
-      (\ s a -> s{_creCompatibility = a})
-      . _Default
-      . _Coerce
-
--- | List of feature dependencies that will cause a backup image to be served
--- if the browser that serves the ad does not support them. Feature
--- dependencies are features that a browser must be able to support in
--- order to render your HTML5 creative asset correctly. This field is
--- initially auto-generated to contain all features detected by DCM for all
--- the assets of this creative and can then be modified by the client. To
--- reset this field, copy over all the creativeAssets\' detected features.
--- Applicable to the following creative types: ENHANCED_BANNER and
--- HTML5_BANNER.
-creBackupImageFeatures :: Lens' Creative [CreativeBackupImageFeaturesItem]
-creBackupImageFeatures
-  = lens _creBackupImageFeatures
-      (\ s a -> s{_creBackupImageFeatures = a})
-      . _Default
-      . _Coerce
-
--- | Type of artwork used for the creative. This is a read-only field.
--- Applicable to the following creative types: all RICH_MEDIA, and all
--- VPAID.
-creArtworkType :: Lens' Creative (Maybe CreativeArtworkType)
-creArtworkType
-  = lens _creArtworkType
-      (\ s a -> s{_creArtworkType = a})
-
--- | Whether the creative is archived. Applicable to all creative types.
-creArchived :: Lens' Creative (Maybe Bool)
-creArchived
-  = lens _creArchived (\ s a -> s{_creArchived = a})
-
--- | List of companion creatives assigned to an in-Stream videocreative.
--- Acceptable values include IDs of existing flash and image creatives.
--- Applicable to the following creative types: INSTREAM_VIDEO and all
--- VPAID.
-creCompanionCreatives :: Lens' Creative [Int64]
-creCompanionCreatives
-  = lens _creCompanionCreatives
-      (\ s a -> s{_creCompanionCreatives = a})
-      . _Default
-      . _Coerce
-
--- | Combined size of all creative assets. This is a read-only field.
--- Applicable to the following creative types: all RICH_MEDIA, and all
--- VPAID.
-creTotalFileSize :: Lens' Creative (Maybe Int64)
-creTotalFileSize
-  = lens _creTotalFileSize
-      (\ s a -> s{_creTotalFileSize = a})
-      . mapping _Coerce
-
--- | Studio trafficked creative ID associated with rich media and VPAID
--- creatives. This is a read-only field. Applicable to the following
--- creative types: all RICH_MEDIA, and all VPAID.
-creStudioTraffickedCreativeId :: Lens' Creative (Maybe Int64)
-creStudioTraffickedCreativeId
-  = lens _creStudioTraffickedCreativeId
-      (\ s a -> s{_creStudioTraffickedCreativeId = a})
-      . mapping _Coerce
-
--- | URL of hosted image or another ad tag. This is a required field when
--- applicable. Applicable to the following creative types:
--- INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-creRedirectURL :: Lens' Creative (Maybe Text)
-creRedirectURL
-  = lens _creRedirectURL
-      (\ s a -> s{_creRedirectURL = a})
-
--- | Whether images are automatically advanced for enhanced image creatives.
--- Applicable to the following creative types: ENHANCED_IMAGE.
-creAutoAdvanceImages :: Lens' Creative (Maybe Bool)
-creAutoAdvanceImages
-  = lens _creAutoAdvanceImages
-      (\ s a -> s{_creAutoAdvanceImages = a})
-
--- | Creative field assignments for this creative. Applicable to all creative
--- types.
-creCreativeFieldAssignments :: Lens' Creative [CreativeFieldAssignment]
-creCreativeFieldAssignments
-  = lens _creCreativeFieldAssignments
-      (\ s a -> s{_creCreativeFieldAssignments = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON Creative where
-        parseJSON
-          = withObject "Creative"
-              (\ o ->
-                 Creative <$>
-                   (o .:? "convertFlashToHtml5") <*>
-                     (o .:? "backupImageTargetWindow")
-                     <*> (o .:? "renderingIdDimensionValue")
-                     <*> (o .:? "customKeyValues" .!= mempty)
-                     <*> (o .:? "videoDuration")
-                     <*> (o .:? "renderingId")
-                     <*> (o .:? "thirdPartyBackupImageImpressionsUrl")
-                     <*> (o .:? "fsCommand")
-                     <*> (o .:? "allowScriptAccess")
-                     <*> (o .:? "htmlCodeLocked")
-                     <*> (o .:? "requiredFlashPluginVersion")
-                     <*> (o .:? "authoringTool")
-                     <*> (o .:? "size")
-                     <*> (o .:? "thirdPartyUrls" .!= mempty)
-                     <*> (o .:? "counterCustomEvents" .!= mempty)
-                     <*> (o .:? "kind" .!= "dfareporting#creative")
-                     <*> (o .:? "sslOverride")
-                     <*> (o .:? "htmlCode")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "requiredFlashVersion")
-                     <*> (o .:? "backgroundColor")
-                     <*> (o .:? "adTagKeys" .!= mempty)
-                     <*> (o .:? "skippable")
-                     <*> (o .:? "sslCompliant")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "backupImageReportingLabel")
-                     <*> (o .:? "commercialId")
-                     <*> (o .:? "active")
-                     <*> (o .:? "exitCustomEvents" .!= mempty)
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "backupImageClickThroughUrl")
-                     <*> (o .:? "name")
-                     <*> (o .:? "overrideCss")
-                     <*> (o .:? "videoDescription")
-                     <*> (o .:? "clickTags" .!= mempty)
-                     <*> (o .:? "adParameters")
-                     <*> (o .:? "version")
-                     <*> (o .:? "latestTraffickedCreativeId")
-                     <*> (o .:? "thirdPartyRichMediaImpressionsUrl")
-                     <*> (o .:? "lastModifiedInfo")
-                     <*> (o .:? "id")
-                     <*> (o .:? "studioAdvertiserId")
-                     <*> (o .:? "creativeAssets" .!= mempty)
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "type")
-                     <*> (o .:? "timerCustomEvents" .!= mempty)
-                     <*> (o .:? "studioCreativeId")
-                     <*> (o .:? "compatibility" .!= mempty)
-                     <*> (o .:? "backupImageFeatures" .!= mempty)
-                     <*> (o .:? "artworkType")
-                     <*> (o .:? "archived")
-                     <*> (o .:? "companionCreatives" .!= mempty)
-                     <*> (o .:? "totalFileSize")
-                     <*> (o .:? "studioTraffickedCreativeId")
-                     <*> (o .:? "redirectUrl")
-                     <*> (o .:? "auto_advance_images")
-                     <*> (o .:? "creativeFieldAssignments" .!= mempty))
-
-instance ToJSON Creative where
-        toJSON Creative{..}
-          = object
-              (catMaybes
-                 [("convertFlashToHtml5" .=) <$>
-                    _creConvertFlashToHTML5,
-                  ("backupImageTargetWindow" .=) <$>
-                    _creBackupImageTargetWindow,
-                  ("renderingIdDimensionValue" .=) <$>
-                    _creRenderingIdDimensionValue,
-                  ("customKeyValues" .=) <$> _creCustomKeyValues,
-                  ("videoDuration" .=) <$> _creVideoDuration,
-                  ("renderingId" .=) <$> _creRenderingId,
-                  ("thirdPartyBackupImageImpressionsUrl" .=) <$>
-                    _creThirdPartyBackupImageImpressionsURL,
-                  ("fsCommand" .=) <$> _creFsCommand,
-                  ("allowScriptAccess" .=) <$> _creAllowScriptAccess,
-                  ("htmlCodeLocked" .=) <$> _creHTMLCodeLocked,
-                  ("requiredFlashPluginVersion" .=) <$>
-                    _creRequiredFlashPluginVersion,
-                  ("authoringTool" .=) <$> _creAuthoringTool,
-                  ("size" .=) <$> _creSize,
-                  ("thirdPartyUrls" .=) <$> _creThirdPartyURLs,
-                  ("counterCustomEvents" .=) <$>
-                    _creCounterCustomEvents,
-                  Just ("kind" .= _creKind),
-                  ("sslOverride" .=) <$> _creSSLOverride,
-                  ("htmlCode" .=) <$> _creHTMLCode,
-                  ("advertiserId" .=) <$> _creAdvertiserId,
-                  ("requiredFlashVersion" .=) <$>
-                    _creRequiredFlashVersion,
-                  ("backgroundColor" .=) <$> _creBackgRoundColor,
-                  ("adTagKeys" .=) <$> _creAdTagKeys,
-                  ("skippable" .=) <$> _creSkippable,
-                  ("sslCompliant" .=) <$> _creSSLCompliant,
-                  ("idDimensionValue" .=) <$> _creIdDimensionValue,
-                  ("backupImageReportingLabel" .=) <$>
-                    _creBackupImageReportingLabel,
-                  ("commercialId" .=) <$> _creCommercialId,
-                  ("active" .=) <$> _creActive,
-                  ("exitCustomEvents" .=) <$> _creExitCustomEvents,
-                  ("accountId" .=) <$> _creAccountId,
-                  ("backupImageClickThroughUrl" .=) <$>
-                    _creBackupImageClickThroughURL,
-                  ("name" .=) <$> _creName,
-                  ("overrideCss" .=) <$> _creOverrideCss,
-                  ("videoDescription" .=) <$> _creVideoDescription,
-                  ("clickTags" .=) <$> _creClickTags,
-                  ("adParameters" .=) <$> _creAdParameters,
-                  ("version" .=) <$> _creVersion,
-                  ("latestTraffickedCreativeId" .=) <$>
-                    _creLatestTraffickedCreativeId,
-                  ("thirdPartyRichMediaImpressionsUrl" .=) <$>
-                    _creThirdPartyRichMediaImpressionsURL,
-                  ("lastModifiedInfo" .=) <$> _creLastModifiedInfo,
-                  ("id" .=) <$> _creId,
-                  ("studioAdvertiserId" .=) <$> _creStudioAdvertiserId,
-                  ("creativeAssets" .=) <$> _creCreativeAssets,
-                  ("subaccountId" .=) <$> _creSubAccountId,
-                  ("type" .=) <$> _creType,
-                  ("timerCustomEvents" .=) <$> _creTimerCustomEvents,
-                  ("studioCreativeId" .=) <$> _creStudioCreativeId,
-                  ("compatibility" .=) <$> _creCompatibility,
-                  ("backupImageFeatures" .=) <$>
-                    _creBackupImageFeatures,
-                  ("artworkType" .=) <$> _creArtworkType,
-                  ("archived" .=) <$> _creArchived,
-                  ("companionCreatives" .=) <$> _creCompanionCreatives,
-                  ("totalFileSize" .=) <$> _creTotalFileSize,
-                  ("studioTraffickedCreativeId" .=) <$>
-                    _creStudioTraffickedCreativeId,
-                  ("redirectUrl" .=) <$> _creRedirectURL,
-                  ("auto_advance_images" .=) <$> _creAutoAdvanceImages,
-                  ("creativeFieldAssignments" .=) <$>
-                    _creCreativeFieldAssignments])
-
--- | Site Contact
---
--- /See:/ 'siteContact' smart constructor.
-data SiteContact = SiteContact
-    { _scEmail       :: !(Maybe Text)
-    , _scPhone       :: !(Maybe Text)
-    , _scLastName    :: !(Maybe Text)
-    , _scAddress     :: !(Maybe Text)
-    , _scFirstName   :: !(Maybe Text)
-    , _scId          :: !(Maybe (Textual Int64))
-    , _scTitle       :: !(Maybe Text)
-    , _scContactType :: !(Maybe SiteContactContactType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'SiteContact' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'scEmail'
---
--- * 'scPhone'
---
--- * 'scLastName'
---
--- * 'scAddress'
---
--- * 'scFirstName'
---
--- * 'scId'
---
--- * 'scTitle'
---
--- * 'scContactType'
-siteContact
-    :: SiteContact
-siteContact =
-    SiteContact
-    { _scEmail = Nothing
-    , _scPhone = Nothing
-    , _scLastName = Nothing
-    , _scAddress = Nothing
-    , _scFirstName = Nothing
-    , _scId = Nothing
-    , _scTitle = Nothing
-    , _scContactType = Nothing
-    }
-
--- | Email address of this site contact. This is a required field.
-scEmail :: Lens' SiteContact (Maybe Text)
-scEmail = lens _scEmail (\ s a -> s{_scEmail = a})
-
--- | Primary phone number of this site contact.
-scPhone :: Lens' SiteContact (Maybe Text)
-scPhone = lens _scPhone (\ s a -> s{_scPhone = a})
-
--- | Last name of this site contact.
-scLastName :: Lens' SiteContact (Maybe Text)
-scLastName
-  = lens _scLastName (\ s a -> s{_scLastName = a})
-
--- | Address of this site contact.
-scAddress :: Lens' SiteContact (Maybe Text)
-scAddress
-  = lens _scAddress (\ s a -> s{_scAddress = a})
-
--- | First name of this site contact.
-scFirstName :: Lens' SiteContact (Maybe Text)
-scFirstName
-  = lens _scFirstName (\ s a -> s{_scFirstName = a})
-
--- | ID of this site contact. This is a read-only, auto-generated field.
-scId :: Lens' SiteContact (Maybe Int64)
-scId
-  = lens _scId (\ s a -> s{_scId = a}) .
-      mapping _Coerce
-
--- | Title or designation of this site contact.
-scTitle :: Lens' SiteContact (Maybe Text)
-scTitle = lens _scTitle (\ s a -> s{_scTitle = a})
-
--- | Site contact type.
-scContactType :: Lens' SiteContact (Maybe SiteContactContactType)
-scContactType
-  = lens _scContactType
-      (\ s a -> s{_scContactType = a})
-
-instance FromJSON SiteContact where
-        parseJSON
-          = withObject "SiteContact"
-              (\ o ->
-                 SiteContact <$>
-                   (o .:? "email") <*> (o .:? "phone") <*>
-                     (o .:? "lastName")
-                     <*> (o .:? "address")
-                     <*> (o .:? "firstName")
-                     <*> (o .:? "id")
-                     <*> (o .:? "title")
-                     <*> (o .:? "contactType"))
-
-instance ToJSON SiteContact where
-        toJSON SiteContact{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _scEmail,
-                  ("phone" .=) <$> _scPhone,
-                  ("lastName" .=) <$> _scLastName,
-                  ("address" .=) <$> _scAddress,
-                  ("firstName" .=) <$> _scFirstName,
-                  ("id" .=) <$> _scId, ("title" .=) <$> _scTitle,
-                  ("contactType" .=) <$> _scContactType])
-
--- | Account List Response
---
--- /See:/ 'accountsListResponse' smart constructor.
-data AccountsListResponse = AccountsListResponse
-    { _accNextPageToken :: !(Maybe Text)
-    , _accAccounts      :: !(Maybe [Account])
-    , _accKind          :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'accNextPageToken'
---
--- * 'accAccounts'
---
--- * 'accKind'
-accountsListResponse
-    :: AccountsListResponse
-accountsListResponse =
-    AccountsListResponse
-    { _accNextPageToken = Nothing
-    , _accAccounts = Nothing
-    , _accKind = "dfareporting#accountsListResponse"
-    }
-
--- | Pagination token to be used for the next list operation.
-accNextPageToken :: Lens' AccountsListResponse (Maybe Text)
-accNextPageToken
-  = lens _accNextPageToken
-      (\ s a -> s{_accNextPageToken = a})
-
--- | Account collection.
-accAccounts :: Lens' AccountsListResponse [Account]
-accAccounts
-  = lens _accAccounts (\ s a -> s{_accAccounts = a}) .
-      _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#accountsListResponse\".
-accKind :: Lens' AccountsListResponse Text
-accKind = lens _accKind (\ s a -> s{_accKind = a})
-
-instance FromJSON AccountsListResponse where
-        parseJSON
-          = withObject "AccountsListResponse"
-              (\ o ->
-                 AccountsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "accounts" .!= mempty)
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#accountsListResponse"))
-
-instance ToJSON AccountsListResponse where
-        toJSON AccountsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _accNextPageToken,
-                  ("accounts" .=) <$> _accAccounts,
-                  Just ("kind" .= _accKind)])
-
--- | Represents a date range.
---
--- /See:/ 'dateRange' smart constructor.
-data DateRange = DateRange
-    { _drKind              :: !Text
-    , _drEndDate           :: !(Maybe Date')
-    , _drStartDate         :: !(Maybe Date')
-    , _drRelativeDateRange :: !(Maybe DateRangeRelativeDateRange)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DateRange' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drKind'
---
--- * 'drEndDate'
---
--- * 'drStartDate'
---
--- * 'drRelativeDateRange'
-dateRange
-    :: DateRange
-dateRange =
-    DateRange
-    { _drKind = "dfareporting#dateRange"
-    , _drEndDate = Nothing
-    , _drStartDate = Nothing
-    , _drRelativeDateRange = Nothing
-    }
-
--- | The kind of resource this is, in this case dfareporting#dateRange.
-drKind :: Lens' DateRange Text
-drKind = lens _drKind (\ s a -> s{_drKind = a})
-
--- | The end date of the date range, inclusive. A string of the format:
--- \"yyyy-MM-dd\".
-drEndDate :: Lens' DateRange (Maybe Day)
-drEndDate
-  = lens _drEndDate (\ s a -> s{_drEndDate = a}) .
-      mapping _Date
-
--- | The start date of the date range, inclusive. A string of the format:
--- \"yyyy-MM-dd\".
-drStartDate :: Lens' DateRange (Maybe Day)
-drStartDate
-  = lens _drStartDate (\ s a -> s{_drStartDate = a}) .
-      mapping _Date
-
--- | The date range relative to the date of when the report is run.
-drRelativeDateRange :: Lens' DateRange (Maybe DateRangeRelativeDateRange)
-drRelativeDateRange
-  = lens _drRelativeDateRange
-      (\ s a -> s{_drRelativeDateRange = a})
-
-instance FromJSON DateRange where
-        parseJSON
-          = withObject "DateRange"
-              (\ o ->
-                 DateRange <$>
-                   (o .:? "kind" .!= "dfareporting#dateRange") <*>
-                     (o .:? "endDate")
-                     <*> (o .:? "startDate")
-                     <*> (o .:? "relativeDateRange"))
-
-instance ToJSON DateRange where
-        toJSON DateRange{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _drKind),
-                  ("endDate" .=) <$> _drEndDate,
-                  ("startDate" .=) <$> _drStartDate,
-                  ("relativeDateRange" .=) <$> _drRelativeDateRange])
-
--- | Represents a Report resource.
---
--- /See:/ 'report' smart constructor.
-data Report = Report
-    { _rDelivery                    :: !(Maybe ReportDelivery)
-    , _rEtag                        :: !(Maybe Text)
-    , _rOwnerProFileId              :: !(Maybe (Textual Int64))
-    , _rSchedule                    :: !(Maybe ReportSchedule)
-    , _rPathToConversionCriteria    :: !(Maybe ReportPathToConversionCriteria)
-    , _rKind                        :: !Text
-    , _rFormat                      :: !(Maybe ReportFormat)
-    , _rReachCriteria               :: !(Maybe ReportReachCriteria)
-    , _rLastModifiedTime            :: !(Maybe (Textual Word64))
-    , _rAccountId                   :: !(Maybe (Textual Int64))
-    , _rName                        :: !(Maybe Text)
-    , _rId                          :: !(Maybe (Textual Int64))
-    , _rCrossDimensionReachCriteria :: !(Maybe ReportCrossDimensionReachCriteria)
-    , _rType                        :: !(Maybe ReportType)
-    , _rSubAccountId                :: !(Maybe (Textual Int64))
-    , _rFloodlightCriteria          :: !(Maybe ReportFloodlightCriteria)
-    , _rCriteria                    :: !(Maybe ReportCriteria)
-    , _rFileName                    :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Report' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rDelivery'
---
--- * 'rEtag'
---
--- * 'rOwnerProFileId'
---
--- * 'rSchedule'
---
--- * 'rPathToConversionCriteria'
---
--- * 'rKind'
---
--- * 'rFormat'
---
--- * 'rReachCriteria'
---
--- * 'rLastModifiedTime'
---
--- * 'rAccountId'
---
--- * 'rName'
---
--- * 'rId'
---
--- * 'rCrossDimensionReachCriteria'
---
--- * 'rType'
---
--- * 'rSubAccountId'
---
--- * 'rFloodlightCriteria'
---
--- * 'rCriteria'
---
--- * 'rFileName'
-report
-    :: Report
-report =
-    Report
-    { _rDelivery = Nothing
-    , _rEtag = Nothing
-    , _rOwnerProFileId = Nothing
-    , _rSchedule = Nothing
-    , _rPathToConversionCriteria = Nothing
-    , _rKind = "dfareporting#report"
-    , _rFormat = Nothing
-    , _rReachCriteria = Nothing
-    , _rLastModifiedTime = Nothing
-    , _rAccountId = Nothing
-    , _rName = Nothing
-    , _rId = Nothing
-    , _rCrossDimensionReachCriteria = Nothing
-    , _rType = Nothing
-    , _rSubAccountId = Nothing
-    , _rFloodlightCriteria = Nothing
-    , _rCriteria = Nothing
-    , _rFileName = Nothing
-    }
-
--- | The report\'s email delivery settings.
-rDelivery :: Lens' Report (Maybe ReportDelivery)
-rDelivery
-  = lens _rDelivery (\ s a -> s{_rDelivery = a})
-
--- | The eTag of this response for caching purposes.
-rEtag :: Lens' Report (Maybe Text)
-rEtag = lens _rEtag (\ s a -> s{_rEtag = a})
-
--- | The user profile id of the owner of this report.
-rOwnerProFileId :: Lens' Report (Maybe Int64)
-rOwnerProFileId
-  = lens _rOwnerProFileId
-      (\ s a -> s{_rOwnerProFileId = a})
-      . mapping _Coerce
-
--- | The report\'s schedule. Can only be set if the report\'s \'dateRange\'
--- is a relative date range and the relative date range is not \"TODAY\".
-rSchedule :: Lens' Report (Maybe ReportSchedule)
-rSchedule
-  = lens _rSchedule (\ s a -> s{_rSchedule = a})
-
--- | The report criteria for a report of type \"PATH_TO_CONVERSION\".
-rPathToConversionCriteria :: Lens' Report (Maybe ReportPathToConversionCriteria)
-rPathToConversionCriteria
-  = lens _rPathToConversionCriteria
-      (\ s a -> s{_rPathToConversionCriteria = a})
-
--- | The kind of resource this is, in this case dfareporting#report.
-rKind :: Lens' Report Text
-rKind = lens _rKind (\ s a -> s{_rKind = a})
-
--- | The output format of the report. If not specified, default format is
--- \"CSV\". Note that the actual format in the completed report file might
--- differ if for instance the report\'s size exceeds the format\'s
--- capabilities. \"CSV\" will then be the fallback format.
-rFormat :: Lens' Report (Maybe ReportFormat)
-rFormat = lens _rFormat (\ s a -> s{_rFormat = a})
-
--- | The report criteria for a report of type \"REACH\".
-rReachCriteria :: Lens' Report (Maybe ReportReachCriteria)
-rReachCriteria
-  = lens _rReachCriteria
-      (\ s a -> s{_rReachCriteria = a})
-
--- | The timestamp (in milliseconds since epoch) of when this report was last
--- modified.
-rLastModifiedTime :: Lens' Report (Maybe Word64)
-rLastModifiedTime
-  = lens _rLastModifiedTime
-      (\ s a -> s{_rLastModifiedTime = a})
-      . mapping _Coerce
-
--- | The account ID to which this report belongs.
-rAccountId :: Lens' Report (Maybe Int64)
-rAccountId
-  = lens _rAccountId (\ s a -> s{_rAccountId = a}) .
-      mapping _Coerce
-
--- | The name of the report.
-rName :: Lens' Report (Maybe Text)
-rName = lens _rName (\ s a -> s{_rName = a})
-
--- | The unique ID identifying this report resource.
-rId :: Lens' Report (Maybe Int64)
-rId
-  = lens _rId (\ s a -> s{_rId = a}) . mapping _Coerce
-
--- | The report criteria for a report of type \"CROSS_DIMENSION_REACH\".
-rCrossDimensionReachCriteria :: Lens' Report (Maybe ReportCrossDimensionReachCriteria)
-rCrossDimensionReachCriteria
-  = lens _rCrossDimensionReachCriteria
-      (\ s a -> s{_rCrossDimensionReachCriteria = a})
-
--- | The type of the report.
-rType :: Lens' Report (Maybe ReportType)
-rType = lens _rType (\ s a -> s{_rType = a})
-
--- | The subaccount ID to which this report belongs if applicable.
-rSubAccountId :: Lens' Report (Maybe Int64)
-rSubAccountId
-  = lens _rSubAccountId
-      (\ s a -> s{_rSubAccountId = a})
-      . mapping _Coerce
-
--- | The report criteria for a report of type \"FLOODLIGHT\".
-rFloodlightCriteria :: Lens' Report (Maybe ReportFloodlightCriteria)
-rFloodlightCriteria
-  = lens _rFloodlightCriteria
-      (\ s a -> s{_rFloodlightCriteria = a})
-
--- | The report criteria for a report of type \"STANDARD\".
-rCriteria :: Lens' Report (Maybe ReportCriteria)
-rCriteria
-  = lens _rCriteria (\ s a -> s{_rCriteria = a})
-
--- | The filename used when generating report files for this report.
-rFileName :: Lens' Report (Maybe Text)
-rFileName
-  = lens _rFileName (\ s a -> s{_rFileName = a})
-
-instance FromJSON Report where
-        parseJSON
-          = withObject "Report"
-              (\ o ->
-                 Report <$>
-                   (o .:? "delivery") <*> (o .:? "etag") <*>
-                     (o .:? "ownerProfileId")
-                     <*> (o .:? "schedule")
-                     <*> (o .:? "pathToConversionCriteria")
-                     <*> (o .:? "kind" .!= "dfareporting#report")
-                     <*> (o .:? "format")
-                     <*> (o .:? "reachCriteria")
-                     <*> (o .:? "lastModifiedTime")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "crossDimensionReachCriteria")
-                     <*> (o .:? "type")
-                     <*> (o .:? "subAccountId")
-                     <*> (o .:? "floodlightCriteria")
-                     <*> (o .:? "criteria")
-                     <*> (o .:? "fileName"))
-
-instance ToJSON Report where
-        toJSON Report{..}
-          = object
-              (catMaybes
-                 [("delivery" .=) <$> _rDelivery,
-                  ("etag" .=) <$> _rEtag,
-                  ("ownerProfileId" .=) <$> _rOwnerProFileId,
-                  ("schedule" .=) <$> _rSchedule,
-                  ("pathToConversionCriteria" .=) <$>
-                    _rPathToConversionCriteria,
-                  Just ("kind" .= _rKind), ("format" .=) <$> _rFormat,
-                  ("reachCriteria" .=) <$> _rReachCriteria,
-                  ("lastModifiedTime" .=) <$> _rLastModifiedTime,
-                  ("accountId" .=) <$> _rAccountId,
-                  ("name" .=) <$> _rName, ("id" .=) <$> _rId,
-                  ("crossDimensionReachCriteria" .=) <$>
-                    _rCrossDimensionReachCriteria,
-                  ("type" .=) <$> _rType,
-                  ("subAccountId" .=) <$> _rSubAccountId,
-                  ("floodlightCriteria" .=) <$> _rFloodlightCriteria,
-                  ("criteria" .=) <$> _rCriteria,
-                  ("fileName" .=) <$> _rFileName])
-
--- | Contains properties of a DCM campaign.
---
--- /See:/ 'campaign' smart constructor.
-data Campaign = Campaign
-    { _camCreativeOptimizationConfiguration            :: !(Maybe CreativeOptimizationConfiguration)
-    , _camCreativeGroupIds                             :: !(Maybe [Textual Int64])
-    , _camNielsenOCREnabled                            :: !(Maybe Bool)
-    , _camKind                                         :: !Text
-    , _camClickThroughURLSuffixProperties              :: !(Maybe ClickThroughURLSuffixProperties)
-    , _camAdvertiserId                                 :: !(Maybe (Textual Int64))
-    , _camEndDate                                      :: !(Maybe Date')
-    , _camAdvertiserIdDimensionValue                   :: !(Maybe DimensionValue)
-    , _camIdDimensionValue                             :: !(Maybe DimensionValue)
-    , _camEventTagOverrides                            :: !(Maybe [EventTagOverride])
-    , _camLookbackConfiguration                        :: !(Maybe LookbackConfiguration)
-    , _camStartDate                                    :: !(Maybe Date')
-    , _camAccountId                                    :: !(Maybe (Textual Int64))
-    , _camComscoreVceEnabled                           :: !(Maybe Bool)
-    , _camName                                         :: !(Maybe Text)
-    , _camAdvertiserGroupId                            :: !(Maybe (Textual Int64))
-    , _camBillingInvoiceCode                           :: !(Maybe Text)
-    , _camCreateInfo                                   :: !(Maybe LastModifiedInfo)
-    , _camLastModifiedInfo                             :: !(Maybe LastModifiedInfo)
-    , _camId                                           :: !(Maybe (Textual Int64))
-    , _camSubAccountId                                 :: !(Maybe (Textual Int64))
-    , _camAdditionalCreativeOptimizationConfigurations :: !(Maybe [CreativeOptimizationConfiguration])
-    , _camExternalId                                   :: !(Maybe Text)
-    , _camComment                                      :: !(Maybe Text)
-    , _camAudienceSegmentGroups                        :: !(Maybe [AudienceSegmentGroup])
-    , _camArchived                                     :: !(Maybe Bool)
-    , _camTraffickerEmails                             :: !(Maybe [Text])
-    , _camDefaultClickThroughEventTagProperties        :: !(Maybe DefaultClickThroughEventTagProperties)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Campaign' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'camCreativeOptimizationConfiguration'
---
--- * 'camCreativeGroupIds'
---
--- * 'camNielsenOCREnabled'
---
--- * 'camKind'
---
--- * 'camClickThroughURLSuffixProperties'
---
--- * 'camAdvertiserId'
---
--- * 'camEndDate'
---
--- * 'camAdvertiserIdDimensionValue'
---
--- * 'camIdDimensionValue'
---
--- * 'camEventTagOverrides'
---
--- * 'camLookbackConfiguration'
---
--- * 'camStartDate'
---
--- * 'camAccountId'
---
--- * 'camComscoreVceEnabled'
---
--- * 'camName'
---
--- * 'camAdvertiserGroupId'
---
--- * 'camBillingInvoiceCode'
---
--- * 'camCreateInfo'
---
--- * 'camLastModifiedInfo'
---
--- * 'camId'
---
--- * 'camSubAccountId'
---
--- * 'camAdditionalCreativeOptimizationConfigurations'
---
--- * 'camExternalId'
---
--- * 'camComment'
---
--- * 'camAudienceSegmentGroups'
---
--- * 'camArchived'
---
--- * 'camTraffickerEmails'
---
--- * 'camDefaultClickThroughEventTagProperties'
-campaign
-    :: Campaign
-campaign =
-    Campaign
-    { _camCreativeOptimizationConfiguration = Nothing
-    , _camCreativeGroupIds = Nothing
-    , _camNielsenOCREnabled = Nothing
-    , _camKind = "dfareporting#campaign"
-    , _camClickThroughURLSuffixProperties = Nothing
-    , _camAdvertiserId = Nothing
-    , _camEndDate = Nothing
-    , _camAdvertiserIdDimensionValue = Nothing
-    , _camIdDimensionValue = Nothing
-    , _camEventTagOverrides = Nothing
-    , _camLookbackConfiguration = Nothing
-    , _camStartDate = Nothing
-    , _camAccountId = Nothing
-    , _camComscoreVceEnabled = Nothing
-    , _camName = Nothing
-    , _camAdvertiserGroupId = Nothing
-    , _camBillingInvoiceCode = Nothing
-    , _camCreateInfo = Nothing
-    , _camLastModifiedInfo = Nothing
-    , _camId = Nothing
-    , _camSubAccountId = Nothing
-    , _camAdditionalCreativeOptimizationConfigurations = Nothing
-    , _camExternalId = Nothing
-    , _camComment = Nothing
-    , _camAudienceSegmentGroups = Nothing
-    , _camArchived = Nothing
-    , _camTraffickerEmails = Nothing
-    , _camDefaultClickThroughEventTagProperties = Nothing
-    }
-
--- | Creative optimization configuration for the campaign.
-camCreativeOptimizationConfiguration :: Lens' Campaign (Maybe CreativeOptimizationConfiguration)
-camCreativeOptimizationConfiguration
-  = lens _camCreativeOptimizationConfiguration
-      (\ s a ->
-         s{_camCreativeOptimizationConfiguration = a})
-
--- | List of creative group IDs that are assigned to the campaign.
-camCreativeGroupIds :: Lens' Campaign [Int64]
-camCreativeGroupIds
-  = lens _camCreativeGroupIds
-      (\ s a -> s{_camCreativeGroupIds = a})
-      . _Default
-      . _Coerce
-
--- | Whether Nielsen reports are enabled for this campaign.
-camNielsenOCREnabled :: Lens' Campaign (Maybe Bool)
-camNielsenOCREnabled
-  = lens _camNielsenOCREnabled
-      (\ s a -> s{_camNielsenOCREnabled = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#campaign\".
-camKind :: Lens' Campaign Text
-camKind = lens _camKind (\ s a -> s{_camKind = a})
-
--- | Click-through URL suffix override properties for this campaign.
-camClickThroughURLSuffixProperties :: Lens' Campaign (Maybe ClickThroughURLSuffixProperties)
-camClickThroughURLSuffixProperties
-  = lens _camClickThroughURLSuffixProperties
-      (\ s a -> s{_camClickThroughURLSuffixProperties = a})
-
--- | Advertiser ID of this campaign. This is a required field.
-camAdvertiserId :: Lens' Campaign (Maybe Int64)
-camAdvertiserId
-  = lens _camAdvertiserId
-      (\ s a -> s{_camAdvertiserId = a})
-      . mapping _Coerce
-
--- | Date on which the campaign will stop running. On insert, the end date
--- must be today or a future date. The end date must be later than or be
--- the same as the start date. If, for example, you set 6\/25\/2015 as both
--- the start and end dates, the effective campaign run date is just that
--- day only, 6\/25\/2015. The hours, minutes, and seconds of the end date
--- should not be set, as doing so will result in an error. This is a
--- required field.
-camEndDate :: Lens' Campaign (Maybe Day)
-camEndDate
-  = lens _camEndDate (\ s a -> s{_camEndDate = a}) .
-      mapping _Date
-
--- | Dimension value for the advertiser ID of this campaign. This is a
--- read-only, auto-generated field.
-camAdvertiserIdDimensionValue :: Lens' Campaign (Maybe DimensionValue)
-camAdvertiserIdDimensionValue
-  = lens _camAdvertiserIdDimensionValue
-      (\ s a -> s{_camAdvertiserIdDimensionValue = a})
-
--- | Dimension value for the ID of this campaign. This is a read-only,
--- auto-generated field.
-camIdDimensionValue :: Lens' Campaign (Maybe DimensionValue)
-camIdDimensionValue
-  = lens _camIdDimensionValue
-      (\ s a -> s{_camIdDimensionValue = a})
-
--- | Overrides that can be used to activate or deactivate advertiser event
--- tags.
-camEventTagOverrides :: Lens' Campaign [EventTagOverride]
-camEventTagOverrides
-  = lens _camEventTagOverrides
-      (\ s a -> s{_camEventTagOverrides = a})
-      . _Default
-      . _Coerce
-
--- | Lookback window settings for the campaign.
-camLookbackConfiguration :: Lens' Campaign (Maybe LookbackConfiguration)
-camLookbackConfiguration
-  = lens _camLookbackConfiguration
-      (\ s a -> s{_camLookbackConfiguration = a})
-
--- | Date on which the campaign starts running. The start date can be any
--- date. The hours, minutes, and seconds of the start date should not be
--- set, as doing so will result in an error. This is a required field.
-camStartDate :: Lens' Campaign (Maybe Day)
-camStartDate
-  = lens _camStartDate (\ s a -> s{_camStartDate = a})
-      . mapping _Date
-
--- | Account ID of this campaign. This is a read-only field that can be left
--- blank.
-camAccountId :: Lens' Campaign (Maybe Int64)
-camAccountId
-  = lens _camAccountId (\ s a -> s{_camAccountId = a})
-      . mapping _Coerce
-
--- | Whether comScore vCE reports are enabled for this campaign.
-camComscoreVceEnabled :: Lens' Campaign (Maybe Bool)
-camComscoreVceEnabled
-  = lens _camComscoreVceEnabled
-      (\ s a -> s{_camComscoreVceEnabled = a})
-
--- | Name of this campaign. This is a required field and must be less than
--- 256 characters long and unique among campaigns of the same advertiser.
-camName :: Lens' Campaign (Maybe Text)
-camName = lens _camName (\ s a -> s{_camName = a})
-
--- | Advertiser group ID of the associated advertiser.
-camAdvertiserGroupId :: Lens' Campaign (Maybe Int64)
-camAdvertiserGroupId
-  = lens _camAdvertiserGroupId
-      (\ s a -> s{_camAdvertiserGroupId = a})
-      . mapping _Coerce
-
--- | Billing invoice code included in the DCM client billing invoices
--- associated with the campaign.
-camBillingInvoiceCode :: Lens' Campaign (Maybe Text)
-camBillingInvoiceCode
-  = lens _camBillingInvoiceCode
-      (\ s a -> s{_camBillingInvoiceCode = a})
-
--- | Information about the creation of this campaign. This is a read-only
--- field.
-camCreateInfo :: Lens' Campaign (Maybe LastModifiedInfo)
-camCreateInfo
-  = lens _camCreateInfo
-      (\ s a -> s{_camCreateInfo = a})
-
--- | Information about the most recent modification of this campaign. This is
--- a read-only field.
-camLastModifiedInfo :: Lens' Campaign (Maybe LastModifiedInfo)
-camLastModifiedInfo
-  = lens _camLastModifiedInfo
-      (\ s a -> s{_camLastModifiedInfo = a})
-
--- | ID of this campaign. This is a read-only auto-generated field.
-camId :: Lens' Campaign (Maybe Int64)
-camId
-  = lens _camId (\ s a -> s{_camId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this campaign. This is a read-only field that can be
--- left blank.
-camSubAccountId :: Lens' Campaign (Maybe Int64)
-camSubAccountId
-  = lens _camSubAccountId
-      (\ s a -> s{_camSubAccountId = a})
-      . mapping _Coerce
-
--- | Additional creative optimization configurations for the campaign.
-camAdditionalCreativeOptimizationConfigurations :: Lens' Campaign [CreativeOptimizationConfiguration]
-camAdditionalCreativeOptimizationConfigurations
-  = lens
-      _camAdditionalCreativeOptimizationConfigurations
-      (\ s a ->
-         s{_camAdditionalCreativeOptimizationConfigurations =
-             a})
-      . _Default
-      . _Coerce
-
--- | External ID for this campaign.
-camExternalId :: Lens' Campaign (Maybe Text)
-camExternalId
-  = lens _camExternalId
-      (\ s a -> s{_camExternalId = a})
-
--- | Arbitrary comments about this campaign. Must be less than 256 characters
--- long.
-camComment :: Lens' Campaign (Maybe Text)
-camComment
-  = lens _camComment (\ s a -> s{_camComment = a})
-
--- | Audience segment groups assigned to this campaign. Cannot have more than
--- 300 segment groups.
-camAudienceSegmentGroups :: Lens' Campaign [AudienceSegmentGroup]
-camAudienceSegmentGroups
-  = lens _camAudienceSegmentGroups
-      (\ s a -> s{_camAudienceSegmentGroups = a})
-      . _Default
-      . _Coerce
-
--- | Whether this campaign has been archived.
-camArchived :: Lens' Campaign (Maybe Bool)
-camArchived
-  = lens _camArchived (\ s a -> s{_camArchived = a})
-
--- | Campaign trafficker contact emails.
-camTraffickerEmails :: Lens' Campaign [Text]
-camTraffickerEmails
-  = lens _camTraffickerEmails
-      (\ s a -> s{_camTraffickerEmails = a})
-      . _Default
-      . _Coerce
-
--- | Click-through event tag ID override properties for this campaign.
-camDefaultClickThroughEventTagProperties :: Lens' Campaign (Maybe DefaultClickThroughEventTagProperties)
-camDefaultClickThroughEventTagProperties
-  = lens _camDefaultClickThroughEventTagProperties
-      (\ s a ->
-         s{_camDefaultClickThroughEventTagProperties = a})
-
-instance FromJSON Campaign where
-        parseJSON
-          = withObject "Campaign"
-              (\ o ->
-                 Campaign <$>
-                   (o .:? "creativeOptimizationConfiguration") <*>
-                     (o .:? "creativeGroupIds" .!= mempty)
-                     <*> (o .:? "nielsenOcrEnabled")
-                     <*> (o .:? "kind" .!= "dfareporting#campaign")
-                     <*> (o .:? "clickThroughUrlSuffixProperties")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "endDate")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "eventTagOverrides" .!= mempty)
-                     <*> (o .:? "lookbackConfiguration")
-                     <*> (o .:? "startDate")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "comscoreVceEnabled")
-                     <*> (o .:? "name")
-                     <*> (o .:? "advertiserGroupId")
-                     <*> (o .:? "billingInvoiceCode")
-                     <*> (o .:? "createInfo")
-                     <*> (o .:? "lastModifiedInfo")
-                     <*> (o .:? "id")
-                     <*> (o .:? "subaccountId")
-                     <*>
-                     (o .:? "additionalCreativeOptimizationConfigurations"
-                        .!= mempty)
-                     <*> (o .:? "externalId")
-                     <*> (o .:? "comment")
-                     <*> (o .:? "audienceSegmentGroups" .!= mempty)
-                     <*> (o .:? "archived")
-                     <*> (o .:? "traffickerEmails" .!= mempty)
-                     <*> (o .:? "defaultClickThroughEventTagProperties"))
-
-instance ToJSON Campaign where
-        toJSON Campaign{..}
-          = object
-              (catMaybes
-                 [("creativeOptimizationConfiguration" .=) <$>
-                    _camCreativeOptimizationConfiguration,
-                  ("creativeGroupIds" .=) <$> _camCreativeGroupIds,
-                  ("nielsenOcrEnabled" .=) <$> _camNielsenOCREnabled,
-                  Just ("kind" .= _camKind),
-                  ("clickThroughUrlSuffixProperties" .=) <$>
-                    _camClickThroughURLSuffixProperties,
-                  ("advertiserId" .=) <$> _camAdvertiserId,
-                  ("endDate" .=) <$> _camEndDate,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _camAdvertiserIdDimensionValue,
-                  ("idDimensionValue" .=) <$> _camIdDimensionValue,
-                  ("eventTagOverrides" .=) <$> _camEventTagOverrides,
-                  ("lookbackConfiguration" .=) <$>
-                    _camLookbackConfiguration,
-                  ("startDate" .=) <$> _camStartDate,
-                  ("accountId" .=) <$> _camAccountId,
-                  ("comscoreVceEnabled" .=) <$> _camComscoreVceEnabled,
-                  ("name" .=) <$> _camName,
-                  ("advertiserGroupId" .=) <$> _camAdvertiserGroupId,
-                  ("billingInvoiceCode" .=) <$> _camBillingInvoiceCode,
-                  ("createInfo" .=) <$> _camCreateInfo,
-                  ("lastModifiedInfo" .=) <$> _camLastModifiedInfo,
-                  ("id" .=) <$> _camId,
-                  ("subaccountId" .=) <$> _camSubAccountId,
-                  ("additionalCreativeOptimizationConfigurations" .=)
-                    <$> _camAdditionalCreativeOptimizationConfigurations,
-                  ("externalId" .=) <$> _camExternalId,
-                  ("comment" .=) <$> _camComment,
-                  ("audienceSegmentGroups" .=) <$>
-                    _camAudienceSegmentGroups,
-                  ("archived" .=) <$> _camArchived,
-                  ("traffickerEmails" .=) <$> _camTraffickerEmails,
-                  ("defaultClickThroughEventTagProperties" .=) <$>
-                    _camDefaultClickThroughEventTagProperties])
-
--- | Third Party Authentication Token
---
--- /See:/ 'thirdPartyAuthenticationToken' smart constructor.
-data ThirdPartyAuthenticationToken = ThirdPartyAuthenticationToken
-    { _tpatValue :: !(Maybe Text)
-    , _tpatName  :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ThirdPartyAuthenticationToken' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpatValue'
---
--- * 'tpatName'
-thirdPartyAuthenticationToken
-    :: ThirdPartyAuthenticationToken
-thirdPartyAuthenticationToken =
-    ThirdPartyAuthenticationToken
-    { _tpatValue = Nothing
-    , _tpatName = Nothing
-    }
-
--- | Value of the third-party authentication token. This is a read-only,
--- auto-generated field.
-tpatValue :: Lens' ThirdPartyAuthenticationToken (Maybe Text)
-tpatValue
-  = lens _tpatValue (\ s a -> s{_tpatValue = a})
-
--- | Name of the third-party authentication token.
-tpatName :: Lens' ThirdPartyAuthenticationToken (Maybe Text)
-tpatName = lens _tpatName (\ s a -> s{_tpatName = a})
-
-instance FromJSON ThirdPartyAuthenticationToken where
-        parseJSON
-          = withObject "ThirdPartyAuthenticationToken"
-              (\ o ->
-                 ThirdPartyAuthenticationToken <$>
-                   (o .:? "value") <*> (o .:? "name"))
-
-instance ToJSON ThirdPartyAuthenticationToken where
-        toJSON ThirdPartyAuthenticationToken{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tpatValue,
-                  ("name" .=) <$> _tpatName])
-
--- | Click-through URL
---
--- /See:/ 'clickThroughURL' smart constructor.
-data ClickThroughURL = ClickThroughURL
-    { _ctuDefaultLandingPage      :: !(Maybe Bool)
-    , _ctuComputedClickThroughURL :: !(Maybe Text)
-    , _ctuCustomClickThroughURL   :: !(Maybe Text)
-    , _ctuLandingPageId           :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ClickThroughURL' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ctuDefaultLandingPage'
---
--- * 'ctuComputedClickThroughURL'
---
--- * 'ctuCustomClickThroughURL'
---
--- * 'ctuLandingPageId'
-clickThroughURL
-    :: ClickThroughURL
-clickThroughURL =
-    ClickThroughURL
-    { _ctuDefaultLandingPage = Nothing
-    , _ctuComputedClickThroughURL = Nothing
-    , _ctuCustomClickThroughURL = Nothing
-    , _ctuLandingPageId = Nothing
-    }
-
--- | Whether the campaign default landing page is used.
-ctuDefaultLandingPage :: Lens' ClickThroughURL (Maybe Bool)
-ctuDefaultLandingPage
-  = lens _ctuDefaultLandingPage
-      (\ s a -> s{_ctuDefaultLandingPage = a})
-
--- | Read-only convenience field representing the actual URL that will be
--- used for this click-through. The URL is computed as follows: - If
--- defaultLandingPage is enabled then the campaign\'s default landing page
--- URL is assigned to this field. - If defaultLandingPage is not enabled
--- and a landingPageId is specified then that landing page\'s URL is
--- assigned to this field. - If neither of the above cases apply, then the
--- customClickThroughUrl is assigned to this field.
-ctuComputedClickThroughURL :: Lens' ClickThroughURL (Maybe Text)
-ctuComputedClickThroughURL
-  = lens _ctuComputedClickThroughURL
-      (\ s a -> s{_ctuComputedClickThroughURL = a})
-
--- | Custom click-through URL. Applicable if the defaultLandingPage field is
--- set to false and the landingPageId field is left unset.
-ctuCustomClickThroughURL :: Lens' ClickThroughURL (Maybe Text)
-ctuCustomClickThroughURL
-  = lens _ctuCustomClickThroughURL
-      (\ s a -> s{_ctuCustomClickThroughURL = a})
-
--- | ID of the landing page for the click-through URL. Applicable if the
--- defaultLandingPage field is set to false.
-ctuLandingPageId :: Lens' ClickThroughURL (Maybe Int64)
-ctuLandingPageId
-  = lens _ctuLandingPageId
-      (\ s a -> s{_ctuLandingPageId = a})
-      . mapping _Coerce
-
-instance FromJSON ClickThroughURL where
-        parseJSON
-          = withObject "ClickThroughURL"
-              (\ o ->
-                 ClickThroughURL <$>
-                   (o .:? "defaultLandingPage") <*>
-                     (o .:? "computedClickThroughUrl")
-                     <*> (o .:? "customClickThroughUrl")
-                     <*> (o .:? "landingPageId"))
-
-instance ToJSON ClickThroughURL where
-        toJSON ClickThroughURL{..}
-          = object
-              (catMaybes
-                 [("defaultLandingPage" .=) <$>
-                    _ctuDefaultLandingPage,
-                  ("computedClickThroughUrl" .=) <$>
-                    _ctuComputedClickThroughURL,
-                  ("customClickThroughUrl" .=) <$>
-                    _ctuCustomClickThroughURL,
-                  ("landingPageId" .=) <$> _ctuLandingPageId])
-
--- | Browser List Response
---
--- /See:/ 'browsersListResponse' smart constructor.
-data BrowsersListResponse = BrowsersListResponse
-    { _blrKind     :: !Text
-    , _blrBrowsers :: !(Maybe [Browser])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'BrowsersListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'blrKind'
---
--- * 'blrBrowsers'
-browsersListResponse
-    :: BrowsersListResponse
-browsersListResponse =
-    BrowsersListResponse
-    { _blrKind = "dfareporting#browsersListResponse"
-    , _blrBrowsers = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#browsersListResponse\".
-blrKind :: Lens' BrowsersListResponse Text
-blrKind = lens _blrKind (\ s a -> s{_blrKind = a})
-
--- | Browser collection.
-blrBrowsers :: Lens' BrowsersListResponse [Browser]
-blrBrowsers
-  = lens _blrBrowsers (\ s a -> s{_blrBrowsers = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON BrowsersListResponse where
-        parseJSON
-          = withObject "BrowsersListResponse"
-              (\ o ->
-                 BrowsersListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#browsersListResponse")
-                     <*> (o .:? "browsers" .!= mempty))
-
-instance ToJSON BrowsersListResponse where
-        toJSON BrowsersListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _blrKind),
-                  ("browsers" .=) <$> _blrBrowsers])
-
--- | Site Settings
---
--- /See:/ 'siteSettings' smart constructor.
-data SiteSettings = SiteSettings
-    { _ssDisableNewCookie      :: !(Maybe Bool)
-    , _ssDisableBrandSafeAds   :: !(Maybe Bool)
-    , _ssLookbackConfiguration :: !(Maybe LookbackConfiguration)
-    , _ssTagSetting            :: !(Maybe TagSetting)
-    , _ssActiveViewOptOut      :: !(Maybe Bool)
-    , _ssCreativeSettings      :: !(Maybe CreativeSettings)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'SiteSettings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ssDisableNewCookie'
---
--- * 'ssDisableBrandSafeAds'
---
--- * 'ssLookbackConfiguration'
---
--- * 'ssTagSetting'
---
--- * 'ssActiveViewOptOut'
---
--- * 'ssCreativeSettings'
-siteSettings
-    :: SiteSettings
-siteSettings =
-    SiteSettings
-    { _ssDisableNewCookie = Nothing
-    , _ssDisableBrandSafeAds = Nothing
-    , _ssLookbackConfiguration = Nothing
-    , _ssTagSetting = Nothing
-    , _ssActiveViewOptOut = Nothing
-    , _ssCreativeSettings = Nothing
-    }
-
--- | Whether new cookies are disabled for this site.
-ssDisableNewCookie :: Lens' SiteSettings (Maybe Bool)
-ssDisableNewCookie
-  = lens _ssDisableNewCookie
-      (\ s a -> s{_ssDisableNewCookie = a})
-
--- | Whether brand safe ads are disabled for this site.
-ssDisableBrandSafeAds :: Lens' SiteSettings (Maybe Bool)
-ssDisableBrandSafeAds
-  = lens _ssDisableBrandSafeAds
-      (\ s a -> s{_ssDisableBrandSafeAds = a})
-
--- | Lookback window settings for this site.
-ssLookbackConfiguration :: Lens' SiteSettings (Maybe LookbackConfiguration)
-ssLookbackConfiguration
-  = lens _ssLookbackConfiguration
-      (\ s a -> s{_ssLookbackConfiguration = a})
-
--- | Configuration settings for dynamic and image floodlight tags.
-ssTagSetting :: Lens' SiteSettings (Maybe TagSetting)
-ssTagSetting
-  = lens _ssTagSetting (\ s a -> s{_ssTagSetting = a})
-
--- | Whether active view creatives are disabled for this site.
-ssActiveViewOptOut :: Lens' SiteSettings (Maybe Bool)
-ssActiveViewOptOut
-  = lens _ssActiveViewOptOut
-      (\ s a -> s{_ssActiveViewOptOut = a})
-
--- | Site-wide creative settings.
-ssCreativeSettings :: Lens' SiteSettings (Maybe CreativeSettings)
-ssCreativeSettings
-  = lens _ssCreativeSettings
-      (\ s a -> s{_ssCreativeSettings = a})
-
-instance FromJSON SiteSettings where
-        parseJSON
-          = withObject "SiteSettings"
-              (\ o ->
-                 SiteSettings <$>
-                   (o .:? "disableNewCookie") <*>
-                     (o .:? "disableBrandSafeAds")
-                     <*> (o .:? "lookbackConfiguration")
-                     <*> (o .:? "tagSetting")
-                     <*> (o .:? "activeViewOptOut")
-                     <*> (o .:? "creativeSettings"))
-
-instance ToJSON SiteSettings where
-        toJSON SiteSettings{..}
-          = object
-              (catMaybes
-                 [("disableNewCookie" .=) <$> _ssDisableNewCookie,
-                  ("disableBrandSafeAds" .=) <$>
-                    _ssDisableBrandSafeAds,
-                  ("lookbackConfiguration" .=) <$>
-                    _ssLookbackConfiguration,
-                  ("tagSetting" .=) <$> _ssTagSetting,
-                  ("activeViewOptOut" .=) <$> _ssActiveViewOptOut,
-                  ("creativeSettings" .=) <$> _ssCreativeSettings])
-
--- | Content Category List Response
---
--- /See:/ 'contentCategoriesListResponse' smart constructor.
-data ContentCategoriesListResponse = ContentCategoriesListResponse
-    { _cclrNextPageToken     :: !(Maybe Text)
-    , _cclrKind              :: !Text
-    , _cclrContentCategories :: !(Maybe [ContentCategory])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ContentCategoriesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cclrNextPageToken'
---
--- * 'cclrKind'
---
--- * 'cclrContentCategories'
-contentCategoriesListResponse
-    :: ContentCategoriesListResponse
-contentCategoriesListResponse =
-    ContentCategoriesListResponse
-    { _cclrNextPageToken = Nothing
-    , _cclrKind = "dfareporting#contentCategoriesListResponse"
-    , _cclrContentCategories = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-cclrNextPageToken :: Lens' ContentCategoriesListResponse (Maybe Text)
-cclrNextPageToken
-  = lens _cclrNextPageToken
-      (\ s a -> s{_cclrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#contentCategoriesListResponse\".
-cclrKind :: Lens' ContentCategoriesListResponse Text
-cclrKind = lens _cclrKind (\ s a -> s{_cclrKind = a})
-
--- | Content category collection.
-cclrContentCategories :: Lens' ContentCategoriesListResponse [ContentCategory]
-cclrContentCategories
-  = lens _cclrContentCategories
-      (\ s a -> s{_cclrContentCategories = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ContentCategoriesListResponse where
-        parseJSON
-          = withObject "ContentCategoriesListResponse"
-              (\ o ->
-                 ContentCategoriesListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#contentCategoriesListResponse")
-                     <*> (o .:? "contentCategories" .!= mempty))
-
-instance ToJSON ContentCategoriesListResponse where
-        toJSON ContentCategoriesListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _cclrNextPageToken,
-                  Just ("kind" .= _cclrKind),
-                  ("contentCategories" .=) <$> _cclrContentCategories])
-
--- | Creative List Response
---
--- /See:/ 'creativesListResponse' smart constructor.
-data CreativesListResponse = CreativesListResponse
-    { _clrlNextPageToken :: !(Maybe Text)
-    , _clrlKind          :: !Text
-    , _clrlCreatives     :: !(Maybe [Creative])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clrlNextPageToken'
---
--- * 'clrlKind'
---
--- * 'clrlCreatives'
-creativesListResponse
-    :: CreativesListResponse
-creativesListResponse =
-    CreativesListResponse
-    { _clrlNextPageToken = Nothing
-    , _clrlKind = "dfareporting#creativesListResponse"
-    , _clrlCreatives = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-clrlNextPageToken :: Lens' CreativesListResponse (Maybe Text)
-clrlNextPageToken
-  = lens _clrlNextPageToken
-      (\ s a -> s{_clrlNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#creativesListResponse\".
-clrlKind :: Lens' CreativesListResponse Text
-clrlKind = lens _clrlKind (\ s a -> s{_clrlKind = a})
-
--- | Creative collection.
-clrlCreatives :: Lens' CreativesListResponse [Creative]
-clrlCreatives
-  = lens _clrlCreatives
-      (\ s a -> s{_clrlCreatives = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON CreativesListResponse where
-        parseJSON
-          = withObject "CreativesListResponse"
-              (\ o ->
-                 CreativesListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#creativesListResponse")
-                     <*> (o .:? "creatives" .!= mempty))
-
-instance ToJSON CreativesListResponse where
-        toJSON CreativesListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _clrlNextPageToken,
-                  Just ("kind" .= _clrlKind),
-                  ("creatives" .=) <$> _clrlCreatives])
-
--- | Contains properties of a DCM account.
---
--- /See:/ 'account' smart constructor.
-data Account = Account
-    { _aaAccountPermissionIds   :: !(Maybe [Textual Int64])
-    , _aaMaximumImageSize       :: !(Maybe (Textual Int64))
-    , _aaCurrencyId             :: !(Maybe (Textual Int64))
-    , _aaReportsConfiguration   :: !(Maybe ReportsConfiguration)
-    , _aaNielsenOCREnabled      :: !(Maybe Bool)
-    , _aaKind                   :: !Text
-    , _aaLocale                 :: !(Maybe Text)
-    , _aaActive                 :: !(Maybe Bool)
-    , _aaAvailablePermissionIds :: !(Maybe [Textual Int64])
-    , _aaTeaserSizeLimit        :: !(Maybe (Textual Int64))
-    , _aaComscoreVceEnabled     :: !(Maybe Bool)
-    , _aaActiveViewOptOut       :: !(Maybe Bool)
-    , _aaName                   :: !(Maybe Text)
-    , _aaAccountProFile         :: !(Maybe AccountAccountProFile)
-    , _aaId                     :: !(Maybe (Textual Int64))
-    , _aaCountryId              :: !(Maybe (Textual Int64))
-    , _aaActiveAdsLimitTier     :: !(Maybe AccountActiveAdsLimitTier)
-    , _aaDefaultCreativeSizeId  :: !(Maybe (Textual Int64))
-    , _aaDescription            :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Account' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aaAccountPermissionIds'
---
--- * 'aaMaximumImageSize'
---
--- * 'aaCurrencyId'
---
--- * 'aaReportsConfiguration'
---
--- * 'aaNielsenOCREnabled'
---
--- * 'aaKind'
---
--- * 'aaLocale'
---
--- * 'aaActive'
---
--- * 'aaAvailablePermissionIds'
---
--- * 'aaTeaserSizeLimit'
---
--- * 'aaComscoreVceEnabled'
---
--- * 'aaActiveViewOptOut'
---
--- * 'aaName'
---
--- * 'aaAccountProFile'
---
--- * 'aaId'
---
--- * 'aaCountryId'
---
--- * 'aaActiveAdsLimitTier'
---
--- * 'aaDefaultCreativeSizeId'
---
--- * 'aaDescription'
-account
-    :: Account
-account =
-    Account
-    { _aaAccountPermissionIds = Nothing
-    , _aaMaximumImageSize = Nothing
-    , _aaCurrencyId = Nothing
-    , _aaReportsConfiguration = Nothing
-    , _aaNielsenOCREnabled = Nothing
-    , _aaKind = "dfareporting#account"
-    , _aaLocale = Nothing
-    , _aaActive = Nothing
-    , _aaAvailablePermissionIds = Nothing
-    , _aaTeaserSizeLimit = Nothing
-    , _aaComscoreVceEnabled = Nothing
-    , _aaActiveViewOptOut = Nothing
-    , _aaName = Nothing
-    , _aaAccountProFile = Nothing
-    , _aaId = Nothing
-    , _aaCountryId = Nothing
-    , _aaActiveAdsLimitTier = Nothing
-    , _aaDefaultCreativeSizeId = Nothing
-    , _aaDescription = Nothing
-    }
-
--- | Account permissions assigned to this account.
-aaAccountPermissionIds :: Lens' Account [Int64]
-aaAccountPermissionIds
-  = lens _aaAccountPermissionIds
-      (\ s a -> s{_aaAccountPermissionIds = a})
-      . _Default
-      . _Coerce
-
--- | Maximum image size allowed for this account.
-aaMaximumImageSize :: Lens' Account (Maybe Int64)
-aaMaximumImageSize
-  = lens _aaMaximumImageSize
-      (\ s a -> s{_aaMaximumImageSize = a})
-      . mapping _Coerce
-
--- | ID of currency associated with this account. This is a required field.
--- Acceptable values are: - \"1\" for USD - \"2\" for GBP - \"3\" for ESP -
--- \"4\" for SEK - \"5\" for CAD - \"6\" for JPY - \"7\" for DEM - \"8\"
--- for AUD - \"9\" for FRF - \"10\" for ITL - \"11\" for DKK - \"12\" for
--- NOK - \"13\" for FIM - \"14\" for ZAR - \"15\" for IEP - \"16\" for NLG
--- - \"17\" for EUR - \"18\" for KRW - \"19\" for TWD - \"20\" for SGD -
--- \"21\" for CNY - \"22\" for HKD - \"23\" for NZD - \"24\" for MYR -
--- \"25\" for BRL - \"26\" for PTE - \"27\" for MXP - \"28\" for CLP -
--- \"29\" for TRY - \"30\" for ARS - \"31\" for PEN - \"32\" for ILS -
--- \"33\" for CHF - \"34\" for VEF - \"35\" for COP - \"36\" for GTQ
-aaCurrencyId :: Lens' Account (Maybe Int64)
-aaCurrencyId
-  = lens _aaCurrencyId (\ s a -> s{_aaCurrencyId = a})
-      . mapping _Coerce
-
--- | Reporting configuration of this account.
-aaReportsConfiguration :: Lens' Account (Maybe ReportsConfiguration)
-aaReportsConfiguration
-  = lens _aaReportsConfiguration
-      (\ s a -> s{_aaReportsConfiguration = a})
-
--- | Whether campaigns created in this account will be enabled for Nielsen
--- OCR reach ratings by default.
-aaNielsenOCREnabled :: Lens' Account (Maybe Bool)
-aaNielsenOCREnabled
-  = lens _aaNielsenOCREnabled
-      (\ s a -> s{_aaNielsenOCREnabled = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#account\".
-aaKind :: Lens' Account Text
-aaKind = lens _aaKind (\ s a -> s{_aaKind = a})
-
--- | Locale of this account. Acceptable values are: - \"cs\" (Czech) - \"de\"
--- (German) - \"en\" (English) - \"en-GB\" (English United Kingdom) -
--- \"es\" (Spanish) - \"fr\" (French) - \"it\" (Italian) - \"ja\"
--- (Japanese) - \"ko\" (Korean) - \"pl\" (Polish) - \"pt-BR\" (Portuguese
--- Brazil) - \"ru\" (Russian) - \"sv\" (Swedish) - \"tr\" (Turkish) -
--- \"zh-CN\" (Chinese Simplified) - \"zh-TW\" (Chinese Traditional)
-aaLocale :: Lens' Account (Maybe Text)
-aaLocale = lens _aaLocale (\ s a -> s{_aaLocale = a})
-
--- | Whether this account is active.
-aaActive :: Lens' Account (Maybe Bool)
-aaActive = lens _aaActive (\ s a -> s{_aaActive = a})
-
--- | User role permissions available to the user roles of this account.
-aaAvailablePermissionIds :: Lens' Account [Int64]
-aaAvailablePermissionIds
-  = lens _aaAvailablePermissionIds
-      (\ s a -> s{_aaAvailablePermissionIds = a})
-      . _Default
-      . _Coerce
-
--- | File size limit in kilobytes of Rich Media teaser creatives. Must be
--- between 1 and 10240.
-aaTeaserSizeLimit :: Lens' Account (Maybe Int64)
-aaTeaserSizeLimit
-  = lens _aaTeaserSizeLimit
-      (\ s a -> s{_aaTeaserSizeLimit = a})
-      . mapping _Coerce
-
--- | Whether campaigns created in this account will be enabled for comScore
--- vCE by default.
-aaComscoreVceEnabled :: Lens' Account (Maybe Bool)
-aaComscoreVceEnabled
-  = lens _aaComscoreVceEnabled
-      (\ s a -> s{_aaComscoreVceEnabled = a})
-
--- | Whether to serve creatives with Active View tags. If disabled,
--- viewability data will not be available for any impressions.
-aaActiveViewOptOut :: Lens' Account (Maybe Bool)
-aaActiveViewOptOut
-  = lens _aaActiveViewOptOut
-      (\ s a -> s{_aaActiveViewOptOut = a})
-
--- | Name of this account. This is a required field, and must be less than
--- 128 characters long and be globally unique.
-aaName :: Lens' Account (Maybe Text)
-aaName = lens _aaName (\ s a -> s{_aaName = a})
-
--- | Profile for this account. This is a read-only field that can be left
--- blank.
-aaAccountProFile :: Lens' Account (Maybe AccountAccountProFile)
-aaAccountProFile
-  = lens _aaAccountProFile
-      (\ s a -> s{_aaAccountProFile = a})
-
--- | ID of this account. This is a read-only, auto-generated field.
-aaId :: Lens' Account (Maybe Int64)
-aaId
-  = lens _aaId (\ s a -> s{_aaId = a}) .
-      mapping _Coerce
-
--- | ID of the country associated with this account.
-aaCountryId :: Lens' Account (Maybe Int64)
-aaCountryId
-  = lens _aaCountryId (\ s a -> s{_aaCountryId = a}) .
-      mapping _Coerce
-
--- | Maximum number of active ads allowed for this account.
-aaActiveAdsLimitTier :: Lens' Account (Maybe AccountActiveAdsLimitTier)
-aaActiveAdsLimitTier
-  = lens _aaActiveAdsLimitTier
-      (\ s a -> s{_aaActiveAdsLimitTier = a})
-
--- | Default placement dimensions for this account.
-aaDefaultCreativeSizeId :: Lens' Account (Maybe Int64)
-aaDefaultCreativeSizeId
-  = lens _aaDefaultCreativeSizeId
-      (\ s a -> s{_aaDefaultCreativeSizeId = a})
-      . mapping _Coerce
-
--- | Description of this account.
-aaDescription :: Lens' Account (Maybe Text)
-aaDescription
-  = lens _aaDescription
-      (\ s a -> s{_aaDescription = a})
-
-instance FromJSON Account where
-        parseJSON
-          = withObject "Account"
-              (\ o ->
-                 Account <$>
-                   (o .:? "accountPermissionIds" .!= mempty) <*>
-                     (o .:? "maximumImageSize")
-                     <*> (o .:? "currencyId")
-                     <*> (o .:? "reportsConfiguration")
-                     <*> (o .:? "nielsenOcrEnabled")
-                     <*> (o .:? "kind" .!= "dfareporting#account")
-                     <*> (o .:? "locale")
-                     <*> (o .:? "active")
-                     <*> (o .:? "availablePermissionIds" .!= mempty)
-                     <*> (o .:? "teaserSizeLimit")
-                     <*> (o .:? "comscoreVceEnabled")
-                     <*> (o .:? "activeViewOptOut")
-                     <*> (o .:? "name")
-                     <*> (o .:? "accountProfile")
-                     <*> (o .:? "id")
-                     <*> (o .:? "countryId")
-                     <*> (o .:? "activeAdsLimitTier")
-                     <*> (o .:? "defaultCreativeSizeId")
-                     <*> (o .:? "description"))
-
-instance ToJSON Account where
-        toJSON Account{..}
-          = object
-              (catMaybes
-                 [("accountPermissionIds" .=) <$>
-                    _aaAccountPermissionIds,
-                  ("maximumImageSize" .=) <$> _aaMaximumImageSize,
-                  ("currencyId" .=) <$> _aaCurrencyId,
-                  ("reportsConfiguration" .=) <$>
-                    _aaReportsConfiguration,
-                  ("nielsenOcrEnabled" .=) <$> _aaNielsenOCREnabled,
-                  Just ("kind" .= _aaKind),
-                  ("locale" .=) <$> _aaLocale,
-                  ("active" .=) <$> _aaActive,
-                  ("availablePermissionIds" .=) <$>
-                    _aaAvailablePermissionIds,
-                  ("teaserSizeLimit" .=) <$> _aaTeaserSizeLimit,
-                  ("comscoreVceEnabled" .=) <$> _aaComscoreVceEnabled,
-                  ("activeViewOptOut" .=) <$> _aaActiveViewOptOut,
-                  ("name" .=) <$> _aaName,
-                  ("accountProfile" .=) <$> _aaAccountProFile,
-                  ("id" .=) <$> _aaId,
-                  ("countryId" .=) <$> _aaCountryId,
-                  ("activeAdsLimitTier" .=) <$> _aaActiveAdsLimitTier,
-                  ("defaultCreativeSizeId" .=) <$>
-                    _aaDefaultCreativeSizeId,
-                  ("description" .=) <$> _aaDescription])
-
--- | Account User Profile List Response
---
--- /See:/ 'accountUserProFilesListResponse' smart constructor.
-data AccountUserProFilesListResponse = AccountUserProFilesListResponse
-    { _aupflrNextPageToken       :: !(Maybe Text)
-    , _aupflrAccountUserProFiles :: !(Maybe [AccountUserProFile])
-    , _aupflrKind                :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountUserProFilesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aupflrNextPageToken'
---
--- * 'aupflrAccountUserProFiles'
---
--- * 'aupflrKind'
-accountUserProFilesListResponse
-    :: AccountUserProFilesListResponse
-accountUserProFilesListResponse =
-    AccountUserProFilesListResponse
-    { _aupflrNextPageToken = Nothing
-    , _aupflrAccountUserProFiles = Nothing
-    , _aupflrKind = "dfareporting#accountUserProfilesListResponse"
-    }
-
--- | Pagination token to be used for the next list operation.
-aupflrNextPageToken :: Lens' AccountUserProFilesListResponse (Maybe Text)
-aupflrNextPageToken
-  = lens _aupflrNextPageToken
-      (\ s a -> s{_aupflrNextPageToken = a})
-
--- | Account user profile collection.
-aupflrAccountUserProFiles :: Lens' AccountUserProFilesListResponse [AccountUserProFile]
-aupflrAccountUserProFiles
-  = lens _aupflrAccountUserProFiles
-      (\ s a -> s{_aupflrAccountUserProFiles = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#accountUserProfilesListResponse\".
-aupflrKind :: Lens' AccountUserProFilesListResponse Text
-aupflrKind
-  = lens _aupflrKind (\ s a -> s{_aupflrKind = a})
-
-instance FromJSON AccountUserProFilesListResponse
-         where
-        parseJSON
-          = withObject "AccountUserProFilesListResponse"
-              (\ o ->
-                 AccountUserProFilesListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "accountUserProfiles" .!= mempty)
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#accountUserProfilesListResponse"))
-
-instance ToJSON AccountUserProFilesListResponse where
-        toJSON AccountUserProFilesListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _aupflrNextPageToken,
-                  ("accountUserProfiles" .=) <$>
-                    _aupflrAccountUserProFiles,
-                  Just ("kind" .= _aupflrKind)])
-
--- | Organizes placements according to the contents of their associated
--- webpages.
---
--- /See:/ 'contentCategory' smart constructor.
-data ContentCategory = ContentCategory
-    { _conKind      :: !Text
-    , _conAccountId :: !(Maybe (Textual Int64))
-    , _conName      :: !(Maybe Text)
-    , _conId        :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ContentCategory' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'conKind'
---
--- * 'conAccountId'
---
--- * 'conName'
---
--- * 'conId'
-contentCategory
-    :: ContentCategory
-contentCategory =
-    ContentCategory
-    { _conKind = "dfareporting#contentCategory"
-    , _conAccountId = Nothing
-    , _conName = Nothing
-    , _conId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#contentCategory\".
-conKind :: Lens' ContentCategory Text
-conKind = lens _conKind (\ s a -> s{_conKind = a})
-
--- | Account ID of this content category. This is a read-only field that can
--- be left blank.
-conAccountId :: Lens' ContentCategory (Maybe Int64)
-conAccountId
-  = lens _conAccountId (\ s a -> s{_conAccountId = a})
-      . mapping _Coerce
-
--- | Name of this content category. This is a required field and must be less
--- than 256 characters long and unique among content categories of the same
--- account.
-conName :: Lens' ContentCategory (Maybe Text)
-conName = lens _conName (\ s a -> s{_conName = a})
-
--- | ID of this content category. This is a read-only, auto-generated field.
-conId :: Lens' ContentCategory (Maybe Int64)
-conId
-  = lens _conId (\ s a -> s{_conId = a}) .
-      mapping _Coerce
-
-instance FromJSON ContentCategory where
-        parseJSON
-          = withObject "ContentCategory"
-              (\ o ->
-                 ContentCategory <$>
-                   (o .:? "kind" .!= "dfareporting#contentCategory") <*>
-                     (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON ContentCategory where
-        toJSON ContentCategory{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _conKind),
-                  ("accountId" .=) <$> _conAccountId,
-                  ("name" .=) <$> _conName, ("id" .=) <$> _conId])
-
--- | Represents fields that are compatible to be selected for a report of
--- type \"STANDARD\".
---
--- /See:/ 'reportCompatibleFields' smart constructor.
-data ReportCompatibleFields = ReportCompatibleFields
-    { _rcfMetrics                :: !(Maybe [Metric])
-    , _rcfKind                   :: !Text
-    , _rcfDimensionFilters       :: !(Maybe [Dimension])
-    , _rcfPivotedActivityMetrics :: !(Maybe [Metric])
-    , _rcfDimensions             :: !(Maybe [Dimension])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportCompatibleFields' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rcfMetrics'
---
--- * 'rcfKind'
---
--- * 'rcfDimensionFilters'
---
--- * 'rcfPivotedActivityMetrics'
---
--- * 'rcfDimensions'
-reportCompatibleFields
-    :: ReportCompatibleFields
-reportCompatibleFields =
-    ReportCompatibleFields
-    { _rcfMetrics = Nothing
-    , _rcfKind = "dfareporting#reportCompatibleFields"
-    , _rcfDimensionFilters = Nothing
-    , _rcfPivotedActivityMetrics = Nothing
-    , _rcfDimensions = Nothing
-    }
-
--- | Metrics which are compatible to be selected in the \"metricNames\"
--- section of the report.
-rcfMetrics :: Lens' ReportCompatibleFields [Metric]
-rcfMetrics
-  = lens _rcfMetrics (\ s a -> s{_rcfMetrics = a}) .
-      _Default
-      . _Coerce
-
--- | The kind of resource this is, in this case
--- dfareporting#reportCompatibleFields.
-rcfKind :: Lens' ReportCompatibleFields Text
-rcfKind = lens _rcfKind (\ s a -> s{_rcfKind = a})
-
--- | Dimensions which are compatible to be selected in the
--- \"dimensionFilters\" section of the report.
-rcfDimensionFilters :: Lens' ReportCompatibleFields [Dimension]
-rcfDimensionFilters
-  = lens _rcfDimensionFilters
-      (\ s a -> s{_rcfDimensionFilters = a})
-      . _Default
-      . _Coerce
-
--- | Metrics which are compatible to be selected as activity metrics to pivot
--- on in the \"activities\" section of the report.
-rcfPivotedActivityMetrics :: Lens' ReportCompatibleFields [Metric]
-rcfPivotedActivityMetrics
-  = lens _rcfPivotedActivityMetrics
-      (\ s a -> s{_rcfPivotedActivityMetrics = a})
-      . _Default
-      . _Coerce
-
--- | Dimensions which are compatible to be selected in the \"dimensions\"
--- section of the report.
-rcfDimensions :: Lens' ReportCompatibleFields [Dimension]
-rcfDimensions
-  = lens _rcfDimensions
-      (\ s a -> s{_rcfDimensions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ReportCompatibleFields where
-        parseJSON
-          = withObject "ReportCompatibleFields"
-              (\ o ->
-                 ReportCompatibleFields <$>
-                   (o .:? "metrics" .!= mempty) <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#reportCompatibleFields")
-                     <*> (o .:? "dimensionFilters" .!= mempty)
-                     <*> (o .:? "pivotedActivityMetrics" .!= mempty)
-                     <*> (o .:? "dimensions" .!= mempty))
-
-instance ToJSON ReportCompatibleFields where
-        toJSON ReportCompatibleFields{..}
-          = object
-              (catMaybes
-                 [("metrics" .=) <$> _rcfMetrics,
-                  Just ("kind" .= _rcfKind),
-                  ("dimensionFilters" .=) <$> _rcfDimensionFilters,
-                  ("pivotedActivityMetrics" .=) <$>
-                    _rcfPivotedActivityMetrics,
-                  ("dimensions" .=) <$> _rcfDimensions])
-
--- | Delivery Schedule.
---
--- /See:/ 'deliverySchedule' smart constructor.
-data DeliverySchedule = DeliverySchedule
-    { _dsHardCutoff      :: !(Maybe Bool)
-    , _dsPriority        :: !(Maybe DeliverySchedulePriority)
-    , _dsImpressionRatio :: !(Maybe (Textual Int64))
-    , _dsFrequencyCap    :: !(Maybe FrequencyCap)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeliverySchedule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dsHardCutoff'
---
--- * 'dsPriority'
---
--- * 'dsImpressionRatio'
---
--- * 'dsFrequencyCap'
-deliverySchedule
-    :: DeliverySchedule
-deliverySchedule =
-    DeliverySchedule
-    { _dsHardCutoff = Nothing
-    , _dsPriority = Nothing
-    , _dsImpressionRatio = Nothing
-    , _dsFrequencyCap = Nothing
-    }
-
--- | Whether or not hard cutoff is enabled. If true, the ad will not serve
--- after the end date and time. Otherwise the ad will continue to be served
--- until it has reached its delivery goals.
-dsHardCutoff :: Lens' DeliverySchedule (Maybe Bool)
-dsHardCutoff
-  = lens _dsHardCutoff (\ s a -> s{_dsHardCutoff = a})
-
--- | Serving priority of an ad, with respect to other ads. The lower the
--- priority number, the greater the priority with which it is served.
-dsPriority :: Lens' DeliverySchedule (Maybe DeliverySchedulePriority)
-dsPriority
-  = lens _dsPriority (\ s a -> s{_dsPriority = a})
-
--- | Impression ratio for this ad. This ratio determines how often each ad is
--- served relative to the others. For example, if ad A has an impression
--- ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad
--- B three times as often as ad A. Must be between 1 and 10.
-dsImpressionRatio :: Lens' DeliverySchedule (Maybe Int64)
-dsImpressionRatio
-  = lens _dsImpressionRatio
-      (\ s a -> s{_dsImpressionRatio = a})
-      . mapping _Coerce
-
--- | Limit on the number of times an individual user can be served the ad
--- within a specified period of time.
-dsFrequencyCap :: Lens' DeliverySchedule (Maybe FrequencyCap)
-dsFrequencyCap
-  = lens _dsFrequencyCap
-      (\ s a -> s{_dsFrequencyCap = a})
-
-instance FromJSON DeliverySchedule where
-        parseJSON
-          = withObject "DeliverySchedule"
-              (\ o ->
-                 DeliverySchedule <$>
-                   (o .:? "hardCutoff") <*> (o .:? "priority") <*>
-                     (o .:? "impressionRatio")
-                     <*> (o .:? "frequencyCap"))
-
-instance ToJSON DeliverySchedule where
-        toJSON DeliverySchedule{..}
-          = object
-              (catMaybes
-                 [("hardCutoff" .=) <$> _dsHardCutoff,
-                  ("priority" .=) <$> _dsPriority,
-                  ("impressionRatio" .=) <$> _dsImpressionRatio,
-                  ("frequencyCap" .=) <$> _dsFrequencyCap])
-
--- | Contains properties of a remarketing list. Remarketing enables you to
--- create lists of users who have performed specific actions on a site,
--- then target ads to members of those lists. This resource can be used to
--- manage remarketing lists that are owned by your advertisers. To see all
--- remarketing lists that are visible to your advertisers, including those
--- that are shared to your advertiser or account, use the
--- TargetableRemarketingLists resource.
---
--- /See:/ 'remarketingList' smart constructor.
-data RemarketingList = RemarketingList
-    { _rlListSize                   :: !(Maybe (Textual Int64))
-    , _rlListPopulationRule         :: !(Maybe ListPopulationRule)
-    , _rlLifeSpan                   :: !(Maybe (Textual Int64))
-    , _rlKind                       :: !Text
-    , _rlAdvertiserId               :: !(Maybe (Textual Int64))
-    , _rlAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
-    , _rlActive                     :: !(Maybe Bool)
-    , _rlAccountId                  :: !(Maybe (Textual Int64))
-    , _rlName                       :: !(Maybe Text)
-    , _rlListSource                 :: !(Maybe RemarketingListListSource)
-    , _rlId                         :: !(Maybe (Textual Int64))
-    , _rlSubAccountId               :: !(Maybe (Textual Int64))
-    , _rlDescription                :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RemarketingList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rlListSize'
---
--- * 'rlListPopulationRule'
---
--- * 'rlLifeSpan'
---
--- * 'rlKind'
---
--- * 'rlAdvertiserId'
---
--- * 'rlAdvertiserIdDimensionValue'
---
--- * 'rlActive'
---
--- * 'rlAccountId'
---
--- * 'rlName'
---
--- * 'rlListSource'
---
--- * 'rlId'
---
--- * 'rlSubAccountId'
---
--- * 'rlDescription'
-remarketingList
-    :: RemarketingList
-remarketingList =
-    RemarketingList
-    { _rlListSize = Nothing
-    , _rlListPopulationRule = Nothing
-    , _rlLifeSpan = Nothing
-    , _rlKind = "dfareporting#remarketingList"
-    , _rlAdvertiserId = Nothing
-    , _rlAdvertiserIdDimensionValue = Nothing
-    , _rlActive = Nothing
-    , _rlAccountId = Nothing
-    , _rlName = Nothing
-    , _rlListSource = Nothing
-    , _rlId = Nothing
-    , _rlSubAccountId = Nothing
-    , _rlDescription = Nothing
-    }
-
--- | Number of users currently in the list. This is a read-only field.
-rlListSize :: Lens' RemarketingList (Maybe Int64)
-rlListSize
-  = lens _rlListSize (\ s a -> s{_rlListSize = a}) .
-      mapping _Coerce
-
--- | Rule used to populate the remarketing list with users.
-rlListPopulationRule :: Lens' RemarketingList (Maybe ListPopulationRule)
-rlListPopulationRule
-  = lens _rlListPopulationRule
-      (\ s a -> s{_rlListPopulationRule = a})
-
--- | Number of days that a user should remain in the remarketing list without
--- an impression.
-rlLifeSpan :: Lens' RemarketingList (Maybe Int64)
-rlLifeSpan
-  = lens _rlLifeSpan (\ s a -> s{_rlLifeSpan = a}) .
-      mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#remarketingList\".
-rlKind :: Lens' RemarketingList Text
-rlKind = lens _rlKind (\ s a -> s{_rlKind = a})
-
--- | Dimension value for the advertiser ID that owns this remarketing list.
--- This is a required field.
-rlAdvertiserId :: Lens' RemarketingList (Maybe Int64)
-rlAdvertiserId
-  = lens _rlAdvertiserId
-      (\ s a -> s{_rlAdvertiserId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the advertiser. This is a read-only,
--- auto-generated field.
-rlAdvertiserIdDimensionValue :: Lens' RemarketingList (Maybe DimensionValue)
-rlAdvertiserIdDimensionValue
-  = lens _rlAdvertiserIdDimensionValue
-      (\ s a -> s{_rlAdvertiserIdDimensionValue = a})
-
--- | Whether this remarketing list is active.
-rlActive :: Lens' RemarketingList (Maybe Bool)
-rlActive = lens _rlActive (\ s a -> s{_rlActive = a})
-
--- | Account ID of this remarketing list. This is a read-only, auto-generated
--- field that is only returned in GET requests.
-rlAccountId :: Lens' RemarketingList (Maybe Int64)
-rlAccountId
-  = lens _rlAccountId (\ s a -> s{_rlAccountId = a}) .
-      mapping _Coerce
-
--- | Name of the remarketing list. This is a required field. Must be no
--- greater than 128 characters long.
-rlName :: Lens' RemarketingList (Maybe Text)
-rlName = lens _rlName (\ s a -> s{_rlName = a})
-
--- | Product from which this remarketing list was originated.
-rlListSource :: Lens' RemarketingList (Maybe RemarketingListListSource)
-rlListSource
-  = lens _rlListSource (\ s a -> s{_rlListSource = a})
-
--- | Remarketing list ID. This is a read-only, auto-generated field.
-rlId :: Lens' RemarketingList (Maybe Int64)
-rlId
-  = lens _rlId (\ s a -> s{_rlId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this remarketing list. This is a read-only,
--- auto-generated field that is only returned in GET requests.
-rlSubAccountId :: Lens' RemarketingList (Maybe Int64)
-rlSubAccountId
-  = lens _rlSubAccountId
-      (\ s a -> s{_rlSubAccountId = a})
-      . mapping _Coerce
-
--- | Remarketing list description.
-rlDescription :: Lens' RemarketingList (Maybe Text)
-rlDescription
-  = lens _rlDescription
-      (\ s a -> s{_rlDescription = a})
-
-instance FromJSON RemarketingList where
-        parseJSON
-          = withObject "RemarketingList"
-              (\ o ->
-                 RemarketingList <$>
-                   (o .:? "listSize") <*> (o .:? "listPopulationRule")
-                     <*> (o .:? "lifeSpan")
-                     <*> (o .:? "kind" .!= "dfareporting#remarketingList")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "active")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "listSource")
-                     <*> (o .:? "id")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "description"))
-
-instance ToJSON RemarketingList where
-        toJSON RemarketingList{..}
-          = object
-              (catMaybes
-                 [("listSize" .=) <$> _rlListSize,
-                  ("listPopulationRule" .=) <$> _rlListPopulationRule,
-                  ("lifeSpan" .=) <$> _rlLifeSpan,
-                  Just ("kind" .= _rlKind),
-                  ("advertiserId" .=) <$> _rlAdvertiserId,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _rlAdvertiserIdDimensionValue,
-                  ("active" .=) <$> _rlActive,
-                  ("accountId" .=) <$> _rlAccountId,
-                  ("name" .=) <$> _rlName,
-                  ("listSource" .=) <$> _rlListSource,
-                  ("id" .=) <$> _rlId,
-                  ("subaccountId" .=) <$> _rlSubAccountId,
-                  ("description" .=) <$> _rlDescription])
-
--- | Represents the list of DimensionValue resources.
---
--- /See:/ 'dimensionValueList' smart constructor.
-data DimensionValueList = DimensionValueList
-    { _dvlEtag          :: !(Maybe Text)
-    , _dvlNextPageToken :: !(Maybe Text)
-    , _dvlKind          :: !Text
-    , _dvlItems         :: !(Maybe [DimensionValue])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DimensionValueList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dvlEtag'
---
--- * 'dvlNextPageToken'
---
--- * 'dvlKind'
---
--- * 'dvlItems'
-dimensionValueList
-    :: DimensionValueList
-dimensionValueList =
-    DimensionValueList
-    { _dvlEtag = Nothing
-    , _dvlNextPageToken = Nothing
-    , _dvlKind = "dfareporting#dimensionValueList"
-    , _dvlItems = Nothing
-    }
-
--- | The eTag of this response for caching purposes.
-dvlEtag :: Lens' DimensionValueList (Maybe Text)
-dvlEtag = lens _dvlEtag (\ s a -> s{_dvlEtag = a})
-
--- | Continuation token used to page through dimension values. To retrieve
--- the next page of results, set the next request\'s \"pageToken\" to the
--- value of this field. The page token is only valid for a limited amount
--- of time and should not be persisted.
-dvlNextPageToken :: Lens' DimensionValueList (Maybe Text)
-dvlNextPageToken
-  = lens _dvlNextPageToken
-      (\ s a -> s{_dvlNextPageToken = a})
-
--- | The kind of list this is, in this case dfareporting#dimensionValueList.
-dvlKind :: Lens' DimensionValueList Text
-dvlKind = lens _dvlKind (\ s a -> s{_dvlKind = a})
-
--- | The dimension values returned in this response.
-dvlItems :: Lens' DimensionValueList [DimensionValue]
-dvlItems
-  = lens _dvlItems (\ s a -> s{_dvlItems = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON DimensionValueList where
-        parseJSON
-          = withObject "DimensionValueList"
-              (\ o ->
-                 DimensionValueList <$>
-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "dfareporting#dimensionValueList")
-                     <*> (o .:? "items" .!= mempty))
-
-instance ToJSON DimensionValueList where
-        toJSON DimensionValueList{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _dvlEtag,
-                  ("nextPageToken" .=) <$> _dvlNextPageToken,
-                  Just ("kind" .= _dvlKind),
-                  ("items" .=) <$> _dvlItems])
-
--- | Represents fields that are compatible to be selected for a report of
--- type \"FlOODLIGHT\".
---
--- /See:/ 'floodlightReportCompatibleFields' smart constructor.
-data FloodlightReportCompatibleFields = FloodlightReportCompatibleFields
-    { _frcfMetrics          :: !(Maybe [Metric])
-    , _frcfKind             :: !Text
-    , _frcfDimensionFilters :: !(Maybe [Dimension])
-    , _frcfDimensions       :: !(Maybe [Dimension])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightReportCompatibleFields' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frcfMetrics'
---
--- * 'frcfKind'
---
--- * 'frcfDimensionFilters'
---
--- * 'frcfDimensions'
-floodlightReportCompatibleFields
-    :: FloodlightReportCompatibleFields
-floodlightReportCompatibleFields =
-    FloodlightReportCompatibleFields
-    { _frcfMetrics = Nothing
-    , _frcfKind = "dfareporting#floodlightReportCompatibleFields"
-    , _frcfDimensionFilters = Nothing
-    , _frcfDimensions = Nothing
-    }
-
--- | Metrics which are compatible to be selected in the \"metricNames\"
--- section of the report.
-frcfMetrics :: Lens' FloodlightReportCompatibleFields [Metric]
-frcfMetrics
-  = lens _frcfMetrics (\ s a -> s{_frcfMetrics = a}) .
-      _Default
-      . _Coerce
-
--- | The kind of resource this is, in this case
--- dfareporting#floodlightReportCompatibleFields.
-frcfKind :: Lens' FloodlightReportCompatibleFields Text
-frcfKind = lens _frcfKind (\ s a -> s{_frcfKind = a})
-
--- | Dimensions which are compatible to be selected in the
--- \"dimensionFilters\" section of the report.
-frcfDimensionFilters :: Lens' FloodlightReportCompatibleFields [Dimension]
-frcfDimensionFilters
-  = lens _frcfDimensionFilters
-      (\ s a -> s{_frcfDimensionFilters = a})
-      . _Default
-      . _Coerce
-
--- | Dimensions which are compatible to be selected in the \"dimensions\"
--- section of the report.
-frcfDimensions :: Lens' FloodlightReportCompatibleFields [Dimension]
-frcfDimensions
-  = lens _frcfDimensions
-      (\ s a -> s{_frcfDimensions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON FloodlightReportCompatibleFields
-         where
-        parseJSON
-          = withObject "FloodlightReportCompatibleFields"
-              (\ o ->
-                 FloodlightReportCompatibleFields <$>
-                   (o .:? "metrics" .!= mempty) <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#floodlightReportCompatibleFields")
-                     <*> (o .:? "dimensionFilters" .!= mempty)
-                     <*> (o .:? "dimensions" .!= mempty))
-
-instance ToJSON FloodlightReportCompatibleFields
-         where
-        toJSON FloodlightReportCompatibleFields{..}
-          = object
-              (catMaybes
-                 [("metrics" .=) <$> _frcfMetrics,
-                  Just ("kind" .= _frcfKind),
-                  ("dimensionFilters" .=) <$> _frcfDimensionFilters,
-                  ("dimensions" .=) <$> _frcfDimensions])
-
--- | Represents a grouping of related user role permissions.
---
--- /See:/ 'userRolePermissionGroup' smart constructor.
-data UserRolePermissionGroup = UserRolePermissionGroup
-    { _urpgKind :: !Text
-    , _urpgName :: !(Maybe Text)
-    , _urpgId   :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserRolePermissionGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'urpgKind'
---
--- * 'urpgName'
---
--- * 'urpgId'
-userRolePermissionGroup
-    :: UserRolePermissionGroup
-userRolePermissionGroup =
-    UserRolePermissionGroup
-    { _urpgKind = "dfareporting#userRolePermissionGroup"
-    , _urpgName = Nothing
-    , _urpgId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#userRolePermissionGroup\".
-urpgKind :: Lens' UserRolePermissionGroup Text
-urpgKind = lens _urpgKind (\ s a -> s{_urpgKind = a})
-
--- | Name of this user role permission group.
-urpgName :: Lens' UserRolePermissionGroup (Maybe Text)
-urpgName = lens _urpgName (\ s a -> s{_urpgName = a})
-
--- | ID of this user role permission.
-urpgId :: Lens' UserRolePermissionGroup (Maybe Int64)
-urpgId
-  = lens _urpgId (\ s a -> s{_urpgId = a}) .
-      mapping _Coerce
-
-instance FromJSON UserRolePermissionGroup where
-        parseJSON
-          = withObject "UserRolePermissionGroup"
-              (\ o ->
-                 UserRolePermissionGroup <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#userRolePermissionGroup")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON UserRolePermissionGroup where
-        toJSON UserRolePermissionGroup{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _urpgKind),
-                  ("name" .=) <$> _urpgName, ("id" .=) <$> _urpgId])
-
--- | Tag Settings
---
--- /See:/ 'tagSetting' smart constructor.
-data TagSetting = TagSetting
-    { _tsKeywordOption           :: !(Maybe TagSettingKeywordOption)
-    , _tsIncludeClickThroughURLs :: !(Maybe Bool)
-    , _tsIncludeClickTracking    :: !(Maybe Bool)
-    , _tsAdditionalKeyValues     :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TagSetting' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tsKeywordOption'
---
--- * 'tsIncludeClickThroughURLs'
---
--- * 'tsIncludeClickTracking'
---
--- * 'tsAdditionalKeyValues'
-tagSetting
-    :: TagSetting
-tagSetting =
-    TagSetting
-    { _tsKeywordOption = Nothing
-    , _tsIncludeClickThroughURLs = Nothing
-    , _tsIncludeClickTracking = Nothing
-    , _tsAdditionalKeyValues = Nothing
-    }
-
--- | Option specifying how keywords are embedded in ad tags. This setting can
--- be used to specify whether keyword placeholders are inserted in
--- placement tags for this site. Publishers can then add keywords to those
--- placeholders.
-tsKeywordOption :: Lens' TagSetting (Maybe TagSettingKeywordOption)
-tsKeywordOption
-  = lens _tsKeywordOption
-      (\ s a -> s{_tsKeywordOption = a})
-
--- | Whether static landing page URLs should be included in the tags. This
--- setting applies only to placements.
-tsIncludeClickThroughURLs :: Lens' TagSetting (Maybe Bool)
-tsIncludeClickThroughURLs
-  = lens _tsIncludeClickThroughURLs
-      (\ s a -> s{_tsIncludeClickThroughURLs = a})
-
--- | Whether click-tracking string should be included in the tags.
-tsIncludeClickTracking :: Lens' TagSetting (Maybe Bool)
-tsIncludeClickTracking
-  = lens _tsIncludeClickTracking
-      (\ s a -> s{_tsIncludeClickTracking = a})
-
--- | Additional key-values to be included in tags. Each key-value pair must
--- be of the form key=value, and pairs must be separated by a semicolon
--- (;). Keys and values must not contain commas. For example,
--- id=2;color=red is a valid value for this field.
-tsAdditionalKeyValues :: Lens' TagSetting (Maybe Text)
-tsAdditionalKeyValues
-  = lens _tsAdditionalKeyValues
-      (\ s a -> s{_tsAdditionalKeyValues = a})
-
-instance FromJSON TagSetting where
-        parseJSON
-          = withObject "TagSetting"
-              (\ o ->
-                 TagSetting <$>
-                   (o .:? "keywordOption") <*>
-                     (o .:? "includeClickThroughUrls")
-                     <*> (o .:? "includeClickTracking")
-                     <*> (o .:? "additionalKeyValues"))
-
-instance ToJSON TagSetting where
-        toJSON TagSetting{..}
-          = object
-              (catMaybes
-                 [("keywordOption" .=) <$> _tsKeywordOption,
-                  ("includeClickThroughUrls" .=) <$>
-                    _tsIncludeClickThroughURLs,
-                  ("includeClickTracking" .=) <$>
-                    _tsIncludeClickTracking,
-                  ("additionalKeyValues" .=) <$>
-                    _tsAdditionalKeyValues])
-
--- | The properties of the report.
---
--- /See:/ 'reportPathToConversionCriteriaReportProperties' smart constructor.
-data ReportPathToConversionCriteriaReportProperties = ReportPathToConversionCriteriaReportProperties
-    { _rptccrpMaximumInteractionGap                :: !(Maybe (Textual Int32))
-    , _rptccrpMaximumClickInteractions             :: !(Maybe (Textual Int32))
-    , _rptccrpPivotOnInteractionPath               :: !(Maybe Bool)
-    , _rptccrpMaximumImpressionInteractions        :: !(Maybe (Textual Int32))
-    , _rptccrpIncludeUnattributedIPConversions     :: !(Maybe Bool)
-    , _rptccrpImpressionsLookbackWindow            :: !(Maybe (Textual Int32))
-    , _rptccrpClicksLookbackWindow                 :: !(Maybe (Textual Int32))
-    , _rptccrpIncludeUnattributedCookieConversions :: !(Maybe Bool)
-    , _rptccrpIncludeAttributedIPConversions       :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportPathToConversionCriteriaReportProperties' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rptccrpMaximumInteractionGap'
---
--- * 'rptccrpMaximumClickInteractions'
---
--- * 'rptccrpPivotOnInteractionPath'
---
--- * 'rptccrpMaximumImpressionInteractions'
---
--- * 'rptccrpIncludeUnattributedIPConversions'
---
--- * 'rptccrpImpressionsLookbackWindow'
---
--- * 'rptccrpClicksLookbackWindow'
---
--- * 'rptccrpIncludeUnattributedCookieConversions'
---
--- * 'rptccrpIncludeAttributedIPConversions'
-reportPathToConversionCriteriaReportProperties
-    :: ReportPathToConversionCriteriaReportProperties
-reportPathToConversionCriteriaReportProperties =
-    ReportPathToConversionCriteriaReportProperties
-    { _rptccrpMaximumInteractionGap = Nothing
-    , _rptccrpMaximumClickInteractions = Nothing
-    , _rptccrpPivotOnInteractionPath = Nothing
-    , _rptccrpMaximumImpressionInteractions = Nothing
-    , _rptccrpIncludeUnattributedIPConversions = Nothing
-    , _rptccrpImpressionsLookbackWindow = Nothing
-    , _rptccrpClicksLookbackWindow = Nothing
-    , _rptccrpIncludeUnattributedCookieConversions = Nothing
-    , _rptccrpIncludeAttributedIPConversions = Nothing
-    }
-
--- | The maximum amount of time that can take place between interactions
--- (clicks or impressions) by the same user. Valid values: 1-90.
-rptccrpMaximumInteractionGap :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
-rptccrpMaximumInteractionGap
-  = lens _rptccrpMaximumInteractionGap
-      (\ s a -> s{_rptccrpMaximumInteractionGap = a})
-      . mapping _Coerce
-
--- | The maximum number of click interactions to include in the report.
--- Advertisers currently paying for E2C reports get up to 200 (100 clicks,
--- 100 impressions). If another advertiser in your network is paying for
--- E2C, you can have up to 5 total exposures per report.
-rptccrpMaximumClickInteractions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
-rptccrpMaximumClickInteractions
-  = lens _rptccrpMaximumClickInteractions
-      (\ s a -> s{_rptccrpMaximumClickInteractions = a})
-      . mapping _Coerce
-
--- | Enable pivoting on interaction path.
-rptccrpPivotOnInteractionPath :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
-rptccrpPivotOnInteractionPath
-  = lens _rptccrpPivotOnInteractionPath
-      (\ s a -> s{_rptccrpPivotOnInteractionPath = a})
-
--- | The maximum number of click interactions to include in the report.
--- Advertisers currently paying for E2C reports get up to 200 (100 clicks,
--- 100 impressions). If another advertiser in your network is paying for
--- E2C, you can have up to 5 total exposures per report.
-rptccrpMaximumImpressionInteractions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
-rptccrpMaximumImpressionInteractions
-  = lens _rptccrpMaximumImpressionInteractions
-      (\ s a ->
-         s{_rptccrpMaximumImpressionInteractions = a})
-      . mapping _Coerce
-
--- | Include conversions that have no associated cookies and no exposures.
--- It’s therefore impossible to know how the user was exposed to your ads
--- during the lookback window prior to a conversion.
-rptccrpIncludeUnattributedIPConversions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
-rptccrpIncludeUnattributedIPConversions
-  = lens _rptccrpIncludeUnattributedIPConversions
-      (\ s a ->
-         s{_rptccrpIncludeUnattributedIPConversions = a})
-
--- | DFA checks to see if an impression interaction occurred within the
--- specified period of time before a conversion. By default the value is
--- pulled from Floodlight or you can manually enter a custom value. Valid
--- values: 1-90.
-rptccrpImpressionsLookbackWindow :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
-rptccrpImpressionsLookbackWindow
-  = lens _rptccrpImpressionsLookbackWindow
-      (\ s a -> s{_rptccrpImpressionsLookbackWindow = a})
-      . mapping _Coerce
-
--- | DFA checks to see if a click interaction occurred within the specified
--- period of time before a conversion. By default the value is pulled from
--- Floodlight or you can manually enter a custom value. Valid values: 1-90.
-rptccrpClicksLookbackWindow :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
-rptccrpClicksLookbackWindow
-  = lens _rptccrpClicksLookbackWindow
-      (\ s a -> s{_rptccrpClicksLookbackWindow = a})
-      . mapping _Coerce
-
--- | Include conversions of users with a DoubleClick cookie but without an
--- exposure. That means the user did not click or see an ad from the
--- advertiser within the Floodlight group, or that the interaction happened
--- outside the lookback window.
-rptccrpIncludeUnattributedCookieConversions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
-rptccrpIncludeUnattributedCookieConversions
-  = lens _rptccrpIncludeUnattributedCookieConversions
-      (\ s a ->
-         s{_rptccrpIncludeUnattributedCookieConversions = a})
-
--- | Deprecated: has no effect.
-rptccrpIncludeAttributedIPConversions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
-rptccrpIncludeAttributedIPConversions
-  = lens _rptccrpIncludeAttributedIPConversions
-      (\ s a ->
-         s{_rptccrpIncludeAttributedIPConversions = a})
-
-instance FromJSON
-         ReportPathToConversionCriteriaReportProperties where
-        parseJSON
-          = withObject
-              "ReportPathToConversionCriteriaReportProperties"
-              (\ o ->
-                 ReportPathToConversionCriteriaReportProperties <$>
-                   (o .:? "maximumInteractionGap") <*>
-                     (o .:? "maximumClickInteractions")
-                     <*> (o .:? "pivotOnInteractionPath")
-                     <*> (o .:? "maximumImpressionInteractions")
-                     <*> (o .:? "includeUnattributedIPConversions")
-                     <*> (o .:? "impressionsLookbackWindow")
-                     <*> (o .:? "clicksLookbackWindow")
-                     <*> (o .:? "includeUnattributedCookieConversions")
-                     <*> (o .:? "includeAttributedIPConversions"))
-
-instance ToJSON
-         ReportPathToConversionCriteriaReportProperties where
-        toJSON
-          ReportPathToConversionCriteriaReportProperties{..}
-          = object
-              (catMaybes
-                 [("maximumInteractionGap" .=) <$>
-                    _rptccrpMaximumInteractionGap,
-                  ("maximumClickInteractions" .=) <$>
-                    _rptccrpMaximumClickInteractions,
-                  ("pivotOnInteractionPath" .=) <$>
-                    _rptccrpPivotOnInteractionPath,
-                  ("maximumImpressionInteractions" .=) <$>
-                    _rptccrpMaximumImpressionInteractions,
-                  ("includeUnattributedIPConversions" .=) <$>
-                    _rptccrpIncludeUnattributedIPConversions,
-                  ("impressionsLookbackWindow" .=) <$>
-                    _rptccrpImpressionsLookbackWindow,
-                  ("clicksLookbackWindow" .=) <$>
-                    _rptccrpClicksLookbackWindow,
-                  ("includeUnattributedCookieConversions" .=) <$>
-                    _rptccrpIncludeUnattributedCookieConversions,
-                  ("includeAttributedIPConversions" .=) <$>
-                    _rptccrpIncludeAttributedIPConversions])
-
--- | User Role Permission List Response
---
--- /See:/ 'userRolePermissionsListResponse' smart constructor.
-data UserRolePermissionsListResponse = UserRolePermissionsListResponse
-    { _urplrKind                :: !Text
-    , _urplrUserRolePermissions :: !(Maybe [UserRolePermission])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserRolePermissionsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'urplrKind'
---
--- * 'urplrUserRolePermissions'
-userRolePermissionsListResponse
-    :: UserRolePermissionsListResponse
-userRolePermissionsListResponse =
-    UserRolePermissionsListResponse
-    { _urplrKind = "dfareporting#userRolePermissionsListResponse"
-    , _urplrUserRolePermissions = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#userRolePermissionsListResponse\".
-urplrKind :: Lens' UserRolePermissionsListResponse Text
-urplrKind
-  = lens _urplrKind (\ s a -> s{_urplrKind = a})
-
--- | User role permission collection.
-urplrUserRolePermissions :: Lens' UserRolePermissionsListResponse [UserRolePermission]
-urplrUserRolePermissions
-  = lens _urplrUserRolePermissions
-      (\ s a -> s{_urplrUserRolePermissions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON UserRolePermissionsListResponse
-         where
-        parseJSON
-          = withObject "UserRolePermissionsListResponse"
-              (\ o ->
-                 UserRolePermissionsListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#userRolePermissionsListResponse")
-                     <*> (o .:? "userRolePermissions" .!= mempty))
-
-instance ToJSON UserRolePermissionsListResponse where
-        toJSON UserRolePermissionsListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _urplrKind),
-                  ("userRolePermissions" .=) <$>
-                    _urplrUserRolePermissions])
-
--- | Placement Group List Response
---
--- /See:/ 'placementGroupsListResponse' smart constructor.
-data PlacementGroupsListResponse = PlacementGroupsListResponse
-    { _pglrNextPageToken   :: !(Maybe Text)
-    , _pglrKind            :: !Text
-    , _pglrPlacementGroups :: !(Maybe [PlacementGroup])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PlacementGroupsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pglrNextPageToken'
---
--- * 'pglrKind'
---
--- * 'pglrPlacementGroups'
-placementGroupsListResponse
-    :: PlacementGroupsListResponse
-placementGroupsListResponse =
-    PlacementGroupsListResponse
-    { _pglrNextPageToken = Nothing
-    , _pglrKind = "dfareporting#placementGroupsListResponse"
-    , _pglrPlacementGroups = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-pglrNextPageToken :: Lens' PlacementGroupsListResponse (Maybe Text)
-pglrNextPageToken
-  = lens _pglrNextPageToken
-      (\ s a -> s{_pglrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#placementGroupsListResponse\".
-pglrKind :: Lens' PlacementGroupsListResponse Text
-pglrKind = lens _pglrKind (\ s a -> s{_pglrKind = a})
-
--- | Placement group collection.
-pglrPlacementGroups :: Lens' PlacementGroupsListResponse [PlacementGroup]
-pglrPlacementGroups
-  = lens _pglrPlacementGroups
-      (\ s a -> s{_pglrPlacementGroups = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON PlacementGroupsListResponse where
-        parseJSON
-          = withObject "PlacementGroupsListResponse"
-              (\ o ->
-                 PlacementGroupsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#placementGroupsListResponse")
-                     <*> (o .:? "placementGroups" .!= mempty))
-
-instance ToJSON PlacementGroupsListResponse where
-        toJSON PlacementGroupsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _pglrNextPageToken,
-                  Just ("kind" .= _pglrKind),
-                  ("placementGroups" .=) <$> _pglrPlacementGroups])
-
--- | Contains information about a mobile carrier that can be targeted by ads.
---
--- /See:/ 'mobileCarrier' smart constructor.
-data MobileCarrier = MobileCarrier
-    { _mcKind          :: !Text
-    , _mcName          :: !(Maybe Text)
-    , _mcCountryCode   :: !(Maybe Text)
-    , _mcId            :: !(Maybe (Textual Int64))
-    , _mcCountryDartId :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'MobileCarrier' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mcKind'
---
--- * 'mcName'
---
--- * 'mcCountryCode'
---
--- * 'mcId'
---
--- * 'mcCountryDartId'
-mobileCarrier
-    :: MobileCarrier
-mobileCarrier =
-    MobileCarrier
-    { _mcKind = "dfareporting#mobileCarrier"
-    , _mcName = Nothing
-    , _mcCountryCode = Nothing
-    , _mcId = Nothing
-    , _mcCountryDartId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#mobileCarrier\".
-mcKind :: Lens' MobileCarrier Text
-mcKind = lens _mcKind (\ s a -> s{_mcKind = a})
-
--- | Name of this mobile carrier.
-mcName :: Lens' MobileCarrier (Maybe Text)
-mcName = lens _mcName (\ s a -> s{_mcName = a})
-
--- | Country code of the country to which this mobile carrier belongs.
-mcCountryCode :: Lens' MobileCarrier (Maybe Text)
-mcCountryCode
-  = lens _mcCountryCode
-      (\ s a -> s{_mcCountryCode = a})
-
--- | ID of this mobile carrier.
-mcId :: Lens' MobileCarrier (Maybe Int64)
-mcId
-  = lens _mcId (\ s a -> s{_mcId = a}) .
-      mapping _Coerce
-
--- | DART ID of the country to which this mobile carrier belongs.
-mcCountryDartId :: Lens' MobileCarrier (Maybe Int64)
-mcCountryDartId
-  = lens _mcCountryDartId
-      (\ s a -> s{_mcCountryDartId = a})
-      . mapping _Coerce
-
-instance FromJSON MobileCarrier where
-        parseJSON
-          = withObject "MobileCarrier"
-              (\ o ->
-                 MobileCarrier <$>
-                   (o .:? "kind" .!= "dfareporting#mobileCarrier") <*>
-                     (o .:? "name")
-                     <*> (o .:? "countryCode")
-                     <*> (o .:? "id")
-                     <*> (o .:? "countryDartId"))
-
-instance ToJSON MobileCarrier where
-        toJSON MobileCarrier{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _mcKind), ("name" .=) <$> _mcName,
-                  ("countryCode" .=) <$> _mcCountryCode,
-                  ("id" .=) <$> _mcId,
-                  ("countryDartId" .=) <$> _mcCountryDartId])
-
--- | Contains information about where a user\'s browser is taken after the
--- user clicks an ad.
---
--- /See:/ 'landingPage' smart constructor.
-data LandingPage = LandingPage
-    { _lpKind    :: !Text
-    , _lpDefault :: !(Maybe Bool)
-    , _lpURL     :: !(Maybe Text)
-    , _lpName    :: !(Maybe Text)
-    , _lpId      :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'LandingPage' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lpKind'
---
--- * 'lpDefault'
---
--- * 'lpURL'
---
--- * 'lpName'
---
--- * 'lpId'
-landingPage
-    :: LandingPage
-landingPage =
-    LandingPage
-    { _lpKind = "dfareporting#landingPage"
-    , _lpDefault = Nothing
-    , _lpURL = Nothing
-    , _lpName = Nothing
-    , _lpId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#landingPage\".
-lpKind :: Lens' LandingPage Text
-lpKind = lens _lpKind (\ s a -> s{_lpKind = a})
-
--- | Whether or not this landing page will be assigned to any ads or
--- creatives that do not have a landing page assigned explicitly. Only one
--- default landing page is allowed per campaign.
-lpDefault :: Lens' LandingPage (Maybe Bool)
-lpDefault
-  = lens _lpDefault (\ s a -> s{_lpDefault = a})
-
--- | URL of this landing page. This is a required field.
-lpURL :: Lens' LandingPage (Maybe Text)
-lpURL = lens _lpURL (\ s a -> s{_lpURL = a})
-
--- | Name of this landing page. This is a required field. It must be less
--- than 256 characters long, and must be unique among landing pages of the
--- same campaign.
-lpName :: Lens' LandingPage (Maybe Text)
-lpName = lens _lpName (\ s a -> s{_lpName = a})
-
--- | ID of this landing page. This is a read-only, auto-generated field.
-lpId :: Lens' LandingPage (Maybe Int64)
-lpId
-  = lens _lpId (\ s a -> s{_lpId = a}) .
-      mapping _Coerce
-
-instance FromJSON LandingPage where
-        parseJSON
-          = withObject "LandingPage"
-              (\ o ->
-                 LandingPage <$>
-                   (o .:? "kind" .!= "dfareporting#landingPage") <*>
-                     (o .:? "default")
-                     <*> (o .:? "url")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON LandingPage where
-        toJSON LandingPage{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _lpKind),
-                  ("default" .=) <$> _lpDefault, ("url" .=) <$> _lpURL,
-                  ("name" .=) <$> _lpName, ("id" .=) <$> _lpId])
-
--- | Connection Type List Response
---
--- /See:/ 'connectionTypesListResponse' smart constructor.
-data ConnectionTypesListResponse = ConnectionTypesListResponse
-    { _ctlrKind            :: !Text
-    , _ctlrConnectionTypes :: !(Maybe [ConnectionType])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ConnectionTypesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ctlrKind'
---
--- * 'ctlrConnectionTypes'
-connectionTypesListResponse
-    :: ConnectionTypesListResponse
-connectionTypesListResponse =
-    ConnectionTypesListResponse
-    { _ctlrKind = "dfareporting#connectionTypesListResponse"
-    , _ctlrConnectionTypes = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#connectionTypesListResponse\".
-ctlrKind :: Lens' ConnectionTypesListResponse Text
-ctlrKind = lens _ctlrKind (\ s a -> s{_ctlrKind = a})
-
--- | Collection of connection types such as broadband and mobile.
-ctlrConnectionTypes :: Lens' ConnectionTypesListResponse [ConnectionType]
-ctlrConnectionTypes
-  = lens _ctlrConnectionTypes
-      (\ s a -> s{_ctlrConnectionTypes = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ConnectionTypesListResponse where
-        parseJSON
-          = withObject "ConnectionTypesListResponse"
-              (\ o ->
-                 ConnectionTypesListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#connectionTypesListResponse")
-                     <*> (o .:? "connectionTypes" .!= mempty))
-
-instance ToJSON ConnectionTypesListResponse where
-        toJSON ConnectionTypesListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _ctlrKind),
-                  ("connectionTypes" .=) <$> _ctlrConnectionTypes])
-
--- | Order List Response
---
--- /See:/ 'ordersListResponse' smart constructor.
-data OrdersListResponse = OrdersListResponse
-    { _olrNextPageToken :: !(Maybe Text)
-    , _olrKind          :: !Text
-    , _olrOrders        :: !(Maybe [Order])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OrdersListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'olrNextPageToken'
---
--- * 'olrKind'
---
--- * 'olrOrders'
-ordersListResponse
-    :: OrdersListResponse
-ordersListResponse =
-    OrdersListResponse
-    { _olrNextPageToken = Nothing
-    , _olrKind = "dfareporting#ordersListResponse"
-    , _olrOrders = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-olrNextPageToken :: Lens' OrdersListResponse (Maybe Text)
-olrNextPageToken
-  = lens _olrNextPageToken
-      (\ s a -> s{_olrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#ordersListResponse\".
-olrKind :: Lens' OrdersListResponse Text
-olrKind = lens _olrKind (\ s a -> s{_olrKind = a})
-
--- | Order collection.
-olrOrders :: Lens' OrdersListResponse [Order]
-olrOrders
-  = lens _olrOrders (\ s a -> s{_olrOrders = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON OrdersListResponse where
-        parseJSON
-          = withObject "OrdersListResponse"
-              (\ o ->
-                 OrdersListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "dfareporting#ordersListResponse")
-                     <*> (o .:? "orders" .!= mempty))
-
-instance ToJSON OrdersListResponse where
-        toJSON OrdersListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _olrNextPageToken,
-                  Just ("kind" .= _olrKind),
-                  ("orders" .=) <$> _olrOrders])
-
--- | Represents the list of reports.
---
--- /See:/ 'reportList' smart constructor.
-data ReportList = ReportList
-    { _repEtag          :: !(Maybe Text)
-    , _repNextPageToken :: !(Maybe Text)
-    , _repKind          :: !Text
-    , _repItems         :: !(Maybe [Report])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'repEtag'
---
--- * 'repNextPageToken'
---
--- * 'repKind'
---
--- * 'repItems'
-reportList
-    :: ReportList
-reportList =
-    ReportList
-    { _repEtag = Nothing
-    , _repNextPageToken = Nothing
-    , _repKind = "dfareporting#reportList"
-    , _repItems = Nothing
-    }
-
--- | The eTag of this response for caching purposes.
-repEtag :: Lens' ReportList (Maybe Text)
-repEtag = lens _repEtag (\ s a -> s{_repEtag = a})
-
--- | Continuation token used to page through reports. To retrieve the next
--- page of results, set the next request\'s \"pageToken\" to the value of
--- this field. The page token is only valid for a limited amount of time
--- and should not be persisted.
-repNextPageToken :: Lens' ReportList (Maybe Text)
-repNextPageToken
-  = lens _repNextPageToken
-      (\ s a -> s{_repNextPageToken = a})
-
--- | The kind of list this is, in this case dfareporting#reportList.
-repKind :: Lens' ReportList Text
-repKind = lens _repKind (\ s a -> s{_repKind = a})
-
--- | The reports returned in this response.
-repItems :: Lens' ReportList [Report]
-repItems
-  = lens _repItems (\ s a -> s{_repItems = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON ReportList where
-        parseJSON
-          = withObject "ReportList"
-              (\ o ->
-                 ReportList <$>
-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "dfareporting#reportList")
-                     <*> (o .:? "items" .!= mempty))
-
-instance ToJSON ReportList where
-        toJSON ReportList{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _repEtag,
-                  ("nextPageToken" .=) <$> _repNextPageToken,
-                  Just ("kind" .= _repKind),
-                  ("items" .=) <$> _repItems])
-
--- | Contains properties of a creative group.
---
--- /See:/ 'creativeGroup' smart constructor.
-data CreativeGroup = CreativeGroup
-    { _cgKind                       :: !Text
-    , _cgAdvertiserId               :: !(Maybe (Textual Int64))
-    , _cgAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
-    , _cgGroupNumber                :: !(Maybe (Textual Int32))
-    , _cgAccountId                  :: !(Maybe (Textual Int64))
-    , _cgName                       :: !(Maybe Text)
-    , _cgId                         :: !(Maybe (Textual Int64))
-    , _cgSubAccountId               :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cgKind'
---
--- * 'cgAdvertiserId'
---
--- * 'cgAdvertiserIdDimensionValue'
---
--- * 'cgGroupNumber'
---
--- * 'cgAccountId'
---
--- * 'cgName'
---
--- * 'cgId'
---
--- * 'cgSubAccountId'
-creativeGroup
-    :: CreativeGroup
-creativeGroup =
-    CreativeGroup
-    { _cgKind = "dfareporting#creativeGroup"
-    , _cgAdvertiserId = Nothing
-    , _cgAdvertiserIdDimensionValue = Nothing
-    , _cgGroupNumber = Nothing
-    , _cgAccountId = Nothing
-    , _cgName = Nothing
-    , _cgId = Nothing
-    , _cgSubAccountId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#creativeGroup\".
-cgKind :: Lens' CreativeGroup Text
-cgKind = lens _cgKind (\ s a -> s{_cgKind = a})
-
--- | Advertiser ID of this creative group. This is a required field on
--- insertion.
-cgAdvertiserId :: Lens' CreativeGroup (Maybe Int64)
-cgAdvertiserId
-  = lens _cgAdvertiserId
-      (\ s a -> s{_cgAdvertiserId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the advertiser. This is a read-only,
--- auto-generated field.
-cgAdvertiserIdDimensionValue :: Lens' CreativeGroup (Maybe DimensionValue)
-cgAdvertiserIdDimensionValue
-  = lens _cgAdvertiserIdDimensionValue
-      (\ s a -> s{_cgAdvertiserIdDimensionValue = a})
-
--- | Subgroup of the creative group. Assign your creative groups to one of
--- the following subgroups in order to filter or manage them more easily.
--- This field is required on insertion and is read-only after insertion.
--- Acceptable values are: - 1 - 2
-cgGroupNumber :: Lens' CreativeGroup (Maybe Int32)
-cgGroupNumber
-  = lens _cgGroupNumber
-      (\ s a -> s{_cgGroupNumber = a})
-      . mapping _Coerce
-
--- | Account ID of this creative group. This is a read-only field that can be
--- left blank.
-cgAccountId :: Lens' CreativeGroup (Maybe Int64)
-cgAccountId
-  = lens _cgAccountId (\ s a -> s{_cgAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this creative group. This is a required field and must be less
--- than 256 characters long and unique among creative groups of the same
--- advertiser.
-cgName :: Lens' CreativeGroup (Maybe Text)
-cgName = lens _cgName (\ s a -> s{_cgName = a})
-
--- | ID of this creative group. This is a read-only, auto-generated field.
-cgId :: Lens' CreativeGroup (Maybe Int64)
-cgId
-  = lens _cgId (\ s a -> s{_cgId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this creative group. This is a read-only field that can
--- be left blank.
-cgSubAccountId :: Lens' CreativeGroup (Maybe Int64)
-cgSubAccountId
-  = lens _cgSubAccountId
-      (\ s a -> s{_cgSubAccountId = a})
-      . mapping _Coerce
-
-instance FromJSON CreativeGroup where
-        parseJSON
-          = withObject "CreativeGroup"
-              (\ o ->
-                 CreativeGroup <$>
-                   (o .:? "kind" .!= "dfareporting#creativeGroup") <*>
-                     (o .:? "advertiserId")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "groupNumber")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "subaccountId"))
-
-instance ToJSON CreativeGroup where
-        toJSON CreativeGroup{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _cgKind),
-                  ("advertiserId" .=) <$> _cgAdvertiserId,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _cgAdvertiserIdDimensionValue,
-                  ("groupNumber" .=) <$> _cgGroupNumber,
-                  ("accountId" .=) <$> _cgAccountId,
-                  ("name" .=) <$> _cgName, ("id" .=) <$> _cgId,
-                  ("subaccountId" .=) <$> _cgSubAccountId])
-
--- | Identifies a creative which has been associated with a given campaign.
---
--- /See:/ 'campaignCreativeAssociation' smart constructor.
-data CampaignCreativeAssociation = CampaignCreativeAssociation
-    { _ccaKind       :: !Text
-    , _ccaCreativeId :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CampaignCreativeAssociation' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccaKind'
---
--- * 'ccaCreativeId'
-campaignCreativeAssociation
-    :: CampaignCreativeAssociation
-campaignCreativeAssociation =
-    CampaignCreativeAssociation
-    { _ccaKind = "dfareporting#campaignCreativeAssociation"
-    , _ccaCreativeId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#campaignCreativeAssociation\".
-ccaKind :: Lens' CampaignCreativeAssociation Text
-ccaKind = lens _ccaKind (\ s a -> s{_ccaKind = a})
-
--- | ID of the creative associated with the campaign. This is a required
--- field.
-ccaCreativeId :: Lens' CampaignCreativeAssociation (Maybe Int64)
-ccaCreativeId
-  = lens _ccaCreativeId
-      (\ s a -> s{_ccaCreativeId = a})
-      . mapping _Coerce
-
-instance FromJSON CampaignCreativeAssociation where
-        parseJSON
-          = withObject "CampaignCreativeAssociation"
-              (\ o ->
-                 CampaignCreativeAssociation <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#campaignCreativeAssociation")
-                     <*> (o .:? "creativeId"))
-
-instance ToJSON CampaignCreativeAssociation where
-        toJSON CampaignCreativeAssociation{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _ccaKind),
-                  ("creativeId" .=) <$> _ccaCreativeId])
-
--- | Lookback configuration settings.
---
--- /See:/ 'lookbackConfiguration' smart constructor.
-data LookbackConfiguration = LookbackConfiguration
-    { _lcClickDuration                    :: !(Maybe (Textual Int32))
-    , _lcPostImpressionActivitiesDuration :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'LookbackConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lcClickDuration'
---
--- * 'lcPostImpressionActivitiesDuration'
-lookbackConfiguration
-    :: LookbackConfiguration
-lookbackConfiguration =
-    LookbackConfiguration
-    { _lcClickDuration = Nothing
-    , _lcPostImpressionActivitiesDuration = Nothing
-    }
-
--- | Lookback window, in days, from the last time a given user clicked on one
--- of your ads. If you enter 0, clicks will not be considered as triggering
--- events for floodlight tracking. If you leave this field blank, the
--- default value for your account will be used.
-lcClickDuration :: Lens' LookbackConfiguration (Maybe Int32)
-lcClickDuration
-  = lens _lcClickDuration
-      (\ s a -> s{_lcClickDuration = a})
-      . mapping _Coerce
-
--- | Lookback window, in days, from the last time a given user viewed one of
--- your ads. If you enter 0, impressions will not be considered as
--- triggering events for floodlight tracking. If you leave this field
--- blank, the default value for your account will be used.
-lcPostImpressionActivitiesDuration :: Lens' LookbackConfiguration (Maybe Int32)
-lcPostImpressionActivitiesDuration
-  = lens _lcPostImpressionActivitiesDuration
-      (\ s a -> s{_lcPostImpressionActivitiesDuration = a})
-      . mapping _Coerce
-
-instance FromJSON LookbackConfiguration where
-        parseJSON
-          = withObject "LookbackConfiguration"
-              (\ o ->
-                 LookbackConfiguration <$>
-                   (o .:? "clickDuration") <*>
-                     (o .:? "postImpressionActivitiesDuration"))
-
-instance ToJSON LookbackConfiguration where
-        toJSON LookbackConfiguration{..}
-          = object
-              (catMaybes
-                 [("clickDuration" .=) <$> _lcClickDuration,
-                  ("postImpressionActivitiesDuration" .=) <$>
-                    _lcPostImpressionActivitiesDuration])
-
--- | Publisher Dynamic Tag
---
--- /See:/ 'floodlightActivityPublisherDynamicTag' smart constructor.
-data FloodlightActivityPublisherDynamicTag = FloodlightActivityPublisherDynamicTag
-    { _fapdtClickThrough         :: !(Maybe Bool)
-    , _fapdtSiteIdDimensionValue :: !(Maybe DimensionValue)
-    , _fapdtDynamicTag           :: !(Maybe FloodlightActivityDynamicTag)
-    , _fapdtDirectorySiteId      :: !(Maybe (Textual Int64))
-    , _fapdtSiteId               :: !(Maybe (Textual Int64))
-    , _fapdtViewThrough          :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightActivityPublisherDynamicTag' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fapdtClickThrough'
---
--- * 'fapdtSiteIdDimensionValue'
---
--- * 'fapdtDynamicTag'
---
--- * 'fapdtDirectorySiteId'
---
--- * 'fapdtSiteId'
---
--- * 'fapdtViewThrough'
-floodlightActivityPublisherDynamicTag
-    :: FloodlightActivityPublisherDynamicTag
-floodlightActivityPublisherDynamicTag =
-    FloodlightActivityPublisherDynamicTag
-    { _fapdtClickThrough = Nothing
-    , _fapdtSiteIdDimensionValue = Nothing
-    , _fapdtDynamicTag = Nothing
-    , _fapdtDirectorySiteId = Nothing
-    , _fapdtSiteId = Nothing
-    , _fapdtViewThrough = Nothing
-    }
-
--- | Whether this tag is applicable only for click-throughs.
-fapdtClickThrough :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Bool)
-fapdtClickThrough
-  = lens _fapdtClickThrough
-      (\ s a -> s{_fapdtClickThrough = a})
-
--- | Dimension value for the ID of the site. This is a read-only,
--- auto-generated field.
-fapdtSiteIdDimensionValue :: Lens' FloodlightActivityPublisherDynamicTag (Maybe DimensionValue)
-fapdtSiteIdDimensionValue
-  = lens _fapdtSiteIdDimensionValue
-      (\ s a -> s{_fapdtSiteIdDimensionValue = a})
-
--- | Dynamic floodlight tag.
-fapdtDynamicTag :: Lens' FloodlightActivityPublisherDynamicTag (Maybe FloodlightActivityDynamicTag)
-fapdtDynamicTag
-  = lens _fapdtDynamicTag
-      (\ s a -> s{_fapdtDynamicTag = a})
-
--- | Directory site ID of this dynamic tag. This is a write-only field that
--- can be used as an alternative to the siteId field. When this resource is
--- retrieved, only the siteId field will be populated.
-fapdtDirectorySiteId :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Int64)
-fapdtDirectorySiteId
-  = lens _fapdtDirectorySiteId
-      (\ s a -> s{_fapdtDirectorySiteId = a})
-      . mapping _Coerce
-
--- | Site ID of this dynamic tag.
-fapdtSiteId :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Int64)
-fapdtSiteId
-  = lens _fapdtSiteId (\ s a -> s{_fapdtSiteId = a}) .
-      mapping _Coerce
-
--- | Whether this tag is applicable only for view-throughs.
-fapdtViewThrough :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Bool)
-fapdtViewThrough
-  = lens _fapdtViewThrough
-      (\ s a -> s{_fapdtViewThrough = a})
-
-instance FromJSON
-         FloodlightActivityPublisherDynamicTag where
-        parseJSON
-          = withObject "FloodlightActivityPublisherDynamicTag"
-              (\ o ->
-                 FloodlightActivityPublisherDynamicTag <$>
-                   (o .:? "clickThrough") <*>
-                     (o .:? "siteIdDimensionValue")
-                     <*> (o .:? "dynamicTag")
-                     <*> (o .:? "directorySiteId")
-                     <*> (o .:? "siteId")
-                     <*> (o .:? "viewThrough"))
-
-instance ToJSON FloodlightActivityPublisherDynamicTag
-         where
-        toJSON FloodlightActivityPublisherDynamicTag{..}
-          = object
-              (catMaybes
-                 [("clickThrough" .=) <$> _fapdtClickThrough,
-                  ("siteIdDimensionValue" .=) <$>
-                    _fapdtSiteIdDimensionValue,
-                  ("dynamicTag" .=) <$> _fapdtDynamicTag,
-                  ("directorySiteId" .=) <$> _fapdtDirectorySiteId,
-                  ("siteId" .=) <$> _fapdtSiteId,
-                  ("viewThrough" .=) <$> _fapdtViewThrough])
-
--- | Gets a summary of active ads in an account.
---
--- /See:/ 'accountActiveAdSummary' smart constructor.
-data AccountActiveAdSummary = AccountActiveAdSummary
-    { _aaasAvailableAds       :: !(Maybe (Textual Int64))
-    , _aaasKind               :: !Text
-    , _aaasAccountId          :: !(Maybe (Textual Int64))
-    , _aaasActiveAds          :: !(Maybe (Textual Int64))
-    , _aaasActiveAdsLimitTier :: !(Maybe AccountActiveAdSummaryActiveAdsLimitTier)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountActiveAdSummary' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aaasAvailableAds'
---
--- * 'aaasKind'
---
--- * 'aaasAccountId'
---
--- * 'aaasActiveAds'
---
--- * 'aaasActiveAdsLimitTier'
-accountActiveAdSummary
-    :: AccountActiveAdSummary
-accountActiveAdSummary =
-    AccountActiveAdSummary
-    { _aaasAvailableAds = Nothing
-    , _aaasKind = "dfareporting#accountActiveAdSummary"
-    , _aaasAccountId = Nothing
-    , _aaasActiveAds = Nothing
-    , _aaasActiveAdsLimitTier = Nothing
-    }
-
--- | Ads that can be activated for the account.
-aaasAvailableAds :: Lens' AccountActiveAdSummary (Maybe Int64)
-aaasAvailableAds
-  = lens _aaasAvailableAds
-      (\ s a -> s{_aaasAvailableAds = a})
-      . mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#accountActiveAdSummary\".
-aaasKind :: Lens' AccountActiveAdSummary Text
-aaasKind = lens _aaasKind (\ s a -> s{_aaasKind = a})
-
--- | ID of the account.
-aaasAccountId :: Lens' AccountActiveAdSummary (Maybe Int64)
-aaasAccountId
-  = lens _aaasAccountId
-      (\ s a -> s{_aaasAccountId = a})
-      . mapping _Coerce
-
--- | Ads that have been activated for the account
-aaasActiveAds :: Lens' AccountActiveAdSummary (Maybe Int64)
-aaasActiveAds
-  = lens _aaasActiveAds
-      (\ s a -> s{_aaasActiveAds = a})
-      . mapping _Coerce
-
--- | Maximum number of active ads allowed for the account.
-aaasActiveAdsLimitTier :: Lens' AccountActiveAdSummary (Maybe AccountActiveAdSummaryActiveAdsLimitTier)
-aaasActiveAdsLimitTier
-  = lens _aaasActiveAdsLimitTier
-      (\ s a -> s{_aaasActiveAdsLimitTier = a})
-
-instance FromJSON AccountActiveAdSummary where
-        parseJSON
-          = withObject "AccountActiveAdSummary"
-              (\ o ->
-                 AccountActiveAdSummary <$>
-                   (o .:? "availableAds") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#accountActiveAdSummary")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "activeAds")
-                     <*> (o .:? "activeAdsLimitTier"))
-
-instance ToJSON AccountActiveAdSummary where
-        toJSON AccountActiveAdSummary{..}
-          = object
-              (catMaybes
-                 [("availableAds" .=) <$> _aaasAvailableAds,
-                  Just ("kind" .= _aaasKind),
-                  ("accountId" .=) <$> _aaasAccountId,
-                  ("activeAds" .=) <$> _aaasActiveAds,
-                  ("activeAdsLimitTier" .=) <$>
-                    _aaasActiveAdsLimitTier])
-
--- | Offset Position.
---
--- /See:/ 'offSetPosition' smart constructor.
-data OffSetPosition = OffSetPosition
-    { _ospLeft :: !(Maybe (Textual Int32))
-    , _ospTop  :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OffSetPosition' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ospLeft'
---
--- * 'ospTop'
-offSetPosition
-    :: OffSetPosition
-offSetPosition =
-    OffSetPosition
-    { _ospLeft = Nothing
-    , _ospTop = Nothing
-    }
-
--- | Offset distance from left side of an asset or a window.
-ospLeft :: Lens' OffSetPosition (Maybe Int32)
-ospLeft
-  = lens _ospLeft (\ s a -> s{_ospLeft = a}) .
-      mapping _Coerce
-
--- | Offset distance from top side of an asset or a window.
-ospTop :: Lens' OffSetPosition (Maybe Int32)
-ospTop
-  = lens _ospTop (\ s a -> s{_ospTop = a}) .
-      mapping _Coerce
-
-instance FromJSON OffSetPosition where
-        parseJSON
-          = withObject "OffSetPosition"
-              (\ o ->
-                 OffSetPosition <$> (o .:? "left") <*> (o .:? "top"))
-
-instance ToJSON OffSetPosition where
-        toJSON OffSetPosition{..}
-          = object
-              (catMaybes
-                 [("left" .=) <$> _ospLeft, ("top" .=) <$> _ospTop])
-
--- | Represents a metric.
---
--- /See:/ 'metric' smart constructor.
-data Metric = Metric
-    { _mKind :: !Text
-    , _mName :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Metric' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mKind'
---
--- * 'mName'
-metric
-    :: Metric
-metric =
-    Metric
-    { _mKind = "dfareporting#metric"
-    , _mName = Nothing
-    }
-
--- | The kind of resource this is, in this case dfareporting#metric.
-mKind :: Lens' Metric Text
-mKind = lens _mKind (\ s a -> s{_mKind = a})
-
--- | The metric name, e.g. dfa:impressions
-mName :: Lens' Metric (Maybe Text)
-mName = lens _mName (\ s a -> s{_mName = a})
-
-instance FromJSON Metric where
-        parseJSON
-          = withObject "Metric"
-              (\ o ->
-                 Metric <$>
-                   (o .:? "kind" .!= "dfareporting#metric") <*>
-                     (o .:? "name"))
-
-instance ToJSON Metric where
-        toJSON Metric{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _mKind), ("name" .=) <$> _mName])
-
--- | Contains properties of a remarketing list\'s sharing information.
--- Sharing allows other accounts or advertisers to target to your
--- remarketing lists. This resource can be used to manage remarketing list
--- sharing to other accounts and advertisers.
---
--- /See:/ 'remarketingListShare' smart constructor.
-data RemarketingListShare = RemarketingListShare
-    { _rlsSharedAdvertiserIds :: !(Maybe [Textual Int64])
-    , _rlsKind                :: !Text
-    , _rlsRemarketingListId   :: !(Maybe (Textual Int64))
-    , _rlsSharedAccountIds    :: !(Maybe [Textual Int64])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RemarketingListShare' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rlsSharedAdvertiserIds'
---
--- * 'rlsKind'
---
--- * 'rlsRemarketingListId'
---
--- * 'rlsSharedAccountIds'
-remarketingListShare
-    :: RemarketingListShare
-remarketingListShare =
-    RemarketingListShare
-    { _rlsSharedAdvertiserIds = Nothing
-    , _rlsKind = "dfareporting#remarketingListShare"
-    , _rlsRemarketingListId = Nothing
-    , _rlsSharedAccountIds = Nothing
-    }
-
--- | Advertisers that the remarketing list is shared with.
-rlsSharedAdvertiserIds :: Lens' RemarketingListShare [Int64]
-rlsSharedAdvertiserIds
-  = lens _rlsSharedAdvertiserIds
-      (\ s a -> s{_rlsSharedAdvertiserIds = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#remarketingListShare\".
-rlsKind :: Lens' RemarketingListShare Text
-rlsKind = lens _rlsKind (\ s a -> s{_rlsKind = a})
-
--- | Remarketing list ID. This is a read-only, auto-generated field.
-rlsRemarketingListId :: Lens' RemarketingListShare (Maybe Int64)
-rlsRemarketingListId
-  = lens _rlsRemarketingListId
-      (\ s a -> s{_rlsRemarketingListId = a})
-      . mapping _Coerce
-
--- | Accounts that the remarketing list is shared with.
-rlsSharedAccountIds :: Lens' RemarketingListShare [Int64]
-rlsSharedAccountIds
-  = lens _rlsSharedAccountIds
-      (\ s a -> s{_rlsSharedAccountIds = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON RemarketingListShare where
-        parseJSON
-          = withObject "RemarketingListShare"
-              (\ o ->
-                 RemarketingListShare <$>
-                   (o .:? "sharedAdvertiserIds" .!= mempty) <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#remarketingListShare")
-                     <*> (o .:? "remarketingListId")
-                     <*> (o .:? "sharedAccountIds" .!= mempty))
-
-instance ToJSON RemarketingListShare where
-        toJSON RemarketingListShare{..}
-          = object
-              (catMaybes
-                 [("sharedAdvertiserIds" .=) <$>
-                    _rlsSharedAdvertiserIds,
-                  Just ("kind" .= _rlsKind),
-                  ("remarketingListId" .=) <$> _rlsRemarketingListId,
-                  ("sharedAccountIds" .=) <$> _rlsSharedAccountIds])
-
--- | Event Tag List Response
---
--- /See:/ 'eventTagsListResponse' smart constructor.
-data EventTagsListResponse = EventTagsListResponse
-    { _etlrKind      :: !Text
-    , _etlrEventTags :: !(Maybe [EventTag])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EventTagsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'etlrKind'
---
--- * 'etlrEventTags'
-eventTagsListResponse
-    :: EventTagsListResponse
-eventTagsListResponse =
-    EventTagsListResponse
-    { _etlrKind = "dfareporting#eventTagsListResponse"
-    , _etlrEventTags = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#eventTagsListResponse\".
-etlrKind :: Lens' EventTagsListResponse Text
-etlrKind = lens _etlrKind (\ s a -> s{_etlrKind = a})
-
--- | Event tag collection.
-etlrEventTags :: Lens' EventTagsListResponse [EventTag]
-etlrEventTags
-  = lens _etlrEventTags
-      (\ s a -> s{_etlrEventTags = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON EventTagsListResponse where
-        parseJSON
-          = withObject "EventTagsListResponse"
-              (\ o ->
-                 EventTagsListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#eventTagsListResponse")
-                     <*> (o .:? "eventTags" .!= mempty))
-
-instance ToJSON EventTagsListResponse where
-        toJSON EventTagsListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _etlrKind),
-                  ("eventTags" .=) <$> _etlrEventTags])
-
--- | User Role List Response
---
--- /See:/ 'userRolesListResponse' smart constructor.
-data UserRolesListResponse = UserRolesListResponse
-    { _urlrNextPageToken :: !(Maybe Text)
-    , _urlrKind          :: !Text
-    , _urlrUserRoles     :: !(Maybe [UserRole])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserRolesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'urlrNextPageToken'
---
--- * 'urlrKind'
---
--- * 'urlrUserRoles'
-userRolesListResponse
-    :: UserRolesListResponse
-userRolesListResponse =
-    UserRolesListResponse
-    { _urlrNextPageToken = Nothing
-    , _urlrKind = "dfareporting#userRolesListResponse"
-    , _urlrUserRoles = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-urlrNextPageToken :: Lens' UserRolesListResponse (Maybe Text)
-urlrNextPageToken
-  = lens _urlrNextPageToken
-      (\ s a -> s{_urlrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#userRolesListResponse\".
-urlrKind :: Lens' UserRolesListResponse Text
-urlrKind = lens _urlrKind (\ s a -> s{_urlrKind = a})
-
--- | User role collection.
-urlrUserRoles :: Lens' UserRolesListResponse [UserRole]
-urlrUserRoles
-  = lens _urlrUserRoles
-      (\ s a -> s{_urlrUserRoles = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON UserRolesListResponse where
-        parseJSON
-          = withObject "UserRolesListResponse"
-              (\ o ->
-                 UserRolesListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#userRolesListResponse")
-                     <*> (o .:? "userRoles" .!= mempty))
-
-instance ToJSON UserRolesListResponse where
-        toJSON UserRolesListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _urlrNextPageToken,
-                  Just ("kind" .= _urlrKind),
-                  ("userRoles" .=) <$> _urlrUserRoles])
-
--- | Represents a response to the queryCompatibleFields method.
---
--- /See:/ 'compatibleFields' smart constructor.
-data CompatibleFields = CompatibleFields
-    { _cfReachReportCompatibleFields               :: !(Maybe ReachReportCompatibleFields)
-    , _cfCrossDimensionReachReportCompatibleFields :: !(Maybe CrossDimensionReachReportCompatibleFields)
-    , _cfKind                                      :: !Text
-    , _cfFloodlightReportCompatibleFields          :: !(Maybe FloodlightReportCompatibleFields)
-    , _cfReportCompatibleFields                    :: !(Maybe ReportCompatibleFields)
-    , _cfPathToConversionReportCompatibleFields    :: !(Maybe PathToConversionReportCompatibleFields)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CompatibleFields' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cfReachReportCompatibleFields'
---
--- * 'cfCrossDimensionReachReportCompatibleFields'
---
--- * 'cfKind'
---
--- * 'cfFloodlightReportCompatibleFields'
---
--- * 'cfReportCompatibleFields'
---
--- * 'cfPathToConversionReportCompatibleFields'
-compatibleFields
-    :: CompatibleFields
-compatibleFields =
-    CompatibleFields
-    { _cfReachReportCompatibleFields = Nothing
-    , _cfCrossDimensionReachReportCompatibleFields = Nothing
-    , _cfKind = "dfareporting#compatibleFields"
-    , _cfFloodlightReportCompatibleFields = Nothing
-    , _cfReportCompatibleFields = Nothing
-    , _cfPathToConversionReportCompatibleFields = Nothing
-    }
-
--- | Contains items that are compatible to be selected for a report of type
--- \"REACH\".
-cfReachReportCompatibleFields :: Lens' CompatibleFields (Maybe ReachReportCompatibleFields)
-cfReachReportCompatibleFields
-  = lens _cfReachReportCompatibleFields
-      (\ s a -> s{_cfReachReportCompatibleFields = a})
-
--- | Contains items that are compatible to be selected for a report of type
--- \"CROSS_DIMENSION_REACH\".
-cfCrossDimensionReachReportCompatibleFields :: Lens' CompatibleFields (Maybe CrossDimensionReachReportCompatibleFields)
-cfCrossDimensionReachReportCompatibleFields
-  = lens _cfCrossDimensionReachReportCompatibleFields
-      (\ s a ->
-         s{_cfCrossDimensionReachReportCompatibleFields = a})
-
--- | The kind of resource this is, in this case
--- dfareporting#compatibleFields.
-cfKind :: Lens' CompatibleFields Text
-cfKind = lens _cfKind (\ s a -> s{_cfKind = a})
-
--- | Contains items that are compatible to be selected for a report of type
--- \"FLOODLIGHT\".
-cfFloodlightReportCompatibleFields :: Lens' CompatibleFields (Maybe FloodlightReportCompatibleFields)
-cfFloodlightReportCompatibleFields
-  = lens _cfFloodlightReportCompatibleFields
-      (\ s a -> s{_cfFloodlightReportCompatibleFields = a})
-
--- | Contains items that are compatible to be selected for a report of type
--- \"STANDARD\".
-cfReportCompatibleFields :: Lens' CompatibleFields (Maybe ReportCompatibleFields)
-cfReportCompatibleFields
-  = lens _cfReportCompatibleFields
-      (\ s a -> s{_cfReportCompatibleFields = a})
-
--- | Contains items that are compatible to be selected for a report of type
--- \"PATH_TO_CONVERSION\".
-cfPathToConversionReportCompatibleFields :: Lens' CompatibleFields (Maybe PathToConversionReportCompatibleFields)
-cfPathToConversionReportCompatibleFields
-  = lens _cfPathToConversionReportCompatibleFields
-      (\ s a ->
-         s{_cfPathToConversionReportCompatibleFields = a})
-
-instance FromJSON CompatibleFields where
-        parseJSON
-          = withObject "CompatibleFields"
-              (\ o ->
-                 CompatibleFields <$>
-                   (o .:? "reachReportCompatibleFields") <*>
-                     (o .:? "crossDimensionReachReportCompatibleFields")
-                     <*>
-                     (o .:? "kind" .!= "dfareporting#compatibleFields")
-                     <*> (o .:? "floodlightReportCompatibleFields")
-                     <*> (o .:? "reportCompatibleFields")
-                     <*> (o .:? "pathToConversionReportCompatibleFields"))
-
-instance ToJSON CompatibleFields where
-        toJSON CompatibleFields{..}
-          = object
-              (catMaybes
-                 [("reachReportCompatibleFields" .=) <$>
-                    _cfReachReportCompatibleFields,
-                  ("crossDimensionReachReportCompatibleFields" .=) <$>
-                    _cfCrossDimensionReachReportCompatibleFields,
-                  Just ("kind" .= _cfKind),
-                  ("floodlightReportCompatibleFields" .=) <$>
-                    _cfFloodlightReportCompatibleFields,
-                  ("reportCompatibleFields" .=) <$>
-                    _cfReportCompatibleFields,
-                  ("pathToConversionReportCompatibleFields" .=) <$>
-                    _cfPathToConversionReportCompatibleFields])
-
--- | Audience Segment.
---
--- /See:/ 'audienceSegment' smart constructor.
-data AudienceSegment = AudienceSegment
-    { _asName       :: !(Maybe Text)
-    , _asId         :: !(Maybe (Textual Int64))
-    , _asAllocation :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AudienceSegment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'asName'
---
--- * 'asId'
---
--- * 'asAllocation'
-audienceSegment
-    :: AudienceSegment
-audienceSegment =
-    AudienceSegment
-    { _asName = Nothing
-    , _asId = Nothing
-    , _asAllocation = Nothing
-    }
-
--- | Name of this audience segment. This is a required field and must be less
--- than 65 characters long.
-asName :: Lens' AudienceSegment (Maybe Text)
-asName = lens _asName (\ s a -> s{_asName = a})
-
--- | ID of this audience segment. This is a read-only, auto-generated field.
-asId :: Lens' AudienceSegment (Maybe Int64)
-asId
-  = lens _asId (\ s a -> s{_asId = a}) .
-      mapping _Coerce
-
--- | Weight allocated to this segment. Must be between 1 and 1000. The weight
--- assigned will be understood in proportion to the weights assigned to
--- other segments in the same segment group.
-asAllocation :: Lens' AudienceSegment (Maybe Int32)
-asAllocation
-  = lens _asAllocation (\ s a -> s{_asAllocation = a})
-      . mapping _Coerce
-
-instance FromJSON AudienceSegment where
-        parseJSON
-          = withObject "AudienceSegment"
-              (\ o ->
-                 AudienceSegment <$>
-                   (o .:? "name") <*> (o .:? "id") <*>
-                     (o .:? "allocation"))
-
-instance ToJSON AudienceSegment where
-        toJSON AudienceSegment{..}
-          = object
-              (catMaybes
-                 [("name" .=) <$> _asName, ("id" .=) <$> _asId,
-                  ("allocation" .=) <$> _asAllocation])
-
--- | DFP Settings
---
--- /See:/ 'dfpSettings' smart constructor.
-data DfpSettings = DfpSettings
-    { _dsPubPaidPlacementAccepted      :: !(Maybe Bool)
-    , _dsDfpNetworkName                :: !(Maybe Text)
-    , _dsPublisherPortalOnly           :: !(Maybe Bool)
-    , _dsProgrammaticPlacementAccepted :: !(Maybe Bool)
-    , _dsDfpNetworkCode                :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DfpSettings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dsPubPaidPlacementAccepted'
---
--- * 'dsDfpNetworkName'
---
--- * 'dsPublisherPortalOnly'
---
--- * 'dsProgrammaticPlacementAccepted'
---
--- * 'dsDfpNetworkCode'
-dfpSettings
-    :: DfpSettings
-dfpSettings =
-    DfpSettings
-    { _dsPubPaidPlacementAccepted = Nothing
-    , _dsDfpNetworkName = Nothing
-    , _dsPublisherPortalOnly = Nothing
-    , _dsProgrammaticPlacementAccepted = Nothing
-    , _dsDfpNetworkCode = Nothing
-    }
-
--- | Whether this directory site accepts publisher-paid tags.
-dsPubPaidPlacementAccepted :: Lens' DfpSettings (Maybe Bool)
-dsPubPaidPlacementAccepted
-  = lens _dsPubPaidPlacementAccepted
-      (\ s a -> s{_dsPubPaidPlacementAccepted = a})
-
--- | DFP network name for this directory site.
-dsDfpNetworkName :: Lens' DfpSettings (Maybe Text)
-dsDfpNetworkName
-  = lens _dsDfpNetworkName
-      (\ s a -> s{_dsDfpNetworkName = a})
-
--- | Whether this directory site is available only via DoubleClick Publisher
--- Portal.
-dsPublisherPortalOnly :: Lens' DfpSettings (Maybe Bool)
-dsPublisherPortalOnly
-  = lens _dsPublisherPortalOnly
-      (\ s a -> s{_dsPublisherPortalOnly = a})
-
--- | Whether this directory site accepts programmatic placements.
-dsProgrammaticPlacementAccepted :: Lens' DfpSettings (Maybe Bool)
-dsProgrammaticPlacementAccepted
-  = lens _dsProgrammaticPlacementAccepted
-      (\ s a -> s{_dsProgrammaticPlacementAccepted = a})
-
--- | DFP network code for this directory site.
-dsDfpNetworkCode :: Lens' DfpSettings (Maybe Text)
-dsDfpNetworkCode
-  = lens _dsDfpNetworkCode
-      (\ s a -> s{_dsDfpNetworkCode = a})
-
-instance FromJSON DfpSettings where
-        parseJSON
-          = withObject "DfpSettings"
-              (\ o ->
-                 DfpSettings <$>
-                   (o .:? "pubPaidPlacementAccepted") <*>
-                     (o .:? "dfp_network_name")
-                     <*> (o .:? "publisherPortalOnly")
-                     <*> (o .:? "programmaticPlacementAccepted")
-                     <*> (o .:? "dfp_network_code"))
-
-instance ToJSON DfpSettings where
-        toJSON DfpSettings{..}
-          = object
-              (catMaybes
-                 [("pubPaidPlacementAccepted" .=) <$>
-                    _dsPubPaidPlacementAccepted,
-                  ("dfp_network_name" .=) <$> _dsDfpNetworkName,
-                  ("publisherPortalOnly" .=) <$>
-                    _dsPublisherPortalOnly,
-                  ("programmaticPlacementAccepted" .=) <$>
-                    _dsProgrammaticPlacementAccepted,
-                  ("dfp_network_code" .=) <$> _dsDfpNetworkCode])
-
--- | Represents fields that are compatible to be selected for a report of
--- type \"PATH_TO_CONVERSION\".
---
--- /See:/ 'pathToConversionReportCompatibleFields' smart constructor.
-data PathToConversionReportCompatibleFields = PathToConversionReportCompatibleFields
-    { _ptcrcfMetrics                   :: !(Maybe [Metric])
-    , _ptcrcfKind                      :: !Text
-    , _ptcrcfConversionDimensions      :: !(Maybe [Dimension])
-    , _ptcrcfCustomFloodlightVariables :: !(Maybe [Dimension])
-    , _ptcrcfPerInteractionDimensions  :: !(Maybe [Dimension])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PathToConversionReportCompatibleFields' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ptcrcfMetrics'
---
--- * 'ptcrcfKind'
---
--- * 'ptcrcfConversionDimensions'
---
--- * 'ptcrcfCustomFloodlightVariables'
---
--- * 'ptcrcfPerInteractionDimensions'
-pathToConversionReportCompatibleFields
-    :: PathToConversionReportCompatibleFields
-pathToConversionReportCompatibleFields =
-    PathToConversionReportCompatibleFields
-    { _ptcrcfMetrics = Nothing
-    , _ptcrcfKind = "dfareporting#pathToConversionReportCompatibleFields"
-    , _ptcrcfConversionDimensions = Nothing
-    , _ptcrcfCustomFloodlightVariables = Nothing
-    , _ptcrcfPerInteractionDimensions = Nothing
-    }
-
--- | Metrics which are compatible to be selected in the \"metricNames\"
--- section of the report.
-ptcrcfMetrics :: Lens' PathToConversionReportCompatibleFields [Metric]
-ptcrcfMetrics
-  = lens _ptcrcfMetrics
-      (\ s a -> s{_ptcrcfMetrics = a})
-      . _Default
-      . _Coerce
-
--- | The kind of resource this is, in this case
--- dfareporting#pathToConversionReportCompatibleFields.
-ptcrcfKind :: Lens' PathToConversionReportCompatibleFields Text
-ptcrcfKind
-  = lens _ptcrcfKind (\ s a -> s{_ptcrcfKind = a})
-
--- | Conversion dimensions which are compatible to be selected in the
--- \"conversionDimensions\" section of the report.
-ptcrcfConversionDimensions :: Lens' PathToConversionReportCompatibleFields [Dimension]
-ptcrcfConversionDimensions
-  = lens _ptcrcfConversionDimensions
-      (\ s a -> s{_ptcrcfConversionDimensions = a})
-      . _Default
-      . _Coerce
-
--- | Custom floodlight variables which are compatible to be selected in the
--- \"customFloodlightVariables\" section of the report.
-ptcrcfCustomFloodlightVariables :: Lens' PathToConversionReportCompatibleFields [Dimension]
-ptcrcfCustomFloodlightVariables
-  = lens _ptcrcfCustomFloodlightVariables
-      (\ s a -> s{_ptcrcfCustomFloodlightVariables = a})
-      . _Default
-      . _Coerce
-
--- | Per-interaction dimensions which are compatible to be selected in the
--- \"perInteractionDimensions\" section of the report.
-ptcrcfPerInteractionDimensions :: Lens' PathToConversionReportCompatibleFields [Dimension]
-ptcrcfPerInteractionDimensions
-  = lens _ptcrcfPerInteractionDimensions
-      (\ s a -> s{_ptcrcfPerInteractionDimensions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-         PathToConversionReportCompatibleFields where
-        parseJSON
-          = withObject "PathToConversionReportCompatibleFields"
-              (\ o ->
-                 PathToConversionReportCompatibleFields <$>
-                   (o .:? "metrics" .!= mempty) <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#pathToConversionReportCompatibleFields")
-                     <*> (o .:? "conversionDimensions" .!= mempty)
-                     <*> (o .:? "customFloodlightVariables" .!= mempty)
-                     <*> (o .:? "perInteractionDimensions" .!= mempty))
-
-instance ToJSON
-         PathToConversionReportCompatibleFields where
-        toJSON PathToConversionReportCompatibleFields{..}
-          = object
-              (catMaybes
-                 [("metrics" .=) <$> _ptcrcfMetrics,
-                  Just ("kind" .= _ptcrcfKind),
-                  ("conversionDimensions" .=) <$>
-                    _ptcrcfConversionDimensions,
-                  ("customFloodlightVariables" .=) <$>
-                    _ptcrcfCustomFloodlightVariables,
-                  ("perInteractionDimensions" .=) <$>
-                    _ptcrcfPerInteractionDimensions])
-
--- | Contains information about a city that can be targeted by ads.
---
--- /See:/ 'city' smart constructor.
-data City = City
-    { _ccMetroCode     :: !(Maybe Text)
-    , _ccRegionCode    :: !(Maybe Text)
-    , _ccKind          :: !Text
-    , _ccRegionDartId  :: !(Maybe (Textual Int64))
-    , _ccMetroDmaId    :: !(Maybe (Textual Int64))
-    , _ccName          :: !(Maybe Text)
-    , _ccCountryCode   :: !(Maybe Text)
-    , _ccCountryDartId :: !(Maybe (Textual Int64))
-    , _ccDartId        :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'City' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccMetroCode'
---
--- * 'ccRegionCode'
---
--- * 'ccKind'
---
--- * 'ccRegionDartId'
---
--- * 'ccMetroDmaId'
---
--- * 'ccName'
---
--- * 'ccCountryCode'
---
--- * 'ccCountryDartId'
---
--- * 'ccDartId'
-city
-    :: City
-city =
-    City
-    { _ccMetroCode = Nothing
-    , _ccRegionCode = Nothing
-    , _ccKind = "dfareporting#city"
-    , _ccRegionDartId = Nothing
-    , _ccMetroDmaId = Nothing
-    , _ccName = Nothing
-    , _ccCountryCode = Nothing
-    , _ccCountryDartId = Nothing
-    , _ccDartId = Nothing
-    }
-
--- | Metro region code of the metro region (DMA) to which this city belongs.
-ccMetroCode :: Lens' City (Maybe Text)
-ccMetroCode
-  = lens _ccMetroCode (\ s a -> s{_ccMetroCode = a})
-
--- | Region code of the region to which this city belongs.
-ccRegionCode :: Lens' City (Maybe Text)
-ccRegionCode
-  = lens _ccRegionCode (\ s a -> s{_ccRegionCode = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#city\".
-ccKind :: Lens' City Text
-ccKind = lens _ccKind (\ s a -> s{_ccKind = a})
-
--- | DART ID of the region to which this city belongs.
-ccRegionDartId :: Lens' City (Maybe Int64)
-ccRegionDartId
-  = lens _ccRegionDartId
-      (\ s a -> s{_ccRegionDartId = a})
-      . mapping _Coerce
-
--- | ID of the metro region (DMA) to which this city belongs.
-ccMetroDmaId :: Lens' City (Maybe Int64)
-ccMetroDmaId
-  = lens _ccMetroDmaId (\ s a -> s{_ccMetroDmaId = a})
-      . mapping _Coerce
-
--- | Name of this city.
-ccName :: Lens' City (Maybe Text)
-ccName = lens _ccName (\ s a -> s{_ccName = a})
-
--- | Country code of the country to which this city belongs.
-ccCountryCode :: Lens' City (Maybe Text)
-ccCountryCode
-  = lens _ccCountryCode
-      (\ s a -> s{_ccCountryCode = a})
-
--- | DART ID of the country to which this city belongs.
-ccCountryDartId :: Lens' City (Maybe Int64)
-ccCountryDartId
-  = lens _ccCountryDartId
-      (\ s a -> s{_ccCountryDartId = a})
-      . mapping _Coerce
-
--- | DART ID of this city. This is the ID used for targeting and generating
--- reports.
-ccDartId :: Lens' City (Maybe Int64)
-ccDartId
-  = lens _ccDartId (\ s a -> s{_ccDartId = a}) .
-      mapping _Coerce
-
-instance FromJSON City where
-        parseJSON
-          = withObject "City"
-              (\ o ->
-                 City <$>
-                   (o .:? "metroCode") <*> (o .:? "regionCode") <*>
-                     (o .:? "kind" .!= "dfareporting#city")
-                     <*> (o .:? "regionDartId")
-                     <*> (o .:? "metroDmaId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "countryCode")
-                     <*> (o .:? "countryDartId")
-                     <*> (o .:? "dartId"))
-
-instance ToJSON City where
-        toJSON City{..}
-          = object
-              (catMaybes
-                 [("metroCode" .=) <$> _ccMetroCode,
-                  ("regionCode" .=) <$> _ccRegionCode,
-                  Just ("kind" .= _ccKind),
-                  ("regionDartId" .=) <$> _ccRegionDartId,
-                  ("metroDmaId" .=) <$> _ccMetroDmaId,
-                  ("name" .=) <$> _ccName,
-                  ("countryCode" .=) <$> _ccCountryCode,
-                  ("countryDartId" .=) <$> _ccCountryDartId,
-                  ("dartId" .=) <$> _ccDartId])
-
--- | Contains information about a platform type that can be targeted by ads.
---
--- /See:/ 'platformType' smart constructor.
-data PlatformType = PlatformType
-    { _ptKind :: !Text
-    , _ptName :: !(Maybe Text)
-    , _ptId   :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PlatformType' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ptKind'
---
--- * 'ptName'
---
--- * 'ptId'
-platformType
-    :: PlatformType
-platformType =
-    PlatformType
-    { _ptKind = "dfareporting#platformType"
-    , _ptName = Nothing
-    , _ptId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#platformType\".
-ptKind :: Lens' PlatformType Text
-ptKind = lens _ptKind (\ s a -> s{_ptKind = a})
-
--- | Name of this platform type.
-ptName :: Lens' PlatformType (Maybe Text)
-ptName = lens _ptName (\ s a -> s{_ptName = a})
-
--- | ID of this platform type.
-ptId :: Lens' PlatformType (Maybe Int64)
-ptId
-  = lens _ptId (\ s a -> s{_ptId = a}) .
-      mapping _Coerce
-
-instance FromJSON PlatformType where
-        parseJSON
-          = withObject "PlatformType"
-              (\ o ->
-                 PlatformType <$>
-                   (o .:? "kind" .!= "dfareporting#platformType") <*>
-                     (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON PlatformType where
-        toJSON PlatformType{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _ptKind), ("name" .=) <$> _ptName,
-                  ("id" .=) <$> _ptId])
-
--- | Key Value Targeting Expression.
---
--- /See:/ 'keyValueTargetingExpression' smart constructor.
-newtype KeyValueTargetingExpression = KeyValueTargetingExpression
-    { _kvteExpression :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'KeyValueTargetingExpression' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'kvteExpression'
-keyValueTargetingExpression
-    :: KeyValueTargetingExpression
-keyValueTargetingExpression =
-    KeyValueTargetingExpression
-    { _kvteExpression = Nothing
-    }
-
--- | Keyword expression being targeted by the ad.
-kvteExpression :: Lens' KeyValueTargetingExpression (Maybe Text)
-kvteExpression
-  = lens _kvteExpression
-      (\ s a -> s{_kvteExpression = a})
-
-instance FromJSON KeyValueTargetingExpression where
-        parseJSON
-          = withObject "KeyValueTargetingExpression"
-              (\ o ->
-                 KeyValueTargetingExpression <$> (o .:? "expression"))
-
-instance ToJSON KeyValueTargetingExpression where
-        toJSON KeyValueTargetingExpression{..}
-          = object
-              (catMaybes [("expression" .=) <$> _kvteExpression])
-
--- | Companion Click-through override.
---
--- /See:/ 'companionClickThroughOverride' smart constructor.
-data CompanionClickThroughOverride = CompanionClickThroughOverride
-    { _cctoCreativeId      :: !(Maybe (Textual Int64))
-    , _cctoClickThroughURL :: !(Maybe ClickThroughURL)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CompanionClickThroughOverride' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cctoCreativeId'
---
--- * 'cctoClickThroughURL'
-companionClickThroughOverride
-    :: CompanionClickThroughOverride
-companionClickThroughOverride =
-    CompanionClickThroughOverride
-    { _cctoCreativeId = Nothing
-    , _cctoClickThroughURL = Nothing
-    }
-
--- | ID of the creative for this companion click-through override.
-cctoCreativeId :: Lens' CompanionClickThroughOverride (Maybe Int64)
-cctoCreativeId
-  = lens _cctoCreativeId
-      (\ s a -> s{_cctoCreativeId = a})
-      . mapping _Coerce
-
--- | Click-through URL of this companion click-through override.
-cctoClickThroughURL :: Lens' CompanionClickThroughOverride (Maybe ClickThroughURL)
-cctoClickThroughURL
-  = lens _cctoClickThroughURL
-      (\ s a -> s{_cctoClickThroughURL = a})
-
-instance FromJSON CompanionClickThroughOverride where
-        parseJSON
-          = withObject "CompanionClickThroughOverride"
-              (\ o ->
-                 CompanionClickThroughOverride <$>
-                   (o .:? "creativeId") <*> (o .:? "clickThroughUrl"))
-
-instance ToJSON CompanionClickThroughOverride where
-        toJSON CompanionClickThroughOverride{..}
-          = object
-              (catMaybes
-                 [("creativeId" .=) <$> _cctoCreativeId,
-                  ("clickThroughUrl" .=) <$> _cctoClickThroughURL])
-
--- | Advertiser List Response
---
--- /See:/ 'advertisersListResponse' smart constructor.
-data AdvertisersListResponse = AdvertisersListResponse
-    { _advNextPageToken :: !(Maybe Text)
-    , _advKind          :: !Text
-    , _advAdvertisers   :: !(Maybe [Advertiser])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AdvertisersListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'advNextPageToken'
---
--- * 'advKind'
---
--- * 'advAdvertisers'
-advertisersListResponse
-    :: AdvertisersListResponse
-advertisersListResponse =
-    AdvertisersListResponse
-    { _advNextPageToken = Nothing
-    , _advKind = "dfareporting#advertisersListResponse"
-    , _advAdvertisers = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-advNextPageToken :: Lens' AdvertisersListResponse (Maybe Text)
-advNextPageToken
-  = lens _advNextPageToken
-      (\ s a -> s{_advNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#advertisersListResponse\".
-advKind :: Lens' AdvertisersListResponse Text
-advKind = lens _advKind (\ s a -> s{_advKind = a})
-
--- | Advertiser collection.
-advAdvertisers :: Lens' AdvertisersListResponse [Advertiser]
-advAdvertisers
-  = lens _advAdvertisers
-      (\ s a -> s{_advAdvertisers = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON AdvertisersListResponse where
-        parseJSON
-          = withObject "AdvertisersListResponse"
-              (\ o ->
-                 AdvertisersListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#advertisersListResponse")
-                     <*> (o .:? "advertisers" .!= mempty))
-
-instance ToJSON AdvertisersListResponse where
-        toJSON AdvertisersListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _advNextPageToken,
-                  Just ("kind" .= _advKind),
-                  ("advertisers" .=) <$> _advAdvertisers])
-
--- | Country List Response
---
--- /See:/ 'countriesListResponse' smart constructor.
-data CountriesListResponse = CountriesListResponse
-    { _couKind      :: !Text
-    , _couCountries :: !(Maybe [Country])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CountriesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'couKind'
---
--- * 'couCountries'
-countriesListResponse
-    :: CountriesListResponse
-countriesListResponse =
-    CountriesListResponse
-    { _couKind = "dfareporting#countriesListResponse"
-    , _couCountries = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#countriesListResponse\".
-couKind :: Lens' CountriesListResponse Text
-couKind = lens _couKind (\ s a -> s{_couKind = a})
-
--- | Country collection.
-couCountries :: Lens' CountriesListResponse [Country]
-couCountries
-  = lens _couCountries (\ s a -> s{_couCountries = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON CountriesListResponse where
-        parseJSON
-          = withObject "CountriesListResponse"
-              (\ o ->
-                 CountriesListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#countriesListResponse")
-                     <*> (o .:? "countries" .!= mempty))
-
-instance ToJSON CountriesListResponse where
-        toJSON CountriesListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _couKind),
-                  ("countries" .=) <$> _couCountries])
-
--- | Account Permission Group List Response
---
--- /See:/ 'accountPermissionGroupsListResponse' smart constructor.
-data AccountPermissionGroupsListResponse = AccountPermissionGroupsListResponse
-    { _apglrKind                    :: !Text
-    , _apglrAccountPermissionGroups :: !(Maybe [AccountPermissionGroup])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountPermissionGroupsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'apglrKind'
---
--- * 'apglrAccountPermissionGroups'
-accountPermissionGroupsListResponse
-    :: AccountPermissionGroupsListResponse
-accountPermissionGroupsListResponse =
-    AccountPermissionGroupsListResponse
-    { _apglrKind = "dfareporting#accountPermissionGroupsListResponse"
-    , _apglrAccountPermissionGroups = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#accountPermissionGroupsListResponse\".
-apglrKind :: Lens' AccountPermissionGroupsListResponse Text
-apglrKind
-  = lens _apglrKind (\ s a -> s{_apglrKind = a})
-
--- | Account permission group collection.
-apglrAccountPermissionGroups :: Lens' AccountPermissionGroupsListResponse [AccountPermissionGroup]
-apglrAccountPermissionGroups
-  = lens _apglrAccountPermissionGroups
-      (\ s a -> s{_apglrAccountPermissionGroups = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON AccountPermissionGroupsListResponse
-         where
-        parseJSON
-          = withObject "AccountPermissionGroupsListResponse"
-              (\ o ->
-                 AccountPermissionGroupsListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#accountPermissionGroupsListResponse")
-                     <*> (o .:? "accountPermissionGroups" .!= mempty))
-
-instance ToJSON AccountPermissionGroupsListResponse
-         where
-        toJSON AccountPermissionGroupsListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _apglrKind),
-                  ("accountPermissionGroups" .=) <$>
-                    _apglrAccountPermissionGroups])
-
--- | Popup Window Properties.
---
--- /See:/ 'popupWindowProperties' smart constructor.
-data PopupWindowProperties = PopupWindowProperties
-    { _pwpOffSet         :: !(Maybe OffSetPosition)
-    , _pwpDimension      :: !(Maybe Size)
-    , _pwpShowStatusBar  :: !(Maybe Bool)
-    , _pwpShowMenuBar    :: !(Maybe Bool)
-    , _pwpPositionType   :: !(Maybe PopupWindowPropertiesPositionType)
-    , _pwpShowAddressBar :: !(Maybe Bool)
-    , _pwpShowScrollBar  :: !(Maybe Bool)
-    , _pwpShowToolBar    :: !(Maybe Bool)
-    , _pwpTitle          :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PopupWindowProperties' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pwpOffSet'
---
--- * 'pwpDimension'
---
--- * 'pwpShowStatusBar'
---
--- * 'pwpShowMenuBar'
---
--- * 'pwpPositionType'
---
--- * 'pwpShowAddressBar'
---
--- * 'pwpShowScrollBar'
---
--- * 'pwpShowToolBar'
---
--- * 'pwpTitle'
-popupWindowProperties
-    :: PopupWindowProperties
-popupWindowProperties =
-    PopupWindowProperties
-    { _pwpOffSet = Nothing
-    , _pwpDimension = Nothing
-    , _pwpShowStatusBar = Nothing
-    , _pwpShowMenuBar = Nothing
-    , _pwpPositionType = Nothing
-    , _pwpShowAddressBar = Nothing
-    , _pwpShowScrollBar = Nothing
-    , _pwpShowToolBar = Nothing
-    , _pwpTitle = Nothing
-    }
-
--- | Upper-left corner coordinates of the popup window. Applicable if
--- positionType is COORDINATES.
-pwpOffSet :: Lens' PopupWindowProperties (Maybe OffSetPosition)
-pwpOffSet
-  = lens _pwpOffSet (\ s a -> s{_pwpOffSet = a})
-
--- | Popup dimension for a creative. This is a read-only field. Applicable to
--- the following creative types: all RICH_MEDIA and all VPAID
-pwpDimension :: Lens' PopupWindowProperties (Maybe Size)
-pwpDimension
-  = lens _pwpDimension (\ s a -> s{_pwpDimension = a})
-
--- | Whether to display the browser status bar.
-pwpShowStatusBar :: Lens' PopupWindowProperties (Maybe Bool)
-pwpShowStatusBar
-  = lens _pwpShowStatusBar
-      (\ s a -> s{_pwpShowStatusBar = a})
-
--- | Whether to display the browser menu bar.
-pwpShowMenuBar :: Lens' PopupWindowProperties (Maybe Bool)
-pwpShowMenuBar
-  = lens _pwpShowMenuBar
-      (\ s a -> s{_pwpShowMenuBar = a})
-
--- | Popup window position either centered or at specific coordinate.
-pwpPositionType :: Lens' PopupWindowProperties (Maybe PopupWindowPropertiesPositionType)
-pwpPositionType
-  = lens _pwpPositionType
-      (\ s a -> s{_pwpPositionType = a})
-
--- | Whether to display the browser address bar.
-pwpShowAddressBar :: Lens' PopupWindowProperties (Maybe Bool)
-pwpShowAddressBar
-  = lens _pwpShowAddressBar
-      (\ s a -> s{_pwpShowAddressBar = a})
-
--- | Whether to display the browser scroll bar.
-pwpShowScrollBar :: Lens' PopupWindowProperties (Maybe Bool)
-pwpShowScrollBar
-  = lens _pwpShowScrollBar
-      (\ s a -> s{_pwpShowScrollBar = a})
-
--- | Whether to display the browser tool bar.
-pwpShowToolBar :: Lens' PopupWindowProperties (Maybe Bool)
-pwpShowToolBar
-  = lens _pwpShowToolBar
-      (\ s a -> s{_pwpShowToolBar = a})
-
--- | Title of popup window.
-pwpTitle :: Lens' PopupWindowProperties (Maybe Text)
-pwpTitle = lens _pwpTitle (\ s a -> s{_pwpTitle = a})
-
-instance FromJSON PopupWindowProperties where
-        parseJSON
-          = withObject "PopupWindowProperties"
-              (\ o ->
-                 PopupWindowProperties <$>
-                   (o .:? "offset") <*> (o .:? "dimension") <*>
-                     (o .:? "showStatusBar")
-                     <*> (o .:? "showMenuBar")
-                     <*> (o .:? "positionType")
-                     <*> (o .:? "showAddressBar")
-                     <*> (o .:? "showScrollBar")
-                     <*> (o .:? "showToolBar")
-                     <*> (o .:? "title"))
-
-instance ToJSON PopupWindowProperties where
-        toJSON PopupWindowProperties{..}
-          = object
-              (catMaybes
-                 [("offset" .=) <$> _pwpOffSet,
-                  ("dimension" .=) <$> _pwpDimension,
-                  ("showStatusBar" .=) <$> _pwpShowStatusBar,
-                  ("showMenuBar" .=) <$> _pwpShowMenuBar,
-                  ("positionType" .=) <$> _pwpPositionType,
-                  ("showAddressBar" .=) <$> _pwpShowAddressBar,
-                  ("showScrollBar" .=) <$> _pwpShowScrollBar,
-                  ("showToolBar" .=) <$> _pwpShowToolBar,
-                  ("title" .=) <$> _pwpTitle])
-
--- | Event tag override information.
---
--- /See:/ 'eventTagOverride' smart constructor.
-data EventTagOverride = EventTagOverride
-    { _etoEnabled :: !(Maybe Bool)
-    , _etoId      :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EventTagOverride' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'etoEnabled'
---
--- * 'etoId'
-eventTagOverride
-    :: EventTagOverride
-eventTagOverride =
-    EventTagOverride
-    { _etoEnabled = Nothing
-    , _etoId = Nothing
-    }
-
--- | Whether this override is enabled.
-etoEnabled :: Lens' EventTagOverride (Maybe Bool)
-etoEnabled
-  = lens _etoEnabled (\ s a -> s{_etoEnabled = a})
-
--- | ID of this event tag override. This is a read-only, auto-generated
--- field.
-etoId :: Lens' EventTagOverride (Maybe Int64)
-etoId
-  = lens _etoId (\ s a -> s{_etoId = a}) .
-      mapping _Coerce
-
-instance FromJSON EventTagOverride where
-        parseJSON
-          = withObject "EventTagOverride"
-              (\ o ->
-                 EventTagOverride <$>
-                   (o .:? "enabled") <*> (o .:? "id"))
-
-instance ToJSON EventTagOverride where
-        toJSON EventTagOverride{..}
-          = object
-              (catMaybes
-                 [("enabled" .=) <$> _etoEnabled,
-                  ("id" .=) <$> _etoId])
-
--- | Contains information about a particular version of an operating system
--- that can be targeted by ads.
---
--- /See:/ 'operatingSystemVersion' smart constructor.
-data OperatingSystemVersion = OperatingSystemVersion
-    { _osvMinorVersion    :: !(Maybe Text)
-    , _osvKind            :: !Text
-    , _osvOperatingSystem :: !(Maybe OperatingSystem)
-    , _osvMajorVersion    :: !(Maybe Text)
-    , _osvName            :: !(Maybe Text)
-    , _osvId              :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OperatingSystemVersion' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'osvMinorVersion'
---
--- * 'osvKind'
---
--- * 'osvOperatingSystem'
---
--- * 'osvMajorVersion'
---
--- * 'osvName'
---
--- * 'osvId'
-operatingSystemVersion
-    :: OperatingSystemVersion
-operatingSystemVersion =
-    OperatingSystemVersion
-    { _osvMinorVersion = Nothing
-    , _osvKind = "dfareporting#operatingSystemVersion"
-    , _osvOperatingSystem = Nothing
-    , _osvMajorVersion = Nothing
-    , _osvName = Nothing
-    , _osvId = Nothing
-    }
-
--- | Minor version (number after the first dot) of this operating system
--- version.
-osvMinorVersion :: Lens' OperatingSystemVersion (Maybe Text)
-osvMinorVersion
-  = lens _osvMinorVersion
-      (\ s a -> s{_osvMinorVersion = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#operatingSystemVersion\".
-osvKind :: Lens' OperatingSystemVersion Text
-osvKind = lens _osvKind (\ s a -> s{_osvKind = a})
-
--- | Operating system of this operating system version.
-osvOperatingSystem :: Lens' OperatingSystemVersion (Maybe OperatingSystem)
-osvOperatingSystem
-  = lens _osvOperatingSystem
-      (\ s a -> s{_osvOperatingSystem = a})
-
--- | Major version (leftmost number) of this operating system version.
-osvMajorVersion :: Lens' OperatingSystemVersion (Maybe Text)
-osvMajorVersion
-  = lens _osvMajorVersion
-      (\ s a -> s{_osvMajorVersion = a})
-
--- | Name of this operating system version.
-osvName :: Lens' OperatingSystemVersion (Maybe Text)
-osvName = lens _osvName (\ s a -> s{_osvName = a})
-
--- | ID of this operating system version.
-osvId :: Lens' OperatingSystemVersion (Maybe Int64)
-osvId
-  = lens _osvId (\ s a -> s{_osvId = a}) .
-      mapping _Coerce
-
-instance FromJSON OperatingSystemVersion where
-        parseJSON
-          = withObject "OperatingSystemVersion"
-              (\ o ->
-                 OperatingSystemVersion <$>
-                   (o .:? "minorVersion") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#operatingSystemVersion")
-                     <*> (o .:? "operatingSystem")
-                     <*> (o .:? "majorVersion")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON OperatingSystemVersion where
-        toJSON OperatingSystemVersion{..}
-          = object
-              (catMaybes
-                 [("minorVersion" .=) <$> _osvMinorVersion,
-                  Just ("kind" .= _osvKind),
-                  ("operatingSystem" .=) <$> _osvOperatingSystem,
-                  ("majorVersion" .=) <$> _osvMajorVersion,
-                  ("name" .=) <$> _osvName, ("id" .=) <$> _osvId])
-
--- | AccountPermissions contains information about a particular account
--- permission. Some features of DCM require an account permission to be
--- present in the account.
---
--- /See:/ 'accountPermission' smart constructor.
-data AccountPermission = AccountPermission
-    { _acccKind              :: !Text
-    , _acccAccountProFiles   :: !(Maybe [AccountPermissionAccountProFilesItem])
-    , _acccName              :: !(Maybe Text)
-    , _acccId                :: !(Maybe (Textual Int64))
-    , _acccLevel             :: !(Maybe AccountPermissionLevel)
-    , _acccPermissionGroupId :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountPermission' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'acccKind'
---
--- * 'acccAccountProFiles'
---
--- * 'acccName'
---
--- * 'acccId'
---
--- * 'acccLevel'
---
--- * 'acccPermissionGroupId'
-accountPermission
-    :: AccountPermission
-accountPermission =
-    AccountPermission
-    { _acccKind = "dfareporting#accountPermission"
-    , _acccAccountProFiles = Nothing
-    , _acccName = Nothing
-    , _acccId = Nothing
-    , _acccLevel = Nothing
-    , _acccPermissionGroupId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#accountPermission\".
-acccKind :: Lens' AccountPermission Text
-acccKind = lens _acccKind (\ s a -> s{_acccKind = a})
-
--- | Account profiles associated with this account permission. Possible
--- values are: - \"ACCOUNT_PROFILE_BASIC\" - \"ACCOUNT_PROFILE_STANDARD\"
-acccAccountProFiles :: Lens' AccountPermission [AccountPermissionAccountProFilesItem]
-acccAccountProFiles
-  = lens _acccAccountProFiles
-      (\ s a -> s{_acccAccountProFiles = a})
-      . _Default
-      . _Coerce
-
--- | Name of this account permission.
-acccName :: Lens' AccountPermission (Maybe Text)
-acccName = lens _acccName (\ s a -> s{_acccName = a})
-
--- | ID of this account permission.
-acccId :: Lens' AccountPermission (Maybe Int64)
-acccId
-  = lens _acccId (\ s a -> s{_acccId = a}) .
-      mapping _Coerce
-
--- | Administrative level required to enable this account permission.
-acccLevel :: Lens' AccountPermission (Maybe AccountPermissionLevel)
-acccLevel
-  = lens _acccLevel (\ s a -> s{_acccLevel = a})
-
--- | Permission group of this account permission.
-acccPermissionGroupId :: Lens' AccountPermission (Maybe Int64)
-acccPermissionGroupId
-  = lens _acccPermissionGroupId
-      (\ s a -> s{_acccPermissionGroupId = a})
-      . mapping _Coerce
-
-instance FromJSON AccountPermission where
-        parseJSON
-          = withObject "AccountPermission"
-              (\ o ->
-                 AccountPermission <$>
-                   (o .:? "kind" .!= "dfareporting#accountPermission")
-                     <*> (o .:? "accountProfiles" .!= mempty)
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "level")
-                     <*> (o .:? "permissionGroupId"))
-
-instance ToJSON AccountPermission where
-        toJSON AccountPermission{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _acccKind),
-                  ("accountProfiles" .=) <$> _acccAccountProFiles,
-                  ("name" .=) <$> _acccName, ("id" .=) <$> _acccId,
-                  ("level" .=) <$> _acccLevel,
-                  ("permissionGroupId" .=) <$> _acccPermissionGroupId])
-
--- | Represents a UserProfile resource.
---
--- /See:/ 'userProFile' smart constructor.
-data UserProFile = UserProFile
-    { _upfEtag           :: !(Maybe Text)
-    , _upfKind           :: !Text
-    , _upfAccountName    :: !(Maybe Text)
-    , _upfProFileId      :: !(Maybe (Textual Int64))
-    , _upfUserName       :: !(Maybe Text)
-    , _upfAccountId      :: !(Maybe (Textual Int64))
-    , _upfSubAccountName :: !(Maybe Text)
-    , _upfSubAccountId   :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserProFile' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'upfEtag'
---
--- * 'upfKind'
---
--- * 'upfAccountName'
---
--- * 'upfProFileId'
---
--- * 'upfUserName'
---
--- * 'upfAccountId'
---
--- * 'upfSubAccountName'
---
--- * 'upfSubAccountId'
-userProFile
-    :: UserProFile
-userProFile =
-    UserProFile
-    { _upfEtag = Nothing
-    , _upfKind = "dfareporting#userProfile"
-    , _upfAccountName = Nothing
-    , _upfProFileId = Nothing
-    , _upfUserName = Nothing
-    , _upfAccountId = Nothing
-    , _upfSubAccountName = Nothing
-    , _upfSubAccountId = Nothing
-    }
-
--- | The eTag of this response for caching purposes.
-upfEtag :: Lens' UserProFile (Maybe Text)
-upfEtag = lens _upfEtag (\ s a -> s{_upfEtag = a})
-
--- | The kind of resource this is, in this case dfareporting#userProfile.
-upfKind :: Lens' UserProFile Text
-upfKind = lens _upfKind (\ s a -> s{_upfKind = a})
-
--- | The account name this profile belongs to.
-upfAccountName :: Lens' UserProFile (Maybe Text)
-upfAccountName
-  = lens _upfAccountName
-      (\ s a -> s{_upfAccountName = a})
-
--- | The unique ID of the user profile.
-upfProFileId :: Lens' UserProFile (Maybe Int64)
-upfProFileId
-  = lens _upfProFileId (\ s a -> s{_upfProFileId = a})
-      . mapping _Coerce
-
--- | The user name.
-upfUserName :: Lens' UserProFile (Maybe Text)
-upfUserName
-  = lens _upfUserName (\ s a -> s{_upfUserName = a})
-
--- | The account ID to which this profile belongs.
-upfAccountId :: Lens' UserProFile (Maybe Int64)
-upfAccountId
-  = lens _upfAccountId (\ s a -> s{_upfAccountId = a})
-      . mapping _Coerce
-
--- | The sub account name this profile belongs to if applicable.
-upfSubAccountName :: Lens' UserProFile (Maybe Text)
-upfSubAccountName
-  = lens _upfSubAccountName
-      (\ s a -> s{_upfSubAccountName = a})
-
--- | The sub account ID this profile belongs to if applicable.
-upfSubAccountId :: Lens' UserProFile (Maybe Int64)
-upfSubAccountId
-  = lens _upfSubAccountId
-      (\ s a -> s{_upfSubAccountId = a})
-      . mapping _Coerce
-
-instance FromJSON UserProFile where
-        parseJSON
-          = withObject "UserProFile"
-              (\ o ->
-                 UserProFile <$>
-                   (o .:? "etag") <*>
-                     (o .:? "kind" .!= "dfareporting#userProfile")
-                     <*> (o .:? "accountName")
-                     <*> (o .:? "profileId")
-                     <*> (o .:? "userName")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "subAccountName")
-                     <*> (o .:? "subAccountId"))
-
-instance ToJSON UserProFile where
-        toJSON UserProFile{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _upfEtag, Just ("kind" .= _upfKind),
-                  ("accountName" .=) <$> _upfAccountName,
-                  ("profileId" .=) <$> _upfProFileId,
-                  ("userName" .=) <$> _upfUserName,
-                  ("accountId" .=) <$> _upfAccountId,
-                  ("subAccountName" .=) <$> _upfSubAccountName,
-                  ("subAccountId" .=) <$> _upfSubAccountId])
-
--- | Operating System List Response
---
--- /See:/ 'operatingSystemsListResponse' smart constructor.
-data OperatingSystemsListResponse = OperatingSystemsListResponse
-    { _oslrKind             :: !Text
-    , _oslrOperatingSystems :: !(Maybe [OperatingSystem])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OperatingSystemsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oslrKind'
---
--- * 'oslrOperatingSystems'
-operatingSystemsListResponse
-    :: OperatingSystemsListResponse
-operatingSystemsListResponse =
-    OperatingSystemsListResponse
-    { _oslrKind = "dfareporting#operatingSystemsListResponse"
-    , _oslrOperatingSystems = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#operatingSystemsListResponse\".
-oslrKind :: Lens' OperatingSystemsListResponse Text
-oslrKind = lens _oslrKind (\ s a -> s{_oslrKind = a})
-
--- | Operating system collection.
-oslrOperatingSystems :: Lens' OperatingSystemsListResponse [OperatingSystem]
-oslrOperatingSystems
-  = lens _oslrOperatingSystems
-      (\ s a -> s{_oslrOperatingSystems = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON OperatingSystemsListResponse where
-        parseJSON
-          = withObject "OperatingSystemsListResponse"
-              (\ o ->
-                 OperatingSystemsListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#operatingSystemsListResponse")
-                     <*> (o .:? "operatingSystems" .!= mempty))
-
-instance ToJSON OperatingSystemsListResponse where
-        toJSON OperatingSystemsListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _oslrKind),
-                  ("operatingSystems" .=) <$> _oslrOperatingSystems])
-
--- | The report\'s email delivery settings.
---
--- /See:/ 'reportDelivery' smart constructor.
-data ReportDelivery = ReportDelivery
-    { _rdEmailOwner             :: !(Maybe Bool)
-    , _rdRecipients             :: !(Maybe [Recipient])
-    , _rdMessage                :: !(Maybe Text)
-    , _rdEmailOwnerDeliveryType :: !(Maybe ReportDeliveryEmailOwnerDeliveryType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportDelivery' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdEmailOwner'
---
--- * 'rdRecipients'
---
--- * 'rdMessage'
---
--- * 'rdEmailOwnerDeliveryType'
-reportDelivery
-    :: ReportDelivery
-reportDelivery =
-    ReportDelivery
-    { _rdEmailOwner = Nothing
-    , _rdRecipients = Nothing
-    , _rdMessage = Nothing
-    , _rdEmailOwnerDeliveryType = Nothing
-    }
-
--- | Whether the report should be emailed to the report owner.
-rdEmailOwner :: Lens' ReportDelivery (Maybe Bool)
-rdEmailOwner
-  = lens _rdEmailOwner (\ s a -> s{_rdEmailOwner = a})
-
--- | The list of recipients to which to email the report.
-rdRecipients :: Lens' ReportDelivery [Recipient]
-rdRecipients
-  = lens _rdRecipients (\ s a -> s{_rdRecipients = a})
-      . _Default
-      . _Coerce
-
--- | The message to be sent with each email.
-rdMessage :: Lens' ReportDelivery (Maybe Text)
-rdMessage
-  = lens _rdMessage (\ s a -> s{_rdMessage = a})
-
--- | The type of delivery for the owner to receive, if enabled.
-rdEmailOwnerDeliveryType :: Lens' ReportDelivery (Maybe ReportDeliveryEmailOwnerDeliveryType)
-rdEmailOwnerDeliveryType
-  = lens _rdEmailOwnerDeliveryType
-      (\ s a -> s{_rdEmailOwnerDeliveryType = a})
-
-instance FromJSON ReportDelivery where
-        parseJSON
-          = withObject "ReportDelivery"
-              (\ o ->
-                 ReportDelivery <$>
-                   (o .:? "emailOwner") <*>
-                     (o .:? "recipients" .!= mempty)
-                     <*> (o .:? "message")
-                     <*> (o .:? "emailOwnerDeliveryType"))
-
-instance ToJSON ReportDelivery where
-        toJSON ReportDelivery{..}
-          = object
-              (catMaybes
-                 [("emailOwner" .=) <$> _rdEmailOwner,
-                  ("recipients" .=) <$> _rdRecipients,
-                  ("message" .=) <$> _rdMessage,
-                  ("emailOwnerDeliveryType" .=) <$>
-                    _rdEmailOwnerDeliveryType])
-
--- | Contains properties of a targetable remarketing list. Remarketing
--- enables you to create lists of users who have performed specific actions
--- on a site, then target ads to members of those lists. This resource is a
--- read-only view of a remarketing list to be used to faciliate targeting
--- ads to specific lists. Remarketing lists that are owned by your
--- advertisers and those that are shared to your advertisers or account are
--- accessible via this resource. To manage remarketing lists that are owned
--- by your advertisers, use the RemarketingLists resource.
---
--- /See:/ 'targetableRemarketingList' smart constructor.
-data TargetableRemarketingList = TargetableRemarketingList
-    { _trlListSize                   :: !(Maybe (Textual Int64))
-    , _trlLifeSpan                   :: !(Maybe (Textual Int64))
-    , _trlKind                       :: !Text
-    , _trlAdvertiserId               :: !(Maybe (Textual Int64))
-    , _trlAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
-    , _trlActive                     :: !(Maybe Bool)
-    , _trlAccountId                  :: !(Maybe (Textual Int64))
-    , _trlName                       :: !(Maybe Text)
-    , _trlListSource                 :: !(Maybe TargetableRemarketingListListSource)
-    , _trlId                         :: !(Maybe (Textual Int64))
-    , _trlSubAccountId               :: !(Maybe (Textual Int64))
-    , _trlDescription                :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TargetableRemarketingList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'trlListSize'
---
--- * 'trlLifeSpan'
---
--- * 'trlKind'
---
--- * 'trlAdvertiserId'
---
--- * 'trlAdvertiserIdDimensionValue'
---
--- * 'trlActive'
---
--- * 'trlAccountId'
---
--- * 'trlName'
---
--- * 'trlListSource'
---
--- * 'trlId'
---
--- * 'trlSubAccountId'
---
--- * 'trlDescription'
-targetableRemarketingList
-    :: TargetableRemarketingList
-targetableRemarketingList =
-    TargetableRemarketingList
-    { _trlListSize = Nothing
-    , _trlLifeSpan = Nothing
-    , _trlKind = "dfareporting#targetableRemarketingList"
-    , _trlAdvertiserId = Nothing
-    , _trlAdvertiserIdDimensionValue = Nothing
-    , _trlActive = Nothing
-    , _trlAccountId = Nothing
-    , _trlName = Nothing
-    , _trlListSource = Nothing
-    , _trlId = Nothing
-    , _trlSubAccountId = Nothing
-    , _trlDescription = Nothing
-    }
-
--- | Number of users currently in the list. This is a read-only field.
-trlListSize :: Lens' TargetableRemarketingList (Maybe Int64)
-trlListSize
-  = lens _trlListSize (\ s a -> s{_trlListSize = a}) .
-      mapping _Coerce
-
--- | Number of days that a user should remain in the targetable remarketing
--- list without an impression.
-trlLifeSpan :: Lens' TargetableRemarketingList (Maybe Int64)
-trlLifeSpan
-  = lens _trlLifeSpan (\ s a -> s{_trlLifeSpan = a}) .
-      mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#targetableRemarketingList\".
-trlKind :: Lens' TargetableRemarketingList Text
-trlKind = lens _trlKind (\ s a -> s{_trlKind = a})
-
--- | Dimension value for the advertiser ID that owns this targetable
--- remarketing list.
-trlAdvertiserId :: Lens' TargetableRemarketingList (Maybe Int64)
-trlAdvertiserId
-  = lens _trlAdvertiserId
-      (\ s a -> s{_trlAdvertiserId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the advertiser.
-trlAdvertiserIdDimensionValue :: Lens' TargetableRemarketingList (Maybe DimensionValue)
-trlAdvertiserIdDimensionValue
-  = lens _trlAdvertiserIdDimensionValue
-      (\ s a -> s{_trlAdvertiserIdDimensionValue = a})
-
--- | Whether this targetable remarketing list is active.
-trlActive :: Lens' TargetableRemarketingList (Maybe Bool)
-trlActive
-  = lens _trlActive (\ s a -> s{_trlActive = a})
-
--- | Account ID of this remarketing list. This is a read-only, auto-generated
--- field that is only returned in GET requests.
-trlAccountId :: Lens' TargetableRemarketingList (Maybe Int64)
-trlAccountId
-  = lens _trlAccountId (\ s a -> s{_trlAccountId = a})
-      . mapping _Coerce
-
--- | Name of the targetable remarketing list. Is no greater than 128
--- characters long.
-trlName :: Lens' TargetableRemarketingList (Maybe Text)
-trlName = lens _trlName (\ s a -> s{_trlName = a})
-
--- | Product from which this targetable remarketing list was originated.
-trlListSource :: Lens' TargetableRemarketingList (Maybe TargetableRemarketingListListSource)
-trlListSource
-  = lens _trlListSource
-      (\ s a -> s{_trlListSource = a})
-
--- | Targetable remarketing list ID.
-trlId :: Lens' TargetableRemarketingList (Maybe Int64)
-trlId
-  = lens _trlId (\ s a -> s{_trlId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this remarketing list. This is a read-only,
--- auto-generated field that is only returned in GET requests.
-trlSubAccountId :: Lens' TargetableRemarketingList (Maybe Int64)
-trlSubAccountId
-  = lens _trlSubAccountId
-      (\ s a -> s{_trlSubAccountId = a})
-      . mapping _Coerce
-
--- | Targetable remarketing list description.
-trlDescription :: Lens' TargetableRemarketingList (Maybe Text)
-trlDescription
-  = lens _trlDescription
-      (\ s a -> s{_trlDescription = a})
-
-instance FromJSON TargetableRemarketingList where
-        parseJSON
-          = withObject "TargetableRemarketingList"
-              (\ o ->
-                 TargetableRemarketingList <$>
-                   (o .:? "listSize") <*> (o .:? "lifeSpan") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#targetableRemarketingList")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "active")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "listSource")
-                     <*> (o .:? "id")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "description"))
-
-instance ToJSON TargetableRemarketingList where
-        toJSON TargetableRemarketingList{..}
-          = object
-              (catMaybes
-                 [("listSize" .=) <$> _trlListSize,
-                  ("lifeSpan" .=) <$> _trlLifeSpan,
-                  Just ("kind" .= _trlKind),
-                  ("advertiserId" .=) <$> _trlAdvertiserId,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _trlAdvertiserIdDimensionValue,
-                  ("active" .=) <$> _trlActive,
-                  ("accountId" .=) <$> _trlAccountId,
-                  ("name" .=) <$> _trlName,
-                  ("listSource" .=) <$> _trlListSource,
-                  ("id" .=) <$> _trlId,
-                  ("subaccountId" .=) <$> _trlSubAccountId,
-                  ("description" .=) <$> _trlDescription])
-
--- | Postal Code List Response
---
--- /See:/ 'postalCodesListResponse' smart constructor.
-data PostalCodesListResponse = PostalCodesListResponse
-    { _pclrKind        :: !Text
-    , _pclrPostalCodes :: !(Maybe [PostalCode])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PostalCodesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pclrKind'
---
--- * 'pclrPostalCodes'
-postalCodesListResponse
-    :: PostalCodesListResponse
-postalCodesListResponse =
-    PostalCodesListResponse
-    { _pclrKind = "dfareporting#postalCodesListResponse"
-    , _pclrPostalCodes = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#postalCodesListResponse\".
-pclrKind :: Lens' PostalCodesListResponse Text
-pclrKind = lens _pclrKind (\ s a -> s{_pclrKind = a})
-
--- | Postal code collection.
-pclrPostalCodes :: Lens' PostalCodesListResponse [PostalCode]
-pclrPostalCodes
-  = lens _pclrPostalCodes
-      (\ s a -> s{_pclrPostalCodes = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON PostalCodesListResponse where
-        parseJSON
-          = withObject "PostalCodesListResponse"
-              (\ o ->
-                 PostalCodesListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#postalCodesListResponse")
-                     <*> (o .:? "postalCodes" .!= mempty))
-
-instance ToJSON PostalCodesListResponse where
-        toJSON PostalCodesListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _pclrKind),
-                  ("postalCodes" .=) <$> _pclrPostalCodes])
-
--- | Describes a change that a user has made to a resource.
---
--- /See:/ 'changeLog' smart constructor.
-data ChangeLog = ChangeLog
-    { _chaUserProFileId   :: !(Maybe (Textual Int64))
-    , _chaObjectType      :: !(Maybe Text)
-    , _chaUserProFileName :: !(Maybe Text)
-    , _chaKind            :: !Text
-    , _chaObjectId        :: !(Maybe (Textual Int64))
-    , _chaAction          :: !(Maybe Text)
-    , _chaTransactionId   :: !(Maybe (Textual Int64))
-    , _chaOldValue        :: !(Maybe Text)
-    , _chaAccountId       :: !(Maybe (Textual Int64))
-    , _chaNewValue        :: !(Maybe Text)
-    , _chaFieldName       :: !(Maybe Text)
-    , _chaId              :: !(Maybe (Textual Int64))
-    , _chaSubAccountId    :: !(Maybe (Textual Int64))
-    , _chaChangeTime      :: !(Maybe DateTime')
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ChangeLog' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'chaUserProFileId'
---
--- * 'chaObjectType'
---
--- * 'chaUserProFileName'
---
--- * 'chaKind'
---
--- * 'chaObjectId'
---
--- * 'chaAction'
---
--- * 'chaTransactionId'
---
--- * 'chaOldValue'
---
--- * 'chaAccountId'
---
--- * 'chaNewValue'
---
--- * 'chaFieldName'
---
--- * 'chaId'
---
--- * 'chaSubAccountId'
---
--- * 'chaChangeTime'
-changeLog
-    :: ChangeLog
-changeLog =
-    ChangeLog
-    { _chaUserProFileId = Nothing
-    , _chaObjectType = Nothing
-    , _chaUserProFileName = Nothing
-    , _chaKind = "dfareporting#changeLog"
-    , _chaObjectId = Nothing
-    , _chaAction = Nothing
-    , _chaTransactionId = Nothing
-    , _chaOldValue = Nothing
-    , _chaAccountId = Nothing
-    , _chaNewValue = Nothing
-    , _chaFieldName = Nothing
-    , _chaId = Nothing
-    , _chaSubAccountId = Nothing
-    , _chaChangeTime = Nothing
-    }
-
--- | ID of the user who modified the object.
-chaUserProFileId :: Lens' ChangeLog (Maybe Int64)
-chaUserProFileId
-  = lens _chaUserProFileId
-      (\ s a -> s{_chaUserProFileId = a})
-      . mapping _Coerce
-
--- | Object type of the change log.
-chaObjectType :: Lens' ChangeLog (Maybe Text)
-chaObjectType
-  = lens _chaObjectType
-      (\ s a -> s{_chaObjectType = a})
-
--- | User profile name of the user who modified the object.
-chaUserProFileName :: Lens' ChangeLog (Maybe Text)
-chaUserProFileName
-  = lens _chaUserProFileName
-      (\ s a -> s{_chaUserProFileName = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#changeLog\".
-chaKind :: Lens' ChangeLog Text
-chaKind = lens _chaKind (\ s a -> s{_chaKind = a})
-
--- | ID of the object of this change log. The object could be a campaign,
--- placement, ad, or other type.
-chaObjectId :: Lens' ChangeLog (Maybe Int64)
-chaObjectId
-  = lens _chaObjectId (\ s a -> s{_chaObjectId = a}) .
-      mapping _Coerce
-
--- | Action which caused the change.
-chaAction :: Lens' ChangeLog (Maybe Text)
-chaAction
-  = lens _chaAction (\ s a -> s{_chaAction = a})
-
--- | Transaction ID of this change log. When a single API call results in
--- many changes, each change will have a separate ID in the change log but
--- will share the same transactionId.
-chaTransactionId :: Lens' ChangeLog (Maybe Int64)
-chaTransactionId
-  = lens _chaTransactionId
-      (\ s a -> s{_chaTransactionId = a})
-      . mapping _Coerce
-
--- | Old value of the object field.
-chaOldValue :: Lens' ChangeLog (Maybe Text)
-chaOldValue
-  = lens _chaOldValue (\ s a -> s{_chaOldValue = a})
-
--- | Account ID of the modified object.
-chaAccountId :: Lens' ChangeLog (Maybe Int64)
-chaAccountId
-  = lens _chaAccountId (\ s a -> s{_chaAccountId = a})
-      . mapping _Coerce
-
--- | New value of the object field.
-chaNewValue :: Lens' ChangeLog (Maybe Text)
-chaNewValue
-  = lens _chaNewValue (\ s a -> s{_chaNewValue = a})
-
--- | Field name of the object which changed.
-chaFieldName :: Lens' ChangeLog (Maybe Text)
-chaFieldName
-  = lens _chaFieldName (\ s a -> s{_chaFieldName = a})
-
--- | ID of this change log.
-chaId :: Lens' ChangeLog (Maybe Int64)
-chaId
-  = lens _chaId (\ s a -> s{_chaId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of the modified object.
-chaSubAccountId :: Lens' ChangeLog (Maybe Int64)
-chaSubAccountId
-  = lens _chaSubAccountId
-      (\ s a -> s{_chaSubAccountId = a})
-      . mapping _Coerce
-
--- | Time when the object was modified.
-chaChangeTime :: Lens' ChangeLog (Maybe UTCTime)
-chaChangeTime
-  = lens _chaChangeTime
-      (\ s a -> s{_chaChangeTime = a})
-      . mapping _DateTime
-
-instance FromJSON ChangeLog where
-        parseJSON
-          = withObject "ChangeLog"
-              (\ o ->
-                 ChangeLog <$>
-                   (o .:? "userProfileId") <*> (o .:? "objectType") <*>
-                     (o .:? "userProfileName")
-                     <*> (o .:? "kind" .!= "dfareporting#changeLog")
-                     <*> (o .:? "objectId")
-                     <*> (o .:? "action")
-                     <*> (o .:? "transactionId")
-                     <*> (o .:? "oldValue")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "newValue")
-                     <*> (o .:? "fieldName")
-                     <*> (o .:? "id")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "changeTime"))
-
-instance ToJSON ChangeLog where
-        toJSON ChangeLog{..}
-          = object
-              (catMaybes
-                 [("userProfileId" .=) <$> _chaUserProFileId,
-                  ("objectType" .=) <$> _chaObjectType,
-                  ("userProfileName" .=) <$> _chaUserProFileName,
-                  Just ("kind" .= _chaKind),
-                  ("objectId" .=) <$> _chaObjectId,
-                  ("action" .=) <$> _chaAction,
-                  ("transactionId" .=) <$> _chaTransactionId,
-                  ("oldValue" .=) <$> _chaOldValue,
-                  ("accountId" .=) <$> _chaAccountId,
-                  ("newValue" .=) <$> _chaNewValue,
-                  ("fieldName" .=) <$> _chaFieldName,
-                  ("id" .=) <$> _chaId,
-                  ("subaccountId" .=) <$> _chaSubAccountId,
-                  ("changeTime" .=) <$> _chaChangeTime])
-
--- | Contains properties of a placement strategy.
---
--- /See:/ 'placementStrategy' smart constructor.
-data PlacementStrategy = PlacementStrategy
-    { _psKind      :: !Text
-    , _psAccountId :: !(Maybe (Textual Int64))
-    , _psName      :: !(Maybe Text)
-    , _psId        :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PlacementStrategy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'psKind'
---
--- * 'psAccountId'
---
--- * 'psName'
---
--- * 'psId'
-placementStrategy
-    :: PlacementStrategy
-placementStrategy =
-    PlacementStrategy
-    { _psKind = "dfareporting#placementStrategy"
-    , _psAccountId = Nothing
-    , _psName = Nothing
-    , _psId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#placementStrategy\".
-psKind :: Lens' PlacementStrategy Text
-psKind = lens _psKind (\ s a -> s{_psKind = a})
-
--- | Account ID of this placement strategy.This is a read-only field that can
--- be left blank.
-psAccountId :: Lens' PlacementStrategy (Maybe Int64)
-psAccountId
-  = lens _psAccountId (\ s a -> s{_psAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this placement strategy. This is a required field. It must be
--- less than 256 characters long and unique among placement strategies of
--- the same account.
-psName :: Lens' PlacementStrategy (Maybe Text)
-psName = lens _psName (\ s a -> s{_psName = a})
-
--- | ID of this placement strategy. This is a read-only, auto-generated
--- field.
-psId :: Lens' PlacementStrategy (Maybe Int64)
-psId
-  = lens _psId (\ s a -> s{_psId = a}) .
-      mapping _Coerce
-
-instance FromJSON PlacementStrategy where
-        parseJSON
-          = withObject "PlacementStrategy"
-              (\ o ->
-                 PlacementStrategy <$>
-                   (o .:? "kind" .!= "dfareporting#placementStrategy")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON PlacementStrategy where
-        toJSON PlacementStrategy{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _psKind),
-                  ("accountId" .=) <$> _psAccountId,
-                  ("name" .=) <$> _psName, ("id" .=) <$> _psId])
-
--- | Contains properties of a Floodlight activity.
---
--- /See:/ 'floodlightActivity' smart constructor.
-data FloodlightActivity = FloodlightActivity
-    { _faCountingMethod                          :: !(Maybe FloodlightActivityCountingMethod)
-    , _faTagString                               :: !(Maybe Text)
-    , _faSecure                                  :: !(Maybe Bool)
-    , _faExpectedURL                             :: !(Maybe Text)
-    , _faFloodlightActivityGroupTagString        :: !(Maybe Text)
-    , _faFloodlightConfigurationId               :: !(Maybe (Textual Int64))
-    , _faKind                                    :: !Text
-    , _faImageTagEnabled                         :: !(Maybe Bool)
-    , _faAdvertiserId                            :: !(Maybe (Textual Int64))
-    , _faAdvertiserIdDimensionValue              :: !(Maybe DimensionValue)
-    , _faSSLCompliant                            :: !(Maybe Bool)
-    , _faIdDimensionValue                        :: !(Maybe DimensionValue)
-    , _faTagFormat                               :: !(Maybe FloodlightActivityTagFormat)
-    , _faCacheBustingType                        :: !(Maybe FloodlightActivityCacheBustingType)
-    , _faAccountId                               :: !(Maybe (Textual Int64))
-    , _faName                                    :: !(Maybe Text)
-    , _faPublisherTags                           :: !(Maybe [FloodlightActivityPublisherDynamicTag])
-    , _faFloodlightActivityGroupId               :: !(Maybe (Textual Int64))
-    , _faHidden                                  :: !(Maybe Bool)
-    , _faFloodlightActivityGroupType             :: !(Maybe FloodlightActivityFloodlightActivityGroupType)
-    , _faDefaultTags                             :: !(Maybe [FloodlightActivityDynamicTag])
-    , _faFloodlightActivityGroupName             :: !(Maybe Text)
-    , _faId                                      :: !(Maybe (Textual Int64))
-    , _faSSLRequired                             :: !(Maybe Bool)
-    , _faUserDefinedVariableTypes                :: !(Maybe [FloodlightActivityUserDefinedVariableTypesItem])
-    , _faSubAccountId                            :: !(Maybe (Textual Int64))
-    , _faNotes                                   :: !(Maybe Text)
-    , _faFloodlightConfigurationIdDimensionValue :: !(Maybe DimensionValue)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightActivity' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'faCountingMethod'
---
--- * 'faTagString'
---
--- * 'faSecure'
---
--- * 'faExpectedURL'
---
--- * 'faFloodlightActivityGroupTagString'
---
--- * 'faFloodlightConfigurationId'
---
--- * 'faKind'
---
--- * 'faImageTagEnabled'
---
--- * 'faAdvertiserId'
---
--- * 'faAdvertiserIdDimensionValue'
---
--- * 'faSSLCompliant'
---
--- * 'faIdDimensionValue'
---
--- * 'faTagFormat'
---
--- * 'faCacheBustingType'
---
--- * 'faAccountId'
---
--- * 'faName'
---
--- * 'faPublisherTags'
---
--- * 'faFloodlightActivityGroupId'
---
--- * 'faHidden'
---
--- * 'faFloodlightActivityGroupType'
---
--- * 'faDefaultTags'
---
--- * 'faFloodlightActivityGroupName'
---
--- * 'faId'
---
--- * 'faSSLRequired'
---
--- * 'faUserDefinedVariableTypes'
---
--- * 'faSubAccountId'
---
--- * 'faNotes'
---
--- * 'faFloodlightConfigurationIdDimensionValue'
-floodlightActivity
-    :: FloodlightActivity
-floodlightActivity =
-    FloodlightActivity
-    { _faCountingMethod = Nothing
-    , _faTagString = Nothing
-    , _faSecure = Nothing
-    , _faExpectedURL = Nothing
-    , _faFloodlightActivityGroupTagString = Nothing
-    , _faFloodlightConfigurationId = Nothing
-    , _faKind = "dfareporting#floodlightActivity"
-    , _faImageTagEnabled = Nothing
-    , _faAdvertiserId = Nothing
-    , _faAdvertiserIdDimensionValue = Nothing
-    , _faSSLCompliant = Nothing
-    , _faIdDimensionValue = Nothing
-    , _faTagFormat = Nothing
-    , _faCacheBustingType = Nothing
-    , _faAccountId = Nothing
-    , _faName = Nothing
-    , _faPublisherTags = Nothing
-    , _faFloodlightActivityGroupId = Nothing
-    , _faHidden = Nothing
-    , _faFloodlightActivityGroupType = Nothing
-    , _faDefaultTags = Nothing
-    , _faFloodlightActivityGroupName = Nothing
-    , _faId = Nothing
-    , _faSSLRequired = Nothing
-    , _faUserDefinedVariableTypes = Nothing
-    , _faSubAccountId = Nothing
-    , _faNotes = Nothing
-    , _faFloodlightConfigurationIdDimensionValue = Nothing
-    }
-
--- | Counting method for conversions for this floodlight activity. This is a
--- required field.
-faCountingMethod :: Lens' FloodlightActivity (Maybe FloodlightActivityCountingMethod)
-faCountingMethod
-  = lens _faCountingMethod
-      (\ s a -> s{_faCountingMethod = a})
-
--- | Value of the cat= paramter in the floodlight tag, which the ad servers
--- use to identify the activity. This is optional: if empty, a new tag
--- string will be generated for you. This string must be 1 to 8 characters
--- long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag
--- string must also be unique among activities of the same activity group.
--- This field is read-only after insertion.
-faTagString :: Lens' FloodlightActivity (Maybe Text)
-faTagString
-  = lens _faTagString (\ s a -> s{_faTagString = a})
-
--- | Whether this tag should use SSL.
-faSecure :: Lens' FloodlightActivity (Maybe Bool)
-faSecure = lens _faSecure (\ s a -> s{_faSecure = a})
-
--- | URL where this tag will be deployed. If specified, must be less than 256
--- characters long.
-faExpectedURL :: Lens' FloodlightActivity (Maybe Text)
-faExpectedURL
-  = lens _faExpectedURL
-      (\ s a -> s{_faExpectedURL = a})
-
--- | Tag string of the associated floodlight activity group. This is a
--- read-only field.
-faFloodlightActivityGroupTagString :: Lens' FloodlightActivity (Maybe Text)
-faFloodlightActivityGroupTagString
-  = lens _faFloodlightActivityGroupTagString
-      (\ s a -> s{_faFloodlightActivityGroupTagString = a})
-
--- | Floodlight configuration ID of this floodlight activity. If this field
--- is left blank, the value will be copied over either from the activity
--- group\'s floodlight configuration or from the existing activity\'s
--- floodlight configuration.
-faFloodlightConfigurationId :: Lens' FloodlightActivity (Maybe Int64)
-faFloodlightConfigurationId
-  = lens _faFloodlightConfigurationId
-      (\ s a -> s{_faFloodlightConfigurationId = a})
-      . mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#floodlightActivity\".
-faKind :: Lens' FloodlightActivity Text
-faKind = lens _faKind (\ s a -> s{_faKind = a})
-
--- | Whether the image tag is enabled for this activity.
-faImageTagEnabled :: Lens' FloodlightActivity (Maybe Bool)
-faImageTagEnabled
-  = lens _faImageTagEnabled
-      (\ s a -> s{_faImageTagEnabled = a})
-
--- | Advertiser ID of this floodlight activity. If this field is left blank,
--- the value will be copied over either from the activity group\'s
--- advertiser or the existing activity\'s advertiser.
-faAdvertiserId :: Lens' FloodlightActivity (Maybe Int64)
-faAdvertiserId
-  = lens _faAdvertiserId
-      (\ s a -> s{_faAdvertiserId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the advertiser. This is a read-only,
--- auto-generated field.
-faAdvertiserIdDimensionValue :: Lens' FloodlightActivity (Maybe DimensionValue)
-faAdvertiserIdDimensionValue
-  = lens _faAdvertiserIdDimensionValue
-      (\ s a -> s{_faAdvertiserIdDimensionValue = a})
-
--- | Whether the floodlight activity is SSL-compliant. This is a read-only
--- field, its value detected by the system from the floodlight tags.
-faSSLCompliant :: Lens' FloodlightActivity (Maybe Bool)
-faSSLCompliant
-  = lens _faSSLCompliant
-      (\ s a -> s{_faSSLCompliant = a})
-
--- | Dimension value for the ID of this floodlight activity. This is a
--- read-only, auto-generated field.
-faIdDimensionValue :: Lens' FloodlightActivity (Maybe DimensionValue)
-faIdDimensionValue
-  = lens _faIdDimensionValue
-      (\ s a -> s{_faIdDimensionValue = a})
-
--- | Tag format type for the floodlight activity. If left blank, the tag
--- format will default to HTML.
-faTagFormat :: Lens' FloodlightActivity (Maybe FloodlightActivityTagFormat)
-faTagFormat
-  = lens _faTagFormat (\ s a -> s{_faTagFormat = a})
-
--- | Code type used for cache busting in the generated tag.
-faCacheBustingType :: Lens' FloodlightActivity (Maybe FloodlightActivityCacheBustingType)
-faCacheBustingType
-  = lens _faCacheBustingType
-      (\ s a -> s{_faCacheBustingType = a})
-
--- | Account ID of this floodlight activity. This is a read-only field that
--- can be left blank.
-faAccountId :: Lens' FloodlightActivity (Maybe Int64)
-faAccountId
-  = lens _faAccountId (\ s a -> s{_faAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this floodlight activity. This is a required field. Must be less
--- than 129 characters long and cannot contain quotes.
-faName :: Lens' FloodlightActivity (Maybe Text)
-faName = lens _faName (\ s a -> s{_faName = a})
-
--- | Publisher dynamic floodlight tags.
-faPublisherTags :: Lens' FloodlightActivity [FloodlightActivityPublisherDynamicTag]
-faPublisherTags
-  = lens _faPublisherTags
-      (\ s a -> s{_faPublisherTags = a})
-      . _Default
-      . _Coerce
-
--- | Floodlight activity group ID of this floodlight activity. This is a
--- required field.
-faFloodlightActivityGroupId :: Lens' FloodlightActivity (Maybe Int64)
-faFloodlightActivityGroupId
-  = lens _faFloodlightActivityGroupId
-      (\ s a -> s{_faFloodlightActivityGroupId = a})
-      . mapping _Coerce
-
--- | Whether this activity is archived.
-faHidden :: Lens' FloodlightActivity (Maybe Bool)
-faHidden = lens _faHidden (\ s a -> s{_faHidden = a})
-
--- | Type of the associated floodlight activity group. This is a read-only
--- field.
-faFloodlightActivityGroupType :: Lens' FloodlightActivity (Maybe FloodlightActivityFloodlightActivityGroupType)
-faFloodlightActivityGroupType
-  = lens _faFloodlightActivityGroupType
-      (\ s a -> s{_faFloodlightActivityGroupType = a})
-
--- | Dynamic floodlight tags.
-faDefaultTags :: Lens' FloodlightActivity [FloodlightActivityDynamicTag]
-faDefaultTags
-  = lens _faDefaultTags
-      (\ s a -> s{_faDefaultTags = a})
-      . _Default
-      . _Coerce
-
--- | Name of the associated floodlight activity group. This is a read-only
--- field.
-faFloodlightActivityGroupName :: Lens' FloodlightActivity (Maybe Text)
-faFloodlightActivityGroupName
-  = lens _faFloodlightActivityGroupName
-      (\ s a -> s{_faFloodlightActivityGroupName = a})
-
--- | ID of this floodlight activity. This is a read-only, auto-generated
--- field.
-faId :: Lens' FloodlightActivity (Maybe Int64)
-faId
-  = lens _faId (\ s a -> s{_faId = a}) .
-      mapping _Coerce
-
--- | Whether this floodlight activity must be SSL-compliant.
-faSSLRequired :: Lens' FloodlightActivity (Maybe Bool)
-faSSLRequired
-  = lens _faSSLRequired
-      (\ s a -> s{_faSSLRequired = a})
-
--- | List of the user-defined variables used by this conversion tag. These
--- map to the \"u[1-20]=\" in the tags. Each of these can have a user
--- defined type. Acceptable values are: - \"U1\" - \"U2\" - \"U3\" - \"U4\"
--- - \"U5\" - \"U6\" - \"U7\" - \"U8\" - \"U9\" - \"U10\" - \"U11\" -
--- \"U12\" - \"U13\" - \"U14\" - \"U15\" - \"U16\" - \"U17\" - \"U18\" -
--- \"U19\" - \"U20\"
-faUserDefinedVariableTypes :: Lens' FloodlightActivity [FloodlightActivityUserDefinedVariableTypesItem]
-faUserDefinedVariableTypes
-  = lens _faUserDefinedVariableTypes
-      (\ s a -> s{_faUserDefinedVariableTypes = a})
-      . _Default
-      . _Coerce
-
--- | Subaccount ID of this floodlight activity. This is a read-only field
--- that can be left blank.
-faSubAccountId :: Lens' FloodlightActivity (Maybe Int64)
-faSubAccountId
-  = lens _faSubAccountId
-      (\ s a -> s{_faSubAccountId = a})
-      . mapping _Coerce
-
--- | General notes or implementation instructions for the tag.
-faNotes :: Lens' FloodlightActivity (Maybe Text)
-faNotes = lens _faNotes (\ s a -> s{_faNotes = a})
-
--- | Dimension value for the ID of the floodlight configuration. This is a
--- read-only, auto-generated field.
-faFloodlightConfigurationIdDimensionValue :: Lens' FloodlightActivity (Maybe DimensionValue)
-faFloodlightConfigurationIdDimensionValue
-  = lens _faFloodlightConfigurationIdDimensionValue
-      (\ s a ->
-         s{_faFloodlightConfigurationIdDimensionValue = a})
-
-instance FromJSON FloodlightActivity where
-        parseJSON
-          = withObject "FloodlightActivity"
-              (\ o ->
-                 FloodlightActivity <$>
-                   (o .:? "countingMethod") <*> (o .:? "tagString") <*>
-                     (o .:? "secure")
-                     <*> (o .:? "expectedUrl")
-                     <*> (o .:? "floodlightActivityGroupTagString")
-                     <*> (o .:? "floodlightConfigurationId")
-                     <*>
-                     (o .:? "kind" .!= "dfareporting#floodlightActivity")
-                     <*> (o .:? "imageTagEnabled")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "sslCompliant")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "tagFormat")
-                     <*> (o .:? "cacheBustingType")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "publisherTags" .!= mempty)
-                     <*> (o .:? "floodlightActivityGroupId")
-                     <*> (o .:? "hidden")
-                     <*> (o .:? "floodlightActivityGroupType")
-                     <*> (o .:? "defaultTags" .!= mempty)
-                     <*> (o .:? "floodlightActivityGroupName")
-                     <*> (o .:? "id")
-                     <*> (o .:? "sslRequired")
-                     <*> (o .:? "userDefinedVariableTypes" .!= mempty)
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "notes")
-                     <*>
-                     (o .:? "floodlightConfigurationIdDimensionValue"))
-
-instance ToJSON FloodlightActivity where
-        toJSON FloodlightActivity{..}
-          = object
-              (catMaybes
-                 [("countingMethod" .=) <$> _faCountingMethod,
-                  ("tagString" .=) <$> _faTagString,
-                  ("secure" .=) <$> _faSecure,
-                  ("expectedUrl" .=) <$> _faExpectedURL,
-                  ("floodlightActivityGroupTagString" .=) <$>
-                    _faFloodlightActivityGroupTagString,
-                  ("floodlightConfigurationId" .=) <$>
-                    _faFloodlightConfigurationId,
-                  Just ("kind" .= _faKind),
-                  ("imageTagEnabled" .=) <$> _faImageTagEnabled,
-                  ("advertiserId" .=) <$> _faAdvertiserId,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _faAdvertiserIdDimensionValue,
-                  ("sslCompliant" .=) <$> _faSSLCompliant,
-                  ("idDimensionValue" .=) <$> _faIdDimensionValue,
-                  ("tagFormat" .=) <$> _faTagFormat,
-                  ("cacheBustingType" .=) <$> _faCacheBustingType,
-                  ("accountId" .=) <$> _faAccountId,
-                  ("name" .=) <$> _faName,
-                  ("publisherTags" .=) <$> _faPublisherTags,
-                  ("floodlightActivityGroupId" .=) <$>
-                    _faFloodlightActivityGroupId,
-                  ("hidden" .=) <$> _faHidden,
-                  ("floodlightActivityGroupType" .=) <$>
-                    _faFloodlightActivityGroupType,
-                  ("defaultTags" .=) <$> _faDefaultTags,
-                  ("floodlightActivityGroupName" .=) <$>
-                    _faFloodlightActivityGroupName,
-                  ("id" .=) <$> _faId,
-                  ("sslRequired" .=) <$> _faSSLRequired,
-                  ("userDefinedVariableTypes" .=) <$>
-                    _faUserDefinedVariableTypes,
-                  ("subaccountId" .=) <$> _faSubAccountId,
-                  ("notes" .=) <$> _faNotes,
-                  ("floodlightConfigurationIdDimensionValue" .=) <$>
-                    _faFloodlightConfigurationIdDimensionValue])
-
--- | Platform Type List Response
---
--- /See:/ 'platformTypesListResponse' smart constructor.
-data PlatformTypesListResponse = PlatformTypesListResponse
-    { _ptlrKind          :: !Text
-    , _ptlrPlatformTypes :: !(Maybe [PlatformType])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PlatformTypesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ptlrKind'
---
--- * 'ptlrPlatformTypes'
-platformTypesListResponse
-    :: PlatformTypesListResponse
-platformTypesListResponse =
-    PlatformTypesListResponse
-    { _ptlrKind = "dfareporting#platformTypesListResponse"
-    , _ptlrPlatformTypes = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#platformTypesListResponse\".
-ptlrKind :: Lens' PlatformTypesListResponse Text
-ptlrKind = lens _ptlrKind (\ s a -> s{_ptlrKind = a})
-
--- | Platform type collection.
-ptlrPlatformTypes :: Lens' PlatformTypesListResponse [PlatformType]
-ptlrPlatformTypes
-  = lens _ptlrPlatformTypes
-      (\ s a -> s{_ptlrPlatformTypes = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON PlatformTypesListResponse where
-        parseJSON
-          = withObject "PlatformTypesListResponse"
-              (\ o ->
-                 PlatformTypesListResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#platformTypesListResponse")
-                     <*> (o .:? "platformTypes" .!= mempty))
-
-instance ToJSON PlatformTypesListResponse where
-        toJSON PlatformTypesListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _ptlrKind),
-                  ("platformTypes" .=) <$> _ptlrPlatformTypes])
-
--- | Modification timestamp.
---
--- /See:/ 'lastModifiedInfo' smart constructor.
-newtype LastModifiedInfo = LastModifiedInfo
-    { _lmiTime :: Maybe (Textual Int64)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'LastModifiedInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lmiTime'
-lastModifiedInfo
-    :: LastModifiedInfo
-lastModifiedInfo =
-    LastModifiedInfo
-    { _lmiTime = Nothing
-    }
-
--- | Timestamp of the last change in milliseconds since epoch.
-lmiTime :: Lens' LastModifiedInfo (Maybe Int64)
-lmiTime
-  = lens _lmiTime (\ s a -> s{_lmiTime = a}) .
-      mapping _Coerce
-
-instance FromJSON LastModifiedInfo where
-        parseJSON
-          = withObject "LastModifiedInfo"
-              (\ o -> LastModifiedInfo <$> (o .:? "time"))
-
-instance ToJSON LastModifiedInfo where
-        toJSON LastModifiedInfo{..}
-          = object (catMaybes [("time" .=) <$> _lmiTime])
-
--- | Target Window.
---
--- /See:/ 'targetWindow' smart constructor.
-data TargetWindow = TargetWindow
-    { _twCustomHTML         :: !(Maybe Text)
-    , _twTargetWindowOption :: !(Maybe TargetWindowTargetWindowOption)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TargetWindow' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'twCustomHTML'
---
--- * 'twTargetWindowOption'
-targetWindow
-    :: TargetWindow
-targetWindow =
-    TargetWindow
-    { _twCustomHTML = Nothing
-    , _twTargetWindowOption = Nothing
-    }
-
--- | User-entered value.
-twCustomHTML :: Lens' TargetWindow (Maybe Text)
-twCustomHTML
-  = lens _twCustomHTML (\ s a -> s{_twCustomHTML = a})
-
--- | Type of browser window for which the backup image of the flash creative
--- can be displayed.
-twTargetWindowOption :: Lens' TargetWindow (Maybe TargetWindowTargetWindowOption)
-twTargetWindowOption
-  = lens _twTargetWindowOption
-      (\ s a -> s{_twTargetWindowOption = a})
-
-instance FromJSON TargetWindow where
-        parseJSON
-          = withObject "TargetWindow"
-              (\ o ->
-                 TargetWindow <$>
-                   (o .:? "customHtml") <*>
-                     (o .:? "targetWindowOption"))
-
-instance ToJSON TargetWindow where
-        toJSON TargetWindow{..}
-          = object
-              (catMaybes
-                 [("customHtml" .=) <$> _twCustomHTML,
-                  ("targetWindowOption" .=) <$> _twTargetWindowOption])
-
--- | AccountPermissionGroups contains a mapping of permission group IDs to
--- names. A permission group is a grouping of account permissions.
---
--- /See:/ 'accountPermissionGroup' smart constructor.
-data AccountPermissionGroup = AccountPermissionGroup
-    { _apgpKind :: !Text
-    , _apgpName :: !(Maybe Text)
-    , _apgpId   :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountPermissionGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'apgpKind'
---
--- * 'apgpName'
---
--- * 'apgpId'
-accountPermissionGroup
-    :: AccountPermissionGroup
-accountPermissionGroup =
-    AccountPermissionGroup
-    { _apgpKind = "dfareporting#accountPermissionGroup"
-    , _apgpName = Nothing
-    , _apgpId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#accountPermissionGroup\".
-apgpKind :: Lens' AccountPermissionGroup Text
-apgpKind = lens _apgpKind (\ s a -> s{_apgpKind = a})
-
--- | Name of this account permission group.
-apgpName :: Lens' AccountPermissionGroup (Maybe Text)
-apgpName = lens _apgpName (\ s a -> s{_apgpName = a})
-
--- | ID of this account permission group.
-apgpId :: Lens' AccountPermissionGroup (Maybe Int64)
-apgpId
-  = lens _apgpId (\ s a -> s{_apgpId = a}) .
-      mapping _Coerce
-
-instance FromJSON AccountPermissionGroup where
-        parseJSON
-          = withObject "AccountPermissionGroup"
-              (\ o ->
-                 AccountPermissionGroup <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#accountPermissionGroup")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON AccountPermissionGroup where
-        toJSON AccountPermissionGroup{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _apgpKind),
-                  ("name" .=) <$> _apgpName, ("id" .=) <$> _apgpId])
-
--- | Contains properties of a DCM advertiser.
---
--- /See:/ 'advertiser' smart constructor.
-data Advertiser = Advertiser
-    { _advdOriginalFloodlightConfigurationId       :: !(Maybe (Textual Int64))
-    , _advdStatus                                  :: !(Maybe AdvertiserStatus)
-    , _advdFloodlightConfigurationId               :: !(Maybe (Textual Int64))
-    , _advdKind                                    :: !Text
-    , _advdSuspended                               :: !(Maybe Bool)
-    , _advdIdDimensionValue                        :: !(Maybe DimensionValue)
-    , _advdAccountId                               :: !(Maybe (Textual Int64))
-    , _advdDefaultEmail                            :: !(Maybe Text)
-    , _advdName                                    :: !(Maybe Text)
-    , _advdAdvertiserGroupId                       :: !(Maybe (Textual Int64))
-    , _advdDefaultClickThroughEventTagId           :: !(Maybe (Textual Int64))
-    , _advdId                                      :: !(Maybe (Textual Int64))
-    , _advdSubAccountId                            :: !(Maybe (Textual Int64))
-    , _advdFloodlightConfigurationIdDimensionValue :: !(Maybe DimensionValue)
-    , _advdClickThroughURLSuffix                   :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Advertiser' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'advdOriginalFloodlightConfigurationId'
---
--- * 'advdStatus'
---
--- * 'advdFloodlightConfigurationId'
---
--- * 'advdKind'
---
--- * 'advdSuspended'
---
--- * 'advdIdDimensionValue'
---
--- * 'advdAccountId'
---
--- * 'advdDefaultEmail'
---
--- * 'advdName'
---
--- * 'advdAdvertiserGroupId'
---
--- * 'advdDefaultClickThroughEventTagId'
---
--- * 'advdId'
---
--- * 'advdSubAccountId'
---
--- * 'advdFloodlightConfigurationIdDimensionValue'
---
--- * 'advdClickThroughURLSuffix'
-advertiser
-    :: Advertiser
-advertiser =
-    Advertiser
-    { _advdOriginalFloodlightConfigurationId = Nothing
-    , _advdStatus = Nothing
-    , _advdFloodlightConfigurationId = Nothing
-    , _advdKind = "dfareporting#advertiser"
-    , _advdSuspended = Nothing
-    , _advdIdDimensionValue = Nothing
-    , _advdAccountId = Nothing
-    , _advdDefaultEmail = Nothing
-    , _advdName = Nothing
-    , _advdAdvertiserGroupId = Nothing
-    , _advdDefaultClickThroughEventTagId = Nothing
-    , _advdId = Nothing
-    , _advdSubAccountId = Nothing
-    , _advdFloodlightConfigurationIdDimensionValue = Nothing
-    , _advdClickThroughURLSuffix = Nothing
-    }
-
--- | Original floodlight configuration before any sharing occurred. Set the
--- floodlightConfigurationId of this advertiser to
--- originalFloodlightConfigurationId to unshare the advertiser\'s current
--- floodlight configuration. You cannot unshare an advertiser\'s floodlight
--- configuration if the shared configuration has activities associated with
--- any campaign or placement.
-advdOriginalFloodlightConfigurationId :: Lens' Advertiser (Maybe Int64)
-advdOriginalFloodlightConfigurationId
-  = lens _advdOriginalFloodlightConfigurationId
-      (\ s a ->
-         s{_advdOriginalFloodlightConfigurationId = a})
-      . mapping _Coerce
-
--- | Status of this advertiser.
-advdStatus :: Lens' Advertiser (Maybe AdvertiserStatus)
-advdStatus
-  = lens _advdStatus (\ s a -> s{_advdStatus = a})
-
--- | Floodlight configuration ID of this advertiser. The floodlight
--- configuration ID will be created automatically, so on insert this field
--- should be left blank. This field can be set to another advertiser\'s
--- floodlight configuration ID in order to share that advertiser\'s
--- floodlight configuration with this advertiser, so long as: - This
--- advertiser\'s original floodlight configuration is not already
--- associated with floodlight activities or floodlight activity groups. -
--- This advertiser\'s original floodlight configuration is not already
--- shared with another advertiser.
-advdFloodlightConfigurationId :: Lens' Advertiser (Maybe Int64)
-advdFloodlightConfigurationId
-  = lens _advdFloodlightConfigurationId
-      (\ s a -> s{_advdFloodlightConfigurationId = a})
-      . mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#advertiser\".
-advdKind :: Lens' Advertiser Text
-advdKind = lens _advdKind (\ s a -> s{_advdKind = a})
-
--- | Suspension status of this advertiser.
-advdSuspended :: Lens' Advertiser (Maybe Bool)
-advdSuspended
-  = lens _advdSuspended
-      (\ s a -> s{_advdSuspended = a})
-
--- | Dimension value for the ID of this advertiser. This is a read-only,
--- auto-generated field.
-advdIdDimensionValue :: Lens' Advertiser (Maybe DimensionValue)
-advdIdDimensionValue
-  = lens _advdIdDimensionValue
-      (\ s a -> s{_advdIdDimensionValue = a})
-
--- | Account ID of this advertiser.This is a read-only field that can be left
--- blank.
-advdAccountId :: Lens' Advertiser (Maybe Int64)
-advdAccountId
-  = lens _advdAccountId
-      (\ s a -> s{_advdAccountId = a})
-      . mapping _Coerce
-
--- | Default email address used in sender field for tag emails.
-advdDefaultEmail :: Lens' Advertiser (Maybe Text)
-advdDefaultEmail
-  = lens _advdDefaultEmail
-      (\ s a -> s{_advdDefaultEmail = a})
-
--- | Name of this advertiser. This is a required field and must be less than
--- 256 characters long and unique among advertisers of the same account.
-advdName :: Lens' Advertiser (Maybe Text)
-advdName = lens _advdName (\ s a -> s{_advdName = a})
-
--- | ID of the advertiser group this advertiser belongs to. You can group
--- advertisers for reporting purposes, allowing you to see aggregated
--- information for all advertisers in each group.
-advdAdvertiserGroupId :: Lens' Advertiser (Maybe Int64)
-advdAdvertiserGroupId
-  = lens _advdAdvertiserGroupId
-      (\ s a -> s{_advdAdvertiserGroupId = a})
-      . mapping _Coerce
-
--- | ID of the click-through event tag to apply by default to the landing
--- pages of this advertiser\'s campaigns.
-advdDefaultClickThroughEventTagId :: Lens' Advertiser (Maybe Int64)
-advdDefaultClickThroughEventTagId
-  = lens _advdDefaultClickThroughEventTagId
-      (\ s a -> s{_advdDefaultClickThroughEventTagId = a})
-      . mapping _Coerce
-
--- | ID of this advertiser. This is a read-only, auto-generated field.
-advdId :: Lens' Advertiser (Maybe Int64)
-advdId
-  = lens _advdId (\ s a -> s{_advdId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this advertiser.This is a read-only field that can be
--- left blank.
-advdSubAccountId :: Lens' Advertiser (Maybe Int64)
-advdSubAccountId
-  = lens _advdSubAccountId
-      (\ s a -> s{_advdSubAccountId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the floodlight configuration. This is a
--- read-only, auto-generated field.
-advdFloodlightConfigurationIdDimensionValue :: Lens' Advertiser (Maybe DimensionValue)
-advdFloodlightConfigurationIdDimensionValue
-  = lens _advdFloodlightConfigurationIdDimensionValue
-      (\ s a ->
-         s{_advdFloodlightConfigurationIdDimensionValue = a})
-
--- | Suffix added to click-through URL of ad creative associations under this
--- advertiser. Must be less than 129 characters long.
-advdClickThroughURLSuffix :: Lens' Advertiser (Maybe Text)
-advdClickThroughURLSuffix
-  = lens _advdClickThroughURLSuffix
-      (\ s a -> s{_advdClickThroughURLSuffix = a})
-
-instance FromJSON Advertiser where
-        parseJSON
-          = withObject "Advertiser"
-              (\ o ->
-                 Advertiser <$>
-                   (o .:? "originalFloodlightConfigurationId") <*>
-                     (o .:? "status")
-                     <*> (o .:? "floodlightConfigurationId")
-                     <*> (o .:? "kind" .!= "dfareporting#advertiser")
-                     <*> (o .:? "suspended")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "defaultEmail")
-                     <*> (o .:? "name")
-                     <*> (o .:? "advertiserGroupId")
-                     <*> (o .:? "defaultClickThroughEventTagId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "floodlightConfigurationIdDimensionValue")
-                     <*> (o .:? "clickThroughUrlSuffix"))
-
-instance ToJSON Advertiser where
-        toJSON Advertiser{..}
-          = object
-              (catMaybes
-                 [("originalFloodlightConfigurationId" .=) <$>
-                    _advdOriginalFloodlightConfigurationId,
-                  ("status" .=) <$> _advdStatus,
-                  ("floodlightConfigurationId" .=) <$>
-                    _advdFloodlightConfigurationId,
-                  Just ("kind" .= _advdKind),
-                  ("suspended" .=) <$> _advdSuspended,
-                  ("idDimensionValue" .=) <$> _advdIdDimensionValue,
-                  ("accountId" .=) <$> _advdAccountId,
-                  ("defaultEmail" .=) <$> _advdDefaultEmail,
-                  ("name" .=) <$> _advdName,
-                  ("advertiserGroupId" .=) <$> _advdAdvertiserGroupId,
-                  ("defaultClickThroughEventTagId" .=) <$>
-                    _advdDefaultClickThroughEventTagId,
-                  ("id" .=) <$> _advdId,
-                  ("subaccountId" .=) <$> _advdSubAccountId,
-                  ("floodlightConfigurationIdDimensionValue" .=) <$>
-                    _advdFloodlightConfigurationIdDimensionValue,
-                  ("clickThroughUrlSuffix" .=) <$>
-                    _advdClickThroughURLSuffix])
-
--- | Contains properties of auser role, which is used to manage user access.
---
--- /See:/ 'userRole' smart constructor.
-data UserRole = UserRole
-    { _urParentUserRoleId :: !(Maybe (Textual Int64))
-    , _urKind             :: !Text
-    , _urDefaultUserRole  :: !(Maybe Bool)
-    , _urAccountId        :: !(Maybe (Textual Int64))
-    , _urName             :: !(Maybe Text)
-    , _urId               :: !(Maybe (Textual Int64))
-    , _urPermissions      :: !(Maybe [UserRolePermission])
-    , _urSubAccountId     :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserRole' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'urParentUserRoleId'
---
--- * 'urKind'
---
--- * 'urDefaultUserRole'
---
--- * 'urAccountId'
---
--- * 'urName'
---
--- * 'urId'
---
--- * 'urPermissions'
---
--- * 'urSubAccountId'
-userRole
-    :: UserRole
-userRole =
-    UserRole
-    { _urParentUserRoleId = Nothing
-    , _urKind = "dfareporting#userRole"
-    , _urDefaultUserRole = Nothing
-    , _urAccountId = Nothing
-    , _urName = Nothing
-    , _urId = Nothing
-    , _urPermissions = Nothing
-    , _urSubAccountId = Nothing
-    }
-
--- | ID of the user role that this user role is based on or copied from. This
--- is a required field.
-urParentUserRoleId :: Lens' UserRole (Maybe Int64)
-urParentUserRoleId
-  = lens _urParentUserRoleId
-      (\ s a -> s{_urParentUserRoleId = a})
-      . mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#userRole\".
-urKind :: Lens' UserRole Text
-urKind = lens _urKind (\ s a -> s{_urKind = a})
-
--- | Whether this is a default user role. Default user roles are created by
--- the system for the account\/subaccount and cannot be modified or
--- deleted. Each default user role comes with a basic set of preassigned
--- permissions.
-urDefaultUserRole :: Lens' UserRole (Maybe Bool)
-urDefaultUserRole
-  = lens _urDefaultUserRole
-      (\ s a -> s{_urDefaultUserRole = a})
-
--- | Account ID of this user role. This is a read-only field that can be left
--- blank.
-urAccountId :: Lens' UserRole (Maybe Int64)
-urAccountId
-  = lens _urAccountId (\ s a -> s{_urAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this user role. This is a required field. Must be less than 256
--- characters long. If this user role is under a subaccount, the name must
--- be unique among sites of the same subaccount. Otherwise, this user role
--- is a top-level user role, and the name must be unique among top-level
--- user roles of the same account.
-urName :: Lens' UserRole (Maybe Text)
-urName = lens _urName (\ s a -> s{_urName = a})
-
--- | ID of this user role. This is a read-only, auto-generated field.
-urId :: Lens' UserRole (Maybe Int64)
-urId
-  = lens _urId (\ s a -> s{_urId = a}) .
-      mapping _Coerce
-
--- | List of permissions associated with this user role.
-urPermissions :: Lens' UserRole [UserRolePermission]
-urPermissions
-  = lens _urPermissions
-      (\ s a -> s{_urPermissions = a})
-      . _Default
-      . _Coerce
-
--- | Subaccount ID of this user role. This is a read-only field that can be
--- left blank.
-urSubAccountId :: Lens' UserRole (Maybe Int64)
-urSubAccountId
-  = lens _urSubAccountId
-      (\ s a -> s{_urSubAccountId = a})
-      . mapping _Coerce
-
-instance FromJSON UserRole where
-        parseJSON
-          = withObject "UserRole"
-              (\ o ->
-                 UserRole <$>
-                   (o .:? "parentUserRoleId") <*>
-                     (o .:? "kind" .!= "dfareporting#userRole")
-                     <*> (o .:? "defaultUserRole")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "permissions" .!= mempty)
-                     <*> (o .:? "subaccountId"))
-
-instance ToJSON UserRole where
-        toJSON UserRole{..}
-          = object
-              (catMaybes
-                 [("parentUserRoleId" .=) <$> _urParentUserRoleId,
-                  Just ("kind" .= _urKind),
-                  ("defaultUserRole" .=) <$> _urDefaultUserRole,
-                  ("accountId" .=) <$> _urAccountId,
-                  ("name" .=) <$> _urName, ("id" .=) <$> _urId,
-                  ("permissions" .=) <$> _urPermissions,
-                  ("subaccountId" .=) <$> _urSubAccountId])
-
--- | Directory Site List Response
---
--- /See:/ 'directorySitesListResponse' smart constructor.
-data DirectorySitesListResponse = DirectorySitesListResponse
-    { _dslrNextPageToken  :: !(Maybe Text)
-    , _dslrKind           :: !Text
-    , _dslrDirectorySites :: !(Maybe [DirectorySite])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DirectorySitesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dslrNextPageToken'
---
--- * 'dslrKind'
---
--- * 'dslrDirectorySites'
-directorySitesListResponse
-    :: DirectorySitesListResponse
-directorySitesListResponse =
-    DirectorySitesListResponse
-    { _dslrNextPageToken = Nothing
-    , _dslrKind = "dfareporting#directorySitesListResponse"
-    , _dslrDirectorySites = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-dslrNextPageToken :: Lens' DirectorySitesListResponse (Maybe Text)
-dslrNextPageToken
-  = lens _dslrNextPageToken
-      (\ s a -> s{_dslrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#directorySitesListResponse\".
-dslrKind :: Lens' DirectorySitesListResponse Text
-dslrKind = lens _dslrKind (\ s a -> s{_dslrKind = a})
-
--- | Directory site collection.
-dslrDirectorySites :: Lens' DirectorySitesListResponse [DirectorySite]
-dslrDirectorySites
-  = lens _dslrDirectorySites
-      (\ s a -> s{_dslrDirectorySites = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON DirectorySitesListResponse where
-        parseJSON
-          = withObject "DirectorySitesListResponse"
-              (\ o ->
-                 DirectorySitesListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#directorySitesListResponse")
-                     <*> (o .:? "directorySites" .!= mempty))
-
-instance ToJSON DirectorySitesListResponse where
-        toJSON DirectorySitesListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _dslrNextPageToken,
-                  Just ("kind" .= _dslrKind),
-                  ("directorySites" .=) <$> _dslrDirectorySites])
-
--- | Pricing Period
---
--- /See:/ 'pricingSchedulePricingPeriod' smart constructor.
-data PricingSchedulePricingPeriod = PricingSchedulePricingPeriod
-    { _psppEndDate         :: !(Maybe Date')
-    , _psppRateOrCostNanos :: !(Maybe (Textual Int64))
-    , _psppStartDate       :: !(Maybe Date')
-    , _psppUnits           :: !(Maybe (Textual Int64))
-    , _psppPricingComment  :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PricingSchedulePricingPeriod' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'psppEndDate'
---
--- * 'psppRateOrCostNanos'
---
--- * 'psppStartDate'
---
--- * 'psppUnits'
---
--- * 'psppPricingComment'
-pricingSchedulePricingPeriod
-    :: PricingSchedulePricingPeriod
-pricingSchedulePricingPeriod =
-    PricingSchedulePricingPeriod
-    { _psppEndDate = Nothing
-    , _psppRateOrCostNanos = Nothing
-    , _psppStartDate = Nothing
-    , _psppUnits = Nothing
-    , _psppPricingComment = Nothing
-    }
-
--- | Pricing period end date. This date must be later than, or the same day
--- as, the pricing period start date, but not later than the placement end
--- date. The period end date can be the same date as the period start date.
--- If, for example, you set 6\/25\/2015 as both the start and end dates,
--- the effective pricing period date is just that day only, 6\/25\/2015.
--- The hours, minutes, and seconds of the end date should not be set, as
--- doing so will result in an error.
-psppEndDate :: Lens' PricingSchedulePricingPeriod (Maybe Day)
-psppEndDate
-  = lens _psppEndDate (\ s a -> s{_psppEndDate = a}) .
-      mapping _Date
-
--- | Rate or cost of this pricing period.
-psppRateOrCostNanos :: Lens' PricingSchedulePricingPeriod (Maybe Int64)
-psppRateOrCostNanos
-  = lens _psppRateOrCostNanos
-      (\ s a -> s{_psppRateOrCostNanos = a})
-      . mapping _Coerce
-
--- | Pricing period start date. This date must be later than, or the same day
--- as, the placement start date. The hours, minutes, and seconds of the
--- start date should not be set, as doing so will result in an error.
-psppStartDate :: Lens' PricingSchedulePricingPeriod (Maybe Day)
-psppStartDate
-  = lens _psppStartDate
-      (\ s a -> s{_psppStartDate = a})
-      . mapping _Date
-
--- | Units of this pricing period.
-psppUnits :: Lens' PricingSchedulePricingPeriod (Maybe Int64)
-psppUnits
-  = lens _psppUnits (\ s a -> s{_psppUnits = a}) .
-      mapping _Coerce
-
--- | Comments for this pricing period.
-psppPricingComment :: Lens' PricingSchedulePricingPeriod (Maybe Text)
-psppPricingComment
-  = lens _psppPricingComment
-      (\ s a -> s{_psppPricingComment = a})
-
-instance FromJSON PricingSchedulePricingPeriod where
-        parseJSON
-          = withObject "PricingSchedulePricingPeriod"
-              (\ o ->
-                 PricingSchedulePricingPeriod <$>
-                   (o .:? "endDate") <*> (o .:? "rateOrCostNanos") <*>
-                     (o .:? "startDate")
-                     <*> (o .:? "units")
-                     <*> (o .:? "pricingComment"))
-
-instance ToJSON PricingSchedulePricingPeriod where
-        toJSON PricingSchedulePricingPeriod{..}
-          = object
-              (catMaybes
-                 [("endDate" .=) <$> _psppEndDate,
-                  ("rateOrCostNanos" .=) <$> _psppRateOrCostNanos,
-                  ("startDate" .=) <$> _psppStartDate,
-                  ("units" .=) <$> _psppUnits,
-                  ("pricingComment" .=) <$> _psppPricingComment])
-
--- | Directory Site Contact List Response
---
--- /See:/ 'directorySiteContactsListResponse' smart constructor.
-data DirectorySiteContactsListResponse = DirectorySiteContactsListResponse
-    { _dsclrNextPageToken         :: !(Maybe Text)
-    , _dsclrKind                  :: !Text
-    , _dsclrDirectorySiteContacts :: !(Maybe [DirectorySiteContact])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DirectorySiteContactsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dsclrNextPageToken'
---
--- * 'dsclrKind'
---
--- * 'dsclrDirectorySiteContacts'
-directorySiteContactsListResponse
-    :: DirectorySiteContactsListResponse
-directorySiteContactsListResponse =
-    DirectorySiteContactsListResponse
-    { _dsclrNextPageToken = Nothing
-    , _dsclrKind = "dfareporting#directorySiteContactsListResponse"
-    , _dsclrDirectorySiteContacts = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-dsclrNextPageToken :: Lens' DirectorySiteContactsListResponse (Maybe Text)
-dsclrNextPageToken
-  = lens _dsclrNextPageToken
-      (\ s a -> s{_dsclrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#directorySiteContactsListResponse\".
-dsclrKind :: Lens' DirectorySiteContactsListResponse Text
-dsclrKind
-  = lens _dsclrKind (\ s a -> s{_dsclrKind = a})
-
--- | Directory site contact collection
-dsclrDirectorySiteContacts :: Lens' DirectorySiteContactsListResponse [DirectorySiteContact]
-dsclrDirectorySiteContacts
-  = lens _dsclrDirectorySiteContacts
-      (\ s a -> s{_dsclrDirectorySiteContacts = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON DirectorySiteContactsListResponse
-         where
-        parseJSON
-          = withObject "DirectorySiteContactsListResponse"
-              (\ o ->
-                 DirectorySiteContactsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#directorySiteContactsListResponse")
-                     <*> (o .:? "directorySiteContacts" .!= mempty))
-
-instance ToJSON DirectorySiteContactsListResponse
-         where
-        toJSON DirectorySiteContactsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _dsclrNextPageToken,
-                  Just ("kind" .= _dsclrKind),
-                  ("directorySiteContacts" .=) <$>
-                    _dsclrDirectorySiteContacts])
-
--- | Contains information about a region that can be targeted by ads.
---
--- /See:/ 'region' smart constructor.
-data Region = Region
-    { _regRegionCode    :: !(Maybe Text)
-    , _regKind          :: !Text
-    , _regName          :: !(Maybe Text)
-    , _regCountryCode   :: !(Maybe Text)
-    , _regCountryDartId :: !(Maybe (Textual Int64))
-    , _regDartId        :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Region' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'regRegionCode'
---
--- * 'regKind'
---
--- * 'regName'
---
--- * 'regCountryCode'
---
--- * 'regCountryDartId'
---
--- * 'regDartId'
-region
-    :: Region
-region =
-    Region
-    { _regRegionCode = Nothing
-    , _regKind = "dfareporting#region"
-    , _regName = Nothing
-    , _regCountryCode = Nothing
-    , _regCountryDartId = Nothing
-    , _regDartId = Nothing
-    }
-
--- | Region code.
-regRegionCode :: Lens' Region (Maybe Text)
-regRegionCode
-  = lens _regRegionCode
-      (\ s a -> s{_regRegionCode = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#region\".
-regKind :: Lens' Region Text
-regKind = lens _regKind (\ s a -> s{_regKind = a})
-
--- | Name of this region.
-regName :: Lens' Region (Maybe Text)
-regName = lens _regName (\ s a -> s{_regName = a})
-
--- | Country code of the country to which this region belongs.
-regCountryCode :: Lens' Region (Maybe Text)
-regCountryCode
-  = lens _regCountryCode
-      (\ s a -> s{_regCountryCode = a})
-
--- | DART ID of the country to which this region belongs.
-regCountryDartId :: Lens' Region (Maybe Int64)
-regCountryDartId
-  = lens _regCountryDartId
-      (\ s a -> s{_regCountryDartId = a})
-      . mapping _Coerce
-
--- | DART ID of this region.
-regDartId :: Lens' Region (Maybe Int64)
-regDartId
-  = lens _regDartId (\ s a -> s{_regDartId = a}) .
-      mapping _Coerce
-
-instance FromJSON Region where
-        parseJSON
-          = withObject "Region"
-              (\ o ->
-                 Region <$>
-                   (o .:? "regionCode") <*>
-                     (o .:? "kind" .!= "dfareporting#region")
-                     <*> (o .:? "name")
-                     <*> (o .:? "countryCode")
-                     <*> (o .:? "countryDartId")
-                     <*> (o .:? "dartId"))
-
-instance ToJSON Region where
-        toJSON Region{..}
-          = object
-              (catMaybes
-                 [("regionCode" .=) <$> _regRegionCode,
-                  Just ("kind" .= _regKind), ("name" .=) <$> _regName,
-                  ("countryCode" .=) <$> _regCountryCode,
-                  ("countryDartId" .=) <$> _regCountryDartId,
-                  ("dartId" .=) <$> _regDartId])
-
--- | Advertiser Group List Response
---
--- /See:/ 'advertiserGroupsListResponse' smart constructor.
-data AdvertiserGroupsListResponse = AdvertiserGroupsListResponse
-    { _aglrNextPageToken    :: !(Maybe Text)
-    , _aglrKind             :: !Text
-    , _aglrAdvertiserGroups :: !(Maybe [AdvertiserGroup])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AdvertiserGroupsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aglrNextPageToken'
---
--- * 'aglrKind'
---
--- * 'aglrAdvertiserGroups'
-advertiserGroupsListResponse
-    :: AdvertiserGroupsListResponse
-advertiserGroupsListResponse =
-    AdvertiserGroupsListResponse
-    { _aglrNextPageToken = Nothing
-    , _aglrKind = "dfareporting#advertiserGroupsListResponse"
-    , _aglrAdvertiserGroups = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-aglrNextPageToken :: Lens' AdvertiserGroupsListResponse (Maybe Text)
-aglrNextPageToken
-  = lens _aglrNextPageToken
-      (\ s a -> s{_aglrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#advertiserGroupsListResponse\".
-aglrKind :: Lens' AdvertiserGroupsListResponse Text
-aglrKind = lens _aglrKind (\ s a -> s{_aglrKind = a})
-
--- | Advertiser group collection.
-aglrAdvertiserGroups :: Lens' AdvertiserGroupsListResponse [AdvertiserGroup]
-aglrAdvertiserGroups
-  = lens _aglrAdvertiserGroups
-      (\ s a -> s{_aglrAdvertiserGroups = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON AdvertiserGroupsListResponse where
-        parseJSON
-          = withObject "AdvertiserGroupsListResponse"
-              (\ o ->
-                 AdvertiserGroupsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#advertiserGroupsListResponse")
-                     <*> (o .:? "advertiserGroups" .!= mempty))
-
-instance ToJSON AdvertiserGroupsListResponse where
-        toJSON AdvertiserGroupsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _aglrNextPageToken,
-                  Just ("kind" .= _aglrKind),
-                  ("advertiserGroups" .=) <$> _aglrAdvertiserGroups])
-
--- | Creative Assignment.
---
--- /See:/ 'creativeAssignment' smart constructor.
-data CreativeAssignment = CreativeAssignment
-    { _caCreativeGroupAssignments   :: !(Maybe [CreativeGroupAssignment])
-    , _caStartTime                  :: !(Maybe DateTime')
-    , _caWeight                     :: !(Maybe (Textual Int32))
-    , _caRichMediaExitOverrides     :: !(Maybe [RichMediaExitOverride])
-    , _caSSLCompliant               :: !(Maybe Bool)
-    , _caCreativeId                 :: !(Maybe (Textual Int64))
-    , _caClickThroughURL            :: !(Maybe ClickThroughURL)
-    , _caApplyEventTags             :: !(Maybe Bool)
-    , _caActive                     :: !(Maybe Bool)
-    , _caSequence                   :: !(Maybe (Textual Int32))
-    , _caEndTime                    :: !(Maybe DateTime')
-    , _caCompanionCreativeOverrides :: !(Maybe [CompanionClickThroughOverride])
-    , _caCreativeIdDimensionValue   :: !(Maybe DimensionValue)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeAssignment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caCreativeGroupAssignments'
---
--- * 'caStartTime'
---
--- * 'caWeight'
---
--- * 'caRichMediaExitOverrides'
---
--- * 'caSSLCompliant'
---
--- * 'caCreativeId'
---
--- * 'caClickThroughURL'
---
--- * 'caApplyEventTags'
---
--- * 'caActive'
---
--- * 'caSequence'
---
--- * 'caEndTime'
---
--- * 'caCompanionCreativeOverrides'
---
--- * 'caCreativeIdDimensionValue'
-creativeAssignment
-    :: CreativeAssignment
-creativeAssignment =
-    CreativeAssignment
-    { _caCreativeGroupAssignments = Nothing
-    , _caStartTime = Nothing
-    , _caWeight = Nothing
-    , _caRichMediaExitOverrides = Nothing
-    , _caSSLCompliant = Nothing
-    , _caCreativeId = Nothing
-    , _caClickThroughURL = Nothing
-    , _caApplyEventTags = Nothing
-    , _caActive = Nothing
-    , _caSequence = Nothing
-    , _caEndTime = Nothing
-    , _caCompanionCreativeOverrides = Nothing
-    , _caCreativeIdDimensionValue = Nothing
-    }
-
--- | Creative group assignments for this creative assignment. Only one
--- assignment per creative group number is allowed for a maximum of two
--- assignments.
-caCreativeGroupAssignments :: Lens' CreativeAssignment [CreativeGroupAssignment]
-caCreativeGroupAssignments
-  = lens _caCreativeGroupAssignments
-      (\ s a -> s{_caCreativeGroupAssignments = a})
-      . _Default
-      . _Coerce
-
--- | Date and time that the assigned creative should start serving.
-caStartTime :: Lens' CreativeAssignment (Maybe UTCTime)
-caStartTime
-  = lens _caStartTime (\ s a -> s{_caStartTime = a}) .
-      mapping _DateTime
-
--- | Weight of the creative assignment, applicable when the rotation type is
--- CREATIVE_ROTATION_TYPE_RANDOM.
-caWeight :: Lens' CreativeAssignment (Maybe Int32)
-caWeight
-  = lens _caWeight (\ s a -> s{_caWeight = a}) .
-      mapping _Coerce
-
--- | Rich media exit overrides for this creative assignment. Applicable when
--- the creative type is any of the following: - RICH_MEDIA_INPAGE -
--- RICH_MEDIA_INPAGE_FLOATING - RICH_MEDIA_IM_EXPAND - RICH_MEDIA_EXPANDING
--- - RICH_MEDIA_INTERSTITIAL_FLOAT - RICH_MEDIA_MOBILE_IN_APP -
--- RICH_MEDIA_MULTI_FLOATING - RICH_MEDIA_PEEL_DOWN - ADVANCED_BANNER -
--- VPAID_LINEAR - VPAID_NON_LINEAR
-caRichMediaExitOverrides :: Lens' CreativeAssignment [RichMediaExitOverride]
-caRichMediaExitOverrides
-  = lens _caRichMediaExitOverrides
-      (\ s a -> s{_caRichMediaExitOverrides = a})
-      . _Default
-      . _Coerce
-
--- | Whether the creative to be assigned is SSL-compliant. This is a
--- read-only field that is auto-generated when the ad is inserted or
--- updated.
-caSSLCompliant :: Lens' CreativeAssignment (Maybe Bool)
-caSSLCompliant
-  = lens _caSSLCompliant
-      (\ s a -> s{_caSSLCompliant = a})
-
--- | ID of the creative to be assigned. This is a required field.
-caCreativeId :: Lens' CreativeAssignment (Maybe Int64)
-caCreativeId
-  = lens _caCreativeId (\ s a -> s{_caCreativeId = a})
-      . mapping _Coerce
-
--- | Click-through URL of the creative assignment.
-caClickThroughURL :: Lens' CreativeAssignment (Maybe ClickThroughURL)
-caClickThroughURL
-  = lens _caClickThroughURL
-      (\ s a -> s{_caClickThroughURL = a})
-
--- | Whether applicable event tags should fire when this creative assignment
--- is rendered. If this value is unset when the ad is inserted or updated,
--- it will default to true for all creative types EXCEPT for
--- INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-caApplyEventTags :: Lens' CreativeAssignment (Maybe Bool)
-caApplyEventTags
-  = lens _caApplyEventTags
-      (\ s a -> s{_caApplyEventTags = a})
-
--- | Whether this creative assignment is active. When true, the creative will
--- be included in the ad\'s rotation.
-caActive :: Lens' CreativeAssignment (Maybe Bool)
-caActive = lens _caActive (\ s a -> s{_caActive = a})
-
--- | Sequence number of the creative assignment, applicable when the rotation
--- type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-caSequence :: Lens' CreativeAssignment (Maybe Int32)
-caSequence
-  = lens _caSequence (\ s a -> s{_caSequence = a}) .
-      mapping _Coerce
-
--- | Date and time that the assigned creative should stop serving. Must be
--- later than the start time.
-caEndTime :: Lens' CreativeAssignment (Maybe UTCTime)
-caEndTime
-  = lens _caEndTime (\ s a -> s{_caEndTime = a}) .
-      mapping _DateTime
-
--- | Companion creative overrides for this creative assignment. Applicable to
--- video ads.
-caCompanionCreativeOverrides :: Lens' CreativeAssignment [CompanionClickThroughOverride]
-caCompanionCreativeOverrides
-  = lens _caCompanionCreativeOverrides
-      (\ s a -> s{_caCompanionCreativeOverrides = a})
-      . _Default
-      . _Coerce
-
--- | Dimension value for the ID of the creative. This is a read-only,
--- auto-generated field.
-caCreativeIdDimensionValue :: Lens' CreativeAssignment (Maybe DimensionValue)
-caCreativeIdDimensionValue
-  = lens _caCreativeIdDimensionValue
-      (\ s a -> s{_caCreativeIdDimensionValue = a})
-
-instance FromJSON CreativeAssignment where
-        parseJSON
-          = withObject "CreativeAssignment"
-              (\ o ->
-                 CreativeAssignment <$>
-                   (o .:? "creativeGroupAssignments" .!= mempty) <*>
-                     (o .:? "startTime")
-                     <*> (o .:? "weight")
-                     <*> (o .:? "richMediaExitOverrides" .!= mempty)
-                     <*> (o .:? "sslCompliant")
-                     <*> (o .:? "creativeId")
-                     <*> (o .:? "clickThroughUrl")
-                     <*> (o .:? "applyEventTags")
-                     <*> (o .:? "active")
-                     <*> (o .:? "sequence")
-                     <*> (o .:? "endTime")
-                     <*> (o .:? "companionCreativeOverrides" .!= mempty)
-                     <*> (o .:? "creativeIdDimensionValue"))
-
-instance ToJSON CreativeAssignment where
-        toJSON CreativeAssignment{..}
-          = object
-              (catMaybes
-                 [("creativeGroupAssignments" .=) <$>
-                    _caCreativeGroupAssignments,
-                  ("startTime" .=) <$> _caStartTime,
-                  ("weight" .=) <$> _caWeight,
-                  ("richMediaExitOverrides" .=) <$>
-                    _caRichMediaExitOverrides,
-                  ("sslCompliant" .=) <$> _caSSLCompliant,
-                  ("creativeId" .=) <$> _caCreativeId,
-                  ("clickThroughUrl" .=) <$> _caClickThroughURL,
-                  ("applyEventTags" .=) <$> _caApplyEventTags,
-                  ("active" .=) <$> _caActive,
-                  ("sequence" .=) <$> _caSequence,
-                  ("endTime" .=) <$> _caEndTime,
-                  ("companionCreativeOverrides" .=) <$>
-                    _caCompanionCreativeOverrides,
-                  ("creativeIdDimensionValue" .=) <$>
-                    _caCreativeIdDimensionValue])
-
--- | Represents a dimension filter.
---
--- /See:/ 'dimensionFilter' smart constructor.
-data DimensionFilter = DimensionFilter
-    { _dfKind          :: !Text
-    , _dfValue         :: !(Maybe Text)
-    , _dfDimensionName :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DimensionFilter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dfKind'
---
--- * 'dfValue'
---
--- * 'dfDimensionName'
-dimensionFilter
-    :: DimensionFilter
-dimensionFilter =
-    DimensionFilter
-    { _dfKind = "dfareporting#dimensionFilter"
-    , _dfValue = Nothing
-    , _dfDimensionName = Nothing
-    }
-
--- | The kind of resource this is, in this case dfareporting#dimensionFilter.
-dfKind :: Lens' DimensionFilter Text
-dfKind = lens _dfKind (\ s a -> s{_dfKind = a})
-
--- | The value of the dimension to filter.
-dfValue :: Lens' DimensionFilter (Maybe Text)
-dfValue = lens _dfValue (\ s a -> s{_dfValue = a})
-
--- | The name of the dimension to filter.
-dfDimensionName :: Lens' DimensionFilter (Maybe Text)
-dfDimensionName
-  = lens _dfDimensionName
-      (\ s a -> s{_dfDimensionName = a})
-
-instance FromJSON DimensionFilter where
-        parseJSON
-          = withObject "DimensionFilter"
-              (\ o ->
-                 DimensionFilter <$>
-                   (o .:? "kind" .!= "dfareporting#dimensionFilter") <*>
-                     (o .:? "value")
-                     <*> (o .:? "dimensionName"))
-
-instance ToJSON DimensionFilter where
-        toJSON DimensionFilter{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _dfKind), ("value" .=) <$> _dfValue,
-                  ("dimensionName" .=) <$> _dfDimensionName])
-
--- | Represents the list of user profiles.
---
--- /See:/ 'userProFileList' smart constructor.
-data UserProFileList = UserProFileList
-    { _upflEtag  :: !(Maybe Text)
-    , _upflKind  :: !Text
-    , _upflItems :: !(Maybe [UserProFile])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserProFileList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'upflEtag'
---
--- * 'upflKind'
---
--- * 'upflItems'
-userProFileList
-    :: UserProFileList
-userProFileList =
-    UserProFileList
-    { _upflEtag = Nothing
-    , _upflKind = "dfareporting#userProfileList"
-    , _upflItems = Nothing
-    }
-
--- | The eTag of this response for caching purposes.
-upflEtag :: Lens' UserProFileList (Maybe Text)
-upflEtag = lens _upflEtag (\ s a -> s{_upflEtag = a})
-
--- | The kind of list this is, in this case dfareporting#userProfileList.
-upflKind :: Lens' UserProFileList Text
-upflKind = lens _upflKind (\ s a -> s{_upflKind = a})
-
--- | The user profiles returned in this response.
-upflItems :: Lens' UserProFileList [UserProFile]
-upflItems
-  = lens _upflItems (\ s a -> s{_upflItems = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON UserProFileList where
-        parseJSON
-          = withObject "UserProFileList"
-              (\ o ->
-                 UserProFileList <$>
-                   (o .:? "etag") <*>
-                     (o .:? "kind" .!= "dfareporting#userProfileList")
-                     <*> (o .:? "items" .!= mempty))
-
-instance ToJSON UserProFileList where
-        toJSON UserProFileList{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _upflEtag,
-                  Just ("kind" .= _upflKind),
-                  ("items" .=) <$> _upflItems])
-
--- | Contains properties of a Floodlight configuration.
---
--- /See:/ 'floodlightConfiguration' smart constructor.
-data FloodlightConfiguration = FloodlightConfiguration
-    { _fcTagSettings                              :: !(Maybe TagSettings)
-    , _fcExposureToConversionEnabled              :: !(Maybe Bool)
-    , _fcInAppAttributionTrackingEnabled          :: !(Maybe Bool)
-    , _fcThirdPartyAuthenticationTokens           :: !(Maybe [ThirdPartyAuthenticationToken])
-    , _fcKind                                     :: !Text
-    , _fcAdvertiserId                             :: !(Maybe (Textual Int64))
-    , _fcAnalyticsDataSharingEnabled              :: !(Maybe Bool)
-    , _fcAdvertiserIdDimensionValue               :: !(Maybe DimensionValue)
-    , _fcIdDimensionValue                         :: !(Maybe DimensionValue)
-    , _fcLookbackConfiguration                    :: !(Maybe LookbackConfiguration)
-    , _fcAccountId                                :: !(Maybe (Textual Int64))
-    , _fcId                                       :: !(Maybe (Textual Int64))
-    , _fcSSLRequired                              :: !(Maybe Bool)
-    , _fcNATuralSearchConversionAttributionOption :: !(Maybe FloodlightConfigurationNATuralSearchConversionAttributionOption)
-    , _fcUserDefinedVariableConfigurations        :: !(Maybe [UserDefinedVariableConfiguration])
-    , _fcSubAccountId                             :: !(Maybe (Textual Int64))
-    , _fcFirstDayOfWeek                           :: !(Maybe FloodlightConfigurationFirstDayOfWeek)
-    , _fcOmnitureSettings                         :: !(Maybe OmnitureSettings)
-    , _fcStandardVariableTypes                    :: !(Maybe [FloodlightConfigurationStandardVariableTypesItem])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fcTagSettings'
---
--- * 'fcExposureToConversionEnabled'
---
--- * 'fcInAppAttributionTrackingEnabled'
---
--- * 'fcThirdPartyAuthenticationTokens'
---
--- * 'fcKind'
---
--- * 'fcAdvertiserId'
---
--- * 'fcAnalyticsDataSharingEnabled'
---
--- * 'fcAdvertiserIdDimensionValue'
---
--- * 'fcIdDimensionValue'
---
--- * 'fcLookbackConfiguration'
---
--- * 'fcAccountId'
---
--- * 'fcId'
---
--- * 'fcSSLRequired'
---
--- * 'fcNATuralSearchConversionAttributionOption'
---
--- * 'fcUserDefinedVariableConfigurations'
---
--- * 'fcSubAccountId'
---
--- * 'fcFirstDayOfWeek'
---
--- * 'fcOmnitureSettings'
---
--- * 'fcStandardVariableTypes'
-floodlightConfiguration
-    :: FloodlightConfiguration
-floodlightConfiguration =
-    FloodlightConfiguration
-    { _fcTagSettings = Nothing
-    , _fcExposureToConversionEnabled = Nothing
-    , _fcInAppAttributionTrackingEnabled = Nothing
-    , _fcThirdPartyAuthenticationTokens = Nothing
-    , _fcKind = "dfareporting#floodlightConfiguration"
-    , _fcAdvertiserId = Nothing
-    , _fcAnalyticsDataSharingEnabled = Nothing
-    , _fcAdvertiserIdDimensionValue = Nothing
-    , _fcIdDimensionValue = Nothing
-    , _fcLookbackConfiguration = Nothing
-    , _fcAccountId = Nothing
-    , _fcId = Nothing
-    , _fcSSLRequired = Nothing
-    , _fcNATuralSearchConversionAttributionOption = Nothing
-    , _fcUserDefinedVariableConfigurations = Nothing
-    , _fcSubAccountId = Nothing
-    , _fcFirstDayOfWeek = Nothing
-    , _fcOmnitureSettings = Nothing
-    , _fcStandardVariableTypes = Nothing
-    }
-
--- | Configuration settings for dynamic and image floodlight tags.
-fcTagSettings :: Lens' FloodlightConfiguration (Maybe TagSettings)
-fcTagSettings
-  = lens _fcTagSettings
-      (\ s a -> s{_fcTagSettings = a})
-
--- | Whether the exposure-to-conversion report is enabled. This report shows
--- detailed pathway information on up to 10 of the most recent ad exposures
--- seen by a user before converting.
-fcExposureToConversionEnabled :: Lens' FloodlightConfiguration (Maybe Bool)
-fcExposureToConversionEnabled
-  = lens _fcExposureToConversionEnabled
-      (\ s a -> s{_fcExposureToConversionEnabled = a})
-
--- | Whether in-app attribution tracking is enabled.
-fcInAppAttributionTrackingEnabled :: Lens' FloodlightConfiguration (Maybe Bool)
-fcInAppAttributionTrackingEnabled
-  = lens _fcInAppAttributionTrackingEnabled
-      (\ s a -> s{_fcInAppAttributionTrackingEnabled = a})
-
--- | List of third-party authentication tokens enabled for this
--- configuration.
-fcThirdPartyAuthenticationTokens :: Lens' FloodlightConfiguration [ThirdPartyAuthenticationToken]
-fcThirdPartyAuthenticationTokens
-  = lens _fcThirdPartyAuthenticationTokens
-      (\ s a -> s{_fcThirdPartyAuthenticationTokens = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#floodlightConfiguration\".
-fcKind :: Lens' FloodlightConfiguration Text
-fcKind = lens _fcKind (\ s a -> s{_fcKind = a})
-
--- | Advertiser ID of the parent advertiser of this floodlight configuration.
-fcAdvertiserId :: Lens' FloodlightConfiguration (Maybe Int64)
-fcAdvertiserId
-  = lens _fcAdvertiserId
-      (\ s a -> s{_fcAdvertiserId = a})
-      . mapping _Coerce
-
--- | Whether advertiser data is shared with Google Analytics.
-fcAnalyticsDataSharingEnabled :: Lens' FloodlightConfiguration (Maybe Bool)
-fcAnalyticsDataSharingEnabled
-  = lens _fcAnalyticsDataSharingEnabled
-      (\ s a -> s{_fcAnalyticsDataSharingEnabled = a})
-
--- | Dimension value for the ID of the advertiser. This is a read-only,
--- auto-generated field.
-fcAdvertiserIdDimensionValue :: Lens' FloodlightConfiguration (Maybe DimensionValue)
-fcAdvertiserIdDimensionValue
-  = lens _fcAdvertiserIdDimensionValue
-      (\ s a -> s{_fcAdvertiserIdDimensionValue = a})
-
--- | Dimension value for the ID of this floodlight configuration. This is a
--- read-only, auto-generated field.
-fcIdDimensionValue :: Lens' FloodlightConfiguration (Maybe DimensionValue)
-fcIdDimensionValue
-  = lens _fcIdDimensionValue
-      (\ s a -> s{_fcIdDimensionValue = a})
-
--- | Lookback window settings for this floodlight configuration.
-fcLookbackConfiguration :: Lens' FloodlightConfiguration (Maybe LookbackConfiguration)
-fcLookbackConfiguration
-  = lens _fcLookbackConfiguration
-      (\ s a -> s{_fcLookbackConfiguration = a})
-
--- | Account ID of this floodlight configuration. This is a read-only field
--- that can be left blank.
-fcAccountId :: Lens' FloodlightConfiguration (Maybe Int64)
-fcAccountId
-  = lens _fcAccountId (\ s a -> s{_fcAccountId = a}) .
-      mapping _Coerce
-
--- | ID of this floodlight configuration. This is a read-only, auto-generated
--- field.
-fcId :: Lens' FloodlightConfiguration (Maybe Int64)
-fcId
-  = lens _fcId (\ s a -> s{_fcId = a}) .
-      mapping _Coerce
-
--- | Whether floodlight activities owned by this configuration are required
--- to be SSL-compliant.
-fcSSLRequired :: Lens' FloodlightConfiguration (Maybe Bool)
-fcSSLRequired
-  = lens _fcSSLRequired
-      (\ s a -> s{_fcSSLRequired = a})
-
--- | Types of attribution options for natural search conversions.
-fcNATuralSearchConversionAttributionOption :: Lens' FloodlightConfiguration (Maybe FloodlightConfigurationNATuralSearchConversionAttributionOption)
-fcNATuralSearchConversionAttributionOption
-  = lens _fcNATuralSearchConversionAttributionOption
-      (\ s a ->
-         s{_fcNATuralSearchConversionAttributionOption = a})
-
--- | List of user defined variables enabled for this configuration.
-fcUserDefinedVariableConfigurations :: Lens' FloodlightConfiguration [UserDefinedVariableConfiguration]
-fcUserDefinedVariableConfigurations
-  = lens _fcUserDefinedVariableConfigurations
-      (\ s a ->
-         s{_fcUserDefinedVariableConfigurations = a})
-      . _Default
-      . _Coerce
-
--- | Subaccount ID of this floodlight configuration. This is a read-only
--- field that can be left blank.
-fcSubAccountId :: Lens' FloodlightConfiguration (Maybe Int64)
-fcSubAccountId
-  = lens _fcSubAccountId
-      (\ s a -> s{_fcSubAccountId = a})
-      . mapping _Coerce
-
--- | Day that will be counted as the first day of the week in reports. This
--- is a required field.
-fcFirstDayOfWeek :: Lens' FloodlightConfiguration (Maybe FloodlightConfigurationFirstDayOfWeek)
-fcFirstDayOfWeek
-  = lens _fcFirstDayOfWeek
-      (\ s a -> s{_fcFirstDayOfWeek = a})
-
--- | Settings for DCM Omniture integration.
-fcOmnitureSettings :: Lens' FloodlightConfiguration (Maybe OmnitureSettings)
-fcOmnitureSettings
-  = lens _fcOmnitureSettings
-      (\ s a -> s{_fcOmnitureSettings = a})
-
--- | List of standard variables enabled for this configuration. Acceptable
--- values are: - \"ORD\" - \"NUM\"
-fcStandardVariableTypes :: Lens' FloodlightConfiguration [FloodlightConfigurationStandardVariableTypesItem]
-fcStandardVariableTypes
-  = lens _fcStandardVariableTypes
-      (\ s a -> s{_fcStandardVariableTypes = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON FloodlightConfiguration where
-        parseJSON
-          = withObject "FloodlightConfiguration"
-              (\ o ->
-                 FloodlightConfiguration <$>
-                   (o .:? "tagSettings") <*>
-                     (o .:? "exposureToConversionEnabled")
-                     <*> (o .:? "inAppAttributionTrackingEnabled")
-                     <*>
-                     (o .:? "thirdPartyAuthenticationTokens" .!= mempty)
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#floodlightConfiguration")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "analyticsDataSharingEnabled")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "lookbackConfiguration")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "sslRequired")
-                     <*>
-                     (o .:? "naturalSearchConversionAttributionOption")
-                     <*>
-                     (o .:? "userDefinedVariableConfigurations" .!=
-                        mempty)
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "firstDayOfWeek")
-                     <*> (o .:? "omnitureSettings")
-                     <*> (o .:? "standardVariableTypes" .!= mempty))
-
-instance ToJSON FloodlightConfiguration where
-        toJSON FloodlightConfiguration{..}
-          = object
-              (catMaybes
-                 [("tagSettings" .=) <$> _fcTagSettings,
-                  ("exposureToConversionEnabled" .=) <$>
-                    _fcExposureToConversionEnabled,
-                  ("inAppAttributionTrackingEnabled" .=) <$>
-                    _fcInAppAttributionTrackingEnabled,
-                  ("thirdPartyAuthenticationTokens" .=) <$>
-                    _fcThirdPartyAuthenticationTokens,
-                  Just ("kind" .= _fcKind),
-                  ("advertiserId" .=) <$> _fcAdvertiserId,
-                  ("analyticsDataSharingEnabled" .=) <$>
-                    _fcAnalyticsDataSharingEnabled,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _fcAdvertiserIdDimensionValue,
-                  ("idDimensionValue" .=) <$> _fcIdDimensionValue,
-                  ("lookbackConfiguration" .=) <$>
-                    _fcLookbackConfiguration,
-                  ("accountId" .=) <$> _fcAccountId,
-                  ("id" .=) <$> _fcId,
-                  ("sslRequired" .=) <$> _fcSSLRequired,
-                  ("naturalSearchConversionAttributionOption" .=) <$>
-                    _fcNATuralSearchConversionAttributionOption,
-                  ("userDefinedVariableConfigurations" .=) <$>
-                    _fcUserDefinedVariableConfigurations,
-                  ("subaccountId" .=) <$> _fcSubAccountId,
-                  ("firstDayOfWeek" .=) <$> _fcFirstDayOfWeek,
-                  ("omnitureSettings" .=) <$> _fcOmnitureSettings,
-                  ("standardVariableTypes" .=) <$>
-                    _fcStandardVariableTypes])
-
--- | Floodlight Activity Group List Response
---
--- /See:/ 'floodlightActivityGroupsListResponse' smart constructor.
-data FloodlightActivityGroupsListResponse = FloodlightActivityGroupsListResponse
-    { _faglrNextPageToken            :: !(Maybe Text)
-    , _faglrKind                     :: !Text
-    , _faglrFloodlightActivityGroups :: !(Maybe [FloodlightActivityGroup])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightActivityGroupsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'faglrNextPageToken'
---
--- * 'faglrKind'
---
--- * 'faglrFloodlightActivityGroups'
-floodlightActivityGroupsListResponse
-    :: FloodlightActivityGroupsListResponse
-floodlightActivityGroupsListResponse =
-    FloodlightActivityGroupsListResponse
-    { _faglrNextPageToken = Nothing
-    , _faglrKind = "dfareporting#floodlightActivityGroupsListResponse"
-    , _faglrFloodlightActivityGroups = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-faglrNextPageToken :: Lens' FloodlightActivityGroupsListResponse (Maybe Text)
-faglrNextPageToken
-  = lens _faglrNextPageToken
-      (\ s a -> s{_faglrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#floodlightActivityGroupsListResponse\".
-faglrKind :: Lens' FloodlightActivityGroupsListResponse Text
-faglrKind
-  = lens _faglrKind (\ s a -> s{_faglrKind = a})
-
--- | Floodlight activity group collection.
-faglrFloodlightActivityGroups :: Lens' FloodlightActivityGroupsListResponse [FloodlightActivityGroup]
-faglrFloodlightActivityGroups
-  = lens _faglrFloodlightActivityGroups
-      (\ s a -> s{_faglrFloodlightActivityGroups = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-         FloodlightActivityGroupsListResponse where
-        parseJSON
-          = withObject "FloodlightActivityGroupsListResponse"
-              (\ o ->
-                 FloodlightActivityGroupsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#floodlightActivityGroupsListResponse")
-                     <*> (o .:? "floodlightActivityGroups" .!= mempty))
-
-instance ToJSON FloodlightActivityGroupsListResponse
-         where
-        toJSON FloodlightActivityGroupsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _faglrNextPageToken,
-                  Just ("kind" .= _faglrKind),
-                  ("floodlightActivityGroups" .=) <$>
-                    _faglrFloodlightActivityGroups])
-
--- | Creative Field Value List Response
---
--- /See:/ 'creativeFieldValuesListResponse' smart constructor.
-data CreativeFieldValuesListResponse = CreativeFieldValuesListResponse
-    { _cfvlrNextPageToken       :: !(Maybe Text)
-    , _cfvlrKind                :: !Text
-    , _cfvlrCreativeFieldValues :: !(Maybe [CreativeFieldValue])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeFieldValuesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cfvlrNextPageToken'
---
--- * 'cfvlrKind'
---
--- * 'cfvlrCreativeFieldValues'
-creativeFieldValuesListResponse
-    :: CreativeFieldValuesListResponse
-creativeFieldValuesListResponse =
-    CreativeFieldValuesListResponse
-    { _cfvlrNextPageToken = Nothing
-    , _cfvlrKind = "dfareporting#creativeFieldValuesListResponse"
-    , _cfvlrCreativeFieldValues = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-cfvlrNextPageToken :: Lens' CreativeFieldValuesListResponse (Maybe Text)
-cfvlrNextPageToken
-  = lens _cfvlrNextPageToken
-      (\ s a -> s{_cfvlrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#creativeFieldValuesListResponse\".
-cfvlrKind :: Lens' CreativeFieldValuesListResponse Text
-cfvlrKind
-  = lens _cfvlrKind (\ s a -> s{_cfvlrKind = a})
-
--- | Creative field value collection.
-cfvlrCreativeFieldValues :: Lens' CreativeFieldValuesListResponse [CreativeFieldValue]
-cfvlrCreativeFieldValues
-  = lens _cfvlrCreativeFieldValues
-      (\ s a -> s{_cfvlrCreativeFieldValues = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON CreativeFieldValuesListResponse
-         where
-        parseJSON
-          = withObject "CreativeFieldValuesListResponse"
-              (\ o ->
-                 CreativeFieldValuesListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#creativeFieldValuesListResponse")
-                     <*> (o .:? "creativeFieldValues" .!= mempty))
-
-instance ToJSON CreativeFieldValuesListResponse where
-        toJSON CreativeFieldValuesListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _cfvlrNextPageToken,
-                  Just ("kind" .= _cfvlrKind),
-                  ("creativeFieldValues" .=) <$>
-                    _cfvlrCreativeFieldValues])
-
--- | Rich Media Exit Override.
---
--- /See:/ 'richMediaExitOverride' smart constructor.
-data RichMediaExitOverride = RichMediaExitOverride
-    { _rmeoUseCustomExitURL :: !(Maybe Bool)
-    , _rmeoExitId           :: !(Maybe (Textual Int64))
-    , _rmeoCustomExitURL    :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RichMediaExitOverride' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rmeoUseCustomExitURL'
---
--- * 'rmeoExitId'
---
--- * 'rmeoCustomExitURL'
-richMediaExitOverride
-    :: RichMediaExitOverride
-richMediaExitOverride =
-    RichMediaExitOverride
-    { _rmeoUseCustomExitURL = Nothing
-    , _rmeoExitId = Nothing
-    , _rmeoCustomExitURL = Nothing
-    }
-
--- | Whether to use the custom exit URL.
-rmeoUseCustomExitURL :: Lens' RichMediaExitOverride (Maybe Bool)
-rmeoUseCustomExitURL
-  = lens _rmeoUseCustomExitURL
-      (\ s a -> s{_rmeoUseCustomExitURL = a})
-
--- | ID for the override to refer to a specific exit in the creative.
-rmeoExitId :: Lens' RichMediaExitOverride (Maybe Int64)
-rmeoExitId
-  = lens _rmeoExitId (\ s a -> s{_rmeoExitId = a}) .
-      mapping _Coerce
-
--- | Click-through URL to override the default exit URL. Applicable if the
--- useCustomExitUrl field is set to true.
-rmeoCustomExitURL :: Lens' RichMediaExitOverride (Maybe Text)
-rmeoCustomExitURL
-  = lens _rmeoCustomExitURL
-      (\ s a -> s{_rmeoCustomExitURL = a})
-
-instance FromJSON RichMediaExitOverride where
-        parseJSON
-          = withObject "RichMediaExitOverride"
-              (\ o ->
-                 RichMediaExitOverride <$>
-                   (o .:? "useCustomExitUrl") <*> (o .:? "exitId") <*>
-                     (o .:? "customExitUrl"))
-
-instance ToJSON RichMediaExitOverride where
-        toJSON RichMediaExitOverride{..}
-          = object
-              (catMaybes
-                 [("useCustomExitUrl" .=) <$> _rmeoUseCustomExitURL,
-                  ("exitId" .=) <$> _rmeoExitId,
-                  ("customExitUrl" .=) <$> _rmeoCustomExitURL])
-
--- | Represents a sorted dimension.
---
--- /See:/ 'sortedDimension' smart constructor.
-data SortedDimension = SortedDimension
-    { _sdKind      :: !Text
-    , _sdSortOrder :: !(Maybe SortedDimensionSortOrder)
-    , _sdName      :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'SortedDimension' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sdKind'
---
--- * 'sdSortOrder'
---
--- * 'sdName'
-sortedDimension
-    :: SortedDimension
-sortedDimension =
-    SortedDimension
-    { _sdKind = "dfareporting#sortedDimension"
-    , _sdSortOrder = Nothing
-    , _sdName = Nothing
-    }
-
--- | The kind of resource this is, in this case dfareporting#sortedDimension.
-sdKind :: Lens' SortedDimension Text
-sdKind = lens _sdKind (\ s a -> s{_sdKind = a})
-
--- | An optional sort order for the dimension column.
-sdSortOrder :: Lens' SortedDimension (Maybe SortedDimensionSortOrder)
-sdSortOrder
-  = lens _sdSortOrder (\ s a -> s{_sdSortOrder = a})
-
--- | The name of the dimension.
-sdName :: Lens' SortedDimension (Maybe Text)
-sdName = lens _sdName (\ s a -> s{_sdName = a})
-
-instance FromJSON SortedDimension where
-        parseJSON
-          = withObject "SortedDimension"
-              (\ o ->
-                 SortedDimension <$>
-                   (o .:? "kind" .!= "dfareporting#sortedDimension") <*>
-                     (o .:? "sortOrder")
-                     <*> (o .:? "name"))
-
-instance ToJSON SortedDimension where
-        toJSON SortedDimension{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _sdKind),
-                  ("sortOrder" .=) <$> _sdSortOrder,
-                  ("name" .=) <$> _sdName])
-
--- | Creative Field List Response
---
--- /See:/ 'creativeFieldsListResponse' smart constructor.
-data CreativeFieldsListResponse = CreativeFieldsListResponse
-    { _cflrNextPageToken  :: !(Maybe Text)
-    , _cflrKind           :: !Text
-    , _cflrCreativeFields :: !(Maybe [CreativeField])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeFieldsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cflrNextPageToken'
---
--- * 'cflrKind'
---
--- * 'cflrCreativeFields'
-creativeFieldsListResponse
-    :: CreativeFieldsListResponse
-creativeFieldsListResponse =
-    CreativeFieldsListResponse
-    { _cflrNextPageToken = Nothing
-    , _cflrKind = "dfareporting#creativeFieldsListResponse"
-    , _cflrCreativeFields = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-cflrNextPageToken :: Lens' CreativeFieldsListResponse (Maybe Text)
-cflrNextPageToken
-  = lens _cflrNextPageToken
-      (\ s a -> s{_cflrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#creativeFieldsListResponse\".
-cflrKind :: Lens' CreativeFieldsListResponse Text
-cflrKind = lens _cflrKind (\ s a -> s{_cflrKind = a})
-
--- | Creative field collection.
-cflrCreativeFields :: Lens' CreativeFieldsListResponse [CreativeField]
-cflrCreativeFields
-  = lens _cflrCreativeFields
-      (\ s a -> s{_cflrCreativeFields = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON CreativeFieldsListResponse where
-        parseJSON
-          = withObject "CreativeFieldsListResponse"
-              (\ o ->
-                 CreativeFieldsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#creativeFieldsListResponse")
-                     <*> (o .:? "creativeFields" .!= mempty))
-
-instance ToJSON CreativeFieldsListResponse where
-        toJSON CreativeFieldsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _cflrNextPageToken,
-                  Just ("kind" .= _cflrKind),
-                  ("creativeFields" .=) <$> _cflrCreativeFields])
-
--- | Placement GenerateTags Response
---
--- /See:/ 'placementsGenerateTagsResponse' smart constructor.
-data PlacementsGenerateTagsResponse = PlacementsGenerateTagsResponse
-    { _pgtrKind          :: !Text
-    , _pgtrPlacementTags :: !(Maybe [PlacementTag])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PlacementsGenerateTagsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pgtrKind'
---
--- * 'pgtrPlacementTags'
-placementsGenerateTagsResponse
-    :: PlacementsGenerateTagsResponse
-placementsGenerateTagsResponse =
-    PlacementsGenerateTagsResponse
-    { _pgtrKind = "dfareporting#placementsGenerateTagsResponse"
-    , _pgtrPlacementTags = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#placementsGenerateTagsResponse\".
-pgtrKind :: Lens' PlacementsGenerateTagsResponse Text
-pgtrKind = lens _pgtrKind (\ s a -> s{_pgtrKind = a})
-
--- | Set of generated tags for the specified placements.
-pgtrPlacementTags :: Lens' PlacementsGenerateTagsResponse [PlacementTag]
-pgtrPlacementTags
-  = lens _pgtrPlacementTags
-      (\ s a -> s{_pgtrPlacementTags = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON PlacementsGenerateTagsResponse
-         where
-        parseJSON
-          = withObject "PlacementsGenerateTagsResponse"
-              (\ o ->
-                 PlacementsGenerateTagsResponse <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#placementsGenerateTagsResponse")
-                     <*> (o .:? "placementTags" .!= mempty))
-
-instance ToJSON PlacementsGenerateTagsResponse where
-        toJSON PlacementsGenerateTagsResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _pgtrKind),
-                  ("placementTags" .=) <$> _pgtrPlacementTags])
-
--- | Creative Asset.
---
--- /See:/ 'creativeAsset' smart constructor.
-data CreativeAsset = CreativeAsset
-    { _caaZIndex                :: !(Maybe (Textual Int32))
-    , _caaPushdown              :: !(Maybe Bool)
-    , _caaVideoDuration         :: !(Maybe (Textual Double))
-    , _caaOriginalBackup        :: !(Maybe Bool)
-    , _caaWindowMode            :: !(Maybe CreativeAssetWindowMode)
-    , _caaFlashVersion          :: !(Maybe (Textual Int32))
-    , _caaPushdownDuration      :: !(Maybe (Textual Double))
-    , _caaSize                  :: !(Maybe Size)
-    , _caaVerticallyLocked      :: !(Maybe Bool)
-    , _caaOffSet                :: !(Maybe OffSetPosition)
-    , _caaStreamingServingURL   :: !(Maybe Text)
-    , _caaZipFilesize           :: !(Maybe Text)
-    , _caaTransparency          :: !(Maybe Bool)
-    , _caaHideSelectionBoxes    :: !(Maybe Bool)
-    , _caaSSLCompliant          :: !(Maybe Bool)
-    , _caaFileSize              :: !(Maybe (Textual Int64))
-    , _caaAssetIdentifier       :: !(Maybe CreativeAssetId)
-    , _caaDurationType          :: !(Maybe CreativeAssetDurationType)
-    , _caaProgressiveServingURL :: !(Maybe Text)
-    , _caaActive                :: !(Maybe Bool)
-    , _caaRole                  :: !(Maybe CreativeAssetRole)
-    , _caaMimeType              :: !(Maybe Text)
-    , _caaPositionTopUnit       :: !(Maybe CreativeAssetPositionTopUnit)
-    , _caaPositionLeftUnit      :: !(Maybe CreativeAssetPositionLeftUnit)
-    , _caaAlignment             :: !(Maybe CreativeAssetAlignment)
-    , _caaExpandedDimension     :: !(Maybe Size)
-    , _caaZipFilename           :: !(Maybe Text)
-    , _caaActionScript3         :: !(Maybe Bool)
-    , _caaDisplayType           :: !(Maybe CreativeAssetDisplayType)
-    , _caaChildAssetType        :: !(Maybe CreativeAssetChildAssetType)
-    , _caaCollapsedSize         :: !(Maybe Size)
-    , _caaId                    :: !(Maybe (Textual Int64))
-    , _caaBitRate               :: !(Maybe (Textual Int32))
-    , _caaCustomStartTimeValue  :: !(Maybe (Textual Int32))
-    , _caaStartTimeType         :: !(Maybe CreativeAssetStartTimeType)
-    , _caaDuration              :: !(Maybe (Textual Int32))
-    , _caaArtworkType           :: !(Maybe CreativeAssetArtworkType)
-    , _caaHideFlashObjects      :: !(Maybe Bool)
-    , _caaDetectedFeatures      :: !(Maybe [CreativeAssetDetectedFeaturesItem])
-    , _caaBackupImageExit       :: !(Maybe CreativeCustomEvent)
-    , _caaPosition              :: !(Maybe OffSetPosition)
-    , _caaHorizontallyLocked    :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeAsset' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caaZIndex'
---
--- * 'caaPushdown'
---
--- * 'caaVideoDuration'
---
--- * 'caaOriginalBackup'
---
--- * 'caaWindowMode'
---
--- * 'caaFlashVersion'
---
--- * 'caaPushdownDuration'
---
--- * 'caaSize'
---
--- * 'caaVerticallyLocked'
---
--- * 'caaOffSet'
---
--- * 'caaStreamingServingURL'
---
--- * 'caaZipFilesize'
---
--- * 'caaTransparency'
---
--- * 'caaHideSelectionBoxes'
---
--- * 'caaSSLCompliant'
---
--- * 'caaFileSize'
---
--- * 'caaAssetIdentifier'
---
--- * 'caaDurationType'
---
--- * 'caaProgressiveServingURL'
---
--- * 'caaActive'
---
--- * 'caaRole'
---
--- * 'caaMimeType'
---
--- * 'caaPositionTopUnit'
---
--- * 'caaPositionLeftUnit'
---
--- * 'caaAlignment'
---
--- * 'caaExpandedDimension'
---
--- * 'caaZipFilename'
---
--- * 'caaActionScript3'
---
--- * 'caaDisplayType'
---
--- * 'caaChildAssetType'
---
--- * 'caaCollapsedSize'
---
--- * 'caaId'
---
--- * 'caaBitRate'
---
--- * 'caaCustomStartTimeValue'
---
--- * 'caaStartTimeType'
---
--- * 'caaDuration'
---
--- * 'caaArtworkType'
---
--- * 'caaHideFlashObjects'
---
--- * 'caaDetectedFeatures'
---
--- * 'caaBackupImageExit'
---
--- * 'caaPosition'
---
--- * 'caaHorizontallyLocked'
-creativeAsset
-    :: CreativeAsset
-creativeAsset =
-    CreativeAsset
-    { _caaZIndex = Nothing
-    , _caaPushdown = Nothing
-    , _caaVideoDuration = Nothing
-    , _caaOriginalBackup = Nothing
-    , _caaWindowMode = Nothing
-    , _caaFlashVersion = Nothing
-    , _caaPushdownDuration = Nothing
-    , _caaSize = Nothing
-    , _caaVerticallyLocked = Nothing
-    , _caaOffSet = Nothing
-    , _caaStreamingServingURL = Nothing
-    , _caaZipFilesize = Nothing
-    , _caaTransparency = Nothing
-    , _caaHideSelectionBoxes = Nothing
-    , _caaSSLCompliant = Nothing
-    , _caaFileSize = Nothing
-    , _caaAssetIdentifier = Nothing
-    , _caaDurationType = Nothing
-    , _caaProgressiveServingURL = Nothing
-    , _caaActive = Nothing
-    , _caaRole = Nothing
-    , _caaMimeType = Nothing
-    , _caaPositionTopUnit = Nothing
-    , _caaPositionLeftUnit = Nothing
-    , _caaAlignment = Nothing
-    , _caaExpandedDimension = Nothing
-    , _caaZipFilename = Nothing
-    , _caaActionScript3 = Nothing
-    , _caaDisplayType = Nothing
-    , _caaChildAssetType = Nothing
-    , _caaCollapsedSize = Nothing
-    , _caaId = Nothing
-    , _caaBitRate = Nothing
-    , _caaCustomStartTimeValue = Nothing
-    , _caaStartTimeType = Nothing
-    , _caaDuration = Nothing
-    , _caaArtworkType = Nothing
-    , _caaHideFlashObjects = Nothing
-    , _caaDetectedFeatures = Nothing
-    , _caaBackupImageExit = Nothing
-    , _caaPosition = Nothing
-    , _caaHorizontallyLocked = Nothing
-    }
-
--- | zIndex value of an asset. This is a read-only field. Applicable to the
--- following creative types: all RICH_MEDIA.Additionally, only applicable
--- to assets whose displayType is NOT one of the following types:
--- ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-caaZIndex :: Lens' CreativeAsset (Maybe Int32)
-caaZIndex
-  = lens _caaZIndex (\ s a -> s{_caaZIndex = a}) .
-      mapping _Coerce
-
--- | Whether the asset pushes down other content. Applicable to the following
--- creative types: all RICH_MEDIA. Additionally, only applicable when the
--- asset offsets are 0, the collapsedSize.width matches size.width, and the
--- collapsedSize.height is less than size.height.
-caaPushdown :: Lens' CreativeAsset (Maybe Bool)
-caaPushdown
-  = lens _caaPushdown (\ s a -> s{_caaPushdown = a})
-
--- | Detected video duration for video asset. This is a read-only field.
--- Applicable to the following creative types: INSTREAM_VIDEO and all
--- VPAID.
-caaVideoDuration :: Lens' CreativeAsset (Maybe Double)
-caaVideoDuration
-  = lens _caaVideoDuration
-      (\ s a -> s{_caaVideoDuration = a})
-      . mapping _Coerce
-
--- | Whether the backup asset is original or changed by the user in DCM.
--- Applicable to the following creative types: all RICH_MEDIA.
-caaOriginalBackup :: Lens' CreativeAsset (Maybe Bool)
-caaOriginalBackup
-  = lens _caaOriginalBackup
-      (\ s a -> s{_caaOriginalBackup = a})
-
--- | Window mode options for flash assets. Applicable to the following
--- creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING,
--- RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-caaWindowMode :: Lens' CreativeAsset (Maybe CreativeAssetWindowMode)
-caaWindowMode
-  = lens _caaWindowMode
-      (\ s a -> s{_caaWindowMode = a})
-
--- | Flash version of the asset. This is a read-only field. Applicable to the
--- following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA,
--- and all VPAID.
-caaFlashVersion :: Lens' CreativeAsset (Maybe Int32)
-caaFlashVersion
-  = lens _caaFlashVersion
-      (\ s a -> s{_caaFlashVersion = a})
-      . mapping _Coerce
-
--- | Pushdown duration in seconds for an asset. Must be between 0 and 9.99.
--- Applicable to the following creative types: all RICH_MEDIA.Additionally,
--- only applicable when the asset pushdown field is true, the offsets are
--- 0, the collapsedSize.width matches size.width, and the
--- collapsedSize.height is less than size.height.
-caaPushdownDuration :: Lens' CreativeAsset (Maybe Double)
-caaPushdownDuration
-  = lens _caaPushdownDuration
-      (\ s a -> s{_caaPushdownDuration = a})
-      . mapping _Coerce
-
--- | Size associated with this creative asset. This is a required field when
--- applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank,
--- this field will be automatically set using the actual size of the
--- associated image asset. Applicable to the following creative types:
--- ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and
--- all RICH_MEDIA.
-caaSize :: Lens' CreativeAsset (Maybe Size)
-caaSize = lens _caaSize (\ s a -> s{_caaSize = a})
-
--- | Whether the asset is vertically locked. This is a read-only field.
--- Applicable to the following creative types: all RICH_MEDIA.
-caaVerticallyLocked :: Lens' CreativeAsset (Maybe Bool)
-caaVerticallyLocked
-  = lens _caaVerticallyLocked
-      (\ s a -> s{_caaVerticallyLocked = a})
-
--- | Offset position for an asset in collapsed mode. This is a read-only
--- field. Applicable to the following creative types: all RICH_MEDIA and
--- all VPAID. Additionally, only applicable to assets whose displayType is
--- ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-caaOffSet :: Lens' CreativeAsset (Maybe OffSetPosition)
-caaOffSet
-  = lens _caaOffSet (\ s a -> s{_caaOffSet = a})
-
--- | Streaming URL for video asset. This is a read-only field. Applicable to
--- the following creative types: INSTREAM_VIDEO and all VPAID.
-caaStreamingServingURL :: Lens' CreativeAsset (Maybe Text)
-caaStreamingServingURL
-  = lens _caaStreamingServingURL
-      (\ s a -> s{_caaStreamingServingURL = a})
-
--- | Size of zip file. This is a read-only field. Applicable to the following
--- creative types: HTML5_BANNER.
-caaZipFilesize :: Lens' CreativeAsset (Maybe Text)
-caaZipFilesize
-  = lens _caaZipFilesize
-      (\ s a -> s{_caaZipFilesize = a})
-
--- | Whether the asset is transparent. Applicable to the following creative
--- types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-caaTransparency :: Lens' CreativeAsset (Maybe Bool)
-caaTransparency
-  = lens _caaTransparency
-      (\ s a -> s{_caaTransparency = a})
-
--- | Whether to hide selection boxes flag for an asset. Applicable to the
--- following creative types: all RICH_MEDIA.
-caaHideSelectionBoxes :: Lens' CreativeAsset (Maybe Bool)
-caaHideSelectionBoxes
-  = lens _caaHideSelectionBoxes
-      (\ s a -> s{_caaHideSelectionBoxes = a})
-
--- | Whether the asset is SSL-compliant. This is a read-only field.
--- Applicable to all but the following creative types: all REDIRECT and
--- TRACKING_TEXT.
-caaSSLCompliant :: Lens' CreativeAsset (Maybe Bool)
-caaSSLCompliant
-  = lens _caaSSLCompliant
-      (\ s a -> s{_caaSSLCompliant = a})
-
--- | File size associated with this creative asset. This is a read-only
--- field. Applicable to all but the following creative types: all REDIRECT
--- and TRACKING_TEXT.
-caaFileSize :: Lens' CreativeAsset (Maybe Int64)
-caaFileSize
-  = lens _caaFileSize (\ s a -> s{_caaFileSize = a}) .
-      mapping _Coerce
-
--- | Identifier of this asset. This is the same identifier returned during
--- creative asset insert operation. This is a required field. Applicable to
--- all but the following creative types: all REDIRECT and TRACKING_TEXT.
-caaAssetIdentifier :: Lens' CreativeAsset (Maybe CreativeAssetId)
-caaAssetIdentifier
-  = lens _caaAssetIdentifier
-      (\ s a -> s{_caaAssetIdentifier = a})
-
--- | Duration type for which an asset will be displayed. Applicable to the
--- following creative types: all RICH_MEDIA.
-caaDurationType :: Lens' CreativeAsset (Maybe CreativeAssetDurationType)
-caaDurationType
-  = lens _caaDurationType
-      (\ s a -> s{_caaDurationType = a})
-
--- | Progressive URL for video asset. This is a read-only field. Applicable
--- to the following creative types: INSTREAM_VIDEO and all VPAID.
-caaProgressiveServingURL :: Lens' CreativeAsset (Maybe Text)
-caaProgressiveServingURL
-  = lens _caaProgressiveServingURL
-      (\ s a -> s{_caaProgressiveServingURL = a})
-
--- | Whether the video asset is active. This is a read-only field for
--- VPAID_NON_LINEAR assets. Applicable to the following creative types:
--- INSTREAM_VIDEO and all VPAID.
-caaActive :: Lens' CreativeAsset (Maybe Bool)
-caaActive
-  = lens _caaActive (\ s a -> s{_caaActive = a})
-
--- | Role of the asset in relation to creative. Applicable to all but the
--- following creative types: all REDIRECT and TRACKING_TEXT. This is a
--- required field. PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE,
--- HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain
--- multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies
--- to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all
--- VPAID creatives. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to
--- FLASH_INPAGE creatives. OTHER refers to assets from sources other than
--- DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and
--- all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user
--- in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
--- TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO
--- assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
--- ALTERNATE_VIDEO refers to the DCM representation of child asset videos
--- from Studio, and is applicable to VPAID_LINEAR creatives. These cannot
--- be added or removed within DCM. For VPAID_LINEAR creatives,
--- PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are
--- marked active serve as backup in case the VPAID creative cannot be
--- served. Only PARENT_VIDEO assets can be added or removed for an
--- INSTREAM_VIDEO or VPAID_LINEAR creative.
-caaRole :: Lens' CreativeAsset (Maybe CreativeAssetRole)
-caaRole = lens _caaRole (\ s a -> s{_caaRole = a})
-
--- | Detected MIME type for video asset. This is a read-only field.
--- Applicable to the following creative types: INSTREAM_VIDEO and all
--- VPAID.
-caaMimeType :: Lens' CreativeAsset (Maybe Text)
-caaMimeType
-  = lens _caaMimeType (\ s a -> s{_caaMimeType = a})
-
--- | Offset top unit for an asset. This is a read-only field if the asset
--- displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following
--- creative types: all RICH_MEDIA.
-caaPositionTopUnit :: Lens' CreativeAsset (Maybe CreativeAssetPositionTopUnit)
-caaPositionTopUnit
-  = lens _caaPositionTopUnit
-      (\ s a -> s{_caaPositionTopUnit = a})
-
--- | Offset left unit for an asset. This is a read-only field. Applicable to
--- the following creative types: all RICH_MEDIA.
-caaPositionLeftUnit :: Lens' CreativeAsset (Maybe CreativeAssetPositionLeftUnit)
-caaPositionLeftUnit
-  = lens _caaPositionLeftUnit
-      (\ s a -> s{_caaPositionLeftUnit = a})
-
--- | Possible alignments for an asset. This is a read-only field. Applicable
--- to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-caaAlignment :: Lens' CreativeAsset (Maybe CreativeAssetAlignment)
-caaAlignment
-  = lens _caaAlignment (\ s a -> s{_caaAlignment = a})
-
--- | Detected expanded dimension for video asset. This is a read-only field.
--- Applicable to the following creative types: INSTREAM_VIDEO and all
--- VPAID.
-caaExpandedDimension :: Lens' CreativeAsset (Maybe Size)
-caaExpandedDimension
-  = lens _caaExpandedDimension
-      (\ s a -> s{_caaExpandedDimension = a})
-
--- | File name of zip file. This is a read-only field. Applicable to the
--- following creative types: HTML5_BANNER.
-caaZipFilename :: Lens' CreativeAsset (Maybe Text)
-caaZipFilename
-  = lens _caaZipFilename
-      (\ s a -> s{_caaZipFilename = a})
-
--- | Whether ActionScript3 is enabled for the flash asset. This is a
--- read-only field. Applicable to the following creative types:
--- FLASH_INPAGE and ENHANCED_BANNER.
-caaActionScript3 :: Lens' CreativeAsset (Maybe Bool)
-caaActionScript3
-  = lens _caaActionScript3
-      (\ s a -> s{_caaActionScript3 = a})
-
--- | Type of rich media asset. This is a read-only field. Applicable to the
--- following creative types: all RICH_MEDIA.
-caaDisplayType :: Lens' CreativeAsset (Maybe CreativeAssetDisplayType)
-caaDisplayType
-  = lens _caaDisplayType
-      (\ s a -> s{_caaDisplayType = a})
-
--- | Rich media child asset type. This is a read-only field. Applicable to
--- the following creative types: all VPAID.
-caaChildAssetType :: Lens' CreativeAsset (Maybe CreativeAssetChildAssetType)
-caaChildAssetType
-  = lens _caaChildAssetType
-      (\ s a -> s{_caaChildAssetType = a})
-
--- | Size of an asset when collapsed. This is a read-only field. Applicable
--- to the following creative types: all RICH_MEDIA and all VPAID.
--- Additionally, applicable to assets whose displayType is
--- ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-caaCollapsedSize :: Lens' CreativeAsset (Maybe Size)
-caaCollapsedSize
-  = lens _caaCollapsedSize
-      (\ s a -> s{_caaCollapsedSize = a})
-
--- | Numeric ID of this creative asset. This is a required field and should
--- not be modified. Applicable to all but the following creative types: all
--- REDIRECT and TRACKING_TEXT.
-caaId :: Lens' CreativeAsset (Maybe Int64)
-caaId
-  = lens _caaId (\ s a -> s{_caaId = a}) .
-      mapping _Coerce
-
--- | Detected bit-rate for video asset. This is a read-only field. Applicable
--- to the following creative types: INSTREAM_VIDEO and all VPAID.
-caaBitRate :: Lens' CreativeAsset (Maybe Int32)
-caaBitRate
-  = lens _caaBitRate (\ s a -> s{_caaBitRate = a}) .
-      mapping _Coerce
-
--- | Custom start time in seconds for making the asset visible. Applicable to
--- the following creative types: all RICH_MEDIA.
-caaCustomStartTimeValue :: Lens' CreativeAsset (Maybe Int32)
-caaCustomStartTimeValue
-  = lens _caaCustomStartTimeValue
-      (\ s a -> s{_caaCustomStartTimeValue = a})
-      . mapping _Coerce
-
--- | Initial wait time type before making the asset visible. Applicable to
--- the following creative types: all RICH_MEDIA.
-caaStartTimeType :: Lens' CreativeAsset (Maybe CreativeAssetStartTimeType)
-caaStartTimeType
-  = lens _caaStartTimeType
-      (\ s a -> s{_caaStartTimeType = a})
-
--- | Duration in seconds for which an asset will be displayed. Applicable to
--- the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-caaDuration :: Lens' CreativeAsset (Maybe Int32)
-caaDuration
-  = lens _caaDuration (\ s a -> s{_caaDuration = a}) .
-      mapping _Coerce
-
--- | Artwork type of rich media creative. This is a read-only field.
--- Applicable to the following creative types: all RICH_MEDIA.
-caaArtworkType :: Lens' CreativeAsset (Maybe CreativeAssetArtworkType)
-caaArtworkType
-  = lens _caaArtworkType
-      (\ s a -> s{_caaArtworkType = a})
-
--- | Whether to hide Flash objects flag for an asset. Applicable to the
--- following creative types: all RICH_MEDIA.
-caaHideFlashObjects :: Lens' CreativeAsset (Maybe Bool)
-caaHideFlashObjects
-  = lens _caaHideFlashObjects
-      (\ s a -> s{_caaHideFlashObjects = a})
-
--- | List of feature dependencies for the creative asset that are detected by
--- DCM. Feature dependencies are features that a browser must be able to
--- support in order to render your HTML5 creative correctly. This is a
--- read-only, auto-generated field. Applicable to the following creative
--- types: ENHANCED_BANNER and HTML5_BANNER.
-caaDetectedFeatures :: Lens' CreativeAsset [CreativeAssetDetectedFeaturesItem]
-caaDetectedFeatures
-  = lens _caaDetectedFeatures
-      (\ s a -> s{_caaDetectedFeatures = a})
-      . _Default
-      . _Coerce
-
--- | Exit event configured for the backup image. Applicable to the following
--- creative types: all RICH_MEDIA.
-caaBackupImageExit :: Lens' CreativeAsset (Maybe CreativeCustomEvent)
-caaBackupImageExit
-  = lens _caaBackupImageExit
-      (\ s a -> s{_caaBackupImageExit = a})
-
--- | Offset position for an asset. Applicable to the following creative
--- types: all RICH_MEDIA.
-caaPosition :: Lens' CreativeAsset (Maybe OffSetPosition)
-caaPosition
-  = lens _caaPosition (\ s a -> s{_caaPosition = a})
-
--- | Whether the asset is horizontally locked. This is a read-only field.
--- Applicable to the following creative types: all RICH_MEDIA.
-caaHorizontallyLocked :: Lens' CreativeAsset (Maybe Bool)
-caaHorizontallyLocked
-  = lens _caaHorizontallyLocked
-      (\ s a -> s{_caaHorizontallyLocked = a})
-
-instance FromJSON CreativeAsset where
-        parseJSON
-          = withObject "CreativeAsset"
-              (\ o ->
-                 CreativeAsset <$>
-                   (o .:? "zIndex") <*> (o .:? "pushdown") <*>
-                     (o .:? "videoDuration")
-                     <*> (o .:? "originalBackup")
-                     <*> (o .:? "windowMode")
-                     <*> (o .:? "flashVersion")
-                     <*> (o .:? "pushdownDuration")
-                     <*> (o .:? "size")
-                     <*> (o .:? "verticallyLocked")
-                     <*> (o .:? "offset")
-                     <*> (o .:? "streamingServingUrl")
-                     <*> (o .:? "zipFilesize")
-                     <*> (o .:? "transparency")
-                     <*> (o .:? "hideSelectionBoxes")
-                     <*> (o .:? "sslCompliant")
-                     <*> (o .:? "fileSize")
-                     <*> (o .:? "assetIdentifier")
-                     <*> (o .:? "durationType")
-                     <*> (o .:? "progressiveServingUrl")
-                     <*> (o .:? "active")
-                     <*> (o .:? "role")
-                     <*> (o .:? "mimeType")
-                     <*> (o .:? "positionTopUnit")
-                     <*> (o .:? "positionLeftUnit")
-                     <*> (o .:? "alignment")
-                     <*> (o .:? "expandedDimension")
-                     <*> (o .:? "zipFilename")
-                     <*> (o .:? "actionScript3")
-                     <*> (o .:? "displayType")
-                     <*> (o .:? "childAssetType")
-                     <*> (o .:? "collapsedSize")
-                     <*> (o .:? "id")
-                     <*> (o .:? "bitRate")
-                     <*> (o .:? "customStartTimeValue")
-                     <*> (o .:? "startTimeType")
-                     <*> (o .:? "duration")
-                     <*> (o .:? "artworkType")
-                     <*> (o .:? "hideFlashObjects")
-                     <*> (o .:? "detectedFeatures" .!= mempty)
-                     <*> (o .:? "backupImageExit")
-                     <*> (o .:? "position")
-                     <*> (o .:? "horizontallyLocked"))
-
-instance ToJSON CreativeAsset where
-        toJSON CreativeAsset{..}
-          = object
-              (catMaybes
-                 [("zIndex" .=) <$> _caaZIndex,
-                  ("pushdown" .=) <$> _caaPushdown,
-                  ("videoDuration" .=) <$> _caaVideoDuration,
-                  ("originalBackup" .=) <$> _caaOriginalBackup,
-                  ("windowMode" .=) <$> _caaWindowMode,
-                  ("flashVersion" .=) <$> _caaFlashVersion,
-                  ("pushdownDuration" .=) <$> _caaPushdownDuration,
-                  ("size" .=) <$> _caaSize,
-                  ("verticallyLocked" .=) <$> _caaVerticallyLocked,
-                  ("offset" .=) <$> _caaOffSet,
-                  ("streamingServingUrl" .=) <$>
-                    _caaStreamingServingURL,
-                  ("zipFilesize" .=) <$> _caaZipFilesize,
-                  ("transparency" .=) <$> _caaTransparency,
-                  ("hideSelectionBoxes" .=) <$> _caaHideSelectionBoxes,
-                  ("sslCompliant" .=) <$> _caaSSLCompliant,
-                  ("fileSize" .=) <$> _caaFileSize,
-                  ("assetIdentifier" .=) <$> _caaAssetIdentifier,
-                  ("durationType" .=) <$> _caaDurationType,
-                  ("progressiveServingUrl" .=) <$>
-                    _caaProgressiveServingURL,
-                  ("active" .=) <$> _caaActive,
-                  ("role" .=) <$> _caaRole,
-                  ("mimeType" .=) <$> _caaMimeType,
-                  ("positionTopUnit" .=) <$> _caaPositionTopUnit,
-                  ("positionLeftUnit" .=) <$> _caaPositionLeftUnit,
-                  ("alignment" .=) <$> _caaAlignment,
-                  ("expandedDimension" .=) <$> _caaExpandedDimension,
-                  ("zipFilename" .=) <$> _caaZipFilename,
-                  ("actionScript3" .=) <$> _caaActionScript3,
-                  ("displayType" .=) <$> _caaDisplayType,
-                  ("childAssetType" .=) <$> _caaChildAssetType,
-                  ("collapsedSize" .=) <$> _caaCollapsedSize,
-                  ("id" .=) <$> _caaId, ("bitRate" .=) <$> _caaBitRate,
-                  ("customStartTimeValue" .=) <$>
-                    _caaCustomStartTimeValue,
-                  ("startTimeType" .=) <$> _caaStartTimeType,
-                  ("duration" .=) <$> _caaDuration,
-                  ("artworkType" .=) <$> _caaArtworkType,
-                  ("hideFlashObjects" .=) <$> _caaHideFlashObjects,
-                  ("detectedFeatures" .=) <$> _caaDetectedFeatures,
-                  ("backupImageExit" .=) <$> _caaBackupImageExit,
-                  ("position" .=) <$> _caaPosition,
-                  ("horizontallyLocked" .=) <$>
-                    _caaHorizontallyLocked])
-
--- | Placement List Response
---
--- /See:/ 'placementsListResponse' smart constructor.
-data PlacementsListResponse = PlacementsListResponse
-    { _plaNextPageToken :: !(Maybe Text)
-    , _plaKind          :: !Text
-    , _plaPlacements    :: !(Maybe [Placement])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PlacementsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'plaNextPageToken'
---
--- * 'plaKind'
---
--- * 'plaPlacements'
-placementsListResponse
-    :: PlacementsListResponse
-placementsListResponse =
-    PlacementsListResponse
-    { _plaNextPageToken = Nothing
-    , _plaKind = "dfareporting#placementsListResponse"
-    , _plaPlacements = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-plaNextPageToken :: Lens' PlacementsListResponse (Maybe Text)
-plaNextPageToken
-  = lens _plaNextPageToken
-      (\ s a -> s{_plaNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#placementsListResponse\".
-plaKind :: Lens' PlacementsListResponse Text
-plaKind = lens _plaKind (\ s a -> s{_plaKind = a})
-
--- | Placement collection.
-plaPlacements :: Lens' PlacementsListResponse [Placement]
-plaPlacements
-  = lens _plaPlacements
-      (\ s a -> s{_plaPlacements = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON PlacementsListResponse where
-        parseJSON
-          = withObject "PlacementsListResponse"
-              (\ o ->
-                 PlacementsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#placementsListResponse")
-                     <*> (o .:? "placements" .!= mempty))
-
-instance ToJSON PlacementsListResponse where
-        toJSON PlacementsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _plaNextPageToken,
-                  Just ("kind" .= _plaKind),
-                  ("placements" .=) <$> _plaPlacements])
-
--- | The report\'s schedule. Can only be set if the report\'s \'dateRange\'
--- is a relative date range and the relative date range is not \"TODAY\".
---
--- /See:/ 'reportSchedule' smart constructor.
-data ReportSchedule = ReportSchedule
-    { _rsEvery             :: !(Maybe (Textual Int32))
-    , _rsActive            :: !(Maybe Bool)
-    , _rsRepeats           :: !(Maybe Text)
-    , _rsStartDate         :: !(Maybe Date')
-    , _rsExpirationDate    :: !(Maybe Date')
-    , _rsRunsOnDayOfMonth  :: !(Maybe ReportScheduleRunsOnDayOfMonth)
-    , _rsRepeatsOnWeekDays :: !(Maybe [ReportScheduleRepeatsOnWeekDaysItem])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportSchedule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rsEvery'
---
--- * 'rsActive'
---
--- * 'rsRepeats'
---
--- * 'rsStartDate'
---
--- * 'rsExpirationDate'
---
--- * 'rsRunsOnDayOfMonth'
---
--- * 'rsRepeatsOnWeekDays'
-reportSchedule
-    :: ReportSchedule
-reportSchedule =
-    ReportSchedule
-    { _rsEvery = Nothing
-    , _rsActive = Nothing
-    , _rsRepeats = Nothing
-    , _rsStartDate = Nothing
-    , _rsExpirationDate = Nothing
-    , _rsRunsOnDayOfMonth = Nothing
-    , _rsRepeatsOnWeekDays = Nothing
-    }
-
--- | Defines every how many days, weeks or months the report should be run.
--- Needs to be set when \"repeats\" is either \"DAILY\", \"WEEKLY\" or
--- \"MONTHLY\".
-rsEvery :: Lens' ReportSchedule (Maybe Int32)
-rsEvery
-  = lens _rsEvery (\ s a -> s{_rsEvery = a}) .
-      mapping _Coerce
-
--- | Whether the schedule is active or not. Must be set to either true or
--- false.
-rsActive :: Lens' ReportSchedule (Maybe Bool)
-rsActive = lens _rsActive (\ s a -> s{_rsActive = a})
-
--- | The interval for which the report is repeated. Note: - \"DAILY\" also
--- requires field \"every\" to be set. - \"WEEKLY\" also requires fields
--- \"every\" and \"repeatsOnWeekDays\" to be set. - \"MONTHLY\" also
--- requires fields \"every\" and \"runsOnDayOfMonth\" to be set.
-rsRepeats :: Lens' ReportSchedule (Maybe Text)
-rsRepeats
-  = lens _rsRepeats (\ s a -> s{_rsRepeats = a})
-
--- | Start date of date range for which scheduled reports should be run.
-rsStartDate :: Lens' ReportSchedule (Maybe Day)
-rsStartDate
-  = lens _rsStartDate (\ s a -> s{_rsStartDate = a}) .
-      mapping _Date
-
--- | The expiration date when the scheduled report stops running.
-rsExpirationDate :: Lens' ReportSchedule (Maybe Day)
-rsExpirationDate
-  = lens _rsExpirationDate
-      (\ s a -> s{_rsExpirationDate = a})
-      . mapping _Date
-
--- | Enum to define for \"MONTHLY\" scheduled reports whether reports should
--- be repeated on the same day of the month as \"startDate\" or the same
--- day of the week of the month. Example: If \'startDate\' is Monday, April
--- 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on
--- the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent
--- reports on the first Monday of the month.
-rsRunsOnDayOfMonth :: Lens' ReportSchedule (Maybe ReportScheduleRunsOnDayOfMonth)
-rsRunsOnDayOfMonth
-  = lens _rsRunsOnDayOfMonth
-      (\ s a -> s{_rsRunsOnDayOfMonth = a})
-
--- | List of week days \"WEEKLY\" on which scheduled reports should run.
-rsRepeatsOnWeekDays :: Lens' ReportSchedule [ReportScheduleRepeatsOnWeekDaysItem]
-rsRepeatsOnWeekDays
-  = lens _rsRepeatsOnWeekDays
-      (\ s a -> s{_rsRepeatsOnWeekDays = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ReportSchedule where
-        parseJSON
-          = withObject "ReportSchedule"
-              (\ o ->
-                 ReportSchedule <$>
-                   (o .:? "every") <*> (o .:? "active") <*>
-                     (o .:? "repeats")
-                     <*> (o .:? "startDate")
-                     <*> (o .:? "expirationDate")
-                     <*> (o .:? "runsOnDayOfMonth")
-                     <*> (o .:? "repeatsOnWeekDays" .!= mempty))
-
-instance ToJSON ReportSchedule where
-        toJSON ReportSchedule{..}
-          = object
-              (catMaybes
-                 [("every" .=) <$> _rsEvery,
-                  ("active" .=) <$> _rsActive,
-                  ("repeats" .=) <$> _rsRepeats,
-                  ("startDate" .=) <$> _rsStartDate,
-                  ("expirationDate" .=) <$> _rsExpirationDate,
-                  ("runsOnDayOfMonth" .=) <$> _rsRunsOnDayOfMonth,
-                  ("repeatsOnWeekDays" .=) <$> _rsRepeatsOnWeekDays])
-
--- | The report criteria for a report of type \"PATH_TO_CONVERSION\".
---
--- /See:/ 'reportPathToConversionCriteria' smart constructor.
-data ReportPathToConversionCriteria = ReportPathToConversionCriteria
-    { _rptccReportProperties          :: !(Maybe ReportPathToConversionCriteriaReportProperties)
-    , _rptccMetricNames               :: !(Maybe [Text])
-    , _rptccCustomRichMediaEvents     :: !(Maybe [DimensionValue])
-    , _rptccDateRange                 :: !(Maybe DateRange)
-    , _rptccConversionDimensions      :: !(Maybe [SortedDimension])
-    , _rptccCustomFloodlightVariables :: !(Maybe [SortedDimension])
-    , _rptccFloodlightConfigId        :: !(Maybe DimensionValue)
-    , _rptccActivityFilters           :: !(Maybe [DimensionValue])
-    , _rptccPerInteractionDimensions  :: !(Maybe [SortedDimension])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportPathToConversionCriteria' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rptccReportProperties'
---
--- * 'rptccMetricNames'
---
--- * 'rptccCustomRichMediaEvents'
---
--- * 'rptccDateRange'
---
--- * 'rptccConversionDimensions'
---
--- * 'rptccCustomFloodlightVariables'
---
--- * 'rptccFloodlightConfigId'
---
--- * 'rptccActivityFilters'
---
--- * 'rptccPerInteractionDimensions'
-reportPathToConversionCriteria
-    :: ReportPathToConversionCriteria
-reportPathToConversionCriteria =
-    ReportPathToConversionCriteria
-    { _rptccReportProperties = Nothing
-    , _rptccMetricNames = Nothing
-    , _rptccCustomRichMediaEvents = Nothing
-    , _rptccDateRange = Nothing
-    , _rptccConversionDimensions = Nothing
-    , _rptccCustomFloodlightVariables = Nothing
-    , _rptccFloodlightConfigId = Nothing
-    , _rptccActivityFilters = Nothing
-    , _rptccPerInteractionDimensions = Nothing
-    }
-
--- | The properties of the report.
-rptccReportProperties :: Lens' ReportPathToConversionCriteria (Maybe ReportPathToConversionCriteriaReportProperties)
-rptccReportProperties
-  = lens _rptccReportProperties
-      (\ s a -> s{_rptccReportProperties = a})
-
--- | The list of names of metrics the report should include.
-rptccMetricNames :: Lens' ReportPathToConversionCriteria [Text]
-rptccMetricNames
-  = lens _rptccMetricNames
-      (\ s a -> s{_rptccMetricNames = a})
-      . _Default
-      . _Coerce
-
--- | The list of custom rich media events to include.
-rptccCustomRichMediaEvents :: Lens' ReportPathToConversionCriteria [DimensionValue]
-rptccCustomRichMediaEvents
-  = lens _rptccCustomRichMediaEvents
-      (\ s a -> s{_rptccCustomRichMediaEvents = a})
-      . _Default
-      . _Coerce
-
--- | The date range this report should be run for.
-rptccDateRange :: Lens' ReportPathToConversionCriteria (Maybe DateRange)
-rptccDateRange
-  = lens _rptccDateRange
-      (\ s a -> s{_rptccDateRange = a})
-
--- | The list of conversion dimensions the report should include.
-rptccConversionDimensions :: Lens' ReportPathToConversionCriteria [SortedDimension]
-rptccConversionDimensions
-  = lens _rptccConversionDimensions
-      (\ s a -> s{_rptccConversionDimensions = a})
-      . _Default
-      . _Coerce
-
--- | The list of custom floodlight variables the report should include.
-rptccCustomFloodlightVariables :: Lens' ReportPathToConversionCriteria [SortedDimension]
-rptccCustomFloodlightVariables
-  = lens _rptccCustomFloodlightVariables
-      (\ s a -> s{_rptccCustomFloodlightVariables = a})
-      . _Default
-      . _Coerce
-
--- | The floodlight ID for which to show data in this report. All advertisers
--- associated with that ID will automatically be added. The dimension of
--- the value needs to be \'dfa:floodlightConfigId\'.
-rptccFloodlightConfigId :: Lens' ReportPathToConversionCriteria (Maybe DimensionValue)
-rptccFloodlightConfigId
-  = lens _rptccFloodlightConfigId
-      (\ s a -> s{_rptccFloodlightConfigId = a})
-
--- | The list of \'dfa:activity\' values to filter on.
-rptccActivityFilters :: Lens' ReportPathToConversionCriteria [DimensionValue]
-rptccActivityFilters
-  = lens _rptccActivityFilters
-      (\ s a -> s{_rptccActivityFilters = a})
-      . _Default
-      . _Coerce
-
--- | The list of per interaction dimensions the report should include.
-rptccPerInteractionDimensions :: Lens' ReportPathToConversionCriteria [SortedDimension]
-rptccPerInteractionDimensions
-  = lens _rptccPerInteractionDimensions
-      (\ s a -> s{_rptccPerInteractionDimensions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ReportPathToConversionCriteria
-         where
-        parseJSON
-          = withObject "ReportPathToConversionCriteria"
-              (\ o ->
-                 ReportPathToConversionCriteria <$>
-                   (o .:? "reportProperties") <*>
-                     (o .:? "metricNames" .!= mempty)
-                     <*> (o .:? "customRichMediaEvents" .!= mempty)
-                     <*> (o .:? "dateRange")
-                     <*> (o .:? "conversionDimensions" .!= mempty)
-                     <*> (o .:? "customFloodlightVariables" .!= mempty)
-                     <*> (o .:? "floodlightConfigId")
-                     <*> (o .:? "activityFilters" .!= mempty)
-                     <*> (o .:? "perInteractionDimensions" .!= mempty))
-
-instance ToJSON ReportPathToConversionCriteria where
-        toJSON ReportPathToConversionCriteria{..}
-          = object
-              (catMaybes
-                 [("reportProperties" .=) <$> _rptccReportProperties,
-                  ("metricNames" .=) <$> _rptccMetricNames,
-                  ("customRichMediaEvents" .=) <$>
-                    _rptccCustomRichMediaEvents,
-                  ("dateRange" .=) <$> _rptccDateRange,
-                  ("conversionDimensions" .=) <$>
-                    _rptccConversionDimensions,
-                  ("customFloodlightVariables" .=) <$>
-                    _rptccCustomFloodlightVariables,
-                  ("floodlightConfigId" .=) <$>
-                    _rptccFloodlightConfigId,
-                  ("activityFilters" .=) <$> _rptccActivityFilters,
-                  ("perInteractionDimensions" .=) <$>
-                    _rptccPerInteractionDimensions])
-
--- | Metro List Response
---
--- /See:/ 'metrosListResponse' smart constructor.
-data MetrosListResponse = MetrosListResponse
-    { _mlrKind   :: !Text
-    , _mlrMetros :: !(Maybe [Metro])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'MetrosListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mlrKind'
---
--- * 'mlrMetros'
-metrosListResponse
-    :: MetrosListResponse
-metrosListResponse =
-    MetrosListResponse
-    { _mlrKind = "dfareporting#metrosListResponse"
-    , _mlrMetros = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#metrosListResponse\".
-mlrKind :: Lens' MetrosListResponse Text
-mlrKind = lens _mlrKind (\ s a -> s{_mlrKind = a})
-
--- | Metro collection.
-mlrMetros :: Lens' MetrosListResponse [Metro]
-mlrMetros
-  = lens _mlrMetros (\ s a -> s{_mlrMetros = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON MetrosListResponse where
-        parseJSON
-          = withObject "MetrosListResponse"
-              (\ o ->
-                 MetrosListResponse <$>
-                   (o .:? "kind" .!= "dfareporting#metrosListResponse")
-                     <*> (o .:? "metros" .!= mempty))
-
-instance ToJSON MetrosListResponse where
-        toJSON MetrosListResponse{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _mlrKind),
-                  ("metros" .=) <$> _mlrMetros])
-
--- | Order document List Response
---
--- /See:/ 'orderDocumentsListResponse' smart constructor.
-data OrderDocumentsListResponse = OrderDocumentsListResponse
-    { _odlrNextPageToken  :: !(Maybe Text)
-    , _odlrKind           :: !Text
-    , _odlrOrderDocuments :: !(Maybe [OrderDocument])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OrderDocumentsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'odlrNextPageToken'
---
--- * 'odlrKind'
---
--- * 'odlrOrderDocuments'
-orderDocumentsListResponse
-    :: OrderDocumentsListResponse
-orderDocumentsListResponse =
-    OrderDocumentsListResponse
-    { _odlrNextPageToken = Nothing
-    , _odlrKind = "dfareporting#orderDocumentsListResponse"
-    , _odlrOrderDocuments = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-odlrNextPageToken :: Lens' OrderDocumentsListResponse (Maybe Text)
-odlrNextPageToken
-  = lens _odlrNextPageToken
-      (\ s a -> s{_odlrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#orderDocumentsListResponse\".
-odlrKind :: Lens' OrderDocumentsListResponse Text
-odlrKind = lens _odlrKind (\ s a -> s{_odlrKind = a})
-
--- | Order document collection
-odlrOrderDocuments :: Lens' OrderDocumentsListResponse [OrderDocument]
-odlrOrderDocuments
-  = lens _odlrOrderDocuments
-      (\ s a -> s{_odlrOrderDocuments = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON OrderDocumentsListResponse where
-        parseJSON
-          = withObject "OrderDocumentsListResponse"
-              (\ o ->
-                 OrderDocumentsListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#orderDocumentsListResponse")
-                     <*> (o .:? "orderDocuments" .!= mempty))
-
-instance ToJSON OrderDocumentsListResponse where
-        toJSON OrderDocumentsListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _odlrNextPageToken,
-                  Just ("kind" .= _odlrKind),
-                  ("orderDocuments" .=) <$> _odlrOrderDocuments])
-
--- | Represents a recipient.
---
--- /See:/ 'recipient' smart constructor.
-data Recipient = Recipient
-    { _recEmail        :: !(Maybe Text)
-    , _recKind         :: !Text
-    , _recDeliveryType :: !(Maybe RecipientDeliveryType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Recipient' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'recEmail'
---
--- * 'recKind'
---
--- * 'recDeliveryType'
-recipient
-    :: Recipient
-recipient =
-    Recipient
-    { _recEmail = Nothing
-    , _recKind = "dfareporting#recipient"
-    , _recDeliveryType = Nothing
-    }
-
--- | The email address of the recipient.
-recEmail :: Lens' Recipient (Maybe Text)
-recEmail = lens _recEmail (\ s a -> s{_recEmail = a})
-
--- | The kind of resource this is, in this case dfareporting#recipient.
-recKind :: Lens' Recipient Text
-recKind = lens _recKind (\ s a -> s{_recKind = a})
-
--- | The delivery type for the recipient.
-recDeliveryType :: Lens' Recipient (Maybe RecipientDeliveryType)
-recDeliveryType
-  = lens _recDeliveryType
-      (\ s a -> s{_recDeliveryType = a})
-
-instance FromJSON Recipient where
-        parseJSON
-          = withObject "Recipient"
-              (\ o ->
-                 Recipient <$>
-                   (o .:? "email") <*>
-                     (o .:? "kind" .!= "dfareporting#recipient")
-                     <*> (o .:? "deliveryType"))
-
-instance ToJSON Recipient where
-        toJSON Recipient{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _recEmail,
-                  Just ("kind" .= _recKind),
-                  ("deliveryType" .=) <$> _recDeliveryType])
-
--- | Contains properties of a site.
---
--- /See:/ 'site' smart constructor.
-data Site = Site
-    { _ssKind                          :: !Text
-    , _ssKeyName                       :: !(Maybe Text)
-    , _ssSiteContacts                  :: !(Maybe [SiteContact])
-    , _ssSiteSettings                  :: !(Maybe SiteSettings)
-    , _ssIdDimensionValue              :: !(Maybe DimensionValue)
-    , _ssDirectorySiteIdDimensionValue :: !(Maybe DimensionValue)
-    , _ssAccountId                     :: !(Maybe (Textual Int64))
-    , _ssName                          :: !(Maybe Text)
-    , _ssDirectorySiteId               :: !(Maybe (Textual Int64))
-    , _ssId                            :: !(Maybe (Textual Int64))
-    , _ssSubAccountId                  :: !(Maybe (Textual Int64))
-    , _ssApproved                      :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Site' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ssKind'
---
--- * 'ssKeyName'
---
--- * 'ssSiteContacts'
---
--- * 'ssSiteSettings'
---
--- * 'ssIdDimensionValue'
---
--- * 'ssDirectorySiteIdDimensionValue'
---
--- * 'ssAccountId'
---
--- * 'ssName'
---
--- * 'ssDirectorySiteId'
---
--- * 'ssId'
---
--- * 'ssSubAccountId'
---
--- * 'ssApproved'
-site
-    :: Site
-site =
-    Site
-    { _ssKind = "dfareporting#site"
-    , _ssKeyName = Nothing
-    , _ssSiteContacts = Nothing
-    , _ssSiteSettings = Nothing
-    , _ssIdDimensionValue = Nothing
-    , _ssDirectorySiteIdDimensionValue = Nothing
-    , _ssAccountId = Nothing
-    , _ssName = Nothing
-    , _ssDirectorySiteId = Nothing
-    , _ssId = Nothing
-    , _ssSubAccountId = Nothing
-    , _ssApproved = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#site\".
-ssKind :: Lens' Site Text
-ssKind = lens _ssKind (\ s a -> s{_ssKind = a})
-
--- | Key name of this site. This is a read-only, auto-generated field.
-ssKeyName :: Lens' Site (Maybe Text)
-ssKeyName
-  = lens _ssKeyName (\ s a -> s{_ssKeyName = a})
-
--- | Site contacts.
-ssSiteContacts :: Lens' Site [SiteContact]
-ssSiteContacts
-  = lens _ssSiteContacts
-      (\ s a -> s{_ssSiteContacts = a})
-      . _Default
-      . _Coerce
-
--- | Site-wide settings.
-ssSiteSettings :: Lens' Site (Maybe SiteSettings)
-ssSiteSettings
-  = lens _ssSiteSettings
-      (\ s a -> s{_ssSiteSettings = a})
-
--- | Dimension value for the ID of this site. This is a read-only,
--- auto-generated field.
-ssIdDimensionValue :: Lens' Site (Maybe DimensionValue)
-ssIdDimensionValue
-  = lens _ssIdDimensionValue
-      (\ s a -> s{_ssIdDimensionValue = a})
-
--- | Dimension value for the ID of the directory site. This is a read-only,
--- auto-generated field.
-ssDirectorySiteIdDimensionValue :: Lens' Site (Maybe DimensionValue)
-ssDirectorySiteIdDimensionValue
-  = lens _ssDirectorySiteIdDimensionValue
-      (\ s a -> s{_ssDirectorySiteIdDimensionValue = a})
-
--- | Account ID of this site. This is a read-only field that can be left
--- blank.
-ssAccountId :: Lens' Site (Maybe Int64)
-ssAccountId
-  = lens _ssAccountId (\ s a -> s{_ssAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this site.This is a required field. Must be less than 128
--- characters long. If this site is under a subaccount, the name must be
--- unique among sites of the same subaccount. Otherwise, this site is a
--- top-level site, and the name must be unique among top-level sites of the
--- same account.
-ssName :: Lens' Site (Maybe Text)
-ssName = lens _ssName (\ s a -> s{_ssName = a})
-
--- | Directory site associated with this site. This is a required field that
--- is read-only after insertion.
-ssDirectorySiteId :: Lens' Site (Maybe Int64)
-ssDirectorySiteId
-  = lens _ssDirectorySiteId
-      (\ s a -> s{_ssDirectorySiteId = a})
-      . mapping _Coerce
-
--- | ID of this site. This is a read-only, auto-generated field.
-ssId :: Lens' Site (Maybe Int64)
-ssId
-  = lens _ssId (\ s a -> s{_ssId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this site. This is a read-only field that can be left
--- blank.
-ssSubAccountId :: Lens' Site (Maybe Int64)
-ssSubAccountId
-  = lens _ssSubAccountId
-      (\ s a -> s{_ssSubAccountId = a})
-      . mapping _Coerce
-
--- | Whether this site is approved.
-ssApproved :: Lens' Site (Maybe Bool)
-ssApproved
-  = lens _ssApproved (\ s a -> s{_ssApproved = a})
-
-instance FromJSON Site where
-        parseJSON
-          = withObject "Site"
-              (\ o ->
-                 Site <$>
-                   (o .:? "kind" .!= "dfareporting#site") <*>
-                     (o .:? "keyName")
-                     <*> (o .:? "siteContacts" .!= mempty)
-                     <*> (o .:? "siteSettings")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "directorySiteIdDimensionValue")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "directorySiteId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "approved"))
-
-instance ToJSON Site where
-        toJSON Site{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _ssKind),
-                  ("keyName" .=) <$> _ssKeyName,
-                  ("siteContacts" .=) <$> _ssSiteContacts,
-                  ("siteSettings" .=) <$> _ssSiteSettings,
-                  ("idDimensionValue" .=) <$> _ssIdDimensionValue,
-                  ("directorySiteIdDimensionValue" .=) <$>
-                    _ssDirectorySiteIdDimensionValue,
-                  ("accountId" .=) <$> _ssAccountId,
-                  ("name" .=) <$> _ssName,
-                  ("directorySiteId" .=) <$> _ssDirectorySiteId,
-                  ("id" .=) <$> _ssId,
-                  ("subaccountId" .=) <$> _ssSubAccountId,
-                  ("approved" .=) <$> _ssApproved])
-
--- | User Defined Variable configuration.
---
--- /See:/ 'userDefinedVariableConfiguration' smart constructor.
-data UserDefinedVariableConfiguration = UserDefinedVariableConfiguration
-    { _udvcReportName   :: !(Maybe Text)
-    , _udvcDataType     :: !(Maybe UserDefinedVariableConfigurationDataType)
-    , _udvcVariableType :: !(Maybe UserDefinedVariableConfigurationVariableType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserDefinedVariableConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'udvcReportName'
---
--- * 'udvcDataType'
---
--- * 'udvcVariableType'
-userDefinedVariableConfiguration
-    :: UserDefinedVariableConfiguration
-userDefinedVariableConfiguration =
-    UserDefinedVariableConfiguration
-    { _udvcReportName = Nothing
-    , _udvcDataType = Nothing
-    , _udvcVariableType = Nothing
-    }
-
--- | User-friendly name for the variable which will appear in reports. This
--- is a required field, must be less than 64 characters long, and cannot
--- contain the following characters: \"\"\<>\".
-udvcReportName :: Lens' UserDefinedVariableConfiguration (Maybe Text)
-udvcReportName
-  = lens _udvcReportName
-      (\ s a -> s{_udvcReportName = a})
-
--- | Data type for the variable. This is a required field.
-udvcDataType :: Lens' UserDefinedVariableConfiguration (Maybe UserDefinedVariableConfigurationDataType)
-udvcDataType
-  = lens _udvcDataType (\ s a -> s{_udvcDataType = a})
-
--- | Variable name in the tag. This is a required field.
-udvcVariableType :: Lens' UserDefinedVariableConfiguration (Maybe UserDefinedVariableConfigurationVariableType)
-udvcVariableType
-  = lens _udvcVariableType
-      (\ s a -> s{_udvcVariableType = a})
-
-instance FromJSON UserDefinedVariableConfiguration
-         where
-        parseJSON
-          = withObject "UserDefinedVariableConfiguration"
-              (\ o ->
-                 UserDefinedVariableConfiguration <$>
-                   (o .:? "reportName") <*> (o .:? "dataType") <*>
-                     (o .:? "variableType"))
-
-instance ToJSON UserDefinedVariableConfiguration
-         where
-        toJSON UserDefinedVariableConfiguration{..}
-          = object
-              (catMaybes
-                 [("reportName" .=) <$> _udvcReportName,
-                  ("dataType" .=) <$> _udvcDataType,
-                  ("variableType" .=) <$> _udvcVariableType])
-
--- | The report criteria for a report of type \"CROSS_DIMENSION_REACH\".
---
--- /See:/ 'reportCrossDimensionReachCriteria' smart constructor.
-data ReportCrossDimensionReachCriteria = ReportCrossDimensionReachCriteria
-    { _rcdrcPivoted            :: !(Maybe Bool)
-    , _rcdrcBreakdown          :: !(Maybe [SortedDimension])
-    , _rcdrcDimension          :: !(Maybe ReportCrossDimensionReachCriteriaDimension)
-    , _rcdrcMetricNames        :: !(Maybe [Text])
-    , _rcdrcDimensionFilters   :: !(Maybe [DimensionValue])
-    , _rcdrcDateRange          :: !(Maybe DateRange)
-    , _rcdrcOverlapMetricNames :: !(Maybe [Text])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ReportCrossDimensionReachCriteria' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rcdrcPivoted'
---
--- * 'rcdrcBreakdown'
---
--- * 'rcdrcDimension'
---
--- * 'rcdrcMetricNames'
---
--- * 'rcdrcDimensionFilters'
---
--- * 'rcdrcDateRange'
---
--- * 'rcdrcOverlapMetricNames'
-reportCrossDimensionReachCriteria
-    :: ReportCrossDimensionReachCriteria
-reportCrossDimensionReachCriteria =
-    ReportCrossDimensionReachCriteria
-    { _rcdrcPivoted = Nothing
-    , _rcdrcBreakdown = Nothing
-    , _rcdrcDimension = Nothing
-    , _rcdrcMetricNames = Nothing
-    , _rcdrcDimensionFilters = Nothing
-    , _rcdrcDateRange = Nothing
-    , _rcdrcOverlapMetricNames = Nothing
-    }
-
--- | Whether the report is pivoted or not. Defaults to true.
-rcdrcPivoted :: Lens' ReportCrossDimensionReachCriteria (Maybe Bool)
-rcdrcPivoted
-  = lens _rcdrcPivoted (\ s a -> s{_rcdrcPivoted = a})
-
--- | The list of dimensions the report should include.
-rcdrcBreakdown :: Lens' ReportCrossDimensionReachCriteria [SortedDimension]
-rcdrcBreakdown
-  = lens _rcdrcBreakdown
-      (\ s a -> s{_rcdrcBreakdown = a})
-      . _Default
-      . _Coerce
-
--- | The dimension option.
-rcdrcDimension :: Lens' ReportCrossDimensionReachCriteria (Maybe ReportCrossDimensionReachCriteriaDimension)
-rcdrcDimension
-  = lens _rcdrcDimension
-      (\ s a -> s{_rcdrcDimension = a})
-
--- | The list of names of metrics the report should include.
-rcdrcMetricNames :: Lens' ReportCrossDimensionReachCriteria [Text]
-rcdrcMetricNames
-  = lens _rcdrcMetricNames
-      (\ s a -> s{_rcdrcMetricNames = a})
-      . _Default
-      . _Coerce
-
--- | The list of filters on which dimensions are filtered.
-rcdrcDimensionFilters :: Lens' ReportCrossDimensionReachCriteria [DimensionValue]
-rcdrcDimensionFilters
-  = lens _rcdrcDimensionFilters
-      (\ s a -> s{_rcdrcDimensionFilters = a})
-      . _Default
-      . _Coerce
-
--- | The date range this report should be run for.
-rcdrcDateRange :: Lens' ReportCrossDimensionReachCriteria (Maybe DateRange)
-rcdrcDateRange
-  = lens _rcdrcDateRange
-      (\ s a -> s{_rcdrcDateRange = a})
-
--- | The list of names of overlap metrics the report should include.
-rcdrcOverlapMetricNames :: Lens' ReportCrossDimensionReachCriteria [Text]
-rcdrcOverlapMetricNames
-  = lens _rcdrcOverlapMetricNames
-      (\ s a -> s{_rcdrcOverlapMetricNames = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ReportCrossDimensionReachCriteria
-         where
-        parseJSON
-          = withObject "ReportCrossDimensionReachCriteria"
-              (\ o ->
-                 ReportCrossDimensionReachCriteria <$>
-                   (o .:? "pivoted") <*> (o .:? "breakdown" .!= mempty)
-                     <*> (o .:? "dimension")
-                     <*> (o .:? "metricNames" .!= mempty)
-                     <*> (o .:? "dimensionFilters" .!= mempty)
-                     <*> (o .:? "dateRange")
-                     <*> (o .:? "overlapMetricNames" .!= mempty))
-
-instance ToJSON ReportCrossDimensionReachCriteria
-         where
-        toJSON ReportCrossDimensionReachCriteria{..}
-          = object
-              (catMaybes
-                 [("pivoted" .=) <$> _rcdrcPivoted,
-                  ("breakdown" .=) <$> _rcdrcBreakdown,
-                  ("dimension" .=) <$> _rcdrcDimension,
-                  ("metricNames" .=) <$> _rcdrcMetricNames,
-                  ("dimensionFilters" .=) <$> _rcdrcDimensionFilters,
-                  ("dateRange" .=) <$> _rcdrcDateRange,
-                  ("overlapMetricNames" .=) <$>
-                    _rcdrcOverlapMetricNames])
-
--- | The URLs where the completed report file can be downloaded.
---
--- /See:/ 'fileURLs' smart constructor.
-data FileURLs = FileURLs
-    { _fuBrowserURL :: !(Maybe Text)
-    , _fuAPIURL     :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FileURLs' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fuBrowserURL'
---
--- * 'fuAPIURL'
-fileURLs
-    :: FileURLs
-fileURLs =
-    FileURLs
-    { _fuBrowserURL = Nothing
-    , _fuAPIURL = Nothing
-    }
-
--- | The URL for downloading the report data through a browser.
-fuBrowserURL :: Lens' FileURLs (Maybe Text)
-fuBrowserURL
-  = lens _fuBrowserURL (\ s a -> s{_fuBrowserURL = a})
-
--- | The URL for downloading the report data through the API.
-fuAPIURL :: Lens' FileURLs (Maybe Text)
-fuAPIURL = lens _fuAPIURL (\ s a -> s{_fuAPIURL = a})
-
-instance FromJSON FileURLs where
-        parseJSON
-          = withObject "FileURLs"
-              (\ o ->
-                 FileURLs <$>
-                   (o .:? "browserUrl") <*> (o .:? "apiUrl"))
-
-instance ToJSON FileURLs where
-        toJSON FileURLs{..}
-          = object
-              (catMaybes
-                 [("browserUrl" .=) <$> _fuBrowserURL,
-                  ("apiUrl" .=) <$> _fuAPIURL])
-
--- | Campaign Creative Association List Response
---
--- /See:/ 'campaignCreativeAssociationsListResponse' smart constructor.
-data CampaignCreativeAssociationsListResponse = CampaignCreativeAssociationsListResponse
-    { _ccalrCampaignCreativeAssociations :: !(Maybe [CampaignCreativeAssociation])
-    , _ccalrNextPageToken                :: !(Maybe Text)
-    , _ccalrKind                         :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CampaignCreativeAssociationsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccalrCampaignCreativeAssociations'
---
--- * 'ccalrNextPageToken'
---
--- * 'ccalrKind'
-campaignCreativeAssociationsListResponse
-    :: CampaignCreativeAssociationsListResponse
-campaignCreativeAssociationsListResponse =
-    CampaignCreativeAssociationsListResponse
-    { _ccalrCampaignCreativeAssociations = Nothing
-    , _ccalrNextPageToken = Nothing
-    , _ccalrKind = "dfareporting#campaignCreativeAssociationsListResponse"
-    }
-
--- | Campaign creative association collection
-ccalrCampaignCreativeAssociations :: Lens' CampaignCreativeAssociationsListResponse [CampaignCreativeAssociation]
-ccalrCampaignCreativeAssociations
-  = lens _ccalrCampaignCreativeAssociations
-      (\ s a -> s{_ccalrCampaignCreativeAssociations = a})
-      . _Default
-      . _Coerce
-
--- | Pagination token to be used for the next list operation.
-ccalrNextPageToken :: Lens' CampaignCreativeAssociationsListResponse (Maybe Text)
-ccalrNextPageToken
-  = lens _ccalrNextPageToken
-      (\ s a -> s{_ccalrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#campaignCreativeAssociationsListResponse\".
-ccalrKind :: Lens' CampaignCreativeAssociationsListResponse Text
-ccalrKind
-  = lens _ccalrKind (\ s a -> s{_ccalrKind = a})
-
-instance FromJSON
-         CampaignCreativeAssociationsListResponse where
-        parseJSON
-          = withObject
-              "CampaignCreativeAssociationsListResponse"
-              (\ o ->
-                 CampaignCreativeAssociationsListResponse <$>
-                   (o .:? "campaignCreativeAssociations" .!= mempty) <*>
-                     (o .:? "nextPageToken")
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#campaignCreativeAssociationsListResponse"))
-
-instance ToJSON
-         CampaignCreativeAssociationsListResponse where
-        toJSON CampaignCreativeAssociationsListResponse{..}
-          = object
-              (catMaybes
-                 [("campaignCreativeAssociations" .=) <$>
-                    _ccalrCampaignCreativeAssociations,
-                  ("nextPageToken" .=) <$> _ccalrNextPageToken,
-                  Just ("kind" .= _ccalrKind)])
-
--- | Describes properties of a DoubleClick Planning order.
---
--- /See:/ 'order' smart constructor.
-data Order = Order
-    { _oSellerOrderId          :: !(Maybe Text)
-    , _oSellerOrganizationName :: !(Maybe Text)
-    , _oKind                   :: !Text
-    , _oAdvertiserId           :: !(Maybe (Textual Int64))
-    , _oPlanningTermId         :: !(Maybe (Textual Int64))
-    , _oAccountId              :: !(Maybe (Textual Int64))
-    , _oName                   :: !(Maybe Text)
-    , _oSiteNames              :: !(Maybe [Text])
-    , _oLastModifiedInfo       :: !(Maybe LastModifiedInfo)
-    , _oBuyerOrganizationName  :: !(Maybe Text)
-    , _oId                     :: !(Maybe (Textual Int64))
-    , _oBuyerInvoiceId         :: !(Maybe Text)
-    , _oComments               :: !(Maybe Text)
-    , _oProjectId              :: !(Maybe (Textual Int64))
-    , _oSubAccountId           :: !(Maybe (Textual Int64))
-    , _oNotes                  :: !(Maybe Text)
-    , _oContacts               :: !(Maybe [OrderContact])
-    , _oSiteId                 :: !(Maybe [Textual Int64])
-    , _oTermsAndConditions     :: !(Maybe Text)
-    , _oApproverUserProFileIds :: !(Maybe [Textual Int64])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Order' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oSellerOrderId'
---
--- * 'oSellerOrganizationName'
---
--- * 'oKind'
---
--- * 'oAdvertiserId'
---
--- * 'oPlanningTermId'
---
--- * 'oAccountId'
---
--- * 'oName'
---
--- * 'oSiteNames'
---
--- * 'oLastModifiedInfo'
---
--- * 'oBuyerOrganizationName'
---
--- * 'oId'
---
--- * 'oBuyerInvoiceId'
---
--- * 'oComments'
---
--- * 'oProjectId'
---
--- * 'oSubAccountId'
---
--- * 'oNotes'
---
--- * 'oContacts'
---
--- * 'oSiteId'
---
--- * 'oTermsAndConditions'
---
--- * 'oApproverUserProFileIds'
-order
-    :: Order
-order =
-    Order
-    { _oSellerOrderId = Nothing
-    , _oSellerOrganizationName = Nothing
-    , _oKind = "dfareporting#order"
-    , _oAdvertiserId = Nothing
-    , _oPlanningTermId = Nothing
-    , _oAccountId = Nothing
-    , _oName = Nothing
-    , _oSiteNames = Nothing
-    , _oLastModifiedInfo = Nothing
-    , _oBuyerOrganizationName = Nothing
-    , _oId = Nothing
-    , _oBuyerInvoiceId = Nothing
-    , _oComments = Nothing
-    , _oProjectId = Nothing
-    , _oSubAccountId = Nothing
-    , _oNotes = Nothing
-    , _oContacts = Nothing
-    , _oSiteId = Nothing
-    , _oTermsAndConditions = Nothing
-    , _oApproverUserProFileIds = Nothing
-    }
-
--- | Seller order ID associated with this order.
-oSellerOrderId :: Lens' Order (Maybe Text)
-oSellerOrderId
-  = lens _oSellerOrderId
-      (\ s a -> s{_oSellerOrderId = a})
-
--- | Name of the seller organization.
-oSellerOrganizationName :: Lens' Order (Maybe Text)
-oSellerOrganizationName
-  = lens _oSellerOrganizationName
-      (\ s a -> s{_oSellerOrganizationName = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#order\".
-oKind :: Lens' Order Text
-oKind = lens _oKind (\ s a -> s{_oKind = a})
-
--- | Advertiser ID of this order.
-oAdvertiserId :: Lens' Order (Maybe Int64)
-oAdvertiserId
-  = lens _oAdvertiserId
-      (\ s a -> s{_oAdvertiserId = a})
-      . mapping _Coerce
-
--- | ID of the terms and conditions template used in this order.
-oPlanningTermId :: Lens' Order (Maybe Int64)
-oPlanningTermId
-  = lens _oPlanningTermId
-      (\ s a -> s{_oPlanningTermId = a})
-      . mapping _Coerce
-
--- | Account ID of this order.
-oAccountId :: Lens' Order (Maybe Int64)
-oAccountId
-  = lens _oAccountId (\ s a -> s{_oAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this order.
-oName :: Lens' Order (Maybe Text)
-oName = lens _oName (\ s a -> s{_oName = a})
-
--- | Free-form site names this order is associated with.
-oSiteNames :: Lens' Order [Text]
-oSiteNames
-  = lens _oSiteNames (\ s a -> s{_oSiteNames = a}) .
-      _Default
-      . _Coerce
-
--- | Information about the most recent modification of this order.
-oLastModifiedInfo :: Lens' Order (Maybe LastModifiedInfo)
-oLastModifiedInfo
-  = lens _oLastModifiedInfo
-      (\ s a -> s{_oLastModifiedInfo = a})
-
--- | Name of the buyer organization.
-oBuyerOrganizationName :: Lens' Order (Maybe Text)
-oBuyerOrganizationName
-  = lens _oBuyerOrganizationName
-      (\ s a -> s{_oBuyerOrganizationName = a})
-
--- | ID of this order. This is a read-only, auto-generated field.
-oId :: Lens' Order (Maybe Int64)
-oId
-  = lens _oId (\ s a -> s{_oId = a}) . mapping _Coerce
-
--- | Buyer invoice ID associated with this order.
-oBuyerInvoiceId :: Lens' Order (Maybe Text)
-oBuyerInvoiceId
-  = lens _oBuyerInvoiceId
-      (\ s a -> s{_oBuyerInvoiceId = a})
-
--- | Comments in this order.
-oComments :: Lens' Order (Maybe Text)
-oComments
-  = lens _oComments (\ s a -> s{_oComments = a})
-
--- | Project ID of this order.
-oProjectId :: Lens' Order (Maybe Int64)
-oProjectId
-  = lens _oProjectId (\ s a -> s{_oProjectId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this order.
-oSubAccountId :: Lens' Order (Maybe Int64)
-oSubAccountId
-  = lens _oSubAccountId
-      (\ s a -> s{_oSubAccountId = a})
-      . mapping _Coerce
-
--- | Notes of this order.
-oNotes :: Lens' Order (Maybe Text)
-oNotes = lens _oNotes (\ s a -> s{_oNotes = a})
-
--- | Contacts for this order.
-oContacts :: Lens' Order [OrderContact]
-oContacts
-  = lens _oContacts (\ s a -> s{_oContacts = a}) .
-      _Default
-      . _Coerce
-
--- | Site IDs this order is associated with.
-oSiteId :: Lens' Order [Int64]
-oSiteId
-  = lens _oSiteId (\ s a -> s{_oSiteId = a}) . _Default
-      . _Coerce
-
--- | Terms and conditions of this order.
-oTermsAndConditions :: Lens' Order (Maybe Text)
-oTermsAndConditions
-  = lens _oTermsAndConditions
-      (\ s a -> s{_oTermsAndConditions = a})
-
--- | IDs for users that have to approve documents created for this order.
-oApproverUserProFileIds :: Lens' Order [Int64]
-oApproverUserProFileIds
-  = lens _oApproverUserProFileIds
-      (\ s a -> s{_oApproverUserProFileIds = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON Order where
-        parseJSON
-          = withObject "Order"
-              (\ o ->
-                 Order <$>
-                   (o .:? "sellerOrderId") <*>
-                     (o .:? "sellerOrganizationName")
-                     <*> (o .:? "kind" .!= "dfareporting#order")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "planningTermId")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "siteNames" .!= mempty)
-                     <*> (o .:? "lastModifiedInfo")
-                     <*> (o .:? "buyerOrganizationName")
-                     <*> (o .:? "id")
-                     <*> (o .:? "buyerInvoiceId")
-                     <*> (o .:? "comments")
-                     <*> (o .:? "projectId")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "notes")
-                     <*> (o .:? "contacts" .!= mempty)
-                     <*> (o .:? "siteId" .!= mempty)
-                     <*> (o .:? "termsAndConditions")
-                     <*> (o .:? "approverUserProfileIds" .!= mempty))
-
-instance ToJSON Order where
-        toJSON Order{..}
-          = object
-              (catMaybes
-                 [("sellerOrderId" .=) <$> _oSellerOrderId,
-                  ("sellerOrganizationName" .=) <$>
-                    _oSellerOrganizationName,
-                  Just ("kind" .= _oKind),
-                  ("advertiserId" .=) <$> _oAdvertiserId,
-                  ("planningTermId" .=) <$> _oPlanningTermId,
-                  ("accountId" .=) <$> _oAccountId,
-                  ("name" .=) <$> _oName,
-                  ("siteNames" .=) <$> _oSiteNames,
-                  ("lastModifiedInfo" .=) <$> _oLastModifiedInfo,
-                  ("buyerOrganizationName" .=) <$>
-                    _oBuyerOrganizationName,
-                  ("id" .=) <$> _oId,
-                  ("buyerInvoiceId" .=) <$> _oBuyerInvoiceId,
-                  ("comments" .=) <$> _oComments,
-                  ("projectId" .=) <$> _oProjectId,
-                  ("subaccountId" .=) <$> _oSubAccountId,
-                  ("notes" .=) <$> _oNotes,
-                  ("contacts" .=) <$> _oContacts,
-                  ("siteId" .=) <$> _oSiteId,
-                  ("termsAndConditions" .=) <$> _oTermsAndConditions,
-                  ("approverUserProfileIds" .=) <$>
-                    _oApproverUserProFileIds])
-
--- | Creative Asset ID.
---
--- /See:/ 'creativeAssetId' smart constructor.
-data CreativeAssetId = CreativeAssetId
-    { _caiName :: !(Maybe Text)
-    , _caiType :: !(Maybe CreativeAssetIdType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeAssetId' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caiName'
---
--- * 'caiType'
-creativeAssetId
-    :: CreativeAssetId
-creativeAssetId =
-    CreativeAssetId
-    { _caiName = Nothing
-    , _caiType = Nothing
-    }
-
--- | Name of the creative asset. This is a required field while inserting an
--- asset. After insertion, this assetIdentifier is used to identify the
--- uploaded asset. Characters in the name must be alphanumeric or one of
--- the following: \".-_ \". Spaces are allowed.
-caiName :: Lens' CreativeAssetId (Maybe Text)
-caiName = lens _caiName (\ s a -> s{_caiName = a})
-
--- | Type of asset to upload. This is a required field. IMAGE is solely used
--- for IMAGE creatives. Other image assets should use HTML_IMAGE.
-caiType :: Lens' CreativeAssetId (Maybe CreativeAssetIdType)
-caiType = lens _caiType (\ s a -> s{_caiType = a})
-
-instance FromJSON CreativeAssetId where
-        parseJSON
-          = withObject "CreativeAssetId"
-              (\ o ->
-                 CreativeAssetId <$>
-                   (o .:? "name") <*> (o .:? "type"))
-
-instance ToJSON CreativeAssetId where
-        toJSON CreativeAssetId{..}
-          = object
-              (catMaybes
-                 [("name" .=) <$> _caiName, ("type" .=) <$> _caiType])
-
--- | Frequency Cap.
---
--- /See:/ 'frequencyCap' smart constructor.
-data FrequencyCap = FrequencyCap
-    { _fcImpressions :: !(Maybe (Textual Int64))
-    , _fcDuration    :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FrequencyCap' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fcImpressions'
---
--- * 'fcDuration'
-frequencyCap
-    :: FrequencyCap
-frequencyCap =
-    FrequencyCap
-    { _fcImpressions = Nothing
-    , _fcDuration = Nothing
-    }
-
--- | Number of times an individual user can be served the ad within the
--- specified duration. The maximum allowed is 15.
-fcImpressions :: Lens' FrequencyCap (Maybe Int64)
-fcImpressions
-  = lens _fcImpressions
-      (\ s a -> s{_fcImpressions = a})
-      . mapping _Coerce
-
--- | Duration of time, in seconds, for this frequency cap. The maximum
--- duration is 90 days in seconds, or 7,776,000.
-fcDuration :: Lens' FrequencyCap (Maybe Int64)
-fcDuration
-  = lens _fcDuration (\ s a -> s{_fcDuration = a}) .
-      mapping _Coerce
-
-instance FromJSON FrequencyCap where
-        parseJSON
-          = withObject "FrequencyCap"
-              (\ o ->
-                 FrequencyCap <$>
-                   (o .:? "impressions") <*> (o .:? "duration"))
-
-instance ToJSON FrequencyCap where
-        toJSON FrequencyCap{..}
-          = object
-              (catMaybes
-                 [("impressions" .=) <$> _fcImpressions,
-                  ("duration" .=) <$> _fcDuration])
-
--- | Represents a File resource. A file contains the metadata for a report
--- run. It shows the status of the run and holds the URLs to the generated
--- report data if the run is finished and the status is
--- \"REPORT_AVAILABLE\".
---
--- /See:/ 'file' smart constructor.
-data File = File
-    { _filStatus           :: !(Maybe FileStatus)
-    , _filEtag             :: !(Maybe Text)
-    , _filKind             :: !Text
-    , _filURLs             :: !(Maybe FileURLs)
-    , _filReportId         :: !(Maybe (Textual Int64))
-    , _filDateRange        :: !(Maybe DateRange)
-    , _filFormat           :: !(Maybe FileFormat)
-    , _filLastModifiedTime :: !(Maybe (Textual Int64))
-    , _filId               :: !(Maybe (Textual Int64))
-    , _filFileName         :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'File' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'filStatus'
---
--- * 'filEtag'
---
--- * 'filKind'
---
--- * 'filURLs'
---
--- * 'filReportId'
---
--- * 'filDateRange'
---
--- * 'filFormat'
---
--- * 'filLastModifiedTime'
---
--- * 'filId'
---
--- * 'filFileName'
-file
-    :: File
-file =
-    File
-    { _filStatus = Nothing
-    , _filEtag = Nothing
-    , _filKind = "dfareporting#file"
-    , _filURLs = Nothing
-    , _filReportId = Nothing
-    , _filDateRange = Nothing
-    , _filFormat = Nothing
-    , _filLastModifiedTime = Nothing
-    , _filId = Nothing
-    , _filFileName = Nothing
-    }
-
--- | The status of the report file.
-filStatus :: Lens' File (Maybe FileStatus)
-filStatus
-  = lens _filStatus (\ s a -> s{_filStatus = a})
-
--- | The eTag of this response for caching purposes.
-filEtag :: Lens' File (Maybe Text)
-filEtag = lens _filEtag (\ s a -> s{_filEtag = a})
-
--- | The kind of resource this is, in this case dfareporting#file.
-filKind :: Lens' File Text
-filKind = lens _filKind (\ s a -> s{_filKind = a})
-
--- | The URLs where the completed report file can be downloaded.
-filURLs :: Lens' File (Maybe FileURLs)
-filURLs = lens _filURLs (\ s a -> s{_filURLs = a})
-
--- | The ID of the report this file was generated from.
-filReportId :: Lens' File (Maybe Int64)
-filReportId
-  = lens _filReportId (\ s a -> s{_filReportId = a}) .
-      mapping _Coerce
-
--- | The date range for which the file has report data. The date range will
--- always be the absolute date range for which the report is run.
-filDateRange :: Lens' File (Maybe DateRange)
-filDateRange
-  = lens _filDateRange (\ s a -> s{_filDateRange = a})
-
--- | The output format of the report. Only available once the file is
--- available.
-filFormat :: Lens' File (Maybe FileFormat)
-filFormat
-  = lens _filFormat (\ s a -> s{_filFormat = a})
-
--- | The timestamp in milliseconds since epoch when this file was last
--- modified.
-filLastModifiedTime :: Lens' File (Maybe Int64)
-filLastModifiedTime
-  = lens _filLastModifiedTime
-      (\ s a -> s{_filLastModifiedTime = a})
-      . mapping _Coerce
-
--- | The unique ID of this report file.
-filId :: Lens' File (Maybe Int64)
-filId
-  = lens _filId (\ s a -> s{_filId = a}) .
-      mapping _Coerce
-
--- | The filename of the file.
-filFileName :: Lens' File (Maybe Text)
-filFileName
-  = lens _filFileName (\ s a -> s{_filFileName = a})
-
-instance FromJSON File where
-        parseJSON
-          = withObject "File"
-              (\ o ->
-                 File <$>
-                   (o .:? "status") <*> (o .:? "etag") <*>
-                     (o .:? "kind" .!= "dfareporting#file")
-                     <*> (o .:? "urls")
-                     <*> (o .:? "reportId")
-                     <*> (o .:? "dateRange")
-                     <*> (o .:? "format")
-                     <*> (o .:? "lastModifiedTime")
-                     <*> (o .:? "id")
-                     <*> (o .:? "fileName"))
-
-instance ToJSON File where
-        toJSON File{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _filStatus,
-                  ("etag" .=) <$> _filEtag, Just ("kind" .= _filKind),
-                  ("urls" .=) <$> _filURLs,
-                  ("reportId" .=) <$> _filReportId,
-                  ("dateRange" .=) <$> _filDateRange,
-                  ("format" .=) <$> _filFormat,
-                  ("lastModifiedTime" .=) <$> _filLastModifiedTime,
-                  ("id" .=) <$> _filId,
-                  ("fileName" .=) <$> _filFileName])
-
--- | Creative Settings
---
--- /See:/ 'creativeSettings' smart constructor.
-data CreativeSettings = CreativeSettings
-    { _csIFrameHeader :: !(Maybe Text)
-    , _csIFrameFooter :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeSettings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'csIFrameHeader'
---
--- * 'csIFrameFooter'
-creativeSettings
-    :: CreativeSettings
-creativeSettings =
-    CreativeSettings
-    { _csIFrameHeader = Nothing
-    , _csIFrameFooter = Nothing
-    }
-
--- | Header text for iFrames for this site. Must be less than or equal to
--- 2000 characters long.
-csIFrameHeader :: Lens' CreativeSettings (Maybe Text)
-csIFrameHeader
-  = lens _csIFrameHeader
-      (\ s a -> s{_csIFrameHeader = a})
-
--- | Header text for iFrames for this site. Must be less than or equal to
--- 2000 characters long.
-csIFrameFooter :: Lens' CreativeSettings (Maybe Text)
-csIFrameFooter
-  = lens _csIFrameFooter
-      (\ s a -> s{_csIFrameFooter = a})
-
-instance FromJSON CreativeSettings where
-        parseJSON
-          = withObject "CreativeSettings"
-              (\ o ->
-                 CreativeSettings <$>
-                   (o .:? "iFrameHeader") <*> (o .:? "iFrameFooter"))
-
-instance ToJSON CreativeSettings where
-        toJSON CreativeSettings{..}
-          = object
-              (catMaybes
-                 [("iFrameHeader" .=) <$> _csIFrameHeader,
-                  ("iFrameFooter" .=) <$> _csIFrameFooter])
-
--- | Creative Group List Response
---
--- /See:/ 'creativeGroupsListResponse' smart constructor.
-data CreativeGroupsListResponse = CreativeGroupsListResponse
-    { _cglrCreativeGroups :: !(Maybe [CreativeGroup])
-    , _cglrNextPageToken  :: !(Maybe Text)
-    , _cglrKind           :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeGroupsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cglrCreativeGroups'
---
--- * 'cglrNextPageToken'
---
--- * 'cglrKind'
-creativeGroupsListResponse
-    :: CreativeGroupsListResponse
-creativeGroupsListResponse =
-    CreativeGroupsListResponse
-    { _cglrCreativeGroups = Nothing
-    , _cglrNextPageToken = Nothing
-    , _cglrKind = "dfareporting#creativeGroupsListResponse"
-    }
-
--- | Creative group collection.
-cglrCreativeGroups :: Lens' CreativeGroupsListResponse [CreativeGroup]
-cglrCreativeGroups
-  = lens _cglrCreativeGroups
-      (\ s a -> s{_cglrCreativeGroups = a})
-      . _Default
-      . _Coerce
-
--- | Pagination token to be used for the next list operation.
-cglrNextPageToken :: Lens' CreativeGroupsListResponse (Maybe Text)
-cglrNextPageToken
-  = lens _cglrNextPageToken
-      (\ s a -> s{_cglrNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#creativeGroupsListResponse\".
-cglrKind :: Lens' CreativeGroupsListResponse Text
-cglrKind = lens _cglrKind (\ s a -> s{_cglrKind = a})
-
-instance FromJSON CreativeGroupsListResponse where
-        parseJSON
-          = withObject "CreativeGroupsListResponse"
-              (\ o ->
-                 CreativeGroupsListResponse <$>
-                   (o .:? "creativeGroups" .!= mempty) <*>
-                     (o .:? "nextPageToken")
-                     <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#creativeGroupsListResponse"))
-
-instance ToJSON CreativeGroupsListResponse where
-        toJSON CreativeGroupsListResponse{..}
-          = object
-              (catMaybes
-                 [("creativeGroups" .=) <$> _cglrCreativeGroups,
-                  ("nextPageToken" .=) <$> _cglrNextPageToken,
-                  Just ("kind" .= _cglrKind)])
-
--- | Mobile Carrier List Response
---
--- /See:/ 'mobileCarriersListResponse' smart constructor.
-data MobileCarriersListResponse = MobileCarriersListResponse
-    { _mclrMobileCarriers :: !(Maybe [MobileCarrier])
-    , _mclrKind           :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'MobileCarriersListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mclrMobileCarriers'
---
--- * 'mclrKind'
-mobileCarriersListResponse
-    :: MobileCarriersListResponse
-mobileCarriersListResponse =
-    MobileCarriersListResponse
-    { _mclrMobileCarriers = Nothing
-    , _mclrKind = "dfareporting#mobileCarriersListResponse"
-    }
-
--- | Mobile carrier collection.
-mclrMobileCarriers :: Lens' MobileCarriersListResponse [MobileCarrier]
-mclrMobileCarriers
-  = lens _mclrMobileCarriers
-      (\ s a -> s{_mclrMobileCarriers = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#mobileCarriersListResponse\".
-mclrKind :: Lens' MobileCarriersListResponse Text
-mclrKind = lens _mclrKind (\ s a -> s{_mclrKind = a})
-
-instance FromJSON MobileCarriersListResponse where
-        parseJSON
-          = withObject "MobileCarriersListResponse"
-              (\ o ->
-                 MobileCarriersListResponse <$>
-                   (o .:? "mobileCarriers" .!= mempty) <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#mobileCarriersListResponse"))
-
-instance ToJSON MobileCarriersListResponse where
-        toJSON MobileCarriersListResponse{..}
-          = object
-              (catMaybes
-                 [("mobileCarriers" .=) <$> _mclrMobileCarriers,
-                  Just ("kind" .= _mclrKind)])
-
--- | Landing Page List Response
---
--- /See:/ 'landingPagesListResponse' smart constructor.
-data LandingPagesListResponse = LandingPagesListResponse
-    { _lplrLandingPages :: !(Maybe [LandingPage])
-    , _lplrKind         :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'LandingPagesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lplrLandingPages'
---
--- * 'lplrKind'
-landingPagesListResponse
-    :: LandingPagesListResponse
-landingPagesListResponse =
-    LandingPagesListResponse
-    { _lplrLandingPages = Nothing
-    , _lplrKind = "dfareporting#landingPagesListResponse"
-    }
-
--- | Landing page collection
-lplrLandingPages :: Lens' LandingPagesListResponse [LandingPage]
-lplrLandingPages
-  = lens _lplrLandingPages
-      (\ s a -> s{_lplrLandingPages = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#landingPagesListResponse\".
-lplrKind :: Lens' LandingPagesListResponse Text
-lplrKind = lens _lplrKind (\ s a -> s{_lplrKind = a})
-
-instance FromJSON LandingPagesListResponse where
-        parseJSON
-          = withObject "LandingPagesListResponse"
-              (\ o ->
-                 LandingPagesListResponse <$>
-                   (o .:? "landingPages" .!= mempty) <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#landingPagesListResponse"))
-
-instance ToJSON LandingPagesListResponse where
-        toJSON LandingPagesListResponse{..}
-          = object
-              (catMaybes
-                 [("landingPages" .=) <$> _lplrLandingPages,
-                  Just ("kind" .= _lplrKind)])
-
--- | CreativeAssets contains properties of a creative asset file which will
--- be uploaded or has already been uploaded. Refer to the creative sample
--- code for how to upload assets and insert a creative.
---
--- /See:/ 'creativeAssetMetadata' smart constructor.
-data CreativeAssetMetadata = CreativeAssetMetadata
-    { _camaKind                  :: !Text
-    , _camaAssetIdentifier       :: !(Maybe CreativeAssetId)
-    , _camaClickTags             :: !(Maybe [ClickTag])
-    , _camaWarnedValidationRules :: !(Maybe [CreativeAssetMetadataWarnedValidationRulesItem])
-    , _camaDetectedFeatures      :: !(Maybe [CreativeAssetMetadataDetectedFeaturesItem])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeAssetMetadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'camaKind'
---
--- * 'camaAssetIdentifier'
---
--- * 'camaClickTags'
---
--- * 'camaWarnedValidationRules'
---
--- * 'camaDetectedFeatures'
-creativeAssetMetadata
-    :: CreativeAssetMetadata
-creativeAssetMetadata =
-    CreativeAssetMetadata
-    { _camaKind = "dfareporting#creativeAssetMetadata"
-    , _camaAssetIdentifier = Nothing
-    , _camaClickTags = Nothing
-    , _camaWarnedValidationRules = Nothing
-    , _camaDetectedFeatures = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#creativeAssetMetadata\".
-camaKind :: Lens' CreativeAssetMetadata Text
-camaKind = lens _camaKind (\ s a -> s{_camaKind = a})
-
--- | ID of the creative asset. This is a required field.
-camaAssetIdentifier :: Lens' CreativeAssetMetadata (Maybe CreativeAssetId)
-camaAssetIdentifier
-  = lens _camaAssetIdentifier
-      (\ s a -> s{_camaAssetIdentifier = a})
-
--- | List of detected click tags for assets. This is a read-only
--- auto-generated field.
-camaClickTags :: Lens' CreativeAssetMetadata [ClickTag]
-camaClickTags
-  = lens _camaClickTags
-      (\ s a -> s{_camaClickTags = a})
-      . _Default
-      . _Coerce
-
--- | Rules validated during code generation that generated a warning. This is
--- a read-only, auto-generated field. Possible values are: -
--- \"CLICK_TAG_NON_TOP_LEVEL\" - \"CLICK_TAG_MISSING\" -
--- \"CLICK_TAG_MORE_THAN_ONE\" - \"CLICK_TAG_INVALID\" - \"ORPHANED_ASSET\"
--- - \"PRIMARY_HTML_MISSING\" - \"EXTERNAL_FILE_REFERENCED\" -
--- \"MRAID_REFERENCED\" - \"ADMOB_REFERENCED\" - \"FILE_TYPE_INVALID\" -
--- \"ZIP_INVALID\" - \"LINKED_FILE_NOT_FOUND\" - \"MAX_FLASH_VERSION_11\" -
--- \"NOT_SSL_COMPLIANT\" - \"FILE_DETAIL_EMPTY\" - \"ASSET_INVALID\" -
--- \"GWD_PROPERTIES_INVALID\" - \"ENABLER_UNSUPPORTED_METHOD_DCM\" -
--- \"ASSET_FORMAT_UNSUPPORTED_DCM\" - \"COMPONENT_UNSUPPORTED_DCM\" -
--- \"HTML5_FEATURE_UNSUPPORTED\' \"
-camaWarnedValidationRules :: Lens' CreativeAssetMetadata [CreativeAssetMetadataWarnedValidationRulesItem]
-camaWarnedValidationRules
-  = lens _camaWarnedValidationRules
-      (\ s a -> s{_camaWarnedValidationRules = a})
-      . _Default
-      . _Coerce
-
--- | List of feature dependencies for the creative asset that are detected by
--- DCM. Feature dependencies are features that a browser must be able to
--- support in order to render your HTML5 creative correctly. This is a
--- read-only, auto-generated field.
-camaDetectedFeatures :: Lens' CreativeAssetMetadata [CreativeAssetMetadataDetectedFeaturesItem]
-camaDetectedFeatures
-  = lens _camaDetectedFeatures
-      (\ s a -> s{_camaDetectedFeatures = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON CreativeAssetMetadata where
-        parseJSON
-          = withObject "CreativeAssetMetadata"
-              (\ o ->
-                 CreativeAssetMetadata <$>
-                   (o .:? "kind" .!=
-                      "dfareporting#creativeAssetMetadata")
-                     <*> (o .:? "assetIdentifier")
-                     <*> (o .:? "clickTags" .!= mempty)
-                     <*> (o .:? "warnedValidationRules" .!= mempty)
-                     <*> (o .:? "detectedFeatures" .!= mempty))
-
-instance ToJSON CreativeAssetMetadata where
-        toJSON CreativeAssetMetadata{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _camaKind),
-                  ("assetIdentifier" .=) <$> _camaAssetIdentifier,
-                  ("clickTags" .=) <$> _camaClickTags,
-                  ("warnedValidationRules" .=) <$>
-                    _camaWarnedValidationRules,
-                  ("detectedFeatures" .=) <$> _camaDetectedFeatures])
-
--- | Omniture Integration Settings.
---
--- /See:/ 'omnitureSettings' smart constructor.
-data OmnitureSettings = OmnitureSettings
-    { _osOmnitureCostDataEnabled    :: !(Maybe Bool)
-    , _osOmnitureIntegrationEnabled :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OmnitureSettings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'osOmnitureCostDataEnabled'
---
--- * 'osOmnitureIntegrationEnabled'
-omnitureSettings
-    :: OmnitureSettings
-omnitureSettings =
-    OmnitureSettings
-    { _osOmnitureCostDataEnabled = Nothing
-    , _osOmnitureIntegrationEnabled = Nothing
-    }
-
--- | Whether placement cost data will be sent to Omniture. This property can
--- be enabled only if omnitureIntegrationEnabled is true.
-osOmnitureCostDataEnabled :: Lens' OmnitureSettings (Maybe Bool)
-osOmnitureCostDataEnabled
-  = lens _osOmnitureCostDataEnabled
-      (\ s a -> s{_osOmnitureCostDataEnabled = a})
-
--- | Whether Omniture integration is enabled. This property can be enabled
--- only when the \"Advanced Ad Serving\" account setting is enabled.
-osOmnitureIntegrationEnabled :: Lens' OmnitureSettings (Maybe Bool)
-osOmnitureIntegrationEnabled
-  = lens _osOmnitureIntegrationEnabled
-      (\ s a -> s{_osOmnitureIntegrationEnabled = a})
-
-instance FromJSON OmnitureSettings where
-        parseJSON
-          = withObject "OmnitureSettings"
-              (\ o ->
-                 OmnitureSettings <$>
-                   (o .:? "omnitureCostDataEnabled") <*>
-                     (o .:? "omnitureIntegrationEnabled"))
-
-instance ToJSON OmnitureSettings where
-        toJSON OmnitureSettings{..}
-          = object
-              (catMaybes
-                 [("omnitureCostDataEnabled" .=) <$>
-                    _osOmnitureCostDataEnabled,
-                  ("omnitureIntegrationEnabled" .=) <$>
-                    _osOmnitureIntegrationEnabled])
-
--- | Contains information about an internet connection type that can be
--- targeted by ads. Clients can use the connection type to target mobile
--- vs. broadband users.
---
--- /See:/ 'connectionType' smart constructor.
-data ConnectionType = ConnectionType
-    { _cttKind :: !Text
-    , _cttName :: !(Maybe Text)
-    , _cttId   :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ConnectionType' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cttKind'
---
--- * 'cttName'
---
--- * 'cttId'
-connectionType
-    :: ConnectionType
-connectionType =
-    ConnectionType
-    { _cttKind = "dfareporting#connectionType"
-    , _cttName = Nothing
-    , _cttId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#connectionType\".
-cttKind :: Lens' ConnectionType Text
-cttKind = lens _cttKind (\ s a -> s{_cttKind = a})
-
--- | Name of this connection type.
-cttName :: Lens' ConnectionType (Maybe Text)
-cttName = lens _cttName (\ s a -> s{_cttName = a})
-
--- | ID of this connection type.
-cttId :: Lens' ConnectionType (Maybe Int64)
-cttId
-  = lens _cttId (\ s a -> s{_cttId = a}) .
-      mapping _Coerce
-
-instance FromJSON ConnectionType where
-        parseJSON
-          = withObject "ConnectionType"
-              (\ o ->
-                 ConnectionType <$>
-                   (o .:? "kind" .!= "dfareporting#connectionType") <*>
-                     (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON ConnectionType where
-        toJSON ConnectionType{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _cttKind), ("name" .=) <$> _cttName,
-                  ("id" .=) <$> _cttId])
-
--- | Contains properties of a package or roadblock.
---
--- /See:/ 'placementGroup' smart constructor.
-data PlacementGroup = PlacementGroup
-    { _plalPlacementStrategyId              :: !(Maybe (Textual Int64))
-    , _plalSiteIdDimensionValue             :: !(Maybe DimensionValue)
-    , _plalPricingSchedule                  :: !(Maybe PricingSchedule)
-    , _plalKind                             :: !Text
-    , _plalCampaignIdDimensionValue         :: !(Maybe DimensionValue)
-    , _plalAdvertiserId                     :: !(Maybe (Textual Int64))
-    , _plalAdvertiserIdDimensionValue       :: !(Maybe DimensionValue)
-    , _plalCampaignId                       :: !(Maybe (Textual Int64))
-    , _plalIdDimensionValue                 :: !(Maybe DimensionValue)
-    , _plalPlacementGroupType               :: !(Maybe PlacementGroupPlacementGroupType)
-    , _plalContentCategoryId                :: !(Maybe (Textual Int64))
-    , _plalDirectorySiteIdDimensionValue    :: !(Maybe DimensionValue)
-    , _plalAccountId                        :: !(Maybe (Textual Int64))
-    , _plalName                             :: !(Maybe Text)
-    , _plalDirectorySiteId                  :: !(Maybe (Textual Int64))
-    , _plalCreateInfo                       :: !(Maybe LastModifiedInfo)
-    , _plalChildPlacementIds                :: !(Maybe [Textual Int64])
-    , _plalLastModifiedInfo                 :: !(Maybe LastModifiedInfo)
-    , _plalId                               :: !(Maybe (Textual Int64))
-    , _plalPrimaryPlacementId               :: !(Maybe (Textual Int64))
-    , _plalSubAccountId                     :: !(Maybe (Textual Int64))
-    , _plalExternalId                       :: !(Maybe Text)
-    , _plalComment                          :: !(Maybe Text)
-    , _plalPrimaryPlacementIdDimensionValue :: !(Maybe DimensionValue)
-    , _plalSiteId                           :: !(Maybe (Textual Int64))
-    , _plalArchived                         :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PlacementGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'plalPlacementStrategyId'
---
--- * 'plalSiteIdDimensionValue'
---
--- * 'plalPricingSchedule'
---
--- * 'plalKind'
---
--- * 'plalCampaignIdDimensionValue'
---
--- * 'plalAdvertiserId'
---
--- * 'plalAdvertiserIdDimensionValue'
---
--- * 'plalCampaignId'
---
--- * 'plalIdDimensionValue'
---
--- * 'plalPlacementGroupType'
---
--- * 'plalContentCategoryId'
---
--- * 'plalDirectorySiteIdDimensionValue'
---
--- * 'plalAccountId'
---
--- * 'plalName'
---
--- * 'plalDirectorySiteId'
---
--- * 'plalCreateInfo'
---
--- * 'plalChildPlacementIds'
---
--- * 'plalLastModifiedInfo'
---
--- * 'plalId'
---
--- * 'plalPrimaryPlacementId'
---
--- * 'plalSubAccountId'
---
--- * 'plalExternalId'
---
--- * 'plalComment'
---
--- * 'plalPrimaryPlacementIdDimensionValue'
---
--- * 'plalSiteId'
---
--- * 'plalArchived'
-placementGroup
-    :: PlacementGroup
-placementGroup =
-    PlacementGroup
-    { _plalPlacementStrategyId = Nothing
-    , _plalSiteIdDimensionValue = Nothing
-    , _plalPricingSchedule = Nothing
-    , _plalKind = "dfareporting#placementGroup"
-    , _plalCampaignIdDimensionValue = Nothing
-    , _plalAdvertiserId = Nothing
-    , _plalAdvertiserIdDimensionValue = Nothing
-    , _plalCampaignId = Nothing
-    , _plalIdDimensionValue = Nothing
-    , _plalPlacementGroupType = Nothing
-    , _plalContentCategoryId = Nothing
-    , _plalDirectorySiteIdDimensionValue = Nothing
-    , _plalAccountId = Nothing
-    , _plalName = Nothing
-    , _plalDirectorySiteId = Nothing
-    , _plalCreateInfo = Nothing
-    , _plalChildPlacementIds = Nothing
-    , _plalLastModifiedInfo = Nothing
-    , _plalId = Nothing
-    , _plalPrimaryPlacementId = Nothing
-    , _plalSubAccountId = Nothing
-    , _plalExternalId = Nothing
-    , _plalComment = Nothing
-    , _plalPrimaryPlacementIdDimensionValue = Nothing
-    , _plalSiteId = Nothing
-    , _plalArchived = Nothing
-    }
-
--- | ID of the placement strategy assigned to this placement group.
-plalPlacementStrategyId :: Lens' PlacementGroup (Maybe Int64)
-plalPlacementStrategyId
-  = lens _plalPlacementStrategyId
-      (\ s a -> s{_plalPlacementStrategyId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the site. This is a read-only,
--- auto-generated field.
-plalSiteIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
-plalSiteIdDimensionValue
-  = lens _plalSiteIdDimensionValue
-      (\ s a -> s{_plalSiteIdDimensionValue = a})
-
--- | Pricing schedule of this placement group. This field is required on
--- insertion.
-plalPricingSchedule :: Lens' PlacementGroup (Maybe PricingSchedule)
-plalPricingSchedule
-  = lens _plalPricingSchedule
-      (\ s a -> s{_plalPricingSchedule = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#placementGroup\".
-plalKind :: Lens' PlacementGroup Text
-plalKind = lens _plalKind (\ s a -> s{_plalKind = a})
-
--- | Dimension value for the ID of the campaign. This is a read-only,
--- auto-generated field.
-plalCampaignIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
-plalCampaignIdDimensionValue
-  = lens _plalCampaignIdDimensionValue
-      (\ s a -> s{_plalCampaignIdDimensionValue = a})
-
--- | Advertiser ID of this placement group. This is a required field on
--- insertion.
-plalAdvertiserId :: Lens' PlacementGroup (Maybe Int64)
-plalAdvertiserId
-  = lens _plalAdvertiserId
-      (\ s a -> s{_plalAdvertiserId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the advertiser. This is a read-only,
--- auto-generated field.
-plalAdvertiserIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
-plalAdvertiserIdDimensionValue
-  = lens _plalAdvertiserIdDimensionValue
-      (\ s a -> s{_plalAdvertiserIdDimensionValue = a})
-
--- | Campaign ID of this placement group. This field is required on
--- insertion.
-plalCampaignId :: Lens' PlacementGroup (Maybe Int64)
-plalCampaignId
-  = lens _plalCampaignId
-      (\ s a -> s{_plalCampaignId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of this placement group. This is a read-only,
--- auto-generated field.
-plalIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
-plalIdDimensionValue
-  = lens _plalIdDimensionValue
-      (\ s a -> s{_plalIdDimensionValue = a})
-
--- | Type of this placement group. A package is a simple group of placements
--- that acts as a single pricing point for a group of tags. A roadblock is
--- a group of placements that not only acts as a single pricing point, but
--- also assumes that all the tags in it will be served at the same time. A
--- roadblock requires one of its assigned placements to be marked as
--- primary for reporting. This field is required on insertion.
-plalPlacementGroupType :: Lens' PlacementGroup (Maybe PlacementGroupPlacementGroupType)
-plalPlacementGroupType
-  = lens _plalPlacementGroupType
-      (\ s a -> s{_plalPlacementGroupType = a})
-
--- | ID of the content category assigned to this placement group.
-plalContentCategoryId :: Lens' PlacementGroup (Maybe Int64)
-plalContentCategoryId
-  = lens _plalContentCategoryId
-      (\ s a -> s{_plalContentCategoryId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the directory site. This is a read-only,
--- auto-generated field.
-plalDirectorySiteIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
-plalDirectorySiteIdDimensionValue
-  = lens _plalDirectorySiteIdDimensionValue
-      (\ s a -> s{_plalDirectorySiteIdDimensionValue = a})
-
--- | Account ID of this placement group. This is a read-only field that can
--- be left blank.
-plalAccountId :: Lens' PlacementGroup (Maybe Int64)
-plalAccountId
-  = lens _plalAccountId
-      (\ s a -> s{_plalAccountId = a})
-      . mapping _Coerce
-
--- | Name of this placement group. This is a required field and must be less
--- than 256 characters long.
-plalName :: Lens' PlacementGroup (Maybe Text)
-plalName = lens _plalName (\ s a -> s{_plalName = a})
-
--- | Directory site ID associated with this placement group. On insert, you
--- must set either this field or the site_id field to specify the site
--- associated with this placement group. This is a required field that is
--- read-only after insertion.
-plalDirectorySiteId :: Lens' PlacementGroup (Maybe Int64)
-plalDirectorySiteId
-  = lens _plalDirectorySiteId
-      (\ s a -> s{_plalDirectorySiteId = a})
-      . mapping _Coerce
-
--- | Information about the creation of this placement group. This is a
--- read-only field.
-plalCreateInfo :: Lens' PlacementGroup (Maybe LastModifiedInfo)
-plalCreateInfo
-  = lens _plalCreateInfo
-      (\ s a -> s{_plalCreateInfo = a})
-
--- | IDs of placements which are assigned to this placement group. This is a
--- read-only, auto-generated field.
-plalChildPlacementIds :: Lens' PlacementGroup [Int64]
-plalChildPlacementIds
-  = lens _plalChildPlacementIds
-      (\ s a -> s{_plalChildPlacementIds = a})
-      . _Default
-      . _Coerce
-
--- | Information about the most recent modification of this placement group.
--- This is a read-only field.
-plalLastModifiedInfo :: Lens' PlacementGroup (Maybe LastModifiedInfo)
-plalLastModifiedInfo
-  = lens _plalLastModifiedInfo
-      (\ s a -> s{_plalLastModifiedInfo = a})
-
--- | ID of this placement group. This is a read-only, auto-generated field.
-plalId :: Lens' PlacementGroup (Maybe Int64)
-plalId
-  = lens _plalId (\ s a -> s{_plalId = a}) .
-      mapping _Coerce
-
--- | ID of the primary placement, used to calculate the media cost of a
--- roadblock (placement group). Modifying this field will automatically
--- modify the primary field on all affected roadblock child placements.
-plalPrimaryPlacementId :: Lens' PlacementGroup (Maybe Int64)
-plalPrimaryPlacementId
-  = lens _plalPrimaryPlacementId
-      (\ s a -> s{_plalPrimaryPlacementId = a})
-      . mapping _Coerce
-
--- | Subaccount ID of this placement group. This is a read-only field that
--- can be left blank.
-plalSubAccountId :: Lens' PlacementGroup (Maybe Int64)
-plalSubAccountId
-  = lens _plalSubAccountId
-      (\ s a -> s{_plalSubAccountId = a})
-      . mapping _Coerce
-
--- | External ID for this placement.
-plalExternalId :: Lens' PlacementGroup (Maybe Text)
-plalExternalId
-  = lens _plalExternalId
-      (\ s a -> s{_plalExternalId = a})
-
--- | Comments for this placement group.
-plalComment :: Lens' PlacementGroup (Maybe Text)
-plalComment
-  = lens _plalComment (\ s a -> s{_plalComment = a})
-
--- | Dimension value for the ID of the primary placement. This is a
--- read-only, auto-generated field.
-plalPrimaryPlacementIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
-plalPrimaryPlacementIdDimensionValue
-  = lens _plalPrimaryPlacementIdDimensionValue
-      (\ s a ->
-         s{_plalPrimaryPlacementIdDimensionValue = a})
-
--- | Site ID associated with this placement group. On insert, you must set
--- either this field or the directorySiteId field to specify the site
--- associated with this placement group. This is a required field that is
--- read-only after insertion.
-plalSiteId :: Lens' PlacementGroup (Maybe Int64)
-plalSiteId
-  = lens _plalSiteId (\ s a -> s{_plalSiteId = a}) .
-      mapping _Coerce
-
--- | Whether this placement group is archived.
-plalArchived :: Lens' PlacementGroup (Maybe Bool)
-plalArchived
-  = lens _plalArchived (\ s a -> s{_plalArchived = a})
-
-instance FromJSON PlacementGroup where
-        parseJSON
-          = withObject "PlacementGroup"
-              (\ o ->
-                 PlacementGroup <$>
-                   (o .:? "placementStrategyId") <*>
-                     (o .:? "siteIdDimensionValue")
-                     <*> (o .:? "pricingSchedule")
-                     <*> (o .:? "kind" .!= "dfareporting#placementGroup")
-                     <*> (o .:? "campaignIdDimensionValue")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "campaignId")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "placementGroupType")
-                     <*> (o .:? "contentCategoryId")
-                     <*> (o .:? "directorySiteIdDimensionValue")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "directorySiteId")
-                     <*> (o .:? "createInfo")
-                     <*> (o .:? "childPlacementIds" .!= mempty)
-                     <*> (o .:? "lastModifiedInfo")
-                     <*> (o .:? "id")
-                     <*> (o .:? "primaryPlacementId")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "externalId")
-                     <*> (o .:? "comment")
-                     <*> (o .:? "primaryPlacementIdDimensionValue")
-                     <*> (o .:? "siteId")
-                     <*> (o .:? "archived"))
-
-instance ToJSON PlacementGroup where
-        toJSON PlacementGroup{..}
-          = object
-              (catMaybes
-                 [("placementStrategyId" .=) <$>
-                    _plalPlacementStrategyId,
-                  ("siteIdDimensionValue" .=) <$>
-                    _plalSiteIdDimensionValue,
-                  ("pricingSchedule" .=) <$> _plalPricingSchedule,
-                  Just ("kind" .= _plalKind),
-                  ("campaignIdDimensionValue" .=) <$>
-                    _plalCampaignIdDimensionValue,
-                  ("advertiserId" .=) <$> _plalAdvertiserId,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _plalAdvertiserIdDimensionValue,
-                  ("campaignId" .=) <$> _plalCampaignId,
-                  ("idDimensionValue" .=) <$> _plalIdDimensionValue,
-                  ("placementGroupType" .=) <$>
-                    _plalPlacementGroupType,
-                  ("contentCategoryId" .=) <$> _plalContentCategoryId,
-                  ("directorySiteIdDimensionValue" .=) <$>
-                    _plalDirectorySiteIdDimensionValue,
-                  ("accountId" .=) <$> _plalAccountId,
-                  ("name" .=) <$> _plalName,
-                  ("directorySiteId" .=) <$> _plalDirectorySiteId,
-                  ("createInfo" .=) <$> _plalCreateInfo,
-                  ("childPlacementIds" .=) <$> _plalChildPlacementIds,
-                  ("lastModifiedInfo" .=) <$> _plalLastModifiedInfo,
-                  ("id" .=) <$> _plalId,
-                  ("primaryPlacementId" .=) <$>
-                    _plalPrimaryPlacementId,
-                  ("subaccountId" .=) <$> _plalSubAccountId,
-                  ("externalId" .=) <$> _plalExternalId,
-                  ("comment" .=) <$> _plalComment,
-                  ("primaryPlacementIdDimensionValue" .=) <$>
-                    _plalPrimaryPlacementIdDimensionValue,
-                  ("siteId" .=) <$> _plalSiteId,
-                  ("archived" .=) <$> _plalArchived])
-
--- | Contains properties of an event tag.
---
--- /See:/ 'eventTag' smart constructor.
-data EventTag = EventTag
-    { _etStatus                     :: !(Maybe EventTagStatus)
-    , _etExcludeFromAdxRequests     :: !(Maybe Bool)
-    , _etEnabledByDefault           :: !(Maybe Bool)
-    , _etKind                       :: !Text
-    , _etCampaignIdDimensionValue   :: !(Maybe DimensionValue)
-    , _etAdvertiserId               :: !(Maybe (Textual Int64))
-    , _etURL                        :: !(Maybe Text)
-    , _etAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
-    , _etSSLCompliant               :: !(Maybe Bool)
-    , _etCampaignId                 :: !(Maybe (Textual Int64))
-    , _etAccountId                  :: !(Maybe (Textual Int64))
-    , _etName                       :: !(Maybe Text)
-    , _etURLEscapeLevels            :: !(Maybe (Textual Int32))
-    , _etSiteIds                    :: !(Maybe [Textual Int64])
-    , _etId                         :: !(Maybe (Textual Int64))
-    , _etSubAccountId               :: !(Maybe (Textual Int64))
-    , _etType                       :: !(Maybe EventTagType)
-    , _etSiteFilterType             :: !(Maybe EventTagSiteFilterType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EventTag' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'etStatus'
---
--- * 'etExcludeFromAdxRequests'
---
--- * 'etEnabledByDefault'
---
--- * 'etKind'
---
--- * 'etCampaignIdDimensionValue'
---
--- * 'etAdvertiserId'
---
--- * 'etURL'
---
--- * 'etAdvertiserIdDimensionValue'
---
--- * 'etSSLCompliant'
---
--- * 'etCampaignId'
---
--- * 'etAccountId'
---
--- * 'etName'
---
--- * 'etURLEscapeLevels'
---
--- * 'etSiteIds'
---
--- * 'etId'
---
--- * 'etSubAccountId'
---
--- * 'etType'
---
--- * 'etSiteFilterType'
-eventTag
-    :: EventTag
-eventTag =
-    EventTag
-    { _etStatus = Nothing
-    , _etExcludeFromAdxRequests = Nothing
-    , _etEnabledByDefault = Nothing
-    , _etKind = "dfareporting#eventTag"
-    , _etCampaignIdDimensionValue = Nothing
-    , _etAdvertiserId = Nothing
-    , _etURL = Nothing
-    , _etAdvertiserIdDimensionValue = Nothing
-    , _etSSLCompliant = Nothing
-    , _etCampaignId = Nothing
-    , _etAccountId = Nothing
-    , _etName = Nothing
-    , _etURLEscapeLevels = Nothing
-    , _etSiteIds = Nothing
-    , _etId = Nothing
-    , _etSubAccountId = Nothing
-    , _etType = Nothing
-    , _etSiteFilterType = Nothing
-    }
-
--- | Status of this event tag. Must be ENABLED for this event tag to fire.
--- This is a required field.
-etStatus :: Lens' EventTag (Maybe EventTagStatus)
-etStatus = lens _etStatus (\ s a -> s{_etStatus = a})
-
--- | Whether to remove this event tag from ads that are trafficked through
--- DoubleClick Bid Manager to Ad Exchange. This may be useful if the event
--- tag uses a pixel that is unapproved for Ad Exchange bids on one or more
--- networks, such as the Google Display Network.
-etExcludeFromAdxRequests :: Lens' EventTag (Maybe Bool)
-etExcludeFromAdxRequests
-  = lens _etExcludeFromAdxRequests
-      (\ s a -> s{_etExcludeFromAdxRequests = a})
-
--- | Whether this event tag should be automatically enabled for all of the
--- advertiser\'s campaigns and ads.
-etEnabledByDefault :: Lens' EventTag (Maybe Bool)
-etEnabledByDefault
-  = lens _etEnabledByDefault
-      (\ s a -> s{_etEnabledByDefault = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#eventTag\".
-etKind :: Lens' EventTag Text
-etKind = lens _etKind (\ s a -> s{_etKind = a})
-
--- | Dimension value for the ID of the campaign. This is a read-only,
--- auto-generated field.
-etCampaignIdDimensionValue :: Lens' EventTag (Maybe DimensionValue)
-etCampaignIdDimensionValue
-  = lens _etCampaignIdDimensionValue
-      (\ s a -> s{_etCampaignIdDimensionValue = a})
-
--- | Advertiser ID of this event tag. This field or the campaignId field is
--- required on insertion.
-etAdvertiserId :: Lens' EventTag (Maybe Int64)
-etAdvertiserId
-  = lens _etAdvertiserId
-      (\ s a -> s{_etAdvertiserId = a})
-      . mapping _Coerce
-
--- | Payload URL for this event tag. The URL on a click-through event tag
--- should have a landing page URL appended to the end of it. This field is
--- required on insertion.
-etURL :: Lens' EventTag (Maybe Text)
-etURL = lens _etURL (\ s a -> s{_etURL = a})
-
--- | Dimension value for the ID of the advertiser. This is a read-only,
--- auto-generated field.
-etAdvertiserIdDimensionValue :: Lens' EventTag (Maybe DimensionValue)
-etAdvertiserIdDimensionValue
-  = lens _etAdvertiserIdDimensionValue
-      (\ s a -> s{_etAdvertiserIdDimensionValue = a})
-
--- | Whether this tag is SSL-compliant or not. This is a read-only field.
-etSSLCompliant :: Lens' EventTag (Maybe Bool)
-etSSLCompliant
-  = lens _etSSLCompliant
-      (\ s a -> s{_etSSLCompliant = a})
-
--- | Campaign ID of this event tag. This field or the advertiserId field is
--- required on insertion.
-etCampaignId :: Lens' EventTag (Maybe Int64)
-etCampaignId
-  = lens _etCampaignId (\ s a -> s{_etCampaignId = a})
-      . mapping _Coerce
-
--- | Account ID of this event tag. This is a read-only field that can be left
--- blank.
-etAccountId :: Lens' EventTag (Maybe Int64)
-etAccountId
-  = lens _etAccountId (\ s a -> s{_etAccountId = a}) .
-      mapping _Coerce
-
--- | Name of this event tag. This is a required field and must be less than
--- 256 characters long.
-etName :: Lens' EventTag (Maybe Text)
-etName = lens _etName (\ s a -> s{_etName = a})
-
--- | Number of times the landing page URL should be URL-escaped before being
--- appended to the click-through event tag URL. Only applies to
--- click-through event tags as specified by the event tag type.
-etURLEscapeLevels :: Lens' EventTag (Maybe Int32)
-etURLEscapeLevels
-  = lens _etURLEscapeLevels
-      (\ s a -> s{_etURLEscapeLevels = a})
-      . mapping _Coerce
-
--- | Filter list of site IDs associated with this event tag. The
--- siteFilterType determines whether this is a whitelist or blacklist
--- filter.
-etSiteIds :: Lens' EventTag [Int64]
-etSiteIds
-  = lens _etSiteIds (\ s a -> s{_etSiteIds = a}) .
-      _Default
-      . _Coerce
-
--- | ID of this event tag. This is a read-only, auto-generated field.
-etId :: Lens' EventTag (Maybe Int64)
-etId
-  = lens _etId (\ s a -> s{_etId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this event tag. This is a read-only field that can be
--- left blank.
-etSubAccountId :: Lens' EventTag (Maybe Int64)
-etSubAccountId
-  = lens _etSubAccountId
-      (\ s a -> s{_etSubAccountId = a})
-      . mapping _Coerce
-
--- | Event tag type. Can be used to specify whether to use a third-party
--- pixel, a third-party JavaScript URL, or a third-party click-through URL
--- for either impression or click tracking. This is a required field.
-etType :: Lens' EventTag (Maybe EventTagType)
-etType = lens _etType (\ s a -> s{_etType = a})
-
--- | Site filter type for this event tag. If no type is specified then the
--- event tag will be applied to all sites.
-etSiteFilterType :: Lens' EventTag (Maybe EventTagSiteFilterType)
-etSiteFilterType
-  = lens _etSiteFilterType
-      (\ s a -> s{_etSiteFilterType = a})
-
-instance FromJSON EventTag where
-        parseJSON
-          = withObject "EventTag"
-              (\ o ->
-                 EventTag <$>
-                   (o .:? "status") <*> (o .:? "excludeFromAdxRequests")
-                     <*> (o .:? "enabledByDefault")
-                     <*> (o .:? "kind" .!= "dfareporting#eventTag")
-                     <*> (o .:? "campaignIdDimensionValue")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "url")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "sslCompliant")
-                     <*> (o .:? "campaignId")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "urlEscapeLevels")
-                     <*> (o .:? "siteIds" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "type")
-                     <*> (o .:? "siteFilterType"))
-
-instance ToJSON EventTag where
-        toJSON EventTag{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _etStatus,
-                  ("excludeFromAdxRequests" .=) <$>
-                    _etExcludeFromAdxRequests,
-                  ("enabledByDefault" .=) <$> _etEnabledByDefault,
-                  Just ("kind" .= _etKind),
-                  ("campaignIdDimensionValue" .=) <$>
-                    _etCampaignIdDimensionValue,
-                  ("advertiserId" .=) <$> _etAdvertiserId,
-                  ("url" .=) <$> _etURL,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _etAdvertiserIdDimensionValue,
-                  ("sslCompliant" .=) <$> _etSSLCompliant,
-                  ("campaignId" .=) <$> _etCampaignId,
-                  ("accountId" .=) <$> _etAccountId,
-                  ("name" .=) <$> _etName,
-                  ("urlEscapeLevels" .=) <$> _etURLEscapeLevels,
-                  ("siteIds" .=) <$> _etSiteIds, ("id" .=) <$> _etId,
-                  ("subaccountId" .=) <$> _etSubAccountId,
-                  ("type" .=) <$> _etType,
-                  ("siteFilterType" .=) <$> _etSiteFilterType])
-
--- | Contains properties of a user role permission.
---
--- /See:/ 'userRolePermission' smart constructor.
-data UserRolePermission = UserRolePermission
-    { _useKind              :: !Text
-    , _useAvailability      :: !(Maybe UserRolePermissionAvailability)
-    , _useName              :: !(Maybe Text)
-    , _useId                :: !(Maybe (Textual Int64))
-    , _usePermissionGroupId :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserRolePermission' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'useKind'
---
--- * 'useAvailability'
---
--- * 'useName'
---
--- * 'useId'
---
--- * 'usePermissionGroupId'
-userRolePermission
-    :: UserRolePermission
-userRolePermission =
-    UserRolePermission
-    { _useKind = "dfareporting#userRolePermission"
-    , _useAvailability = Nothing
-    , _useName = Nothing
-    , _useId = Nothing
-    , _usePermissionGroupId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#userRolePermission\".
-useKind :: Lens' UserRolePermission Text
-useKind = lens _useKind (\ s a -> s{_useKind = a})
-
--- | Levels of availability for a user role permission.
-useAvailability :: Lens' UserRolePermission (Maybe UserRolePermissionAvailability)
-useAvailability
-  = lens _useAvailability
-      (\ s a -> s{_useAvailability = a})
-
--- | Name of this user role permission.
-useName :: Lens' UserRolePermission (Maybe Text)
-useName = lens _useName (\ s a -> s{_useName = a})
-
--- | ID of this user role permission.
-useId :: Lens' UserRolePermission (Maybe Int64)
-useId
-  = lens _useId (\ s a -> s{_useId = a}) .
-      mapping _Coerce
-
--- | ID of the permission group that this user role permission belongs to.
-usePermissionGroupId :: Lens' UserRolePermission (Maybe Int64)
-usePermissionGroupId
-  = lens _usePermissionGroupId
-      (\ s a -> s{_usePermissionGroupId = a})
-      . mapping _Coerce
-
-instance FromJSON UserRolePermission where
-        parseJSON
-          = withObject "UserRolePermission"
-              (\ o ->
-                 UserRolePermission <$>
-                   (o .:? "kind" .!= "dfareporting#userRolePermission")
-                     <*> (o .:? "availability")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "permissionGroupId"))
-
-instance ToJSON UserRolePermission where
-        toJSON UserRolePermission{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _useKind),
-                  ("availability" .=) <$> _useAvailability,
-                  ("name" .=) <$> _useName, ("id" .=) <$> _useId,
-                  ("permissionGroupId" .=) <$> _usePermissionGroupId])
-
--- | Contact of an order.
---
--- /See:/ 'orderContact' smart constructor.
-data OrderContact = OrderContact
-    { _ocSignatureUserProFileId :: !(Maybe (Textual Int64))
-    , _ocContactName            :: !(Maybe Text)
-    , _ocContactTitle           :: !(Maybe Text)
-    , _ocContactType            :: !(Maybe OrderContactContactType)
-    , _ocContactInfo            :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OrderContact' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ocSignatureUserProFileId'
---
--- * 'ocContactName'
---
--- * 'ocContactTitle'
---
--- * 'ocContactType'
---
--- * 'ocContactInfo'
-orderContact
-    :: OrderContact
-orderContact =
-    OrderContact
-    { _ocSignatureUserProFileId = Nothing
-    , _ocContactName = Nothing
-    , _ocContactTitle = Nothing
-    , _ocContactType = Nothing
-    , _ocContactInfo = Nothing
-    }
-
--- | ID of the user profile containing the signature that will be embedded
--- into order documents.
-ocSignatureUserProFileId :: Lens' OrderContact (Maybe Int64)
-ocSignatureUserProFileId
-  = lens _ocSignatureUserProFileId
-      (\ s a -> s{_ocSignatureUserProFileId = a})
-      . mapping _Coerce
-
--- | Name of this contact.
-ocContactName :: Lens' OrderContact (Maybe Text)
-ocContactName
-  = lens _ocContactName
-      (\ s a -> s{_ocContactName = a})
-
--- | Title of this contact.
-ocContactTitle :: Lens' OrderContact (Maybe Text)
-ocContactTitle
-  = lens _ocContactTitle
-      (\ s a -> s{_ocContactTitle = a})
-
--- | Type of this contact.
-ocContactType :: Lens' OrderContact (Maybe OrderContactContactType)
-ocContactType
-  = lens _ocContactType
-      (\ s a -> s{_ocContactType = a})
-
--- | Free-form information about this contact. It could be any information
--- related to this contact in addition to type, title, name, and signature
--- user profile ID.
-ocContactInfo :: Lens' OrderContact (Maybe Text)
-ocContactInfo
-  = lens _ocContactInfo
-      (\ s a -> s{_ocContactInfo = a})
-
-instance FromJSON OrderContact where
-        parseJSON
-          = withObject "OrderContact"
-              (\ o ->
-                 OrderContact <$>
-                   (o .:? "signatureUserProfileId") <*>
-                     (o .:? "contactName")
-                     <*> (o .:? "contactTitle")
-                     <*> (o .:? "contactType")
-                     <*> (o .:? "contactInfo"))
-
-instance ToJSON OrderContact where
-        toJSON OrderContact{..}
-          = object
-              (catMaybes
-                 [("signatureUserProfileId" .=) <$>
-                    _ocSignatureUserProFileId,
-                  ("contactName" .=) <$> _ocContactName,
-                  ("contactTitle" .=) <$> _ocContactTitle,
-                  ("contactType" .=) <$> _ocContactType,
-                  ("contactInfo" .=) <$> _ocContactInfo])
-
--- | Floodlight Activity GenerateTag Response
---
--- /See:/ 'floodlightActivitiesGenerateTagResponse' smart constructor.
-data FloodlightActivitiesGenerateTagResponse = FloodlightActivitiesGenerateTagResponse
-    { _fagtrFloodlightActivityTag :: !(Maybe Text)
-    , _fagtrKind                  :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightActivitiesGenerateTagResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fagtrFloodlightActivityTag'
---
--- * 'fagtrKind'
-floodlightActivitiesGenerateTagResponse
-    :: FloodlightActivitiesGenerateTagResponse
-floodlightActivitiesGenerateTagResponse =
-    FloodlightActivitiesGenerateTagResponse
-    { _fagtrFloodlightActivityTag = Nothing
-    , _fagtrKind = "dfareporting#floodlightActivitiesGenerateTagResponse"
-    }
-
--- | Generated tag for this floodlight activity.
-fagtrFloodlightActivityTag :: Lens' FloodlightActivitiesGenerateTagResponse (Maybe Text)
-fagtrFloodlightActivityTag
-  = lens _fagtrFloodlightActivityTag
-      (\ s a -> s{_fagtrFloodlightActivityTag = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#floodlightActivitiesGenerateTagResponse\".
-fagtrKind :: Lens' FloodlightActivitiesGenerateTagResponse Text
-fagtrKind
-  = lens _fagtrKind (\ s a -> s{_fagtrKind = a})
-
-instance FromJSON
-         FloodlightActivitiesGenerateTagResponse where
-        parseJSON
-          = withObject
-              "FloodlightActivitiesGenerateTagResponse"
-              (\ o ->
-                 FloodlightActivitiesGenerateTagResponse <$>
-                   (o .:? "floodlightActivityTag") <*>
-                     (o .:? "kind" .!=
-                        "dfareporting#floodlightActivitiesGenerateTagResponse"))
-
-instance ToJSON
-         FloodlightActivitiesGenerateTagResponse where
-        toJSON FloodlightActivitiesGenerateTagResponse{..}
-          = object
-              (catMaybes
-                 [("floodlightActivityTag" .=) <$>
-                    _fagtrFloodlightActivityTag,
-                  Just ("kind" .= _fagtrKind)])
-
--- | Directory Site Contact Assignment
---
--- /See:/ 'directorySiteContactAssignment' smart constructor.
-data DirectorySiteContactAssignment = DirectorySiteContactAssignment
-    { _dscaVisibility :: !(Maybe DirectorySiteContactAssignmentVisibility)
-    , _dscaContactId  :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DirectorySiteContactAssignment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dscaVisibility'
---
--- * 'dscaContactId'
-directorySiteContactAssignment
-    :: DirectorySiteContactAssignment
-directorySiteContactAssignment =
-    DirectorySiteContactAssignment
-    { _dscaVisibility = Nothing
-    , _dscaContactId = Nothing
-    }
-
--- | Visibility of this directory site contact assignment. When set to PUBLIC
--- this contact assignment is visible to all account and agency users; when
--- set to PRIVATE it is visible only to the site.
-dscaVisibility :: Lens' DirectorySiteContactAssignment (Maybe DirectorySiteContactAssignmentVisibility)
-dscaVisibility
-  = lens _dscaVisibility
-      (\ s a -> s{_dscaVisibility = a})
-
--- | ID of this directory site contact. This is a read-only, auto-generated
--- field.
-dscaContactId :: Lens' DirectorySiteContactAssignment (Maybe Int64)
-dscaContactId
-  = lens _dscaContactId
-      (\ s a -> s{_dscaContactId = a})
-      . mapping _Coerce
-
-instance FromJSON DirectorySiteContactAssignment
-         where
-        parseJSON
-          = withObject "DirectorySiteContactAssignment"
-              (\ o ->
-                 DirectorySiteContactAssignment <$>
-                   (o .:? "visibility") <*> (o .:? "contactId"))
-
-instance ToJSON DirectorySiteContactAssignment where
-        toJSON DirectorySiteContactAssignment{..}
-          = object
-              (catMaybes
-                 [("visibility" .=) <$> _dscaVisibility,
-                  ("contactId" .=) <$> _dscaContactId])
-
--- | Ad Slot
---
--- /See:/ 'adSlot' smart constructor.
-data AdSlot = AdSlot
-    { _assHeight            :: !(Maybe (Textual Int64))
-    , _assPaymentSourceType :: !(Maybe AdSlotPaymentSourceType)
-    , _assLinkedPlacementId :: !(Maybe (Textual Int64))
-    , _assWidth             :: !(Maybe (Textual Int64))
-    , _assPrimary           :: !(Maybe Bool)
-    , _assName              :: !(Maybe Text)
-    , _assComment           :: !(Maybe Text)
-    , _assCompatibility     :: !(Maybe AdSlotCompatibility)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AdSlot' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'assHeight'
---
--- * 'assPaymentSourceType'
---
--- * 'assLinkedPlacementId'
---
--- * 'assWidth'
---
--- * 'assPrimary'
---
--- * 'assName'
---
--- * 'assComment'
---
--- * 'assCompatibility'
-adSlot
-    :: AdSlot
-adSlot =
-    AdSlot
-    { _assHeight = Nothing
-    , _assPaymentSourceType = Nothing
-    , _assLinkedPlacementId = Nothing
-    , _assWidth = Nothing
-    , _assPrimary = Nothing
-    , _assName = Nothing
-    , _assComment = Nothing
-    , _assCompatibility = Nothing
-    }
-
--- | Height of this ad slot.
-assHeight :: Lens' AdSlot (Maybe Int64)
-assHeight
-  = lens _assHeight (\ s a -> s{_assHeight = a}) .
-      mapping _Coerce
-
--- | Payment source type of this ad slot.
-assPaymentSourceType :: Lens' AdSlot (Maybe AdSlotPaymentSourceType)
-assPaymentSourceType
-  = lens _assPaymentSourceType
-      (\ s a -> s{_assPaymentSourceType = a})
-
--- | ID of the placement from an external platform that is linked to this ad
--- slot.
-assLinkedPlacementId :: Lens' AdSlot (Maybe Int64)
-assLinkedPlacementId
-  = lens _assLinkedPlacementId
-      (\ s a -> s{_assLinkedPlacementId = a})
-      . mapping _Coerce
-
--- | Width of this ad slot.
-assWidth :: Lens' AdSlot (Maybe Int64)
-assWidth
-  = lens _assWidth (\ s a -> s{_assWidth = a}) .
-      mapping _Coerce
-
--- | Primary ad slot of a roadblock inventory item.
-assPrimary :: Lens' AdSlot (Maybe Bool)
-assPrimary
-  = lens _assPrimary (\ s a -> s{_assPrimary = a})
-
--- | Name of this ad slot.
-assName :: Lens' AdSlot (Maybe Text)
-assName = lens _assName (\ s a -> s{_assName = a})
-
--- | Comment for this ad slot.
-assComment :: Lens' AdSlot (Maybe Text)
-assComment
-  = lens _assComment (\ s a -> s{_assComment = a})
-
--- | Ad slot compatibility. WEB and WEB_INTERSTITIAL refer to rendering
--- either on desktop or on mobile devices for regular or interstitial ads
--- respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.
--- IN_STREAM_VIDEO refers to rendering in in-stream video ads developed
--- with the VAST standard.
-assCompatibility :: Lens' AdSlot (Maybe AdSlotCompatibility)
-assCompatibility
-  = lens _assCompatibility
-      (\ s a -> s{_assCompatibility = a})
-
-instance FromJSON AdSlot where
-        parseJSON
-          = withObject "AdSlot"
-              (\ o ->
-                 AdSlot <$>
-                   (o .:? "height") <*> (o .:? "paymentSourceType") <*>
-                     (o .:? "linkedPlacementId")
-                     <*> (o .:? "width")
-                     <*> (o .:? "primary")
-                     <*> (o .:? "name")
-                     <*> (o .:? "comment")
-                     <*> (o .:? "compatibility"))
-
-instance ToJSON AdSlot where
-        toJSON AdSlot{..}
-          = object
-              (catMaybes
-                 [("height" .=) <$> _assHeight,
-                  ("paymentSourceType" .=) <$> _assPaymentSourceType,
-                  ("linkedPlacementId" .=) <$> _assLinkedPlacementId,
-                  ("width" .=) <$> _assWidth,
-                  ("primary" .=) <$> _assPrimary,
-                  ("name" .=) <$> _assName,
-                  ("comment" .=) <$> _assComment,
-                  ("compatibility" .=) <$> _assCompatibility])
-
--- | Third-party Tracking URL.
---
--- /See:/ 'thirdPartyTrackingURL' smart constructor.
-data ThirdPartyTrackingURL = ThirdPartyTrackingURL
-    { _tptuURL               :: !(Maybe Text)
-    , _tptuThirdPartyURLType :: !(Maybe ThirdPartyTrackingURLThirdPartyURLType)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ThirdPartyTrackingURL' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tptuURL'
---
--- * 'tptuThirdPartyURLType'
-thirdPartyTrackingURL
-    :: ThirdPartyTrackingURL
-thirdPartyTrackingURL =
-    ThirdPartyTrackingURL
-    { _tptuURL = Nothing
-    , _tptuThirdPartyURLType = Nothing
-    }
-
--- | URL for the specified third-party URL type.
-tptuURL :: Lens' ThirdPartyTrackingURL (Maybe Text)
-tptuURL = lens _tptuURL (\ s a -> s{_tptuURL = a})
-
--- | Third-party URL type for in-stream video creatives.
-tptuThirdPartyURLType :: Lens' ThirdPartyTrackingURL (Maybe ThirdPartyTrackingURLThirdPartyURLType)
-tptuThirdPartyURLType
-  = lens _tptuThirdPartyURLType
-      (\ s a -> s{_tptuThirdPartyURLType = a})
-
-instance FromJSON ThirdPartyTrackingURL where
-        parseJSON
-          = withObject "ThirdPartyTrackingURL"
-              (\ o ->
-                 ThirdPartyTrackingURL <$>
-                   (o .:? "url") <*> (o .:? "thirdPartyUrlType"))
-
-instance ToJSON ThirdPartyTrackingURL where
-        toJSON ThirdPartyTrackingURL{..}
-          = object
-              (catMaybes
-                 [("url" .=) <$> _tptuURL,
-                  ("thirdPartyUrlType" .=) <$> _tptuThirdPartyURLType])
-
--- | Contains properties of a DoubleClick Planning order document.
---
--- /See:/ 'orderDocument' smart constructor.
-data OrderDocument = OrderDocument
-    { _odSigned                   :: !(Maybe Bool)
-    , _odKind                     :: !Text
-    , _odAdvertiserId             :: !(Maybe (Textual Int64))
-    , _odLastSentTime             :: !(Maybe DateTime')
-    , _odAmendedOrderDocumentId   :: !(Maybe (Textual Int64))
-    , _odLastSentRecipients       :: !(Maybe [Text])
-    , _odEffectiveDate            :: !(Maybe Date')
-    , _odApprovedByUserProFileIds :: !(Maybe [Textual Int64])
-    , _odAccountId                :: !(Maybe (Textual Int64))
-    , _odId                       :: !(Maybe (Textual Int64))
-    , _odProjectId                :: !(Maybe (Textual Int64))
-    , _odTitle                    :: !(Maybe Text)
-    , _odSubAccountId             :: !(Maybe (Textual Int64))
-    , _odType                     :: !(Maybe OrderDocumentType)
-    , _odOrderId                  :: !(Maybe (Textual Int64))
-    , _odCancelled                :: !(Maybe Bool)
-    , _odCreatedInfo              :: !(Maybe LastModifiedInfo)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OrderDocument' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'odSigned'
---
--- * 'odKind'
---
--- * 'odAdvertiserId'
---
--- * 'odLastSentTime'
---
--- * 'odAmendedOrderDocumentId'
---
--- * 'odLastSentRecipients'
---
--- * 'odEffectiveDate'
---
--- * 'odApprovedByUserProFileIds'
---
--- * 'odAccountId'
---
--- * 'odId'
---
--- * 'odProjectId'
---
--- * 'odTitle'
---
--- * 'odSubAccountId'
---
--- * 'odType'
---
--- * 'odOrderId'
---
--- * 'odCancelled'
---
--- * 'odCreatedInfo'
-orderDocument
-    :: OrderDocument
-orderDocument =
-    OrderDocument
-    { _odSigned = Nothing
-    , _odKind = "dfareporting#orderDocument"
-    , _odAdvertiserId = Nothing
-    , _odLastSentTime = Nothing
-    , _odAmendedOrderDocumentId = Nothing
-    , _odLastSentRecipients = Nothing
-    , _odEffectiveDate = Nothing
-    , _odApprovedByUserProFileIds = Nothing
-    , _odAccountId = Nothing
-    , _odId = Nothing
-    , _odProjectId = Nothing
-    , _odTitle = Nothing
-    , _odSubAccountId = Nothing
-    , _odType = Nothing
-    , _odOrderId = Nothing
-    , _odCancelled = Nothing
-    , _odCreatedInfo = Nothing
-    }
-
--- | Whether this order document has been signed.
-odSigned :: Lens' OrderDocument (Maybe Bool)
-odSigned = lens _odSigned (\ s a -> s{_odSigned = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#orderDocument\".
-odKind :: Lens' OrderDocument Text
-odKind = lens _odKind (\ s a -> s{_odKind = a})
-
--- | Advertiser ID of this order document.
-odAdvertiserId :: Lens' OrderDocument (Maybe Int64)
-odAdvertiserId
-  = lens _odAdvertiserId
-      (\ s a -> s{_odAdvertiserId = a})
-      . mapping _Coerce
-
--- | Timestamp of the last email sent with this order document.
-odLastSentTime :: Lens' OrderDocument (Maybe UTCTime)
-odLastSentTime
-  = lens _odLastSentTime
-      (\ s a -> s{_odLastSentTime = a})
-      . mapping _DateTime
-
--- | The amended order document ID of this order document. An order document
--- can be created by optionally amending another order document so that the
--- change history can be preserved.
-odAmendedOrderDocumentId :: Lens' OrderDocument (Maybe Int64)
-odAmendedOrderDocumentId
-  = lens _odAmendedOrderDocumentId
-      (\ s a -> s{_odAmendedOrderDocumentId = a})
-      . mapping _Coerce
-
--- | List of email addresses that received the last sent document.
-odLastSentRecipients :: Lens' OrderDocument [Text]
-odLastSentRecipients
-  = lens _odLastSentRecipients
-      (\ s a -> s{_odLastSentRecipients = a})
-      . _Default
-      . _Coerce
-
--- | Effective date of this order document.
-odEffectiveDate :: Lens' OrderDocument (Maybe Day)
-odEffectiveDate
-  = lens _odEffectiveDate
-      (\ s a -> s{_odEffectiveDate = a})
-      . mapping _Date
-
--- | IDs of users who have approved this order document.
-odApprovedByUserProFileIds :: Lens' OrderDocument [Int64]
-odApprovedByUserProFileIds
-  = lens _odApprovedByUserProFileIds
-      (\ s a -> s{_odApprovedByUserProFileIds = a})
-      . _Default
-      . _Coerce
-
--- | Account ID of this order document.
-odAccountId :: Lens' OrderDocument (Maybe Int64)
-odAccountId
-  = lens _odAccountId (\ s a -> s{_odAccountId = a}) .
-      mapping _Coerce
-
--- | ID of this order document.
-odId :: Lens' OrderDocument (Maybe Int64)
-odId
-  = lens _odId (\ s a -> s{_odId = a}) .
-      mapping _Coerce
-
--- | Project ID of this order document.
-odProjectId :: Lens' OrderDocument (Maybe Int64)
-odProjectId
-  = lens _odProjectId (\ s a -> s{_odProjectId = a}) .
-      mapping _Coerce
-
--- | Title of this order document.
-odTitle :: Lens' OrderDocument (Maybe Text)
-odTitle = lens _odTitle (\ s a -> s{_odTitle = a})
-
--- | Subaccount ID of this order document.
-odSubAccountId :: Lens' OrderDocument (Maybe Int64)
-odSubAccountId
-  = lens _odSubAccountId
-      (\ s a -> s{_odSubAccountId = a})
-      . mapping _Coerce
-
--- | Type of this order document
-odType :: Lens' OrderDocument (Maybe OrderDocumentType)
-odType = lens _odType (\ s a -> s{_odType = a})
-
--- | ID of the order from which this order document is created.
-odOrderId :: Lens' OrderDocument (Maybe Int64)
-odOrderId
-  = lens _odOrderId (\ s a -> s{_odOrderId = a}) .
-      mapping _Coerce
-
--- | Whether this order document is cancelled.
-odCancelled :: Lens' OrderDocument (Maybe Bool)
-odCancelled
-  = lens _odCancelled (\ s a -> s{_odCancelled = a})
-
--- | Information about the creation of this order document.
-odCreatedInfo :: Lens' OrderDocument (Maybe LastModifiedInfo)
-odCreatedInfo
-  = lens _odCreatedInfo
-      (\ s a -> s{_odCreatedInfo = a})
-
-instance FromJSON OrderDocument where
-        parseJSON
-          = withObject "OrderDocument"
-              (\ o ->
-                 OrderDocument <$>
-                   (o .:? "signed") <*>
-                     (o .:? "kind" .!= "dfareporting#orderDocument")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "lastSentTime")
-                     <*> (o .:? "amendedOrderDocumentId")
-                     <*> (o .:? "lastSentRecipients" .!= mempty)
-                     <*> (o .:? "effectiveDate")
-                     <*> (o .:? "approvedByUserProfileIds" .!= mempty)
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "projectId")
-                     <*> (o .:? "title")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "type")
-                     <*> (o .:? "orderId")
-                     <*> (o .:? "cancelled")
-                     <*> (o .:? "createdInfo"))
-
-instance ToJSON OrderDocument where
-        toJSON OrderDocument{..}
-          = object
-              (catMaybes
-                 [("signed" .=) <$> _odSigned,
-                  Just ("kind" .= _odKind),
-                  ("advertiserId" .=) <$> _odAdvertiserId,
-                  ("lastSentTime" .=) <$> _odLastSentTime,
-                  ("amendedOrderDocumentId" .=) <$>
-                    _odAmendedOrderDocumentId,
-                  ("lastSentRecipients" .=) <$> _odLastSentRecipients,
-                  ("effectiveDate" .=) <$> _odEffectiveDate,
-                  ("approvedByUserProfileIds" .=) <$>
-                    _odApprovedByUserProFileIds,
-                  ("accountId" .=) <$> _odAccountId,
-                  ("id" .=) <$> _odId,
-                  ("projectId" .=) <$> _odProjectId,
-                  ("title" .=) <$> _odTitle,
-                  ("subaccountId" .=) <$> _odSubAccountId,
-                  ("type" .=) <$> _odType,
-                  ("orderId" .=) <$> _odOrderId,
-                  ("cancelled" .=) <$> _odCancelled,
-                  ("createdInfo" .=) <$> _odCreatedInfo])
-
--- | Contains information about a metro region that can be targeted by ads.
---
--- /See:/ 'metro' smart constructor.
-data Metro = Metro
-    { _metMetroCode     :: !(Maybe Text)
-    , _metKind          :: !Text
-    , _metName          :: !(Maybe Text)
-    , _metCountryCode   :: !(Maybe Text)
-    , _metDmaId         :: !(Maybe (Textual Int64))
-    , _metCountryDartId :: !(Maybe (Textual Int64))
-    , _metDartId        :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Metro' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'metMetroCode'
---
--- * 'metKind'
---
--- * 'metName'
---
--- * 'metCountryCode'
---
--- * 'metDmaId'
---
--- * 'metCountryDartId'
---
--- * 'metDartId'
-metro
-    :: Metro
-metro =
-    Metro
-    { _metMetroCode = Nothing
-    , _metKind = "dfareporting#metro"
-    , _metName = Nothing
-    , _metCountryCode = Nothing
-    , _metDmaId = Nothing
-    , _metCountryDartId = Nothing
-    , _metDartId = Nothing
-    }
-
--- | Metro code of this metro region. This is equivalent to dma_id.
-metMetroCode :: Lens' Metro (Maybe Text)
-metMetroCode
-  = lens _metMetroCode (\ s a -> s{_metMetroCode = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#metro\".
-metKind :: Lens' Metro Text
-metKind = lens _metKind (\ s a -> s{_metKind = a})
-
--- | Name of this metro region.
-metName :: Lens' Metro (Maybe Text)
-metName = lens _metName (\ s a -> s{_metName = a})
-
--- | Country code of the country to which this metro region belongs.
-metCountryCode :: Lens' Metro (Maybe Text)
-metCountryCode
-  = lens _metCountryCode
-      (\ s a -> s{_metCountryCode = a})
-
--- | DMA ID of this metro region. This is the ID used for targeting and
--- generating reports, and is equivalent to metro_code.
-metDmaId :: Lens' Metro (Maybe Int64)
-metDmaId
-  = lens _metDmaId (\ s a -> s{_metDmaId = a}) .
-      mapping _Coerce
-
--- | DART ID of the country to which this metro region belongs.
-metCountryDartId :: Lens' Metro (Maybe Int64)
-metCountryDartId
-  = lens _metCountryDartId
-      (\ s a -> s{_metCountryDartId = a})
-      . mapping _Coerce
-
--- | DART ID of this metro region.
-metDartId :: Lens' Metro (Maybe Int64)
-metDartId
-  = lens _metDartId (\ s a -> s{_metDartId = a}) .
-      mapping _Coerce
-
-instance FromJSON Metro where
-        parseJSON
-          = withObject "Metro"
-              (\ o ->
-                 Metro <$>
-                   (o .:? "metroCode") <*>
-                     (o .:? "kind" .!= "dfareporting#metro")
-                     <*> (o .:? "name")
-                     <*> (o .:? "countryCode")
-                     <*> (o .:? "dmaId")
-                     <*> (o .:? "countryDartId")
-                     <*> (o .:? "dartId"))
-
-instance ToJSON Metro where
-        toJSON Metro{..}
-          = object
-              (catMaybes
-                 [("metroCode" .=) <$> _metMetroCode,
-                  Just ("kind" .= _metKind), ("name" .=) <$> _metName,
-                  ("countryCode" .=) <$> _metCountryCode,
-                  ("dmaId" .=) <$> _metDmaId,
-                  ("countryDartId" .=) <$> _metCountryDartId,
-                  ("dartId" .=) <$> _metDartId])
-
--- | Contains properties of a placement.
---
--- /See:/ 'placement' smart constructor.
-data Placement = Placement
-    { _p1Status                         :: !(Maybe PlacementStatus)
-    , _p1PlacementStrategyId            :: !(Maybe (Textual Int64))
-    , _p1TagFormats                     :: !(Maybe [PlacementTagFormatsItem])
-    , _p1SiteIdDimensionValue           :: !(Maybe DimensionValue)
-    , _p1PricingSchedule                :: !(Maybe PricingSchedule)
-    , _p1Size                           :: !(Maybe Size)
-    , _p1Kind                           :: !Text
-    , _p1KeyName                        :: !(Maybe Text)
-    , _p1CampaignIdDimensionValue       :: !(Maybe DimensionValue)
-    , _p1AdvertiserId                   :: !(Maybe (Textual Int64))
-    , _p1AdvertiserIdDimensionValue     :: !(Maybe DimensionValue)
-    , _p1CampaignId                     :: !(Maybe (Textual Int64))
-    , _p1IdDimensionValue               :: !(Maybe DimensionValue)
-    , _p1Primary                        :: !(Maybe Bool)
-    , _p1LookbackConfiguration          :: !(Maybe LookbackConfiguration)
-    , _p1TagSetting                     :: !(Maybe TagSetting)
-    , _p1ContentCategoryId              :: !(Maybe (Textual Int64))
-    , _p1DirectorySiteIdDimensionValue  :: !(Maybe DimensionValue)
-    , _p1AccountId                      :: !(Maybe (Textual Int64))
-    , _p1PaymentSource                  :: !(Maybe PlacementPaymentSource)
-    , _p1Name                           :: !(Maybe Text)
-    , _p1DirectorySiteId                :: !(Maybe (Textual Int64))
-    , _p1CreateInfo                     :: !(Maybe LastModifiedInfo)
-    , _p1LastModifiedInfo               :: !(Maybe LastModifiedInfo)
-    , _p1Id                             :: !(Maybe (Textual Int64))
-    , _p1SSLRequired                    :: !(Maybe Bool)
-    , _p1SubAccountId                   :: !(Maybe (Textual Int64))
-    , _p1PlacementGroupIdDimensionValue :: !(Maybe DimensionValue)
-    , _p1ExternalId                     :: !(Maybe Text)
-    , _p1PlacementGroupId               :: !(Maybe (Textual Int64))
-    , _p1Comment                        :: !(Maybe Text)
-    , _p1SiteId                         :: !(Maybe (Textual Int64))
-    , _p1Compatibility                  :: !(Maybe PlacementCompatibility)
-    , _p1Archived                       :: !(Maybe Bool)
-    , _p1PaymentApproved                :: !(Maybe Bool)
-    , _p1PublisherUpdateInfo            :: !(Maybe LastModifiedInfo)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Placement' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'p1Status'
---
--- * 'p1PlacementStrategyId'
---
--- * 'p1TagFormats'
---
--- * 'p1SiteIdDimensionValue'
---
--- * 'p1PricingSchedule'
---
--- * 'p1Size'
---
--- * 'p1Kind'
---
--- * 'p1KeyName'
---
--- * 'p1CampaignIdDimensionValue'
---
--- * 'p1AdvertiserId'
---
--- * 'p1AdvertiserIdDimensionValue'
---
--- * 'p1CampaignId'
---
--- * 'p1IdDimensionValue'
---
--- * 'p1Primary'
---
--- * 'p1LookbackConfiguration'
---
--- * 'p1TagSetting'
---
--- * 'p1ContentCategoryId'
---
--- * 'p1DirectorySiteIdDimensionValue'
---
--- * 'p1AccountId'
---
--- * 'p1PaymentSource'
---
--- * 'p1Name'
---
--- * 'p1DirectorySiteId'
---
--- * 'p1CreateInfo'
---
--- * 'p1LastModifiedInfo'
---
--- * 'p1Id'
---
--- * 'p1SSLRequired'
---
--- * 'p1SubAccountId'
---
--- * 'p1PlacementGroupIdDimensionValue'
---
--- * 'p1ExternalId'
---
--- * 'p1PlacementGroupId'
---
--- * 'p1Comment'
---
--- * 'p1SiteId'
---
--- * 'p1Compatibility'
---
--- * 'p1Archived'
---
--- * 'p1PaymentApproved'
---
--- * 'p1PublisherUpdateInfo'
-placement
-    :: Placement
-placement =
-    Placement
-    { _p1Status = Nothing
-    , _p1PlacementStrategyId = Nothing
-    , _p1TagFormats = Nothing
-    , _p1SiteIdDimensionValue = Nothing
-    , _p1PricingSchedule = Nothing
-    , _p1Size = Nothing
-    , _p1Kind = "dfareporting#placement"
-    , _p1KeyName = Nothing
-    , _p1CampaignIdDimensionValue = Nothing
-    , _p1AdvertiserId = Nothing
-    , _p1AdvertiserIdDimensionValue = Nothing
-    , _p1CampaignId = Nothing
-    , _p1IdDimensionValue = Nothing
-    , _p1Primary = Nothing
-    , _p1LookbackConfiguration = Nothing
-    , _p1TagSetting = Nothing
-    , _p1ContentCategoryId = Nothing
-    , _p1DirectorySiteIdDimensionValue = Nothing
-    , _p1AccountId = Nothing
-    , _p1PaymentSource = Nothing
-    , _p1Name = Nothing
-    , _p1DirectorySiteId = Nothing
-    , _p1CreateInfo = Nothing
-    , _p1LastModifiedInfo = Nothing
-    , _p1Id = Nothing
-    , _p1SSLRequired = Nothing
-    , _p1SubAccountId = Nothing
-    , _p1PlacementGroupIdDimensionValue = Nothing
-    , _p1ExternalId = Nothing
-    , _p1PlacementGroupId = Nothing
-    , _p1Comment = Nothing
-    , _p1SiteId = Nothing
-    , _p1Compatibility = Nothing
-    , _p1Archived = Nothing
-    , _p1PaymentApproved = Nothing
-    , _p1PublisherUpdateInfo = Nothing
-    }
-
--- | Third-party placement status.
-p1Status :: Lens' Placement (Maybe PlacementStatus)
-p1Status = lens _p1Status (\ s a -> s{_p1Status = a})
-
--- | ID of the placement strategy assigned to this placement.
-p1PlacementStrategyId :: Lens' Placement (Maybe Int64)
-p1PlacementStrategyId
-  = lens _p1PlacementStrategyId
-      (\ s a -> s{_p1PlacementStrategyId = a})
-      . mapping _Coerce
-
--- | Tag formats to generate for this placement. This field is required on
--- insertion. Acceptable values are: - \"PLACEMENT_TAG_STANDARD\" -
--- \"PLACEMENT_TAG_IFRAME_JAVASCRIPT\" - \"PLACEMENT_TAG_IFRAME_ILAYER\" -
--- \"PLACEMENT_TAG_INTERNAL_REDIRECT\" - \"PLACEMENT_TAG_JAVASCRIPT\" -
--- \"PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT\" -
--- \"PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT\" -
--- \"PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT\" -
--- \"PLACEMENT_TAG_CLICK_COMMANDS\" -
--- \"PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH\" - \"PLACEMENT_TAG_TRACKING\" -
--- \"PLACEMENT_TAG_TRACKING_IFRAME\" -
--- \"PLACEMENT_TAG_TRACKING_JAVASCRIPT\"
-p1TagFormats :: Lens' Placement [PlacementTagFormatsItem]
-p1TagFormats
-  = lens _p1TagFormats (\ s a -> s{_p1TagFormats = a})
-      . _Default
-      . _Coerce
-
--- | Dimension value for the ID of the site. This is a read-only,
--- auto-generated field.
-p1SiteIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
-p1SiteIdDimensionValue
-  = lens _p1SiteIdDimensionValue
-      (\ s a -> s{_p1SiteIdDimensionValue = a})
-
--- | Pricing schedule of this placement. This field is required on insertion,
--- specifically subfields startDate, endDate and pricingType.
-p1PricingSchedule :: Lens' Placement (Maybe PricingSchedule)
-p1PricingSchedule
-  = lens _p1PricingSchedule
-      (\ s a -> s{_p1PricingSchedule = a})
-
--- | Size associated with this placement. When inserting or updating a
--- placement, only the size ID field is used. This field is required on
--- insertion.
-p1Size :: Lens' Placement (Maybe Size)
-p1Size = lens _p1Size (\ s a -> s{_p1Size = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#placement\".
-p1Kind :: Lens' Placement Text
-p1Kind = lens _p1Kind (\ s a -> s{_p1Kind = a})
-
--- | Key name of this placement. This is a read-only, auto-generated field.
-p1KeyName :: Lens' Placement (Maybe Text)
-p1KeyName
-  = lens _p1KeyName (\ s a -> s{_p1KeyName = a})
-
--- | Dimension value for the ID of the campaign. This is a read-only,
--- auto-generated field.
-p1CampaignIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
-p1CampaignIdDimensionValue
-  = lens _p1CampaignIdDimensionValue
-      (\ s a -> s{_p1CampaignIdDimensionValue = a})
-
--- | Advertiser ID of this placement. This field can be left blank.
-p1AdvertiserId :: Lens' Placement (Maybe Int64)
-p1AdvertiserId
-  = lens _p1AdvertiserId
-      (\ s a -> s{_p1AdvertiserId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the advertiser. This is a read-only,
--- auto-generated field.
-p1AdvertiserIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
-p1AdvertiserIdDimensionValue
-  = lens _p1AdvertiserIdDimensionValue
-      (\ s a -> s{_p1AdvertiserIdDimensionValue = a})
-
--- | Campaign ID of this placement. This field is a required field on
--- insertion.
-p1CampaignId :: Lens' Placement (Maybe Int64)
-p1CampaignId
-  = lens _p1CampaignId (\ s a -> s{_p1CampaignId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of this placement. This is a read-only,
--- auto-generated field.
-p1IdDimensionValue :: Lens' Placement (Maybe DimensionValue)
-p1IdDimensionValue
-  = lens _p1IdDimensionValue
-      (\ s a -> s{_p1IdDimensionValue = a})
-
--- | Whether this placement is the primary placement of a roadblock
--- (placement group). You cannot change this field from true to false.
--- Setting this field to true will automatically set the primary field on
--- the original primary placement of the roadblock to false, and it will
--- automatically set the roadblock\'s primaryPlacementId field to the ID of
--- this placement.
-p1Primary :: Lens' Placement (Maybe Bool)
-p1Primary
-  = lens _p1Primary (\ s a -> s{_p1Primary = a})
-
--- | Lookback window settings for this placement.
-p1LookbackConfiguration :: Lens' Placement (Maybe LookbackConfiguration)
-p1LookbackConfiguration
-  = lens _p1LookbackConfiguration
-      (\ s a -> s{_p1LookbackConfiguration = a})
-
--- | Tag settings for this placement.
-p1TagSetting :: Lens' Placement (Maybe TagSetting)
-p1TagSetting
-  = lens _p1TagSetting (\ s a -> s{_p1TagSetting = a})
-
--- | ID of the content category assigned to this placement.
-p1ContentCategoryId :: Lens' Placement (Maybe Int64)
-p1ContentCategoryId
-  = lens _p1ContentCategoryId
-      (\ s a -> s{_p1ContentCategoryId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the directory site. This is a read-only,
--- auto-generated field.
-p1DirectorySiteIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
-p1DirectorySiteIdDimensionValue
-  = lens _p1DirectorySiteIdDimensionValue
-      (\ s a -> s{_p1DirectorySiteIdDimensionValue = a})
-
--- | Account ID of this placement. This field can be left blank.
-p1AccountId :: Lens' Placement (Maybe Int64)
-p1AccountId
-  = lens _p1AccountId (\ s a -> s{_p1AccountId = a}) .
-      mapping _Coerce
-
--- | Payment source for this placement. This is a required field that is
--- read-only after insertion.
-p1PaymentSource :: Lens' Placement (Maybe PlacementPaymentSource)
-p1PaymentSource
-  = lens _p1PaymentSource
-      (\ s a -> s{_p1PaymentSource = a})
-
--- | Name of this placement.This is a required field and must be less than
--- 256 characters long.
-p1Name :: Lens' Placement (Maybe Text)
-p1Name = lens _p1Name (\ s a -> s{_p1Name = a})
-
--- | Directory site ID of this placement. On insert, you must set either this
--- field or the siteId field to specify the site associated with this
--- placement. This is a required field that is read-only after insertion.
-p1DirectorySiteId :: Lens' Placement (Maybe Int64)
-p1DirectorySiteId
-  = lens _p1DirectorySiteId
-      (\ s a -> s{_p1DirectorySiteId = a})
-      . mapping _Coerce
-
--- | Information about the creation of this placement. This is a read-only
--- field.
-p1CreateInfo :: Lens' Placement (Maybe LastModifiedInfo)
-p1CreateInfo
-  = lens _p1CreateInfo (\ s a -> s{_p1CreateInfo = a})
-
--- | Information about the most recent modification of this placement. This
--- is a read-only field.
-p1LastModifiedInfo :: Lens' Placement (Maybe LastModifiedInfo)
-p1LastModifiedInfo
-  = lens _p1LastModifiedInfo
-      (\ s a -> s{_p1LastModifiedInfo = a})
-
--- | ID of this placement. This is a read-only, auto-generated field.
-p1Id :: Lens' Placement (Maybe Int64)
-p1Id
-  = lens _p1Id (\ s a -> s{_p1Id = a}) .
-      mapping _Coerce
-
--- | Whether creatives assigned to this placement must be SSL-compliant.
-p1SSLRequired :: Lens' Placement (Maybe Bool)
-p1SSLRequired
-  = lens _p1SSLRequired
-      (\ s a -> s{_p1SSLRequired = a})
-
--- | Subaccount ID of this placement. This field can be left blank.
-p1SubAccountId :: Lens' Placement (Maybe Int64)
-p1SubAccountId
-  = lens _p1SubAccountId
-      (\ s a -> s{_p1SubAccountId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the placement group. This is a read-only,
--- auto-generated field.
-p1PlacementGroupIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
-p1PlacementGroupIdDimensionValue
-  = lens _p1PlacementGroupIdDimensionValue
-      (\ s a -> s{_p1PlacementGroupIdDimensionValue = a})
-
--- | External ID for this placement.
-p1ExternalId :: Lens' Placement (Maybe Text)
-p1ExternalId
-  = lens _p1ExternalId (\ s a -> s{_p1ExternalId = a})
-
--- | ID of this placement\'s group, if applicable.
-p1PlacementGroupId :: Lens' Placement (Maybe Int64)
-p1PlacementGroupId
-  = lens _p1PlacementGroupId
-      (\ s a -> s{_p1PlacementGroupId = a})
-      . mapping _Coerce
-
--- | Comments for this placement.
-p1Comment :: Lens' Placement (Maybe Text)
-p1Comment
-  = lens _p1Comment (\ s a -> s{_p1Comment = a})
-
--- | Site ID associated with this placement. On insert, you must set either
--- this field or the directorySiteId field to specify the site associated
--- with this placement. This is a required field that is read-only after
--- insertion.
-p1SiteId :: Lens' Placement (Maybe Int64)
-p1SiteId
-  = lens _p1SiteId (\ s a -> s{_p1SiteId = a}) .
-      mapping _Coerce
-
--- | Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering
--- either on desktop or on mobile devices for regular or interstitial ads,
--- respectively. APP and APP_INTERSTITIAL are for rendering in mobile
--- apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads
--- developed with the VAST standard. This field is required on insertion.
-p1Compatibility :: Lens' Placement (Maybe PlacementCompatibility)
-p1Compatibility
-  = lens _p1Compatibility
-      (\ s a -> s{_p1Compatibility = a})
-
--- | Whether this placement is archived.
-p1Archived :: Lens' Placement (Maybe Bool)
-p1Archived
-  = lens _p1Archived (\ s a -> s{_p1Archived = a})
-
--- | Whether payment was approved for this placement. This is a read-only
--- field relevant only to publisher-paid placements.
-p1PaymentApproved :: Lens' Placement (Maybe Bool)
-p1PaymentApproved
-  = lens _p1PaymentApproved
-      (\ s a -> s{_p1PaymentApproved = a})
-
--- | Information about the last publisher update. This is a read-only field.
-p1PublisherUpdateInfo :: Lens' Placement (Maybe LastModifiedInfo)
-p1PublisherUpdateInfo
-  = lens _p1PublisherUpdateInfo
-      (\ s a -> s{_p1PublisherUpdateInfo = a})
-
-instance FromJSON Placement where
-        parseJSON
-          = withObject "Placement"
-              (\ o ->
-                 Placement <$>
-                   (o .:? "status") <*> (o .:? "placementStrategyId")
-                     <*> (o .:? "tagFormats" .!= mempty)
-                     <*> (o .:? "siteIdDimensionValue")
-                     <*> (o .:? "pricingSchedule")
-                     <*> (o .:? "size")
-                     <*> (o .:? "kind" .!= "dfareporting#placement")
-                     <*> (o .:? "keyName")
-                     <*> (o .:? "campaignIdDimensionValue")
-                     <*> (o .:? "advertiserId")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "campaignId")
-                     <*> (o .:? "idDimensionValue")
-                     <*> (o .:? "primary")
-                     <*> (o .:? "lookbackConfiguration")
-                     <*> (o .:? "tagSetting")
-                     <*> (o .:? "contentCategoryId")
-                     <*> (o .:? "directorySiteIdDimensionValue")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "paymentSource")
-                     <*> (o .:? "name")
-                     <*> (o .:? "directorySiteId")
-                     <*> (o .:? "createInfo")
-                     <*> (o .:? "lastModifiedInfo")
-                     <*> (o .:? "id")
-                     <*> (o .:? "sslRequired")
-                     <*> (o .:? "subaccountId")
-                     <*> (o .:? "placementGroupIdDimensionValue")
-                     <*> (o .:? "externalId")
-                     <*> (o .:? "placementGroupId")
-                     <*> (o .:? "comment")
-                     <*> (o .:? "siteId")
-                     <*> (o .:? "compatibility")
-                     <*> (o .:? "archived")
-                     <*> (o .:? "paymentApproved")
-                     <*> (o .:? "publisherUpdateInfo"))
-
-instance ToJSON Placement where
-        toJSON Placement{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _p1Status,
-                  ("placementStrategyId" .=) <$>
-                    _p1PlacementStrategyId,
-                  ("tagFormats" .=) <$> _p1TagFormats,
-                  ("siteIdDimensionValue" .=) <$>
-                    _p1SiteIdDimensionValue,
-                  ("pricingSchedule" .=) <$> _p1PricingSchedule,
-                  ("size" .=) <$> _p1Size, Just ("kind" .= _p1Kind),
-                  ("keyName" .=) <$> _p1KeyName,
-                  ("campaignIdDimensionValue" .=) <$>
-                    _p1CampaignIdDimensionValue,
-                  ("advertiserId" .=) <$> _p1AdvertiserId,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _p1AdvertiserIdDimensionValue,
-                  ("campaignId" .=) <$> _p1CampaignId,
-                  ("idDimensionValue" .=) <$> _p1IdDimensionValue,
-                  ("primary" .=) <$> _p1Primary,
-                  ("lookbackConfiguration" .=) <$>
-                    _p1LookbackConfiguration,
-                  ("tagSetting" .=) <$> _p1TagSetting,
-                  ("contentCategoryId" .=) <$> _p1ContentCategoryId,
-                  ("directorySiteIdDimensionValue" .=) <$>
-                    _p1DirectorySiteIdDimensionValue,
-                  ("accountId" .=) <$> _p1AccountId,
-                  ("paymentSource" .=) <$> _p1PaymentSource,
-                  ("name" .=) <$> _p1Name,
-                  ("directorySiteId" .=) <$> _p1DirectorySiteId,
-                  ("createInfo" .=) <$> _p1CreateInfo,
-                  ("lastModifiedInfo" .=) <$> _p1LastModifiedInfo,
-                  ("id" .=) <$> _p1Id,
-                  ("sslRequired" .=) <$> _p1SSLRequired,
-                  ("subaccountId" .=) <$> _p1SubAccountId,
-                  ("placementGroupIdDimensionValue" .=) <$>
-                    _p1PlacementGroupIdDimensionValue,
-                  ("externalId" .=) <$> _p1ExternalId,
-                  ("placementGroupId" .=) <$> _p1PlacementGroupId,
-                  ("comment" .=) <$> _p1Comment,
-                  ("siteId" .=) <$> _p1SiteId,
-                  ("compatibility" .=) <$> _p1Compatibility,
-                  ("archived" .=) <$> _p1Archived,
-                  ("paymentApproved" .=) <$> _p1PaymentApproved,
-                  ("publisherUpdateInfo" .=) <$>
-                    _p1PublisherUpdateInfo])
-
--- | Site List Response
---
--- /See:/ 'sitesListResponse' smart constructor.
-data SitesListResponse = SitesListResponse
-    { _sitNextPageToken :: !(Maybe Text)
-    , _sitKind          :: !Text
-    , _sitSites         :: !(Maybe [Site])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'SitesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sitNextPageToken'
---
--- * 'sitKind'
---
--- * 'sitSites'
-sitesListResponse
-    :: SitesListResponse
-sitesListResponse =
-    SitesListResponse
-    { _sitNextPageToken = Nothing
-    , _sitKind = "dfareporting#sitesListResponse"
-    , _sitSites = Nothing
-    }
-
--- | Pagination token to be used for the next list operation.
-sitNextPageToken :: Lens' SitesListResponse (Maybe Text)
-sitNextPageToken
-  = lens _sitNextPageToken
-      (\ s a -> s{_sitNextPageToken = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#sitesListResponse\".
-sitKind :: Lens' SitesListResponse Text
-sitKind = lens _sitKind (\ s a -> s{_sitKind = a})
-
--- | Site collection.
-sitSites :: Lens' SitesListResponse [Site]
-sitSites
-  = lens _sitSites (\ s a -> s{_sitSites = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON SitesListResponse where
-        parseJSON
-          = withObject "SitesListResponse"
-              (\ o ->
-                 SitesListResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "dfareporting#sitesListResponse")
-                     <*> (o .:? "sites" .!= mempty))
-
-instance ToJSON SitesListResponse where
-        toJSON SitesListResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _sitNextPageToken,
-                  Just ("kind" .= _sitKind),
-                  ("sites" .=) <$> _sitSites])
-
--- | Contains properties of a creative field.
---
--- /See:/ 'creativeField' smart constructor.
-data CreativeField = CreativeField
-    { _cffKind                       :: !Text
-    , _cffAdvertiserId               :: !(Maybe (Textual Int64))
-    , _cffAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
-    , _cffAccountId                  :: !(Maybe (Textual Int64))
-    , _cffName                       :: !(Maybe Text)
-    , _cffId                         :: !(Maybe (Textual Int64))
-    , _cffSubAccountId               :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreativeField' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cffKind'
---
--- * 'cffAdvertiserId'
---
--- * 'cffAdvertiserIdDimensionValue'
---
--- * 'cffAccountId'
---
--- * 'cffName'
---
--- * 'cffId'
---
--- * 'cffSubAccountId'
-creativeField
-    :: CreativeField
-creativeField =
-    CreativeField
-    { _cffKind = "dfareporting#creativeField"
-    , _cffAdvertiserId = Nothing
-    , _cffAdvertiserIdDimensionValue = Nothing
-    , _cffAccountId = Nothing
-    , _cffName = Nothing
-    , _cffId = Nothing
-    , _cffSubAccountId = Nothing
-    }
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dfareporting#creativeField\".
-cffKind :: Lens' CreativeField Text
-cffKind = lens _cffKind (\ s a -> s{_cffKind = a})
-
--- | Advertiser ID of this creative field. This is a required field on
--- insertion.
-cffAdvertiserId :: Lens' CreativeField (Maybe Int64)
-cffAdvertiserId
-  = lens _cffAdvertiserId
-      (\ s a -> s{_cffAdvertiserId = a})
-      . mapping _Coerce
-
--- | Dimension value for the ID of the advertiser. This is a read-only,
--- auto-generated field.
-cffAdvertiserIdDimensionValue :: Lens' CreativeField (Maybe DimensionValue)
-cffAdvertiserIdDimensionValue
-  = lens _cffAdvertiserIdDimensionValue
-      (\ s a -> s{_cffAdvertiserIdDimensionValue = a})
-
--- | Account ID of this creative field. This is a read-only field that can be
--- left blank.
-cffAccountId :: Lens' CreativeField (Maybe Int64)
-cffAccountId
-  = lens _cffAccountId (\ s a -> s{_cffAccountId = a})
-      . mapping _Coerce
-
--- | Name of this creative field. This is a required field and must be less
--- than 256 characters long and unique among creative fields of the same
--- advertiser.
-cffName :: Lens' CreativeField (Maybe Text)
-cffName = lens _cffName (\ s a -> s{_cffName = a})
-
--- | ID of this creative field. This is a read-only, auto-generated field.
-cffId :: Lens' CreativeField (Maybe Int64)
-cffId
-  = lens _cffId (\ s a -> s{_cffId = a}) .
-      mapping _Coerce
-
--- | Subaccount ID of this creative field. This is a read-only field that can
--- be left blank.
-cffSubAccountId :: Lens' CreativeField (Maybe Int64)
-cffSubAccountId
-  = lens _cffSubAccountId
-      (\ s a -> s{_cffSubAccountId = a})
-      . mapping _Coerce
-
-instance FromJSON CreativeField where
-        parseJSON
-          = withObject "CreativeField"
-              (\ o ->
-                 CreativeField <$>
-                   (o .:? "kind" .!= "dfareporting#creativeField") <*>
-                     (o .:? "advertiserId")
-                     <*> (o .:? "advertiserIdDimensionValue")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "subaccountId"))
-
-instance ToJSON CreativeField where
-        toJSON CreativeField{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _cffKind),
-                  ("advertiserId" .=) <$> _cffAdvertiserId,
-                  ("advertiserIdDimensionValue" .=) <$>
-                    _cffAdvertiserIdDimensionValue,
-                  ("accountId" .=) <$> _cffAccountId,
-                  ("name" .=) <$> _cffName, ("id" .=) <$> _cffId,
-                  ("subaccountId" .=) <$> _cffSubAccountId])
-
--- | Properties of inheriting and overriding the default click-through event
--- tag. A campaign may override the event tag defined at the advertiser
--- level, and an ad may also override the campaign\'s setting further.
---
--- /See:/ 'defaultClickThroughEventTagProperties' smart constructor.
-data DefaultClickThroughEventTagProperties = DefaultClickThroughEventTagProperties
-    { _dctetpOverrideInheritedEventTag     :: !(Maybe Bool)
-    , _dctetpDefaultClickThroughEventTagId :: !(Maybe (Textual Int64))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DefaultClickThroughEventTagProperties' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dctetpOverrideInheritedEventTag'
---
--- * 'dctetpDefaultClickThroughEventTagId'
-defaultClickThroughEventTagProperties
-    :: DefaultClickThroughEventTagProperties
-defaultClickThroughEventTagProperties =
-    DefaultClickThroughEventTagProperties
-    { _dctetpOverrideInheritedEventTag = Nothing
-    , _dctetpDefaultClickThroughEventTagId = Nothing
-    }
-
--- | Whether this entity should override the inherited default click-through
--- event tag with its own defined value.
-dctetpOverrideInheritedEventTag :: Lens' DefaultClickThroughEventTagProperties (Maybe Bool)
-dctetpOverrideInheritedEventTag
-  = lens _dctetpOverrideInheritedEventTag
-      (\ s a -> s{_dctetpOverrideInheritedEventTag = a})
-
--- | ID of the click-through event tag to apply to all ads in this entity\'s
--- scope.
-dctetpDefaultClickThroughEventTagId :: Lens' DefaultClickThroughEventTagProperties (Maybe Int64)
-dctetpDefaultClickThroughEventTagId
-  = lens _dctetpDefaultClickThroughEventTagId
-      (\ s a ->
-         s{_dctetpDefaultClickThroughEventTagId = a})
-      . mapping _Coerce
-
-instance FromJSON
-         DefaultClickThroughEventTagProperties where
-        parseJSON
-          = withObject "DefaultClickThroughEventTagProperties"
-              (\ o ->
-                 DefaultClickThroughEventTagProperties <$>
-                   (o .:? "overrideInheritedEventTag") <*>
-                     (o .:? "defaultClickThroughEventTagId"))
-
-instance ToJSON DefaultClickThroughEventTagProperties
-         where
-        toJSON DefaultClickThroughEventTagProperties{..}
-          = object
-              (catMaybes
-                 [("overrideInheritedEventTag" .=) <$>
-                    _dctetpOverrideInheritedEventTag,
-                  ("defaultClickThroughEventTagId" .=) <$>
-                    _dctetpDefaultClickThroughEventTagId])
-
--- | Remarketing List Targeting Expression.
---
--- /See:/ 'listTargetingExpression' smart constructor.
-newtype ListTargetingExpression = ListTargetingExpression
-    { _lteExpression :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListTargetingExpression' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lteExpression'
-listTargetingExpression
-    :: ListTargetingExpression
-listTargetingExpression =
-    ListTargetingExpression
-    { _lteExpression = Nothing
-    }
-
--- | Expression describing which lists are being targeted by the ad.
-lteExpression :: Lens' ListTargetingExpression (Maybe Text)
-lteExpression
-  = lens _lteExpression
-      (\ s a -> s{_lteExpression = a})
-
-instance FromJSON ListTargetingExpression where
-        parseJSON
-          = withObject "ListTargetingExpression"
-              (\ o ->
-                 ListTargetingExpression <$> (o .:? "expression"))
-
-instance ToJSON ListTargetingExpression where
-        toJSON ListTargetingExpression{..}
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.DFAReporting.Types.Product where
+
+import           Network.Google.DFAReporting.Types.Sum
+import           Network.Google.Prelude
+
+-- | Represents the list of File resources.
+--
+-- /See:/ 'fileList' smart constructor.
+data FileList = FileList'
+    { _flEtag          :: !(Maybe Text)
+    , _flNextPageToken :: !(Maybe Text)
+    , _flKind          :: !Text
+    , _flItems         :: !(Maybe [File])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FileList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'flEtag'
+--
+-- * 'flNextPageToken'
+--
+-- * 'flKind'
+--
+-- * 'flItems'
+fileList
+    :: FileList
+fileList =
+    FileList'
+    { _flEtag = Nothing
+    , _flNextPageToken = Nothing
+    , _flKind = "dfareporting#fileList"
+    , _flItems = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+flEtag :: Lens' FileList (Maybe Text)
+flEtag = lens _flEtag (\ s a -> s{_flEtag = a})
+
+-- | Continuation token used to page through files. To retrieve the next page
+-- of results, set the next request\'s \"pageToken\" to the value of this
+-- field. The page token is only valid for a limited amount of time and
+-- should not be persisted.
+flNextPageToken :: Lens' FileList (Maybe Text)
+flNextPageToken
+  = lens _flNextPageToken
+      (\ s a -> s{_flNextPageToken = a})
+
+-- | The kind of list this is, in this case dfareporting#fileList.
+flKind :: Lens' FileList Text
+flKind = lens _flKind (\ s a -> s{_flKind = a})
+
+-- | The files returned in this response.
+flItems :: Lens' FileList [File]
+flItems
+  = lens _flItems (\ s a -> s{_flItems = a}) . _Default
+      . _Coerce
+
+instance FromJSON FileList where
+        parseJSON
+          = withObject "FileList"
+              (\ o ->
+                 FileList' <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#fileList")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON FileList where
+        toJSON FileList'{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _flEtag,
+                  ("nextPageToken" .=) <$> _flNextPageToken,
+                  Just ("kind" .= _flKind), ("items" .=) <$> _flItems])
+
+-- | Creative optimization activity.
+--
+-- /See:/ 'optimizationActivity' smart constructor.
+data OptimizationActivity = OptimizationActivity'
+    { _oaWeight                             :: !(Maybe (Textual Int32))
+    , _oaFloodlightActivityId               :: !(Maybe (Textual Int64))
+    , _oaFloodlightActivityIdDimensionValue :: !(Maybe DimensionValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OptimizationActivity' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'oaWeight'
+--
+-- * 'oaFloodlightActivityId'
+--
+-- * 'oaFloodlightActivityIdDimensionValue'
+optimizationActivity
+    :: OptimizationActivity
+optimizationActivity =
+    OptimizationActivity'
+    { _oaWeight = Nothing
+    , _oaFloodlightActivityId = Nothing
+    , _oaFloodlightActivityIdDimensionValue = Nothing
+    }
+
+-- | Weight associated with this optimization. Must be greater than 1. The
+-- weight assigned will be understood in proportion to the weights assigned
+-- to the other optimization activities.
+oaWeight :: Lens' OptimizationActivity (Maybe Int32)
+oaWeight
+  = lens _oaWeight (\ s a -> s{_oaWeight = a}) .
+      mapping _Coerce
+
+-- | Floodlight activity ID of this optimization activity. This is a required
+-- field.
+oaFloodlightActivityId :: Lens' OptimizationActivity (Maybe Int64)
+oaFloodlightActivityId
+  = lens _oaFloodlightActivityId
+      (\ s a -> s{_oaFloodlightActivityId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the floodlight activity. This is a
+-- read-only, auto-generated field.
+oaFloodlightActivityIdDimensionValue :: Lens' OptimizationActivity (Maybe DimensionValue)
+oaFloodlightActivityIdDimensionValue
+  = lens _oaFloodlightActivityIdDimensionValue
+      (\ s a ->
+         s{_oaFloodlightActivityIdDimensionValue = a})
+
+instance FromJSON OptimizationActivity where
+        parseJSON
+          = withObject "OptimizationActivity"
+              (\ o ->
+                 OptimizationActivity' <$>
+                   (o .:? "weight") <*> (o .:? "floodlightActivityId")
+                     <*> (o .:? "floodlightActivityIdDimensionValue"))
+
+instance ToJSON OptimizationActivity where
+        toJSON OptimizationActivity'{..}
+          = object
+              (catMaybes
+                 [("weight" .=) <$> _oaWeight,
+                  ("floodlightActivityId" .=) <$>
+                    _oaFloodlightActivityId,
+                  ("floodlightActivityIdDimensionValue" .=) <$>
+                    _oaFloodlightActivityIdDimensionValue])
+
+-- | A group clause made up of list population terms representing constraints
+-- joined by ORs.
+--
+-- /See:/ 'listPopulationClause' smart constructor.
+newtype ListPopulationClause = ListPopulationClause'
+    { _lpcTerms :: Maybe [ListPopulationTerm]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListPopulationClause' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpcTerms'
+listPopulationClause
+    :: ListPopulationClause
+listPopulationClause =
+    ListPopulationClause'
+    { _lpcTerms = Nothing
+    }
+
+-- | Terms of this list population clause. Each clause is made up of list
+-- population terms representing constraints and are joined by ORs.
+lpcTerms :: Lens' ListPopulationClause [ListPopulationTerm]
+lpcTerms
+  = lens _lpcTerms (\ s a -> s{_lpcTerms = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListPopulationClause where
+        parseJSON
+          = withObject "ListPopulationClause"
+              (\ o ->
+                 ListPopulationClause' <$> (o .:? "terms" .!= mempty))
+
+instance ToJSON ListPopulationClause where
+        toJSON ListPopulationClause'{..}
+          = object (catMaybes [("terms" .=) <$> _lpcTerms])
+
+-- | Creative Custom Event.
+--
+-- /See:/ 'creativeCustomEvent' smart constructor.
+data CreativeCustomEvent = CreativeCustomEvent'
+    { _cceAdvertiserCustomEventId   :: !(Maybe (Textual Int64))
+    , _cceAdvertiserCustomEventType :: !(Maybe CreativeCustomEventAdvertiserCustomEventType)
+    , _cceAdvertiserCustomEventName :: !(Maybe Text)
+    , _cceExitURL                   :: !(Maybe Text)
+    , _cceTargetType                :: !(Maybe CreativeCustomEventTargetType)
+    , _ccePopupWindowProperties     :: !(Maybe PopupWindowProperties)
+    , _cceVideoReportingId          :: !(Maybe Text)
+    , _cceId                        :: !(Maybe (Textual Int64))
+    , _cceArtworkLabel              :: !(Maybe Text)
+    , _cceArtworkType               :: !(Maybe CreativeCustomEventArtworkType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeCustomEvent' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cceAdvertiserCustomEventId'
+--
+-- * 'cceAdvertiserCustomEventType'
+--
+-- * 'cceAdvertiserCustomEventName'
+--
+-- * 'cceExitURL'
+--
+-- * 'cceTargetType'
+--
+-- * 'ccePopupWindowProperties'
+--
+-- * 'cceVideoReportingId'
+--
+-- * 'cceId'
+--
+-- * 'cceArtworkLabel'
+--
+-- * 'cceArtworkType'
+creativeCustomEvent
+    :: CreativeCustomEvent
+creativeCustomEvent =
+    CreativeCustomEvent'
+    { _cceAdvertiserCustomEventId = Nothing
+    , _cceAdvertiserCustomEventType = Nothing
+    , _cceAdvertiserCustomEventName = Nothing
+    , _cceExitURL = Nothing
+    , _cceTargetType = Nothing
+    , _ccePopupWindowProperties = Nothing
+    , _cceVideoReportingId = Nothing
+    , _cceId = Nothing
+    , _cceArtworkLabel = Nothing
+    , _cceArtworkType = Nothing
+    }
+
+-- | Unique ID of this event used by DDM Reporting and Data Transfer. This is
+-- a read-only field.
+cceAdvertiserCustomEventId :: Lens' CreativeCustomEvent (Maybe Int64)
+cceAdvertiserCustomEventId
+  = lens _cceAdvertiserCustomEventId
+      (\ s a -> s{_cceAdvertiserCustomEventId = a})
+      . mapping _Coerce
+
+-- | Type of the event. This is a read-only field.
+cceAdvertiserCustomEventType :: Lens' CreativeCustomEvent (Maybe CreativeCustomEventAdvertiserCustomEventType)
+cceAdvertiserCustomEventType
+  = lens _cceAdvertiserCustomEventType
+      (\ s a -> s{_cceAdvertiserCustomEventType = a})
+
+-- | User-entered name for the event.
+cceAdvertiserCustomEventName :: Lens' CreativeCustomEvent (Maybe Text)
+cceAdvertiserCustomEventName
+  = lens _cceAdvertiserCustomEventName
+      (\ s a -> s{_cceAdvertiserCustomEventName = a})
+
+-- | Exit URL of the event. This field is used only for exit events.
+cceExitURL :: Lens' CreativeCustomEvent (Maybe Text)
+cceExitURL
+  = lens _cceExitURL (\ s a -> s{_cceExitURL = a})
+
+-- | Target type used by the event.
+cceTargetType :: Lens' CreativeCustomEvent (Maybe CreativeCustomEventTargetType)
+cceTargetType
+  = lens _cceTargetType
+      (\ s a -> s{_cceTargetType = a})
+
+-- | Properties for rich media popup windows. This field is used only for
+-- exit events.
+ccePopupWindowProperties :: Lens' CreativeCustomEvent (Maybe PopupWindowProperties)
+ccePopupWindowProperties
+  = lens _ccePopupWindowProperties
+      (\ s a -> s{_ccePopupWindowProperties = a})
+
+-- | Video reporting ID, used to differentiate multiple videos in a single
+-- creative. This is a read-only field.
+cceVideoReportingId :: Lens' CreativeCustomEvent (Maybe Text)
+cceVideoReportingId
+  = lens _cceVideoReportingId
+      (\ s a -> s{_cceVideoReportingId = a})
+
+-- | ID of this event. This is a required field and should not be modified
+-- after insertion.
+cceId :: Lens' CreativeCustomEvent (Maybe Int64)
+cceId
+  = lens _cceId (\ s a -> s{_cceId = a}) .
+      mapping _Coerce
+
+-- | Artwork label column, used to link events in DCM back to events in
+-- Studio. This is a required field and should not be modified after
+-- insertion.
+cceArtworkLabel :: Lens' CreativeCustomEvent (Maybe Text)
+cceArtworkLabel
+  = lens _cceArtworkLabel
+      (\ s a -> s{_cceArtworkLabel = a})
+
+-- | Artwork type used by the creative.This is a read-only field.
+cceArtworkType :: Lens' CreativeCustomEvent (Maybe CreativeCustomEventArtworkType)
+cceArtworkType
+  = lens _cceArtworkType
+      (\ s a -> s{_cceArtworkType = a})
+
+instance FromJSON CreativeCustomEvent where
+        parseJSON
+          = withObject "CreativeCustomEvent"
+              (\ o ->
+                 CreativeCustomEvent' <$>
+                   (o .:? "advertiserCustomEventId") <*>
+                     (o .:? "advertiserCustomEventType")
+                     <*> (o .:? "advertiserCustomEventName")
+                     <*> (o .:? "exitUrl")
+                     <*> (o .:? "targetType")
+                     <*> (o .:? "popupWindowProperties")
+                     <*> (o .:? "videoReportingId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "artworkLabel")
+                     <*> (o .:? "artworkType"))
+
+instance ToJSON CreativeCustomEvent where
+        toJSON CreativeCustomEvent'{..}
+          = object
+              (catMaybes
+                 [("advertiserCustomEventId" .=) <$>
+                    _cceAdvertiserCustomEventId,
+                  ("advertiserCustomEventType" .=) <$>
+                    _cceAdvertiserCustomEventType,
+                  ("advertiserCustomEventName" .=) <$>
+                    _cceAdvertiserCustomEventName,
+                  ("exitUrl" .=) <$> _cceExitURL,
+                  ("targetType" .=) <$> _cceTargetType,
+                  ("popupWindowProperties" .=) <$>
+                    _ccePopupWindowProperties,
+                  ("videoReportingId" .=) <$> _cceVideoReportingId,
+                  ("id" .=) <$> _cceId,
+                  ("artworkLabel" .=) <$> _cceArtworkLabel,
+                  ("artworkType" .=) <$> _cceArtworkType])
+
+-- | Creative Click Tag.
+--
+-- /See:/ 'clickTag' smart constructor.
+data ClickTag = ClickTag'
+    { _ctValue     :: !(Maybe Text)
+    , _ctName      :: !(Maybe Text)
+    , _ctEventName :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ClickTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctValue'
+--
+-- * 'ctName'
+--
+-- * 'ctEventName'
+clickTag
+    :: ClickTag
+clickTag =
+    ClickTag'
+    { _ctValue = Nothing
+    , _ctName = Nothing
+    , _ctEventName = Nothing
+    }
+
+-- | Parameter value for the specified click tag. This field contains a
+-- click-through url.
+ctValue :: Lens' ClickTag (Maybe Text)
+ctValue = lens _ctValue (\ s a -> s{_ctValue = a})
+
+-- | Parameter name for the specified click tag. For ENHANCED_IMAGE creative
+-- assets, this field must match the value of the creative asset\'s
+-- creativeAssetId.name field.
+ctName :: Lens' ClickTag (Maybe Text)
+ctName = lens _ctName (\ s a -> s{_ctName = a})
+
+-- | Advertiser event name associated with the click tag. This field is used
+-- by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+ctEventName :: Lens' ClickTag (Maybe Text)
+ctEventName
+  = lens _ctEventName (\ s a -> s{_ctEventName = a})
+
+instance FromJSON ClickTag where
+        parseJSON
+          = withObject "ClickTag"
+              (\ o ->
+                 ClickTag' <$>
+                   (o .:? "value") <*> (o .:? "name") <*>
+                     (o .:? "eventName"))
+
+instance ToJSON ClickTag where
+        toJSON ClickTag'{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _ctValue, ("name" .=) <$> _ctName,
+                  ("eventName" .=) <$> _ctEventName])
+
+-- | Campaign List Response
+--
+-- /See:/ 'campaignsListResponse' smart constructor.
+data CampaignsListResponse = CampaignsListResponse'
+    { _clrNextPageToken :: !(Maybe Text)
+    , _clrCampaigns     :: !(Maybe [Campaign])
+    , _clrKind          :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'clrNextPageToken'
+--
+-- * 'clrCampaigns'
+--
+-- * 'clrKind'
+campaignsListResponse
+    :: CampaignsListResponse
+campaignsListResponse =
+    CampaignsListResponse'
+    { _clrNextPageToken = Nothing
+    , _clrCampaigns = Nothing
+    , _clrKind = "dfareporting#campaignsListResponse"
+    }
+
+-- | Pagination token to be used for the next list operation.
+clrNextPageToken :: Lens' CampaignsListResponse (Maybe Text)
+clrNextPageToken
+  = lens _clrNextPageToken
+      (\ s a -> s{_clrNextPageToken = a})
+
+-- | Campaign collection.
+clrCampaigns :: Lens' CampaignsListResponse [Campaign]
+clrCampaigns
+  = lens _clrCampaigns (\ s a -> s{_clrCampaigns = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#campaignsListResponse\".
+clrKind :: Lens' CampaignsListResponse Text
+clrKind = lens _clrKind (\ s a -> s{_clrKind = a})
+
+instance FromJSON CampaignsListResponse where
+        parseJSON
+          = withObject "CampaignsListResponse"
+              (\ o ->
+                 CampaignsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "campaigns" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#campaignsListResponse"))
+
+instance ToJSON CampaignsListResponse where
+        toJSON CampaignsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _clrNextPageToken,
+                  ("campaigns" .=) <$> _clrCampaigns,
+                  Just ("kind" .= _clrKind)])
+
+-- | Geographical Targeting.
+--
+-- /See:/ 'geoTargeting' smart constructor.
+data GeoTargeting = GeoTargeting'
+    { _gtRegions          :: !(Maybe [Region])
+    , _gtCountries        :: !(Maybe [Country])
+    , _gtCities           :: !(Maybe [City])
+    , _gtMetros           :: !(Maybe [Metro])
+    , _gtExcludeCountries :: !(Maybe Bool)
+    , _gtPostalCodes      :: !(Maybe [PostalCode])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GeoTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gtRegions'
+--
+-- * 'gtCountries'
+--
+-- * 'gtCities'
+--
+-- * 'gtMetros'
+--
+-- * 'gtExcludeCountries'
+--
+-- * 'gtPostalCodes'
+geoTargeting
+    :: GeoTargeting
+geoTargeting =
+    GeoTargeting'
+    { _gtRegions = Nothing
+    , _gtCountries = Nothing
+    , _gtCities = Nothing
+    , _gtMetros = Nothing
+    , _gtExcludeCountries = Nothing
+    , _gtPostalCodes = Nothing
+    }
+
+-- | Regions to be targeted. For each region only dartId is required. The
+-- other fields are populated automatically when the ad is inserted or
+-- updated. If targeting a region, do not target or exclude the country of
+-- the region.
+gtRegions :: Lens' GeoTargeting [Region]
+gtRegions
+  = lens _gtRegions (\ s a -> s{_gtRegions = a}) .
+      _Default
+      . _Coerce
+
+-- | Countries to be targeted or excluded from targeting, depending on the
+-- setting of the excludeCountries field. For each country only dartId is
+-- required. The other fields are populated automatically when the ad is
+-- inserted or updated. If targeting or excluding a country, do not target
+-- regions, cities, metros, or postal codes in the same country.
+gtCountries :: Lens' GeoTargeting [Country]
+gtCountries
+  = lens _gtCountries (\ s a -> s{_gtCountries = a}) .
+      _Default
+      . _Coerce
+
+-- | Cities to be targeted. For each city only dartId is required. The other
+-- fields are populated automatically when the ad is inserted or updated.
+-- If targeting a city, do not target or exclude the country of the city,
+-- and do not target the metro or region of the city.
+gtCities :: Lens' GeoTargeting [City]
+gtCities
+  = lens _gtCities (\ s a -> s{_gtCities = a}) .
+      _Default
+      . _Coerce
+
+-- | Metros to be targeted. For each metro only dmaId is required. The other
+-- fields are populated automatically when the ad is inserted or updated.
+-- If targeting a metro, do not target or exclude the country of the metro.
+gtMetros :: Lens' GeoTargeting [Metro]
+gtMetros
+  = lens _gtMetros (\ s a -> s{_gtMetros = a}) .
+      _Default
+      . _Coerce
+
+-- | Whether or not to exclude the countries in the countries field from
+-- targeting. If false, the countries field refers to countries which will
+-- be targeted by the ad.
+gtExcludeCountries :: Lens' GeoTargeting (Maybe Bool)
+gtExcludeCountries
+  = lens _gtExcludeCountries
+      (\ s a -> s{_gtExcludeCountries = a})
+
+-- | Postal codes to be targeted. For each postal code only id is required.
+-- The other fields are populated automatically when the ad is inserted or
+-- updated. If targeting a postal code, do not target or exclude the
+-- country of the postal code.
+gtPostalCodes :: Lens' GeoTargeting [PostalCode]
+gtPostalCodes
+  = lens _gtPostalCodes
+      (\ s a -> s{_gtPostalCodes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON GeoTargeting where
+        parseJSON
+          = withObject "GeoTargeting"
+              (\ o ->
+                 GeoTargeting' <$>
+                   (o .:? "regions" .!= mempty) <*>
+                     (o .:? "countries" .!= mempty)
+                     <*> (o .:? "cities" .!= mempty)
+                     <*> (o .:? "metros" .!= mempty)
+                     <*> (o .:? "excludeCountries")
+                     <*> (o .:? "postalCodes" .!= mempty))
+
+instance ToJSON GeoTargeting where
+        toJSON GeoTargeting'{..}
+          = object
+              (catMaybes
+                 [("regions" .=) <$> _gtRegions,
+                  ("countries" .=) <$> _gtCountries,
+                  ("cities" .=) <$> _gtCities,
+                  ("metros" .=) <$> _gtMetros,
+                  ("excludeCountries" .=) <$> _gtExcludeCountries,
+                  ("postalCodes" .=) <$> _gtPostalCodes])
+
+-- | Represents fields that are compatible to be selected for a report of
+-- type \"REACH\".
+--
+-- /See:/ 'reachReportCompatibleFields' smart constructor.
+data ReachReportCompatibleFields = ReachReportCompatibleFields'
+    { _rrcfMetrics                 :: !(Maybe [Metric])
+    , _rrcfReachByFrequencyMetrics :: !(Maybe [Metric])
+    , _rrcfKind                    :: !Text
+    , _rrcfDimensionFilters        :: !(Maybe [Dimension])
+    , _rrcfPivotedActivityMetrics  :: !(Maybe [Metric])
+    , _rrcfDimensions              :: !(Maybe [Dimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReachReportCompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rrcfMetrics'
+--
+-- * 'rrcfReachByFrequencyMetrics'
+--
+-- * 'rrcfKind'
+--
+-- * 'rrcfDimensionFilters'
+--
+-- * 'rrcfPivotedActivityMetrics'
+--
+-- * 'rrcfDimensions'
+reachReportCompatibleFields
+    :: ReachReportCompatibleFields
+reachReportCompatibleFields =
+    ReachReportCompatibleFields'
+    { _rrcfMetrics = Nothing
+    , _rrcfReachByFrequencyMetrics = Nothing
+    , _rrcfKind = "dfareporting#reachReportCompatibleFields"
+    , _rrcfDimensionFilters = Nothing
+    , _rrcfPivotedActivityMetrics = Nothing
+    , _rrcfDimensions = Nothing
+    }
+
+-- | Metrics which are compatible to be selected in the \"metricNames\"
+-- section of the report.
+rrcfMetrics :: Lens' ReachReportCompatibleFields [Metric]
+rrcfMetrics
+  = lens _rrcfMetrics (\ s a -> s{_rrcfMetrics = a}) .
+      _Default
+      . _Coerce
+
+-- | Metrics which are compatible to be selected in the
+-- \"reachByFrequencyMetricNames\" section of the report.
+rrcfReachByFrequencyMetrics :: Lens' ReachReportCompatibleFields [Metric]
+rrcfReachByFrequencyMetrics
+  = lens _rrcfReachByFrequencyMetrics
+      (\ s a -> s{_rrcfReachByFrequencyMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | The kind of resource this is, in this case
+-- dfareporting#reachReportCompatibleFields.
+rrcfKind :: Lens' ReachReportCompatibleFields Text
+rrcfKind = lens _rrcfKind (\ s a -> s{_rrcfKind = a})
+
+-- | Dimensions which are compatible to be selected in the
+-- \"dimensionFilters\" section of the report.
+rrcfDimensionFilters :: Lens' ReachReportCompatibleFields [Dimension]
+rrcfDimensionFilters
+  = lens _rrcfDimensionFilters
+      (\ s a -> s{_rrcfDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Metrics which are compatible to be selected as activity metrics to pivot
+-- on in the \"activities\" section of the report.
+rrcfPivotedActivityMetrics :: Lens' ReachReportCompatibleFields [Metric]
+rrcfPivotedActivityMetrics
+  = lens _rrcfPivotedActivityMetrics
+      (\ s a -> s{_rrcfPivotedActivityMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | Dimensions which are compatible to be selected in the \"dimensions\"
+-- section of the report.
+rrcfDimensions :: Lens' ReachReportCompatibleFields [Dimension]
+rrcfDimensions
+  = lens _rrcfDimensions
+      (\ s a -> s{_rrcfDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReachReportCompatibleFields where
+        parseJSON
+          = withObject "ReachReportCompatibleFields"
+              (\ o ->
+                 ReachReportCompatibleFields' <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "reachByFrequencyMetrics" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#reachReportCompatibleFields")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "pivotedActivityMetrics" .!= mempty)
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON ReachReportCompatibleFields where
+        toJSON ReachReportCompatibleFields'{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _rrcfMetrics,
+                  ("reachByFrequencyMetrics" .=) <$>
+                    _rrcfReachByFrequencyMetrics,
+                  Just ("kind" .= _rrcfKind),
+                  ("dimensionFilters" .=) <$> _rrcfDimensionFilters,
+                  ("pivotedActivityMetrics" .=) <$>
+                    _rrcfPivotedActivityMetrics,
+                  ("dimensions" .=) <$> _rrcfDimensions])
+
+-- | Contains information about a browser that can be targeted by ads.
+--
+-- /See:/ 'browser' smart constructor.
+data Browser = Browser'
+    { _bMinorVersion     :: !(Maybe Text)
+    , _bKind             :: !Text
+    , _bBrowserVersionId :: !(Maybe (Textual Int64))
+    , _bMajorVersion     :: !(Maybe Text)
+    , _bName             :: !(Maybe Text)
+    , _bDartId           :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Browser' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bMinorVersion'
+--
+-- * 'bKind'
+--
+-- * 'bBrowserVersionId'
+--
+-- * 'bMajorVersion'
+--
+-- * 'bName'
+--
+-- * 'bDartId'
+browser
+    :: Browser
+browser =
+    Browser'
+    { _bMinorVersion = Nothing
+    , _bKind = "dfareporting#browser"
+    , _bBrowserVersionId = Nothing
+    , _bMajorVersion = Nothing
+    , _bName = Nothing
+    , _bDartId = Nothing
+    }
+
+-- | Minor version number (number after first dot on left) of this browser.
+-- For example, for Chrome 5.0.375.86 beta, this field should be set to 0.
+-- An asterisk (*) may be used to target any version number, and a question
+-- mark (?) may be used to target cases where the version number cannot be
+-- identified. For example, Chrome *.* targets any version of Chrome: 1.2,
+-- 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0.
+-- Firefox ?.? targets cases where the ad server knows the browser is
+-- Firefox but can\'t tell which version it is.
+bMinorVersion :: Lens' Browser (Maybe Text)
+bMinorVersion
+  = lens _bMinorVersion
+      (\ s a -> s{_bMinorVersion = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#browser\".
+bKind :: Lens' Browser Text
+bKind = lens _bKind (\ s a -> s{_bKind = a})
+
+-- | ID referring to this grouping of browser and version numbers. This is
+-- the ID used for targeting.
+bBrowserVersionId :: Lens' Browser (Maybe Int64)
+bBrowserVersionId
+  = lens _bBrowserVersionId
+      (\ s a -> s{_bBrowserVersionId = a})
+      . mapping _Coerce
+
+-- | Major version number (leftmost number) of this browser. For example, for
+-- Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*)
+-- may be used to target any version number, and a question mark (?) may be
+-- used to target cases where the version number cannot be identified. For
+-- example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so
+-- on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets
+-- cases where the ad server knows the browser is Firefox but can\'t tell
+-- which version it is.
+bMajorVersion :: Lens' Browser (Maybe Text)
+bMajorVersion
+  = lens _bMajorVersion
+      (\ s a -> s{_bMajorVersion = a})
+
+-- | Name of this browser.
+bName :: Lens' Browser (Maybe Text)
+bName = lens _bName (\ s a -> s{_bName = a})
+
+-- | DART ID of this browser. This is the ID used when generating reports.
+bDartId :: Lens' Browser (Maybe Int64)
+bDartId
+  = lens _bDartId (\ s a -> s{_bDartId = a}) .
+      mapping _Coerce
+
+instance FromJSON Browser where
+        parseJSON
+          = withObject "Browser"
+              (\ o ->
+                 Browser' <$>
+                   (o .:? "minorVersion") <*>
+                     (o .:? "kind" .!= "dfareporting#browser")
+                     <*> (o .:? "browserVersionId")
+                     <*> (o .:? "majorVersion")
+                     <*> (o .:? "name")
+                     <*> (o .:? "dartId"))
+
+instance ToJSON Browser where
+        toJSON Browser'{..}
+          = object
+              (catMaybes
+                 [("minorVersion" .=) <$> _bMinorVersion,
+                  Just ("kind" .= _bKind),
+                  ("browserVersionId" .=) <$> _bBrowserVersionId,
+                  ("majorVersion" .=) <$> _bMajorVersion,
+                  ("name" .=) <$> _bName, ("dartId" .=) <$> _bDartId])
+
+-- | Creative Group Assignment.
+--
+-- /See:/ 'creativeGroupAssignment' smart constructor.
+data CreativeGroupAssignment = CreativeGroupAssignment'
+    { _cgaCreativeGroupNumber :: !(Maybe CreativeGroupAssignmentCreativeGroupNumber)
+    , _cgaCreativeGroupId     :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroupAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cgaCreativeGroupNumber'
+--
+-- * 'cgaCreativeGroupId'
+creativeGroupAssignment
+    :: CreativeGroupAssignment
+creativeGroupAssignment =
+    CreativeGroupAssignment'
+    { _cgaCreativeGroupNumber = Nothing
+    , _cgaCreativeGroupId = Nothing
+    }
+
+-- | Creative group number of the creative group assignment.
+cgaCreativeGroupNumber :: Lens' CreativeGroupAssignment (Maybe CreativeGroupAssignmentCreativeGroupNumber)
+cgaCreativeGroupNumber
+  = lens _cgaCreativeGroupNumber
+      (\ s a -> s{_cgaCreativeGroupNumber = a})
+
+-- | ID of the creative group to be assigned.
+cgaCreativeGroupId :: Lens' CreativeGroupAssignment (Maybe Int64)
+cgaCreativeGroupId
+  = lens _cgaCreativeGroupId
+      (\ s a -> s{_cgaCreativeGroupId = a})
+      . mapping _Coerce
+
+instance FromJSON CreativeGroupAssignment where
+        parseJSON
+          = withObject "CreativeGroupAssignment"
+              (\ o ->
+                 CreativeGroupAssignment' <$>
+                   (o .:? "creativeGroupNumber") <*>
+                     (o .:? "creativeGroupId"))
+
+instance ToJSON CreativeGroupAssignment where
+        toJSON CreativeGroupAssignment'{..}
+          = object
+              (catMaybes
+                 [("creativeGroupNumber" .=) <$>
+                    _cgaCreativeGroupNumber,
+                  ("creativeGroupId" .=) <$> _cgaCreativeGroupId])
+
+-- | Directory Site Settings
+--
+-- /See:/ 'directorySiteSettings' smart constructor.
+data DirectorySiteSettings = DirectorySiteSettings'
+    { _dssInterstitialPlacementAccepted  :: !(Maybe Bool)
+    , _dssDfpSettings                    :: !(Maybe DfpSettings)
+    , _dssVerificationTagOptOut          :: !(Maybe Bool)
+    , _dssActiveViewOptOut               :: !(Maybe Bool)
+    , _dssVideoActiveViewOptOut          :: !(Maybe Bool)
+    , _dssInstreamVideoPlacementAccepted :: !(Maybe Bool)
+    , _dssNielsenOCROptOut               :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySiteSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dssInterstitialPlacementAccepted'
+--
+-- * 'dssDfpSettings'
+--
+-- * 'dssVerificationTagOptOut'
+--
+-- * 'dssActiveViewOptOut'
+--
+-- * 'dssVideoActiveViewOptOut'
+--
+-- * 'dssInstreamVideoPlacementAccepted'
+--
+-- * 'dssNielsenOCROptOut'
+directorySiteSettings
+    :: DirectorySiteSettings
+directorySiteSettings =
+    DirectorySiteSettings'
+    { _dssInterstitialPlacementAccepted = Nothing
+    , _dssDfpSettings = Nothing
+    , _dssVerificationTagOptOut = Nothing
+    , _dssActiveViewOptOut = Nothing
+    , _dssVideoActiveViewOptOut = Nothing
+    , _dssInstreamVideoPlacementAccepted = Nothing
+    , _dssNielsenOCROptOut = Nothing
+    }
+
+-- | Whether this site accepts interstitial ads.
+dssInterstitialPlacementAccepted :: Lens' DirectorySiteSettings (Maybe Bool)
+dssInterstitialPlacementAccepted
+  = lens _dssInterstitialPlacementAccepted
+      (\ s a -> s{_dssInterstitialPlacementAccepted = a})
+
+-- | Directory site DFP settings.
+dssDfpSettings :: Lens' DirectorySiteSettings (Maybe DfpSettings)
+dssDfpSettings
+  = lens _dssDfpSettings
+      (\ s a -> s{_dssDfpSettings = a})
+
+-- | Whether this directory site has disabled generation of Verification ins
+-- tags.
+dssVerificationTagOptOut :: Lens' DirectorySiteSettings (Maybe Bool)
+dssVerificationTagOptOut
+  = lens _dssVerificationTagOptOut
+      (\ s a -> s{_dssVerificationTagOptOut = a})
+
+-- | Whether this directory site has disabled active view creatives.
+dssActiveViewOptOut :: Lens' DirectorySiteSettings (Maybe Bool)
+dssActiveViewOptOut
+  = lens _dssActiveViewOptOut
+      (\ s a -> s{_dssActiveViewOptOut = a})
+
+-- | Whether this directory site has disabled active view for in-stream video
+-- creatives.
+dssVideoActiveViewOptOut :: Lens' DirectorySiteSettings (Maybe Bool)
+dssVideoActiveViewOptOut
+  = lens _dssVideoActiveViewOptOut
+      (\ s a -> s{_dssVideoActiveViewOptOut = a})
+
+-- | Whether this site accepts in-stream video ads.
+dssInstreamVideoPlacementAccepted :: Lens' DirectorySiteSettings (Maybe Bool)
+dssInstreamVideoPlacementAccepted
+  = lens _dssInstreamVideoPlacementAccepted
+      (\ s a -> s{_dssInstreamVideoPlacementAccepted = a})
+
+-- | Whether this directory site has disabled Nielsen OCR reach ratings.
+dssNielsenOCROptOut :: Lens' DirectorySiteSettings (Maybe Bool)
+dssNielsenOCROptOut
+  = lens _dssNielsenOCROptOut
+      (\ s a -> s{_dssNielsenOCROptOut = a})
+
+instance FromJSON DirectorySiteSettings where
+        parseJSON
+          = withObject "DirectorySiteSettings"
+              (\ o ->
+                 DirectorySiteSettings' <$>
+                   (o .:? "interstitialPlacementAccepted") <*>
+                     (o .:? "dfp_settings")
+                     <*> (o .:? "verificationTagOptOut")
+                     <*> (o .:? "activeViewOptOut")
+                     <*> (o .:? "videoActiveViewOptOut")
+                     <*> (o .:? "instream_video_placement_accepted")
+                     <*> (o .:? "nielsenOcrOptOut"))
+
+instance ToJSON DirectorySiteSettings where
+        toJSON DirectorySiteSettings'{..}
+          = object
+              (catMaybes
+                 [("interstitialPlacementAccepted" .=) <$>
+                    _dssInterstitialPlacementAccepted,
+                  ("dfp_settings" .=) <$> _dssDfpSettings,
+                  ("verificationTagOptOut" .=) <$>
+                    _dssVerificationTagOptOut,
+                  ("activeViewOptOut" .=) <$> _dssActiveViewOptOut,
+                  ("videoActiveViewOptOut" .=) <$>
+                    _dssVideoActiveViewOptOut,
+                  ("instream_video_placement_accepted" .=) <$>
+                    _dssInstreamVideoPlacementAccepted,
+                  ("nielsenOcrOptOut" .=) <$> _dssNielsenOCROptOut])
+
+-- | Remarketing List Population Rule.
+--
+-- /See:/ 'listPopulationRule' smart constructor.
+data ListPopulationRule = ListPopulationRule'
+    { _lprFloodlightActivityName :: !(Maybe Text)
+    , _lprFloodlightActivityId   :: !(Maybe (Textual Int64))
+    , _lprListPopulationClauses  :: !(Maybe [ListPopulationClause])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListPopulationRule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lprFloodlightActivityName'
+--
+-- * 'lprFloodlightActivityId'
+--
+-- * 'lprListPopulationClauses'
+listPopulationRule
+    :: ListPopulationRule
+listPopulationRule =
+    ListPopulationRule'
+    { _lprFloodlightActivityName = Nothing
+    , _lprFloodlightActivityId = Nothing
+    , _lprListPopulationClauses = Nothing
+    }
+
+-- | Name of floodlight activity associated with this rule. This is a
+-- read-only, auto-generated field.
+lprFloodlightActivityName :: Lens' ListPopulationRule (Maybe Text)
+lprFloodlightActivityName
+  = lens _lprFloodlightActivityName
+      (\ s a -> s{_lprFloodlightActivityName = a})
+
+-- | Floodlight activity ID associated with this rule. This field can be left
+-- blank.
+lprFloodlightActivityId :: Lens' ListPopulationRule (Maybe Int64)
+lprFloodlightActivityId
+  = lens _lprFloodlightActivityId
+      (\ s a -> s{_lprFloodlightActivityId = a})
+      . mapping _Coerce
+
+-- | Clauses that make up this list population rule. Clauses are joined by
+-- ANDs, and the clauses themselves are made up of list population terms
+-- which are joined by ORs.
+lprListPopulationClauses :: Lens' ListPopulationRule [ListPopulationClause]
+lprListPopulationClauses
+  = lens _lprListPopulationClauses
+      (\ s a -> s{_lprListPopulationClauses = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListPopulationRule where
+        parseJSON
+          = withObject "ListPopulationRule"
+              (\ o ->
+                 ListPopulationRule' <$>
+                   (o .:? "floodlightActivityName") <*>
+                     (o .:? "floodlightActivityId")
+                     <*> (o .:? "listPopulationClauses" .!= mempty))
+
+instance ToJSON ListPopulationRule where
+        toJSON ListPopulationRule'{..}
+          = object
+              (catMaybes
+                 [("floodlightActivityName" .=) <$>
+                    _lprFloodlightActivityName,
+                  ("floodlightActivityId" .=) <$>
+                    _lprFloodlightActivityId,
+                  ("listPopulationClauses" .=) <$>
+                    _lprListPopulationClauses])
+
+-- | Size List Response
+--
+-- /See:/ 'sizesListResponse' smart constructor.
+data SizesListResponse = SizesListResponse'
+    { _slrKind  :: !Text
+    , _slrSizes :: !(Maybe [Size])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SizesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'slrKind'
+--
+-- * 'slrSizes'
+sizesListResponse
+    :: SizesListResponse
+sizesListResponse =
+    SizesListResponse'
+    { _slrKind = "dfareporting#sizesListResponse"
+    , _slrSizes = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#sizesListResponse\".
+slrKind :: Lens' SizesListResponse Text
+slrKind = lens _slrKind (\ s a -> s{_slrKind = a})
+
+-- | Size collection.
+slrSizes :: Lens' SizesListResponse [Size]
+slrSizes
+  = lens _slrSizes (\ s a -> s{_slrSizes = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON SizesListResponse where
+        parseJSON
+          = withObject "SizesListResponse"
+              (\ o ->
+                 SizesListResponse' <$>
+                   (o .:? "kind" .!= "dfareporting#sizesListResponse")
+                     <*> (o .:? "sizes" .!= mempty))
+
+instance ToJSON SizesListResponse where
+        toJSON SizesListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _slrKind),
+                  ("sizes" .=) <$> _slrSizes])
+
+-- | Creative Rotation.
+--
+-- /See:/ 'creativeRotation' smart constructor.
+data CreativeRotation = CreativeRotation'
+    { _crWeightCalculationStrategy           :: !(Maybe CreativeRotationWeightCalculationStrategy)
+    , _crCreativeAssignments                 :: !(Maybe [CreativeAssignment])
+    , _crCreativeOptimizationConfigurationId :: !(Maybe (Textual Int64))
+    , _crType                                :: !(Maybe CreativeRotationType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeRotation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crWeightCalculationStrategy'
+--
+-- * 'crCreativeAssignments'
+--
+-- * 'crCreativeOptimizationConfigurationId'
+--
+-- * 'crType'
+creativeRotation
+    :: CreativeRotation
+creativeRotation =
+    CreativeRotation'
+    { _crWeightCalculationStrategy = Nothing
+    , _crCreativeAssignments = Nothing
+    , _crCreativeOptimizationConfigurationId = Nothing
+    , _crType = Nothing
+    }
+
+-- | Strategy for calculating weights. Used with
+-- CREATIVE_ROTATION_TYPE_RANDOM.
+crWeightCalculationStrategy :: Lens' CreativeRotation (Maybe CreativeRotationWeightCalculationStrategy)
+crWeightCalculationStrategy
+  = lens _crWeightCalculationStrategy
+      (\ s a -> s{_crWeightCalculationStrategy = a})
+
+-- | Creative assignments in this creative rotation.
+crCreativeAssignments :: Lens' CreativeRotation [CreativeAssignment]
+crCreativeAssignments
+  = lens _crCreativeAssignments
+      (\ s a -> s{_crCreativeAssignments = a})
+      . _Default
+      . _Coerce
+
+-- | Creative optimization configuration that is used by this ad. It should
+-- refer to one of the existing optimization configurations in the ad\'s
+-- campaign. If it is unset or set to 0, then the campaign\'s default
+-- optimization configuration will be used for this ad.
+crCreativeOptimizationConfigurationId :: Lens' CreativeRotation (Maybe Int64)
+crCreativeOptimizationConfigurationId
+  = lens _crCreativeOptimizationConfigurationId
+      (\ s a ->
+         s{_crCreativeOptimizationConfigurationId = a})
+      . mapping _Coerce
+
+-- | Type of creative rotation. Can be used to specify whether to use
+-- sequential or random rotation.
+crType :: Lens' CreativeRotation (Maybe CreativeRotationType)
+crType = lens _crType (\ s a -> s{_crType = a})
+
+instance FromJSON CreativeRotation where
+        parseJSON
+          = withObject "CreativeRotation"
+              (\ o ->
+                 CreativeRotation' <$>
+                   (o .:? "weightCalculationStrategy") <*>
+                     (o .:? "creativeAssignments" .!= mempty)
+                     <*> (o .:? "creativeOptimizationConfigurationId")
+                     <*> (o .:? "type"))
+
+instance ToJSON CreativeRotation where
+        toJSON CreativeRotation'{..}
+          = object
+              (catMaybes
+                 [("weightCalculationStrategy" .=) <$>
+                    _crWeightCalculationStrategy,
+                  ("creativeAssignments" .=) <$>
+                    _crCreativeAssignments,
+                  ("creativeOptimizationConfigurationId" .=) <$>
+                    _crCreativeOptimizationConfigurationId,
+                  ("type" .=) <$> _crType])
+
+-- | Technology Targeting.
+--
+-- /See:/ 'technologyTargeting' smart constructor.
+data TechnologyTargeting = TechnologyTargeting'
+    { _ttMobileCarriers          :: !(Maybe [MobileCarrier])
+    , _ttOperatingSystemVersions :: !(Maybe [OperatingSystemVersion])
+    , _ttPlatformTypes           :: !(Maybe [PlatformType])
+    , _ttBrowsers                :: !(Maybe [Browser])
+    , _ttConnectionTypes         :: !(Maybe [ConnectionType])
+    , _ttOperatingSystems        :: !(Maybe [OperatingSystem])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TechnologyTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ttMobileCarriers'
+--
+-- * 'ttOperatingSystemVersions'
+--
+-- * 'ttPlatformTypes'
+--
+-- * 'ttBrowsers'
+--
+-- * 'ttConnectionTypes'
+--
+-- * 'ttOperatingSystems'
+technologyTargeting
+    :: TechnologyTargeting
+technologyTargeting =
+    TechnologyTargeting'
+    { _ttMobileCarriers = Nothing
+    , _ttOperatingSystemVersions = Nothing
+    , _ttPlatformTypes = Nothing
+    , _ttBrowsers = Nothing
+    , _ttConnectionTypes = Nothing
+    , _ttOperatingSystems = Nothing
+    }
+
+-- | Mobile carriers that this ad targets. For each mobile carrier only id is
+-- required, and the other fields are populated automatically when the ad
+-- is inserted or updated. If targeting a mobile carrier, do not set
+-- targeting for any zip codes.
+ttMobileCarriers :: Lens' TechnologyTargeting [MobileCarrier]
+ttMobileCarriers
+  = lens _ttMobileCarriers
+      (\ s a -> s{_ttMobileCarriers = a})
+      . _Default
+      . _Coerce
+
+-- | Operating system versions that this ad targets. To target all versions,
+-- use operatingSystems. For each operating system version, only id is
+-- required. The other fields are populated automatically when the ad is
+-- inserted or updated. If targeting an operating system version, do not
+-- set targeting for the corresponding operating system in
+-- operatingSystems.
+ttOperatingSystemVersions :: Lens' TechnologyTargeting [OperatingSystemVersion]
+ttOperatingSystemVersions
+  = lens _ttOperatingSystemVersions
+      (\ s a -> s{_ttOperatingSystemVersions = a})
+      . _Default
+      . _Coerce
+
+-- | Platform types that this ad targets. For example, desktop, mobile, or
+-- tablet. For each platform type, only id is required, and the other
+-- fields are populated automatically when the ad is inserted or updated.
+ttPlatformTypes :: Lens' TechnologyTargeting [PlatformType]
+ttPlatformTypes
+  = lens _ttPlatformTypes
+      (\ s a -> s{_ttPlatformTypes = a})
+      . _Default
+      . _Coerce
+
+-- | Browsers that this ad targets. For each browser either set
+-- browserVersionId or dartId along with the version numbers. If both are
+-- specified, only browserVersionId will be used.The other fields are
+-- populated automatically when the ad is inserted or updated.
+ttBrowsers :: Lens' TechnologyTargeting [Browser]
+ttBrowsers
+  = lens _ttBrowsers (\ s a -> s{_ttBrowsers = a}) .
+      _Default
+      . _Coerce
+
+-- | Connection types that this ad targets. For each connection type only id
+-- is required.The other fields are populated automatically when the ad is
+-- inserted or updated.
+ttConnectionTypes :: Lens' TechnologyTargeting [ConnectionType]
+ttConnectionTypes
+  = lens _ttConnectionTypes
+      (\ s a -> s{_ttConnectionTypes = a})
+      . _Default
+      . _Coerce
+
+-- | Operating systems that this ad targets. To target specific versions, use
+-- operatingSystemVersions. For each operating system only dartId is
+-- required. The other fields are populated automatically when the ad is
+-- inserted or updated. If targeting an operating system, do not set
+-- targeting for operating system versions for the same operating system.
+ttOperatingSystems :: Lens' TechnologyTargeting [OperatingSystem]
+ttOperatingSystems
+  = lens _ttOperatingSystems
+      (\ s a -> s{_ttOperatingSystems = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON TechnologyTargeting where
+        parseJSON
+          = withObject "TechnologyTargeting"
+              (\ o ->
+                 TechnologyTargeting' <$>
+                   (o .:? "mobileCarriers" .!= mempty) <*>
+                     (o .:? "operatingSystemVersions" .!= mempty)
+                     <*> (o .:? "platformTypes" .!= mempty)
+                     <*> (o .:? "browsers" .!= mempty)
+                     <*> (o .:? "connectionTypes" .!= mempty)
+                     <*> (o .:? "operatingSystems" .!= mempty))
+
+instance ToJSON TechnologyTargeting where
+        toJSON TechnologyTargeting'{..}
+          = object
+              (catMaybes
+                 [("mobileCarriers" .=) <$> _ttMobileCarriers,
+                  ("operatingSystemVersions" .=) <$>
+                    _ttOperatingSystemVersions,
+                  ("platformTypes" .=) <$> _ttPlatformTypes,
+                  ("browsers" .=) <$> _ttBrowsers,
+                  ("connectionTypes" .=) <$> _ttConnectionTypes,
+                  ("operatingSystems" .=) <$> _ttOperatingSystems])
+
+-- | Represents a buy from the DoubleClick Planning inventory store.
+--
+-- /See:/ 'inventoryItem' smart constructor.
+data InventoryItem = InventoryItem'
+    { _iiPlacementStrategyId       :: !(Maybe (Textual Int64))
+    , _iiEstimatedClickThroughRate :: !(Maybe (Textual Int64))
+    , _iiPricing                   :: !(Maybe Pricing)
+    , _iiKind                      :: !Text
+    , _iiAdvertiserId              :: !(Maybe (Textual Int64))
+    , _iiRfpId                     :: !(Maybe (Textual Int64))
+    , _iiContentCategoryId         :: !(Maybe (Textual Int64))
+    , _iiInPlan                    :: !(Maybe Bool)
+    , _iiAccountId                 :: !(Maybe (Textual Int64))
+    , _iiName                      :: !(Maybe Text)
+    , _iiAdSlots                   :: !(Maybe [AdSlot])
+    , _iiNegotiationChannelId      :: !(Maybe (Textual Int64))
+    , _iiLastModifiedInfo          :: !(Maybe LastModifiedInfo)
+    , _iiId                        :: !(Maybe (Textual Int64))
+    , _iiEstimatedConversionRate   :: !(Maybe (Textual Int64))
+    , _iiProjectId                 :: !(Maybe (Textual Int64))
+    , _iiSubAccountId              :: !(Maybe (Textual Int64))
+    , _iiType                      :: !(Maybe InventoryItemType)
+    , _iiOrderId                   :: !(Maybe (Textual Int64))
+    , _iiSiteId                    :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InventoryItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iiPlacementStrategyId'
+--
+-- * 'iiEstimatedClickThroughRate'
+--
+-- * 'iiPricing'
+--
+-- * 'iiKind'
+--
+-- * 'iiAdvertiserId'
+--
+-- * 'iiRfpId'
+--
+-- * 'iiContentCategoryId'
+--
+-- * 'iiInPlan'
+--
+-- * 'iiAccountId'
+--
+-- * 'iiName'
+--
+-- * 'iiAdSlots'
+--
+-- * 'iiNegotiationChannelId'
+--
+-- * 'iiLastModifiedInfo'
+--
+-- * 'iiId'
+--
+-- * 'iiEstimatedConversionRate'
+--
+-- * 'iiProjectId'
+--
+-- * 'iiSubAccountId'
+--
+-- * 'iiType'
+--
+-- * 'iiOrderId'
+--
+-- * 'iiSiteId'
+inventoryItem
+    :: InventoryItem
+inventoryItem =
+    InventoryItem'
+    { _iiPlacementStrategyId = Nothing
+    , _iiEstimatedClickThroughRate = Nothing
+    , _iiPricing = Nothing
+    , _iiKind = "dfareporting#inventoryItem"
+    , _iiAdvertiserId = Nothing
+    , _iiRfpId = Nothing
+    , _iiContentCategoryId = Nothing
+    , _iiInPlan = Nothing
+    , _iiAccountId = Nothing
+    , _iiName = Nothing
+    , _iiAdSlots = Nothing
+    , _iiNegotiationChannelId = Nothing
+    , _iiLastModifiedInfo = Nothing
+    , _iiId = Nothing
+    , _iiEstimatedConversionRate = Nothing
+    , _iiProjectId = Nothing
+    , _iiSubAccountId = Nothing
+    , _iiType = Nothing
+    , _iiOrderId = Nothing
+    , _iiSiteId = Nothing
+    }
+
+-- | Placement strategy ID of this inventory item.
+iiPlacementStrategyId :: Lens' InventoryItem (Maybe Int64)
+iiPlacementStrategyId
+  = lens _iiPlacementStrategyId
+      (\ s a -> s{_iiPlacementStrategyId = a})
+      . mapping _Coerce
+
+-- | Estimated click-through rate of this inventory item.
+iiEstimatedClickThroughRate :: Lens' InventoryItem (Maybe Int64)
+iiEstimatedClickThroughRate
+  = lens _iiEstimatedClickThroughRate
+      (\ s a -> s{_iiEstimatedClickThroughRate = a})
+      . mapping _Coerce
+
+-- | Pricing of this inventory item.
+iiPricing :: Lens' InventoryItem (Maybe Pricing)
+iiPricing
+  = lens _iiPricing (\ s a -> s{_iiPricing = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#inventoryItem\".
+iiKind :: Lens' InventoryItem Text
+iiKind = lens _iiKind (\ s a -> s{_iiKind = a})
+
+-- | Advertiser ID of this inventory item.
+iiAdvertiserId :: Lens' InventoryItem (Maybe Int64)
+iiAdvertiserId
+  = lens _iiAdvertiserId
+      (\ s a -> s{_iiAdvertiserId = a})
+      . mapping _Coerce
+
+-- | RFP ID of this inventory item.
+iiRfpId :: Lens' InventoryItem (Maybe Int64)
+iiRfpId
+  = lens _iiRfpId (\ s a -> s{_iiRfpId = a}) .
+      mapping _Coerce
+
+-- | Content category ID of this inventory item.
+iiContentCategoryId :: Lens' InventoryItem (Maybe Int64)
+iiContentCategoryId
+  = lens _iiContentCategoryId
+      (\ s a -> s{_iiContentCategoryId = a})
+      . mapping _Coerce
+
+-- | Whether this inventory item is in plan.
+iiInPlan :: Lens' InventoryItem (Maybe Bool)
+iiInPlan = lens _iiInPlan (\ s a -> s{_iiInPlan = a})
+
+-- | Account ID of this inventory item.
+iiAccountId :: Lens' InventoryItem (Maybe Int64)
+iiAccountId
+  = lens _iiAccountId (\ s a -> s{_iiAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this inventory item. For standalone inventory items, this is the
+-- same name as that of its only ad slot. For group inventory items, this
+-- can differ from the name of any of its ad slots.
+iiName :: Lens' InventoryItem (Maybe Text)
+iiName = lens _iiName (\ s a -> s{_iiName = a})
+
+-- | Ad slots of this inventory item. If this inventory item represents a
+-- standalone placement, there will be exactly one ad slot. If this
+-- inventory item represents a placement group, there will be more than one
+-- ad slot, each representing one child placement in that placement group.
+iiAdSlots :: Lens' InventoryItem [AdSlot]
+iiAdSlots
+  = lens _iiAdSlots (\ s a -> s{_iiAdSlots = a}) .
+      _Default
+      . _Coerce
+
+-- | Negotiation channel ID of this inventory item.
+iiNegotiationChannelId :: Lens' InventoryItem (Maybe Int64)
+iiNegotiationChannelId
+  = lens _iiNegotiationChannelId
+      (\ s a -> s{_iiNegotiationChannelId = a})
+      . mapping _Coerce
+
+-- | Information about the most recent modification of this inventory item.
+iiLastModifiedInfo :: Lens' InventoryItem (Maybe LastModifiedInfo)
+iiLastModifiedInfo
+  = lens _iiLastModifiedInfo
+      (\ s a -> s{_iiLastModifiedInfo = a})
+
+-- | ID of this inventory item.
+iiId :: Lens' InventoryItem (Maybe Int64)
+iiId
+  = lens _iiId (\ s a -> s{_iiId = a}) .
+      mapping _Coerce
+
+-- | Estimated conversion rate of this inventory item.
+iiEstimatedConversionRate :: Lens' InventoryItem (Maybe Int64)
+iiEstimatedConversionRate
+  = lens _iiEstimatedConversionRate
+      (\ s a -> s{_iiEstimatedConversionRate = a})
+      . mapping _Coerce
+
+-- | Project ID of this inventory item.
+iiProjectId :: Lens' InventoryItem (Maybe Int64)
+iiProjectId
+  = lens _iiProjectId (\ s a -> s{_iiProjectId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this inventory item.
+iiSubAccountId :: Lens' InventoryItem (Maybe Int64)
+iiSubAccountId
+  = lens _iiSubAccountId
+      (\ s a -> s{_iiSubAccountId = a})
+      . mapping _Coerce
+
+-- | Type of inventory item.
+iiType :: Lens' InventoryItem (Maybe InventoryItemType)
+iiType = lens _iiType (\ s a -> s{_iiType = a})
+
+-- | Order ID of this inventory item.
+iiOrderId :: Lens' InventoryItem (Maybe Int64)
+iiOrderId
+  = lens _iiOrderId (\ s a -> s{_iiOrderId = a}) .
+      mapping _Coerce
+
+-- | ID of the site this inventory item is associated with.
+iiSiteId :: Lens' InventoryItem (Maybe Int64)
+iiSiteId
+  = lens _iiSiteId (\ s a -> s{_iiSiteId = a}) .
+      mapping _Coerce
+
+instance FromJSON InventoryItem where
+        parseJSON
+          = withObject "InventoryItem"
+              (\ o ->
+                 InventoryItem' <$>
+                   (o .:? "placementStrategyId") <*>
+                     (o .:? "estimatedClickThroughRate")
+                     <*> (o .:? "pricing")
+                     <*> (o .:? "kind" .!= "dfareporting#inventoryItem")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "rfpId")
+                     <*> (o .:? "contentCategoryId")
+                     <*> (o .:? "inPlan")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "adSlots" .!= mempty)
+                     <*> (o .:? "negotiationChannelId")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "estimatedConversionRate")
+                     <*> (o .:? "projectId")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "orderId")
+                     <*> (o .:? "siteId"))
+
+instance ToJSON InventoryItem where
+        toJSON InventoryItem'{..}
+          = object
+              (catMaybes
+                 [("placementStrategyId" .=) <$>
+                    _iiPlacementStrategyId,
+                  ("estimatedClickThroughRate" .=) <$>
+                    _iiEstimatedClickThroughRate,
+                  ("pricing" .=) <$> _iiPricing,
+                  Just ("kind" .= _iiKind),
+                  ("advertiserId" .=) <$> _iiAdvertiserId,
+                  ("rfpId" .=) <$> _iiRfpId,
+                  ("contentCategoryId" .=) <$> _iiContentCategoryId,
+                  ("inPlan" .=) <$> _iiInPlan,
+                  ("accountId" .=) <$> _iiAccountId,
+                  ("name" .=) <$> _iiName,
+                  ("adSlots" .=) <$> _iiAdSlots,
+                  ("negotiationChannelId" .=) <$>
+                    _iiNegotiationChannelId,
+                  ("lastModifiedInfo" .=) <$> _iiLastModifiedInfo,
+                  ("id" .=) <$> _iiId,
+                  ("estimatedConversionRate" .=) <$>
+                    _iiEstimatedConversionRate,
+                  ("projectId" .=) <$> _iiProjectId,
+                  ("subaccountId" .=) <$> _iiSubAccountId,
+                  ("type" .=) <$> _iiType,
+                  ("orderId" .=) <$> _iiOrderId,
+                  ("siteId" .=) <$> _iiSiteId])
+
+-- | Project List Response
+--
+-- /See:/ 'projectsListResponse' smart constructor.
+data ProjectsListResponse = ProjectsListResponse'
+    { _plrNextPageToken :: !(Maybe Text)
+    , _plrKind          :: !Text
+    , _plrProjects      :: !(Maybe [Project])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plrNextPageToken'
+--
+-- * 'plrKind'
+--
+-- * 'plrProjects'
+projectsListResponse
+    :: ProjectsListResponse
+projectsListResponse =
+    ProjectsListResponse'
+    { _plrNextPageToken = Nothing
+    , _plrKind = "dfareporting#projectsListResponse"
+    , _plrProjects = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+plrNextPageToken :: Lens' ProjectsListResponse (Maybe Text)
+plrNextPageToken
+  = lens _plrNextPageToken
+      (\ s a -> s{_plrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#projectsListResponse\".
+plrKind :: Lens' ProjectsListResponse Text
+plrKind = lens _plrKind (\ s a -> s{_plrKind = a})
+
+-- | Project collection.
+plrProjects :: Lens' ProjectsListResponse [Project]
+plrProjects
+  = lens _plrProjects (\ s a -> s{_plrProjects = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ProjectsListResponse where
+        parseJSON
+          = withObject "ProjectsListResponse"
+              (\ o ->
+                 ProjectsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#projectsListResponse")
+                     <*> (o .:? "projects" .!= mempty))
+
+instance ToJSON ProjectsListResponse where
+        toJSON ProjectsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _plrNextPageToken,
+                  Just ("kind" .= _plrKind),
+                  ("projects" .=) <$> _plrProjects])
+
+-- | Ad List Response
+--
+-- /See:/ 'adsListResponse' smart constructor.
+data AdsListResponse = AdsListResponse'
+    { _alrNextPageToken :: !(Maybe Text)
+    , _alrKind          :: !Text
+    , _alrAds           :: !(Maybe [Ad])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'alrNextPageToken'
+--
+-- * 'alrKind'
+--
+-- * 'alrAds'
+adsListResponse
+    :: AdsListResponse
+adsListResponse =
+    AdsListResponse'
+    { _alrNextPageToken = Nothing
+    , _alrKind = "dfareporting#adsListResponse"
+    , _alrAds = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+alrNextPageToken :: Lens' AdsListResponse (Maybe Text)
+alrNextPageToken
+  = lens _alrNextPageToken
+      (\ s a -> s{_alrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#adsListResponse\".
+alrKind :: Lens' AdsListResponse Text
+alrKind = lens _alrKind (\ s a -> s{_alrKind = a})
+
+-- | Ad collection.
+alrAds :: Lens' AdsListResponse [Ad]
+alrAds
+  = lens _alrAds (\ s a -> s{_alrAds = a}) . _Default .
+      _Coerce
+
+instance FromJSON AdsListResponse where
+        parseJSON
+          = withObject "AdsListResponse"
+              (\ o ->
+                 AdsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#adsListResponse")
+                     <*> (o .:? "ads" .!= mempty))
+
+instance ToJSON AdsListResponse where
+        toJSON AdsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _alrNextPageToken,
+                  Just ("kind" .= _alrKind), ("ads" .=) <$> _alrAds])
+
+-- | Remarketing List Population Rule Term.
+--
+-- /See:/ 'listPopulationTerm' smart constructor.
+data ListPopulationTerm = ListPopulationTerm'
+    { _lptOperator             :: !(Maybe ListPopulationTermOperator)
+    , _lptValue                :: !(Maybe Text)
+    , _lptVariableFriendlyName :: !(Maybe Text)
+    , _lptNegation             :: !(Maybe Bool)
+    , _lptVariableName         :: !(Maybe Text)
+    , _lptRemarketingListId    :: !(Maybe (Textual Int64))
+    , _lptType                 :: !(Maybe ListPopulationTermType)
+    , _lptContains             :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListPopulationTerm' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lptOperator'
+--
+-- * 'lptValue'
+--
+-- * 'lptVariableFriendlyName'
+--
+-- * 'lptNegation'
+--
+-- * 'lptVariableName'
+--
+-- * 'lptRemarketingListId'
+--
+-- * 'lptType'
+--
+-- * 'lptContains'
+listPopulationTerm
+    :: ListPopulationTerm
+listPopulationTerm =
+    ListPopulationTerm'
+    { _lptOperator = Nothing
+    , _lptValue = Nothing
+    , _lptVariableFriendlyName = Nothing
+    , _lptNegation = Nothing
+    , _lptVariableName = Nothing
+    , _lptRemarketingListId = Nothing
+    , _lptType = Nothing
+    , _lptContains = Nothing
+    }
+
+-- | Comparison operator of this term. This field is only relevant when type
+-- is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
+lptOperator :: Lens' ListPopulationTerm (Maybe ListPopulationTermOperator)
+lptOperator
+  = lens _lptOperator (\ s a -> s{_lptOperator = a})
+
+-- | Literal to compare the variable to. This field is only relevant when
+-- type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
+lptValue :: Lens' ListPopulationTerm (Maybe Text)
+lptValue = lens _lptValue (\ s a -> s{_lptValue = a})
+
+-- | Friendly name of this term\'s variable. This is a read-only,
+-- auto-generated field. This field is only relevant when type is left
+-- unset or set to CUSTOM_VARIABLE_TERM.
+lptVariableFriendlyName :: Lens' ListPopulationTerm (Maybe Text)
+lptVariableFriendlyName
+  = lens _lptVariableFriendlyName
+      (\ s a -> s{_lptVariableFriendlyName = a})
+
+-- | Whether to negate the comparison result of this term during rule
+-- evaluation. This field is only relevant when type is left unset or set
+-- to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
+lptNegation :: Lens' ListPopulationTerm (Maybe Bool)
+lptNegation
+  = lens _lptNegation (\ s a -> s{_lptNegation = a})
+
+-- | Name of the variable (U1, U2, etc.) being compared in this term. This
+-- field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or
+-- REFERRER_TERM.
+lptVariableName :: Lens' ListPopulationTerm (Maybe Text)
+lptVariableName
+  = lens _lptVariableName
+      (\ s a -> s{_lptVariableName = a})
+
+-- | ID of the list in question. This field is only relevant when type is set
+-- to LIST_MEMBERSHIP_TERM.
+lptRemarketingListId :: Lens' ListPopulationTerm (Maybe Int64)
+lptRemarketingListId
+  = lens _lptRemarketingListId
+      (\ s a -> s{_lptRemarketingListId = a})
+      . mapping _Coerce
+
+-- | List population term type determines the applicable fields in this
+-- object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName,
+-- variableFriendlyName, operator, value, and negation are applicable. If
+-- set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are
+-- applicable. If set to REFERRER_TERM then operator, value, and negation
+-- are applicable.
+lptType :: Lens' ListPopulationTerm (Maybe ListPopulationTermType)
+lptType = lens _lptType (\ s a -> s{_lptType = a})
+
+-- | Will be true if the term should check if the user is in the list and
+-- false if the term should check if the user is not in the list. This
+-- field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False
+-- by default.
+lptContains :: Lens' ListPopulationTerm (Maybe Bool)
+lptContains
+  = lens _lptContains (\ s a -> s{_lptContains = a})
+
+instance FromJSON ListPopulationTerm where
+        parseJSON
+          = withObject "ListPopulationTerm"
+              (\ o ->
+                 ListPopulationTerm' <$>
+                   (o .:? "operator") <*> (o .:? "value") <*>
+                     (o .:? "variableFriendlyName")
+                     <*> (o .:? "negation")
+                     <*> (o .:? "variableName")
+                     <*> (o .:? "remarketingListId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "contains"))
+
+instance ToJSON ListPopulationTerm where
+        toJSON ListPopulationTerm'{..}
+          = object
+              (catMaybes
+                 [("operator" .=) <$> _lptOperator,
+                  ("value" .=) <$> _lptValue,
+                  ("variableFriendlyName" .=) <$>
+                    _lptVariableFriendlyName,
+                  ("negation" .=) <$> _lptNegation,
+                  ("variableName" .=) <$> _lptVariableName,
+                  ("remarketingListId" .=) <$> _lptRemarketingListId,
+                  ("type" .=) <$> _lptType,
+                  ("contains" .=) <$> _lptContains])
+
+-- | Dynamic and Image Tag Settings.
+--
+-- /See:/ 'tagSettings' smart constructor.
+data TagSettings = TagSettings'
+    { _tsDynamicTagEnabled :: !(Maybe Bool)
+    , _tsImageTagEnabled   :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TagSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tsDynamicTagEnabled'
+--
+-- * 'tsImageTagEnabled'
+tagSettings
+    :: TagSettings
+tagSettings =
+    TagSettings'
+    { _tsDynamicTagEnabled = Nothing
+    , _tsImageTagEnabled = Nothing
+    }
+
+-- | Whether dynamic floodlight tags are enabled.
+tsDynamicTagEnabled :: Lens' TagSettings (Maybe Bool)
+tsDynamicTagEnabled
+  = lens _tsDynamicTagEnabled
+      (\ s a -> s{_tsDynamicTagEnabled = a})
+
+-- | Whether image tags are enabled.
+tsImageTagEnabled :: Lens' TagSettings (Maybe Bool)
+tsImageTagEnabled
+  = lens _tsImageTagEnabled
+      (\ s a -> s{_tsImageTagEnabled = a})
+
+instance FromJSON TagSettings where
+        parseJSON
+          = withObject "TagSettings"
+              (\ o ->
+                 TagSettings' <$>
+                   (o .:? "dynamicTagEnabled") <*>
+                     (o .:? "imageTagEnabled"))
+
+instance ToJSON TagSettings where
+        toJSON TagSettings'{..}
+          = object
+              (catMaybes
+                 [("dynamicTagEnabled" .=) <$> _tsDynamicTagEnabled,
+                  ("imageTagEnabled" .=) <$> _tsImageTagEnabled])
+
+-- | Subaccount List Response
+--
+-- /See:/ 'subAccountsListResponse' smart constructor.
+data SubAccountsListResponse = SubAccountsListResponse'
+    { _salrNextPageToken :: !(Maybe Text)
+    , _salrKind          :: !Text
+    , _salrSubAccounts   :: !(Maybe [SubAccount])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubAccountsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'salrNextPageToken'
+--
+-- * 'salrKind'
+--
+-- * 'salrSubAccounts'
+subAccountsListResponse
+    :: SubAccountsListResponse
+subAccountsListResponse =
+    SubAccountsListResponse'
+    { _salrNextPageToken = Nothing
+    , _salrKind = "dfareporting#subaccountsListResponse"
+    , _salrSubAccounts = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+salrNextPageToken :: Lens' SubAccountsListResponse (Maybe Text)
+salrNextPageToken
+  = lens _salrNextPageToken
+      (\ s a -> s{_salrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#subaccountsListResponse\".
+salrKind :: Lens' SubAccountsListResponse Text
+salrKind = lens _salrKind (\ s a -> s{_salrKind = a})
+
+-- | Subaccount collection.
+salrSubAccounts :: Lens' SubAccountsListResponse [SubAccount]
+salrSubAccounts
+  = lens _salrSubAccounts
+      (\ s a -> s{_salrSubAccounts = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON SubAccountsListResponse where
+        parseJSON
+          = withObject "SubAccountsListResponse"
+              (\ o ->
+                 SubAccountsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#subaccountsListResponse")
+                     <*> (o .:? "subaccounts" .!= mempty))
+
+instance ToJSON SubAccountsListResponse where
+        toJSON SubAccountsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _salrNextPageToken,
+                  Just ("kind" .= _salrKind),
+                  ("subaccounts" .=) <$> _salrSubAccounts])
+
+-- | Contains properties of a Site Directory contact.
+--
+-- /See:/ 'directorySiteContact' smart constructor.
+data DirectorySiteContact = DirectorySiteContact'
+    { _dscEmail     :: !(Maybe Text)
+    , _dscPhone     :: !(Maybe Text)
+    , _dscLastName  :: !(Maybe Text)
+    , _dscKind      :: !Text
+    , _dscAddress   :: !(Maybe Text)
+    , _dscRole      :: !(Maybe DirectorySiteContactRole)
+    , _dscFirstName :: !(Maybe Text)
+    , _dscId        :: !(Maybe (Textual Int64))
+    , _dscTitle     :: !(Maybe Text)
+    , _dscType      :: !(Maybe DirectorySiteContactType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySiteContact' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dscEmail'
+--
+-- * 'dscPhone'
+--
+-- * 'dscLastName'
+--
+-- * 'dscKind'
+--
+-- * 'dscAddress'
+--
+-- * 'dscRole'
+--
+-- * 'dscFirstName'
+--
+-- * 'dscId'
+--
+-- * 'dscTitle'
+--
+-- * 'dscType'
+directorySiteContact
+    :: DirectorySiteContact
+directorySiteContact =
+    DirectorySiteContact'
+    { _dscEmail = Nothing
+    , _dscPhone = Nothing
+    , _dscLastName = Nothing
+    , _dscKind = "dfareporting#directorySiteContact"
+    , _dscAddress = Nothing
+    , _dscRole = Nothing
+    , _dscFirstName = Nothing
+    , _dscId = Nothing
+    , _dscTitle = Nothing
+    , _dscType = Nothing
+    }
+
+-- | Email address of this directory site contact.
+dscEmail :: Lens' DirectorySiteContact (Maybe Text)
+dscEmail = lens _dscEmail (\ s a -> s{_dscEmail = a})
+
+-- | Phone number of this directory site contact.
+dscPhone :: Lens' DirectorySiteContact (Maybe Text)
+dscPhone = lens _dscPhone (\ s a -> s{_dscPhone = a})
+
+-- | Last name of this directory site contact.
+dscLastName :: Lens' DirectorySiteContact (Maybe Text)
+dscLastName
+  = lens _dscLastName (\ s a -> s{_dscLastName = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#directorySiteContact\".
+dscKind :: Lens' DirectorySiteContact Text
+dscKind = lens _dscKind (\ s a -> s{_dscKind = a})
+
+-- | Address of this directory site contact.
+dscAddress :: Lens' DirectorySiteContact (Maybe Text)
+dscAddress
+  = lens _dscAddress (\ s a -> s{_dscAddress = a})
+
+-- | Directory site contact role.
+dscRole :: Lens' DirectorySiteContact (Maybe DirectorySiteContactRole)
+dscRole = lens _dscRole (\ s a -> s{_dscRole = a})
+
+-- | First name of this directory site contact.
+dscFirstName :: Lens' DirectorySiteContact (Maybe Text)
+dscFirstName
+  = lens _dscFirstName (\ s a -> s{_dscFirstName = a})
+
+-- | ID of this directory site contact. This is a read-only, auto-generated
+-- field.
+dscId :: Lens' DirectorySiteContact (Maybe Int64)
+dscId
+  = lens _dscId (\ s a -> s{_dscId = a}) .
+      mapping _Coerce
+
+-- | Title or designation of this directory site contact.
+dscTitle :: Lens' DirectorySiteContact (Maybe Text)
+dscTitle = lens _dscTitle (\ s a -> s{_dscTitle = a})
+
+-- | Directory site contact type.
+dscType :: Lens' DirectorySiteContact (Maybe DirectorySiteContactType)
+dscType = lens _dscType (\ s a -> s{_dscType = a})
+
+instance FromJSON DirectorySiteContact where
+        parseJSON
+          = withObject "DirectorySiteContact"
+              (\ o ->
+                 DirectorySiteContact' <$>
+                   (o .:? "email") <*> (o .:? "phone") <*>
+                     (o .:? "lastName")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#directorySiteContact")
+                     <*> (o .:? "address")
+                     <*> (o .:? "role")
+                     <*> (o .:? "firstName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "title")
+                     <*> (o .:? "type"))
+
+instance ToJSON DirectorySiteContact where
+        toJSON DirectorySiteContact'{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _dscEmail,
+                  ("phone" .=) <$> _dscPhone,
+                  ("lastName" .=) <$> _dscLastName,
+                  Just ("kind" .= _dscKind),
+                  ("address" .=) <$> _dscAddress,
+                  ("role" .=) <$> _dscRole,
+                  ("firstName" .=) <$> _dscFirstName,
+                  ("id" .=) <$> _dscId, ("title" .=) <$> _dscTitle,
+                  ("type" .=) <$> _dscType])
+
+-- | Region List Response
+--
+-- /See:/ 'regionsListResponse' smart constructor.
+data RegionsListResponse = RegionsListResponse'
+    { _rlrKind    :: !Text
+    , _rlrRegions :: !(Maybe [Region])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RegionsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlrKind'
+--
+-- * 'rlrRegions'
+regionsListResponse
+    :: RegionsListResponse
+regionsListResponse =
+    RegionsListResponse'
+    { _rlrKind = "dfareporting#regionsListResponse"
+    , _rlrRegions = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#regionsListResponse\".
+rlrKind :: Lens' RegionsListResponse Text
+rlrKind = lens _rlrKind (\ s a -> s{_rlrKind = a})
+
+-- | Region collection.
+rlrRegions :: Lens' RegionsListResponse [Region]
+rlrRegions
+  = lens _rlrRegions (\ s a -> s{_rlrRegions = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON RegionsListResponse where
+        parseJSON
+          = withObject "RegionsListResponse"
+              (\ o ->
+                 RegionsListResponse' <$>
+                   (o .:? "kind" .!= "dfareporting#regionsListResponse")
+                     <*> (o .:? "regions" .!= mempty))
+
+instance ToJSON RegionsListResponse where
+        toJSON RegionsListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _rlrKind),
+                  ("regions" .=) <$> _rlrRegions])
+
+-- | Dynamic Tag
+--
+-- /See:/ 'floodlightActivityDynamicTag' smart constructor.
+data FloodlightActivityDynamicTag = FloodlightActivityDynamicTag'
+    { _fadtTag  :: !(Maybe Text)
+    , _fadtName :: !(Maybe Text)
+    , _fadtId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityDynamicTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fadtTag'
+--
+-- * 'fadtName'
+--
+-- * 'fadtId'
+floodlightActivityDynamicTag
+    :: FloodlightActivityDynamicTag
+floodlightActivityDynamicTag =
+    FloodlightActivityDynamicTag'
+    { _fadtTag = Nothing
+    , _fadtName = Nothing
+    , _fadtId = Nothing
+    }
+
+-- | Tag code.
+fadtTag :: Lens' FloodlightActivityDynamicTag (Maybe Text)
+fadtTag = lens _fadtTag (\ s a -> s{_fadtTag = a})
+
+-- | Name of this tag.
+fadtName :: Lens' FloodlightActivityDynamicTag (Maybe Text)
+fadtName = lens _fadtName (\ s a -> s{_fadtName = a})
+
+-- | ID of this dynamic tag. This is a read-only, auto-generated field.
+fadtId :: Lens' FloodlightActivityDynamicTag (Maybe Int64)
+fadtId
+  = lens _fadtId (\ s a -> s{_fadtId = a}) .
+      mapping _Coerce
+
+instance FromJSON FloodlightActivityDynamicTag where
+        parseJSON
+          = withObject "FloodlightActivityDynamicTag"
+              (\ o ->
+                 FloodlightActivityDynamicTag' <$>
+                   (o .:? "tag") <*> (o .:? "name") <*> (o .:? "id"))
+
+instance ToJSON FloodlightActivityDynamicTag where
+        toJSON FloodlightActivityDynamicTag'{..}
+          = object
+              (catMaybes
+                 [("tag" .=) <$> _fadtTag, ("name" .=) <$> _fadtName,
+                  ("id" .=) <$> _fadtId])
+
+-- | DirectorySites contains properties of a website from the Site Directory.
+-- Sites need to be added to an account via the Sites resource before they
+-- can be assigned to a placement.
+--
+-- /See:/ 'directorySite' smart constructor.
+data DirectorySite = DirectorySite'
+    { _dsCurrencyId             :: !(Maybe (Textual Int64))
+    , _dsSettings               :: !(Maybe DirectorySiteSettings)
+    , _dsInterstitialTagFormats :: !(Maybe [DirectorySiteInterstitialTagFormatsItem])
+    , _dsKind                   :: !Text
+    , _dsURL                    :: !(Maybe Text)
+    , _dsIdDimensionValue       :: !(Maybe DimensionValue)
+    , _dsInpageTagFormats       :: !(Maybe [DirectorySiteInpageTagFormatsItem])
+    , _dsActive                 :: !(Maybe Bool)
+    , _dsName                   :: !(Maybe Text)
+    , _dsId                     :: !(Maybe (Textual Int64))
+    , _dsCountryId              :: !(Maybe (Textual Int64))
+    , _dsContactAssignments     :: !(Maybe [DirectorySiteContactAssignment])
+    , _dsDescription            :: !(Maybe Text)
+    , _dsParentId               :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySite' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsCurrencyId'
+--
+-- * 'dsSettings'
+--
+-- * 'dsInterstitialTagFormats'
+--
+-- * 'dsKind'
+--
+-- * 'dsURL'
+--
+-- * 'dsIdDimensionValue'
+--
+-- * 'dsInpageTagFormats'
+--
+-- * 'dsActive'
+--
+-- * 'dsName'
+--
+-- * 'dsId'
+--
+-- * 'dsCountryId'
+--
+-- * 'dsContactAssignments'
+--
+-- * 'dsDescription'
+--
+-- * 'dsParentId'
+directorySite
+    :: DirectorySite
+directorySite =
+    DirectorySite'
+    { _dsCurrencyId = Nothing
+    , _dsSettings = Nothing
+    , _dsInterstitialTagFormats = Nothing
+    , _dsKind = "dfareporting#directorySite"
+    , _dsURL = Nothing
+    , _dsIdDimensionValue = Nothing
+    , _dsInpageTagFormats = Nothing
+    , _dsActive = Nothing
+    , _dsName = Nothing
+    , _dsId = Nothing
+    , _dsCountryId = Nothing
+    , _dsContactAssignments = Nothing
+    , _dsDescription = Nothing
+    , _dsParentId = Nothing
+    }
+
+-- | Currency ID of this directory site. Possible values are: - \"1\" for USD
+-- - \"2\" for GBP - \"3\" for ESP - \"4\" for SEK - \"5\" for CAD - \"6\"
+-- for JPY - \"7\" for DEM - \"8\" for AUD - \"9\" for FRF - \"10\" for ITL
+-- - \"11\" for DKK - \"12\" for NOK - \"13\" for FIM - \"14\" for ZAR -
+-- \"15\" for IEP - \"16\" for NLG - \"17\" for EUR - \"18\" for KRW -
+-- \"19\" for TWD - \"20\" for SGD - \"21\" for CNY - \"22\" for HKD -
+-- \"23\" for NZD - \"24\" for MYR - \"25\" for BRL - \"26\" for PTE -
+-- \"27\" for MXP - \"28\" for CLP - \"29\" for TRY - \"30\" for ARS -
+-- \"31\" for PEN - \"32\" for ILS - \"33\" for CHF - \"34\" for VEF -
+-- \"35\" for COP - \"36\" for GTQ - \"37\" for PLN - \"39\" for INR -
+-- \"40\" for THB - \"41\" for IDR - \"42\" for CZK - \"43\" for RON -
+-- \"44\" for HUF - \"45\" for RUB - \"46\" for AED - \"47\" for BGN -
+-- \"48\" for HRK
+dsCurrencyId :: Lens' DirectorySite (Maybe Int64)
+dsCurrencyId
+  = lens _dsCurrencyId (\ s a -> s{_dsCurrencyId = a})
+      . mapping _Coerce
+
+-- | Directory site settings.
+dsSettings :: Lens' DirectorySite (Maybe DirectorySiteSettings)
+dsSettings
+  = lens _dsSettings (\ s a -> s{_dsSettings = a})
+
+-- | Tag types for interstitial placements. Acceptable values are: -
+-- \"IFRAME_JAVASCRIPT_INTERSTITIAL\" - \"INTERNAL_REDIRECT_INTERSTITIAL\"
+-- - \"JAVASCRIPT_INTERSTITIAL\"
+dsInterstitialTagFormats :: Lens' DirectorySite [DirectorySiteInterstitialTagFormatsItem]
+dsInterstitialTagFormats
+  = lens _dsInterstitialTagFormats
+      (\ s a -> s{_dsInterstitialTagFormats = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#directorySite\".
+dsKind :: Lens' DirectorySite Text
+dsKind = lens _dsKind (\ s a -> s{_dsKind = a})
+
+-- | URL of this directory site.
+dsURL :: Lens' DirectorySite (Maybe Text)
+dsURL = lens _dsURL (\ s a -> s{_dsURL = a})
+
+-- | Dimension value for the ID of this directory site. This is a read-only,
+-- auto-generated field.
+dsIdDimensionValue :: Lens' DirectorySite (Maybe DimensionValue)
+dsIdDimensionValue
+  = lens _dsIdDimensionValue
+      (\ s a -> s{_dsIdDimensionValue = a})
+
+-- | Tag types for regular placements. Acceptable values are: - \"STANDARD\"
+-- - \"IFRAME_JAVASCRIPT_INPAGE\" - \"INTERNAL_REDIRECT_INPAGE\" -
+-- \"JAVASCRIPT_INPAGE\"
+dsInpageTagFormats :: Lens' DirectorySite [DirectorySiteInpageTagFormatsItem]
+dsInpageTagFormats
+  = lens _dsInpageTagFormats
+      (\ s a -> s{_dsInpageTagFormats = a})
+      . _Default
+      . _Coerce
+
+-- | Whether this directory site is active.
+dsActive :: Lens' DirectorySite (Maybe Bool)
+dsActive = lens _dsActive (\ s a -> s{_dsActive = a})
+
+-- | Name of this directory site.
+dsName :: Lens' DirectorySite (Maybe Text)
+dsName = lens _dsName (\ s a -> s{_dsName = a})
+
+-- | ID of this directory site. This is a read-only, auto-generated field.
+dsId :: Lens' DirectorySite (Maybe Int64)
+dsId
+  = lens _dsId (\ s a -> s{_dsId = a}) .
+      mapping _Coerce
+
+-- | Country ID of this directory site.
+dsCountryId :: Lens' DirectorySite (Maybe Int64)
+dsCountryId
+  = lens _dsCountryId (\ s a -> s{_dsCountryId = a}) .
+      mapping _Coerce
+
+-- | Directory site contacts.
+dsContactAssignments :: Lens' DirectorySite [DirectorySiteContactAssignment]
+dsContactAssignments
+  = lens _dsContactAssignments
+      (\ s a -> s{_dsContactAssignments = a})
+      . _Default
+      . _Coerce
+
+-- | Description of this directory site.
+dsDescription :: Lens' DirectorySite (Maybe Text)
+dsDescription
+  = lens _dsDescription
+      (\ s a -> s{_dsDescription = a})
+
+-- | Parent directory site ID.
+dsParentId :: Lens' DirectorySite (Maybe Int64)
+dsParentId
+  = lens _dsParentId (\ s a -> s{_dsParentId = a}) .
+      mapping _Coerce
+
+instance FromJSON DirectorySite where
+        parseJSON
+          = withObject "DirectorySite"
+              (\ o ->
+                 DirectorySite' <$>
+                   (o .:? "currencyId") <*> (o .:? "settings") <*>
+                     (o .:? "interstitialTagFormats" .!= mempty)
+                     <*> (o .:? "kind" .!= "dfareporting#directorySite")
+                     <*> (o .:? "url")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "inpageTagFormats" .!= mempty)
+                     <*> (o .:? "active")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "countryId")
+                     <*> (o .:? "contactAssignments" .!= mempty)
+                     <*> (o .:? "description")
+                     <*> (o .:? "parentId"))
+
+instance ToJSON DirectorySite where
+        toJSON DirectorySite'{..}
+          = object
+              (catMaybes
+                 [("currencyId" .=) <$> _dsCurrencyId,
+                  ("settings" .=) <$> _dsSettings,
+                  ("interstitialTagFormats" .=) <$>
+                    _dsInterstitialTagFormats,
+                  Just ("kind" .= _dsKind), ("url" .=) <$> _dsURL,
+                  ("idDimensionValue" .=) <$> _dsIdDimensionValue,
+                  ("inpageTagFormats" .=) <$> _dsInpageTagFormats,
+                  ("active" .=) <$> _dsActive, ("name" .=) <$> _dsName,
+                  ("id" .=) <$> _dsId,
+                  ("countryId" .=) <$> _dsCountryId,
+                  ("contactAssignments" .=) <$> _dsContactAssignments,
+                  ("description" .=) <$> _dsDescription,
+                  ("parentId" .=) <$> _dsParentId])
+
+-- | The properties of the report.
+--
+-- /See:/ 'reportFloodlightCriteriaReportProperties' smart constructor.
+data ReportFloodlightCriteriaReportProperties = ReportFloodlightCriteriaReportProperties'
+    { _rfcrpIncludeUnattributedIPConversions     :: !(Maybe Bool)
+    , _rfcrpIncludeUnattributedCookieConversions :: !(Maybe Bool)
+    , _rfcrpIncludeAttributedIPConversions       :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportFloodlightCriteriaReportProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rfcrpIncludeUnattributedIPConversions'
+--
+-- * 'rfcrpIncludeUnattributedCookieConversions'
+--
+-- * 'rfcrpIncludeAttributedIPConversions'
+reportFloodlightCriteriaReportProperties
+    :: ReportFloodlightCriteriaReportProperties
+reportFloodlightCriteriaReportProperties =
+    ReportFloodlightCriteriaReportProperties'
+    { _rfcrpIncludeUnattributedIPConversions = Nothing
+    , _rfcrpIncludeUnattributedCookieConversions = Nothing
+    , _rfcrpIncludeAttributedIPConversions = Nothing
+    }
+
+-- | Include conversions that have no associated cookies and no exposures.
+-- It’s therefore impossible to know how the user was exposed to your ads
+-- during the lookback window prior to a conversion.
+rfcrpIncludeUnattributedIPConversions :: Lens' ReportFloodlightCriteriaReportProperties (Maybe Bool)
+rfcrpIncludeUnattributedIPConversions
+  = lens _rfcrpIncludeUnattributedIPConversions
+      (\ s a ->
+         s{_rfcrpIncludeUnattributedIPConversions = a})
+
+-- | Include conversions of users with a DoubleClick cookie but without an
+-- exposure. That means the user did not click or see an ad from the
+-- advertiser within the Floodlight group, or that the interaction happened
+-- outside the lookback window.
+rfcrpIncludeUnattributedCookieConversions :: Lens' ReportFloodlightCriteriaReportProperties (Maybe Bool)
+rfcrpIncludeUnattributedCookieConversions
+  = lens _rfcrpIncludeUnattributedCookieConversions
+      (\ s a ->
+         s{_rfcrpIncludeUnattributedCookieConversions = a})
+
+-- | Include conversions that have no cookie, but do have an exposure path.
+rfcrpIncludeAttributedIPConversions :: Lens' ReportFloodlightCriteriaReportProperties (Maybe Bool)
+rfcrpIncludeAttributedIPConversions
+  = lens _rfcrpIncludeAttributedIPConversions
+      (\ s a ->
+         s{_rfcrpIncludeAttributedIPConversions = a})
+
+instance FromJSON
+         ReportFloodlightCriteriaReportProperties where
+        parseJSON
+          = withObject
+              "ReportFloodlightCriteriaReportProperties"
+              (\ o ->
+                 ReportFloodlightCriteriaReportProperties' <$>
+                   (o .:? "includeUnattributedIPConversions") <*>
+                     (o .:? "includeUnattributedCookieConversions")
+                     <*> (o .:? "includeAttributedIPConversions"))
+
+instance ToJSON
+         ReportFloodlightCriteriaReportProperties where
+        toJSON ReportFloodlightCriteriaReportProperties'{..}
+          = object
+              (catMaybes
+                 [("includeUnattributedIPConversions" .=) <$>
+                    _rfcrpIncludeUnattributedIPConversions,
+                  ("includeUnattributedCookieConversions" .=) <$>
+                    _rfcrpIncludeUnattributedCookieConversions,
+                  ("includeAttributedIPConversions" .=) <$>
+                    _rfcrpIncludeAttributedIPConversions])
+
+-- | Contains properties of a Floodlight activity group.
+--
+-- /See:/ 'floodlightActivityGroup' smart constructor.
+data FloodlightActivityGroup = FloodlightActivityGroup'
+    { _fagTagString                               :: !(Maybe Text)
+    , _fagFloodlightConfigurationId               :: !(Maybe (Textual Int64))
+    , _fagKind                                    :: !Text
+    , _fagAdvertiserId                            :: !(Maybe (Textual Int64))
+    , _fagAdvertiserIdDimensionValue              :: !(Maybe DimensionValue)
+    , _fagIdDimensionValue                        :: !(Maybe DimensionValue)
+    , _fagAccountId                               :: !(Maybe (Textual Int64))
+    , _fagName                                    :: !(Maybe Text)
+    , _fagId                                      :: !(Maybe (Textual Int64))
+    , _fagSubAccountId                            :: !(Maybe (Textual Int64))
+    , _fagType                                    :: !(Maybe FloodlightActivityGroupType)
+    , _fagFloodlightConfigurationIdDimensionValue :: !(Maybe DimensionValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fagTagString'
+--
+-- * 'fagFloodlightConfigurationId'
+--
+-- * 'fagKind'
+--
+-- * 'fagAdvertiserId'
+--
+-- * 'fagAdvertiserIdDimensionValue'
+--
+-- * 'fagIdDimensionValue'
+--
+-- * 'fagAccountId'
+--
+-- * 'fagName'
+--
+-- * 'fagId'
+--
+-- * 'fagSubAccountId'
+--
+-- * 'fagType'
+--
+-- * 'fagFloodlightConfigurationIdDimensionValue'
+floodlightActivityGroup
+    :: FloodlightActivityGroup
+floodlightActivityGroup =
+    FloodlightActivityGroup'
+    { _fagTagString = Nothing
+    , _fagFloodlightConfigurationId = Nothing
+    , _fagKind = "dfareporting#floodlightActivityGroup"
+    , _fagAdvertiserId = Nothing
+    , _fagAdvertiserIdDimensionValue = Nothing
+    , _fagIdDimensionValue = Nothing
+    , _fagAccountId = Nothing
+    , _fagName = Nothing
+    , _fagId = Nothing
+    , _fagSubAccountId = Nothing
+    , _fagType = Nothing
+    , _fagFloodlightConfigurationIdDimensionValue = Nothing
+    }
+
+-- | Value of the type= parameter in the floodlight tag, which the ad servers
+-- use to identify the activity group that the activity belongs to. This is
+-- optional: if empty, a new tag string will be generated for you. This
+-- string must be 1 to 8 characters long, with valid characters being
+-- [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among
+-- activity groups of the same floodlight configuration. This field is
+-- read-only after insertion.
+fagTagString :: Lens' FloodlightActivityGroup (Maybe Text)
+fagTagString
+  = lens _fagTagString (\ s a -> s{_fagTagString = a})
+
+-- | Floodlight configuration ID of this floodlight activity group. This is a
+-- required field.
+fagFloodlightConfigurationId :: Lens' FloodlightActivityGroup (Maybe Int64)
+fagFloodlightConfigurationId
+  = lens _fagFloodlightConfigurationId
+      (\ s a -> s{_fagFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightActivityGroup\".
+fagKind :: Lens' FloodlightActivityGroup Text
+fagKind = lens _fagKind (\ s a -> s{_fagKind = a})
+
+-- | Advertiser ID of this floodlight activity group. If this field is left
+-- blank, the value will be copied over either from the floodlight
+-- configuration\'s advertiser or from the existing activity group\'s
+-- advertiser.
+fagAdvertiserId :: Lens' FloodlightActivityGroup (Maybe Int64)
+fagAdvertiserId
+  = lens _fagAdvertiserId
+      (\ s a -> s{_fagAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+fagAdvertiserIdDimensionValue :: Lens' FloodlightActivityGroup (Maybe DimensionValue)
+fagAdvertiserIdDimensionValue
+  = lens _fagAdvertiserIdDimensionValue
+      (\ s a -> s{_fagAdvertiserIdDimensionValue = a})
+
+-- | Dimension value for the ID of this floodlight activity group. This is a
+-- read-only, auto-generated field.
+fagIdDimensionValue :: Lens' FloodlightActivityGroup (Maybe DimensionValue)
+fagIdDimensionValue
+  = lens _fagIdDimensionValue
+      (\ s a -> s{_fagIdDimensionValue = a})
+
+-- | Account ID of this floodlight activity group. This is a read-only field
+-- that can be left blank.
+fagAccountId :: Lens' FloodlightActivityGroup (Maybe Int64)
+fagAccountId
+  = lens _fagAccountId (\ s a -> s{_fagAccountId = a})
+      . mapping _Coerce
+
+-- | Name of this floodlight activity group. This is a required field. Must
+-- be less than 65 characters long and cannot contain quotes.
+fagName :: Lens' FloodlightActivityGroup (Maybe Text)
+fagName = lens _fagName (\ s a -> s{_fagName = a})
+
+-- | ID of this floodlight activity group. This is a read-only,
+-- auto-generated field.
+fagId :: Lens' FloodlightActivityGroup (Maybe Int64)
+fagId
+  = lens _fagId (\ s a -> s{_fagId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this floodlight activity group. This is a read-only
+-- field that can be left blank.
+fagSubAccountId :: Lens' FloodlightActivityGroup (Maybe Int64)
+fagSubAccountId
+  = lens _fagSubAccountId
+      (\ s a -> s{_fagSubAccountId = a})
+      . mapping _Coerce
+
+-- | Type of the floodlight activity group. This is a required field that is
+-- read-only after insertion.
+fagType :: Lens' FloodlightActivityGroup (Maybe FloodlightActivityGroupType)
+fagType = lens _fagType (\ s a -> s{_fagType = a})
+
+-- | Dimension value for the ID of the floodlight configuration. This is a
+-- read-only, auto-generated field.
+fagFloodlightConfigurationIdDimensionValue :: Lens' FloodlightActivityGroup (Maybe DimensionValue)
+fagFloodlightConfigurationIdDimensionValue
+  = lens _fagFloodlightConfigurationIdDimensionValue
+      (\ s a ->
+         s{_fagFloodlightConfigurationIdDimensionValue = a})
+
+instance FromJSON FloodlightActivityGroup where
+        parseJSON
+          = withObject "FloodlightActivityGroup"
+              (\ o ->
+                 FloodlightActivityGroup' <$>
+                   (o .:? "tagString") <*>
+                     (o .:? "floodlightConfigurationId")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightActivityGroup")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*>
+                     (o .:? "floodlightConfigurationIdDimensionValue"))
+
+instance ToJSON FloodlightActivityGroup where
+        toJSON FloodlightActivityGroup'{..}
+          = object
+              (catMaybes
+                 [("tagString" .=) <$> _fagTagString,
+                  ("floodlightConfigurationId" .=) <$>
+                    _fagFloodlightConfigurationId,
+                  Just ("kind" .= _fagKind),
+                  ("advertiserId" .=) <$> _fagAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _fagAdvertiserIdDimensionValue,
+                  ("idDimensionValue" .=) <$> _fagIdDimensionValue,
+                  ("accountId" .=) <$> _fagAccountId,
+                  ("name" .=) <$> _fagName, ("id" .=) <$> _fagId,
+                  ("subaccountId" .=) <$> _fagSubAccountId,
+                  ("type" .=) <$> _fagType,
+                  ("floodlightConfigurationIdDimensionValue" .=) <$>
+                    _fagFloodlightConfigurationIdDimensionValue])
+
+-- | Represents fields that are compatible to be selected for a report of
+-- type \"CROSS_DIMENSION_REACH\".
+--
+-- /See:/ 'crossDimensionReachReportCompatibleFields' smart constructor.
+data CrossDimensionReachReportCompatibleFields = CrossDimensionReachReportCompatibleFields'
+    { _cdrrcfMetrics          :: !(Maybe [Metric])
+    , _cdrrcfBreakdown        :: !(Maybe [Dimension])
+    , _cdrrcfKind             :: !Text
+    , _cdrrcfDimensionFilters :: !(Maybe [Dimension])
+    , _cdrrcfOverlapMetrics   :: !(Maybe [Metric])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CrossDimensionReachReportCompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdrrcfMetrics'
+--
+-- * 'cdrrcfBreakdown'
+--
+-- * 'cdrrcfKind'
+--
+-- * 'cdrrcfDimensionFilters'
+--
+-- * 'cdrrcfOverlapMetrics'
+crossDimensionReachReportCompatibleFields
+    :: CrossDimensionReachReportCompatibleFields
+crossDimensionReachReportCompatibleFields =
+    CrossDimensionReachReportCompatibleFields'
+    { _cdrrcfMetrics = Nothing
+    , _cdrrcfBreakdown = Nothing
+    , _cdrrcfKind = "dfareporting#crossDimensionReachReportCompatibleFields"
+    , _cdrrcfDimensionFilters = Nothing
+    , _cdrrcfOverlapMetrics = Nothing
+    }
+
+-- | Metrics which are compatible to be selected in the \"metricNames\"
+-- section of the report.
+cdrrcfMetrics :: Lens' CrossDimensionReachReportCompatibleFields [Metric]
+cdrrcfMetrics
+  = lens _cdrrcfMetrics
+      (\ s a -> s{_cdrrcfMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | Dimensions which are compatible to be selected in the \"breakdown\"
+-- section of the report.
+cdrrcfBreakdown :: Lens' CrossDimensionReachReportCompatibleFields [Dimension]
+cdrrcfBreakdown
+  = lens _cdrrcfBreakdown
+      (\ s a -> s{_cdrrcfBreakdown = a})
+      . _Default
+      . _Coerce
+
+-- | The kind of resource this is, in this case
+-- dfareporting#crossDimensionReachReportCompatibleFields.
+cdrrcfKind :: Lens' CrossDimensionReachReportCompatibleFields Text
+cdrrcfKind
+  = lens _cdrrcfKind (\ s a -> s{_cdrrcfKind = a})
+
+-- | Dimensions which are compatible to be selected in the
+-- \"dimensionFilters\" section of the report.
+cdrrcfDimensionFilters :: Lens' CrossDimensionReachReportCompatibleFields [Dimension]
+cdrrcfDimensionFilters
+  = lens _cdrrcfDimensionFilters
+      (\ s a -> s{_cdrrcfDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Metrics which are compatible to be selected in the
+-- \"overlapMetricNames\" section of the report.
+cdrrcfOverlapMetrics :: Lens' CrossDimensionReachReportCompatibleFields [Metric]
+cdrrcfOverlapMetrics
+  = lens _cdrrcfOverlapMetrics
+      (\ s a -> s{_cdrrcfOverlapMetrics = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         CrossDimensionReachReportCompatibleFields where
+        parseJSON
+          = withObject
+              "CrossDimensionReachReportCompatibleFields"
+              (\ o ->
+                 CrossDimensionReachReportCompatibleFields' <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "breakdown" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#crossDimensionReachReportCompatibleFields")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "overlapMetrics" .!= mempty))
+
+instance ToJSON
+         CrossDimensionReachReportCompatibleFields where
+        toJSON CrossDimensionReachReportCompatibleFields'{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _cdrrcfMetrics,
+                  ("breakdown" .=) <$> _cdrrcfBreakdown,
+                  Just ("kind" .= _cdrrcfKind),
+                  ("dimensionFilters" .=) <$> _cdrrcfDimensionFilters,
+                  ("overlapMetrics" .=) <$> _cdrrcfOverlapMetrics])
+
+-- | FsCommand.
+--
+-- /See:/ 'fsCommand' smart constructor.
+data FsCommand = FsCommand'
+    { _fcPositionOption :: !(Maybe FsCommandPositionOption)
+    , _fcLeft           :: !(Maybe (Textual Int32))
+    , _fcWindowHeight   :: !(Maybe (Textual Int32))
+    , _fcWindowWidth    :: !(Maybe (Textual Int32))
+    , _fcTop            :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FsCommand' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fcPositionOption'
+--
+-- * 'fcLeft'
+--
+-- * 'fcWindowHeight'
+--
+-- * 'fcWindowWidth'
+--
+-- * 'fcTop'
+fsCommand
+    :: FsCommand
+fsCommand =
+    FsCommand'
+    { _fcPositionOption = Nothing
+    , _fcLeft = Nothing
+    , _fcWindowHeight = Nothing
+    , _fcWindowWidth = Nothing
+    , _fcTop = Nothing
+    }
+
+-- | Position in the browser where the window will open.
+fcPositionOption :: Lens' FsCommand (Maybe FsCommandPositionOption)
+fcPositionOption
+  = lens _fcPositionOption
+      (\ s a -> s{_fcPositionOption = a})
+
+-- | Distance from the left of the browser.Applicable when positionOption is
+-- DISTANCE_FROM_TOP_LEFT_CORNER.
+fcLeft :: Lens' FsCommand (Maybe Int32)
+fcLeft
+  = lens _fcLeft (\ s a -> s{_fcLeft = a}) .
+      mapping _Coerce
+
+-- | Height of the window.
+fcWindowHeight :: Lens' FsCommand (Maybe Int32)
+fcWindowHeight
+  = lens _fcWindowHeight
+      (\ s a -> s{_fcWindowHeight = a})
+      . mapping _Coerce
+
+-- | Width of the window.
+fcWindowWidth :: Lens' FsCommand (Maybe Int32)
+fcWindowWidth
+  = lens _fcWindowWidth
+      (\ s a -> s{_fcWindowWidth = a})
+      . mapping _Coerce
+
+-- | Distance from the top of the browser. Applicable when positionOption is
+-- DISTANCE_FROM_TOP_LEFT_CORNER.
+fcTop :: Lens' FsCommand (Maybe Int32)
+fcTop
+  = lens _fcTop (\ s a -> s{_fcTop = a}) .
+      mapping _Coerce
+
+instance FromJSON FsCommand where
+        parseJSON
+          = withObject "FsCommand"
+              (\ o ->
+                 FsCommand' <$>
+                   (o .:? "positionOption") <*> (o .:? "left") <*>
+                     (o .:? "windowHeight")
+                     <*> (o .:? "windowWidth")
+                     <*> (o .:? "top"))
+
+instance ToJSON FsCommand where
+        toJSON FsCommand'{..}
+          = object
+              (catMaybes
+                 [("positionOption" .=) <$> _fcPositionOption,
+                  ("left" .=) <$> _fcLeft,
+                  ("windowHeight" .=) <$> _fcWindowHeight,
+                  ("windowWidth" .=) <$> _fcWindowWidth,
+                  ("top" .=) <$> _fcTop])
+
+-- | Placement Assignment.
+--
+-- /See:/ 'placementAssignment' smart constructor.
+data PlacementAssignment = PlacementAssignment'
+    { _paPlacementId               :: !(Maybe (Textual Int64))
+    , _paPlacementIdDimensionValue :: !(Maybe DimensionValue)
+    , _paActive                    :: !(Maybe Bool)
+    , _paSSLRequired               :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'paPlacementId'
+--
+-- * 'paPlacementIdDimensionValue'
+--
+-- * 'paActive'
+--
+-- * 'paSSLRequired'
+placementAssignment
+    :: PlacementAssignment
+placementAssignment =
+    PlacementAssignment'
+    { _paPlacementId = Nothing
+    , _paPlacementIdDimensionValue = Nothing
+    , _paActive = Nothing
+    , _paSSLRequired = Nothing
+    }
+
+-- | ID of the placement to be assigned. This is a required field.
+paPlacementId :: Lens' PlacementAssignment (Maybe Int64)
+paPlacementId
+  = lens _paPlacementId
+      (\ s a -> s{_paPlacementId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the placement. This is a read-only,
+-- auto-generated field.
+paPlacementIdDimensionValue :: Lens' PlacementAssignment (Maybe DimensionValue)
+paPlacementIdDimensionValue
+  = lens _paPlacementIdDimensionValue
+      (\ s a -> s{_paPlacementIdDimensionValue = a})
+
+-- | Whether this placement assignment is active. When true, the placement
+-- will be included in the ad\'s rotation.
+paActive :: Lens' PlacementAssignment (Maybe Bool)
+paActive = lens _paActive (\ s a -> s{_paActive = a})
+
+-- | Whether the placement to be assigned requires SSL. This is a read-only
+-- field that is auto-generated when the ad is inserted or updated.
+paSSLRequired :: Lens' PlacementAssignment (Maybe Bool)
+paSSLRequired
+  = lens _paSSLRequired
+      (\ s a -> s{_paSSLRequired = a})
+
+instance FromJSON PlacementAssignment where
+        parseJSON
+          = withObject "PlacementAssignment"
+              (\ o ->
+                 PlacementAssignment' <$>
+                   (o .:? "placementId") <*>
+                     (o .:? "placementIdDimensionValue")
+                     <*> (o .:? "active")
+                     <*> (o .:? "sslRequired"))
+
+instance ToJSON PlacementAssignment where
+        toJSON PlacementAssignment'{..}
+          = object
+              (catMaybes
+                 [("placementId" .=) <$> _paPlacementId,
+                  ("placementIdDimensionValue" .=) <$>
+                    _paPlacementIdDimensionValue,
+                  ("active" .=) <$> _paActive,
+                  ("sslRequired" .=) <$> _paSSLRequired])
+
+-- | Contains properties of a creative field value.
+--
+-- /See:/ 'creativeFieldValue' smart constructor.
+data CreativeFieldValue = CreativeFieldValue'
+    { _cfvKind  :: !Text
+    , _cfvValue :: !(Maybe Text)
+    , _cfvId    :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldValue' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfvKind'
+--
+-- * 'cfvValue'
+--
+-- * 'cfvId'
+creativeFieldValue
+    :: CreativeFieldValue
+creativeFieldValue =
+    CreativeFieldValue'
+    { _cfvKind = "dfareporting#creativeFieldValue"
+    , _cfvValue = Nothing
+    , _cfvId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeFieldValue\".
+cfvKind :: Lens' CreativeFieldValue Text
+cfvKind = lens _cfvKind (\ s a -> s{_cfvKind = a})
+
+-- | Value of this creative field value. It needs to be less than 256
+-- characters in length and unique per creative field.
+cfvValue :: Lens' CreativeFieldValue (Maybe Text)
+cfvValue = lens _cfvValue (\ s a -> s{_cfvValue = a})
+
+-- | ID of this creative field value. This is a read-only, auto-generated
+-- field.
+cfvId :: Lens' CreativeFieldValue (Maybe Int64)
+cfvId
+  = lens _cfvId (\ s a -> s{_cfvId = a}) .
+      mapping _Coerce
+
+instance FromJSON CreativeFieldValue where
+        parseJSON
+          = withObject "CreativeFieldValue"
+              (\ o ->
+                 CreativeFieldValue' <$>
+                   (o .:? "kind" .!= "dfareporting#creativeFieldValue")
+                     <*> (o .:? "value")
+                     <*> (o .:? "id"))
+
+instance ToJSON CreativeFieldValue where
+        toJSON CreativeFieldValue'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cfvKind),
+                  ("value" .=) <$> _cfvValue, ("id" .=) <$> _cfvId])
+
+-- | Represents a DimensionValuesRequest.
+--
+-- /See:/ 'dimensionValueRequest' smart constructor.
+data DimensionValueRequest = DimensionValueRequest'
+    { _dvrKind          :: !Text
+    , _dvrEndDate       :: !(Maybe Date')
+    , _dvrFilters       :: !(Maybe [DimensionFilter])
+    , _dvrStartDate     :: !(Maybe Date')
+    , _dvrDimensionName :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DimensionValueRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dvrKind'
+--
+-- * 'dvrEndDate'
+--
+-- * 'dvrFilters'
+--
+-- * 'dvrStartDate'
+--
+-- * 'dvrDimensionName'
+dimensionValueRequest
+    :: DimensionValueRequest
+dimensionValueRequest =
+    DimensionValueRequest'
+    { _dvrKind = "dfareporting#dimensionValueRequest"
+    , _dvrEndDate = Nothing
+    , _dvrFilters = Nothing
+    , _dvrStartDate = Nothing
+    , _dvrDimensionName = Nothing
+    }
+
+-- | The kind of request this is, in this case
+-- dfareporting#dimensionValueRequest.
+dvrKind :: Lens' DimensionValueRequest Text
+dvrKind = lens _dvrKind (\ s a -> s{_dvrKind = a})
+
+-- | The end date of the date range for which to retrieve dimension values. A
+-- string of the format \"yyyy-MM-dd\".
+dvrEndDate :: Lens' DimensionValueRequest (Maybe Day)
+dvrEndDate
+  = lens _dvrEndDate (\ s a -> s{_dvrEndDate = a}) .
+      mapping _Date
+
+-- | The list of filters by which to filter values. The filters are ANDed.
+dvrFilters :: Lens' DimensionValueRequest [DimensionFilter]
+dvrFilters
+  = lens _dvrFilters (\ s a -> s{_dvrFilters = a}) .
+      _Default
+      . _Coerce
+
+-- | The start date of the date range for which to retrieve dimension values.
+-- A string of the format \"yyyy-MM-dd\".
+dvrStartDate :: Lens' DimensionValueRequest (Maybe Day)
+dvrStartDate
+  = lens _dvrStartDate (\ s a -> s{_dvrStartDate = a})
+      . mapping _Date
+
+-- | The name of the dimension for which values should be requested.
+dvrDimensionName :: Lens' DimensionValueRequest (Maybe Text)
+dvrDimensionName
+  = lens _dvrDimensionName
+      (\ s a -> s{_dvrDimensionName = a})
+
+instance FromJSON DimensionValueRequest where
+        parseJSON
+          = withObject "DimensionValueRequest"
+              (\ o ->
+                 DimensionValueRequest' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#dimensionValueRequest")
+                     <*> (o .:? "endDate")
+                     <*> (o .:? "filters" .!= mempty)
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "dimensionName"))
+
+instance ToJSON DimensionValueRequest where
+        toJSON DimensionValueRequest'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _dvrKind),
+                  ("endDate" .=) <$> _dvrEndDate,
+                  ("filters" .=) <$> _dvrFilters,
+                  ("startDate" .=) <$> _dvrStartDate,
+                  ("dimensionName" .=) <$> _dvrDimensionName])
+
+-- | Floodlight Configuration List Response
+--
+-- /See:/ 'floodlightConfigurationsListResponse' smart constructor.
+data FloodlightConfigurationsListResponse = FloodlightConfigurationsListResponse'
+    { _fclrKind                     :: !Text
+    , _fclrFloodlightConfigurations :: !(Maybe [FloodlightConfiguration])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightConfigurationsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fclrKind'
+--
+-- * 'fclrFloodlightConfigurations'
+floodlightConfigurationsListResponse
+    :: FloodlightConfigurationsListResponse
+floodlightConfigurationsListResponse =
+    FloodlightConfigurationsListResponse'
+    { _fclrKind = "dfareporting#floodlightConfigurationsListResponse"
+    , _fclrFloodlightConfigurations = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightConfigurationsListResponse\".
+fclrKind :: Lens' FloodlightConfigurationsListResponse Text
+fclrKind = lens _fclrKind (\ s a -> s{_fclrKind = a})
+
+-- | Floodlight configuration collection.
+fclrFloodlightConfigurations :: Lens' FloodlightConfigurationsListResponse [FloodlightConfiguration]
+fclrFloodlightConfigurations
+  = lens _fclrFloodlightConfigurations
+      (\ s a -> s{_fclrFloodlightConfigurations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         FloodlightConfigurationsListResponse where
+        parseJSON
+          = withObject "FloodlightConfigurationsListResponse"
+              (\ o ->
+                 FloodlightConfigurationsListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#floodlightConfigurationsListResponse")
+                     <*> (o .:? "floodlightConfigurations" .!= mempty))
+
+instance ToJSON FloodlightConfigurationsListResponse
+         where
+        toJSON FloodlightConfigurationsListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _fclrKind),
+                  ("floodlightConfigurations" .=) <$>
+                    _fclrFloodlightConfigurations])
+
+-- | Floodlight Activity List Response
+--
+-- /See:/ 'floodlightActivitiesListResponse' smart constructor.
+data FloodlightActivitiesListResponse = FloodlightActivitiesListResponse'
+    { _falrNextPageToken        :: !(Maybe Text)
+    , _falrKind                 :: !Text
+    , _falrFloodlightActivities :: !(Maybe [FloodlightActivity])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'falrNextPageToken'
+--
+-- * 'falrKind'
+--
+-- * 'falrFloodlightActivities'
+floodlightActivitiesListResponse
+    :: FloodlightActivitiesListResponse
+floodlightActivitiesListResponse =
+    FloodlightActivitiesListResponse'
+    { _falrNextPageToken = Nothing
+    , _falrKind = "dfareporting#floodlightActivitiesListResponse"
+    , _falrFloodlightActivities = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+falrNextPageToken :: Lens' FloodlightActivitiesListResponse (Maybe Text)
+falrNextPageToken
+  = lens _falrNextPageToken
+      (\ s a -> s{_falrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightActivitiesListResponse\".
+falrKind :: Lens' FloodlightActivitiesListResponse Text
+falrKind = lens _falrKind (\ s a -> s{_falrKind = a})
+
+-- | Floodlight activity collection.
+falrFloodlightActivities :: Lens' FloodlightActivitiesListResponse [FloodlightActivity]
+falrFloodlightActivities
+  = lens _falrFloodlightActivities
+      (\ s a -> s{_falrFloodlightActivities = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON FloodlightActivitiesListResponse
+         where
+        parseJSON
+          = withObject "FloodlightActivitiesListResponse"
+              (\ o ->
+                 FloodlightActivitiesListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightActivitiesListResponse")
+                     <*> (o .:? "floodlightActivities" .!= mempty))
+
+instance ToJSON FloodlightActivitiesListResponse
+         where
+        toJSON FloodlightActivitiesListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _falrNextPageToken,
+                  Just ("kind" .= _falrKind),
+                  ("floodlightActivities" .=) <$>
+                    _falrFloodlightActivities])
+
+-- | Creative Field Assignment.
+--
+-- /See:/ 'creativeFieldAssignment' smart constructor.
+data CreativeFieldAssignment = CreativeFieldAssignment'
+    { _cfaCreativeFieldId      :: !(Maybe (Textual Int64))
+    , _cfaCreativeFieldValueId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfaCreativeFieldId'
+--
+-- * 'cfaCreativeFieldValueId'
+creativeFieldAssignment
+    :: CreativeFieldAssignment
+creativeFieldAssignment =
+    CreativeFieldAssignment'
+    { _cfaCreativeFieldId = Nothing
+    , _cfaCreativeFieldValueId = Nothing
+    }
+
+-- | ID of the creative field.
+cfaCreativeFieldId :: Lens' CreativeFieldAssignment (Maybe Int64)
+cfaCreativeFieldId
+  = lens _cfaCreativeFieldId
+      (\ s a -> s{_cfaCreativeFieldId = a})
+      . mapping _Coerce
+
+-- | ID of the creative field value.
+cfaCreativeFieldValueId :: Lens' CreativeFieldAssignment (Maybe Int64)
+cfaCreativeFieldValueId
+  = lens _cfaCreativeFieldValueId
+      (\ s a -> s{_cfaCreativeFieldValueId = a})
+      . mapping _Coerce
+
+instance FromJSON CreativeFieldAssignment where
+        parseJSON
+          = withObject "CreativeFieldAssignment"
+              (\ o ->
+                 CreativeFieldAssignment' <$>
+                   (o .:? "creativeFieldId") <*>
+                     (o .:? "creativeFieldValueId"))
+
+instance ToJSON CreativeFieldAssignment where
+        toJSON CreativeFieldAssignment'{..}
+          = object
+              (catMaybes
+                 [("creativeFieldId" .=) <$> _cfaCreativeFieldId,
+                  ("creativeFieldValueId" .=) <$>
+                    _cfaCreativeFieldValueId])
+
+-- | Groups advertisers together so that reports can be generated for the
+-- entire group at once.
+--
+-- /See:/ 'advertiserGroup' smart constructor.
+data AdvertiserGroup = AdvertiserGroup'
+    { _agKind      :: !Text
+    , _agAccountId :: !(Maybe (Textual Int64))
+    , _agName      :: !(Maybe Text)
+    , _agId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertiserGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'agKind'
+--
+-- * 'agAccountId'
+--
+-- * 'agName'
+--
+-- * 'agId'
+advertiserGroup
+    :: AdvertiserGroup
+advertiserGroup =
+    AdvertiserGroup'
+    { _agKind = "dfareporting#advertiserGroup"
+    , _agAccountId = Nothing
+    , _agName = Nothing
+    , _agId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#advertiserGroup\".
+agKind :: Lens' AdvertiserGroup Text
+agKind = lens _agKind (\ s a -> s{_agKind = a})
+
+-- | Account ID of this advertiser group. This is a read-only field that can
+-- be left blank.
+agAccountId :: Lens' AdvertiserGroup (Maybe Int64)
+agAccountId
+  = lens _agAccountId (\ s a -> s{_agAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this advertiser group. This is a required field and must be less
+-- than 256 characters long and unique among advertiser groups of the same
+-- account.
+agName :: Lens' AdvertiserGroup (Maybe Text)
+agName = lens _agName (\ s a -> s{_agName = a})
+
+-- | ID of this advertiser group. This is a read-only, auto-generated field.
+agId :: Lens' AdvertiserGroup (Maybe Int64)
+agId
+  = lens _agId (\ s a -> s{_agId = a}) .
+      mapping _Coerce
+
+instance FromJSON AdvertiserGroup where
+        parseJSON
+          = withObject "AdvertiserGroup"
+              (\ o ->
+                 AdvertiserGroup' <$>
+                   (o .:? "kind" .!= "dfareporting#advertiserGroup") <*>
+                     (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON AdvertiserGroup where
+        toJSON AdvertiserGroup'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _agKind),
+                  ("accountId" .=) <$> _agAccountId,
+                  ("name" .=) <$> _agName, ("id" .=) <$> _agId])
+
+-- | Placement Tag Data
+--
+-- /See:/ 'tagData' smart constructor.
+data TagData = TagData'
+    { _tdClickTag      :: !(Maybe Text)
+    , _tdFormat        :: !(Maybe TagDataFormat)
+    , _tdCreativeId    :: !(Maybe (Textual Int64))
+    , _tdAdId          :: !(Maybe (Textual Int64))
+    , _tdImpressionTag :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TagData' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tdClickTag'
+--
+-- * 'tdFormat'
+--
+-- * 'tdCreativeId'
+--
+-- * 'tdAdId'
+--
+-- * 'tdImpressionTag'
+tagData
+    :: TagData
+tagData =
+    TagData'
+    { _tdClickTag = Nothing
+    , _tdFormat = Nothing
+    , _tdCreativeId = Nothing
+    , _tdAdId = Nothing
+    , _tdImpressionTag = Nothing
+    }
+
+-- | Tag string to record a click.
+tdClickTag :: Lens' TagData (Maybe Text)
+tdClickTag
+  = lens _tdClickTag (\ s a -> s{_tdClickTag = a})
+
+-- | TagData tag format of this tag.
+tdFormat :: Lens' TagData (Maybe TagDataFormat)
+tdFormat = lens _tdFormat (\ s a -> s{_tdFormat = a})
+
+-- | Creative associated with this placement tag.
+tdCreativeId :: Lens' TagData (Maybe Int64)
+tdCreativeId
+  = lens _tdCreativeId (\ s a -> s{_tdCreativeId = a})
+      . mapping _Coerce
+
+-- | Ad associated with this placement tag.
+tdAdId :: Lens' TagData (Maybe Int64)
+tdAdId
+  = lens _tdAdId (\ s a -> s{_tdAdId = a}) .
+      mapping _Coerce
+
+-- | Tag string for serving an ad.
+tdImpressionTag :: Lens' TagData (Maybe Text)
+tdImpressionTag
+  = lens _tdImpressionTag
+      (\ s a -> s{_tdImpressionTag = a})
+
+instance FromJSON TagData where
+        parseJSON
+          = withObject "TagData"
+              (\ o ->
+                 TagData' <$>
+                   (o .:? "clickTag") <*> (o .:? "format") <*>
+                     (o .:? "creativeId")
+                     <*> (o .:? "adId")
+                     <*> (o .:? "impressionTag"))
+
+instance ToJSON TagData where
+        toJSON TagData'{..}
+          = object
+              (catMaybes
+                 [("clickTag" .=) <$> _tdClickTag,
+                  ("format" .=) <$> _tdFormat,
+                  ("creativeId" .=) <$> _tdCreativeId,
+                  ("adId" .=) <$> _tdAdId,
+                  ("impressionTag" .=) <$> _tdImpressionTag])
+
+-- | Day Part Targeting.
+--
+-- /See:/ 'dayPartTargeting' smart constructor.
+data DayPartTargeting = DayPartTargeting'
+    { _dptDaysOfWeek    :: !(Maybe [DayPartTargetingDaysOfWeekItem])
+    , _dptHoursOfDay    :: !(Maybe [Textual Int32])
+    , _dptUserLocalTime :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DayPartTargeting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dptDaysOfWeek'
+--
+-- * 'dptHoursOfDay'
+--
+-- * 'dptUserLocalTime'
+dayPartTargeting
+    :: DayPartTargeting
+dayPartTargeting =
+    DayPartTargeting'
+    { _dptDaysOfWeek = Nothing
+    , _dptHoursOfDay = Nothing
+    , _dptUserLocalTime = Nothing
+    }
+
+-- | Days of the week when the ad will serve. Acceptable values are: -
+-- \"SUNDAY\" - \"MONDAY\" - \"TUESDAY\" - \"WEDNESDAY\" - \"THURSDAY\" -
+-- \"FRIDAY\" - \"SATURDAY\"
+dptDaysOfWeek :: Lens' DayPartTargeting [DayPartTargetingDaysOfWeekItem]
+dptDaysOfWeek
+  = lens _dptDaysOfWeek
+      (\ s a -> s{_dptDaysOfWeek = a})
+      . _Default
+      . _Coerce
+
+-- | Hours of the day when the ad will serve. Must be an integer between 0
+-- and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to
+-- midnight. Can be specified with days of week, in which case the ad would
+-- serve during these hours on the specified days. For example, if Monday,
+-- Wednesday, Friday are the days of week specified and 9-10am, 3-5pm
+-- (hours 9, 15, and 16) is specified, the ad would serve Monday,
+-- Wednesdays, and Fridays at 9-10am and 3-5pm.
+dptHoursOfDay :: Lens' DayPartTargeting [Int32]
+dptHoursOfDay
+  = lens _dptHoursOfDay
+      (\ s a -> s{_dptHoursOfDay = a})
+      . _Default
+      . _Coerce
+
+-- | Whether or not to use the user\'s local time. If false, the America\/New
+-- York time zone applies.
+dptUserLocalTime :: Lens' DayPartTargeting (Maybe Bool)
+dptUserLocalTime
+  = lens _dptUserLocalTime
+      (\ s a -> s{_dptUserLocalTime = a})
+
+instance FromJSON DayPartTargeting where
+        parseJSON
+          = withObject "DayPartTargeting"
+              (\ o ->
+                 DayPartTargeting' <$>
+                   (o .:? "daysOfWeek" .!= mempty) <*>
+                     (o .:? "hoursOfDay" .!= mempty)
+                     <*> (o .:? "userLocalTime"))
+
+instance ToJSON DayPartTargeting where
+        toJSON DayPartTargeting'{..}
+          = object
+              (catMaybes
+                 [("daysOfWeek" .=) <$> _dptDaysOfWeek,
+                  ("hoursOfDay" .=) <$> _dptHoursOfDay,
+                  ("userLocalTime" .=) <$> _dptUserLocalTime])
+
+-- | Creative optimization settings.
+--
+-- /See:/ 'creativeOptimizationConfiguration' smart constructor.
+data CreativeOptimizationConfiguration = CreativeOptimizationConfiguration'
+    { _cocOptimizationModel     :: !(Maybe CreativeOptimizationConfigurationOptimizationModel)
+    , _cocName                  :: !(Maybe Text)
+    , _cocOptimizationActivitys :: !(Maybe [OptimizationActivity])
+    , _cocId                    :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeOptimizationConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cocOptimizationModel'
+--
+-- * 'cocName'
+--
+-- * 'cocOptimizationActivitys'
+--
+-- * 'cocId'
+creativeOptimizationConfiguration
+    :: CreativeOptimizationConfiguration
+creativeOptimizationConfiguration =
+    CreativeOptimizationConfiguration'
+    { _cocOptimizationModel = Nothing
+    , _cocName = Nothing
+    , _cocOptimizationActivitys = Nothing
+    , _cocId = Nothing
+    }
+
+-- | Optimization model for this configuration.
+cocOptimizationModel :: Lens' CreativeOptimizationConfiguration (Maybe CreativeOptimizationConfigurationOptimizationModel)
+cocOptimizationModel
+  = lens _cocOptimizationModel
+      (\ s a -> s{_cocOptimizationModel = a})
+
+-- | Name of this creative optimization config. This is a required field and
+-- must be less than 129 characters long.
+cocName :: Lens' CreativeOptimizationConfiguration (Maybe Text)
+cocName = lens _cocName (\ s a -> s{_cocName = a})
+
+-- | List of optimization activities associated with this configuration.
+cocOptimizationActivitys :: Lens' CreativeOptimizationConfiguration [OptimizationActivity]
+cocOptimizationActivitys
+  = lens _cocOptimizationActivitys
+      (\ s a -> s{_cocOptimizationActivitys = a})
+      . _Default
+      . _Coerce
+
+-- | ID of this creative optimization config. This field is auto-generated
+-- when the campaign is inserted or updated. It can be null for existing
+-- campaigns.
+cocId :: Lens' CreativeOptimizationConfiguration (Maybe Int64)
+cocId
+  = lens _cocId (\ s a -> s{_cocId = a}) .
+      mapping _Coerce
+
+instance FromJSON CreativeOptimizationConfiguration
+         where
+        parseJSON
+          = withObject "CreativeOptimizationConfiguration"
+              (\ o ->
+                 CreativeOptimizationConfiguration' <$>
+                   (o .:? "optimizationModel") <*> (o .:? "name") <*>
+                     (o .:? "optimizationActivitys" .!= mempty)
+                     <*> (o .:? "id"))
+
+instance ToJSON CreativeOptimizationConfiguration
+         where
+        toJSON CreativeOptimizationConfiguration'{..}
+          = object
+              (catMaybes
+                 [("optimizationModel" .=) <$> _cocOptimizationModel,
+                  ("name" .=) <$> _cocName,
+                  ("optimizationActivitys" .=) <$>
+                    _cocOptimizationActivitys,
+                  ("id" .=) <$> _cocId])
+
+-- | The report criteria for a report of type \"STANDARD\".
+--
+-- /See:/ 'reportCriteria' smart constructor.
+data ReportCriteria = ReportCriteria'
+    { _rcMetricNames           :: !(Maybe [Text])
+    , _rcCustomRichMediaEvents :: !(Maybe CustomRichMediaEvents)
+    , _rcDimensionFilters      :: !(Maybe [DimensionValue])
+    , _rcActivities            :: !(Maybe Activities)
+    , _rcDateRange             :: !(Maybe DateRange)
+    , _rcDimensions            :: !(Maybe [SortedDimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcMetricNames'
+--
+-- * 'rcCustomRichMediaEvents'
+--
+-- * 'rcDimensionFilters'
+--
+-- * 'rcActivities'
+--
+-- * 'rcDateRange'
+--
+-- * 'rcDimensions'
+reportCriteria
+    :: ReportCriteria
+reportCriteria =
+    ReportCriteria'
+    { _rcMetricNames = Nothing
+    , _rcCustomRichMediaEvents = Nothing
+    , _rcDimensionFilters = Nothing
+    , _rcActivities = Nothing
+    , _rcDateRange = Nothing
+    , _rcDimensions = Nothing
+    }
+
+-- | The list of names of metrics the report should include.
+rcMetricNames :: Lens' ReportCriteria [Text]
+rcMetricNames
+  = lens _rcMetricNames
+      (\ s a -> s{_rcMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | Custom Rich Media Events group.
+rcCustomRichMediaEvents :: Lens' ReportCriteria (Maybe CustomRichMediaEvents)
+rcCustomRichMediaEvents
+  = lens _rcCustomRichMediaEvents
+      (\ s a -> s{_rcCustomRichMediaEvents = a})
+
+-- | The list of filters on which dimensions are filtered. Filters for
+-- different dimensions are ANDed, filters for the same dimension are
+-- grouped together and ORed.
+rcDimensionFilters :: Lens' ReportCriteria [DimensionValue]
+rcDimensionFilters
+  = lens _rcDimensionFilters
+      (\ s a -> s{_rcDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Activity group.
+rcActivities :: Lens' ReportCriteria (Maybe Activities)
+rcActivities
+  = lens _rcActivities (\ s a -> s{_rcActivities = a})
+
+-- | The date range for which this report should be run.
+rcDateRange :: Lens' ReportCriteria (Maybe DateRange)
+rcDateRange
+  = lens _rcDateRange (\ s a -> s{_rcDateRange = a})
+
+-- | The list of standard dimensions the report should include.
+rcDimensions :: Lens' ReportCriteria [SortedDimension]
+rcDimensions
+  = lens _rcDimensions (\ s a -> s{_rcDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportCriteria where
+        parseJSON
+          = withObject "ReportCriteria"
+              (\ o ->
+                 ReportCriteria' <$>
+                   (o .:? "metricNames" .!= mempty) <*>
+                     (o .:? "customRichMediaEvents")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "activities")
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON ReportCriteria where
+        toJSON ReportCriteria'{..}
+          = object
+              (catMaybes
+                 [("metricNames" .=) <$> _rcMetricNames,
+                  ("customRichMediaEvents" .=) <$>
+                    _rcCustomRichMediaEvents,
+                  ("dimensionFilters" .=) <$> _rcDimensionFilters,
+                  ("activities" .=) <$> _rcActivities,
+                  ("dateRange" .=) <$> _rcDateRange,
+                  ("dimensions" .=) <$> _rcDimensions])
+
+-- | Placement Strategy List Response
+--
+-- /See:/ 'placementStrategiesListResponse' smart constructor.
+data PlacementStrategiesListResponse = PlacementStrategiesListResponse'
+    { _pslrPlacementStrategies :: !(Maybe [PlacementStrategy])
+    , _pslrNextPageToken       :: !(Maybe Text)
+    , _pslrKind                :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementStrategiesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pslrPlacementStrategies'
+--
+-- * 'pslrNextPageToken'
+--
+-- * 'pslrKind'
+placementStrategiesListResponse
+    :: PlacementStrategiesListResponse
+placementStrategiesListResponse =
+    PlacementStrategiesListResponse'
+    { _pslrPlacementStrategies = Nothing
+    , _pslrNextPageToken = Nothing
+    , _pslrKind = "dfareporting#placementStrategiesListResponse"
+    }
+
+-- | Placement strategy collection.
+pslrPlacementStrategies :: Lens' PlacementStrategiesListResponse [PlacementStrategy]
+pslrPlacementStrategies
+  = lens _pslrPlacementStrategies
+      (\ s a -> s{_pslrPlacementStrategies = a})
+      . _Default
+      . _Coerce
+
+-- | Pagination token to be used for the next list operation.
+pslrNextPageToken :: Lens' PlacementStrategiesListResponse (Maybe Text)
+pslrNextPageToken
+  = lens _pslrNextPageToken
+      (\ s a -> s{_pslrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementStrategiesListResponse\".
+pslrKind :: Lens' PlacementStrategiesListResponse Text
+pslrKind = lens _pslrKind (\ s a -> s{_pslrKind = a})
+
+instance FromJSON PlacementStrategiesListResponse
+         where
+        parseJSON
+          = withObject "PlacementStrategiesListResponse"
+              (\ o ->
+                 PlacementStrategiesListResponse' <$>
+                   (o .:? "placementStrategies" .!= mempty) <*>
+                     (o .:? "nextPageToken")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#placementStrategiesListResponse"))
+
+instance ToJSON PlacementStrategiesListResponse where
+        toJSON PlacementStrategiesListResponse'{..}
+          = object
+              (catMaybes
+                 [("placementStrategies" .=) <$>
+                    _pslrPlacementStrategies,
+                  ("nextPageToken" .=) <$> _pslrNextPageToken,
+                  Just ("kind" .= _pslrKind)])
+
+-- | Contains properties of a DCM subaccount.
+--
+-- /See:/ 'subAccount' smart constructor.
+data SubAccount = SubAccount'
+    { _saKind                   :: !Text
+    , _saAvailablePermissionIds :: !(Maybe [Textual Int64])
+    , _saAccountId              :: !(Maybe (Textual Int64))
+    , _saName                   :: !(Maybe Text)
+    , _saId                     :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubAccount' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'saKind'
+--
+-- * 'saAvailablePermissionIds'
+--
+-- * 'saAccountId'
+--
+-- * 'saName'
+--
+-- * 'saId'
+subAccount
+    :: SubAccount
+subAccount =
+    SubAccount'
+    { _saKind = "dfareporting#subaccount"
+    , _saAvailablePermissionIds = Nothing
+    , _saAccountId = Nothing
+    , _saName = Nothing
+    , _saId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#subaccount\".
+saKind :: Lens' SubAccount Text
+saKind = lens _saKind (\ s a -> s{_saKind = a})
+
+-- | IDs of the available user role permissions for this subaccount.
+saAvailablePermissionIds :: Lens' SubAccount [Int64]
+saAvailablePermissionIds
+  = lens _saAvailablePermissionIds
+      (\ s a -> s{_saAvailablePermissionIds = a})
+      . _Default
+      . _Coerce
+
+-- | ID of the account that contains this subaccount. This is a read-only
+-- field that can be left blank.
+saAccountId :: Lens' SubAccount (Maybe Int64)
+saAccountId
+  = lens _saAccountId (\ s a -> s{_saAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this subaccount. This is a required field. Must be less than 128
+-- characters long and be unique among subaccounts of the same account.
+saName :: Lens' SubAccount (Maybe Text)
+saName = lens _saName (\ s a -> s{_saName = a})
+
+-- | ID of this subaccount. This is a read-only, auto-generated field.
+saId :: Lens' SubAccount (Maybe Int64)
+saId
+  = lens _saId (\ s a -> s{_saId = a}) .
+      mapping _Coerce
+
+instance FromJSON SubAccount where
+        parseJSON
+          = withObject "SubAccount"
+              (\ o ->
+                 SubAccount' <$>
+                   (o .:? "kind" .!= "dfareporting#subaccount") <*>
+                     (o .:? "availablePermissionIds" .!= mempty)
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON SubAccount where
+        toJSON SubAccount'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _saKind),
+                  ("availablePermissionIds" .=) <$>
+                    _saAvailablePermissionIds,
+                  ("accountId" .=) <$> _saAccountId,
+                  ("name" .=) <$> _saName, ("id" .=) <$> _saId])
+
+-- | Inventory item List Response
+--
+-- /See:/ 'inventoryItemsListResponse' smart constructor.
+data InventoryItemsListResponse = InventoryItemsListResponse'
+    { _iilrInventoryItems :: !(Maybe [InventoryItem])
+    , _iilrNextPageToken  :: !(Maybe Text)
+    , _iilrKind           :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InventoryItemsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iilrInventoryItems'
+--
+-- * 'iilrNextPageToken'
+--
+-- * 'iilrKind'
+inventoryItemsListResponse
+    :: InventoryItemsListResponse
+inventoryItemsListResponse =
+    InventoryItemsListResponse'
+    { _iilrInventoryItems = Nothing
+    , _iilrNextPageToken = Nothing
+    , _iilrKind = "dfareporting#inventoryItemsListResponse"
+    }
+
+-- | Inventory item collection
+iilrInventoryItems :: Lens' InventoryItemsListResponse [InventoryItem]
+iilrInventoryItems
+  = lens _iilrInventoryItems
+      (\ s a -> s{_iilrInventoryItems = a})
+      . _Default
+      . _Coerce
+
+-- | Pagination token to be used for the next list operation.
+iilrNextPageToken :: Lens' InventoryItemsListResponse (Maybe Text)
+iilrNextPageToken
+  = lens _iilrNextPageToken
+      (\ s a -> s{_iilrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#inventoryItemsListResponse\".
+iilrKind :: Lens' InventoryItemsListResponse Text
+iilrKind = lens _iilrKind (\ s a -> s{_iilrKind = a})
+
+instance FromJSON InventoryItemsListResponse where
+        parseJSON
+          = withObject "InventoryItemsListResponse"
+              (\ o ->
+                 InventoryItemsListResponse' <$>
+                   (o .:? "inventoryItems" .!= mempty) <*>
+                     (o .:? "nextPageToken")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#inventoryItemsListResponse"))
+
+instance ToJSON InventoryItemsListResponse where
+        toJSON InventoryItemsListResponse'{..}
+          = object
+              (catMaybes
+                 [("inventoryItems" .=) <$> _iilrInventoryItems,
+                  ("nextPageToken" .=) <$> _iilrNextPageToken,
+                  Just ("kind" .= _iilrKind)])
+
+-- | Contains properties of a DCM ad.
+--
+-- /See:/ 'ad' smart constructor.
+data Ad = Ad'
+    { _aCreativeGroupAssignments              :: !(Maybe [CreativeGroupAssignment])
+    , _aGeoTargeting                          :: !(Maybe GeoTargeting)
+    , _aCreativeRotation                      :: !(Maybe CreativeRotation)
+    , _aTechnologyTargeting                   :: !(Maybe TechnologyTargeting)
+    , _aAudienceSegmentId                     :: !(Maybe (Textual Int64))
+    , _aDayPartTargeting                      :: !(Maybe DayPartTargeting)
+    , _aSize                                  :: !(Maybe Size)
+    , _aStartTime                             :: !(Maybe DateTime')
+    , _aKind                                  :: !Text
+    , _aClickThroughURLSuffixProperties       :: !(Maybe ClickThroughURLSuffixProperties)
+    , _aCampaignIdDimensionValue              :: !(Maybe DimensionValue)
+    , _aAdvertiserId                          :: !(Maybe (Textual Int64))
+    , _aAdvertiserIdDimensionValue            :: !(Maybe DimensionValue)
+    , _aSSLCompliant                          :: !(Maybe Bool)
+    , _aCampaignId                            :: !(Maybe (Textual Int64))
+    , _aIdDimensionValue                      :: !(Maybe DimensionValue)
+    , _aClickThroughURL                       :: !(Maybe ClickThroughURL)
+    , _aDeliverySchedule                      :: !(Maybe DeliverySchedule)
+    , _aEventTagOverrides                     :: !(Maybe [EventTagOverride])
+    , _aActive                                :: !(Maybe Bool)
+    , _aAccountId                             :: !(Maybe (Textual Int64))
+    , _aName                                  :: !(Maybe Text)
+    , _aKeyValueTargetingExpression           :: !(Maybe KeyValueTargetingExpression)
+    , _aEndTime                               :: !(Maybe DateTime')
+    , _aCreateInfo                            :: !(Maybe LastModifiedInfo)
+    , _aLastModifiedInfo                      :: !(Maybe LastModifiedInfo)
+    , _aId                                    :: !(Maybe (Textual Int64))
+    , _aSSLRequired                           :: !(Maybe Bool)
+    , _aComments                              :: !(Maybe Text)
+    , _aSubAccountId                          :: !(Maybe (Textual Int64))
+    , _aType                                  :: !(Maybe AdType)
+    , _aRemarketingListExpression             :: !(Maybe ListTargetingExpression)
+    , _aDynamicClickTracker                   :: !(Maybe Bool)
+    , _aCompatibility                         :: !(Maybe AdCompatibility)
+    , _aArchived                              :: !(Maybe Bool)
+    , _aDefaultClickThroughEventTagProperties :: !(Maybe DefaultClickThroughEventTagProperties)
+    , _aPlacementAssignments                  :: !(Maybe [PlacementAssignment])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Ad' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aCreativeGroupAssignments'
+--
+-- * 'aGeoTargeting'
+--
+-- * 'aCreativeRotation'
+--
+-- * 'aTechnologyTargeting'
+--
+-- * 'aAudienceSegmentId'
+--
+-- * 'aDayPartTargeting'
+--
+-- * 'aSize'
+--
+-- * 'aStartTime'
+--
+-- * 'aKind'
+--
+-- * 'aClickThroughURLSuffixProperties'
+--
+-- * 'aCampaignIdDimensionValue'
+--
+-- * 'aAdvertiserId'
+--
+-- * 'aAdvertiserIdDimensionValue'
+--
+-- * 'aSSLCompliant'
+--
+-- * 'aCampaignId'
+--
+-- * 'aIdDimensionValue'
+--
+-- * 'aClickThroughURL'
+--
+-- * 'aDeliverySchedule'
+--
+-- * 'aEventTagOverrides'
+--
+-- * 'aActive'
+--
+-- * 'aAccountId'
+--
+-- * 'aName'
+--
+-- * 'aKeyValueTargetingExpression'
+--
+-- * 'aEndTime'
+--
+-- * 'aCreateInfo'
+--
+-- * 'aLastModifiedInfo'
+--
+-- * 'aId'
+--
+-- * 'aSSLRequired'
+--
+-- * 'aComments'
+--
+-- * 'aSubAccountId'
+--
+-- * 'aType'
+--
+-- * 'aRemarketingListExpression'
+--
+-- * 'aDynamicClickTracker'
+--
+-- * 'aCompatibility'
+--
+-- * 'aArchived'
+--
+-- * 'aDefaultClickThroughEventTagProperties'
+--
+-- * 'aPlacementAssignments'
+ad
+    :: Ad
+ad =
+    Ad'
+    { _aCreativeGroupAssignments = Nothing
+    , _aGeoTargeting = Nothing
+    , _aCreativeRotation = Nothing
+    , _aTechnologyTargeting = Nothing
+    , _aAudienceSegmentId = Nothing
+    , _aDayPartTargeting = Nothing
+    , _aSize = Nothing
+    , _aStartTime = Nothing
+    , _aKind = "dfareporting#ad"
+    , _aClickThroughURLSuffixProperties = Nothing
+    , _aCampaignIdDimensionValue = Nothing
+    , _aAdvertiserId = Nothing
+    , _aAdvertiserIdDimensionValue = Nothing
+    , _aSSLCompliant = Nothing
+    , _aCampaignId = Nothing
+    , _aIdDimensionValue = Nothing
+    , _aClickThroughURL = Nothing
+    , _aDeliverySchedule = Nothing
+    , _aEventTagOverrides = Nothing
+    , _aActive = Nothing
+    , _aAccountId = Nothing
+    , _aName = Nothing
+    , _aKeyValueTargetingExpression = Nothing
+    , _aEndTime = Nothing
+    , _aCreateInfo = Nothing
+    , _aLastModifiedInfo = Nothing
+    , _aId = Nothing
+    , _aSSLRequired = Nothing
+    , _aComments = Nothing
+    , _aSubAccountId = Nothing
+    , _aType = Nothing
+    , _aRemarketingListExpression = Nothing
+    , _aDynamicClickTracker = Nothing
+    , _aCompatibility = Nothing
+    , _aArchived = Nothing
+    , _aDefaultClickThroughEventTagProperties = Nothing
+    , _aPlacementAssignments = Nothing
+    }
+
+-- | Creative group assignments for this ad. Applicable when type is
+-- AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number
+-- is allowed for a maximum of two assignments.
+aCreativeGroupAssignments :: Lens' Ad [CreativeGroupAssignment]
+aCreativeGroupAssignments
+  = lens _aCreativeGroupAssignments
+      (\ s a -> s{_aCreativeGroupAssignments = a})
+      . _Default
+      . _Coerce
+
+-- | Geographical targeting information for this ad.Applicable when type is
+-- AD_SERVING_STANDARD_AD.
+aGeoTargeting :: Lens' Ad (Maybe GeoTargeting)
+aGeoTargeting
+  = lens _aGeoTargeting
+      (\ s a -> s{_aGeoTargeting = a})
+
+-- | Creative rotation for this ad. Applicable when type is
+-- AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING.
+-- When type is AD_SERVING_DEFAULT_AD, this field should have exactly one
+-- creativeAssignment.
+aCreativeRotation :: Lens' Ad (Maybe CreativeRotation)
+aCreativeRotation
+  = lens _aCreativeRotation
+      (\ s a -> s{_aCreativeRotation = a})
+
+-- | Technology platform targeting information for this ad. Applicable when
+-- type is AD_SERVING_STANDARD_AD.
+aTechnologyTargeting :: Lens' Ad (Maybe TechnologyTargeting)
+aTechnologyTargeting
+  = lens _aTechnologyTargeting
+      (\ s a -> s{_aTechnologyTargeting = a})
+
+-- | Audience segment ID that is being targeted for this ad. Applicable when
+-- type is AD_SERVING_STANDARD_AD.
+aAudienceSegmentId :: Lens' Ad (Maybe Int64)
+aAudienceSegmentId
+  = lens _aAudienceSegmentId
+      (\ s a -> s{_aAudienceSegmentId = a})
+      . mapping _Coerce
+
+-- | Time and day targeting information for this ad. Applicable when type is
+-- AD_SERVING_STANDARD_AD.
+aDayPartTargeting :: Lens' Ad (Maybe DayPartTargeting)
+aDayPartTargeting
+  = lens _aDayPartTargeting
+      (\ s a -> s{_aDayPartTargeting = a})
+
+-- | Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+aSize :: Lens' Ad (Maybe Size)
+aSize = lens _aSize (\ s a -> s{_aSize = a})
+
+-- | Date and time that this ad should start serving. If creating an ad, this
+-- field must be a time in the future. This is a required field on
+-- insertion.
+aStartTime :: Lens' Ad (Maybe UTCTime)
+aStartTime
+  = lens _aStartTime (\ s a -> s{_aStartTime = a}) .
+      mapping _DateTime
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#ad\".
+aKind :: Lens' Ad Text
+aKind = lens _aKind (\ s a -> s{_aKind = a})
+
+-- | Click-through URL suffix properties for this ad. Applies to the URL in
+-- the ad or (if overriding ad properties) the URL in the creative.
+aClickThroughURLSuffixProperties :: Lens' Ad (Maybe ClickThroughURLSuffixProperties)
+aClickThroughURLSuffixProperties
+  = lens _aClickThroughURLSuffixProperties
+      (\ s a -> s{_aClickThroughURLSuffixProperties = a})
+
+-- | Dimension value for the ID of the campaign. This is a read-only,
+-- auto-generated field.
+aCampaignIdDimensionValue :: Lens' Ad (Maybe DimensionValue)
+aCampaignIdDimensionValue
+  = lens _aCampaignIdDimensionValue
+      (\ s a -> s{_aCampaignIdDimensionValue = a})
+
+-- | Advertiser ID of this ad. This is a required field on insertion.
+aAdvertiserId :: Lens' Ad (Maybe Int64)
+aAdvertiserId
+  = lens _aAdvertiserId
+      (\ s a -> s{_aAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+aAdvertiserIdDimensionValue :: Lens' Ad (Maybe DimensionValue)
+aAdvertiserIdDimensionValue
+  = lens _aAdvertiserIdDimensionValue
+      (\ s a -> s{_aAdvertiserIdDimensionValue = a})
+
+-- | Whether this ad is ssl compliant. This is a read-only field that is
+-- auto-generated when the ad is inserted or updated.
+aSSLCompliant :: Lens' Ad (Maybe Bool)
+aSSLCompliant
+  = lens _aSSLCompliant
+      (\ s a -> s{_aSSLCompliant = a})
+
+-- | Campaign ID of this ad. This is a required field on insertion.
+aCampaignId :: Lens' Ad (Maybe Int64)
+aCampaignId
+  = lens _aCampaignId (\ s a -> s{_aCampaignId = a}) .
+      mapping _Coerce
+
+-- | Dimension value for the ID of this ad. This is a read-only,
+-- auto-generated field.
+aIdDimensionValue :: Lens' Ad (Maybe DimensionValue)
+aIdDimensionValue
+  = lens _aIdDimensionValue
+      (\ s a -> s{_aIdDimensionValue = a})
+
+-- | Click-through URL for this ad. This is a required field on insertion.
+-- Applicable when type is AD_SERVING_CLICK_TRACKER.
+aClickThroughURL :: Lens' Ad (Maybe ClickThroughURL)
+aClickThroughURL
+  = lens _aClickThroughURL
+      (\ s a -> s{_aClickThroughURL = a})
+
+-- | Delivery schedule information for this ad. Applicable when type is
+-- AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with
+-- subfields priority and impressionRatio are required on insertion when
+-- type is AD_SERVING_STANDARD_AD.
+aDeliverySchedule :: Lens' Ad (Maybe DeliverySchedule)
+aDeliverySchedule
+  = lens _aDeliverySchedule
+      (\ s a -> s{_aDeliverySchedule = a})
+
+-- | Event tag overrides for this ad.
+aEventTagOverrides :: Lens' Ad [EventTagOverride]
+aEventTagOverrides
+  = lens _aEventTagOverrides
+      (\ s a -> s{_aEventTagOverrides = a})
+      . _Default
+      . _Coerce
+
+-- | Whether this ad is active.
+aActive :: Lens' Ad (Maybe Bool)
+aActive = lens _aActive (\ s a -> s{_aActive = a})
+
+-- | Account ID of this ad. This is a read-only field that can be left blank.
+aAccountId :: Lens' Ad (Maybe Int64)
+aAccountId
+  = lens _aAccountId (\ s a -> s{_aAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this ad. This is a required field and must be less than 256
+-- characters long.
+aName :: Lens' Ad (Maybe Text)
+aName = lens _aName (\ s a -> s{_aName = a})
+
+-- | Key-value targeting information for this ad. Applicable when type is
+-- AD_SERVING_STANDARD_AD.
+aKeyValueTargetingExpression :: Lens' Ad (Maybe KeyValueTargetingExpression)
+aKeyValueTargetingExpression
+  = lens _aKeyValueTargetingExpression
+      (\ s a -> s{_aKeyValueTargetingExpression = a})
+
+-- | Date and time that this ad should stop serving. Must be later than the
+-- start time. This is a required field on insertion.
+aEndTime :: Lens' Ad (Maybe UTCTime)
+aEndTime
+  = lens _aEndTime (\ s a -> s{_aEndTime = a}) .
+      mapping _DateTime
+
+-- | Information about the creation of this ad.This is a read-only field.
+aCreateInfo :: Lens' Ad (Maybe LastModifiedInfo)
+aCreateInfo
+  = lens _aCreateInfo (\ s a -> s{_aCreateInfo = a})
+
+-- | Information about the most recent modification of this ad. This is a
+-- read-only field.
+aLastModifiedInfo :: Lens' Ad (Maybe LastModifiedInfo)
+aLastModifiedInfo
+  = lens _aLastModifiedInfo
+      (\ s a -> s{_aLastModifiedInfo = a})
+
+-- | ID of this ad. This is a read-only, auto-generated field.
+aId :: Lens' Ad (Maybe Int64)
+aId
+  = lens _aId (\ s a -> s{_aId = a}) . mapping _Coerce
+
+-- | Whether this ad requires ssl. This is a read-only field that is
+-- auto-generated when the ad is inserted or updated.
+aSSLRequired :: Lens' Ad (Maybe Bool)
+aSSLRequired
+  = lens _aSSLRequired (\ s a -> s{_aSSLRequired = a})
+
+-- | Comments for this ad.
+aComments :: Lens' Ad (Maybe Text)
+aComments
+  = lens _aComments (\ s a -> s{_aComments = a})
+
+-- | Subaccount ID of this ad. This is a read-only field that can be left
+-- blank.
+aSubAccountId :: Lens' Ad (Maybe Int64)
+aSubAccountId
+  = lens _aSubAccountId
+      (\ s a -> s{_aSubAccountId = a})
+      . mapping _Coerce
+
+-- | Type of ad. This is a required field on insertion. Note that default ads
+-- (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative
+-- resource).
+aType :: Lens' Ad (Maybe AdType)
+aType = lens _aType (\ s a -> s{_aType = a})
+
+-- | Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list
+-- targeting expression for this ad.
+aRemarketingListExpression :: Lens' Ad (Maybe ListTargetingExpression)
+aRemarketingListExpression
+  = lens _aRemarketingListExpression
+      (\ s a -> s{_aRemarketingListExpression = a})
+
+-- | Whether this ad is a dynamic click tracker. Applicable when type is
+-- AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is
+-- read-only after insert.
+aDynamicClickTracker :: Lens' Ad (Maybe Bool)
+aDynamicClickTracker
+  = lens _aDynamicClickTracker
+      (\ s a -> s{_aDynamicClickTracker = a})
+
+-- | Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+-- DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or
+-- on mobile devices or in mobile apps for regular or interstitial ads,
+-- respectively. APP and APP_INTERSTITIAL are only used for existing
+-- default ads. New mobile placements must be assigned DISPLAY or
+-- DISPLAY_INTERSTITIAL and default ads created for those placements will
+-- be limited to those compatibility types. IN_STREAM_VIDEO refers to
+-- rendering in-stream video ads developed with the VAST standard.
+aCompatibility :: Lens' Ad (Maybe AdCompatibility)
+aCompatibility
+  = lens _aCompatibility
+      (\ s a -> s{_aCompatibility = a})
+
+-- | Whether this ad is archived.
+aArchived :: Lens' Ad (Maybe Bool)
+aArchived
+  = lens _aArchived (\ s a -> s{_aArchived = a})
+
+-- | Default click-through event tag properties for this ad.
+aDefaultClickThroughEventTagProperties :: Lens' Ad (Maybe DefaultClickThroughEventTagProperties)
+aDefaultClickThroughEventTagProperties
+  = lens _aDefaultClickThroughEventTagProperties
+      (\ s a ->
+         s{_aDefaultClickThroughEventTagProperties = a})
+
+-- | Placement assignments for this ad.
+aPlacementAssignments :: Lens' Ad [PlacementAssignment]
+aPlacementAssignments
+  = lens _aPlacementAssignments
+      (\ s a -> s{_aPlacementAssignments = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Ad where
+        parseJSON
+          = withObject "Ad"
+              (\ o ->
+                 Ad' <$>
+                   (o .:? "creativeGroupAssignments" .!= mempty) <*>
+                     (o .:? "geoTargeting")
+                     <*> (o .:? "creativeRotation")
+                     <*> (o .:? "technologyTargeting")
+                     <*> (o .:? "audienceSegmentId")
+                     <*> (o .:? "dayPartTargeting")
+                     <*> (o .:? "size")
+                     <*> (o .:? "startTime")
+                     <*> (o .:? "kind" .!= "dfareporting#ad")
+                     <*> (o .:? "clickThroughUrlSuffixProperties")
+                     <*> (o .:? "campaignIdDimensionValue")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "campaignId")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "clickThroughUrl")
+                     <*> (o .:? "deliverySchedule")
+                     <*> (o .:? "eventTagOverrides" .!= mempty)
+                     <*> (o .:? "active")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "keyValueTargetingExpression")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "createInfo")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "sslRequired")
+                     <*> (o .:? "comments")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "remarketingListExpression")
+                     <*> (o .:? "dynamicClickTracker")
+                     <*> (o .:? "compatibility")
+                     <*> (o .:? "archived")
+                     <*> (o .:? "defaultClickThroughEventTagProperties")
+                     <*> (o .:? "placementAssignments" .!= mempty))
+
+instance ToJSON Ad where
+        toJSON Ad'{..}
+          = object
+              (catMaybes
+                 [("creativeGroupAssignments" .=) <$>
+                    _aCreativeGroupAssignments,
+                  ("geoTargeting" .=) <$> _aGeoTargeting,
+                  ("creativeRotation" .=) <$> _aCreativeRotation,
+                  ("technologyTargeting" .=) <$> _aTechnologyTargeting,
+                  ("audienceSegmentId" .=) <$> _aAudienceSegmentId,
+                  ("dayPartTargeting" .=) <$> _aDayPartTargeting,
+                  ("size" .=) <$> _aSize,
+                  ("startTime" .=) <$> _aStartTime,
+                  Just ("kind" .= _aKind),
+                  ("clickThroughUrlSuffixProperties" .=) <$>
+                    _aClickThroughURLSuffixProperties,
+                  ("campaignIdDimensionValue" .=) <$>
+                    _aCampaignIdDimensionValue,
+                  ("advertiserId" .=) <$> _aAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _aAdvertiserIdDimensionValue,
+                  ("sslCompliant" .=) <$> _aSSLCompliant,
+                  ("campaignId" .=) <$> _aCampaignId,
+                  ("idDimensionValue" .=) <$> _aIdDimensionValue,
+                  ("clickThroughUrl" .=) <$> _aClickThroughURL,
+                  ("deliverySchedule" .=) <$> _aDeliverySchedule,
+                  ("eventTagOverrides" .=) <$> _aEventTagOverrides,
+                  ("active" .=) <$> _aActive,
+                  ("accountId" .=) <$> _aAccountId,
+                  ("name" .=) <$> _aName,
+                  ("keyValueTargetingExpression" .=) <$>
+                    _aKeyValueTargetingExpression,
+                  ("endTime" .=) <$> _aEndTime,
+                  ("createInfo" .=) <$> _aCreateInfo,
+                  ("lastModifiedInfo" .=) <$> _aLastModifiedInfo,
+                  ("id" .=) <$> _aId,
+                  ("sslRequired" .=) <$> _aSSLRequired,
+                  ("comments" .=) <$> _aComments,
+                  ("subaccountId" .=) <$> _aSubAccountId,
+                  ("type" .=) <$> _aType,
+                  ("remarketingListExpression" .=) <$>
+                    _aRemarketingListExpression,
+                  ("dynamicClickTracker" .=) <$> _aDynamicClickTracker,
+                  ("compatibility" .=) <$> _aCompatibility,
+                  ("archived" .=) <$> _aArchived,
+                  ("defaultClickThroughEventTagProperties" .=) <$>
+                    _aDefaultClickThroughEventTagProperties,
+                  ("placementAssignments" .=) <$>
+                    _aPlacementAssignments])
+
+-- | Contains properties of a DoubleClick Planning project.
+--
+-- /See:/ 'project' smart constructor.
+data Project = Project'
+    { _pTargetClicks      :: !(Maybe (Textual Int64))
+    , _pClientBillingCode :: !(Maybe Text)
+    , _pTargetCpmNanos    :: !(Maybe (Textual Int64))
+    , _pTargetConversions :: !(Maybe (Textual Int64))
+    , _pBudget            :: !(Maybe (Textual Int64))
+    , _pKind              :: !Text
+    , _pAdvertiserId      :: !(Maybe (Textual Int64))
+    , _pEndDate           :: !(Maybe Date')
+    , _pOverview          :: !(Maybe Text)
+    , _pTargetImpressions :: !(Maybe (Textual Int64))
+    , _pStartDate         :: !(Maybe Date')
+    , _pTargetCpcNanos    :: !(Maybe (Textual Int64))
+    , _pAccountId         :: !(Maybe (Textual Int64))
+    , _pName              :: !(Maybe Text)
+    , _pLastModifiedInfo  :: !(Maybe LastModifiedInfo)
+    , _pId                :: !(Maybe (Textual Int64))
+    , _pAudienceAgeGroup  :: !(Maybe ProjectAudienceAgeGroup)
+    , _pSubAccountId      :: !(Maybe (Textual Int64))
+    , _pAudienceGender    :: !(Maybe ProjectAudienceGender)
+    , _pClientName        :: !(Maybe Text)
+    , _pTargetCpaNanos    :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Project' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pTargetClicks'
+--
+-- * 'pClientBillingCode'
+--
+-- * 'pTargetCpmNanos'
+--
+-- * 'pTargetConversions'
+--
+-- * 'pBudget'
+--
+-- * 'pKind'
+--
+-- * 'pAdvertiserId'
+--
+-- * 'pEndDate'
+--
+-- * 'pOverview'
+--
+-- * 'pTargetImpressions'
+--
+-- * 'pStartDate'
+--
+-- * 'pTargetCpcNanos'
+--
+-- * 'pAccountId'
+--
+-- * 'pName'
+--
+-- * 'pLastModifiedInfo'
+--
+-- * 'pId'
+--
+-- * 'pAudienceAgeGroup'
+--
+-- * 'pSubAccountId'
+--
+-- * 'pAudienceGender'
+--
+-- * 'pClientName'
+--
+-- * 'pTargetCpaNanos'
+project
+    :: Project
+project =
+    Project'
+    { _pTargetClicks = Nothing
+    , _pClientBillingCode = Nothing
+    , _pTargetCpmNanos = Nothing
+    , _pTargetConversions = Nothing
+    , _pBudget = Nothing
+    , _pKind = "dfareporting#project"
+    , _pAdvertiserId = Nothing
+    , _pEndDate = Nothing
+    , _pOverview = Nothing
+    , _pTargetImpressions = Nothing
+    , _pStartDate = Nothing
+    , _pTargetCpcNanos = Nothing
+    , _pAccountId = Nothing
+    , _pName = Nothing
+    , _pLastModifiedInfo = Nothing
+    , _pId = Nothing
+    , _pAudienceAgeGroup = Nothing
+    , _pSubAccountId = Nothing
+    , _pAudienceGender = Nothing
+    , _pClientName = Nothing
+    , _pTargetCpaNanos = Nothing
+    }
+
+-- | Number of clicks that the advertiser is targeting.
+pTargetClicks :: Lens' Project (Maybe Int64)
+pTargetClicks
+  = lens _pTargetClicks
+      (\ s a -> s{_pTargetClicks = a})
+      . mapping _Coerce
+
+-- | Client billing code of this project.
+pClientBillingCode :: Lens' Project (Maybe Text)
+pClientBillingCode
+  = lens _pClientBillingCode
+      (\ s a -> s{_pClientBillingCode = a})
+
+-- | CPM that the advertiser is targeting.
+pTargetCpmNanos :: Lens' Project (Maybe Int64)
+pTargetCpmNanos
+  = lens _pTargetCpmNanos
+      (\ s a -> s{_pTargetCpmNanos = a})
+      . mapping _Coerce
+
+-- | Number of conversions that the advertiser is targeting.
+pTargetConversions :: Lens' Project (Maybe Int64)
+pTargetConversions
+  = lens _pTargetConversions
+      (\ s a -> s{_pTargetConversions = a})
+      . mapping _Coerce
+
+-- | Budget of this project in the currency specified by the current account.
+-- The value stored in this field represents only the non-fractional
+-- amount. For example, for USD, the smallest value that can be represented
+-- by this field is 1 US dollar.
+pBudget :: Lens' Project (Maybe Int64)
+pBudget
+  = lens _pBudget (\ s a -> s{_pBudget = a}) .
+      mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#project\".
+pKind :: Lens' Project Text
+pKind = lens _pKind (\ s a -> s{_pKind = a})
+
+-- | Advertiser ID of this project.
+pAdvertiserId :: Lens' Project (Maybe Int64)
+pAdvertiserId
+  = lens _pAdvertiserId
+      (\ s a -> s{_pAdvertiserId = a})
+      . mapping _Coerce
+
+-- | End date of the project.
+pEndDate :: Lens' Project (Maybe Day)
+pEndDate
+  = lens _pEndDate (\ s a -> s{_pEndDate = a}) .
+      mapping _Date
+
+-- | Overview of this project.
+pOverview :: Lens' Project (Maybe Text)
+pOverview
+  = lens _pOverview (\ s a -> s{_pOverview = a})
+
+-- | Number of impressions that the advertiser is targeting.
+pTargetImpressions :: Lens' Project (Maybe Int64)
+pTargetImpressions
+  = lens _pTargetImpressions
+      (\ s a -> s{_pTargetImpressions = a})
+      . mapping _Coerce
+
+-- | Start date of the project.
+pStartDate :: Lens' Project (Maybe Day)
+pStartDate
+  = lens _pStartDate (\ s a -> s{_pStartDate = a}) .
+      mapping _Date
+
+-- | CPC that the advertiser is targeting.
+pTargetCpcNanos :: Lens' Project (Maybe Int64)
+pTargetCpcNanos
+  = lens _pTargetCpcNanos
+      (\ s a -> s{_pTargetCpcNanos = a})
+      . mapping _Coerce
+
+-- | Account ID of this project.
+pAccountId :: Lens' Project (Maybe Int64)
+pAccountId
+  = lens _pAccountId (\ s a -> s{_pAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this project.
+pName :: Lens' Project (Maybe Text)
+pName = lens _pName (\ s a -> s{_pName = a})
+
+-- | Information about the most recent modification of this project.
+pLastModifiedInfo :: Lens' Project (Maybe LastModifiedInfo)
+pLastModifiedInfo
+  = lens _pLastModifiedInfo
+      (\ s a -> s{_pLastModifiedInfo = a})
+
+-- | ID of this project. This is a read-only, auto-generated field.
+pId :: Lens' Project (Maybe Int64)
+pId
+  = lens _pId (\ s a -> s{_pId = a}) . mapping _Coerce
+
+-- | Audience age group of this project.
+pAudienceAgeGroup :: Lens' Project (Maybe ProjectAudienceAgeGroup)
+pAudienceAgeGroup
+  = lens _pAudienceAgeGroup
+      (\ s a -> s{_pAudienceAgeGroup = a})
+
+-- | Subaccount ID of this project.
+pSubAccountId :: Lens' Project (Maybe Int64)
+pSubAccountId
+  = lens _pSubAccountId
+      (\ s a -> s{_pSubAccountId = a})
+      . mapping _Coerce
+
+-- | Audience gender of this project.
+pAudienceGender :: Lens' Project (Maybe ProjectAudienceGender)
+pAudienceGender
+  = lens _pAudienceGender
+      (\ s a -> s{_pAudienceGender = a})
+
+-- | Name of the project client.
+pClientName :: Lens' Project (Maybe Text)
+pClientName
+  = lens _pClientName (\ s a -> s{_pClientName = a})
+
+-- | CPA that the advertiser is targeting.
+pTargetCpaNanos :: Lens' Project (Maybe Int64)
+pTargetCpaNanos
+  = lens _pTargetCpaNanos
+      (\ s a -> s{_pTargetCpaNanos = a})
+      . mapping _Coerce
+
+instance FromJSON Project where
+        parseJSON
+          = withObject "Project"
+              (\ o ->
+                 Project' <$>
+                   (o .:? "targetClicks") <*>
+                     (o .:? "clientBillingCode")
+                     <*> (o .:? "targetCpmNanos")
+                     <*> (o .:? "targetConversions")
+                     <*> (o .:? "budget")
+                     <*> (o .:? "kind" .!= "dfareporting#project")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "endDate")
+                     <*> (o .:? "overview")
+                     <*> (o .:? "targetImpressions")
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "targetCpcNanos")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "audienceAgeGroup")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "audienceGender")
+                     <*> (o .:? "clientName")
+                     <*> (o .:? "targetCpaNanos"))
+
+instance ToJSON Project where
+        toJSON Project'{..}
+          = object
+              (catMaybes
+                 [("targetClicks" .=) <$> _pTargetClicks,
+                  ("clientBillingCode" .=) <$> _pClientBillingCode,
+                  ("targetCpmNanos" .=) <$> _pTargetCpmNanos,
+                  ("targetConversions" .=) <$> _pTargetConversions,
+                  ("budget" .=) <$> _pBudget, Just ("kind" .= _pKind),
+                  ("advertiserId" .=) <$> _pAdvertiserId,
+                  ("endDate" .=) <$> _pEndDate,
+                  ("overview" .=) <$> _pOverview,
+                  ("targetImpressions" .=) <$> _pTargetImpressions,
+                  ("startDate" .=) <$> _pStartDate,
+                  ("targetCpcNanos" .=) <$> _pTargetCpcNanos,
+                  ("accountId" .=) <$> _pAccountId,
+                  ("name" .=) <$> _pName,
+                  ("lastModifiedInfo" .=) <$> _pLastModifiedInfo,
+                  ("id" .=) <$> _pId,
+                  ("audienceAgeGroup" .=) <$> _pAudienceAgeGroup,
+                  ("subaccountId" .=) <$> _pSubAccountId,
+                  ("audienceGender" .=) <$> _pAudienceGender,
+                  ("clientName" .=) <$> _pClientName,
+                  ("targetCpaNanos" .=) <$> _pTargetCpaNanos])
+
+-- | The report criteria for a report of type \"FLOODLIGHT\".
+--
+-- /See:/ 'reportFloodlightCriteria' smart constructor.
+data ReportFloodlightCriteria = ReportFloodlightCriteria'
+    { _rfcReportProperties      :: !(Maybe ReportFloodlightCriteriaReportProperties)
+    , _rfcMetricNames           :: !(Maybe [Text])
+    , _rfcCustomRichMediaEvents :: !(Maybe [DimensionValue])
+    , _rfcDimensionFilters      :: !(Maybe [DimensionValue])
+    , _rfcDateRange             :: !(Maybe DateRange)
+    , _rfcFloodlightConfigId    :: !(Maybe DimensionValue)
+    , _rfcDimensions            :: !(Maybe [SortedDimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportFloodlightCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rfcReportProperties'
+--
+-- * 'rfcMetricNames'
+--
+-- * 'rfcCustomRichMediaEvents'
+--
+-- * 'rfcDimensionFilters'
+--
+-- * 'rfcDateRange'
+--
+-- * 'rfcFloodlightConfigId'
+--
+-- * 'rfcDimensions'
+reportFloodlightCriteria
+    :: ReportFloodlightCriteria
+reportFloodlightCriteria =
+    ReportFloodlightCriteria'
+    { _rfcReportProperties = Nothing
+    , _rfcMetricNames = Nothing
+    , _rfcCustomRichMediaEvents = Nothing
+    , _rfcDimensionFilters = Nothing
+    , _rfcDateRange = Nothing
+    , _rfcFloodlightConfigId = Nothing
+    , _rfcDimensions = Nothing
+    }
+
+-- | The properties of the report.
+rfcReportProperties :: Lens' ReportFloodlightCriteria (Maybe ReportFloodlightCriteriaReportProperties)
+rfcReportProperties
+  = lens _rfcReportProperties
+      (\ s a -> s{_rfcReportProperties = a})
+
+-- | The list of names of metrics the report should include.
+rfcMetricNames :: Lens' ReportFloodlightCriteria [Text]
+rfcMetricNames
+  = lens _rfcMetricNames
+      (\ s a -> s{_rfcMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | The list of custom rich media events to include.
+rfcCustomRichMediaEvents :: Lens' ReportFloodlightCriteria [DimensionValue]
+rfcCustomRichMediaEvents
+  = lens _rfcCustomRichMediaEvents
+      (\ s a -> s{_rfcCustomRichMediaEvents = a})
+      . _Default
+      . _Coerce
+
+-- | The list of filters on which dimensions are filtered. Filters for
+-- different dimensions are ANDed, filters for the same dimension are
+-- grouped together and ORed.
+rfcDimensionFilters :: Lens' ReportFloodlightCriteria [DimensionValue]
+rfcDimensionFilters
+  = lens _rfcDimensionFilters
+      (\ s a -> s{_rfcDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | The date range this report should be run for.
+rfcDateRange :: Lens' ReportFloodlightCriteria (Maybe DateRange)
+rfcDateRange
+  = lens _rfcDateRange (\ s a -> s{_rfcDateRange = a})
+
+-- | The floodlight ID for which to show data in this report. All advertisers
+-- associated with that ID will automatically be added. The dimension of
+-- the value needs to be \'dfa:floodlightConfigId\'.
+rfcFloodlightConfigId :: Lens' ReportFloodlightCriteria (Maybe DimensionValue)
+rfcFloodlightConfigId
+  = lens _rfcFloodlightConfigId
+      (\ s a -> s{_rfcFloodlightConfigId = a})
+
+-- | The list of dimensions the report should include.
+rfcDimensions :: Lens' ReportFloodlightCriteria [SortedDimension]
+rfcDimensions
+  = lens _rfcDimensions
+      (\ s a -> s{_rfcDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportFloodlightCriteria where
+        parseJSON
+          = withObject "ReportFloodlightCriteria"
+              (\ o ->
+                 ReportFloodlightCriteria' <$>
+                   (o .:? "reportProperties") <*>
+                     (o .:? "metricNames" .!= mempty)
+                     <*> (o .:? "customRichMediaEvents" .!= mempty)
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "floodlightConfigId")
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON ReportFloodlightCriteria where
+        toJSON ReportFloodlightCriteria'{..}
+          = object
+              (catMaybes
+                 [("reportProperties" .=) <$> _rfcReportProperties,
+                  ("metricNames" .=) <$> _rfcMetricNames,
+                  ("customRichMediaEvents" .=) <$>
+                    _rfcCustomRichMediaEvents,
+                  ("dimensionFilters" .=) <$> _rfcDimensionFilters,
+                  ("dateRange" .=) <$> _rfcDateRange,
+                  ("floodlightConfigId" .=) <$> _rfcFloodlightConfigId,
+                  ("dimensions" .=) <$> _rfcDimensions])
+
+-- | Represents the dimensions of ads, placements, creatives, or creative
+-- assets.
+--
+-- /See:/ 'size' smart constructor.
+data Size = Size'
+    { _sHeight :: !(Maybe (Textual Int32))
+    , _sKind   :: !Text
+    , _sWidth  :: !(Maybe (Textual Int32))
+    , _sIab    :: !(Maybe Bool)
+    , _sId     :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Size' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sHeight'
+--
+-- * 'sKind'
+--
+-- * 'sWidth'
+--
+-- * 'sIab'
+--
+-- * 'sId'
+size
+    :: Size
+size =
+    Size'
+    { _sHeight = Nothing
+    , _sKind = "dfareporting#size"
+    , _sWidth = Nothing
+    , _sIab = Nothing
+    , _sId = Nothing
+    }
+
+-- | Height of this size.
+sHeight :: Lens' Size (Maybe Int32)
+sHeight
+  = lens _sHeight (\ s a -> s{_sHeight = a}) .
+      mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#size\".
+sKind :: Lens' Size Text
+sKind = lens _sKind (\ s a -> s{_sKind = a})
+
+-- | Width of this size.
+sWidth :: Lens' Size (Maybe Int32)
+sWidth
+  = lens _sWidth (\ s a -> s{_sWidth = a}) .
+      mapping _Coerce
+
+-- | IAB standard size. This is a read-only, auto-generated field.
+sIab :: Lens' Size (Maybe Bool)
+sIab = lens _sIab (\ s a -> s{_sIab = a})
+
+-- | ID of this size. This is a read-only, auto-generated field.
+sId :: Lens' Size (Maybe Int64)
+sId
+  = lens _sId (\ s a -> s{_sId = a}) . mapping _Coerce
+
+instance FromJSON Size where
+        parseJSON
+          = withObject "Size"
+              (\ o ->
+                 Size' <$>
+                   (o .:? "height") <*>
+                     (o .:? "kind" .!= "dfareporting#size")
+                     <*> (o .:? "width")
+                     <*> (o .:? "iab")
+                     <*> (o .:? "id"))
+
+instance ToJSON Size where
+        toJSON Size'{..}
+          = object
+              (catMaybes
+                 [("height" .=) <$> _sHeight, Just ("kind" .= _sKind),
+                  ("width" .=) <$> _sWidth, ("iab" .=) <$> _sIab,
+                  ("id" .=) <$> _sId])
+
+-- | Object Filter.
+--
+-- /See:/ 'objectFilter' smart constructor.
+data ObjectFilter = ObjectFilter'
+    { _ofStatus    :: !(Maybe ObjectFilterStatus)
+    , _ofKind      :: !Text
+    , _ofObjectIds :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ObjectFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ofStatus'
+--
+-- * 'ofKind'
+--
+-- * 'ofObjectIds'
+objectFilter
+    :: ObjectFilter
+objectFilter =
+    ObjectFilter'
+    { _ofStatus = Nothing
+    , _ofKind = "dfareporting#objectFilter"
+    , _ofObjectIds = Nothing
+    }
+
+-- | Status of the filter. NONE means the user has access to none of the
+-- objects. ALL means the user has access to all objects. ASSIGNED means
+-- the user has access to the objects with IDs in the objectIds list.
+ofStatus :: Lens' ObjectFilter (Maybe ObjectFilterStatus)
+ofStatus = lens _ofStatus (\ s a -> s{_ofStatus = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#objectFilter\".
+ofKind :: Lens' ObjectFilter Text
+ofKind = lens _ofKind (\ s a -> s{_ofKind = a})
+
+-- | Applicable when status is ASSIGNED. The user has access to objects with
+-- these object IDs.
+ofObjectIds :: Lens' ObjectFilter [Int64]
+ofObjectIds
+  = lens _ofObjectIds (\ s a -> s{_ofObjectIds = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ObjectFilter where
+        parseJSON
+          = withObject "ObjectFilter"
+              (\ o ->
+                 ObjectFilter' <$>
+                   (o .:? "status") <*>
+                     (o .:? "kind" .!= "dfareporting#objectFilter")
+                     <*> (o .:? "objectIds" .!= mempty))
+
+instance ToJSON ObjectFilter where
+        toJSON ObjectFilter'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _ofStatus,
+                  Just ("kind" .= _ofKind),
+                  ("objectIds" .=) <$> _ofObjectIds])
+
+-- | Reporting Configuration
+--
+-- /See:/ 'reportsConfiguration' smart constructor.
+data ReportsConfiguration = ReportsConfiguration'
+    { _rcExposureToConversionEnabled :: !(Maybe Bool)
+    , _rcReportGenerationTimeZoneId  :: !(Maybe (Textual Int64))
+    , _rcLookbackConfiguration       :: !(Maybe LookbackConfiguration)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportsConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcExposureToConversionEnabled'
+--
+-- * 'rcReportGenerationTimeZoneId'
+--
+-- * 'rcLookbackConfiguration'
+reportsConfiguration
+    :: ReportsConfiguration
+reportsConfiguration =
+    ReportsConfiguration'
+    { _rcExposureToConversionEnabled = Nothing
+    , _rcReportGenerationTimeZoneId = Nothing
+    , _rcLookbackConfiguration = Nothing
+    }
+
+-- | Whether the exposure to conversion report is enabled. This report shows
+-- detailed pathway information on up to 10 of the most recent ad exposures
+-- seen by a user before converting.
+rcExposureToConversionEnabled :: Lens' ReportsConfiguration (Maybe Bool)
+rcExposureToConversionEnabled
+  = lens _rcExposureToConversionEnabled
+      (\ s a -> s{_rcExposureToConversionEnabled = a})
+
+-- | Report generation time zone ID of this account. This is a required field
+-- that can only be changed by a superuser. Acceptable values are: - \"1\"
+-- for \"America\/New_York\" - \"2\" for \"Europe\/London\" - \"3\" for
+-- \"Europe\/Paris\" - \"4\" for \"Africa\/Johannesburg\" - \"5\" for
+-- \"Asia\/Jerusalem\" - \"6\" for \"Asia\/Shanghai\" - \"7\" for
+-- \"Asia\/Hong_Kong\" - \"8\" for \"Asia\/Tokyo\" - \"9\" for
+-- \"Australia\/Sydney\" - \"10\" for \"Asia\/Dubai\" - \"11\" for
+-- \"America\/Los_Angeles\" - \"12\" for \"Pacific\/Auckland\" - \"13\" for
+-- \"America\/Sao_Paulo\"
+rcReportGenerationTimeZoneId :: Lens' ReportsConfiguration (Maybe Int64)
+rcReportGenerationTimeZoneId
+  = lens _rcReportGenerationTimeZoneId
+      (\ s a -> s{_rcReportGenerationTimeZoneId = a})
+      . mapping _Coerce
+
+-- | Default lookback windows for new advertisers in this account.
+rcLookbackConfiguration :: Lens' ReportsConfiguration (Maybe LookbackConfiguration)
+rcLookbackConfiguration
+  = lens _rcLookbackConfiguration
+      (\ s a -> s{_rcLookbackConfiguration = a})
+
+instance FromJSON ReportsConfiguration where
+        parseJSON
+          = withObject "ReportsConfiguration"
+              (\ o ->
+                 ReportsConfiguration' <$>
+                   (o .:? "exposureToConversionEnabled") <*>
+                     (o .:? "reportGenerationTimeZoneId")
+                     <*> (o .:? "lookbackConfiguration"))
+
+instance ToJSON ReportsConfiguration where
+        toJSON ReportsConfiguration'{..}
+          = object
+              (catMaybes
+                 [("exposureToConversionEnabled" .=) <$>
+                    _rcExposureToConversionEnabled,
+                  ("reportGenerationTimeZoneId" .=) <$>
+                    _rcReportGenerationTimeZoneId,
+                  ("lookbackConfiguration" .=) <$>
+                    _rcLookbackConfiguration])
+
+-- | Pricing Schedule
+--
+-- /See:/ 'pricingSchedule' smart constructor.
+data PricingSchedule = PricingSchedule'
+    { _psTestingStartDate      :: !(Maybe Date')
+    , _psFloodlightActivityId  :: !(Maybe (Textual Int64))
+    , _psEndDate               :: !(Maybe Date')
+    , _psDisregardOverdelivery :: !(Maybe Bool)
+    , _psStartDate             :: !(Maybe Date')
+    , _psCapCostOption         :: !(Maybe PricingScheduleCapCostOption)
+    , _psPricingType           :: !(Maybe PricingSchedulePricingType)
+    , _psPricingPeriods        :: !(Maybe [PricingSchedulePricingPeriod])
+    , _psFlighted              :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PricingSchedule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psTestingStartDate'
+--
+-- * 'psFloodlightActivityId'
+--
+-- * 'psEndDate'
+--
+-- * 'psDisregardOverdelivery'
+--
+-- * 'psStartDate'
+--
+-- * 'psCapCostOption'
+--
+-- * 'psPricingType'
+--
+-- * 'psPricingPeriods'
+--
+-- * 'psFlighted'
+pricingSchedule
+    :: PricingSchedule
+pricingSchedule =
+    PricingSchedule'
+    { _psTestingStartDate = Nothing
+    , _psFloodlightActivityId = Nothing
+    , _psEndDate = Nothing
+    , _psDisregardOverdelivery = Nothing
+    , _psStartDate = Nothing
+    , _psCapCostOption = Nothing
+    , _psPricingType = Nothing
+    , _psPricingPeriods = Nothing
+    , _psFlighted = Nothing
+    }
+
+-- | Testing start date of this placement. The hours, minutes, and seconds of
+-- the start date should not be set, as doing so will result in an error.
+psTestingStartDate :: Lens' PricingSchedule (Maybe Day)
+psTestingStartDate
+  = lens _psTestingStartDate
+      (\ s a -> s{_psTestingStartDate = a})
+      . mapping _Date
+
+-- | Floodlight activity ID associated with this placement. This field should
+-- be set when placement pricing type is set to PRICING_TYPE_CPA.
+psFloodlightActivityId :: Lens' PricingSchedule (Maybe Int64)
+psFloodlightActivityId
+  = lens _psFloodlightActivityId
+      (\ s a -> s{_psFloodlightActivityId = a})
+      . mapping _Coerce
+
+-- | Placement end date. This date must be later than, or the same day as,
+-- the placement start date, but not later than the campaign end date. If,
+-- for example, you set 6\/25\/2015 as both the start and end dates, the
+-- effective placement date is just that day only, 6\/25\/2015. The hours,
+-- minutes, and seconds of the end date should not be set, as doing so will
+-- result in an error. This field is required on insertion.
+psEndDate :: Lens' PricingSchedule (Maybe Day)
+psEndDate
+  = lens _psEndDate (\ s a -> s{_psEndDate = a}) .
+      mapping _Date
+
+-- | Whether cap costs are ignored by ad serving.
+psDisregardOverdelivery :: Lens' PricingSchedule (Maybe Bool)
+psDisregardOverdelivery
+  = lens _psDisregardOverdelivery
+      (\ s a -> s{_psDisregardOverdelivery = a})
+
+-- | Placement start date. This date must be later than, or the same day as,
+-- the campaign start date. The hours, minutes, and seconds of the start
+-- date should not be set, as doing so will result in an error. This field
+-- is required on insertion.
+psStartDate :: Lens' PricingSchedule (Maybe Day)
+psStartDate
+  = lens _psStartDate (\ s a -> s{_psStartDate = a}) .
+      mapping _Date
+
+-- | Placement cap cost option.
+psCapCostOption :: Lens' PricingSchedule (Maybe PricingScheduleCapCostOption)
+psCapCostOption
+  = lens _psCapCostOption
+      (\ s a -> s{_psCapCostOption = a})
+
+-- | Placement pricing type. This field is required on insertion.
+psPricingType :: Lens' PricingSchedule (Maybe PricingSchedulePricingType)
+psPricingType
+  = lens _psPricingType
+      (\ s a -> s{_psPricingType = a})
+
+-- | Pricing periods for this placement.
+psPricingPeriods :: Lens' PricingSchedule [PricingSchedulePricingPeriod]
+psPricingPeriods
+  = lens _psPricingPeriods
+      (\ s a -> s{_psPricingPeriods = a})
+      . _Default
+      . _Coerce
+
+-- | Whether this placement is flighted. If true, pricing periods will be
+-- computed automatically.
+psFlighted :: Lens' PricingSchedule (Maybe Bool)
+psFlighted
+  = lens _psFlighted (\ s a -> s{_psFlighted = a})
+
+instance FromJSON PricingSchedule where
+        parseJSON
+          = withObject "PricingSchedule"
+              (\ o ->
+                 PricingSchedule' <$>
+                   (o .:? "testingStartDate") <*>
+                     (o .:? "floodlightActivityId")
+                     <*> (o .:? "endDate")
+                     <*> (o .:? "disregardOverdelivery")
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "capCostOption")
+                     <*> (o .:? "pricingType")
+                     <*> (o .:? "pricingPeriods" .!= mempty)
+                     <*> (o .:? "flighted"))
+
+instance ToJSON PricingSchedule where
+        toJSON PricingSchedule'{..}
+          = object
+              (catMaybes
+                 [("testingStartDate" .=) <$> _psTestingStartDate,
+                  ("floodlightActivityId" .=) <$>
+                    _psFloodlightActivityId,
+                  ("endDate" .=) <$> _psEndDate,
+                  ("disregardOverdelivery" .=) <$>
+                    _psDisregardOverdelivery,
+                  ("startDate" .=) <$> _psStartDate,
+                  ("capCostOption" .=) <$> _psCapCostOption,
+                  ("pricingType" .=) <$> _psPricingType,
+                  ("pricingPeriods" .=) <$> _psPricingPeriods,
+                  ("flighted" .=) <$> _psFlighted])
+
+-- | Contains information about a postal code that can be targeted by ads.
+--
+-- /See:/ 'postalCode' smart constructor.
+data PostalCode = PostalCode'
+    { _pcKind          :: !Text
+    , _pcCode          :: !(Maybe Text)
+    , _pcCountryCode   :: !(Maybe Text)
+    , _pcId            :: !(Maybe Text)
+    , _pcCountryDartId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PostalCode' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pcKind'
+--
+-- * 'pcCode'
+--
+-- * 'pcCountryCode'
+--
+-- * 'pcId'
+--
+-- * 'pcCountryDartId'
+postalCode
+    :: PostalCode
+postalCode =
+    PostalCode'
+    { _pcKind = "dfareporting#postalCode"
+    , _pcCode = Nothing
+    , _pcCountryCode = Nothing
+    , _pcId = Nothing
+    , _pcCountryDartId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#postalCode\".
+pcKind :: Lens' PostalCode Text
+pcKind = lens _pcKind (\ s a -> s{_pcKind = a})
+
+-- | Postal code. This is equivalent to the id field.
+pcCode :: Lens' PostalCode (Maybe Text)
+pcCode = lens _pcCode (\ s a -> s{_pcCode = a})
+
+-- | Country code of the country to which this postal code belongs.
+pcCountryCode :: Lens' PostalCode (Maybe Text)
+pcCountryCode
+  = lens _pcCountryCode
+      (\ s a -> s{_pcCountryCode = a})
+
+-- | ID of this postal code.
+pcId :: Lens' PostalCode (Maybe Text)
+pcId = lens _pcId (\ s a -> s{_pcId = a})
+
+-- | DART ID of the country to which this postal code belongs.
+pcCountryDartId :: Lens' PostalCode (Maybe Int64)
+pcCountryDartId
+  = lens _pcCountryDartId
+      (\ s a -> s{_pcCountryDartId = a})
+      . mapping _Coerce
+
+instance FromJSON PostalCode where
+        parseJSON
+          = withObject "PostalCode"
+              (\ o ->
+                 PostalCode' <$>
+                   (o .:? "kind" .!= "dfareporting#postalCode") <*>
+                     (o .:? "code")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "id")
+                     <*> (o .:? "countryDartId"))
+
+instance ToJSON PostalCode where
+        toJSON PostalCode'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _pcKind), ("code" .=) <$> _pcCode,
+                  ("countryCode" .=) <$> _pcCountryCode,
+                  ("id" .=) <$> _pcId,
+                  ("countryDartId" .=) <$> _pcCountryDartId])
+
+-- | Account Permission List Response
+--
+-- /See:/ 'accountPermissionsListResponse' smart constructor.
+data AccountPermissionsListResponse = AccountPermissionsListResponse'
+    { _aplrKind               :: !Text
+    , _aplrAccountPermissions :: !(Maybe [AccountPermission])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermissionsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aplrKind'
+--
+-- * 'aplrAccountPermissions'
+accountPermissionsListResponse
+    :: AccountPermissionsListResponse
+accountPermissionsListResponse =
+    AccountPermissionsListResponse'
+    { _aplrKind = "dfareporting#accountPermissionsListResponse"
+    , _aplrAccountPermissions = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountPermissionsListResponse\".
+aplrKind :: Lens' AccountPermissionsListResponse Text
+aplrKind = lens _aplrKind (\ s a -> s{_aplrKind = a})
+
+-- | Account permission collection.
+aplrAccountPermissions :: Lens' AccountPermissionsListResponse [AccountPermission]
+aplrAccountPermissions
+  = lens _aplrAccountPermissions
+      (\ s a -> s{_aplrAccountPermissions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON AccountPermissionsListResponse
+         where
+        parseJSON
+          = withObject "AccountPermissionsListResponse"
+              (\ o ->
+                 AccountPermissionsListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#accountPermissionsListResponse")
+                     <*> (o .:? "accountPermissions" .!= mempty))
+
+instance ToJSON AccountPermissionsListResponse where
+        toJSON AccountPermissionsListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _aplrKind),
+                  ("accountPermissions" .=) <$>
+                    _aplrAccountPermissions])
+
+-- | Contains information about a country that can be targeted by ads.
+--
+-- /See:/ 'country' smart constructor.
+data Country = Country'
+    { _cKind        :: !Text
+    , _cName        :: !(Maybe Text)
+    , _cCountryCode :: !(Maybe Text)
+    , _cDartId      :: !(Maybe (Textual Int64))
+    , _cSSLEnabled  :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Country' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cKind'
+--
+-- * 'cName'
+--
+-- * 'cCountryCode'
+--
+-- * 'cDartId'
+--
+-- * 'cSSLEnabled'
+country
+    :: Country
+country =
+    Country'
+    { _cKind = "dfareporting#country"
+    , _cName = Nothing
+    , _cCountryCode = Nothing
+    , _cDartId = Nothing
+    , _cSSLEnabled = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#country\".
+cKind :: Lens' Country Text
+cKind = lens _cKind (\ s a -> s{_cKind = a})
+
+-- | Name of this country.
+cName :: Lens' Country (Maybe Text)
+cName = lens _cName (\ s a -> s{_cName = a})
+
+-- | Country code.
+cCountryCode :: Lens' Country (Maybe Text)
+cCountryCode
+  = lens _cCountryCode (\ s a -> s{_cCountryCode = a})
+
+-- | DART ID of this country. This is the ID used for targeting and
+-- generating reports.
+cDartId :: Lens' Country (Maybe Int64)
+cDartId
+  = lens _cDartId (\ s a -> s{_cDartId = a}) .
+      mapping _Coerce
+
+-- | Whether ad serving supports secure servers in this country.
+cSSLEnabled :: Lens' Country (Maybe Bool)
+cSSLEnabled
+  = lens _cSSLEnabled (\ s a -> s{_cSSLEnabled = a})
+
+instance FromJSON Country where
+        parseJSON
+          = withObject "Country"
+              (\ o ->
+                 Country' <$>
+                   (o .:? "kind" .!= "dfareporting#country") <*>
+                     (o .:? "name")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "dartId")
+                     <*> (o .:? "sslEnabled"))
+
+instance ToJSON Country where
+        toJSON Country'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cKind), ("name" .=) <$> _cName,
+                  ("countryCode" .=) <$> _cCountryCode,
+                  ("dartId" .=) <$> _cDartId,
+                  ("sslEnabled" .=) <$> _cSSLEnabled])
+
+-- | Operating System Version List Response
+--
+-- /See:/ 'operatingSystemVersionsListResponse' smart constructor.
+data OperatingSystemVersionsListResponse = OperatingSystemVersionsListResponse'
+    { _osvlrKind                    :: !Text
+    , _osvlrOperatingSystemVersions :: !(Maybe [OperatingSystemVersion])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemVersionsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osvlrKind'
+--
+-- * 'osvlrOperatingSystemVersions'
+operatingSystemVersionsListResponse
+    :: OperatingSystemVersionsListResponse
+operatingSystemVersionsListResponse =
+    OperatingSystemVersionsListResponse'
+    { _osvlrKind = "dfareporting#operatingSystemVersionsListResponse"
+    , _osvlrOperatingSystemVersions = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#operatingSystemVersionsListResponse\".
+osvlrKind :: Lens' OperatingSystemVersionsListResponse Text
+osvlrKind
+  = lens _osvlrKind (\ s a -> s{_osvlrKind = a})
+
+-- | Operating system version collection.
+osvlrOperatingSystemVersions :: Lens' OperatingSystemVersionsListResponse [OperatingSystemVersion]
+osvlrOperatingSystemVersions
+  = lens _osvlrOperatingSystemVersions
+      (\ s a -> s{_osvlrOperatingSystemVersions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON OperatingSystemVersionsListResponse
+         where
+        parseJSON
+          = withObject "OperatingSystemVersionsListResponse"
+              (\ o ->
+                 OperatingSystemVersionsListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#operatingSystemVersionsListResponse")
+                     <*> (o .:? "operatingSystemVersions" .!= mempty))
+
+instance ToJSON OperatingSystemVersionsListResponse
+         where
+        toJSON OperatingSystemVersionsListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _osvlrKind),
+                  ("operatingSystemVersions" .=) <$>
+                    _osvlrOperatingSystemVersions])
+
+-- | Click Through URL Suffix settings.
+--
+-- /See:/ 'clickThroughURLSuffixProperties' smart constructor.
+data ClickThroughURLSuffixProperties = ClickThroughURLSuffixProperties'
+    { _ctuspOverrideInheritedSuffix :: !(Maybe Bool)
+    , _ctuspClickThroughURLSuffix   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ClickThroughURLSuffixProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctuspOverrideInheritedSuffix'
+--
+-- * 'ctuspClickThroughURLSuffix'
+clickThroughURLSuffixProperties
+    :: ClickThroughURLSuffixProperties
+clickThroughURLSuffixProperties =
+    ClickThroughURLSuffixProperties'
+    { _ctuspOverrideInheritedSuffix = Nothing
+    , _ctuspClickThroughURLSuffix = Nothing
+    }
+
+-- | Whether this entity should override the inherited click-through URL
+-- suffix with its own defined value.
+ctuspOverrideInheritedSuffix :: Lens' ClickThroughURLSuffixProperties (Maybe Bool)
+ctuspOverrideInheritedSuffix
+  = lens _ctuspOverrideInheritedSuffix
+      (\ s a -> s{_ctuspOverrideInheritedSuffix = a})
+
+-- | Click-through URL suffix to apply to all ads in this entity\'s scope.
+-- Must be less than 128 characters long.
+ctuspClickThroughURLSuffix :: Lens' ClickThroughURLSuffixProperties (Maybe Text)
+ctuspClickThroughURLSuffix
+  = lens _ctuspClickThroughURLSuffix
+      (\ s a -> s{_ctuspClickThroughURLSuffix = a})
+
+instance FromJSON ClickThroughURLSuffixProperties
+         where
+        parseJSON
+          = withObject "ClickThroughURLSuffixProperties"
+              (\ o ->
+                 ClickThroughURLSuffixProperties' <$>
+                   (o .:? "overrideInheritedSuffix") <*>
+                     (o .:? "clickThroughUrlSuffix"))
+
+instance ToJSON ClickThroughURLSuffixProperties where
+        toJSON ClickThroughURLSuffixProperties'{..}
+          = object
+              (catMaybes
+                 [("overrideInheritedSuffix" .=) <$>
+                    _ctuspOverrideInheritedSuffix,
+                  ("clickThroughUrlSuffix" .=) <$>
+                    _ctuspClickThroughURLSuffix])
+
+-- | Pricing Information
+--
+-- /See:/ 'pricing' smart constructor.
+data Pricing = Pricing'
+    { _priEndDate     :: !(Maybe Date')
+    , _priStartDate   :: !(Maybe Date')
+    , _priGroupType   :: !(Maybe PricingGroupType)
+    , _priPricingType :: !(Maybe PricingPricingType)
+    , _priFlights     :: !(Maybe [Flight])
+    , _priCapCostType :: !(Maybe PricingCapCostType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Pricing' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'priEndDate'
+--
+-- * 'priStartDate'
+--
+-- * 'priGroupType'
+--
+-- * 'priPricingType'
+--
+-- * 'priFlights'
+--
+-- * 'priCapCostType'
+pricing
+    :: Pricing
+pricing =
+    Pricing'
+    { _priEndDate = Nothing
+    , _priStartDate = Nothing
+    , _priGroupType = Nothing
+    , _priPricingType = Nothing
+    , _priFlights = Nothing
+    , _priCapCostType = Nothing
+    }
+
+-- | End date of this inventory item.
+priEndDate :: Lens' Pricing (Maybe Day)
+priEndDate
+  = lens _priEndDate (\ s a -> s{_priEndDate = a}) .
+      mapping _Date
+
+-- | Start date of this inventory item.
+priStartDate :: Lens' Pricing (Maybe Day)
+priStartDate
+  = lens _priStartDate (\ s a -> s{_priStartDate = a})
+      . mapping _Date
+
+-- | Group type of this inventory item if it represents a placement group. Is
+-- null otherwise. There are two type of placement groups:
+-- PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory
+-- items that acts as a single pricing point for a group of tags.
+-- PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items
+-- that not only acts as a single pricing point, but also assumes that all
+-- the tags in it will be served at the same time. A roadblock requires one
+-- of its assigned inventory items to be marked as primary.
+priGroupType :: Lens' Pricing (Maybe PricingGroupType)
+priGroupType
+  = lens _priGroupType (\ s a -> s{_priGroupType = a})
+
+-- | Pricing type of this inventory item.
+priPricingType :: Lens' Pricing (Maybe PricingPricingType)
+priPricingType
+  = lens _priPricingType
+      (\ s a -> s{_priPricingType = a})
+
+-- | Flights of this inventory item. A flight (a.k.a. pricing period)
+-- represents the inventory item pricing information for a specific period
+-- of time.
+priFlights :: Lens' Pricing [Flight]
+priFlights
+  = lens _priFlights (\ s a -> s{_priFlights = a}) .
+      _Default
+      . _Coerce
+
+-- | Cap cost type of this inventory item.
+priCapCostType :: Lens' Pricing (Maybe PricingCapCostType)
+priCapCostType
+  = lens _priCapCostType
+      (\ s a -> s{_priCapCostType = a})
+
+instance FromJSON Pricing where
+        parseJSON
+          = withObject "Pricing"
+              (\ o ->
+                 Pricing' <$>
+                   (o .:? "endDate") <*> (o .:? "startDate") <*>
+                     (o .:? "groupType")
+                     <*> (o .:? "pricingType")
+                     <*> (o .:? "flights" .!= mempty)
+                     <*> (o .:? "capCostType"))
+
+instance ToJSON Pricing where
+        toJSON Pricing'{..}
+          = object
+              (catMaybes
+                 [("endDate" .=) <$> _priEndDate,
+                  ("startDate" .=) <$> _priStartDate,
+                  ("groupType" .=) <$> _priGroupType,
+                  ("pricingType" .=) <$> _priPricingType,
+                  ("flights" .=) <$> _priFlights,
+                  ("capCostType" .=) <$> _priCapCostType])
+
+-- | Audience Segment Group.
+--
+-- /See:/ 'audienceSegmentGroup' smart constructor.
+data AudienceSegmentGroup = AudienceSegmentGroup'
+    { _asgAudienceSegments :: !(Maybe [AudienceSegment])
+    , _asgName             :: !(Maybe Text)
+    , _asgId               :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AudienceSegmentGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asgAudienceSegments'
+--
+-- * 'asgName'
+--
+-- * 'asgId'
+audienceSegmentGroup
+    :: AudienceSegmentGroup
+audienceSegmentGroup =
+    AudienceSegmentGroup'
+    { _asgAudienceSegments = Nothing
+    , _asgName = Nothing
+    , _asgId = Nothing
+    }
+
+-- | Audience segments assigned to this group. The number of segments must be
+-- between 2 and 100.
+asgAudienceSegments :: Lens' AudienceSegmentGroup [AudienceSegment]
+asgAudienceSegments
+  = lens _asgAudienceSegments
+      (\ s a -> s{_asgAudienceSegments = a})
+      . _Default
+      . _Coerce
+
+-- | Name of this audience segment group. This is a required field and must
+-- be less than 65 characters long.
+asgName :: Lens' AudienceSegmentGroup (Maybe Text)
+asgName = lens _asgName (\ s a -> s{_asgName = a})
+
+-- | ID of this audience segment group. This is a read-only, auto-generated
+-- field.
+asgId :: Lens' AudienceSegmentGroup (Maybe Int64)
+asgId
+  = lens _asgId (\ s a -> s{_asgId = a}) .
+      mapping _Coerce
+
+instance FromJSON AudienceSegmentGroup where
+        parseJSON
+          = withObject "AudienceSegmentGroup"
+              (\ o ->
+                 AudienceSegmentGroup' <$>
+                   (o .:? "audienceSegments" .!= mempty) <*>
+                     (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON AudienceSegmentGroup where
+        toJSON AudienceSegmentGroup'{..}
+          = object
+              (catMaybes
+                 [("audienceSegments" .=) <$> _asgAudienceSegments,
+                  ("name" .=) <$> _asgName, ("id" .=) <$> _asgId])
+
+-- | Contains information about an operating system that can be targeted by
+-- ads.
+--
+-- /See:/ 'operatingSystem' smart constructor.
+data OperatingSystem = OperatingSystem'
+    { _osDesktop :: !(Maybe Bool)
+    , _osKind    :: !Text
+    , _osName    :: !(Maybe Text)
+    , _osMobile  :: !(Maybe Bool)
+    , _osDartId  :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osDesktop'
+--
+-- * 'osKind'
+--
+-- * 'osName'
+--
+-- * 'osMobile'
+--
+-- * 'osDartId'
+operatingSystem
+    :: OperatingSystem
+operatingSystem =
+    OperatingSystem'
+    { _osDesktop = Nothing
+    , _osKind = "dfareporting#operatingSystem"
+    , _osName = Nothing
+    , _osMobile = Nothing
+    , _osDartId = Nothing
+    }
+
+-- | Whether this operating system is for desktop.
+osDesktop :: Lens' OperatingSystem (Maybe Bool)
+osDesktop
+  = lens _osDesktop (\ s a -> s{_osDesktop = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#operatingSystem\".
+osKind :: Lens' OperatingSystem Text
+osKind = lens _osKind (\ s a -> s{_osKind = a})
+
+-- | Name of this operating system.
+osName :: Lens' OperatingSystem (Maybe Text)
+osName = lens _osName (\ s a -> s{_osName = a})
+
+-- | Whether this operating system is for mobile.
+osMobile :: Lens' OperatingSystem (Maybe Bool)
+osMobile = lens _osMobile (\ s a -> s{_osMobile = a})
+
+-- | DART ID of this operating system. This is the ID used for targeting.
+osDartId :: Lens' OperatingSystem (Maybe Int64)
+osDartId
+  = lens _osDartId (\ s a -> s{_osDartId = a}) .
+      mapping _Coerce
+
+instance FromJSON OperatingSystem where
+        parseJSON
+          = withObject "OperatingSystem"
+              (\ o ->
+                 OperatingSystem' <$>
+                   (o .:? "desktop") <*>
+                     (o .:? "kind" .!= "dfareporting#operatingSystem")
+                     <*> (o .:? "name")
+                     <*> (o .:? "mobile")
+                     <*> (o .:? "dartId"))
+
+instance ToJSON OperatingSystem where
+        toJSON OperatingSystem'{..}
+          = object
+              (catMaybes
+                 [("desktop" .=) <$> _osDesktop,
+                  Just ("kind" .= _osKind), ("name" .=) <$> _osName,
+                  ("mobile" .=) <$> _osMobile,
+                  ("dartId" .=) <$> _osDartId])
+
+-- | Flight
+--
+-- /See:/ 'flight' smart constructor.
+data Flight = Flight'
+    { _fRateOrCost :: !(Maybe (Textual Int64))
+    , _fEndDate    :: !(Maybe Date')
+    , _fStartDate  :: !(Maybe Date')
+    , _fUnits      :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Flight' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fRateOrCost'
+--
+-- * 'fEndDate'
+--
+-- * 'fStartDate'
+--
+-- * 'fUnits'
+flight
+    :: Flight
+flight =
+    Flight'
+    { _fRateOrCost = Nothing
+    , _fEndDate = Nothing
+    , _fStartDate = Nothing
+    , _fUnits = Nothing
+    }
+
+-- | Rate or cost of this flight.
+fRateOrCost :: Lens' Flight (Maybe Int64)
+fRateOrCost
+  = lens _fRateOrCost (\ s a -> s{_fRateOrCost = a}) .
+      mapping _Coerce
+
+-- | Inventory item flight end date.
+fEndDate :: Lens' Flight (Maybe Day)
+fEndDate
+  = lens _fEndDate (\ s a -> s{_fEndDate = a}) .
+      mapping _Date
+
+-- | Inventory item flight start date.
+fStartDate :: Lens' Flight (Maybe Day)
+fStartDate
+  = lens _fStartDate (\ s a -> s{_fStartDate = a}) .
+      mapping _Date
+
+-- | Units of this flight.
+fUnits :: Lens' Flight (Maybe Int64)
+fUnits
+  = lens _fUnits (\ s a -> s{_fUnits = a}) .
+      mapping _Coerce
+
+instance FromJSON Flight where
+        parseJSON
+          = withObject "Flight"
+              (\ o ->
+                 Flight' <$>
+                   (o .:? "rateOrCost") <*> (o .:? "endDate") <*>
+                     (o .:? "startDate")
+                     <*> (o .:? "units"))
+
+instance ToJSON Flight where
+        toJSON Flight'{..}
+          = object
+              (catMaybes
+                 [("rateOrCost" .=) <$> _fRateOrCost,
+                  ("endDate" .=) <$> _fEndDate,
+                  ("startDate" .=) <$> _fStartDate,
+                  ("units" .=) <$> _fUnits])
+
+-- | City List Response
+--
+-- /See:/ 'citiesListResponse' smart constructor.
+data CitiesListResponse = CitiesListResponse'
+    { _citKind   :: !Text
+    , _citCities :: !(Maybe [City])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CitiesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'citKind'
+--
+-- * 'citCities'
+citiesListResponse
+    :: CitiesListResponse
+citiesListResponse =
+    CitiesListResponse'
+    { _citKind = "dfareporting#citiesListResponse"
+    , _citCities = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#citiesListResponse\".
+citKind :: Lens' CitiesListResponse Text
+citKind = lens _citKind (\ s a -> s{_citKind = a})
+
+-- | City collection.
+citCities :: Lens' CitiesListResponse [City]
+citCities
+  = lens _citCities (\ s a -> s{_citCities = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON CitiesListResponse where
+        parseJSON
+          = withObject "CitiesListResponse"
+              (\ o ->
+                 CitiesListResponse' <$>
+                   (o .:? "kind" .!= "dfareporting#citiesListResponse")
+                     <*> (o .:? "cities" .!= mempty))
+
+instance ToJSON CitiesListResponse where
+        toJSON CitiesListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _citKind),
+                  ("cities" .=) <$> _citCities])
+
+-- | Represents a dimension.
+--
+-- /See:/ 'dimension' smart constructor.
+data Dimension = Dimension'
+    { _dKind :: !Text
+    , _dName :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Dimension' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dKind'
+--
+-- * 'dName'
+dimension
+    :: Dimension
+dimension =
+    Dimension'
+    { _dKind = "dfareporting#dimension"
+    , _dName = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#dimension.
+dKind :: Lens' Dimension Text
+dKind = lens _dKind (\ s a -> s{_dKind = a})
+
+-- | The dimension name, e.g. dfa:advertiser
+dName :: Lens' Dimension (Maybe Text)
+dName = lens _dName (\ s a -> s{_dName = a})
+
+instance FromJSON Dimension where
+        parseJSON
+          = withObject "Dimension"
+              (\ o ->
+                 Dimension' <$>
+                   (o .:? "kind" .!= "dfareporting#dimension") <*>
+                     (o .:? "name"))
+
+instance ToJSON Dimension where
+        toJSON Dimension'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _dKind), ("name" .=) <$> _dName])
+
+-- | The report criteria for a report of type \"REACH\".
+--
+-- /See:/ 'reportReachCriteria' smart constructor.
+data ReportReachCriteria = ReportReachCriteria'
+    { _rrcReachByFrequencyMetricNames    :: !(Maybe [Text])
+    , _rrcEnableAllDimensionCombinations :: !(Maybe Bool)
+    , _rrcMetricNames                    :: !(Maybe [Text])
+    , _rrcCustomRichMediaEvents          :: !(Maybe CustomRichMediaEvents)
+    , _rrcDimensionFilters               :: !(Maybe [DimensionValue])
+    , _rrcActivities                     :: !(Maybe Activities)
+    , _rrcDateRange                      :: !(Maybe DateRange)
+    , _rrcDimensions                     :: !(Maybe [SortedDimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportReachCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rrcReachByFrequencyMetricNames'
+--
+-- * 'rrcEnableAllDimensionCombinations'
+--
+-- * 'rrcMetricNames'
+--
+-- * 'rrcCustomRichMediaEvents'
+--
+-- * 'rrcDimensionFilters'
+--
+-- * 'rrcActivities'
+--
+-- * 'rrcDateRange'
+--
+-- * 'rrcDimensions'
+reportReachCriteria
+    :: ReportReachCriteria
+reportReachCriteria =
+    ReportReachCriteria'
+    { _rrcReachByFrequencyMetricNames = Nothing
+    , _rrcEnableAllDimensionCombinations = Nothing
+    , _rrcMetricNames = Nothing
+    , _rrcCustomRichMediaEvents = Nothing
+    , _rrcDimensionFilters = Nothing
+    , _rrcActivities = Nothing
+    , _rrcDateRange = Nothing
+    , _rrcDimensions = Nothing
+    }
+
+-- | The list of names of Reach By Frequency metrics the report should
+-- include.
+rrcReachByFrequencyMetricNames :: Lens' ReportReachCriteria [Text]
+rrcReachByFrequencyMetricNames
+  = lens _rrcReachByFrequencyMetricNames
+      (\ s a -> s{_rrcReachByFrequencyMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | Whether to enable all reach dimension combinations in the report.
+-- Defaults to false. If enabled, the date range of the report should be
+-- within the last three months.
+rrcEnableAllDimensionCombinations :: Lens' ReportReachCriteria (Maybe Bool)
+rrcEnableAllDimensionCombinations
+  = lens _rrcEnableAllDimensionCombinations
+      (\ s a -> s{_rrcEnableAllDimensionCombinations = a})
+
+-- | The list of names of metrics the report should include.
+rrcMetricNames :: Lens' ReportReachCriteria [Text]
+rrcMetricNames
+  = lens _rrcMetricNames
+      (\ s a -> s{_rrcMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | Custom Rich Media Events group.
+rrcCustomRichMediaEvents :: Lens' ReportReachCriteria (Maybe CustomRichMediaEvents)
+rrcCustomRichMediaEvents
+  = lens _rrcCustomRichMediaEvents
+      (\ s a -> s{_rrcCustomRichMediaEvents = a})
+
+-- | The list of filters on which dimensions are filtered. Filters for
+-- different dimensions are ANDed, filters for the same dimension are
+-- grouped together and ORed.
+rrcDimensionFilters :: Lens' ReportReachCriteria [DimensionValue]
+rrcDimensionFilters
+  = lens _rrcDimensionFilters
+      (\ s a -> s{_rrcDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Activity group.
+rrcActivities :: Lens' ReportReachCriteria (Maybe Activities)
+rrcActivities
+  = lens _rrcActivities
+      (\ s a -> s{_rrcActivities = a})
+
+-- | The date range this report should be run for.
+rrcDateRange :: Lens' ReportReachCriteria (Maybe DateRange)
+rrcDateRange
+  = lens _rrcDateRange (\ s a -> s{_rrcDateRange = a})
+
+-- | The list of dimensions the report should include.
+rrcDimensions :: Lens' ReportReachCriteria [SortedDimension]
+rrcDimensions
+  = lens _rrcDimensions
+      (\ s a -> s{_rrcDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportReachCriteria where
+        parseJSON
+          = withObject "ReportReachCriteria"
+              (\ o ->
+                 ReportReachCriteria' <$>
+                   (o .:? "reachByFrequencyMetricNames" .!= mempty) <*>
+                     (o .:? "enableAllDimensionCombinations")
+                     <*> (o .:? "metricNames" .!= mempty)
+                     <*> (o .:? "customRichMediaEvents")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "activities")
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON ReportReachCriteria where
+        toJSON ReportReachCriteria'{..}
+          = object
+              (catMaybes
+                 [("reachByFrequencyMetricNames" .=) <$>
+                    _rrcReachByFrequencyMetricNames,
+                  ("enableAllDimensionCombinations" .=) <$>
+                    _rrcEnableAllDimensionCombinations,
+                  ("metricNames" .=) <$> _rrcMetricNames,
+                  ("customRichMediaEvents" .=) <$>
+                    _rrcCustomRichMediaEvents,
+                  ("dimensionFilters" .=) <$> _rrcDimensionFilters,
+                  ("activities" .=) <$> _rrcActivities,
+                  ("dateRange" .=) <$> _rrcDateRange,
+                  ("dimensions" .=) <$> _rrcDimensions])
+
+-- | Represents a Custom Rich Media Events group.
+--
+-- /See:/ 'customRichMediaEvents' smart constructor.
+data CustomRichMediaEvents = CustomRichMediaEvents'
+    { _crmeKind             :: !Text
+    , _crmeFilteredEventIds :: !(Maybe [DimensionValue])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CustomRichMediaEvents' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crmeKind'
+--
+-- * 'crmeFilteredEventIds'
+customRichMediaEvents
+    :: CustomRichMediaEvents
+customRichMediaEvents =
+    CustomRichMediaEvents'
+    { _crmeKind = "dfareporting#customRichMediaEvents"
+    , _crmeFilteredEventIds = Nothing
+    }
+
+-- | The kind of resource this is, in this case
+-- dfareporting#customRichMediaEvents.
+crmeKind :: Lens' CustomRichMediaEvents Text
+crmeKind = lens _crmeKind (\ s a -> s{_crmeKind = a})
+
+-- | List of custom rich media event IDs. Dimension values must be all of
+-- type dfa:richMediaEventTypeIdAndName.
+crmeFilteredEventIds :: Lens' CustomRichMediaEvents [DimensionValue]
+crmeFilteredEventIds
+  = lens _crmeFilteredEventIds
+      (\ s a -> s{_crmeFilteredEventIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CustomRichMediaEvents where
+        parseJSON
+          = withObject "CustomRichMediaEvents"
+              (\ o ->
+                 CustomRichMediaEvents' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#customRichMediaEvents")
+                     <*> (o .:? "filteredEventIds" .!= mempty))
+
+instance ToJSON CustomRichMediaEvents where
+        toJSON CustomRichMediaEvents'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _crmeKind),
+                  ("filteredEventIds" .=) <$> _crmeFilteredEventIds])
+
+-- | Targetable remarketing list response
+--
+-- /See:/ 'targetableRemarketingListsListResponse' smart constructor.
+data TargetableRemarketingListsListResponse = TargetableRemarketingListsListResponse'
+    { _trllrNextPageToken              :: !(Maybe Text)
+    , _trllrKind                       :: !Text
+    , _trllrTargetableRemarketingLists :: !(Maybe [TargetableRemarketingList])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetableRemarketingListsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trllrNextPageToken'
+--
+-- * 'trllrKind'
+--
+-- * 'trllrTargetableRemarketingLists'
+targetableRemarketingListsListResponse
+    :: TargetableRemarketingListsListResponse
+targetableRemarketingListsListResponse =
+    TargetableRemarketingListsListResponse'
+    { _trllrNextPageToken = Nothing
+    , _trllrKind = "dfareporting#targetableRemarketingListsListResponse"
+    , _trllrTargetableRemarketingLists = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+trllrNextPageToken :: Lens' TargetableRemarketingListsListResponse (Maybe Text)
+trllrNextPageToken
+  = lens _trllrNextPageToken
+      (\ s a -> s{_trllrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#targetableRemarketingListsListResponse\".
+trllrKind :: Lens' TargetableRemarketingListsListResponse Text
+trllrKind
+  = lens _trllrKind (\ s a -> s{_trllrKind = a})
+
+-- | Targetable remarketing list collection.
+trllrTargetableRemarketingLists :: Lens' TargetableRemarketingListsListResponse [TargetableRemarketingList]
+trllrTargetableRemarketingLists
+  = lens _trllrTargetableRemarketingLists
+      (\ s a -> s{_trllrTargetableRemarketingLists = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         TargetableRemarketingListsListResponse where
+        parseJSON
+          = withObject "TargetableRemarketingListsListResponse"
+              (\ o ->
+                 TargetableRemarketingListsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#targetableRemarketingListsListResponse")
+                     <*> (o .:? "targetableRemarketingLists" .!= mempty))
+
+instance ToJSON
+         TargetableRemarketingListsListResponse where
+        toJSON TargetableRemarketingListsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _trllrNextPageToken,
+                  Just ("kind" .= _trllrKind),
+                  ("targetableRemarketingLists" .=) <$>
+                    _trllrTargetableRemarketingLists])
+
+-- | Change Log List Response
+--
+-- /See:/ 'changeLogsListResponse' smart constructor.
+data ChangeLogsListResponse = ChangeLogsListResponse'
+    { _cllrNextPageToken :: !(Maybe Text)
+    , _cllrKind          :: !Text
+    , _cllrChangeLogs    :: !(Maybe [ChangeLog])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ChangeLogsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cllrNextPageToken'
+--
+-- * 'cllrKind'
+--
+-- * 'cllrChangeLogs'
+changeLogsListResponse
+    :: ChangeLogsListResponse
+changeLogsListResponse =
+    ChangeLogsListResponse'
+    { _cllrNextPageToken = Nothing
+    , _cllrKind = "dfareporting#changeLogsListResponse"
+    , _cllrChangeLogs = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+cllrNextPageToken :: Lens' ChangeLogsListResponse (Maybe Text)
+cllrNextPageToken
+  = lens _cllrNextPageToken
+      (\ s a -> s{_cllrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#changeLogsListResponse\".
+cllrKind :: Lens' ChangeLogsListResponse Text
+cllrKind = lens _cllrKind (\ s a -> s{_cllrKind = a})
+
+-- | Change log collection.
+cllrChangeLogs :: Lens' ChangeLogsListResponse [ChangeLog]
+cllrChangeLogs
+  = lens _cllrChangeLogs
+      (\ s a -> s{_cllrChangeLogs = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ChangeLogsListResponse where
+        parseJSON
+          = withObject "ChangeLogsListResponse"
+              (\ o ->
+                 ChangeLogsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#changeLogsListResponse")
+                     <*> (o .:? "changeLogs" .!= mempty))
+
+instance ToJSON ChangeLogsListResponse where
+        toJSON ChangeLogsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _cllrNextPageToken,
+                  Just ("kind" .= _cllrKind),
+                  ("changeLogs" .=) <$> _cllrChangeLogs])
+
+-- | AccountUserProfiles contains properties of a DCM user profile. This
+-- resource is specifically for managing user profiles, whereas
+-- UserProfiles is for accessing the API.
+--
+-- /See:/ 'accountUserProFile' smart constructor.
+data AccountUserProFile = AccountUserProFile'
+    { _aupfEmail            :: !(Maybe Text)
+    , _aupfUserRoleFilter   :: !(Maybe ObjectFilter)
+    , _aupfAdvertiserFilter :: !(Maybe ObjectFilter)
+    , _aupfUserRoleId       :: !(Maybe (Textual Int64))
+    , _aupfKind             :: !Text
+    , _aupfLocale           :: !(Maybe Text)
+    , _aupfSiteFilter       :: !(Maybe ObjectFilter)
+    , _aupfTraffickerType   :: !(Maybe AccountUserProFileTraffickerType)
+    , _aupfActive           :: !(Maybe Bool)
+    , _aupfAccountId        :: !(Maybe (Textual Int64))
+    , _aupfName             :: !(Maybe Text)
+    , _aupfId               :: !(Maybe (Textual Int64))
+    , _aupfUserAccessType   :: !(Maybe AccountUserProFileUserAccessType)
+    , _aupfComments         :: !(Maybe Text)
+    , _aupfSubAccountId     :: !(Maybe (Textual Int64))
+    , _aupfCampaignFilter   :: !(Maybe ObjectFilter)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountUserProFile' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aupfEmail'
+--
+-- * 'aupfUserRoleFilter'
+--
+-- * 'aupfAdvertiserFilter'
+--
+-- * 'aupfUserRoleId'
+--
+-- * 'aupfKind'
+--
+-- * 'aupfLocale'
+--
+-- * 'aupfSiteFilter'
+--
+-- * 'aupfTraffickerType'
+--
+-- * 'aupfActive'
+--
+-- * 'aupfAccountId'
+--
+-- * 'aupfName'
+--
+-- * 'aupfId'
+--
+-- * 'aupfUserAccessType'
+--
+-- * 'aupfComments'
+--
+-- * 'aupfSubAccountId'
+--
+-- * 'aupfCampaignFilter'
+accountUserProFile
+    :: AccountUserProFile
+accountUserProFile =
+    AccountUserProFile'
+    { _aupfEmail = Nothing
+    , _aupfUserRoleFilter = Nothing
+    , _aupfAdvertiserFilter = Nothing
+    , _aupfUserRoleId = Nothing
+    , _aupfKind = "dfareporting#accountUserProfile"
+    , _aupfLocale = Nothing
+    , _aupfSiteFilter = Nothing
+    , _aupfTraffickerType = Nothing
+    , _aupfActive = Nothing
+    , _aupfAccountId = Nothing
+    , _aupfName = Nothing
+    , _aupfId = Nothing
+    , _aupfUserAccessType = Nothing
+    , _aupfComments = Nothing
+    , _aupfSubAccountId = Nothing
+    , _aupfCampaignFilter = Nothing
+    }
+
+-- | Email of the user profile. The email addresss must be linked to a Google
+-- Account. This field is required on insertion and is read-only after
+-- insertion.
+aupfEmail :: Lens' AccountUserProFile (Maybe Text)
+aupfEmail
+  = lens _aupfEmail (\ s a -> s{_aupfEmail = a})
+
+-- | Filter that describes which user roles are visible to the user profile.
+aupfUserRoleFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
+aupfUserRoleFilter
+  = lens _aupfUserRoleFilter
+      (\ s a -> s{_aupfUserRoleFilter = a})
+
+-- | Filter that describes which advertisers are visible to the user profile.
+aupfAdvertiserFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
+aupfAdvertiserFilter
+  = lens _aupfAdvertiserFilter
+      (\ s a -> s{_aupfAdvertiserFilter = a})
+
+-- | User role ID of the user profile. This is a required field.
+aupfUserRoleId :: Lens' AccountUserProFile (Maybe Int64)
+aupfUserRoleId
+  = lens _aupfUserRoleId
+      (\ s a -> s{_aupfUserRoleId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountUserProfile\".
+aupfKind :: Lens' AccountUserProFile Text
+aupfKind = lens _aupfKind (\ s a -> s{_aupfKind = a})
+
+-- | Locale of the user profile. This is a required field. Acceptable values
+-- are: - \"cs\" (Czech) - \"de\" (German) - \"en\" (English) - \"en-GB\"
+-- (English United Kingdom) - \"es\" (Spanish) - \"fr\" (French) - \"it\"
+-- (Italian) - \"ja\" (Japanese) - \"ko\" (Korean) - \"pl\" (Polish) -
+-- \"pt-BR\" (Portuguese Brazil) - \"ru\" (Russian) - \"sv\" (Swedish) -
+-- \"tr\" (Turkish) - \"zh-CN\" (Chinese Simplified) - \"zh-TW\" (Chinese
+-- Traditional)
+aupfLocale :: Lens' AccountUserProFile (Maybe Text)
+aupfLocale
+  = lens _aupfLocale (\ s a -> s{_aupfLocale = a})
+
+-- | Filter that describes which sites are visible to the user profile.
+aupfSiteFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
+aupfSiteFilter
+  = lens _aupfSiteFilter
+      (\ s a -> s{_aupfSiteFilter = a})
+
+-- | Trafficker type of this user profile.
+aupfTraffickerType :: Lens' AccountUserProFile (Maybe AccountUserProFileTraffickerType)
+aupfTraffickerType
+  = lens _aupfTraffickerType
+      (\ s a -> s{_aupfTraffickerType = a})
+
+-- | Whether this user profile is active. This defaults to false, and must be
+-- set true on insert for the user profile to be usable.
+aupfActive :: Lens' AccountUserProFile (Maybe Bool)
+aupfActive
+  = lens _aupfActive (\ s a -> s{_aupfActive = a})
+
+-- | Account ID of the user profile. This is a read-only field that can be
+-- left blank.
+aupfAccountId :: Lens' AccountUserProFile (Maybe Int64)
+aupfAccountId
+  = lens _aupfAccountId
+      (\ s a -> s{_aupfAccountId = a})
+      . mapping _Coerce
+
+-- | Name of the user profile. This is a required field. Must be less than 64
+-- characters long, must be globally unique, and cannot contain whitespace
+-- or any of the following characters: \"&;\"#%,\".
+aupfName :: Lens' AccountUserProFile (Maybe Text)
+aupfName = lens _aupfName (\ s a -> s{_aupfName = a})
+
+-- | ID of the user profile. This is a read-only, auto-generated field.
+aupfId :: Lens' AccountUserProFile (Maybe Int64)
+aupfId
+  = lens _aupfId (\ s a -> s{_aupfId = a}) .
+      mapping _Coerce
+
+-- | User type of the user profile. This is a read-only field that can be
+-- left blank.
+aupfUserAccessType :: Lens' AccountUserProFile (Maybe AccountUserProFileUserAccessType)
+aupfUserAccessType
+  = lens _aupfUserAccessType
+      (\ s a -> s{_aupfUserAccessType = a})
+
+-- | Comments for this user profile.
+aupfComments :: Lens' AccountUserProFile (Maybe Text)
+aupfComments
+  = lens _aupfComments (\ s a -> s{_aupfComments = a})
+
+-- | Subaccount ID of the user profile. This is a read-only field that can be
+-- left blank.
+aupfSubAccountId :: Lens' AccountUserProFile (Maybe Int64)
+aupfSubAccountId
+  = lens _aupfSubAccountId
+      (\ s a -> s{_aupfSubAccountId = a})
+      . mapping _Coerce
+
+-- | Filter that describes which campaigns are visible to the user profile.
+aupfCampaignFilter :: Lens' AccountUserProFile (Maybe ObjectFilter)
+aupfCampaignFilter
+  = lens _aupfCampaignFilter
+      (\ s a -> s{_aupfCampaignFilter = a})
+
+instance FromJSON AccountUserProFile where
+        parseJSON
+          = withObject "AccountUserProFile"
+              (\ o ->
+                 AccountUserProFile' <$>
+                   (o .:? "email") <*> (o .:? "userRoleFilter") <*>
+                     (o .:? "advertiserFilter")
+                     <*> (o .:? "userRoleId")
+                     <*>
+                     (o .:? "kind" .!= "dfareporting#accountUserProfile")
+                     <*> (o .:? "locale")
+                     <*> (o .:? "siteFilter")
+                     <*> (o .:? "traffickerType")
+                     <*> (o .:? "active")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "userAccessType")
+                     <*> (o .:? "comments")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "campaignFilter"))
+
+instance ToJSON AccountUserProFile where
+        toJSON AccountUserProFile'{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _aupfEmail,
+                  ("userRoleFilter" .=) <$> _aupfUserRoleFilter,
+                  ("advertiserFilter" .=) <$> _aupfAdvertiserFilter,
+                  ("userRoleId" .=) <$> _aupfUserRoleId,
+                  Just ("kind" .= _aupfKind),
+                  ("locale" .=) <$> _aupfLocale,
+                  ("siteFilter" .=) <$> _aupfSiteFilter,
+                  ("traffickerType" .=) <$> _aupfTraffickerType,
+                  ("active" .=) <$> _aupfActive,
+                  ("accountId" .=) <$> _aupfAccountId,
+                  ("name" .=) <$> _aupfName, ("id" .=) <$> _aupfId,
+                  ("userAccessType" .=) <$> _aupfUserAccessType,
+                  ("comments" .=) <$> _aupfComments,
+                  ("subaccountId" .=) <$> _aupfSubAccountId,
+                  ("campaignFilter" .=) <$> _aupfCampaignFilter])
+
+-- | Represents a DimensionValue resource.
+--
+-- /See:/ 'dimensionValue' smart constructor.
+data DimensionValue = DimensionValue'
+    { _dvEtag          :: !(Maybe Text)
+    , _dvKind          :: !Text
+    , _dvValue         :: !(Maybe Text)
+    , _dvMatchType     :: !(Maybe DimensionValueMatchType)
+    , _dvDimensionName :: !(Maybe Text)
+    , _dvId            :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DimensionValue' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dvEtag'
+--
+-- * 'dvKind'
+--
+-- * 'dvValue'
+--
+-- * 'dvMatchType'
+--
+-- * 'dvDimensionName'
+--
+-- * 'dvId'
+dimensionValue
+    :: DimensionValue
+dimensionValue =
+    DimensionValue'
+    { _dvEtag = Nothing
+    , _dvKind = "dfareporting#dimensionValue"
+    , _dvValue = Nothing
+    , _dvMatchType = Nothing
+    , _dvDimensionName = Nothing
+    , _dvId = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+dvEtag :: Lens' DimensionValue (Maybe Text)
+dvEtag = lens _dvEtag (\ s a -> s{_dvEtag = a})
+
+-- | The kind of resource this is, in this case dfareporting#dimensionValue.
+dvKind :: Lens' DimensionValue Text
+dvKind = lens _dvKind (\ s a -> s{_dvKind = a})
+
+-- | The value of the dimension.
+dvValue :: Lens' DimensionValue (Maybe Text)
+dvValue = lens _dvValue (\ s a -> s{_dvValue = a})
+
+-- | Determines how the \'value\' field is matched when filtering. If not
+-- specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, \'*\' is
+-- allowed as a placeholder for variable length character sequences, and it
+-- can be escaped with a backslash. Note, only paid search dimensions
+-- (\'dfa:paidSearch*\') allow a matchType other than EXACT.
+dvMatchType :: Lens' DimensionValue (Maybe DimensionValueMatchType)
+dvMatchType
+  = lens _dvMatchType (\ s a -> s{_dvMatchType = a})
+
+-- | The name of the dimension.
+dvDimensionName :: Lens' DimensionValue (Maybe Text)
+dvDimensionName
+  = lens _dvDimensionName
+      (\ s a -> s{_dvDimensionName = a})
+
+-- | The ID associated with the value if available.
+dvId :: Lens' DimensionValue (Maybe Text)
+dvId = lens _dvId (\ s a -> s{_dvId = a})
+
+instance FromJSON DimensionValue where
+        parseJSON
+          = withObject "DimensionValue"
+              (\ o ->
+                 DimensionValue' <$>
+                   (o .:? "etag") <*>
+                     (o .:? "kind" .!= "dfareporting#dimensionValue")
+                     <*> (o .:? "value")
+                     <*> (o .:? "matchType")
+                     <*> (o .:? "dimensionName")
+                     <*> (o .:? "id"))
+
+instance ToJSON DimensionValue where
+        toJSON DimensionValue'{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _dvEtag, Just ("kind" .= _dvKind),
+                  ("value" .=) <$> _dvValue,
+                  ("matchType" .=) <$> _dvMatchType,
+                  ("dimensionName" .=) <$> _dvDimensionName,
+                  ("id" .=) <$> _dvId])
+
+-- | Represents an activity group.
+--
+-- /See:/ 'activities' smart constructor.
+data Activities = Activities'
+    { _actKind        :: !Text
+    , _actMetricNames :: !(Maybe [Text])
+    , _actFilters     :: !(Maybe [DimensionValue])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Activities' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'actKind'
+--
+-- * 'actMetricNames'
+--
+-- * 'actFilters'
+activities
+    :: Activities
+activities =
+    Activities'
+    { _actKind = "dfareporting#activities"
+    , _actMetricNames = Nothing
+    , _actFilters = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#activities.
+actKind :: Lens' Activities Text
+actKind = lens _actKind (\ s a -> s{_actKind = a})
+
+-- | List of names of floodlight activity metrics.
+actMetricNames :: Lens' Activities [Text]
+actMetricNames
+  = lens _actMetricNames
+      (\ s a -> s{_actMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | List of activity filters. The dimension values need to be all either of
+-- type \"dfa:activity\" or \"dfa:activityGroup\".
+actFilters :: Lens' Activities [DimensionValue]
+actFilters
+  = lens _actFilters (\ s a -> s{_actFilters = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON Activities where
+        parseJSON
+          = withObject "Activities"
+              (\ o ->
+                 Activities' <$>
+                   (o .:? "kind" .!= "dfareporting#activities") <*>
+                     (o .:? "metricNames" .!= mempty)
+                     <*> (o .:? "filters" .!= mempty))
+
+instance ToJSON Activities where
+        toJSON Activities'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _actKind),
+                  ("metricNames" .=) <$> _actMetricNames,
+                  ("filters" .=) <$> _actFilters])
+
+-- | User Role Permission Group List Response
+--
+-- /See:/ 'userRolePermissionGroupsListResponse' smart constructor.
+data UserRolePermissionGroupsListResponse = UserRolePermissionGroupsListResponse'
+    { _urpglrUserRolePermissionGroups :: !(Maybe [UserRolePermissionGroup])
+    , _urpglrKind                     :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermissionGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urpglrUserRolePermissionGroups'
+--
+-- * 'urpglrKind'
+userRolePermissionGroupsListResponse
+    :: UserRolePermissionGroupsListResponse
+userRolePermissionGroupsListResponse =
+    UserRolePermissionGroupsListResponse'
+    { _urpglrUserRolePermissionGroups = Nothing
+    , _urpglrKind = "dfareporting#userRolePermissionGroupsListResponse"
+    }
+
+-- | User role permission group collection.
+urpglrUserRolePermissionGroups :: Lens' UserRolePermissionGroupsListResponse [UserRolePermissionGroup]
+urpglrUserRolePermissionGroups
+  = lens _urpglrUserRolePermissionGroups
+      (\ s a -> s{_urpglrUserRolePermissionGroups = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRolePermissionGroupsListResponse\".
+urpglrKind :: Lens' UserRolePermissionGroupsListResponse Text
+urpglrKind
+  = lens _urpglrKind (\ s a -> s{_urpglrKind = a})
+
+instance FromJSON
+         UserRolePermissionGroupsListResponse where
+        parseJSON
+          = withObject "UserRolePermissionGroupsListResponse"
+              (\ o ->
+                 UserRolePermissionGroupsListResponse' <$>
+                   (o .:? "userRolePermissionGroups" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#userRolePermissionGroupsListResponse"))
+
+instance ToJSON UserRolePermissionGroupsListResponse
+         where
+        toJSON UserRolePermissionGroupsListResponse'{..}
+          = object
+              (catMaybes
+                 [("userRolePermissionGroups" .=) <$>
+                    _urpglrUserRolePermissionGroups,
+                  Just ("kind" .= _urpglrKind)])
+
+-- | Placement Tag
+--
+-- /See:/ 'placementTag' smart constructor.
+data PlacementTag = PlacementTag'
+    { _ptPlacementId :: !(Maybe (Textual Int64))
+    , _ptTagDatas    :: !(Maybe [TagData])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptPlacementId'
+--
+-- * 'ptTagDatas'
+placementTag
+    :: PlacementTag
+placementTag =
+    PlacementTag'
+    { _ptPlacementId = Nothing
+    , _ptTagDatas = Nothing
+    }
+
+-- | Placement ID
+ptPlacementId :: Lens' PlacementTag (Maybe Int64)
+ptPlacementId
+  = lens _ptPlacementId
+      (\ s a -> s{_ptPlacementId = a})
+      . mapping _Coerce
+
+-- | Tags generated for this placement.
+ptTagDatas :: Lens' PlacementTag [TagData]
+ptTagDatas
+  = lens _ptTagDatas (\ s a -> s{_ptTagDatas = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON PlacementTag where
+        parseJSON
+          = withObject "PlacementTag"
+              (\ o ->
+                 PlacementTag' <$>
+                   (o .:? "placementId") <*>
+                     (o .:? "tagDatas" .!= mempty))
+
+instance ToJSON PlacementTag where
+        toJSON PlacementTag'{..}
+          = object
+              (catMaybes
+                 [("placementId" .=) <$> _ptPlacementId,
+                  ("tagDatas" .=) <$> _ptTagDatas])
+
+-- | Remarketing list response
+--
+-- /See:/ 'remarketingListsListResponse' smart constructor.
+data RemarketingListsListResponse = RemarketingListsListResponse'
+    { _rllrNextPageToken    :: !(Maybe Text)
+    , _rllrRemarketingLists :: !(Maybe [RemarketingList])
+    , _rllrKind             :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rllrNextPageToken'
+--
+-- * 'rllrRemarketingLists'
+--
+-- * 'rllrKind'
+remarketingListsListResponse
+    :: RemarketingListsListResponse
+remarketingListsListResponse =
+    RemarketingListsListResponse'
+    { _rllrNextPageToken = Nothing
+    , _rllrRemarketingLists = Nothing
+    , _rllrKind = "dfareporting#remarketingListsListResponse"
+    }
+
+-- | Pagination token to be used for the next list operation.
+rllrNextPageToken :: Lens' RemarketingListsListResponse (Maybe Text)
+rllrNextPageToken
+  = lens _rllrNextPageToken
+      (\ s a -> s{_rllrNextPageToken = a})
+
+-- | Remarketing list collection.
+rllrRemarketingLists :: Lens' RemarketingListsListResponse [RemarketingList]
+rllrRemarketingLists
+  = lens _rllrRemarketingLists
+      (\ s a -> s{_rllrRemarketingLists = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#remarketingListsListResponse\".
+rllrKind :: Lens' RemarketingListsListResponse Text
+rllrKind = lens _rllrKind (\ s a -> s{_rllrKind = a})
+
+instance FromJSON RemarketingListsListResponse where
+        parseJSON
+          = withObject "RemarketingListsListResponse"
+              (\ o ->
+                 RemarketingListsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "remarketingLists" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#remarketingListsListResponse"))
+
+instance ToJSON RemarketingListsListResponse where
+        toJSON RemarketingListsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _rllrNextPageToken,
+                  ("remarketingLists" .=) <$> _rllrRemarketingLists,
+                  Just ("kind" .= _rllrKind)])
+
+-- | Contains properties of a dynamic targeting key. Dynamic targeting keys
+-- are unique, user-friendly labels, created at the advertiser level in
+-- DCM, that can be assigned to ads, creatives, and placements and used for
+-- targeting with DoubleClick Studio dynamic creatives. Use these labels
+-- instead of numeric DCM IDs (such as placement IDs) to save time and
+-- avoid errors in your dynamic feeds.
+--
+-- /See:/ 'dynamicTargetingKey' smart constructor.
+data DynamicTargetingKey = DynamicTargetingKey'
+    { _dtkObjectType :: !(Maybe DynamicTargetingKeyObjectType)
+    , _dtkKind       :: !Text
+    , _dtkObjectId   :: !(Maybe (Textual Int64))
+    , _dtkName       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DynamicTargetingKey' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtkObjectType'
+--
+-- * 'dtkKind'
+--
+-- * 'dtkObjectId'
+--
+-- * 'dtkName'
+dynamicTargetingKey
+    :: DynamicTargetingKey
+dynamicTargetingKey =
+    DynamicTargetingKey'
+    { _dtkObjectType = Nothing
+    , _dtkKind = "dfareporting#dynamicTargetingKey"
+    , _dtkObjectId = Nothing
+    , _dtkName = Nothing
+    }
+
+-- | Type of the object of this dynamic targeting key. This is a required
+-- field.
+dtkObjectType :: Lens' DynamicTargetingKey (Maybe DynamicTargetingKeyObjectType)
+dtkObjectType
+  = lens _dtkObjectType
+      (\ s a -> s{_dtkObjectType = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#dynamicTargetingKey\".
+dtkKind :: Lens' DynamicTargetingKey Text
+dtkKind = lens _dtkKind (\ s a -> s{_dtkKind = a})
+
+-- | ID of the object of this dynamic targeting key. This is a required
+-- field.
+dtkObjectId :: Lens' DynamicTargetingKey (Maybe Int64)
+dtkObjectId
+  = lens _dtkObjectId (\ s a -> s{_dtkObjectId = a}) .
+      mapping _Coerce
+
+-- | Name of this dynamic targeting key. This is a required field. Must be
+-- less than 256 characters long and cannot contain commas. All characters
+-- are converted to lowercase.
+dtkName :: Lens' DynamicTargetingKey (Maybe Text)
+dtkName = lens _dtkName (\ s a -> s{_dtkName = a})
+
+instance FromJSON DynamicTargetingKey where
+        parseJSON
+          = withObject "DynamicTargetingKey"
+              (\ o ->
+                 DynamicTargetingKey' <$>
+                   (o .:? "objectType") <*>
+                     (o .:? "kind" .!= "dfareporting#dynamicTargetingKey")
+                     <*> (o .:? "objectId")
+                     <*> (o .:? "name"))
+
+instance ToJSON DynamicTargetingKey where
+        toJSON DynamicTargetingKey'{..}
+          = object
+              (catMaybes
+                 [("objectType" .=) <$> _dtkObjectType,
+                  Just ("kind" .= _dtkKind),
+                  ("objectId" .=) <$> _dtkObjectId,
+                  ("name" .=) <$> _dtkName])
+
+-- | Contains properties of a Creative.
+--
+-- /See:/ 'creative' smart constructor.
+data Creative = Creative'
+    { _creConvertFlashToHTML5                 :: !(Maybe Bool)
+    , _creBackupImageTargetWindow             :: !(Maybe TargetWindow)
+    , _creRenderingIdDimensionValue           :: !(Maybe DimensionValue)
+    , _creCustomKeyValues                     :: !(Maybe [Text])
+    , _creVideoDuration                       :: !(Maybe (Textual Double))
+    , _creRenderingId                         :: !(Maybe (Textual Int64))
+    , _creThirdPartyBackupImageImpressionsURL :: !(Maybe Text)
+    , _creFsCommand                           :: !(Maybe FsCommand)
+    , _creAllowScriptAccess                   :: !(Maybe Bool)
+    , _creHTMLCodeLocked                      :: !(Maybe Bool)
+    , _creRequiredFlashPluginVersion          :: !(Maybe Text)
+    , _creAuthoringTool                       :: !(Maybe CreativeAuthoringTool)
+    , _creSize                                :: !(Maybe Size)
+    , _creThirdPartyURLs                      :: !(Maybe [ThirdPartyTrackingURL])
+    , _creCounterCustomEvents                 :: !(Maybe [CreativeCustomEvent])
+    , _creKind                                :: !Text
+    , _creSSLOverride                         :: !(Maybe Bool)
+    , _creHTMLCode                            :: !(Maybe Text)
+    , _creAdvertiserId                        :: !(Maybe (Textual Int64))
+    , _creRequiredFlashVersion                :: !(Maybe (Textual Int32))
+    , _creBackgRoundColor                     :: !(Maybe Text)
+    , _creAdTagKeys                           :: !(Maybe [Text])
+    , _creSkippable                           :: !(Maybe Bool)
+    , _creSSLCompliant                        :: !(Maybe Bool)
+    , _creIdDimensionValue                    :: !(Maybe DimensionValue)
+    , _creBackupImageReportingLabel           :: !(Maybe Text)
+    , _creCommercialId                        :: !(Maybe Text)
+    , _creActive                              :: !(Maybe Bool)
+    , _creExitCustomEvents                    :: !(Maybe [CreativeCustomEvent])
+    , _creAccountId                           :: !(Maybe (Textual Int64))
+    , _creBackupImageClickThroughURL          :: !(Maybe Text)
+    , _creName                                :: !(Maybe Text)
+    , _creOverrideCss                         :: !(Maybe Text)
+    , _creVideoDescription                    :: !(Maybe Text)
+    , _creClickTags                           :: !(Maybe [ClickTag])
+    , _creAdParameters                        :: !(Maybe Text)
+    , _creVersion                             :: !(Maybe (Textual Int32))
+    , _creLatestTraffickedCreativeId          :: !(Maybe (Textual Int64))
+    , _creThirdPartyRichMediaImpressionsURL   :: !(Maybe Text)
+    , _creLastModifiedInfo                    :: !(Maybe LastModifiedInfo)
+    , _creId                                  :: !(Maybe (Textual Int64))
+    , _creAuthoringSource                     :: !(Maybe CreativeAuthoringSource)
+    , _creStudioAdvertiserId                  :: !(Maybe (Textual Int64))
+    , _creCreativeAssets                      :: !(Maybe [CreativeAsset])
+    , _creSubAccountId                        :: !(Maybe (Textual Int64))
+    , _creType                                :: !(Maybe CreativeType)
+    , _creTimerCustomEvents                   :: !(Maybe [CreativeCustomEvent])
+    , _creStudioCreativeId                    :: !(Maybe (Textual Int64))
+    , _creCompatibility                       :: !(Maybe [CreativeCompatibilityItem])
+    , _creBackupImageFeatures                 :: !(Maybe [CreativeBackupImageFeaturesItem])
+    , _creArtworkType                         :: !(Maybe CreativeArtworkType)
+    , _creArchived                            :: !(Maybe Bool)
+    , _creCompanionCreatives                  :: !(Maybe [Textual Int64])
+    , _creTotalFileSize                       :: !(Maybe (Textual Int64))
+    , _creStudioTraffickedCreativeId          :: !(Maybe (Textual Int64))
+    , _creRedirectURL                         :: !(Maybe Text)
+    , _creAutoAdvanceImages                   :: !(Maybe Bool)
+    , _creCreativeFieldAssignments            :: !(Maybe [CreativeFieldAssignment])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Creative' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'creConvertFlashToHTML5'
+--
+-- * 'creBackupImageTargetWindow'
+--
+-- * 'creRenderingIdDimensionValue'
+--
+-- * 'creCustomKeyValues'
+--
+-- * 'creVideoDuration'
+--
+-- * 'creRenderingId'
+--
+-- * 'creThirdPartyBackupImageImpressionsURL'
+--
+-- * 'creFsCommand'
+--
+-- * 'creAllowScriptAccess'
+--
+-- * 'creHTMLCodeLocked'
+--
+-- * 'creRequiredFlashPluginVersion'
+--
+-- * 'creAuthoringTool'
+--
+-- * 'creSize'
+--
+-- * 'creThirdPartyURLs'
+--
+-- * 'creCounterCustomEvents'
+--
+-- * 'creKind'
+--
+-- * 'creSSLOverride'
+--
+-- * 'creHTMLCode'
+--
+-- * 'creAdvertiserId'
+--
+-- * 'creRequiredFlashVersion'
+--
+-- * 'creBackgRoundColor'
+--
+-- * 'creAdTagKeys'
+--
+-- * 'creSkippable'
+--
+-- * 'creSSLCompliant'
+--
+-- * 'creIdDimensionValue'
+--
+-- * 'creBackupImageReportingLabel'
+--
+-- * 'creCommercialId'
+--
+-- * 'creActive'
+--
+-- * 'creExitCustomEvents'
+--
+-- * 'creAccountId'
+--
+-- * 'creBackupImageClickThroughURL'
+--
+-- * 'creName'
+--
+-- * 'creOverrideCss'
+--
+-- * 'creVideoDescription'
+--
+-- * 'creClickTags'
+--
+-- * 'creAdParameters'
+--
+-- * 'creVersion'
+--
+-- * 'creLatestTraffickedCreativeId'
+--
+-- * 'creThirdPartyRichMediaImpressionsURL'
+--
+-- * 'creLastModifiedInfo'
+--
+-- * 'creId'
+--
+-- * 'creAuthoringSource'
+--
+-- * 'creStudioAdvertiserId'
+--
+-- * 'creCreativeAssets'
+--
+-- * 'creSubAccountId'
+--
+-- * 'creType'
+--
+-- * 'creTimerCustomEvents'
+--
+-- * 'creStudioCreativeId'
+--
+-- * 'creCompatibility'
+--
+-- * 'creBackupImageFeatures'
+--
+-- * 'creArtworkType'
+--
+-- * 'creArchived'
+--
+-- * 'creCompanionCreatives'
+--
+-- * 'creTotalFileSize'
+--
+-- * 'creStudioTraffickedCreativeId'
+--
+-- * 'creRedirectURL'
+--
+-- * 'creAutoAdvanceImages'
+--
+-- * 'creCreativeFieldAssignments'
+creative
+    :: Creative
+creative =
+    Creative'
+    { _creConvertFlashToHTML5 = Nothing
+    , _creBackupImageTargetWindow = Nothing
+    , _creRenderingIdDimensionValue = Nothing
+    , _creCustomKeyValues = Nothing
+    , _creVideoDuration = Nothing
+    , _creRenderingId = Nothing
+    , _creThirdPartyBackupImageImpressionsURL = Nothing
+    , _creFsCommand = Nothing
+    , _creAllowScriptAccess = Nothing
+    , _creHTMLCodeLocked = Nothing
+    , _creRequiredFlashPluginVersion = Nothing
+    , _creAuthoringTool = Nothing
+    , _creSize = Nothing
+    , _creThirdPartyURLs = Nothing
+    , _creCounterCustomEvents = Nothing
+    , _creKind = "dfareporting#creative"
+    , _creSSLOverride = Nothing
+    , _creHTMLCode = Nothing
+    , _creAdvertiserId = Nothing
+    , _creRequiredFlashVersion = Nothing
+    , _creBackgRoundColor = Nothing
+    , _creAdTagKeys = Nothing
+    , _creSkippable = Nothing
+    , _creSSLCompliant = Nothing
+    , _creIdDimensionValue = Nothing
+    , _creBackupImageReportingLabel = Nothing
+    , _creCommercialId = Nothing
+    , _creActive = Nothing
+    , _creExitCustomEvents = Nothing
+    , _creAccountId = Nothing
+    , _creBackupImageClickThroughURL = Nothing
+    , _creName = Nothing
+    , _creOverrideCss = Nothing
+    , _creVideoDescription = Nothing
+    , _creClickTags = Nothing
+    , _creAdParameters = Nothing
+    , _creVersion = Nothing
+    , _creLatestTraffickedCreativeId = Nothing
+    , _creThirdPartyRichMediaImpressionsURL = Nothing
+    , _creLastModifiedInfo = Nothing
+    , _creId = Nothing
+    , _creAuthoringSource = Nothing
+    , _creStudioAdvertiserId = Nothing
+    , _creCreativeAssets = Nothing
+    , _creSubAccountId = Nothing
+    , _creType = Nothing
+    , _creTimerCustomEvents = Nothing
+    , _creStudioCreativeId = Nothing
+    , _creCompatibility = Nothing
+    , _creBackupImageFeatures = Nothing
+    , _creArtworkType = Nothing
+    , _creArchived = Nothing
+    , _creCompanionCreatives = Nothing
+    , _creTotalFileSize = Nothing
+    , _creStudioTraffickedCreativeId = Nothing
+    , _creRedirectURL = Nothing
+    , _creAutoAdvanceImages = Nothing
+    , _creCreativeFieldAssignments = Nothing
+    }
+
+-- | Whether Flash assets associated with the creative need to be
+-- automatically converted to HTML5. This flag is enabled by default and
+-- users can choose to disable it if they don\'t want the system to
+-- generate and use HTML5 asset for this creative. Applicable to the
+-- following creative type: FLASH_INPAGE. Applicable to DISPLAY when the
+-- primary asset type is not HTML_IMAGE.
+creConvertFlashToHTML5 :: Lens' Creative (Maybe Bool)
+creConvertFlashToHTML5
+  = lens _creConvertFlashToHTML5
+      (\ s a -> s{_creConvertFlashToHTML5 = a})
+
+-- | Target window for backup image. Applicable to the following creative
+-- types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the
+-- primary asset type is not HTML_IMAGE.
+creBackupImageTargetWindow :: Lens' Creative (Maybe TargetWindow)
+creBackupImageTargetWindow
+  = lens _creBackupImageTargetWindow
+      (\ s a -> s{_creBackupImageTargetWindow = a})
+
+-- | Dimension value for the rendering ID of this creative. This is a
+-- read-only field. Applicable to all creative types.
+creRenderingIdDimensionValue :: Lens' Creative (Maybe DimensionValue)
+creRenderingIdDimensionValue
+  = lens _creRenderingIdDimensionValue
+      (\ s a -> s{_creRenderingIdDimensionValue = a})
+
+-- | Custom key-values for a Rich Media creative. Key-values let you
+-- customize the creative settings of a Rich Media ad running on your site
+-- without having to contact the advertiser. You can use key-values to
+-- dynamically change the look or functionality of a creative. Applicable
+-- to the following creative types: all RICH_MEDIA, and all VPAID.
+creCustomKeyValues :: Lens' Creative [Text]
+creCustomKeyValues
+  = lens _creCustomKeyValues
+      (\ s a -> s{_creCustomKeyValues = a})
+      . _Default
+      . _Coerce
+
+-- | Creative video duration in seconds. This is a read-only field.
+-- Applicable to the following creative types: INSTREAM_VIDEO, all
+-- RICH_MEDIA, and all VPAID.
+creVideoDuration :: Lens' Creative (Maybe Double)
+creVideoDuration
+  = lens _creVideoDuration
+      (\ s a -> s{_creVideoDuration = a})
+      . mapping _Coerce
+
+-- | ID of current rendering version. This is a read-only field. Applicable
+-- to all creative types.
+creRenderingId :: Lens' Creative (Maybe Int64)
+creRenderingId
+  = lens _creRenderingId
+      (\ s a -> s{_creRenderingId = a})
+      . mapping _Coerce
+
+-- | Third-party URL used to record backup image impressions. Applicable to
+-- the following creative types: all RICH_MEDIA.
+creThirdPartyBackupImageImpressionsURL :: Lens' Creative (Maybe Text)
+creThirdPartyBackupImageImpressionsURL
+  = lens _creThirdPartyBackupImageImpressionsURL
+      (\ s a ->
+         s{_creThirdPartyBackupImageImpressionsURL = a})
+
+-- | OpenWindow FSCommand of this creative. This lets the SWF file
+-- communicate with either Flash Player or the program hosting Flash
+-- Player, such as a web browser. This is only triggered if
+-- allowScriptAccess field is true. Applicable to the following creative
+-- types: FLASH_INPAGE.
+creFsCommand :: Lens' Creative (Maybe FsCommand)
+creFsCommand
+  = lens _creFsCommand (\ s a -> s{_creFsCommand = a})
+
+-- | Whether script access is allowed for this creative. This is a read-only
+-- and deprecated field which will automatically be set to true on update.
+-- Applicable to the following creative types: FLASH_INPAGE.
+creAllowScriptAccess :: Lens' Creative (Maybe Bool)
+creAllowScriptAccess
+  = lens _creAllowScriptAccess
+      (\ s a -> s{_creAllowScriptAccess = a})
+
+-- | Whether HTML code is DCM-generated or manually entered. Set to true to
+-- ignore changes to htmlCode. Applicable to the following creative types:
+-- FLASH_INPAGE and HTML5_BANNER.
+creHTMLCodeLocked :: Lens' Creative (Maybe Bool)
+creHTMLCodeLocked
+  = lens _creHTMLCodeLocked
+      (\ s a -> s{_creHTMLCodeLocked = a})
+
+-- | The minimum required Flash plugin version for this creative. For
+-- example, 11.2.202.235. This is a read-only field. Applicable to the
+-- following creative types: all RICH_MEDIA, and all VPAID.
+creRequiredFlashPluginVersion :: Lens' Creative (Maybe Text)
+creRequiredFlashPluginVersion
+  = lens _creRequiredFlashPluginVersion
+      (\ s a -> s{_creRequiredFlashPluginVersion = a})
+
+-- | Authoring tool for HTML5 banner creatives. This is a read-only field.
+-- Applicable to the following creative types: HTML5_BANNER.
+creAuthoringTool :: Lens' Creative (Maybe CreativeAuthoringTool)
+creAuthoringTool
+  = lens _creAuthoringTool
+      (\ s a -> s{_creAuthoringTool = a})
+
+-- | Size associated with this creative. When inserting or updating a
+-- creative either the size ID field or size width and height fields can be
+-- used. This is a required field when applicable; however for IMAGE,
+-- FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset
+-- of type HTML_IMAGE, if left blank, this field will be automatically set
+-- using the actual size of the associated image assets. Applicable to the
+-- following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE,
+-- HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+creSize :: Lens' Creative (Maybe Size)
+creSize = lens _creSize (\ s a -> s{_creSize = a})
+
+-- | Third-party URLs for tracking in-stream video creative events.
+-- Applicable to the following creative types: all INSTREAM_VIDEO and all
+-- VPAID.
+creThirdPartyURLs :: Lens' Creative [ThirdPartyTrackingURL]
+creThirdPartyURLs
+  = lens _creThirdPartyURLs
+      (\ s a -> s{_creThirdPartyURLs = a})
+      . _Default
+      . _Coerce
+
+-- | List of counter events configured for the creative. For
+-- DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated
+-- from clickTags. Applicable to the following creative types:
+-- DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
+creCounterCustomEvents :: Lens' Creative [CreativeCustomEvent]
+creCounterCustomEvents
+  = lens _creCounterCustomEvents
+      (\ s a -> s{_creCounterCustomEvents = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creative\".
+creKind :: Lens' Creative Text
+creKind = lens _creKind (\ s a -> s{_creKind = a})
+
+-- | Whether creative should be treated as SSL compliant even if the system
+-- scan shows it\'s not. Applicable to all creative types.
+creSSLOverride :: Lens' Creative (Maybe Bool)
+creSSLOverride
+  = lens _creSSLOverride
+      (\ s a -> s{_creSSLOverride = a})
+
+-- | HTML code for the creative. This is a required field when applicable.
+-- This field is ignored if htmlCodeLocked is false. Applicable to the
+-- following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER,
+-- and all RICH_MEDIA.
+creHTMLCode :: Lens' Creative (Maybe Text)
+creHTMLCode
+  = lens _creHTMLCode (\ s a -> s{_creHTMLCode = a})
+
+-- | Advertiser ID of this creative. This is a required field. Applicable to
+-- all creative types.
+creAdvertiserId :: Lens' Creative (Maybe Int64)
+creAdvertiserId
+  = lens _creAdvertiserId
+      (\ s a -> s{_creAdvertiserId = a})
+      . mapping _Coerce
+
+-- | The internal Flash version for this creative as calculated by
+-- DoubleClick Studio. This is a read-only field. Applicable to the
+-- following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID.
+-- Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
+creRequiredFlashVersion :: Lens' Creative (Maybe Int32)
+creRequiredFlashVersion
+  = lens _creRequiredFlashVersion
+      (\ s a -> s{_creRequiredFlashVersion = a})
+      . mapping _Coerce
+
+-- | The 6-character HTML color code, beginning with #, for the background of
+-- the window area where the Flash file is displayed. Default is white.
+-- Applicable to the following creative types: FLASH_INPAGE.
+creBackgRoundColor :: Lens' Creative (Maybe Text)
+creBackgRoundColor
+  = lens _creBackgRoundColor
+      (\ s a -> s{_creBackgRoundColor = a})
+
+-- | Keywords for a Rich Media creative. Keywords let you customize the
+-- creative settings of a Rich Media ad running on your site without having
+-- to contact the advertiser. You can use keywords to dynamically change
+-- the look or functionality of a creative. Applicable to the following
+-- creative types: all RICH_MEDIA, and all VPAID.
+creAdTagKeys :: Lens' Creative [Text]
+creAdTagKeys
+  = lens _creAdTagKeys (\ s a -> s{_creAdTagKeys = a})
+      . _Default
+      . _Coerce
+
+-- | Whether the user can choose to skip the creative. Applicable to the
+-- following creative types: all INSTREAM_VIDEO and all VPAID.
+creSkippable :: Lens' Creative (Maybe Bool)
+creSkippable
+  = lens _creSkippable (\ s a -> s{_creSkippable = a})
+
+-- | Whether the creative is SSL-compliant. This is a read-only field.
+-- Applicable to all creative types.
+creSSLCompliant :: Lens' Creative (Maybe Bool)
+creSSLCompliant
+  = lens _creSSLCompliant
+      (\ s a -> s{_creSSLCompliant = a})
+
+-- | Dimension value for the ID of this creative. This is a read-only field.
+-- Applicable to all creative types.
+creIdDimensionValue :: Lens' Creative (Maybe DimensionValue)
+creIdDimensionValue
+  = lens _creIdDimensionValue
+      (\ s a -> s{_creIdDimensionValue = a})
+
+-- | Reporting label used for HTML5 banner backup image. Applicable to the
+-- following creative types: DISPLAY when the primary asset type is not
+-- HTML_IMAGE.
+creBackupImageReportingLabel :: Lens' Creative (Maybe Text)
+creBackupImageReportingLabel
+  = lens _creBackupImageReportingLabel
+      (\ s a -> s{_creBackupImageReportingLabel = a})
+
+-- | Industry standard ID assigned to creative for reach and frequency.
+-- Applicable to the following creative types: all INSTREAM_VIDEO and all
+-- VPAID.
+creCommercialId :: Lens' Creative (Maybe Text)
+creCommercialId
+  = lens _creCommercialId
+      (\ s a -> s{_creCommercialId = a})
+
+-- | Whether the creative is active. Applicable to all creative types.
+creActive :: Lens' Creative (Maybe Bool)
+creActive
+  = lens _creActive (\ s a -> s{_creActive = a})
+
+-- | List of exit events configured for the creative. For DISPLAY and
+-- DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated
+-- from clickTags, For DISPLAY, an event is also created from the
+-- backupImageReportingLabel. Applicable to the following creative types:
+-- DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to
+-- DISPLAY when the primary asset type is not HTML_IMAGE.
+creExitCustomEvents :: Lens' Creative [CreativeCustomEvent]
+creExitCustomEvents
+  = lens _creExitCustomEvents
+      (\ s a -> s{_creExitCustomEvents = a})
+      . _Default
+      . _Coerce
+
+-- | Account ID of this creative. This field, if left unset, will be
+-- auto-generated for both insert and update operations. Applicable to all
+-- creative types.
+creAccountId :: Lens' Creative (Maybe Int64)
+creAccountId
+  = lens _creAccountId (\ s a -> s{_creAccountId = a})
+      . mapping _Coerce
+
+-- | Click-through URL for backup image. Applicable to the following creative
+-- types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the
+-- primary asset type is not HTML_IMAGE.
+creBackupImageClickThroughURL :: Lens' Creative (Maybe Text)
+creBackupImageClickThroughURL
+  = lens _creBackupImageClickThroughURL
+      (\ s a -> s{_creBackupImageClickThroughURL = a})
+
+-- | Name of the creative. This is a required field and must be less than 256
+-- characters long. Applicable to all creative types.
+creName :: Lens' Creative (Maybe Text)
+creName = lens _creName (\ s a -> s{_creName = a})
+
+-- | Override CSS value for rich media creatives. Applicable to the following
+-- creative types: all RICH_MEDIA.
+creOverrideCss :: Lens' Creative (Maybe Text)
+creOverrideCss
+  = lens _creOverrideCss
+      (\ s a -> s{_creOverrideCss = a})
+
+-- | Description of the video ad. Applicable to the following creative types:
+-- all INSTREAM_VIDEO and all VPAID.
+creVideoDescription :: Lens' Creative (Maybe Text)
+creVideoDescription
+  = lens _creVideoDescription
+      (\ s a -> s{_creVideoDescription = a})
+
+-- | Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER
+-- creatives, this is a subset of detected click tags for the assets
+-- associated with this creative. After creating a flash asset, detected
+-- click tags will be returned in the creativeAssetMetadata. When inserting
+-- the creative, populate the creative clickTags field using the
+-- creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY
+-- creatives, there should be exactly one entry in this list for each image
+-- creative asset. A click tag is matched with a corresponding creative
+-- asset by matching the clickTag.name field with the
+-- creativeAsset.assetIdentifier.name field. Applicable to the following
+-- creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER.
+-- Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
+creClickTags :: Lens' Creative [ClickTag]
+creClickTags
+  = lens _creClickTags (\ s a -> s{_creClickTags = a})
+      . _Default
+      . _Coerce
+
+-- | Ad parameters user for VPAID creative. This is a read-only field.
+-- Applicable to the following creative types: all VPAID.
+creAdParameters :: Lens' Creative (Maybe Text)
+creAdParameters
+  = lens _creAdParameters
+      (\ s a -> s{_creAdParameters = a})
+
+-- | The version number helps you keep track of multiple versions of your
+-- creative in your reports. The version number will always be
+-- auto-generated during insert operations to start at 1. For tracking
+-- creatives the version cannot be incremented and will always remain at 1.
+-- For all other creative types the version can be incremented only by 1
+-- during update operations. In addition, the version will be automatically
+-- incremented by 1 when undergoing Rich Media creative merging. Applicable
+-- to all creative types.
+creVersion :: Lens' Creative (Maybe Int32)
+creVersion
+  = lens _creVersion (\ s a -> s{_creVersion = a}) .
+      mapping _Coerce
+
+-- | Latest Studio trafficked creative ID associated with rich media and
+-- VPAID creatives. This is a read-only field. Applicable to the following
+-- creative types: all RICH_MEDIA, and all VPAID.
+creLatestTraffickedCreativeId :: Lens' Creative (Maybe Int64)
+creLatestTraffickedCreativeId
+  = lens _creLatestTraffickedCreativeId
+      (\ s a -> s{_creLatestTraffickedCreativeId = a})
+      . mapping _Coerce
+
+-- | Third-party URL used to record rich media impressions. Applicable to the
+-- following creative types: all RICH_MEDIA.
+creThirdPartyRichMediaImpressionsURL :: Lens' Creative (Maybe Text)
+creThirdPartyRichMediaImpressionsURL
+  = lens _creThirdPartyRichMediaImpressionsURL
+      (\ s a ->
+         s{_creThirdPartyRichMediaImpressionsURL = a})
+
+-- | Creative last modification information. This is a read-only field.
+-- Applicable to all creative types.
+creLastModifiedInfo :: Lens' Creative (Maybe LastModifiedInfo)
+creLastModifiedInfo
+  = lens _creLastModifiedInfo
+      (\ s a -> s{_creLastModifiedInfo = a})
+
+-- | ID of this creative. This is a read-only, auto-generated field.
+-- Applicable to all creative types.
+creId :: Lens' Creative (Maybe Int64)
+creId
+  = lens _creId (\ s a -> s{_creId = a}) .
+      mapping _Coerce
+
+-- | Source application where creative was authored. Presently, only DBM
+-- authored creatives will have this field set. Applicable to all creative
+-- types.
+creAuthoringSource :: Lens' Creative (Maybe CreativeAuthoringSource)
+creAuthoringSource
+  = lens _creAuthoringSource
+      (\ s a -> s{_creAuthoringSource = a})
+
+-- | Studio advertiser ID associated with rich media and VPAID creatives.
+-- This is a read-only field. Applicable to the following creative types:
+-- all RICH_MEDIA, and all VPAID.
+creStudioAdvertiserId :: Lens' Creative (Maybe Int64)
+creStudioAdvertiserId
+  = lens _creStudioAdvertiserId
+      (\ s a -> s{_creStudioAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Assets associated with a creative. Applicable to all but the following
+-- creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and
+-- REDIRECT
+creCreativeAssets :: Lens' Creative [CreativeAsset]
+creCreativeAssets
+  = lens _creCreativeAssets
+      (\ s a -> s{_creCreativeAssets = a})
+      . _Default
+      . _Coerce
+
+-- | Subaccount ID of this creative. This field, if left unset, will be
+-- auto-generated for both insert and update operations. Applicable to all
+-- creative types.
+creSubAccountId :: Lens' Creative (Maybe Int64)
+creSubAccountId
+  = lens _creSubAccountId
+      (\ s a -> s{_creSubAccountId = a})
+      . mapping _Coerce
+
+-- | Type of this creative.This is a required field. Applicable to all
+-- creative types.
+creType :: Lens' Creative (Maybe CreativeType)
+creType = lens _creType (\ s a -> s{_creType = a})
+
+-- | List of timer events configured for the creative. For
+-- DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated
+-- from clickTags. Applicable to the following creative types:
+-- DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to
+-- DISPLAY when the primary asset is not HTML_IMAGE.
+creTimerCustomEvents :: Lens' Creative [CreativeCustomEvent]
+creTimerCustomEvents
+  = lens _creTimerCustomEvents
+      (\ s a -> s{_creTimerCustomEvents = a})
+      . _Default
+      . _Coerce
+
+-- | Studio creative ID associated with rich media and VPAID creatives. This
+-- is a read-only field. Applicable to the following creative types: all
+-- RICH_MEDIA, and all VPAID.
+creStudioCreativeId :: Lens' Creative (Maybe Int64)
+creStudioCreativeId
+  = lens _creStudioCreativeId
+      (\ s a -> s{_creStudioCreativeId = a})
+      . mapping _Coerce
+
+-- | Compatibilities associated with this creative. This is a read-only
+-- field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on
+-- desktop or on mobile devices or in mobile apps for regular or
+-- interstitial ads, respectively. APP and APP_INTERSTITIAL are for
+-- rendering in mobile apps. Only pre-existing creatives may have these
+-- compatibilities since new creatives will either be assigned DISPLAY or
+-- DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in
+-- in-stream video ads developed with the VAST standard. Applicable to all
+-- creative types. Acceptable values are: - \"APP\" - \"APP_INTERSTITIAL\"
+-- - \"IN_STREAM_VIDEO\" - \"DISPLAY\" - \"DISPLAY_INTERSTITIAL\"
+creCompatibility :: Lens' Creative [CreativeCompatibilityItem]
+creCompatibility
+  = lens _creCompatibility
+      (\ s a -> s{_creCompatibility = a})
+      . _Default
+      . _Coerce
+
+-- | List of feature dependencies that will cause a backup image to be served
+-- if the browser that serves the ad does not support them. Feature
+-- dependencies are features that a browser must be able to support in
+-- order to render your HTML5 creative asset correctly. This field is
+-- initially auto-generated to contain all features detected by DCM for all
+-- the assets of this creative and can then be modified by the client. To
+-- reset this field, copy over all the creativeAssets\' detected features.
+-- Applicable to the following creative types: HTML5_BANNER. Applicable to
+-- DISPLAY when the primary asset type is not HTML_IMAGE.
+creBackupImageFeatures :: Lens' Creative [CreativeBackupImageFeaturesItem]
+creBackupImageFeatures
+  = lens _creBackupImageFeatures
+      (\ s a -> s{_creBackupImageFeatures = a})
+      . _Default
+      . _Coerce
+
+-- | Type of artwork used for the creative. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA, and all
+-- VPAID.
+creArtworkType :: Lens' Creative (Maybe CreativeArtworkType)
+creArtworkType
+  = lens _creArtworkType
+      (\ s a -> s{_creArtworkType = a})
+
+-- | Whether the creative is archived. Applicable to all creative types.
+creArchived :: Lens' Creative (Maybe Bool)
+creArchived
+  = lens _creArchived (\ s a -> s{_creArchived = a})
+
+-- | List of companion creatives assigned to an in-Stream videocreative.
+-- Acceptable values include IDs of existing flash and image creatives.
+-- Applicable to the following creative types: all INSTREAM_VIDEO and all
+-- VPAID.
+creCompanionCreatives :: Lens' Creative [Int64]
+creCompanionCreatives
+  = lens _creCompanionCreatives
+      (\ s a -> s{_creCompanionCreatives = a})
+      . _Default
+      . _Coerce
+
+-- | Combined size of all creative assets. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA, and all
+-- VPAID.
+creTotalFileSize :: Lens' Creative (Maybe Int64)
+creTotalFileSize
+  = lens _creTotalFileSize
+      (\ s a -> s{_creTotalFileSize = a})
+      . mapping _Coerce
+
+-- | Studio trafficked creative ID associated with rich media and VPAID
+-- creatives. This is a read-only field. Applicable to the following
+-- creative types: all RICH_MEDIA, and all VPAID.
+creStudioTraffickedCreativeId :: Lens' Creative (Maybe Int64)
+creStudioTraffickedCreativeId
+  = lens _creStudioTraffickedCreativeId
+      (\ s a -> s{_creStudioTraffickedCreativeId = a})
+      . mapping _Coerce
+
+-- | URL of hosted image or hosted video or another ad tag. For
+-- INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect
+-- URL. The standard for a VAST (Video Ad Serving Template) ad response
+-- allows for a redirect link to another VAST 2.0 or 3.0 call. This is a
+-- required field when applicable. Applicable to the following creative
+-- types: DISPLAY_REDIRECT, INTERNAL_REDIRECT,
+-- INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
+creRedirectURL :: Lens' Creative (Maybe Text)
+creRedirectURL
+  = lens _creRedirectURL
+      (\ s a -> s{_creRedirectURL = a})
+
+-- | Whether images are automatically advanced for enhanced image creatives.
+-- Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
+creAutoAdvanceImages :: Lens' Creative (Maybe Bool)
+creAutoAdvanceImages
+  = lens _creAutoAdvanceImages
+      (\ s a -> s{_creAutoAdvanceImages = a})
+
+-- | Creative field assignments for this creative. Applicable to all creative
+-- types.
+creCreativeFieldAssignments :: Lens' Creative [CreativeFieldAssignment]
+creCreativeFieldAssignments
+  = lens _creCreativeFieldAssignments
+      (\ s a -> s{_creCreativeFieldAssignments = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Creative where
+        parseJSON
+          = withObject "Creative"
+              (\ o ->
+                 Creative' <$>
+                   (o .:? "convertFlashToHtml5") <*>
+                     (o .:? "backupImageTargetWindow")
+                     <*> (o .:? "renderingIdDimensionValue")
+                     <*> (o .:? "customKeyValues" .!= mempty)
+                     <*> (o .:? "videoDuration")
+                     <*> (o .:? "renderingId")
+                     <*> (o .:? "thirdPartyBackupImageImpressionsUrl")
+                     <*> (o .:? "fsCommand")
+                     <*> (o .:? "allowScriptAccess")
+                     <*> (o .:? "htmlCodeLocked")
+                     <*> (o .:? "requiredFlashPluginVersion")
+                     <*> (o .:? "authoringTool")
+                     <*> (o .:? "size")
+                     <*> (o .:? "thirdPartyUrls" .!= mempty)
+                     <*> (o .:? "counterCustomEvents" .!= mempty)
+                     <*> (o .:? "kind" .!= "dfareporting#creative")
+                     <*> (o .:? "sslOverride")
+                     <*> (o .:? "htmlCode")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "requiredFlashVersion")
+                     <*> (o .:? "backgroundColor")
+                     <*> (o .:? "adTagKeys" .!= mempty)
+                     <*> (o .:? "skippable")
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "backupImageReportingLabel")
+                     <*> (o .:? "commercialId")
+                     <*> (o .:? "active")
+                     <*> (o .:? "exitCustomEvents" .!= mempty)
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "backupImageClickThroughUrl")
+                     <*> (o .:? "name")
+                     <*> (o .:? "overrideCss")
+                     <*> (o .:? "videoDescription")
+                     <*> (o .:? "clickTags" .!= mempty)
+                     <*> (o .:? "adParameters")
+                     <*> (o .:? "version")
+                     <*> (o .:? "latestTraffickedCreativeId")
+                     <*> (o .:? "thirdPartyRichMediaImpressionsUrl")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "authoringSource")
+                     <*> (o .:? "studioAdvertiserId")
+                     <*> (o .:? "creativeAssets" .!= mempty)
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "timerCustomEvents" .!= mempty)
+                     <*> (o .:? "studioCreativeId")
+                     <*> (o .:? "compatibility" .!= mempty)
+                     <*> (o .:? "backupImageFeatures" .!= mempty)
+                     <*> (o .:? "artworkType")
+                     <*> (o .:? "archived")
+                     <*> (o .:? "companionCreatives" .!= mempty)
+                     <*> (o .:? "totalFileSize")
+                     <*> (o .:? "studioTraffickedCreativeId")
+                     <*> (o .:? "redirectUrl")
+                     <*> (o .:? "auto_advance_images")
+                     <*> (o .:? "creativeFieldAssignments" .!= mempty))
+
+instance ToJSON Creative where
+        toJSON Creative'{..}
+          = object
+              (catMaybes
+                 [("convertFlashToHtml5" .=) <$>
+                    _creConvertFlashToHTML5,
+                  ("backupImageTargetWindow" .=) <$>
+                    _creBackupImageTargetWindow,
+                  ("renderingIdDimensionValue" .=) <$>
+                    _creRenderingIdDimensionValue,
+                  ("customKeyValues" .=) <$> _creCustomKeyValues,
+                  ("videoDuration" .=) <$> _creVideoDuration,
+                  ("renderingId" .=) <$> _creRenderingId,
+                  ("thirdPartyBackupImageImpressionsUrl" .=) <$>
+                    _creThirdPartyBackupImageImpressionsURL,
+                  ("fsCommand" .=) <$> _creFsCommand,
+                  ("allowScriptAccess" .=) <$> _creAllowScriptAccess,
+                  ("htmlCodeLocked" .=) <$> _creHTMLCodeLocked,
+                  ("requiredFlashPluginVersion" .=) <$>
+                    _creRequiredFlashPluginVersion,
+                  ("authoringTool" .=) <$> _creAuthoringTool,
+                  ("size" .=) <$> _creSize,
+                  ("thirdPartyUrls" .=) <$> _creThirdPartyURLs,
+                  ("counterCustomEvents" .=) <$>
+                    _creCounterCustomEvents,
+                  Just ("kind" .= _creKind),
+                  ("sslOverride" .=) <$> _creSSLOverride,
+                  ("htmlCode" .=) <$> _creHTMLCode,
+                  ("advertiserId" .=) <$> _creAdvertiserId,
+                  ("requiredFlashVersion" .=) <$>
+                    _creRequiredFlashVersion,
+                  ("backgroundColor" .=) <$> _creBackgRoundColor,
+                  ("adTagKeys" .=) <$> _creAdTagKeys,
+                  ("skippable" .=) <$> _creSkippable,
+                  ("sslCompliant" .=) <$> _creSSLCompliant,
+                  ("idDimensionValue" .=) <$> _creIdDimensionValue,
+                  ("backupImageReportingLabel" .=) <$>
+                    _creBackupImageReportingLabel,
+                  ("commercialId" .=) <$> _creCommercialId,
+                  ("active" .=) <$> _creActive,
+                  ("exitCustomEvents" .=) <$> _creExitCustomEvents,
+                  ("accountId" .=) <$> _creAccountId,
+                  ("backupImageClickThroughUrl" .=) <$>
+                    _creBackupImageClickThroughURL,
+                  ("name" .=) <$> _creName,
+                  ("overrideCss" .=) <$> _creOverrideCss,
+                  ("videoDescription" .=) <$> _creVideoDescription,
+                  ("clickTags" .=) <$> _creClickTags,
+                  ("adParameters" .=) <$> _creAdParameters,
+                  ("version" .=) <$> _creVersion,
+                  ("latestTraffickedCreativeId" .=) <$>
+                    _creLatestTraffickedCreativeId,
+                  ("thirdPartyRichMediaImpressionsUrl" .=) <$>
+                    _creThirdPartyRichMediaImpressionsURL,
+                  ("lastModifiedInfo" .=) <$> _creLastModifiedInfo,
+                  ("id" .=) <$> _creId,
+                  ("authoringSource" .=) <$> _creAuthoringSource,
+                  ("studioAdvertiserId" .=) <$> _creStudioAdvertiserId,
+                  ("creativeAssets" .=) <$> _creCreativeAssets,
+                  ("subaccountId" .=) <$> _creSubAccountId,
+                  ("type" .=) <$> _creType,
+                  ("timerCustomEvents" .=) <$> _creTimerCustomEvents,
+                  ("studioCreativeId" .=) <$> _creStudioCreativeId,
+                  ("compatibility" .=) <$> _creCompatibility,
+                  ("backupImageFeatures" .=) <$>
+                    _creBackupImageFeatures,
+                  ("artworkType" .=) <$> _creArtworkType,
+                  ("archived" .=) <$> _creArchived,
+                  ("companionCreatives" .=) <$> _creCompanionCreatives,
+                  ("totalFileSize" .=) <$> _creTotalFileSize,
+                  ("studioTraffickedCreativeId" .=) <$>
+                    _creStudioTraffickedCreativeId,
+                  ("redirectUrl" .=) <$> _creRedirectURL,
+                  ("auto_advance_images" .=) <$> _creAutoAdvanceImages,
+                  ("creativeFieldAssignments" .=) <$>
+                    _creCreativeFieldAssignments])
+
+-- | Site Contact
+--
+-- /See:/ 'siteContact' smart constructor.
+data SiteContact = SiteContact'
+    { _scEmail       :: !(Maybe Text)
+    , _scPhone       :: !(Maybe Text)
+    , _scLastName    :: !(Maybe Text)
+    , _scAddress     :: !(Maybe Text)
+    , _scFirstName   :: !(Maybe Text)
+    , _scId          :: !(Maybe (Textual Int64))
+    , _scTitle       :: !(Maybe Text)
+    , _scContactType :: !(Maybe SiteContactContactType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SiteContact' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'scEmail'
+--
+-- * 'scPhone'
+--
+-- * 'scLastName'
+--
+-- * 'scAddress'
+--
+-- * 'scFirstName'
+--
+-- * 'scId'
+--
+-- * 'scTitle'
+--
+-- * 'scContactType'
+siteContact
+    :: SiteContact
+siteContact =
+    SiteContact'
+    { _scEmail = Nothing
+    , _scPhone = Nothing
+    , _scLastName = Nothing
+    , _scAddress = Nothing
+    , _scFirstName = Nothing
+    , _scId = Nothing
+    , _scTitle = Nothing
+    , _scContactType = Nothing
+    }
+
+-- | Email address of this site contact. This is a required field.
+scEmail :: Lens' SiteContact (Maybe Text)
+scEmail = lens _scEmail (\ s a -> s{_scEmail = a})
+
+-- | Primary phone number of this site contact.
+scPhone :: Lens' SiteContact (Maybe Text)
+scPhone = lens _scPhone (\ s a -> s{_scPhone = a})
+
+-- | Last name of this site contact.
+scLastName :: Lens' SiteContact (Maybe Text)
+scLastName
+  = lens _scLastName (\ s a -> s{_scLastName = a})
+
+-- | Address of this site contact.
+scAddress :: Lens' SiteContact (Maybe Text)
+scAddress
+  = lens _scAddress (\ s a -> s{_scAddress = a})
+
+-- | First name of this site contact.
+scFirstName :: Lens' SiteContact (Maybe Text)
+scFirstName
+  = lens _scFirstName (\ s a -> s{_scFirstName = a})
+
+-- | ID of this site contact. This is a read-only, auto-generated field.
+scId :: Lens' SiteContact (Maybe Int64)
+scId
+  = lens _scId (\ s a -> s{_scId = a}) .
+      mapping _Coerce
+
+-- | Title or designation of this site contact.
+scTitle :: Lens' SiteContact (Maybe Text)
+scTitle = lens _scTitle (\ s a -> s{_scTitle = a})
+
+-- | Site contact type.
+scContactType :: Lens' SiteContact (Maybe SiteContactContactType)
+scContactType
+  = lens _scContactType
+      (\ s a -> s{_scContactType = a})
+
+instance FromJSON SiteContact where
+        parseJSON
+          = withObject "SiteContact"
+              (\ o ->
+                 SiteContact' <$>
+                   (o .:? "email") <*> (o .:? "phone") <*>
+                     (o .:? "lastName")
+                     <*> (o .:? "address")
+                     <*> (o .:? "firstName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "title")
+                     <*> (o .:? "contactType"))
+
+instance ToJSON SiteContact where
+        toJSON SiteContact'{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _scEmail,
+                  ("phone" .=) <$> _scPhone,
+                  ("lastName" .=) <$> _scLastName,
+                  ("address" .=) <$> _scAddress,
+                  ("firstName" .=) <$> _scFirstName,
+                  ("id" .=) <$> _scId, ("title" .=) <$> _scTitle,
+                  ("contactType" .=) <$> _scContactType])
+
+-- | Account List Response
+--
+-- /See:/ 'accountsListResponse' smart constructor.
+data AccountsListResponse = AccountsListResponse'
+    { _accNextPageToken :: !(Maybe Text)
+    , _accAccounts      :: !(Maybe [Account])
+    , _accKind          :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'accNextPageToken'
+--
+-- * 'accAccounts'
+--
+-- * 'accKind'
+accountsListResponse
+    :: AccountsListResponse
+accountsListResponse =
+    AccountsListResponse'
+    { _accNextPageToken = Nothing
+    , _accAccounts = Nothing
+    , _accKind = "dfareporting#accountsListResponse"
+    }
+
+-- | Pagination token to be used for the next list operation.
+accNextPageToken :: Lens' AccountsListResponse (Maybe Text)
+accNextPageToken
+  = lens _accNextPageToken
+      (\ s a -> s{_accNextPageToken = a})
+
+-- | Account collection.
+accAccounts :: Lens' AccountsListResponse [Account]
+accAccounts
+  = lens _accAccounts (\ s a -> s{_accAccounts = a}) .
+      _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountsListResponse\".
+accKind :: Lens' AccountsListResponse Text
+accKind = lens _accKind (\ s a -> s{_accKind = a})
+
+instance FromJSON AccountsListResponse where
+        parseJSON
+          = withObject "AccountsListResponse"
+              (\ o ->
+                 AccountsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "accounts" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#accountsListResponse"))
+
+instance ToJSON AccountsListResponse where
+        toJSON AccountsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _accNextPageToken,
+                  ("accounts" .=) <$> _accAccounts,
+                  Just ("kind" .= _accKind)])
+
+-- | Represents a date range.
+--
+-- /See:/ 'dateRange' smart constructor.
+data DateRange = DateRange'
+    { _drKind              :: !Text
+    , _drEndDate           :: !(Maybe Date')
+    , _drStartDate         :: !(Maybe Date')
+    , _drRelativeDateRange :: !(Maybe DateRangeRelativeDateRange)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DateRange' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drKind'
+--
+-- * 'drEndDate'
+--
+-- * 'drStartDate'
+--
+-- * 'drRelativeDateRange'
+dateRange
+    :: DateRange
+dateRange =
+    DateRange'
+    { _drKind = "dfareporting#dateRange"
+    , _drEndDate = Nothing
+    , _drStartDate = Nothing
+    , _drRelativeDateRange = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#dateRange.
+drKind :: Lens' DateRange Text
+drKind = lens _drKind (\ s a -> s{_drKind = a})
+
+-- | The end date of the date range, inclusive. A string of the format:
+-- \"yyyy-MM-dd\".
+drEndDate :: Lens' DateRange (Maybe Day)
+drEndDate
+  = lens _drEndDate (\ s a -> s{_drEndDate = a}) .
+      mapping _Date
+
+-- | The start date of the date range, inclusive. A string of the format:
+-- \"yyyy-MM-dd\".
+drStartDate :: Lens' DateRange (Maybe Day)
+drStartDate
+  = lens _drStartDate (\ s a -> s{_drStartDate = a}) .
+      mapping _Date
+
+-- | The date range relative to the date of when the report is run.
+drRelativeDateRange :: Lens' DateRange (Maybe DateRangeRelativeDateRange)
+drRelativeDateRange
+  = lens _drRelativeDateRange
+      (\ s a -> s{_drRelativeDateRange = a})
+
+instance FromJSON DateRange where
+        parseJSON
+          = withObject "DateRange"
+              (\ o ->
+                 DateRange' <$>
+                   (o .:? "kind" .!= "dfareporting#dateRange") <*>
+                     (o .:? "endDate")
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "relativeDateRange"))
+
+instance ToJSON DateRange where
+        toJSON DateRange'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _drKind),
+                  ("endDate" .=) <$> _drEndDate,
+                  ("startDate" .=) <$> _drStartDate,
+                  ("relativeDateRange" .=) <$> _drRelativeDateRange])
+
+-- | Represents a Report resource.
+--
+-- /See:/ 'report' smart constructor.
+data Report = Report'
+    { _rDelivery                    :: !(Maybe ReportDelivery)
+    , _rEtag                        :: !(Maybe Text)
+    , _rOwnerProFileId              :: !(Maybe (Textual Int64))
+    , _rSchedule                    :: !(Maybe ReportSchedule)
+    , _rPathToConversionCriteria    :: !(Maybe ReportPathToConversionCriteria)
+    , _rKind                        :: !Text
+    , _rFormat                      :: !(Maybe ReportFormat)
+    , _rReachCriteria               :: !(Maybe ReportReachCriteria)
+    , _rLastModifiedTime            :: !(Maybe (Textual Word64))
+    , _rAccountId                   :: !(Maybe (Textual Int64))
+    , _rName                        :: !(Maybe Text)
+    , _rId                          :: !(Maybe (Textual Int64))
+    , _rCrossDimensionReachCriteria :: !(Maybe ReportCrossDimensionReachCriteria)
+    , _rType                        :: !(Maybe ReportType)
+    , _rSubAccountId                :: !(Maybe (Textual Int64))
+    , _rFloodlightCriteria          :: !(Maybe ReportFloodlightCriteria)
+    , _rCriteria                    :: !(Maybe ReportCriteria)
+    , _rFileName                    :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Report' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rDelivery'
+--
+-- * 'rEtag'
+--
+-- * 'rOwnerProFileId'
+--
+-- * 'rSchedule'
+--
+-- * 'rPathToConversionCriteria'
+--
+-- * 'rKind'
+--
+-- * 'rFormat'
+--
+-- * 'rReachCriteria'
+--
+-- * 'rLastModifiedTime'
+--
+-- * 'rAccountId'
+--
+-- * 'rName'
+--
+-- * 'rId'
+--
+-- * 'rCrossDimensionReachCriteria'
+--
+-- * 'rType'
+--
+-- * 'rSubAccountId'
+--
+-- * 'rFloodlightCriteria'
+--
+-- * 'rCriteria'
+--
+-- * 'rFileName'
+report
+    :: Report
+report =
+    Report'
+    { _rDelivery = Nothing
+    , _rEtag = Nothing
+    , _rOwnerProFileId = Nothing
+    , _rSchedule = Nothing
+    , _rPathToConversionCriteria = Nothing
+    , _rKind = "dfareporting#report"
+    , _rFormat = Nothing
+    , _rReachCriteria = Nothing
+    , _rLastModifiedTime = Nothing
+    , _rAccountId = Nothing
+    , _rName = Nothing
+    , _rId = Nothing
+    , _rCrossDimensionReachCriteria = Nothing
+    , _rType = Nothing
+    , _rSubAccountId = Nothing
+    , _rFloodlightCriteria = Nothing
+    , _rCriteria = Nothing
+    , _rFileName = Nothing
+    }
+
+-- | The report\'s email delivery settings.
+rDelivery :: Lens' Report (Maybe ReportDelivery)
+rDelivery
+  = lens _rDelivery (\ s a -> s{_rDelivery = a})
+
+-- | The eTag of this response for caching purposes.
+rEtag :: Lens' Report (Maybe Text)
+rEtag = lens _rEtag (\ s a -> s{_rEtag = a})
+
+-- | The user profile id of the owner of this report.
+rOwnerProFileId :: Lens' Report (Maybe Int64)
+rOwnerProFileId
+  = lens _rOwnerProFileId
+      (\ s a -> s{_rOwnerProFileId = a})
+      . mapping _Coerce
+
+-- | The report\'s schedule. Can only be set if the report\'s \'dateRange\'
+-- is a relative date range and the relative date range is not \"TODAY\".
+rSchedule :: Lens' Report (Maybe ReportSchedule)
+rSchedule
+  = lens _rSchedule (\ s a -> s{_rSchedule = a})
+
+-- | The report criteria for a report of type \"PATH_TO_CONVERSION\".
+rPathToConversionCriteria :: Lens' Report (Maybe ReportPathToConversionCriteria)
+rPathToConversionCriteria
+  = lens _rPathToConversionCriteria
+      (\ s a -> s{_rPathToConversionCriteria = a})
+
+-- | The kind of resource this is, in this case dfareporting#report.
+rKind :: Lens' Report Text
+rKind = lens _rKind (\ s a -> s{_rKind = a})
+
+-- | The output format of the report. If not specified, default format is
+-- \"CSV\". Note that the actual format in the completed report file might
+-- differ if for instance the report\'s size exceeds the format\'s
+-- capabilities. \"CSV\" will then be the fallback format.
+rFormat :: Lens' Report (Maybe ReportFormat)
+rFormat = lens _rFormat (\ s a -> s{_rFormat = a})
+
+-- | The report criteria for a report of type \"REACH\".
+rReachCriteria :: Lens' Report (Maybe ReportReachCriteria)
+rReachCriteria
+  = lens _rReachCriteria
+      (\ s a -> s{_rReachCriteria = a})
+
+-- | The timestamp (in milliseconds since epoch) of when this report was last
+-- modified.
+rLastModifiedTime :: Lens' Report (Maybe Word64)
+rLastModifiedTime
+  = lens _rLastModifiedTime
+      (\ s a -> s{_rLastModifiedTime = a})
+      . mapping _Coerce
+
+-- | The account ID to which this report belongs.
+rAccountId :: Lens' Report (Maybe Int64)
+rAccountId
+  = lens _rAccountId (\ s a -> s{_rAccountId = a}) .
+      mapping _Coerce
+
+-- | The name of the report.
+rName :: Lens' Report (Maybe Text)
+rName = lens _rName (\ s a -> s{_rName = a})
+
+-- | The unique ID identifying this report resource.
+rId :: Lens' Report (Maybe Int64)
+rId
+  = lens _rId (\ s a -> s{_rId = a}) . mapping _Coerce
+
+-- | The report criteria for a report of type \"CROSS_DIMENSION_REACH\".
+rCrossDimensionReachCriteria :: Lens' Report (Maybe ReportCrossDimensionReachCriteria)
+rCrossDimensionReachCriteria
+  = lens _rCrossDimensionReachCriteria
+      (\ s a -> s{_rCrossDimensionReachCriteria = a})
+
+-- | The type of the report.
+rType :: Lens' Report (Maybe ReportType)
+rType = lens _rType (\ s a -> s{_rType = a})
+
+-- | The subaccount ID to which this report belongs if applicable.
+rSubAccountId :: Lens' Report (Maybe Int64)
+rSubAccountId
+  = lens _rSubAccountId
+      (\ s a -> s{_rSubAccountId = a})
+      . mapping _Coerce
+
+-- | The report criteria for a report of type \"FLOODLIGHT\".
+rFloodlightCriteria :: Lens' Report (Maybe ReportFloodlightCriteria)
+rFloodlightCriteria
+  = lens _rFloodlightCriteria
+      (\ s a -> s{_rFloodlightCriteria = a})
+
+-- | The report criteria for a report of type \"STANDARD\".
+rCriteria :: Lens' Report (Maybe ReportCriteria)
+rCriteria
+  = lens _rCriteria (\ s a -> s{_rCriteria = a})
+
+-- | The filename used when generating report files for this report.
+rFileName :: Lens' Report (Maybe Text)
+rFileName
+  = lens _rFileName (\ s a -> s{_rFileName = a})
+
+instance FromJSON Report where
+        parseJSON
+          = withObject "Report"
+              (\ o ->
+                 Report' <$>
+                   (o .:? "delivery") <*> (o .:? "etag") <*>
+                     (o .:? "ownerProfileId")
+                     <*> (o .:? "schedule")
+                     <*> (o .:? "pathToConversionCriteria")
+                     <*> (o .:? "kind" .!= "dfareporting#report")
+                     <*> (o .:? "format")
+                     <*> (o .:? "reachCriteria")
+                     <*> (o .:? "lastModifiedTime")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "crossDimensionReachCriteria")
+                     <*> (o .:? "type")
+                     <*> (o .:? "subAccountId")
+                     <*> (o .:? "floodlightCriteria")
+                     <*> (o .:? "criteria")
+                     <*> (o .:? "fileName"))
+
+instance ToJSON Report where
+        toJSON Report'{..}
+          = object
+              (catMaybes
+                 [("delivery" .=) <$> _rDelivery,
+                  ("etag" .=) <$> _rEtag,
+                  ("ownerProfileId" .=) <$> _rOwnerProFileId,
+                  ("schedule" .=) <$> _rSchedule,
+                  ("pathToConversionCriteria" .=) <$>
+                    _rPathToConversionCriteria,
+                  Just ("kind" .= _rKind), ("format" .=) <$> _rFormat,
+                  ("reachCriteria" .=) <$> _rReachCriteria,
+                  ("lastModifiedTime" .=) <$> _rLastModifiedTime,
+                  ("accountId" .=) <$> _rAccountId,
+                  ("name" .=) <$> _rName, ("id" .=) <$> _rId,
+                  ("crossDimensionReachCriteria" .=) <$>
+                    _rCrossDimensionReachCriteria,
+                  ("type" .=) <$> _rType,
+                  ("subAccountId" .=) <$> _rSubAccountId,
+                  ("floodlightCriteria" .=) <$> _rFloodlightCriteria,
+                  ("criteria" .=) <$> _rCriteria,
+                  ("fileName" .=) <$> _rFileName])
+
+-- | Contains properties of a DCM campaign.
+--
+-- /See:/ 'campaign' smart constructor.
+data Campaign = Campaign'
+    { _camCreativeOptimizationConfiguration            :: !(Maybe CreativeOptimizationConfiguration)
+    , _camCreativeGroupIds                             :: !(Maybe [Textual Int64])
+    , _camNielsenOCREnabled                            :: !(Maybe Bool)
+    , _camKind                                         :: !Text
+    , _camClickThroughURLSuffixProperties              :: !(Maybe ClickThroughURLSuffixProperties)
+    , _camAdvertiserId                                 :: !(Maybe (Textual Int64))
+    , _camEndDate                                      :: !(Maybe Date')
+    , _camAdvertiserIdDimensionValue                   :: !(Maybe DimensionValue)
+    , _camIdDimensionValue                             :: !(Maybe DimensionValue)
+    , _camEventTagOverrides                            :: !(Maybe [EventTagOverride])
+    , _camLookbackConfiguration                        :: !(Maybe LookbackConfiguration)
+    , _camStartDate                                    :: !(Maybe Date')
+    , _camAccountId                                    :: !(Maybe (Textual Int64))
+    , _camComscoreVceEnabled                           :: !(Maybe Bool)
+    , _camName                                         :: !(Maybe Text)
+    , _camAdvertiserGroupId                            :: !(Maybe (Textual Int64))
+    , _camBillingInvoiceCode                           :: !(Maybe Text)
+    , _camCreateInfo                                   :: !(Maybe LastModifiedInfo)
+    , _camLastModifiedInfo                             :: !(Maybe LastModifiedInfo)
+    , _camId                                           :: !(Maybe (Textual Int64))
+    , _camSubAccountId                                 :: !(Maybe (Textual Int64))
+    , _camAdditionalCreativeOptimizationConfigurations :: !(Maybe [CreativeOptimizationConfiguration])
+    , _camExternalId                                   :: !(Maybe Text)
+    , _camComment                                      :: !(Maybe Text)
+    , _camAudienceSegmentGroups                        :: !(Maybe [AudienceSegmentGroup])
+    , _camArchived                                     :: !(Maybe Bool)
+    , _camTraffickerEmails                             :: !(Maybe [Text])
+    , _camDefaultClickThroughEventTagProperties        :: !(Maybe DefaultClickThroughEventTagProperties)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Campaign' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'camCreativeOptimizationConfiguration'
+--
+-- * 'camCreativeGroupIds'
+--
+-- * 'camNielsenOCREnabled'
+--
+-- * 'camKind'
+--
+-- * 'camClickThroughURLSuffixProperties'
+--
+-- * 'camAdvertiserId'
+--
+-- * 'camEndDate'
+--
+-- * 'camAdvertiserIdDimensionValue'
+--
+-- * 'camIdDimensionValue'
+--
+-- * 'camEventTagOverrides'
+--
+-- * 'camLookbackConfiguration'
+--
+-- * 'camStartDate'
+--
+-- * 'camAccountId'
+--
+-- * 'camComscoreVceEnabled'
+--
+-- * 'camName'
+--
+-- * 'camAdvertiserGroupId'
+--
+-- * 'camBillingInvoiceCode'
+--
+-- * 'camCreateInfo'
+--
+-- * 'camLastModifiedInfo'
+--
+-- * 'camId'
+--
+-- * 'camSubAccountId'
+--
+-- * 'camAdditionalCreativeOptimizationConfigurations'
+--
+-- * 'camExternalId'
+--
+-- * 'camComment'
+--
+-- * 'camAudienceSegmentGroups'
+--
+-- * 'camArchived'
+--
+-- * 'camTraffickerEmails'
+--
+-- * 'camDefaultClickThroughEventTagProperties'
+campaign
+    :: Campaign
+campaign =
+    Campaign'
+    { _camCreativeOptimizationConfiguration = Nothing
+    , _camCreativeGroupIds = Nothing
+    , _camNielsenOCREnabled = Nothing
+    , _camKind = "dfareporting#campaign"
+    , _camClickThroughURLSuffixProperties = Nothing
+    , _camAdvertiserId = Nothing
+    , _camEndDate = Nothing
+    , _camAdvertiserIdDimensionValue = Nothing
+    , _camIdDimensionValue = Nothing
+    , _camEventTagOverrides = Nothing
+    , _camLookbackConfiguration = Nothing
+    , _camStartDate = Nothing
+    , _camAccountId = Nothing
+    , _camComscoreVceEnabled = Nothing
+    , _camName = Nothing
+    , _camAdvertiserGroupId = Nothing
+    , _camBillingInvoiceCode = Nothing
+    , _camCreateInfo = Nothing
+    , _camLastModifiedInfo = Nothing
+    , _camId = Nothing
+    , _camSubAccountId = Nothing
+    , _camAdditionalCreativeOptimizationConfigurations = Nothing
+    , _camExternalId = Nothing
+    , _camComment = Nothing
+    , _camAudienceSegmentGroups = Nothing
+    , _camArchived = Nothing
+    , _camTraffickerEmails = Nothing
+    , _camDefaultClickThroughEventTagProperties = Nothing
+    }
+
+-- | Creative optimization configuration for the campaign.
+camCreativeOptimizationConfiguration :: Lens' Campaign (Maybe CreativeOptimizationConfiguration)
+camCreativeOptimizationConfiguration
+  = lens _camCreativeOptimizationConfiguration
+      (\ s a ->
+         s{_camCreativeOptimizationConfiguration = a})
+
+-- | List of creative group IDs that are assigned to the campaign.
+camCreativeGroupIds :: Lens' Campaign [Int64]
+camCreativeGroupIds
+  = lens _camCreativeGroupIds
+      (\ s a -> s{_camCreativeGroupIds = a})
+      . _Default
+      . _Coerce
+
+-- | Whether Nielsen reports are enabled for this campaign.
+camNielsenOCREnabled :: Lens' Campaign (Maybe Bool)
+camNielsenOCREnabled
+  = lens _camNielsenOCREnabled
+      (\ s a -> s{_camNielsenOCREnabled = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#campaign\".
+camKind :: Lens' Campaign Text
+camKind = lens _camKind (\ s a -> s{_camKind = a})
+
+-- | Click-through URL suffix override properties for this campaign.
+camClickThroughURLSuffixProperties :: Lens' Campaign (Maybe ClickThroughURLSuffixProperties)
+camClickThroughURLSuffixProperties
+  = lens _camClickThroughURLSuffixProperties
+      (\ s a -> s{_camClickThroughURLSuffixProperties = a})
+
+-- | Advertiser ID of this campaign. This is a required field.
+camAdvertiserId :: Lens' Campaign (Maybe Int64)
+camAdvertiserId
+  = lens _camAdvertiserId
+      (\ s a -> s{_camAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Date on which the campaign will stop running. On insert, the end date
+-- must be today or a future date. The end date must be later than or be
+-- the same as the start date. If, for example, you set 6\/25\/2015 as both
+-- the start and end dates, the effective campaign run date is just that
+-- day only, 6\/25\/2015. The hours, minutes, and seconds of the end date
+-- should not be set, as doing so will result in an error. This is a
+-- required field.
+camEndDate :: Lens' Campaign (Maybe Day)
+camEndDate
+  = lens _camEndDate (\ s a -> s{_camEndDate = a}) .
+      mapping _Date
+
+-- | Dimension value for the advertiser ID of this campaign. This is a
+-- read-only, auto-generated field.
+camAdvertiserIdDimensionValue :: Lens' Campaign (Maybe DimensionValue)
+camAdvertiserIdDimensionValue
+  = lens _camAdvertiserIdDimensionValue
+      (\ s a -> s{_camAdvertiserIdDimensionValue = a})
+
+-- | Dimension value for the ID of this campaign. This is a read-only,
+-- auto-generated field.
+camIdDimensionValue :: Lens' Campaign (Maybe DimensionValue)
+camIdDimensionValue
+  = lens _camIdDimensionValue
+      (\ s a -> s{_camIdDimensionValue = a})
+
+-- | Overrides that can be used to activate or deactivate advertiser event
+-- tags.
+camEventTagOverrides :: Lens' Campaign [EventTagOverride]
+camEventTagOverrides
+  = lens _camEventTagOverrides
+      (\ s a -> s{_camEventTagOverrides = a})
+      . _Default
+      . _Coerce
+
+-- | Lookback window settings for the campaign.
+camLookbackConfiguration :: Lens' Campaign (Maybe LookbackConfiguration)
+camLookbackConfiguration
+  = lens _camLookbackConfiguration
+      (\ s a -> s{_camLookbackConfiguration = a})
+
+-- | Date on which the campaign starts running. The start date can be any
+-- date. The hours, minutes, and seconds of the start date should not be
+-- set, as doing so will result in an error. This is a required field.
+camStartDate :: Lens' Campaign (Maybe Day)
+camStartDate
+  = lens _camStartDate (\ s a -> s{_camStartDate = a})
+      . mapping _Date
+
+-- | Account ID of this campaign. This is a read-only field that can be left
+-- blank.
+camAccountId :: Lens' Campaign (Maybe Int64)
+camAccountId
+  = lens _camAccountId (\ s a -> s{_camAccountId = a})
+      . mapping _Coerce
+
+-- | Whether comScore vCE reports are enabled for this campaign.
+camComscoreVceEnabled :: Lens' Campaign (Maybe Bool)
+camComscoreVceEnabled
+  = lens _camComscoreVceEnabled
+      (\ s a -> s{_camComscoreVceEnabled = a})
+
+-- | Name of this campaign. This is a required field and must be less than
+-- 256 characters long and unique among campaigns of the same advertiser.
+camName :: Lens' Campaign (Maybe Text)
+camName = lens _camName (\ s a -> s{_camName = a})
+
+-- | Advertiser group ID of the associated advertiser.
+camAdvertiserGroupId :: Lens' Campaign (Maybe Int64)
+camAdvertiserGroupId
+  = lens _camAdvertiserGroupId
+      (\ s a -> s{_camAdvertiserGroupId = a})
+      . mapping _Coerce
+
+-- | Billing invoice code included in the DCM client billing invoices
+-- associated with the campaign.
+camBillingInvoiceCode :: Lens' Campaign (Maybe Text)
+camBillingInvoiceCode
+  = lens _camBillingInvoiceCode
+      (\ s a -> s{_camBillingInvoiceCode = a})
+
+-- | Information about the creation of this campaign. This is a read-only
+-- field.
+camCreateInfo :: Lens' Campaign (Maybe LastModifiedInfo)
+camCreateInfo
+  = lens _camCreateInfo
+      (\ s a -> s{_camCreateInfo = a})
+
+-- | Information about the most recent modification of this campaign. This is
+-- a read-only field.
+camLastModifiedInfo :: Lens' Campaign (Maybe LastModifiedInfo)
+camLastModifiedInfo
+  = lens _camLastModifiedInfo
+      (\ s a -> s{_camLastModifiedInfo = a})
+
+-- | ID of this campaign. This is a read-only auto-generated field.
+camId :: Lens' Campaign (Maybe Int64)
+camId
+  = lens _camId (\ s a -> s{_camId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this campaign. This is a read-only field that can be
+-- left blank.
+camSubAccountId :: Lens' Campaign (Maybe Int64)
+camSubAccountId
+  = lens _camSubAccountId
+      (\ s a -> s{_camSubAccountId = a})
+      . mapping _Coerce
+
+-- | Additional creative optimization configurations for the campaign.
+camAdditionalCreativeOptimizationConfigurations :: Lens' Campaign [CreativeOptimizationConfiguration]
+camAdditionalCreativeOptimizationConfigurations
+  = lens
+      _camAdditionalCreativeOptimizationConfigurations
+      (\ s a ->
+         s{_camAdditionalCreativeOptimizationConfigurations =
+             a})
+      . _Default
+      . _Coerce
+
+-- | External ID for this campaign.
+camExternalId :: Lens' Campaign (Maybe Text)
+camExternalId
+  = lens _camExternalId
+      (\ s a -> s{_camExternalId = a})
+
+-- | Arbitrary comments about this campaign. Must be less than 256 characters
+-- long.
+camComment :: Lens' Campaign (Maybe Text)
+camComment
+  = lens _camComment (\ s a -> s{_camComment = a})
+
+-- | Audience segment groups assigned to this campaign. Cannot have more than
+-- 300 segment groups.
+camAudienceSegmentGroups :: Lens' Campaign [AudienceSegmentGroup]
+camAudienceSegmentGroups
+  = lens _camAudienceSegmentGroups
+      (\ s a -> s{_camAudienceSegmentGroups = a})
+      . _Default
+      . _Coerce
+
+-- | Whether this campaign has been archived.
+camArchived :: Lens' Campaign (Maybe Bool)
+camArchived
+  = lens _camArchived (\ s a -> s{_camArchived = a})
+
+-- | Campaign trafficker contact emails.
+camTraffickerEmails :: Lens' Campaign [Text]
+camTraffickerEmails
+  = lens _camTraffickerEmails
+      (\ s a -> s{_camTraffickerEmails = a})
+      . _Default
+      . _Coerce
+
+-- | Click-through event tag ID override properties for this campaign.
+camDefaultClickThroughEventTagProperties :: Lens' Campaign (Maybe DefaultClickThroughEventTagProperties)
+camDefaultClickThroughEventTagProperties
+  = lens _camDefaultClickThroughEventTagProperties
+      (\ s a ->
+         s{_camDefaultClickThroughEventTagProperties = a})
+
+instance FromJSON Campaign where
+        parseJSON
+          = withObject "Campaign"
+              (\ o ->
+                 Campaign' <$>
+                   (o .:? "creativeOptimizationConfiguration") <*>
+                     (o .:? "creativeGroupIds" .!= mempty)
+                     <*> (o .:? "nielsenOcrEnabled")
+                     <*> (o .:? "kind" .!= "dfareporting#campaign")
+                     <*> (o .:? "clickThroughUrlSuffixProperties")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "endDate")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "eventTagOverrides" .!= mempty)
+                     <*> (o .:? "lookbackConfiguration")
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "comscoreVceEnabled")
+                     <*> (o .:? "name")
+                     <*> (o .:? "advertiserGroupId")
+                     <*> (o .:? "billingInvoiceCode")
+                     <*> (o .:? "createInfo")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*>
+                     (o .:? "additionalCreativeOptimizationConfigurations"
+                        .!= mempty)
+                     <*> (o .:? "externalId")
+                     <*> (o .:? "comment")
+                     <*> (o .:? "audienceSegmentGroups" .!= mempty)
+                     <*> (o .:? "archived")
+                     <*> (o .:? "traffickerEmails" .!= mempty)
+                     <*> (o .:? "defaultClickThroughEventTagProperties"))
+
+instance ToJSON Campaign where
+        toJSON Campaign'{..}
+          = object
+              (catMaybes
+                 [("creativeOptimizationConfiguration" .=) <$>
+                    _camCreativeOptimizationConfiguration,
+                  ("creativeGroupIds" .=) <$> _camCreativeGroupIds,
+                  ("nielsenOcrEnabled" .=) <$> _camNielsenOCREnabled,
+                  Just ("kind" .= _camKind),
+                  ("clickThroughUrlSuffixProperties" .=) <$>
+                    _camClickThroughURLSuffixProperties,
+                  ("advertiserId" .=) <$> _camAdvertiserId,
+                  ("endDate" .=) <$> _camEndDate,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _camAdvertiserIdDimensionValue,
+                  ("idDimensionValue" .=) <$> _camIdDimensionValue,
+                  ("eventTagOverrides" .=) <$> _camEventTagOverrides,
+                  ("lookbackConfiguration" .=) <$>
+                    _camLookbackConfiguration,
+                  ("startDate" .=) <$> _camStartDate,
+                  ("accountId" .=) <$> _camAccountId,
+                  ("comscoreVceEnabled" .=) <$> _camComscoreVceEnabled,
+                  ("name" .=) <$> _camName,
+                  ("advertiserGroupId" .=) <$> _camAdvertiserGroupId,
+                  ("billingInvoiceCode" .=) <$> _camBillingInvoiceCode,
+                  ("createInfo" .=) <$> _camCreateInfo,
+                  ("lastModifiedInfo" .=) <$> _camLastModifiedInfo,
+                  ("id" .=) <$> _camId,
+                  ("subaccountId" .=) <$> _camSubAccountId,
+                  ("additionalCreativeOptimizationConfigurations" .=)
+                    <$> _camAdditionalCreativeOptimizationConfigurations,
+                  ("externalId" .=) <$> _camExternalId,
+                  ("comment" .=) <$> _camComment,
+                  ("audienceSegmentGroups" .=) <$>
+                    _camAudienceSegmentGroups,
+                  ("archived" .=) <$> _camArchived,
+                  ("traffickerEmails" .=) <$> _camTraffickerEmails,
+                  ("defaultClickThroughEventTagProperties" .=) <$>
+                    _camDefaultClickThroughEventTagProperties])
+
+-- | Third Party Authentication Token
+--
+-- /See:/ 'thirdPartyAuthenticationToken' smart constructor.
+data ThirdPartyAuthenticationToken = ThirdPartyAuthenticationToken'
+    { _tpatValue :: !(Maybe Text)
+    , _tpatName  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ThirdPartyAuthenticationToken' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tpatValue'
+--
+-- * 'tpatName'
+thirdPartyAuthenticationToken
+    :: ThirdPartyAuthenticationToken
+thirdPartyAuthenticationToken =
+    ThirdPartyAuthenticationToken'
+    { _tpatValue = Nothing
+    , _tpatName = Nothing
+    }
+
+-- | Value of the third-party authentication token. This is a read-only,
+-- auto-generated field.
+tpatValue :: Lens' ThirdPartyAuthenticationToken (Maybe Text)
+tpatValue
+  = lens _tpatValue (\ s a -> s{_tpatValue = a})
+
+-- | Name of the third-party authentication token.
+tpatName :: Lens' ThirdPartyAuthenticationToken (Maybe Text)
+tpatName = lens _tpatName (\ s a -> s{_tpatName = a})
+
+instance FromJSON ThirdPartyAuthenticationToken where
+        parseJSON
+          = withObject "ThirdPartyAuthenticationToken"
+              (\ o ->
+                 ThirdPartyAuthenticationToken' <$>
+                   (o .:? "value") <*> (o .:? "name"))
+
+instance ToJSON ThirdPartyAuthenticationToken where
+        toJSON ThirdPartyAuthenticationToken'{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _tpatValue,
+                  ("name" .=) <$> _tpatName])
+
+-- | Click-through URL
+--
+-- /See:/ 'clickThroughURL' smart constructor.
+data ClickThroughURL = ClickThroughURL'
+    { _ctuDefaultLandingPage      :: !(Maybe Bool)
+    , _ctuComputedClickThroughURL :: !(Maybe Text)
+    , _ctuCustomClickThroughURL   :: !(Maybe Text)
+    , _ctuLandingPageId           :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ClickThroughURL' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctuDefaultLandingPage'
+--
+-- * 'ctuComputedClickThroughURL'
+--
+-- * 'ctuCustomClickThroughURL'
+--
+-- * 'ctuLandingPageId'
+clickThroughURL
+    :: ClickThroughURL
+clickThroughURL =
+    ClickThroughURL'
+    { _ctuDefaultLandingPage = Nothing
+    , _ctuComputedClickThroughURL = Nothing
+    , _ctuCustomClickThroughURL = Nothing
+    , _ctuLandingPageId = Nothing
+    }
+
+-- | Whether the campaign default landing page is used.
+ctuDefaultLandingPage :: Lens' ClickThroughURL (Maybe Bool)
+ctuDefaultLandingPage
+  = lens _ctuDefaultLandingPage
+      (\ s a -> s{_ctuDefaultLandingPage = a})
+
+-- | Read-only convenience field representing the actual URL that will be
+-- used for this click-through. The URL is computed as follows: - If
+-- defaultLandingPage is enabled then the campaign\'s default landing page
+-- URL is assigned to this field. - If defaultLandingPage is not enabled
+-- and a landingPageId is specified then that landing page\'s URL is
+-- assigned to this field. - If neither of the above cases apply, then the
+-- customClickThroughUrl is assigned to this field.
+ctuComputedClickThroughURL :: Lens' ClickThroughURL (Maybe Text)
+ctuComputedClickThroughURL
+  = lens _ctuComputedClickThroughURL
+      (\ s a -> s{_ctuComputedClickThroughURL = a})
+
+-- | Custom click-through URL. Applicable if the defaultLandingPage field is
+-- set to false and the landingPageId field is left unset.
+ctuCustomClickThroughURL :: Lens' ClickThroughURL (Maybe Text)
+ctuCustomClickThroughURL
+  = lens _ctuCustomClickThroughURL
+      (\ s a -> s{_ctuCustomClickThroughURL = a})
+
+-- | ID of the landing page for the click-through URL. Applicable if the
+-- defaultLandingPage field is set to false.
+ctuLandingPageId :: Lens' ClickThroughURL (Maybe Int64)
+ctuLandingPageId
+  = lens _ctuLandingPageId
+      (\ s a -> s{_ctuLandingPageId = a})
+      . mapping _Coerce
+
+instance FromJSON ClickThroughURL where
+        parseJSON
+          = withObject "ClickThroughURL"
+              (\ o ->
+                 ClickThroughURL' <$>
+                   (o .:? "defaultLandingPage") <*>
+                     (o .:? "computedClickThroughUrl")
+                     <*> (o .:? "customClickThroughUrl")
+                     <*> (o .:? "landingPageId"))
+
+instance ToJSON ClickThroughURL where
+        toJSON ClickThroughURL'{..}
+          = object
+              (catMaybes
+                 [("defaultLandingPage" .=) <$>
+                    _ctuDefaultLandingPage,
+                  ("computedClickThroughUrl" .=) <$>
+                    _ctuComputedClickThroughURL,
+                  ("customClickThroughUrl" .=) <$>
+                    _ctuCustomClickThroughURL,
+                  ("landingPageId" .=) <$> _ctuLandingPageId])
+
+-- | Browser List Response
+--
+-- /See:/ 'browsersListResponse' smart constructor.
+data BrowsersListResponse = BrowsersListResponse'
+    { _blrKind     :: !Text
+    , _blrBrowsers :: !(Maybe [Browser])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BrowsersListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blrKind'
+--
+-- * 'blrBrowsers'
+browsersListResponse
+    :: BrowsersListResponse
+browsersListResponse =
+    BrowsersListResponse'
+    { _blrKind = "dfareporting#browsersListResponse"
+    , _blrBrowsers = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#browsersListResponse\".
+blrKind :: Lens' BrowsersListResponse Text
+blrKind = lens _blrKind (\ s a -> s{_blrKind = a})
+
+-- | Browser collection.
+blrBrowsers :: Lens' BrowsersListResponse [Browser]
+blrBrowsers
+  = lens _blrBrowsers (\ s a -> s{_blrBrowsers = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON BrowsersListResponse where
+        parseJSON
+          = withObject "BrowsersListResponse"
+              (\ o ->
+                 BrowsersListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#browsersListResponse")
+                     <*> (o .:? "browsers" .!= mempty))
+
+instance ToJSON BrowsersListResponse where
+        toJSON BrowsersListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _blrKind),
+                  ("browsers" .=) <$> _blrBrowsers])
+
+-- | Site Settings
+--
+-- /See:/ 'siteSettings' smart constructor.
+data SiteSettings = SiteSettings'
+    { _ssDisableNewCookie      :: !(Maybe Bool)
+    , _ssDisableBrandSafeAds   :: !(Maybe Bool)
+    , _ssLookbackConfiguration :: !(Maybe LookbackConfiguration)
+    , _ssTagSetting            :: !(Maybe TagSetting)
+    , _ssActiveViewOptOut      :: !(Maybe Bool)
+    , _ssVideoActiveViewOptOut :: !(Maybe Bool)
+    , _ssCreativeSettings      :: !(Maybe CreativeSettings)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SiteSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssDisableNewCookie'
+--
+-- * 'ssDisableBrandSafeAds'
+--
+-- * 'ssLookbackConfiguration'
+--
+-- * 'ssTagSetting'
+--
+-- * 'ssActiveViewOptOut'
+--
+-- * 'ssVideoActiveViewOptOut'
+--
+-- * 'ssCreativeSettings'
+siteSettings
+    :: SiteSettings
+siteSettings =
+    SiteSettings'
+    { _ssDisableNewCookie = Nothing
+    , _ssDisableBrandSafeAds = Nothing
+    , _ssLookbackConfiguration = Nothing
+    , _ssTagSetting = Nothing
+    , _ssActiveViewOptOut = Nothing
+    , _ssVideoActiveViewOptOut = Nothing
+    , _ssCreativeSettings = Nothing
+    }
+
+-- | Whether new cookies are disabled for this site.
+ssDisableNewCookie :: Lens' SiteSettings (Maybe Bool)
+ssDisableNewCookie
+  = lens _ssDisableNewCookie
+      (\ s a -> s{_ssDisableNewCookie = a})
+
+-- | Whether brand safe ads are disabled for this site.
+ssDisableBrandSafeAds :: Lens' SiteSettings (Maybe Bool)
+ssDisableBrandSafeAds
+  = lens _ssDisableBrandSafeAds
+      (\ s a -> s{_ssDisableBrandSafeAds = a})
+
+-- | Lookback window settings for this site.
+ssLookbackConfiguration :: Lens' SiteSettings (Maybe LookbackConfiguration)
+ssLookbackConfiguration
+  = lens _ssLookbackConfiguration
+      (\ s a -> s{_ssLookbackConfiguration = a})
+
+-- | Configuration settings for dynamic and image floodlight tags.
+ssTagSetting :: Lens' SiteSettings (Maybe TagSetting)
+ssTagSetting
+  = lens _ssTagSetting (\ s a -> s{_ssTagSetting = a})
+
+-- | Whether active view creatives are disabled for this site.
+ssActiveViewOptOut :: Lens' SiteSettings (Maybe Bool)
+ssActiveViewOptOut
+  = lens _ssActiveViewOptOut
+      (\ s a -> s{_ssActiveViewOptOut = a})
+
+-- | Whether Verification and ActiveView are disabled for in-stream video
+-- creatives on this site. The same setting videoActiveViewOptOut exists on
+-- the directory site level -- the opt out occurs if either of these
+-- settings are true. These settings are distinct from
+-- DirectorySites.settings.activeViewOptOut or
+-- Sites.siteSettings.activeViewOptOut which only apply to display ads.
+-- However, Accounts.activeViewOptOut opts out both video traffic, as well
+-- as display ads, from Verification and ActiveView.
+ssVideoActiveViewOptOut :: Lens' SiteSettings (Maybe Bool)
+ssVideoActiveViewOptOut
+  = lens _ssVideoActiveViewOptOut
+      (\ s a -> s{_ssVideoActiveViewOptOut = a})
+
+-- | Site-wide creative settings.
+ssCreativeSettings :: Lens' SiteSettings (Maybe CreativeSettings)
+ssCreativeSettings
+  = lens _ssCreativeSettings
+      (\ s a -> s{_ssCreativeSettings = a})
+
+instance FromJSON SiteSettings where
+        parseJSON
+          = withObject "SiteSettings"
+              (\ o ->
+                 SiteSettings' <$>
+                   (o .:? "disableNewCookie") <*>
+                     (o .:? "disableBrandSafeAds")
+                     <*> (o .:? "lookbackConfiguration")
+                     <*> (o .:? "tagSetting")
+                     <*> (o .:? "activeViewOptOut")
+                     <*> (o .:? "videoActiveViewOptOut")
+                     <*> (o .:? "creativeSettings"))
+
+instance ToJSON SiteSettings where
+        toJSON SiteSettings'{..}
+          = object
+              (catMaybes
+                 [("disableNewCookie" .=) <$> _ssDisableNewCookie,
+                  ("disableBrandSafeAds" .=) <$>
+                    _ssDisableBrandSafeAds,
+                  ("lookbackConfiguration" .=) <$>
+                    _ssLookbackConfiguration,
+                  ("tagSetting" .=) <$> _ssTagSetting,
+                  ("activeViewOptOut" .=) <$> _ssActiveViewOptOut,
+                  ("videoActiveViewOptOut" .=) <$>
+                    _ssVideoActiveViewOptOut,
+                  ("creativeSettings" .=) <$> _ssCreativeSettings])
+
+-- | Content Category List Response
+--
+-- /See:/ 'contentCategoriesListResponse' smart constructor.
+data ContentCategoriesListResponse = ContentCategoriesListResponse'
+    { _cclrNextPageToken     :: !(Maybe Text)
+    , _cclrKind              :: !Text
+    , _cclrContentCategories :: !(Maybe [ContentCategory])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContentCategoriesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cclrNextPageToken'
+--
+-- * 'cclrKind'
+--
+-- * 'cclrContentCategories'
+contentCategoriesListResponse
+    :: ContentCategoriesListResponse
+contentCategoriesListResponse =
+    ContentCategoriesListResponse'
+    { _cclrNextPageToken = Nothing
+    , _cclrKind = "dfareporting#contentCategoriesListResponse"
+    , _cclrContentCategories = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+cclrNextPageToken :: Lens' ContentCategoriesListResponse (Maybe Text)
+cclrNextPageToken
+  = lens _cclrNextPageToken
+      (\ s a -> s{_cclrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#contentCategoriesListResponse\".
+cclrKind :: Lens' ContentCategoriesListResponse Text
+cclrKind = lens _cclrKind (\ s a -> s{_cclrKind = a})
+
+-- | Content category collection.
+cclrContentCategories :: Lens' ContentCategoriesListResponse [ContentCategory]
+cclrContentCategories
+  = lens _cclrContentCategories
+      (\ s a -> s{_cclrContentCategories = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ContentCategoriesListResponse where
+        parseJSON
+          = withObject "ContentCategoriesListResponse"
+              (\ o ->
+                 ContentCategoriesListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#contentCategoriesListResponse")
+                     <*> (o .:? "contentCategories" .!= mempty))
+
+instance ToJSON ContentCategoriesListResponse where
+        toJSON ContentCategoriesListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _cclrNextPageToken,
+                  Just ("kind" .= _cclrKind),
+                  ("contentCategories" .=) <$> _cclrContentCategories])
+
+-- | Creative List Response
+--
+-- /See:/ 'creativesListResponse' smart constructor.
+data CreativesListResponse = CreativesListResponse'
+    { _clrlNextPageToken :: !(Maybe Text)
+    , _clrlKind          :: !Text
+    , _clrlCreatives     :: !(Maybe [Creative])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'clrlNextPageToken'
+--
+-- * 'clrlKind'
+--
+-- * 'clrlCreatives'
+creativesListResponse
+    :: CreativesListResponse
+creativesListResponse =
+    CreativesListResponse'
+    { _clrlNextPageToken = Nothing
+    , _clrlKind = "dfareporting#creativesListResponse"
+    , _clrlCreatives = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+clrlNextPageToken :: Lens' CreativesListResponse (Maybe Text)
+clrlNextPageToken
+  = lens _clrlNextPageToken
+      (\ s a -> s{_clrlNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativesListResponse\".
+clrlKind :: Lens' CreativesListResponse Text
+clrlKind = lens _clrlKind (\ s a -> s{_clrlKind = a})
+
+-- | Creative collection.
+clrlCreatives :: Lens' CreativesListResponse [Creative]
+clrlCreatives
+  = lens _clrlCreatives
+      (\ s a -> s{_clrlCreatives = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CreativesListResponse where
+        parseJSON
+          = withObject "CreativesListResponse"
+              (\ o ->
+                 CreativesListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#creativesListResponse")
+                     <*> (o .:? "creatives" .!= mempty))
+
+instance ToJSON CreativesListResponse where
+        toJSON CreativesListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _clrlNextPageToken,
+                  Just ("kind" .= _clrlKind),
+                  ("creatives" .=) <$> _clrlCreatives])
+
+-- | Contains properties of a DCM account.
+--
+-- /See:/ 'account' smart constructor.
+data Account = Account'
+    { _aaAccountPermissionIds   :: !(Maybe [Textual Int64])
+    , _aaMaximumImageSize       :: !(Maybe (Textual Int64))
+    , _aaCurrencyId             :: !(Maybe (Textual Int64))
+    , _aaReportsConfiguration   :: !(Maybe ReportsConfiguration)
+    , _aaNielsenOCREnabled      :: !(Maybe Bool)
+    , _aaKind                   :: !Text
+    , _aaLocale                 :: !(Maybe Text)
+    , _aaActive                 :: !(Maybe Bool)
+    , _aaAvailablePermissionIds :: !(Maybe [Textual Int64])
+    , _aaTeaserSizeLimit        :: !(Maybe (Textual Int64))
+    , _aaComscoreVceEnabled     :: !(Maybe Bool)
+    , _aaActiveViewOptOut       :: !(Maybe Bool)
+    , _aaName                   :: !(Maybe Text)
+    , _aaAccountProFile         :: !(Maybe AccountAccountProFile)
+    , _aaId                     :: !(Maybe (Textual Int64))
+    , _aaCountryId              :: !(Maybe (Textual Int64))
+    , _aaActiveAdsLimitTier     :: !(Maybe AccountActiveAdsLimitTier)
+    , _aaDefaultCreativeSizeId  :: !(Maybe (Textual Int64))
+    , _aaDescription            :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Account' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aaAccountPermissionIds'
+--
+-- * 'aaMaximumImageSize'
+--
+-- * 'aaCurrencyId'
+--
+-- * 'aaReportsConfiguration'
+--
+-- * 'aaNielsenOCREnabled'
+--
+-- * 'aaKind'
+--
+-- * 'aaLocale'
+--
+-- * 'aaActive'
+--
+-- * 'aaAvailablePermissionIds'
+--
+-- * 'aaTeaserSizeLimit'
+--
+-- * 'aaComscoreVceEnabled'
+--
+-- * 'aaActiveViewOptOut'
+--
+-- * 'aaName'
+--
+-- * 'aaAccountProFile'
+--
+-- * 'aaId'
+--
+-- * 'aaCountryId'
+--
+-- * 'aaActiveAdsLimitTier'
+--
+-- * 'aaDefaultCreativeSizeId'
+--
+-- * 'aaDescription'
+account
+    :: Account
+account =
+    Account'
+    { _aaAccountPermissionIds = Nothing
+    , _aaMaximumImageSize = Nothing
+    , _aaCurrencyId = Nothing
+    , _aaReportsConfiguration = Nothing
+    , _aaNielsenOCREnabled = Nothing
+    , _aaKind = "dfareporting#account"
+    , _aaLocale = Nothing
+    , _aaActive = Nothing
+    , _aaAvailablePermissionIds = Nothing
+    , _aaTeaserSizeLimit = Nothing
+    , _aaComscoreVceEnabled = Nothing
+    , _aaActiveViewOptOut = Nothing
+    , _aaName = Nothing
+    , _aaAccountProFile = Nothing
+    , _aaId = Nothing
+    , _aaCountryId = Nothing
+    , _aaActiveAdsLimitTier = Nothing
+    , _aaDefaultCreativeSizeId = Nothing
+    , _aaDescription = Nothing
+    }
+
+-- | Account permissions assigned to this account.
+aaAccountPermissionIds :: Lens' Account [Int64]
+aaAccountPermissionIds
+  = lens _aaAccountPermissionIds
+      (\ s a -> s{_aaAccountPermissionIds = a})
+      . _Default
+      . _Coerce
+
+-- | Maximum image size allowed for this account.
+aaMaximumImageSize :: Lens' Account (Maybe Int64)
+aaMaximumImageSize
+  = lens _aaMaximumImageSize
+      (\ s a -> s{_aaMaximumImageSize = a})
+      . mapping _Coerce
+
+-- | ID of currency associated with this account. This is a required field.
+-- Acceptable values are: - \"1\" for USD - \"2\" for GBP - \"3\" for ESP -
+-- \"4\" for SEK - \"5\" for CAD - \"6\" for JPY - \"7\" for DEM - \"8\"
+-- for AUD - \"9\" for FRF - \"10\" for ITL - \"11\" for DKK - \"12\" for
+-- NOK - \"13\" for FIM - \"14\" for ZAR - \"15\" for IEP - \"16\" for NLG
+-- - \"17\" for EUR - \"18\" for KRW - \"19\" for TWD - \"20\" for SGD -
+-- \"21\" for CNY - \"22\" for HKD - \"23\" for NZD - \"24\" for MYR -
+-- \"25\" for BRL - \"26\" for PTE - \"27\" for MXP - \"28\" for CLP -
+-- \"29\" for TRY - \"30\" for ARS - \"31\" for PEN - \"32\" for ILS -
+-- \"33\" for CHF - \"34\" for VEF - \"35\" for COP - \"36\" for GTQ -
+-- \"37\" for PLN - \"39\" for INR - \"40\" for THB - \"41\" for IDR -
+-- \"42\" for CZK - \"43\" for RON - \"44\" for HUF - \"45\" for RUB -
+-- \"46\" for AED - \"47\" for BGN - \"48\" for HRK
+aaCurrencyId :: Lens' Account (Maybe Int64)
+aaCurrencyId
+  = lens _aaCurrencyId (\ s a -> s{_aaCurrencyId = a})
+      . mapping _Coerce
+
+-- | Reporting configuration of this account.
+aaReportsConfiguration :: Lens' Account (Maybe ReportsConfiguration)
+aaReportsConfiguration
+  = lens _aaReportsConfiguration
+      (\ s a -> s{_aaReportsConfiguration = a})
+
+-- | Whether campaigns created in this account will be enabled for Nielsen
+-- OCR reach ratings by default.
+aaNielsenOCREnabled :: Lens' Account (Maybe Bool)
+aaNielsenOCREnabled
+  = lens _aaNielsenOCREnabled
+      (\ s a -> s{_aaNielsenOCREnabled = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#account\".
+aaKind :: Lens' Account Text
+aaKind = lens _aaKind (\ s a -> s{_aaKind = a})
+
+-- | Locale of this account. Acceptable values are: - \"cs\" (Czech) - \"de\"
+-- (German) - \"en\" (English) - \"en-GB\" (English United Kingdom) -
+-- \"es\" (Spanish) - \"fr\" (French) - \"it\" (Italian) - \"ja\"
+-- (Japanese) - \"ko\" (Korean) - \"pl\" (Polish) - \"pt-BR\" (Portuguese
+-- Brazil) - \"ru\" (Russian) - \"sv\" (Swedish) - \"tr\" (Turkish) -
+-- \"zh-CN\" (Chinese Simplified) - \"zh-TW\" (Chinese Traditional)
+aaLocale :: Lens' Account (Maybe Text)
+aaLocale = lens _aaLocale (\ s a -> s{_aaLocale = a})
+
+-- | Whether this account is active.
+aaActive :: Lens' Account (Maybe Bool)
+aaActive = lens _aaActive (\ s a -> s{_aaActive = a})
+
+-- | User role permissions available to the user roles of this account.
+aaAvailablePermissionIds :: Lens' Account [Int64]
+aaAvailablePermissionIds
+  = lens _aaAvailablePermissionIds
+      (\ s a -> s{_aaAvailablePermissionIds = a})
+      . _Default
+      . _Coerce
+
+-- | File size limit in kilobytes of Rich Media teaser creatives. Must be
+-- between 1 and 10240.
+aaTeaserSizeLimit :: Lens' Account (Maybe Int64)
+aaTeaserSizeLimit
+  = lens _aaTeaserSizeLimit
+      (\ s a -> s{_aaTeaserSizeLimit = a})
+      . mapping _Coerce
+
+-- | Whether campaigns created in this account will be enabled for comScore
+-- vCE by default.
+aaComscoreVceEnabled :: Lens' Account (Maybe Bool)
+aaComscoreVceEnabled
+  = lens _aaComscoreVceEnabled
+      (\ s a -> s{_aaComscoreVceEnabled = a})
+
+-- | Whether to serve creatives with Active View tags. If disabled,
+-- viewability data will not be available for any impressions.
+aaActiveViewOptOut :: Lens' Account (Maybe Bool)
+aaActiveViewOptOut
+  = lens _aaActiveViewOptOut
+      (\ s a -> s{_aaActiveViewOptOut = a})
+
+-- | Name of this account. This is a required field, and must be less than
+-- 128 characters long and be globally unique.
+aaName :: Lens' Account (Maybe Text)
+aaName = lens _aaName (\ s a -> s{_aaName = a})
+
+-- | Profile for this account. This is a read-only field that can be left
+-- blank.
+aaAccountProFile :: Lens' Account (Maybe AccountAccountProFile)
+aaAccountProFile
+  = lens _aaAccountProFile
+      (\ s a -> s{_aaAccountProFile = a})
+
+-- | ID of this account. This is a read-only, auto-generated field.
+aaId :: Lens' Account (Maybe Int64)
+aaId
+  = lens _aaId (\ s a -> s{_aaId = a}) .
+      mapping _Coerce
+
+-- | ID of the country associated with this account.
+aaCountryId :: Lens' Account (Maybe Int64)
+aaCountryId
+  = lens _aaCountryId (\ s a -> s{_aaCountryId = a}) .
+      mapping _Coerce
+
+-- | Maximum number of active ads allowed for this account.
+aaActiveAdsLimitTier :: Lens' Account (Maybe AccountActiveAdsLimitTier)
+aaActiveAdsLimitTier
+  = lens _aaActiveAdsLimitTier
+      (\ s a -> s{_aaActiveAdsLimitTier = a})
+
+-- | Default placement dimensions for this account.
+aaDefaultCreativeSizeId :: Lens' Account (Maybe Int64)
+aaDefaultCreativeSizeId
+  = lens _aaDefaultCreativeSizeId
+      (\ s a -> s{_aaDefaultCreativeSizeId = a})
+      . mapping _Coerce
+
+-- | Description of this account.
+aaDescription :: Lens' Account (Maybe Text)
+aaDescription
+  = lens _aaDescription
+      (\ s a -> s{_aaDescription = a})
+
+instance FromJSON Account where
+        parseJSON
+          = withObject "Account"
+              (\ o ->
+                 Account' <$>
+                   (o .:? "accountPermissionIds" .!= mempty) <*>
+                     (o .:? "maximumImageSize")
+                     <*> (o .:? "currencyId")
+                     <*> (o .:? "reportsConfiguration")
+                     <*> (o .:? "nielsenOcrEnabled")
+                     <*> (o .:? "kind" .!= "dfareporting#account")
+                     <*> (o .:? "locale")
+                     <*> (o .:? "active")
+                     <*> (o .:? "availablePermissionIds" .!= mempty)
+                     <*> (o .:? "teaserSizeLimit")
+                     <*> (o .:? "comscoreVceEnabled")
+                     <*> (o .:? "activeViewOptOut")
+                     <*> (o .:? "name")
+                     <*> (o .:? "accountProfile")
+                     <*> (o .:? "id")
+                     <*> (o .:? "countryId")
+                     <*> (o .:? "activeAdsLimitTier")
+                     <*> (o .:? "defaultCreativeSizeId")
+                     <*> (o .:? "description"))
+
+instance ToJSON Account where
+        toJSON Account'{..}
+          = object
+              (catMaybes
+                 [("accountPermissionIds" .=) <$>
+                    _aaAccountPermissionIds,
+                  ("maximumImageSize" .=) <$> _aaMaximumImageSize,
+                  ("currencyId" .=) <$> _aaCurrencyId,
+                  ("reportsConfiguration" .=) <$>
+                    _aaReportsConfiguration,
+                  ("nielsenOcrEnabled" .=) <$> _aaNielsenOCREnabled,
+                  Just ("kind" .= _aaKind),
+                  ("locale" .=) <$> _aaLocale,
+                  ("active" .=) <$> _aaActive,
+                  ("availablePermissionIds" .=) <$>
+                    _aaAvailablePermissionIds,
+                  ("teaserSizeLimit" .=) <$> _aaTeaserSizeLimit,
+                  ("comscoreVceEnabled" .=) <$> _aaComscoreVceEnabled,
+                  ("activeViewOptOut" .=) <$> _aaActiveViewOptOut,
+                  ("name" .=) <$> _aaName,
+                  ("accountProfile" .=) <$> _aaAccountProFile,
+                  ("id" .=) <$> _aaId,
+                  ("countryId" .=) <$> _aaCountryId,
+                  ("activeAdsLimitTier" .=) <$> _aaActiveAdsLimitTier,
+                  ("defaultCreativeSizeId" .=) <$>
+                    _aaDefaultCreativeSizeId,
+                  ("description" .=) <$> _aaDescription])
+
+-- | Insert Conversions Request.
+--
+-- /See:/ 'conversionsBatchInsertRequest' smart constructor.
+data ConversionsBatchInsertRequest = ConversionsBatchInsertRequest'
+    { _cbirKind           :: !Text
+    , _cbirConversions    :: !(Maybe [Conversion])
+    , _cbirEncryptionInfo :: !(Maybe EncryptionInfo)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConversionsBatchInsertRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cbirKind'
+--
+-- * 'cbirConversions'
+--
+-- * 'cbirEncryptionInfo'
+conversionsBatchInsertRequest
+    :: ConversionsBatchInsertRequest
+conversionsBatchInsertRequest =
+    ConversionsBatchInsertRequest'
+    { _cbirKind = "dfareporting#conversionsBatchInsertRequest"
+    , _cbirConversions = Nothing
+    , _cbirEncryptionInfo = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#conversionsBatchInsertRequest\".
+cbirKind :: Lens' ConversionsBatchInsertRequest Text
+cbirKind = lens _cbirKind (\ s a -> s{_cbirKind = a})
+
+-- | The set of conversions to insert.
+cbirConversions :: Lens' ConversionsBatchInsertRequest [Conversion]
+cbirConversions
+  = lens _cbirConversions
+      (\ s a -> s{_cbirConversions = a})
+      . _Default
+      . _Coerce
+
+-- | Describes how encryptedUserId is encrypted. This is a required field if
+-- encryptedUserId is used.
+cbirEncryptionInfo :: Lens' ConversionsBatchInsertRequest (Maybe EncryptionInfo)
+cbirEncryptionInfo
+  = lens _cbirEncryptionInfo
+      (\ s a -> s{_cbirEncryptionInfo = a})
+
+instance FromJSON ConversionsBatchInsertRequest where
+        parseJSON
+          = withObject "ConversionsBatchInsertRequest"
+              (\ o ->
+                 ConversionsBatchInsertRequest' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#conversionsBatchInsertRequest")
+                     <*> (o .:? "conversions" .!= mempty)
+                     <*> (o .:? "encryptionInfo"))
+
+instance ToJSON ConversionsBatchInsertRequest where
+        toJSON ConversionsBatchInsertRequest'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cbirKind),
+                  ("conversions" .=) <$> _cbirConversions,
+                  ("encryptionInfo" .=) <$> _cbirEncryptionInfo])
+
+-- | Account User Profile List Response
+--
+-- /See:/ 'accountUserProFilesListResponse' smart constructor.
+data AccountUserProFilesListResponse = AccountUserProFilesListResponse'
+    { _aupflrNextPageToken       :: !(Maybe Text)
+    , _aupflrAccountUserProFiles :: !(Maybe [AccountUserProFile])
+    , _aupflrKind                :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountUserProFilesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aupflrNextPageToken'
+--
+-- * 'aupflrAccountUserProFiles'
+--
+-- * 'aupflrKind'
+accountUserProFilesListResponse
+    :: AccountUserProFilesListResponse
+accountUserProFilesListResponse =
+    AccountUserProFilesListResponse'
+    { _aupflrNextPageToken = Nothing
+    , _aupflrAccountUserProFiles = Nothing
+    , _aupflrKind = "dfareporting#accountUserProfilesListResponse"
+    }
+
+-- | Pagination token to be used for the next list operation.
+aupflrNextPageToken :: Lens' AccountUserProFilesListResponse (Maybe Text)
+aupflrNextPageToken
+  = lens _aupflrNextPageToken
+      (\ s a -> s{_aupflrNextPageToken = a})
+
+-- | Account user profile collection.
+aupflrAccountUserProFiles :: Lens' AccountUserProFilesListResponse [AccountUserProFile]
+aupflrAccountUserProFiles
+  = lens _aupflrAccountUserProFiles
+      (\ s a -> s{_aupflrAccountUserProFiles = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountUserProfilesListResponse\".
+aupflrKind :: Lens' AccountUserProFilesListResponse Text
+aupflrKind
+  = lens _aupflrKind (\ s a -> s{_aupflrKind = a})
+
+instance FromJSON AccountUserProFilesListResponse
+         where
+        parseJSON
+          = withObject "AccountUserProFilesListResponse"
+              (\ o ->
+                 AccountUserProFilesListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "accountUserProfiles" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#accountUserProfilesListResponse"))
+
+instance ToJSON AccountUserProFilesListResponse where
+        toJSON AccountUserProFilesListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _aupflrNextPageToken,
+                  ("accountUserProfiles" .=) <$>
+                    _aupflrAccountUserProFiles,
+                  Just ("kind" .= _aupflrKind)])
+
+-- | Organizes placements according to the contents of their associated
+-- webpages.
+--
+-- /See:/ 'contentCategory' smart constructor.
+data ContentCategory = ContentCategory'
+    { _conKind      :: !Text
+    , _conAccountId :: !(Maybe (Textual Int64))
+    , _conName      :: !(Maybe Text)
+    , _conId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContentCategory' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'conKind'
+--
+-- * 'conAccountId'
+--
+-- * 'conName'
+--
+-- * 'conId'
+contentCategory
+    :: ContentCategory
+contentCategory =
+    ContentCategory'
+    { _conKind = "dfareporting#contentCategory"
+    , _conAccountId = Nothing
+    , _conName = Nothing
+    , _conId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#contentCategory\".
+conKind :: Lens' ContentCategory Text
+conKind = lens _conKind (\ s a -> s{_conKind = a})
+
+-- | Account ID of this content category. This is a read-only field that can
+-- be left blank.
+conAccountId :: Lens' ContentCategory (Maybe Int64)
+conAccountId
+  = lens _conAccountId (\ s a -> s{_conAccountId = a})
+      . mapping _Coerce
+
+-- | Name of this content category. This is a required field and must be less
+-- than 256 characters long and unique among content categories of the same
+-- account.
+conName :: Lens' ContentCategory (Maybe Text)
+conName = lens _conName (\ s a -> s{_conName = a})
+
+-- | ID of this content category. This is a read-only, auto-generated field.
+conId :: Lens' ContentCategory (Maybe Int64)
+conId
+  = lens _conId (\ s a -> s{_conId = a}) .
+      mapping _Coerce
+
+instance FromJSON ContentCategory where
+        parseJSON
+          = withObject "ContentCategory"
+              (\ o ->
+                 ContentCategory' <$>
+                   (o .:? "kind" .!= "dfareporting#contentCategory") <*>
+                     (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON ContentCategory where
+        toJSON ContentCategory'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _conKind),
+                  ("accountId" .=) <$> _conAccountId,
+                  ("name" .=) <$> _conName, ("id" .=) <$> _conId])
+
+-- | Represents fields that are compatible to be selected for a report of
+-- type \"STANDARD\".
+--
+-- /See:/ 'reportCompatibleFields' smart constructor.
+data ReportCompatibleFields = ReportCompatibleFields'
+    { _rcfMetrics                :: !(Maybe [Metric])
+    , _rcfKind                   :: !Text
+    , _rcfDimensionFilters       :: !(Maybe [Dimension])
+    , _rcfPivotedActivityMetrics :: !(Maybe [Metric])
+    , _rcfDimensions             :: !(Maybe [Dimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportCompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcfMetrics'
+--
+-- * 'rcfKind'
+--
+-- * 'rcfDimensionFilters'
+--
+-- * 'rcfPivotedActivityMetrics'
+--
+-- * 'rcfDimensions'
+reportCompatibleFields
+    :: ReportCompatibleFields
+reportCompatibleFields =
+    ReportCompatibleFields'
+    { _rcfMetrics = Nothing
+    , _rcfKind = "dfareporting#reportCompatibleFields"
+    , _rcfDimensionFilters = Nothing
+    , _rcfPivotedActivityMetrics = Nothing
+    , _rcfDimensions = Nothing
+    }
+
+-- | Metrics which are compatible to be selected in the \"metricNames\"
+-- section of the report.
+rcfMetrics :: Lens' ReportCompatibleFields [Metric]
+rcfMetrics
+  = lens _rcfMetrics (\ s a -> s{_rcfMetrics = a}) .
+      _Default
+      . _Coerce
+
+-- | The kind of resource this is, in this case
+-- dfareporting#reportCompatibleFields.
+rcfKind :: Lens' ReportCompatibleFields Text
+rcfKind = lens _rcfKind (\ s a -> s{_rcfKind = a})
+
+-- | Dimensions which are compatible to be selected in the
+-- \"dimensionFilters\" section of the report.
+rcfDimensionFilters :: Lens' ReportCompatibleFields [Dimension]
+rcfDimensionFilters
+  = lens _rcfDimensionFilters
+      (\ s a -> s{_rcfDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Metrics which are compatible to be selected as activity metrics to pivot
+-- on in the \"activities\" section of the report.
+rcfPivotedActivityMetrics :: Lens' ReportCompatibleFields [Metric]
+rcfPivotedActivityMetrics
+  = lens _rcfPivotedActivityMetrics
+      (\ s a -> s{_rcfPivotedActivityMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | Dimensions which are compatible to be selected in the \"dimensions\"
+-- section of the report.
+rcfDimensions :: Lens' ReportCompatibleFields [Dimension]
+rcfDimensions
+  = lens _rcfDimensions
+      (\ s a -> s{_rcfDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportCompatibleFields where
+        parseJSON
+          = withObject "ReportCompatibleFields"
+              (\ o ->
+                 ReportCompatibleFields' <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#reportCompatibleFields")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "pivotedActivityMetrics" .!= mempty)
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON ReportCompatibleFields where
+        toJSON ReportCompatibleFields'{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _rcfMetrics,
+                  Just ("kind" .= _rcfKind),
+                  ("dimensionFilters" .=) <$> _rcfDimensionFilters,
+                  ("pivotedActivityMetrics" .=) <$>
+                    _rcfPivotedActivityMetrics,
+                  ("dimensions" .=) <$> _rcfDimensions])
+
+-- | Delivery Schedule.
+--
+-- /See:/ 'deliverySchedule' smart constructor.
+data DeliverySchedule = DeliverySchedule'
+    { _dsHardCutoff      :: !(Maybe Bool)
+    , _dsPriority        :: !(Maybe DeliverySchedulePriority)
+    , _dsImpressionRatio :: !(Maybe (Textual Int64))
+    , _dsFrequencyCap    :: !(Maybe FrequencyCap)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeliverySchedule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsHardCutoff'
+--
+-- * 'dsPriority'
+--
+-- * 'dsImpressionRatio'
+--
+-- * 'dsFrequencyCap'
+deliverySchedule
+    :: DeliverySchedule
+deliverySchedule =
+    DeliverySchedule'
+    { _dsHardCutoff = Nothing
+    , _dsPriority = Nothing
+    , _dsImpressionRatio = Nothing
+    , _dsFrequencyCap = Nothing
+    }
+
+-- | Whether or not hard cutoff is enabled. If true, the ad will not serve
+-- after the end date and time. Otherwise the ad will continue to be served
+-- until it has reached its delivery goals.
+dsHardCutoff :: Lens' DeliverySchedule (Maybe Bool)
+dsHardCutoff
+  = lens _dsHardCutoff (\ s a -> s{_dsHardCutoff = a})
+
+-- | Serving priority of an ad, with respect to other ads. The lower the
+-- priority number, the greater the priority with which it is served.
+dsPriority :: Lens' DeliverySchedule (Maybe DeliverySchedulePriority)
+dsPriority
+  = lens _dsPriority (\ s a -> s{_dsPriority = a})
+
+-- | Impression ratio for this ad. This ratio determines how often each ad is
+-- served relative to the others. For example, if ad A has an impression
+-- ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad
+-- B three times as often as ad A. Must be between 1 and 10.
+dsImpressionRatio :: Lens' DeliverySchedule (Maybe Int64)
+dsImpressionRatio
+  = lens _dsImpressionRatio
+      (\ s a -> s{_dsImpressionRatio = a})
+      . mapping _Coerce
+
+-- | Limit on the number of times an individual user can be served the ad
+-- within a specified period of time.
+dsFrequencyCap :: Lens' DeliverySchedule (Maybe FrequencyCap)
+dsFrequencyCap
+  = lens _dsFrequencyCap
+      (\ s a -> s{_dsFrequencyCap = a})
+
+instance FromJSON DeliverySchedule where
+        parseJSON
+          = withObject "DeliverySchedule"
+              (\ o ->
+                 DeliverySchedule' <$>
+                   (o .:? "hardCutoff") <*> (o .:? "priority") <*>
+                     (o .:? "impressionRatio")
+                     <*> (o .:? "frequencyCap"))
+
+instance ToJSON DeliverySchedule where
+        toJSON DeliverySchedule'{..}
+          = object
+              (catMaybes
+                 [("hardCutoff" .=) <$> _dsHardCutoff,
+                  ("priority" .=) <$> _dsPriority,
+                  ("impressionRatio" .=) <$> _dsImpressionRatio,
+                  ("frequencyCap" .=) <$> _dsFrequencyCap])
+
+-- | Contains properties of a remarketing list. Remarketing enables you to
+-- create lists of users who have performed specific actions on a site,
+-- then target ads to members of those lists. This resource can be used to
+-- manage remarketing lists that are owned by your advertisers. To see all
+-- remarketing lists that are visible to your advertisers, including those
+-- that are shared to your advertiser or account, use the
+-- TargetableRemarketingLists resource.
+--
+-- /See:/ 'remarketingList' smart constructor.
+data RemarketingList = RemarketingList'
+    { _rlListSize                   :: !(Maybe (Textual Int64))
+    , _rlListPopulationRule         :: !(Maybe ListPopulationRule)
+    , _rlLifeSpan                   :: !(Maybe (Textual Int64))
+    , _rlKind                       :: !Text
+    , _rlAdvertiserId               :: !(Maybe (Textual Int64))
+    , _rlAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
+    , _rlActive                     :: !(Maybe Bool)
+    , _rlAccountId                  :: !(Maybe (Textual Int64))
+    , _rlName                       :: !(Maybe Text)
+    , _rlListSource                 :: !(Maybe RemarketingListListSource)
+    , _rlId                         :: !(Maybe (Textual Int64))
+    , _rlSubAccountId               :: !(Maybe (Textual Int64))
+    , _rlDescription                :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlListSize'
+--
+-- * 'rlListPopulationRule'
+--
+-- * 'rlLifeSpan'
+--
+-- * 'rlKind'
+--
+-- * 'rlAdvertiserId'
+--
+-- * 'rlAdvertiserIdDimensionValue'
+--
+-- * 'rlActive'
+--
+-- * 'rlAccountId'
+--
+-- * 'rlName'
+--
+-- * 'rlListSource'
+--
+-- * 'rlId'
+--
+-- * 'rlSubAccountId'
+--
+-- * 'rlDescription'
+remarketingList
+    :: RemarketingList
+remarketingList =
+    RemarketingList'
+    { _rlListSize = Nothing
+    , _rlListPopulationRule = Nothing
+    , _rlLifeSpan = Nothing
+    , _rlKind = "dfareporting#remarketingList"
+    , _rlAdvertiserId = Nothing
+    , _rlAdvertiserIdDimensionValue = Nothing
+    , _rlActive = Nothing
+    , _rlAccountId = Nothing
+    , _rlName = Nothing
+    , _rlListSource = Nothing
+    , _rlId = Nothing
+    , _rlSubAccountId = Nothing
+    , _rlDescription = Nothing
+    }
+
+-- | Number of users currently in the list. This is a read-only field.
+rlListSize :: Lens' RemarketingList (Maybe Int64)
+rlListSize
+  = lens _rlListSize (\ s a -> s{_rlListSize = a}) .
+      mapping _Coerce
+
+-- | Rule used to populate the remarketing list with users.
+rlListPopulationRule :: Lens' RemarketingList (Maybe ListPopulationRule)
+rlListPopulationRule
+  = lens _rlListPopulationRule
+      (\ s a -> s{_rlListPopulationRule = a})
+
+-- | Number of days that a user should remain in the remarketing list without
+-- an impression.
+rlLifeSpan :: Lens' RemarketingList (Maybe Int64)
+rlLifeSpan
+  = lens _rlLifeSpan (\ s a -> s{_rlLifeSpan = a}) .
+      mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#remarketingList\".
+rlKind :: Lens' RemarketingList Text
+rlKind = lens _rlKind (\ s a -> s{_rlKind = a})
+
+-- | Dimension value for the advertiser ID that owns this remarketing list.
+-- This is a required field.
+rlAdvertiserId :: Lens' RemarketingList (Maybe Int64)
+rlAdvertiserId
+  = lens _rlAdvertiserId
+      (\ s a -> s{_rlAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+rlAdvertiserIdDimensionValue :: Lens' RemarketingList (Maybe DimensionValue)
+rlAdvertiserIdDimensionValue
+  = lens _rlAdvertiserIdDimensionValue
+      (\ s a -> s{_rlAdvertiserIdDimensionValue = a})
+
+-- | Whether this remarketing list is active.
+rlActive :: Lens' RemarketingList (Maybe Bool)
+rlActive = lens _rlActive (\ s a -> s{_rlActive = a})
+
+-- | Account ID of this remarketing list. This is a read-only, auto-generated
+-- field that is only returned in GET requests.
+rlAccountId :: Lens' RemarketingList (Maybe Int64)
+rlAccountId
+  = lens _rlAccountId (\ s a -> s{_rlAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of the remarketing list. This is a required field. Must be no
+-- greater than 128 characters long.
+rlName :: Lens' RemarketingList (Maybe Text)
+rlName = lens _rlName (\ s a -> s{_rlName = a})
+
+-- | Product from which this remarketing list was originated.
+rlListSource :: Lens' RemarketingList (Maybe RemarketingListListSource)
+rlListSource
+  = lens _rlListSource (\ s a -> s{_rlListSource = a})
+
+-- | Remarketing list ID. This is a read-only, auto-generated field.
+rlId :: Lens' RemarketingList (Maybe Int64)
+rlId
+  = lens _rlId (\ s a -> s{_rlId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this remarketing list. This is a read-only,
+-- auto-generated field that is only returned in GET requests.
+rlSubAccountId :: Lens' RemarketingList (Maybe Int64)
+rlSubAccountId
+  = lens _rlSubAccountId
+      (\ s a -> s{_rlSubAccountId = a})
+      . mapping _Coerce
+
+-- | Remarketing list description.
+rlDescription :: Lens' RemarketingList (Maybe Text)
+rlDescription
+  = lens _rlDescription
+      (\ s a -> s{_rlDescription = a})
+
+instance FromJSON RemarketingList where
+        parseJSON
+          = withObject "RemarketingList"
+              (\ o ->
+                 RemarketingList' <$>
+                   (o .:? "listSize") <*> (o .:? "listPopulationRule")
+                     <*> (o .:? "lifeSpan")
+                     <*> (o .:? "kind" .!= "dfareporting#remarketingList")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "active")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "listSource")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "description"))
+
+instance ToJSON RemarketingList where
+        toJSON RemarketingList'{..}
+          = object
+              (catMaybes
+                 [("listSize" .=) <$> _rlListSize,
+                  ("listPopulationRule" .=) <$> _rlListPopulationRule,
+                  ("lifeSpan" .=) <$> _rlLifeSpan,
+                  Just ("kind" .= _rlKind),
+                  ("advertiserId" .=) <$> _rlAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _rlAdvertiserIdDimensionValue,
+                  ("active" .=) <$> _rlActive,
+                  ("accountId" .=) <$> _rlAccountId,
+                  ("name" .=) <$> _rlName,
+                  ("listSource" .=) <$> _rlListSource,
+                  ("id" .=) <$> _rlId,
+                  ("subaccountId" .=) <$> _rlSubAccountId,
+                  ("description" .=) <$> _rlDescription])
+
+-- | Dynamic Targeting Key List Response
+--
+-- /See:/ 'dynamicTargetingKeysListResponse' smart constructor.
+data DynamicTargetingKeysListResponse = DynamicTargetingKeysListResponse'
+    { _dtklrKind                 :: !Text
+    , _dtklrDynamicTargetingKeys :: !(Maybe [DynamicTargetingKey])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DynamicTargetingKeysListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtklrKind'
+--
+-- * 'dtklrDynamicTargetingKeys'
+dynamicTargetingKeysListResponse
+    :: DynamicTargetingKeysListResponse
+dynamicTargetingKeysListResponse =
+    DynamicTargetingKeysListResponse'
+    { _dtklrKind = "dfareporting#dynamicTargetingKeysListResponse"
+    , _dtklrDynamicTargetingKeys = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#dynamicTargetingKeysListResponse\".
+dtklrKind :: Lens' DynamicTargetingKeysListResponse Text
+dtklrKind
+  = lens _dtklrKind (\ s a -> s{_dtklrKind = a})
+
+-- | Dynamic targeting key collection.
+dtklrDynamicTargetingKeys :: Lens' DynamicTargetingKeysListResponse [DynamicTargetingKey]
+dtklrDynamicTargetingKeys
+  = lens _dtklrDynamicTargetingKeys
+      (\ s a -> s{_dtklrDynamicTargetingKeys = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON DynamicTargetingKeysListResponse
+         where
+        parseJSON
+          = withObject "DynamicTargetingKeysListResponse"
+              (\ o ->
+                 DynamicTargetingKeysListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#dynamicTargetingKeysListResponse")
+                     <*> (o .:? "dynamicTargetingKeys" .!= mempty))
+
+instance ToJSON DynamicTargetingKeysListResponse
+         where
+        toJSON DynamicTargetingKeysListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _dtklrKind),
+                  ("dynamicTargetingKeys" .=) <$>
+                    _dtklrDynamicTargetingKeys])
+
+-- | Represents the list of DimensionValue resources.
+--
+-- /See:/ 'dimensionValueList' smart constructor.
+data DimensionValueList = DimensionValueList'
+    { _dvlEtag          :: !(Maybe Text)
+    , _dvlNextPageToken :: !(Maybe Text)
+    , _dvlKind          :: !Text
+    , _dvlItems         :: !(Maybe [DimensionValue])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DimensionValueList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dvlEtag'
+--
+-- * 'dvlNextPageToken'
+--
+-- * 'dvlKind'
+--
+-- * 'dvlItems'
+dimensionValueList
+    :: DimensionValueList
+dimensionValueList =
+    DimensionValueList'
+    { _dvlEtag = Nothing
+    , _dvlNextPageToken = Nothing
+    , _dvlKind = "dfareporting#dimensionValueList"
+    , _dvlItems = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+dvlEtag :: Lens' DimensionValueList (Maybe Text)
+dvlEtag = lens _dvlEtag (\ s a -> s{_dvlEtag = a})
+
+-- | Continuation token used to page through dimension values. To retrieve
+-- the next page of results, set the next request\'s \"pageToken\" to the
+-- value of this field. The page token is only valid for a limited amount
+-- of time and should not be persisted.
+dvlNextPageToken :: Lens' DimensionValueList (Maybe Text)
+dvlNextPageToken
+  = lens _dvlNextPageToken
+      (\ s a -> s{_dvlNextPageToken = a})
+
+-- | The kind of list this is, in this case dfareporting#dimensionValueList.
+dvlKind :: Lens' DimensionValueList Text
+dvlKind = lens _dvlKind (\ s a -> s{_dvlKind = a})
+
+-- | The dimension values returned in this response.
+dvlItems :: Lens' DimensionValueList [DimensionValue]
+dvlItems
+  = lens _dvlItems (\ s a -> s{_dvlItems = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON DimensionValueList where
+        parseJSON
+          = withObject "DimensionValueList"
+              (\ o ->
+                 DimensionValueList' <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#dimensionValueList")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON DimensionValueList where
+        toJSON DimensionValueList'{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _dvlEtag,
+                  ("nextPageToken" .=) <$> _dvlNextPageToken,
+                  Just ("kind" .= _dvlKind),
+                  ("items" .=) <$> _dvlItems])
+
+-- | Represents fields that are compatible to be selected for a report of
+-- type \"FlOODLIGHT\".
+--
+-- /See:/ 'floodlightReportCompatibleFields' smart constructor.
+data FloodlightReportCompatibleFields = FloodlightReportCompatibleFields'
+    { _frcfMetrics          :: !(Maybe [Metric])
+    , _frcfKind             :: !Text
+    , _frcfDimensionFilters :: !(Maybe [Dimension])
+    , _frcfDimensions       :: !(Maybe [Dimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightReportCompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'frcfMetrics'
+--
+-- * 'frcfKind'
+--
+-- * 'frcfDimensionFilters'
+--
+-- * 'frcfDimensions'
+floodlightReportCompatibleFields
+    :: FloodlightReportCompatibleFields
+floodlightReportCompatibleFields =
+    FloodlightReportCompatibleFields'
+    { _frcfMetrics = Nothing
+    , _frcfKind = "dfareporting#floodlightReportCompatibleFields"
+    , _frcfDimensionFilters = Nothing
+    , _frcfDimensions = Nothing
+    }
+
+-- | Metrics which are compatible to be selected in the \"metricNames\"
+-- section of the report.
+frcfMetrics :: Lens' FloodlightReportCompatibleFields [Metric]
+frcfMetrics
+  = lens _frcfMetrics (\ s a -> s{_frcfMetrics = a}) .
+      _Default
+      . _Coerce
+
+-- | The kind of resource this is, in this case
+-- dfareporting#floodlightReportCompatibleFields.
+frcfKind :: Lens' FloodlightReportCompatibleFields Text
+frcfKind = lens _frcfKind (\ s a -> s{_frcfKind = a})
+
+-- | Dimensions which are compatible to be selected in the
+-- \"dimensionFilters\" section of the report.
+frcfDimensionFilters :: Lens' FloodlightReportCompatibleFields [Dimension]
+frcfDimensionFilters
+  = lens _frcfDimensionFilters
+      (\ s a -> s{_frcfDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | Dimensions which are compatible to be selected in the \"dimensions\"
+-- section of the report.
+frcfDimensions :: Lens' FloodlightReportCompatibleFields [Dimension]
+frcfDimensions
+  = lens _frcfDimensions
+      (\ s a -> s{_frcfDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON FloodlightReportCompatibleFields
+         where
+        parseJSON
+          = withObject "FloodlightReportCompatibleFields"
+              (\ o ->
+                 FloodlightReportCompatibleFields' <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightReportCompatibleFields")
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "dimensions" .!= mempty))
+
+instance ToJSON FloodlightReportCompatibleFields
+         where
+        toJSON FloodlightReportCompatibleFields'{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _frcfMetrics,
+                  Just ("kind" .= _frcfKind),
+                  ("dimensionFilters" .=) <$> _frcfDimensionFilters,
+                  ("dimensions" .=) <$> _frcfDimensions])
+
+-- | Represents a grouping of related user role permissions.
+--
+-- /See:/ 'userRolePermissionGroup' smart constructor.
+data UserRolePermissionGroup = UserRolePermissionGroup'
+    { _urpgKind :: !Text
+    , _urpgName :: !(Maybe Text)
+    , _urpgId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermissionGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urpgKind'
+--
+-- * 'urpgName'
+--
+-- * 'urpgId'
+userRolePermissionGroup
+    :: UserRolePermissionGroup
+userRolePermissionGroup =
+    UserRolePermissionGroup'
+    { _urpgKind = "dfareporting#userRolePermissionGroup"
+    , _urpgName = Nothing
+    , _urpgId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRolePermissionGroup\".
+urpgKind :: Lens' UserRolePermissionGroup Text
+urpgKind = lens _urpgKind (\ s a -> s{_urpgKind = a})
+
+-- | Name of this user role permission group.
+urpgName :: Lens' UserRolePermissionGroup (Maybe Text)
+urpgName = lens _urpgName (\ s a -> s{_urpgName = a})
+
+-- | ID of this user role permission.
+urpgId :: Lens' UserRolePermissionGroup (Maybe Int64)
+urpgId
+  = lens _urpgId (\ s a -> s{_urpgId = a}) .
+      mapping _Coerce
+
+instance FromJSON UserRolePermissionGroup where
+        parseJSON
+          = withObject "UserRolePermissionGroup"
+              (\ o ->
+                 UserRolePermissionGroup' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#userRolePermissionGroup")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON UserRolePermissionGroup where
+        toJSON UserRolePermissionGroup'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _urpgKind),
+                  ("name" .=) <$> _urpgName, ("id" .=) <$> _urpgId])
+
+-- | Tag Settings
+--
+-- /See:/ 'tagSetting' smart constructor.
+data TagSetting = TagSetting'
+    { _tsKeywordOption           :: !(Maybe TagSettingKeywordOption)
+    , _tsIncludeClickThroughURLs :: !(Maybe Bool)
+    , _tsIncludeClickTracking    :: !(Maybe Bool)
+    , _tsAdditionalKeyValues     :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TagSetting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tsKeywordOption'
+--
+-- * 'tsIncludeClickThroughURLs'
+--
+-- * 'tsIncludeClickTracking'
+--
+-- * 'tsAdditionalKeyValues'
+tagSetting
+    :: TagSetting
+tagSetting =
+    TagSetting'
+    { _tsKeywordOption = Nothing
+    , _tsIncludeClickThroughURLs = Nothing
+    , _tsIncludeClickTracking = Nothing
+    , _tsAdditionalKeyValues = Nothing
+    }
+
+-- | Option specifying how keywords are embedded in ad tags. This setting can
+-- be used to specify whether keyword placeholders are inserted in
+-- placement tags for this site. Publishers can then add keywords to those
+-- placeholders.
+tsKeywordOption :: Lens' TagSetting (Maybe TagSettingKeywordOption)
+tsKeywordOption
+  = lens _tsKeywordOption
+      (\ s a -> s{_tsKeywordOption = a})
+
+-- | Whether static landing page URLs should be included in the tags. This
+-- setting applies only to placements.
+tsIncludeClickThroughURLs :: Lens' TagSetting (Maybe Bool)
+tsIncludeClickThroughURLs
+  = lens _tsIncludeClickThroughURLs
+      (\ s a -> s{_tsIncludeClickThroughURLs = a})
+
+-- | Whether click-tracking string should be included in the tags.
+tsIncludeClickTracking :: Lens' TagSetting (Maybe Bool)
+tsIncludeClickTracking
+  = lens _tsIncludeClickTracking
+      (\ s a -> s{_tsIncludeClickTracking = a})
+
+-- | Additional key-values to be included in tags. Each key-value pair must
+-- be of the form key=value, and pairs must be separated by a semicolon
+-- (;). Keys and values must not contain commas. For example,
+-- id=2;color=red is a valid value for this field.
+tsAdditionalKeyValues :: Lens' TagSetting (Maybe Text)
+tsAdditionalKeyValues
+  = lens _tsAdditionalKeyValues
+      (\ s a -> s{_tsAdditionalKeyValues = a})
+
+instance FromJSON TagSetting where
+        parseJSON
+          = withObject "TagSetting"
+              (\ o ->
+                 TagSetting' <$>
+                   (o .:? "keywordOption") <*>
+                     (o .:? "includeClickThroughUrls")
+                     <*> (o .:? "includeClickTracking")
+                     <*> (o .:? "additionalKeyValues"))
+
+instance ToJSON TagSetting where
+        toJSON TagSetting'{..}
+          = object
+              (catMaybes
+                 [("keywordOption" .=) <$> _tsKeywordOption,
+                  ("includeClickThroughUrls" .=) <$>
+                    _tsIncludeClickThroughURLs,
+                  ("includeClickTracking" .=) <$>
+                    _tsIncludeClickTracking,
+                  ("additionalKeyValues" .=) <$>
+                    _tsAdditionalKeyValues])
+
+-- | The properties of the report.
+--
+-- /See:/ 'reportPathToConversionCriteriaReportProperties' smart constructor.
+data ReportPathToConversionCriteriaReportProperties = ReportPathToConversionCriteriaReportProperties'
+    { _rptccrpMaximumInteractionGap                :: !(Maybe (Textual Int32))
+    , _rptccrpMaximumClickInteractions             :: !(Maybe (Textual Int32))
+    , _rptccrpPivotOnInteractionPath               :: !(Maybe Bool)
+    , _rptccrpMaximumImpressionInteractions        :: !(Maybe (Textual Int32))
+    , _rptccrpIncludeUnattributedIPConversions     :: !(Maybe Bool)
+    , _rptccrpImpressionsLookbackWindow            :: !(Maybe (Textual Int32))
+    , _rptccrpClicksLookbackWindow                 :: !(Maybe (Textual Int32))
+    , _rptccrpIncludeUnattributedCookieConversions :: !(Maybe Bool)
+    , _rptccrpIncludeAttributedIPConversions       :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportPathToConversionCriteriaReportProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rptccrpMaximumInteractionGap'
+--
+-- * 'rptccrpMaximumClickInteractions'
+--
+-- * 'rptccrpPivotOnInteractionPath'
+--
+-- * 'rptccrpMaximumImpressionInteractions'
+--
+-- * 'rptccrpIncludeUnattributedIPConversions'
+--
+-- * 'rptccrpImpressionsLookbackWindow'
+--
+-- * 'rptccrpClicksLookbackWindow'
+--
+-- * 'rptccrpIncludeUnattributedCookieConversions'
+--
+-- * 'rptccrpIncludeAttributedIPConversions'
+reportPathToConversionCriteriaReportProperties
+    :: ReportPathToConversionCriteriaReportProperties
+reportPathToConversionCriteriaReportProperties =
+    ReportPathToConversionCriteriaReportProperties'
+    { _rptccrpMaximumInteractionGap = Nothing
+    , _rptccrpMaximumClickInteractions = Nothing
+    , _rptccrpPivotOnInteractionPath = Nothing
+    , _rptccrpMaximumImpressionInteractions = Nothing
+    , _rptccrpIncludeUnattributedIPConversions = Nothing
+    , _rptccrpImpressionsLookbackWindow = Nothing
+    , _rptccrpClicksLookbackWindow = Nothing
+    , _rptccrpIncludeUnattributedCookieConversions = Nothing
+    , _rptccrpIncludeAttributedIPConversions = Nothing
+    }
+
+-- | The maximum amount of time that can take place between interactions
+-- (clicks or impressions) by the same user. Valid values: 1-90.
+rptccrpMaximumInteractionGap :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
+rptccrpMaximumInteractionGap
+  = lens _rptccrpMaximumInteractionGap
+      (\ s a -> s{_rptccrpMaximumInteractionGap = a})
+      . mapping _Coerce
+
+-- | The maximum number of click interactions to include in the report.
+-- Advertisers currently paying for E2C reports get up to 200 (100 clicks,
+-- 100 impressions). If another advertiser in your network is paying for
+-- E2C, you can have up to 5 total exposures per report.
+rptccrpMaximumClickInteractions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
+rptccrpMaximumClickInteractions
+  = lens _rptccrpMaximumClickInteractions
+      (\ s a -> s{_rptccrpMaximumClickInteractions = a})
+      . mapping _Coerce
+
+-- | Enable pivoting on interaction path.
+rptccrpPivotOnInteractionPath :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
+rptccrpPivotOnInteractionPath
+  = lens _rptccrpPivotOnInteractionPath
+      (\ s a -> s{_rptccrpPivotOnInteractionPath = a})
+
+-- | The maximum number of click interactions to include in the report.
+-- Advertisers currently paying for E2C reports get up to 200 (100 clicks,
+-- 100 impressions). If another advertiser in your network is paying for
+-- E2C, you can have up to 5 total exposures per report.
+rptccrpMaximumImpressionInteractions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
+rptccrpMaximumImpressionInteractions
+  = lens _rptccrpMaximumImpressionInteractions
+      (\ s a ->
+         s{_rptccrpMaximumImpressionInteractions = a})
+      . mapping _Coerce
+
+-- | Include conversions that have no associated cookies and no exposures.
+-- It’s therefore impossible to know how the user was exposed to your ads
+-- during the lookback window prior to a conversion.
+rptccrpIncludeUnattributedIPConversions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
+rptccrpIncludeUnattributedIPConversions
+  = lens _rptccrpIncludeUnattributedIPConversions
+      (\ s a ->
+         s{_rptccrpIncludeUnattributedIPConversions = a})
+
+-- | DFA checks to see if an impression interaction occurred within the
+-- specified period of time before a conversion. By default the value is
+-- pulled from Floodlight or you can manually enter a custom value. Valid
+-- values: 1-90.
+rptccrpImpressionsLookbackWindow :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
+rptccrpImpressionsLookbackWindow
+  = lens _rptccrpImpressionsLookbackWindow
+      (\ s a -> s{_rptccrpImpressionsLookbackWindow = a})
+      . mapping _Coerce
+
+-- | DFA checks to see if a click interaction occurred within the specified
+-- period of time before a conversion. By default the value is pulled from
+-- Floodlight or you can manually enter a custom value. Valid values: 1-90.
+rptccrpClicksLookbackWindow :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Int32)
+rptccrpClicksLookbackWindow
+  = lens _rptccrpClicksLookbackWindow
+      (\ s a -> s{_rptccrpClicksLookbackWindow = a})
+      . mapping _Coerce
+
+-- | Include conversions of users with a DoubleClick cookie but without an
+-- exposure. That means the user did not click or see an ad from the
+-- advertiser within the Floodlight group, or that the interaction happened
+-- outside the lookback window.
+rptccrpIncludeUnattributedCookieConversions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
+rptccrpIncludeUnattributedCookieConversions
+  = lens _rptccrpIncludeUnattributedCookieConversions
+      (\ s a ->
+         s{_rptccrpIncludeUnattributedCookieConversions = a})
+
+-- | Deprecated: has no effect.
+rptccrpIncludeAttributedIPConversions :: Lens' ReportPathToConversionCriteriaReportProperties (Maybe Bool)
+rptccrpIncludeAttributedIPConversions
+  = lens _rptccrpIncludeAttributedIPConversions
+      (\ s a ->
+         s{_rptccrpIncludeAttributedIPConversions = a})
+
+instance FromJSON
+         ReportPathToConversionCriteriaReportProperties where
+        parseJSON
+          = withObject
+              "ReportPathToConversionCriteriaReportProperties"
+              (\ o ->
+                 ReportPathToConversionCriteriaReportProperties' <$>
+                   (o .:? "maximumInteractionGap") <*>
+                     (o .:? "maximumClickInteractions")
+                     <*> (o .:? "pivotOnInteractionPath")
+                     <*> (o .:? "maximumImpressionInteractions")
+                     <*> (o .:? "includeUnattributedIPConversions")
+                     <*> (o .:? "impressionsLookbackWindow")
+                     <*> (o .:? "clicksLookbackWindow")
+                     <*> (o .:? "includeUnattributedCookieConversions")
+                     <*> (o .:? "includeAttributedIPConversions"))
+
+instance ToJSON
+         ReportPathToConversionCriteriaReportProperties where
+        toJSON
+          ReportPathToConversionCriteriaReportProperties'{..}
+          = object
+              (catMaybes
+                 [("maximumInteractionGap" .=) <$>
+                    _rptccrpMaximumInteractionGap,
+                  ("maximumClickInteractions" .=) <$>
+                    _rptccrpMaximumClickInteractions,
+                  ("pivotOnInteractionPath" .=) <$>
+                    _rptccrpPivotOnInteractionPath,
+                  ("maximumImpressionInteractions" .=) <$>
+                    _rptccrpMaximumImpressionInteractions,
+                  ("includeUnattributedIPConversions" .=) <$>
+                    _rptccrpIncludeUnattributedIPConversions,
+                  ("impressionsLookbackWindow" .=) <$>
+                    _rptccrpImpressionsLookbackWindow,
+                  ("clicksLookbackWindow" .=) <$>
+                    _rptccrpClicksLookbackWindow,
+                  ("includeUnattributedCookieConversions" .=) <$>
+                    _rptccrpIncludeUnattributedCookieConversions,
+                  ("includeAttributedIPConversions" .=) <$>
+                    _rptccrpIncludeAttributedIPConversions])
+
+-- | User Role Permission List Response
+--
+-- /See:/ 'userRolePermissionsListResponse' smart constructor.
+data UserRolePermissionsListResponse = UserRolePermissionsListResponse'
+    { _urplrKind                :: !Text
+    , _urplrUserRolePermissions :: !(Maybe [UserRolePermission])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermissionsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urplrKind'
+--
+-- * 'urplrUserRolePermissions'
+userRolePermissionsListResponse
+    :: UserRolePermissionsListResponse
+userRolePermissionsListResponse =
+    UserRolePermissionsListResponse'
+    { _urplrKind = "dfareporting#userRolePermissionsListResponse"
+    , _urplrUserRolePermissions = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRolePermissionsListResponse\".
+urplrKind :: Lens' UserRolePermissionsListResponse Text
+urplrKind
+  = lens _urplrKind (\ s a -> s{_urplrKind = a})
+
+-- | User role permission collection.
+urplrUserRolePermissions :: Lens' UserRolePermissionsListResponse [UserRolePermission]
+urplrUserRolePermissions
+  = lens _urplrUserRolePermissions
+      (\ s a -> s{_urplrUserRolePermissions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON UserRolePermissionsListResponse
+         where
+        parseJSON
+          = withObject "UserRolePermissionsListResponse"
+              (\ o ->
+                 UserRolePermissionsListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#userRolePermissionsListResponse")
+                     <*> (o .:? "userRolePermissions" .!= mempty))
+
+instance ToJSON UserRolePermissionsListResponse where
+        toJSON UserRolePermissionsListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _urplrKind),
+                  ("userRolePermissions" .=) <$>
+                    _urplrUserRolePermissions])
+
+-- | Placement Group List Response
+--
+-- /See:/ 'placementGroupsListResponse' smart constructor.
+data PlacementGroupsListResponse = PlacementGroupsListResponse'
+    { _pglrNextPageToken   :: !(Maybe Text)
+    , _pglrKind            :: !Text
+    , _pglrPlacementGroups :: !(Maybe [PlacementGroup])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pglrNextPageToken'
+--
+-- * 'pglrKind'
+--
+-- * 'pglrPlacementGroups'
+placementGroupsListResponse
+    :: PlacementGroupsListResponse
+placementGroupsListResponse =
+    PlacementGroupsListResponse'
+    { _pglrNextPageToken = Nothing
+    , _pglrKind = "dfareporting#placementGroupsListResponse"
+    , _pglrPlacementGroups = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+pglrNextPageToken :: Lens' PlacementGroupsListResponse (Maybe Text)
+pglrNextPageToken
+  = lens _pglrNextPageToken
+      (\ s a -> s{_pglrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementGroupsListResponse\".
+pglrKind :: Lens' PlacementGroupsListResponse Text
+pglrKind = lens _pglrKind (\ s a -> s{_pglrKind = a})
+
+-- | Placement group collection.
+pglrPlacementGroups :: Lens' PlacementGroupsListResponse [PlacementGroup]
+pglrPlacementGroups
+  = lens _pglrPlacementGroups
+      (\ s a -> s{_pglrPlacementGroups = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON PlacementGroupsListResponse where
+        parseJSON
+          = withObject "PlacementGroupsListResponse"
+              (\ o ->
+                 PlacementGroupsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#placementGroupsListResponse")
+                     <*> (o .:? "placementGroups" .!= mempty))
+
+instance ToJSON PlacementGroupsListResponse where
+        toJSON PlacementGroupsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _pglrNextPageToken,
+                  Just ("kind" .= _pglrKind),
+                  ("placementGroups" .=) <$> _pglrPlacementGroups])
+
+-- | Contains information about a mobile carrier that can be targeted by ads.
+--
+-- /See:/ 'mobileCarrier' smart constructor.
+data MobileCarrier = MobileCarrier'
+    { _mcKind          :: !Text
+    , _mcName          :: !(Maybe Text)
+    , _mcCountryCode   :: !(Maybe Text)
+    , _mcId            :: !(Maybe (Textual Int64))
+    , _mcCountryDartId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MobileCarrier' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mcKind'
+--
+-- * 'mcName'
+--
+-- * 'mcCountryCode'
+--
+-- * 'mcId'
+--
+-- * 'mcCountryDartId'
+mobileCarrier
+    :: MobileCarrier
+mobileCarrier =
+    MobileCarrier'
+    { _mcKind = "dfareporting#mobileCarrier"
+    , _mcName = Nothing
+    , _mcCountryCode = Nothing
+    , _mcId = Nothing
+    , _mcCountryDartId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#mobileCarrier\".
+mcKind :: Lens' MobileCarrier Text
+mcKind = lens _mcKind (\ s a -> s{_mcKind = a})
+
+-- | Name of this mobile carrier.
+mcName :: Lens' MobileCarrier (Maybe Text)
+mcName = lens _mcName (\ s a -> s{_mcName = a})
+
+-- | Country code of the country to which this mobile carrier belongs.
+mcCountryCode :: Lens' MobileCarrier (Maybe Text)
+mcCountryCode
+  = lens _mcCountryCode
+      (\ s a -> s{_mcCountryCode = a})
+
+-- | ID of this mobile carrier.
+mcId :: Lens' MobileCarrier (Maybe Int64)
+mcId
+  = lens _mcId (\ s a -> s{_mcId = a}) .
+      mapping _Coerce
+
+-- | DART ID of the country to which this mobile carrier belongs.
+mcCountryDartId :: Lens' MobileCarrier (Maybe Int64)
+mcCountryDartId
+  = lens _mcCountryDartId
+      (\ s a -> s{_mcCountryDartId = a})
+      . mapping _Coerce
+
+instance FromJSON MobileCarrier where
+        parseJSON
+          = withObject "MobileCarrier"
+              (\ o ->
+                 MobileCarrier' <$>
+                   (o .:? "kind" .!= "dfareporting#mobileCarrier") <*>
+                     (o .:? "name")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "id")
+                     <*> (o .:? "countryDartId"))
+
+instance ToJSON MobileCarrier where
+        toJSON MobileCarrier'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _mcKind), ("name" .=) <$> _mcName,
+                  ("countryCode" .=) <$> _mcCountryCode,
+                  ("id" .=) <$> _mcId,
+                  ("countryDartId" .=) <$> _mcCountryDartId])
+
+-- | Contains information about where a user\'s browser is taken after the
+-- user clicks an ad.
+--
+-- /See:/ 'landingPage' smart constructor.
+data LandingPage = LandingPage'
+    { _lpKind    :: !Text
+    , _lpDefault :: !(Maybe Bool)
+    , _lpURL     :: !(Maybe Text)
+    , _lpName    :: !(Maybe Text)
+    , _lpId      :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LandingPage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpKind'
+--
+-- * 'lpDefault'
+--
+-- * 'lpURL'
+--
+-- * 'lpName'
+--
+-- * 'lpId'
+landingPage
+    :: LandingPage
+landingPage =
+    LandingPage'
+    { _lpKind = "dfareporting#landingPage"
+    , _lpDefault = Nothing
+    , _lpURL = Nothing
+    , _lpName = Nothing
+    , _lpId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#landingPage\".
+lpKind :: Lens' LandingPage Text
+lpKind = lens _lpKind (\ s a -> s{_lpKind = a})
+
+-- | Whether or not this landing page will be assigned to any ads or
+-- creatives that do not have a landing page assigned explicitly. Only one
+-- default landing page is allowed per campaign.
+lpDefault :: Lens' LandingPage (Maybe Bool)
+lpDefault
+  = lens _lpDefault (\ s a -> s{_lpDefault = a})
+
+-- | URL of this landing page. This is a required field.
+lpURL :: Lens' LandingPage (Maybe Text)
+lpURL = lens _lpURL (\ s a -> s{_lpURL = a})
+
+-- | Name of this landing page. This is a required field. It must be less
+-- than 256 characters long, and must be unique among landing pages of the
+-- same campaign.
+lpName :: Lens' LandingPage (Maybe Text)
+lpName = lens _lpName (\ s a -> s{_lpName = a})
+
+-- | ID of this landing page. This is a read-only, auto-generated field.
+lpId :: Lens' LandingPage (Maybe Int64)
+lpId
+  = lens _lpId (\ s a -> s{_lpId = a}) .
+      mapping _Coerce
+
+instance FromJSON LandingPage where
+        parseJSON
+          = withObject "LandingPage"
+              (\ o ->
+                 LandingPage' <$>
+                   (o .:? "kind" .!= "dfareporting#landingPage") <*>
+                     (o .:? "default")
+                     <*> (o .:? "url")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON LandingPage where
+        toJSON LandingPage'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _lpKind),
+                  ("default" .=) <$> _lpDefault, ("url" .=) <$> _lpURL,
+                  ("name" .=) <$> _lpName, ("id" .=) <$> _lpId])
+
+-- | Connection Type List Response
+--
+-- /See:/ 'connectionTypesListResponse' smart constructor.
+data ConnectionTypesListResponse = ConnectionTypesListResponse'
+    { _ctlrKind            :: !Text
+    , _ctlrConnectionTypes :: !(Maybe [ConnectionType])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConnectionTypesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctlrKind'
+--
+-- * 'ctlrConnectionTypes'
+connectionTypesListResponse
+    :: ConnectionTypesListResponse
+connectionTypesListResponse =
+    ConnectionTypesListResponse'
+    { _ctlrKind = "dfareporting#connectionTypesListResponse"
+    , _ctlrConnectionTypes = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#connectionTypesListResponse\".
+ctlrKind :: Lens' ConnectionTypesListResponse Text
+ctlrKind = lens _ctlrKind (\ s a -> s{_ctlrKind = a})
+
+-- | Collection of connection types such as broadband and mobile.
+ctlrConnectionTypes :: Lens' ConnectionTypesListResponse [ConnectionType]
+ctlrConnectionTypes
+  = lens _ctlrConnectionTypes
+      (\ s a -> s{_ctlrConnectionTypes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ConnectionTypesListResponse where
+        parseJSON
+          = withObject "ConnectionTypesListResponse"
+              (\ o ->
+                 ConnectionTypesListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#connectionTypesListResponse")
+                     <*> (o .:? "connectionTypes" .!= mempty))
+
+instance ToJSON ConnectionTypesListResponse where
+        toJSON ConnectionTypesListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ctlrKind),
+                  ("connectionTypes" .=) <$> _ctlrConnectionTypes])
+
+-- | Order List Response
+--
+-- /See:/ 'ordersListResponse' smart constructor.
+data OrdersListResponse = OrdersListResponse'
+    { _olrNextPageToken :: !(Maybe Text)
+    , _olrKind          :: !Text
+    , _olrOrders        :: !(Maybe [Order])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrdersListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'olrNextPageToken'
+--
+-- * 'olrKind'
+--
+-- * 'olrOrders'
+ordersListResponse
+    :: OrdersListResponse
+ordersListResponse =
+    OrdersListResponse'
+    { _olrNextPageToken = Nothing
+    , _olrKind = "dfareporting#ordersListResponse"
+    , _olrOrders = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+olrNextPageToken :: Lens' OrdersListResponse (Maybe Text)
+olrNextPageToken
+  = lens _olrNextPageToken
+      (\ s a -> s{_olrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#ordersListResponse\".
+olrKind :: Lens' OrdersListResponse Text
+olrKind = lens _olrKind (\ s a -> s{_olrKind = a})
+
+-- | Order collection.
+olrOrders :: Lens' OrdersListResponse [Order]
+olrOrders
+  = lens _olrOrders (\ s a -> s{_olrOrders = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON OrdersListResponse where
+        parseJSON
+          = withObject "OrdersListResponse"
+              (\ o ->
+                 OrdersListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#ordersListResponse")
+                     <*> (o .:? "orders" .!= mempty))
+
+instance ToJSON OrdersListResponse where
+        toJSON OrdersListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _olrNextPageToken,
+                  Just ("kind" .= _olrKind),
+                  ("orders" .=) <$> _olrOrders])
+
+-- | Represents the list of reports.
+--
+-- /See:/ 'reportList' smart constructor.
+data ReportList = ReportList'
+    { _repEtag          :: !(Maybe Text)
+    , _repNextPageToken :: !(Maybe Text)
+    , _repKind          :: !Text
+    , _repItems         :: !(Maybe [Report])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'repEtag'
+--
+-- * 'repNextPageToken'
+--
+-- * 'repKind'
+--
+-- * 'repItems'
+reportList
+    :: ReportList
+reportList =
+    ReportList'
+    { _repEtag = Nothing
+    , _repNextPageToken = Nothing
+    , _repKind = "dfareporting#reportList"
+    , _repItems = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+repEtag :: Lens' ReportList (Maybe Text)
+repEtag = lens _repEtag (\ s a -> s{_repEtag = a})
+
+-- | Continuation token used to page through reports. To retrieve the next
+-- page of results, set the next request\'s \"pageToken\" to the value of
+-- this field. The page token is only valid for a limited amount of time
+-- and should not be persisted.
+repNextPageToken :: Lens' ReportList (Maybe Text)
+repNextPageToken
+  = lens _repNextPageToken
+      (\ s a -> s{_repNextPageToken = a})
+
+-- | The kind of list this is, in this case dfareporting#reportList.
+repKind :: Lens' ReportList Text
+repKind = lens _repKind (\ s a -> s{_repKind = a})
+
+-- | The reports returned in this response.
+repItems :: Lens' ReportList [Report]
+repItems
+  = lens _repItems (\ s a -> s{_repItems = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ReportList where
+        parseJSON
+          = withObject "ReportList"
+              (\ o ->
+                 ReportList' <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#reportList")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON ReportList where
+        toJSON ReportList'{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _repEtag,
+                  ("nextPageToken" .=) <$> _repNextPageToken,
+                  Just ("kind" .= _repKind),
+                  ("items" .=) <$> _repItems])
+
+-- | Contains properties of a creative group.
+--
+-- /See:/ 'creativeGroup' smart constructor.
+data CreativeGroup = CreativeGroup'
+    { _cgKind                       :: !Text
+    , _cgAdvertiserId               :: !(Maybe (Textual Int64))
+    , _cgAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
+    , _cgGroupNumber                :: !(Maybe (Textual Int32))
+    , _cgAccountId                  :: !(Maybe (Textual Int64))
+    , _cgName                       :: !(Maybe Text)
+    , _cgId                         :: !(Maybe (Textual Int64))
+    , _cgSubAccountId               :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cgKind'
+--
+-- * 'cgAdvertiserId'
+--
+-- * 'cgAdvertiserIdDimensionValue'
+--
+-- * 'cgGroupNumber'
+--
+-- * 'cgAccountId'
+--
+-- * 'cgName'
+--
+-- * 'cgId'
+--
+-- * 'cgSubAccountId'
+creativeGroup
+    :: CreativeGroup
+creativeGroup =
+    CreativeGroup'
+    { _cgKind = "dfareporting#creativeGroup"
+    , _cgAdvertiserId = Nothing
+    , _cgAdvertiserIdDimensionValue = Nothing
+    , _cgGroupNumber = Nothing
+    , _cgAccountId = Nothing
+    , _cgName = Nothing
+    , _cgId = Nothing
+    , _cgSubAccountId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeGroup\".
+cgKind :: Lens' CreativeGroup Text
+cgKind = lens _cgKind (\ s a -> s{_cgKind = a})
+
+-- | Advertiser ID of this creative group. This is a required field on
+-- insertion.
+cgAdvertiserId :: Lens' CreativeGroup (Maybe Int64)
+cgAdvertiserId
+  = lens _cgAdvertiserId
+      (\ s a -> s{_cgAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+cgAdvertiserIdDimensionValue :: Lens' CreativeGroup (Maybe DimensionValue)
+cgAdvertiserIdDimensionValue
+  = lens _cgAdvertiserIdDimensionValue
+      (\ s a -> s{_cgAdvertiserIdDimensionValue = a})
+
+-- | Subgroup of the creative group. Assign your creative groups to one of
+-- the following subgroups in order to filter or manage them more easily.
+-- This field is required on insertion and is read-only after insertion.
+-- Acceptable values are: - 1 - 2
+cgGroupNumber :: Lens' CreativeGroup (Maybe Int32)
+cgGroupNumber
+  = lens _cgGroupNumber
+      (\ s a -> s{_cgGroupNumber = a})
+      . mapping _Coerce
+
+-- | Account ID of this creative group. This is a read-only field that can be
+-- left blank.
+cgAccountId :: Lens' CreativeGroup (Maybe Int64)
+cgAccountId
+  = lens _cgAccountId (\ s a -> s{_cgAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this creative group. This is a required field and must be less
+-- than 256 characters long and unique among creative groups of the same
+-- advertiser.
+cgName :: Lens' CreativeGroup (Maybe Text)
+cgName = lens _cgName (\ s a -> s{_cgName = a})
+
+-- | ID of this creative group. This is a read-only, auto-generated field.
+cgId :: Lens' CreativeGroup (Maybe Int64)
+cgId
+  = lens _cgId (\ s a -> s{_cgId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this creative group. This is a read-only field that can
+-- be left blank.
+cgSubAccountId :: Lens' CreativeGroup (Maybe Int64)
+cgSubAccountId
+  = lens _cgSubAccountId
+      (\ s a -> s{_cgSubAccountId = a})
+      . mapping _Coerce
+
+instance FromJSON CreativeGroup where
+        parseJSON
+          = withObject "CreativeGroup"
+              (\ o ->
+                 CreativeGroup' <$>
+                   (o .:? "kind" .!= "dfareporting#creativeGroup") <*>
+                     (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "groupNumber")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId"))
+
+instance ToJSON CreativeGroup where
+        toJSON CreativeGroup'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cgKind),
+                  ("advertiserId" .=) <$> _cgAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _cgAdvertiserIdDimensionValue,
+                  ("groupNumber" .=) <$> _cgGroupNumber,
+                  ("accountId" .=) <$> _cgAccountId,
+                  ("name" .=) <$> _cgName, ("id" .=) <$> _cgId,
+                  ("subaccountId" .=) <$> _cgSubAccountId])
+
+-- | Identifies a creative which has been associated with a given campaign.
+--
+-- /See:/ 'campaignCreativeAssociation' smart constructor.
+data CampaignCreativeAssociation = CampaignCreativeAssociation'
+    { _ccaKind       :: !Text
+    , _ccaCreativeId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignCreativeAssociation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccaKind'
+--
+-- * 'ccaCreativeId'
+campaignCreativeAssociation
+    :: CampaignCreativeAssociation
+campaignCreativeAssociation =
+    CampaignCreativeAssociation'
+    { _ccaKind = "dfareporting#campaignCreativeAssociation"
+    , _ccaCreativeId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#campaignCreativeAssociation\".
+ccaKind :: Lens' CampaignCreativeAssociation Text
+ccaKind = lens _ccaKind (\ s a -> s{_ccaKind = a})
+
+-- | ID of the creative associated with the campaign. This is a required
+-- field.
+ccaCreativeId :: Lens' CampaignCreativeAssociation (Maybe Int64)
+ccaCreativeId
+  = lens _ccaCreativeId
+      (\ s a -> s{_ccaCreativeId = a})
+      . mapping _Coerce
+
+instance FromJSON CampaignCreativeAssociation where
+        parseJSON
+          = withObject "CampaignCreativeAssociation"
+              (\ o ->
+                 CampaignCreativeAssociation' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#campaignCreativeAssociation")
+                     <*> (o .:? "creativeId"))
+
+instance ToJSON CampaignCreativeAssociation where
+        toJSON CampaignCreativeAssociation'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ccaKind),
+                  ("creativeId" .=) <$> _ccaCreativeId])
+
+-- | The original conversion that was inserted and whether there were any
+-- errors.
+--
+-- /See:/ 'conversionStatus' smart constructor.
+data ConversionStatus = ConversionStatus'
+    { _csKind       :: !Text
+    , _csConversion :: !(Maybe Conversion)
+    , _csErrors     :: !(Maybe [ConversionError])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConversionStatus' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'csKind'
+--
+-- * 'csConversion'
+--
+-- * 'csErrors'
+conversionStatus
+    :: ConversionStatus
+conversionStatus =
+    ConversionStatus'
+    { _csKind = "dfareporting#conversionStatus"
+    , _csConversion = Nothing
+    , _csErrors = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#conversionStatus\".
+csKind :: Lens' ConversionStatus Text
+csKind = lens _csKind (\ s a -> s{_csKind = a})
+
+-- | The original conversion that was inserted.
+csConversion :: Lens' ConversionStatus (Maybe Conversion)
+csConversion
+  = lens _csConversion (\ s a -> s{_csConversion = a})
+
+-- | A list of errors related to this conversion.
+csErrors :: Lens' ConversionStatus [ConversionError]
+csErrors
+  = lens _csErrors (\ s a -> s{_csErrors = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ConversionStatus where
+        parseJSON
+          = withObject "ConversionStatus"
+              (\ o ->
+                 ConversionStatus' <$>
+                   (o .:? "kind" .!= "dfareporting#conversionStatus")
+                     <*> (o .:? "conversion")
+                     <*> (o .:? "errors" .!= mempty))
+
+instance ToJSON ConversionStatus where
+        toJSON ConversionStatus'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _csKind),
+                  ("conversion" .=) <$> _csConversion,
+                  ("errors" .=) <$> _csErrors])
+
+-- | Lookback configuration settings.
+--
+-- /See:/ 'lookbackConfiguration' smart constructor.
+data LookbackConfiguration = LookbackConfiguration'
+    { _lcClickDuration                    :: !(Maybe (Textual Int32))
+    , _lcPostImpressionActivitiesDuration :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LookbackConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lcClickDuration'
+--
+-- * 'lcPostImpressionActivitiesDuration'
+lookbackConfiguration
+    :: LookbackConfiguration
+lookbackConfiguration =
+    LookbackConfiguration'
+    { _lcClickDuration = Nothing
+    , _lcPostImpressionActivitiesDuration = Nothing
+    }
+
+-- | Lookback window, in days, from the last time a given user clicked on one
+-- of your ads. If you enter 0, clicks will not be considered as triggering
+-- events for floodlight tracking. If you leave this field blank, the
+-- default value for your account will be used.
+lcClickDuration :: Lens' LookbackConfiguration (Maybe Int32)
+lcClickDuration
+  = lens _lcClickDuration
+      (\ s a -> s{_lcClickDuration = a})
+      . mapping _Coerce
+
+-- | Lookback window, in days, from the last time a given user viewed one of
+-- your ads. If you enter 0, impressions will not be considered as
+-- triggering events for floodlight tracking. If you leave this field
+-- blank, the default value for your account will be used.
+lcPostImpressionActivitiesDuration :: Lens' LookbackConfiguration (Maybe Int32)
+lcPostImpressionActivitiesDuration
+  = lens _lcPostImpressionActivitiesDuration
+      (\ s a -> s{_lcPostImpressionActivitiesDuration = a})
+      . mapping _Coerce
+
+instance FromJSON LookbackConfiguration where
+        parseJSON
+          = withObject "LookbackConfiguration"
+              (\ o ->
+                 LookbackConfiguration' <$>
+                   (o .:? "clickDuration") <*>
+                     (o .:? "postImpressionActivitiesDuration"))
+
+instance ToJSON LookbackConfiguration where
+        toJSON LookbackConfiguration'{..}
+          = object
+              (catMaybes
+                 [("clickDuration" .=) <$> _lcClickDuration,
+                  ("postImpressionActivitiesDuration" .=) <$>
+                    _lcPostImpressionActivitiesDuration])
+
+-- | Publisher Dynamic Tag
+--
+-- /See:/ 'floodlightActivityPublisherDynamicTag' smart constructor.
+data FloodlightActivityPublisherDynamicTag = FloodlightActivityPublisherDynamicTag'
+    { _fapdtClickThrough         :: !(Maybe Bool)
+    , _fapdtSiteIdDimensionValue :: !(Maybe DimensionValue)
+    , _fapdtDynamicTag           :: !(Maybe FloodlightActivityDynamicTag)
+    , _fapdtDirectorySiteId      :: !(Maybe (Textual Int64))
+    , _fapdtSiteId               :: !(Maybe (Textual Int64))
+    , _fapdtViewThrough          :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityPublisherDynamicTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fapdtClickThrough'
+--
+-- * 'fapdtSiteIdDimensionValue'
+--
+-- * 'fapdtDynamicTag'
+--
+-- * 'fapdtDirectorySiteId'
+--
+-- * 'fapdtSiteId'
+--
+-- * 'fapdtViewThrough'
+floodlightActivityPublisherDynamicTag
+    :: FloodlightActivityPublisherDynamicTag
+floodlightActivityPublisherDynamicTag =
+    FloodlightActivityPublisherDynamicTag'
+    { _fapdtClickThrough = Nothing
+    , _fapdtSiteIdDimensionValue = Nothing
+    , _fapdtDynamicTag = Nothing
+    , _fapdtDirectorySiteId = Nothing
+    , _fapdtSiteId = Nothing
+    , _fapdtViewThrough = Nothing
+    }
+
+-- | Whether this tag is applicable only for click-throughs.
+fapdtClickThrough :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Bool)
+fapdtClickThrough
+  = lens _fapdtClickThrough
+      (\ s a -> s{_fapdtClickThrough = a})
+
+-- | Dimension value for the ID of the site. This is a read-only,
+-- auto-generated field.
+fapdtSiteIdDimensionValue :: Lens' FloodlightActivityPublisherDynamicTag (Maybe DimensionValue)
+fapdtSiteIdDimensionValue
+  = lens _fapdtSiteIdDimensionValue
+      (\ s a -> s{_fapdtSiteIdDimensionValue = a})
+
+-- | Dynamic floodlight tag.
+fapdtDynamicTag :: Lens' FloodlightActivityPublisherDynamicTag (Maybe FloodlightActivityDynamicTag)
+fapdtDynamicTag
+  = lens _fapdtDynamicTag
+      (\ s a -> s{_fapdtDynamicTag = a})
+
+-- | Directory site ID of this dynamic tag. This is a write-only field that
+-- can be used as an alternative to the siteId field. When this resource is
+-- retrieved, only the siteId field will be populated.
+fapdtDirectorySiteId :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Int64)
+fapdtDirectorySiteId
+  = lens _fapdtDirectorySiteId
+      (\ s a -> s{_fapdtDirectorySiteId = a})
+      . mapping _Coerce
+
+-- | Site ID of this dynamic tag.
+fapdtSiteId :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Int64)
+fapdtSiteId
+  = lens _fapdtSiteId (\ s a -> s{_fapdtSiteId = a}) .
+      mapping _Coerce
+
+-- | Whether this tag is applicable only for view-throughs.
+fapdtViewThrough :: Lens' FloodlightActivityPublisherDynamicTag (Maybe Bool)
+fapdtViewThrough
+  = lens _fapdtViewThrough
+      (\ s a -> s{_fapdtViewThrough = a})
+
+instance FromJSON
+         FloodlightActivityPublisherDynamicTag where
+        parseJSON
+          = withObject "FloodlightActivityPublisherDynamicTag"
+              (\ o ->
+                 FloodlightActivityPublisherDynamicTag' <$>
+                   (o .:? "clickThrough") <*>
+                     (o .:? "siteIdDimensionValue")
+                     <*> (o .:? "dynamicTag")
+                     <*> (o .:? "directorySiteId")
+                     <*> (o .:? "siteId")
+                     <*> (o .:? "viewThrough"))
+
+instance ToJSON FloodlightActivityPublisherDynamicTag
+         where
+        toJSON FloodlightActivityPublisherDynamicTag'{..}
+          = object
+              (catMaybes
+                 [("clickThrough" .=) <$> _fapdtClickThrough,
+                  ("siteIdDimensionValue" .=) <$>
+                    _fapdtSiteIdDimensionValue,
+                  ("dynamicTag" .=) <$> _fapdtDynamicTag,
+                  ("directorySiteId" .=) <$> _fapdtDirectorySiteId,
+                  ("siteId" .=) <$> _fapdtSiteId,
+                  ("viewThrough" .=) <$> _fapdtViewThrough])
+
+-- | Gets a summary of active ads in an account.
+--
+-- /See:/ 'accountActiveAdSummary' smart constructor.
+data AccountActiveAdSummary = AccountActiveAdSummary'
+    { _aaasAvailableAds       :: !(Maybe (Textual Int64))
+    , _aaasKind               :: !Text
+    , _aaasAccountId          :: !(Maybe (Textual Int64))
+    , _aaasActiveAds          :: !(Maybe (Textual Int64))
+    , _aaasActiveAdsLimitTier :: !(Maybe AccountActiveAdSummaryActiveAdsLimitTier)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountActiveAdSummary' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aaasAvailableAds'
+--
+-- * 'aaasKind'
+--
+-- * 'aaasAccountId'
+--
+-- * 'aaasActiveAds'
+--
+-- * 'aaasActiveAdsLimitTier'
+accountActiveAdSummary
+    :: AccountActiveAdSummary
+accountActiveAdSummary =
+    AccountActiveAdSummary'
+    { _aaasAvailableAds = Nothing
+    , _aaasKind = "dfareporting#accountActiveAdSummary"
+    , _aaasAccountId = Nothing
+    , _aaasActiveAds = Nothing
+    , _aaasActiveAdsLimitTier = Nothing
+    }
+
+-- | Ads that can be activated for the account.
+aaasAvailableAds :: Lens' AccountActiveAdSummary (Maybe Int64)
+aaasAvailableAds
+  = lens _aaasAvailableAds
+      (\ s a -> s{_aaasAvailableAds = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountActiveAdSummary\".
+aaasKind :: Lens' AccountActiveAdSummary Text
+aaasKind = lens _aaasKind (\ s a -> s{_aaasKind = a})
+
+-- | ID of the account.
+aaasAccountId :: Lens' AccountActiveAdSummary (Maybe Int64)
+aaasAccountId
+  = lens _aaasAccountId
+      (\ s a -> s{_aaasAccountId = a})
+      . mapping _Coerce
+
+-- | Ads that have been activated for the account
+aaasActiveAds :: Lens' AccountActiveAdSummary (Maybe Int64)
+aaasActiveAds
+  = lens _aaasActiveAds
+      (\ s a -> s{_aaasActiveAds = a})
+      . mapping _Coerce
+
+-- | Maximum number of active ads allowed for the account.
+aaasActiveAdsLimitTier :: Lens' AccountActiveAdSummary (Maybe AccountActiveAdSummaryActiveAdsLimitTier)
+aaasActiveAdsLimitTier
+  = lens _aaasActiveAdsLimitTier
+      (\ s a -> s{_aaasActiveAdsLimitTier = a})
+
+instance FromJSON AccountActiveAdSummary where
+        parseJSON
+          = withObject "AccountActiveAdSummary"
+              (\ o ->
+                 AccountActiveAdSummary' <$>
+                   (o .:? "availableAds") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#accountActiveAdSummary")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "activeAds")
+                     <*> (o .:? "activeAdsLimitTier"))
+
+instance ToJSON AccountActiveAdSummary where
+        toJSON AccountActiveAdSummary'{..}
+          = object
+              (catMaybes
+                 [("availableAds" .=) <$> _aaasAvailableAds,
+                  Just ("kind" .= _aaasKind),
+                  ("accountId" .=) <$> _aaasAccountId,
+                  ("activeAds" .=) <$> _aaasActiveAds,
+                  ("activeAdsLimitTier" .=) <$>
+                    _aaasActiveAdsLimitTier])
+
+-- | Offset Position.
+--
+-- /See:/ 'offSetPosition' smart constructor.
+data OffSetPosition = OffSetPosition'
+    { _ospLeft :: !(Maybe (Textual Int32))
+    , _ospTop  :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OffSetPosition' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ospLeft'
+--
+-- * 'ospTop'
+offSetPosition
+    :: OffSetPosition
+offSetPosition =
+    OffSetPosition'
+    { _ospLeft = Nothing
+    , _ospTop = Nothing
+    }
+
+-- | Offset distance from left side of an asset or a window.
+ospLeft :: Lens' OffSetPosition (Maybe Int32)
+ospLeft
+  = lens _ospLeft (\ s a -> s{_ospLeft = a}) .
+      mapping _Coerce
+
+-- | Offset distance from top side of an asset or a window.
+ospTop :: Lens' OffSetPosition (Maybe Int32)
+ospTop
+  = lens _ospTop (\ s a -> s{_ospTop = a}) .
+      mapping _Coerce
+
+instance FromJSON OffSetPosition where
+        parseJSON
+          = withObject "OffSetPosition"
+              (\ o ->
+                 OffSetPosition' <$> (o .:? "left") <*> (o .:? "top"))
+
+instance ToJSON OffSetPosition where
+        toJSON OffSetPosition'{..}
+          = object
+              (catMaybes
+                 [("left" .=) <$> _ospLeft, ("top" .=) <$> _ospTop])
+
+-- | Represents a metric.
+--
+-- /See:/ 'metric' smart constructor.
+data Metric = Metric'
+    { _mKind :: !Text
+    , _mName :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Metric' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mKind'
+--
+-- * 'mName'
+metric
+    :: Metric
+metric =
+    Metric'
+    { _mKind = "dfareporting#metric"
+    , _mName = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#metric.
+mKind :: Lens' Metric Text
+mKind = lens _mKind (\ s a -> s{_mKind = a})
+
+-- | The metric name, e.g. dfa:impressions
+mName :: Lens' Metric (Maybe Text)
+mName = lens _mName (\ s a -> s{_mName = a})
+
+instance FromJSON Metric where
+        parseJSON
+          = withObject "Metric"
+              (\ o ->
+                 Metric' <$>
+                   (o .:? "kind" .!= "dfareporting#metric") <*>
+                     (o .:? "name"))
+
+instance ToJSON Metric where
+        toJSON Metric'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _mKind), ("name" .=) <$> _mName])
+
+-- | Contains properties of a remarketing list\'s sharing information.
+-- Sharing allows other accounts or advertisers to target to your
+-- remarketing lists. This resource can be used to manage remarketing list
+-- sharing to other accounts and advertisers.
+--
+-- /See:/ 'remarketingListShare' smart constructor.
+data RemarketingListShare = RemarketingListShare'
+    { _rlsSharedAdvertiserIds :: !(Maybe [Textual Int64])
+    , _rlsKind                :: !Text
+    , _rlsRemarketingListId   :: !(Maybe (Textual Int64))
+    , _rlsSharedAccountIds    :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RemarketingListShare' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlsSharedAdvertiserIds'
+--
+-- * 'rlsKind'
+--
+-- * 'rlsRemarketingListId'
+--
+-- * 'rlsSharedAccountIds'
+remarketingListShare
+    :: RemarketingListShare
+remarketingListShare =
+    RemarketingListShare'
+    { _rlsSharedAdvertiserIds = Nothing
+    , _rlsKind = "dfareporting#remarketingListShare"
+    , _rlsRemarketingListId = Nothing
+    , _rlsSharedAccountIds = Nothing
+    }
+
+-- | Advertisers that the remarketing list is shared with.
+rlsSharedAdvertiserIds :: Lens' RemarketingListShare [Int64]
+rlsSharedAdvertiserIds
+  = lens _rlsSharedAdvertiserIds
+      (\ s a -> s{_rlsSharedAdvertiserIds = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#remarketingListShare\".
+rlsKind :: Lens' RemarketingListShare Text
+rlsKind = lens _rlsKind (\ s a -> s{_rlsKind = a})
+
+-- | Remarketing list ID. This is a read-only, auto-generated field.
+rlsRemarketingListId :: Lens' RemarketingListShare (Maybe Int64)
+rlsRemarketingListId
+  = lens _rlsRemarketingListId
+      (\ s a -> s{_rlsRemarketingListId = a})
+      . mapping _Coerce
+
+-- | Accounts that the remarketing list is shared with.
+rlsSharedAccountIds :: Lens' RemarketingListShare [Int64]
+rlsSharedAccountIds
+  = lens _rlsSharedAccountIds
+      (\ s a -> s{_rlsSharedAccountIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON RemarketingListShare where
+        parseJSON
+          = withObject "RemarketingListShare"
+              (\ o ->
+                 RemarketingListShare' <$>
+                   (o .:? "sharedAdvertiserIds" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#remarketingListShare")
+                     <*> (o .:? "remarketingListId")
+                     <*> (o .:? "sharedAccountIds" .!= mempty))
+
+instance ToJSON RemarketingListShare where
+        toJSON RemarketingListShare'{..}
+          = object
+              (catMaybes
+                 [("sharedAdvertiserIds" .=) <$>
+                    _rlsSharedAdvertiserIds,
+                  Just ("kind" .= _rlsKind),
+                  ("remarketingListId" .=) <$> _rlsRemarketingListId,
+                  ("sharedAccountIds" .=) <$> _rlsSharedAccountIds])
+
+-- | Event Tag List Response
+--
+-- /See:/ 'eventTagsListResponse' smart constructor.
+data EventTagsListResponse = EventTagsListResponse'
+    { _etlrKind      :: !Text
+    , _etlrEventTags :: !(Maybe [EventTag])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTagsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etlrKind'
+--
+-- * 'etlrEventTags'
+eventTagsListResponse
+    :: EventTagsListResponse
+eventTagsListResponse =
+    EventTagsListResponse'
+    { _etlrKind = "dfareporting#eventTagsListResponse"
+    , _etlrEventTags = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#eventTagsListResponse\".
+etlrKind :: Lens' EventTagsListResponse Text
+etlrKind = lens _etlrKind (\ s a -> s{_etlrKind = a})
+
+-- | Event tag collection.
+etlrEventTags :: Lens' EventTagsListResponse [EventTag]
+etlrEventTags
+  = lens _etlrEventTags
+      (\ s a -> s{_etlrEventTags = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON EventTagsListResponse where
+        parseJSON
+          = withObject "EventTagsListResponse"
+              (\ o ->
+                 EventTagsListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#eventTagsListResponse")
+                     <*> (o .:? "eventTags" .!= mempty))
+
+instance ToJSON EventTagsListResponse where
+        toJSON EventTagsListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _etlrKind),
+                  ("eventTags" .=) <$> _etlrEventTags])
+
+-- | User Role List Response
+--
+-- /See:/ 'userRolesListResponse' smart constructor.
+data UserRolesListResponse = UserRolesListResponse'
+    { _urlrNextPageToken :: !(Maybe Text)
+    , _urlrKind          :: !Text
+    , _urlrUserRoles     :: !(Maybe [UserRole])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urlrNextPageToken'
+--
+-- * 'urlrKind'
+--
+-- * 'urlrUserRoles'
+userRolesListResponse
+    :: UserRolesListResponse
+userRolesListResponse =
+    UserRolesListResponse'
+    { _urlrNextPageToken = Nothing
+    , _urlrKind = "dfareporting#userRolesListResponse"
+    , _urlrUserRoles = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+urlrNextPageToken :: Lens' UserRolesListResponse (Maybe Text)
+urlrNextPageToken
+  = lens _urlrNextPageToken
+      (\ s a -> s{_urlrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRolesListResponse\".
+urlrKind :: Lens' UserRolesListResponse Text
+urlrKind = lens _urlrKind (\ s a -> s{_urlrKind = a})
+
+-- | User role collection.
+urlrUserRoles :: Lens' UserRolesListResponse [UserRole]
+urlrUserRoles
+  = lens _urlrUserRoles
+      (\ s a -> s{_urlrUserRoles = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON UserRolesListResponse where
+        parseJSON
+          = withObject "UserRolesListResponse"
+              (\ o ->
+                 UserRolesListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#userRolesListResponse")
+                     <*> (o .:? "userRoles" .!= mempty))
+
+instance ToJSON UserRolesListResponse where
+        toJSON UserRolesListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _urlrNextPageToken,
+                  Just ("kind" .= _urlrKind),
+                  ("userRoles" .=) <$> _urlrUserRoles])
+
+-- | Represents a response to the queryCompatibleFields method.
+--
+-- /See:/ 'compatibleFields' smart constructor.
+data CompatibleFields = CompatibleFields'
+    { _cfReachReportCompatibleFields               :: !(Maybe ReachReportCompatibleFields)
+    , _cfCrossDimensionReachReportCompatibleFields :: !(Maybe CrossDimensionReachReportCompatibleFields)
+    , _cfKind                                      :: !Text
+    , _cfFloodlightReportCompatibleFields          :: !(Maybe FloodlightReportCompatibleFields)
+    , _cfReportCompatibleFields                    :: !(Maybe ReportCompatibleFields)
+    , _cfPathToConversionReportCompatibleFields    :: !(Maybe PathToConversionReportCompatibleFields)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfReachReportCompatibleFields'
+--
+-- * 'cfCrossDimensionReachReportCompatibleFields'
+--
+-- * 'cfKind'
+--
+-- * 'cfFloodlightReportCompatibleFields'
+--
+-- * 'cfReportCompatibleFields'
+--
+-- * 'cfPathToConversionReportCompatibleFields'
+compatibleFields
+    :: CompatibleFields
+compatibleFields =
+    CompatibleFields'
+    { _cfReachReportCompatibleFields = Nothing
+    , _cfCrossDimensionReachReportCompatibleFields = Nothing
+    , _cfKind = "dfareporting#compatibleFields"
+    , _cfFloodlightReportCompatibleFields = Nothing
+    , _cfReportCompatibleFields = Nothing
+    , _cfPathToConversionReportCompatibleFields = Nothing
+    }
+
+-- | Contains items that are compatible to be selected for a report of type
+-- \"REACH\".
+cfReachReportCompatibleFields :: Lens' CompatibleFields (Maybe ReachReportCompatibleFields)
+cfReachReportCompatibleFields
+  = lens _cfReachReportCompatibleFields
+      (\ s a -> s{_cfReachReportCompatibleFields = a})
+
+-- | Contains items that are compatible to be selected for a report of type
+-- \"CROSS_DIMENSION_REACH\".
+cfCrossDimensionReachReportCompatibleFields :: Lens' CompatibleFields (Maybe CrossDimensionReachReportCompatibleFields)
+cfCrossDimensionReachReportCompatibleFields
+  = lens _cfCrossDimensionReachReportCompatibleFields
+      (\ s a ->
+         s{_cfCrossDimensionReachReportCompatibleFields = a})
+
+-- | The kind of resource this is, in this case
+-- dfareporting#compatibleFields.
+cfKind :: Lens' CompatibleFields Text
+cfKind = lens _cfKind (\ s a -> s{_cfKind = a})
+
+-- | Contains items that are compatible to be selected for a report of type
+-- \"FLOODLIGHT\".
+cfFloodlightReportCompatibleFields :: Lens' CompatibleFields (Maybe FloodlightReportCompatibleFields)
+cfFloodlightReportCompatibleFields
+  = lens _cfFloodlightReportCompatibleFields
+      (\ s a -> s{_cfFloodlightReportCompatibleFields = a})
+
+-- | Contains items that are compatible to be selected for a report of type
+-- \"STANDARD\".
+cfReportCompatibleFields :: Lens' CompatibleFields (Maybe ReportCompatibleFields)
+cfReportCompatibleFields
+  = lens _cfReportCompatibleFields
+      (\ s a -> s{_cfReportCompatibleFields = a})
+
+-- | Contains items that are compatible to be selected for a report of type
+-- \"PATH_TO_CONVERSION\".
+cfPathToConversionReportCompatibleFields :: Lens' CompatibleFields (Maybe PathToConversionReportCompatibleFields)
+cfPathToConversionReportCompatibleFields
+  = lens _cfPathToConversionReportCompatibleFields
+      (\ s a ->
+         s{_cfPathToConversionReportCompatibleFields = a})
+
+instance FromJSON CompatibleFields where
+        parseJSON
+          = withObject "CompatibleFields"
+              (\ o ->
+                 CompatibleFields' <$>
+                   (o .:? "reachReportCompatibleFields") <*>
+                     (o .:? "crossDimensionReachReportCompatibleFields")
+                     <*>
+                     (o .:? "kind" .!= "dfareporting#compatibleFields")
+                     <*> (o .:? "floodlightReportCompatibleFields")
+                     <*> (o .:? "reportCompatibleFields")
+                     <*> (o .:? "pathToConversionReportCompatibleFields"))
+
+instance ToJSON CompatibleFields where
+        toJSON CompatibleFields'{..}
+          = object
+              (catMaybes
+                 [("reachReportCompatibleFields" .=) <$>
+                    _cfReachReportCompatibleFields,
+                  ("crossDimensionReachReportCompatibleFields" .=) <$>
+                    _cfCrossDimensionReachReportCompatibleFields,
+                  Just ("kind" .= _cfKind),
+                  ("floodlightReportCompatibleFields" .=) <$>
+                    _cfFloodlightReportCompatibleFields,
+                  ("reportCompatibleFields" .=) <$>
+                    _cfReportCompatibleFields,
+                  ("pathToConversionReportCompatibleFields" .=) <$>
+                    _cfPathToConversionReportCompatibleFields])
+
+-- | Audience Segment.
+--
+-- /See:/ 'audienceSegment' smart constructor.
+data AudienceSegment = AudienceSegment'
+    { _asName       :: !(Maybe Text)
+    , _asId         :: !(Maybe (Textual Int64))
+    , _asAllocation :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AudienceSegment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asName'
+--
+-- * 'asId'
+--
+-- * 'asAllocation'
+audienceSegment
+    :: AudienceSegment
+audienceSegment =
+    AudienceSegment'
+    { _asName = Nothing
+    , _asId = Nothing
+    , _asAllocation = Nothing
+    }
+
+-- | Name of this audience segment. This is a required field and must be less
+-- than 65 characters long.
+asName :: Lens' AudienceSegment (Maybe Text)
+asName = lens _asName (\ s a -> s{_asName = a})
+
+-- | ID of this audience segment. This is a read-only, auto-generated field.
+asId :: Lens' AudienceSegment (Maybe Int64)
+asId
+  = lens _asId (\ s a -> s{_asId = a}) .
+      mapping _Coerce
+
+-- | Weight allocated to this segment. Must be between 1 and 1000. The weight
+-- assigned will be understood in proportion to the weights assigned to
+-- other segments in the same segment group.
+asAllocation :: Lens' AudienceSegment (Maybe Int32)
+asAllocation
+  = lens _asAllocation (\ s a -> s{_asAllocation = a})
+      . mapping _Coerce
+
+instance FromJSON AudienceSegment where
+        parseJSON
+          = withObject "AudienceSegment"
+              (\ o ->
+                 AudienceSegment' <$>
+                   (o .:? "name") <*> (o .:? "id") <*>
+                     (o .:? "allocation"))
+
+instance ToJSON AudienceSegment where
+        toJSON AudienceSegment'{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _asName, ("id" .=) <$> _asId,
+                  ("allocation" .=) <$> _asAllocation])
+
+-- | DFP Settings
+--
+-- /See:/ 'dfpSettings' smart constructor.
+data DfpSettings = DfpSettings'
+    { _dsPubPaidPlacementAccepted      :: !(Maybe Bool)
+    , _dsDfpNetworkName                :: !(Maybe Text)
+    , _dsPublisherPortalOnly           :: !(Maybe Bool)
+    , _dsProgrammaticPlacementAccepted :: !(Maybe Bool)
+    , _dsDfpNetworkCode                :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DfpSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsPubPaidPlacementAccepted'
+--
+-- * 'dsDfpNetworkName'
+--
+-- * 'dsPublisherPortalOnly'
+--
+-- * 'dsProgrammaticPlacementAccepted'
+--
+-- * 'dsDfpNetworkCode'
+dfpSettings
+    :: DfpSettings
+dfpSettings =
+    DfpSettings'
+    { _dsPubPaidPlacementAccepted = Nothing
+    , _dsDfpNetworkName = Nothing
+    , _dsPublisherPortalOnly = Nothing
+    , _dsProgrammaticPlacementAccepted = Nothing
+    , _dsDfpNetworkCode = Nothing
+    }
+
+-- | Whether this directory site accepts publisher-paid tags.
+dsPubPaidPlacementAccepted :: Lens' DfpSettings (Maybe Bool)
+dsPubPaidPlacementAccepted
+  = lens _dsPubPaidPlacementAccepted
+      (\ s a -> s{_dsPubPaidPlacementAccepted = a})
+
+-- | DFP network name for this directory site.
+dsDfpNetworkName :: Lens' DfpSettings (Maybe Text)
+dsDfpNetworkName
+  = lens _dsDfpNetworkName
+      (\ s a -> s{_dsDfpNetworkName = a})
+
+-- | Whether this directory site is available only via DoubleClick Publisher
+-- Portal.
+dsPublisherPortalOnly :: Lens' DfpSettings (Maybe Bool)
+dsPublisherPortalOnly
+  = lens _dsPublisherPortalOnly
+      (\ s a -> s{_dsPublisherPortalOnly = a})
+
+-- | Whether this directory site accepts programmatic placements.
+dsProgrammaticPlacementAccepted :: Lens' DfpSettings (Maybe Bool)
+dsProgrammaticPlacementAccepted
+  = lens _dsProgrammaticPlacementAccepted
+      (\ s a -> s{_dsProgrammaticPlacementAccepted = a})
+
+-- | DFP network code for this directory site.
+dsDfpNetworkCode :: Lens' DfpSettings (Maybe Text)
+dsDfpNetworkCode
+  = lens _dsDfpNetworkCode
+      (\ s a -> s{_dsDfpNetworkCode = a})
+
+instance FromJSON DfpSettings where
+        parseJSON
+          = withObject "DfpSettings"
+              (\ o ->
+                 DfpSettings' <$>
+                   (o .:? "pubPaidPlacementAccepted") <*>
+                     (o .:? "dfp_network_name")
+                     <*> (o .:? "publisherPortalOnly")
+                     <*> (o .:? "programmaticPlacementAccepted")
+                     <*> (o .:? "dfp_network_code"))
+
+instance ToJSON DfpSettings where
+        toJSON DfpSettings'{..}
+          = object
+              (catMaybes
+                 [("pubPaidPlacementAccepted" .=) <$>
+                    _dsPubPaidPlacementAccepted,
+                  ("dfp_network_name" .=) <$> _dsDfpNetworkName,
+                  ("publisherPortalOnly" .=) <$>
+                    _dsPublisherPortalOnly,
+                  ("programmaticPlacementAccepted" .=) <$>
+                    _dsProgrammaticPlacementAccepted,
+                  ("dfp_network_code" .=) <$> _dsDfpNetworkCode])
+
+-- | Represents fields that are compatible to be selected for a report of
+-- type \"PATH_TO_CONVERSION\".
+--
+-- /See:/ 'pathToConversionReportCompatibleFields' smart constructor.
+data PathToConversionReportCompatibleFields = PathToConversionReportCompatibleFields'
+    { _ptcrcfMetrics                   :: !(Maybe [Metric])
+    , _ptcrcfKind                      :: !Text
+    , _ptcrcfConversionDimensions      :: !(Maybe [Dimension])
+    , _ptcrcfCustomFloodlightVariables :: !(Maybe [Dimension])
+    , _ptcrcfPerInteractionDimensions  :: !(Maybe [Dimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PathToConversionReportCompatibleFields' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptcrcfMetrics'
+--
+-- * 'ptcrcfKind'
+--
+-- * 'ptcrcfConversionDimensions'
+--
+-- * 'ptcrcfCustomFloodlightVariables'
+--
+-- * 'ptcrcfPerInteractionDimensions'
+pathToConversionReportCompatibleFields
+    :: PathToConversionReportCompatibleFields
+pathToConversionReportCompatibleFields =
+    PathToConversionReportCompatibleFields'
+    { _ptcrcfMetrics = Nothing
+    , _ptcrcfKind = "dfareporting#pathToConversionReportCompatibleFields"
+    , _ptcrcfConversionDimensions = Nothing
+    , _ptcrcfCustomFloodlightVariables = Nothing
+    , _ptcrcfPerInteractionDimensions = Nothing
+    }
+
+-- | Metrics which are compatible to be selected in the \"metricNames\"
+-- section of the report.
+ptcrcfMetrics :: Lens' PathToConversionReportCompatibleFields [Metric]
+ptcrcfMetrics
+  = lens _ptcrcfMetrics
+      (\ s a -> s{_ptcrcfMetrics = a})
+      . _Default
+      . _Coerce
+
+-- | The kind of resource this is, in this case
+-- dfareporting#pathToConversionReportCompatibleFields.
+ptcrcfKind :: Lens' PathToConversionReportCompatibleFields Text
+ptcrcfKind
+  = lens _ptcrcfKind (\ s a -> s{_ptcrcfKind = a})
+
+-- | Conversion dimensions which are compatible to be selected in the
+-- \"conversionDimensions\" section of the report.
+ptcrcfConversionDimensions :: Lens' PathToConversionReportCompatibleFields [Dimension]
+ptcrcfConversionDimensions
+  = lens _ptcrcfConversionDimensions
+      (\ s a -> s{_ptcrcfConversionDimensions = a})
+      . _Default
+      . _Coerce
+
+-- | Custom floodlight variables which are compatible to be selected in the
+-- \"customFloodlightVariables\" section of the report.
+ptcrcfCustomFloodlightVariables :: Lens' PathToConversionReportCompatibleFields [Dimension]
+ptcrcfCustomFloodlightVariables
+  = lens _ptcrcfCustomFloodlightVariables
+      (\ s a -> s{_ptcrcfCustomFloodlightVariables = a})
+      . _Default
+      . _Coerce
+
+-- | Per-interaction dimensions which are compatible to be selected in the
+-- \"perInteractionDimensions\" section of the report.
+ptcrcfPerInteractionDimensions :: Lens' PathToConversionReportCompatibleFields [Dimension]
+ptcrcfPerInteractionDimensions
+  = lens _ptcrcfPerInteractionDimensions
+      (\ s a -> s{_ptcrcfPerInteractionDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         PathToConversionReportCompatibleFields where
+        parseJSON
+          = withObject "PathToConversionReportCompatibleFields"
+              (\ o ->
+                 PathToConversionReportCompatibleFields' <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#pathToConversionReportCompatibleFields")
+                     <*> (o .:? "conversionDimensions" .!= mempty)
+                     <*> (o .:? "customFloodlightVariables" .!= mempty)
+                     <*> (o .:? "perInteractionDimensions" .!= mempty))
+
+instance ToJSON
+         PathToConversionReportCompatibleFields where
+        toJSON PathToConversionReportCompatibleFields'{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _ptcrcfMetrics,
+                  Just ("kind" .= _ptcrcfKind),
+                  ("conversionDimensions" .=) <$>
+                    _ptcrcfConversionDimensions,
+                  ("customFloodlightVariables" .=) <$>
+                    _ptcrcfCustomFloodlightVariables,
+                  ("perInteractionDimensions" .=) <$>
+                    _ptcrcfPerInteractionDimensions])
+
+-- | Contains information about a city that can be targeted by ads.
+--
+-- /See:/ 'city' smart constructor.
+data City = City'
+    { _ccMetroCode     :: !(Maybe Text)
+    , _ccRegionCode    :: !(Maybe Text)
+    , _ccKind          :: !Text
+    , _ccRegionDartId  :: !(Maybe (Textual Int64))
+    , _ccMetroDmaId    :: !(Maybe (Textual Int64))
+    , _ccName          :: !(Maybe Text)
+    , _ccCountryCode   :: !(Maybe Text)
+    , _ccCountryDartId :: !(Maybe (Textual Int64))
+    , _ccDartId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'City' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccMetroCode'
+--
+-- * 'ccRegionCode'
+--
+-- * 'ccKind'
+--
+-- * 'ccRegionDartId'
+--
+-- * 'ccMetroDmaId'
+--
+-- * 'ccName'
+--
+-- * 'ccCountryCode'
+--
+-- * 'ccCountryDartId'
+--
+-- * 'ccDartId'
+city
+    :: City
+city =
+    City'
+    { _ccMetroCode = Nothing
+    , _ccRegionCode = Nothing
+    , _ccKind = "dfareporting#city"
+    , _ccRegionDartId = Nothing
+    , _ccMetroDmaId = Nothing
+    , _ccName = Nothing
+    , _ccCountryCode = Nothing
+    , _ccCountryDartId = Nothing
+    , _ccDartId = Nothing
+    }
+
+-- | Metro region code of the metro region (DMA) to which this city belongs.
+ccMetroCode :: Lens' City (Maybe Text)
+ccMetroCode
+  = lens _ccMetroCode (\ s a -> s{_ccMetroCode = a})
+
+-- | Region code of the region to which this city belongs.
+ccRegionCode :: Lens' City (Maybe Text)
+ccRegionCode
+  = lens _ccRegionCode (\ s a -> s{_ccRegionCode = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#city\".
+ccKind :: Lens' City Text
+ccKind = lens _ccKind (\ s a -> s{_ccKind = a})
+
+-- | DART ID of the region to which this city belongs.
+ccRegionDartId :: Lens' City (Maybe Int64)
+ccRegionDartId
+  = lens _ccRegionDartId
+      (\ s a -> s{_ccRegionDartId = a})
+      . mapping _Coerce
+
+-- | ID of the metro region (DMA) to which this city belongs.
+ccMetroDmaId :: Lens' City (Maybe Int64)
+ccMetroDmaId
+  = lens _ccMetroDmaId (\ s a -> s{_ccMetroDmaId = a})
+      . mapping _Coerce
+
+-- | Name of this city.
+ccName :: Lens' City (Maybe Text)
+ccName = lens _ccName (\ s a -> s{_ccName = a})
+
+-- | Country code of the country to which this city belongs.
+ccCountryCode :: Lens' City (Maybe Text)
+ccCountryCode
+  = lens _ccCountryCode
+      (\ s a -> s{_ccCountryCode = a})
+
+-- | DART ID of the country to which this city belongs.
+ccCountryDartId :: Lens' City (Maybe Int64)
+ccCountryDartId
+  = lens _ccCountryDartId
+      (\ s a -> s{_ccCountryDartId = a})
+      . mapping _Coerce
+
+-- | DART ID of this city. This is the ID used for targeting and generating
+-- reports.
+ccDartId :: Lens' City (Maybe Int64)
+ccDartId
+  = lens _ccDartId (\ s a -> s{_ccDartId = a}) .
+      mapping _Coerce
+
+instance FromJSON City where
+        parseJSON
+          = withObject "City"
+              (\ o ->
+                 City' <$>
+                   (o .:? "metroCode") <*> (o .:? "regionCode") <*>
+                     (o .:? "kind" .!= "dfareporting#city")
+                     <*> (o .:? "regionDartId")
+                     <*> (o .:? "metroDmaId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "countryDartId")
+                     <*> (o .:? "dartId"))
+
+instance ToJSON City where
+        toJSON City'{..}
+          = object
+              (catMaybes
+                 [("metroCode" .=) <$> _ccMetroCode,
+                  ("regionCode" .=) <$> _ccRegionCode,
+                  Just ("kind" .= _ccKind),
+                  ("regionDartId" .=) <$> _ccRegionDartId,
+                  ("metroDmaId" .=) <$> _ccMetroDmaId,
+                  ("name" .=) <$> _ccName,
+                  ("countryCode" .=) <$> _ccCountryCode,
+                  ("countryDartId" .=) <$> _ccCountryDartId,
+                  ("dartId" .=) <$> _ccDartId])
+
+-- | Contains information about a platform type that can be targeted by ads.
+--
+-- /See:/ 'platformType' smart constructor.
+data PlatformType = PlatformType'
+    { _ptKind :: !Text
+    , _ptName :: !(Maybe Text)
+    , _ptId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlatformType' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptKind'
+--
+-- * 'ptName'
+--
+-- * 'ptId'
+platformType
+    :: PlatformType
+platformType =
+    PlatformType'
+    { _ptKind = "dfareporting#platformType"
+    , _ptName = Nothing
+    , _ptId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#platformType\".
+ptKind :: Lens' PlatformType Text
+ptKind = lens _ptKind (\ s a -> s{_ptKind = a})
+
+-- | Name of this platform type.
+ptName :: Lens' PlatformType (Maybe Text)
+ptName = lens _ptName (\ s a -> s{_ptName = a})
+
+-- | ID of this platform type.
+ptId :: Lens' PlatformType (Maybe Int64)
+ptId
+  = lens _ptId (\ s a -> s{_ptId = a}) .
+      mapping _Coerce
+
+instance FromJSON PlatformType where
+        parseJSON
+          = withObject "PlatformType"
+              (\ o ->
+                 PlatformType' <$>
+                   (o .:? "kind" .!= "dfareporting#platformType") <*>
+                     (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON PlatformType where
+        toJSON PlatformType'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ptKind), ("name" .=) <$> _ptName,
+                  ("id" .=) <$> _ptId])
+
+-- | Key Value Targeting Expression.
+--
+-- /See:/ 'keyValueTargetingExpression' smart constructor.
+newtype KeyValueTargetingExpression = KeyValueTargetingExpression'
+    { _kvteExpression :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'KeyValueTargetingExpression' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'kvteExpression'
+keyValueTargetingExpression
+    :: KeyValueTargetingExpression
+keyValueTargetingExpression =
+    KeyValueTargetingExpression'
+    { _kvteExpression = Nothing
+    }
+
+-- | Keyword expression being targeted by the ad.
+kvteExpression :: Lens' KeyValueTargetingExpression (Maybe Text)
+kvteExpression
+  = lens _kvteExpression
+      (\ s a -> s{_kvteExpression = a})
+
+instance FromJSON KeyValueTargetingExpression where
+        parseJSON
+          = withObject "KeyValueTargetingExpression"
+              (\ o ->
+                 KeyValueTargetingExpression' <$>
+                   (o .:? "expression"))
+
+instance ToJSON KeyValueTargetingExpression where
+        toJSON KeyValueTargetingExpression'{..}
+          = object
+              (catMaybes [("expression" .=) <$> _kvteExpression])
+
+-- | Companion Click-through override.
+--
+-- /See:/ 'companionClickThroughOverride' smart constructor.
+data CompanionClickThroughOverride = CompanionClickThroughOverride'
+    { _cctoCreativeId      :: !(Maybe (Textual Int64))
+    , _cctoClickThroughURL :: !(Maybe ClickThroughURL)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CompanionClickThroughOverride' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cctoCreativeId'
+--
+-- * 'cctoClickThroughURL'
+companionClickThroughOverride
+    :: CompanionClickThroughOverride
+companionClickThroughOverride =
+    CompanionClickThroughOverride'
+    { _cctoCreativeId = Nothing
+    , _cctoClickThroughURL = Nothing
+    }
+
+-- | ID of the creative for this companion click-through override.
+cctoCreativeId :: Lens' CompanionClickThroughOverride (Maybe Int64)
+cctoCreativeId
+  = lens _cctoCreativeId
+      (\ s a -> s{_cctoCreativeId = a})
+      . mapping _Coerce
+
+-- | Click-through URL of this companion click-through override.
+cctoClickThroughURL :: Lens' CompanionClickThroughOverride (Maybe ClickThroughURL)
+cctoClickThroughURL
+  = lens _cctoClickThroughURL
+      (\ s a -> s{_cctoClickThroughURL = a})
+
+instance FromJSON CompanionClickThroughOverride where
+        parseJSON
+          = withObject "CompanionClickThroughOverride"
+              (\ o ->
+                 CompanionClickThroughOverride' <$>
+                   (o .:? "creativeId") <*> (o .:? "clickThroughUrl"))
+
+instance ToJSON CompanionClickThroughOverride where
+        toJSON CompanionClickThroughOverride'{..}
+          = object
+              (catMaybes
+                 [("creativeId" .=) <$> _cctoCreativeId,
+                  ("clickThroughUrl" .=) <$> _cctoClickThroughURL])
+
+-- | Advertiser List Response
+--
+-- /See:/ 'advertisersListResponse' smart constructor.
+data AdvertisersListResponse = AdvertisersListResponse'
+    { _advNextPageToken :: !(Maybe Text)
+    , _advKind          :: !Text
+    , _advAdvertisers   :: !(Maybe [Advertiser])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertisersListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'advNextPageToken'
+--
+-- * 'advKind'
+--
+-- * 'advAdvertisers'
+advertisersListResponse
+    :: AdvertisersListResponse
+advertisersListResponse =
+    AdvertisersListResponse'
+    { _advNextPageToken = Nothing
+    , _advKind = "dfareporting#advertisersListResponse"
+    , _advAdvertisers = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+advNextPageToken :: Lens' AdvertisersListResponse (Maybe Text)
+advNextPageToken
+  = lens _advNextPageToken
+      (\ s a -> s{_advNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#advertisersListResponse\".
+advKind :: Lens' AdvertisersListResponse Text
+advKind = lens _advKind (\ s a -> s{_advKind = a})
+
+-- | Advertiser collection.
+advAdvertisers :: Lens' AdvertisersListResponse [Advertiser]
+advAdvertisers
+  = lens _advAdvertisers
+      (\ s a -> s{_advAdvertisers = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON AdvertisersListResponse where
+        parseJSON
+          = withObject "AdvertisersListResponse"
+              (\ o ->
+                 AdvertisersListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#advertisersListResponse")
+                     <*> (o .:? "advertisers" .!= mempty))
+
+instance ToJSON AdvertisersListResponse where
+        toJSON AdvertisersListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _advNextPageToken,
+                  Just ("kind" .= _advKind),
+                  ("advertisers" .=) <$> _advAdvertisers])
+
+-- | Country List Response
+--
+-- /See:/ 'countriesListResponse' smart constructor.
+data CountriesListResponse = CountriesListResponse'
+    { _couKind      :: !Text
+    , _couCountries :: !(Maybe [Country])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CountriesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'couKind'
+--
+-- * 'couCountries'
+countriesListResponse
+    :: CountriesListResponse
+countriesListResponse =
+    CountriesListResponse'
+    { _couKind = "dfareporting#countriesListResponse"
+    , _couCountries = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#countriesListResponse\".
+couKind :: Lens' CountriesListResponse Text
+couKind = lens _couKind (\ s a -> s{_couKind = a})
+
+-- | Country collection.
+couCountries :: Lens' CountriesListResponse [Country]
+couCountries
+  = lens _couCountries (\ s a -> s{_couCountries = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CountriesListResponse where
+        parseJSON
+          = withObject "CountriesListResponse"
+              (\ o ->
+                 CountriesListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#countriesListResponse")
+                     <*> (o .:? "countries" .!= mempty))
+
+instance ToJSON CountriesListResponse where
+        toJSON CountriesListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _couKind),
+                  ("countries" .=) <$> _couCountries])
+
+-- | Account Permission Group List Response
+--
+-- /See:/ 'accountPermissionGroupsListResponse' smart constructor.
+data AccountPermissionGroupsListResponse = AccountPermissionGroupsListResponse'
+    { _apglrKind                    :: !Text
+    , _apglrAccountPermissionGroups :: !(Maybe [AccountPermissionGroup])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermissionGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apglrKind'
+--
+-- * 'apglrAccountPermissionGroups'
+accountPermissionGroupsListResponse
+    :: AccountPermissionGroupsListResponse
+accountPermissionGroupsListResponse =
+    AccountPermissionGroupsListResponse'
+    { _apglrKind = "dfareporting#accountPermissionGroupsListResponse"
+    , _apglrAccountPermissionGroups = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountPermissionGroupsListResponse\".
+apglrKind :: Lens' AccountPermissionGroupsListResponse Text
+apglrKind
+  = lens _apglrKind (\ s a -> s{_apglrKind = a})
+
+-- | Account permission group collection.
+apglrAccountPermissionGroups :: Lens' AccountPermissionGroupsListResponse [AccountPermissionGroup]
+apglrAccountPermissionGroups
+  = lens _apglrAccountPermissionGroups
+      (\ s a -> s{_apglrAccountPermissionGroups = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON AccountPermissionGroupsListResponse
+         where
+        parseJSON
+          = withObject "AccountPermissionGroupsListResponse"
+              (\ o ->
+                 AccountPermissionGroupsListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#accountPermissionGroupsListResponse")
+                     <*> (o .:? "accountPermissionGroups" .!= mempty))
+
+instance ToJSON AccountPermissionGroupsListResponse
+         where
+        toJSON AccountPermissionGroupsListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _apglrKind),
+                  ("accountPermissionGroups" .=) <$>
+                    _apglrAccountPermissionGroups])
+
+-- | Popup Window Properties.
+--
+-- /See:/ 'popupWindowProperties' smart constructor.
+data PopupWindowProperties = PopupWindowProperties'
+    { _pwpOffSet         :: !(Maybe OffSetPosition)
+    , _pwpDimension      :: !(Maybe Size)
+    , _pwpShowStatusBar  :: !(Maybe Bool)
+    , _pwpShowMenuBar    :: !(Maybe Bool)
+    , _pwpPositionType   :: !(Maybe PopupWindowPropertiesPositionType)
+    , _pwpShowAddressBar :: !(Maybe Bool)
+    , _pwpShowScrollBar  :: !(Maybe Bool)
+    , _pwpShowToolBar    :: !(Maybe Bool)
+    , _pwpTitle          :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PopupWindowProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pwpOffSet'
+--
+-- * 'pwpDimension'
+--
+-- * 'pwpShowStatusBar'
+--
+-- * 'pwpShowMenuBar'
+--
+-- * 'pwpPositionType'
+--
+-- * 'pwpShowAddressBar'
+--
+-- * 'pwpShowScrollBar'
+--
+-- * 'pwpShowToolBar'
+--
+-- * 'pwpTitle'
+popupWindowProperties
+    :: PopupWindowProperties
+popupWindowProperties =
+    PopupWindowProperties'
+    { _pwpOffSet = Nothing
+    , _pwpDimension = Nothing
+    , _pwpShowStatusBar = Nothing
+    , _pwpShowMenuBar = Nothing
+    , _pwpPositionType = Nothing
+    , _pwpShowAddressBar = Nothing
+    , _pwpShowScrollBar = Nothing
+    , _pwpShowToolBar = Nothing
+    , _pwpTitle = Nothing
+    }
+
+-- | Upper-left corner coordinates of the popup window. Applicable if
+-- positionType is COORDINATES.
+pwpOffSet :: Lens' PopupWindowProperties (Maybe OffSetPosition)
+pwpOffSet
+  = lens _pwpOffSet (\ s a -> s{_pwpOffSet = a})
+
+-- | Popup dimension for a creative. This is a read-only field. Applicable to
+-- the following creative types: all RICH_MEDIA and all VPAID
+pwpDimension :: Lens' PopupWindowProperties (Maybe Size)
+pwpDimension
+  = lens _pwpDimension (\ s a -> s{_pwpDimension = a})
+
+-- | Whether to display the browser status bar.
+pwpShowStatusBar :: Lens' PopupWindowProperties (Maybe Bool)
+pwpShowStatusBar
+  = lens _pwpShowStatusBar
+      (\ s a -> s{_pwpShowStatusBar = a})
+
+-- | Whether to display the browser menu bar.
+pwpShowMenuBar :: Lens' PopupWindowProperties (Maybe Bool)
+pwpShowMenuBar
+  = lens _pwpShowMenuBar
+      (\ s a -> s{_pwpShowMenuBar = a})
+
+-- | Popup window position either centered or at specific coordinate.
+pwpPositionType :: Lens' PopupWindowProperties (Maybe PopupWindowPropertiesPositionType)
+pwpPositionType
+  = lens _pwpPositionType
+      (\ s a -> s{_pwpPositionType = a})
+
+-- | Whether to display the browser address bar.
+pwpShowAddressBar :: Lens' PopupWindowProperties (Maybe Bool)
+pwpShowAddressBar
+  = lens _pwpShowAddressBar
+      (\ s a -> s{_pwpShowAddressBar = a})
+
+-- | Whether to display the browser scroll bar.
+pwpShowScrollBar :: Lens' PopupWindowProperties (Maybe Bool)
+pwpShowScrollBar
+  = lens _pwpShowScrollBar
+      (\ s a -> s{_pwpShowScrollBar = a})
+
+-- | Whether to display the browser tool bar.
+pwpShowToolBar :: Lens' PopupWindowProperties (Maybe Bool)
+pwpShowToolBar
+  = lens _pwpShowToolBar
+      (\ s a -> s{_pwpShowToolBar = a})
+
+-- | Title of popup window.
+pwpTitle :: Lens' PopupWindowProperties (Maybe Text)
+pwpTitle = lens _pwpTitle (\ s a -> s{_pwpTitle = a})
+
+instance FromJSON PopupWindowProperties where
+        parseJSON
+          = withObject "PopupWindowProperties"
+              (\ o ->
+                 PopupWindowProperties' <$>
+                   (o .:? "offset") <*> (o .:? "dimension") <*>
+                     (o .:? "showStatusBar")
+                     <*> (o .:? "showMenuBar")
+                     <*> (o .:? "positionType")
+                     <*> (o .:? "showAddressBar")
+                     <*> (o .:? "showScrollBar")
+                     <*> (o .:? "showToolBar")
+                     <*> (o .:? "title"))
+
+instance ToJSON PopupWindowProperties where
+        toJSON PopupWindowProperties'{..}
+          = object
+              (catMaybes
+                 [("offset" .=) <$> _pwpOffSet,
+                  ("dimension" .=) <$> _pwpDimension,
+                  ("showStatusBar" .=) <$> _pwpShowStatusBar,
+                  ("showMenuBar" .=) <$> _pwpShowMenuBar,
+                  ("positionType" .=) <$> _pwpPositionType,
+                  ("showAddressBar" .=) <$> _pwpShowAddressBar,
+                  ("showScrollBar" .=) <$> _pwpShowScrollBar,
+                  ("showToolBar" .=) <$> _pwpShowToolBar,
+                  ("title" .=) <$> _pwpTitle])
+
+-- | Event tag override information.
+--
+-- /See:/ 'eventTagOverride' smart constructor.
+data EventTagOverride = EventTagOverride'
+    { _etoEnabled :: !(Maybe Bool)
+    , _etoId      :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTagOverride' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etoEnabled'
+--
+-- * 'etoId'
+eventTagOverride
+    :: EventTagOverride
+eventTagOverride =
+    EventTagOverride'
+    { _etoEnabled = Nothing
+    , _etoId = Nothing
+    }
+
+-- | Whether this override is enabled.
+etoEnabled :: Lens' EventTagOverride (Maybe Bool)
+etoEnabled
+  = lens _etoEnabled (\ s a -> s{_etoEnabled = a})
+
+-- | ID of this event tag override. This is a read-only, auto-generated
+-- field.
+etoId :: Lens' EventTagOverride (Maybe Int64)
+etoId
+  = lens _etoId (\ s a -> s{_etoId = a}) .
+      mapping _Coerce
+
+instance FromJSON EventTagOverride where
+        parseJSON
+          = withObject "EventTagOverride"
+              (\ o ->
+                 EventTagOverride' <$>
+                   (o .:? "enabled") <*> (o .:? "id"))
+
+instance ToJSON EventTagOverride where
+        toJSON EventTagOverride'{..}
+          = object
+              (catMaybes
+                 [("enabled" .=) <$> _etoEnabled,
+                  ("id" .=) <$> _etoId])
+
+-- | Contains information about a particular version of an operating system
+-- that can be targeted by ads.
+--
+-- /See:/ 'operatingSystemVersion' smart constructor.
+data OperatingSystemVersion = OperatingSystemVersion'
+    { _osvMinorVersion    :: !(Maybe Text)
+    , _osvKind            :: !Text
+    , _osvOperatingSystem :: !(Maybe OperatingSystem)
+    , _osvMajorVersion    :: !(Maybe Text)
+    , _osvName            :: !(Maybe Text)
+    , _osvId              :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemVersion' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osvMinorVersion'
+--
+-- * 'osvKind'
+--
+-- * 'osvOperatingSystem'
+--
+-- * 'osvMajorVersion'
+--
+-- * 'osvName'
+--
+-- * 'osvId'
+operatingSystemVersion
+    :: OperatingSystemVersion
+operatingSystemVersion =
+    OperatingSystemVersion'
+    { _osvMinorVersion = Nothing
+    , _osvKind = "dfareporting#operatingSystemVersion"
+    , _osvOperatingSystem = Nothing
+    , _osvMajorVersion = Nothing
+    , _osvName = Nothing
+    , _osvId = Nothing
+    }
+
+-- | Minor version (number after the first dot) of this operating system
+-- version.
+osvMinorVersion :: Lens' OperatingSystemVersion (Maybe Text)
+osvMinorVersion
+  = lens _osvMinorVersion
+      (\ s a -> s{_osvMinorVersion = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#operatingSystemVersion\".
+osvKind :: Lens' OperatingSystemVersion Text
+osvKind = lens _osvKind (\ s a -> s{_osvKind = a})
+
+-- | Operating system of this operating system version.
+osvOperatingSystem :: Lens' OperatingSystemVersion (Maybe OperatingSystem)
+osvOperatingSystem
+  = lens _osvOperatingSystem
+      (\ s a -> s{_osvOperatingSystem = a})
+
+-- | Major version (leftmost number) of this operating system version.
+osvMajorVersion :: Lens' OperatingSystemVersion (Maybe Text)
+osvMajorVersion
+  = lens _osvMajorVersion
+      (\ s a -> s{_osvMajorVersion = a})
+
+-- | Name of this operating system version.
+osvName :: Lens' OperatingSystemVersion (Maybe Text)
+osvName = lens _osvName (\ s a -> s{_osvName = a})
+
+-- | ID of this operating system version.
+osvId :: Lens' OperatingSystemVersion (Maybe Int64)
+osvId
+  = lens _osvId (\ s a -> s{_osvId = a}) .
+      mapping _Coerce
+
+instance FromJSON OperatingSystemVersion where
+        parseJSON
+          = withObject "OperatingSystemVersion"
+              (\ o ->
+                 OperatingSystemVersion' <$>
+                   (o .:? "minorVersion") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#operatingSystemVersion")
+                     <*> (o .:? "operatingSystem")
+                     <*> (o .:? "majorVersion")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON OperatingSystemVersion where
+        toJSON OperatingSystemVersion'{..}
+          = object
+              (catMaybes
+                 [("minorVersion" .=) <$> _osvMinorVersion,
+                  Just ("kind" .= _osvKind),
+                  ("operatingSystem" .=) <$> _osvOperatingSystem,
+                  ("majorVersion" .=) <$> _osvMajorVersion,
+                  ("name" .=) <$> _osvName, ("id" .=) <$> _osvId])
+
+-- | AccountPermissions contains information about a particular account
+-- permission. Some features of DCM require an account permission to be
+-- present in the account.
+--
+-- /See:/ 'accountPermission' smart constructor.
+data AccountPermission = AccountPermission'
+    { _acccKind              :: !Text
+    , _acccAccountProFiles   :: !(Maybe [AccountPermissionAccountProFilesItem])
+    , _acccName              :: !(Maybe Text)
+    , _acccId                :: !(Maybe (Textual Int64))
+    , _acccLevel             :: !(Maybe AccountPermissionLevel)
+    , _acccPermissionGroupId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermission' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acccKind'
+--
+-- * 'acccAccountProFiles'
+--
+-- * 'acccName'
+--
+-- * 'acccId'
+--
+-- * 'acccLevel'
+--
+-- * 'acccPermissionGroupId'
+accountPermission
+    :: AccountPermission
+accountPermission =
+    AccountPermission'
+    { _acccKind = "dfareporting#accountPermission"
+    , _acccAccountProFiles = Nothing
+    , _acccName = Nothing
+    , _acccId = Nothing
+    , _acccLevel = Nothing
+    , _acccPermissionGroupId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountPermission\".
+acccKind :: Lens' AccountPermission Text
+acccKind = lens _acccKind (\ s a -> s{_acccKind = a})
+
+-- | Account profiles associated with this account permission. Possible
+-- values are: - \"ACCOUNT_PROFILE_BASIC\" - \"ACCOUNT_PROFILE_STANDARD\"
+acccAccountProFiles :: Lens' AccountPermission [AccountPermissionAccountProFilesItem]
+acccAccountProFiles
+  = lens _acccAccountProFiles
+      (\ s a -> s{_acccAccountProFiles = a})
+      . _Default
+      . _Coerce
+
+-- | Name of this account permission.
+acccName :: Lens' AccountPermission (Maybe Text)
+acccName = lens _acccName (\ s a -> s{_acccName = a})
+
+-- | ID of this account permission.
+acccId :: Lens' AccountPermission (Maybe Int64)
+acccId
+  = lens _acccId (\ s a -> s{_acccId = a}) .
+      mapping _Coerce
+
+-- | Administrative level required to enable this account permission.
+acccLevel :: Lens' AccountPermission (Maybe AccountPermissionLevel)
+acccLevel
+  = lens _acccLevel (\ s a -> s{_acccLevel = a})
+
+-- | Permission group of this account permission.
+acccPermissionGroupId :: Lens' AccountPermission (Maybe Int64)
+acccPermissionGroupId
+  = lens _acccPermissionGroupId
+      (\ s a -> s{_acccPermissionGroupId = a})
+      . mapping _Coerce
+
+instance FromJSON AccountPermission where
+        parseJSON
+          = withObject "AccountPermission"
+              (\ o ->
+                 AccountPermission' <$>
+                   (o .:? "kind" .!= "dfareporting#accountPermission")
+                     <*> (o .:? "accountProfiles" .!= mempty)
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "level")
+                     <*> (o .:? "permissionGroupId"))
+
+instance ToJSON AccountPermission where
+        toJSON AccountPermission'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _acccKind),
+                  ("accountProfiles" .=) <$> _acccAccountProFiles,
+                  ("name" .=) <$> _acccName, ("id" .=) <$> _acccId,
+                  ("level" .=) <$> _acccLevel,
+                  ("permissionGroupId" .=) <$> _acccPermissionGroupId])
+
+-- | Represents a UserProfile resource.
+--
+-- /See:/ 'userProFile' smart constructor.
+data UserProFile = UserProFile'
+    { _upfEtag           :: !(Maybe Text)
+    , _upfKind           :: !Text
+    , _upfAccountName    :: !(Maybe Text)
+    , _upfProFileId      :: !(Maybe (Textual Int64))
+    , _upfUserName       :: !(Maybe Text)
+    , _upfAccountId      :: !(Maybe (Textual Int64))
+    , _upfSubAccountName :: !(Maybe Text)
+    , _upfSubAccountId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFile' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upfEtag'
+--
+-- * 'upfKind'
+--
+-- * 'upfAccountName'
+--
+-- * 'upfProFileId'
+--
+-- * 'upfUserName'
+--
+-- * 'upfAccountId'
+--
+-- * 'upfSubAccountName'
+--
+-- * 'upfSubAccountId'
+userProFile
+    :: UserProFile
+userProFile =
+    UserProFile'
+    { _upfEtag = Nothing
+    , _upfKind = "dfareporting#userProfile"
+    , _upfAccountName = Nothing
+    , _upfProFileId = Nothing
+    , _upfUserName = Nothing
+    , _upfAccountId = Nothing
+    , _upfSubAccountName = Nothing
+    , _upfSubAccountId = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+upfEtag :: Lens' UserProFile (Maybe Text)
+upfEtag = lens _upfEtag (\ s a -> s{_upfEtag = a})
+
+-- | The kind of resource this is, in this case dfareporting#userProfile.
+upfKind :: Lens' UserProFile Text
+upfKind = lens _upfKind (\ s a -> s{_upfKind = a})
+
+-- | The account name this profile belongs to.
+upfAccountName :: Lens' UserProFile (Maybe Text)
+upfAccountName
+  = lens _upfAccountName
+      (\ s a -> s{_upfAccountName = a})
+
+-- | The unique ID of the user profile.
+upfProFileId :: Lens' UserProFile (Maybe Int64)
+upfProFileId
+  = lens _upfProFileId (\ s a -> s{_upfProFileId = a})
+      . mapping _Coerce
+
+-- | The user name.
+upfUserName :: Lens' UserProFile (Maybe Text)
+upfUserName
+  = lens _upfUserName (\ s a -> s{_upfUserName = a})
+
+-- | The account ID to which this profile belongs.
+upfAccountId :: Lens' UserProFile (Maybe Int64)
+upfAccountId
+  = lens _upfAccountId (\ s a -> s{_upfAccountId = a})
+      . mapping _Coerce
+
+-- | The sub account name this profile belongs to if applicable.
+upfSubAccountName :: Lens' UserProFile (Maybe Text)
+upfSubAccountName
+  = lens _upfSubAccountName
+      (\ s a -> s{_upfSubAccountName = a})
+
+-- | The sub account ID this profile belongs to if applicable.
+upfSubAccountId :: Lens' UserProFile (Maybe Int64)
+upfSubAccountId
+  = lens _upfSubAccountId
+      (\ s a -> s{_upfSubAccountId = a})
+      . mapping _Coerce
+
+instance FromJSON UserProFile where
+        parseJSON
+          = withObject "UserProFile"
+              (\ o ->
+                 UserProFile' <$>
+                   (o .:? "etag") <*>
+                     (o .:? "kind" .!= "dfareporting#userProfile")
+                     <*> (o .:? "accountName")
+                     <*> (o .:? "profileId")
+                     <*> (o .:? "userName")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "subAccountName")
+                     <*> (o .:? "subAccountId"))
+
+instance ToJSON UserProFile where
+        toJSON UserProFile'{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _upfEtag, Just ("kind" .= _upfKind),
+                  ("accountName" .=) <$> _upfAccountName,
+                  ("profileId" .=) <$> _upfProFileId,
+                  ("userName" .=) <$> _upfUserName,
+                  ("accountId" .=) <$> _upfAccountId,
+                  ("subAccountName" .=) <$> _upfSubAccountName,
+                  ("subAccountId" .=) <$> _upfSubAccountId])
+
+-- | Operating System List Response
+--
+-- /See:/ 'operatingSystemsListResponse' smart constructor.
+data OperatingSystemsListResponse = OperatingSystemsListResponse'
+    { _oslrKind             :: !Text
+    , _oslrOperatingSystems :: !(Maybe [OperatingSystem])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperatingSystemsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'oslrKind'
+--
+-- * 'oslrOperatingSystems'
+operatingSystemsListResponse
+    :: OperatingSystemsListResponse
+operatingSystemsListResponse =
+    OperatingSystemsListResponse'
+    { _oslrKind = "dfareporting#operatingSystemsListResponse"
+    , _oslrOperatingSystems = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#operatingSystemsListResponse\".
+oslrKind :: Lens' OperatingSystemsListResponse Text
+oslrKind = lens _oslrKind (\ s a -> s{_oslrKind = a})
+
+-- | Operating system collection.
+oslrOperatingSystems :: Lens' OperatingSystemsListResponse [OperatingSystem]
+oslrOperatingSystems
+  = lens _oslrOperatingSystems
+      (\ s a -> s{_oslrOperatingSystems = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON OperatingSystemsListResponse where
+        parseJSON
+          = withObject "OperatingSystemsListResponse"
+              (\ o ->
+                 OperatingSystemsListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#operatingSystemsListResponse")
+                     <*> (o .:? "operatingSystems" .!= mempty))
+
+instance ToJSON OperatingSystemsListResponse where
+        toJSON OperatingSystemsListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _oslrKind),
+                  ("operatingSystems" .=) <$> _oslrOperatingSystems])
+
+-- | The report\'s email delivery settings.
+--
+-- /See:/ 'reportDelivery' smart constructor.
+data ReportDelivery = ReportDelivery'
+    { _rdEmailOwner             :: !(Maybe Bool)
+    , _rdRecipients             :: !(Maybe [Recipient])
+    , _rdMessage                :: !(Maybe Text)
+    , _rdEmailOwnerDeliveryType :: !(Maybe ReportDeliveryEmailOwnerDeliveryType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportDelivery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdEmailOwner'
+--
+-- * 'rdRecipients'
+--
+-- * 'rdMessage'
+--
+-- * 'rdEmailOwnerDeliveryType'
+reportDelivery
+    :: ReportDelivery
+reportDelivery =
+    ReportDelivery'
+    { _rdEmailOwner = Nothing
+    , _rdRecipients = Nothing
+    , _rdMessage = Nothing
+    , _rdEmailOwnerDeliveryType = Nothing
+    }
+
+-- | Whether the report should be emailed to the report owner.
+rdEmailOwner :: Lens' ReportDelivery (Maybe Bool)
+rdEmailOwner
+  = lens _rdEmailOwner (\ s a -> s{_rdEmailOwner = a})
+
+-- | The list of recipients to which to email the report.
+rdRecipients :: Lens' ReportDelivery [Recipient]
+rdRecipients
+  = lens _rdRecipients (\ s a -> s{_rdRecipients = a})
+      . _Default
+      . _Coerce
+
+-- | The message to be sent with each email.
+rdMessage :: Lens' ReportDelivery (Maybe Text)
+rdMessage
+  = lens _rdMessage (\ s a -> s{_rdMessage = a})
+
+-- | The type of delivery for the owner to receive, if enabled.
+rdEmailOwnerDeliveryType :: Lens' ReportDelivery (Maybe ReportDeliveryEmailOwnerDeliveryType)
+rdEmailOwnerDeliveryType
+  = lens _rdEmailOwnerDeliveryType
+      (\ s a -> s{_rdEmailOwnerDeliveryType = a})
+
+instance FromJSON ReportDelivery where
+        parseJSON
+          = withObject "ReportDelivery"
+              (\ o ->
+                 ReportDelivery' <$>
+                   (o .:? "emailOwner") <*>
+                     (o .:? "recipients" .!= mempty)
+                     <*> (o .:? "message")
+                     <*> (o .:? "emailOwnerDeliveryType"))
+
+instance ToJSON ReportDelivery where
+        toJSON ReportDelivery'{..}
+          = object
+              (catMaybes
+                 [("emailOwner" .=) <$> _rdEmailOwner,
+                  ("recipients" .=) <$> _rdRecipients,
+                  ("message" .=) <$> _rdMessage,
+                  ("emailOwnerDeliveryType" .=) <$>
+                    _rdEmailOwnerDeliveryType])
+
+-- | Contains properties of a targetable remarketing list. Remarketing
+-- enables you to create lists of users who have performed specific actions
+-- on a site, then target ads to members of those lists. This resource is a
+-- read-only view of a remarketing list to be used to faciliate targeting
+-- ads to specific lists. Remarketing lists that are owned by your
+-- advertisers and those that are shared to your advertisers or account are
+-- accessible via this resource. To manage remarketing lists that are owned
+-- by your advertisers, use the RemarketingLists resource.
+--
+-- /See:/ 'targetableRemarketingList' smart constructor.
+data TargetableRemarketingList = TargetableRemarketingList'
+    { _trlListSize                   :: !(Maybe (Textual Int64))
+    , _trlLifeSpan                   :: !(Maybe (Textual Int64))
+    , _trlKind                       :: !Text
+    , _trlAdvertiserId               :: !(Maybe (Textual Int64))
+    , _trlAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
+    , _trlActive                     :: !(Maybe Bool)
+    , _trlAccountId                  :: !(Maybe (Textual Int64))
+    , _trlName                       :: !(Maybe Text)
+    , _trlListSource                 :: !(Maybe TargetableRemarketingListListSource)
+    , _trlId                         :: !(Maybe (Textual Int64))
+    , _trlSubAccountId               :: !(Maybe (Textual Int64))
+    , _trlDescription                :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetableRemarketingList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trlListSize'
+--
+-- * 'trlLifeSpan'
+--
+-- * 'trlKind'
+--
+-- * 'trlAdvertiserId'
+--
+-- * 'trlAdvertiserIdDimensionValue'
+--
+-- * 'trlActive'
+--
+-- * 'trlAccountId'
+--
+-- * 'trlName'
+--
+-- * 'trlListSource'
+--
+-- * 'trlId'
+--
+-- * 'trlSubAccountId'
+--
+-- * 'trlDescription'
+targetableRemarketingList
+    :: TargetableRemarketingList
+targetableRemarketingList =
+    TargetableRemarketingList'
+    { _trlListSize = Nothing
+    , _trlLifeSpan = Nothing
+    , _trlKind = "dfareporting#targetableRemarketingList"
+    , _trlAdvertiserId = Nothing
+    , _trlAdvertiserIdDimensionValue = Nothing
+    , _trlActive = Nothing
+    , _trlAccountId = Nothing
+    , _trlName = Nothing
+    , _trlListSource = Nothing
+    , _trlId = Nothing
+    , _trlSubAccountId = Nothing
+    , _trlDescription = Nothing
+    }
+
+-- | Number of users currently in the list. This is a read-only field.
+trlListSize :: Lens' TargetableRemarketingList (Maybe Int64)
+trlListSize
+  = lens _trlListSize (\ s a -> s{_trlListSize = a}) .
+      mapping _Coerce
+
+-- | Number of days that a user should remain in the targetable remarketing
+-- list without an impression.
+trlLifeSpan :: Lens' TargetableRemarketingList (Maybe Int64)
+trlLifeSpan
+  = lens _trlLifeSpan (\ s a -> s{_trlLifeSpan = a}) .
+      mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#targetableRemarketingList\".
+trlKind :: Lens' TargetableRemarketingList Text
+trlKind = lens _trlKind (\ s a -> s{_trlKind = a})
+
+-- | Dimension value for the advertiser ID that owns this targetable
+-- remarketing list.
+trlAdvertiserId :: Lens' TargetableRemarketingList (Maybe Int64)
+trlAdvertiserId
+  = lens _trlAdvertiserId
+      (\ s a -> s{_trlAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser.
+trlAdvertiserIdDimensionValue :: Lens' TargetableRemarketingList (Maybe DimensionValue)
+trlAdvertiserIdDimensionValue
+  = lens _trlAdvertiserIdDimensionValue
+      (\ s a -> s{_trlAdvertiserIdDimensionValue = a})
+
+-- | Whether this targetable remarketing list is active.
+trlActive :: Lens' TargetableRemarketingList (Maybe Bool)
+trlActive
+  = lens _trlActive (\ s a -> s{_trlActive = a})
+
+-- | Account ID of this remarketing list. This is a read-only, auto-generated
+-- field that is only returned in GET requests.
+trlAccountId :: Lens' TargetableRemarketingList (Maybe Int64)
+trlAccountId
+  = lens _trlAccountId (\ s a -> s{_trlAccountId = a})
+      . mapping _Coerce
+
+-- | Name of the targetable remarketing list. Is no greater than 128
+-- characters long.
+trlName :: Lens' TargetableRemarketingList (Maybe Text)
+trlName = lens _trlName (\ s a -> s{_trlName = a})
+
+-- | Product from which this targetable remarketing list was originated.
+trlListSource :: Lens' TargetableRemarketingList (Maybe TargetableRemarketingListListSource)
+trlListSource
+  = lens _trlListSource
+      (\ s a -> s{_trlListSource = a})
+
+-- | Targetable remarketing list ID.
+trlId :: Lens' TargetableRemarketingList (Maybe Int64)
+trlId
+  = lens _trlId (\ s a -> s{_trlId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this remarketing list. This is a read-only,
+-- auto-generated field that is only returned in GET requests.
+trlSubAccountId :: Lens' TargetableRemarketingList (Maybe Int64)
+trlSubAccountId
+  = lens _trlSubAccountId
+      (\ s a -> s{_trlSubAccountId = a})
+      . mapping _Coerce
+
+-- | Targetable remarketing list description.
+trlDescription :: Lens' TargetableRemarketingList (Maybe Text)
+trlDescription
+  = lens _trlDescription
+      (\ s a -> s{_trlDescription = a})
+
+instance FromJSON TargetableRemarketingList where
+        parseJSON
+          = withObject "TargetableRemarketingList"
+              (\ o ->
+                 TargetableRemarketingList' <$>
+                   (o .:? "listSize") <*> (o .:? "lifeSpan") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#targetableRemarketingList")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "active")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "listSource")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "description"))
+
+instance ToJSON TargetableRemarketingList where
+        toJSON TargetableRemarketingList'{..}
+          = object
+              (catMaybes
+                 [("listSize" .=) <$> _trlListSize,
+                  ("lifeSpan" .=) <$> _trlLifeSpan,
+                  Just ("kind" .= _trlKind),
+                  ("advertiserId" .=) <$> _trlAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _trlAdvertiserIdDimensionValue,
+                  ("active" .=) <$> _trlActive,
+                  ("accountId" .=) <$> _trlAccountId,
+                  ("name" .=) <$> _trlName,
+                  ("listSource" .=) <$> _trlListSource,
+                  ("id" .=) <$> _trlId,
+                  ("subaccountId" .=) <$> _trlSubAccountId,
+                  ("description" .=) <$> _trlDescription])
+
+-- | Postal Code List Response
+--
+-- /See:/ 'postalCodesListResponse' smart constructor.
+data PostalCodesListResponse = PostalCodesListResponse'
+    { _pclrKind        :: !Text
+    , _pclrPostalCodes :: !(Maybe [PostalCode])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PostalCodesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pclrKind'
+--
+-- * 'pclrPostalCodes'
+postalCodesListResponse
+    :: PostalCodesListResponse
+postalCodesListResponse =
+    PostalCodesListResponse'
+    { _pclrKind = "dfareporting#postalCodesListResponse"
+    , _pclrPostalCodes = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#postalCodesListResponse\".
+pclrKind :: Lens' PostalCodesListResponse Text
+pclrKind = lens _pclrKind (\ s a -> s{_pclrKind = a})
+
+-- | Postal code collection.
+pclrPostalCodes :: Lens' PostalCodesListResponse [PostalCode]
+pclrPostalCodes
+  = lens _pclrPostalCodes
+      (\ s a -> s{_pclrPostalCodes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON PostalCodesListResponse where
+        parseJSON
+          = withObject "PostalCodesListResponse"
+              (\ o ->
+                 PostalCodesListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#postalCodesListResponse")
+                     <*> (o .:? "postalCodes" .!= mempty))
+
+instance ToJSON PostalCodesListResponse where
+        toJSON PostalCodesListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _pclrKind),
+                  ("postalCodes" .=) <$> _pclrPostalCodes])
+
+-- | Describes a change that a user has made to a resource.
+--
+-- /See:/ 'changeLog' smart constructor.
+data ChangeLog = ChangeLog'
+    { _chaUserProFileId   :: !(Maybe (Textual Int64))
+    , _chaObjectType      :: !(Maybe Text)
+    , _chaUserProFileName :: !(Maybe Text)
+    , _chaKind            :: !Text
+    , _chaObjectId        :: !(Maybe (Textual Int64))
+    , _chaAction          :: !(Maybe Text)
+    , _chaTransactionId   :: !(Maybe (Textual Int64))
+    , _chaOldValue        :: !(Maybe Text)
+    , _chaAccountId       :: !(Maybe (Textual Int64))
+    , _chaNewValue        :: !(Maybe Text)
+    , _chaFieldName       :: !(Maybe Text)
+    , _chaId              :: !(Maybe (Textual Int64))
+    , _chaSubAccountId    :: !(Maybe (Textual Int64))
+    , _chaChangeTime      :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ChangeLog' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'chaUserProFileId'
+--
+-- * 'chaObjectType'
+--
+-- * 'chaUserProFileName'
+--
+-- * 'chaKind'
+--
+-- * 'chaObjectId'
+--
+-- * 'chaAction'
+--
+-- * 'chaTransactionId'
+--
+-- * 'chaOldValue'
+--
+-- * 'chaAccountId'
+--
+-- * 'chaNewValue'
+--
+-- * 'chaFieldName'
+--
+-- * 'chaId'
+--
+-- * 'chaSubAccountId'
+--
+-- * 'chaChangeTime'
+changeLog
+    :: ChangeLog
+changeLog =
+    ChangeLog'
+    { _chaUserProFileId = Nothing
+    , _chaObjectType = Nothing
+    , _chaUserProFileName = Nothing
+    , _chaKind = "dfareporting#changeLog"
+    , _chaObjectId = Nothing
+    , _chaAction = Nothing
+    , _chaTransactionId = Nothing
+    , _chaOldValue = Nothing
+    , _chaAccountId = Nothing
+    , _chaNewValue = Nothing
+    , _chaFieldName = Nothing
+    , _chaId = Nothing
+    , _chaSubAccountId = Nothing
+    , _chaChangeTime = Nothing
+    }
+
+-- | ID of the user who modified the object.
+chaUserProFileId :: Lens' ChangeLog (Maybe Int64)
+chaUserProFileId
+  = lens _chaUserProFileId
+      (\ s a -> s{_chaUserProFileId = a})
+      . mapping _Coerce
+
+-- | Object type of the change log.
+chaObjectType :: Lens' ChangeLog (Maybe Text)
+chaObjectType
+  = lens _chaObjectType
+      (\ s a -> s{_chaObjectType = a})
+
+-- | User profile name of the user who modified the object.
+chaUserProFileName :: Lens' ChangeLog (Maybe Text)
+chaUserProFileName
+  = lens _chaUserProFileName
+      (\ s a -> s{_chaUserProFileName = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#changeLog\".
+chaKind :: Lens' ChangeLog Text
+chaKind = lens _chaKind (\ s a -> s{_chaKind = a})
+
+-- | ID of the object of this change log. The object could be a campaign,
+-- placement, ad, or other type.
+chaObjectId :: Lens' ChangeLog (Maybe Int64)
+chaObjectId
+  = lens _chaObjectId (\ s a -> s{_chaObjectId = a}) .
+      mapping _Coerce
+
+-- | Action which caused the change.
+chaAction :: Lens' ChangeLog (Maybe Text)
+chaAction
+  = lens _chaAction (\ s a -> s{_chaAction = a})
+
+-- | Transaction ID of this change log. When a single API call results in
+-- many changes, each change will have a separate ID in the change log but
+-- will share the same transactionId.
+chaTransactionId :: Lens' ChangeLog (Maybe Int64)
+chaTransactionId
+  = lens _chaTransactionId
+      (\ s a -> s{_chaTransactionId = a})
+      . mapping _Coerce
+
+-- | Old value of the object field.
+chaOldValue :: Lens' ChangeLog (Maybe Text)
+chaOldValue
+  = lens _chaOldValue (\ s a -> s{_chaOldValue = a})
+
+-- | Account ID of the modified object.
+chaAccountId :: Lens' ChangeLog (Maybe Int64)
+chaAccountId
+  = lens _chaAccountId (\ s a -> s{_chaAccountId = a})
+      . mapping _Coerce
+
+-- | New value of the object field.
+chaNewValue :: Lens' ChangeLog (Maybe Text)
+chaNewValue
+  = lens _chaNewValue (\ s a -> s{_chaNewValue = a})
+
+-- | Field name of the object which changed.
+chaFieldName :: Lens' ChangeLog (Maybe Text)
+chaFieldName
+  = lens _chaFieldName (\ s a -> s{_chaFieldName = a})
+
+-- | ID of this change log.
+chaId :: Lens' ChangeLog (Maybe Int64)
+chaId
+  = lens _chaId (\ s a -> s{_chaId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of the modified object.
+chaSubAccountId :: Lens' ChangeLog (Maybe Int64)
+chaSubAccountId
+  = lens _chaSubAccountId
+      (\ s a -> s{_chaSubAccountId = a})
+      . mapping _Coerce
+
+-- | Time when the object was modified.
+chaChangeTime :: Lens' ChangeLog (Maybe UTCTime)
+chaChangeTime
+  = lens _chaChangeTime
+      (\ s a -> s{_chaChangeTime = a})
+      . mapping _DateTime
+
+instance FromJSON ChangeLog where
+        parseJSON
+          = withObject "ChangeLog"
+              (\ o ->
+                 ChangeLog' <$>
+                   (o .:? "userProfileId") <*> (o .:? "objectType") <*>
+                     (o .:? "userProfileName")
+                     <*> (o .:? "kind" .!= "dfareporting#changeLog")
+                     <*> (o .:? "objectId")
+                     <*> (o .:? "action")
+                     <*> (o .:? "transactionId")
+                     <*> (o .:? "oldValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "newValue")
+                     <*> (o .:? "fieldName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "changeTime"))
+
+instance ToJSON ChangeLog where
+        toJSON ChangeLog'{..}
+          = object
+              (catMaybes
+                 [("userProfileId" .=) <$> _chaUserProFileId,
+                  ("objectType" .=) <$> _chaObjectType,
+                  ("userProfileName" .=) <$> _chaUserProFileName,
+                  Just ("kind" .= _chaKind),
+                  ("objectId" .=) <$> _chaObjectId,
+                  ("action" .=) <$> _chaAction,
+                  ("transactionId" .=) <$> _chaTransactionId,
+                  ("oldValue" .=) <$> _chaOldValue,
+                  ("accountId" .=) <$> _chaAccountId,
+                  ("newValue" .=) <$> _chaNewValue,
+                  ("fieldName" .=) <$> _chaFieldName,
+                  ("id" .=) <$> _chaId,
+                  ("subaccountId" .=) <$> _chaSubAccountId,
+                  ("changeTime" .=) <$> _chaChangeTime])
+
+-- | Contains properties of a placement strategy.
+--
+-- /See:/ 'placementStrategy' smart constructor.
+data PlacementStrategy = PlacementStrategy'
+    { _psKind      :: !Text
+    , _psAccountId :: !(Maybe (Textual Int64))
+    , _psName      :: !(Maybe Text)
+    , _psId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementStrategy' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psKind'
+--
+-- * 'psAccountId'
+--
+-- * 'psName'
+--
+-- * 'psId'
+placementStrategy
+    :: PlacementStrategy
+placementStrategy =
+    PlacementStrategy'
+    { _psKind = "dfareporting#placementStrategy"
+    , _psAccountId = Nothing
+    , _psName = Nothing
+    , _psId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementStrategy\".
+psKind :: Lens' PlacementStrategy Text
+psKind = lens _psKind (\ s a -> s{_psKind = a})
+
+-- | Account ID of this placement strategy.This is a read-only field that can
+-- be left blank.
+psAccountId :: Lens' PlacementStrategy (Maybe Int64)
+psAccountId
+  = lens _psAccountId (\ s a -> s{_psAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this placement strategy. This is a required field. It must be
+-- less than 256 characters long and unique among placement strategies of
+-- the same account.
+psName :: Lens' PlacementStrategy (Maybe Text)
+psName = lens _psName (\ s a -> s{_psName = a})
+
+-- | ID of this placement strategy. This is a read-only, auto-generated
+-- field.
+psId :: Lens' PlacementStrategy (Maybe Int64)
+psId
+  = lens _psId (\ s a -> s{_psId = a}) .
+      mapping _Coerce
+
+instance FromJSON PlacementStrategy where
+        parseJSON
+          = withObject "PlacementStrategy"
+              (\ o ->
+                 PlacementStrategy' <$>
+                   (o .:? "kind" .!= "dfareporting#placementStrategy")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON PlacementStrategy where
+        toJSON PlacementStrategy'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _psKind),
+                  ("accountId" .=) <$> _psAccountId,
+                  ("name" .=) <$> _psName, ("id" .=) <$> _psId])
+
+-- | Contains properties of a Floodlight activity.
+--
+-- /See:/ 'floodlightActivity' smart constructor.
+data FloodlightActivity = FloodlightActivity'
+    { _faCountingMethod                          :: !(Maybe FloodlightActivityCountingMethod)
+    , _faTagString                               :: !(Maybe Text)
+    , _faSecure                                  :: !(Maybe Bool)
+    , _faExpectedURL                             :: !(Maybe Text)
+    , _faFloodlightActivityGroupTagString        :: !(Maybe Text)
+    , _faFloodlightConfigurationId               :: !(Maybe (Textual Int64))
+    , _faKind                                    :: !Text
+    , _faImageTagEnabled                         :: !(Maybe Bool)
+    , _faAdvertiserId                            :: !(Maybe (Textual Int64))
+    , _faAdvertiserIdDimensionValue              :: !(Maybe DimensionValue)
+    , _faSSLCompliant                            :: !(Maybe Bool)
+    , _faIdDimensionValue                        :: !(Maybe DimensionValue)
+    , _faTagFormat                               :: !(Maybe FloodlightActivityTagFormat)
+    , _faCacheBustingType                        :: !(Maybe FloodlightActivityCacheBustingType)
+    , _faAccountId                               :: !(Maybe (Textual Int64))
+    , _faName                                    :: !(Maybe Text)
+    , _faPublisherTags                           :: !(Maybe [FloodlightActivityPublisherDynamicTag])
+    , _faFloodlightActivityGroupId               :: !(Maybe (Textual Int64))
+    , _faHidden                                  :: !(Maybe Bool)
+    , _faFloodlightActivityGroupType             :: !(Maybe FloodlightActivityFloodlightActivityGroupType)
+    , _faDefaultTags                             :: !(Maybe [FloodlightActivityDynamicTag])
+    , _faFloodlightActivityGroupName             :: !(Maybe Text)
+    , _faId                                      :: !(Maybe (Textual Int64))
+    , _faSSLRequired                             :: !(Maybe Bool)
+    , _faUserDefinedVariableTypes                :: !(Maybe [FloodlightActivityUserDefinedVariableTypesItem])
+    , _faSubAccountId                            :: !(Maybe (Textual Int64))
+    , _faNotes                                   :: !(Maybe Text)
+    , _faFloodlightConfigurationIdDimensionValue :: !(Maybe DimensionValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivity' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'faCountingMethod'
+--
+-- * 'faTagString'
+--
+-- * 'faSecure'
+--
+-- * 'faExpectedURL'
+--
+-- * 'faFloodlightActivityGroupTagString'
+--
+-- * 'faFloodlightConfigurationId'
+--
+-- * 'faKind'
+--
+-- * 'faImageTagEnabled'
+--
+-- * 'faAdvertiserId'
+--
+-- * 'faAdvertiserIdDimensionValue'
+--
+-- * 'faSSLCompliant'
+--
+-- * 'faIdDimensionValue'
+--
+-- * 'faTagFormat'
+--
+-- * 'faCacheBustingType'
+--
+-- * 'faAccountId'
+--
+-- * 'faName'
+--
+-- * 'faPublisherTags'
+--
+-- * 'faFloodlightActivityGroupId'
+--
+-- * 'faHidden'
+--
+-- * 'faFloodlightActivityGroupType'
+--
+-- * 'faDefaultTags'
+--
+-- * 'faFloodlightActivityGroupName'
+--
+-- * 'faId'
+--
+-- * 'faSSLRequired'
+--
+-- * 'faUserDefinedVariableTypes'
+--
+-- * 'faSubAccountId'
+--
+-- * 'faNotes'
+--
+-- * 'faFloodlightConfigurationIdDimensionValue'
+floodlightActivity
+    :: FloodlightActivity
+floodlightActivity =
+    FloodlightActivity'
+    { _faCountingMethod = Nothing
+    , _faTagString = Nothing
+    , _faSecure = Nothing
+    , _faExpectedURL = Nothing
+    , _faFloodlightActivityGroupTagString = Nothing
+    , _faFloodlightConfigurationId = Nothing
+    , _faKind = "dfareporting#floodlightActivity"
+    , _faImageTagEnabled = Nothing
+    , _faAdvertiserId = Nothing
+    , _faAdvertiserIdDimensionValue = Nothing
+    , _faSSLCompliant = Nothing
+    , _faIdDimensionValue = Nothing
+    , _faTagFormat = Nothing
+    , _faCacheBustingType = Nothing
+    , _faAccountId = Nothing
+    , _faName = Nothing
+    , _faPublisherTags = Nothing
+    , _faFloodlightActivityGroupId = Nothing
+    , _faHidden = Nothing
+    , _faFloodlightActivityGroupType = Nothing
+    , _faDefaultTags = Nothing
+    , _faFloodlightActivityGroupName = Nothing
+    , _faId = Nothing
+    , _faSSLRequired = Nothing
+    , _faUserDefinedVariableTypes = Nothing
+    , _faSubAccountId = Nothing
+    , _faNotes = Nothing
+    , _faFloodlightConfigurationIdDimensionValue = Nothing
+    }
+
+-- | Counting method for conversions for this floodlight activity. This is a
+-- required field.
+faCountingMethod :: Lens' FloodlightActivity (Maybe FloodlightActivityCountingMethod)
+faCountingMethod
+  = lens _faCountingMethod
+      (\ s a -> s{_faCountingMethod = a})
+
+-- | Value of the cat= paramter in the floodlight tag, which the ad servers
+-- use to identify the activity. This is optional: if empty, a new tag
+-- string will be generated for you. This string must be 1 to 8 characters
+-- long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag
+-- string must also be unique among activities of the same activity group.
+-- This field is read-only after insertion.
+faTagString :: Lens' FloodlightActivity (Maybe Text)
+faTagString
+  = lens _faTagString (\ s a -> s{_faTagString = a})
+
+-- | Whether this tag should use SSL.
+faSecure :: Lens' FloodlightActivity (Maybe Bool)
+faSecure = lens _faSecure (\ s a -> s{_faSecure = a})
+
+-- | URL where this tag will be deployed. If specified, must be less than 256
+-- characters long.
+faExpectedURL :: Lens' FloodlightActivity (Maybe Text)
+faExpectedURL
+  = lens _faExpectedURL
+      (\ s a -> s{_faExpectedURL = a})
+
+-- | Tag string of the associated floodlight activity group. This is a
+-- read-only field.
+faFloodlightActivityGroupTagString :: Lens' FloodlightActivity (Maybe Text)
+faFloodlightActivityGroupTagString
+  = lens _faFloodlightActivityGroupTagString
+      (\ s a -> s{_faFloodlightActivityGroupTagString = a})
+
+-- | Floodlight configuration ID of this floodlight activity. If this field
+-- is left blank, the value will be copied over either from the activity
+-- group\'s floodlight configuration or from the existing activity\'s
+-- floodlight configuration.
+faFloodlightConfigurationId :: Lens' FloodlightActivity (Maybe Int64)
+faFloodlightConfigurationId
+  = lens _faFloodlightConfigurationId
+      (\ s a -> s{_faFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightActivity\".
+faKind :: Lens' FloodlightActivity Text
+faKind = lens _faKind (\ s a -> s{_faKind = a})
+
+-- | Whether the image tag is enabled for this activity.
+faImageTagEnabled :: Lens' FloodlightActivity (Maybe Bool)
+faImageTagEnabled
+  = lens _faImageTagEnabled
+      (\ s a -> s{_faImageTagEnabled = a})
+
+-- | Advertiser ID of this floodlight activity. If this field is left blank,
+-- the value will be copied over either from the activity group\'s
+-- advertiser or the existing activity\'s advertiser.
+faAdvertiserId :: Lens' FloodlightActivity (Maybe Int64)
+faAdvertiserId
+  = lens _faAdvertiserId
+      (\ s a -> s{_faAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+faAdvertiserIdDimensionValue :: Lens' FloodlightActivity (Maybe DimensionValue)
+faAdvertiserIdDimensionValue
+  = lens _faAdvertiserIdDimensionValue
+      (\ s a -> s{_faAdvertiserIdDimensionValue = a})
+
+-- | Whether the floodlight activity is SSL-compliant. This is a read-only
+-- field, its value detected by the system from the floodlight tags.
+faSSLCompliant :: Lens' FloodlightActivity (Maybe Bool)
+faSSLCompliant
+  = lens _faSSLCompliant
+      (\ s a -> s{_faSSLCompliant = a})
+
+-- | Dimension value for the ID of this floodlight activity. This is a
+-- read-only, auto-generated field.
+faIdDimensionValue :: Lens' FloodlightActivity (Maybe DimensionValue)
+faIdDimensionValue
+  = lens _faIdDimensionValue
+      (\ s a -> s{_faIdDimensionValue = a})
+
+-- | Tag format type for the floodlight activity. If left blank, the tag
+-- format will default to HTML.
+faTagFormat :: Lens' FloodlightActivity (Maybe FloodlightActivityTagFormat)
+faTagFormat
+  = lens _faTagFormat (\ s a -> s{_faTagFormat = a})
+
+-- | Code type used for cache busting in the generated tag.
+faCacheBustingType :: Lens' FloodlightActivity (Maybe FloodlightActivityCacheBustingType)
+faCacheBustingType
+  = lens _faCacheBustingType
+      (\ s a -> s{_faCacheBustingType = a})
+
+-- | Account ID of this floodlight activity. This is a read-only field that
+-- can be left blank.
+faAccountId :: Lens' FloodlightActivity (Maybe Int64)
+faAccountId
+  = lens _faAccountId (\ s a -> s{_faAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this floodlight activity. This is a required field. Must be less
+-- than 129 characters long and cannot contain quotes.
+faName :: Lens' FloodlightActivity (Maybe Text)
+faName = lens _faName (\ s a -> s{_faName = a})
+
+-- | Publisher dynamic floodlight tags.
+faPublisherTags :: Lens' FloodlightActivity [FloodlightActivityPublisherDynamicTag]
+faPublisherTags
+  = lens _faPublisherTags
+      (\ s a -> s{_faPublisherTags = a})
+      . _Default
+      . _Coerce
+
+-- | Floodlight activity group ID of this floodlight activity. This is a
+-- required field.
+faFloodlightActivityGroupId :: Lens' FloodlightActivity (Maybe Int64)
+faFloodlightActivityGroupId
+  = lens _faFloodlightActivityGroupId
+      (\ s a -> s{_faFloodlightActivityGroupId = a})
+      . mapping _Coerce
+
+-- | Whether this activity is archived.
+faHidden :: Lens' FloodlightActivity (Maybe Bool)
+faHidden = lens _faHidden (\ s a -> s{_faHidden = a})
+
+-- | Type of the associated floodlight activity group. This is a read-only
+-- field.
+faFloodlightActivityGroupType :: Lens' FloodlightActivity (Maybe FloodlightActivityFloodlightActivityGroupType)
+faFloodlightActivityGroupType
+  = lens _faFloodlightActivityGroupType
+      (\ s a -> s{_faFloodlightActivityGroupType = a})
+
+-- | Dynamic floodlight tags.
+faDefaultTags :: Lens' FloodlightActivity [FloodlightActivityDynamicTag]
+faDefaultTags
+  = lens _faDefaultTags
+      (\ s a -> s{_faDefaultTags = a})
+      . _Default
+      . _Coerce
+
+-- | Name of the associated floodlight activity group. This is a read-only
+-- field.
+faFloodlightActivityGroupName :: Lens' FloodlightActivity (Maybe Text)
+faFloodlightActivityGroupName
+  = lens _faFloodlightActivityGroupName
+      (\ s a -> s{_faFloodlightActivityGroupName = a})
+
+-- | ID of this floodlight activity. This is a read-only, auto-generated
+-- field.
+faId :: Lens' FloodlightActivity (Maybe Int64)
+faId
+  = lens _faId (\ s a -> s{_faId = a}) .
+      mapping _Coerce
+
+-- | Whether this floodlight activity must be SSL-compliant.
+faSSLRequired :: Lens' FloodlightActivity (Maybe Bool)
+faSSLRequired
+  = lens _faSSLRequired
+      (\ s a -> s{_faSSLRequired = a})
+
+-- | List of the user-defined variables used by this conversion tag. These
+-- map to the \"u[1-20]=\" in the tags. Each of these can have a user
+-- defined type. Acceptable values are: - \"U1\" - \"U2\" - \"U3\" - \"U4\"
+-- - \"U5\" - \"U6\" - \"U7\" - \"U8\" - \"U9\" - \"U10\" - \"U11\" -
+-- \"U12\" - \"U13\" - \"U14\" - \"U15\" - \"U16\" - \"U17\" - \"U18\" -
+-- \"U19\" - \"U20\"
+faUserDefinedVariableTypes :: Lens' FloodlightActivity [FloodlightActivityUserDefinedVariableTypesItem]
+faUserDefinedVariableTypes
+  = lens _faUserDefinedVariableTypes
+      (\ s a -> s{_faUserDefinedVariableTypes = a})
+      . _Default
+      . _Coerce
+
+-- | Subaccount ID of this floodlight activity. This is a read-only field
+-- that can be left blank.
+faSubAccountId :: Lens' FloodlightActivity (Maybe Int64)
+faSubAccountId
+  = lens _faSubAccountId
+      (\ s a -> s{_faSubAccountId = a})
+      . mapping _Coerce
+
+-- | General notes or implementation instructions for the tag.
+faNotes :: Lens' FloodlightActivity (Maybe Text)
+faNotes = lens _faNotes (\ s a -> s{_faNotes = a})
+
+-- | Dimension value for the ID of the floodlight configuration. This is a
+-- read-only, auto-generated field.
+faFloodlightConfigurationIdDimensionValue :: Lens' FloodlightActivity (Maybe DimensionValue)
+faFloodlightConfigurationIdDimensionValue
+  = lens _faFloodlightConfigurationIdDimensionValue
+      (\ s a ->
+         s{_faFloodlightConfigurationIdDimensionValue = a})
+
+instance FromJSON FloodlightActivity where
+        parseJSON
+          = withObject "FloodlightActivity"
+              (\ o ->
+                 FloodlightActivity' <$>
+                   (o .:? "countingMethod") <*> (o .:? "tagString") <*>
+                     (o .:? "secure")
+                     <*> (o .:? "expectedUrl")
+                     <*> (o .:? "floodlightActivityGroupTagString")
+                     <*> (o .:? "floodlightConfigurationId")
+                     <*>
+                     (o .:? "kind" .!= "dfareporting#floodlightActivity")
+                     <*> (o .:? "imageTagEnabled")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "tagFormat")
+                     <*> (o .:? "cacheBustingType")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "publisherTags" .!= mempty)
+                     <*> (o .:? "floodlightActivityGroupId")
+                     <*> (o .:? "hidden")
+                     <*> (o .:? "floodlightActivityGroupType")
+                     <*> (o .:? "defaultTags" .!= mempty)
+                     <*> (o .:? "floodlightActivityGroupName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "sslRequired")
+                     <*> (o .:? "userDefinedVariableTypes" .!= mempty)
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "notes")
+                     <*>
+                     (o .:? "floodlightConfigurationIdDimensionValue"))
+
+instance ToJSON FloodlightActivity where
+        toJSON FloodlightActivity'{..}
+          = object
+              (catMaybes
+                 [("countingMethod" .=) <$> _faCountingMethod,
+                  ("tagString" .=) <$> _faTagString,
+                  ("secure" .=) <$> _faSecure,
+                  ("expectedUrl" .=) <$> _faExpectedURL,
+                  ("floodlightActivityGroupTagString" .=) <$>
+                    _faFloodlightActivityGroupTagString,
+                  ("floodlightConfigurationId" .=) <$>
+                    _faFloodlightConfigurationId,
+                  Just ("kind" .= _faKind),
+                  ("imageTagEnabled" .=) <$> _faImageTagEnabled,
+                  ("advertiserId" .=) <$> _faAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _faAdvertiserIdDimensionValue,
+                  ("sslCompliant" .=) <$> _faSSLCompliant,
+                  ("idDimensionValue" .=) <$> _faIdDimensionValue,
+                  ("tagFormat" .=) <$> _faTagFormat,
+                  ("cacheBustingType" .=) <$> _faCacheBustingType,
+                  ("accountId" .=) <$> _faAccountId,
+                  ("name" .=) <$> _faName,
+                  ("publisherTags" .=) <$> _faPublisherTags,
+                  ("floodlightActivityGroupId" .=) <$>
+                    _faFloodlightActivityGroupId,
+                  ("hidden" .=) <$> _faHidden,
+                  ("floodlightActivityGroupType" .=) <$>
+                    _faFloodlightActivityGroupType,
+                  ("defaultTags" .=) <$> _faDefaultTags,
+                  ("floodlightActivityGroupName" .=) <$>
+                    _faFloodlightActivityGroupName,
+                  ("id" .=) <$> _faId,
+                  ("sslRequired" .=) <$> _faSSLRequired,
+                  ("userDefinedVariableTypes" .=) <$>
+                    _faUserDefinedVariableTypes,
+                  ("subaccountId" .=) <$> _faSubAccountId,
+                  ("notes" .=) <$> _faNotes,
+                  ("floodlightConfigurationIdDimensionValue" .=) <$>
+                    _faFloodlightConfigurationIdDimensionValue])
+
+-- | A custom floodlight variable.
+--
+-- /See:/ 'customFloodlightVariable' smart constructor.
+data CustomFloodlightVariable = CustomFloodlightVariable'
+    { _cusKind  :: !Text
+    , _cusValue :: !(Maybe Text)
+    , _cusType  :: !(Maybe CustomFloodlightVariableType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CustomFloodlightVariable' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cusKind'
+--
+-- * 'cusValue'
+--
+-- * 'cusType'
+customFloodlightVariable
+    :: CustomFloodlightVariable
+customFloodlightVariable =
+    CustomFloodlightVariable'
+    { _cusKind = "dfareporting#customFloodlightVariable"
+    , _cusValue = Nothing
+    , _cusType = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#customFloodlightVariable\".
+cusKind :: Lens' CustomFloodlightVariable Text
+cusKind = lens _cusKind (\ s a -> s{_cusKind = a})
+
+-- | The value of the custom floodlight variable. The length of string must
+-- not exceed 50 characters.
+cusValue :: Lens' CustomFloodlightVariable (Maybe Text)
+cusValue = lens _cusValue (\ s a -> s{_cusValue = a})
+
+-- | The type of custom floodlight variable to supply a value for. These map
+-- to the \"u[1-20]=\" in the tags.
+cusType :: Lens' CustomFloodlightVariable (Maybe CustomFloodlightVariableType)
+cusType = lens _cusType (\ s a -> s{_cusType = a})
+
+instance FromJSON CustomFloodlightVariable where
+        parseJSON
+          = withObject "CustomFloodlightVariable"
+              (\ o ->
+                 CustomFloodlightVariable' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#customFloodlightVariable")
+                     <*> (o .:? "value")
+                     <*> (o .:? "type"))
+
+instance ToJSON CustomFloodlightVariable where
+        toJSON CustomFloodlightVariable'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cusKind),
+                  ("value" .=) <$> _cusValue,
+                  ("type" .=) <$> _cusType])
+
+-- | Platform Type List Response
+--
+-- /See:/ 'platformTypesListResponse' smart constructor.
+data PlatformTypesListResponse = PlatformTypesListResponse'
+    { _ptlrKind          :: !Text
+    , _ptlrPlatformTypes :: !(Maybe [PlatformType])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlatformTypesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ptlrKind'
+--
+-- * 'ptlrPlatformTypes'
+platformTypesListResponse
+    :: PlatformTypesListResponse
+platformTypesListResponse =
+    PlatformTypesListResponse'
+    { _ptlrKind = "dfareporting#platformTypesListResponse"
+    , _ptlrPlatformTypes = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#platformTypesListResponse\".
+ptlrKind :: Lens' PlatformTypesListResponse Text
+ptlrKind = lens _ptlrKind (\ s a -> s{_ptlrKind = a})
+
+-- | Platform type collection.
+ptlrPlatformTypes :: Lens' PlatformTypesListResponse [PlatformType]
+ptlrPlatformTypes
+  = lens _ptlrPlatformTypes
+      (\ s a -> s{_ptlrPlatformTypes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON PlatformTypesListResponse where
+        parseJSON
+          = withObject "PlatformTypesListResponse"
+              (\ o ->
+                 PlatformTypesListResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#platformTypesListResponse")
+                     <*> (o .:? "platformTypes" .!= mempty))
+
+instance ToJSON PlatformTypesListResponse where
+        toJSON PlatformTypesListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ptlrKind),
+                  ("platformTypes" .=) <$> _ptlrPlatformTypes])
+
+-- | Modification timestamp.
+--
+-- /See:/ 'lastModifiedInfo' smart constructor.
+newtype LastModifiedInfo = LastModifiedInfo'
+    { _lmiTime :: Maybe (Textual Int64)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LastModifiedInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lmiTime'
+lastModifiedInfo
+    :: LastModifiedInfo
+lastModifiedInfo =
+    LastModifiedInfo'
+    { _lmiTime = Nothing
+    }
+
+-- | Timestamp of the last change in milliseconds since epoch.
+lmiTime :: Lens' LastModifiedInfo (Maybe Int64)
+lmiTime
+  = lens _lmiTime (\ s a -> s{_lmiTime = a}) .
+      mapping _Coerce
+
+instance FromJSON LastModifiedInfo where
+        parseJSON
+          = withObject "LastModifiedInfo"
+              (\ o -> LastModifiedInfo' <$> (o .:? "time"))
+
+instance ToJSON LastModifiedInfo where
+        toJSON LastModifiedInfo'{..}
+          = object (catMaybes [("time" .=) <$> _lmiTime])
+
+-- | Target Window.
+--
+-- /See:/ 'targetWindow' smart constructor.
+data TargetWindow = TargetWindow'
+    { _twCustomHTML         :: !(Maybe Text)
+    , _twTargetWindowOption :: !(Maybe TargetWindowTargetWindowOption)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TargetWindow' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'twCustomHTML'
+--
+-- * 'twTargetWindowOption'
+targetWindow
+    :: TargetWindow
+targetWindow =
+    TargetWindow'
+    { _twCustomHTML = Nothing
+    , _twTargetWindowOption = Nothing
+    }
+
+-- | User-entered value.
+twCustomHTML :: Lens' TargetWindow (Maybe Text)
+twCustomHTML
+  = lens _twCustomHTML (\ s a -> s{_twCustomHTML = a})
+
+-- | Type of browser window for which the backup image of the flash creative
+-- can be displayed.
+twTargetWindowOption :: Lens' TargetWindow (Maybe TargetWindowTargetWindowOption)
+twTargetWindowOption
+  = lens _twTargetWindowOption
+      (\ s a -> s{_twTargetWindowOption = a})
+
+instance FromJSON TargetWindow where
+        parseJSON
+          = withObject "TargetWindow"
+              (\ o ->
+                 TargetWindow' <$>
+                   (o .:? "customHtml") <*>
+                     (o .:? "targetWindowOption"))
+
+instance ToJSON TargetWindow where
+        toJSON TargetWindow'{..}
+          = object
+              (catMaybes
+                 [("customHtml" .=) <$> _twCustomHTML,
+                  ("targetWindowOption" .=) <$> _twTargetWindowOption])
+
+-- | AccountPermissionGroups contains a mapping of permission group IDs to
+-- names. A permission group is a grouping of account permissions.
+--
+-- /See:/ 'accountPermissionGroup' smart constructor.
+data AccountPermissionGroup = AccountPermissionGroup'
+    { _apgpKind :: !Text
+    , _apgpName :: !(Maybe Text)
+    , _apgpId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountPermissionGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apgpKind'
+--
+-- * 'apgpName'
+--
+-- * 'apgpId'
+accountPermissionGroup
+    :: AccountPermissionGroup
+accountPermissionGroup =
+    AccountPermissionGroup'
+    { _apgpKind = "dfareporting#accountPermissionGroup"
+    , _apgpName = Nothing
+    , _apgpId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#accountPermissionGroup\".
+apgpKind :: Lens' AccountPermissionGroup Text
+apgpKind = lens _apgpKind (\ s a -> s{_apgpKind = a})
+
+-- | Name of this account permission group.
+apgpName :: Lens' AccountPermissionGroup (Maybe Text)
+apgpName = lens _apgpName (\ s a -> s{_apgpName = a})
+
+-- | ID of this account permission group.
+apgpId :: Lens' AccountPermissionGroup (Maybe Int64)
+apgpId
+  = lens _apgpId (\ s a -> s{_apgpId = a}) .
+      mapping _Coerce
+
+instance FromJSON AccountPermissionGroup where
+        parseJSON
+          = withObject "AccountPermissionGroup"
+              (\ o ->
+                 AccountPermissionGroup' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#accountPermissionGroup")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON AccountPermissionGroup where
+        toJSON AccountPermissionGroup'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _apgpKind),
+                  ("name" .=) <$> _apgpName, ("id" .=) <$> _apgpId])
+
+-- | Contains properties of a DCM advertiser.
+--
+-- /See:/ 'advertiser' smart constructor.
+data Advertiser = Advertiser'
+    { _advdOriginalFloodlightConfigurationId       :: !(Maybe (Textual Int64))
+    , _advdStatus                                  :: !(Maybe AdvertiserStatus)
+    , _advdFloodlightConfigurationId               :: !(Maybe (Textual Int64))
+    , _advdKind                                    :: !Text
+    , _advdSuspended                               :: !(Maybe Bool)
+    , _advdIdDimensionValue                        :: !(Maybe DimensionValue)
+    , _advdAccountId                               :: !(Maybe (Textual Int64))
+    , _advdDefaultEmail                            :: !(Maybe Text)
+    , _advdName                                    :: !(Maybe Text)
+    , _advdAdvertiserGroupId                       :: !(Maybe (Textual Int64))
+    , _advdDefaultClickThroughEventTagId           :: !(Maybe (Textual Int64))
+    , _advdId                                      :: !(Maybe (Textual Int64))
+    , _advdSubAccountId                            :: !(Maybe (Textual Int64))
+    , _advdFloodlightConfigurationIdDimensionValue :: !(Maybe DimensionValue)
+    , _advdClickThroughURLSuffix                   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Advertiser' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'advdOriginalFloodlightConfigurationId'
+--
+-- * 'advdStatus'
+--
+-- * 'advdFloodlightConfigurationId'
+--
+-- * 'advdKind'
+--
+-- * 'advdSuspended'
+--
+-- * 'advdIdDimensionValue'
+--
+-- * 'advdAccountId'
+--
+-- * 'advdDefaultEmail'
+--
+-- * 'advdName'
+--
+-- * 'advdAdvertiserGroupId'
+--
+-- * 'advdDefaultClickThroughEventTagId'
+--
+-- * 'advdId'
+--
+-- * 'advdSubAccountId'
+--
+-- * 'advdFloodlightConfigurationIdDimensionValue'
+--
+-- * 'advdClickThroughURLSuffix'
+advertiser
+    :: Advertiser
+advertiser =
+    Advertiser'
+    { _advdOriginalFloodlightConfigurationId = Nothing
+    , _advdStatus = Nothing
+    , _advdFloodlightConfigurationId = Nothing
+    , _advdKind = "dfareporting#advertiser"
+    , _advdSuspended = Nothing
+    , _advdIdDimensionValue = Nothing
+    , _advdAccountId = Nothing
+    , _advdDefaultEmail = Nothing
+    , _advdName = Nothing
+    , _advdAdvertiserGroupId = Nothing
+    , _advdDefaultClickThroughEventTagId = Nothing
+    , _advdId = Nothing
+    , _advdSubAccountId = Nothing
+    , _advdFloodlightConfigurationIdDimensionValue = Nothing
+    , _advdClickThroughURLSuffix = Nothing
+    }
+
+-- | Original floodlight configuration before any sharing occurred. Set the
+-- floodlightConfigurationId of this advertiser to
+-- originalFloodlightConfigurationId to unshare the advertiser\'s current
+-- floodlight configuration. You cannot unshare an advertiser\'s floodlight
+-- configuration if the shared configuration has activities associated with
+-- any campaign or placement.
+advdOriginalFloodlightConfigurationId :: Lens' Advertiser (Maybe Int64)
+advdOriginalFloodlightConfigurationId
+  = lens _advdOriginalFloodlightConfigurationId
+      (\ s a ->
+         s{_advdOriginalFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Status of this advertiser.
+advdStatus :: Lens' Advertiser (Maybe AdvertiserStatus)
+advdStatus
+  = lens _advdStatus (\ s a -> s{_advdStatus = a})
+
+-- | Floodlight configuration ID of this advertiser. The floodlight
+-- configuration ID will be created automatically, so on insert this field
+-- should be left blank. This field can be set to another advertiser\'s
+-- floodlight configuration ID in order to share that advertiser\'s
+-- floodlight configuration with this advertiser, so long as: - This
+-- advertiser\'s original floodlight configuration is not already
+-- associated with floodlight activities or floodlight activity groups. -
+-- This advertiser\'s original floodlight configuration is not already
+-- shared with another advertiser.
+advdFloodlightConfigurationId :: Lens' Advertiser (Maybe Int64)
+advdFloodlightConfigurationId
+  = lens _advdFloodlightConfigurationId
+      (\ s a -> s{_advdFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#advertiser\".
+advdKind :: Lens' Advertiser Text
+advdKind = lens _advdKind (\ s a -> s{_advdKind = a})
+
+-- | Suspension status of this advertiser.
+advdSuspended :: Lens' Advertiser (Maybe Bool)
+advdSuspended
+  = lens _advdSuspended
+      (\ s a -> s{_advdSuspended = a})
+
+-- | Dimension value for the ID of this advertiser. This is a read-only,
+-- auto-generated field.
+advdIdDimensionValue :: Lens' Advertiser (Maybe DimensionValue)
+advdIdDimensionValue
+  = lens _advdIdDimensionValue
+      (\ s a -> s{_advdIdDimensionValue = a})
+
+-- | Account ID of this advertiser.This is a read-only field that can be left
+-- blank.
+advdAccountId :: Lens' Advertiser (Maybe Int64)
+advdAccountId
+  = lens _advdAccountId
+      (\ s a -> s{_advdAccountId = a})
+      . mapping _Coerce
+
+-- | Default email address used in sender field for tag emails.
+advdDefaultEmail :: Lens' Advertiser (Maybe Text)
+advdDefaultEmail
+  = lens _advdDefaultEmail
+      (\ s a -> s{_advdDefaultEmail = a})
+
+-- | Name of this advertiser. This is a required field and must be less than
+-- 256 characters long and unique among advertisers of the same account.
+advdName :: Lens' Advertiser (Maybe Text)
+advdName = lens _advdName (\ s a -> s{_advdName = a})
+
+-- | ID of the advertiser group this advertiser belongs to. You can group
+-- advertisers for reporting purposes, allowing you to see aggregated
+-- information for all advertisers in each group.
+advdAdvertiserGroupId :: Lens' Advertiser (Maybe Int64)
+advdAdvertiserGroupId
+  = lens _advdAdvertiserGroupId
+      (\ s a -> s{_advdAdvertiserGroupId = a})
+      . mapping _Coerce
+
+-- | ID of the click-through event tag to apply by default to the landing
+-- pages of this advertiser\'s campaigns.
+advdDefaultClickThroughEventTagId :: Lens' Advertiser (Maybe Int64)
+advdDefaultClickThroughEventTagId
+  = lens _advdDefaultClickThroughEventTagId
+      (\ s a -> s{_advdDefaultClickThroughEventTagId = a})
+      . mapping _Coerce
+
+-- | ID of this advertiser. This is a read-only, auto-generated field.
+advdId :: Lens' Advertiser (Maybe Int64)
+advdId
+  = lens _advdId (\ s a -> s{_advdId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this advertiser.This is a read-only field that can be
+-- left blank.
+advdSubAccountId :: Lens' Advertiser (Maybe Int64)
+advdSubAccountId
+  = lens _advdSubAccountId
+      (\ s a -> s{_advdSubAccountId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the floodlight configuration. This is a
+-- read-only, auto-generated field.
+advdFloodlightConfigurationIdDimensionValue :: Lens' Advertiser (Maybe DimensionValue)
+advdFloodlightConfigurationIdDimensionValue
+  = lens _advdFloodlightConfigurationIdDimensionValue
+      (\ s a ->
+         s{_advdFloodlightConfigurationIdDimensionValue = a})
+
+-- | Suffix added to click-through URL of ad creative associations under this
+-- advertiser. Must be less than 129 characters long.
+advdClickThroughURLSuffix :: Lens' Advertiser (Maybe Text)
+advdClickThroughURLSuffix
+  = lens _advdClickThroughURLSuffix
+      (\ s a -> s{_advdClickThroughURLSuffix = a})
+
+instance FromJSON Advertiser where
+        parseJSON
+          = withObject "Advertiser"
+              (\ o ->
+                 Advertiser' <$>
+                   (o .:? "originalFloodlightConfigurationId") <*>
+                     (o .:? "status")
+                     <*> (o .:? "floodlightConfigurationId")
+                     <*> (o .:? "kind" .!= "dfareporting#advertiser")
+                     <*> (o .:? "suspended")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "defaultEmail")
+                     <*> (o .:? "name")
+                     <*> (o .:? "advertiserGroupId")
+                     <*> (o .:? "defaultClickThroughEventTagId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "floodlightConfigurationIdDimensionValue")
+                     <*> (o .:? "clickThroughUrlSuffix"))
+
+instance ToJSON Advertiser where
+        toJSON Advertiser'{..}
+          = object
+              (catMaybes
+                 [("originalFloodlightConfigurationId" .=) <$>
+                    _advdOriginalFloodlightConfigurationId,
+                  ("status" .=) <$> _advdStatus,
+                  ("floodlightConfigurationId" .=) <$>
+                    _advdFloodlightConfigurationId,
+                  Just ("kind" .= _advdKind),
+                  ("suspended" .=) <$> _advdSuspended,
+                  ("idDimensionValue" .=) <$> _advdIdDimensionValue,
+                  ("accountId" .=) <$> _advdAccountId,
+                  ("defaultEmail" .=) <$> _advdDefaultEmail,
+                  ("name" .=) <$> _advdName,
+                  ("advertiserGroupId" .=) <$> _advdAdvertiserGroupId,
+                  ("defaultClickThroughEventTagId" .=) <$>
+                    _advdDefaultClickThroughEventTagId,
+                  ("id" .=) <$> _advdId,
+                  ("subaccountId" .=) <$> _advdSubAccountId,
+                  ("floodlightConfigurationIdDimensionValue" .=) <$>
+                    _advdFloodlightConfigurationIdDimensionValue,
+                  ("clickThroughUrlSuffix" .=) <$>
+                    _advdClickThroughURLSuffix])
+
+-- | Contains properties of auser role, which is used to manage user access.
+--
+-- /See:/ 'userRole' smart constructor.
+data UserRole = UserRole'
+    { _urParentUserRoleId :: !(Maybe (Textual Int64))
+    , _urKind             :: !Text
+    , _urDefaultUserRole  :: !(Maybe Bool)
+    , _urAccountId        :: !(Maybe (Textual Int64))
+    , _urName             :: !(Maybe Text)
+    , _urId               :: !(Maybe (Textual Int64))
+    , _urPermissions      :: !(Maybe [UserRolePermission])
+    , _urSubAccountId     :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRole' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urParentUserRoleId'
+--
+-- * 'urKind'
+--
+-- * 'urDefaultUserRole'
+--
+-- * 'urAccountId'
+--
+-- * 'urName'
+--
+-- * 'urId'
+--
+-- * 'urPermissions'
+--
+-- * 'urSubAccountId'
+userRole
+    :: UserRole
+userRole =
+    UserRole'
+    { _urParentUserRoleId = Nothing
+    , _urKind = "dfareporting#userRole"
+    , _urDefaultUserRole = Nothing
+    , _urAccountId = Nothing
+    , _urName = Nothing
+    , _urId = Nothing
+    , _urPermissions = Nothing
+    , _urSubAccountId = Nothing
+    }
+
+-- | ID of the user role that this user role is based on or copied from. This
+-- is a required field.
+urParentUserRoleId :: Lens' UserRole (Maybe Int64)
+urParentUserRoleId
+  = lens _urParentUserRoleId
+      (\ s a -> s{_urParentUserRoleId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRole\".
+urKind :: Lens' UserRole Text
+urKind = lens _urKind (\ s a -> s{_urKind = a})
+
+-- | Whether this is a default user role. Default user roles are created by
+-- the system for the account\/subaccount and cannot be modified or
+-- deleted. Each default user role comes with a basic set of preassigned
+-- permissions.
+urDefaultUserRole :: Lens' UserRole (Maybe Bool)
+urDefaultUserRole
+  = lens _urDefaultUserRole
+      (\ s a -> s{_urDefaultUserRole = a})
+
+-- | Account ID of this user role. This is a read-only field that can be left
+-- blank.
+urAccountId :: Lens' UserRole (Maybe Int64)
+urAccountId
+  = lens _urAccountId (\ s a -> s{_urAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this user role. This is a required field. Must be less than 256
+-- characters long. If this user role is under a subaccount, the name must
+-- be unique among sites of the same subaccount. Otherwise, this user role
+-- is a top-level user role, and the name must be unique among top-level
+-- user roles of the same account.
+urName :: Lens' UserRole (Maybe Text)
+urName = lens _urName (\ s a -> s{_urName = a})
+
+-- | ID of this user role. This is a read-only, auto-generated field.
+urId :: Lens' UserRole (Maybe Int64)
+urId
+  = lens _urId (\ s a -> s{_urId = a}) .
+      mapping _Coerce
+
+-- | List of permissions associated with this user role.
+urPermissions :: Lens' UserRole [UserRolePermission]
+urPermissions
+  = lens _urPermissions
+      (\ s a -> s{_urPermissions = a})
+      . _Default
+      . _Coerce
+
+-- | Subaccount ID of this user role. This is a read-only field that can be
+-- left blank.
+urSubAccountId :: Lens' UserRole (Maybe Int64)
+urSubAccountId
+  = lens _urSubAccountId
+      (\ s a -> s{_urSubAccountId = a})
+      . mapping _Coerce
+
+instance FromJSON UserRole where
+        parseJSON
+          = withObject "UserRole"
+              (\ o ->
+                 UserRole' <$>
+                   (o .:? "parentUserRoleId") <*>
+                     (o .:? "kind" .!= "dfareporting#userRole")
+                     <*> (o .:? "defaultUserRole")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "permissions" .!= mempty)
+                     <*> (o .:? "subaccountId"))
+
+instance ToJSON UserRole where
+        toJSON UserRole'{..}
+          = object
+              (catMaybes
+                 [("parentUserRoleId" .=) <$> _urParentUserRoleId,
+                  Just ("kind" .= _urKind),
+                  ("defaultUserRole" .=) <$> _urDefaultUserRole,
+                  ("accountId" .=) <$> _urAccountId,
+                  ("name" .=) <$> _urName, ("id" .=) <$> _urId,
+                  ("permissions" .=) <$> _urPermissions,
+                  ("subaccountId" .=) <$> _urSubAccountId])
+
+-- | Directory Site List Response
+--
+-- /See:/ 'directorySitesListResponse' smart constructor.
+data DirectorySitesListResponse = DirectorySitesListResponse'
+    { _dslrNextPageToken  :: !(Maybe Text)
+    , _dslrKind           :: !Text
+    , _dslrDirectorySites :: !(Maybe [DirectorySite])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySitesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dslrNextPageToken'
+--
+-- * 'dslrKind'
+--
+-- * 'dslrDirectorySites'
+directorySitesListResponse
+    :: DirectorySitesListResponse
+directorySitesListResponse =
+    DirectorySitesListResponse'
+    { _dslrNextPageToken = Nothing
+    , _dslrKind = "dfareporting#directorySitesListResponse"
+    , _dslrDirectorySites = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+dslrNextPageToken :: Lens' DirectorySitesListResponse (Maybe Text)
+dslrNextPageToken
+  = lens _dslrNextPageToken
+      (\ s a -> s{_dslrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#directorySitesListResponse\".
+dslrKind :: Lens' DirectorySitesListResponse Text
+dslrKind = lens _dslrKind (\ s a -> s{_dslrKind = a})
+
+-- | Directory site collection.
+dslrDirectorySites :: Lens' DirectorySitesListResponse [DirectorySite]
+dslrDirectorySites
+  = lens _dslrDirectorySites
+      (\ s a -> s{_dslrDirectorySites = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON DirectorySitesListResponse where
+        parseJSON
+          = withObject "DirectorySitesListResponse"
+              (\ o ->
+                 DirectorySitesListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#directorySitesListResponse")
+                     <*> (o .:? "directorySites" .!= mempty))
+
+instance ToJSON DirectorySitesListResponse where
+        toJSON DirectorySitesListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _dslrNextPageToken,
+                  Just ("kind" .= _dslrKind),
+                  ("directorySites" .=) <$> _dslrDirectorySites])
+
+-- | The error code and description for a conversion that failed to insert.
+--
+-- /See:/ 'conversionError' smart constructor.
+data ConversionError = ConversionError'
+    { _ceKind    :: !Text
+    , _ceCode    :: !(Maybe ConversionErrorCode)
+    , _ceMessage :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConversionError' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ceKind'
+--
+-- * 'ceCode'
+--
+-- * 'ceMessage'
+conversionError
+    :: ConversionError
+conversionError =
+    ConversionError'
+    { _ceKind = "dfareporting#conversionError"
+    , _ceCode = Nothing
+    , _ceMessage = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#conversionError\".
+ceKind :: Lens' ConversionError Text
+ceKind = lens _ceKind (\ s a -> s{_ceKind = a})
+
+-- | The error code.
+ceCode :: Lens' ConversionError (Maybe ConversionErrorCode)
+ceCode = lens _ceCode (\ s a -> s{_ceCode = a})
+
+-- | A description of the error.
+ceMessage :: Lens' ConversionError (Maybe Text)
+ceMessage
+  = lens _ceMessage (\ s a -> s{_ceMessage = a})
+
+instance FromJSON ConversionError where
+        parseJSON
+          = withObject "ConversionError"
+              (\ o ->
+                 ConversionError' <$>
+                   (o .:? "kind" .!= "dfareporting#conversionError") <*>
+                     (o .:? "code")
+                     <*> (o .:? "message"))
+
+instance ToJSON ConversionError where
+        toJSON ConversionError'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ceKind), ("code" .=) <$> _ceCode,
+                  ("message" .=) <$> _ceMessage])
+
+-- | Pricing Period
+--
+-- /See:/ 'pricingSchedulePricingPeriod' smart constructor.
+data PricingSchedulePricingPeriod = PricingSchedulePricingPeriod'
+    { _psppEndDate         :: !(Maybe Date')
+    , _psppRateOrCostNanos :: !(Maybe (Textual Int64))
+    , _psppStartDate       :: !(Maybe Date')
+    , _psppUnits           :: !(Maybe (Textual Int64))
+    , _psppPricingComment  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PricingSchedulePricingPeriod' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psppEndDate'
+--
+-- * 'psppRateOrCostNanos'
+--
+-- * 'psppStartDate'
+--
+-- * 'psppUnits'
+--
+-- * 'psppPricingComment'
+pricingSchedulePricingPeriod
+    :: PricingSchedulePricingPeriod
+pricingSchedulePricingPeriod =
+    PricingSchedulePricingPeriod'
+    { _psppEndDate = Nothing
+    , _psppRateOrCostNanos = Nothing
+    , _psppStartDate = Nothing
+    , _psppUnits = Nothing
+    , _psppPricingComment = Nothing
+    }
+
+-- | Pricing period end date. This date must be later than, or the same day
+-- as, the pricing period start date, but not later than the placement end
+-- date. The period end date can be the same date as the period start date.
+-- If, for example, you set 6\/25\/2015 as both the start and end dates,
+-- the effective pricing period date is just that day only, 6\/25\/2015.
+-- The hours, minutes, and seconds of the end date should not be set, as
+-- doing so will result in an error.
+psppEndDate :: Lens' PricingSchedulePricingPeriod (Maybe Day)
+psppEndDate
+  = lens _psppEndDate (\ s a -> s{_psppEndDate = a}) .
+      mapping _Date
+
+-- | Rate or cost of this pricing period.
+psppRateOrCostNanos :: Lens' PricingSchedulePricingPeriod (Maybe Int64)
+psppRateOrCostNanos
+  = lens _psppRateOrCostNanos
+      (\ s a -> s{_psppRateOrCostNanos = a})
+      . mapping _Coerce
+
+-- | Pricing period start date. This date must be later than, or the same day
+-- as, the placement start date. The hours, minutes, and seconds of the
+-- start date should not be set, as doing so will result in an error.
+psppStartDate :: Lens' PricingSchedulePricingPeriod (Maybe Day)
+psppStartDate
+  = lens _psppStartDate
+      (\ s a -> s{_psppStartDate = a})
+      . mapping _Date
+
+-- | Units of this pricing period.
+psppUnits :: Lens' PricingSchedulePricingPeriod (Maybe Int64)
+psppUnits
+  = lens _psppUnits (\ s a -> s{_psppUnits = a}) .
+      mapping _Coerce
+
+-- | Comments for this pricing period.
+psppPricingComment :: Lens' PricingSchedulePricingPeriod (Maybe Text)
+psppPricingComment
+  = lens _psppPricingComment
+      (\ s a -> s{_psppPricingComment = a})
+
+instance FromJSON PricingSchedulePricingPeriod where
+        parseJSON
+          = withObject "PricingSchedulePricingPeriod"
+              (\ o ->
+                 PricingSchedulePricingPeriod' <$>
+                   (o .:? "endDate") <*> (o .:? "rateOrCostNanos") <*>
+                     (o .:? "startDate")
+                     <*> (o .:? "units")
+                     <*> (o .:? "pricingComment"))
+
+instance ToJSON PricingSchedulePricingPeriod where
+        toJSON PricingSchedulePricingPeriod'{..}
+          = object
+              (catMaybes
+                 [("endDate" .=) <$> _psppEndDate,
+                  ("rateOrCostNanos" .=) <$> _psppRateOrCostNanos,
+                  ("startDate" .=) <$> _psppStartDate,
+                  ("units" .=) <$> _psppUnits,
+                  ("pricingComment" .=) <$> _psppPricingComment])
+
+-- | Directory Site Contact List Response
+--
+-- /See:/ 'directorySiteContactsListResponse' smart constructor.
+data DirectorySiteContactsListResponse = DirectorySiteContactsListResponse'
+    { _dsclrNextPageToken         :: !(Maybe Text)
+    , _dsclrKind                  :: !Text
+    , _dsclrDirectorySiteContacts :: !(Maybe [DirectorySiteContact])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySiteContactsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsclrNextPageToken'
+--
+-- * 'dsclrKind'
+--
+-- * 'dsclrDirectorySiteContacts'
+directorySiteContactsListResponse
+    :: DirectorySiteContactsListResponse
+directorySiteContactsListResponse =
+    DirectorySiteContactsListResponse'
+    { _dsclrNextPageToken = Nothing
+    , _dsclrKind = "dfareporting#directorySiteContactsListResponse"
+    , _dsclrDirectorySiteContacts = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+dsclrNextPageToken :: Lens' DirectorySiteContactsListResponse (Maybe Text)
+dsclrNextPageToken
+  = lens _dsclrNextPageToken
+      (\ s a -> s{_dsclrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#directorySiteContactsListResponse\".
+dsclrKind :: Lens' DirectorySiteContactsListResponse Text
+dsclrKind
+  = lens _dsclrKind (\ s a -> s{_dsclrKind = a})
+
+-- | Directory site contact collection
+dsclrDirectorySiteContacts :: Lens' DirectorySiteContactsListResponse [DirectorySiteContact]
+dsclrDirectorySiteContacts
+  = lens _dsclrDirectorySiteContacts
+      (\ s a -> s{_dsclrDirectorySiteContacts = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON DirectorySiteContactsListResponse
+         where
+        parseJSON
+          = withObject "DirectorySiteContactsListResponse"
+              (\ o ->
+                 DirectorySiteContactsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#directorySiteContactsListResponse")
+                     <*> (o .:? "directorySiteContacts" .!= mempty))
+
+instance ToJSON DirectorySiteContactsListResponse
+         where
+        toJSON DirectorySiteContactsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _dsclrNextPageToken,
+                  Just ("kind" .= _dsclrKind),
+                  ("directorySiteContacts" .=) <$>
+                    _dsclrDirectorySiteContacts])
+
+-- | Contains information about a region that can be targeted by ads.
+--
+-- /See:/ 'region' smart constructor.
+data Region = Region'
+    { _regRegionCode    :: !(Maybe Text)
+    , _regKind          :: !Text
+    , _regName          :: !(Maybe Text)
+    , _regCountryCode   :: !(Maybe Text)
+    , _regCountryDartId :: !(Maybe (Textual Int64))
+    , _regDartId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Region' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'regRegionCode'
+--
+-- * 'regKind'
+--
+-- * 'regName'
+--
+-- * 'regCountryCode'
+--
+-- * 'regCountryDartId'
+--
+-- * 'regDartId'
+region
+    :: Region
+region =
+    Region'
+    { _regRegionCode = Nothing
+    , _regKind = "dfareporting#region"
+    , _regName = Nothing
+    , _regCountryCode = Nothing
+    , _regCountryDartId = Nothing
+    , _regDartId = Nothing
+    }
+
+-- | Region code.
+regRegionCode :: Lens' Region (Maybe Text)
+regRegionCode
+  = lens _regRegionCode
+      (\ s a -> s{_regRegionCode = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#region\".
+regKind :: Lens' Region Text
+regKind = lens _regKind (\ s a -> s{_regKind = a})
+
+-- | Name of this region.
+regName :: Lens' Region (Maybe Text)
+regName = lens _regName (\ s a -> s{_regName = a})
+
+-- | Country code of the country to which this region belongs.
+regCountryCode :: Lens' Region (Maybe Text)
+regCountryCode
+  = lens _regCountryCode
+      (\ s a -> s{_regCountryCode = a})
+
+-- | DART ID of the country to which this region belongs.
+regCountryDartId :: Lens' Region (Maybe Int64)
+regCountryDartId
+  = lens _regCountryDartId
+      (\ s a -> s{_regCountryDartId = a})
+      . mapping _Coerce
+
+-- | DART ID of this region.
+regDartId :: Lens' Region (Maybe Int64)
+regDartId
+  = lens _regDartId (\ s a -> s{_regDartId = a}) .
+      mapping _Coerce
+
+instance FromJSON Region where
+        parseJSON
+          = withObject "Region"
+              (\ o ->
+                 Region' <$>
+                   (o .:? "regionCode") <*>
+                     (o .:? "kind" .!= "dfareporting#region")
+                     <*> (o .:? "name")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "countryDartId")
+                     <*> (o .:? "dartId"))
+
+instance ToJSON Region where
+        toJSON Region'{..}
+          = object
+              (catMaybes
+                 [("regionCode" .=) <$> _regRegionCode,
+                  Just ("kind" .= _regKind), ("name" .=) <$> _regName,
+                  ("countryCode" .=) <$> _regCountryCode,
+                  ("countryDartId" .=) <$> _regCountryDartId,
+                  ("dartId" .=) <$> _regDartId])
+
+-- | Advertiser Group List Response
+--
+-- /See:/ 'advertiserGroupsListResponse' smart constructor.
+data AdvertiserGroupsListResponse = AdvertiserGroupsListResponse'
+    { _aglrNextPageToken    :: !(Maybe Text)
+    , _aglrKind             :: !Text
+    , _aglrAdvertiserGroups :: !(Maybe [AdvertiserGroup])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdvertiserGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aglrNextPageToken'
+--
+-- * 'aglrKind'
+--
+-- * 'aglrAdvertiserGroups'
+advertiserGroupsListResponse
+    :: AdvertiserGroupsListResponse
+advertiserGroupsListResponse =
+    AdvertiserGroupsListResponse'
+    { _aglrNextPageToken = Nothing
+    , _aglrKind = "dfareporting#advertiserGroupsListResponse"
+    , _aglrAdvertiserGroups = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+aglrNextPageToken :: Lens' AdvertiserGroupsListResponse (Maybe Text)
+aglrNextPageToken
+  = lens _aglrNextPageToken
+      (\ s a -> s{_aglrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#advertiserGroupsListResponse\".
+aglrKind :: Lens' AdvertiserGroupsListResponse Text
+aglrKind = lens _aglrKind (\ s a -> s{_aglrKind = a})
+
+-- | Advertiser group collection.
+aglrAdvertiserGroups :: Lens' AdvertiserGroupsListResponse [AdvertiserGroup]
+aglrAdvertiserGroups
+  = lens _aglrAdvertiserGroups
+      (\ s a -> s{_aglrAdvertiserGroups = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON AdvertiserGroupsListResponse where
+        parseJSON
+          = withObject "AdvertiserGroupsListResponse"
+              (\ o ->
+                 AdvertiserGroupsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#advertiserGroupsListResponse")
+                     <*> (o .:? "advertiserGroups" .!= mempty))
+
+instance ToJSON AdvertiserGroupsListResponse where
+        toJSON AdvertiserGroupsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _aglrNextPageToken,
+                  Just ("kind" .= _aglrKind),
+                  ("advertiserGroups" .=) <$> _aglrAdvertiserGroups])
+
+-- | Creative Assignment.
+--
+-- /See:/ 'creativeAssignment' smart constructor.
+data CreativeAssignment = CreativeAssignment'
+    { _caCreativeGroupAssignments   :: !(Maybe [CreativeGroupAssignment])
+    , _caStartTime                  :: !(Maybe DateTime')
+    , _caWeight                     :: !(Maybe (Textual Int32))
+    , _caRichMediaExitOverrides     :: !(Maybe [RichMediaExitOverride])
+    , _caSSLCompliant               :: !(Maybe Bool)
+    , _caCreativeId                 :: !(Maybe (Textual Int64))
+    , _caClickThroughURL            :: !(Maybe ClickThroughURL)
+    , _caApplyEventTags             :: !(Maybe Bool)
+    , _caActive                     :: !(Maybe Bool)
+    , _caSequence                   :: !(Maybe (Textual Int32))
+    , _caEndTime                    :: !(Maybe DateTime')
+    , _caCompanionCreativeOverrides :: !(Maybe [CompanionClickThroughOverride])
+    , _caCreativeIdDimensionValue   :: !(Maybe DimensionValue)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'caCreativeGroupAssignments'
+--
+-- * 'caStartTime'
+--
+-- * 'caWeight'
+--
+-- * 'caRichMediaExitOverrides'
+--
+-- * 'caSSLCompliant'
+--
+-- * 'caCreativeId'
+--
+-- * 'caClickThroughURL'
+--
+-- * 'caApplyEventTags'
+--
+-- * 'caActive'
+--
+-- * 'caSequence'
+--
+-- * 'caEndTime'
+--
+-- * 'caCompanionCreativeOverrides'
+--
+-- * 'caCreativeIdDimensionValue'
+creativeAssignment
+    :: CreativeAssignment
+creativeAssignment =
+    CreativeAssignment'
+    { _caCreativeGroupAssignments = Nothing
+    , _caStartTime = Nothing
+    , _caWeight = Nothing
+    , _caRichMediaExitOverrides = Nothing
+    , _caSSLCompliant = Nothing
+    , _caCreativeId = Nothing
+    , _caClickThroughURL = Nothing
+    , _caApplyEventTags = Nothing
+    , _caActive = Nothing
+    , _caSequence = Nothing
+    , _caEndTime = Nothing
+    , _caCompanionCreativeOverrides = Nothing
+    , _caCreativeIdDimensionValue = Nothing
+    }
+
+-- | Creative group assignments for this creative assignment. Only one
+-- assignment per creative group number is allowed for a maximum of two
+-- assignments.
+caCreativeGroupAssignments :: Lens' CreativeAssignment [CreativeGroupAssignment]
+caCreativeGroupAssignments
+  = lens _caCreativeGroupAssignments
+      (\ s a -> s{_caCreativeGroupAssignments = a})
+      . _Default
+      . _Coerce
+
+-- | Date and time that the assigned creative should start serving.
+caStartTime :: Lens' CreativeAssignment (Maybe UTCTime)
+caStartTime
+  = lens _caStartTime (\ s a -> s{_caStartTime = a}) .
+      mapping _DateTime
+
+-- | Weight of the creative assignment, applicable when the rotation type is
+-- CREATIVE_ROTATION_TYPE_RANDOM.
+caWeight :: Lens' CreativeAssignment (Maybe Int32)
+caWeight
+  = lens _caWeight (\ s a -> s{_caWeight = a}) .
+      mapping _Coerce
+
+-- | Rich media exit overrides for this creative assignment. Applicable when
+-- the creative type is any of the following: - RICH_MEDIA_INPAGE -
+-- RICH_MEDIA_INPAGE_FLOATING - RICH_MEDIA_IM_EXPAND - RICH_MEDIA_EXPANDING
+-- - RICH_MEDIA_INTERSTITIAL_FLOAT - RICH_MEDIA_MOBILE_IN_APP -
+-- RICH_MEDIA_MULTI_FLOATING - RICH_MEDIA_PEEL_DOWN - ADVANCED_BANNER -
+-- VPAID_LINEAR - VPAID_NON_LINEAR
+caRichMediaExitOverrides :: Lens' CreativeAssignment [RichMediaExitOverride]
+caRichMediaExitOverrides
+  = lens _caRichMediaExitOverrides
+      (\ s a -> s{_caRichMediaExitOverrides = a})
+      . _Default
+      . _Coerce
+
+-- | Whether the creative to be assigned is SSL-compliant. This is a
+-- read-only field that is auto-generated when the ad is inserted or
+-- updated.
+caSSLCompliant :: Lens' CreativeAssignment (Maybe Bool)
+caSSLCompliant
+  = lens _caSSLCompliant
+      (\ s a -> s{_caSSLCompliant = a})
+
+-- | ID of the creative to be assigned. This is a required field.
+caCreativeId :: Lens' CreativeAssignment (Maybe Int64)
+caCreativeId
+  = lens _caCreativeId (\ s a -> s{_caCreativeId = a})
+      . mapping _Coerce
+
+-- | Click-through URL of the creative assignment.
+caClickThroughURL :: Lens' CreativeAssignment (Maybe ClickThroughURL)
+caClickThroughURL
+  = lens _caClickThroughURL
+      (\ s a -> s{_caClickThroughURL = a})
+
+-- | Whether applicable event tags should fire when this creative assignment
+-- is rendered. If this value is unset when the ad is inserted or updated,
+-- it will default to true for all creative types EXCEPT for
+-- INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
+caApplyEventTags :: Lens' CreativeAssignment (Maybe Bool)
+caApplyEventTags
+  = lens _caApplyEventTags
+      (\ s a -> s{_caApplyEventTags = a})
+
+-- | Whether this creative assignment is active. When true, the creative will
+-- be included in the ad\'s rotation.
+caActive :: Lens' CreativeAssignment (Maybe Bool)
+caActive = lens _caActive (\ s a -> s{_caActive = a})
+
+-- | Sequence number of the creative assignment, applicable when the rotation
+-- type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+caSequence :: Lens' CreativeAssignment (Maybe Int32)
+caSequence
+  = lens _caSequence (\ s a -> s{_caSequence = a}) .
+      mapping _Coerce
+
+-- | Date and time that the assigned creative should stop serving. Must be
+-- later than the start time.
+caEndTime :: Lens' CreativeAssignment (Maybe UTCTime)
+caEndTime
+  = lens _caEndTime (\ s a -> s{_caEndTime = a}) .
+      mapping _DateTime
+
+-- | Companion creative overrides for this creative assignment. Applicable to
+-- video ads.
+caCompanionCreativeOverrides :: Lens' CreativeAssignment [CompanionClickThroughOverride]
+caCompanionCreativeOverrides
+  = lens _caCompanionCreativeOverrides
+      (\ s a -> s{_caCompanionCreativeOverrides = a})
+      . _Default
+      . _Coerce
+
+-- | Dimension value for the ID of the creative. This is a read-only,
+-- auto-generated field.
+caCreativeIdDimensionValue :: Lens' CreativeAssignment (Maybe DimensionValue)
+caCreativeIdDimensionValue
+  = lens _caCreativeIdDimensionValue
+      (\ s a -> s{_caCreativeIdDimensionValue = a})
+
+instance FromJSON CreativeAssignment where
+        parseJSON
+          = withObject "CreativeAssignment"
+              (\ o ->
+                 CreativeAssignment' <$>
+                   (o .:? "creativeGroupAssignments" .!= mempty) <*>
+                     (o .:? "startTime")
+                     <*> (o .:? "weight")
+                     <*> (o .:? "richMediaExitOverrides" .!= mempty)
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "creativeId")
+                     <*> (o .:? "clickThroughUrl")
+                     <*> (o .:? "applyEventTags")
+                     <*> (o .:? "active")
+                     <*> (o .:? "sequence")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "companionCreativeOverrides" .!= mempty)
+                     <*> (o .:? "creativeIdDimensionValue"))
+
+instance ToJSON CreativeAssignment where
+        toJSON CreativeAssignment'{..}
+          = object
+              (catMaybes
+                 [("creativeGroupAssignments" .=) <$>
+                    _caCreativeGroupAssignments,
+                  ("startTime" .=) <$> _caStartTime,
+                  ("weight" .=) <$> _caWeight,
+                  ("richMediaExitOverrides" .=) <$>
+                    _caRichMediaExitOverrides,
+                  ("sslCompliant" .=) <$> _caSSLCompliant,
+                  ("creativeId" .=) <$> _caCreativeId,
+                  ("clickThroughUrl" .=) <$> _caClickThroughURL,
+                  ("applyEventTags" .=) <$> _caApplyEventTags,
+                  ("active" .=) <$> _caActive,
+                  ("sequence" .=) <$> _caSequence,
+                  ("endTime" .=) <$> _caEndTime,
+                  ("companionCreativeOverrides" .=) <$>
+                    _caCompanionCreativeOverrides,
+                  ("creativeIdDimensionValue" .=) <$>
+                    _caCreativeIdDimensionValue])
+
+-- | Represents a dimension filter.
+--
+-- /See:/ 'dimensionFilter' smart constructor.
+data DimensionFilter = DimensionFilter'
+    { _dfKind          :: !Text
+    , _dfValue         :: !(Maybe Text)
+    , _dfDimensionName :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DimensionFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfKind'
+--
+-- * 'dfValue'
+--
+-- * 'dfDimensionName'
+dimensionFilter
+    :: DimensionFilter
+dimensionFilter =
+    DimensionFilter'
+    { _dfKind = "dfareporting#dimensionFilter"
+    , _dfValue = Nothing
+    , _dfDimensionName = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#dimensionFilter.
+dfKind :: Lens' DimensionFilter Text
+dfKind = lens _dfKind (\ s a -> s{_dfKind = a})
+
+-- | The value of the dimension to filter.
+dfValue :: Lens' DimensionFilter (Maybe Text)
+dfValue = lens _dfValue (\ s a -> s{_dfValue = a})
+
+-- | The name of the dimension to filter.
+dfDimensionName :: Lens' DimensionFilter (Maybe Text)
+dfDimensionName
+  = lens _dfDimensionName
+      (\ s a -> s{_dfDimensionName = a})
+
+instance FromJSON DimensionFilter where
+        parseJSON
+          = withObject "DimensionFilter"
+              (\ o ->
+                 DimensionFilter' <$>
+                   (o .:? "kind" .!= "dfareporting#dimensionFilter") <*>
+                     (o .:? "value")
+                     <*> (o .:? "dimensionName"))
+
+instance ToJSON DimensionFilter where
+        toJSON DimensionFilter'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _dfKind), ("value" .=) <$> _dfValue,
+                  ("dimensionName" .=) <$> _dfDimensionName])
+
+-- | Represents the list of user profiles.
+--
+-- /See:/ 'userProFileList' smart constructor.
+data UserProFileList = UserProFileList'
+    { _upflEtag  :: !(Maybe Text)
+    , _upflKind  :: !Text
+    , _upflItems :: !(Maybe [UserProFile])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFileList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upflEtag'
+--
+-- * 'upflKind'
+--
+-- * 'upflItems'
+userProFileList
+    :: UserProFileList
+userProFileList =
+    UserProFileList'
+    { _upflEtag = Nothing
+    , _upflKind = "dfareporting#userProfileList"
+    , _upflItems = Nothing
+    }
+
+-- | The eTag of this response for caching purposes.
+upflEtag :: Lens' UserProFileList (Maybe Text)
+upflEtag = lens _upflEtag (\ s a -> s{_upflEtag = a})
+
+-- | The kind of list this is, in this case dfareporting#userProfileList.
+upflKind :: Lens' UserProFileList Text
+upflKind = lens _upflKind (\ s a -> s{_upflKind = a})
+
+-- | The user profiles returned in this response.
+upflItems :: Lens' UserProFileList [UserProFile]
+upflItems
+  = lens _upflItems (\ s a -> s{_upflItems = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON UserProFileList where
+        parseJSON
+          = withObject "UserProFileList"
+              (\ o ->
+                 UserProFileList' <$>
+                   (o .:? "etag") <*>
+                     (o .:? "kind" .!= "dfareporting#userProfileList")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON UserProFileList where
+        toJSON UserProFileList'{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _upflEtag,
+                  Just ("kind" .= _upflKind),
+                  ("items" .=) <$> _upflItems])
+
+-- | Contains properties of a Floodlight configuration.
+--
+-- /See:/ 'floodlightConfiguration' smart constructor.
+data FloodlightConfiguration = FloodlightConfiguration'
+    { _fcTagSettings                              :: !(Maybe TagSettings)
+    , _fcExposureToConversionEnabled              :: !(Maybe Bool)
+    , _fcInAppAttributionTrackingEnabled          :: !(Maybe Bool)
+    , _fcThirdPartyAuthenticationTokens           :: !(Maybe [ThirdPartyAuthenticationToken])
+    , _fcKind                                     :: !Text
+    , _fcAdvertiserId                             :: !(Maybe (Textual Int64))
+    , _fcAnalyticsDataSharingEnabled              :: !(Maybe Bool)
+    , _fcAdvertiserIdDimensionValue               :: !(Maybe DimensionValue)
+    , _fcIdDimensionValue                         :: !(Maybe DimensionValue)
+    , _fcLookbackConfiguration                    :: !(Maybe LookbackConfiguration)
+    , _fcAccountId                                :: !(Maybe (Textual Int64))
+    , _fcId                                       :: !(Maybe (Textual Int64))
+    , _fcNATuralSearchConversionAttributionOption :: !(Maybe FloodlightConfigurationNATuralSearchConversionAttributionOption)
+    , _fcUserDefinedVariableConfigurations        :: !(Maybe [UserDefinedVariableConfiguration])
+    , _fcSubAccountId                             :: !(Maybe (Textual Int64))
+    , _fcFirstDayOfWeek                           :: !(Maybe FloodlightConfigurationFirstDayOfWeek)
+    , _fcOmnitureSettings                         :: !(Maybe OmnitureSettings)
+    , _fcStandardVariableTypes                    :: !(Maybe [FloodlightConfigurationStandardVariableTypesItem])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fcTagSettings'
+--
+-- * 'fcExposureToConversionEnabled'
+--
+-- * 'fcInAppAttributionTrackingEnabled'
+--
+-- * 'fcThirdPartyAuthenticationTokens'
+--
+-- * 'fcKind'
+--
+-- * 'fcAdvertiserId'
+--
+-- * 'fcAnalyticsDataSharingEnabled'
+--
+-- * 'fcAdvertiserIdDimensionValue'
+--
+-- * 'fcIdDimensionValue'
+--
+-- * 'fcLookbackConfiguration'
+--
+-- * 'fcAccountId'
+--
+-- * 'fcId'
+--
+-- * 'fcNATuralSearchConversionAttributionOption'
+--
+-- * 'fcUserDefinedVariableConfigurations'
+--
+-- * 'fcSubAccountId'
+--
+-- * 'fcFirstDayOfWeek'
+--
+-- * 'fcOmnitureSettings'
+--
+-- * 'fcStandardVariableTypes'
+floodlightConfiguration
+    :: FloodlightConfiguration
+floodlightConfiguration =
+    FloodlightConfiguration'
+    { _fcTagSettings = Nothing
+    , _fcExposureToConversionEnabled = Nothing
+    , _fcInAppAttributionTrackingEnabled = Nothing
+    , _fcThirdPartyAuthenticationTokens = Nothing
+    , _fcKind = "dfareporting#floodlightConfiguration"
+    , _fcAdvertiserId = Nothing
+    , _fcAnalyticsDataSharingEnabled = Nothing
+    , _fcAdvertiserIdDimensionValue = Nothing
+    , _fcIdDimensionValue = Nothing
+    , _fcLookbackConfiguration = Nothing
+    , _fcAccountId = Nothing
+    , _fcId = Nothing
+    , _fcNATuralSearchConversionAttributionOption = Nothing
+    , _fcUserDefinedVariableConfigurations = Nothing
+    , _fcSubAccountId = Nothing
+    , _fcFirstDayOfWeek = Nothing
+    , _fcOmnitureSettings = Nothing
+    , _fcStandardVariableTypes = Nothing
+    }
+
+-- | Configuration settings for dynamic and image floodlight tags.
+fcTagSettings :: Lens' FloodlightConfiguration (Maybe TagSettings)
+fcTagSettings
+  = lens _fcTagSettings
+      (\ s a -> s{_fcTagSettings = a})
+
+-- | Whether the exposure-to-conversion report is enabled. This report shows
+-- detailed pathway information on up to 10 of the most recent ad exposures
+-- seen by a user before converting.
+fcExposureToConversionEnabled :: Lens' FloodlightConfiguration (Maybe Bool)
+fcExposureToConversionEnabled
+  = lens _fcExposureToConversionEnabled
+      (\ s a -> s{_fcExposureToConversionEnabled = a})
+
+-- | Whether in-app attribution tracking is enabled.
+fcInAppAttributionTrackingEnabled :: Lens' FloodlightConfiguration (Maybe Bool)
+fcInAppAttributionTrackingEnabled
+  = lens _fcInAppAttributionTrackingEnabled
+      (\ s a -> s{_fcInAppAttributionTrackingEnabled = a})
+
+-- | List of third-party authentication tokens enabled for this
+-- configuration.
+fcThirdPartyAuthenticationTokens :: Lens' FloodlightConfiguration [ThirdPartyAuthenticationToken]
+fcThirdPartyAuthenticationTokens
+  = lens _fcThirdPartyAuthenticationTokens
+      (\ s a -> s{_fcThirdPartyAuthenticationTokens = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightConfiguration\".
+fcKind :: Lens' FloodlightConfiguration Text
+fcKind = lens _fcKind (\ s a -> s{_fcKind = a})
+
+-- | Advertiser ID of the parent advertiser of this floodlight configuration.
+fcAdvertiserId :: Lens' FloodlightConfiguration (Maybe Int64)
+fcAdvertiserId
+  = lens _fcAdvertiserId
+      (\ s a -> s{_fcAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Whether advertiser data is shared with Google Analytics.
+fcAnalyticsDataSharingEnabled :: Lens' FloodlightConfiguration (Maybe Bool)
+fcAnalyticsDataSharingEnabled
+  = lens _fcAnalyticsDataSharingEnabled
+      (\ s a -> s{_fcAnalyticsDataSharingEnabled = a})
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+fcAdvertiserIdDimensionValue :: Lens' FloodlightConfiguration (Maybe DimensionValue)
+fcAdvertiserIdDimensionValue
+  = lens _fcAdvertiserIdDimensionValue
+      (\ s a -> s{_fcAdvertiserIdDimensionValue = a})
+
+-- | Dimension value for the ID of this floodlight configuration. This is a
+-- read-only, auto-generated field.
+fcIdDimensionValue :: Lens' FloodlightConfiguration (Maybe DimensionValue)
+fcIdDimensionValue
+  = lens _fcIdDimensionValue
+      (\ s a -> s{_fcIdDimensionValue = a})
+
+-- | Lookback window settings for this floodlight configuration.
+fcLookbackConfiguration :: Lens' FloodlightConfiguration (Maybe LookbackConfiguration)
+fcLookbackConfiguration
+  = lens _fcLookbackConfiguration
+      (\ s a -> s{_fcLookbackConfiguration = a})
+
+-- | Account ID of this floodlight configuration. This is a read-only field
+-- that can be left blank.
+fcAccountId :: Lens' FloodlightConfiguration (Maybe Int64)
+fcAccountId
+  = lens _fcAccountId (\ s a -> s{_fcAccountId = a}) .
+      mapping _Coerce
+
+-- | ID of this floodlight configuration. This is a read-only, auto-generated
+-- field.
+fcId :: Lens' FloodlightConfiguration (Maybe Int64)
+fcId
+  = lens _fcId (\ s a -> s{_fcId = a}) .
+      mapping _Coerce
+
+-- | Types of attribution options for natural search conversions.
+fcNATuralSearchConversionAttributionOption :: Lens' FloodlightConfiguration (Maybe FloodlightConfigurationNATuralSearchConversionAttributionOption)
+fcNATuralSearchConversionAttributionOption
+  = lens _fcNATuralSearchConversionAttributionOption
+      (\ s a ->
+         s{_fcNATuralSearchConversionAttributionOption = a})
+
+-- | List of user defined variables enabled for this configuration.
+fcUserDefinedVariableConfigurations :: Lens' FloodlightConfiguration [UserDefinedVariableConfiguration]
+fcUserDefinedVariableConfigurations
+  = lens _fcUserDefinedVariableConfigurations
+      (\ s a ->
+         s{_fcUserDefinedVariableConfigurations = a})
+      . _Default
+      . _Coerce
+
+-- | Subaccount ID of this floodlight configuration. This is a read-only
+-- field that can be left blank.
+fcSubAccountId :: Lens' FloodlightConfiguration (Maybe Int64)
+fcSubAccountId
+  = lens _fcSubAccountId
+      (\ s a -> s{_fcSubAccountId = a})
+      . mapping _Coerce
+
+-- | Day that will be counted as the first day of the week in reports. This
+-- is a required field.
+fcFirstDayOfWeek :: Lens' FloodlightConfiguration (Maybe FloodlightConfigurationFirstDayOfWeek)
+fcFirstDayOfWeek
+  = lens _fcFirstDayOfWeek
+      (\ s a -> s{_fcFirstDayOfWeek = a})
+
+-- | Settings for DCM Omniture integration.
+fcOmnitureSettings :: Lens' FloodlightConfiguration (Maybe OmnitureSettings)
+fcOmnitureSettings
+  = lens _fcOmnitureSettings
+      (\ s a -> s{_fcOmnitureSettings = a})
+
+-- | List of standard variables enabled for this configuration. Acceptable
+-- values are: - \"ORD\" - \"NUM\"
+fcStandardVariableTypes :: Lens' FloodlightConfiguration [FloodlightConfigurationStandardVariableTypesItem]
+fcStandardVariableTypes
+  = lens _fcStandardVariableTypes
+      (\ s a -> s{_fcStandardVariableTypes = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON FloodlightConfiguration where
+        parseJSON
+          = withObject "FloodlightConfiguration"
+              (\ o ->
+                 FloodlightConfiguration' <$>
+                   (o .:? "tagSettings") <*>
+                     (o .:? "exposureToConversionEnabled")
+                     <*> (o .:? "inAppAttributionTrackingEnabled")
+                     <*>
+                     (o .:? "thirdPartyAuthenticationTokens" .!= mempty)
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightConfiguration")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "analyticsDataSharingEnabled")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "lookbackConfiguration")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "id")
+                     <*>
+                     (o .:? "naturalSearchConversionAttributionOption")
+                     <*>
+                     (o .:? "userDefinedVariableConfigurations" .!=
+                        mempty)
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "firstDayOfWeek")
+                     <*> (o .:? "omnitureSettings")
+                     <*> (o .:? "standardVariableTypes" .!= mempty))
+
+instance ToJSON FloodlightConfiguration where
+        toJSON FloodlightConfiguration'{..}
+          = object
+              (catMaybes
+                 [("tagSettings" .=) <$> _fcTagSettings,
+                  ("exposureToConversionEnabled" .=) <$>
+                    _fcExposureToConversionEnabled,
+                  ("inAppAttributionTrackingEnabled" .=) <$>
+                    _fcInAppAttributionTrackingEnabled,
+                  ("thirdPartyAuthenticationTokens" .=) <$>
+                    _fcThirdPartyAuthenticationTokens,
+                  Just ("kind" .= _fcKind),
+                  ("advertiserId" .=) <$> _fcAdvertiserId,
+                  ("analyticsDataSharingEnabled" .=) <$>
+                    _fcAnalyticsDataSharingEnabled,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _fcAdvertiserIdDimensionValue,
+                  ("idDimensionValue" .=) <$> _fcIdDimensionValue,
+                  ("lookbackConfiguration" .=) <$>
+                    _fcLookbackConfiguration,
+                  ("accountId" .=) <$> _fcAccountId,
+                  ("id" .=) <$> _fcId,
+                  ("naturalSearchConversionAttributionOption" .=) <$>
+                    _fcNATuralSearchConversionAttributionOption,
+                  ("userDefinedVariableConfigurations" .=) <$>
+                    _fcUserDefinedVariableConfigurations,
+                  ("subaccountId" .=) <$> _fcSubAccountId,
+                  ("firstDayOfWeek" .=) <$> _fcFirstDayOfWeek,
+                  ("omnitureSettings" .=) <$> _fcOmnitureSettings,
+                  ("standardVariableTypes" .=) <$>
+                    _fcStandardVariableTypes])
+
+-- | Floodlight Activity Group List Response
+--
+-- /See:/ 'floodlightActivityGroupsListResponse' smart constructor.
+data FloodlightActivityGroupsListResponse = FloodlightActivityGroupsListResponse'
+    { _faglrNextPageToken            :: !(Maybe Text)
+    , _faglrKind                     :: !Text
+    , _faglrFloodlightActivityGroups :: !(Maybe [FloodlightActivityGroup])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivityGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'faglrNextPageToken'
+--
+-- * 'faglrKind'
+--
+-- * 'faglrFloodlightActivityGroups'
+floodlightActivityGroupsListResponse
+    :: FloodlightActivityGroupsListResponse
+floodlightActivityGroupsListResponse =
+    FloodlightActivityGroupsListResponse'
+    { _faglrNextPageToken = Nothing
+    , _faglrKind = "dfareporting#floodlightActivityGroupsListResponse"
+    , _faglrFloodlightActivityGroups = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+faglrNextPageToken :: Lens' FloodlightActivityGroupsListResponse (Maybe Text)
+faglrNextPageToken
+  = lens _faglrNextPageToken
+      (\ s a -> s{_faglrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightActivityGroupsListResponse\".
+faglrKind :: Lens' FloodlightActivityGroupsListResponse Text
+faglrKind
+  = lens _faglrKind (\ s a -> s{_faglrKind = a})
+
+-- | Floodlight activity group collection.
+faglrFloodlightActivityGroups :: Lens' FloodlightActivityGroupsListResponse [FloodlightActivityGroup]
+faglrFloodlightActivityGroups
+  = lens _faglrFloodlightActivityGroups
+      (\ s a -> s{_faglrFloodlightActivityGroups = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+         FloodlightActivityGroupsListResponse where
+        parseJSON
+          = withObject "FloodlightActivityGroupsListResponse"
+              (\ o ->
+                 FloodlightActivityGroupsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightActivityGroupsListResponse")
+                     <*> (o .:? "floodlightActivityGroups" .!= mempty))
+
+instance ToJSON FloodlightActivityGroupsListResponse
+         where
+        toJSON FloodlightActivityGroupsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _faglrNextPageToken,
+                  Just ("kind" .= _faglrKind),
+                  ("floodlightActivityGroups" .=) <$>
+                    _faglrFloodlightActivityGroups])
+
+-- | A Conversion represents when a user successfully performs a desired
+-- action after seeing an ad.
+--
+-- /See:/ 'conversion' smart constructor.
+data Conversion = Conversion'
+    { _conoTimestampMicros           :: !(Maybe (Textual Int64))
+    , _conoLimitAdTracking           :: !(Maybe Bool)
+    , _conoEncryptedUserId           :: !(Maybe Text)
+    , _conoMobileDeviceId            :: !(Maybe Text)
+    , _conoFloodlightConfigurationId :: !(Maybe (Textual Int64))
+    , _conoKind                      :: !Text
+    , _conoFloodlightActivityId      :: !(Maybe (Textual Int64))
+    , _conoQuantity                  :: !(Maybe (Textual Int64))
+    , _conoValue                     :: !(Maybe (Textual Double))
+    , _conoCustomVariables           :: !(Maybe [CustomFloodlightVariable])
+    , _conoChildDirectedTreatment    :: !(Maybe Bool)
+    , _conoOrdinal                   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Conversion' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'conoTimestampMicros'
+--
+-- * 'conoLimitAdTracking'
+--
+-- * 'conoEncryptedUserId'
+--
+-- * 'conoMobileDeviceId'
+--
+-- * 'conoFloodlightConfigurationId'
+--
+-- * 'conoKind'
+--
+-- * 'conoFloodlightActivityId'
+--
+-- * 'conoQuantity'
+--
+-- * 'conoValue'
+--
+-- * 'conoCustomVariables'
+--
+-- * 'conoChildDirectedTreatment'
+--
+-- * 'conoOrdinal'
+conversion
+    :: Conversion
+conversion =
+    Conversion'
+    { _conoTimestampMicros = Nothing
+    , _conoLimitAdTracking = Nothing
+    , _conoEncryptedUserId = Nothing
+    , _conoMobileDeviceId = Nothing
+    , _conoFloodlightConfigurationId = Nothing
+    , _conoKind = "dfareporting#conversion"
+    , _conoFloodlightActivityId = Nothing
+    , _conoQuantity = Nothing
+    , _conoValue = Nothing
+    , _conoCustomVariables = Nothing
+    , _conoChildDirectedTreatment = Nothing
+    , _conoOrdinal = Nothing
+    }
+
+-- | The timestamp of conversion, in Unix epoch micros. This is a required
+-- field.
+conoTimestampMicros :: Lens' Conversion (Maybe Int64)
+conoTimestampMicros
+  = lens _conoTimestampMicros
+      (\ s a -> s{_conoTimestampMicros = a})
+      . mapping _Coerce
+
+-- | Whether the user has Limit Ad Tracking set.
+conoLimitAdTracking :: Lens' Conversion (Maybe Bool)
+conoLimitAdTracking
+  = lens _conoLimitAdTracking
+      (\ s a -> s{_conoLimitAdTracking = a})
+
+-- | The alphanumeric encrypted user ID. When set, encryptionInfo should also
+-- be specified. This field is mutually exclusive with mobileDeviceId. This
+-- or mobileDeviceId is a required field.
+conoEncryptedUserId :: Lens' Conversion (Maybe Text)
+conoEncryptedUserId
+  = lens _conoEncryptedUserId
+      (\ s a -> s{_conoEncryptedUserId = a})
+
+-- | The mobile device ID. This field is mutually exclusive with
+-- encryptedUserId. This or encryptedUserId is a required field.
+conoMobileDeviceId :: Lens' Conversion (Maybe Text)
+conoMobileDeviceId
+  = lens _conoMobileDeviceId
+      (\ s a -> s{_conoMobileDeviceId = a})
+
+-- | Floodlight Configuration ID of this conversion. This is a required
+-- field.
+conoFloodlightConfigurationId :: Lens' Conversion (Maybe Int64)
+conoFloodlightConfigurationId
+  = lens _conoFloodlightConfigurationId
+      (\ s a -> s{_conoFloodlightConfigurationId = a})
+      . mapping _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#conversion\".
+conoKind :: Lens' Conversion Text
+conoKind = lens _conoKind (\ s a -> s{_conoKind = a})
+
+-- | Floodlight Activity ID of this conversion. This is a required field.
+conoFloodlightActivityId :: Lens' Conversion (Maybe Int64)
+conoFloodlightActivityId
+  = lens _conoFloodlightActivityId
+      (\ s a -> s{_conoFloodlightActivityId = a})
+      . mapping _Coerce
+
+-- | The quantity of the conversion.
+conoQuantity :: Lens' Conversion (Maybe Int64)
+conoQuantity
+  = lens _conoQuantity (\ s a -> s{_conoQuantity = a})
+      . mapping _Coerce
+
+-- | The value of the conversion.
+conoValue :: Lens' Conversion (Maybe Double)
+conoValue
+  = lens _conoValue (\ s a -> s{_conoValue = a}) .
+      mapping _Coerce
+
+-- | Custom floodlight variables.
+conoCustomVariables :: Lens' Conversion [CustomFloodlightVariable]
+conoCustomVariables
+  = lens _conoCustomVariables
+      (\ s a -> s{_conoCustomVariables = a})
+      . _Default
+      . _Coerce
+
+-- | Whether the conversion was directed toward children.
+conoChildDirectedTreatment :: Lens' Conversion (Maybe Bool)
+conoChildDirectedTreatment
+  = lens _conoChildDirectedTreatment
+      (\ s a -> s{_conoChildDirectedTreatment = a})
+
+-- | The ordinal of the conversion. Use this field to control how conversions
+-- of the same user and day are de-duplicated. This is a required field.
+conoOrdinal :: Lens' Conversion (Maybe Text)
+conoOrdinal
+  = lens _conoOrdinal (\ s a -> s{_conoOrdinal = a})
+
+instance FromJSON Conversion where
+        parseJSON
+          = withObject "Conversion"
+              (\ o ->
+                 Conversion' <$>
+                   (o .:? "timestampMicros") <*>
+                     (o .:? "limitAdTracking")
+                     <*> (o .:? "encryptedUserId")
+                     <*> (o .:? "mobileDeviceId")
+                     <*> (o .:? "floodlightConfigurationId")
+                     <*> (o .:? "kind" .!= "dfareporting#conversion")
+                     <*> (o .:? "floodlightActivityId")
+                     <*> (o .:? "quantity")
+                     <*> (o .:? "value")
+                     <*> (o .:? "customVariables" .!= mempty)
+                     <*> (o .:? "childDirectedTreatment")
+                     <*> (o .:? "ordinal"))
+
+instance ToJSON Conversion where
+        toJSON Conversion'{..}
+          = object
+              (catMaybes
+                 [("timestampMicros" .=) <$> _conoTimestampMicros,
+                  ("limitAdTracking" .=) <$> _conoLimitAdTracking,
+                  ("encryptedUserId" .=) <$> _conoEncryptedUserId,
+                  ("mobileDeviceId" .=) <$> _conoMobileDeviceId,
+                  ("floodlightConfigurationId" .=) <$>
+                    _conoFloodlightConfigurationId,
+                  Just ("kind" .= _conoKind),
+                  ("floodlightActivityId" .=) <$>
+                    _conoFloodlightActivityId,
+                  ("quantity" .=) <$> _conoQuantity,
+                  ("value" .=) <$> _conoValue,
+                  ("customVariables" .=) <$> _conoCustomVariables,
+                  ("childDirectedTreatment" .=) <$>
+                    _conoChildDirectedTreatment,
+                  ("ordinal" .=) <$> _conoOrdinal])
+
+-- | Creative Field Value List Response
+--
+-- /See:/ 'creativeFieldValuesListResponse' smart constructor.
+data CreativeFieldValuesListResponse = CreativeFieldValuesListResponse'
+    { _cfvlrNextPageToken       :: !(Maybe Text)
+    , _cfvlrKind                :: !Text
+    , _cfvlrCreativeFieldValues :: !(Maybe [CreativeFieldValue])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldValuesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfvlrNextPageToken'
+--
+-- * 'cfvlrKind'
+--
+-- * 'cfvlrCreativeFieldValues'
+creativeFieldValuesListResponse
+    :: CreativeFieldValuesListResponse
+creativeFieldValuesListResponse =
+    CreativeFieldValuesListResponse'
+    { _cfvlrNextPageToken = Nothing
+    , _cfvlrKind = "dfareporting#creativeFieldValuesListResponse"
+    , _cfvlrCreativeFieldValues = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+cfvlrNextPageToken :: Lens' CreativeFieldValuesListResponse (Maybe Text)
+cfvlrNextPageToken
+  = lens _cfvlrNextPageToken
+      (\ s a -> s{_cfvlrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeFieldValuesListResponse\".
+cfvlrKind :: Lens' CreativeFieldValuesListResponse Text
+cfvlrKind
+  = lens _cfvlrKind (\ s a -> s{_cfvlrKind = a})
+
+-- | Creative field value collection.
+cfvlrCreativeFieldValues :: Lens' CreativeFieldValuesListResponse [CreativeFieldValue]
+cfvlrCreativeFieldValues
+  = lens _cfvlrCreativeFieldValues
+      (\ s a -> s{_cfvlrCreativeFieldValues = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CreativeFieldValuesListResponse
+         where
+        parseJSON
+          = withObject "CreativeFieldValuesListResponse"
+              (\ o ->
+                 CreativeFieldValuesListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#creativeFieldValuesListResponse")
+                     <*> (o .:? "creativeFieldValues" .!= mempty))
+
+instance ToJSON CreativeFieldValuesListResponse where
+        toJSON CreativeFieldValuesListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _cfvlrNextPageToken,
+                  Just ("kind" .= _cfvlrKind),
+                  ("creativeFieldValues" .=) <$>
+                    _cfvlrCreativeFieldValues])
+
+-- | Rich Media Exit Override.
+--
+-- /See:/ 'richMediaExitOverride' smart constructor.
+data RichMediaExitOverride = RichMediaExitOverride'
+    { _rmeoUseCustomExitURL :: !(Maybe Bool)
+    , _rmeoExitId           :: !(Maybe (Textual Int64))
+    , _rmeoCustomExitURL    :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RichMediaExitOverride' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rmeoUseCustomExitURL'
+--
+-- * 'rmeoExitId'
+--
+-- * 'rmeoCustomExitURL'
+richMediaExitOverride
+    :: RichMediaExitOverride
+richMediaExitOverride =
+    RichMediaExitOverride'
+    { _rmeoUseCustomExitURL = Nothing
+    , _rmeoExitId = Nothing
+    , _rmeoCustomExitURL = Nothing
+    }
+
+-- | Whether to use the custom exit URL.
+rmeoUseCustomExitURL :: Lens' RichMediaExitOverride (Maybe Bool)
+rmeoUseCustomExitURL
+  = lens _rmeoUseCustomExitURL
+      (\ s a -> s{_rmeoUseCustomExitURL = a})
+
+-- | ID for the override to refer to a specific exit in the creative.
+rmeoExitId :: Lens' RichMediaExitOverride (Maybe Int64)
+rmeoExitId
+  = lens _rmeoExitId (\ s a -> s{_rmeoExitId = a}) .
+      mapping _Coerce
+
+-- | Click-through URL to override the default exit URL. Applicable if the
+-- useCustomExitUrl field is set to true.
+rmeoCustomExitURL :: Lens' RichMediaExitOverride (Maybe Text)
+rmeoCustomExitURL
+  = lens _rmeoCustomExitURL
+      (\ s a -> s{_rmeoCustomExitURL = a})
+
+instance FromJSON RichMediaExitOverride where
+        parseJSON
+          = withObject "RichMediaExitOverride"
+              (\ o ->
+                 RichMediaExitOverride' <$>
+                   (o .:? "useCustomExitUrl") <*> (o .:? "exitId") <*>
+                     (o .:? "customExitUrl"))
+
+instance ToJSON RichMediaExitOverride where
+        toJSON RichMediaExitOverride'{..}
+          = object
+              (catMaybes
+                 [("useCustomExitUrl" .=) <$> _rmeoUseCustomExitURL,
+                  ("exitId" .=) <$> _rmeoExitId,
+                  ("customExitUrl" .=) <$> _rmeoCustomExitURL])
+
+-- | Represents a sorted dimension.
+--
+-- /See:/ 'sortedDimension' smart constructor.
+data SortedDimension = SortedDimension'
+    { _sdKind      :: !Text
+    , _sdSortOrder :: !(Maybe SortedDimensionSortOrder)
+    , _sdName      :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SortedDimension' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sdKind'
+--
+-- * 'sdSortOrder'
+--
+-- * 'sdName'
+sortedDimension
+    :: SortedDimension
+sortedDimension =
+    SortedDimension'
+    { _sdKind = "dfareporting#sortedDimension"
+    , _sdSortOrder = Nothing
+    , _sdName = Nothing
+    }
+
+-- | The kind of resource this is, in this case dfareporting#sortedDimension.
+sdKind :: Lens' SortedDimension Text
+sdKind = lens _sdKind (\ s a -> s{_sdKind = a})
+
+-- | An optional sort order for the dimension column.
+sdSortOrder :: Lens' SortedDimension (Maybe SortedDimensionSortOrder)
+sdSortOrder
+  = lens _sdSortOrder (\ s a -> s{_sdSortOrder = a})
+
+-- | The name of the dimension.
+sdName :: Lens' SortedDimension (Maybe Text)
+sdName = lens _sdName (\ s a -> s{_sdName = a})
+
+instance FromJSON SortedDimension where
+        parseJSON
+          = withObject "SortedDimension"
+              (\ o ->
+                 SortedDimension' <$>
+                   (o .:? "kind" .!= "dfareporting#sortedDimension") <*>
+                     (o .:? "sortOrder")
+                     <*> (o .:? "name"))
+
+instance ToJSON SortedDimension where
+        toJSON SortedDimension'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _sdKind),
+                  ("sortOrder" .=) <$> _sdSortOrder,
+                  ("name" .=) <$> _sdName])
+
+-- | Creative Field List Response
+--
+-- /See:/ 'creativeFieldsListResponse' smart constructor.
+data CreativeFieldsListResponse = CreativeFieldsListResponse'
+    { _cflrNextPageToken  :: !(Maybe Text)
+    , _cflrKind           :: !Text
+    , _cflrCreativeFields :: !(Maybe [CreativeField])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeFieldsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cflrNextPageToken'
+--
+-- * 'cflrKind'
+--
+-- * 'cflrCreativeFields'
+creativeFieldsListResponse
+    :: CreativeFieldsListResponse
+creativeFieldsListResponse =
+    CreativeFieldsListResponse'
+    { _cflrNextPageToken = Nothing
+    , _cflrKind = "dfareporting#creativeFieldsListResponse"
+    , _cflrCreativeFields = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+cflrNextPageToken :: Lens' CreativeFieldsListResponse (Maybe Text)
+cflrNextPageToken
+  = lens _cflrNextPageToken
+      (\ s a -> s{_cflrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeFieldsListResponse\".
+cflrKind :: Lens' CreativeFieldsListResponse Text
+cflrKind = lens _cflrKind (\ s a -> s{_cflrKind = a})
+
+-- | Creative field collection.
+cflrCreativeFields :: Lens' CreativeFieldsListResponse [CreativeField]
+cflrCreativeFields
+  = lens _cflrCreativeFields
+      (\ s a -> s{_cflrCreativeFields = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CreativeFieldsListResponse where
+        parseJSON
+          = withObject "CreativeFieldsListResponse"
+              (\ o ->
+                 CreativeFieldsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#creativeFieldsListResponse")
+                     <*> (o .:? "creativeFields" .!= mempty))
+
+instance ToJSON CreativeFieldsListResponse where
+        toJSON CreativeFieldsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _cflrNextPageToken,
+                  Just ("kind" .= _cflrKind),
+                  ("creativeFields" .=) <$> _cflrCreativeFields])
+
+-- | Placement GenerateTags Response
+--
+-- /See:/ 'placementsGenerateTagsResponse' smart constructor.
+data PlacementsGenerateTagsResponse = PlacementsGenerateTagsResponse'
+    { _pgtrKind          :: !Text
+    , _pgtrPlacementTags :: !(Maybe [PlacementTag])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementsGenerateTagsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pgtrKind'
+--
+-- * 'pgtrPlacementTags'
+placementsGenerateTagsResponse
+    :: PlacementsGenerateTagsResponse
+placementsGenerateTagsResponse =
+    PlacementsGenerateTagsResponse'
+    { _pgtrKind = "dfareporting#placementsGenerateTagsResponse"
+    , _pgtrPlacementTags = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementsGenerateTagsResponse\".
+pgtrKind :: Lens' PlacementsGenerateTagsResponse Text
+pgtrKind = lens _pgtrKind (\ s a -> s{_pgtrKind = a})
+
+-- | Set of generated tags for the specified placements.
+pgtrPlacementTags :: Lens' PlacementsGenerateTagsResponse [PlacementTag]
+pgtrPlacementTags
+  = lens _pgtrPlacementTags
+      (\ s a -> s{_pgtrPlacementTags = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON PlacementsGenerateTagsResponse
+         where
+        parseJSON
+          = withObject "PlacementsGenerateTagsResponse"
+              (\ o ->
+                 PlacementsGenerateTagsResponse' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#placementsGenerateTagsResponse")
+                     <*> (o .:? "placementTags" .!= mempty))
+
+instance ToJSON PlacementsGenerateTagsResponse where
+        toJSON PlacementsGenerateTagsResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _pgtrKind),
+                  ("placementTags" .=) <$> _pgtrPlacementTags])
+
+-- | Creative Asset.
+--
+-- /See:/ 'creativeAsset' smart constructor.
+data CreativeAsset = CreativeAsset'
+    { _caaZIndex                :: !(Maybe (Textual Int32))
+    , _caaPushdown              :: !(Maybe Bool)
+    , _caaVideoDuration         :: !(Maybe (Textual Double))
+    , _caaOriginalBackup        :: !(Maybe Bool)
+    , _caaWindowMode            :: !(Maybe CreativeAssetWindowMode)
+    , _caaFlashVersion          :: !(Maybe (Textual Int32))
+    , _caaPushdownDuration      :: !(Maybe (Textual Double))
+    , _caaSize                  :: !(Maybe Size)
+    , _caaVerticallyLocked      :: !(Maybe Bool)
+    , _caaOffSet                :: !(Maybe OffSetPosition)
+    , _caaStreamingServingURL   :: !(Maybe Text)
+    , _caaZipFilesize           :: !(Maybe Text)
+    , _caaTransparency          :: !(Maybe Bool)
+    , _caaHideSelectionBoxes    :: !(Maybe Bool)
+    , _caaSSLCompliant          :: !(Maybe Bool)
+    , _caaFileSize              :: !(Maybe (Textual Int64))
+    , _caaAssetIdentifier       :: !(Maybe CreativeAssetId)
+    , _caaDurationType          :: !(Maybe CreativeAssetDurationType)
+    , _caaProgressiveServingURL :: !(Maybe Text)
+    , _caaActive                :: !(Maybe Bool)
+    , _caaRole                  :: !(Maybe CreativeAssetRole)
+    , _caaMimeType              :: !(Maybe Text)
+    , _caaPositionTopUnit       :: !(Maybe CreativeAssetPositionTopUnit)
+    , _caaPositionLeftUnit      :: !(Maybe CreativeAssetPositionLeftUnit)
+    , _caaAlignment             :: !(Maybe CreativeAssetAlignment)
+    , _caaExpandedDimension     :: !(Maybe Size)
+    , _caaZipFilename           :: !(Maybe Text)
+    , _caaActionScript3         :: !(Maybe Bool)
+    , _caaDisplayType           :: !(Maybe CreativeAssetDisplayType)
+    , _caaChildAssetType        :: !(Maybe CreativeAssetChildAssetType)
+    , _caaCollapsedSize         :: !(Maybe Size)
+    , _caaId                    :: !(Maybe (Textual Int64))
+    , _caaBitRate               :: !(Maybe (Textual Int32))
+    , _caaCustomStartTimeValue  :: !(Maybe (Textual Int32))
+    , _caaStartTimeType         :: !(Maybe CreativeAssetStartTimeType)
+    , _caaDuration              :: !(Maybe (Textual Int32))
+    , _caaArtworkType           :: !(Maybe CreativeAssetArtworkType)
+    , _caaHideFlashObjects      :: !(Maybe Bool)
+    , _caaDetectedFeatures      :: !(Maybe [CreativeAssetDetectedFeaturesItem])
+    , _caaBackupImageExit       :: !(Maybe CreativeCustomEvent)
+    , _caaPosition              :: !(Maybe OffSetPosition)
+    , _caaHorizontallyLocked    :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeAsset' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'caaZIndex'
+--
+-- * 'caaPushdown'
+--
+-- * 'caaVideoDuration'
+--
+-- * 'caaOriginalBackup'
+--
+-- * 'caaWindowMode'
+--
+-- * 'caaFlashVersion'
+--
+-- * 'caaPushdownDuration'
+--
+-- * 'caaSize'
+--
+-- * 'caaVerticallyLocked'
+--
+-- * 'caaOffSet'
+--
+-- * 'caaStreamingServingURL'
+--
+-- * 'caaZipFilesize'
+--
+-- * 'caaTransparency'
+--
+-- * 'caaHideSelectionBoxes'
+--
+-- * 'caaSSLCompliant'
+--
+-- * 'caaFileSize'
+--
+-- * 'caaAssetIdentifier'
+--
+-- * 'caaDurationType'
+--
+-- * 'caaProgressiveServingURL'
+--
+-- * 'caaActive'
+--
+-- * 'caaRole'
+--
+-- * 'caaMimeType'
+--
+-- * 'caaPositionTopUnit'
+--
+-- * 'caaPositionLeftUnit'
+--
+-- * 'caaAlignment'
+--
+-- * 'caaExpandedDimension'
+--
+-- * 'caaZipFilename'
+--
+-- * 'caaActionScript3'
+--
+-- * 'caaDisplayType'
+--
+-- * 'caaChildAssetType'
+--
+-- * 'caaCollapsedSize'
+--
+-- * 'caaId'
+--
+-- * 'caaBitRate'
+--
+-- * 'caaCustomStartTimeValue'
+--
+-- * 'caaStartTimeType'
+--
+-- * 'caaDuration'
+--
+-- * 'caaArtworkType'
+--
+-- * 'caaHideFlashObjects'
+--
+-- * 'caaDetectedFeatures'
+--
+-- * 'caaBackupImageExit'
+--
+-- * 'caaPosition'
+--
+-- * 'caaHorizontallyLocked'
+creativeAsset
+    :: CreativeAsset
+creativeAsset =
+    CreativeAsset'
+    { _caaZIndex = Nothing
+    , _caaPushdown = Nothing
+    , _caaVideoDuration = Nothing
+    , _caaOriginalBackup = Nothing
+    , _caaWindowMode = Nothing
+    , _caaFlashVersion = Nothing
+    , _caaPushdownDuration = Nothing
+    , _caaSize = Nothing
+    , _caaVerticallyLocked = Nothing
+    , _caaOffSet = Nothing
+    , _caaStreamingServingURL = Nothing
+    , _caaZipFilesize = Nothing
+    , _caaTransparency = Nothing
+    , _caaHideSelectionBoxes = Nothing
+    , _caaSSLCompliant = Nothing
+    , _caaFileSize = Nothing
+    , _caaAssetIdentifier = Nothing
+    , _caaDurationType = Nothing
+    , _caaProgressiveServingURL = Nothing
+    , _caaActive = Nothing
+    , _caaRole = Nothing
+    , _caaMimeType = Nothing
+    , _caaPositionTopUnit = Nothing
+    , _caaPositionLeftUnit = Nothing
+    , _caaAlignment = Nothing
+    , _caaExpandedDimension = Nothing
+    , _caaZipFilename = Nothing
+    , _caaActionScript3 = Nothing
+    , _caaDisplayType = Nothing
+    , _caaChildAssetType = Nothing
+    , _caaCollapsedSize = Nothing
+    , _caaId = Nothing
+    , _caaBitRate = Nothing
+    , _caaCustomStartTimeValue = Nothing
+    , _caaStartTimeType = Nothing
+    , _caaDuration = Nothing
+    , _caaArtworkType = Nothing
+    , _caaHideFlashObjects = Nothing
+    , _caaDetectedFeatures = Nothing
+    , _caaBackupImageExit = Nothing
+    , _caaPosition = Nothing
+    , _caaHorizontallyLocked = Nothing
+    }
+
+-- | zIndex value of an asset. This is a read-only field. Applicable to the
+-- following creative types: all RICH_MEDIA.Additionally, only applicable
+-- to assets whose displayType is NOT one of the following types:
+-- ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+caaZIndex :: Lens' CreativeAsset (Maybe Int32)
+caaZIndex
+  = lens _caaZIndex (\ s a -> s{_caaZIndex = a}) .
+      mapping _Coerce
+
+-- | Whether the asset pushes down other content. Applicable to the following
+-- creative types: all RICH_MEDIA. Additionally, only applicable when the
+-- asset offsets are 0, the collapsedSize.width matches size.width, and the
+-- collapsedSize.height is less than size.height.
+caaPushdown :: Lens' CreativeAsset (Maybe Bool)
+caaPushdown
+  = lens _caaPushdown (\ s a -> s{_caaPushdown = a})
+
+-- | Detected video duration for video asset. This is a read-only field.
+-- Applicable to the following creative types: INSTREAM_VIDEO and all
+-- VPAID.
+caaVideoDuration :: Lens' CreativeAsset (Maybe Double)
+caaVideoDuration
+  = lens _caaVideoDuration
+      (\ s a -> s{_caaVideoDuration = a})
+      . mapping _Coerce
+
+-- | Whether the backup asset is original or changed by the user in DCM.
+-- Applicable to the following creative types: all RICH_MEDIA.
+caaOriginalBackup :: Lens' CreativeAsset (Maybe Bool)
+caaOriginalBackup
+  = lens _caaOriginalBackup
+      (\ s a -> s{_caaOriginalBackup = a})
+
+-- | Window mode options for flash assets. Applicable to the following
+-- creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING,
+-- RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and
+-- RICH_MEDIA_INPAGE_FLOATING.
+caaWindowMode :: Lens' CreativeAsset (Maybe CreativeAssetWindowMode)
+caaWindowMode
+  = lens _caaWindowMode
+      (\ s a -> s{_caaWindowMode = a})
+
+-- | Flash version of the asset. This is a read-only field. Applicable to the
+-- following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID.
+-- Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
+caaFlashVersion :: Lens' CreativeAsset (Maybe Int32)
+caaFlashVersion
+  = lens _caaFlashVersion
+      (\ s a -> s{_caaFlashVersion = a})
+      . mapping _Coerce
+
+-- | Pushdown duration in seconds for an asset. Must be between 0 and 9.99.
+-- Applicable to the following creative types: all RICH_MEDIA.Additionally,
+-- only applicable when the asset pushdown field is true, the offsets are
+-- 0, the collapsedSize.width matches size.width, and the
+-- collapsedSize.height is less than size.height.
+caaPushdownDuration :: Lens' CreativeAsset (Maybe Double)
+caaPushdownDuration
+  = lens _caaPushdownDuration
+      (\ s a -> s{_caaPushdownDuration = a})
+      . mapping _Coerce
+
+-- | Size associated with this creative asset. This is a required field when
+-- applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank,
+-- this field will be automatically set using the actual size of the
+-- associated image asset. Applicable to the following creative types:
+-- DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all
+-- RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not
+-- HTML_IMAGE.
+caaSize :: Lens' CreativeAsset (Maybe Size)
+caaSize = lens _caaSize (\ s a -> s{_caaSize = a})
+
+-- | Whether the asset is vertically locked. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA.
+caaVerticallyLocked :: Lens' CreativeAsset (Maybe Bool)
+caaVerticallyLocked
+  = lens _caaVerticallyLocked
+      (\ s a -> s{_caaVerticallyLocked = a})
+
+-- | Offset position for an asset in collapsed mode. This is a read-only
+-- field. Applicable to the following creative types: all RICH_MEDIA and
+-- all VPAID. Additionally, only applicable to assets whose displayType is
+-- ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+caaOffSet :: Lens' CreativeAsset (Maybe OffSetPosition)
+caaOffSet
+  = lens _caaOffSet (\ s a -> s{_caaOffSet = a})
+
+-- | Streaming URL for video asset. This is a read-only field. Applicable to
+-- the following creative types: INSTREAM_VIDEO and all VPAID.
+caaStreamingServingURL :: Lens' CreativeAsset (Maybe Text)
+caaStreamingServingURL
+  = lens _caaStreamingServingURL
+      (\ s a -> s{_caaStreamingServingURL = a})
+
+-- | Size of zip file. This is a read-only field. Applicable to the following
+-- creative types: HTML5_BANNER.
+caaZipFilesize :: Lens' CreativeAsset (Maybe Text)
+caaZipFilesize
+  = lens _caaZipFilesize
+      (\ s a -> s{_caaZipFilesize = a})
+
+-- | Whether the asset is transparent. Applicable to the following creative
+-- types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
+caaTransparency :: Lens' CreativeAsset (Maybe Bool)
+caaTransparency
+  = lens _caaTransparency
+      (\ s a -> s{_caaTransparency = a})
+
+-- | Whether to hide selection boxes flag for an asset. Applicable to the
+-- following creative types: all RICH_MEDIA.
+caaHideSelectionBoxes :: Lens' CreativeAsset (Maybe Bool)
+caaHideSelectionBoxes
+  = lens _caaHideSelectionBoxes
+      (\ s a -> s{_caaHideSelectionBoxes = a})
+
+-- | Whether the asset is SSL-compliant. This is a read-only field.
+-- Applicable to all but the following creative types: all REDIRECT and
+-- TRACKING_TEXT.
+caaSSLCompliant :: Lens' CreativeAsset (Maybe Bool)
+caaSSLCompliant
+  = lens _caaSSLCompliant
+      (\ s a -> s{_caaSSLCompliant = a})
+
+-- | File size associated with this creative asset. This is a read-only
+-- field. Applicable to all but the following creative types: all REDIRECT
+-- and TRACKING_TEXT.
+caaFileSize :: Lens' CreativeAsset (Maybe Int64)
+caaFileSize
+  = lens _caaFileSize (\ s a -> s{_caaFileSize = a}) .
+      mapping _Coerce
+
+-- | Identifier of this asset. This is the same identifier returned during
+-- creative asset insert operation. This is a required field. Applicable to
+-- all but the following creative types: all REDIRECT and TRACKING_TEXT.
+caaAssetIdentifier :: Lens' CreativeAsset (Maybe CreativeAssetId)
+caaAssetIdentifier
+  = lens _caaAssetIdentifier
+      (\ s a -> s{_caaAssetIdentifier = a})
+
+-- | Duration type for which an asset will be displayed. Applicable to the
+-- following creative types: all RICH_MEDIA.
+caaDurationType :: Lens' CreativeAsset (Maybe CreativeAssetDurationType)
+caaDurationType
+  = lens _caaDurationType
+      (\ s a -> s{_caaDurationType = a})
+
+-- | Progressive URL for video asset. This is a read-only field. Applicable
+-- to the following creative types: INSTREAM_VIDEO and all VPAID.
+caaProgressiveServingURL :: Lens' CreativeAsset (Maybe Text)
+caaProgressiveServingURL
+  = lens _caaProgressiveServingURL
+      (\ s a -> s{_caaProgressiveServingURL = a})
+
+-- | Whether the video asset is active. This is a read-only field for
+-- VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative
+-- types: INSTREAM_VIDEO and all VPAID.
+caaActive :: Lens' CreativeAsset (Maybe Bool)
+caaActive
+  = lens _caaActive (\ s a -> s{_caaActive = a})
+
+-- | Role of the asset in relation to creative. Applicable to all but the
+-- following creative types: all REDIRECT and TRACKING_TEXT. This is a
+-- required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER,
+-- IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple
+-- primary assets), and all VPAID creatives. BACKUP_IMAGE applies to
+-- FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
+-- Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
+-- ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
+-- OTHER refers to assets from sources other than DCM, such as Studio
+-- uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
+-- PARENT_VIDEO refers to videos uploaded by the user in DCM and is
+-- applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
+-- TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO
+-- assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO
+-- creatives. ALTERNATE_VIDEO refers to the DCM representation of child
+-- asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO
+-- creatives. These cannot be added or removed within DCM. For
+-- VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and
+-- ALTERNATE_VIDEO assets that are marked active serve as backup in case
+-- the VPAID creative cannot be served. Only PARENT_VIDEO assets can be
+-- added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative.
+caaRole :: Lens' CreativeAsset (Maybe CreativeAssetRole)
+caaRole = lens _caaRole (\ s a -> s{_caaRole = a})
+
+-- | Detected MIME type for video asset. This is a read-only field.
+-- Applicable to the following creative types: INSTREAM_VIDEO and all
+-- VPAID.
+caaMimeType :: Lens' CreativeAsset (Maybe Text)
+caaMimeType
+  = lens _caaMimeType (\ s a -> s{_caaMimeType = a})
+
+-- | Offset top unit for an asset. This is a read-only field if the asset
+-- displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following
+-- creative types: all RICH_MEDIA.
+caaPositionTopUnit :: Lens' CreativeAsset (Maybe CreativeAssetPositionTopUnit)
+caaPositionTopUnit
+  = lens _caaPositionTopUnit
+      (\ s a -> s{_caaPositionTopUnit = a})
+
+-- | Offset left unit for an asset. This is a read-only field. Applicable to
+-- the following creative types: all RICH_MEDIA.
+caaPositionLeftUnit :: Lens' CreativeAsset (Maybe CreativeAssetPositionLeftUnit)
+caaPositionLeftUnit
+  = lens _caaPositionLeftUnit
+      (\ s a -> s{_caaPositionLeftUnit = a})
+
+-- | Possible alignments for an asset. This is a read-only field. Applicable
+-- to the following creative types:
+-- RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
+caaAlignment :: Lens' CreativeAsset (Maybe CreativeAssetAlignment)
+caaAlignment
+  = lens _caaAlignment (\ s a -> s{_caaAlignment = a})
+
+-- | Detected expanded dimension for video asset. This is a read-only field.
+-- Applicable to the following creative types: INSTREAM_VIDEO and all
+-- VPAID.
+caaExpandedDimension :: Lens' CreativeAsset (Maybe Size)
+caaExpandedDimension
+  = lens _caaExpandedDimension
+      (\ s a -> s{_caaExpandedDimension = a})
+
+-- | File name of zip file. This is a read-only field. Applicable to the
+-- following creative types: HTML5_BANNER.
+caaZipFilename :: Lens' CreativeAsset (Maybe Text)
+caaZipFilename
+  = lens _caaZipFilename
+      (\ s a -> s{_caaZipFilename = a})
+
+-- | Whether ActionScript3 is enabled for the flash asset. This is a
+-- read-only field. Applicable to the following creative type:
+-- FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not
+-- HTML_IMAGE.
+caaActionScript3 :: Lens' CreativeAsset (Maybe Bool)
+caaActionScript3
+  = lens _caaActionScript3
+      (\ s a -> s{_caaActionScript3 = a})
+
+-- | Type of rich media asset. This is a read-only field. Applicable to the
+-- following creative types: all RICH_MEDIA.
+caaDisplayType :: Lens' CreativeAsset (Maybe CreativeAssetDisplayType)
+caaDisplayType
+  = lens _caaDisplayType
+      (\ s a -> s{_caaDisplayType = a})
+
+-- | Rich media child asset type. This is a read-only field. Applicable to
+-- the following creative types: all VPAID.
+caaChildAssetType :: Lens' CreativeAsset (Maybe CreativeAssetChildAssetType)
+caaChildAssetType
+  = lens _caaChildAssetType
+      (\ s a -> s{_caaChildAssetType = a})
+
+-- | Size of an asset when collapsed. This is a read-only field. Applicable
+-- to the following creative types: all RICH_MEDIA and all VPAID.
+-- Additionally, applicable to assets whose displayType is
+-- ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+caaCollapsedSize :: Lens' CreativeAsset (Maybe Size)
+caaCollapsedSize
+  = lens _caaCollapsedSize
+      (\ s a -> s{_caaCollapsedSize = a})
+
+-- | Numeric ID of this creative asset. This is a required field and should
+-- not be modified. Applicable to all but the following creative types: all
+-- REDIRECT and TRACKING_TEXT.
+caaId :: Lens' CreativeAsset (Maybe Int64)
+caaId
+  = lens _caaId (\ s a -> s{_caaId = a}) .
+      mapping _Coerce
+
+-- | Detected bit-rate for video asset. This is a read-only field. Applicable
+-- to the following creative types: INSTREAM_VIDEO and all VPAID.
+caaBitRate :: Lens' CreativeAsset (Maybe Int32)
+caaBitRate
+  = lens _caaBitRate (\ s a -> s{_caaBitRate = a}) .
+      mapping _Coerce
+
+-- | Custom start time in seconds for making the asset visible. Applicable to
+-- the following creative types: all RICH_MEDIA.
+caaCustomStartTimeValue :: Lens' CreativeAsset (Maybe Int32)
+caaCustomStartTimeValue
+  = lens _caaCustomStartTimeValue
+      (\ s a -> s{_caaCustomStartTimeValue = a})
+      . mapping _Coerce
+
+-- | Initial wait time type before making the asset visible. Applicable to
+-- the following creative types: all RICH_MEDIA.
+caaStartTimeType :: Lens' CreativeAsset (Maybe CreativeAssetStartTimeType)
+caaStartTimeType
+  = lens _caaStartTimeType
+      (\ s a -> s{_caaStartTimeType = a})
+
+-- | Duration in seconds for which an asset will be displayed. Applicable to
+-- the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+caaDuration :: Lens' CreativeAsset (Maybe Int32)
+caaDuration
+  = lens _caaDuration (\ s a -> s{_caaDuration = a}) .
+      mapping _Coerce
+
+-- | Artwork type of rich media creative. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA.
+caaArtworkType :: Lens' CreativeAsset (Maybe CreativeAssetArtworkType)
+caaArtworkType
+  = lens _caaArtworkType
+      (\ s a -> s{_caaArtworkType = a})
+
+-- | Whether to hide Flash objects flag for an asset. Applicable to the
+-- following creative types: all RICH_MEDIA.
+caaHideFlashObjects :: Lens' CreativeAsset (Maybe Bool)
+caaHideFlashObjects
+  = lens _caaHideFlashObjects
+      (\ s a -> s{_caaHideFlashObjects = a})
+
+-- | List of feature dependencies for the creative asset that are detected by
+-- DCM. Feature dependencies are features that a browser must be able to
+-- support in order to render your HTML5 creative correctly. This is a
+-- read-only, auto-generated field. Applicable to the following creative
+-- types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type
+-- is not HTML_IMAGE.
+caaDetectedFeatures :: Lens' CreativeAsset [CreativeAssetDetectedFeaturesItem]
+caaDetectedFeatures
+  = lens _caaDetectedFeatures
+      (\ s a -> s{_caaDetectedFeatures = a})
+      . _Default
+      . _Coerce
+
+-- | Exit event configured for the backup image. Applicable to the following
+-- creative types: all RICH_MEDIA.
+caaBackupImageExit :: Lens' CreativeAsset (Maybe CreativeCustomEvent)
+caaBackupImageExit
+  = lens _caaBackupImageExit
+      (\ s a -> s{_caaBackupImageExit = a})
+
+-- | Offset position for an asset. Applicable to the following creative
+-- types: all RICH_MEDIA.
+caaPosition :: Lens' CreativeAsset (Maybe OffSetPosition)
+caaPosition
+  = lens _caaPosition (\ s a -> s{_caaPosition = a})
+
+-- | Whether the asset is horizontally locked. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA.
+caaHorizontallyLocked :: Lens' CreativeAsset (Maybe Bool)
+caaHorizontallyLocked
+  = lens _caaHorizontallyLocked
+      (\ s a -> s{_caaHorizontallyLocked = a})
+
+instance FromJSON CreativeAsset where
+        parseJSON
+          = withObject "CreativeAsset"
+              (\ o ->
+                 CreativeAsset' <$>
+                   (o .:? "zIndex") <*> (o .:? "pushdown") <*>
+                     (o .:? "videoDuration")
+                     <*> (o .:? "originalBackup")
+                     <*> (o .:? "windowMode")
+                     <*> (o .:? "flashVersion")
+                     <*> (o .:? "pushdownDuration")
+                     <*> (o .:? "size")
+                     <*> (o .:? "verticallyLocked")
+                     <*> (o .:? "offset")
+                     <*> (o .:? "streamingServingUrl")
+                     <*> (o .:? "zipFilesize")
+                     <*> (o .:? "transparency")
+                     <*> (o .:? "hideSelectionBoxes")
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "fileSize")
+                     <*> (o .:? "assetIdentifier")
+                     <*> (o .:? "durationType")
+                     <*> (o .:? "progressiveServingUrl")
+                     <*> (o .:? "active")
+                     <*> (o .:? "role")
+                     <*> (o .:? "mimeType")
+                     <*> (o .:? "positionTopUnit")
+                     <*> (o .:? "positionLeftUnit")
+                     <*> (o .:? "alignment")
+                     <*> (o .:? "expandedDimension")
+                     <*> (o .:? "zipFilename")
+                     <*> (o .:? "actionScript3")
+                     <*> (o .:? "displayType")
+                     <*> (o .:? "childAssetType")
+                     <*> (o .:? "collapsedSize")
+                     <*> (o .:? "id")
+                     <*> (o .:? "bitRate")
+                     <*> (o .:? "customStartTimeValue")
+                     <*> (o .:? "startTimeType")
+                     <*> (o .:? "duration")
+                     <*> (o .:? "artworkType")
+                     <*> (o .:? "hideFlashObjects")
+                     <*> (o .:? "detectedFeatures" .!= mempty)
+                     <*> (o .:? "backupImageExit")
+                     <*> (o .:? "position")
+                     <*> (o .:? "horizontallyLocked"))
+
+instance ToJSON CreativeAsset where
+        toJSON CreativeAsset'{..}
+          = object
+              (catMaybes
+                 [("zIndex" .=) <$> _caaZIndex,
+                  ("pushdown" .=) <$> _caaPushdown,
+                  ("videoDuration" .=) <$> _caaVideoDuration,
+                  ("originalBackup" .=) <$> _caaOriginalBackup,
+                  ("windowMode" .=) <$> _caaWindowMode,
+                  ("flashVersion" .=) <$> _caaFlashVersion,
+                  ("pushdownDuration" .=) <$> _caaPushdownDuration,
+                  ("size" .=) <$> _caaSize,
+                  ("verticallyLocked" .=) <$> _caaVerticallyLocked,
+                  ("offset" .=) <$> _caaOffSet,
+                  ("streamingServingUrl" .=) <$>
+                    _caaStreamingServingURL,
+                  ("zipFilesize" .=) <$> _caaZipFilesize,
+                  ("transparency" .=) <$> _caaTransparency,
+                  ("hideSelectionBoxes" .=) <$> _caaHideSelectionBoxes,
+                  ("sslCompliant" .=) <$> _caaSSLCompliant,
+                  ("fileSize" .=) <$> _caaFileSize,
+                  ("assetIdentifier" .=) <$> _caaAssetIdentifier,
+                  ("durationType" .=) <$> _caaDurationType,
+                  ("progressiveServingUrl" .=) <$>
+                    _caaProgressiveServingURL,
+                  ("active" .=) <$> _caaActive,
+                  ("role" .=) <$> _caaRole,
+                  ("mimeType" .=) <$> _caaMimeType,
+                  ("positionTopUnit" .=) <$> _caaPositionTopUnit,
+                  ("positionLeftUnit" .=) <$> _caaPositionLeftUnit,
+                  ("alignment" .=) <$> _caaAlignment,
+                  ("expandedDimension" .=) <$> _caaExpandedDimension,
+                  ("zipFilename" .=) <$> _caaZipFilename,
+                  ("actionScript3" .=) <$> _caaActionScript3,
+                  ("displayType" .=) <$> _caaDisplayType,
+                  ("childAssetType" .=) <$> _caaChildAssetType,
+                  ("collapsedSize" .=) <$> _caaCollapsedSize,
+                  ("id" .=) <$> _caaId, ("bitRate" .=) <$> _caaBitRate,
+                  ("customStartTimeValue" .=) <$>
+                    _caaCustomStartTimeValue,
+                  ("startTimeType" .=) <$> _caaStartTimeType,
+                  ("duration" .=) <$> _caaDuration,
+                  ("artworkType" .=) <$> _caaArtworkType,
+                  ("hideFlashObjects" .=) <$> _caaHideFlashObjects,
+                  ("detectedFeatures" .=) <$> _caaDetectedFeatures,
+                  ("backupImageExit" .=) <$> _caaBackupImageExit,
+                  ("position" .=) <$> _caaPosition,
+                  ("horizontallyLocked" .=) <$>
+                    _caaHorizontallyLocked])
+
+-- | Placement List Response
+--
+-- /See:/ 'placementsListResponse' smart constructor.
+data PlacementsListResponse = PlacementsListResponse'
+    { _plaNextPageToken :: !(Maybe Text)
+    , _plaKind          :: !Text
+    , _plaPlacements    :: !(Maybe [Placement])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plaNextPageToken'
+--
+-- * 'plaKind'
+--
+-- * 'plaPlacements'
+placementsListResponse
+    :: PlacementsListResponse
+placementsListResponse =
+    PlacementsListResponse'
+    { _plaNextPageToken = Nothing
+    , _plaKind = "dfareporting#placementsListResponse"
+    , _plaPlacements = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+plaNextPageToken :: Lens' PlacementsListResponse (Maybe Text)
+plaNextPageToken
+  = lens _plaNextPageToken
+      (\ s a -> s{_plaNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementsListResponse\".
+plaKind :: Lens' PlacementsListResponse Text
+plaKind = lens _plaKind (\ s a -> s{_plaKind = a})
+
+-- | Placement collection.
+plaPlacements :: Lens' PlacementsListResponse [Placement]
+plaPlacements
+  = lens _plaPlacements
+      (\ s a -> s{_plaPlacements = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON PlacementsListResponse where
+        parseJSON
+          = withObject "PlacementsListResponse"
+              (\ o ->
+                 PlacementsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#placementsListResponse")
+                     <*> (o .:? "placements" .!= mempty))
+
+instance ToJSON PlacementsListResponse where
+        toJSON PlacementsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _plaNextPageToken,
+                  Just ("kind" .= _plaKind),
+                  ("placements" .=) <$> _plaPlacements])
+
+-- | The report\'s schedule. Can only be set if the report\'s \'dateRange\'
+-- is a relative date range and the relative date range is not \"TODAY\".
+--
+-- /See:/ 'reportSchedule' smart constructor.
+data ReportSchedule = ReportSchedule'
+    { _rsEvery             :: !(Maybe (Textual Int32))
+    , _rsActive            :: !(Maybe Bool)
+    , _rsRepeats           :: !(Maybe Text)
+    , _rsStartDate         :: !(Maybe Date')
+    , _rsExpirationDate    :: !(Maybe Date')
+    , _rsRunsOnDayOfMonth  :: !(Maybe ReportScheduleRunsOnDayOfMonth)
+    , _rsRepeatsOnWeekDays :: !(Maybe [ReportScheduleRepeatsOnWeekDaysItem])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportSchedule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rsEvery'
+--
+-- * 'rsActive'
+--
+-- * 'rsRepeats'
+--
+-- * 'rsStartDate'
+--
+-- * 'rsExpirationDate'
+--
+-- * 'rsRunsOnDayOfMonth'
+--
+-- * 'rsRepeatsOnWeekDays'
+reportSchedule
+    :: ReportSchedule
+reportSchedule =
+    ReportSchedule'
+    { _rsEvery = Nothing
+    , _rsActive = Nothing
+    , _rsRepeats = Nothing
+    , _rsStartDate = Nothing
+    , _rsExpirationDate = Nothing
+    , _rsRunsOnDayOfMonth = Nothing
+    , _rsRepeatsOnWeekDays = Nothing
+    }
+
+-- | Defines every how many days, weeks or months the report should be run.
+-- Needs to be set when \"repeats\" is either \"DAILY\", \"WEEKLY\" or
+-- \"MONTHLY\".
+rsEvery :: Lens' ReportSchedule (Maybe Int32)
+rsEvery
+  = lens _rsEvery (\ s a -> s{_rsEvery = a}) .
+      mapping _Coerce
+
+-- | Whether the schedule is active or not. Must be set to either true or
+-- false.
+rsActive :: Lens' ReportSchedule (Maybe Bool)
+rsActive = lens _rsActive (\ s a -> s{_rsActive = a})
+
+-- | The interval for which the report is repeated. Note: - \"DAILY\" also
+-- requires field \"every\" to be set. - \"WEEKLY\" also requires fields
+-- \"every\" and \"repeatsOnWeekDays\" to be set. - \"MONTHLY\" also
+-- requires fields \"every\" and \"runsOnDayOfMonth\" to be set.
+rsRepeats :: Lens' ReportSchedule (Maybe Text)
+rsRepeats
+  = lens _rsRepeats (\ s a -> s{_rsRepeats = a})
+
+-- | Start date of date range for which scheduled reports should be run.
+rsStartDate :: Lens' ReportSchedule (Maybe Day)
+rsStartDate
+  = lens _rsStartDate (\ s a -> s{_rsStartDate = a}) .
+      mapping _Date
+
+-- | The expiration date when the scheduled report stops running.
+rsExpirationDate :: Lens' ReportSchedule (Maybe Day)
+rsExpirationDate
+  = lens _rsExpirationDate
+      (\ s a -> s{_rsExpirationDate = a})
+      . mapping _Date
+
+-- | Enum to define for \"MONTHLY\" scheduled reports whether reports should
+-- be repeated on the same day of the month as \"startDate\" or the same
+-- day of the week of the month. Example: If \'startDate\' is Monday, April
+-- 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on
+-- the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent
+-- reports on the first Monday of the month.
+rsRunsOnDayOfMonth :: Lens' ReportSchedule (Maybe ReportScheduleRunsOnDayOfMonth)
+rsRunsOnDayOfMonth
+  = lens _rsRunsOnDayOfMonth
+      (\ s a -> s{_rsRunsOnDayOfMonth = a})
+
+-- | List of week days \"WEEKLY\" on which scheduled reports should run.
+rsRepeatsOnWeekDays :: Lens' ReportSchedule [ReportScheduleRepeatsOnWeekDaysItem]
+rsRepeatsOnWeekDays
+  = lens _rsRepeatsOnWeekDays
+      (\ s a -> s{_rsRepeatsOnWeekDays = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportSchedule where
+        parseJSON
+          = withObject "ReportSchedule"
+              (\ o ->
+                 ReportSchedule' <$>
+                   (o .:? "every") <*> (o .:? "active") <*>
+                     (o .:? "repeats")
+                     <*> (o .:? "startDate")
+                     <*> (o .:? "expirationDate")
+                     <*> (o .:? "runsOnDayOfMonth")
+                     <*> (o .:? "repeatsOnWeekDays" .!= mempty))
+
+instance ToJSON ReportSchedule where
+        toJSON ReportSchedule'{..}
+          = object
+              (catMaybes
+                 [("every" .=) <$> _rsEvery,
+                  ("active" .=) <$> _rsActive,
+                  ("repeats" .=) <$> _rsRepeats,
+                  ("startDate" .=) <$> _rsStartDate,
+                  ("expirationDate" .=) <$> _rsExpirationDate,
+                  ("runsOnDayOfMonth" .=) <$> _rsRunsOnDayOfMonth,
+                  ("repeatsOnWeekDays" .=) <$> _rsRepeatsOnWeekDays])
+
+-- | The report criteria for a report of type \"PATH_TO_CONVERSION\".
+--
+-- /See:/ 'reportPathToConversionCriteria' smart constructor.
+data ReportPathToConversionCriteria = ReportPathToConversionCriteria'
+    { _rptccReportProperties          :: !(Maybe ReportPathToConversionCriteriaReportProperties)
+    , _rptccMetricNames               :: !(Maybe [Text])
+    , _rptccCustomRichMediaEvents     :: !(Maybe [DimensionValue])
+    , _rptccDateRange                 :: !(Maybe DateRange)
+    , _rptccConversionDimensions      :: !(Maybe [SortedDimension])
+    , _rptccCustomFloodlightVariables :: !(Maybe [SortedDimension])
+    , _rptccFloodlightConfigId        :: !(Maybe DimensionValue)
+    , _rptccActivityFilters           :: !(Maybe [DimensionValue])
+    , _rptccPerInteractionDimensions  :: !(Maybe [SortedDimension])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportPathToConversionCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rptccReportProperties'
+--
+-- * 'rptccMetricNames'
+--
+-- * 'rptccCustomRichMediaEvents'
+--
+-- * 'rptccDateRange'
+--
+-- * 'rptccConversionDimensions'
+--
+-- * 'rptccCustomFloodlightVariables'
+--
+-- * 'rptccFloodlightConfigId'
+--
+-- * 'rptccActivityFilters'
+--
+-- * 'rptccPerInteractionDimensions'
+reportPathToConversionCriteria
+    :: ReportPathToConversionCriteria
+reportPathToConversionCriteria =
+    ReportPathToConversionCriteria'
+    { _rptccReportProperties = Nothing
+    , _rptccMetricNames = Nothing
+    , _rptccCustomRichMediaEvents = Nothing
+    , _rptccDateRange = Nothing
+    , _rptccConversionDimensions = Nothing
+    , _rptccCustomFloodlightVariables = Nothing
+    , _rptccFloodlightConfigId = Nothing
+    , _rptccActivityFilters = Nothing
+    , _rptccPerInteractionDimensions = Nothing
+    }
+
+-- | The properties of the report.
+rptccReportProperties :: Lens' ReportPathToConversionCriteria (Maybe ReportPathToConversionCriteriaReportProperties)
+rptccReportProperties
+  = lens _rptccReportProperties
+      (\ s a -> s{_rptccReportProperties = a})
+
+-- | The list of names of metrics the report should include.
+rptccMetricNames :: Lens' ReportPathToConversionCriteria [Text]
+rptccMetricNames
+  = lens _rptccMetricNames
+      (\ s a -> s{_rptccMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | The list of custom rich media events to include.
+rptccCustomRichMediaEvents :: Lens' ReportPathToConversionCriteria [DimensionValue]
+rptccCustomRichMediaEvents
+  = lens _rptccCustomRichMediaEvents
+      (\ s a -> s{_rptccCustomRichMediaEvents = a})
+      . _Default
+      . _Coerce
+
+-- | The date range this report should be run for.
+rptccDateRange :: Lens' ReportPathToConversionCriteria (Maybe DateRange)
+rptccDateRange
+  = lens _rptccDateRange
+      (\ s a -> s{_rptccDateRange = a})
+
+-- | The list of conversion dimensions the report should include.
+rptccConversionDimensions :: Lens' ReportPathToConversionCriteria [SortedDimension]
+rptccConversionDimensions
+  = lens _rptccConversionDimensions
+      (\ s a -> s{_rptccConversionDimensions = a})
+      . _Default
+      . _Coerce
+
+-- | The list of custom floodlight variables the report should include.
+rptccCustomFloodlightVariables :: Lens' ReportPathToConversionCriteria [SortedDimension]
+rptccCustomFloodlightVariables
+  = lens _rptccCustomFloodlightVariables
+      (\ s a -> s{_rptccCustomFloodlightVariables = a})
+      . _Default
+      . _Coerce
+
+-- | The floodlight ID for which to show data in this report. All advertisers
+-- associated with that ID will automatically be added. The dimension of
+-- the value needs to be \'dfa:floodlightConfigId\'.
+rptccFloodlightConfigId :: Lens' ReportPathToConversionCriteria (Maybe DimensionValue)
+rptccFloodlightConfigId
+  = lens _rptccFloodlightConfigId
+      (\ s a -> s{_rptccFloodlightConfigId = a})
+
+-- | The list of \'dfa:activity\' values to filter on.
+rptccActivityFilters :: Lens' ReportPathToConversionCriteria [DimensionValue]
+rptccActivityFilters
+  = lens _rptccActivityFilters
+      (\ s a -> s{_rptccActivityFilters = a})
+      . _Default
+      . _Coerce
+
+-- | The list of per interaction dimensions the report should include.
+rptccPerInteractionDimensions :: Lens' ReportPathToConversionCriteria [SortedDimension]
+rptccPerInteractionDimensions
+  = lens _rptccPerInteractionDimensions
+      (\ s a -> s{_rptccPerInteractionDimensions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportPathToConversionCriteria
+         where
+        parseJSON
+          = withObject "ReportPathToConversionCriteria"
+              (\ o ->
+                 ReportPathToConversionCriteria' <$>
+                   (o .:? "reportProperties") <*>
+                     (o .:? "metricNames" .!= mempty)
+                     <*> (o .:? "customRichMediaEvents" .!= mempty)
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "conversionDimensions" .!= mempty)
+                     <*> (o .:? "customFloodlightVariables" .!= mempty)
+                     <*> (o .:? "floodlightConfigId")
+                     <*> (o .:? "activityFilters" .!= mempty)
+                     <*> (o .:? "perInteractionDimensions" .!= mempty))
+
+instance ToJSON ReportPathToConversionCriteria where
+        toJSON ReportPathToConversionCriteria'{..}
+          = object
+              (catMaybes
+                 [("reportProperties" .=) <$> _rptccReportProperties,
+                  ("metricNames" .=) <$> _rptccMetricNames,
+                  ("customRichMediaEvents" .=) <$>
+                    _rptccCustomRichMediaEvents,
+                  ("dateRange" .=) <$> _rptccDateRange,
+                  ("conversionDimensions" .=) <$>
+                    _rptccConversionDimensions,
+                  ("customFloodlightVariables" .=) <$>
+                    _rptccCustomFloodlightVariables,
+                  ("floodlightConfigId" .=) <$>
+                    _rptccFloodlightConfigId,
+                  ("activityFilters" .=) <$> _rptccActivityFilters,
+                  ("perInteractionDimensions" .=) <$>
+                    _rptccPerInteractionDimensions])
+
+-- | Metro List Response
+--
+-- /See:/ 'metrosListResponse' smart constructor.
+data MetrosListResponse = MetrosListResponse'
+    { _mlrKind   :: !Text
+    , _mlrMetros :: !(Maybe [Metro])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MetrosListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mlrKind'
+--
+-- * 'mlrMetros'
+metrosListResponse
+    :: MetrosListResponse
+metrosListResponse =
+    MetrosListResponse'
+    { _mlrKind = "dfareporting#metrosListResponse"
+    , _mlrMetros = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#metrosListResponse\".
+mlrKind :: Lens' MetrosListResponse Text
+mlrKind = lens _mlrKind (\ s a -> s{_mlrKind = a})
+
+-- | Metro collection.
+mlrMetros :: Lens' MetrosListResponse [Metro]
+mlrMetros
+  = lens _mlrMetros (\ s a -> s{_mlrMetros = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON MetrosListResponse where
+        parseJSON
+          = withObject "MetrosListResponse"
+              (\ o ->
+                 MetrosListResponse' <$>
+                   (o .:? "kind" .!= "dfareporting#metrosListResponse")
+                     <*> (o .:? "metros" .!= mempty))
+
+instance ToJSON MetrosListResponse where
+        toJSON MetrosListResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _mlrKind),
+                  ("metros" .=) <$> _mlrMetros])
+
+-- | Insert Conversions Response.
+--
+-- /See:/ 'conversionsBatchInsertResponse' smart constructor.
+data ConversionsBatchInsertResponse = ConversionsBatchInsertResponse'
+    { _cbirbStatus      :: !(Maybe [ConversionStatus])
+    , _cbirbKind        :: !Text
+    , _cbirbHasFailures :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConversionsBatchInsertResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cbirbStatus'
+--
+-- * 'cbirbKind'
+--
+-- * 'cbirbHasFailures'
+conversionsBatchInsertResponse
+    :: ConversionsBatchInsertResponse
+conversionsBatchInsertResponse =
+    ConversionsBatchInsertResponse'
+    { _cbirbStatus = Nothing
+    , _cbirbKind = "dfareporting#conversionsBatchInsertResponse"
+    , _cbirbHasFailures = Nothing
+    }
+
+-- | The status of each conversion\'s insertion status. The status is
+-- returned in the same order that conversions are inserted.
+cbirbStatus :: Lens' ConversionsBatchInsertResponse [ConversionStatus]
+cbirbStatus
+  = lens _cbirbStatus (\ s a -> s{_cbirbStatus = a}) .
+      _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#conversionsBatchInsertResponse\".
+cbirbKind :: Lens' ConversionsBatchInsertResponse Text
+cbirbKind
+  = lens _cbirbKind (\ s a -> s{_cbirbKind = a})
+
+-- | Indicates that some or all conversions failed to insert.
+cbirbHasFailures :: Lens' ConversionsBatchInsertResponse (Maybe Bool)
+cbirbHasFailures
+  = lens _cbirbHasFailures
+      (\ s a -> s{_cbirbHasFailures = a})
+
+instance FromJSON ConversionsBatchInsertResponse
+         where
+        parseJSON
+          = withObject "ConversionsBatchInsertResponse"
+              (\ o ->
+                 ConversionsBatchInsertResponse' <$>
+                   (o .:? "status" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#conversionsBatchInsertResponse")
+                     <*> (o .:? "hasFailures"))
+
+instance ToJSON ConversionsBatchInsertResponse where
+        toJSON ConversionsBatchInsertResponse'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _cbirbStatus,
+                  Just ("kind" .= _cbirbKind),
+                  ("hasFailures" .=) <$> _cbirbHasFailures])
+
+-- | Order document List Response
+--
+-- /See:/ 'orderDocumentsListResponse' smart constructor.
+data OrderDocumentsListResponse = OrderDocumentsListResponse'
+    { _odlrNextPageToken  :: !(Maybe Text)
+    , _odlrKind           :: !Text
+    , _odlrOrderDocuments :: !(Maybe [OrderDocument])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrderDocumentsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'odlrNextPageToken'
+--
+-- * 'odlrKind'
+--
+-- * 'odlrOrderDocuments'
+orderDocumentsListResponse
+    :: OrderDocumentsListResponse
+orderDocumentsListResponse =
+    OrderDocumentsListResponse'
+    { _odlrNextPageToken = Nothing
+    , _odlrKind = "dfareporting#orderDocumentsListResponse"
+    , _odlrOrderDocuments = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+odlrNextPageToken :: Lens' OrderDocumentsListResponse (Maybe Text)
+odlrNextPageToken
+  = lens _odlrNextPageToken
+      (\ s a -> s{_odlrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#orderDocumentsListResponse\".
+odlrKind :: Lens' OrderDocumentsListResponse Text
+odlrKind = lens _odlrKind (\ s a -> s{_odlrKind = a})
+
+-- | Order document collection
+odlrOrderDocuments :: Lens' OrderDocumentsListResponse [OrderDocument]
+odlrOrderDocuments
+  = lens _odlrOrderDocuments
+      (\ s a -> s{_odlrOrderDocuments = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON OrderDocumentsListResponse where
+        parseJSON
+          = withObject "OrderDocumentsListResponse"
+              (\ o ->
+                 OrderDocumentsListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#orderDocumentsListResponse")
+                     <*> (o .:? "orderDocuments" .!= mempty))
+
+instance ToJSON OrderDocumentsListResponse where
+        toJSON OrderDocumentsListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _odlrNextPageToken,
+                  Just ("kind" .= _odlrKind),
+                  ("orderDocuments" .=) <$> _odlrOrderDocuments])
+
+-- | Represents a recipient.
+--
+-- /See:/ 'recipient' smart constructor.
+data Recipient = Recipient'
+    { _recEmail        :: !(Maybe Text)
+    , _recKind         :: !Text
+    , _recDeliveryType :: !(Maybe RecipientDeliveryType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Recipient' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'recEmail'
+--
+-- * 'recKind'
+--
+-- * 'recDeliveryType'
+recipient
+    :: Recipient
+recipient =
+    Recipient'
+    { _recEmail = Nothing
+    , _recKind = "dfareporting#recipient"
+    , _recDeliveryType = Nothing
+    }
+
+-- | The email address of the recipient.
+recEmail :: Lens' Recipient (Maybe Text)
+recEmail = lens _recEmail (\ s a -> s{_recEmail = a})
+
+-- | The kind of resource this is, in this case dfareporting#recipient.
+recKind :: Lens' Recipient Text
+recKind = lens _recKind (\ s a -> s{_recKind = a})
+
+-- | The delivery type for the recipient.
+recDeliveryType :: Lens' Recipient (Maybe RecipientDeliveryType)
+recDeliveryType
+  = lens _recDeliveryType
+      (\ s a -> s{_recDeliveryType = a})
+
+instance FromJSON Recipient where
+        parseJSON
+          = withObject "Recipient"
+              (\ o ->
+                 Recipient' <$>
+                   (o .:? "email") <*>
+                     (o .:? "kind" .!= "dfareporting#recipient")
+                     <*> (o .:? "deliveryType"))
+
+instance ToJSON Recipient where
+        toJSON Recipient'{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _recEmail,
+                  Just ("kind" .= _recKind),
+                  ("deliveryType" .=) <$> _recDeliveryType])
+
+-- | Contains properties of a site.
+--
+-- /See:/ 'site' smart constructor.
+data Site = Site'
+    { _ssKind                          :: !Text
+    , _ssKeyName                       :: !(Maybe Text)
+    , _ssSiteContacts                  :: !(Maybe [SiteContact])
+    , _ssSiteSettings                  :: !(Maybe SiteSettings)
+    , _ssIdDimensionValue              :: !(Maybe DimensionValue)
+    , _ssDirectorySiteIdDimensionValue :: !(Maybe DimensionValue)
+    , _ssAccountId                     :: !(Maybe (Textual Int64))
+    , _ssName                          :: !(Maybe Text)
+    , _ssDirectorySiteId               :: !(Maybe (Textual Int64))
+    , _ssId                            :: !(Maybe (Textual Int64))
+    , _ssSubAccountId                  :: !(Maybe (Textual Int64))
+    , _ssApproved                      :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Site' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssKind'
+--
+-- * 'ssKeyName'
+--
+-- * 'ssSiteContacts'
+--
+-- * 'ssSiteSettings'
+--
+-- * 'ssIdDimensionValue'
+--
+-- * 'ssDirectorySiteIdDimensionValue'
+--
+-- * 'ssAccountId'
+--
+-- * 'ssName'
+--
+-- * 'ssDirectorySiteId'
+--
+-- * 'ssId'
+--
+-- * 'ssSubAccountId'
+--
+-- * 'ssApproved'
+site
+    :: Site
+site =
+    Site'
+    { _ssKind = "dfareporting#site"
+    , _ssKeyName = Nothing
+    , _ssSiteContacts = Nothing
+    , _ssSiteSettings = Nothing
+    , _ssIdDimensionValue = Nothing
+    , _ssDirectorySiteIdDimensionValue = Nothing
+    , _ssAccountId = Nothing
+    , _ssName = Nothing
+    , _ssDirectorySiteId = Nothing
+    , _ssId = Nothing
+    , _ssSubAccountId = Nothing
+    , _ssApproved = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#site\".
+ssKind :: Lens' Site Text
+ssKind = lens _ssKind (\ s a -> s{_ssKind = a})
+
+-- | Key name of this site. This is a read-only, auto-generated field.
+ssKeyName :: Lens' Site (Maybe Text)
+ssKeyName
+  = lens _ssKeyName (\ s a -> s{_ssKeyName = a})
+
+-- | Site contacts.
+ssSiteContacts :: Lens' Site [SiteContact]
+ssSiteContacts
+  = lens _ssSiteContacts
+      (\ s a -> s{_ssSiteContacts = a})
+      . _Default
+      . _Coerce
+
+-- | Site-wide settings.
+ssSiteSettings :: Lens' Site (Maybe SiteSettings)
+ssSiteSettings
+  = lens _ssSiteSettings
+      (\ s a -> s{_ssSiteSettings = a})
+
+-- | Dimension value for the ID of this site. This is a read-only,
+-- auto-generated field.
+ssIdDimensionValue :: Lens' Site (Maybe DimensionValue)
+ssIdDimensionValue
+  = lens _ssIdDimensionValue
+      (\ s a -> s{_ssIdDimensionValue = a})
+
+-- | Dimension value for the ID of the directory site. This is a read-only,
+-- auto-generated field.
+ssDirectorySiteIdDimensionValue :: Lens' Site (Maybe DimensionValue)
+ssDirectorySiteIdDimensionValue
+  = lens _ssDirectorySiteIdDimensionValue
+      (\ s a -> s{_ssDirectorySiteIdDimensionValue = a})
+
+-- | Account ID of this site. This is a read-only field that can be left
+-- blank.
+ssAccountId :: Lens' Site (Maybe Int64)
+ssAccountId
+  = lens _ssAccountId (\ s a -> s{_ssAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this site.This is a required field. Must be less than 128
+-- characters long. If this site is under a subaccount, the name must be
+-- unique among sites of the same subaccount. Otherwise, this site is a
+-- top-level site, and the name must be unique among top-level sites of the
+-- same account.
+ssName :: Lens' Site (Maybe Text)
+ssName = lens _ssName (\ s a -> s{_ssName = a})
+
+-- | Directory site associated with this site. This is a required field that
+-- is read-only after insertion.
+ssDirectorySiteId :: Lens' Site (Maybe Int64)
+ssDirectorySiteId
+  = lens _ssDirectorySiteId
+      (\ s a -> s{_ssDirectorySiteId = a})
+      . mapping _Coerce
+
+-- | ID of this site. This is a read-only, auto-generated field.
+ssId :: Lens' Site (Maybe Int64)
+ssId
+  = lens _ssId (\ s a -> s{_ssId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this site. This is a read-only field that can be left
+-- blank.
+ssSubAccountId :: Lens' Site (Maybe Int64)
+ssSubAccountId
+  = lens _ssSubAccountId
+      (\ s a -> s{_ssSubAccountId = a})
+      . mapping _Coerce
+
+-- | Whether this site is approved.
+ssApproved :: Lens' Site (Maybe Bool)
+ssApproved
+  = lens _ssApproved (\ s a -> s{_ssApproved = a})
+
+instance FromJSON Site where
+        parseJSON
+          = withObject "Site"
+              (\ o ->
+                 Site' <$>
+                   (o .:? "kind" .!= "dfareporting#site") <*>
+                     (o .:? "keyName")
+                     <*> (o .:? "siteContacts" .!= mempty)
+                     <*> (o .:? "siteSettings")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "directorySiteIdDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "directorySiteId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "approved"))
+
+instance ToJSON Site where
+        toJSON Site'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ssKind),
+                  ("keyName" .=) <$> _ssKeyName,
+                  ("siteContacts" .=) <$> _ssSiteContacts,
+                  ("siteSettings" .=) <$> _ssSiteSettings,
+                  ("idDimensionValue" .=) <$> _ssIdDimensionValue,
+                  ("directorySiteIdDimensionValue" .=) <$>
+                    _ssDirectorySiteIdDimensionValue,
+                  ("accountId" .=) <$> _ssAccountId,
+                  ("name" .=) <$> _ssName,
+                  ("directorySiteId" .=) <$> _ssDirectorySiteId,
+                  ("id" .=) <$> _ssId,
+                  ("subaccountId" .=) <$> _ssSubAccountId,
+                  ("approved" .=) <$> _ssApproved])
+
+-- | User Defined Variable configuration.
+--
+-- /See:/ 'userDefinedVariableConfiguration' smart constructor.
+data UserDefinedVariableConfiguration = UserDefinedVariableConfiguration'
+    { _udvcReportName   :: !(Maybe Text)
+    , _udvcDataType     :: !(Maybe UserDefinedVariableConfigurationDataType)
+    , _udvcVariableType :: !(Maybe UserDefinedVariableConfigurationVariableType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserDefinedVariableConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'udvcReportName'
+--
+-- * 'udvcDataType'
+--
+-- * 'udvcVariableType'
+userDefinedVariableConfiguration
+    :: UserDefinedVariableConfiguration
+userDefinedVariableConfiguration =
+    UserDefinedVariableConfiguration'
+    { _udvcReportName = Nothing
+    , _udvcDataType = Nothing
+    , _udvcVariableType = Nothing
+    }
+
+-- | User-friendly name for the variable which will appear in reports. This
+-- is a required field, must be less than 64 characters long, and cannot
+-- contain the following characters: \"\"\<>\".
+udvcReportName :: Lens' UserDefinedVariableConfiguration (Maybe Text)
+udvcReportName
+  = lens _udvcReportName
+      (\ s a -> s{_udvcReportName = a})
+
+-- | Data type for the variable. This is a required field.
+udvcDataType :: Lens' UserDefinedVariableConfiguration (Maybe UserDefinedVariableConfigurationDataType)
+udvcDataType
+  = lens _udvcDataType (\ s a -> s{_udvcDataType = a})
+
+-- | Variable name in the tag. This is a required field.
+udvcVariableType :: Lens' UserDefinedVariableConfiguration (Maybe UserDefinedVariableConfigurationVariableType)
+udvcVariableType
+  = lens _udvcVariableType
+      (\ s a -> s{_udvcVariableType = a})
+
+instance FromJSON UserDefinedVariableConfiguration
+         where
+        parseJSON
+          = withObject "UserDefinedVariableConfiguration"
+              (\ o ->
+                 UserDefinedVariableConfiguration' <$>
+                   (o .:? "reportName") <*> (o .:? "dataType") <*>
+                     (o .:? "variableType"))
+
+instance ToJSON UserDefinedVariableConfiguration
+         where
+        toJSON UserDefinedVariableConfiguration'{..}
+          = object
+              (catMaybes
+                 [("reportName" .=) <$> _udvcReportName,
+                  ("dataType" .=) <$> _udvcDataType,
+                  ("variableType" .=) <$> _udvcVariableType])
+
+-- | The report criteria for a report of type \"CROSS_DIMENSION_REACH\".
+--
+-- /See:/ 'reportCrossDimensionReachCriteria' smart constructor.
+data ReportCrossDimensionReachCriteria = ReportCrossDimensionReachCriteria'
+    { _rcdrcPivoted            :: !(Maybe Bool)
+    , _rcdrcBreakdown          :: !(Maybe [SortedDimension])
+    , _rcdrcDimension          :: !(Maybe ReportCrossDimensionReachCriteriaDimension)
+    , _rcdrcMetricNames        :: !(Maybe [Text])
+    , _rcdrcDimensionFilters   :: !(Maybe [DimensionValue])
+    , _rcdrcDateRange          :: !(Maybe DateRange)
+    , _rcdrcOverlapMetricNames :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportCrossDimensionReachCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcdrcPivoted'
+--
+-- * 'rcdrcBreakdown'
+--
+-- * 'rcdrcDimension'
+--
+-- * 'rcdrcMetricNames'
+--
+-- * 'rcdrcDimensionFilters'
+--
+-- * 'rcdrcDateRange'
+--
+-- * 'rcdrcOverlapMetricNames'
+reportCrossDimensionReachCriteria
+    :: ReportCrossDimensionReachCriteria
+reportCrossDimensionReachCriteria =
+    ReportCrossDimensionReachCriteria'
+    { _rcdrcPivoted = Nothing
+    , _rcdrcBreakdown = Nothing
+    , _rcdrcDimension = Nothing
+    , _rcdrcMetricNames = Nothing
+    , _rcdrcDimensionFilters = Nothing
+    , _rcdrcDateRange = Nothing
+    , _rcdrcOverlapMetricNames = Nothing
+    }
+
+-- | Whether the report is pivoted or not. Defaults to true.
+rcdrcPivoted :: Lens' ReportCrossDimensionReachCriteria (Maybe Bool)
+rcdrcPivoted
+  = lens _rcdrcPivoted (\ s a -> s{_rcdrcPivoted = a})
+
+-- | The list of dimensions the report should include.
+rcdrcBreakdown :: Lens' ReportCrossDimensionReachCriteria [SortedDimension]
+rcdrcBreakdown
+  = lens _rcdrcBreakdown
+      (\ s a -> s{_rcdrcBreakdown = a})
+      . _Default
+      . _Coerce
+
+-- | The dimension option.
+rcdrcDimension :: Lens' ReportCrossDimensionReachCriteria (Maybe ReportCrossDimensionReachCriteriaDimension)
+rcdrcDimension
+  = lens _rcdrcDimension
+      (\ s a -> s{_rcdrcDimension = a})
+
+-- | The list of names of metrics the report should include.
+rcdrcMetricNames :: Lens' ReportCrossDimensionReachCriteria [Text]
+rcdrcMetricNames
+  = lens _rcdrcMetricNames
+      (\ s a -> s{_rcdrcMetricNames = a})
+      . _Default
+      . _Coerce
+
+-- | The list of filters on which dimensions are filtered.
+rcdrcDimensionFilters :: Lens' ReportCrossDimensionReachCriteria [DimensionValue]
+rcdrcDimensionFilters
+  = lens _rcdrcDimensionFilters
+      (\ s a -> s{_rcdrcDimensionFilters = a})
+      . _Default
+      . _Coerce
+
+-- | The date range this report should be run for.
+rcdrcDateRange :: Lens' ReportCrossDimensionReachCriteria (Maybe DateRange)
+rcdrcDateRange
+  = lens _rcdrcDateRange
+      (\ s a -> s{_rcdrcDateRange = a})
+
+-- | The list of names of overlap metrics the report should include.
+rcdrcOverlapMetricNames :: Lens' ReportCrossDimensionReachCriteria [Text]
+rcdrcOverlapMetricNames
+  = lens _rcdrcOverlapMetricNames
+      (\ s a -> s{_rcdrcOverlapMetricNames = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ReportCrossDimensionReachCriteria
+         where
+        parseJSON
+          = withObject "ReportCrossDimensionReachCriteria"
+              (\ o ->
+                 ReportCrossDimensionReachCriteria' <$>
+                   (o .:? "pivoted") <*> (o .:? "breakdown" .!= mempty)
+                     <*> (o .:? "dimension")
+                     <*> (o .:? "metricNames" .!= mempty)
+                     <*> (o .:? "dimensionFilters" .!= mempty)
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "overlapMetricNames" .!= mempty))
+
+instance ToJSON ReportCrossDimensionReachCriteria
+         where
+        toJSON ReportCrossDimensionReachCriteria'{..}
+          = object
+              (catMaybes
+                 [("pivoted" .=) <$> _rcdrcPivoted,
+                  ("breakdown" .=) <$> _rcdrcBreakdown,
+                  ("dimension" .=) <$> _rcdrcDimension,
+                  ("metricNames" .=) <$> _rcdrcMetricNames,
+                  ("dimensionFilters" .=) <$> _rcdrcDimensionFilters,
+                  ("dateRange" .=) <$> _rcdrcDateRange,
+                  ("overlapMetricNames" .=) <$>
+                    _rcdrcOverlapMetricNames])
+
+-- | The URLs where the completed report file can be downloaded.
+--
+-- /See:/ 'fileURLs' smart constructor.
+data FileURLs = FileURLs'
+    { _fuBrowserURL :: !(Maybe Text)
+    , _fuAPIURL     :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FileURLs' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fuBrowserURL'
+--
+-- * 'fuAPIURL'
+fileURLs
+    :: FileURLs
+fileURLs =
+    FileURLs'
+    { _fuBrowserURL = Nothing
+    , _fuAPIURL = Nothing
+    }
+
+-- | The URL for downloading the report data through a browser.
+fuBrowserURL :: Lens' FileURLs (Maybe Text)
+fuBrowserURL
+  = lens _fuBrowserURL (\ s a -> s{_fuBrowserURL = a})
+
+-- | The URL for downloading the report data through the API.
+fuAPIURL :: Lens' FileURLs (Maybe Text)
+fuAPIURL = lens _fuAPIURL (\ s a -> s{_fuAPIURL = a})
+
+instance FromJSON FileURLs where
+        parseJSON
+          = withObject "FileURLs"
+              (\ o ->
+                 FileURLs' <$>
+                   (o .:? "browserUrl") <*> (o .:? "apiUrl"))
+
+instance ToJSON FileURLs where
+        toJSON FileURLs'{..}
+          = object
+              (catMaybes
+                 [("browserUrl" .=) <$> _fuBrowserURL,
+                  ("apiUrl" .=) <$> _fuAPIURL])
+
+-- | Campaign Creative Association List Response
+--
+-- /See:/ 'campaignCreativeAssociationsListResponse' smart constructor.
+data CampaignCreativeAssociationsListResponse = CampaignCreativeAssociationsListResponse'
+    { _ccalrCampaignCreativeAssociations :: !(Maybe [CampaignCreativeAssociation])
+    , _ccalrNextPageToken                :: !(Maybe Text)
+    , _ccalrKind                         :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CampaignCreativeAssociationsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccalrCampaignCreativeAssociations'
+--
+-- * 'ccalrNextPageToken'
+--
+-- * 'ccalrKind'
+campaignCreativeAssociationsListResponse
+    :: CampaignCreativeAssociationsListResponse
+campaignCreativeAssociationsListResponse =
+    CampaignCreativeAssociationsListResponse'
+    { _ccalrCampaignCreativeAssociations = Nothing
+    , _ccalrNextPageToken = Nothing
+    , _ccalrKind = "dfareporting#campaignCreativeAssociationsListResponse"
+    }
+
+-- | Campaign creative association collection
+ccalrCampaignCreativeAssociations :: Lens' CampaignCreativeAssociationsListResponse [CampaignCreativeAssociation]
+ccalrCampaignCreativeAssociations
+  = lens _ccalrCampaignCreativeAssociations
+      (\ s a -> s{_ccalrCampaignCreativeAssociations = a})
+      . _Default
+      . _Coerce
+
+-- | Pagination token to be used for the next list operation.
+ccalrNextPageToken :: Lens' CampaignCreativeAssociationsListResponse (Maybe Text)
+ccalrNextPageToken
+  = lens _ccalrNextPageToken
+      (\ s a -> s{_ccalrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#campaignCreativeAssociationsListResponse\".
+ccalrKind :: Lens' CampaignCreativeAssociationsListResponse Text
+ccalrKind
+  = lens _ccalrKind (\ s a -> s{_ccalrKind = a})
+
+instance FromJSON
+         CampaignCreativeAssociationsListResponse where
+        parseJSON
+          = withObject
+              "CampaignCreativeAssociationsListResponse"
+              (\ o ->
+                 CampaignCreativeAssociationsListResponse' <$>
+                   (o .:? "campaignCreativeAssociations" .!= mempty) <*>
+                     (o .:? "nextPageToken")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#campaignCreativeAssociationsListResponse"))
+
+instance ToJSON
+         CampaignCreativeAssociationsListResponse where
+        toJSON CampaignCreativeAssociationsListResponse'{..}
+          = object
+              (catMaybes
+                 [("campaignCreativeAssociations" .=) <$>
+                    _ccalrCampaignCreativeAssociations,
+                  ("nextPageToken" .=) <$> _ccalrNextPageToken,
+                  Just ("kind" .= _ccalrKind)])
+
+-- | Describes properties of a DoubleClick Planning order.
+--
+-- /See:/ 'order' smart constructor.
+data Order = Order'
+    { _oSellerOrderId          :: !(Maybe Text)
+    , _oSellerOrganizationName :: !(Maybe Text)
+    , _oKind                   :: !Text
+    , _oAdvertiserId           :: !(Maybe (Textual Int64))
+    , _oPlanningTermId         :: !(Maybe (Textual Int64))
+    , _oAccountId              :: !(Maybe (Textual Int64))
+    , _oName                   :: !(Maybe Text)
+    , _oSiteNames              :: !(Maybe [Text])
+    , _oLastModifiedInfo       :: !(Maybe LastModifiedInfo)
+    , _oBuyerOrganizationName  :: !(Maybe Text)
+    , _oId                     :: !(Maybe (Textual Int64))
+    , _oBuyerInvoiceId         :: !(Maybe Text)
+    , _oComments               :: !(Maybe Text)
+    , _oProjectId              :: !(Maybe (Textual Int64))
+    , _oSubAccountId           :: !(Maybe (Textual Int64))
+    , _oNotes                  :: !(Maybe Text)
+    , _oContacts               :: !(Maybe [OrderContact])
+    , _oSiteId                 :: !(Maybe [Textual Int64])
+    , _oTermsAndConditions     :: !(Maybe Text)
+    , _oApproverUserProFileIds :: !(Maybe [Textual Int64])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Order' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'oSellerOrderId'
+--
+-- * 'oSellerOrganizationName'
+--
+-- * 'oKind'
+--
+-- * 'oAdvertiserId'
+--
+-- * 'oPlanningTermId'
+--
+-- * 'oAccountId'
+--
+-- * 'oName'
+--
+-- * 'oSiteNames'
+--
+-- * 'oLastModifiedInfo'
+--
+-- * 'oBuyerOrganizationName'
+--
+-- * 'oId'
+--
+-- * 'oBuyerInvoiceId'
+--
+-- * 'oComments'
+--
+-- * 'oProjectId'
+--
+-- * 'oSubAccountId'
+--
+-- * 'oNotes'
+--
+-- * 'oContacts'
+--
+-- * 'oSiteId'
+--
+-- * 'oTermsAndConditions'
+--
+-- * 'oApproverUserProFileIds'
+order
+    :: Order
+order =
+    Order'
+    { _oSellerOrderId = Nothing
+    , _oSellerOrganizationName = Nothing
+    , _oKind = "dfareporting#order"
+    , _oAdvertiserId = Nothing
+    , _oPlanningTermId = Nothing
+    , _oAccountId = Nothing
+    , _oName = Nothing
+    , _oSiteNames = Nothing
+    , _oLastModifiedInfo = Nothing
+    , _oBuyerOrganizationName = Nothing
+    , _oId = Nothing
+    , _oBuyerInvoiceId = Nothing
+    , _oComments = Nothing
+    , _oProjectId = Nothing
+    , _oSubAccountId = Nothing
+    , _oNotes = Nothing
+    , _oContacts = Nothing
+    , _oSiteId = Nothing
+    , _oTermsAndConditions = Nothing
+    , _oApproverUserProFileIds = Nothing
+    }
+
+-- | Seller order ID associated with this order.
+oSellerOrderId :: Lens' Order (Maybe Text)
+oSellerOrderId
+  = lens _oSellerOrderId
+      (\ s a -> s{_oSellerOrderId = a})
+
+-- | Name of the seller organization.
+oSellerOrganizationName :: Lens' Order (Maybe Text)
+oSellerOrganizationName
+  = lens _oSellerOrganizationName
+      (\ s a -> s{_oSellerOrganizationName = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#order\".
+oKind :: Lens' Order Text
+oKind = lens _oKind (\ s a -> s{_oKind = a})
+
+-- | Advertiser ID of this order.
+oAdvertiserId :: Lens' Order (Maybe Int64)
+oAdvertiserId
+  = lens _oAdvertiserId
+      (\ s a -> s{_oAdvertiserId = a})
+      . mapping _Coerce
+
+-- | ID of the terms and conditions template used in this order.
+oPlanningTermId :: Lens' Order (Maybe Int64)
+oPlanningTermId
+  = lens _oPlanningTermId
+      (\ s a -> s{_oPlanningTermId = a})
+      . mapping _Coerce
+
+-- | Account ID of this order.
+oAccountId :: Lens' Order (Maybe Int64)
+oAccountId
+  = lens _oAccountId (\ s a -> s{_oAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this order.
+oName :: Lens' Order (Maybe Text)
+oName = lens _oName (\ s a -> s{_oName = a})
+
+-- | Free-form site names this order is associated with.
+oSiteNames :: Lens' Order [Text]
+oSiteNames
+  = lens _oSiteNames (\ s a -> s{_oSiteNames = a}) .
+      _Default
+      . _Coerce
+
+-- | Information about the most recent modification of this order.
+oLastModifiedInfo :: Lens' Order (Maybe LastModifiedInfo)
+oLastModifiedInfo
+  = lens _oLastModifiedInfo
+      (\ s a -> s{_oLastModifiedInfo = a})
+
+-- | Name of the buyer organization.
+oBuyerOrganizationName :: Lens' Order (Maybe Text)
+oBuyerOrganizationName
+  = lens _oBuyerOrganizationName
+      (\ s a -> s{_oBuyerOrganizationName = a})
+
+-- | ID of this order. This is a read-only, auto-generated field.
+oId :: Lens' Order (Maybe Int64)
+oId
+  = lens _oId (\ s a -> s{_oId = a}) . mapping _Coerce
+
+-- | Buyer invoice ID associated with this order.
+oBuyerInvoiceId :: Lens' Order (Maybe Text)
+oBuyerInvoiceId
+  = lens _oBuyerInvoiceId
+      (\ s a -> s{_oBuyerInvoiceId = a})
+
+-- | Comments in this order.
+oComments :: Lens' Order (Maybe Text)
+oComments
+  = lens _oComments (\ s a -> s{_oComments = a})
+
+-- | Project ID of this order.
+oProjectId :: Lens' Order (Maybe Int64)
+oProjectId
+  = lens _oProjectId (\ s a -> s{_oProjectId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this order.
+oSubAccountId :: Lens' Order (Maybe Int64)
+oSubAccountId
+  = lens _oSubAccountId
+      (\ s a -> s{_oSubAccountId = a})
+      . mapping _Coerce
+
+-- | Notes of this order.
+oNotes :: Lens' Order (Maybe Text)
+oNotes = lens _oNotes (\ s a -> s{_oNotes = a})
+
+-- | Contacts for this order.
+oContacts :: Lens' Order [OrderContact]
+oContacts
+  = lens _oContacts (\ s a -> s{_oContacts = a}) .
+      _Default
+      . _Coerce
+
+-- | Site IDs this order is associated with.
+oSiteId :: Lens' Order [Int64]
+oSiteId
+  = lens _oSiteId (\ s a -> s{_oSiteId = a}) . _Default
+      . _Coerce
+
+-- | Terms and conditions of this order.
+oTermsAndConditions :: Lens' Order (Maybe Text)
+oTermsAndConditions
+  = lens _oTermsAndConditions
+      (\ s a -> s{_oTermsAndConditions = a})
+
+-- | IDs for users that have to approve documents created for this order.
+oApproverUserProFileIds :: Lens' Order [Int64]
+oApproverUserProFileIds
+  = lens _oApproverUserProFileIds
+      (\ s a -> s{_oApproverUserProFileIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Order where
+        parseJSON
+          = withObject "Order"
+              (\ o ->
+                 Order' <$>
+                   (o .:? "sellerOrderId") <*>
+                     (o .:? "sellerOrganizationName")
+                     <*> (o .:? "kind" .!= "dfareporting#order")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "planningTermId")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "siteNames" .!= mempty)
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "buyerOrganizationName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "buyerInvoiceId")
+                     <*> (o .:? "comments")
+                     <*> (o .:? "projectId")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "notes")
+                     <*> (o .:? "contacts" .!= mempty)
+                     <*> (o .:? "siteId" .!= mempty)
+                     <*> (o .:? "termsAndConditions")
+                     <*> (o .:? "approverUserProfileIds" .!= mempty))
+
+instance ToJSON Order where
+        toJSON Order'{..}
+          = object
+              (catMaybes
+                 [("sellerOrderId" .=) <$> _oSellerOrderId,
+                  ("sellerOrganizationName" .=) <$>
+                    _oSellerOrganizationName,
+                  Just ("kind" .= _oKind),
+                  ("advertiserId" .=) <$> _oAdvertiserId,
+                  ("planningTermId" .=) <$> _oPlanningTermId,
+                  ("accountId" .=) <$> _oAccountId,
+                  ("name" .=) <$> _oName,
+                  ("siteNames" .=) <$> _oSiteNames,
+                  ("lastModifiedInfo" .=) <$> _oLastModifiedInfo,
+                  ("buyerOrganizationName" .=) <$>
+                    _oBuyerOrganizationName,
+                  ("id" .=) <$> _oId,
+                  ("buyerInvoiceId" .=) <$> _oBuyerInvoiceId,
+                  ("comments" .=) <$> _oComments,
+                  ("projectId" .=) <$> _oProjectId,
+                  ("subaccountId" .=) <$> _oSubAccountId,
+                  ("notes" .=) <$> _oNotes,
+                  ("contacts" .=) <$> _oContacts,
+                  ("siteId" .=) <$> _oSiteId,
+                  ("termsAndConditions" .=) <$> _oTermsAndConditions,
+                  ("approverUserProfileIds" .=) <$>
+                    _oApproverUserProFileIds])
+
+-- | Creative Asset ID.
+--
+-- /See:/ 'creativeAssetId' smart constructor.
+data CreativeAssetId = CreativeAssetId'
+    { _caiName :: !(Maybe Text)
+    , _caiType :: !(Maybe CreativeAssetIdType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeAssetId' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'caiName'
+--
+-- * 'caiType'
+creativeAssetId
+    :: CreativeAssetId
+creativeAssetId =
+    CreativeAssetId'
+    { _caiName = Nothing
+    , _caiType = Nothing
+    }
+
+-- | Name of the creative asset. This is a required field while inserting an
+-- asset. After insertion, this assetIdentifier is used to identify the
+-- uploaded asset. Characters in the name must be alphanumeric or one of
+-- the following: \".-_ \". Spaces are allowed.
+caiName :: Lens' CreativeAssetId (Maybe Text)
+caiName = lens _caiName (\ s a -> s{_caiName = a})
+
+-- | Type of asset to upload. This is a required field. IMAGE is solely used
+-- for IMAGE creatives. Other image assets should use HTML_IMAGE.
+caiType :: Lens' CreativeAssetId (Maybe CreativeAssetIdType)
+caiType = lens _caiType (\ s a -> s{_caiType = a})
+
+instance FromJSON CreativeAssetId where
+        parseJSON
+          = withObject "CreativeAssetId"
+              (\ o ->
+                 CreativeAssetId' <$>
+                   (o .:? "name") <*> (o .:? "type"))
+
+instance ToJSON CreativeAssetId where
+        toJSON CreativeAssetId'{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _caiName, ("type" .=) <$> _caiType])
+
+-- | Frequency Cap.
+--
+-- /See:/ 'frequencyCap' smart constructor.
+data FrequencyCap = FrequencyCap'
+    { _fcImpressions :: !(Maybe (Textual Int64))
+    , _fcDuration    :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FrequencyCap' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fcImpressions'
+--
+-- * 'fcDuration'
+frequencyCap
+    :: FrequencyCap
+frequencyCap =
+    FrequencyCap'
+    { _fcImpressions = Nothing
+    , _fcDuration = Nothing
+    }
+
+-- | Number of times an individual user can be served the ad within the
+-- specified duration. The maximum allowed is 15.
+fcImpressions :: Lens' FrequencyCap (Maybe Int64)
+fcImpressions
+  = lens _fcImpressions
+      (\ s a -> s{_fcImpressions = a})
+      . mapping _Coerce
+
+-- | Duration of time, in seconds, for this frequency cap. The maximum
+-- duration is 90 days in seconds, or 7,776,000.
+fcDuration :: Lens' FrequencyCap (Maybe Int64)
+fcDuration
+  = lens _fcDuration (\ s a -> s{_fcDuration = a}) .
+      mapping _Coerce
+
+instance FromJSON FrequencyCap where
+        parseJSON
+          = withObject "FrequencyCap"
+              (\ o ->
+                 FrequencyCap' <$>
+                   (o .:? "impressions") <*> (o .:? "duration"))
+
+instance ToJSON FrequencyCap where
+        toJSON FrequencyCap'{..}
+          = object
+              (catMaybes
+                 [("impressions" .=) <$> _fcImpressions,
+                  ("duration" .=) <$> _fcDuration])
+
+-- | Represents a File resource. A file contains the metadata for a report
+-- run. It shows the status of the run and holds the URLs to the generated
+-- report data if the run is finished and the status is
+-- \"REPORT_AVAILABLE\".
+--
+-- /See:/ 'file' smart constructor.
+data File = File'
+    { _filStatus           :: !(Maybe FileStatus)
+    , _filEtag             :: !(Maybe Text)
+    , _filKind             :: !Text
+    , _filURLs             :: !(Maybe FileURLs)
+    , _filReportId         :: !(Maybe (Textual Int64))
+    , _filDateRange        :: !(Maybe DateRange)
+    , _filFormat           :: !(Maybe FileFormat)
+    , _filLastModifiedTime :: !(Maybe (Textual Int64))
+    , _filId               :: !(Maybe (Textual Int64))
+    , _filFileName         :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'File' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'filStatus'
+--
+-- * 'filEtag'
+--
+-- * 'filKind'
+--
+-- * 'filURLs'
+--
+-- * 'filReportId'
+--
+-- * 'filDateRange'
+--
+-- * 'filFormat'
+--
+-- * 'filLastModifiedTime'
+--
+-- * 'filId'
+--
+-- * 'filFileName'
+file
+    :: File
+file =
+    File'
+    { _filStatus = Nothing
+    , _filEtag = Nothing
+    , _filKind = "dfareporting#file"
+    , _filURLs = Nothing
+    , _filReportId = Nothing
+    , _filDateRange = Nothing
+    , _filFormat = Nothing
+    , _filLastModifiedTime = Nothing
+    , _filId = Nothing
+    , _filFileName = Nothing
+    }
+
+-- | The status of the report file.
+filStatus :: Lens' File (Maybe FileStatus)
+filStatus
+  = lens _filStatus (\ s a -> s{_filStatus = a})
+
+-- | The eTag of this response for caching purposes.
+filEtag :: Lens' File (Maybe Text)
+filEtag = lens _filEtag (\ s a -> s{_filEtag = a})
+
+-- | The kind of resource this is, in this case dfareporting#file.
+filKind :: Lens' File Text
+filKind = lens _filKind (\ s a -> s{_filKind = a})
+
+-- | The URLs where the completed report file can be downloaded.
+filURLs :: Lens' File (Maybe FileURLs)
+filURLs = lens _filURLs (\ s a -> s{_filURLs = a})
+
+-- | The ID of the report this file was generated from.
+filReportId :: Lens' File (Maybe Int64)
+filReportId
+  = lens _filReportId (\ s a -> s{_filReportId = a}) .
+      mapping _Coerce
+
+-- | The date range for which the file has report data. The date range will
+-- always be the absolute date range for which the report is run.
+filDateRange :: Lens' File (Maybe DateRange)
+filDateRange
+  = lens _filDateRange (\ s a -> s{_filDateRange = a})
+
+-- | The output format of the report. Only available once the file is
+-- available.
+filFormat :: Lens' File (Maybe FileFormat)
+filFormat
+  = lens _filFormat (\ s a -> s{_filFormat = a})
+
+-- | The timestamp in milliseconds since epoch when this file was last
+-- modified.
+filLastModifiedTime :: Lens' File (Maybe Int64)
+filLastModifiedTime
+  = lens _filLastModifiedTime
+      (\ s a -> s{_filLastModifiedTime = a})
+      . mapping _Coerce
+
+-- | The unique ID of this report file.
+filId :: Lens' File (Maybe Int64)
+filId
+  = lens _filId (\ s a -> s{_filId = a}) .
+      mapping _Coerce
+
+-- | The filename of the file.
+filFileName :: Lens' File (Maybe Text)
+filFileName
+  = lens _filFileName (\ s a -> s{_filFileName = a})
+
+instance FromJSON File where
+        parseJSON
+          = withObject "File"
+              (\ o ->
+                 File' <$>
+                   (o .:? "status") <*> (o .:? "etag") <*>
+                     (o .:? "kind" .!= "dfareporting#file")
+                     <*> (o .:? "urls")
+                     <*> (o .:? "reportId")
+                     <*> (o .:? "dateRange")
+                     <*> (o .:? "format")
+                     <*> (o .:? "lastModifiedTime")
+                     <*> (o .:? "id")
+                     <*> (o .:? "fileName"))
+
+instance ToJSON File where
+        toJSON File'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _filStatus,
+                  ("etag" .=) <$> _filEtag, Just ("kind" .= _filKind),
+                  ("urls" .=) <$> _filURLs,
+                  ("reportId" .=) <$> _filReportId,
+                  ("dateRange" .=) <$> _filDateRange,
+                  ("format" .=) <$> _filFormat,
+                  ("lastModifiedTime" .=) <$> _filLastModifiedTime,
+                  ("id" .=) <$> _filId,
+                  ("fileName" .=) <$> _filFileName])
+
+-- | Creative Settings
+--
+-- /See:/ 'creativeSettings' smart constructor.
+data CreativeSettings = CreativeSettings'
+    { _csIFrameHeader :: !(Maybe Text)
+    , _csIFrameFooter :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'csIFrameHeader'
+--
+-- * 'csIFrameFooter'
+creativeSettings
+    :: CreativeSettings
+creativeSettings =
+    CreativeSettings'
+    { _csIFrameHeader = Nothing
+    , _csIFrameFooter = Nothing
+    }
+
+-- | Header text for iFrames for this site. Must be less than or equal to
+-- 2000 characters long.
+csIFrameHeader :: Lens' CreativeSettings (Maybe Text)
+csIFrameHeader
+  = lens _csIFrameHeader
+      (\ s a -> s{_csIFrameHeader = a})
+
+-- | Header text for iFrames for this site. Must be less than or equal to
+-- 2000 characters long.
+csIFrameFooter :: Lens' CreativeSettings (Maybe Text)
+csIFrameFooter
+  = lens _csIFrameFooter
+      (\ s a -> s{_csIFrameFooter = a})
+
+instance FromJSON CreativeSettings where
+        parseJSON
+          = withObject "CreativeSettings"
+              (\ o ->
+                 CreativeSettings' <$>
+                   (o .:? "iFrameHeader") <*> (o .:? "iFrameFooter"))
+
+instance ToJSON CreativeSettings where
+        toJSON CreativeSettings'{..}
+          = object
+              (catMaybes
+                 [("iFrameHeader" .=) <$> _csIFrameHeader,
+                  ("iFrameFooter" .=) <$> _csIFrameFooter])
+
+-- | Creative Group List Response
+--
+-- /See:/ 'creativeGroupsListResponse' smart constructor.
+data CreativeGroupsListResponse = CreativeGroupsListResponse'
+    { _cglrCreativeGroups :: !(Maybe [CreativeGroup])
+    , _cglrNextPageToken  :: !(Maybe Text)
+    , _cglrKind           :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeGroupsListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cglrCreativeGroups'
+--
+-- * 'cglrNextPageToken'
+--
+-- * 'cglrKind'
+creativeGroupsListResponse
+    :: CreativeGroupsListResponse
+creativeGroupsListResponse =
+    CreativeGroupsListResponse'
+    { _cglrCreativeGroups = Nothing
+    , _cglrNextPageToken = Nothing
+    , _cglrKind = "dfareporting#creativeGroupsListResponse"
+    }
+
+-- | Creative group collection.
+cglrCreativeGroups :: Lens' CreativeGroupsListResponse [CreativeGroup]
+cglrCreativeGroups
+  = lens _cglrCreativeGroups
+      (\ s a -> s{_cglrCreativeGroups = a})
+      . _Default
+      . _Coerce
+
+-- | Pagination token to be used for the next list operation.
+cglrNextPageToken :: Lens' CreativeGroupsListResponse (Maybe Text)
+cglrNextPageToken
+  = lens _cglrNextPageToken
+      (\ s a -> s{_cglrNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeGroupsListResponse\".
+cglrKind :: Lens' CreativeGroupsListResponse Text
+cglrKind = lens _cglrKind (\ s a -> s{_cglrKind = a})
+
+instance FromJSON CreativeGroupsListResponse where
+        parseJSON
+          = withObject "CreativeGroupsListResponse"
+              (\ o ->
+                 CreativeGroupsListResponse' <$>
+                   (o .:? "creativeGroups" .!= mempty) <*>
+                     (o .:? "nextPageToken")
+                     <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#creativeGroupsListResponse"))
+
+instance ToJSON CreativeGroupsListResponse where
+        toJSON CreativeGroupsListResponse'{..}
+          = object
+              (catMaybes
+                 [("creativeGroups" .=) <$> _cglrCreativeGroups,
+                  ("nextPageToken" .=) <$> _cglrNextPageToken,
+                  Just ("kind" .= _cglrKind)])
+
+-- | Mobile Carrier List Response
+--
+-- /See:/ 'mobileCarriersListResponse' smart constructor.
+data MobileCarriersListResponse = MobileCarriersListResponse'
+    { _mclrMobileCarriers :: !(Maybe [MobileCarrier])
+    , _mclrKind           :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MobileCarriersListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mclrMobileCarriers'
+--
+-- * 'mclrKind'
+mobileCarriersListResponse
+    :: MobileCarriersListResponse
+mobileCarriersListResponse =
+    MobileCarriersListResponse'
+    { _mclrMobileCarriers = Nothing
+    , _mclrKind = "dfareporting#mobileCarriersListResponse"
+    }
+
+-- | Mobile carrier collection.
+mclrMobileCarriers :: Lens' MobileCarriersListResponse [MobileCarrier]
+mclrMobileCarriers
+  = lens _mclrMobileCarriers
+      (\ s a -> s{_mclrMobileCarriers = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#mobileCarriersListResponse\".
+mclrKind :: Lens' MobileCarriersListResponse Text
+mclrKind = lens _mclrKind (\ s a -> s{_mclrKind = a})
+
+instance FromJSON MobileCarriersListResponse where
+        parseJSON
+          = withObject "MobileCarriersListResponse"
+              (\ o ->
+                 MobileCarriersListResponse' <$>
+                   (o .:? "mobileCarriers" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#mobileCarriersListResponse"))
+
+instance ToJSON MobileCarriersListResponse where
+        toJSON MobileCarriersListResponse'{..}
+          = object
+              (catMaybes
+                 [("mobileCarriers" .=) <$> _mclrMobileCarriers,
+                  Just ("kind" .= _mclrKind)])
+
+-- | Landing Page List Response
+--
+-- /See:/ 'landingPagesListResponse' smart constructor.
+data LandingPagesListResponse = LandingPagesListResponse'
+    { _lplrLandingPages :: !(Maybe [LandingPage])
+    , _lplrKind         :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LandingPagesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lplrLandingPages'
+--
+-- * 'lplrKind'
+landingPagesListResponse
+    :: LandingPagesListResponse
+landingPagesListResponse =
+    LandingPagesListResponse'
+    { _lplrLandingPages = Nothing
+    , _lplrKind = "dfareporting#landingPagesListResponse"
+    }
+
+-- | Landing page collection
+lplrLandingPages :: Lens' LandingPagesListResponse [LandingPage]
+lplrLandingPages
+  = lens _lplrLandingPages
+      (\ s a -> s{_lplrLandingPages = a})
+      . _Default
+      . _Coerce
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#landingPagesListResponse\".
+lplrKind :: Lens' LandingPagesListResponse Text
+lplrKind = lens _lplrKind (\ s a -> s{_lplrKind = a})
+
+instance FromJSON LandingPagesListResponse where
+        parseJSON
+          = withObject "LandingPagesListResponse"
+              (\ o ->
+                 LandingPagesListResponse' <$>
+                   (o .:? "landingPages" .!= mempty) <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#landingPagesListResponse"))
+
+instance ToJSON LandingPagesListResponse where
+        toJSON LandingPagesListResponse'{..}
+          = object
+              (catMaybes
+                 [("landingPages" .=) <$> _lplrLandingPages,
+                  Just ("kind" .= _lplrKind)])
+
+-- | CreativeAssets contains properties of a creative asset file which will
+-- be uploaded or has already been uploaded. Refer to the creative sample
+-- code for how to upload assets and insert a creative.
+--
+-- /See:/ 'creativeAssetMetadata' smart constructor.
+data CreativeAssetMetadata = CreativeAssetMetadata'
+    { _camaKind                  :: !Text
+    , _camaAssetIdentifier       :: !(Maybe CreativeAssetId)
+    , _camaClickTags             :: !(Maybe [ClickTag])
+    , _camaWarnedValidationRules :: !(Maybe [CreativeAssetMetadataWarnedValidationRulesItem])
+    , _camaDetectedFeatures      :: !(Maybe [CreativeAssetMetadataDetectedFeaturesItem])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeAssetMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'camaKind'
+--
+-- * 'camaAssetIdentifier'
+--
+-- * 'camaClickTags'
+--
+-- * 'camaWarnedValidationRules'
+--
+-- * 'camaDetectedFeatures'
+creativeAssetMetadata
+    :: CreativeAssetMetadata
+creativeAssetMetadata =
+    CreativeAssetMetadata'
+    { _camaKind = "dfareporting#creativeAssetMetadata"
+    , _camaAssetIdentifier = Nothing
+    , _camaClickTags = Nothing
+    , _camaWarnedValidationRules = Nothing
+    , _camaDetectedFeatures = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeAssetMetadata\".
+camaKind :: Lens' CreativeAssetMetadata Text
+camaKind = lens _camaKind (\ s a -> s{_camaKind = a})
+
+-- | ID of the creative asset. This is a required field.
+camaAssetIdentifier :: Lens' CreativeAssetMetadata (Maybe CreativeAssetId)
+camaAssetIdentifier
+  = lens _camaAssetIdentifier
+      (\ s a -> s{_camaAssetIdentifier = a})
+
+-- | List of detected click tags for assets. This is a read-only
+-- auto-generated field.
+camaClickTags :: Lens' CreativeAssetMetadata [ClickTag]
+camaClickTags
+  = lens _camaClickTags
+      (\ s a -> s{_camaClickTags = a})
+      . _Default
+      . _Coerce
+
+-- | Rules validated during code generation that generated a warning. This is
+-- a read-only, auto-generated field. Possible values are: -
+-- \"ADMOB_REFERENCED\" - \"ASSET_FORMAT_UNSUPPORTED_DCM\" -
+-- \"ASSET_INVALID\" - \"CLICK_TAG_HARD_CODED\" - \"CLICK_TAG_INVALID\" -
+-- \"CLICK_TAG_IN_GWD\" - \"CLICK_TAG_MISSING\" -
+-- \"CLICK_TAG_MORE_THAN_ONE\" - \"CLICK_TAG_NON_TOP_LEVEL\" -
+-- \"COMPONENT_UNSUPPORTED_DCM\" - \"ENABLER_UNSUPPORTED_METHOD_DCM\" -
+-- \"EXTERNAL_FILE_REFERENCED\" - \"FILE_DETAIL_EMPTY\" -
+-- \"FILE_TYPE_INVALID\" - \"GWD_PROPERTIES_INVALID\" -
+-- \"HTML5_FEATURE_UNSUPPORTED\" - \"LINKED_FILE_NOT_FOUND\" -
+-- \"MAX_FLASH_VERSION_11\" - \"MRAID_REFERENCED\" - \"NOT_SSL_COMPLIANT\"
+-- - \"ORPHANED_ASSET\" - \"PRIMARY_HTML_MISSING\" - \"SVG_INVALID\" -
+-- \"ZIP_INVALID\"
+camaWarnedValidationRules :: Lens' CreativeAssetMetadata [CreativeAssetMetadataWarnedValidationRulesItem]
+camaWarnedValidationRules
+  = lens _camaWarnedValidationRules
+      (\ s a -> s{_camaWarnedValidationRules = a})
+      . _Default
+      . _Coerce
+
+-- | List of feature dependencies for the creative asset that are detected by
+-- DCM. Feature dependencies are features that a browser must be able to
+-- support in order to render your HTML5 creative correctly. This is a
+-- read-only, auto-generated field.
+camaDetectedFeatures :: Lens' CreativeAssetMetadata [CreativeAssetMetadataDetectedFeaturesItem]
+camaDetectedFeatures
+  = lens _camaDetectedFeatures
+      (\ s a -> s{_camaDetectedFeatures = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CreativeAssetMetadata where
+        parseJSON
+          = withObject "CreativeAssetMetadata"
+              (\ o ->
+                 CreativeAssetMetadata' <$>
+                   (o .:? "kind" .!=
+                      "dfareporting#creativeAssetMetadata")
+                     <*> (o .:? "assetIdentifier")
+                     <*> (o .:? "clickTags" .!= mempty)
+                     <*> (o .:? "warnedValidationRules" .!= mempty)
+                     <*> (o .:? "detectedFeatures" .!= mempty))
+
+instance ToJSON CreativeAssetMetadata where
+        toJSON CreativeAssetMetadata'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _camaKind),
+                  ("assetIdentifier" .=) <$> _camaAssetIdentifier,
+                  ("clickTags" .=) <$> _camaClickTags,
+                  ("warnedValidationRules" .=) <$>
+                    _camaWarnedValidationRules,
+                  ("detectedFeatures" .=) <$> _camaDetectedFeatures])
+
+-- | Omniture Integration Settings.
+--
+-- /See:/ 'omnitureSettings' smart constructor.
+data OmnitureSettings = OmnitureSettings'
+    { _osOmnitureCostDataEnabled    :: !(Maybe Bool)
+    , _osOmnitureIntegrationEnabled :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OmnitureSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osOmnitureCostDataEnabled'
+--
+-- * 'osOmnitureIntegrationEnabled'
+omnitureSettings
+    :: OmnitureSettings
+omnitureSettings =
+    OmnitureSettings'
+    { _osOmnitureCostDataEnabled = Nothing
+    , _osOmnitureIntegrationEnabled = Nothing
+    }
+
+-- | Whether placement cost data will be sent to Omniture. This property can
+-- be enabled only if omnitureIntegrationEnabled is true.
+osOmnitureCostDataEnabled :: Lens' OmnitureSettings (Maybe Bool)
+osOmnitureCostDataEnabled
+  = lens _osOmnitureCostDataEnabled
+      (\ s a -> s{_osOmnitureCostDataEnabled = a})
+
+-- | Whether Omniture integration is enabled. This property can be enabled
+-- only when the \"Advanced Ad Serving\" account setting is enabled.
+osOmnitureIntegrationEnabled :: Lens' OmnitureSettings (Maybe Bool)
+osOmnitureIntegrationEnabled
+  = lens _osOmnitureIntegrationEnabled
+      (\ s a -> s{_osOmnitureIntegrationEnabled = a})
+
+instance FromJSON OmnitureSettings where
+        parseJSON
+          = withObject "OmnitureSettings"
+              (\ o ->
+                 OmnitureSettings' <$>
+                   (o .:? "omnitureCostDataEnabled") <*>
+                     (o .:? "omnitureIntegrationEnabled"))
+
+instance ToJSON OmnitureSettings where
+        toJSON OmnitureSettings'{..}
+          = object
+              (catMaybes
+                 [("omnitureCostDataEnabled" .=) <$>
+                    _osOmnitureCostDataEnabled,
+                  ("omnitureIntegrationEnabled" .=) <$>
+                    _osOmnitureIntegrationEnabled])
+
+-- | Contains information about an internet connection type that can be
+-- targeted by ads. Clients can use the connection type to target mobile
+-- vs. broadband users.
+--
+-- /See:/ 'connectionType' smart constructor.
+data ConnectionType = ConnectionType'
+    { _cttKind :: !Text
+    , _cttName :: !(Maybe Text)
+    , _cttId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConnectionType' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cttKind'
+--
+-- * 'cttName'
+--
+-- * 'cttId'
+connectionType
+    :: ConnectionType
+connectionType =
+    ConnectionType'
+    { _cttKind = "dfareporting#connectionType"
+    , _cttName = Nothing
+    , _cttId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#connectionType\".
+cttKind :: Lens' ConnectionType Text
+cttKind = lens _cttKind (\ s a -> s{_cttKind = a})
+
+-- | Name of this connection type.
+cttName :: Lens' ConnectionType (Maybe Text)
+cttName = lens _cttName (\ s a -> s{_cttName = a})
+
+-- | ID of this connection type.
+cttId :: Lens' ConnectionType (Maybe Int64)
+cttId
+  = lens _cttId (\ s a -> s{_cttId = a}) .
+      mapping _Coerce
+
+instance FromJSON ConnectionType where
+        parseJSON
+          = withObject "ConnectionType"
+              (\ o ->
+                 ConnectionType' <$>
+                   (o .:? "kind" .!= "dfareporting#connectionType") <*>
+                     (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON ConnectionType where
+        toJSON ConnectionType'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cttKind), ("name" .=) <$> _cttName,
+                  ("id" .=) <$> _cttId])
+
+-- | Contains properties of a package or roadblock.
+--
+-- /See:/ 'placementGroup' smart constructor.
+data PlacementGroup = PlacementGroup'
+    { _plalPlacementStrategyId              :: !(Maybe (Textual Int64))
+    , _plalSiteIdDimensionValue             :: !(Maybe DimensionValue)
+    , _plalPricingSchedule                  :: !(Maybe PricingSchedule)
+    , _plalKind                             :: !Text
+    , _plalCampaignIdDimensionValue         :: !(Maybe DimensionValue)
+    , _plalAdvertiserId                     :: !(Maybe (Textual Int64))
+    , _plalAdvertiserIdDimensionValue       :: !(Maybe DimensionValue)
+    , _plalCampaignId                       :: !(Maybe (Textual Int64))
+    , _plalIdDimensionValue                 :: !(Maybe DimensionValue)
+    , _plalPlacementGroupType               :: !(Maybe PlacementGroupPlacementGroupType)
+    , _plalContentCategoryId                :: !(Maybe (Textual Int64))
+    , _plalDirectorySiteIdDimensionValue    :: !(Maybe DimensionValue)
+    , _plalAccountId                        :: !(Maybe (Textual Int64))
+    , _plalName                             :: !(Maybe Text)
+    , _plalDirectorySiteId                  :: !(Maybe (Textual Int64))
+    , _plalCreateInfo                       :: !(Maybe LastModifiedInfo)
+    , _plalChildPlacementIds                :: !(Maybe [Textual Int64])
+    , _plalLastModifiedInfo                 :: !(Maybe LastModifiedInfo)
+    , _plalId                               :: !(Maybe (Textual Int64))
+    , _plalPrimaryPlacementId               :: !(Maybe (Textual Int64))
+    , _plalSubAccountId                     :: !(Maybe (Textual Int64))
+    , _plalExternalId                       :: !(Maybe Text)
+    , _plalComment                          :: !(Maybe Text)
+    , _plalPrimaryPlacementIdDimensionValue :: !(Maybe DimensionValue)
+    , _plalSiteId                           :: !(Maybe (Textual Int64))
+    , _plalArchived                         :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PlacementGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plalPlacementStrategyId'
+--
+-- * 'plalSiteIdDimensionValue'
+--
+-- * 'plalPricingSchedule'
+--
+-- * 'plalKind'
+--
+-- * 'plalCampaignIdDimensionValue'
+--
+-- * 'plalAdvertiserId'
+--
+-- * 'plalAdvertiserIdDimensionValue'
+--
+-- * 'plalCampaignId'
+--
+-- * 'plalIdDimensionValue'
+--
+-- * 'plalPlacementGroupType'
+--
+-- * 'plalContentCategoryId'
+--
+-- * 'plalDirectorySiteIdDimensionValue'
+--
+-- * 'plalAccountId'
+--
+-- * 'plalName'
+--
+-- * 'plalDirectorySiteId'
+--
+-- * 'plalCreateInfo'
+--
+-- * 'plalChildPlacementIds'
+--
+-- * 'plalLastModifiedInfo'
+--
+-- * 'plalId'
+--
+-- * 'plalPrimaryPlacementId'
+--
+-- * 'plalSubAccountId'
+--
+-- * 'plalExternalId'
+--
+-- * 'plalComment'
+--
+-- * 'plalPrimaryPlacementIdDimensionValue'
+--
+-- * 'plalSiteId'
+--
+-- * 'plalArchived'
+placementGroup
+    :: PlacementGroup
+placementGroup =
+    PlacementGroup'
+    { _plalPlacementStrategyId = Nothing
+    , _plalSiteIdDimensionValue = Nothing
+    , _plalPricingSchedule = Nothing
+    , _plalKind = "dfareporting#placementGroup"
+    , _plalCampaignIdDimensionValue = Nothing
+    , _plalAdvertiserId = Nothing
+    , _plalAdvertiserIdDimensionValue = Nothing
+    , _plalCampaignId = Nothing
+    , _plalIdDimensionValue = Nothing
+    , _plalPlacementGroupType = Nothing
+    , _plalContentCategoryId = Nothing
+    , _plalDirectorySiteIdDimensionValue = Nothing
+    , _plalAccountId = Nothing
+    , _plalName = Nothing
+    , _plalDirectorySiteId = Nothing
+    , _plalCreateInfo = Nothing
+    , _plalChildPlacementIds = Nothing
+    , _plalLastModifiedInfo = Nothing
+    , _plalId = Nothing
+    , _plalPrimaryPlacementId = Nothing
+    , _plalSubAccountId = Nothing
+    , _plalExternalId = Nothing
+    , _plalComment = Nothing
+    , _plalPrimaryPlacementIdDimensionValue = Nothing
+    , _plalSiteId = Nothing
+    , _plalArchived = Nothing
+    }
+
+-- | ID of the placement strategy assigned to this placement group.
+plalPlacementStrategyId :: Lens' PlacementGroup (Maybe Int64)
+plalPlacementStrategyId
+  = lens _plalPlacementStrategyId
+      (\ s a -> s{_plalPlacementStrategyId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the site. This is a read-only,
+-- auto-generated field.
+plalSiteIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalSiteIdDimensionValue
+  = lens _plalSiteIdDimensionValue
+      (\ s a -> s{_plalSiteIdDimensionValue = a})
+
+-- | Pricing schedule of this placement group. This field is required on
+-- insertion.
+plalPricingSchedule :: Lens' PlacementGroup (Maybe PricingSchedule)
+plalPricingSchedule
+  = lens _plalPricingSchedule
+      (\ s a -> s{_plalPricingSchedule = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placementGroup\".
+plalKind :: Lens' PlacementGroup Text
+plalKind = lens _plalKind (\ s a -> s{_plalKind = a})
+
+-- | Dimension value for the ID of the campaign. This is a read-only,
+-- auto-generated field.
+plalCampaignIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalCampaignIdDimensionValue
+  = lens _plalCampaignIdDimensionValue
+      (\ s a -> s{_plalCampaignIdDimensionValue = a})
+
+-- | Advertiser ID of this placement group. This is a required field on
+-- insertion.
+plalAdvertiserId :: Lens' PlacementGroup (Maybe Int64)
+plalAdvertiserId
+  = lens _plalAdvertiserId
+      (\ s a -> s{_plalAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+plalAdvertiserIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalAdvertiserIdDimensionValue
+  = lens _plalAdvertiserIdDimensionValue
+      (\ s a -> s{_plalAdvertiserIdDimensionValue = a})
+
+-- | Campaign ID of this placement group. This field is required on
+-- insertion.
+plalCampaignId :: Lens' PlacementGroup (Maybe Int64)
+plalCampaignId
+  = lens _plalCampaignId
+      (\ s a -> s{_plalCampaignId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of this placement group. This is a read-only,
+-- auto-generated field.
+plalIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalIdDimensionValue
+  = lens _plalIdDimensionValue
+      (\ s a -> s{_plalIdDimensionValue = a})
+
+-- | Type of this placement group. A package is a simple group of placements
+-- that acts as a single pricing point for a group of tags. A roadblock is
+-- a group of placements that not only acts as a single pricing point, but
+-- also assumes that all the tags in it will be served at the same time. A
+-- roadblock requires one of its assigned placements to be marked as
+-- primary for reporting. This field is required on insertion.
+plalPlacementGroupType :: Lens' PlacementGroup (Maybe PlacementGroupPlacementGroupType)
+plalPlacementGroupType
+  = lens _plalPlacementGroupType
+      (\ s a -> s{_plalPlacementGroupType = a})
+
+-- | ID of the content category assigned to this placement group.
+plalContentCategoryId :: Lens' PlacementGroup (Maybe Int64)
+plalContentCategoryId
+  = lens _plalContentCategoryId
+      (\ s a -> s{_plalContentCategoryId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the directory site. This is a read-only,
+-- auto-generated field.
+plalDirectorySiteIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalDirectorySiteIdDimensionValue
+  = lens _plalDirectorySiteIdDimensionValue
+      (\ s a -> s{_plalDirectorySiteIdDimensionValue = a})
+
+-- | Account ID of this placement group. This is a read-only field that can
+-- be left blank.
+plalAccountId :: Lens' PlacementGroup (Maybe Int64)
+plalAccountId
+  = lens _plalAccountId
+      (\ s a -> s{_plalAccountId = a})
+      . mapping _Coerce
+
+-- | Name of this placement group. This is a required field and must be less
+-- than 256 characters long.
+plalName :: Lens' PlacementGroup (Maybe Text)
+plalName = lens _plalName (\ s a -> s{_plalName = a})
+
+-- | Directory site ID associated with this placement group. On insert, you
+-- must set either this field or the site_id field to specify the site
+-- associated with this placement group. This is a required field that is
+-- read-only after insertion.
+plalDirectorySiteId :: Lens' PlacementGroup (Maybe Int64)
+plalDirectorySiteId
+  = lens _plalDirectorySiteId
+      (\ s a -> s{_plalDirectorySiteId = a})
+      . mapping _Coerce
+
+-- | Information about the creation of this placement group. This is a
+-- read-only field.
+plalCreateInfo :: Lens' PlacementGroup (Maybe LastModifiedInfo)
+plalCreateInfo
+  = lens _plalCreateInfo
+      (\ s a -> s{_plalCreateInfo = a})
+
+-- | IDs of placements which are assigned to this placement group. This is a
+-- read-only, auto-generated field.
+plalChildPlacementIds :: Lens' PlacementGroup [Int64]
+plalChildPlacementIds
+  = lens _plalChildPlacementIds
+      (\ s a -> s{_plalChildPlacementIds = a})
+      . _Default
+      . _Coerce
+
+-- | Information about the most recent modification of this placement group.
+-- This is a read-only field.
+plalLastModifiedInfo :: Lens' PlacementGroup (Maybe LastModifiedInfo)
+plalLastModifiedInfo
+  = lens _plalLastModifiedInfo
+      (\ s a -> s{_plalLastModifiedInfo = a})
+
+-- | ID of this placement group. This is a read-only, auto-generated field.
+plalId :: Lens' PlacementGroup (Maybe Int64)
+plalId
+  = lens _plalId (\ s a -> s{_plalId = a}) .
+      mapping _Coerce
+
+-- | ID of the primary placement, used to calculate the media cost of a
+-- roadblock (placement group). Modifying this field will automatically
+-- modify the primary field on all affected roadblock child placements.
+plalPrimaryPlacementId :: Lens' PlacementGroup (Maybe Int64)
+plalPrimaryPlacementId
+  = lens _plalPrimaryPlacementId
+      (\ s a -> s{_plalPrimaryPlacementId = a})
+      . mapping _Coerce
+
+-- | Subaccount ID of this placement group. This is a read-only field that
+-- can be left blank.
+plalSubAccountId :: Lens' PlacementGroup (Maybe Int64)
+plalSubAccountId
+  = lens _plalSubAccountId
+      (\ s a -> s{_plalSubAccountId = a})
+      . mapping _Coerce
+
+-- | External ID for this placement.
+plalExternalId :: Lens' PlacementGroup (Maybe Text)
+plalExternalId
+  = lens _plalExternalId
+      (\ s a -> s{_plalExternalId = a})
+
+-- | Comments for this placement group.
+plalComment :: Lens' PlacementGroup (Maybe Text)
+plalComment
+  = lens _plalComment (\ s a -> s{_plalComment = a})
+
+-- | Dimension value for the ID of the primary placement. This is a
+-- read-only, auto-generated field.
+plalPrimaryPlacementIdDimensionValue :: Lens' PlacementGroup (Maybe DimensionValue)
+plalPrimaryPlacementIdDimensionValue
+  = lens _plalPrimaryPlacementIdDimensionValue
+      (\ s a ->
+         s{_plalPrimaryPlacementIdDimensionValue = a})
+
+-- | Site ID associated with this placement group. On insert, you must set
+-- either this field or the directorySiteId field to specify the site
+-- associated with this placement group. This is a required field that is
+-- read-only after insertion.
+plalSiteId :: Lens' PlacementGroup (Maybe Int64)
+plalSiteId
+  = lens _plalSiteId (\ s a -> s{_plalSiteId = a}) .
+      mapping _Coerce
+
+-- | Whether this placement group is archived.
+plalArchived :: Lens' PlacementGroup (Maybe Bool)
+plalArchived
+  = lens _plalArchived (\ s a -> s{_plalArchived = a})
+
+instance FromJSON PlacementGroup where
+        parseJSON
+          = withObject "PlacementGroup"
+              (\ o ->
+                 PlacementGroup' <$>
+                   (o .:? "placementStrategyId") <*>
+                     (o .:? "siteIdDimensionValue")
+                     <*> (o .:? "pricingSchedule")
+                     <*> (o .:? "kind" .!= "dfareporting#placementGroup")
+                     <*> (o .:? "campaignIdDimensionValue")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "campaignId")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "placementGroupType")
+                     <*> (o .:? "contentCategoryId")
+                     <*> (o .:? "directorySiteIdDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "directorySiteId")
+                     <*> (o .:? "createInfo")
+                     <*> (o .:? "childPlacementIds" .!= mempty)
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "primaryPlacementId")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "externalId")
+                     <*> (o .:? "comment")
+                     <*> (o .:? "primaryPlacementIdDimensionValue")
+                     <*> (o .:? "siteId")
+                     <*> (o .:? "archived"))
+
+instance ToJSON PlacementGroup where
+        toJSON PlacementGroup'{..}
+          = object
+              (catMaybes
+                 [("placementStrategyId" .=) <$>
+                    _plalPlacementStrategyId,
+                  ("siteIdDimensionValue" .=) <$>
+                    _plalSiteIdDimensionValue,
+                  ("pricingSchedule" .=) <$> _plalPricingSchedule,
+                  Just ("kind" .= _plalKind),
+                  ("campaignIdDimensionValue" .=) <$>
+                    _plalCampaignIdDimensionValue,
+                  ("advertiserId" .=) <$> _plalAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _plalAdvertiserIdDimensionValue,
+                  ("campaignId" .=) <$> _plalCampaignId,
+                  ("idDimensionValue" .=) <$> _plalIdDimensionValue,
+                  ("placementGroupType" .=) <$>
+                    _plalPlacementGroupType,
+                  ("contentCategoryId" .=) <$> _plalContentCategoryId,
+                  ("directorySiteIdDimensionValue" .=) <$>
+                    _plalDirectorySiteIdDimensionValue,
+                  ("accountId" .=) <$> _plalAccountId,
+                  ("name" .=) <$> _plalName,
+                  ("directorySiteId" .=) <$> _plalDirectorySiteId,
+                  ("createInfo" .=) <$> _plalCreateInfo,
+                  ("childPlacementIds" .=) <$> _plalChildPlacementIds,
+                  ("lastModifiedInfo" .=) <$> _plalLastModifiedInfo,
+                  ("id" .=) <$> _plalId,
+                  ("primaryPlacementId" .=) <$>
+                    _plalPrimaryPlacementId,
+                  ("subaccountId" .=) <$> _plalSubAccountId,
+                  ("externalId" .=) <$> _plalExternalId,
+                  ("comment" .=) <$> _plalComment,
+                  ("primaryPlacementIdDimensionValue" .=) <$>
+                    _plalPrimaryPlacementIdDimensionValue,
+                  ("siteId" .=) <$> _plalSiteId,
+                  ("archived" .=) <$> _plalArchived])
+
+-- | Contains properties of an event tag.
+--
+-- /See:/ 'eventTag' smart constructor.
+data EventTag = EventTag'
+    { _etStatus                     :: !(Maybe EventTagStatus)
+    , _etExcludeFromAdxRequests     :: !(Maybe Bool)
+    , _etEnabledByDefault           :: !(Maybe Bool)
+    , _etKind                       :: !Text
+    , _etCampaignIdDimensionValue   :: !(Maybe DimensionValue)
+    , _etAdvertiserId               :: !(Maybe (Textual Int64))
+    , _etURL                        :: !(Maybe Text)
+    , _etAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
+    , _etSSLCompliant               :: !(Maybe Bool)
+    , _etCampaignId                 :: !(Maybe (Textual Int64))
+    , _etAccountId                  :: !(Maybe (Textual Int64))
+    , _etName                       :: !(Maybe Text)
+    , _etURLEscapeLevels            :: !(Maybe (Textual Int32))
+    , _etSiteIds                    :: !(Maybe [Textual Int64])
+    , _etId                         :: !(Maybe (Textual Int64))
+    , _etSubAccountId               :: !(Maybe (Textual Int64))
+    , _etType                       :: !(Maybe EventTagType)
+    , _etSiteFilterType             :: !(Maybe EventTagSiteFilterType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etStatus'
+--
+-- * 'etExcludeFromAdxRequests'
+--
+-- * 'etEnabledByDefault'
+--
+-- * 'etKind'
+--
+-- * 'etCampaignIdDimensionValue'
+--
+-- * 'etAdvertiserId'
+--
+-- * 'etURL'
+--
+-- * 'etAdvertiserIdDimensionValue'
+--
+-- * 'etSSLCompliant'
+--
+-- * 'etCampaignId'
+--
+-- * 'etAccountId'
+--
+-- * 'etName'
+--
+-- * 'etURLEscapeLevels'
+--
+-- * 'etSiteIds'
+--
+-- * 'etId'
+--
+-- * 'etSubAccountId'
+--
+-- * 'etType'
+--
+-- * 'etSiteFilterType'
+eventTag
+    :: EventTag
+eventTag =
+    EventTag'
+    { _etStatus = Nothing
+    , _etExcludeFromAdxRequests = Nothing
+    , _etEnabledByDefault = Nothing
+    , _etKind = "dfareporting#eventTag"
+    , _etCampaignIdDimensionValue = Nothing
+    , _etAdvertiserId = Nothing
+    , _etURL = Nothing
+    , _etAdvertiserIdDimensionValue = Nothing
+    , _etSSLCompliant = Nothing
+    , _etCampaignId = Nothing
+    , _etAccountId = Nothing
+    , _etName = Nothing
+    , _etURLEscapeLevels = Nothing
+    , _etSiteIds = Nothing
+    , _etId = Nothing
+    , _etSubAccountId = Nothing
+    , _etType = Nothing
+    , _etSiteFilterType = Nothing
+    }
+
+-- | Status of this event tag. Must be ENABLED for this event tag to fire.
+-- This is a required field.
+etStatus :: Lens' EventTag (Maybe EventTagStatus)
+etStatus = lens _etStatus (\ s a -> s{_etStatus = a})
+
+-- | Whether to remove this event tag from ads that are trafficked through
+-- DoubleClick Bid Manager to Ad Exchange. This may be useful if the event
+-- tag uses a pixel that is unapproved for Ad Exchange bids on one or more
+-- networks, such as the Google Display Network.
+etExcludeFromAdxRequests :: Lens' EventTag (Maybe Bool)
+etExcludeFromAdxRequests
+  = lens _etExcludeFromAdxRequests
+      (\ s a -> s{_etExcludeFromAdxRequests = a})
+
+-- | Whether this event tag should be automatically enabled for all of the
+-- advertiser\'s campaigns and ads.
+etEnabledByDefault :: Lens' EventTag (Maybe Bool)
+etEnabledByDefault
+  = lens _etEnabledByDefault
+      (\ s a -> s{_etEnabledByDefault = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#eventTag\".
+etKind :: Lens' EventTag Text
+etKind = lens _etKind (\ s a -> s{_etKind = a})
+
+-- | Dimension value for the ID of the campaign. This is a read-only,
+-- auto-generated field.
+etCampaignIdDimensionValue :: Lens' EventTag (Maybe DimensionValue)
+etCampaignIdDimensionValue
+  = lens _etCampaignIdDimensionValue
+      (\ s a -> s{_etCampaignIdDimensionValue = a})
+
+-- | Advertiser ID of this event tag. This field or the campaignId field is
+-- required on insertion.
+etAdvertiserId :: Lens' EventTag (Maybe Int64)
+etAdvertiserId
+  = lens _etAdvertiserId
+      (\ s a -> s{_etAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Payload URL for this event tag. The URL on a click-through event tag
+-- should have a landing page URL appended to the end of it. This field is
+-- required on insertion.
+etURL :: Lens' EventTag (Maybe Text)
+etURL = lens _etURL (\ s a -> s{_etURL = a})
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+etAdvertiserIdDimensionValue :: Lens' EventTag (Maybe DimensionValue)
+etAdvertiserIdDimensionValue
+  = lens _etAdvertiserIdDimensionValue
+      (\ s a -> s{_etAdvertiserIdDimensionValue = a})
+
+-- | Whether this tag is SSL-compliant or not. This is a read-only field.
+etSSLCompliant :: Lens' EventTag (Maybe Bool)
+etSSLCompliant
+  = lens _etSSLCompliant
+      (\ s a -> s{_etSSLCompliant = a})
+
+-- | Campaign ID of this event tag. This field or the advertiserId field is
+-- required on insertion.
+etCampaignId :: Lens' EventTag (Maybe Int64)
+etCampaignId
+  = lens _etCampaignId (\ s a -> s{_etCampaignId = a})
+      . mapping _Coerce
+
+-- | Account ID of this event tag. This is a read-only field that can be left
+-- blank.
+etAccountId :: Lens' EventTag (Maybe Int64)
+etAccountId
+  = lens _etAccountId (\ s a -> s{_etAccountId = a}) .
+      mapping _Coerce
+
+-- | Name of this event tag. This is a required field and must be less than
+-- 256 characters long.
+etName :: Lens' EventTag (Maybe Text)
+etName = lens _etName (\ s a -> s{_etName = a})
+
+-- | Number of times the landing page URL should be URL-escaped before being
+-- appended to the click-through event tag URL. Only applies to
+-- click-through event tags as specified by the event tag type.
+etURLEscapeLevels :: Lens' EventTag (Maybe Int32)
+etURLEscapeLevels
+  = lens _etURLEscapeLevels
+      (\ s a -> s{_etURLEscapeLevels = a})
+      . mapping _Coerce
+
+-- | Filter list of site IDs associated with this event tag. The
+-- siteFilterType determines whether this is a whitelist or blacklist
+-- filter.
+etSiteIds :: Lens' EventTag [Int64]
+etSiteIds
+  = lens _etSiteIds (\ s a -> s{_etSiteIds = a}) .
+      _Default
+      . _Coerce
+
+-- | ID of this event tag. This is a read-only, auto-generated field.
+etId :: Lens' EventTag (Maybe Int64)
+etId
+  = lens _etId (\ s a -> s{_etId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this event tag. This is a read-only field that can be
+-- left blank.
+etSubAccountId :: Lens' EventTag (Maybe Int64)
+etSubAccountId
+  = lens _etSubAccountId
+      (\ s a -> s{_etSubAccountId = a})
+      . mapping _Coerce
+
+-- | Event tag type. Can be used to specify whether to use a third-party
+-- pixel, a third-party JavaScript URL, or a third-party click-through URL
+-- for either impression or click tracking. This is a required field.
+etType :: Lens' EventTag (Maybe EventTagType)
+etType = lens _etType (\ s a -> s{_etType = a})
+
+-- | Site filter type for this event tag. If no type is specified then the
+-- event tag will be applied to all sites.
+etSiteFilterType :: Lens' EventTag (Maybe EventTagSiteFilterType)
+etSiteFilterType
+  = lens _etSiteFilterType
+      (\ s a -> s{_etSiteFilterType = a})
+
+instance FromJSON EventTag where
+        parseJSON
+          = withObject "EventTag"
+              (\ o ->
+                 EventTag' <$>
+                   (o .:? "status") <*> (o .:? "excludeFromAdxRequests")
+                     <*> (o .:? "enabledByDefault")
+                     <*> (o .:? "kind" .!= "dfareporting#eventTag")
+                     <*> (o .:? "campaignIdDimensionValue")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "url")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "sslCompliant")
+                     <*> (o .:? "campaignId")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "urlEscapeLevels")
+                     <*> (o .:? "siteIds" .!= mempty)
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "siteFilterType"))
+
+instance ToJSON EventTag where
+        toJSON EventTag'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _etStatus,
+                  ("excludeFromAdxRequests" .=) <$>
+                    _etExcludeFromAdxRequests,
+                  ("enabledByDefault" .=) <$> _etEnabledByDefault,
+                  Just ("kind" .= _etKind),
+                  ("campaignIdDimensionValue" .=) <$>
+                    _etCampaignIdDimensionValue,
+                  ("advertiserId" .=) <$> _etAdvertiserId,
+                  ("url" .=) <$> _etURL,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _etAdvertiserIdDimensionValue,
+                  ("sslCompliant" .=) <$> _etSSLCompliant,
+                  ("campaignId" .=) <$> _etCampaignId,
+                  ("accountId" .=) <$> _etAccountId,
+                  ("name" .=) <$> _etName,
+                  ("urlEscapeLevels" .=) <$> _etURLEscapeLevels,
+                  ("siteIds" .=) <$> _etSiteIds, ("id" .=) <$> _etId,
+                  ("subaccountId" .=) <$> _etSubAccountId,
+                  ("type" .=) <$> _etType,
+                  ("siteFilterType" .=) <$> _etSiteFilterType])
+
+-- | Contains properties of a user role permission.
+--
+-- /See:/ 'userRolePermission' smart constructor.
+data UserRolePermission = UserRolePermission'
+    { _useKind              :: !Text
+    , _useAvailability      :: !(Maybe UserRolePermissionAvailability)
+    , _useName              :: !(Maybe Text)
+    , _useId                :: !(Maybe (Textual Int64))
+    , _usePermissionGroupId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserRolePermission' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'useKind'
+--
+-- * 'useAvailability'
+--
+-- * 'useName'
+--
+-- * 'useId'
+--
+-- * 'usePermissionGroupId'
+userRolePermission
+    :: UserRolePermission
+userRolePermission =
+    UserRolePermission'
+    { _useKind = "dfareporting#userRolePermission"
+    , _useAvailability = Nothing
+    , _useName = Nothing
+    , _useId = Nothing
+    , _usePermissionGroupId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#userRolePermission\".
+useKind :: Lens' UserRolePermission Text
+useKind = lens _useKind (\ s a -> s{_useKind = a})
+
+-- | Levels of availability for a user role permission.
+useAvailability :: Lens' UserRolePermission (Maybe UserRolePermissionAvailability)
+useAvailability
+  = lens _useAvailability
+      (\ s a -> s{_useAvailability = a})
+
+-- | Name of this user role permission.
+useName :: Lens' UserRolePermission (Maybe Text)
+useName = lens _useName (\ s a -> s{_useName = a})
+
+-- | ID of this user role permission.
+useId :: Lens' UserRolePermission (Maybe Int64)
+useId
+  = lens _useId (\ s a -> s{_useId = a}) .
+      mapping _Coerce
+
+-- | ID of the permission group that this user role permission belongs to.
+usePermissionGroupId :: Lens' UserRolePermission (Maybe Int64)
+usePermissionGroupId
+  = lens _usePermissionGroupId
+      (\ s a -> s{_usePermissionGroupId = a})
+      . mapping _Coerce
+
+instance FromJSON UserRolePermission where
+        parseJSON
+          = withObject "UserRolePermission"
+              (\ o ->
+                 UserRolePermission' <$>
+                   (o .:? "kind" .!= "dfareporting#userRolePermission")
+                     <*> (o .:? "availability")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "permissionGroupId"))
+
+instance ToJSON UserRolePermission where
+        toJSON UserRolePermission'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _useKind),
+                  ("availability" .=) <$> _useAvailability,
+                  ("name" .=) <$> _useName, ("id" .=) <$> _useId,
+                  ("permissionGroupId" .=) <$> _usePermissionGroupId])
+
+-- | Contact of an order.
+--
+-- /See:/ 'orderContact' smart constructor.
+data OrderContact = OrderContact'
+    { _ocSignatureUserProFileId :: !(Maybe (Textual Int64))
+    , _ocContactName            :: !(Maybe Text)
+    , _ocContactTitle           :: !(Maybe Text)
+    , _ocContactType            :: !(Maybe OrderContactContactType)
+    , _ocContactInfo            :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrderContact' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ocSignatureUserProFileId'
+--
+-- * 'ocContactName'
+--
+-- * 'ocContactTitle'
+--
+-- * 'ocContactType'
+--
+-- * 'ocContactInfo'
+orderContact
+    :: OrderContact
+orderContact =
+    OrderContact'
+    { _ocSignatureUserProFileId = Nothing
+    , _ocContactName = Nothing
+    , _ocContactTitle = Nothing
+    , _ocContactType = Nothing
+    , _ocContactInfo = Nothing
+    }
+
+-- | ID of the user profile containing the signature that will be embedded
+-- into order documents.
+ocSignatureUserProFileId :: Lens' OrderContact (Maybe Int64)
+ocSignatureUserProFileId
+  = lens _ocSignatureUserProFileId
+      (\ s a -> s{_ocSignatureUserProFileId = a})
+      . mapping _Coerce
+
+-- | Name of this contact.
+ocContactName :: Lens' OrderContact (Maybe Text)
+ocContactName
+  = lens _ocContactName
+      (\ s a -> s{_ocContactName = a})
+
+-- | Title of this contact.
+ocContactTitle :: Lens' OrderContact (Maybe Text)
+ocContactTitle
+  = lens _ocContactTitle
+      (\ s a -> s{_ocContactTitle = a})
+
+-- | Type of this contact.
+ocContactType :: Lens' OrderContact (Maybe OrderContactContactType)
+ocContactType
+  = lens _ocContactType
+      (\ s a -> s{_ocContactType = a})
+
+-- | Free-form information about this contact. It could be any information
+-- related to this contact in addition to type, title, name, and signature
+-- user profile ID.
+ocContactInfo :: Lens' OrderContact (Maybe Text)
+ocContactInfo
+  = lens _ocContactInfo
+      (\ s a -> s{_ocContactInfo = a})
+
+instance FromJSON OrderContact where
+        parseJSON
+          = withObject "OrderContact"
+              (\ o ->
+                 OrderContact' <$>
+                   (o .:? "signatureUserProfileId") <*>
+                     (o .:? "contactName")
+                     <*> (o .:? "contactTitle")
+                     <*> (o .:? "contactType")
+                     <*> (o .:? "contactInfo"))
+
+instance ToJSON OrderContact where
+        toJSON OrderContact'{..}
+          = object
+              (catMaybes
+                 [("signatureUserProfileId" .=) <$>
+                    _ocSignatureUserProFileId,
+                  ("contactName" .=) <$> _ocContactName,
+                  ("contactTitle" .=) <$> _ocContactTitle,
+                  ("contactType" .=) <$> _ocContactType,
+                  ("contactInfo" .=) <$> _ocContactInfo])
+
+-- | Floodlight Activity GenerateTag Response
+--
+-- /See:/ 'floodlightActivitiesGenerateTagResponse' smart constructor.
+data FloodlightActivitiesGenerateTagResponse = FloodlightActivitiesGenerateTagResponse'
+    { _fagtrFloodlightActivityTag :: !(Maybe Text)
+    , _fagtrKind                  :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FloodlightActivitiesGenerateTagResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fagtrFloodlightActivityTag'
+--
+-- * 'fagtrKind'
+floodlightActivitiesGenerateTagResponse
+    :: FloodlightActivitiesGenerateTagResponse
+floodlightActivitiesGenerateTagResponse =
+    FloodlightActivitiesGenerateTagResponse'
+    { _fagtrFloodlightActivityTag = Nothing
+    , _fagtrKind = "dfareporting#floodlightActivitiesGenerateTagResponse"
+    }
+
+-- | Generated tag for this floodlight activity.
+fagtrFloodlightActivityTag :: Lens' FloodlightActivitiesGenerateTagResponse (Maybe Text)
+fagtrFloodlightActivityTag
+  = lens _fagtrFloodlightActivityTag
+      (\ s a -> s{_fagtrFloodlightActivityTag = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#floodlightActivitiesGenerateTagResponse\".
+fagtrKind :: Lens' FloodlightActivitiesGenerateTagResponse Text
+fagtrKind
+  = lens _fagtrKind (\ s a -> s{_fagtrKind = a})
+
+instance FromJSON
+         FloodlightActivitiesGenerateTagResponse where
+        parseJSON
+          = withObject
+              "FloodlightActivitiesGenerateTagResponse"
+              (\ o ->
+                 FloodlightActivitiesGenerateTagResponse' <$>
+                   (o .:? "floodlightActivityTag") <*>
+                     (o .:? "kind" .!=
+                        "dfareporting#floodlightActivitiesGenerateTagResponse"))
+
+instance ToJSON
+         FloodlightActivitiesGenerateTagResponse where
+        toJSON FloodlightActivitiesGenerateTagResponse'{..}
+          = object
+              (catMaybes
+                 [("floodlightActivityTag" .=) <$>
+                    _fagtrFloodlightActivityTag,
+                  Just ("kind" .= _fagtrKind)])
+
+-- | Directory Site Contact Assignment
+--
+-- /See:/ 'directorySiteContactAssignment' smart constructor.
+data DirectorySiteContactAssignment = DirectorySiteContactAssignment'
+    { _dscaVisibility :: !(Maybe DirectorySiteContactAssignmentVisibility)
+    , _dscaContactId  :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DirectorySiteContactAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dscaVisibility'
+--
+-- * 'dscaContactId'
+directorySiteContactAssignment
+    :: DirectorySiteContactAssignment
+directorySiteContactAssignment =
+    DirectorySiteContactAssignment'
+    { _dscaVisibility = Nothing
+    , _dscaContactId = Nothing
+    }
+
+-- | Visibility of this directory site contact assignment. When set to PUBLIC
+-- this contact assignment is visible to all account and agency users; when
+-- set to PRIVATE it is visible only to the site.
+dscaVisibility :: Lens' DirectorySiteContactAssignment (Maybe DirectorySiteContactAssignmentVisibility)
+dscaVisibility
+  = lens _dscaVisibility
+      (\ s a -> s{_dscaVisibility = a})
+
+-- | ID of this directory site contact. This is a read-only, auto-generated
+-- field.
+dscaContactId :: Lens' DirectorySiteContactAssignment (Maybe Int64)
+dscaContactId
+  = lens _dscaContactId
+      (\ s a -> s{_dscaContactId = a})
+      . mapping _Coerce
+
+instance FromJSON DirectorySiteContactAssignment
+         where
+        parseJSON
+          = withObject "DirectorySiteContactAssignment"
+              (\ o ->
+                 DirectorySiteContactAssignment' <$>
+                   (o .:? "visibility") <*> (o .:? "contactId"))
+
+instance ToJSON DirectorySiteContactAssignment where
+        toJSON DirectorySiteContactAssignment'{..}
+          = object
+              (catMaybes
+                 [("visibility" .=) <$> _dscaVisibility,
+                  ("contactId" .=) <$> _dscaContactId])
+
+-- | Ad Slot
+--
+-- /See:/ 'adSlot' smart constructor.
+data AdSlot = AdSlot'
+    { _assHeight            :: !(Maybe (Textual Int64))
+    , _assPaymentSourceType :: !(Maybe AdSlotPaymentSourceType)
+    , _assLinkedPlacementId :: !(Maybe (Textual Int64))
+    , _assWidth             :: !(Maybe (Textual Int64))
+    , _assPrimary           :: !(Maybe Bool)
+    , _assName              :: !(Maybe Text)
+    , _assComment           :: !(Maybe Text)
+    , _assCompatibility     :: !(Maybe AdSlotCompatibility)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AdSlot' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'assHeight'
+--
+-- * 'assPaymentSourceType'
+--
+-- * 'assLinkedPlacementId'
+--
+-- * 'assWidth'
+--
+-- * 'assPrimary'
+--
+-- * 'assName'
+--
+-- * 'assComment'
+--
+-- * 'assCompatibility'
+adSlot
+    :: AdSlot
+adSlot =
+    AdSlot'
+    { _assHeight = Nothing
+    , _assPaymentSourceType = Nothing
+    , _assLinkedPlacementId = Nothing
+    , _assWidth = Nothing
+    , _assPrimary = Nothing
+    , _assName = Nothing
+    , _assComment = Nothing
+    , _assCompatibility = Nothing
+    }
+
+-- | Height of this ad slot.
+assHeight :: Lens' AdSlot (Maybe Int64)
+assHeight
+  = lens _assHeight (\ s a -> s{_assHeight = a}) .
+      mapping _Coerce
+
+-- | Payment source type of this ad slot.
+assPaymentSourceType :: Lens' AdSlot (Maybe AdSlotPaymentSourceType)
+assPaymentSourceType
+  = lens _assPaymentSourceType
+      (\ s a -> s{_assPaymentSourceType = a})
+
+-- | ID of the placement from an external platform that is linked to this ad
+-- slot.
+assLinkedPlacementId :: Lens' AdSlot (Maybe Int64)
+assLinkedPlacementId
+  = lens _assLinkedPlacementId
+      (\ s a -> s{_assLinkedPlacementId = a})
+      . mapping _Coerce
+
+-- | Width of this ad slot.
+assWidth :: Lens' AdSlot (Maybe Int64)
+assWidth
+  = lens _assWidth (\ s a -> s{_assWidth = a}) .
+      mapping _Coerce
+
+-- | Primary ad slot of a roadblock inventory item.
+assPrimary :: Lens' AdSlot (Maybe Bool)
+assPrimary
+  = lens _assPrimary (\ s a -> s{_assPrimary = a})
+
+-- | Name of this ad slot.
+assName :: Lens' AdSlot (Maybe Text)
+assName = lens _assName (\ s a -> s{_assName = a})
+
+-- | Comment for this ad slot.
+assComment :: Lens' AdSlot (Maybe Text)
+assComment
+  = lens _assComment (\ s a -> s{_assComment = a})
+
+-- | Ad slot compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to
+-- rendering either on desktop, mobile devices or in mobile apps for
+-- regular or interstitial ads respectively. APP and APP_INTERSTITIAL are
+-- for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in
+-- in-stream video ads developed with the VAST standard.
+assCompatibility :: Lens' AdSlot (Maybe AdSlotCompatibility)
+assCompatibility
+  = lens _assCompatibility
+      (\ s a -> s{_assCompatibility = a})
+
+instance FromJSON AdSlot where
+        parseJSON
+          = withObject "AdSlot"
+              (\ o ->
+                 AdSlot' <$>
+                   (o .:? "height") <*> (o .:? "paymentSourceType") <*>
+                     (o .:? "linkedPlacementId")
+                     <*> (o .:? "width")
+                     <*> (o .:? "primary")
+                     <*> (o .:? "name")
+                     <*> (o .:? "comment")
+                     <*> (o .:? "compatibility"))
+
+instance ToJSON AdSlot where
+        toJSON AdSlot'{..}
+          = object
+              (catMaybes
+                 [("height" .=) <$> _assHeight,
+                  ("paymentSourceType" .=) <$> _assPaymentSourceType,
+                  ("linkedPlacementId" .=) <$> _assLinkedPlacementId,
+                  ("width" .=) <$> _assWidth,
+                  ("primary" .=) <$> _assPrimary,
+                  ("name" .=) <$> _assName,
+                  ("comment" .=) <$> _assComment,
+                  ("compatibility" .=) <$> _assCompatibility])
+
+-- | Third-party Tracking URL.
+--
+-- /See:/ 'thirdPartyTrackingURL' smart constructor.
+data ThirdPartyTrackingURL = ThirdPartyTrackingURL'
+    { _tptuURL               :: !(Maybe Text)
+    , _tptuThirdPartyURLType :: !(Maybe ThirdPartyTrackingURLThirdPartyURLType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ThirdPartyTrackingURL' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tptuURL'
+--
+-- * 'tptuThirdPartyURLType'
+thirdPartyTrackingURL
+    :: ThirdPartyTrackingURL
+thirdPartyTrackingURL =
+    ThirdPartyTrackingURL'
+    { _tptuURL = Nothing
+    , _tptuThirdPartyURLType = Nothing
+    }
+
+-- | URL for the specified third-party URL type.
+tptuURL :: Lens' ThirdPartyTrackingURL (Maybe Text)
+tptuURL = lens _tptuURL (\ s a -> s{_tptuURL = a})
+
+-- | Third-party URL type for in-stream video creatives.
+tptuThirdPartyURLType :: Lens' ThirdPartyTrackingURL (Maybe ThirdPartyTrackingURLThirdPartyURLType)
+tptuThirdPartyURLType
+  = lens _tptuThirdPartyURLType
+      (\ s a -> s{_tptuThirdPartyURLType = a})
+
+instance FromJSON ThirdPartyTrackingURL where
+        parseJSON
+          = withObject "ThirdPartyTrackingURL"
+              (\ o ->
+                 ThirdPartyTrackingURL' <$>
+                   (o .:? "url") <*> (o .:? "thirdPartyUrlType"))
+
+instance ToJSON ThirdPartyTrackingURL where
+        toJSON ThirdPartyTrackingURL'{..}
+          = object
+              (catMaybes
+                 [("url" .=) <$> _tptuURL,
+                  ("thirdPartyUrlType" .=) <$> _tptuThirdPartyURLType])
+
+-- | Contains properties of a DoubleClick Planning order document.
+--
+-- /See:/ 'orderDocument' smart constructor.
+data OrderDocument = OrderDocument'
+    { _odSigned                   :: !(Maybe Bool)
+    , _odKind                     :: !Text
+    , _odAdvertiserId             :: !(Maybe (Textual Int64))
+    , _odLastSentTime             :: !(Maybe DateTime')
+    , _odAmendedOrderDocumentId   :: !(Maybe (Textual Int64))
+    , _odLastSentRecipients       :: !(Maybe [Text])
+    , _odEffectiveDate            :: !(Maybe Date')
+    , _odApprovedByUserProFileIds :: !(Maybe [Textual Int64])
+    , _odAccountId                :: !(Maybe (Textual Int64))
+    , _odId                       :: !(Maybe (Textual Int64))
+    , _odProjectId                :: !(Maybe (Textual Int64))
+    , _odTitle                    :: !(Maybe Text)
+    , _odSubAccountId             :: !(Maybe (Textual Int64))
+    , _odType                     :: !(Maybe OrderDocumentType)
+    , _odOrderId                  :: !(Maybe (Textual Int64))
+    , _odCancelled                :: !(Maybe Bool)
+    , _odCreatedInfo              :: !(Maybe LastModifiedInfo)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OrderDocument' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'odSigned'
+--
+-- * 'odKind'
+--
+-- * 'odAdvertiserId'
+--
+-- * 'odLastSentTime'
+--
+-- * 'odAmendedOrderDocumentId'
+--
+-- * 'odLastSentRecipients'
+--
+-- * 'odEffectiveDate'
+--
+-- * 'odApprovedByUserProFileIds'
+--
+-- * 'odAccountId'
+--
+-- * 'odId'
+--
+-- * 'odProjectId'
+--
+-- * 'odTitle'
+--
+-- * 'odSubAccountId'
+--
+-- * 'odType'
+--
+-- * 'odOrderId'
+--
+-- * 'odCancelled'
+--
+-- * 'odCreatedInfo'
+orderDocument
+    :: OrderDocument
+orderDocument =
+    OrderDocument'
+    { _odSigned = Nothing
+    , _odKind = "dfareporting#orderDocument"
+    , _odAdvertiserId = Nothing
+    , _odLastSentTime = Nothing
+    , _odAmendedOrderDocumentId = Nothing
+    , _odLastSentRecipients = Nothing
+    , _odEffectiveDate = Nothing
+    , _odApprovedByUserProFileIds = Nothing
+    , _odAccountId = Nothing
+    , _odId = Nothing
+    , _odProjectId = Nothing
+    , _odTitle = Nothing
+    , _odSubAccountId = Nothing
+    , _odType = Nothing
+    , _odOrderId = Nothing
+    , _odCancelled = Nothing
+    , _odCreatedInfo = Nothing
+    }
+
+-- | Whether this order document has been signed.
+odSigned :: Lens' OrderDocument (Maybe Bool)
+odSigned = lens _odSigned (\ s a -> s{_odSigned = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#orderDocument\".
+odKind :: Lens' OrderDocument Text
+odKind = lens _odKind (\ s a -> s{_odKind = a})
+
+-- | Advertiser ID of this order document.
+odAdvertiserId :: Lens' OrderDocument (Maybe Int64)
+odAdvertiserId
+  = lens _odAdvertiserId
+      (\ s a -> s{_odAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Timestamp of the last email sent with this order document.
+odLastSentTime :: Lens' OrderDocument (Maybe UTCTime)
+odLastSentTime
+  = lens _odLastSentTime
+      (\ s a -> s{_odLastSentTime = a})
+      . mapping _DateTime
+
+-- | The amended order document ID of this order document. An order document
+-- can be created by optionally amending another order document so that the
+-- change history can be preserved.
+odAmendedOrderDocumentId :: Lens' OrderDocument (Maybe Int64)
+odAmendedOrderDocumentId
+  = lens _odAmendedOrderDocumentId
+      (\ s a -> s{_odAmendedOrderDocumentId = a})
+      . mapping _Coerce
+
+-- | List of email addresses that received the last sent document.
+odLastSentRecipients :: Lens' OrderDocument [Text]
+odLastSentRecipients
+  = lens _odLastSentRecipients
+      (\ s a -> s{_odLastSentRecipients = a})
+      . _Default
+      . _Coerce
+
+-- | Effective date of this order document.
+odEffectiveDate :: Lens' OrderDocument (Maybe Day)
+odEffectiveDate
+  = lens _odEffectiveDate
+      (\ s a -> s{_odEffectiveDate = a})
+      . mapping _Date
+
+-- | IDs of users who have approved this order document.
+odApprovedByUserProFileIds :: Lens' OrderDocument [Int64]
+odApprovedByUserProFileIds
+  = lens _odApprovedByUserProFileIds
+      (\ s a -> s{_odApprovedByUserProFileIds = a})
+      . _Default
+      . _Coerce
+
+-- | Account ID of this order document.
+odAccountId :: Lens' OrderDocument (Maybe Int64)
+odAccountId
+  = lens _odAccountId (\ s a -> s{_odAccountId = a}) .
+      mapping _Coerce
+
+-- | ID of this order document.
+odId :: Lens' OrderDocument (Maybe Int64)
+odId
+  = lens _odId (\ s a -> s{_odId = a}) .
+      mapping _Coerce
+
+-- | Project ID of this order document.
+odProjectId :: Lens' OrderDocument (Maybe Int64)
+odProjectId
+  = lens _odProjectId (\ s a -> s{_odProjectId = a}) .
+      mapping _Coerce
+
+-- | Title of this order document.
+odTitle :: Lens' OrderDocument (Maybe Text)
+odTitle = lens _odTitle (\ s a -> s{_odTitle = a})
+
+-- | Subaccount ID of this order document.
+odSubAccountId :: Lens' OrderDocument (Maybe Int64)
+odSubAccountId
+  = lens _odSubAccountId
+      (\ s a -> s{_odSubAccountId = a})
+      . mapping _Coerce
+
+-- | Type of this order document
+odType :: Lens' OrderDocument (Maybe OrderDocumentType)
+odType = lens _odType (\ s a -> s{_odType = a})
+
+-- | ID of the order from which this order document is created.
+odOrderId :: Lens' OrderDocument (Maybe Int64)
+odOrderId
+  = lens _odOrderId (\ s a -> s{_odOrderId = a}) .
+      mapping _Coerce
+
+-- | Whether this order document is cancelled.
+odCancelled :: Lens' OrderDocument (Maybe Bool)
+odCancelled
+  = lens _odCancelled (\ s a -> s{_odCancelled = a})
+
+-- | Information about the creation of this order document.
+odCreatedInfo :: Lens' OrderDocument (Maybe LastModifiedInfo)
+odCreatedInfo
+  = lens _odCreatedInfo
+      (\ s a -> s{_odCreatedInfo = a})
+
+instance FromJSON OrderDocument where
+        parseJSON
+          = withObject "OrderDocument"
+              (\ o ->
+                 OrderDocument' <$>
+                   (o .:? "signed") <*>
+                     (o .:? "kind" .!= "dfareporting#orderDocument")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "lastSentTime")
+                     <*> (o .:? "amendedOrderDocumentId")
+                     <*> (o .:? "lastSentRecipients" .!= mempty)
+                     <*> (o .:? "effectiveDate")
+                     <*> (o .:? "approvedByUserProfileIds" .!= mempty)
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "projectId")
+                     <*> (o .:? "title")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "type")
+                     <*> (o .:? "orderId")
+                     <*> (o .:? "cancelled")
+                     <*> (o .:? "createdInfo"))
+
+instance ToJSON OrderDocument where
+        toJSON OrderDocument'{..}
+          = object
+              (catMaybes
+                 [("signed" .=) <$> _odSigned,
+                  Just ("kind" .= _odKind),
+                  ("advertiserId" .=) <$> _odAdvertiserId,
+                  ("lastSentTime" .=) <$> _odLastSentTime,
+                  ("amendedOrderDocumentId" .=) <$>
+                    _odAmendedOrderDocumentId,
+                  ("lastSentRecipients" .=) <$> _odLastSentRecipients,
+                  ("effectiveDate" .=) <$> _odEffectiveDate,
+                  ("approvedByUserProfileIds" .=) <$>
+                    _odApprovedByUserProFileIds,
+                  ("accountId" .=) <$> _odAccountId,
+                  ("id" .=) <$> _odId,
+                  ("projectId" .=) <$> _odProjectId,
+                  ("title" .=) <$> _odTitle,
+                  ("subaccountId" .=) <$> _odSubAccountId,
+                  ("type" .=) <$> _odType,
+                  ("orderId" .=) <$> _odOrderId,
+                  ("cancelled" .=) <$> _odCancelled,
+                  ("createdInfo" .=) <$> _odCreatedInfo])
+
+-- | Contains information about a metro region that can be targeted by ads.
+--
+-- /See:/ 'metro' smart constructor.
+data Metro = Metro'
+    { _metMetroCode     :: !(Maybe Text)
+    , _metKind          :: !Text
+    , _metName          :: !(Maybe Text)
+    , _metCountryCode   :: !(Maybe Text)
+    , _metDmaId         :: !(Maybe (Textual Int64))
+    , _metCountryDartId :: !(Maybe (Textual Int64))
+    , _metDartId        :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Metro' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'metMetroCode'
+--
+-- * 'metKind'
+--
+-- * 'metName'
+--
+-- * 'metCountryCode'
+--
+-- * 'metDmaId'
+--
+-- * 'metCountryDartId'
+--
+-- * 'metDartId'
+metro
+    :: Metro
+metro =
+    Metro'
+    { _metMetroCode = Nothing
+    , _metKind = "dfareporting#metro"
+    , _metName = Nothing
+    , _metCountryCode = Nothing
+    , _metDmaId = Nothing
+    , _metCountryDartId = Nothing
+    , _metDartId = Nothing
+    }
+
+-- | Metro code of this metro region. This is equivalent to dma_id.
+metMetroCode :: Lens' Metro (Maybe Text)
+metMetroCode
+  = lens _metMetroCode (\ s a -> s{_metMetroCode = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#metro\".
+metKind :: Lens' Metro Text
+metKind = lens _metKind (\ s a -> s{_metKind = a})
+
+-- | Name of this metro region.
+metName :: Lens' Metro (Maybe Text)
+metName = lens _metName (\ s a -> s{_metName = a})
+
+-- | Country code of the country to which this metro region belongs.
+metCountryCode :: Lens' Metro (Maybe Text)
+metCountryCode
+  = lens _metCountryCode
+      (\ s a -> s{_metCountryCode = a})
+
+-- | DMA ID of this metro region. This is the ID used for targeting and
+-- generating reports, and is equivalent to metro_code.
+metDmaId :: Lens' Metro (Maybe Int64)
+metDmaId
+  = lens _metDmaId (\ s a -> s{_metDmaId = a}) .
+      mapping _Coerce
+
+-- | DART ID of the country to which this metro region belongs.
+metCountryDartId :: Lens' Metro (Maybe Int64)
+metCountryDartId
+  = lens _metCountryDartId
+      (\ s a -> s{_metCountryDartId = a})
+      . mapping _Coerce
+
+-- | DART ID of this metro region.
+metDartId :: Lens' Metro (Maybe Int64)
+metDartId
+  = lens _metDartId (\ s a -> s{_metDartId = a}) .
+      mapping _Coerce
+
+instance FromJSON Metro where
+        parseJSON
+          = withObject "Metro"
+              (\ o ->
+                 Metro' <$>
+                   (o .:? "metroCode") <*>
+                     (o .:? "kind" .!= "dfareporting#metro")
+                     <*> (o .:? "name")
+                     <*> (o .:? "countryCode")
+                     <*> (o .:? "dmaId")
+                     <*> (o .:? "countryDartId")
+                     <*> (o .:? "dartId"))
+
+instance ToJSON Metro where
+        toJSON Metro'{..}
+          = object
+              (catMaybes
+                 [("metroCode" .=) <$> _metMetroCode,
+                  Just ("kind" .= _metKind), ("name" .=) <$> _metName,
+                  ("countryCode" .=) <$> _metCountryCode,
+                  ("dmaId" .=) <$> _metDmaId,
+                  ("countryDartId" .=) <$> _metCountryDartId,
+                  ("dartId" .=) <$> _metDartId])
+
+-- | Contains properties of a placement.
+--
+-- /See:/ 'placement' smart constructor.
+data Placement = Placement'
+    { _p1Status                         :: !(Maybe PlacementStatus)
+    , _p1PlacementStrategyId            :: !(Maybe (Textual Int64))
+    , _p1TagFormats                     :: !(Maybe [PlacementTagFormatsItem])
+    , _p1SiteIdDimensionValue           :: !(Maybe DimensionValue)
+    , _p1PricingSchedule                :: !(Maybe PricingSchedule)
+    , _p1Size                           :: !(Maybe Size)
+    , _p1Kind                           :: !Text
+    , _p1KeyName                        :: !(Maybe Text)
+    , _p1CampaignIdDimensionValue       :: !(Maybe DimensionValue)
+    , _p1AdvertiserId                   :: !(Maybe (Textual Int64))
+    , _p1AdvertiserIdDimensionValue     :: !(Maybe DimensionValue)
+    , _p1CampaignId                     :: !(Maybe (Textual Int64))
+    , _p1IdDimensionValue               :: !(Maybe DimensionValue)
+    , _p1Primary                        :: !(Maybe Bool)
+    , _p1LookbackConfiguration          :: !(Maybe LookbackConfiguration)
+    , _p1TagSetting                     :: !(Maybe TagSetting)
+    , _p1ContentCategoryId              :: !(Maybe (Textual Int64))
+    , _p1DirectorySiteIdDimensionValue  :: !(Maybe DimensionValue)
+    , _p1AccountId                      :: !(Maybe (Textual Int64))
+    , _p1PaymentSource                  :: !(Maybe PlacementPaymentSource)
+    , _p1Name                           :: !(Maybe Text)
+    , _p1DirectorySiteId                :: !(Maybe (Textual Int64))
+    , _p1CreateInfo                     :: !(Maybe LastModifiedInfo)
+    , _p1LastModifiedInfo               :: !(Maybe LastModifiedInfo)
+    , _p1Id                             :: !(Maybe (Textual Int64))
+    , _p1SSLRequired                    :: !(Maybe Bool)
+    , _p1SubAccountId                   :: !(Maybe (Textual Int64))
+    , _p1PlacementGroupIdDimensionValue :: !(Maybe DimensionValue)
+    , _p1ExternalId                     :: !(Maybe Text)
+    , _p1PlacementGroupId               :: !(Maybe (Textual Int64))
+    , _p1Comment                        :: !(Maybe Text)
+    , _p1SiteId                         :: !(Maybe (Textual Int64))
+    , _p1Compatibility                  :: !(Maybe PlacementCompatibility)
+    , _p1Archived                       :: !(Maybe Bool)
+    , _p1PaymentApproved                :: !(Maybe Bool)
+    , _p1PublisherUpdateInfo            :: !(Maybe LastModifiedInfo)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Placement' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'p1Status'
+--
+-- * 'p1PlacementStrategyId'
+--
+-- * 'p1TagFormats'
+--
+-- * 'p1SiteIdDimensionValue'
+--
+-- * 'p1PricingSchedule'
+--
+-- * 'p1Size'
+--
+-- * 'p1Kind'
+--
+-- * 'p1KeyName'
+--
+-- * 'p1CampaignIdDimensionValue'
+--
+-- * 'p1AdvertiserId'
+--
+-- * 'p1AdvertiserIdDimensionValue'
+--
+-- * 'p1CampaignId'
+--
+-- * 'p1IdDimensionValue'
+--
+-- * 'p1Primary'
+--
+-- * 'p1LookbackConfiguration'
+--
+-- * 'p1TagSetting'
+--
+-- * 'p1ContentCategoryId'
+--
+-- * 'p1DirectorySiteIdDimensionValue'
+--
+-- * 'p1AccountId'
+--
+-- * 'p1PaymentSource'
+--
+-- * 'p1Name'
+--
+-- * 'p1DirectorySiteId'
+--
+-- * 'p1CreateInfo'
+--
+-- * 'p1LastModifiedInfo'
+--
+-- * 'p1Id'
+--
+-- * 'p1SSLRequired'
+--
+-- * 'p1SubAccountId'
+--
+-- * 'p1PlacementGroupIdDimensionValue'
+--
+-- * 'p1ExternalId'
+--
+-- * 'p1PlacementGroupId'
+--
+-- * 'p1Comment'
+--
+-- * 'p1SiteId'
+--
+-- * 'p1Compatibility'
+--
+-- * 'p1Archived'
+--
+-- * 'p1PaymentApproved'
+--
+-- * 'p1PublisherUpdateInfo'
+placement
+    :: Placement
+placement =
+    Placement'
+    { _p1Status = Nothing
+    , _p1PlacementStrategyId = Nothing
+    , _p1TagFormats = Nothing
+    , _p1SiteIdDimensionValue = Nothing
+    , _p1PricingSchedule = Nothing
+    , _p1Size = Nothing
+    , _p1Kind = "dfareporting#placement"
+    , _p1KeyName = Nothing
+    , _p1CampaignIdDimensionValue = Nothing
+    , _p1AdvertiserId = Nothing
+    , _p1AdvertiserIdDimensionValue = Nothing
+    , _p1CampaignId = Nothing
+    , _p1IdDimensionValue = Nothing
+    , _p1Primary = Nothing
+    , _p1LookbackConfiguration = Nothing
+    , _p1TagSetting = Nothing
+    , _p1ContentCategoryId = Nothing
+    , _p1DirectorySiteIdDimensionValue = Nothing
+    , _p1AccountId = Nothing
+    , _p1PaymentSource = Nothing
+    , _p1Name = Nothing
+    , _p1DirectorySiteId = Nothing
+    , _p1CreateInfo = Nothing
+    , _p1LastModifiedInfo = Nothing
+    , _p1Id = Nothing
+    , _p1SSLRequired = Nothing
+    , _p1SubAccountId = Nothing
+    , _p1PlacementGroupIdDimensionValue = Nothing
+    , _p1ExternalId = Nothing
+    , _p1PlacementGroupId = Nothing
+    , _p1Comment = Nothing
+    , _p1SiteId = Nothing
+    , _p1Compatibility = Nothing
+    , _p1Archived = Nothing
+    , _p1PaymentApproved = Nothing
+    , _p1PublisherUpdateInfo = Nothing
+    }
+
+-- | Third-party placement status.
+p1Status :: Lens' Placement (Maybe PlacementStatus)
+p1Status = lens _p1Status (\ s a -> s{_p1Status = a})
+
+-- | ID of the placement strategy assigned to this placement.
+p1PlacementStrategyId :: Lens' Placement (Maybe Int64)
+p1PlacementStrategyId
+  = lens _p1PlacementStrategyId
+      (\ s a -> s{_p1PlacementStrategyId = a})
+      . mapping _Coerce
+
+-- | Tag formats to generate for this placement. This field is required on
+-- insertion. Acceptable values are: - \"PLACEMENT_TAG_STANDARD\" -
+-- \"PLACEMENT_TAG_IFRAME_JAVASCRIPT\" - \"PLACEMENT_TAG_IFRAME_ILAYER\" -
+-- \"PLACEMENT_TAG_INTERNAL_REDIRECT\" - \"PLACEMENT_TAG_JAVASCRIPT\" -
+-- \"PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT\" -
+-- \"PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT\" -
+-- \"PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT\" -
+-- \"PLACEMENT_TAG_CLICK_COMMANDS\" -
+-- \"PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH\" - \"PLACEMENT_TAG_TRACKING\" -
+-- \"PLACEMENT_TAG_TRACKING_IFRAME\" -
+-- \"PLACEMENT_TAG_TRACKING_JAVASCRIPT\"
+p1TagFormats :: Lens' Placement [PlacementTagFormatsItem]
+p1TagFormats
+  = lens _p1TagFormats (\ s a -> s{_p1TagFormats = a})
+      . _Default
+      . _Coerce
+
+-- | Dimension value for the ID of the site. This is a read-only,
+-- auto-generated field.
+p1SiteIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1SiteIdDimensionValue
+  = lens _p1SiteIdDimensionValue
+      (\ s a -> s{_p1SiteIdDimensionValue = a})
+
+-- | Pricing schedule of this placement. This field is required on insertion,
+-- specifically subfields startDate, endDate and pricingType.
+p1PricingSchedule :: Lens' Placement (Maybe PricingSchedule)
+p1PricingSchedule
+  = lens _p1PricingSchedule
+      (\ s a -> s{_p1PricingSchedule = a})
+
+-- | Size associated with this placement. When inserting or updating a
+-- placement, only the size ID field is used. This field is required on
+-- insertion.
+p1Size :: Lens' Placement (Maybe Size)
+p1Size = lens _p1Size (\ s a -> s{_p1Size = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#placement\".
+p1Kind :: Lens' Placement Text
+p1Kind = lens _p1Kind (\ s a -> s{_p1Kind = a})
+
+-- | Key name of this placement. This is a read-only, auto-generated field.
+p1KeyName :: Lens' Placement (Maybe Text)
+p1KeyName
+  = lens _p1KeyName (\ s a -> s{_p1KeyName = a})
+
+-- | Dimension value for the ID of the campaign. This is a read-only,
+-- auto-generated field.
+p1CampaignIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1CampaignIdDimensionValue
+  = lens _p1CampaignIdDimensionValue
+      (\ s a -> s{_p1CampaignIdDimensionValue = a})
+
+-- | Advertiser ID of this placement. This field can be left blank.
+p1AdvertiserId :: Lens' Placement (Maybe Int64)
+p1AdvertiserId
+  = lens _p1AdvertiserId
+      (\ s a -> s{_p1AdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+p1AdvertiserIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1AdvertiserIdDimensionValue
+  = lens _p1AdvertiserIdDimensionValue
+      (\ s a -> s{_p1AdvertiserIdDimensionValue = a})
+
+-- | Campaign ID of this placement. This field is a required field on
+-- insertion.
+p1CampaignId :: Lens' Placement (Maybe Int64)
+p1CampaignId
+  = lens _p1CampaignId (\ s a -> s{_p1CampaignId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of this placement. This is a read-only,
+-- auto-generated field.
+p1IdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1IdDimensionValue
+  = lens _p1IdDimensionValue
+      (\ s a -> s{_p1IdDimensionValue = a})
+
+-- | Whether this placement is the primary placement of a roadblock
+-- (placement group). You cannot change this field from true to false.
+-- Setting this field to true will automatically set the primary field on
+-- the original primary placement of the roadblock to false, and it will
+-- automatically set the roadblock\'s primaryPlacementId field to the ID of
+-- this placement.
+p1Primary :: Lens' Placement (Maybe Bool)
+p1Primary
+  = lens _p1Primary (\ s a -> s{_p1Primary = a})
+
+-- | Lookback window settings for this placement.
+p1LookbackConfiguration :: Lens' Placement (Maybe LookbackConfiguration)
+p1LookbackConfiguration
+  = lens _p1LookbackConfiguration
+      (\ s a -> s{_p1LookbackConfiguration = a})
+
+-- | Tag settings for this placement.
+p1TagSetting :: Lens' Placement (Maybe TagSetting)
+p1TagSetting
+  = lens _p1TagSetting (\ s a -> s{_p1TagSetting = a})
+
+-- | ID of the content category assigned to this placement.
+p1ContentCategoryId :: Lens' Placement (Maybe Int64)
+p1ContentCategoryId
+  = lens _p1ContentCategoryId
+      (\ s a -> s{_p1ContentCategoryId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the directory site. This is a read-only,
+-- auto-generated field.
+p1DirectorySiteIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1DirectorySiteIdDimensionValue
+  = lens _p1DirectorySiteIdDimensionValue
+      (\ s a -> s{_p1DirectorySiteIdDimensionValue = a})
+
+-- | Account ID of this placement. This field can be left blank.
+p1AccountId :: Lens' Placement (Maybe Int64)
+p1AccountId
+  = lens _p1AccountId (\ s a -> s{_p1AccountId = a}) .
+      mapping _Coerce
+
+-- | Payment source for this placement. This is a required field that is
+-- read-only after insertion.
+p1PaymentSource :: Lens' Placement (Maybe PlacementPaymentSource)
+p1PaymentSource
+  = lens _p1PaymentSource
+      (\ s a -> s{_p1PaymentSource = a})
+
+-- | Name of this placement.This is a required field and must be less than
+-- 256 characters long.
+p1Name :: Lens' Placement (Maybe Text)
+p1Name = lens _p1Name (\ s a -> s{_p1Name = a})
+
+-- | Directory site ID of this placement. On insert, you must set either this
+-- field or the siteId field to specify the site associated with this
+-- placement. This is a required field that is read-only after insertion.
+p1DirectorySiteId :: Lens' Placement (Maybe Int64)
+p1DirectorySiteId
+  = lens _p1DirectorySiteId
+      (\ s a -> s{_p1DirectorySiteId = a})
+      . mapping _Coerce
+
+-- | Information about the creation of this placement. This is a read-only
+-- field.
+p1CreateInfo :: Lens' Placement (Maybe LastModifiedInfo)
+p1CreateInfo
+  = lens _p1CreateInfo (\ s a -> s{_p1CreateInfo = a})
+
+-- | Information about the most recent modification of this placement. This
+-- is a read-only field.
+p1LastModifiedInfo :: Lens' Placement (Maybe LastModifiedInfo)
+p1LastModifiedInfo
+  = lens _p1LastModifiedInfo
+      (\ s a -> s{_p1LastModifiedInfo = a})
+
+-- | ID of this placement. This is a read-only, auto-generated field.
+p1Id :: Lens' Placement (Maybe Int64)
+p1Id
+  = lens _p1Id (\ s a -> s{_p1Id = a}) .
+      mapping _Coerce
+
+-- | Whether creatives assigned to this placement must be SSL-compliant.
+p1SSLRequired :: Lens' Placement (Maybe Bool)
+p1SSLRequired
+  = lens _p1SSLRequired
+      (\ s a -> s{_p1SSLRequired = a})
+
+-- | Subaccount ID of this placement. This field can be left blank.
+p1SubAccountId :: Lens' Placement (Maybe Int64)
+p1SubAccountId
+  = lens _p1SubAccountId
+      (\ s a -> s{_p1SubAccountId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the placement group. This is a read-only,
+-- auto-generated field.
+p1PlacementGroupIdDimensionValue :: Lens' Placement (Maybe DimensionValue)
+p1PlacementGroupIdDimensionValue
+  = lens _p1PlacementGroupIdDimensionValue
+      (\ s a -> s{_p1PlacementGroupIdDimensionValue = a})
+
+-- | External ID for this placement.
+p1ExternalId :: Lens' Placement (Maybe Text)
+p1ExternalId
+  = lens _p1ExternalId (\ s a -> s{_p1ExternalId = a})
+
+-- | ID of this placement\'s group, if applicable.
+p1PlacementGroupId :: Lens' Placement (Maybe Int64)
+p1PlacementGroupId
+  = lens _p1PlacementGroupId
+      (\ s a -> s{_p1PlacementGroupId = a})
+      . mapping _Coerce
+
+-- | Comments for this placement.
+p1Comment :: Lens' Placement (Maybe Text)
+p1Comment
+  = lens _p1Comment (\ s a -> s{_p1Comment = a})
+
+-- | Site ID associated with this placement. On insert, you must set either
+-- this field or the directorySiteId field to specify the site associated
+-- with this placement. This is a required field that is read-only after
+-- insertion.
+p1SiteId :: Lens' Placement (Maybe Int64)
+p1SiteId
+  = lens _p1SiteId (\ s a -> s{_p1SiteId = a}) .
+      mapping _Coerce
+
+-- | Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to
+-- rendering on desktop, on mobile devices or in mobile apps for regular or
+-- interstitial ads respectively. APP and APP_INTERSTITIAL are no longer
+-- allowed for new placement insertions. Instead, use DISPLAY or
+-- DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream
+-- video ads developed with the VAST standard. This field is required on
+-- insertion.
+p1Compatibility :: Lens' Placement (Maybe PlacementCompatibility)
+p1Compatibility
+  = lens _p1Compatibility
+      (\ s a -> s{_p1Compatibility = a})
+
+-- | Whether this placement is archived.
+p1Archived :: Lens' Placement (Maybe Bool)
+p1Archived
+  = lens _p1Archived (\ s a -> s{_p1Archived = a})
+
+-- | Whether payment was approved for this placement. This is a read-only
+-- field relevant only to publisher-paid placements.
+p1PaymentApproved :: Lens' Placement (Maybe Bool)
+p1PaymentApproved
+  = lens _p1PaymentApproved
+      (\ s a -> s{_p1PaymentApproved = a})
+
+-- | Information about the last publisher update. This is a read-only field.
+p1PublisherUpdateInfo :: Lens' Placement (Maybe LastModifiedInfo)
+p1PublisherUpdateInfo
+  = lens _p1PublisherUpdateInfo
+      (\ s a -> s{_p1PublisherUpdateInfo = a})
+
+instance FromJSON Placement where
+        parseJSON
+          = withObject "Placement"
+              (\ o ->
+                 Placement' <$>
+                   (o .:? "status") <*> (o .:? "placementStrategyId")
+                     <*> (o .:? "tagFormats" .!= mempty)
+                     <*> (o .:? "siteIdDimensionValue")
+                     <*> (o .:? "pricingSchedule")
+                     <*> (o .:? "size")
+                     <*> (o .:? "kind" .!= "dfareporting#placement")
+                     <*> (o .:? "keyName")
+                     <*> (o .:? "campaignIdDimensionValue")
+                     <*> (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "campaignId")
+                     <*> (o .:? "idDimensionValue")
+                     <*> (o .:? "primary")
+                     <*> (o .:? "lookbackConfiguration")
+                     <*> (o .:? "tagSetting")
+                     <*> (o .:? "contentCategoryId")
+                     <*> (o .:? "directorySiteIdDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "paymentSource")
+                     <*> (o .:? "name")
+                     <*> (o .:? "directorySiteId")
+                     <*> (o .:? "createInfo")
+                     <*> (o .:? "lastModifiedInfo")
+                     <*> (o .:? "id")
+                     <*> (o .:? "sslRequired")
+                     <*> (o .:? "subaccountId")
+                     <*> (o .:? "placementGroupIdDimensionValue")
+                     <*> (o .:? "externalId")
+                     <*> (o .:? "placementGroupId")
+                     <*> (o .:? "comment")
+                     <*> (o .:? "siteId")
+                     <*> (o .:? "compatibility")
+                     <*> (o .:? "archived")
+                     <*> (o .:? "paymentApproved")
+                     <*> (o .:? "publisherUpdateInfo"))
+
+instance ToJSON Placement where
+        toJSON Placement'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _p1Status,
+                  ("placementStrategyId" .=) <$>
+                    _p1PlacementStrategyId,
+                  ("tagFormats" .=) <$> _p1TagFormats,
+                  ("siteIdDimensionValue" .=) <$>
+                    _p1SiteIdDimensionValue,
+                  ("pricingSchedule" .=) <$> _p1PricingSchedule,
+                  ("size" .=) <$> _p1Size, Just ("kind" .= _p1Kind),
+                  ("keyName" .=) <$> _p1KeyName,
+                  ("campaignIdDimensionValue" .=) <$>
+                    _p1CampaignIdDimensionValue,
+                  ("advertiserId" .=) <$> _p1AdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _p1AdvertiserIdDimensionValue,
+                  ("campaignId" .=) <$> _p1CampaignId,
+                  ("idDimensionValue" .=) <$> _p1IdDimensionValue,
+                  ("primary" .=) <$> _p1Primary,
+                  ("lookbackConfiguration" .=) <$>
+                    _p1LookbackConfiguration,
+                  ("tagSetting" .=) <$> _p1TagSetting,
+                  ("contentCategoryId" .=) <$> _p1ContentCategoryId,
+                  ("directorySiteIdDimensionValue" .=) <$>
+                    _p1DirectorySiteIdDimensionValue,
+                  ("accountId" .=) <$> _p1AccountId,
+                  ("paymentSource" .=) <$> _p1PaymentSource,
+                  ("name" .=) <$> _p1Name,
+                  ("directorySiteId" .=) <$> _p1DirectorySiteId,
+                  ("createInfo" .=) <$> _p1CreateInfo,
+                  ("lastModifiedInfo" .=) <$> _p1LastModifiedInfo,
+                  ("id" .=) <$> _p1Id,
+                  ("sslRequired" .=) <$> _p1SSLRequired,
+                  ("subaccountId" .=) <$> _p1SubAccountId,
+                  ("placementGroupIdDimensionValue" .=) <$>
+                    _p1PlacementGroupIdDimensionValue,
+                  ("externalId" .=) <$> _p1ExternalId,
+                  ("placementGroupId" .=) <$> _p1PlacementGroupId,
+                  ("comment" .=) <$> _p1Comment,
+                  ("siteId" .=) <$> _p1SiteId,
+                  ("compatibility" .=) <$> _p1Compatibility,
+                  ("archived" .=) <$> _p1Archived,
+                  ("paymentApproved" .=) <$> _p1PaymentApproved,
+                  ("publisherUpdateInfo" .=) <$>
+                    _p1PublisherUpdateInfo])
+
+-- | A description of how user IDs are encrypted.
+--
+-- /See:/ 'encryptionInfo' smart constructor.
+data EncryptionInfo = EncryptionInfo'
+    { _eiEncryptionSource     :: !(Maybe EncryptionInfoEncryptionSource)
+    , _eiKind                 :: !Text
+    , _eiEncryptionEntityType :: !(Maybe EncryptionInfoEncryptionEntityType)
+    , _eiEncryptionEntityId   :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EncryptionInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eiEncryptionSource'
+--
+-- * 'eiKind'
+--
+-- * 'eiEncryptionEntityType'
+--
+-- * 'eiEncryptionEntityId'
+encryptionInfo
+    :: EncryptionInfo
+encryptionInfo =
+    EncryptionInfo'
+    { _eiEncryptionSource = Nothing
+    , _eiKind = "dfareporting#encryptionInfo"
+    , _eiEncryptionEntityType = Nothing
+    , _eiEncryptionEntityId = Nothing
+    }
+
+-- | Describes whether the encrypted cookie was received from ad serving (the
+-- %m macro) or from Data Transfer.
+eiEncryptionSource :: Lens' EncryptionInfo (Maybe EncryptionInfoEncryptionSource)
+eiEncryptionSource
+  = lens _eiEncryptionSource
+      (\ s a -> s{_eiEncryptionSource = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#encryptionInfo\".
+eiKind :: Lens' EncryptionInfo Text
+eiKind = lens _eiKind (\ s a -> s{_eiKind = a})
+
+-- | The encryption entity type. This should match the encryption
+-- configuration for ad serving or Data Transfer.
+eiEncryptionEntityType :: Lens' EncryptionInfo (Maybe EncryptionInfoEncryptionEntityType)
+eiEncryptionEntityType
+  = lens _eiEncryptionEntityType
+      (\ s a -> s{_eiEncryptionEntityType = a})
+
+-- | The encryption entity ID. This should match the encryption configuration
+-- for ad serving or Data Transfer.
+eiEncryptionEntityId :: Lens' EncryptionInfo (Maybe Int64)
+eiEncryptionEntityId
+  = lens _eiEncryptionEntityId
+      (\ s a -> s{_eiEncryptionEntityId = a})
+      . mapping _Coerce
+
+instance FromJSON EncryptionInfo where
+        parseJSON
+          = withObject "EncryptionInfo"
+              (\ o ->
+                 EncryptionInfo' <$>
+                   (o .:? "encryptionSource") <*>
+                     (o .:? "kind" .!= "dfareporting#encryptionInfo")
+                     <*> (o .:? "encryptionEntityType")
+                     <*> (o .:? "encryptionEntityId"))
+
+instance ToJSON EncryptionInfo where
+        toJSON EncryptionInfo'{..}
+          = object
+              (catMaybes
+                 [("encryptionSource" .=) <$> _eiEncryptionSource,
+                  Just ("kind" .= _eiKind),
+                  ("encryptionEntityType" .=) <$>
+                    _eiEncryptionEntityType,
+                  ("encryptionEntityId" .=) <$> _eiEncryptionEntityId])
+
+-- | Site List Response
+--
+-- /See:/ 'sitesListResponse' smart constructor.
+data SitesListResponse = SitesListResponse'
+    { _sitNextPageToken :: !(Maybe Text)
+    , _sitKind          :: !Text
+    , _sitSites         :: !(Maybe [Site])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SitesListResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sitNextPageToken'
+--
+-- * 'sitKind'
+--
+-- * 'sitSites'
+sitesListResponse
+    :: SitesListResponse
+sitesListResponse =
+    SitesListResponse'
+    { _sitNextPageToken = Nothing
+    , _sitKind = "dfareporting#sitesListResponse"
+    , _sitSites = Nothing
+    }
+
+-- | Pagination token to be used for the next list operation.
+sitNextPageToken :: Lens' SitesListResponse (Maybe Text)
+sitNextPageToken
+  = lens _sitNextPageToken
+      (\ s a -> s{_sitNextPageToken = a})
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#sitesListResponse\".
+sitKind :: Lens' SitesListResponse Text
+sitKind = lens _sitKind (\ s a -> s{_sitKind = a})
+
+-- | Site collection.
+sitSites :: Lens' SitesListResponse [Site]
+sitSites
+  = lens _sitSites (\ s a -> s{_sitSites = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON SitesListResponse where
+        parseJSON
+          = withObject "SitesListResponse"
+              (\ o ->
+                 SitesListResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "dfareporting#sitesListResponse")
+                     <*> (o .:? "sites" .!= mempty))
+
+instance ToJSON SitesListResponse where
+        toJSON SitesListResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _sitNextPageToken,
+                  Just ("kind" .= _sitKind),
+                  ("sites" .=) <$> _sitSites])
+
+-- | Contains properties of a creative field.
+--
+-- /See:/ 'creativeField' smart constructor.
+data CreativeField = CreativeField'
+    { _cffKind                       :: !Text
+    , _cffAdvertiserId               :: !(Maybe (Textual Int64))
+    , _cffAdvertiserIdDimensionValue :: !(Maybe DimensionValue)
+    , _cffAccountId                  :: !(Maybe (Textual Int64))
+    , _cffName                       :: !(Maybe Text)
+    , _cffId                         :: !(Maybe (Textual Int64))
+    , _cffSubAccountId               :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreativeField' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cffKind'
+--
+-- * 'cffAdvertiserId'
+--
+-- * 'cffAdvertiserIdDimensionValue'
+--
+-- * 'cffAccountId'
+--
+-- * 'cffName'
+--
+-- * 'cffId'
+--
+-- * 'cffSubAccountId'
+creativeField
+    :: CreativeField
+creativeField =
+    CreativeField'
+    { _cffKind = "dfareporting#creativeField"
+    , _cffAdvertiserId = Nothing
+    , _cffAdvertiserIdDimensionValue = Nothing
+    , _cffAccountId = Nothing
+    , _cffName = Nothing
+    , _cffId = Nothing
+    , _cffSubAccountId = Nothing
+    }
+
+-- | Identifies what kind of resource this is. Value: the fixed string
+-- \"dfareporting#creativeField\".
+cffKind :: Lens' CreativeField Text
+cffKind = lens _cffKind (\ s a -> s{_cffKind = a})
+
+-- | Advertiser ID of this creative field. This is a required field on
+-- insertion.
+cffAdvertiserId :: Lens' CreativeField (Maybe Int64)
+cffAdvertiserId
+  = lens _cffAdvertiserId
+      (\ s a -> s{_cffAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Dimension value for the ID of the advertiser. This is a read-only,
+-- auto-generated field.
+cffAdvertiserIdDimensionValue :: Lens' CreativeField (Maybe DimensionValue)
+cffAdvertiserIdDimensionValue
+  = lens _cffAdvertiserIdDimensionValue
+      (\ s a -> s{_cffAdvertiserIdDimensionValue = a})
+
+-- | Account ID of this creative field. This is a read-only field that can be
+-- left blank.
+cffAccountId :: Lens' CreativeField (Maybe Int64)
+cffAccountId
+  = lens _cffAccountId (\ s a -> s{_cffAccountId = a})
+      . mapping _Coerce
+
+-- | Name of this creative field. This is a required field and must be less
+-- than 256 characters long and unique among creative fields of the same
+-- advertiser.
+cffName :: Lens' CreativeField (Maybe Text)
+cffName = lens _cffName (\ s a -> s{_cffName = a})
+
+-- | ID of this creative field. This is a read-only, auto-generated field.
+cffId :: Lens' CreativeField (Maybe Int64)
+cffId
+  = lens _cffId (\ s a -> s{_cffId = a}) .
+      mapping _Coerce
+
+-- | Subaccount ID of this creative field. This is a read-only field that can
+-- be left blank.
+cffSubAccountId :: Lens' CreativeField (Maybe Int64)
+cffSubAccountId
+  = lens _cffSubAccountId
+      (\ s a -> s{_cffSubAccountId = a})
+      . mapping _Coerce
+
+instance FromJSON CreativeField where
+        parseJSON
+          = withObject "CreativeField"
+              (\ o ->
+                 CreativeField' <$>
+                   (o .:? "kind" .!= "dfareporting#creativeField") <*>
+                     (o .:? "advertiserId")
+                     <*> (o .:? "advertiserIdDimensionValue")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "subaccountId"))
+
+instance ToJSON CreativeField where
+        toJSON CreativeField'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _cffKind),
+                  ("advertiserId" .=) <$> _cffAdvertiserId,
+                  ("advertiserIdDimensionValue" .=) <$>
+                    _cffAdvertiserIdDimensionValue,
+                  ("accountId" .=) <$> _cffAccountId,
+                  ("name" .=) <$> _cffName, ("id" .=) <$> _cffId,
+                  ("subaccountId" .=) <$> _cffSubAccountId])
+
+-- | Properties of inheriting and overriding the default click-through event
+-- tag. A campaign may override the event tag defined at the advertiser
+-- level, and an ad may also override the campaign\'s setting further.
+--
+-- /See:/ 'defaultClickThroughEventTagProperties' smart constructor.
+data DefaultClickThroughEventTagProperties = DefaultClickThroughEventTagProperties'
+    { _dctetpOverrideInheritedEventTag     :: !(Maybe Bool)
+    , _dctetpDefaultClickThroughEventTagId :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DefaultClickThroughEventTagProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dctetpOverrideInheritedEventTag'
+--
+-- * 'dctetpDefaultClickThroughEventTagId'
+defaultClickThroughEventTagProperties
+    :: DefaultClickThroughEventTagProperties
+defaultClickThroughEventTagProperties =
+    DefaultClickThroughEventTagProperties'
+    { _dctetpOverrideInheritedEventTag = Nothing
+    , _dctetpDefaultClickThroughEventTagId = Nothing
+    }
+
+-- | Whether this entity should override the inherited default click-through
+-- event tag with its own defined value.
+dctetpOverrideInheritedEventTag :: Lens' DefaultClickThroughEventTagProperties (Maybe Bool)
+dctetpOverrideInheritedEventTag
+  = lens _dctetpOverrideInheritedEventTag
+      (\ s a -> s{_dctetpOverrideInheritedEventTag = a})
+
+-- | ID of the click-through event tag to apply to all ads in this entity\'s
+-- scope.
+dctetpDefaultClickThroughEventTagId :: Lens' DefaultClickThroughEventTagProperties (Maybe Int64)
+dctetpDefaultClickThroughEventTagId
+  = lens _dctetpDefaultClickThroughEventTagId
+      (\ s a ->
+         s{_dctetpDefaultClickThroughEventTagId = a})
+      . mapping _Coerce
+
+instance FromJSON
+         DefaultClickThroughEventTagProperties where
+        parseJSON
+          = withObject "DefaultClickThroughEventTagProperties"
+              (\ o ->
+                 DefaultClickThroughEventTagProperties' <$>
+                   (o .:? "overrideInheritedEventTag") <*>
+                     (o .:? "defaultClickThroughEventTagId"))
+
+instance ToJSON DefaultClickThroughEventTagProperties
+         where
+        toJSON DefaultClickThroughEventTagProperties'{..}
+          = object
+              (catMaybes
+                 [("overrideInheritedEventTag" .=) <$>
+                    _dctetpOverrideInheritedEventTag,
+                  ("defaultClickThroughEventTagId" .=) <$>
+                    _dctetpDefaultClickThroughEventTagId])
+
+-- | Remarketing List Targeting Expression.
+--
+-- /See:/ 'listTargetingExpression' smart constructor.
+newtype ListTargetingExpression = ListTargetingExpression'
+    { _lteExpression :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListTargetingExpression' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lteExpression'
+listTargetingExpression
+    :: ListTargetingExpression
+listTargetingExpression =
+    ListTargetingExpression'
+    { _lteExpression = Nothing
+    }
+
+-- | Expression describing which lists are being targeted by the ad.
+lteExpression :: Lens' ListTargetingExpression (Maybe Text)
+lteExpression
+  = lens _lteExpression
+      (\ s a -> s{_lteExpression = a})
+
+instance FromJSON ListTargetingExpression where
+        parseJSON
+          = withObject "ListTargetingExpression"
+              (\ o ->
+                 ListTargetingExpression' <$> (o .:? "expression"))
+
+instance ToJSON ListTargetingExpression where
+        toJSON ListTargetingExpression'{..}
           = object
               (catMaybes [("expression" .=) <$> _lteExpression])
diff --git a/gen/Network/Google/DFAReporting/Types/Sum.hs b/gen/Network/Google/DFAReporting/Types/Sum.hs
--- a/gen/Network/Google/DFAReporting/Types/Sum.hs
+++ b/gen/Network/Google/DFAReporting/Types/Sum.hs
@@ -8,7364 +8,7869 @@
 
 -- |
 -- Module      : Network.Google.DFAReporting.Types.Sum
--- Copyright   : (c) 2015 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.Google.DFAReporting.Types.Sum where
-
-import           Network.Google.Prelude
-
--- | Order of sorted results, default is ASCENDING.
-data PlacementsListSortOrder
-    = Ascending
-      -- ^ @ASCENDING@
-    | Descending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementsListSortOrder
-
-instance FromText PlacementsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just Ascending
-        "DESCENDING" -> Just Descending
-        _ -> Nothing
-
-instance ToText PlacementsListSortOrder where
-    toText = \case
-        Ascending -> "ASCENDING"
-        Descending -> "DESCENDING"
-
-instance FromJSON PlacementsListSortOrder where
-    parseJSON = parseJSONText "PlacementsListSortOrder"
-
-instance ToJSON PlacementsListSortOrder where
-    toJSON = toJSONText
-
--- | The date range relative to the date of when the report is run.
-data DateRangeRelativeDateRange
-    = Last24Months
-      -- ^ @LAST_24_MONTHS@
-    | Last30Days
-      -- ^ @LAST_30_DAYS@
-    | Last365Days
-      -- ^ @LAST_365_DAYS@
-    | Last7Days
-      -- ^ @LAST_7_DAYS@
-    | Last90Days
-      -- ^ @LAST_90_DAYS@
-    | MonthToDate
-      -- ^ @MONTH_TO_DATE@
-    | PreviousMonth
-      -- ^ @PREVIOUS_MONTH@
-    | PreviousQuarter
-      -- ^ @PREVIOUS_QUARTER@
-    | PreviousWeek
-      -- ^ @PREVIOUS_WEEK@
-    | PreviousYear
-      -- ^ @PREVIOUS_YEAR@
-    | QuarterToDate
-      -- ^ @QUARTER_TO_DATE@
-    | Today
-      -- ^ @TODAY@
-    | WeekToDate
-      -- ^ @WEEK_TO_DATE@
-    | YearToDate
-      -- ^ @YEAR_TO_DATE@
-    | Yesterday
-      -- ^ @YESTERDAY@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DateRangeRelativeDateRange
-
-instance FromText DateRangeRelativeDateRange where
-    fromText = \case
-        "LAST_24_MONTHS" -> Just Last24Months
-        "LAST_30_DAYS" -> Just Last30Days
-        "LAST_365_DAYS" -> Just Last365Days
-        "LAST_7_DAYS" -> Just Last7Days
-        "LAST_90_DAYS" -> Just Last90Days
-        "MONTH_TO_DATE" -> Just MonthToDate
-        "PREVIOUS_MONTH" -> Just PreviousMonth
-        "PREVIOUS_QUARTER" -> Just PreviousQuarter
-        "PREVIOUS_WEEK" -> Just PreviousWeek
-        "PREVIOUS_YEAR" -> Just PreviousYear
-        "QUARTER_TO_DATE" -> Just QuarterToDate
-        "TODAY" -> Just Today
-        "WEEK_TO_DATE" -> Just WeekToDate
-        "YEAR_TO_DATE" -> Just YearToDate
-        "YESTERDAY" -> Just Yesterday
-        _ -> Nothing
-
-instance ToText DateRangeRelativeDateRange where
-    toText = \case
-        Last24Months -> "LAST_24_MONTHS"
-        Last30Days -> "LAST_30_DAYS"
-        Last365Days -> "LAST_365_DAYS"
-        Last7Days -> "LAST_7_DAYS"
-        Last90Days -> "LAST_90_DAYS"
-        MonthToDate -> "MONTH_TO_DATE"
-        PreviousMonth -> "PREVIOUS_MONTH"
-        PreviousQuarter -> "PREVIOUS_QUARTER"
-        PreviousWeek -> "PREVIOUS_WEEK"
-        PreviousYear -> "PREVIOUS_YEAR"
-        QuarterToDate -> "QUARTER_TO_DATE"
-        Today -> "TODAY"
-        WeekToDate -> "WEEK_TO_DATE"
-        YearToDate -> "YEAR_TO_DATE"
-        Yesterday -> "YESTERDAY"
-
-instance FromJSON DateRangeRelativeDateRange where
-    parseJSON = parseJSONText "DateRangeRelativeDateRange"
-
-instance ToJSON DateRangeRelativeDateRange where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data AdvertisersListSortField
-    = ID
-      -- ^ @ID@
-    | Name
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdvertisersListSortField
-
-instance FromText AdvertisersListSortField where
-    fromText = \case
-        "ID" -> Just ID
-        "NAME" -> Just Name
-        _ -> Nothing
-
-instance ToText AdvertisersListSortField where
-    toText = \case
-        ID -> "ID"
-        Name -> "NAME"
-
-instance FromJSON AdvertisersListSortField where
-    parseJSON = parseJSONText "AdvertisersListSortField"
-
-instance ToJSON AdvertisersListSortField where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data CreativeFieldsListSortOrder
-    = CFLSOAscending
-      -- ^ @ASCENDING@
-    | CFLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeFieldsListSortOrder
-
-instance FromText CreativeFieldsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just CFLSOAscending
-        "DESCENDING" -> Just CFLSODescending
-        _ -> Nothing
-
-instance ToText CreativeFieldsListSortOrder where
-    toText = \case
-        CFLSOAscending -> "ASCENDING"
-        CFLSODescending -> "DESCENDING"
-
-instance FromJSON CreativeFieldsListSortOrder where
-    parseJSON = parseJSONText "CreativeFieldsListSortOrder"
-
-instance ToJSON CreativeFieldsListSortOrder where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data UserRolesListSortField
-    = URLSFID
-      -- ^ @ID@
-    | URLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable UserRolesListSortField
-
-instance FromText UserRolesListSortField where
-    fromText = \case
-        "ID" -> Just URLSFID
-        "NAME" -> Just URLSFName
-        _ -> Nothing
-
-instance ToText UserRolesListSortField where
-    toText = \case
-        URLSFID -> "ID"
-        URLSFName -> "NAME"
-
-instance FromJSON UserRolesListSortField where
-    parseJSON = parseJSONText "UserRolesListSortField"
-
-instance ToJSON UserRolesListSortField where
-    toJSON = toJSONText
-
--- | Tag format type for the floodlight activity. If left blank, the tag
--- format will default to HTML.
-data FloodlightActivityTagFormat
-    = HTML
-      -- ^ @HTML@
-    | Xhtml
-      -- ^ @XHTML@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivityTagFormat
-
-instance FromText FloodlightActivityTagFormat where
-    fromText = \case
-        "HTML" -> Just HTML
-        "XHTML" -> Just Xhtml
-        _ -> Nothing
-
-instance ToText FloodlightActivityTagFormat where
-    toText = \case
-        HTML -> "HTML"
-        Xhtml -> "XHTML"
-
-instance FromJSON FloodlightActivityTagFormat where
-    parseJSON = parseJSONText "FloodlightActivityTagFormat"
-
-instance ToJSON FloodlightActivityTagFormat where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data OrderDocumentsListSortOrder
-    = ODLSOAscending
-      -- ^ @ASCENDING@
-    | ODLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable OrderDocumentsListSortOrder
-
-instance FromText OrderDocumentsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just ODLSOAscending
-        "DESCENDING" -> Just ODLSODescending
-        _ -> Nothing
-
-instance ToText OrderDocumentsListSortOrder where
-    toText = \case
-        ODLSOAscending -> "ASCENDING"
-        ODLSODescending -> "DESCENDING"
-
-instance FromJSON OrderDocumentsListSortOrder where
-    parseJSON = parseJSONText "OrderDocumentsListSortOrder"
-
-instance ToJSON OrderDocumentsListSortOrder where
-    toJSON = toJSONText
-
--- | Role of the asset in relation to creative. Applicable to all but the
--- following creative types: all REDIRECT and TRACKING_TEXT. This is a
--- required field. PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE,
--- HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain
--- multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies
--- to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all
--- VPAID creatives. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to
--- FLASH_INPAGE creatives. OTHER refers to assets from sources other than
--- DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and
--- all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user
--- in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
--- TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO
--- assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
--- ALTERNATE_VIDEO refers to the DCM representation of child asset videos
--- from Studio, and is applicable to VPAID_LINEAR creatives. These cannot
--- be added or removed within DCM. For VPAID_LINEAR creatives,
--- PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are
--- marked active serve as backup in case the VPAID creative cannot be
--- served. Only PARENT_VIDEO assets can be added or removed for an
--- INSTREAM_VIDEO or VPAID_LINEAR creative.
-data CreativeAssetRole
-    = AdditionalFlash
-      -- ^ @ADDITIONAL_FLASH@
-    | AdditionalImage
-      -- ^ @ADDITIONAL_IMAGE@
-    | AlternateVideo
-      -- ^ @ALTERNATE_VIDEO@
-    | BackupImage
-      -- ^ @BACKUP_IMAGE@
-    | Other
-      -- ^ @OTHER@
-    | ParentVideo
-      -- ^ @PARENT_VIDEO@
-    | Primary
-      -- ^ @PRIMARY@
-    | TranscodedVideo
-      -- ^ @TRANSCODED_VIDEO@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetRole
-
-instance FromText CreativeAssetRole where
-    fromText = \case
-        "ADDITIONAL_FLASH" -> Just AdditionalFlash
-        "ADDITIONAL_IMAGE" -> Just AdditionalImage
-        "ALTERNATE_VIDEO" -> Just AlternateVideo
-        "BACKUP_IMAGE" -> Just BackupImage
-        "OTHER" -> Just Other
-        "PARENT_VIDEO" -> Just ParentVideo
-        "PRIMARY" -> Just Primary
-        "TRANSCODED_VIDEO" -> Just TranscodedVideo
-        _ -> Nothing
-
-instance ToText CreativeAssetRole where
-    toText = \case
-        AdditionalFlash -> "ADDITIONAL_FLASH"
-        AdditionalImage -> "ADDITIONAL_IMAGE"
-        AlternateVideo -> "ALTERNATE_VIDEO"
-        BackupImage -> "BACKUP_IMAGE"
-        Other -> "OTHER"
-        ParentVideo -> "PARENT_VIDEO"
-        Primary -> "PRIMARY"
-        TranscodedVideo -> "TRANSCODED_VIDEO"
-
-instance FromJSON CreativeAssetRole where
-    parseJSON = parseJSONText "CreativeAssetRole"
-
-instance ToJSON CreativeAssetRole where
-    toJSON = toJSONText
-
--- | The delivery type for the recipient.
-data RecipientDeliveryType
-    = Attachment
-      -- ^ @ATTACHMENT@
-    | Link
-      -- ^ @LINK@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable RecipientDeliveryType
-
-instance FromText RecipientDeliveryType where
-    fromText = \case
-        "ATTACHMENT" -> Just Attachment
-        "LINK" -> Just Link
-        _ -> Nothing
-
-instance ToText RecipientDeliveryType where
-    toText = \case
-        Attachment -> "ATTACHMENT"
-        Link -> "LINK"
-
-instance FromJSON RecipientDeliveryType where
-    parseJSON = parseJSONText "RecipientDeliveryType"
-
-instance ToJSON RecipientDeliveryType where
-    toJSON = toJSONText
-
--- | Third-party URL type for in-stream video creatives.
-data ThirdPartyTrackingURLThirdPartyURLType
-    = ClickTracking
-      -- ^ @CLICK_TRACKING@
-    | Impression
-      -- ^ @IMPRESSION@
-    | RichMediaBackupImpression
-      -- ^ @RICH_MEDIA_BACKUP_IMPRESSION@
-    | RichMediaImpression
-      -- ^ @RICH_MEDIA_IMPRESSION@
-    | RichMediaRmImpression
-      -- ^ @RICH_MEDIA_RM_IMPRESSION@
-    | Survey
-      -- ^ @SURVEY@
-    | VideoComplete
-      -- ^ @VIDEO_COMPLETE@
-    | VideoCustom
-      -- ^ @VIDEO_CUSTOM@
-    | VideoFirstQuartile
-      -- ^ @VIDEO_FIRST_QUARTILE@
-    | VideoFullscreen
-      -- ^ @VIDEO_FULLSCREEN@
-    | VideoMidpoint
-      -- ^ @VIDEO_MIDPOINT@
-    | VideoMute
-      -- ^ @VIDEO_MUTE@
-    | VideoPause
-      -- ^ @VIDEO_PAUSE@
-    | VideoRewind
-      -- ^ @VIDEO_REWIND@
-    | VideoStart
-      -- ^ @VIDEO_START@
-    | VideoStop
-      -- ^ @VIDEO_STOP@
-    | VideoThirdQuartile
-      -- ^ @VIDEO_THIRD_QUARTILE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ThirdPartyTrackingURLThirdPartyURLType
-
-instance FromText ThirdPartyTrackingURLThirdPartyURLType where
-    fromText = \case
-        "CLICK_TRACKING" -> Just ClickTracking
-        "IMPRESSION" -> Just Impression
-        "RICH_MEDIA_BACKUP_IMPRESSION" -> Just RichMediaBackupImpression
-        "RICH_MEDIA_IMPRESSION" -> Just RichMediaImpression
-        "RICH_MEDIA_RM_IMPRESSION" -> Just RichMediaRmImpression
-        "SURVEY" -> Just Survey
-        "VIDEO_COMPLETE" -> Just VideoComplete
-        "VIDEO_CUSTOM" -> Just VideoCustom
-        "VIDEO_FIRST_QUARTILE" -> Just VideoFirstQuartile
-        "VIDEO_FULLSCREEN" -> Just VideoFullscreen
-        "VIDEO_MIDPOINT" -> Just VideoMidpoint
-        "VIDEO_MUTE" -> Just VideoMute
-        "VIDEO_PAUSE" -> Just VideoPause
-        "VIDEO_REWIND" -> Just VideoRewind
-        "VIDEO_START" -> Just VideoStart
-        "VIDEO_STOP" -> Just VideoStop
-        "VIDEO_THIRD_QUARTILE" -> Just VideoThirdQuartile
-        _ -> Nothing
-
-instance ToText ThirdPartyTrackingURLThirdPartyURLType where
-    toText = \case
-        ClickTracking -> "CLICK_TRACKING"
-        Impression -> "IMPRESSION"
-        RichMediaBackupImpression -> "RICH_MEDIA_BACKUP_IMPRESSION"
-        RichMediaImpression -> "RICH_MEDIA_IMPRESSION"
-        RichMediaRmImpression -> "RICH_MEDIA_RM_IMPRESSION"
-        Survey -> "SURVEY"
-        VideoComplete -> "VIDEO_COMPLETE"
-        VideoCustom -> "VIDEO_CUSTOM"
-        VideoFirstQuartile -> "VIDEO_FIRST_QUARTILE"
-        VideoFullscreen -> "VIDEO_FULLSCREEN"
-        VideoMidpoint -> "VIDEO_MIDPOINT"
-        VideoMute -> "VIDEO_MUTE"
-        VideoPause -> "VIDEO_PAUSE"
-        VideoRewind -> "VIDEO_REWIND"
-        VideoStart -> "VIDEO_START"
-        VideoStop -> "VIDEO_STOP"
-        VideoThirdQuartile -> "VIDEO_THIRD_QUARTILE"
-
-instance FromJSON ThirdPartyTrackingURLThirdPartyURLType where
-    parseJSON = parseJSONText "ThirdPartyTrackingURLThirdPartyURLType"
-
-instance ToJSON ThirdPartyTrackingURLThirdPartyURLType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data TargetableRemarketingListsListSortOrder
-    = TRLLSOAscending
-      -- ^ @ASCENDING@
-    | TRLLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable TargetableRemarketingListsListSortOrder
-
-instance FromText TargetableRemarketingListsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just TRLLSOAscending
-        "DESCENDING" -> Just TRLLSODescending
-        _ -> Nothing
-
-instance ToText TargetableRemarketingListsListSortOrder where
-    toText = \case
-        TRLLSOAscending -> "ASCENDING"
-        TRLLSODescending -> "DESCENDING"
-
-instance FromJSON TargetableRemarketingListsListSortOrder where
-    parseJSON = parseJSONText "TargetableRemarketingListsListSortOrder"
-
-instance ToJSON TargetableRemarketingListsListSortOrder where
-    toJSON = toJSONText
-
--- | Offset left unit for an asset. This is a read-only field. Applicable to
--- the following creative types: all RICH_MEDIA.
-data CreativeAssetPositionLeftUnit
-    = OffSetUnitPercent
-      -- ^ @OFFSET_UNIT_PERCENT@
-    | OffSetUnitPixel
-      -- ^ @OFFSET_UNIT_PIXEL@
-    | OffSetUnitPixelFromCenter
-      -- ^ @OFFSET_UNIT_PIXEL_FROM_CENTER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetPositionLeftUnit
-
-instance FromText CreativeAssetPositionLeftUnit where
-    fromText = \case
-        "OFFSET_UNIT_PERCENT" -> Just OffSetUnitPercent
-        "OFFSET_UNIT_PIXEL" -> Just OffSetUnitPixel
-        "OFFSET_UNIT_PIXEL_FROM_CENTER" -> Just OffSetUnitPixelFromCenter
-        _ -> Nothing
-
-instance ToText CreativeAssetPositionLeftUnit where
-    toText = \case
-        OffSetUnitPercent -> "OFFSET_UNIT_PERCENT"
-        OffSetUnitPixel -> "OFFSET_UNIT_PIXEL"
-        OffSetUnitPixelFromCenter -> "OFFSET_UNIT_PIXEL_FROM_CENTER"
-
-instance FromJSON CreativeAssetPositionLeftUnit where
-    parseJSON = parseJSONText "CreativeAssetPositionLeftUnit"
-
-instance ToJSON CreativeAssetPositionLeftUnit where
-    toJSON = toJSONText
-
--- | Placement cap cost option.
-data PricingScheduleCapCostOption
-    = CapCostCumulative
-      -- ^ @CAP_COST_CUMULATIVE@
-    | CapCostMonthly
-      -- ^ @CAP_COST_MONTHLY@
-    | CapCostNone
-      -- ^ @CAP_COST_NONE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PricingScheduleCapCostOption
-
-instance FromText PricingScheduleCapCostOption where
-    fromText = \case
-        "CAP_COST_CUMULATIVE" -> Just CapCostCumulative
-        "CAP_COST_MONTHLY" -> Just CapCostMonthly
-        "CAP_COST_NONE" -> Just CapCostNone
-        _ -> Nothing
-
-instance ToText PricingScheduleCapCostOption where
-    toText = \case
-        CapCostCumulative -> "CAP_COST_CUMULATIVE"
-        CapCostMonthly -> "CAP_COST_MONTHLY"
-        CapCostNone -> "CAP_COST_NONE"
-
-instance FromJSON PricingScheduleCapCostOption where
-    parseJSON = parseJSONText "PricingScheduleCapCostOption"
-
-instance ToJSON PricingScheduleCapCostOption where
-    toJSON = toJSONText
-
--- | Levels of availability for a user role permission.
-data UserRolePermissionAvailability
-    = AccountAlways
-      -- ^ @ACCOUNT_ALWAYS@
-    | AccountByDefault
-      -- ^ @ACCOUNT_BY_DEFAULT@
-    | NotAvailableByDefault
-      -- ^ @NOT_AVAILABLE_BY_DEFAULT@
-    | SubAccountAndAccountAlways
-      -- ^ @SUBACCOUNT_AND_ACCOUNT_ALWAYS@
-    | SubAccountAndAccountByDefault
-      -- ^ @SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable UserRolePermissionAvailability
-
-instance FromText UserRolePermissionAvailability where
-    fromText = \case
-        "ACCOUNT_ALWAYS" -> Just AccountAlways
-        "ACCOUNT_BY_DEFAULT" -> Just AccountByDefault
-        "NOT_AVAILABLE_BY_DEFAULT" -> Just NotAvailableByDefault
-        "SUBACCOUNT_AND_ACCOUNT_ALWAYS" -> Just SubAccountAndAccountAlways
-        "SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT" -> Just SubAccountAndAccountByDefault
-        _ -> Nothing
-
-instance ToText UserRolePermissionAvailability where
-    toText = \case
-        AccountAlways -> "ACCOUNT_ALWAYS"
-        AccountByDefault -> "ACCOUNT_BY_DEFAULT"
-        NotAvailableByDefault -> "NOT_AVAILABLE_BY_DEFAULT"
-        SubAccountAndAccountAlways -> "SUBACCOUNT_AND_ACCOUNT_ALWAYS"
-        SubAccountAndAccountByDefault -> "SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT"
-
-instance FromJSON UserRolePermissionAvailability where
-    parseJSON = parseJSONText "UserRolePermissionAvailability"
-
-instance ToJSON UserRolePermissionAvailability where
-    toJSON = toJSONText
-
--- | Visibility of this directory site contact assignment. When set to PUBLIC
--- this contact assignment is visible to all account and agency users; when
--- set to PRIVATE it is visible only to the site.
-data DirectorySiteContactAssignmentVisibility
-    = Private
-      -- ^ @PRIVATE@
-    | Public
-      -- ^ @PUBLIC@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DirectorySiteContactAssignmentVisibility
-
-instance FromText DirectorySiteContactAssignmentVisibility where
-    fromText = \case
-        "PRIVATE" -> Just Private
-        "PUBLIC" -> Just Public
-        _ -> Nothing
-
-instance ToText DirectorySiteContactAssignmentVisibility where
-    toText = \case
-        Private -> "PRIVATE"
-        Public -> "PUBLIC"
-
-instance FromJSON DirectorySiteContactAssignmentVisibility where
-    parseJSON = parseJSONText "DirectorySiteContactAssignmentVisibility"
-
-instance ToJSON DirectorySiteContactAssignmentVisibility where
-    toJSON = toJSONText
-
--- | Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering
--- either on desktop or on mobile devices for regular or interstitial ads,
--- respectively. APP and APP_INTERSTITIAL are for rendering in mobile
--- apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads
--- developed with the VAST standard. This field is required on insertion.
-data PlacementCompatibility
-    = App
-      -- ^ @APP@
-    | AppInterstitial
-      -- ^ @APP_INTERSTITIAL@
-    | InStreamVideo
-      -- ^ @IN_STREAM_VIDEO@
-    | Web
-      -- ^ @WEB@
-    | WebInterstitial
-      -- ^ @WEB_INTERSTITIAL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementCompatibility
-
-instance FromText PlacementCompatibility where
-    fromText = \case
-        "APP" -> Just App
-        "APP_INTERSTITIAL" -> Just AppInterstitial
-        "IN_STREAM_VIDEO" -> Just InStreamVideo
-        "WEB" -> Just Web
-        "WEB_INTERSTITIAL" -> Just WebInterstitial
-        _ -> Nothing
-
-instance ToText PlacementCompatibility where
-    toText = \case
-        App -> "APP"
-        AppInterstitial -> "APP_INTERSTITIAL"
-        InStreamVideo -> "IN_STREAM_VIDEO"
-        Web -> "WEB"
-        WebInterstitial -> "WEB_INTERSTITIAL"
-
-instance FromJSON PlacementCompatibility where
-    parseJSON = parseJSONText "PlacementCompatibility"
-
-instance ToJSON PlacementCompatibility where
-    toJSON = toJSONText
-
--- | Comparison operator of this term. This field is only relevant when type
--- is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-data ListPopulationTermOperator
-    = NumEquals
-      -- ^ @NUM_EQUALS@
-    | NumGreaterThan
-      -- ^ @NUM_GREATER_THAN@
-    | NumGreaterThanEqual
-      -- ^ @NUM_GREATER_THAN_EQUAL@
-    | NumLessThan
-      -- ^ @NUM_LESS_THAN@
-    | NumLessThanEqual
-      -- ^ @NUM_LESS_THAN_EQUAL@
-    | StringContains
-      -- ^ @STRING_CONTAINS@
-    | StringEquals
-      -- ^ @STRING_EQUALS@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ListPopulationTermOperator
-
-instance FromText ListPopulationTermOperator where
-    fromText = \case
-        "NUM_EQUALS" -> Just NumEquals
-        "NUM_GREATER_THAN" -> Just NumGreaterThan
-        "NUM_GREATER_THAN_EQUAL" -> Just NumGreaterThanEqual
-        "NUM_LESS_THAN" -> Just NumLessThan
-        "NUM_LESS_THAN_EQUAL" -> Just NumLessThanEqual
-        "STRING_CONTAINS" -> Just StringContains
-        "STRING_EQUALS" -> Just StringEquals
-        _ -> Nothing
-
-instance ToText ListPopulationTermOperator where
-    toText = \case
-        NumEquals -> "NUM_EQUALS"
-        NumGreaterThan -> "NUM_GREATER_THAN"
-        NumGreaterThanEqual -> "NUM_GREATER_THAN_EQUAL"
-        NumLessThan -> "NUM_LESS_THAN"
-        NumLessThanEqual -> "NUM_LESS_THAN_EQUAL"
-        StringContains -> "STRING_CONTAINS"
-        StringEquals -> "STRING_EQUALS"
-
-instance FromJSON ListPopulationTermOperator where
-    parseJSON = parseJSONText "ListPopulationTermOperator"
-
-instance ToJSON ListPopulationTermOperator where
-    toJSON = toJSONText
-
--- | Select only placements with this payment source.
-data PlacementsListPaymentSource
-    = PlacementAgencyPaid
-      -- ^ @PLACEMENT_AGENCY_PAID@
-    | PlacementPublisherPaid
-      -- ^ @PLACEMENT_PUBLISHER_PAID@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementsListPaymentSource
-
-instance FromText PlacementsListPaymentSource where
-    fromText = \case
-        "PLACEMENT_AGENCY_PAID" -> Just PlacementAgencyPaid
-        "PLACEMENT_PUBLISHER_PAID" -> Just PlacementPublisherPaid
-        _ -> Nothing
-
-instance ToText PlacementsListPaymentSource where
-    toText = \case
-        PlacementAgencyPaid -> "PLACEMENT_AGENCY_PAID"
-        PlacementPublisherPaid -> "PLACEMENT_PUBLISHER_PAID"
-
-instance FromJSON PlacementsListPaymentSource where
-    parseJSON = parseJSONText "PlacementsListPaymentSource"
-
-instance ToJSON PlacementsListPaymentSource where
-    toJSON = toJSONText
-
--- | The field by which to sort the list.
-data ReportsListSortField
-    = RLSFID
-      -- ^ @ID@
-      -- Sort by report ID.
-    | RLSFLastModifiedTime
-      -- ^ @LAST_MODIFIED_TIME@
-      -- Sort by \'lastModifiedTime\' field.
-    | RLSFName
-      -- ^ @NAME@
-      -- Sort by name of reports.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportsListSortField
-
-instance FromText ReportsListSortField where
-    fromText = \case
-        "ID" -> Just RLSFID
-        "LAST_MODIFIED_TIME" -> Just RLSFLastModifiedTime
-        "NAME" -> Just RLSFName
-        _ -> Nothing
-
-instance ToText ReportsListSortField where
-    toText = \case
-        RLSFID -> "ID"
-        RLSFLastModifiedTime -> "LAST_MODIFIED_TIME"
-        RLSFName -> "NAME"
-
-instance FromJSON ReportsListSortField where
-    parseJSON = parseJSONText "ReportsListSortField"
-
-instance ToJSON ReportsListSortField where
-    toJSON = toJSONText
-
--- | Ad slot compatibility. WEB and WEB_INTERSTITIAL refer to rendering
--- either on desktop or on mobile devices for regular or interstitial ads
--- respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.
--- IN_STREAM_VIDEO refers to rendering in in-stream video ads developed
--- with the VAST standard.
-data AdSlotCompatibility
-    = PlanningRenderingEnvironmentTypeApp
-      -- ^ @PLANNING_RENDERING_ENVIRONMENT_TYPE_APP@
-    | PlanningRenderingEnvironmentTypeAppInterstitial
-      -- ^ @PLANNING_RENDERING_ENVIRONMENT_TYPE_APP_INTERSTITIAL@
-    | PlanningRenderingEnvironmentTypeInStreamVideo
-      -- ^ @PLANNING_RENDERING_ENVIRONMENT_TYPE_IN_STREAM_VIDEO@
-    | PlanningRenderingEnvironmentTypeWeb
-      -- ^ @PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB@
-    | PlanningRenderingEnvironmentTypeWebInterstitial
-      -- ^ @PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB_INTERSTITIAL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdSlotCompatibility
-
-instance FromText AdSlotCompatibility where
-    fromText = \case
-        "PLANNING_RENDERING_ENVIRONMENT_TYPE_APP" -> Just PlanningRenderingEnvironmentTypeApp
-        "PLANNING_RENDERING_ENVIRONMENT_TYPE_APP_INTERSTITIAL" -> Just PlanningRenderingEnvironmentTypeAppInterstitial
-        "PLANNING_RENDERING_ENVIRONMENT_TYPE_IN_STREAM_VIDEO" -> Just PlanningRenderingEnvironmentTypeInStreamVideo
-        "PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB" -> Just PlanningRenderingEnvironmentTypeWeb
-        "PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB_INTERSTITIAL" -> Just PlanningRenderingEnvironmentTypeWebInterstitial
-        _ -> Nothing
-
-instance ToText AdSlotCompatibility where
-    toText = \case
-        PlanningRenderingEnvironmentTypeApp -> "PLANNING_RENDERING_ENVIRONMENT_TYPE_APP"
-        PlanningRenderingEnvironmentTypeAppInterstitial -> "PLANNING_RENDERING_ENVIRONMENT_TYPE_APP_INTERSTITIAL"
-        PlanningRenderingEnvironmentTypeInStreamVideo -> "PLANNING_RENDERING_ENVIRONMENT_TYPE_IN_STREAM_VIDEO"
-        PlanningRenderingEnvironmentTypeWeb -> "PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB"
-        PlanningRenderingEnvironmentTypeWebInterstitial -> "PLANNING_RENDERING_ENVIRONMENT_TYPE_WEB_INTERSTITIAL"
-
-instance FromJSON AdSlotCompatibility where
-    parseJSON = parseJSONText "AdSlotCompatibility"
-
-instance ToJSON AdSlotCompatibility where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data CampaignsListSortField
-    = CLSFID
-      -- ^ @ID@
-    | CLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CampaignsListSortField
-
-instance FromText CampaignsListSortField where
-    fromText = \case
-        "ID" -> Just CLSFID
-        "NAME" -> Just CLSFName
-        _ -> Nothing
-
-instance ToText CampaignsListSortField where
-    toText = \case
-        CLSFID -> "ID"
-        CLSFName -> "NAME"
-
-instance FromJSON CampaignsListSortField where
-    parseJSON = parseJSONText "CampaignsListSortField"
-
-instance ToJSON CampaignsListSortField where
-    toJSON = toJSONText
-
--- | Trafficker type of this user profile.
-data AccountUserProFileTraffickerType
-    = ExternalTrafficker
-      -- ^ @EXTERNAL_TRAFFICKER@
-    | InternalNonTrafficker
-      -- ^ @INTERNAL_NON_TRAFFICKER@
-    | InternalTrafficker
-      -- ^ @INTERNAL_TRAFFICKER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountUserProFileTraffickerType
-
-instance FromText AccountUserProFileTraffickerType where
-    fromText = \case
-        "EXTERNAL_TRAFFICKER" -> Just ExternalTrafficker
-        "INTERNAL_NON_TRAFFICKER" -> Just InternalNonTrafficker
-        "INTERNAL_TRAFFICKER" -> Just InternalTrafficker
-        _ -> Nothing
-
-instance ToText AccountUserProFileTraffickerType where
-    toText = \case
-        ExternalTrafficker -> "EXTERNAL_TRAFFICKER"
-        InternalNonTrafficker -> "INTERNAL_NON_TRAFFICKER"
-        InternalTrafficker -> "INTERNAL_TRAFFICKER"
-
-instance FromJSON AccountUserProFileTraffickerType where
-    parseJSON = parseJSONText "AccountUserProFileTraffickerType"
-
-instance ToJSON AccountUserProFileTraffickerType where
-    toJSON = toJSONText
-
-data CreativeAssetMetadataDetectedFeaturesItem
-    = ApplicationCache
-      -- ^ @APPLICATION_CACHE@
-    | Audio
-      -- ^ @AUDIO@
-    | Canvas
-      -- ^ @CANVAS@
-    | CanvasText
-      -- ^ @CANVAS_TEXT@
-    | CssAnimations
-      -- ^ @CSS_ANIMATIONS@
-    | CssBackgRoundSize
-      -- ^ @CSS_BACKGROUND_SIZE@
-    | CssBOrderImage
-      -- ^ @CSS_BORDER_IMAGE@
-    | CssBOrderRadius
-      -- ^ @CSS_BORDER_RADIUS@
-    | CssBoxShadow
-      -- ^ @CSS_BOX_SHADOW@
-    | CssColumns
-      -- ^ @CSS_COLUMNS@
-    | CssFlexBox
-      -- ^ @CSS_FLEX_BOX@
-    | CssFontFace
-      -- ^ @CSS_FONT_FACE@
-    | CssGeneratedContent
-      -- ^ @CSS_GENERATED_CONTENT@
-    | CssGradients
-      -- ^ @CSS_GRADIENTS@
-    | CssHsla
-      -- ^ @CSS_HSLA@
-    | CssMultipleBgs
-      -- ^ @CSS_MULTIPLE_BGS@
-    | CssOpacity
-      -- ^ @CSS_OPACITY@
-    | CssReflections
-      -- ^ @CSS_REFLECTIONS@
-    | CssRgba
-      -- ^ @CSS_RGBA@
-    | CssTextShadow
-      -- ^ @CSS_TEXT_SHADOW@
-    | CssTransforms
-      -- ^ @CSS_TRANSFORMS@
-    | CssTRANSFORMS3D
-      -- ^ @CSS_TRANSFORMS3D@
-    | CssTransitions
-      -- ^ @CSS_TRANSITIONS@
-    | DragAndDrop
-      -- ^ @DRAG_AND_DROP@
-    | GeoLocation
-      -- ^ @GEO_LOCATION@
-    | HashChange
-      -- ^ @HASH_CHANGE@
-    | History
-      -- ^ @HISTORY@
-    | IndexedDB
-      -- ^ @INDEXED_DB@
-    | InlineSvg
-      -- ^ @INLINE_SVG@
-    | InputAttrAutocomplete
-      -- ^ @INPUT_ATTR_AUTOCOMPLETE@
-    | InputAttrAutofocus
-      -- ^ @INPUT_ATTR_AUTOFOCUS@
-    | InputAttrList
-      -- ^ @INPUT_ATTR_LIST@
-    | InputAttrMax
-      -- ^ @INPUT_ATTR_MAX@
-    | InputAttrMin
-      -- ^ @INPUT_ATTR_MIN@
-    | InputAttrMultiple
-      -- ^ @INPUT_ATTR_MULTIPLE@
-    | InputAttrPattern
-      -- ^ @INPUT_ATTR_PATTERN@
-    | InputAttrPlaceholder
-      -- ^ @INPUT_ATTR_PLACEHOLDER@
-    | InputAttrRequired
-      -- ^ @INPUT_ATTR_REQUIRED@
-    | InputAttrStep
-      -- ^ @INPUT_ATTR_STEP@
-    | InputTypeColor
-      -- ^ @INPUT_TYPE_COLOR@
-    | InputTypeDate
-      -- ^ @INPUT_TYPE_DATE@
-    | InputTypeDatetime
-      -- ^ @INPUT_TYPE_DATETIME@
-    | InputTypeDatetimeLocal
-      -- ^ @INPUT_TYPE_DATETIME_LOCAL@
-    | InputTypeEmail
-      -- ^ @INPUT_TYPE_EMAIL@
-    | InputTypeMonth
-      -- ^ @INPUT_TYPE_MONTH@
-    | InputTypeNumber
-      -- ^ @INPUT_TYPE_NUMBER@
-    | InputTypeRange
-      -- ^ @INPUT_TYPE_RANGE@
-    | InputTypeSearch
-      -- ^ @INPUT_TYPE_SEARCH@
-    | InputTypeTel
-      -- ^ @INPUT_TYPE_TEL@
-    | InputTypeTime
-      -- ^ @INPUT_TYPE_TIME@
-    | InputTypeURL
-      -- ^ @INPUT_TYPE_URL@
-    | InputTypeWeek
-      -- ^ @INPUT_TYPE_WEEK@
-    | LocalStorage
-      -- ^ @LOCAL_STORAGE@
-    | PostMessage
-      -- ^ @POST_MESSAGE@
-    | SessionStorage
-      -- ^ @SESSION_STORAGE@
-    | Smil
-      -- ^ @SMIL@
-    | SvgClipPaths
-      -- ^ @SVG_CLIP_PATHS@
-    | SvgFeImage
-      -- ^ @SVG_FE_IMAGE@
-    | SvgFilters
-      -- ^ @SVG_FILTERS@
-    | SvgHref
-      -- ^ @SVG_HREF@
-    | Touch
-      -- ^ @TOUCH@
-    | Video
-      -- ^ @VIDEO@
-    | Webgl
-      -- ^ @WEBGL@
-    | WebSockets
-      -- ^ @WEB_SOCKETS@
-    | WebSQLDatabase
-      -- ^ @WEB_SQL_DATABASE@
-    | WebWorkers
-      -- ^ @WEB_WORKERS@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetMetadataDetectedFeaturesItem
-
-instance FromText CreativeAssetMetadataDetectedFeaturesItem where
-    fromText = \case
-        "APPLICATION_CACHE" -> Just ApplicationCache
-        "AUDIO" -> Just Audio
-        "CANVAS" -> Just Canvas
-        "CANVAS_TEXT" -> Just CanvasText
-        "CSS_ANIMATIONS" -> Just CssAnimations
-        "CSS_BACKGROUND_SIZE" -> Just CssBackgRoundSize
-        "CSS_BORDER_IMAGE" -> Just CssBOrderImage
-        "CSS_BORDER_RADIUS" -> Just CssBOrderRadius
-        "CSS_BOX_SHADOW" -> Just CssBoxShadow
-        "CSS_COLUMNS" -> Just CssColumns
-        "CSS_FLEX_BOX" -> Just CssFlexBox
-        "CSS_FONT_FACE" -> Just CssFontFace
-        "CSS_GENERATED_CONTENT" -> Just CssGeneratedContent
-        "CSS_GRADIENTS" -> Just CssGradients
-        "CSS_HSLA" -> Just CssHsla
-        "CSS_MULTIPLE_BGS" -> Just CssMultipleBgs
-        "CSS_OPACITY" -> Just CssOpacity
-        "CSS_REFLECTIONS" -> Just CssReflections
-        "CSS_RGBA" -> Just CssRgba
-        "CSS_TEXT_SHADOW" -> Just CssTextShadow
-        "CSS_TRANSFORMS" -> Just CssTransforms
-        "CSS_TRANSFORMS3D" -> Just CssTRANSFORMS3D
-        "CSS_TRANSITIONS" -> Just CssTransitions
-        "DRAG_AND_DROP" -> Just DragAndDrop
-        "GEO_LOCATION" -> Just GeoLocation
-        "HASH_CHANGE" -> Just HashChange
-        "HISTORY" -> Just History
-        "INDEXED_DB" -> Just IndexedDB
-        "INLINE_SVG" -> Just InlineSvg
-        "INPUT_ATTR_AUTOCOMPLETE" -> Just InputAttrAutocomplete
-        "INPUT_ATTR_AUTOFOCUS" -> Just InputAttrAutofocus
-        "INPUT_ATTR_LIST" -> Just InputAttrList
-        "INPUT_ATTR_MAX" -> Just InputAttrMax
-        "INPUT_ATTR_MIN" -> Just InputAttrMin
-        "INPUT_ATTR_MULTIPLE" -> Just InputAttrMultiple
-        "INPUT_ATTR_PATTERN" -> Just InputAttrPattern
-        "INPUT_ATTR_PLACEHOLDER" -> Just InputAttrPlaceholder
-        "INPUT_ATTR_REQUIRED" -> Just InputAttrRequired
-        "INPUT_ATTR_STEP" -> Just InputAttrStep
-        "INPUT_TYPE_COLOR" -> Just InputTypeColor
-        "INPUT_TYPE_DATE" -> Just InputTypeDate
-        "INPUT_TYPE_DATETIME" -> Just InputTypeDatetime
-        "INPUT_TYPE_DATETIME_LOCAL" -> Just InputTypeDatetimeLocal
-        "INPUT_TYPE_EMAIL" -> Just InputTypeEmail
-        "INPUT_TYPE_MONTH" -> Just InputTypeMonth
-        "INPUT_TYPE_NUMBER" -> Just InputTypeNumber
-        "INPUT_TYPE_RANGE" -> Just InputTypeRange
-        "INPUT_TYPE_SEARCH" -> Just InputTypeSearch
-        "INPUT_TYPE_TEL" -> Just InputTypeTel
-        "INPUT_TYPE_TIME" -> Just InputTypeTime
-        "INPUT_TYPE_URL" -> Just InputTypeURL
-        "INPUT_TYPE_WEEK" -> Just InputTypeWeek
-        "LOCAL_STORAGE" -> Just LocalStorage
-        "POST_MESSAGE" -> Just PostMessage
-        "SESSION_STORAGE" -> Just SessionStorage
-        "SMIL" -> Just Smil
-        "SVG_CLIP_PATHS" -> Just SvgClipPaths
-        "SVG_FE_IMAGE" -> Just SvgFeImage
-        "SVG_FILTERS" -> Just SvgFilters
-        "SVG_HREF" -> Just SvgHref
-        "TOUCH" -> Just Touch
-        "VIDEO" -> Just Video
-        "WEBGL" -> Just Webgl
-        "WEB_SOCKETS" -> Just WebSockets
-        "WEB_SQL_DATABASE" -> Just WebSQLDatabase
-        "WEB_WORKERS" -> Just WebWorkers
-        _ -> Nothing
-
-instance ToText CreativeAssetMetadataDetectedFeaturesItem where
-    toText = \case
-        ApplicationCache -> "APPLICATION_CACHE"
-        Audio -> "AUDIO"
-        Canvas -> "CANVAS"
-        CanvasText -> "CANVAS_TEXT"
-        CssAnimations -> "CSS_ANIMATIONS"
-        CssBackgRoundSize -> "CSS_BACKGROUND_SIZE"
-        CssBOrderImage -> "CSS_BORDER_IMAGE"
-        CssBOrderRadius -> "CSS_BORDER_RADIUS"
-        CssBoxShadow -> "CSS_BOX_SHADOW"
-        CssColumns -> "CSS_COLUMNS"
-        CssFlexBox -> "CSS_FLEX_BOX"
-        CssFontFace -> "CSS_FONT_FACE"
-        CssGeneratedContent -> "CSS_GENERATED_CONTENT"
-        CssGradients -> "CSS_GRADIENTS"
-        CssHsla -> "CSS_HSLA"
-        CssMultipleBgs -> "CSS_MULTIPLE_BGS"
-        CssOpacity -> "CSS_OPACITY"
-        CssReflections -> "CSS_REFLECTIONS"
-        CssRgba -> "CSS_RGBA"
-        CssTextShadow -> "CSS_TEXT_SHADOW"
-        CssTransforms -> "CSS_TRANSFORMS"
-        CssTRANSFORMS3D -> "CSS_TRANSFORMS3D"
-        CssTransitions -> "CSS_TRANSITIONS"
-        DragAndDrop -> "DRAG_AND_DROP"
-        GeoLocation -> "GEO_LOCATION"
-        HashChange -> "HASH_CHANGE"
-        History -> "HISTORY"
-        IndexedDB -> "INDEXED_DB"
-        InlineSvg -> "INLINE_SVG"
-        InputAttrAutocomplete -> "INPUT_ATTR_AUTOCOMPLETE"
-        InputAttrAutofocus -> "INPUT_ATTR_AUTOFOCUS"
-        InputAttrList -> "INPUT_ATTR_LIST"
-        InputAttrMax -> "INPUT_ATTR_MAX"
-        InputAttrMin -> "INPUT_ATTR_MIN"
-        InputAttrMultiple -> "INPUT_ATTR_MULTIPLE"
-        InputAttrPattern -> "INPUT_ATTR_PATTERN"
-        InputAttrPlaceholder -> "INPUT_ATTR_PLACEHOLDER"
-        InputAttrRequired -> "INPUT_ATTR_REQUIRED"
-        InputAttrStep -> "INPUT_ATTR_STEP"
-        InputTypeColor -> "INPUT_TYPE_COLOR"
-        InputTypeDate -> "INPUT_TYPE_DATE"
-        InputTypeDatetime -> "INPUT_TYPE_DATETIME"
-        InputTypeDatetimeLocal -> "INPUT_TYPE_DATETIME_LOCAL"
-        InputTypeEmail -> "INPUT_TYPE_EMAIL"
-        InputTypeMonth -> "INPUT_TYPE_MONTH"
-        InputTypeNumber -> "INPUT_TYPE_NUMBER"
-        InputTypeRange -> "INPUT_TYPE_RANGE"
-        InputTypeSearch -> "INPUT_TYPE_SEARCH"
-        InputTypeTel -> "INPUT_TYPE_TEL"
-        InputTypeTime -> "INPUT_TYPE_TIME"
-        InputTypeURL -> "INPUT_TYPE_URL"
-        InputTypeWeek -> "INPUT_TYPE_WEEK"
-        LocalStorage -> "LOCAL_STORAGE"
-        PostMessage -> "POST_MESSAGE"
-        SessionStorage -> "SESSION_STORAGE"
-        Smil -> "SMIL"
-        SvgClipPaths -> "SVG_CLIP_PATHS"
-        SvgFeImage -> "SVG_FE_IMAGE"
-        SvgFilters -> "SVG_FILTERS"
-        SvgHref -> "SVG_HREF"
-        Touch -> "TOUCH"
-        Video -> "VIDEO"
-        Webgl -> "WEBGL"
-        WebSockets -> "WEB_SOCKETS"
-        WebSQLDatabase -> "WEB_SQL_DATABASE"
-        WebWorkers -> "WEB_WORKERS"
-
-instance FromJSON CreativeAssetMetadataDetectedFeaturesItem where
-    parseJSON = parseJSONText "CreativeAssetMetadataDetectedFeaturesItem"
-
-instance ToJSON CreativeAssetMetadataDetectedFeaturesItem where
-    toJSON = toJSONText
-
--- | Select default ads with the specified compatibility. Applicable when
--- type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to
--- rendering either on desktop or on mobile devices for regular or
--- interstitial ads, respectively. APP and APP_INTERSTITIAL are for
--- rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an
--- in-stream video ads developed with the VAST standard.
-data AdsListCompatibility
-    = ALCApp
-      -- ^ @APP@
-    | ALCAppInterstitial
-      -- ^ @APP_INTERSTITIAL@
-    | ALCInStreamVideo
-      -- ^ @IN_STREAM_VIDEO@
-    | ALCWeb
-      -- ^ @WEB@
-    | ALCWebInterstitial
-      -- ^ @WEB_INTERSTITIAL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdsListCompatibility
-
-instance FromText AdsListCompatibility where
-    fromText = \case
-        "APP" -> Just ALCApp
-        "APP_INTERSTITIAL" -> Just ALCAppInterstitial
-        "IN_STREAM_VIDEO" -> Just ALCInStreamVideo
-        "WEB" -> Just ALCWeb
-        "WEB_INTERSTITIAL" -> Just ALCWebInterstitial
-        _ -> Nothing
-
-instance ToText AdsListCompatibility where
-    toText = \case
-        ALCApp -> "APP"
-        ALCAppInterstitial -> "APP_INTERSTITIAL"
-        ALCInStreamVideo -> "IN_STREAM_VIDEO"
-        ALCWeb -> "WEB"
-        ALCWebInterstitial -> "WEB_INTERSTITIAL"
-
-instance FromJSON AdsListCompatibility where
-    parseJSON = parseJSONText "AdsListCompatibility"
-
-instance ToJSON AdsListCompatibility where
-    toJSON = toJSONText
-
--- | Status of this event tag. Must be ENABLED for this event tag to fire.
--- This is a required field.
-data EventTagStatus
-    = Disabled
-      -- ^ @DISABLED@
-    | Enabled
-      -- ^ @ENABLED@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable EventTagStatus
-
-instance FromText EventTagStatus where
-    fromText = \case
-        "DISABLED" -> Just Disabled
-        "ENABLED" -> Just Enabled
-        _ -> Nothing
-
-instance ToText EventTagStatus where
-    toText = \case
-        Disabled -> "DISABLED"
-        Enabled -> "ENABLED"
-
-instance FromJSON EventTagStatus where
-    parseJSON = parseJSONText "EventTagStatus"
-
-instance ToJSON EventTagStatus where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data SitesListSortField
-    = SLSFID
-      -- ^ @ID@
-    | SLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable SitesListSortField
-
-instance FromText SitesListSortField where
-    fromText = \case
-        "ID" -> Just SLSFID
-        "NAME" -> Just SLSFName
-        _ -> Nothing
-
-instance ToText SitesListSortField where
-    toText = \case
-        SLSFID -> "ID"
-        SLSFName -> "NAME"
-
-instance FromJSON SitesListSortField where
-    parseJSON = parseJSONText "SitesListSortField"
-
-instance ToJSON SitesListSortField where
-    toJSON = toJSONText
-
--- | Select only event tags with the specified event tag types. Event tag
--- types can be used to specify whether to use a third-party pixel, a
--- third-party JavaScript URL, or a third-party click-through URL for
--- either impression or click tracking.
-data EventTagsListEventTagTypes
-    = ClickThroughEventTag
-      -- ^ @CLICK_THROUGH_EVENT_TAG@
-    | ImpressionImageEventTag
-      -- ^ @IMPRESSION_IMAGE_EVENT_TAG@
-    | ImpressionJavascriptEventTag
-      -- ^ @IMPRESSION_JAVASCRIPT_EVENT_TAG@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable EventTagsListEventTagTypes
-
-instance FromText EventTagsListEventTagTypes where
-    fromText = \case
-        "CLICK_THROUGH_EVENT_TAG" -> Just ClickThroughEventTag
-        "IMPRESSION_IMAGE_EVENT_TAG" -> Just ImpressionImageEventTag
-        "IMPRESSION_JAVASCRIPT_EVENT_TAG" -> Just ImpressionJavascriptEventTag
-        _ -> Nothing
-
-instance ToText EventTagsListEventTagTypes where
-    toText = \case
-        ClickThroughEventTag -> "CLICK_THROUGH_EVENT_TAG"
-        ImpressionImageEventTag -> "IMPRESSION_IMAGE_EVENT_TAG"
-        ImpressionJavascriptEventTag -> "IMPRESSION_JAVASCRIPT_EVENT_TAG"
-
-instance FromJSON EventTagsListEventTagTypes where
-    parseJSON = parseJSONText "EventTagsListEventTagTypes"
-
-instance ToJSON EventTagsListEventTagTypes where
-    toJSON = toJSONText
-
--- | The status of the report file.
-data FileStatus
-    = Cancelled
-      -- ^ @CANCELLED@
-    | Failed
-      -- ^ @FAILED@
-    | Processing
-      -- ^ @PROCESSING@
-    | ReportAvailable
-      -- ^ @REPORT_AVAILABLE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FileStatus
-
-instance FromText FileStatus where
-    fromText = \case
-        "CANCELLED" -> Just Cancelled
-        "FAILED" -> Just Failed
-        "PROCESSING" -> Just Processing
-        "REPORT_AVAILABLE" -> Just ReportAvailable
-        _ -> Nothing
-
-instance ToText FileStatus where
-    toText = \case
-        Cancelled -> "CANCELLED"
-        Failed -> "FAILED"
-        Processing -> "PROCESSING"
-        ReportAvailable -> "REPORT_AVAILABLE"
-
-instance FromJSON FileStatus where
-    parseJSON = parseJSONText "FileStatus"
-
-instance ToJSON FileStatus where
-    toJSON = toJSONText
-
--- | Artwork type used by the creative.This is a read-only field.
-data CreativeCustomEventArtworkType
-    = ArtworkTypeFlash
-      -- ^ @ARTWORK_TYPE_FLASH@
-    | ArtworkTypeHTML5
-      -- ^ @ARTWORK_TYPE_HTML5@
-    | ArtworkTypeMixed
-      -- ^ @ARTWORK_TYPE_MIXED@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeCustomEventArtworkType
-
-instance FromText CreativeCustomEventArtworkType where
-    fromText = \case
-        "ARTWORK_TYPE_FLASH" -> Just ArtworkTypeFlash
-        "ARTWORK_TYPE_HTML5" -> Just ArtworkTypeHTML5
-        "ARTWORK_TYPE_MIXED" -> Just ArtworkTypeMixed
-        _ -> Nothing
-
-instance ToText CreativeCustomEventArtworkType where
-    toText = \case
-        ArtworkTypeFlash -> "ARTWORK_TYPE_FLASH"
-        ArtworkTypeHTML5 -> "ARTWORK_TYPE_HTML5"
-        ArtworkTypeMixed -> "ARTWORK_TYPE_MIXED"
-
-instance FromJSON CreativeCustomEventArtworkType where
-    parseJSON = parseJSONText "CreativeCustomEventArtworkType"
-
-instance ToJSON CreativeCustomEventArtworkType where
-    toJSON = toJSONText
-
--- | Types of attribution options for natural search conversions.
-data FloodlightConfigurationNATuralSearchConversionAttributionOption
-    = ExcludeNATuralSearchConversionAttribution
-      -- ^ @EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION@
-    | IncludeNATuralSearchConversionAttribution
-      -- ^ @INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION@
-    | IncludeNATuralSearchTieredConversionAttribution
-      -- ^ @INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightConfigurationNATuralSearchConversionAttributionOption
-
-instance FromText FloodlightConfigurationNATuralSearchConversionAttributionOption where
-    fromText = \case
-        "EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION" -> Just ExcludeNATuralSearchConversionAttribution
-        "INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION" -> Just IncludeNATuralSearchConversionAttribution
-        "INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION" -> Just IncludeNATuralSearchTieredConversionAttribution
-        _ -> Nothing
-
-instance ToText FloodlightConfigurationNATuralSearchConversionAttributionOption where
-    toText = \case
-        ExcludeNATuralSearchConversionAttribution -> "EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION"
-        IncludeNATuralSearchConversionAttribution -> "INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION"
-        IncludeNATuralSearchTieredConversionAttribution -> "INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION"
-
-instance FromJSON FloodlightConfigurationNATuralSearchConversionAttributionOption where
-    parseJSON = parseJSONText "FloodlightConfigurationNATuralSearchConversionAttributionOption"
-
-instance ToJSON FloodlightConfigurationNATuralSearchConversionAttributionOption where
-    toJSON = toJSONText
-
--- | Artwork type of rich media creative. This is a read-only field.
--- Applicable to the following creative types: all RICH_MEDIA.
-data CreativeAssetArtworkType
-    = CAATArtworkTypeFlash
-      -- ^ @ARTWORK_TYPE_FLASH@
-    | CAATArtworkTypeHTML5
-      -- ^ @ARTWORK_TYPE_HTML5@
-    | CAATArtworkTypeMixed
-      -- ^ @ARTWORK_TYPE_MIXED@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetArtworkType
-
-instance FromText CreativeAssetArtworkType where
-    fromText = \case
-        "ARTWORK_TYPE_FLASH" -> Just CAATArtworkTypeFlash
-        "ARTWORK_TYPE_HTML5" -> Just CAATArtworkTypeHTML5
-        "ARTWORK_TYPE_MIXED" -> Just CAATArtworkTypeMixed
-        _ -> Nothing
-
-instance ToText CreativeAssetArtworkType where
-    toText = \case
-        CAATArtworkTypeFlash -> "ARTWORK_TYPE_FLASH"
-        CAATArtworkTypeHTML5 -> "ARTWORK_TYPE_HTML5"
-        CAATArtworkTypeMixed -> "ARTWORK_TYPE_MIXED"
-
-instance FromJSON CreativeAssetArtworkType where
-    parseJSON = parseJSONText "CreativeAssetArtworkType"
-
-instance ToJSON CreativeAssetArtworkType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data FloodlightActivitiesListSortOrder
-    = FALSOAscending
-      -- ^ @ASCENDING@
-    | FALSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivitiesListSortOrder
-
-instance FromText FloodlightActivitiesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just FALSOAscending
-        "DESCENDING" -> Just FALSODescending
-        _ -> Nothing
-
-instance ToText FloodlightActivitiesListSortOrder where
-    toText = \case
-        FALSOAscending -> "ASCENDING"
-        FALSODescending -> "DESCENDING"
-
-instance FromJSON FloodlightActivitiesListSortOrder where
-    parseJSON = parseJSONText "FloodlightActivitiesListSortOrder"
-
-instance ToJSON FloodlightActivitiesListSortOrder where
-    toJSON = toJSONText
-
--- | The output format of the report. Only available once the file is
--- available.
-data FileFormat
-    = CSV
-      -- ^ @CSV@
-    | Excel
-      -- ^ @EXCEL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FileFormat
-
-instance FromText FileFormat where
-    fromText = \case
-        "CSV" -> Just CSV
-        "EXCEL" -> Just Excel
-        _ -> Nothing
-
-instance ToText FileFormat where
-    toText = \case
-        CSV -> "CSV"
-        Excel -> "EXCEL"
-
-instance FromJSON FileFormat where
-    parseJSON = parseJSONText "FileFormat"
-
-instance ToJSON FileFormat where
-    toJSON = toJSONText
-
--- | Placement pricing type. This field is required on insertion.
-data PricingSchedulePricingType
-    = PricingTypeCpa
-      -- ^ @PRICING_TYPE_CPA@
-    | PricingTypeCpc
-      -- ^ @PRICING_TYPE_CPC@
-    | PricingTypeCpm
-      -- ^ @PRICING_TYPE_CPM@
-    | PricingTypeFlatRateClicks
-      -- ^ @PRICING_TYPE_FLAT_RATE_CLICKS@
-    | PricingTypeFlatRateImpressions
-      -- ^ @PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PricingSchedulePricingType
-
-instance FromText PricingSchedulePricingType where
-    fromText = \case
-        "PRICING_TYPE_CPA" -> Just PricingTypeCpa
-        "PRICING_TYPE_CPC" -> Just PricingTypeCpc
-        "PRICING_TYPE_CPM" -> Just PricingTypeCpm
-        "PRICING_TYPE_FLAT_RATE_CLICKS" -> Just PricingTypeFlatRateClicks
-        "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Just PricingTypeFlatRateImpressions
-        _ -> Nothing
-
-instance ToText PricingSchedulePricingType where
-    toText = \case
-        PricingTypeCpa -> "PRICING_TYPE_CPA"
-        PricingTypeCpc -> "PRICING_TYPE_CPC"
-        PricingTypeCpm -> "PRICING_TYPE_CPM"
-        PricingTypeFlatRateClicks -> "PRICING_TYPE_FLAT_RATE_CLICKS"
-        PricingTypeFlatRateImpressions -> "PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
-
-instance FromJSON PricingSchedulePricingType where
-    parseJSON = parseJSONText "PricingSchedulePricingType"
-
-instance ToJSON PricingSchedulePricingType where
-    toJSON = toJSONText
-
--- | Target type used by the event.
-data CreativeCustomEventTargetType
-    = TargetBlank
-      -- ^ @TARGET_BLANK@
-    | TargetParent
-      -- ^ @TARGET_PARENT@
-    | TargetPopup
-      -- ^ @TARGET_POPUP@
-    | TargetSelf
-      -- ^ @TARGET_SELF@
-    | TargetTop
-      -- ^ @TARGET_TOP@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeCustomEventTargetType
-
-instance FromText CreativeCustomEventTargetType where
-    fromText = \case
-        "TARGET_BLANK" -> Just TargetBlank
-        "TARGET_PARENT" -> Just TargetParent
-        "TARGET_POPUP" -> Just TargetPopup
-        "TARGET_SELF" -> Just TargetSelf
-        "TARGET_TOP" -> Just TargetTop
-        _ -> Nothing
-
-instance ToText CreativeCustomEventTargetType where
-    toText = \case
-        TargetBlank -> "TARGET_BLANK"
-        TargetParent -> "TARGET_PARENT"
-        TargetPopup -> "TARGET_POPUP"
-        TargetSelf -> "TARGET_SELF"
-        TargetTop -> "TARGET_TOP"
-
-instance FromJSON CreativeCustomEventTargetType where
-    parseJSON = parseJSONText "CreativeCustomEventTargetType"
-
-instance ToJSON CreativeCustomEventTargetType where
-    toJSON = toJSONText
-
--- | The scope that defines which results are returned, default is \'MINE\'.
-data ReportsListScope
-    = All
-      -- ^ @ALL@
-      -- All reports in account.
-    | Mine
-      -- ^ @MINE@
-      -- My reports.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportsListScope
-
-instance FromText ReportsListScope where
-    fromText = \case
-        "ALL" -> Just All
-        "MINE" -> Just Mine
-        _ -> Nothing
-
-instance ToText ReportsListScope where
-    toText = \case
-        All -> "ALL"
-        Mine -> "MINE"
-
-instance FromJSON ReportsListScope where
-    parseJSON = parseJSONText "ReportsListScope"
-
-instance ToJSON ReportsListScope where
-    toJSON = toJSONText
-
--- | Duration type for which an asset will be displayed. Applicable to the
--- following creative types: all RICH_MEDIA.
-data CreativeAssetDurationType
-    = AssetDurationTypeAuto
-      -- ^ @ASSET_DURATION_TYPE_AUTO@
-    | AssetDurationTypeCustom
-      -- ^ @ASSET_DURATION_TYPE_CUSTOM@
-    | AssetDurationTypeNone
-      -- ^ @ASSET_DURATION_TYPE_NONE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetDurationType
-
-instance FromText CreativeAssetDurationType where
-    fromText = \case
-        "ASSET_DURATION_TYPE_AUTO" -> Just AssetDurationTypeAuto
-        "ASSET_DURATION_TYPE_CUSTOM" -> Just AssetDurationTypeCustom
-        "ASSET_DURATION_TYPE_NONE" -> Just AssetDurationTypeNone
-        _ -> Nothing
-
-instance ToText CreativeAssetDurationType where
-    toText = \case
-        AssetDurationTypeAuto -> "ASSET_DURATION_TYPE_AUTO"
-        AssetDurationTypeCustom -> "ASSET_DURATION_TYPE_CUSTOM"
-        AssetDurationTypeNone -> "ASSET_DURATION_TYPE_NONE"
-
-instance FromJSON CreativeAssetDurationType where
-    parseJSON = parseJSONText "CreativeAssetDurationType"
-
-instance ToJSON CreativeAssetDurationType where
-    toJSON = toJSONText
-
--- | Product from which this targetable remarketing list was originated.
-data TargetableRemarketingListListSource
-    = RemarketingListSourceDBm
-      -- ^ @REMARKETING_LIST_SOURCE_DBM@
-    | RemarketingListSourceDfa
-      -- ^ @REMARKETING_LIST_SOURCE_DFA@
-    | RemarketingListSourceDmp
-      -- ^ @REMARKETING_LIST_SOURCE_DMP@
-    | RemarketingListSourceGa
-      -- ^ @REMARKETING_LIST_SOURCE_GA@
-    | RemarketingListSourceOther
-      -- ^ @REMARKETING_LIST_SOURCE_OTHER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable TargetableRemarketingListListSource
-
-instance FromText TargetableRemarketingListListSource where
-    fromText = \case
-        "REMARKETING_LIST_SOURCE_DBM" -> Just RemarketingListSourceDBm
-        "REMARKETING_LIST_SOURCE_DFA" -> Just RemarketingListSourceDfa
-        "REMARKETING_LIST_SOURCE_DMP" -> Just RemarketingListSourceDmp
-        "REMARKETING_LIST_SOURCE_GA" -> Just RemarketingListSourceGa
-        "REMARKETING_LIST_SOURCE_OTHER" -> Just RemarketingListSourceOther
-        _ -> Nothing
-
-instance ToText TargetableRemarketingListListSource where
-    toText = \case
-        RemarketingListSourceDBm -> "REMARKETING_LIST_SOURCE_DBM"
-        RemarketingListSourceDfa -> "REMARKETING_LIST_SOURCE_DFA"
-        RemarketingListSourceDmp -> "REMARKETING_LIST_SOURCE_DMP"
-        RemarketingListSourceGa -> "REMARKETING_LIST_SOURCE_GA"
-        RemarketingListSourceOther -> "REMARKETING_LIST_SOURCE_OTHER"
-
-instance FromJSON TargetableRemarketingListListSource where
-    parseJSON = parseJSONText "TargetableRemarketingListListSource"
-
-instance ToJSON TargetableRemarketingListListSource where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data CreativeGroupsListSortField
-    = CGLSFID
-      -- ^ @ID@
-    | CGLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeGroupsListSortField
-
-instance FromText CreativeGroupsListSortField where
-    fromText = \case
-        "ID" -> Just CGLSFID
-        "NAME" -> Just CGLSFName
-        _ -> Nothing
-
-instance ToText CreativeGroupsListSortField where
-    toText = \case
-        CGLSFID -> "ID"
-        CGLSFName -> "NAME"
-
-instance FromJSON CreativeGroupsListSortField where
-    parseJSON = parseJSONText "CreativeGroupsListSortField"
-
-instance ToJSON CreativeGroupsListSortField where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data PlacementsListSortField
-    = PLSFID
-      -- ^ @ID@
-    | PLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementsListSortField
-
-instance FromText PlacementsListSortField where
-    fromText = \case
-        "ID" -> Just PLSFID
-        "NAME" -> Just PLSFName
-        _ -> Nothing
-
-instance ToText PlacementsListSortField where
-    toText = \case
-        PLSFID -> "ID"
-        PLSFName -> "NAME"
-
-instance FromJSON PlacementsListSortField where
-    parseJSON = parseJSONText "PlacementsListSortField"
-
-instance ToJSON PlacementsListSortField where
-    toJSON = toJSONText
-
-data CreativeBackupImageFeaturesItem
-    = CBIFIApplicationCache
-      -- ^ @APPLICATION_CACHE@
-    | CBIFIAudio
-      -- ^ @AUDIO@
-    | CBIFICanvas
-      -- ^ @CANVAS@
-    | CBIFICanvasText
-      -- ^ @CANVAS_TEXT@
-    | CBIFICssAnimations
-      -- ^ @CSS_ANIMATIONS@
-    | CBIFICssBackgRoundSize
-      -- ^ @CSS_BACKGROUND_SIZE@
-    | CBIFICssBOrderImage
-      -- ^ @CSS_BORDER_IMAGE@
-    | CBIFICssBOrderRadius
-      -- ^ @CSS_BORDER_RADIUS@
-    | CBIFICssBoxShadow
-      -- ^ @CSS_BOX_SHADOW@
-    | CBIFICssColumns
-      -- ^ @CSS_COLUMNS@
-    | CBIFICssFlexBox
-      -- ^ @CSS_FLEX_BOX@
-    | CBIFICssFontFace
-      -- ^ @CSS_FONT_FACE@
-    | CBIFICssGeneratedContent
-      -- ^ @CSS_GENERATED_CONTENT@
-    | CBIFICssGradients
-      -- ^ @CSS_GRADIENTS@
-    | CBIFICssHsla
-      -- ^ @CSS_HSLA@
-    | CBIFICssMultipleBgs
-      -- ^ @CSS_MULTIPLE_BGS@
-    | CBIFICssOpacity
-      -- ^ @CSS_OPACITY@
-    | CBIFICssReflections
-      -- ^ @CSS_REFLECTIONS@
-    | CBIFICssRgba
-      -- ^ @CSS_RGBA@
-    | CBIFICssTextShadow
-      -- ^ @CSS_TEXT_SHADOW@
-    | CBIFICssTransforms
-      -- ^ @CSS_TRANSFORMS@
-    | CBIFICssTRANSFORMS3D
-      -- ^ @CSS_TRANSFORMS3D@
-    | CBIFICssTransitions
-      -- ^ @CSS_TRANSITIONS@
-    | CBIFIDragAndDrop
-      -- ^ @DRAG_AND_DROP@
-    | CBIFIGeoLocation
-      -- ^ @GEO_LOCATION@
-    | CBIFIHashChange
-      -- ^ @HASH_CHANGE@
-    | CBIFIHistory
-      -- ^ @HISTORY@
-    | CBIFIIndexedDB
-      -- ^ @INDEXED_DB@
-    | CBIFIInlineSvg
-      -- ^ @INLINE_SVG@
-    | CBIFIInputAttrAutocomplete
-      -- ^ @INPUT_ATTR_AUTOCOMPLETE@
-    | CBIFIInputAttrAutofocus
-      -- ^ @INPUT_ATTR_AUTOFOCUS@
-    | CBIFIInputAttrList
-      -- ^ @INPUT_ATTR_LIST@
-    | CBIFIInputAttrMax
-      -- ^ @INPUT_ATTR_MAX@
-    | CBIFIInputAttrMin
-      -- ^ @INPUT_ATTR_MIN@
-    | CBIFIInputAttrMultiple
-      -- ^ @INPUT_ATTR_MULTIPLE@
-    | CBIFIInputAttrPattern
-      -- ^ @INPUT_ATTR_PATTERN@
-    | CBIFIInputAttrPlaceholder
-      -- ^ @INPUT_ATTR_PLACEHOLDER@
-    | CBIFIInputAttrRequired
-      -- ^ @INPUT_ATTR_REQUIRED@
-    | CBIFIInputAttrStep
-      -- ^ @INPUT_ATTR_STEP@
-    | CBIFIInputTypeColor
-      -- ^ @INPUT_TYPE_COLOR@
-    | CBIFIInputTypeDate
-      -- ^ @INPUT_TYPE_DATE@
-    | CBIFIInputTypeDatetime
-      -- ^ @INPUT_TYPE_DATETIME@
-    | CBIFIInputTypeDatetimeLocal
-      -- ^ @INPUT_TYPE_DATETIME_LOCAL@
-    | CBIFIInputTypeEmail
-      -- ^ @INPUT_TYPE_EMAIL@
-    | CBIFIInputTypeMonth
-      -- ^ @INPUT_TYPE_MONTH@
-    | CBIFIInputTypeNumber
-      -- ^ @INPUT_TYPE_NUMBER@
-    | CBIFIInputTypeRange
-      -- ^ @INPUT_TYPE_RANGE@
-    | CBIFIInputTypeSearch
-      -- ^ @INPUT_TYPE_SEARCH@
-    | CBIFIInputTypeTel
-      -- ^ @INPUT_TYPE_TEL@
-    | CBIFIInputTypeTime
-      -- ^ @INPUT_TYPE_TIME@
-    | CBIFIInputTypeURL
-      -- ^ @INPUT_TYPE_URL@
-    | CBIFIInputTypeWeek
-      -- ^ @INPUT_TYPE_WEEK@
-    | CBIFILocalStorage
-      -- ^ @LOCAL_STORAGE@
-    | CBIFIPostMessage
-      -- ^ @POST_MESSAGE@
-    | CBIFISessionStorage
-      -- ^ @SESSION_STORAGE@
-    | CBIFISmil
-      -- ^ @SMIL@
-    | CBIFISvgClipPaths
-      -- ^ @SVG_CLIP_PATHS@
-    | CBIFISvgFeImage
-      -- ^ @SVG_FE_IMAGE@
-    | CBIFISvgFilters
-      -- ^ @SVG_FILTERS@
-    | CBIFISvgHref
-      -- ^ @SVG_HREF@
-    | CBIFITouch
-      -- ^ @TOUCH@
-    | CBIFIVideo
-      -- ^ @VIDEO@
-    | CBIFIWebgl
-      -- ^ @WEBGL@
-    | CBIFIWebSockets
-      -- ^ @WEB_SOCKETS@
-    | CBIFIWebSQLDatabase
-      -- ^ @WEB_SQL_DATABASE@
-    | CBIFIWebWorkers
-      -- ^ @WEB_WORKERS@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeBackupImageFeaturesItem
-
-instance FromText CreativeBackupImageFeaturesItem where
-    fromText = \case
-        "APPLICATION_CACHE" -> Just CBIFIApplicationCache
-        "AUDIO" -> Just CBIFIAudio
-        "CANVAS" -> Just CBIFICanvas
-        "CANVAS_TEXT" -> Just CBIFICanvasText
-        "CSS_ANIMATIONS" -> Just CBIFICssAnimations
-        "CSS_BACKGROUND_SIZE" -> Just CBIFICssBackgRoundSize
-        "CSS_BORDER_IMAGE" -> Just CBIFICssBOrderImage
-        "CSS_BORDER_RADIUS" -> Just CBIFICssBOrderRadius
-        "CSS_BOX_SHADOW" -> Just CBIFICssBoxShadow
-        "CSS_COLUMNS" -> Just CBIFICssColumns
-        "CSS_FLEX_BOX" -> Just CBIFICssFlexBox
-        "CSS_FONT_FACE" -> Just CBIFICssFontFace
-        "CSS_GENERATED_CONTENT" -> Just CBIFICssGeneratedContent
-        "CSS_GRADIENTS" -> Just CBIFICssGradients
-        "CSS_HSLA" -> Just CBIFICssHsla
-        "CSS_MULTIPLE_BGS" -> Just CBIFICssMultipleBgs
-        "CSS_OPACITY" -> Just CBIFICssOpacity
-        "CSS_REFLECTIONS" -> Just CBIFICssReflections
-        "CSS_RGBA" -> Just CBIFICssRgba
-        "CSS_TEXT_SHADOW" -> Just CBIFICssTextShadow
-        "CSS_TRANSFORMS" -> Just CBIFICssTransforms
-        "CSS_TRANSFORMS3D" -> Just CBIFICssTRANSFORMS3D
-        "CSS_TRANSITIONS" -> Just CBIFICssTransitions
-        "DRAG_AND_DROP" -> Just CBIFIDragAndDrop
-        "GEO_LOCATION" -> Just CBIFIGeoLocation
-        "HASH_CHANGE" -> Just CBIFIHashChange
-        "HISTORY" -> Just CBIFIHistory
-        "INDEXED_DB" -> Just CBIFIIndexedDB
-        "INLINE_SVG" -> Just CBIFIInlineSvg
-        "INPUT_ATTR_AUTOCOMPLETE" -> Just CBIFIInputAttrAutocomplete
-        "INPUT_ATTR_AUTOFOCUS" -> Just CBIFIInputAttrAutofocus
-        "INPUT_ATTR_LIST" -> Just CBIFIInputAttrList
-        "INPUT_ATTR_MAX" -> Just CBIFIInputAttrMax
-        "INPUT_ATTR_MIN" -> Just CBIFIInputAttrMin
-        "INPUT_ATTR_MULTIPLE" -> Just CBIFIInputAttrMultiple
-        "INPUT_ATTR_PATTERN" -> Just CBIFIInputAttrPattern
-        "INPUT_ATTR_PLACEHOLDER" -> Just CBIFIInputAttrPlaceholder
-        "INPUT_ATTR_REQUIRED" -> Just CBIFIInputAttrRequired
-        "INPUT_ATTR_STEP" -> Just CBIFIInputAttrStep
-        "INPUT_TYPE_COLOR" -> Just CBIFIInputTypeColor
-        "INPUT_TYPE_DATE" -> Just CBIFIInputTypeDate
-        "INPUT_TYPE_DATETIME" -> Just CBIFIInputTypeDatetime
-        "INPUT_TYPE_DATETIME_LOCAL" -> Just CBIFIInputTypeDatetimeLocal
-        "INPUT_TYPE_EMAIL" -> Just CBIFIInputTypeEmail
-        "INPUT_TYPE_MONTH" -> Just CBIFIInputTypeMonth
-        "INPUT_TYPE_NUMBER" -> Just CBIFIInputTypeNumber
-        "INPUT_TYPE_RANGE" -> Just CBIFIInputTypeRange
-        "INPUT_TYPE_SEARCH" -> Just CBIFIInputTypeSearch
-        "INPUT_TYPE_TEL" -> Just CBIFIInputTypeTel
-        "INPUT_TYPE_TIME" -> Just CBIFIInputTypeTime
-        "INPUT_TYPE_URL" -> Just CBIFIInputTypeURL
-        "INPUT_TYPE_WEEK" -> Just CBIFIInputTypeWeek
-        "LOCAL_STORAGE" -> Just CBIFILocalStorage
-        "POST_MESSAGE" -> Just CBIFIPostMessage
-        "SESSION_STORAGE" -> Just CBIFISessionStorage
-        "SMIL" -> Just CBIFISmil
-        "SVG_CLIP_PATHS" -> Just CBIFISvgClipPaths
-        "SVG_FE_IMAGE" -> Just CBIFISvgFeImage
-        "SVG_FILTERS" -> Just CBIFISvgFilters
-        "SVG_HREF" -> Just CBIFISvgHref
-        "TOUCH" -> Just CBIFITouch
-        "VIDEO" -> Just CBIFIVideo
-        "WEBGL" -> Just CBIFIWebgl
-        "WEB_SOCKETS" -> Just CBIFIWebSockets
-        "WEB_SQL_DATABASE" -> Just CBIFIWebSQLDatabase
-        "WEB_WORKERS" -> Just CBIFIWebWorkers
-        _ -> Nothing
-
-instance ToText CreativeBackupImageFeaturesItem where
-    toText = \case
-        CBIFIApplicationCache -> "APPLICATION_CACHE"
-        CBIFIAudio -> "AUDIO"
-        CBIFICanvas -> "CANVAS"
-        CBIFICanvasText -> "CANVAS_TEXT"
-        CBIFICssAnimations -> "CSS_ANIMATIONS"
-        CBIFICssBackgRoundSize -> "CSS_BACKGROUND_SIZE"
-        CBIFICssBOrderImage -> "CSS_BORDER_IMAGE"
-        CBIFICssBOrderRadius -> "CSS_BORDER_RADIUS"
-        CBIFICssBoxShadow -> "CSS_BOX_SHADOW"
-        CBIFICssColumns -> "CSS_COLUMNS"
-        CBIFICssFlexBox -> "CSS_FLEX_BOX"
-        CBIFICssFontFace -> "CSS_FONT_FACE"
-        CBIFICssGeneratedContent -> "CSS_GENERATED_CONTENT"
-        CBIFICssGradients -> "CSS_GRADIENTS"
-        CBIFICssHsla -> "CSS_HSLA"
-        CBIFICssMultipleBgs -> "CSS_MULTIPLE_BGS"
-        CBIFICssOpacity -> "CSS_OPACITY"
-        CBIFICssReflections -> "CSS_REFLECTIONS"
-        CBIFICssRgba -> "CSS_RGBA"
-        CBIFICssTextShadow -> "CSS_TEXT_SHADOW"
-        CBIFICssTransforms -> "CSS_TRANSFORMS"
-        CBIFICssTRANSFORMS3D -> "CSS_TRANSFORMS3D"
-        CBIFICssTransitions -> "CSS_TRANSITIONS"
-        CBIFIDragAndDrop -> "DRAG_AND_DROP"
-        CBIFIGeoLocation -> "GEO_LOCATION"
-        CBIFIHashChange -> "HASH_CHANGE"
-        CBIFIHistory -> "HISTORY"
-        CBIFIIndexedDB -> "INDEXED_DB"
-        CBIFIInlineSvg -> "INLINE_SVG"
-        CBIFIInputAttrAutocomplete -> "INPUT_ATTR_AUTOCOMPLETE"
-        CBIFIInputAttrAutofocus -> "INPUT_ATTR_AUTOFOCUS"
-        CBIFIInputAttrList -> "INPUT_ATTR_LIST"
-        CBIFIInputAttrMax -> "INPUT_ATTR_MAX"
-        CBIFIInputAttrMin -> "INPUT_ATTR_MIN"
-        CBIFIInputAttrMultiple -> "INPUT_ATTR_MULTIPLE"
-        CBIFIInputAttrPattern -> "INPUT_ATTR_PATTERN"
-        CBIFIInputAttrPlaceholder -> "INPUT_ATTR_PLACEHOLDER"
-        CBIFIInputAttrRequired -> "INPUT_ATTR_REQUIRED"
-        CBIFIInputAttrStep -> "INPUT_ATTR_STEP"
-        CBIFIInputTypeColor -> "INPUT_TYPE_COLOR"
-        CBIFIInputTypeDate -> "INPUT_TYPE_DATE"
-        CBIFIInputTypeDatetime -> "INPUT_TYPE_DATETIME"
-        CBIFIInputTypeDatetimeLocal -> "INPUT_TYPE_DATETIME_LOCAL"
-        CBIFIInputTypeEmail -> "INPUT_TYPE_EMAIL"
-        CBIFIInputTypeMonth -> "INPUT_TYPE_MONTH"
-        CBIFIInputTypeNumber -> "INPUT_TYPE_NUMBER"
-        CBIFIInputTypeRange -> "INPUT_TYPE_RANGE"
-        CBIFIInputTypeSearch -> "INPUT_TYPE_SEARCH"
-        CBIFIInputTypeTel -> "INPUT_TYPE_TEL"
-        CBIFIInputTypeTime -> "INPUT_TYPE_TIME"
-        CBIFIInputTypeURL -> "INPUT_TYPE_URL"
-        CBIFIInputTypeWeek -> "INPUT_TYPE_WEEK"
-        CBIFILocalStorage -> "LOCAL_STORAGE"
-        CBIFIPostMessage -> "POST_MESSAGE"
-        CBIFISessionStorage -> "SESSION_STORAGE"
-        CBIFISmil -> "SMIL"
-        CBIFISvgClipPaths -> "SVG_CLIP_PATHS"
-        CBIFISvgFeImage -> "SVG_FE_IMAGE"
-        CBIFISvgFilters -> "SVG_FILTERS"
-        CBIFISvgHref -> "SVG_HREF"
-        CBIFITouch -> "TOUCH"
-        CBIFIVideo -> "VIDEO"
-        CBIFIWebgl -> "WEBGL"
-        CBIFIWebSockets -> "WEB_SOCKETS"
-        CBIFIWebSQLDatabase -> "WEB_SQL_DATABASE"
-        CBIFIWebWorkers -> "WEB_WORKERS"
-
-instance FromJSON CreativeBackupImageFeaturesItem where
-    parseJSON = parseJSONText "CreativeBackupImageFeaturesItem"
-
-instance ToJSON CreativeBackupImageFeaturesItem where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data AdvertisersListSortOrder
-    = ALSOAscending
-      -- ^ @ASCENDING@
-    | ALSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdvertisersListSortOrder
-
-instance FromText AdvertisersListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just ALSOAscending
-        "DESCENDING" -> Just ALSODescending
-        _ -> Nothing
-
-instance ToText AdvertisersListSortOrder where
-    toText = \case
-        ALSOAscending -> "ASCENDING"
-        ALSODescending -> "DESCENDING"
-
-instance FromJSON AdvertisersListSortOrder where
-    parseJSON = parseJSONText "AdvertisersListSortOrder"
-
-instance ToJSON AdvertisersListSortOrder where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data CreativeFieldsListSortField
-    = CFLSFID
-      -- ^ @ID@
-    | CFLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeFieldsListSortField
-
-instance FromText CreativeFieldsListSortField where
-    fromText = \case
-        "ID" -> Just CFLSFID
-        "NAME" -> Just CFLSFName
-        _ -> Nothing
-
-instance ToText CreativeFieldsListSortField where
-    toText = \case
-        CFLSFID -> "ID"
-        CFLSFName -> "NAME"
-
-instance FromJSON CreativeFieldsListSortField where
-    parseJSON = parseJSONText "CreativeFieldsListSortField"
-
-instance ToJSON CreativeFieldsListSortField where
-    toJSON = toJSONText
-
--- | Variable name in the tag. This is a required field.
-data UserDefinedVariableConfigurationVariableType
-    = U1
-      -- ^ @U1@
-    | U10
-      -- ^ @U10@
-    | U11
-      -- ^ @U11@
-    | U12
-      -- ^ @U12@
-    | U13
-      -- ^ @U13@
-    | U14
-      -- ^ @U14@
-    | U15
-      -- ^ @U15@
-    | U16
-      -- ^ @U16@
-    | U17
-      -- ^ @U17@
-    | U18
-      -- ^ @U18@
-    | U19
-      -- ^ @U19@
-    | U2
-      -- ^ @U2@
-    | U20
-      -- ^ @U20@
-    | U3
-      -- ^ @U3@
-    | U4
-      -- ^ @U4@
-    | U5
-      -- ^ @U5@
-    | U6
-      -- ^ @U6@
-    | U7
-      -- ^ @U7@
-    | U8
-      -- ^ @U8@
-    | U9
-      -- ^ @U9@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable UserDefinedVariableConfigurationVariableType
-
-instance FromText UserDefinedVariableConfigurationVariableType where
-    fromText = \case
-        "U1" -> Just U1
-        "U10" -> Just U10
-        "U11" -> Just U11
-        "U12" -> Just U12
-        "U13" -> Just U13
-        "U14" -> Just U14
-        "U15" -> Just U15
-        "U16" -> Just U16
-        "U17" -> Just U17
-        "U18" -> Just U18
-        "U19" -> Just U19
-        "U2" -> Just U2
-        "U20" -> Just U20
-        "U3" -> Just U3
-        "U4" -> Just U4
-        "U5" -> Just U5
-        "U6" -> Just U6
-        "U7" -> Just U7
-        "U8" -> Just U8
-        "U9" -> Just U9
-        _ -> Nothing
-
-instance ToText UserDefinedVariableConfigurationVariableType where
-    toText = \case
-        U1 -> "U1"
-        U10 -> "U10"
-        U11 -> "U11"
-        U12 -> "U12"
-        U13 -> "U13"
-        U14 -> "U14"
-        U15 -> "U15"
-        U16 -> "U16"
-        U17 -> "U17"
-        U18 -> "U18"
-        U19 -> "U19"
-        U2 -> "U2"
-        U20 -> "U20"
-        U3 -> "U3"
-        U4 -> "U4"
-        U5 -> "U5"
-        U6 -> "U6"
-        U7 -> "U7"
-        U8 -> "U8"
-        U9 -> "U9"
-
-instance FromJSON UserDefinedVariableConfigurationVariableType where
-    parseJSON = parseJSONText "UserDefinedVariableConfigurationVariableType"
-
-instance ToJSON UserDefinedVariableConfigurationVariableType where
-    toJSON = toJSONText
-
--- | Position in the browser where the window will open.
-data FsCommandPositionOption
-    = Centered
-      -- ^ @CENTERED@
-    | DistanceFromTopLeftCorner
-      -- ^ @DISTANCE_FROM_TOP_LEFT_CORNER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FsCommandPositionOption
-
-instance FromText FsCommandPositionOption where
-    fromText = \case
-        "CENTERED" -> Just Centered
-        "DISTANCE_FROM_TOP_LEFT_CORNER" -> Just DistanceFromTopLeftCorner
-        _ -> Nothing
-
-instance ToText FsCommandPositionOption where
-    toText = \case
-        Centered -> "CENTERED"
-        DistanceFromTopLeftCorner -> "DISTANCE_FROM_TOP_LEFT_CORNER"
-
-instance FromJSON FsCommandPositionOption where
-    parseJSON = parseJSONText "FsCommandPositionOption"
-
-instance ToJSON FsCommandPositionOption where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data UserRolesListSortOrder
-    = URLSOAscending
-      -- ^ @ASCENDING@
-    | URLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable UserRolesListSortOrder
-
-instance FromText UserRolesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just URLSOAscending
-        "DESCENDING" -> Just URLSODescending
-        _ -> Nothing
-
-instance ToText UserRolesListSortOrder where
-    toText = \case
-        URLSOAscending -> "ASCENDING"
-        URLSODescending -> "DESCENDING"
-
-instance FromJSON UserRolesListSortOrder where
-    parseJSON = parseJSONText "UserRolesListSortOrder"
-
-instance ToJSON UserRolesListSortOrder where
-    toJSON = toJSONText
-
--- | Select only placements that are associated with these compatibilities.
--- WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on
--- mobile devices for regular or interstitial ads respectively. APP and
--- APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers
--- to rendering in in-stream video ads developed with the VAST standard.
-data PlacementsListCompatibilities
-    = PLCApp
-      -- ^ @APP@
-    | PLCAppInterstitial
-      -- ^ @APP_INTERSTITIAL@
-    | PLCInStreamVideo
-      -- ^ @IN_STREAM_VIDEO@
-    | PLCWeb
-      -- ^ @WEB@
-    | PLCWebInterstitial
-      -- ^ @WEB_INTERSTITIAL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementsListCompatibilities
-
-instance FromText PlacementsListCompatibilities where
-    fromText = \case
-        "APP" -> Just PLCApp
-        "APP_INTERSTITIAL" -> Just PLCAppInterstitial
-        "IN_STREAM_VIDEO" -> Just PLCInStreamVideo
-        "WEB" -> Just PLCWeb
-        "WEB_INTERSTITIAL" -> Just PLCWebInterstitial
-        _ -> Nothing
-
-instance ToText PlacementsListCompatibilities where
-    toText = \case
-        PLCApp -> "APP"
-        PLCAppInterstitial -> "APP_INTERSTITIAL"
-        PLCInStreamVideo -> "IN_STREAM_VIDEO"
-        PLCWeb -> "WEB"
-        PLCWebInterstitial -> "WEB_INTERSTITIAL"
-
-instance FromJSON PlacementsListCompatibilities where
-    parseJSON = parseJSONText "PlacementsListCompatibilities"
-
-instance ToJSON PlacementsListCompatibilities where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data OrderDocumentsListSortField
-    = ODLSFID
-      -- ^ @ID@
-    | ODLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable OrderDocumentsListSortField
-
-instance FromText OrderDocumentsListSortField where
-    fromText = \case
-        "ID" -> Just ODLSFID
-        "NAME" -> Just ODLSFName
-        _ -> Nothing
-
-instance ToText OrderDocumentsListSortField where
-    toText = \case
-        ODLSFID -> "ID"
-        ODLSFName -> "NAME"
-
-instance FromJSON OrderDocumentsListSortField where
-    parseJSON = parseJSONText "OrderDocumentsListSortField"
-
-instance ToJSON OrderDocumentsListSortField where
-    toJSON = toJSONText
-
-data CreativeCompatibilityItem
-    = CCIApp
-      -- ^ @APP@
-    | CCIAppInterstitial
-      -- ^ @APP_INTERSTITIAL@
-    | CCIInStreamVideo
-      -- ^ @IN_STREAM_VIDEO@
-    | CCIWeb
-      -- ^ @WEB@
-    | CCIWebInterstitial
-      -- ^ @WEB_INTERSTITIAL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeCompatibilityItem
-
-instance FromText CreativeCompatibilityItem where
-    fromText = \case
-        "APP" -> Just CCIApp
-        "APP_INTERSTITIAL" -> Just CCIAppInterstitial
-        "IN_STREAM_VIDEO" -> Just CCIInStreamVideo
-        "WEB" -> Just CCIWeb
-        "WEB_INTERSTITIAL" -> Just CCIWebInterstitial
-        _ -> Nothing
-
-instance ToText CreativeCompatibilityItem where
-    toText = \case
-        CCIApp -> "APP"
-        CCIAppInterstitial -> "APP_INTERSTITIAL"
-        CCIInStreamVideo -> "IN_STREAM_VIDEO"
-        CCIWeb -> "WEB"
-        CCIWebInterstitial -> "WEB_INTERSTITIAL"
-
-instance FromJSON CreativeCompatibilityItem where
-    parseJSON = parseJSONText "CreativeCompatibilityItem"
-
-instance ToJSON CreativeCompatibilityItem where
-    toJSON = toJSONText
-
--- | The type of delivery for the owner to receive, if enabled.
-data ReportDeliveryEmailOwnerDeliveryType
-    = RDEODTAttachment
-      -- ^ @ATTACHMENT@
-    | RDEODTLink
-      -- ^ @LINK@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportDeliveryEmailOwnerDeliveryType
-
-instance FromText ReportDeliveryEmailOwnerDeliveryType where
-    fromText = \case
-        "ATTACHMENT" -> Just RDEODTAttachment
-        "LINK" -> Just RDEODTLink
-        _ -> Nothing
-
-instance ToText ReportDeliveryEmailOwnerDeliveryType where
-    toText = \case
-        RDEODTAttachment -> "ATTACHMENT"
-        RDEODTLink -> "LINK"
-
-instance FromJSON ReportDeliveryEmailOwnerDeliveryType where
-    parseJSON = parseJSONText "ReportDeliveryEmailOwnerDeliveryType"
-
-instance ToJSON ReportDeliveryEmailOwnerDeliveryType where
-    toJSON = toJSONText
-
--- | Site contact type.
-data SiteContactContactType
-    = SalesPerson
-      -- ^ @SALES_PERSON@
-    | Trafficker
-      -- ^ @TRAFFICKER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable SiteContactContactType
-
-instance FromText SiteContactContactType where
-    fromText = \case
-        "SALES_PERSON" -> Just SalesPerson
-        "TRAFFICKER" -> Just Trafficker
-        _ -> Nothing
-
-instance ToText SiteContactContactType where
-    toText = \case
-        SalesPerson -> "SALES_PERSON"
-        Trafficker -> "TRAFFICKER"
-
-instance FromJSON SiteContactContactType where
-    parseJSON = parseJSONText "SiteContactContactType"
-
-instance ToJSON SiteContactContactType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is \'DESCENDING\'.
-data ReportsListSortOrder
-    = RLSOAscending
-      -- ^ @ASCENDING@
-      -- Ascending order.
-    | RLSODescending
-      -- ^ @DESCENDING@
-      -- Descending order.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportsListSortOrder
-
-instance FromText ReportsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just RLSOAscending
-        "DESCENDING" -> Just RLSODescending
-        _ -> Nothing
-
-instance ToText ReportsListSortOrder where
-    toText = \case
-        RLSOAscending -> "ASCENDING"
-        RLSODescending -> "DESCENDING"
-
-instance FromJSON ReportsListSortOrder where
-    parseJSON = parseJSONText "ReportsListSortOrder"
-
-instance ToJSON ReportsListSortOrder where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data TargetableRemarketingListsListSortField
-    = TRLLSFID
-      -- ^ @ID@
-    | TRLLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable TargetableRemarketingListsListSortField
-
-instance FromText TargetableRemarketingListsListSortField where
-    fromText = \case
-        "ID" -> Just TRLLSFID
-        "NAME" -> Just TRLLSFName
-        _ -> Nothing
-
-instance ToText TargetableRemarketingListsListSortField where
-    toText = \case
-        TRLLSFID -> "ID"
-        TRLLSFName -> "NAME"
-
-instance FromJSON TargetableRemarketingListsListSortField where
-    parseJSON = parseJSONText "TargetableRemarketingListsListSortField"
-
-instance ToJSON TargetableRemarketingListsListSortField where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data CampaignsListSortOrder
-    = CLSOAscending
-      -- ^ @ASCENDING@
-    | CLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CampaignsListSortOrder
-
-instance FromText CampaignsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just CLSOAscending
-        "DESCENDING" -> Just CLSODescending
-        _ -> Nothing
-
-instance ToText CampaignsListSortOrder where
-    toText = \case
-        CLSOAscending -> "ASCENDING"
-        CLSODescending -> "DESCENDING"
-
-instance FromJSON CampaignsListSortOrder where
-    parseJSON = parseJSONText "CampaignsListSortOrder"
-
-instance ToJSON CampaignsListSortOrder where
-    toJSON = toJSONText
-
--- | Select only floodlight activity groups with the specified floodlight
--- activity group type.
-data FloodlightActivityGroupsListType
-    = Counter
-      -- ^ @COUNTER@
-    | Sale
-      -- ^ @SALE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivityGroupsListType
-
-instance FromText FloodlightActivityGroupsListType where
-    fromText = \case
-        "COUNTER" -> Just Counter
-        "SALE" -> Just Sale
-        _ -> Nothing
-
-instance ToText FloodlightActivityGroupsListType where
-    toText = \case
-        Counter -> "COUNTER"
-        Sale -> "SALE"
-
-instance FromJSON FloodlightActivityGroupsListType where
-    parseJSON = parseJSONText "FloodlightActivityGroupsListType"
-
-instance ToJSON FloodlightActivityGroupsListType where
-    toJSON = toJSONText
-
--- | Day that will be counted as the first day of the week in reports. This
--- is a required field.
-data FloodlightConfigurationFirstDayOfWeek
-    = Monday
-      -- ^ @MONDAY@
-    | Sunday
-      -- ^ @SUNDAY@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightConfigurationFirstDayOfWeek
-
-instance FromText FloodlightConfigurationFirstDayOfWeek where
-    fromText = \case
-        "MONDAY" -> Just Monday
-        "SUNDAY" -> Just Sunday
-        _ -> Nothing
-
-instance ToText FloodlightConfigurationFirstDayOfWeek where
-    toText = \case
-        Monday -> "MONDAY"
-        Sunday -> "SUNDAY"
-
-instance FromJSON FloodlightConfigurationFirstDayOfWeek where
-    parseJSON = parseJSONText "FloodlightConfigurationFirstDayOfWeek"
-
-instance ToJSON FloodlightConfigurationFirstDayOfWeek where
-    toJSON = toJSONText
-
--- | Serving priority of an ad, with respect to other ads. The lower the
--- priority number, the greater the priority with which it is served.
-data DeliverySchedulePriority
-    = AdPriority01
-      -- ^ @AD_PRIORITY_01@
-    | AdPriority02
-      -- ^ @AD_PRIORITY_02@
-    | AdPriority03
-      -- ^ @AD_PRIORITY_03@
-    | AdPriority04
-      -- ^ @AD_PRIORITY_04@
-    | AdPriority05
-      -- ^ @AD_PRIORITY_05@
-    | AdPriority06
-      -- ^ @AD_PRIORITY_06@
-    | AdPriority07
-      -- ^ @AD_PRIORITY_07@
-    | AdPriority08
-      -- ^ @AD_PRIORITY_08@
-    | AdPriority09
-      -- ^ @AD_PRIORITY_09@
-    | AdPriority10
-      -- ^ @AD_PRIORITY_10@
-    | AdPriority11
-      -- ^ @AD_PRIORITY_11@
-    | AdPriority12
-      -- ^ @AD_PRIORITY_12@
-    | AdPriority13
-      -- ^ @AD_PRIORITY_13@
-    | AdPriority14
-      -- ^ @AD_PRIORITY_14@
-    | AdPriority15
-      -- ^ @AD_PRIORITY_15@
-    | AdPriority16
-      -- ^ @AD_PRIORITY_16@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DeliverySchedulePriority
-
-instance FromText DeliverySchedulePriority where
-    fromText = \case
-        "AD_PRIORITY_01" -> Just AdPriority01
-        "AD_PRIORITY_02" -> Just AdPriority02
-        "AD_PRIORITY_03" -> Just AdPriority03
-        "AD_PRIORITY_04" -> Just AdPriority04
-        "AD_PRIORITY_05" -> Just AdPriority05
-        "AD_PRIORITY_06" -> Just AdPriority06
-        "AD_PRIORITY_07" -> Just AdPriority07
-        "AD_PRIORITY_08" -> Just AdPriority08
-        "AD_PRIORITY_09" -> Just AdPriority09
-        "AD_PRIORITY_10" -> Just AdPriority10
-        "AD_PRIORITY_11" -> Just AdPriority11
-        "AD_PRIORITY_12" -> Just AdPriority12
-        "AD_PRIORITY_13" -> Just AdPriority13
-        "AD_PRIORITY_14" -> Just AdPriority14
-        "AD_PRIORITY_15" -> Just AdPriority15
-        "AD_PRIORITY_16" -> Just AdPriority16
-        _ -> Nothing
-
-instance ToText DeliverySchedulePriority where
-    toText = \case
-        AdPriority01 -> "AD_PRIORITY_01"
-        AdPriority02 -> "AD_PRIORITY_02"
-        AdPriority03 -> "AD_PRIORITY_03"
-        AdPriority04 -> "AD_PRIORITY_04"
-        AdPriority05 -> "AD_PRIORITY_05"
-        AdPriority06 -> "AD_PRIORITY_06"
-        AdPriority07 -> "AD_PRIORITY_07"
-        AdPriority08 -> "AD_PRIORITY_08"
-        AdPriority09 -> "AD_PRIORITY_09"
-        AdPriority10 -> "AD_PRIORITY_10"
-        AdPriority11 -> "AD_PRIORITY_11"
-        AdPriority12 -> "AD_PRIORITY_12"
-        AdPriority13 -> "AD_PRIORITY_13"
-        AdPriority14 -> "AD_PRIORITY_14"
-        AdPriority15 -> "AD_PRIORITY_15"
-        AdPriority16 -> "AD_PRIORITY_16"
-
-instance FromJSON DeliverySchedulePriority where
-    parseJSON = parseJSONText "DeliverySchedulePriority"
-
-instance ToJSON DeliverySchedulePriority where
-    toJSON = toJSONText
-
--- | Select only floodlight activities with the specified floodlight activity
--- group type.
-data FloodlightActivitiesListFloodlightActivityGroupType
-    = FALFAGTCounter
-      -- ^ @COUNTER@
-    | FALFAGTSale
-      -- ^ @SALE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivitiesListFloodlightActivityGroupType
-
-instance FromText FloodlightActivitiesListFloodlightActivityGroupType where
-    fromText = \case
-        "COUNTER" -> Just FALFAGTCounter
-        "SALE" -> Just FALFAGTSale
-        _ -> Nothing
-
-instance ToText FloodlightActivitiesListFloodlightActivityGroupType where
-    toText = \case
-        FALFAGTCounter -> "COUNTER"
-        FALFAGTSale -> "SALE"
-
-instance FromJSON FloodlightActivitiesListFloodlightActivityGroupType where
-    parseJSON = parseJSONText "FloodlightActivitiesListFloodlightActivityGroupType"
-
-instance ToJSON FloodlightActivitiesListFloodlightActivityGroupType where
-    toJSON = toJSONText
-
-data FloodlightConfigurationStandardVariableTypesItem
-    = Num
-      -- ^ @NUM@
-    | Ord
-      -- ^ @ORD@
-    | Tran
-      -- ^ @TRAN@
-    | U
-      -- ^ @U@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightConfigurationStandardVariableTypesItem
-
-instance FromText FloodlightConfigurationStandardVariableTypesItem where
-    fromText = \case
-        "NUM" -> Just Num
-        "ORD" -> Just Ord
-        "TRAN" -> Just Tran
-        "U" -> Just U
-        _ -> Nothing
-
-instance ToText FloodlightConfigurationStandardVariableTypesItem where
-    toText = \case
-        Num -> "NUM"
-        Ord -> "ORD"
-        Tran -> "TRAN"
-        U -> "U"
-
-instance FromJSON FloodlightConfigurationStandardVariableTypesItem where
-    parseJSON = parseJSONText "FloodlightConfigurationStandardVariableTypesItem"
-
-instance ToJSON FloodlightConfigurationStandardVariableTypesItem where
-    toJSON = toJSONText
-
--- | Payment source for this placement. This is a required field that is
--- read-only after insertion.
-data PlacementPaymentSource
-    = PPSPlacementAgencyPaid
-      -- ^ @PLACEMENT_AGENCY_PAID@
-    | PPSPlacementPublisherPaid
-      -- ^ @PLACEMENT_PUBLISHER_PAID@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementPaymentSource
-
-instance FromText PlacementPaymentSource where
-    fromText = \case
-        "PLACEMENT_AGENCY_PAID" -> Just PPSPlacementAgencyPaid
-        "PLACEMENT_PUBLISHER_PAID" -> Just PPSPlacementPublisherPaid
-        _ -> Nothing
-
-instance ToText PlacementPaymentSource where
-    toText = \case
-        PPSPlacementAgencyPaid -> "PLACEMENT_AGENCY_PAID"
-        PPSPlacementPublisherPaid -> "PLACEMENT_PUBLISHER_PAID"
-
-instance FromJSON PlacementPaymentSource where
-    parseJSON = parseJSONText "PlacementPaymentSource"
-
-instance ToJSON PlacementPaymentSource where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is \'DESCENDING\'.
-data ReportsFilesListSortOrder
-    = RFLSOAscending
-      -- ^ @ASCENDING@
-      -- Ascending order.
-    | RFLSODescending
-      -- ^ @DESCENDING@
-      -- Descending order.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportsFilesListSortOrder
-
-instance FromText ReportsFilesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just RFLSOAscending
-        "DESCENDING" -> Just RFLSODescending
-        _ -> Nothing
-
-instance ToText ReportsFilesListSortOrder where
-    toText = \case
-        RFLSOAscending -> "ASCENDING"
-        RFLSODescending -> "DESCENDING"
-
-instance FromJSON ReportsFilesListSortOrder where
-    parseJSON = parseJSONText "ReportsFilesListSortOrder"
-
-instance ToJSON ReportsFilesListSortOrder where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data InventoryItemsListSortField
-    = IILSFID
-      -- ^ @ID@
-    | IILSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable InventoryItemsListSortField
-
-instance FromText InventoryItemsListSortField where
-    fromText = \case
-        "ID" -> Just IILSFID
-        "NAME" -> Just IILSFName
-        _ -> Nothing
-
-instance ToText InventoryItemsListSortField where
-    toText = \case
-        IILSFID -> "ID"
-        IILSFName -> "NAME"
-
-instance FromJSON InventoryItemsListSortField where
-    parseJSON = parseJSONText "InventoryItemsListSortField"
-
-instance ToJSON InventoryItemsListSortField where
-    toJSON = toJSONText
-
--- | Event tag type. Can be used to specify whether to use a third-party
--- pixel, a third-party JavaScript URL, or a third-party click-through URL
--- for either impression or click tracking. This is a required field.
-data EventTagType
-    = ETTClickThroughEventTag
-      -- ^ @CLICK_THROUGH_EVENT_TAG@
-    | ETTImpressionImageEventTag
-      -- ^ @IMPRESSION_IMAGE_EVENT_TAG@
-    | ETTImpressionJavascriptEventTag
-      -- ^ @IMPRESSION_JAVASCRIPT_EVENT_TAG@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable EventTagType
-
-instance FromText EventTagType where
-    fromText = \case
-        "CLICK_THROUGH_EVENT_TAG" -> Just ETTClickThroughEventTag
-        "IMPRESSION_IMAGE_EVENT_TAG" -> Just ETTImpressionImageEventTag
-        "IMPRESSION_JAVASCRIPT_EVENT_TAG" -> Just ETTImpressionJavascriptEventTag
-        _ -> Nothing
-
-instance ToText EventTagType where
-    toText = \case
-        ETTClickThroughEventTag -> "CLICK_THROUGH_EVENT_TAG"
-        ETTImpressionImageEventTag -> "IMPRESSION_IMAGE_EVENT_TAG"
-        ETTImpressionJavascriptEventTag -> "IMPRESSION_JAVASCRIPT_EVENT_TAG"
-
-instance FromJSON EventTagType where
-    parseJSON = parseJSONText "EventTagType"
-
-instance ToJSON EventTagType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data CreativesListSortOrder
-    = CAscending
-      -- ^ @ASCENDING@
-    | CDescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativesListSortOrder
-
-instance FromText CreativesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just CAscending
-        "DESCENDING" -> Just CDescending
-        _ -> Nothing
-
-instance ToText CreativesListSortOrder where
-    toText = \case
-        CAscending -> "ASCENDING"
-        CDescending -> "DESCENDING"
-
-instance FromJSON CreativesListSortOrder where
-    parseJSON = parseJSONText "CreativesListSortOrder"
-
-instance ToJSON CreativesListSortOrder where
-    toJSON = toJSONText
-
--- | Popup window position either centered or at specific coordinate.
-data PopupWindowPropertiesPositionType
-    = Center
-      -- ^ @CENTER@
-    | Coordinates
-      -- ^ @COORDINATES@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PopupWindowPropertiesPositionType
-
-instance FromText PopupWindowPropertiesPositionType where
-    fromText = \case
-        "CENTER" -> Just Center
-        "COORDINATES" -> Just Coordinates
-        _ -> Nothing
-
-instance ToText PopupWindowPropertiesPositionType where
-    toText = \case
-        Center -> "CENTER"
-        Coordinates -> "COORDINATES"
-
-instance FromJSON PopupWindowPropertiesPositionType where
-    parseJSON = parseJSONText "PopupWindowPropertiesPositionType"
-
-instance ToJSON PopupWindowPropertiesPositionType where
-    toJSON = toJSONText
-
--- | Directory site contact role.
-data DirectorySiteContactRole
-    = Admin
-      -- ^ @ADMIN@
-    | Edit
-      -- ^ @EDIT@
-    | View
-      -- ^ @VIEW@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DirectorySiteContactRole
-
-instance FromText DirectorySiteContactRole where
-    fromText = \case
-        "ADMIN" -> Just Admin
-        "EDIT" -> Just Edit
-        "VIEW" -> Just View
-        _ -> Nothing
-
-instance ToText DirectorySiteContactRole where
-    toText = \case
-        Admin -> "ADMIN"
-        Edit -> "EDIT"
-        View -> "VIEW"
-
-instance FromJSON DirectorySiteContactRole where
-    parseJSON = parseJSONText "DirectorySiteContactRole"
-
-instance ToJSON DirectorySiteContactRole where
-    toJSON = toJSONText
-
--- | Option specifying how keywords are embedded in ad tags. This setting can
--- be used to specify whether keyword placeholders are inserted in
--- placement tags for this site. Publishers can then add keywords to those
--- placeholders.
-data TagSettingKeywordOption
-    = GenerateSeparateTagForEachKeyword
-      -- ^ @GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD@
-    | Ignore
-      -- ^ @IGNORE@
-    | PlaceholderWithListOfKeywords
-      -- ^ @PLACEHOLDER_WITH_LIST_OF_KEYWORDS@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable TagSettingKeywordOption
-
-instance FromText TagSettingKeywordOption where
-    fromText = \case
-        "GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD" -> Just GenerateSeparateTagForEachKeyword
-        "IGNORE" -> Just Ignore
-        "PLACEHOLDER_WITH_LIST_OF_KEYWORDS" -> Just PlaceholderWithListOfKeywords
-        _ -> Nothing
-
-instance ToText TagSettingKeywordOption where
-    toText = \case
-        GenerateSeparateTagForEachKeyword -> "GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD"
-        Ignore -> "IGNORE"
-        PlaceholderWithListOfKeywords -> "PLACEHOLDER_WITH_LIST_OF_KEYWORDS"
-
-instance FromJSON TagSettingKeywordOption where
-    parseJSON = parseJSONText "TagSettingKeywordOption"
-
-instance ToJSON TagSettingKeywordOption where
-    toJSON = toJSONText
-
--- | Authoring tool for HTML5 banner creatives. This is a read-only field.
--- Applicable to the following creative types: HTML5_BANNER.
-data CreativeAuthoringTool
-    = Ninja
-      -- ^ @NINJA@
-    | Swiffy
-      -- ^ @SWIFFY@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAuthoringTool
-
-instance FromText CreativeAuthoringTool where
-    fromText = \case
-        "NINJA" -> Just Ninja
-        "SWIFFY" -> Just Swiffy
-        _ -> Nothing
-
-instance ToText CreativeAuthoringTool where
-    toText = \case
-        Ninja -> "NINJA"
-        Swiffy -> "SWIFFY"
-
-instance FromJSON CreativeAuthoringTool where
-    parseJSON = parseJSONText "CreativeAuthoringTool"
-
-instance ToJSON CreativeAuthoringTool where
-    toJSON = toJSONText
-
--- | Type of this contact.
-data OrderContactContactType
-    = PlanningOrderContactBuyerBillingContact
-      -- ^ @PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT@
-    | PlanningOrderContactBuyerContact
-      -- ^ @PLANNING_ORDER_CONTACT_BUYER_CONTACT@
-    | PlanningOrderContactSellerContact
-      -- ^ @PLANNING_ORDER_CONTACT_SELLER_CONTACT@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable OrderContactContactType
-
-instance FromText OrderContactContactType where
-    fromText = \case
-        "PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT" -> Just PlanningOrderContactBuyerBillingContact
-        "PLANNING_ORDER_CONTACT_BUYER_CONTACT" -> Just PlanningOrderContactBuyerContact
-        "PLANNING_ORDER_CONTACT_SELLER_CONTACT" -> Just PlanningOrderContactSellerContact
-        _ -> Nothing
-
-instance ToText OrderContactContactType where
-    toText = \case
-        PlanningOrderContactBuyerBillingContact -> "PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT"
-        PlanningOrderContactBuyerContact -> "PLANNING_ORDER_CONTACT_BUYER_CONTACT"
-        PlanningOrderContactSellerContact -> "PLANNING_ORDER_CONTACT_SELLER_CONTACT"
-
-instance FromJSON OrderContactContactType where
-    parseJSON = parseJSONText "OrderContactContactType"
-
-instance ToJSON OrderContactContactType where
-    toJSON = toJSONText
-
--- | Type of asset to upload. This is a required field. IMAGE is solely used
--- for IMAGE creatives. Other image assets should use HTML_IMAGE.
-data CreativeAssetIdType
-    = CAITFlash
-      -- ^ @FLASH@
-    | CAITHTML
-      -- ^ @HTML@
-    | CAITHTMLImage
-      -- ^ @HTML_IMAGE@
-    | CAITImage
-      -- ^ @IMAGE@
-    | CAITVideo
-      -- ^ @VIDEO@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetIdType
-
-instance FromText CreativeAssetIdType where
-    fromText = \case
-        "FLASH" -> Just CAITFlash
-        "HTML" -> Just CAITHTML
-        "HTML_IMAGE" -> Just CAITHTMLImage
-        "IMAGE" -> Just CAITImage
-        "VIDEO" -> Just CAITVideo
-        _ -> Nothing
-
-instance ToText CreativeAssetIdType where
-    toText = \case
-        CAITFlash -> "FLASH"
-        CAITHTML -> "HTML"
-        CAITHTMLImage -> "HTML_IMAGE"
-        CAITImage -> "IMAGE"
-        CAITVideo -> "VIDEO"
-
-instance FromJSON CreativeAssetIdType where
-    parseJSON = parseJSONText "CreativeAssetIdType"
-
-instance ToJSON CreativeAssetIdType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data AccountUserProFilesListSortOrder
-    = AUPFLSOAscending
-      -- ^ @ASCENDING@
-    | AUPFLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountUserProFilesListSortOrder
-
-instance FromText AccountUserProFilesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just AUPFLSOAscending
-        "DESCENDING" -> Just AUPFLSODescending
-        _ -> Nothing
-
-instance ToText AccountUserProFilesListSortOrder where
-    toText = \case
-        AUPFLSOAscending -> "ASCENDING"
-        AUPFLSODescending -> "DESCENDING"
-
-instance FromJSON AccountUserProFilesListSortOrder where
-    parseJSON = parseJSONText "AccountUserProFilesListSortOrder"
-
-instance ToJSON AccountUserProFilesListSortOrder where
-    toJSON = toJSONText
-
--- | Product from which this remarketing list was originated.
-data RemarketingListListSource
-    = RLLSRemarketingListSourceDBm
-      -- ^ @REMARKETING_LIST_SOURCE_DBM@
-    | RLLSRemarketingListSourceDfa
-      -- ^ @REMARKETING_LIST_SOURCE_DFA@
-    | RLLSRemarketingListSourceDmp
-      -- ^ @REMARKETING_LIST_SOURCE_DMP@
-    | RLLSRemarketingListSourceGa
-      -- ^ @REMARKETING_LIST_SOURCE_GA@
-    | RLLSRemarketingListSourceOther
-      -- ^ @REMARKETING_LIST_SOURCE_OTHER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable RemarketingListListSource
-
-instance FromText RemarketingListListSource where
-    fromText = \case
-        "REMARKETING_LIST_SOURCE_DBM" -> Just RLLSRemarketingListSourceDBm
-        "REMARKETING_LIST_SOURCE_DFA" -> Just RLLSRemarketingListSourceDfa
-        "REMARKETING_LIST_SOURCE_DMP" -> Just RLLSRemarketingListSourceDmp
-        "REMARKETING_LIST_SOURCE_GA" -> Just RLLSRemarketingListSourceGa
-        "REMARKETING_LIST_SOURCE_OTHER" -> Just RLLSRemarketingListSourceOther
-        _ -> Nothing
-
-instance ToText RemarketingListListSource where
-    toText = \case
-        RLLSRemarketingListSourceDBm -> "REMARKETING_LIST_SOURCE_DBM"
-        RLLSRemarketingListSourceDfa -> "REMARKETING_LIST_SOURCE_DFA"
-        RLLSRemarketingListSourceDmp -> "REMARKETING_LIST_SOURCE_DMP"
-        RLLSRemarketingListSourceGa -> "REMARKETING_LIST_SOURCE_GA"
-        RLLSRemarketingListSourceOther -> "REMARKETING_LIST_SOURCE_OTHER"
-
-instance FromJSON RemarketingListListSource where
-    parseJSON = parseJSONText "RemarketingListListSource"
-
-instance ToJSON RemarketingListListSource where
-    toJSON = toJSONText
-
--- | User type of the user profile. This is a read-only field that can be
--- left blank.
-data AccountUserProFileUserAccessType
-    = InternalAdministrator
-      -- ^ @INTERNAL_ADMINISTRATOR@
-    | NormalUser
-      -- ^ @NORMAL_USER@
-    | SuperUser
-      -- ^ @SUPER_USER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountUserProFileUserAccessType
-
-instance FromText AccountUserProFileUserAccessType where
-    fromText = \case
-        "INTERNAL_ADMINISTRATOR" -> Just InternalAdministrator
-        "NORMAL_USER" -> Just NormalUser
-        "SUPER_USER" -> Just SuperUser
-        _ -> Nothing
-
-instance ToText AccountUserProFileUserAccessType where
-    toText = \case
-        InternalAdministrator -> "INTERNAL_ADMINISTRATOR"
-        NormalUser -> "NORMAL_USER"
-        SuperUser -> "SUPER_USER"
-
-instance FromJSON AccountUserProFileUserAccessType where
-    parseJSON = parseJSONText "AccountUserProFileUserAccessType"
-
-instance ToJSON AccountUserProFileUserAccessType where
-    toJSON = toJSONText
-
--- | Initial wait time type before making the asset visible. Applicable to
--- the following creative types: all RICH_MEDIA.
-data CreativeAssetStartTimeType
-    = AssetStartTimeTypeCustom
-      -- ^ @ASSET_START_TIME_TYPE_CUSTOM@
-    | AssetStartTimeTypeNone
-      -- ^ @ASSET_START_TIME_TYPE_NONE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetStartTimeType
-
-instance FromText CreativeAssetStartTimeType where
-    fromText = \case
-        "ASSET_START_TIME_TYPE_CUSTOM" -> Just AssetStartTimeTypeCustom
-        "ASSET_START_TIME_TYPE_NONE" -> Just AssetStartTimeTypeNone
-        _ -> Nothing
-
-instance ToText CreativeAssetStartTimeType where
-    toText = \case
-        AssetStartTimeTypeCustom -> "ASSET_START_TIME_TYPE_CUSTOM"
-        AssetStartTimeTypeNone -> "ASSET_START_TIME_TYPE_NONE"
-
-instance FromJSON CreativeAssetStartTimeType where
-    parseJSON = parseJSONText "CreativeAssetStartTimeType"
-
-instance ToJSON CreativeAssetStartTimeType where
-    toJSON = toJSONText
-
--- | Audience gender of this project.
-data ProjectAudienceGender
-    = PlanningAudienceGenderFemale
-      -- ^ @PLANNING_AUDIENCE_GENDER_FEMALE@
-    | PlanningAudienceGenderMale
-      -- ^ @PLANNING_AUDIENCE_GENDER_MALE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ProjectAudienceGender
-
-instance FromText ProjectAudienceGender where
-    fromText = \case
-        "PLANNING_AUDIENCE_GENDER_FEMALE" -> Just PlanningAudienceGenderFemale
-        "PLANNING_AUDIENCE_GENDER_MALE" -> Just PlanningAudienceGenderMale
-        _ -> Nothing
-
-instance ToText ProjectAudienceGender where
-    toText = \case
-        PlanningAudienceGenderFemale -> "PLANNING_AUDIENCE_GENDER_FEMALE"
-        PlanningAudienceGenderMale -> "PLANNING_AUDIENCE_GENDER_MALE"
-
-instance FromJSON ProjectAudienceGender where
-    parseJSON = parseJSONText "ProjectAudienceGender"
-
-instance ToJSON ProjectAudienceGender where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data PlacementStrategiesListSortField
-    = PSLSFID
-      -- ^ @ID@
-    | PSLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementStrategiesListSortField
-
-instance FromText PlacementStrategiesListSortField where
-    fromText = \case
-        "ID" -> Just PSLSFID
-        "NAME" -> Just PSLSFName
-        _ -> Nothing
-
-instance ToText PlacementStrategiesListSortField where
-    toText = \case
-        PSLSFID -> "ID"
-        PSLSFName -> "NAME"
-
-instance FromJSON PlacementStrategiesListSortField where
-    parseJSON = parseJSONText "PlacementStrategiesListSortField"
-
-instance ToJSON PlacementStrategiesListSortField where
-    toJSON = toJSONText
-
--- | Data type for the variable. This is a required field.
-data UserDefinedVariableConfigurationDataType
-    = Number
-      -- ^ @NUMBER@
-    | String
-      -- ^ @STRING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable UserDefinedVariableConfigurationDataType
-
-instance FromText UserDefinedVariableConfigurationDataType where
-    fromText = \case
-        "NUMBER" -> Just Number
-        "STRING" -> Just String
-        _ -> Nothing
-
-instance ToText UserDefinedVariableConfigurationDataType where
-    toText = \case
-        Number -> "NUMBER"
-        String -> "STRING"
-
-instance FromJSON UserDefinedVariableConfigurationDataType where
-    parseJSON = parseJSONText "UserDefinedVariableConfigurationDataType"
-
-instance ToJSON UserDefinedVariableConfigurationDataType where
-    toJSON = toJSONText
-
--- | Code type used for cache busting in the generated tag.
-data FloodlightActivityCacheBustingType
-    = ActiveServerPage
-      -- ^ @ACTIVE_SERVER_PAGE@
-    | ColdFusion
-      -- ^ @COLD_FUSION@
-    | Javascript
-      -- ^ @JAVASCRIPT@
-    | Jsp
-      -- ^ @JSP@
-    | Php
-      -- ^ @PHP@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivityCacheBustingType
-
-instance FromText FloodlightActivityCacheBustingType where
-    fromText = \case
-        "ACTIVE_SERVER_PAGE" -> Just ActiveServerPage
-        "COLD_FUSION" -> Just ColdFusion
-        "JAVASCRIPT" -> Just Javascript
-        "JSP" -> Just Jsp
-        "PHP" -> Just Php
-        _ -> Nothing
-
-instance ToText FloodlightActivityCacheBustingType where
-    toText = \case
-        ActiveServerPage -> "ACTIVE_SERVER_PAGE"
-        ColdFusion -> "COLD_FUSION"
-        Javascript -> "JAVASCRIPT"
-        Jsp -> "JSP"
-        Php -> "PHP"
-
-instance FromJSON FloodlightActivityCacheBustingType where
-    parseJSON = parseJSONText "FloodlightActivityCacheBustingType"
-
-instance ToJSON FloodlightActivityCacheBustingType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data CreativeGroupsListSortOrder
-    = CGLSOAscending
-      -- ^ @ASCENDING@
-    | CGLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeGroupsListSortOrder
-
-instance FromText CreativeGroupsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just CGLSOAscending
-        "DESCENDING" -> Just CGLSODescending
-        _ -> Nothing
-
-instance ToText CreativeGroupsListSortOrder where
-    toText = \case
-        CGLSOAscending -> "ASCENDING"
-        CGLSODescending -> "DESCENDING"
-
-instance FromJSON CreativeGroupsListSortOrder where
-    parseJSON = parseJSONText "CreativeGroupsListSortOrder"
-
-instance ToJSON CreativeGroupsListSortOrder where
-    toJSON = toJSONText
-
--- | Type of this order document
-data OrderDocumentType
-    = PlanningOrderTypeChangeOrder
-      -- ^ @PLANNING_ORDER_TYPE_CHANGE_ORDER@
-    | PlanningOrderTypeInsertionOrder
-      -- ^ @PLANNING_ORDER_TYPE_INSERTION_ORDER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable OrderDocumentType
-
-instance FromText OrderDocumentType where
-    fromText = \case
-        "PLANNING_ORDER_TYPE_CHANGE_ORDER" -> Just PlanningOrderTypeChangeOrder
-        "PLANNING_ORDER_TYPE_INSERTION_ORDER" -> Just PlanningOrderTypeInsertionOrder
-        _ -> Nothing
-
-instance ToText OrderDocumentType where
-    toText = \case
-        PlanningOrderTypeChangeOrder -> "PLANNING_ORDER_TYPE_CHANGE_ORDER"
-        PlanningOrderTypeInsertionOrder -> "PLANNING_ORDER_TYPE_INSERTION_ORDER"
-
-instance FromJSON OrderDocumentType where
-    parseJSON = parseJSONText "OrderDocumentType"
-
-instance ToJSON OrderDocumentType where
-    toJSON = toJSONText
-
--- | TagData tag format of this tag.
-data TagDataFormat
-    = PlacementTagClickCommands
-      -- ^ @PLACEMENT_TAG_CLICK_COMMANDS@
-    | PlacementTagIframeIlayer
-      -- ^ @PLACEMENT_TAG_IFRAME_ILAYER@
-    | PlacementTagIframeJavascript
-      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT@
-    | PlacementTagIframeJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY@
-    | PlacementTagInstreamVideoPrefetch
-      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH@
-    | PlacementTagInstreamVideoPrefetchVast3
-      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3@
-    | PlacementTagInternalRedirect
-      -- ^ @PLACEMENT_TAG_INTERNAL_REDIRECT@
-    | PlacementTagInterstitialIframeJavascript
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT@
-    | PlacementTagInterstitialIframeJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY@
-    | PlacementTagInterstitialInternalRedirect
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT@
-    | PlacementTagInterstitialJavascript
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT@
-    | PlacementTagInterstitialJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY@
-    | PlacementTagJavascript
-      -- ^ @PLACEMENT_TAG_JAVASCRIPT@
-    | PlacementTagJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_JAVASCRIPT_LEGACY@
-    | PlacementTagStandard
-      -- ^ @PLACEMENT_TAG_STANDARD@
-    | PlacementTagTracking
-      -- ^ @PLACEMENT_TAG_TRACKING@
-    | PlacementTagTrackingIframe
-      -- ^ @PLACEMENT_TAG_TRACKING_IFRAME@
-    | PlacementTagTrackingJavascript
-      -- ^ @PLACEMENT_TAG_TRACKING_JAVASCRIPT@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable TagDataFormat
-
-instance FromText TagDataFormat where
-    fromText = \case
-        "PLACEMENT_TAG_CLICK_COMMANDS" -> Just PlacementTagClickCommands
-        "PLACEMENT_TAG_IFRAME_ILAYER" -> Just PlacementTagIframeIlayer
-        "PLACEMENT_TAG_IFRAME_JAVASCRIPT" -> Just PlacementTagIframeJavascript
-        "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY" -> Just PlacementTagIframeJavascriptLegacy
-        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH" -> Just PlacementTagInstreamVideoPrefetch
-        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3" -> Just PlacementTagInstreamVideoPrefetchVast3
-        "PLACEMENT_TAG_INTERNAL_REDIRECT" -> Just PlacementTagInternalRedirect
-        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT" -> Just PlacementTagInterstitialIframeJavascript
-        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY" -> Just PlacementTagInterstitialIframeJavascriptLegacy
-        "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT" -> Just PlacementTagInterstitialInternalRedirect
-        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT" -> Just PlacementTagInterstitialJavascript
-        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY" -> Just PlacementTagInterstitialJavascriptLegacy
-        "PLACEMENT_TAG_JAVASCRIPT" -> Just PlacementTagJavascript
-        "PLACEMENT_TAG_JAVASCRIPT_LEGACY" -> Just PlacementTagJavascriptLegacy
-        "PLACEMENT_TAG_STANDARD" -> Just PlacementTagStandard
-        "PLACEMENT_TAG_TRACKING" -> Just PlacementTagTracking
-        "PLACEMENT_TAG_TRACKING_IFRAME" -> Just PlacementTagTrackingIframe
-        "PLACEMENT_TAG_TRACKING_JAVASCRIPT" -> Just PlacementTagTrackingJavascript
-        _ -> Nothing
-
-instance ToText TagDataFormat where
-    toText = \case
-        PlacementTagClickCommands -> "PLACEMENT_TAG_CLICK_COMMANDS"
-        PlacementTagIframeIlayer -> "PLACEMENT_TAG_IFRAME_ILAYER"
-        PlacementTagIframeJavascript -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        PlacementTagIframeJavascriptLegacy -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY"
-        PlacementTagInstreamVideoPrefetch -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        PlacementTagInstreamVideoPrefetchVast3 -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
-        PlacementTagInternalRedirect -> "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        PlacementTagInterstitialIframeJavascript -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        PlacementTagInterstitialIframeJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY"
-        PlacementTagInterstitialInternalRedirect -> "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        PlacementTagInterstitialJavascript -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        PlacementTagInterstitialJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY"
-        PlacementTagJavascript -> "PLACEMENT_TAG_JAVASCRIPT"
-        PlacementTagJavascriptLegacy -> "PLACEMENT_TAG_JAVASCRIPT_LEGACY"
-        PlacementTagStandard -> "PLACEMENT_TAG_STANDARD"
-        PlacementTagTracking -> "PLACEMENT_TAG_TRACKING"
-        PlacementTagTrackingIframe -> "PLACEMENT_TAG_TRACKING_IFRAME"
-        PlacementTagTrackingJavascript -> "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-
-instance FromJSON TagDataFormat where
-    parseJSON = parseJSONText "TagDataFormat"
-
-instance ToJSON TagDataFormat where
-    toJSON = toJSONText
-
--- | Maximum number of active ads allowed for the account.
-data AccountActiveAdSummaryActiveAdsLimitTier
-    = ActiveAdsTier100K
-      -- ^ @ACTIVE_ADS_TIER_100K@
-    | ActiveAdsTier200K
-      -- ^ @ACTIVE_ADS_TIER_200K@
-    | ActiveAdsTier300K
-      -- ^ @ACTIVE_ADS_TIER_300K@
-    | ActiveAdsTier40K
-      -- ^ @ACTIVE_ADS_TIER_40K@
-    | ActiveAdsTier75K
-      -- ^ @ACTIVE_ADS_TIER_75K@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountActiveAdSummaryActiveAdsLimitTier
-
-instance FromText AccountActiveAdSummaryActiveAdsLimitTier where
-    fromText = \case
-        "ACTIVE_ADS_TIER_100K" -> Just ActiveAdsTier100K
-        "ACTIVE_ADS_TIER_200K" -> Just ActiveAdsTier200K
-        "ACTIVE_ADS_TIER_300K" -> Just ActiveAdsTier300K
-        "ACTIVE_ADS_TIER_40K" -> Just ActiveAdsTier40K
-        "ACTIVE_ADS_TIER_75K" -> Just ActiveAdsTier75K
-        _ -> Nothing
-
-instance ToText AccountActiveAdSummaryActiveAdsLimitTier where
-    toText = \case
-        ActiveAdsTier100K -> "ACTIVE_ADS_TIER_100K"
-        ActiveAdsTier200K -> "ACTIVE_ADS_TIER_200K"
-        ActiveAdsTier300K -> "ACTIVE_ADS_TIER_300K"
-        ActiveAdsTier40K -> "ACTIVE_ADS_TIER_40K"
-        ActiveAdsTier75K -> "ACTIVE_ADS_TIER_75K"
-
-instance FromJSON AccountActiveAdSummaryActiveAdsLimitTier where
-    parseJSON = parseJSONText "AccountActiveAdSummaryActiveAdsLimitTier"
-
-instance ToJSON AccountActiveAdSummaryActiveAdsLimitTier where
-    toJSON = toJSONText
-
--- | Rich media child asset type. This is a read-only field. Applicable to
--- the following creative types: all VPAID.
-data CreativeAssetChildAssetType
-    = ChildAssetTypeData
-      -- ^ @CHILD_ASSET_TYPE_DATA@
-    | ChildAssetTypeFlash
-      -- ^ @CHILD_ASSET_TYPE_FLASH@
-    | ChildAssetTypeImage
-      -- ^ @CHILD_ASSET_TYPE_IMAGE@
-    | ChildAssetTypeVideo
-      -- ^ @CHILD_ASSET_TYPE_VIDEO@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetChildAssetType
-
-instance FromText CreativeAssetChildAssetType where
-    fromText = \case
-        "CHILD_ASSET_TYPE_DATA" -> Just ChildAssetTypeData
-        "CHILD_ASSET_TYPE_FLASH" -> Just ChildAssetTypeFlash
-        "CHILD_ASSET_TYPE_IMAGE" -> Just ChildAssetTypeImage
-        "CHILD_ASSET_TYPE_VIDEO" -> Just ChildAssetTypeVideo
-        _ -> Nothing
-
-instance ToText CreativeAssetChildAssetType where
-    toText = \case
-        ChildAssetTypeData -> "CHILD_ASSET_TYPE_DATA"
-        ChildAssetTypeFlash -> "CHILD_ASSET_TYPE_FLASH"
-        ChildAssetTypeImage -> "CHILD_ASSET_TYPE_IMAGE"
-        ChildAssetTypeVideo -> "CHILD_ASSET_TYPE_VIDEO"
-
-instance FromJSON CreativeAssetChildAssetType where
-    parseJSON = parseJSONText "CreativeAssetChildAssetType"
-
-instance ToJSON CreativeAssetChildAssetType where
-    toJSON = toJSONText
-
--- | Select only placement groups belonging with this group type. A package
--- is a simple group of placements that acts as a single pricing point for
--- a group of tags. A roadblock is a group of placements that not only acts
--- as a single pricing point but also assumes that all the tags in it will
--- be served at the same time. A roadblock requires one of its assigned
--- placements to be marked as primary for reporting.
-data PlacementGroupsListPlacementGroupType
-    = PlacementPackage
-      -- ^ @PLACEMENT_PACKAGE@
-    | PlacementRoadblock
-      -- ^ @PLACEMENT_ROADBLOCK@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementGroupsListPlacementGroupType
-
-instance FromText PlacementGroupsListPlacementGroupType where
-    fromText = \case
-        "PLACEMENT_PACKAGE" -> Just PlacementPackage
-        "PLACEMENT_ROADBLOCK" -> Just PlacementRoadblock
-        _ -> Nothing
-
-instance ToText PlacementGroupsListPlacementGroupType where
-    toText = \case
-        PlacementPackage -> "PLACEMENT_PACKAGE"
-        PlacementRoadblock -> "PLACEMENT_ROADBLOCK"
-
-instance FromJSON PlacementGroupsListPlacementGroupType where
-    parseJSON = parseJSONText "PlacementGroupsListPlacementGroupType"
-
-instance ToJSON PlacementGroupsListPlacementGroupType where
-    toJSON = toJSONText
-
--- | Status of the filter. NONE means the user has access to none of the
--- objects. ALL means the user has access to all objects. ASSIGNED means
--- the user has access to the objects with IDs in the objectIds list.
-data ObjectFilterStatus
-    = OFSAll
-      -- ^ @ALL@
-    | OFSAssigned
-      -- ^ @ASSIGNED@
-    | OFSNone
-      -- ^ @NONE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ObjectFilterStatus
-
-instance FromText ObjectFilterStatus where
-    fromText = \case
-        "ALL" -> Just OFSAll
-        "ASSIGNED" -> Just OFSAssigned
-        "NONE" -> Just OFSNone
-        _ -> Nothing
-
-instance ToText ObjectFilterStatus where
-    toText = \case
-        OFSAll -> "ALL"
-        OFSAssigned -> "ASSIGNED"
-        OFSNone -> "NONE"
-
-instance FromJSON ObjectFilterStatus where
-    parseJSON = parseJSONText "ObjectFilterStatus"
-
-instance ToJSON ObjectFilterStatus where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data CampaignCreativeAssociationsListSortOrder
-    = CCALSOAscending
-      -- ^ @ASCENDING@
-    | CCALSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CampaignCreativeAssociationsListSortOrder
-
-instance FromText CampaignCreativeAssociationsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just CCALSOAscending
-        "DESCENDING" -> Just CCALSODescending
-        _ -> Nothing
-
-instance ToText CampaignCreativeAssociationsListSortOrder where
-    toText = \case
-        CCALSOAscending -> "ASCENDING"
-        CCALSODescending -> "DESCENDING"
-
-instance FromJSON CampaignCreativeAssociationsListSortOrder where
-    parseJSON = parseJSONText "CampaignCreativeAssociationsListSortOrder"
-
-instance ToJSON CampaignCreativeAssociationsListSortOrder where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data FloodlightActivitiesListSortField
-    = FALSFID
-      -- ^ @ID@
-    | FALSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivitiesListSortField
-
-instance FromText FloodlightActivitiesListSortField where
-    fromText = \case
-        "ID" -> Just FALSFID
-        "NAME" -> Just FALSFName
-        _ -> Nothing
-
-instance ToText FloodlightActivitiesListSortField where
-    toText = \case
-        FALSFID -> "ID"
-        FALSFName -> "NAME"
-
-instance FromJSON FloodlightActivitiesListSortField where
-    parseJSON = parseJSONText "FloodlightActivitiesListSortField"
-
-instance ToJSON FloodlightActivitiesListSortField where
-    toJSON = toJSONText
-
--- | Select only creatives with these creative types.
-data CreativesListTypes
-    = BrandSafeDefaultInstreamVideo
-      -- ^ @BRAND_SAFE_DEFAULT_INSTREAM_VIDEO@
-    | CustomInpage
-      -- ^ @CUSTOM_INPAGE@
-    | CustomInterstitial
-      -- ^ @CUSTOM_INTERSTITIAL@
-    | EnhancedBanner
-      -- ^ @ENHANCED_BANNER@
-    | EnhancedImage
-      -- ^ @ENHANCED_IMAGE@
-    | FlashInpage
-      -- ^ @FLASH_INPAGE@
-    | HTML5Banner
-      -- ^ @HTML5_BANNER@
-    | Image
-      -- ^ @IMAGE@
-    | InstreamVideo
-      -- ^ @INSTREAM_VIDEO@
-    | InternalRedirect
-      -- ^ @INTERNAL_REDIRECT@
-    | InterstitialInternalRedirect
-      -- ^ @INTERSTITIAL_INTERNAL_REDIRECT@
-    | Redirect
-      -- ^ @REDIRECT@
-    | RichMediaExpanding
-      -- ^ @RICH_MEDIA_EXPANDING@
-    | RichMediaImExpand
-      -- ^ @RICH_MEDIA_IM_EXPAND@
-    | RichMediaInpage
-      -- ^ @RICH_MEDIA_INPAGE@
-    | RichMediaInpageFloating
-      -- ^ @RICH_MEDIA_INPAGE_FLOATING@
-    | RichMediaInterstitialFloat
-      -- ^ @RICH_MEDIA_INTERSTITIAL_FLOAT@
-    | RichMediaMobileInApp
-      -- ^ @RICH_MEDIA_MOBILE_IN_APP@
-    | RichMediaMultiFloating
-      -- ^ @RICH_MEDIA_MULTI_FLOATING@
-    | RichMediaPeelDown
-      -- ^ @RICH_MEDIA_PEEL_DOWN@
-    | TrackingText
-      -- ^ @TRACKING_TEXT@
-    | VastRedirect
-      -- ^ @VAST_REDIRECT@
-    | VpaidLinear
-      -- ^ @VPAID_LINEAR@
-    | VpaidNonLinear
-      -- ^ @VPAID_NON_LINEAR@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativesListTypes
-
-instance FromText CreativesListTypes where
-    fromText = \case
-        "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO" -> Just BrandSafeDefaultInstreamVideo
-        "CUSTOM_INPAGE" -> Just CustomInpage
-        "CUSTOM_INTERSTITIAL" -> Just CustomInterstitial
-        "ENHANCED_BANNER" -> Just EnhancedBanner
-        "ENHANCED_IMAGE" -> Just EnhancedImage
-        "FLASH_INPAGE" -> Just FlashInpage
-        "HTML5_BANNER" -> Just HTML5Banner
-        "IMAGE" -> Just Image
-        "INSTREAM_VIDEO" -> Just InstreamVideo
-        "INTERNAL_REDIRECT" -> Just InternalRedirect
-        "INTERSTITIAL_INTERNAL_REDIRECT" -> Just InterstitialInternalRedirect
-        "REDIRECT" -> Just Redirect
-        "RICH_MEDIA_EXPANDING" -> Just RichMediaExpanding
-        "RICH_MEDIA_IM_EXPAND" -> Just RichMediaImExpand
-        "RICH_MEDIA_INPAGE" -> Just RichMediaInpage
-        "RICH_MEDIA_INPAGE_FLOATING" -> Just RichMediaInpageFloating
-        "RICH_MEDIA_INTERSTITIAL_FLOAT" -> Just RichMediaInterstitialFloat
-        "RICH_MEDIA_MOBILE_IN_APP" -> Just RichMediaMobileInApp
-        "RICH_MEDIA_MULTI_FLOATING" -> Just RichMediaMultiFloating
-        "RICH_MEDIA_PEEL_DOWN" -> Just RichMediaPeelDown
-        "TRACKING_TEXT" -> Just TrackingText
-        "VAST_REDIRECT" -> Just VastRedirect
-        "VPAID_LINEAR" -> Just VpaidLinear
-        "VPAID_NON_LINEAR" -> Just VpaidNonLinear
-        _ -> Nothing
-
-instance ToText CreativesListTypes where
-    toText = \case
-        BrandSafeDefaultInstreamVideo -> "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO"
-        CustomInpage -> "CUSTOM_INPAGE"
-        CustomInterstitial -> "CUSTOM_INTERSTITIAL"
-        EnhancedBanner -> "ENHANCED_BANNER"
-        EnhancedImage -> "ENHANCED_IMAGE"
-        FlashInpage -> "FLASH_INPAGE"
-        HTML5Banner -> "HTML5_BANNER"
-        Image -> "IMAGE"
-        InstreamVideo -> "INSTREAM_VIDEO"
-        InternalRedirect -> "INTERNAL_REDIRECT"
-        InterstitialInternalRedirect -> "INTERSTITIAL_INTERNAL_REDIRECT"
-        Redirect -> "REDIRECT"
-        RichMediaExpanding -> "RICH_MEDIA_EXPANDING"
-        RichMediaImExpand -> "RICH_MEDIA_IM_EXPAND"
-        RichMediaInpage -> "RICH_MEDIA_INPAGE"
-        RichMediaInpageFloating -> "RICH_MEDIA_INPAGE_FLOATING"
-        RichMediaInterstitialFloat -> "RICH_MEDIA_INTERSTITIAL_FLOAT"
-        RichMediaMobileInApp -> "RICH_MEDIA_MOBILE_IN_APP"
-        RichMediaMultiFloating -> "RICH_MEDIA_MULTI_FLOATING"
-        RichMediaPeelDown -> "RICH_MEDIA_PEEL_DOWN"
-        TrackingText -> "TRACKING_TEXT"
-        VastRedirect -> "VAST_REDIRECT"
-        VpaidLinear -> "VPAID_LINEAR"
-        VpaidNonLinear -> "VPAID_NON_LINEAR"
-
-instance FromJSON CreativesListTypes where
-    parseJSON = parseJSONText "CreativesListTypes"
-
-instance ToJSON CreativesListTypes where
-    toJSON = toJSONText
-
-data DirectorySiteInpageTagFormatsItem
-    = IframeJavascriptInpage
-      -- ^ @IFRAME_JAVASCRIPT_INPAGE@
-    | InternalRedirectInpage
-      -- ^ @INTERNAL_REDIRECT_INPAGE@
-    | JavascriptInpage
-      -- ^ @JAVASCRIPT_INPAGE@
-    | Standard
-      -- ^ @STANDARD@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DirectorySiteInpageTagFormatsItem
-
-instance FromText DirectorySiteInpageTagFormatsItem where
-    fromText = \case
-        "IFRAME_JAVASCRIPT_INPAGE" -> Just IframeJavascriptInpage
-        "INTERNAL_REDIRECT_INPAGE" -> Just InternalRedirectInpage
-        "JAVASCRIPT_INPAGE" -> Just JavascriptInpage
-        "STANDARD" -> Just Standard
-        _ -> Nothing
-
-instance ToText DirectorySiteInpageTagFormatsItem where
-    toText = \case
-        IframeJavascriptInpage -> "IFRAME_JAVASCRIPT_INPAGE"
-        InternalRedirectInpage -> "INTERNAL_REDIRECT_INPAGE"
-        JavascriptInpage -> "JAVASCRIPT_INPAGE"
-        Standard -> "STANDARD"
-
-instance FromJSON DirectorySiteInpageTagFormatsItem where
-    parseJSON = parseJSONText "DirectorySiteInpageTagFormatsItem"
-
-instance ToJSON DirectorySiteInpageTagFormatsItem where
-    toJSON = toJSONText
-
--- | Window mode options for flash assets. Applicable to the following
--- creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING,
--- RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-data CreativeAssetWindowMode
-    = Opaque
-      -- ^ @OPAQUE@
-    | Transparent
-      -- ^ @TRANSPARENT@
-    | Window
-      -- ^ @WINDOW@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetWindowMode
-
-instance FromText CreativeAssetWindowMode where
-    fromText = \case
-        "OPAQUE" -> Just Opaque
-        "TRANSPARENT" -> Just Transparent
-        "WINDOW" -> Just Window
-        _ -> Nothing
-
-instance ToText CreativeAssetWindowMode where
-    toText = \case
-        Opaque -> "OPAQUE"
-        Transparent -> "TRANSPARENT"
-        Window -> "WINDOW"
-
-instance FromJSON CreativeAssetWindowMode where
-    parseJSON = parseJSONText "CreativeAssetWindowMode"
-
-instance ToJSON CreativeAssetWindowMode where
-    toJSON = toJSONText
-
--- | Possible alignments for an asset. This is a read-only field. Applicable
--- to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-data CreativeAssetAlignment
-    = AlignmentBottom
-      -- ^ @ALIGNMENT_BOTTOM@
-    | AlignmentLeft
-      -- ^ @ALIGNMENT_LEFT@
-    | AlignmentRight
-      -- ^ @ALIGNMENT_RIGHT@
-    | AlignmentTop
-      -- ^ @ALIGNMENT_TOP@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetAlignment
-
-instance FromText CreativeAssetAlignment where
-    fromText = \case
-        "ALIGNMENT_BOTTOM" -> Just AlignmentBottom
-        "ALIGNMENT_LEFT" -> Just AlignmentLeft
-        "ALIGNMENT_RIGHT" -> Just AlignmentRight
-        "ALIGNMENT_TOP" -> Just AlignmentTop
-        _ -> Nothing
-
-instance ToText CreativeAssetAlignment where
-    toText = \case
-        AlignmentBottom -> "ALIGNMENT_BOTTOM"
-        AlignmentLeft -> "ALIGNMENT_LEFT"
-        AlignmentRight -> "ALIGNMENT_RIGHT"
-        AlignmentTop -> "ALIGNMENT_TOP"
-
-instance FromJSON CreativeAssetAlignment where
-    parseJSON = parseJSONText "CreativeAssetAlignment"
-
-instance ToJSON CreativeAssetAlignment where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data RemarketingListsListSortOrder
-    = RLLSOAscending
-      -- ^ @ASCENDING@
-    | RLLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable RemarketingListsListSortOrder
-
-instance FromText RemarketingListsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just RLLSOAscending
-        "DESCENDING" -> Just RLLSODescending
-        _ -> Nothing
-
-instance ToText RemarketingListsListSortOrder where
-    toText = \case
-        RLLSOAscending -> "ASCENDING"
-        RLLSODescending -> "DESCENDING"
-
-instance FromJSON RemarketingListsListSortOrder where
-    parseJSON = parseJSONText "RemarketingListsListSortOrder"
-
-instance ToJSON RemarketingListsListSortOrder where
-    toJSON = toJSONText
-
--- | Select only placement groups with these pricing types.
-data PlacementGroupsListPricingTypes
-    = PGLPTPricingTypeCpa
-      -- ^ @PRICING_TYPE_CPA@
-    | PGLPTPricingTypeCpc
-      -- ^ @PRICING_TYPE_CPC@
-    | PGLPTPricingTypeCpm
-      -- ^ @PRICING_TYPE_CPM@
-    | PGLPTPricingTypeFlatRateClicks
-      -- ^ @PRICING_TYPE_FLAT_RATE_CLICKS@
-    | PGLPTPricingTypeFlatRateImpressions
-      -- ^ @PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementGroupsListPricingTypes
-
-instance FromText PlacementGroupsListPricingTypes where
-    fromText = \case
-        "PRICING_TYPE_CPA" -> Just PGLPTPricingTypeCpa
-        "PRICING_TYPE_CPC" -> Just PGLPTPricingTypeCpc
-        "PRICING_TYPE_CPM" -> Just PGLPTPricingTypeCpm
-        "PRICING_TYPE_FLAT_RATE_CLICKS" -> Just PGLPTPricingTypeFlatRateClicks
-        "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Just PGLPTPricingTypeFlatRateImpressions
-        _ -> Nothing
-
-instance ToText PlacementGroupsListPricingTypes where
-    toText = \case
-        PGLPTPricingTypeCpa -> "PRICING_TYPE_CPA"
-        PGLPTPricingTypeCpc -> "PRICING_TYPE_CPC"
-        PGLPTPricingTypeCpm -> "PRICING_TYPE_CPM"
-        PGLPTPricingTypeFlatRateClicks -> "PRICING_TYPE_FLAT_RATE_CLICKS"
-        PGLPTPricingTypeFlatRateImpressions -> "PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
-
-instance FromJSON PlacementGroupsListPricingTypes where
-    parseJSON = parseJSONText "PlacementGroupsListPricingTypes"
-
-instance ToJSON PlacementGroupsListPricingTypes where
-    toJSON = toJSONText
-
--- | Maximum number of active ads allowed for this account.
-data AccountActiveAdsLimitTier
-    = AAALTActiveAdsTier100K
-      -- ^ @ACTIVE_ADS_TIER_100K@
-    | AAALTActiveAdsTier200K
-      -- ^ @ACTIVE_ADS_TIER_200K@
-    | AAALTActiveAdsTier300K
-      -- ^ @ACTIVE_ADS_TIER_300K@
-    | AAALTActiveAdsTier40K
-      -- ^ @ACTIVE_ADS_TIER_40K@
-    | AAALTActiveAdsTier75K
-      -- ^ @ACTIVE_ADS_TIER_75K@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountActiveAdsLimitTier
-
-instance FromText AccountActiveAdsLimitTier where
-    fromText = \case
-        "ACTIVE_ADS_TIER_100K" -> Just AAALTActiveAdsTier100K
-        "ACTIVE_ADS_TIER_200K" -> Just AAALTActiveAdsTier200K
-        "ACTIVE_ADS_TIER_300K" -> Just AAALTActiveAdsTier300K
-        "ACTIVE_ADS_TIER_40K" -> Just AAALTActiveAdsTier40K
-        "ACTIVE_ADS_TIER_75K" -> Just AAALTActiveAdsTier75K
-        _ -> Nothing
-
-instance ToText AccountActiveAdsLimitTier where
-    toText = \case
-        AAALTActiveAdsTier100K -> "ACTIVE_ADS_TIER_100K"
-        AAALTActiveAdsTier200K -> "ACTIVE_ADS_TIER_200K"
-        AAALTActiveAdsTier300K -> "ACTIVE_ADS_TIER_300K"
-        AAALTActiveAdsTier40K -> "ACTIVE_ADS_TIER_40K"
-        AAALTActiveAdsTier75K -> "ACTIVE_ADS_TIER_75K"
-
-instance FromJSON AccountActiveAdsLimitTier where
-    parseJSON = parseJSONText "AccountActiveAdsLimitTier"
-
-instance ToJSON AccountActiveAdsLimitTier where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data AccountsListSortOrder
-    = AAscending
-      -- ^ @ASCENDING@
-    | ADescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountsListSortOrder
-
-instance FromText AccountsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just AAscending
-        "DESCENDING" -> Just ADescending
-        _ -> Nothing
-
-instance ToText AccountsListSortOrder where
-    toText = \case
-        AAscending -> "ASCENDING"
-        ADescending -> "DESCENDING"
-
-instance FromJSON AccountsListSortOrder where
-    parseJSON = parseJSONText "AccountsListSortOrder"
-
-instance ToJSON AccountsListSortOrder where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data SubAccountsListSortField
-    = SALSFID
-      -- ^ @ID@
-    | SALSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable SubAccountsListSortField
-
-instance FromText SubAccountsListSortField where
-    fromText = \case
-        "ID" -> Just SALSFID
-        "NAME" -> Just SALSFName
-        _ -> Nothing
-
-instance ToText SubAccountsListSortField where
-    toText = \case
-        SALSFID -> "ID"
-        SALSFName -> "NAME"
-
-instance FromJSON SubAccountsListSortField where
-    parseJSON = parseJSONText "SubAccountsListSortField"
-
-instance ToJSON SubAccountsListSortField where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data AdsListSortField
-    = ALSFID
-      -- ^ @ID@
-    | ALSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdsListSortField
-
-instance FromText AdsListSortField where
-    fromText = \case
-        "ID" -> Just ALSFID
-        "NAME" -> Just ALSFName
-        _ -> Nothing
-
-instance ToText AdsListSortField where
-    toText = \case
-        ALSFID -> "ID"
-        ALSFName -> "NAME"
-
-instance FromJSON AdsListSortField where
-    parseJSON = parseJSONText "AdsListSortField"
-
-instance ToJSON AdsListSortField where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data ProjectsListSortField
-    = PID
-      -- ^ @ID@
-    | PName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ProjectsListSortField
-
-instance FromText ProjectsListSortField where
-    fromText = \case
-        "ID" -> Just PID
-        "NAME" -> Just PName
-        _ -> Nothing
-
-instance ToText ProjectsListSortField where
-    toText = \case
-        PID -> "ID"
-        PName -> "NAME"
-
-instance FromJSON ProjectsListSortField where
-    parseJSON = parseJSONText "ProjectsListSortField"
-
-instance ToJSON ProjectsListSortField where
-    toJSON = toJSONText
-
--- | Select only ads with these types.
-data AdsListType
-    = AdServingClickTracker
-      -- ^ @AD_SERVING_CLICK_TRACKER@
-    | AdServingDefaultAd
-      -- ^ @AD_SERVING_DEFAULT_AD@
-    | AdServingStandardAd
-      -- ^ @AD_SERVING_STANDARD_AD@
-    | AdServingTracking
-      -- ^ @AD_SERVING_TRACKING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdsListType
-
-instance FromText AdsListType where
-    fromText = \case
-        "AD_SERVING_CLICK_TRACKER" -> Just AdServingClickTracker
-        "AD_SERVING_DEFAULT_AD" -> Just AdServingDefaultAd
-        "AD_SERVING_STANDARD_AD" -> Just AdServingStandardAd
-        "AD_SERVING_TRACKING" -> Just AdServingTracking
-        _ -> Nothing
-
-instance ToText AdsListType where
-    toText = \case
-        AdServingClickTracker -> "AD_SERVING_CLICK_TRACKER"
-        AdServingDefaultAd -> "AD_SERVING_DEFAULT_AD"
-        AdServingStandardAd -> "AD_SERVING_STANDARD_AD"
-        AdServingTracking -> "AD_SERVING_TRACKING"
-
-instance FromJSON AdsListType where
-    parseJSON = parseJSONText "AdsListType"
-
-instance ToJSON AdsListType where
-    toJSON = toJSONText
-
--- | Optimization model for this configuration.
-data CreativeOptimizationConfigurationOptimizationModel
-    = Click
-      -- ^ @CLICK@
-    | PostClick
-      -- ^ @POST_CLICK@
-    | PostClickAndImpression
-      -- ^ @POST_CLICK_AND_IMPRESSION@
-    | PostImpression
-      -- ^ @POST_IMPRESSION@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeOptimizationConfigurationOptimizationModel
-
-instance FromText CreativeOptimizationConfigurationOptimizationModel where
-    fromText = \case
-        "CLICK" -> Just Click
-        "POST_CLICK" -> Just PostClick
-        "POST_CLICK_AND_IMPRESSION" -> Just PostClickAndImpression
-        "POST_IMPRESSION" -> Just PostImpression
-        _ -> Nothing
-
-instance ToText CreativeOptimizationConfigurationOptimizationModel where
-    toText = \case
-        Click -> "CLICK"
-        PostClick -> "POST_CLICK"
-        PostClickAndImpression -> "POST_CLICK_AND_IMPRESSION"
-        PostImpression -> "POST_IMPRESSION"
-
-instance FromJSON CreativeOptimizationConfigurationOptimizationModel where
-    parseJSON = parseJSONText "CreativeOptimizationConfigurationOptimizationModel"
-
-instance ToJSON CreativeOptimizationConfigurationOptimizationModel where
-    toJSON = toJSONText
-
--- | Administrative level required to enable this account permission.
-data AccountPermissionLevel
-    = Administrator
-      -- ^ @ADMINISTRATOR@
-    | User
-      -- ^ @USER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountPermissionLevel
-
-instance FromText AccountPermissionLevel where
-    fromText = \case
-        "ADMINISTRATOR" -> Just Administrator
-        "USER" -> Just User
-        _ -> Nothing
-
-instance ToText AccountPermissionLevel where
-    toText = \case
-        Administrator -> "ADMINISTRATOR"
-        User -> "USER"
-
-instance FromJSON AccountPermissionLevel where
-    parseJSON = parseJSONText "AccountPermissionLevel"
-
-instance ToJSON AccountPermissionLevel where
-    toJSON = toJSONText
-
--- | List population term type determines the applicable fields in this
--- object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName,
--- variableFriendlyName, operator, value, and negation are applicable. If
--- set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are
--- applicable. If set to REFERRER_TERM then operator, value, and negation
--- are applicable.
-data ListPopulationTermType
-    = CustomVariableTerm
-      -- ^ @CUSTOM_VARIABLE_TERM@
-    | ListMembershipTerm
-      -- ^ @LIST_MEMBERSHIP_TERM@
-    | ReferrerTerm
-      -- ^ @REFERRER_TERM@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ListPopulationTermType
-
-instance FromText ListPopulationTermType where
-    fromText = \case
-        "CUSTOM_VARIABLE_TERM" -> Just CustomVariableTerm
-        "LIST_MEMBERSHIP_TERM" -> Just ListMembershipTerm
-        "REFERRER_TERM" -> Just ReferrerTerm
-        _ -> Nothing
-
-instance ToText ListPopulationTermType where
-    toText = \case
-        CustomVariableTerm -> "CUSTOM_VARIABLE_TERM"
-        ListMembershipTerm -> "LIST_MEMBERSHIP_TERM"
-        ReferrerTerm -> "REFERRER_TERM"
-
-instance FromJSON ListPopulationTermType where
-    parseJSON = parseJSONText "ListPopulationTermType"
-
-instance ToJSON ListPopulationTermType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data AdvertiserGroupsListSortOrder
-    = AGLSOAscending
-      -- ^ @ASCENDING@
-    | AGLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdvertiserGroupsListSortOrder
-
-instance FromText AdvertiserGroupsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just AGLSOAscending
-        "DESCENDING" -> Just AGLSODescending
-        _ -> Nothing
-
-instance ToText AdvertiserGroupsListSortOrder where
-    toText = \case
-        AGLSOAscending -> "ASCENDING"
-        AGLSODescending -> "DESCENDING"
-
-instance FromJSON AdvertiserGroupsListSortOrder where
-    parseJSON = parseJSONText "AdvertiserGroupsListSortOrder"
-
-instance ToJSON AdvertiserGroupsListSortOrder where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data CreativeFieldValuesListSortOrder
-    = CFVLSOAscending
-      -- ^ @ASCENDING@
-    | CFVLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeFieldValuesListSortOrder
-
-instance FromText CreativeFieldValuesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just CFVLSOAscending
-        "DESCENDING" -> Just CFVLSODescending
-        _ -> Nothing
-
-instance ToText CreativeFieldValuesListSortOrder where
-    toText = \case
-        CFVLSOAscending -> "ASCENDING"
-        CFVLSODescending -> "DESCENDING"
-
-instance FromJSON CreativeFieldValuesListSortOrder where
-    parseJSON = parseJSONText "CreativeFieldValuesListSortOrder"
-
-instance ToJSON CreativeFieldValuesListSortOrder where
-    toJSON = toJSONText
-
--- | An optional sort order for the dimension column.
-data SortedDimensionSortOrder
-    = SDSOAscending
-      -- ^ @ASCENDING@
-    | SDSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable SortedDimensionSortOrder
-
-instance FromText SortedDimensionSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just SDSOAscending
-        "DESCENDING" -> Just SDSODescending
-        _ -> Nothing
-
-instance ToText SortedDimensionSortOrder where
-    toText = \case
-        SDSOAscending -> "ASCENDING"
-        SDSODescending -> "DESCENDING"
-
-instance FromJSON SortedDimensionSortOrder where
-    parseJSON = parseJSONText "SortedDimensionSortOrder"
-
-instance ToJSON SortedDimensionSortOrder where
-    toJSON = toJSONText
-
--- | The field by which to sort the list.
-data FilesListSortField
-    = FLSFID
-      -- ^ @ID@
-      -- Sort by file ID.
-    | FLSFLastModifiedTime
-      -- ^ @LAST_MODIFIED_TIME@
-      -- Sort by \'lastmodifiedAt\' field.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FilesListSortField
-
-instance FromText FilesListSortField where
-    fromText = \case
-        "ID" -> Just FLSFID
-        "LAST_MODIFIED_TIME" -> Just FLSFLastModifiedTime
-        _ -> Nothing
-
-instance ToText FilesListSortField where
-    toText = \case
-        FLSFID -> "ID"
-        FLSFLastModifiedTime -> "LAST_MODIFIED_TIME"
-
-instance FromJSON FilesListSortField where
-    parseJSON = parseJSONText "FilesListSortField"
-
-instance ToJSON FilesListSortField where
-    toJSON = toJSONText
-
-data DirectorySiteInterstitialTagFormatsItem
-    = IframeJavascriptInterstitial
-      -- ^ @IFRAME_JAVASCRIPT_INTERSTITIAL@
-    | InternalRedirectInterstitial
-      -- ^ @INTERNAL_REDIRECT_INTERSTITIAL@
-    | JavascriptInterstitial
-      -- ^ @JAVASCRIPT_INTERSTITIAL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DirectorySiteInterstitialTagFormatsItem
-
-instance FromText DirectorySiteInterstitialTagFormatsItem where
-    fromText = \case
-        "IFRAME_JAVASCRIPT_INTERSTITIAL" -> Just IframeJavascriptInterstitial
-        "INTERNAL_REDIRECT_INTERSTITIAL" -> Just InternalRedirectInterstitial
-        "JAVASCRIPT_INTERSTITIAL" -> Just JavascriptInterstitial
-        _ -> Nothing
-
-instance ToText DirectorySiteInterstitialTagFormatsItem where
-    toText = \case
-        IframeJavascriptInterstitial -> "IFRAME_JAVASCRIPT_INTERSTITIAL"
-        InternalRedirectInterstitial -> "INTERNAL_REDIRECT_INTERSTITIAL"
-        JavascriptInterstitial -> "JAVASCRIPT_INTERSTITIAL"
-
-instance FromJSON DirectorySiteInterstitialTagFormatsItem where
-    parseJSON = parseJSONText "DirectorySiteInterstitialTagFormatsItem"
-
-instance ToJSON DirectorySiteInterstitialTagFormatsItem where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data EventTagsListSortField
-    = ETLSFID
-      -- ^ @ID@
-    | ETLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable EventTagsListSortField
-
-instance FromText EventTagsListSortField where
-    fromText = \case
-        "ID" -> Just ETLSFID
-        "NAME" -> Just ETLSFName
-        _ -> Nothing
-
-instance ToText EventTagsListSortField where
-    toText = \case
-        ETLSFID -> "ID"
-        ETLSFName -> "NAME"
-
-instance FromJSON EventTagsListSortField where
-    parseJSON = parseJSONText "EventTagsListSortField"
-
-instance ToJSON EventTagsListSortField where
-    toJSON = toJSONText
-
--- | Offset top unit for an asset. This is a read-only field if the asset
--- displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following
--- creative types: all RICH_MEDIA.
-data CreativeAssetPositionTopUnit
-    = CAPTUOffSetUnitPercent
-      -- ^ @OFFSET_UNIT_PERCENT@
-    | CAPTUOffSetUnitPixel
-      -- ^ @OFFSET_UNIT_PIXEL@
-    | CAPTUOffSetUnitPixelFromCenter
-      -- ^ @OFFSET_UNIT_PIXEL_FROM_CENTER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetPositionTopUnit
-
-instance FromText CreativeAssetPositionTopUnit where
-    fromText = \case
-        "OFFSET_UNIT_PERCENT" -> Just CAPTUOffSetUnitPercent
-        "OFFSET_UNIT_PIXEL" -> Just CAPTUOffSetUnitPixel
-        "OFFSET_UNIT_PIXEL_FROM_CENTER" -> Just CAPTUOffSetUnitPixelFromCenter
-        _ -> Nothing
-
-instance ToText CreativeAssetPositionTopUnit where
-    toText = \case
-        CAPTUOffSetUnitPercent -> "OFFSET_UNIT_PERCENT"
-        CAPTUOffSetUnitPixel -> "OFFSET_UNIT_PIXEL"
-        CAPTUOffSetUnitPixelFromCenter -> "OFFSET_UNIT_PIXEL_FROM_CENTER"
-
-instance FromJSON CreativeAssetPositionTopUnit where
-    parseJSON = parseJSONText "CreativeAssetPositionTopUnit"
-
-instance ToJSON CreativeAssetPositionTopUnit where
-    toJSON = toJSONText
-
--- | Type of the associated floodlight activity group. This is a read-only
--- field.
-data FloodlightActivityFloodlightActivityGroupType
-    = FAFAGTCounter
-      -- ^ @COUNTER@
-    | FAFAGTSale
-      -- ^ @SALE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivityFloodlightActivityGroupType
-
-instance FromText FloodlightActivityFloodlightActivityGroupType where
-    fromText = \case
-        "COUNTER" -> Just FAFAGTCounter
-        "SALE" -> Just FAFAGTSale
-        _ -> Nothing
-
-instance ToText FloodlightActivityFloodlightActivityGroupType where
-    toText = \case
-        FAFAGTCounter -> "COUNTER"
-        FAFAGTSale -> "SALE"
-
-instance FromJSON FloodlightActivityFloodlightActivityGroupType where
-    parseJSON = parseJSONText "FloodlightActivityFloodlightActivityGroupType"
-
-instance ToJSON FloodlightActivityFloodlightActivityGroupType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data DirectorySiteContactsListSortOrder
-    = DSCLSOAscending
-      -- ^ @ASCENDING@
-    | DSCLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DirectorySiteContactsListSortOrder
-
-instance FromText DirectorySiteContactsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just DSCLSOAscending
-        "DESCENDING" -> Just DSCLSODescending
-        _ -> Nothing
-
-instance ToText DirectorySiteContactsListSortOrder where
-    toText = \case
-        DSCLSOAscending -> "ASCENDING"
-        DSCLSODescending -> "DESCENDING"
-
-instance FromJSON DirectorySiteContactsListSortOrder where
-    parseJSON = parseJSONText "DirectorySiteContactsListSortOrder"
-
-instance ToJSON DirectorySiteContactsListSortOrder where
-    toJSON = toJSONText
-
--- | Group type of this inventory item if it represents a placement group. Is
--- null otherwise. There are two type of placement groups:
--- PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory
--- items that acts as a single pricing point for a group of tags.
--- PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items
--- that not only acts as a single pricing point, but also assumes that all
--- the tags in it will be served at the same time. A roadblock requires one
--- of its assigned inventory items to be marked as primary.
-data PricingGroupType
-    = PlanningPlacementGroupTypePackage
-      -- ^ @PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE@
-    | PlanningPlacementGroupTypeRoadblock
-      -- ^ @PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PricingGroupType
-
-instance FromText PricingGroupType where
-    fromText = \case
-        "PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE" -> Just PlanningPlacementGroupTypePackage
-        "PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK" -> Just PlanningPlacementGroupTypeRoadblock
-        _ -> Nothing
-
-instance ToText PricingGroupType where
-    toText = \case
-        PlanningPlacementGroupTypePackage -> "PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE"
-        PlanningPlacementGroupTypeRoadblock -> "PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK"
-
-instance FromJSON PricingGroupType where
-    parseJSON = parseJSONText "PricingGroupType"
-
-instance ToJSON PricingGroupType where
-    toJSON = toJSONText
-
--- | Select only ads with the specified creativeType.
-data AdsListCreativeType
-    = ALCTBrandSafeDefaultInstreamVideo
-      -- ^ @BRAND_SAFE_DEFAULT_INSTREAM_VIDEO@
-    | ALCTCustomInpage
-      -- ^ @CUSTOM_INPAGE@
-    | ALCTCustomInterstitial
-      -- ^ @CUSTOM_INTERSTITIAL@
-    | ALCTEnhancedBanner
-      -- ^ @ENHANCED_BANNER@
-    | ALCTEnhancedImage
-      -- ^ @ENHANCED_IMAGE@
-    | ALCTFlashInpage
-      -- ^ @FLASH_INPAGE@
-    | ALCTHTML5Banner
-      -- ^ @HTML5_BANNER@
-    | ALCTImage
-      -- ^ @IMAGE@
-    | ALCTInstreamVideo
-      -- ^ @INSTREAM_VIDEO@
-    | ALCTInternalRedirect
-      -- ^ @INTERNAL_REDIRECT@
-    | ALCTInterstitialInternalRedirect
-      -- ^ @INTERSTITIAL_INTERNAL_REDIRECT@
-    | ALCTRedirect
-      -- ^ @REDIRECT@
-    | ALCTRichMediaExpanding
-      -- ^ @RICH_MEDIA_EXPANDING@
-    | ALCTRichMediaImExpand
-      -- ^ @RICH_MEDIA_IM_EXPAND@
-    | ALCTRichMediaInpage
-      -- ^ @RICH_MEDIA_INPAGE@
-    | ALCTRichMediaInpageFloating
-      -- ^ @RICH_MEDIA_INPAGE_FLOATING@
-    | ALCTRichMediaInterstitialFloat
-      -- ^ @RICH_MEDIA_INTERSTITIAL_FLOAT@
-    | ALCTRichMediaMobileInApp
-      -- ^ @RICH_MEDIA_MOBILE_IN_APP@
-    | ALCTRichMediaMultiFloating
-      -- ^ @RICH_MEDIA_MULTI_FLOATING@
-    | ALCTRichMediaPeelDown
-      -- ^ @RICH_MEDIA_PEEL_DOWN@
-    | ALCTTrackingText
-      -- ^ @TRACKING_TEXT@
-    | ALCTVastRedirect
-      -- ^ @VAST_REDIRECT@
-    | ALCTVpaidLinear
-      -- ^ @VPAID_LINEAR@
-    | ALCTVpaidNonLinear
-      -- ^ @VPAID_NON_LINEAR@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdsListCreativeType
-
-instance FromText AdsListCreativeType where
-    fromText = \case
-        "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO" -> Just ALCTBrandSafeDefaultInstreamVideo
-        "CUSTOM_INPAGE" -> Just ALCTCustomInpage
-        "CUSTOM_INTERSTITIAL" -> Just ALCTCustomInterstitial
-        "ENHANCED_BANNER" -> Just ALCTEnhancedBanner
-        "ENHANCED_IMAGE" -> Just ALCTEnhancedImage
-        "FLASH_INPAGE" -> Just ALCTFlashInpage
-        "HTML5_BANNER" -> Just ALCTHTML5Banner
-        "IMAGE" -> Just ALCTImage
-        "INSTREAM_VIDEO" -> Just ALCTInstreamVideo
-        "INTERNAL_REDIRECT" -> Just ALCTInternalRedirect
-        "INTERSTITIAL_INTERNAL_REDIRECT" -> Just ALCTInterstitialInternalRedirect
-        "REDIRECT" -> Just ALCTRedirect
-        "RICH_MEDIA_EXPANDING" -> Just ALCTRichMediaExpanding
-        "RICH_MEDIA_IM_EXPAND" -> Just ALCTRichMediaImExpand
-        "RICH_MEDIA_INPAGE" -> Just ALCTRichMediaInpage
-        "RICH_MEDIA_INPAGE_FLOATING" -> Just ALCTRichMediaInpageFloating
-        "RICH_MEDIA_INTERSTITIAL_FLOAT" -> Just ALCTRichMediaInterstitialFloat
-        "RICH_MEDIA_MOBILE_IN_APP" -> Just ALCTRichMediaMobileInApp
-        "RICH_MEDIA_MULTI_FLOATING" -> Just ALCTRichMediaMultiFloating
-        "RICH_MEDIA_PEEL_DOWN" -> Just ALCTRichMediaPeelDown
-        "TRACKING_TEXT" -> Just ALCTTrackingText
-        "VAST_REDIRECT" -> Just ALCTVastRedirect
-        "VPAID_LINEAR" -> Just ALCTVpaidLinear
-        "VPAID_NON_LINEAR" -> Just ALCTVpaidNonLinear
-        _ -> Nothing
-
-instance ToText AdsListCreativeType where
-    toText = \case
-        ALCTBrandSafeDefaultInstreamVideo -> "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO"
-        ALCTCustomInpage -> "CUSTOM_INPAGE"
-        ALCTCustomInterstitial -> "CUSTOM_INTERSTITIAL"
-        ALCTEnhancedBanner -> "ENHANCED_BANNER"
-        ALCTEnhancedImage -> "ENHANCED_IMAGE"
-        ALCTFlashInpage -> "FLASH_INPAGE"
-        ALCTHTML5Banner -> "HTML5_BANNER"
-        ALCTImage -> "IMAGE"
-        ALCTInstreamVideo -> "INSTREAM_VIDEO"
-        ALCTInternalRedirect -> "INTERNAL_REDIRECT"
-        ALCTInterstitialInternalRedirect -> "INTERSTITIAL_INTERNAL_REDIRECT"
-        ALCTRedirect -> "REDIRECT"
-        ALCTRichMediaExpanding -> "RICH_MEDIA_EXPANDING"
-        ALCTRichMediaImExpand -> "RICH_MEDIA_IM_EXPAND"
-        ALCTRichMediaInpage -> "RICH_MEDIA_INPAGE"
-        ALCTRichMediaInpageFloating -> "RICH_MEDIA_INPAGE_FLOATING"
-        ALCTRichMediaInterstitialFloat -> "RICH_MEDIA_INTERSTITIAL_FLOAT"
-        ALCTRichMediaMobileInApp -> "RICH_MEDIA_MOBILE_IN_APP"
-        ALCTRichMediaMultiFloating -> "RICH_MEDIA_MULTI_FLOATING"
-        ALCTRichMediaPeelDown -> "RICH_MEDIA_PEEL_DOWN"
-        ALCTTrackingText -> "TRACKING_TEXT"
-        ALCTVastRedirect -> "VAST_REDIRECT"
-        ALCTVpaidLinear -> "VPAID_LINEAR"
-        ALCTVpaidNonLinear -> "VPAID_NON_LINEAR"
-
-instance FromJSON AdsListCreativeType where
-    parseJSON = parseJSONText "AdsListCreativeType"
-
-instance ToJSON AdsListCreativeType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data FloodlightActivityGroupsListSortOrder
-    = FAGLSOAscending
-      -- ^ @ASCENDING@
-    | FAGLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivityGroupsListSortOrder
-
-instance FromText FloodlightActivityGroupsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just FAGLSOAscending
-        "DESCENDING" -> Just FAGLSODescending
-        _ -> Nothing
-
-instance ToText FloodlightActivityGroupsListSortOrder where
-    toText = \case
-        FAGLSOAscending -> "ASCENDING"
-        FAGLSODescending -> "DESCENDING"
-
-instance FromJSON FloodlightActivityGroupsListSortOrder where
-    parseJSON = parseJSONText "FloodlightActivityGroupsListSortOrder"
-
-instance ToJSON FloodlightActivityGroupsListSortOrder where
-    toJSON = toJSONText
-
--- | Type of creative rotation. Can be used to specify whether to use
--- sequential or random rotation.
-data CreativeRotationType
-    = CreativeRotationTypeRandom
-      -- ^ @CREATIVE_ROTATION_TYPE_RANDOM@
-    | CreativeRotationTypeSequential
-      -- ^ @CREATIVE_ROTATION_TYPE_SEQUENTIAL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeRotationType
-
-instance FromText CreativeRotationType where
-    fromText = \case
-        "CREATIVE_ROTATION_TYPE_RANDOM" -> Just CreativeRotationTypeRandom
-        "CREATIVE_ROTATION_TYPE_SEQUENTIAL" -> Just CreativeRotationTypeSequential
-        _ -> Nothing
-
-instance ToText CreativeRotationType where
-    toText = \case
-        CreativeRotationTypeRandom -> "CREATIVE_ROTATION_TYPE_RANDOM"
-        CreativeRotationTypeSequential -> "CREATIVE_ROTATION_TYPE_SEQUENTIAL"
-
-instance FromJSON CreativeRotationType where
-    parseJSON = parseJSONText "CreativeRotationType"
-
-instance ToJSON CreativeRotationType where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data OrdersListSortField
-    = OLSFID
-      -- ^ @ID@
-    | OLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable OrdersListSortField
-
-instance FromText OrdersListSortField where
-    fromText = \case
-        "ID" -> Just OLSFID
-        "NAME" -> Just OLSFName
-        _ -> Nothing
-
-instance ToText OrdersListSortField where
-    toText = \case
-        OLSFID -> "ID"
-        OLSFName -> "NAME"
-
-instance FromJSON OrdersListSortField where
-    parseJSON = parseJSONText "OrdersListSortField"
-
-instance ToJSON OrdersListSortField where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data PlacementGroupsListSortField
-    = PGLSFID
-      -- ^ @ID@
-    | PGLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementGroupsListSortField
-
-instance FromText PlacementGroupsListSortField where
-    fromText = \case
-        "ID" -> Just PGLSFID
-        "NAME" -> Just PGLSFName
-        _ -> Nothing
-
-instance ToText PlacementGroupsListSortField where
-    toText = \case
-        PGLSFID -> "ID"
-        PGLSFName -> "NAME"
-
-instance FromJSON PlacementGroupsListSortField where
-    parseJSON = parseJSONText "PlacementGroupsListSortField"
-
-instance ToJSON PlacementGroupsListSortField where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data DirectorySitesListSortOrder
-    = DSLSOAscending
-      -- ^ @ASCENDING@
-    | DSLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DirectorySitesListSortOrder
-
-instance FromText DirectorySitesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just DSLSOAscending
-        "DESCENDING" -> Just DSLSODescending
-        _ -> Nothing
-
-instance ToText DirectorySitesListSortOrder where
-    toText = \case
-        DSLSOAscending -> "ASCENDING"
-        DSLSODescending -> "DESCENDING"
-
-instance FromJSON DirectorySitesListSortOrder where
-    parseJSON = parseJSONText "DirectorySitesListSortOrder"
-
-instance ToJSON DirectorySitesListSortOrder where
-    toJSON = toJSONText
-
-data CreativeAssetDetectedFeaturesItem
-    = CADFIApplicationCache
-      -- ^ @APPLICATION_CACHE@
-    | CADFIAudio
-      -- ^ @AUDIO@
-    | CADFICanvas
-      -- ^ @CANVAS@
-    | CADFICanvasText
-      -- ^ @CANVAS_TEXT@
-    | CADFICssAnimations
-      -- ^ @CSS_ANIMATIONS@
-    | CADFICssBackgRoundSize
-      -- ^ @CSS_BACKGROUND_SIZE@
-    | CADFICssBOrderImage
-      -- ^ @CSS_BORDER_IMAGE@
-    | CADFICssBOrderRadius
-      -- ^ @CSS_BORDER_RADIUS@
-    | CADFICssBoxShadow
-      -- ^ @CSS_BOX_SHADOW@
-    | CADFICssColumns
-      -- ^ @CSS_COLUMNS@
-    | CADFICssFlexBox
-      -- ^ @CSS_FLEX_BOX@
-    | CADFICssFontFace
-      -- ^ @CSS_FONT_FACE@
-    | CADFICssGeneratedContent
-      -- ^ @CSS_GENERATED_CONTENT@
-    | CADFICssGradients
-      -- ^ @CSS_GRADIENTS@
-    | CADFICssHsla
-      -- ^ @CSS_HSLA@
-    | CADFICssMultipleBgs
-      -- ^ @CSS_MULTIPLE_BGS@
-    | CADFICssOpacity
-      -- ^ @CSS_OPACITY@
-    | CADFICssReflections
-      -- ^ @CSS_REFLECTIONS@
-    | CADFICssRgba
-      -- ^ @CSS_RGBA@
-    | CADFICssTextShadow
-      -- ^ @CSS_TEXT_SHADOW@
-    | CADFICssTransforms
-      -- ^ @CSS_TRANSFORMS@
-    | CADFICssTRANSFORMS3D
-      -- ^ @CSS_TRANSFORMS3D@
-    | CADFICssTransitions
-      -- ^ @CSS_TRANSITIONS@
-    | CADFIDragAndDrop
-      -- ^ @DRAG_AND_DROP@
-    | CADFIGeoLocation
-      -- ^ @GEO_LOCATION@
-    | CADFIHashChange
-      -- ^ @HASH_CHANGE@
-    | CADFIHistory
-      -- ^ @HISTORY@
-    | CADFIIndexedDB
-      -- ^ @INDEXED_DB@
-    | CADFIInlineSvg
-      -- ^ @INLINE_SVG@
-    | CADFIInputAttrAutocomplete
-      -- ^ @INPUT_ATTR_AUTOCOMPLETE@
-    | CADFIInputAttrAutofocus
-      -- ^ @INPUT_ATTR_AUTOFOCUS@
-    | CADFIInputAttrList
-      -- ^ @INPUT_ATTR_LIST@
-    | CADFIInputAttrMax
-      -- ^ @INPUT_ATTR_MAX@
-    | CADFIInputAttrMin
-      -- ^ @INPUT_ATTR_MIN@
-    | CADFIInputAttrMultiple
-      -- ^ @INPUT_ATTR_MULTIPLE@
-    | CADFIInputAttrPattern
-      -- ^ @INPUT_ATTR_PATTERN@
-    | CADFIInputAttrPlaceholder
-      -- ^ @INPUT_ATTR_PLACEHOLDER@
-    | CADFIInputAttrRequired
-      -- ^ @INPUT_ATTR_REQUIRED@
-    | CADFIInputAttrStep
-      -- ^ @INPUT_ATTR_STEP@
-    | CADFIInputTypeColor
-      -- ^ @INPUT_TYPE_COLOR@
-    | CADFIInputTypeDate
-      -- ^ @INPUT_TYPE_DATE@
-    | CADFIInputTypeDatetime
-      -- ^ @INPUT_TYPE_DATETIME@
-    | CADFIInputTypeDatetimeLocal
-      -- ^ @INPUT_TYPE_DATETIME_LOCAL@
-    | CADFIInputTypeEmail
-      -- ^ @INPUT_TYPE_EMAIL@
-    | CADFIInputTypeMonth
-      -- ^ @INPUT_TYPE_MONTH@
-    | CADFIInputTypeNumber
-      -- ^ @INPUT_TYPE_NUMBER@
-    | CADFIInputTypeRange
-      -- ^ @INPUT_TYPE_RANGE@
-    | CADFIInputTypeSearch
-      -- ^ @INPUT_TYPE_SEARCH@
-    | CADFIInputTypeTel
-      -- ^ @INPUT_TYPE_TEL@
-    | CADFIInputTypeTime
-      -- ^ @INPUT_TYPE_TIME@
-    | CADFIInputTypeURL
-      -- ^ @INPUT_TYPE_URL@
-    | CADFIInputTypeWeek
-      -- ^ @INPUT_TYPE_WEEK@
-    | CADFILocalStorage
-      -- ^ @LOCAL_STORAGE@
-    | CADFIPostMessage
-      -- ^ @POST_MESSAGE@
-    | CADFISessionStorage
-      -- ^ @SESSION_STORAGE@
-    | CADFISmil
-      -- ^ @SMIL@
-    | CADFISvgClipPaths
-      -- ^ @SVG_CLIP_PATHS@
-    | CADFISvgFeImage
-      -- ^ @SVG_FE_IMAGE@
-    | CADFISvgFilters
-      -- ^ @SVG_FILTERS@
-    | CADFISvgHref
-      -- ^ @SVG_HREF@
-    | CADFITouch
-      -- ^ @TOUCH@
-    | CADFIVideo
-      -- ^ @VIDEO@
-    | CADFIWebgl
-      -- ^ @WEBGL@
-    | CADFIWebSockets
-      -- ^ @WEB_SOCKETS@
-    | CADFIWebSQLDatabase
-      -- ^ @WEB_SQL_DATABASE@
-    | CADFIWebWorkers
-      -- ^ @WEB_WORKERS@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetDetectedFeaturesItem
-
-instance FromText CreativeAssetDetectedFeaturesItem where
-    fromText = \case
-        "APPLICATION_CACHE" -> Just CADFIApplicationCache
-        "AUDIO" -> Just CADFIAudio
-        "CANVAS" -> Just CADFICanvas
-        "CANVAS_TEXT" -> Just CADFICanvasText
-        "CSS_ANIMATIONS" -> Just CADFICssAnimations
-        "CSS_BACKGROUND_SIZE" -> Just CADFICssBackgRoundSize
-        "CSS_BORDER_IMAGE" -> Just CADFICssBOrderImage
-        "CSS_BORDER_RADIUS" -> Just CADFICssBOrderRadius
-        "CSS_BOX_SHADOW" -> Just CADFICssBoxShadow
-        "CSS_COLUMNS" -> Just CADFICssColumns
-        "CSS_FLEX_BOX" -> Just CADFICssFlexBox
-        "CSS_FONT_FACE" -> Just CADFICssFontFace
-        "CSS_GENERATED_CONTENT" -> Just CADFICssGeneratedContent
-        "CSS_GRADIENTS" -> Just CADFICssGradients
-        "CSS_HSLA" -> Just CADFICssHsla
-        "CSS_MULTIPLE_BGS" -> Just CADFICssMultipleBgs
-        "CSS_OPACITY" -> Just CADFICssOpacity
-        "CSS_REFLECTIONS" -> Just CADFICssReflections
-        "CSS_RGBA" -> Just CADFICssRgba
-        "CSS_TEXT_SHADOW" -> Just CADFICssTextShadow
-        "CSS_TRANSFORMS" -> Just CADFICssTransforms
-        "CSS_TRANSFORMS3D" -> Just CADFICssTRANSFORMS3D
-        "CSS_TRANSITIONS" -> Just CADFICssTransitions
-        "DRAG_AND_DROP" -> Just CADFIDragAndDrop
-        "GEO_LOCATION" -> Just CADFIGeoLocation
-        "HASH_CHANGE" -> Just CADFIHashChange
-        "HISTORY" -> Just CADFIHistory
-        "INDEXED_DB" -> Just CADFIIndexedDB
-        "INLINE_SVG" -> Just CADFIInlineSvg
-        "INPUT_ATTR_AUTOCOMPLETE" -> Just CADFIInputAttrAutocomplete
-        "INPUT_ATTR_AUTOFOCUS" -> Just CADFIInputAttrAutofocus
-        "INPUT_ATTR_LIST" -> Just CADFIInputAttrList
-        "INPUT_ATTR_MAX" -> Just CADFIInputAttrMax
-        "INPUT_ATTR_MIN" -> Just CADFIInputAttrMin
-        "INPUT_ATTR_MULTIPLE" -> Just CADFIInputAttrMultiple
-        "INPUT_ATTR_PATTERN" -> Just CADFIInputAttrPattern
-        "INPUT_ATTR_PLACEHOLDER" -> Just CADFIInputAttrPlaceholder
-        "INPUT_ATTR_REQUIRED" -> Just CADFIInputAttrRequired
-        "INPUT_ATTR_STEP" -> Just CADFIInputAttrStep
-        "INPUT_TYPE_COLOR" -> Just CADFIInputTypeColor
-        "INPUT_TYPE_DATE" -> Just CADFIInputTypeDate
-        "INPUT_TYPE_DATETIME" -> Just CADFIInputTypeDatetime
-        "INPUT_TYPE_DATETIME_LOCAL" -> Just CADFIInputTypeDatetimeLocal
-        "INPUT_TYPE_EMAIL" -> Just CADFIInputTypeEmail
-        "INPUT_TYPE_MONTH" -> Just CADFIInputTypeMonth
-        "INPUT_TYPE_NUMBER" -> Just CADFIInputTypeNumber
-        "INPUT_TYPE_RANGE" -> Just CADFIInputTypeRange
-        "INPUT_TYPE_SEARCH" -> Just CADFIInputTypeSearch
-        "INPUT_TYPE_TEL" -> Just CADFIInputTypeTel
-        "INPUT_TYPE_TIME" -> Just CADFIInputTypeTime
-        "INPUT_TYPE_URL" -> Just CADFIInputTypeURL
-        "INPUT_TYPE_WEEK" -> Just CADFIInputTypeWeek
-        "LOCAL_STORAGE" -> Just CADFILocalStorage
-        "POST_MESSAGE" -> Just CADFIPostMessage
-        "SESSION_STORAGE" -> Just CADFISessionStorage
-        "SMIL" -> Just CADFISmil
-        "SVG_CLIP_PATHS" -> Just CADFISvgClipPaths
-        "SVG_FE_IMAGE" -> Just CADFISvgFeImage
-        "SVG_FILTERS" -> Just CADFISvgFilters
-        "SVG_HREF" -> Just CADFISvgHref
-        "TOUCH" -> Just CADFITouch
-        "VIDEO" -> Just CADFIVideo
-        "WEBGL" -> Just CADFIWebgl
-        "WEB_SOCKETS" -> Just CADFIWebSockets
-        "WEB_SQL_DATABASE" -> Just CADFIWebSQLDatabase
-        "WEB_WORKERS" -> Just CADFIWebWorkers
-        _ -> Nothing
-
-instance ToText CreativeAssetDetectedFeaturesItem where
-    toText = \case
-        CADFIApplicationCache -> "APPLICATION_CACHE"
-        CADFIAudio -> "AUDIO"
-        CADFICanvas -> "CANVAS"
-        CADFICanvasText -> "CANVAS_TEXT"
-        CADFICssAnimations -> "CSS_ANIMATIONS"
-        CADFICssBackgRoundSize -> "CSS_BACKGROUND_SIZE"
-        CADFICssBOrderImage -> "CSS_BORDER_IMAGE"
-        CADFICssBOrderRadius -> "CSS_BORDER_RADIUS"
-        CADFICssBoxShadow -> "CSS_BOX_SHADOW"
-        CADFICssColumns -> "CSS_COLUMNS"
-        CADFICssFlexBox -> "CSS_FLEX_BOX"
-        CADFICssFontFace -> "CSS_FONT_FACE"
-        CADFICssGeneratedContent -> "CSS_GENERATED_CONTENT"
-        CADFICssGradients -> "CSS_GRADIENTS"
-        CADFICssHsla -> "CSS_HSLA"
-        CADFICssMultipleBgs -> "CSS_MULTIPLE_BGS"
-        CADFICssOpacity -> "CSS_OPACITY"
-        CADFICssReflections -> "CSS_REFLECTIONS"
-        CADFICssRgba -> "CSS_RGBA"
-        CADFICssTextShadow -> "CSS_TEXT_SHADOW"
-        CADFICssTransforms -> "CSS_TRANSFORMS"
-        CADFICssTRANSFORMS3D -> "CSS_TRANSFORMS3D"
-        CADFICssTransitions -> "CSS_TRANSITIONS"
-        CADFIDragAndDrop -> "DRAG_AND_DROP"
-        CADFIGeoLocation -> "GEO_LOCATION"
-        CADFIHashChange -> "HASH_CHANGE"
-        CADFIHistory -> "HISTORY"
-        CADFIIndexedDB -> "INDEXED_DB"
-        CADFIInlineSvg -> "INLINE_SVG"
-        CADFIInputAttrAutocomplete -> "INPUT_ATTR_AUTOCOMPLETE"
-        CADFIInputAttrAutofocus -> "INPUT_ATTR_AUTOFOCUS"
-        CADFIInputAttrList -> "INPUT_ATTR_LIST"
-        CADFIInputAttrMax -> "INPUT_ATTR_MAX"
-        CADFIInputAttrMin -> "INPUT_ATTR_MIN"
-        CADFIInputAttrMultiple -> "INPUT_ATTR_MULTIPLE"
-        CADFIInputAttrPattern -> "INPUT_ATTR_PATTERN"
-        CADFIInputAttrPlaceholder -> "INPUT_ATTR_PLACEHOLDER"
-        CADFIInputAttrRequired -> "INPUT_ATTR_REQUIRED"
-        CADFIInputAttrStep -> "INPUT_ATTR_STEP"
-        CADFIInputTypeColor -> "INPUT_TYPE_COLOR"
-        CADFIInputTypeDate -> "INPUT_TYPE_DATE"
-        CADFIInputTypeDatetime -> "INPUT_TYPE_DATETIME"
-        CADFIInputTypeDatetimeLocal -> "INPUT_TYPE_DATETIME_LOCAL"
-        CADFIInputTypeEmail -> "INPUT_TYPE_EMAIL"
-        CADFIInputTypeMonth -> "INPUT_TYPE_MONTH"
-        CADFIInputTypeNumber -> "INPUT_TYPE_NUMBER"
-        CADFIInputTypeRange -> "INPUT_TYPE_RANGE"
-        CADFIInputTypeSearch -> "INPUT_TYPE_SEARCH"
-        CADFIInputTypeTel -> "INPUT_TYPE_TEL"
-        CADFIInputTypeTime -> "INPUT_TYPE_TIME"
-        CADFIInputTypeURL -> "INPUT_TYPE_URL"
-        CADFIInputTypeWeek -> "INPUT_TYPE_WEEK"
-        CADFILocalStorage -> "LOCAL_STORAGE"
-        CADFIPostMessage -> "POST_MESSAGE"
-        CADFISessionStorage -> "SESSION_STORAGE"
-        CADFISmil -> "SMIL"
-        CADFISvgClipPaths -> "SVG_CLIP_PATHS"
-        CADFISvgFeImage -> "SVG_FE_IMAGE"
-        CADFISvgFilters -> "SVG_FILTERS"
-        CADFISvgHref -> "SVG_HREF"
-        CADFITouch -> "TOUCH"
-        CADFIVideo -> "VIDEO"
-        CADFIWebgl -> "WEBGL"
-        CADFIWebSockets -> "WEB_SOCKETS"
-        CADFIWebSQLDatabase -> "WEB_SQL_DATABASE"
-        CADFIWebWorkers -> "WEB_WORKERS"
-
-instance FromJSON CreativeAssetDetectedFeaturesItem where
-    parseJSON = parseJSONText "CreativeAssetDetectedFeaturesItem"
-
-instance ToJSON CreativeAssetDetectedFeaturesItem where
-    toJSON = toJSONText
-
--- | Type of the floodlight activity group. This is a required field that is
--- read-only after insertion.
-data FloodlightActivityGroupType
-    = FAGTCounter
-      -- ^ @COUNTER@
-    | FAGTSale
-      -- ^ @SALE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivityGroupType
-
-instance FromText FloodlightActivityGroupType where
-    fromText = \case
-        "COUNTER" -> Just FAGTCounter
-        "SALE" -> Just FAGTSale
-        _ -> Nothing
-
-instance ToText FloodlightActivityGroupType where
-    toText = \case
-        FAGTCounter -> "COUNTER"
-        FAGTSale -> "SALE"
-
-instance FromJSON FloodlightActivityGroupType where
-    parseJSON = parseJSONText "FloodlightActivityGroupType"
-
-instance ToJSON FloodlightActivityGroupType where
-    toJSON = toJSONText
-
--- | Directory site contact type.
-data DirectorySiteContactType
-    = DSCTBilling
-      -- ^ @BILLING@
-    | DSCTOther
-      -- ^ @OTHER@
-    | DSCTSales
-      -- ^ @SALES@
-    | DSCTTechnical
-      -- ^ @TECHNICAL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DirectorySiteContactType
-
-instance FromText DirectorySiteContactType where
-    fromText = \case
-        "BILLING" -> Just DSCTBilling
-        "OTHER" -> Just DSCTOther
-        "SALES" -> Just DSCTSales
-        "TECHNICAL" -> Just DSCTTechnical
-        _ -> Nothing
-
-instance ToText DirectorySiteContactType where
-    toText = \case
-        DSCTBilling -> "BILLING"
-        DSCTOther -> "OTHER"
-        DSCTSales -> "SALES"
-        DSCTTechnical -> "TECHNICAL"
-
-instance FromJSON DirectorySiteContactType where
-    parseJSON = parseJSONText "DirectorySiteContactType"
-
-instance ToJSON DirectorySiteContactType where
-    toJSON = toJSONText
-
--- | Tag formats to generate for these placements.
-data PlacementsGeneratetagsTagFormats
-    = PGTFPlacementTagClickCommands
-      -- ^ @PLACEMENT_TAG_CLICK_COMMANDS@
-    | PGTFPlacementTagIframeIlayer
-      -- ^ @PLACEMENT_TAG_IFRAME_ILAYER@
-    | PGTFPlacementTagIframeJavascript
-      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT@
-    | PGTFPlacementTagIframeJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY@
-    | PGTFPlacementTagInstreamVideoPrefetch
-      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH@
-    | PGTFPlacementTagInstreamVideoPrefetchVast3
-      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3@
-    | PGTFPlacementTagInternalRedirect
-      -- ^ @PLACEMENT_TAG_INTERNAL_REDIRECT@
-    | PGTFPlacementTagInterstitialIframeJavascript
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT@
-    | PGTFPlacementTagInterstitialIframeJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY@
-    | PGTFPlacementTagInterstitialInternalRedirect
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT@
-    | PGTFPlacementTagInterstitialJavascript
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT@
-    | PGTFPlacementTagInterstitialJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY@
-    | PGTFPlacementTagJavascript
-      -- ^ @PLACEMENT_TAG_JAVASCRIPT@
-    | PGTFPlacementTagJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_JAVASCRIPT_LEGACY@
-    | PGTFPlacementTagStandard
-      -- ^ @PLACEMENT_TAG_STANDARD@
-    | PGTFPlacementTagTracking
-      -- ^ @PLACEMENT_TAG_TRACKING@
-    | PGTFPlacementTagTrackingIframe
-      -- ^ @PLACEMENT_TAG_TRACKING_IFRAME@
-    | PGTFPlacementTagTrackingJavascript
-      -- ^ @PLACEMENT_TAG_TRACKING_JAVASCRIPT@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementsGeneratetagsTagFormats
-
-instance FromText PlacementsGeneratetagsTagFormats where
-    fromText = \case
-        "PLACEMENT_TAG_CLICK_COMMANDS" -> Just PGTFPlacementTagClickCommands
-        "PLACEMENT_TAG_IFRAME_ILAYER" -> Just PGTFPlacementTagIframeIlayer
-        "PLACEMENT_TAG_IFRAME_JAVASCRIPT" -> Just PGTFPlacementTagIframeJavascript
-        "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY" -> Just PGTFPlacementTagIframeJavascriptLegacy
-        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH" -> Just PGTFPlacementTagInstreamVideoPrefetch
-        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3" -> Just PGTFPlacementTagInstreamVideoPrefetchVast3
-        "PLACEMENT_TAG_INTERNAL_REDIRECT" -> Just PGTFPlacementTagInternalRedirect
-        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT" -> Just PGTFPlacementTagInterstitialIframeJavascript
-        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY" -> Just PGTFPlacementTagInterstitialIframeJavascriptLegacy
-        "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT" -> Just PGTFPlacementTagInterstitialInternalRedirect
-        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT" -> Just PGTFPlacementTagInterstitialJavascript
-        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY" -> Just PGTFPlacementTagInterstitialJavascriptLegacy
-        "PLACEMENT_TAG_JAVASCRIPT" -> Just PGTFPlacementTagJavascript
-        "PLACEMENT_TAG_JAVASCRIPT_LEGACY" -> Just PGTFPlacementTagJavascriptLegacy
-        "PLACEMENT_TAG_STANDARD" -> Just PGTFPlacementTagStandard
-        "PLACEMENT_TAG_TRACKING" -> Just PGTFPlacementTagTracking
-        "PLACEMENT_TAG_TRACKING_IFRAME" -> Just PGTFPlacementTagTrackingIframe
-        "PLACEMENT_TAG_TRACKING_JAVASCRIPT" -> Just PGTFPlacementTagTrackingJavascript
-        _ -> Nothing
-
-instance ToText PlacementsGeneratetagsTagFormats where
-    toText = \case
-        PGTFPlacementTagClickCommands -> "PLACEMENT_TAG_CLICK_COMMANDS"
-        PGTFPlacementTagIframeIlayer -> "PLACEMENT_TAG_IFRAME_ILAYER"
-        PGTFPlacementTagIframeJavascript -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        PGTFPlacementTagIframeJavascriptLegacy -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY"
-        PGTFPlacementTagInstreamVideoPrefetch -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        PGTFPlacementTagInstreamVideoPrefetchVast3 -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
-        PGTFPlacementTagInternalRedirect -> "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        PGTFPlacementTagInterstitialIframeJavascript -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        PGTFPlacementTagInterstitialIframeJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY"
-        PGTFPlacementTagInterstitialInternalRedirect -> "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        PGTFPlacementTagInterstitialJavascript -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        PGTFPlacementTagInterstitialJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY"
-        PGTFPlacementTagJavascript -> "PLACEMENT_TAG_JAVASCRIPT"
-        PGTFPlacementTagJavascriptLegacy -> "PLACEMENT_TAG_JAVASCRIPT_LEGACY"
-        PGTFPlacementTagStandard -> "PLACEMENT_TAG_STANDARD"
-        PGTFPlacementTagTracking -> "PLACEMENT_TAG_TRACKING"
-        PGTFPlacementTagTrackingIframe -> "PLACEMENT_TAG_TRACKING_IFRAME"
-        PGTFPlacementTagTrackingJavascript -> "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-
-instance FromJSON PlacementsGeneratetagsTagFormats where
-    parseJSON = parseJSONText "PlacementsGeneratetagsTagFormats"
-
-instance ToJSON PlacementsGeneratetagsTagFormats where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data AccountUserProFilesListSortField
-    = AUPFLSFID
-      -- ^ @ID@
-    | AUPFLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountUserProFilesListSortField
-
-instance FromText AccountUserProFilesListSortField where
-    fromText = \case
-        "ID" -> Just AUPFLSFID
-        "NAME" -> Just AUPFLSFName
-        _ -> Nothing
-
-instance ToText AccountUserProFilesListSortField where
-    toText = \case
-        AUPFLSFID -> "ID"
-        AUPFLSFName -> "NAME"
-
-instance FromJSON AccountUserProFilesListSortField where
-    parseJSON = parseJSONText "AccountUserProFilesListSortField"
-
-instance ToJSON AccountUserProFilesListSortField where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data InventoryItemsListSortOrder
-    = IILSOAscending
-      -- ^ @ASCENDING@
-    | IILSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable InventoryItemsListSortOrder
-
-instance FromText InventoryItemsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just IILSOAscending
-        "DESCENDING" -> Just IILSODescending
-        _ -> Nothing
-
-instance ToText InventoryItemsListSortOrder where
-    toText = \case
-        IILSOAscending -> "ASCENDING"
-        IILSODescending -> "DESCENDING"
-
-instance FromJSON InventoryItemsListSortOrder where
-    parseJSON = parseJSONText "InventoryItemsListSortOrder"
-
-instance ToJSON InventoryItemsListSortOrder where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data PlacementStrategiesListSortOrder
-    = PSLSOAscending
-      -- ^ @ASCENDING@
-    | PSLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementStrategiesListSortOrder
-
-instance FromText PlacementStrategiesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just PSLSOAscending
-        "DESCENDING" -> Just PSLSODescending
-        _ -> Nothing
-
-instance ToText PlacementStrategiesListSortOrder where
-    toText = \case
-        PSLSOAscending -> "ASCENDING"
-        PSLSODescending -> "DESCENDING"
-
-instance FromJSON PlacementStrategiesListSortOrder where
-    parseJSON = parseJSONText "PlacementStrategiesListSortOrder"
-
-instance ToJSON PlacementStrategiesListSortOrder where
-    toJSON = toJSONText
-
--- | The field by which to sort the list.
-data ReportsFilesListSortField
-    = RFLSFID
-      -- ^ @ID@
-      -- Sort by file ID.
-    | RFLSFLastModifiedTime
-      -- ^ @LAST_MODIFIED_TIME@
-      -- Sort by \'lastmodifiedAt\' field.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportsFilesListSortField
-
-instance FromText ReportsFilesListSortField where
-    fromText = \case
-        "ID" -> Just RFLSFID
-        "LAST_MODIFIED_TIME" -> Just RFLSFLastModifiedTime
-        _ -> Nothing
-
-instance ToText ReportsFilesListSortField where
-    toText = \case
-        RFLSFID -> "ID"
-        RFLSFLastModifiedTime -> "LAST_MODIFIED_TIME"
-
-instance FromJSON ReportsFilesListSortField where
-    parseJSON = parseJSONText "ReportsFilesListSortField"
-
-instance ToJSON ReportsFilesListSortField where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data CreativesListSortField
-    = CID
-      -- ^ @ID@
-    | CName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativesListSortField
-
-instance FromText CreativesListSortField where
-    fromText = \case
-        "ID" -> Just CID
-        "NAME" -> Just CName
-        _ -> Nothing
-
-instance ToText CreativesListSortField where
-    toText = \case
-        CID -> "ID"
-        CName -> "NAME"
-
-instance FromJSON CreativesListSortField where
-    parseJSON = parseJSONText "CreativesListSortField"
-
-instance ToJSON CreativesListSortField where
-    toJSON = toJSONText
-
-data DayPartTargetingDaysOfWeekItem
-    = DPTDOWIFriday
-      -- ^ @FRIDAY@
-    | DPTDOWIMonday
-      -- ^ @MONDAY@
-    | DPTDOWISaturday
-      -- ^ @SATURDAY@
-    | DPTDOWISunday
-      -- ^ @SUNDAY@
-    | DPTDOWIThursday
-      -- ^ @THURSDAY@
-    | DPTDOWITuesday
-      -- ^ @TUESDAY@
-    | DPTDOWIWednesday
-      -- ^ @WEDNESDAY@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DayPartTargetingDaysOfWeekItem
-
-instance FromText DayPartTargetingDaysOfWeekItem where
-    fromText = \case
-        "FRIDAY" -> Just DPTDOWIFriday
-        "MONDAY" -> Just DPTDOWIMonday
-        "SATURDAY" -> Just DPTDOWISaturday
-        "SUNDAY" -> Just DPTDOWISunday
-        "THURSDAY" -> Just DPTDOWIThursday
-        "TUESDAY" -> Just DPTDOWITuesday
-        "WEDNESDAY" -> Just DPTDOWIWednesday
-        _ -> Nothing
-
-instance ToText DayPartTargetingDaysOfWeekItem where
-    toText = \case
-        DPTDOWIFriday -> "FRIDAY"
-        DPTDOWIMonday -> "MONDAY"
-        DPTDOWISaturday -> "SATURDAY"
-        DPTDOWISunday -> "SUNDAY"
-        DPTDOWIThursday -> "THURSDAY"
-        DPTDOWITuesday -> "TUESDAY"
-        DPTDOWIWednesday -> "WEDNESDAY"
-
-instance FromJSON DayPartTargetingDaysOfWeekItem where
-    parseJSON = parseJSONText "DayPartTargetingDaysOfWeekItem"
-
-instance ToJSON DayPartTargetingDaysOfWeekItem where
-    toJSON = toJSONText
-
--- | Strategy for calculating weights. Used with
--- CREATIVE_ROTATION_TYPE_RANDOM.
-data CreativeRotationWeightCalculationStrategy
-    = WeightStrategyCustom
-      -- ^ @WEIGHT_STRATEGY_CUSTOM@
-    | WeightStrategyEqual
-      -- ^ @WEIGHT_STRATEGY_EQUAL@
-    | WeightStrategyHighestCtr
-      -- ^ @WEIGHT_STRATEGY_HIGHEST_CTR@
-    | WeightStrategyOptimized
-      -- ^ @WEIGHT_STRATEGY_OPTIMIZED@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeRotationWeightCalculationStrategy
-
-instance FromText CreativeRotationWeightCalculationStrategy where
-    fromText = \case
-        "WEIGHT_STRATEGY_CUSTOM" -> Just WeightStrategyCustom
-        "WEIGHT_STRATEGY_EQUAL" -> Just WeightStrategyEqual
-        "WEIGHT_STRATEGY_HIGHEST_CTR" -> Just WeightStrategyHighestCtr
-        "WEIGHT_STRATEGY_OPTIMIZED" -> Just WeightStrategyOptimized
-        _ -> Nothing
-
-instance ToText CreativeRotationWeightCalculationStrategy where
-    toText = \case
-        WeightStrategyCustom -> "WEIGHT_STRATEGY_CUSTOM"
-        WeightStrategyEqual -> "WEIGHT_STRATEGY_EQUAL"
-        WeightStrategyHighestCtr -> "WEIGHT_STRATEGY_HIGHEST_CTR"
-        WeightStrategyOptimized -> "WEIGHT_STRATEGY_OPTIMIZED"
-
-instance FromJSON CreativeRotationWeightCalculationStrategy where
-    parseJSON = parseJSONText "CreativeRotationWeightCalculationStrategy"
-
-instance ToJSON CreativeRotationWeightCalculationStrategy where
-    toJSON = toJSONText
-
--- | The scope that defines which results are returned, default is \'MINE\'.
-data FilesListScope
-    = FLSAll
-      -- ^ @ALL@
-      -- All files in account.
-    | FLSMine
-      -- ^ @MINE@
-      -- My files.
-    | FLSSharedWithMe
-      -- ^ @SHARED_WITH_ME@
-      -- Files shared with me.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FilesListScope
-
-instance FromText FilesListScope where
-    fromText = \case
-        "ALL" -> Just FLSAll
-        "MINE" -> Just FLSMine
-        "SHARED_WITH_ME" -> Just FLSSharedWithMe
-        _ -> Nothing
-
-instance ToText FilesListScope where
-    toText = \case
-        FLSAll -> "ALL"
-        FLSMine -> "MINE"
-        FLSSharedWithMe -> "SHARED_WITH_ME"
-
-instance FromJSON FilesListScope where
-    parseJSON = parseJSONText "FilesListScope"
-
-instance ToJSON FilesListScope where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data ContentCategoriesListSortField
-    = CCLSFID
-      -- ^ @ID@
-    | CCLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ContentCategoriesListSortField
-
-instance FromText ContentCategoriesListSortField where
-    fromText = \case
-        "ID" -> Just CCLSFID
-        "NAME" -> Just CCLSFName
-        _ -> Nothing
-
-instance ToText ContentCategoriesListSortField where
-    toText = \case
-        CCLSFID -> "ID"
-        CCLSFName -> "NAME"
-
-instance FromJSON ContentCategoriesListSortField where
-    parseJSON = parseJSONText "ContentCategoriesListSortField"
-
-instance ToJSON ContentCategoriesListSortField where
-    toJSON = toJSONText
-
--- | Audience age group of this project.
-data ProjectAudienceAgeGroup
-    = PlanningAudienceAge1824
-      -- ^ @PLANNING_AUDIENCE_AGE_18_24@
-    | PlanningAudienceAge2534
-      -- ^ @PLANNING_AUDIENCE_AGE_25_34@
-    | PlanningAudienceAge3544
-      -- ^ @PLANNING_AUDIENCE_AGE_35_44@
-    | PlanningAudienceAge4554
-      -- ^ @PLANNING_AUDIENCE_AGE_45_54@
-    | PlanningAudienceAge5564
-      -- ^ @PLANNING_AUDIENCE_AGE_55_64@
-    | PlanningAudienceAge65OrMore
-      -- ^ @PLANNING_AUDIENCE_AGE_65_OR_MORE@
-    | PlanningAudienceAgeUnknown
-      -- ^ @PLANNING_AUDIENCE_AGE_UNKNOWN@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ProjectAudienceAgeGroup
-
-instance FromText ProjectAudienceAgeGroup where
-    fromText = \case
-        "PLANNING_AUDIENCE_AGE_18_24" -> Just PlanningAudienceAge1824
-        "PLANNING_AUDIENCE_AGE_25_34" -> Just PlanningAudienceAge2534
-        "PLANNING_AUDIENCE_AGE_35_44" -> Just PlanningAudienceAge3544
-        "PLANNING_AUDIENCE_AGE_45_54" -> Just PlanningAudienceAge4554
-        "PLANNING_AUDIENCE_AGE_55_64" -> Just PlanningAudienceAge5564
-        "PLANNING_AUDIENCE_AGE_65_OR_MORE" -> Just PlanningAudienceAge65OrMore
-        "PLANNING_AUDIENCE_AGE_UNKNOWN" -> Just PlanningAudienceAgeUnknown
-        _ -> Nothing
-
-instance ToText ProjectAudienceAgeGroup where
-    toText = \case
-        PlanningAudienceAge1824 -> "PLANNING_AUDIENCE_AGE_18_24"
-        PlanningAudienceAge2534 -> "PLANNING_AUDIENCE_AGE_25_34"
-        PlanningAudienceAge3544 -> "PLANNING_AUDIENCE_AGE_35_44"
-        PlanningAudienceAge4554 -> "PLANNING_AUDIENCE_AGE_45_54"
-        PlanningAudienceAge5564 -> "PLANNING_AUDIENCE_AGE_55_64"
-        PlanningAudienceAge65OrMore -> "PLANNING_AUDIENCE_AGE_65_OR_MORE"
-        PlanningAudienceAgeUnknown -> "PLANNING_AUDIENCE_AGE_UNKNOWN"
-
-instance FromJSON ProjectAudienceAgeGroup where
-    parseJSON = parseJSONText "ProjectAudienceAgeGroup"
-
-instance ToJSON ProjectAudienceAgeGroup where
-    toJSON = toJSONText
-
--- | Type of ad. This is a required field on insertion. Note that default ads
--- (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative
--- resource).
-data AdType
-    = ATAdServingClickTracker
-      -- ^ @AD_SERVING_CLICK_TRACKER@
-    | ATAdServingDefaultAd
-      -- ^ @AD_SERVING_DEFAULT_AD@
-    | ATAdServingStandardAd
-      -- ^ @AD_SERVING_STANDARD_AD@
-    | ATAdServingTracking
-      -- ^ @AD_SERVING_TRACKING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdType
-
-instance FromText AdType where
-    fromText = \case
-        "AD_SERVING_CLICK_TRACKER" -> Just ATAdServingClickTracker
-        "AD_SERVING_DEFAULT_AD" -> Just ATAdServingDefaultAd
-        "AD_SERVING_STANDARD_AD" -> Just ATAdServingStandardAd
-        "AD_SERVING_TRACKING" -> Just ATAdServingTracking
-        _ -> Nothing
-
-instance ToText AdType where
-    toText = \case
-        ATAdServingClickTracker -> "AD_SERVING_CLICK_TRACKER"
-        ATAdServingDefaultAd -> "AD_SERVING_DEFAULT_AD"
-        ATAdServingStandardAd -> "AD_SERVING_STANDARD_AD"
-        ATAdServingTracking -> "AD_SERVING_TRACKING"
-
-instance FromJSON AdType where
-    parseJSON = parseJSONText "AdType"
-
-instance ToJSON AdType where
-    toJSON = toJSONText
-
--- | Select only change logs with the specified action.
-data ChangeLogsListAction
-    = ActionAdd
-      -- ^ @ACTION_ADD@
-    | ActionAssign
-      -- ^ @ACTION_ASSIGN@
-    | ActionAssociate
-      -- ^ @ACTION_ASSOCIATE@
-    | ActionCreate
-      -- ^ @ACTION_CREATE@
-    | ActionDelete
-      -- ^ @ACTION_DELETE@
-    | ActionDisable
-      -- ^ @ACTION_DISABLE@
-    | ActionEmailTags
-      -- ^ @ACTION_EMAIL_TAGS@
-    | ActionEnable
-      -- ^ @ACTION_ENABLE@
-    | ActionLink
-      -- ^ @ACTION_LINK@
-    | ActionMarkAsDefault
-      -- ^ @ACTION_MARK_AS_DEFAULT@
-    | ActionPush
-      -- ^ @ACTION_PUSH@
-    | ActionRemove
-      -- ^ @ACTION_REMOVE@
-    | ActionSend
-      -- ^ @ACTION_SEND@
-    | ActionShare
-      -- ^ @ACTION_SHARE@
-    | ActionUnassign
-      -- ^ @ACTION_UNASSIGN@
-    | ActionUnlink
-      -- ^ @ACTION_UNLINK@
-    | ActionUpdate
-      -- ^ @ACTION_UPDATE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ChangeLogsListAction
-
-instance FromText ChangeLogsListAction where
-    fromText = \case
-        "ACTION_ADD" -> Just ActionAdd
-        "ACTION_ASSIGN" -> Just ActionAssign
-        "ACTION_ASSOCIATE" -> Just ActionAssociate
-        "ACTION_CREATE" -> Just ActionCreate
-        "ACTION_DELETE" -> Just ActionDelete
-        "ACTION_DISABLE" -> Just ActionDisable
-        "ACTION_EMAIL_TAGS" -> Just ActionEmailTags
-        "ACTION_ENABLE" -> Just ActionEnable
-        "ACTION_LINK" -> Just ActionLink
-        "ACTION_MARK_AS_DEFAULT" -> Just ActionMarkAsDefault
-        "ACTION_PUSH" -> Just ActionPush
-        "ACTION_REMOVE" -> Just ActionRemove
-        "ACTION_SEND" -> Just ActionSend
-        "ACTION_SHARE" -> Just ActionShare
-        "ACTION_UNASSIGN" -> Just ActionUnassign
-        "ACTION_UNLINK" -> Just ActionUnlink
-        "ACTION_UPDATE" -> Just ActionUpdate
-        _ -> Nothing
-
-instance ToText ChangeLogsListAction where
-    toText = \case
-        ActionAdd -> "ACTION_ADD"
-        ActionAssign -> "ACTION_ASSIGN"
-        ActionAssociate -> "ACTION_ASSOCIATE"
-        ActionCreate -> "ACTION_CREATE"
-        ActionDelete -> "ACTION_DELETE"
-        ActionDisable -> "ACTION_DISABLE"
-        ActionEmailTags -> "ACTION_EMAIL_TAGS"
-        ActionEnable -> "ACTION_ENABLE"
-        ActionLink -> "ACTION_LINK"
-        ActionMarkAsDefault -> "ACTION_MARK_AS_DEFAULT"
-        ActionPush -> "ACTION_PUSH"
-        ActionRemove -> "ACTION_REMOVE"
-        ActionSend -> "ACTION_SEND"
-        ActionShare -> "ACTION_SHARE"
-        ActionUnassign -> "ACTION_UNASSIGN"
-        ActionUnlink -> "ACTION_UNLINK"
-        ActionUpdate -> "ACTION_UPDATE"
-
-instance FromJSON ChangeLogsListAction where
-    parseJSON = parseJSONText "ChangeLogsListAction"
-
-instance ToJSON ChangeLogsListAction where
-    toJSON = toJSONText
-
--- | Type of artwork used for the creative. This is a read-only field.
--- Applicable to the following creative types: all RICH_MEDIA, and all
--- VPAID.
-data CreativeArtworkType
-    = CATArtworkTypeFlash
-      -- ^ @ARTWORK_TYPE_FLASH@
-    | CATArtworkTypeHTML5
-      -- ^ @ARTWORK_TYPE_HTML5@
-    | CATArtworkTypeMixed
-      -- ^ @ARTWORK_TYPE_MIXED@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeArtworkType
-
-instance FromText CreativeArtworkType where
-    fromText = \case
-        "ARTWORK_TYPE_FLASH" -> Just CATArtworkTypeFlash
-        "ARTWORK_TYPE_HTML5" -> Just CATArtworkTypeHTML5
-        "ARTWORK_TYPE_MIXED" -> Just CATArtworkTypeMixed
-        _ -> Nothing
-
-instance ToText CreativeArtworkType where
-    toText = \case
-        CATArtworkTypeFlash -> "ARTWORK_TYPE_FLASH"
-        CATArtworkTypeHTML5 -> "ARTWORK_TYPE_HTML5"
-        CATArtworkTypeMixed -> "ARTWORK_TYPE_MIXED"
-
-instance FromJSON CreativeArtworkType where
-    parseJSON = parseJSONText "CreativeArtworkType"
-
-instance ToJSON CreativeArtworkType where
-    toJSON = toJSONText
-
--- | Third-party placement status.
-data PlacementStatus
-    = AcknowledgeAcceptance
-      -- ^ @ACKNOWLEDGE_ACCEPTANCE@
-    | AcknowledgeRejection
-      -- ^ @ACKNOWLEDGE_REJECTION@
-    | Draft
-      -- ^ @DRAFT@
-    | PaymentAccepted
-      -- ^ @PAYMENT_ACCEPTED@
-    | PaymentRejected
-      -- ^ @PAYMENT_REJECTED@
-    | PendingReview
-      -- ^ @PENDING_REVIEW@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementStatus
-
-instance FromText PlacementStatus where
-    fromText = \case
-        "ACKNOWLEDGE_ACCEPTANCE" -> Just AcknowledgeAcceptance
-        "ACKNOWLEDGE_REJECTION" -> Just AcknowledgeRejection
-        "DRAFT" -> Just Draft
-        "PAYMENT_ACCEPTED" -> Just PaymentAccepted
-        "PAYMENT_REJECTED" -> Just PaymentRejected
-        "PENDING_REVIEW" -> Just PendingReview
-        _ -> Nothing
-
-instance ToText PlacementStatus where
-    toText = \case
-        AcknowledgeAcceptance -> "ACKNOWLEDGE_ACCEPTANCE"
-        AcknowledgeRejection -> "ACKNOWLEDGE_REJECTION"
-        Draft -> "DRAFT"
-        PaymentAccepted -> "PAYMENT_ACCEPTED"
-        PaymentRejected -> "PAYMENT_REJECTED"
-        PendingReview -> "PENDING_REVIEW"
-
-instance FromJSON PlacementStatus where
-    parseJSON = parseJSONText "PlacementStatus"
-
-instance ToJSON PlacementStatus where
-    toJSON = toJSONText
-
--- | Enum to define for \"MONTHLY\" scheduled reports whether reports should
--- be repeated on the same day of the month as \"startDate\" or the same
--- day of the week of the month. Example: If \'startDate\' is Monday, April
--- 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on
--- the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent
--- reports on the first Monday of the month.
-data ReportScheduleRunsOnDayOfMonth
-    = DayOfMonth
-      -- ^ @DAY_OF_MONTH@
-    | WeekOfMonth
-      -- ^ @WEEK_OF_MONTH@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportScheduleRunsOnDayOfMonth
-
-instance FromText ReportScheduleRunsOnDayOfMonth where
-    fromText = \case
-        "DAY_OF_MONTH" -> Just DayOfMonth
-        "WEEK_OF_MONTH" -> Just WeekOfMonth
-        _ -> Nothing
-
-instance ToText ReportScheduleRunsOnDayOfMonth where
-    toText = \case
-        DayOfMonth -> "DAY_OF_MONTH"
-        WeekOfMonth -> "WEEK_OF_MONTH"
-
-instance FromJSON ReportScheduleRunsOnDayOfMonth where
-    parseJSON = parseJSONText "ReportScheduleRunsOnDayOfMonth"
-
-instance ToJSON ReportScheduleRunsOnDayOfMonth where
-    toJSON = toJSONText
-
-data FloodlightActivityUserDefinedVariableTypesItem
-    = FAUDVTIU1
-      -- ^ @U1@
-    | FAUDVTIU10
-      -- ^ @U10@
-    | FAUDVTIU11
-      -- ^ @U11@
-    | FAUDVTIU12
-      -- ^ @U12@
-    | FAUDVTIU13
-      -- ^ @U13@
-    | FAUDVTIU14
-      -- ^ @U14@
-    | FAUDVTIU15
-      -- ^ @U15@
-    | FAUDVTIU16
-      -- ^ @U16@
-    | FAUDVTIU17
-      -- ^ @U17@
-    | FAUDVTIU18
-      -- ^ @U18@
-    | FAUDVTIU19
-      -- ^ @U19@
-    | FAUDVTIU2
-      -- ^ @U2@
-    | FAUDVTIU20
-      -- ^ @U20@
-    | FAUDVTIU3
-      -- ^ @U3@
-    | FAUDVTIU4
-      -- ^ @U4@
-    | FAUDVTIU5
-      -- ^ @U5@
-    | FAUDVTIU6
-      -- ^ @U6@
-    | FAUDVTIU7
-      -- ^ @U7@
-    | FAUDVTIU8
-      -- ^ @U8@
-    | FAUDVTIU9
-      -- ^ @U9@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivityUserDefinedVariableTypesItem
-
-instance FromText FloodlightActivityUserDefinedVariableTypesItem where
-    fromText = \case
-        "U1" -> Just FAUDVTIU1
-        "U10" -> Just FAUDVTIU10
-        "U11" -> Just FAUDVTIU11
-        "U12" -> Just FAUDVTIU12
-        "U13" -> Just FAUDVTIU13
-        "U14" -> Just FAUDVTIU14
-        "U15" -> Just FAUDVTIU15
-        "U16" -> Just FAUDVTIU16
-        "U17" -> Just FAUDVTIU17
-        "U18" -> Just FAUDVTIU18
-        "U19" -> Just FAUDVTIU19
-        "U2" -> Just FAUDVTIU2
-        "U20" -> Just FAUDVTIU20
-        "U3" -> Just FAUDVTIU3
-        "U4" -> Just FAUDVTIU4
-        "U5" -> Just FAUDVTIU5
-        "U6" -> Just FAUDVTIU6
-        "U7" -> Just FAUDVTIU7
-        "U8" -> Just FAUDVTIU8
-        "U9" -> Just FAUDVTIU9
-        _ -> Nothing
-
-instance ToText FloodlightActivityUserDefinedVariableTypesItem where
-    toText = \case
-        FAUDVTIU1 -> "U1"
-        FAUDVTIU10 -> "U10"
-        FAUDVTIU11 -> "U11"
-        FAUDVTIU12 -> "U12"
-        FAUDVTIU13 -> "U13"
-        FAUDVTIU14 -> "U14"
-        FAUDVTIU15 -> "U15"
-        FAUDVTIU16 -> "U16"
-        FAUDVTIU17 -> "U17"
-        FAUDVTIU18 -> "U18"
-        FAUDVTIU19 -> "U19"
-        FAUDVTIU2 -> "U2"
-        FAUDVTIU20 -> "U20"
-        FAUDVTIU3 -> "U3"
-        FAUDVTIU4 -> "U4"
-        FAUDVTIU5 -> "U5"
-        FAUDVTIU6 -> "U6"
-        FAUDVTIU7 -> "U7"
-        FAUDVTIU8 -> "U8"
-        FAUDVTIU9 -> "U9"
-
-instance FromJSON FloodlightActivityUserDefinedVariableTypesItem where
-    parseJSON = parseJSONText "FloodlightActivityUserDefinedVariableTypesItem"
-
-instance ToJSON FloodlightActivityUserDefinedVariableTypesItem where
-    toJSON = toJSONText
-
--- | Site filter type for this event tag. If no type is specified then the
--- event tag will be applied to all sites.
-data EventTagSiteFilterType
-    = BlackList
-      -- ^ @BLACKLIST@
-    | WhiteList
-      -- ^ @WHITELIST@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable EventTagSiteFilterType
-
-instance FromText EventTagSiteFilterType where
-    fromText = \case
-        "BLACKLIST" -> Just BlackList
-        "WHITELIST" -> Just WhiteList
-        _ -> Nothing
-
-instance ToText EventTagSiteFilterType where
-    toText = \case
-        BlackList -> "BLACKLIST"
-        WhiteList -> "WHITELIST"
-
-instance FromJSON EventTagSiteFilterType where
-    parseJSON = parseJSONText "EventTagSiteFilterType"
-
-instance ToJSON EventTagSiteFilterType where
-    toJSON = toJSONText
-
--- | The output format of the report. If not specified, default format is
--- \"CSV\". Note that the actual format in the completed report file might
--- differ if for instance the report\'s size exceeds the format\'s
--- capabilities. \"CSV\" will then be the fallback format.
-data ReportFormat
-    = RFCSV
-      -- ^ @CSV@
-    | RFExcel
-      -- ^ @EXCEL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportFormat
-
-instance FromText ReportFormat where
-    fromText = \case
-        "CSV" -> Just RFCSV
-        "EXCEL" -> Just RFExcel
-        _ -> Nothing
-
-instance ToText ReportFormat where
-    toText = \case
-        RFCSV -> "CSV"
-        RFExcel -> "EXCEL"
-
-instance FromJSON ReportFormat where
-    parseJSON = parseJSONText "ReportFormat"
-
-instance ToJSON ReportFormat where
-    toJSON = toJSONText
-
--- | Type of this placement group. A package is a simple group of placements
--- that acts as a single pricing point for a group of tags. A roadblock is
--- a group of placements that not only acts as a single pricing point, but
--- also assumes that all the tags in it will be served at the same time. A
--- roadblock requires one of its assigned placements to be marked as
--- primary for reporting. This field is required on insertion.
-data PlacementGroupPlacementGroupType
-    = PGPGTPlacementPackage
-      -- ^ @PLACEMENT_PACKAGE@
-    | PGPGTPlacementRoadblock
-      -- ^ @PLACEMENT_ROADBLOCK@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementGroupPlacementGroupType
-
-instance FromText PlacementGroupPlacementGroupType where
-    fromText = \case
-        "PLACEMENT_PACKAGE" -> Just PGPGTPlacementPackage
-        "PLACEMENT_ROADBLOCK" -> Just PGPGTPlacementRoadblock
-        _ -> Nothing
-
-instance ToText PlacementGroupPlacementGroupType where
-    toText = \case
-        PGPGTPlacementPackage -> "PLACEMENT_PACKAGE"
-        PGPGTPlacementRoadblock -> "PLACEMENT_ROADBLOCK"
-
-instance FromJSON PlacementGroupPlacementGroupType where
-    parseJSON = parseJSONText "PlacementGroupPlacementGroupType"
-
-instance ToJSON PlacementGroupPlacementGroupType where
-    toJSON = toJSONText
-
--- | Pricing type of this inventory item.
-data PricingPricingType
-    = PlanningPlacementPricingTypeClicks
-      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CLICKS@
-    | PlanningPlacementPricingTypeCpa
-      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CPA@
-    | PlanningPlacementPricingTypeCpc
-      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CPC@
-    | PlanningPlacementPricingTypeCpm
-      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CPM@
-    | PlanningPlacementPricingTypeFlatRateClicks
-      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS@
-    | PlanningPlacementPricingTypeFlatRateImpressions
-      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
-    | PlanningPlacementPricingTypeImpressions
-      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PricingPricingType
-
-instance FromText PricingPricingType where
-    fromText = \case
-        "PLANNING_PLACEMENT_PRICING_TYPE_CLICKS" -> Just PlanningPlacementPricingTypeClicks
-        "PLANNING_PLACEMENT_PRICING_TYPE_CPA" -> Just PlanningPlacementPricingTypeCpa
-        "PLANNING_PLACEMENT_PRICING_TYPE_CPC" -> Just PlanningPlacementPricingTypeCpc
-        "PLANNING_PLACEMENT_PRICING_TYPE_CPM" -> Just PlanningPlacementPricingTypeCpm
-        "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS" -> Just PlanningPlacementPricingTypeFlatRateClicks
-        "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Just PlanningPlacementPricingTypeFlatRateImpressions
-        "PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS" -> Just PlanningPlacementPricingTypeImpressions
-        _ -> Nothing
-
-instance ToText PricingPricingType where
-    toText = \case
-        PlanningPlacementPricingTypeClicks -> "PLANNING_PLACEMENT_PRICING_TYPE_CLICKS"
-        PlanningPlacementPricingTypeCpa -> "PLANNING_PLACEMENT_PRICING_TYPE_CPA"
-        PlanningPlacementPricingTypeCpc -> "PLANNING_PLACEMENT_PRICING_TYPE_CPC"
-        PlanningPlacementPricingTypeCpm -> "PLANNING_PLACEMENT_PRICING_TYPE_CPM"
-        PlanningPlacementPricingTypeFlatRateClicks -> "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS"
-        PlanningPlacementPricingTypeFlatRateImpressions -> "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
-        PlanningPlacementPricingTypeImpressions -> "PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS"
-
-instance FromJSON PricingPricingType where
-    parseJSON = parseJSONText "PricingPricingType"
-
-instance ToJSON PricingPricingType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data SubAccountsListSortOrder
-    = SALSOAscending
-      -- ^ @ASCENDING@
-    | SALSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable SubAccountsListSortOrder
-
-instance FromText SubAccountsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just SALSOAscending
-        "DESCENDING" -> Just SALSODescending
-        _ -> Nothing
-
-instance ToText SubAccountsListSortOrder where
-    toText = \case
-        SALSOAscending -> "ASCENDING"
-        SALSODescending -> "DESCENDING"
-
-instance FromJSON SubAccountsListSortOrder where
-    parseJSON = parseJSONText "SubAccountsListSortOrder"
-
-instance ToJSON SubAccountsListSortOrder where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data AdsListSortOrder
-    = ADSAscending
-      -- ^ @ASCENDING@
-    | ADSDescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdsListSortOrder
-
-instance FromText AdsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just ADSAscending
-        "DESCENDING" -> Just ADSDescending
-        _ -> Nothing
-
-instance ToText AdsListSortOrder where
-    toText = \case
-        ADSAscending -> "ASCENDING"
-        ADSDescending -> "DESCENDING"
-
-instance FromJSON AdsListSortOrder where
-    parseJSON = parseJSONText "AdsListSortOrder"
-
-instance ToJSON AdsListSortOrder where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data ProjectsListSortOrder
-    = PLSOAscending
-      -- ^ @ASCENDING@
-    | PLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ProjectsListSortOrder
-
-instance FromText ProjectsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just PLSOAscending
-        "DESCENDING" -> Just PLSODescending
-        _ -> Nothing
-
-instance ToText ProjectsListSortOrder where
-    toText = \case
-        PLSOAscending -> "ASCENDING"
-        PLSODescending -> "DESCENDING"
-
-instance FromJSON ProjectsListSortOrder where
-    parseJSON = parseJSONText "ProjectsListSortOrder"
-
-instance ToJSON ProjectsListSortOrder where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data RemarketingListsListSortField
-    = RLLSFID
-      -- ^ @ID@
-    | RLLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable RemarketingListsListSortField
-
-instance FromText RemarketingListsListSortField where
-    fromText = \case
-        "ID" -> Just RLLSFID
-        "NAME" -> Just RLLSFName
-        _ -> Nothing
-
-instance ToText RemarketingListsListSortField where
-    toText = \case
-        RLLSFID -> "ID"
-        RLLSFName -> "NAME"
-
-instance FromJSON RemarketingListsListSortField where
-    parseJSON = parseJSONText "RemarketingListsListSortField"
-
-instance ToJSON RemarketingListsListSortField where
-    toJSON = toJSONText
-
-data ReportScheduleRepeatsOnWeekDaysItem
-    = RSROWDIFriday
-      -- ^ @FRIDAY@
-    | RSROWDIMonday
-      -- ^ @MONDAY@
-    | RSROWDISaturday
-      -- ^ @SATURDAY@
-    | RSROWDISunday
-      -- ^ @SUNDAY@
-    | RSROWDIThursday
-      -- ^ @THURSDAY@
-    | RSROWDITuesday
-      -- ^ @TUESDAY@
-    | RSROWDIWednesday
-      -- ^ @WEDNESDAY@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportScheduleRepeatsOnWeekDaysItem
-
-instance FromText ReportScheduleRepeatsOnWeekDaysItem where
-    fromText = \case
-        "FRIDAY" -> Just RSROWDIFriday
-        "MONDAY" -> Just RSROWDIMonday
-        "SATURDAY" -> Just RSROWDISaturday
-        "SUNDAY" -> Just RSROWDISunday
-        "THURSDAY" -> Just RSROWDIThursday
-        "TUESDAY" -> Just RSROWDITuesday
-        "WEDNESDAY" -> Just RSROWDIWednesday
-        _ -> Nothing
-
-instance ToText ReportScheduleRepeatsOnWeekDaysItem where
-    toText = \case
-        RSROWDIFriday -> "FRIDAY"
-        RSROWDIMonday -> "MONDAY"
-        RSROWDISaturday -> "SATURDAY"
-        RSROWDISunday -> "SUNDAY"
-        RSROWDIThursday -> "THURSDAY"
-        RSROWDITuesday -> "TUESDAY"
-        RSROWDIWednesday -> "WEDNESDAY"
-
-instance FromJSON ReportScheduleRepeatsOnWeekDaysItem where
-    parseJSON = parseJSONText "ReportScheduleRepeatsOnWeekDaysItem"
-
-instance ToJSON ReportScheduleRepeatsOnWeekDaysItem where
-    toJSON = toJSONText
-
--- | Creative group number of the creative group assignment.
-data CreativeGroupAssignmentCreativeGroupNumber
-    = CreativeGroupOne
-      -- ^ @CREATIVE_GROUP_ONE@
-    | CreativeGroupTwo
-      -- ^ @CREATIVE_GROUP_TWO@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeGroupAssignmentCreativeGroupNumber
-
-instance FromText CreativeGroupAssignmentCreativeGroupNumber where
-    fromText = \case
-        "CREATIVE_GROUP_ONE" -> Just CreativeGroupOne
-        "CREATIVE_GROUP_TWO" -> Just CreativeGroupTwo
-        _ -> Nothing
-
-instance ToText CreativeGroupAssignmentCreativeGroupNumber where
-    toText = \case
-        CreativeGroupOne -> "CREATIVE_GROUP_ONE"
-        CreativeGroupTwo -> "CREATIVE_GROUP_TWO"
-
-instance FromJSON CreativeGroupAssignmentCreativeGroupNumber where
-    parseJSON = parseJSONText "CreativeGroupAssignmentCreativeGroupNumber"
-
-instance ToJSON CreativeGroupAssignmentCreativeGroupNumber where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data AccountsListSortField
-    = AID
-      -- ^ @ID@
-    | AName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountsListSortField
-
-instance FromText AccountsListSortField where
-    fromText = \case
-        "ID" -> Just AID
-        "NAME" -> Just AName
-        _ -> Nothing
-
-instance ToText AccountsListSortField where
-    toText = \case
-        AID -> "ID"
-        AName -> "NAME"
-
-instance FromJSON AccountsListSortField where
-    parseJSON = parseJSONText "AccountsListSortField"
-
-instance ToJSON AccountsListSortField where
-    toJSON = toJSONText
-
--- | Select only advertisers with the specified status.
-data AdvertisersListStatus
-    = Approved
-      -- ^ @APPROVED@
-    | OnHold
-      -- ^ @ON_HOLD@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdvertisersListStatus
-
-instance FromText AdvertisersListStatus where
-    fromText = \case
-        "APPROVED" -> Just Approved
-        "ON_HOLD" -> Just OnHold
-        _ -> Nothing
-
-instance ToText AdvertisersListStatus where
-    toText = \case
-        Approved -> "APPROVED"
-        OnHold -> "ON_HOLD"
-
-instance FromJSON AdvertisersListStatus where
-    parseJSON = parseJSONText "AdvertisersListStatus"
-
-instance ToJSON AdvertisersListStatus where
-    toJSON = toJSONText
-
--- | Determines how the \'value\' field is matched when filtering. If not
--- specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, \'*\' is
--- allowed as a placeholder for variable length character sequences, and it
--- can be escaped with a backslash. Note, only paid search dimensions
--- (\'dfa:paidSearch*\') allow a matchType other than EXACT.
-data DimensionValueMatchType
-    = BeginsWith
-      -- ^ @BEGINS_WITH@
-    | Contains
-      -- ^ @CONTAINS@
-    | Exact
-      -- ^ @EXACT@
-    | WildcardExpression
-      -- ^ @WILDCARD_EXPRESSION@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DimensionValueMatchType
-
-instance FromText DimensionValueMatchType where
-    fromText = \case
-        "BEGINS_WITH" -> Just BeginsWith
-        "CONTAINS" -> Just Contains
-        "EXACT" -> Just Exact
-        "WILDCARD_EXPRESSION" -> Just WildcardExpression
-        _ -> Nothing
-
-instance ToText DimensionValueMatchType where
-    toText = \case
-        BeginsWith -> "BEGINS_WITH"
-        Contains -> "CONTAINS"
-        Exact -> "EXACT"
-        WildcardExpression -> "WILDCARD_EXPRESSION"
-
-instance FromJSON DimensionValueMatchType where
-    parseJSON = parseJSONText "DimensionValueMatchType"
-
-instance ToJSON DimensionValueMatchType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data PlacementGroupsListSortOrder
-    = PGLSOAscending
-      -- ^ @ASCENDING@
-    | PGLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementGroupsListSortOrder
-
-instance FromText PlacementGroupsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just PGLSOAscending
-        "DESCENDING" -> Just PGLSODescending
-        _ -> Nothing
-
-instance ToText PlacementGroupsListSortOrder where
-    toText = \case
-        PGLSOAscending -> "ASCENDING"
-        PGLSODescending -> "DESCENDING"
-
-instance FromJSON PlacementGroupsListSortOrder where
-    parseJSON = parseJSONText "PlacementGroupsListSortOrder"
-
-instance ToJSON PlacementGroupsListSortOrder where
-    toJSON = toJSONText
-
--- | Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
--- WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on
--- mobile devices for regular or interstitial ads, respectively. APP and
--- APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO
--- refers to rendering an in-stream video ads developed with the VAST
--- standard.
-data AdCompatibility
-    = ACApp
-      -- ^ @APP@
-    | ACAppInterstitial
-      -- ^ @APP_INTERSTITIAL@
-    | ACInStreamVideo
-      -- ^ @IN_STREAM_VIDEO@
-    | ACWeb
-      -- ^ @WEB@
-    | ACWebInterstitial
-      -- ^ @WEB_INTERSTITIAL@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdCompatibility
-
-instance FromText AdCompatibility where
-    fromText = \case
-        "APP" -> Just ACApp
-        "APP_INTERSTITIAL" -> Just ACAppInterstitial
-        "IN_STREAM_VIDEO" -> Just ACInStreamVideo
-        "WEB" -> Just ACWeb
-        "WEB_INTERSTITIAL" -> Just ACWebInterstitial
-        _ -> Nothing
-
-instance ToText AdCompatibility where
-    toText = \case
-        ACApp -> "APP"
-        ACAppInterstitial -> "APP_INTERSTITIAL"
-        ACInStreamVideo -> "IN_STREAM_VIDEO"
-        ACWeb -> "WEB"
-        ACWebInterstitial -> "WEB_INTERSTITIAL"
-
-instance FromJSON AdCompatibility where
-    parseJSON = parseJSONText "AdCompatibility"
-
-instance ToJSON AdCompatibility where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data CreativeFieldValuesListSortField
-    = CFVLSFID
-      -- ^ @ID@
-    | CFVLSFValue
-      -- ^ @VALUE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeFieldValuesListSortField
-
-instance FromText CreativeFieldValuesListSortField where
-    fromText = \case
-        "ID" -> Just CFVLSFID
-        "VALUE" -> Just CFVLSFValue
-        _ -> Nothing
-
-instance ToText CreativeFieldValuesListSortField where
-    toText = \case
-        CFVLSFID -> "ID"
-        CFVLSFValue -> "VALUE"
-
-instance FromJSON CreativeFieldValuesListSortField where
-    parseJSON = parseJSONText "CreativeFieldValuesListSortField"
-
-instance ToJSON CreativeFieldValuesListSortField where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data FloodlightActivityGroupsListSortField
-    = FAGLSFID
-      -- ^ @ID@
-    | FAGLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivityGroupsListSortField
-
-instance FromText FloodlightActivityGroupsListSortField where
-    fromText = \case
-        "ID" -> Just FAGLSFID
-        "NAME" -> Just FAGLSFName
-        _ -> Nothing
-
-instance ToText FloodlightActivityGroupsListSortField where
-    toText = \case
-        FAGLSFID -> "ID"
-        FAGLSFName -> "NAME"
-
-instance FromJSON FloodlightActivityGroupsListSortField where
-    parseJSON = parseJSONText "FloodlightActivityGroupsListSortField"
-
-instance ToJSON FloodlightActivityGroupsListSortField where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data OrdersListSortOrder
-    = OLSOAscending
-      -- ^ @ASCENDING@
-    | OLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable OrdersListSortOrder
-
-instance FromText OrdersListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just OLSOAscending
-        "DESCENDING" -> Just OLSODescending
-        _ -> Nothing
-
-instance ToText OrdersListSortOrder where
-    toText = \case
-        OLSOAscending -> "ASCENDING"
-        OLSODescending -> "DESCENDING"
-
-instance FromJSON OrdersListSortOrder where
-    parseJSON = parseJSONText "OrdersListSortOrder"
-
-instance ToJSON OrdersListSortOrder where
-    toJSON = toJSONText
-
--- | Profile for this account. This is a read-only field that can be left
--- blank.
-data AccountAccountProFile
-    = AccountProFileBasic
-      -- ^ @ACCOUNT_PROFILE_BASIC@
-    | AccountProFileStandard
-      -- ^ @ACCOUNT_PROFILE_STANDARD@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountAccountProFile
-
-instance FromText AccountAccountProFile where
-    fromText = \case
-        "ACCOUNT_PROFILE_BASIC" -> Just AccountProFileBasic
-        "ACCOUNT_PROFILE_STANDARD" -> Just AccountProFileStandard
-        _ -> Nothing
-
-instance ToText AccountAccountProFile where
-    toText = \case
-        AccountProFileBasic -> "ACCOUNT_PROFILE_BASIC"
-        AccountProFileStandard -> "ACCOUNT_PROFILE_STANDARD"
-
-instance FromJSON AccountAccountProFile where
-    parseJSON = parseJSONText "AccountAccountProFile"
-
-instance ToJSON AccountAccountProFile where
-    toJSON = toJSONText
-
--- | Type of this creative.This is a required field. Applicable to all
--- creative types.
-data CreativeType
-    = CTBrandSafeDefaultInstreamVideo
-      -- ^ @BRAND_SAFE_DEFAULT_INSTREAM_VIDEO@
-    | CTCustomInpage
-      -- ^ @CUSTOM_INPAGE@
-    | CTCustomInterstitial
-      -- ^ @CUSTOM_INTERSTITIAL@
-    | CTEnhancedBanner
-      -- ^ @ENHANCED_BANNER@
-    | CTEnhancedImage
-      -- ^ @ENHANCED_IMAGE@
-    | CTFlashInpage
-      -- ^ @FLASH_INPAGE@
-    | CTHTML5Banner
-      -- ^ @HTML5_BANNER@
-    | CTImage
-      -- ^ @IMAGE@
-    | CTInstreamVideo
-      -- ^ @INSTREAM_VIDEO@
-    | CTInternalRedirect
-      -- ^ @INTERNAL_REDIRECT@
-    | CTInterstitialInternalRedirect
-      -- ^ @INTERSTITIAL_INTERNAL_REDIRECT@
-    | CTRedirect
-      -- ^ @REDIRECT@
-    | CTRichMediaExpanding
-      -- ^ @RICH_MEDIA_EXPANDING@
-    | CTRichMediaImExpand
-      -- ^ @RICH_MEDIA_IM_EXPAND@
-    | CTRichMediaInpage
-      -- ^ @RICH_MEDIA_INPAGE@
-    | CTRichMediaInpageFloating
-      -- ^ @RICH_MEDIA_INPAGE_FLOATING@
-    | CTRichMediaInterstitialFloat
-      -- ^ @RICH_MEDIA_INTERSTITIAL_FLOAT@
-    | CTRichMediaMobileInApp
-      -- ^ @RICH_MEDIA_MOBILE_IN_APP@
-    | CTRichMediaMultiFloating
-      -- ^ @RICH_MEDIA_MULTI_FLOATING@
-    | CTRichMediaPeelDown
-      -- ^ @RICH_MEDIA_PEEL_DOWN@
-    | CTTrackingText
-      -- ^ @TRACKING_TEXT@
-    | CTVastRedirect
-      -- ^ @VAST_REDIRECT@
-    | CTVpaidLinear
-      -- ^ @VPAID_LINEAR@
-    | CTVpaidNonLinear
-      -- ^ @VPAID_NON_LINEAR@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeType
-
-instance FromText CreativeType where
-    fromText = \case
-        "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO" -> Just CTBrandSafeDefaultInstreamVideo
-        "CUSTOM_INPAGE" -> Just CTCustomInpage
-        "CUSTOM_INTERSTITIAL" -> Just CTCustomInterstitial
-        "ENHANCED_BANNER" -> Just CTEnhancedBanner
-        "ENHANCED_IMAGE" -> Just CTEnhancedImage
-        "FLASH_INPAGE" -> Just CTFlashInpage
-        "HTML5_BANNER" -> Just CTHTML5Banner
-        "IMAGE" -> Just CTImage
-        "INSTREAM_VIDEO" -> Just CTInstreamVideo
-        "INTERNAL_REDIRECT" -> Just CTInternalRedirect
-        "INTERSTITIAL_INTERNAL_REDIRECT" -> Just CTInterstitialInternalRedirect
-        "REDIRECT" -> Just CTRedirect
-        "RICH_MEDIA_EXPANDING" -> Just CTRichMediaExpanding
-        "RICH_MEDIA_IM_EXPAND" -> Just CTRichMediaImExpand
-        "RICH_MEDIA_INPAGE" -> Just CTRichMediaInpage
-        "RICH_MEDIA_INPAGE_FLOATING" -> Just CTRichMediaInpageFloating
-        "RICH_MEDIA_INTERSTITIAL_FLOAT" -> Just CTRichMediaInterstitialFloat
-        "RICH_MEDIA_MOBILE_IN_APP" -> Just CTRichMediaMobileInApp
-        "RICH_MEDIA_MULTI_FLOATING" -> Just CTRichMediaMultiFloating
-        "RICH_MEDIA_PEEL_DOWN" -> Just CTRichMediaPeelDown
-        "TRACKING_TEXT" -> Just CTTrackingText
-        "VAST_REDIRECT" -> Just CTVastRedirect
-        "VPAID_LINEAR" -> Just CTVpaidLinear
-        "VPAID_NON_LINEAR" -> Just CTVpaidNonLinear
-        _ -> Nothing
-
-instance ToText CreativeType where
-    toText = \case
-        CTBrandSafeDefaultInstreamVideo -> "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO"
-        CTCustomInpage -> "CUSTOM_INPAGE"
-        CTCustomInterstitial -> "CUSTOM_INTERSTITIAL"
-        CTEnhancedBanner -> "ENHANCED_BANNER"
-        CTEnhancedImage -> "ENHANCED_IMAGE"
-        CTFlashInpage -> "FLASH_INPAGE"
-        CTHTML5Banner -> "HTML5_BANNER"
-        CTImage -> "IMAGE"
-        CTInstreamVideo -> "INSTREAM_VIDEO"
-        CTInternalRedirect -> "INTERNAL_REDIRECT"
-        CTInterstitialInternalRedirect -> "INTERSTITIAL_INTERNAL_REDIRECT"
-        CTRedirect -> "REDIRECT"
-        CTRichMediaExpanding -> "RICH_MEDIA_EXPANDING"
-        CTRichMediaImExpand -> "RICH_MEDIA_IM_EXPAND"
-        CTRichMediaInpage -> "RICH_MEDIA_INPAGE"
-        CTRichMediaInpageFloating -> "RICH_MEDIA_INPAGE_FLOATING"
-        CTRichMediaInterstitialFloat -> "RICH_MEDIA_INTERSTITIAL_FLOAT"
-        CTRichMediaMobileInApp -> "RICH_MEDIA_MOBILE_IN_APP"
-        CTRichMediaMultiFloating -> "RICH_MEDIA_MULTI_FLOATING"
-        CTRichMediaPeelDown -> "RICH_MEDIA_PEEL_DOWN"
-        CTTrackingText -> "TRACKING_TEXT"
-        CTVastRedirect -> "VAST_REDIRECT"
-        CTVpaidLinear -> "VPAID_LINEAR"
-        CTVpaidNonLinear -> "VPAID_NON_LINEAR"
-
-instance FromJSON CreativeType where
-    parseJSON = parseJSONText "CreativeType"
-
-instance ToJSON CreativeType where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is \'DESCENDING\'.
-data FilesListSortOrder
-    = FLSOAscending
-      -- ^ @ASCENDING@
-      -- Ascending order.
-    | FLSODescending
-      -- ^ @DESCENDING@
-      -- Descending order.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FilesListSortOrder
-
-instance FromText FilesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just FLSOAscending
-        "DESCENDING" -> Just FLSODescending
-        _ -> Nothing
-
-instance ToText FilesListSortOrder where
-    toText = \case
-        FLSOAscending -> "ASCENDING"
-        FLSODescending -> "DESCENDING"
-
-instance FromJSON FilesListSortOrder where
-    parseJSON = parseJSONText "FilesListSortOrder"
-
-instance ToJSON FilesListSortOrder where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data AdvertiserGroupsListSortField
-    = AGLSFID
-      -- ^ @ID@
-    | AGLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdvertiserGroupsListSortField
-
-instance FromText AdvertiserGroupsListSortField where
-    fromText = \case
-        "ID" -> Just AGLSFID
-        "NAME" -> Just AGLSFName
-        _ -> Nothing
-
-instance ToText AdvertiserGroupsListSortField where
-    toText = \case
-        AGLSFID -> "ID"
-        AGLSFName -> "NAME"
-
-instance FromJSON AdvertiserGroupsListSortField where
-    parseJSON = parseJSONText "AdvertiserGroupsListSortField"
-
-instance ToJSON AdvertiserGroupsListSortField where
-    toJSON = toJSONText
-
--- | Type of browser window for which the backup image of the flash creative
--- can be displayed.
-data TargetWindowTargetWindowOption
-    = CurrentWindow
-      -- ^ @CURRENT_WINDOW@
-    | Custom
-      -- ^ @CUSTOM@
-    | NewWindow
-      -- ^ @NEW_WINDOW@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable TargetWindowTargetWindowOption
-
-instance FromText TargetWindowTargetWindowOption where
-    fromText = \case
-        "CURRENT_WINDOW" -> Just CurrentWindow
-        "CUSTOM" -> Just Custom
-        "NEW_WINDOW" -> Just NewWindow
-        _ -> Nothing
-
-instance ToText TargetWindowTargetWindowOption where
-    toText = \case
-        CurrentWindow -> "CURRENT_WINDOW"
-        Custom -> "CUSTOM"
-        NewWindow -> "NEW_WINDOW"
-
-instance FromJSON TargetWindowTargetWindowOption where
-    parseJSON = parseJSONText "TargetWindowTargetWindowOption"
-
-instance ToJSON TargetWindowTargetWindowOption where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data DirectorySiteContactsListSortField
-    = DSCLSFID
-      -- ^ @ID@
-    | DSCLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DirectorySiteContactsListSortField
-
-instance FromText DirectorySiteContactsListSortField where
-    fromText = \case
-        "ID" -> Just DSCLSFID
-        "NAME" -> Just DSCLSFName
-        _ -> Nothing
-
-instance ToText DirectorySiteContactsListSortField where
-    toText = \case
-        DSCLSFID -> "ID"
-        DSCLSFName -> "NAME"
-
-instance FromJSON DirectorySiteContactsListSortField where
-    parseJSON = parseJSONText "DirectorySiteContactsListSortField"
-
-instance ToJSON DirectorySiteContactsListSortField where
-    toJSON = toJSONText
-
--- | Select only placements with these pricing types.
-data PlacementsListPricingTypes
-    = PLPTPricingTypeCpa
-      -- ^ @PRICING_TYPE_CPA@
-    | PLPTPricingTypeCpc
-      -- ^ @PRICING_TYPE_CPC@
-    | PLPTPricingTypeCpm
-      -- ^ @PRICING_TYPE_CPM@
-    | PLPTPricingTypeFlatRateClicks
-      -- ^ @PRICING_TYPE_FLAT_RATE_CLICKS@
-    | PLPTPricingTypeFlatRateImpressions
-      -- ^ @PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementsListPricingTypes
-
-instance FromText PlacementsListPricingTypes where
-    fromText = \case
-        "PRICING_TYPE_CPA" -> Just PLPTPricingTypeCpa
-        "PRICING_TYPE_CPC" -> Just PLPTPricingTypeCpc
-        "PRICING_TYPE_CPM" -> Just PLPTPricingTypeCpm
-        "PRICING_TYPE_FLAT_RATE_CLICKS" -> Just PLPTPricingTypeFlatRateClicks
-        "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Just PLPTPricingTypeFlatRateImpressions
-        _ -> Nothing
-
-instance ToText PlacementsListPricingTypes where
-    toText = \case
-        PLPTPricingTypeCpa -> "PRICING_TYPE_CPA"
-        PLPTPricingTypeCpc -> "PRICING_TYPE_CPC"
-        PLPTPricingTypeCpm -> "PRICING_TYPE_CPM"
-        PLPTPricingTypeFlatRateClicks -> "PRICING_TYPE_FLAT_RATE_CLICKS"
-        PLPTPricingTypeFlatRateImpressions -> "PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
-
-instance FromJSON PlacementsListPricingTypes where
-    parseJSON = parseJSONText "PlacementsListPricingTypes"
-
-instance ToJSON PlacementsListPricingTypes where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data EventTagsListSortOrder
-    = ETLSOAscending
-      -- ^ @ASCENDING@
-    | ETLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable EventTagsListSortOrder
-
-instance FromText EventTagsListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just ETLSOAscending
-        "DESCENDING" -> Just ETLSODescending
-        _ -> Nothing
-
-instance ToText EventTagsListSortOrder where
-    toText = \case
-        ETLSOAscending -> "ASCENDING"
-        ETLSODescending -> "DESCENDING"
-
-instance FromJSON EventTagsListSortOrder where
-    parseJSON = parseJSONText "EventTagsListSortOrder"
-
-instance ToJSON EventTagsListSortOrder where
-    toJSON = toJSONText
-
--- | Field by which to sort the list.
-data DirectorySitesListSortField
-    = DSLSFID
-      -- ^ @ID@
-    | DSLSFName
-      -- ^ @NAME@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable DirectorySitesListSortField
-
-instance FromText DirectorySitesListSortField where
-    fromText = \case
-        "ID" -> Just DSLSFID
-        "NAME" -> Just DSLSFName
-        _ -> Nothing
-
-instance ToText DirectorySitesListSortField where
-    toText = \case
-        DSLSFID -> "ID"
-        DSLSFName -> "NAME"
-
-instance FromJSON DirectorySitesListSortField where
-    parseJSON = parseJSONText "DirectorySitesListSortField"
-
-instance ToJSON DirectorySitesListSortField where
-    toJSON = toJSONText
-
--- | The dimension option.
-data ReportCrossDimensionReachCriteriaDimension
-    = RCDRCDAdvertiser
-      -- ^ @ADVERTISER@
-    | RCDRCDCampaign
-      -- ^ @CAMPAIGN@
-    | RCDRCDSiteByAdvertiser
-      -- ^ @SITE_BY_ADVERTISER@
-    | RCDRCDSiteByCampaign
-      -- ^ @SITE_BY_CAMPAIGN@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportCrossDimensionReachCriteriaDimension
-
-instance FromText ReportCrossDimensionReachCriteriaDimension where
-    fromText = \case
-        "ADVERTISER" -> Just RCDRCDAdvertiser
-        "CAMPAIGN" -> Just RCDRCDCampaign
-        "SITE_BY_ADVERTISER" -> Just RCDRCDSiteByAdvertiser
-        "SITE_BY_CAMPAIGN" -> Just RCDRCDSiteByCampaign
-        _ -> Nothing
-
-instance ToText ReportCrossDimensionReachCriteriaDimension where
-    toText = \case
-        RCDRCDAdvertiser -> "ADVERTISER"
-        RCDRCDCampaign -> "CAMPAIGN"
-        RCDRCDSiteByAdvertiser -> "SITE_BY_ADVERTISER"
-        RCDRCDSiteByCampaign -> "SITE_BY_CAMPAIGN"
-
-instance FromJSON ReportCrossDimensionReachCriteriaDimension where
-    parseJSON = parseJSONText "ReportCrossDimensionReachCriteriaDimension"
-
-instance ToJSON ReportCrossDimensionReachCriteriaDimension where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data SitesListSortOrder
-    = SLSOAscending
-      -- ^ @ASCENDING@
-    | SLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable SitesListSortOrder
-
-instance FromText SitesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just SLSOAscending
-        "DESCENDING" -> Just SLSODescending
-        _ -> Nothing
-
-instance ToText SitesListSortOrder where
-    toText = \case
-        SLSOAscending -> "ASCENDING"
-        SLSODescending -> "DESCENDING"
-
-instance FromJSON SitesListSortOrder where
-    parseJSON = parseJSONText "SitesListSortOrder"
-
-instance ToJSON SitesListSortOrder where
-    toJSON = toJSONText
-
-data PlacementTagFormatsItem
-    = PTFIPlacementTagClickCommands
-      -- ^ @PLACEMENT_TAG_CLICK_COMMANDS@
-    | PTFIPlacementTagIframeIlayer
-      -- ^ @PLACEMENT_TAG_IFRAME_ILAYER@
-    | PTFIPlacementTagIframeJavascript
-      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT@
-    | PTFIPlacementTagIframeJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY@
-    | PTFIPlacementTagInstreamVideoPrefetch
-      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH@
-    | PTFIPlacementTagInstreamVideoPrefetchVast3
-      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3@
-    | PTFIPlacementTagInternalRedirect
-      -- ^ @PLACEMENT_TAG_INTERNAL_REDIRECT@
-    | PTFIPlacementTagInterstitialIframeJavascript
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT@
-    | PTFIPlacementTagInterstitialIframeJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY@
-    | PTFIPlacementTagInterstitialInternalRedirect
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT@
-    | PTFIPlacementTagInterstitialJavascript
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT@
-    | PTFIPlacementTagInterstitialJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY@
-    | PTFIPlacementTagJavascript
-      -- ^ @PLACEMENT_TAG_JAVASCRIPT@
-    | PTFIPlacementTagJavascriptLegacy
-      -- ^ @PLACEMENT_TAG_JAVASCRIPT_LEGACY@
-    | PTFIPlacementTagStandard
-      -- ^ @PLACEMENT_TAG_STANDARD@
-    | PTFIPlacementTagTracking
-      -- ^ @PLACEMENT_TAG_TRACKING@
-    | PTFIPlacementTagTrackingIframe
-      -- ^ @PLACEMENT_TAG_TRACKING_IFRAME@
-    | PTFIPlacementTagTrackingJavascript
-      -- ^ @PLACEMENT_TAG_TRACKING_JAVASCRIPT@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PlacementTagFormatsItem
-
-instance FromText PlacementTagFormatsItem where
-    fromText = \case
-        "PLACEMENT_TAG_CLICK_COMMANDS" -> Just PTFIPlacementTagClickCommands
-        "PLACEMENT_TAG_IFRAME_ILAYER" -> Just PTFIPlacementTagIframeIlayer
-        "PLACEMENT_TAG_IFRAME_JAVASCRIPT" -> Just PTFIPlacementTagIframeJavascript
-        "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY" -> Just PTFIPlacementTagIframeJavascriptLegacy
-        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH" -> Just PTFIPlacementTagInstreamVideoPrefetch
-        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3" -> Just PTFIPlacementTagInstreamVideoPrefetchVast3
-        "PLACEMENT_TAG_INTERNAL_REDIRECT" -> Just PTFIPlacementTagInternalRedirect
-        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT" -> Just PTFIPlacementTagInterstitialIframeJavascript
-        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY" -> Just PTFIPlacementTagInterstitialIframeJavascriptLegacy
-        "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT" -> Just PTFIPlacementTagInterstitialInternalRedirect
-        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT" -> Just PTFIPlacementTagInterstitialJavascript
-        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY" -> Just PTFIPlacementTagInterstitialJavascriptLegacy
-        "PLACEMENT_TAG_JAVASCRIPT" -> Just PTFIPlacementTagJavascript
-        "PLACEMENT_TAG_JAVASCRIPT_LEGACY" -> Just PTFIPlacementTagJavascriptLegacy
-        "PLACEMENT_TAG_STANDARD" -> Just PTFIPlacementTagStandard
-        "PLACEMENT_TAG_TRACKING" -> Just PTFIPlacementTagTracking
-        "PLACEMENT_TAG_TRACKING_IFRAME" -> Just PTFIPlacementTagTrackingIframe
-        "PLACEMENT_TAG_TRACKING_JAVASCRIPT" -> Just PTFIPlacementTagTrackingJavascript
-        _ -> Nothing
-
-instance ToText PlacementTagFormatsItem where
-    toText = \case
-        PTFIPlacementTagClickCommands -> "PLACEMENT_TAG_CLICK_COMMANDS"
-        PTFIPlacementTagIframeIlayer -> "PLACEMENT_TAG_IFRAME_ILAYER"
-        PTFIPlacementTagIframeJavascript -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        PTFIPlacementTagIframeJavascriptLegacy -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY"
-        PTFIPlacementTagInstreamVideoPrefetch -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        PTFIPlacementTagInstreamVideoPrefetchVast3 -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
-        PTFIPlacementTagInternalRedirect -> "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        PTFIPlacementTagInterstitialIframeJavascript -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        PTFIPlacementTagInterstitialIframeJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY"
-        PTFIPlacementTagInterstitialInternalRedirect -> "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        PTFIPlacementTagInterstitialJavascript -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        PTFIPlacementTagInterstitialJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY"
-        PTFIPlacementTagJavascript -> "PLACEMENT_TAG_JAVASCRIPT"
-        PTFIPlacementTagJavascriptLegacy -> "PLACEMENT_TAG_JAVASCRIPT_LEGACY"
-        PTFIPlacementTagStandard -> "PLACEMENT_TAG_STANDARD"
-        PTFIPlacementTagTracking -> "PLACEMENT_TAG_TRACKING"
-        PTFIPlacementTagTrackingIframe -> "PLACEMENT_TAG_TRACKING_IFRAME"
-        PTFIPlacementTagTrackingJavascript -> "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-
-instance FromJSON PlacementTagFormatsItem where
-    parseJSON = parseJSONText "PlacementTagFormatsItem"
-
-instance ToJSON PlacementTagFormatsItem where
-    toJSON = toJSONText
-
--- | The type of the report.
-data ReportType
-    = RTCrossDimensionReach
-      -- ^ @CROSS_DIMENSION_REACH@
-    | RTFloodlight
-      -- ^ @FLOODLIGHT@
-    | RTPathToConversion
-      -- ^ @PATH_TO_CONVERSION@
-    | RTReach
-      -- ^ @REACH@
-    | RTStandard
-      -- ^ @STANDARD@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ReportType
-
-instance FromText ReportType where
-    fromText = \case
-        "CROSS_DIMENSION_REACH" -> Just RTCrossDimensionReach
-        "FLOODLIGHT" -> Just RTFloodlight
-        "PATH_TO_CONVERSION" -> Just RTPathToConversion
-        "REACH" -> Just RTReach
-        "STANDARD" -> Just RTStandard
-        _ -> Nothing
-
-instance ToText ReportType where
-    toText = \case
-        RTCrossDimensionReach -> "CROSS_DIMENSION_REACH"
-        RTFloodlight -> "FLOODLIGHT"
-        RTPathToConversion -> "PATH_TO_CONVERSION"
-        RTReach -> "REACH"
-        RTStandard -> "STANDARD"
-
-instance FromJSON ReportType where
-    parseJSON = parseJSONText "ReportType"
-
-instance ToJSON ReportType where
-    toJSON = toJSONText
-
-data CreativeAssetMetadataWarnedValidationRulesItem
-    = ADMobReferenced
-      -- ^ @ADMOB_REFERENCED@
-    | AssetFormatUnsupportedDcm
-      -- ^ @ASSET_FORMAT_UNSUPPORTED_DCM@
-    | AssetInvalid
-      -- ^ @ASSET_INVALID@
-    | ClickTagInvalid
-      -- ^ @CLICK_TAG_INVALID@
-    | ClickTagMissing
-      -- ^ @CLICK_TAG_MISSING@
-    | ClickTagMoreThanOne
-      -- ^ @CLICK_TAG_MORE_THAN_ONE@
-    | ClickTagNonTopLevel
-      -- ^ @CLICK_TAG_NON_TOP_LEVEL@
-    | ComponentUnsupportedDcm
-      -- ^ @COMPONENT_UNSUPPORTED_DCM@
-    | EnablerUnsupportedMethodDcm
-      -- ^ @ENABLER_UNSUPPORTED_METHOD_DCM@
-    | ExternalFileReferenced
-      -- ^ @EXTERNAL_FILE_REFERENCED@
-    | FileDetailEmpty
-      -- ^ @FILE_DETAIL_EMPTY@
-    | FileTypeInvalid
-      -- ^ @FILE_TYPE_INVALID@
-    | GwdPropertiesInvalid
-      -- ^ @GWD_PROPERTIES_INVALID@
-    | HTML5FeatureUnsupported
-      -- ^ @HTML5_FEATURE_UNSUPPORTED@
-    | LinkedFileNotFound
-      -- ^ @LINKED_FILE_NOT_FOUND@
-    | MaxFlashVersion11
-      -- ^ @MAX_FLASH_VERSION_11@
-    | MraidReferenced
-      -- ^ @MRAID_REFERENCED@
-    | NotSSLCompliant
-      -- ^ @NOT_SSL_COMPLIANT@
-    | OrphanedAsset
-      -- ^ @ORPHANED_ASSET@
-    | PrimaryHTMLMissing
-      -- ^ @PRIMARY_HTML_MISSING@
-    | ZipInvalid
-      -- ^ @ZIP_INVALID@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetMetadataWarnedValidationRulesItem
-
-instance FromText CreativeAssetMetadataWarnedValidationRulesItem where
-    fromText = \case
-        "ADMOB_REFERENCED" -> Just ADMobReferenced
-        "ASSET_FORMAT_UNSUPPORTED_DCM" -> Just AssetFormatUnsupportedDcm
-        "ASSET_INVALID" -> Just AssetInvalid
-        "CLICK_TAG_INVALID" -> Just ClickTagInvalid
-        "CLICK_TAG_MISSING" -> Just ClickTagMissing
-        "CLICK_TAG_MORE_THAN_ONE" -> Just ClickTagMoreThanOne
-        "CLICK_TAG_NON_TOP_LEVEL" -> Just ClickTagNonTopLevel
-        "COMPONENT_UNSUPPORTED_DCM" -> Just ComponentUnsupportedDcm
-        "ENABLER_UNSUPPORTED_METHOD_DCM" -> Just EnablerUnsupportedMethodDcm
-        "EXTERNAL_FILE_REFERENCED" -> Just ExternalFileReferenced
-        "FILE_DETAIL_EMPTY" -> Just FileDetailEmpty
-        "FILE_TYPE_INVALID" -> Just FileTypeInvalid
-        "GWD_PROPERTIES_INVALID" -> Just GwdPropertiesInvalid
-        "HTML5_FEATURE_UNSUPPORTED" -> Just HTML5FeatureUnsupported
-        "LINKED_FILE_NOT_FOUND" -> Just LinkedFileNotFound
-        "MAX_FLASH_VERSION_11" -> Just MaxFlashVersion11
-        "MRAID_REFERENCED" -> Just MraidReferenced
-        "NOT_SSL_COMPLIANT" -> Just NotSSLCompliant
-        "ORPHANED_ASSET" -> Just OrphanedAsset
-        "PRIMARY_HTML_MISSING" -> Just PrimaryHTMLMissing
-        "ZIP_INVALID" -> Just ZipInvalid
-        _ -> Nothing
-
-instance ToText CreativeAssetMetadataWarnedValidationRulesItem where
-    toText = \case
-        ADMobReferenced -> "ADMOB_REFERENCED"
-        AssetFormatUnsupportedDcm -> "ASSET_FORMAT_UNSUPPORTED_DCM"
-        AssetInvalid -> "ASSET_INVALID"
-        ClickTagInvalid -> "CLICK_TAG_INVALID"
-        ClickTagMissing -> "CLICK_TAG_MISSING"
-        ClickTagMoreThanOne -> "CLICK_TAG_MORE_THAN_ONE"
-        ClickTagNonTopLevel -> "CLICK_TAG_NON_TOP_LEVEL"
-        ComponentUnsupportedDcm -> "COMPONENT_UNSUPPORTED_DCM"
-        EnablerUnsupportedMethodDcm -> "ENABLER_UNSUPPORTED_METHOD_DCM"
-        ExternalFileReferenced -> "EXTERNAL_FILE_REFERENCED"
-        FileDetailEmpty -> "FILE_DETAIL_EMPTY"
-        FileTypeInvalid -> "FILE_TYPE_INVALID"
-        GwdPropertiesInvalid -> "GWD_PROPERTIES_INVALID"
-        HTML5FeatureUnsupported -> "HTML5_FEATURE_UNSUPPORTED"
-        LinkedFileNotFound -> "LINKED_FILE_NOT_FOUND"
-        MaxFlashVersion11 -> "MAX_FLASH_VERSION_11"
-        MraidReferenced -> "MRAID_REFERENCED"
-        NotSSLCompliant -> "NOT_SSL_COMPLIANT"
-        OrphanedAsset -> "ORPHANED_ASSET"
-        PrimaryHTMLMissing -> "PRIMARY_HTML_MISSING"
-        ZipInvalid -> "ZIP_INVALID"
-
-instance FromJSON CreativeAssetMetadataWarnedValidationRulesItem where
-    parseJSON = parseJSONText "CreativeAssetMetadataWarnedValidationRulesItem"
-
-instance ToJSON CreativeAssetMetadataWarnedValidationRulesItem where
-    toJSON = toJSONText
-
--- | Payment source type of this ad slot.
-data AdSlotPaymentSourceType
-    = PlanningPaymentSourceTypeAgencyPaid
-      -- ^ @PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID@
-    | PlanningPaymentSourceTypePublisherPaid
-      -- ^ @PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdSlotPaymentSourceType
-
-instance FromText AdSlotPaymentSourceType where
-    fromText = \case
-        "PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID" -> Just PlanningPaymentSourceTypeAgencyPaid
-        "PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID" -> Just PlanningPaymentSourceTypePublisherPaid
-        _ -> Nothing
-
-instance ToText AdSlotPaymentSourceType where
-    toText = \case
-        PlanningPaymentSourceTypeAgencyPaid -> "PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID"
-        PlanningPaymentSourceTypePublisherPaid -> "PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID"
-
-instance FromJSON AdSlotPaymentSourceType where
-    parseJSON = parseJSONText "AdSlotPaymentSourceType"
-
-instance ToJSON AdSlotPaymentSourceType where
-    toJSON = toJSONText
-
-data AccountPermissionAccountProFilesItem
-    = APAPFIAccountProFileBasic
-      -- ^ @ACCOUNT_PROFILE_BASIC@
-    | APAPFIAccountProFileStandard
-      -- ^ @ACCOUNT_PROFILE_STANDARD@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AccountPermissionAccountProFilesItem
-
-instance FromText AccountPermissionAccountProFilesItem where
-    fromText = \case
-        "ACCOUNT_PROFILE_BASIC" -> Just APAPFIAccountProFileBasic
-        "ACCOUNT_PROFILE_STANDARD" -> Just APAPFIAccountProFileStandard
-        _ -> Nothing
-
-instance ToText AccountPermissionAccountProFilesItem where
-    toText = \case
-        APAPFIAccountProFileBasic -> "ACCOUNT_PROFILE_BASIC"
-        APAPFIAccountProFileStandard -> "ACCOUNT_PROFILE_STANDARD"
-
-instance FromJSON AccountPermissionAccountProFilesItem where
-    parseJSON = parseJSONText "AccountPermissionAccountProFilesItem"
-
-instance ToJSON AccountPermissionAccountProFilesItem where
-    toJSON = toJSONText
-
--- | Type of the event. This is a read-only field.
-data CreativeCustomEventAdvertiserCustomEventType
-    = AdvertiserEventCounter
-      -- ^ @ADVERTISER_EVENT_COUNTER@
-    | AdvertiserEventExit
-      -- ^ @ADVERTISER_EVENT_EXIT@
-    | AdvertiserEventTimer
-      -- ^ @ADVERTISER_EVENT_TIMER@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeCustomEventAdvertiserCustomEventType
-
-instance FromText CreativeCustomEventAdvertiserCustomEventType where
-    fromText = \case
-        "ADVERTISER_EVENT_COUNTER" -> Just AdvertiserEventCounter
-        "ADVERTISER_EVENT_EXIT" -> Just AdvertiserEventExit
-        "ADVERTISER_EVENT_TIMER" -> Just AdvertiserEventTimer
-        _ -> Nothing
-
-instance ToText CreativeCustomEventAdvertiserCustomEventType where
-    toText = \case
-        AdvertiserEventCounter -> "ADVERTISER_EVENT_COUNTER"
-        AdvertiserEventExit -> "ADVERTISER_EVENT_EXIT"
-        AdvertiserEventTimer -> "ADVERTISER_EVENT_TIMER"
-
-instance FromJSON CreativeCustomEventAdvertiserCustomEventType where
-    parseJSON = parseJSONText "CreativeCustomEventAdvertiserCustomEventType"
-
-instance ToJSON CreativeCustomEventAdvertiserCustomEventType where
-    toJSON = toJSONText
-
--- | Select only change logs with the specified object type.
-data ChangeLogsListObjectType
-    = ObjectAccount
-      -- ^ @OBJECT_ACCOUNT@
-    | ObjectAccountBillingFeature
-      -- ^ @OBJECT_ACCOUNT_BILLING_FEATURE@
-    | ObjectAd
-      -- ^ @OBJECT_AD@
-    | ObjectAdvertiser
-      -- ^ @OBJECT_ADVERTISER@
-    | ObjectAdvertiserGroup
-      -- ^ @OBJECT_ADVERTISER_GROUP@
-    | ObjectBillingAccountGroup
-      -- ^ @OBJECT_BILLING_ACCOUNT_GROUP@
-    | ObjectBillingFeature
-      -- ^ @OBJECT_BILLING_FEATURE@
-    | ObjectBillingMinimumFee
-      -- ^ @OBJECT_BILLING_MINIMUM_FEE@
-    | ObjectBillingProFile
-      -- ^ @OBJECT_BILLING_PROFILE@
-    | ObjectCampaign
-      -- ^ @OBJECT_CAMPAIGN@
-    | ObjectContentCategory
-      -- ^ @OBJECT_CONTENT_CATEGORY@
-    | ObjectCreative
-      -- ^ @OBJECT_CREATIVE@
-    | ObjectCreativeAsset
-      -- ^ @OBJECT_CREATIVE_ASSET@
-    | ObjectCreativeBundle
-      -- ^ @OBJECT_CREATIVE_BUNDLE@
-    | ObjectCreativeField
-      -- ^ @OBJECT_CREATIVE_FIELD@
-    | ObjectCreativeGroup
-      -- ^ @OBJECT_CREATIVE_GROUP@
-    | ObjectDfaSite
-      -- ^ @OBJECT_DFA_SITE@
-    | ObjectEventTag
-      -- ^ @OBJECT_EVENT_TAG@
-    | ObjectFloodlightActivityGroup
-      -- ^ @OBJECT_FLOODLIGHT_ACTIVITY_GROUP@
-    | ObjectFloodlightActvity
-      -- ^ @OBJECT_FLOODLIGHT_ACTVITY@
-    | ObjectFloodlightConfiguration
-      -- ^ @OBJECT_FLOODLIGHT_CONFIGURATION@
-    | ObjectInstreamCreative
-      -- ^ @OBJECT_INSTREAM_CREATIVE@
-    | ObjectLandingPage
-      -- ^ @OBJECT_LANDING_PAGE@
-    | ObjectMediaOrder
-      -- ^ @OBJECT_MEDIA_ORDER@
-    | ObjectPlacement
-      -- ^ @OBJECT_PLACEMENT@
-    | ObjectPlacementStrategy
-      -- ^ @OBJECT_PLACEMENT_STRATEGY@
-    | ObjectProvidedListClient
-      -- ^ @OBJECT_PROVIDED_LIST_CLIENT@
-    | ObjectRateCard
-      -- ^ @OBJECT_RATE_CARD@
-    | ObjectRemarketingList
-      -- ^ @OBJECT_REMARKETING_LIST@
-    | ObjectRichmediaCreative
-      -- ^ @OBJECT_RICHMEDIA_CREATIVE@
-    | ObjectSdSite
-      -- ^ @OBJECT_SD_SITE@
-    | ObjectSize
-      -- ^ @OBJECT_SIZE@
-    | ObjectSubAccount
-      -- ^ @OBJECT_SUBACCOUNT@
-    | ObjectUserProFile
-      -- ^ @OBJECT_USER_PROFILE@
-    | ObjectUserProFileFilter
-      -- ^ @OBJECT_USER_PROFILE_FILTER@
-    | ObjectUserRole
-      -- ^ @OBJECT_USER_ROLE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ChangeLogsListObjectType
-
-instance FromText ChangeLogsListObjectType where
-    fromText = \case
-        "OBJECT_ACCOUNT" -> Just ObjectAccount
-        "OBJECT_ACCOUNT_BILLING_FEATURE" -> Just ObjectAccountBillingFeature
-        "OBJECT_AD" -> Just ObjectAd
-        "OBJECT_ADVERTISER" -> Just ObjectAdvertiser
-        "OBJECT_ADVERTISER_GROUP" -> Just ObjectAdvertiserGroup
-        "OBJECT_BILLING_ACCOUNT_GROUP" -> Just ObjectBillingAccountGroup
-        "OBJECT_BILLING_FEATURE" -> Just ObjectBillingFeature
-        "OBJECT_BILLING_MINIMUM_FEE" -> Just ObjectBillingMinimumFee
-        "OBJECT_BILLING_PROFILE" -> Just ObjectBillingProFile
-        "OBJECT_CAMPAIGN" -> Just ObjectCampaign
-        "OBJECT_CONTENT_CATEGORY" -> Just ObjectContentCategory
-        "OBJECT_CREATIVE" -> Just ObjectCreative
-        "OBJECT_CREATIVE_ASSET" -> Just ObjectCreativeAsset
-        "OBJECT_CREATIVE_BUNDLE" -> Just ObjectCreativeBundle
-        "OBJECT_CREATIVE_FIELD" -> Just ObjectCreativeField
-        "OBJECT_CREATIVE_GROUP" -> Just ObjectCreativeGroup
-        "OBJECT_DFA_SITE" -> Just ObjectDfaSite
-        "OBJECT_EVENT_TAG" -> Just ObjectEventTag
-        "OBJECT_FLOODLIGHT_ACTIVITY_GROUP" -> Just ObjectFloodlightActivityGroup
-        "OBJECT_FLOODLIGHT_ACTVITY" -> Just ObjectFloodlightActvity
-        "OBJECT_FLOODLIGHT_CONFIGURATION" -> Just ObjectFloodlightConfiguration
-        "OBJECT_INSTREAM_CREATIVE" -> Just ObjectInstreamCreative
-        "OBJECT_LANDING_PAGE" -> Just ObjectLandingPage
-        "OBJECT_MEDIA_ORDER" -> Just ObjectMediaOrder
-        "OBJECT_PLACEMENT" -> Just ObjectPlacement
-        "OBJECT_PLACEMENT_STRATEGY" -> Just ObjectPlacementStrategy
-        "OBJECT_PROVIDED_LIST_CLIENT" -> Just ObjectProvidedListClient
-        "OBJECT_RATE_CARD" -> Just ObjectRateCard
-        "OBJECT_REMARKETING_LIST" -> Just ObjectRemarketingList
-        "OBJECT_RICHMEDIA_CREATIVE" -> Just ObjectRichmediaCreative
-        "OBJECT_SD_SITE" -> Just ObjectSdSite
-        "OBJECT_SIZE" -> Just ObjectSize
-        "OBJECT_SUBACCOUNT" -> Just ObjectSubAccount
-        "OBJECT_USER_PROFILE" -> Just ObjectUserProFile
-        "OBJECT_USER_PROFILE_FILTER" -> Just ObjectUserProFileFilter
-        "OBJECT_USER_ROLE" -> Just ObjectUserRole
-        _ -> Nothing
-
-instance ToText ChangeLogsListObjectType where
-    toText = \case
-        ObjectAccount -> "OBJECT_ACCOUNT"
-        ObjectAccountBillingFeature -> "OBJECT_ACCOUNT_BILLING_FEATURE"
-        ObjectAd -> "OBJECT_AD"
-        ObjectAdvertiser -> "OBJECT_ADVERTISER"
-        ObjectAdvertiserGroup -> "OBJECT_ADVERTISER_GROUP"
-        ObjectBillingAccountGroup -> "OBJECT_BILLING_ACCOUNT_GROUP"
-        ObjectBillingFeature -> "OBJECT_BILLING_FEATURE"
-        ObjectBillingMinimumFee -> "OBJECT_BILLING_MINIMUM_FEE"
-        ObjectBillingProFile -> "OBJECT_BILLING_PROFILE"
-        ObjectCampaign -> "OBJECT_CAMPAIGN"
-        ObjectContentCategory -> "OBJECT_CONTENT_CATEGORY"
-        ObjectCreative -> "OBJECT_CREATIVE"
-        ObjectCreativeAsset -> "OBJECT_CREATIVE_ASSET"
-        ObjectCreativeBundle -> "OBJECT_CREATIVE_BUNDLE"
-        ObjectCreativeField -> "OBJECT_CREATIVE_FIELD"
-        ObjectCreativeGroup -> "OBJECT_CREATIVE_GROUP"
-        ObjectDfaSite -> "OBJECT_DFA_SITE"
-        ObjectEventTag -> "OBJECT_EVENT_TAG"
-        ObjectFloodlightActivityGroup -> "OBJECT_FLOODLIGHT_ACTIVITY_GROUP"
-        ObjectFloodlightActvity -> "OBJECT_FLOODLIGHT_ACTVITY"
-        ObjectFloodlightConfiguration -> "OBJECT_FLOODLIGHT_CONFIGURATION"
-        ObjectInstreamCreative -> "OBJECT_INSTREAM_CREATIVE"
-        ObjectLandingPage -> "OBJECT_LANDING_PAGE"
-        ObjectMediaOrder -> "OBJECT_MEDIA_ORDER"
-        ObjectPlacement -> "OBJECT_PLACEMENT"
-        ObjectPlacementStrategy -> "OBJECT_PLACEMENT_STRATEGY"
-        ObjectProvidedListClient -> "OBJECT_PROVIDED_LIST_CLIENT"
-        ObjectRateCard -> "OBJECT_RATE_CARD"
-        ObjectRemarketingList -> "OBJECT_REMARKETING_LIST"
-        ObjectRichmediaCreative -> "OBJECT_RICHMEDIA_CREATIVE"
-        ObjectSdSite -> "OBJECT_SD_SITE"
-        ObjectSize -> "OBJECT_SIZE"
-        ObjectSubAccount -> "OBJECT_SUBACCOUNT"
-        ObjectUserProFile -> "OBJECT_USER_PROFILE"
-        ObjectUserProFileFilter -> "OBJECT_USER_PROFILE_FILTER"
-        ObjectUserRole -> "OBJECT_USER_ROLE"
-
-instance FromJSON ChangeLogsListObjectType where
-    parseJSON = parseJSONText "ChangeLogsListObjectType"
-
-instance ToJSON ChangeLogsListObjectType where
-    toJSON = toJSONText
-
--- | Cap cost type of this inventory item.
-data PricingCapCostType
-    = PlanningPlacementCapCostTypeCumulative
-      -- ^ @PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE@
-    | PlanningPlacementCapCostTypeMonthly
-      -- ^ @PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY@
-    | PlanningPlacementCapCostTypeNone
-      -- ^ @PLANNING_PLACEMENT_CAP_COST_TYPE_NONE@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable PricingCapCostType
-
-instance FromText PricingCapCostType where
-    fromText = \case
-        "PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE" -> Just PlanningPlacementCapCostTypeCumulative
-        "PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY" -> Just PlanningPlacementCapCostTypeMonthly
-        "PLANNING_PLACEMENT_CAP_COST_TYPE_NONE" -> Just PlanningPlacementCapCostTypeNone
-        _ -> Nothing
-
-instance ToText PricingCapCostType where
-    toText = \case
-        PlanningPlacementCapCostTypeCumulative -> "PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE"
-        PlanningPlacementCapCostTypeMonthly -> "PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY"
-        PlanningPlacementCapCostTypeNone -> "PLANNING_PLACEMENT_CAP_COST_TYPE_NONE"
-
-instance FromJSON PricingCapCostType where
-    parseJSON = parseJSONText "PricingCapCostType"
-
-instance ToJSON PricingCapCostType where
-    toJSON = toJSONText
-
--- | Type of rich media asset. This is a read-only field. Applicable to the
--- following creative types: all RICH_MEDIA.
-data CreativeAssetDisplayType
-    = AssetDisplayTypeExpanding
-      -- ^ @ASSET_DISPLAY_TYPE_EXPANDING@
-    | AssetDisplayTypeFlashInFlash
-      -- ^ @ASSET_DISPLAY_TYPE_FLASH_IN_FLASH@
-    | AssetDisplayTypeFlashInFlashExpanding
-      -- ^ @ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING@
-    | AssetDisplayTypeFloating
-      -- ^ @ASSET_DISPLAY_TYPE_FLOATING@
-    | AssetDisplayTypeInpage
-      -- ^ @ASSET_DISPLAY_TYPE_INPAGE@
-    | AssetDisplayTypeOverlay
-      -- ^ @ASSET_DISPLAY_TYPE_OVERLAY@
-    | AssetDisplayTypePeelDown
-      -- ^ @ASSET_DISPLAY_TYPE_PEEL_DOWN@
-    | AssetDisplayTypeVpaidLinear
-      -- ^ @ASSET_DISPLAY_TYPE_VPAID_LINEAR@
-    | AssetDisplayTypeVpaidNonLinear
-      -- ^ @ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable CreativeAssetDisplayType
-
-instance FromText CreativeAssetDisplayType where
-    fromText = \case
-        "ASSET_DISPLAY_TYPE_EXPANDING" -> Just AssetDisplayTypeExpanding
-        "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH" -> Just AssetDisplayTypeFlashInFlash
-        "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING" -> Just AssetDisplayTypeFlashInFlashExpanding
-        "ASSET_DISPLAY_TYPE_FLOATING" -> Just AssetDisplayTypeFloating
-        "ASSET_DISPLAY_TYPE_INPAGE" -> Just AssetDisplayTypeInpage
-        "ASSET_DISPLAY_TYPE_OVERLAY" -> Just AssetDisplayTypeOverlay
-        "ASSET_DISPLAY_TYPE_PEEL_DOWN" -> Just AssetDisplayTypePeelDown
-        "ASSET_DISPLAY_TYPE_VPAID_LINEAR" -> Just AssetDisplayTypeVpaidLinear
-        "ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR" -> Just AssetDisplayTypeVpaidNonLinear
-        _ -> Nothing
-
-instance ToText CreativeAssetDisplayType where
-    toText = \case
-        AssetDisplayTypeExpanding -> "ASSET_DISPLAY_TYPE_EXPANDING"
-        AssetDisplayTypeFlashInFlash -> "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH"
-        AssetDisplayTypeFlashInFlashExpanding -> "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING"
-        AssetDisplayTypeFloating -> "ASSET_DISPLAY_TYPE_FLOATING"
-        AssetDisplayTypeInpage -> "ASSET_DISPLAY_TYPE_INPAGE"
-        AssetDisplayTypeOverlay -> "ASSET_DISPLAY_TYPE_OVERLAY"
-        AssetDisplayTypePeelDown -> "ASSET_DISPLAY_TYPE_PEEL_DOWN"
-        AssetDisplayTypeVpaidLinear -> "ASSET_DISPLAY_TYPE_VPAID_LINEAR"
-        AssetDisplayTypeVpaidNonLinear -> "ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR"
-
-instance FromJSON CreativeAssetDisplayType where
-    parseJSON = parseJSONText "CreativeAssetDisplayType"
-
-instance ToJSON CreativeAssetDisplayType where
-    toJSON = toJSONText
-
--- | Counting method for conversions for this floodlight activity. This is a
--- required field.
-data FloodlightActivityCountingMethod
-    = ItemsSoldCounting
-      -- ^ @ITEMS_SOLD_COUNTING@
-    | SessionCounting
-      -- ^ @SESSION_COUNTING@
-    | StandardCounting
-      -- ^ @STANDARD_COUNTING@
-    | TransactionsCounting
-      -- ^ @TRANSACTIONS_COUNTING@
-    | UniqueCounting
-      -- ^ @UNIQUE_COUNTING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable FloodlightActivityCountingMethod
-
-instance FromText FloodlightActivityCountingMethod where
-    fromText = \case
-        "ITEMS_SOLD_COUNTING" -> Just ItemsSoldCounting
-        "SESSION_COUNTING" -> Just SessionCounting
-        "STANDARD_COUNTING" -> Just StandardCounting
-        "TRANSACTIONS_COUNTING" -> Just TransactionsCounting
-        "UNIQUE_COUNTING" -> Just UniqueCounting
-        _ -> Nothing
-
-instance ToText FloodlightActivityCountingMethod where
-    toText = \case
-        ItemsSoldCounting -> "ITEMS_SOLD_COUNTING"
-        SessionCounting -> "SESSION_COUNTING"
-        StandardCounting -> "STANDARD_COUNTING"
-        TransactionsCounting -> "TRANSACTIONS_COUNTING"
-        UniqueCounting -> "UNIQUE_COUNTING"
-
-instance FromJSON FloodlightActivityCountingMethod where
-    parseJSON = parseJSONText "FloodlightActivityCountingMethod"
-
-instance ToJSON FloodlightActivityCountingMethod where
-    toJSON = toJSONText
-
--- | Order of sorted results, default is ASCENDING.
-data ContentCategoriesListSortOrder
-    = CCLSOAscending
-      -- ^ @ASCENDING@
-    | CCLSODescending
-      -- ^ @DESCENDING@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable ContentCategoriesListSortOrder
-
-instance FromText ContentCategoriesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just CCLSOAscending
-        "DESCENDING" -> Just CCLSODescending
-        _ -> Nothing
-
-instance ToText ContentCategoriesListSortOrder where
-    toText = \case
-        CCLSOAscending -> "ASCENDING"
-        CCLSODescending -> "DESCENDING"
-
-instance FromJSON ContentCategoriesListSortOrder where
-    parseJSON = parseJSONText "ContentCategoriesListSortOrder"
-
-instance ToJSON ContentCategoriesListSortOrder where
-    toJSON = toJSONText
-
--- | Status of this advertiser.
-data AdvertiserStatus
-    = ASApproved
-      -- ^ @APPROVED@
-    | ASOnHold
-      -- ^ @ON_HOLD@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
-
-instance Hashable AdvertiserStatus
-
-instance FromText AdvertiserStatus where
-    fromText = \case
-        "APPROVED" -> Just ASApproved
-        "ON_HOLD" -> Just ASOnHold
-        _ -> Nothing
-
-instance ToText AdvertiserStatus where
-    toText = \case
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.DFAReporting.Types.Sum where
+
+import           Network.Google.Prelude
+
+-- | Order of sorted results, default is ASCENDING.
+data PlacementsListSortOrder
+    = Ascending
+      -- ^ @ASCENDING@
+    | Descending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementsListSortOrder
+
+instance FromHttpApiData PlacementsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right Ascending
+        "DESCENDING" -> Right Descending
+        x -> Left ("Unable to parse PlacementsListSortOrder from: " <> x)
+
+instance ToHttpApiData PlacementsListSortOrder where
+    toQueryParam = \case
+        Ascending -> "ASCENDING"
+        Descending -> "DESCENDING"
+
+instance FromJSON PlacementsListSortOrder where
+    parseJSON = parseJSONText "PlacementsListSortOrder"
+
+instance ToJSON PlacementsListSortOrder where
+    toJSON = toJSONText
+
+-- | The date range relative to the date of when the report is run.
+data DateRangeRelativeDateRange
+    = Last24Months
+      -- ^ @LAST_24_MONTHS@
+    | Last30Days
+      -- ^ @LAST_30_DAYS@
+    | Last365Days
+      -- ^ @LAST_365_DAYS@
+    | Last7Days
+      -- ^ @LAST_7_DAYS@
+    | Last90Days
+      -- ^ @LAST_90_DAYS@
+    | MonthToDate
+      -- ^ @MONTH_TO_DATE@
+    | PreviousMonth
+      -- ^ @PREVIOUS_MONTH@
+    | PreviousQuarter
+      -- ^ @PREVIOUS_QUARTER@
+    | PreviousWeek
+      -- ^ @PREVIOUS_WEEK@
+    | PreviousYear
+      -- ^ @PREVIOUS_YEAR@
+    | QuarterToDate
+      -- ^ @QUARTER_TO_DATE@
+    | Today
+      -- ^ @TODAY@
+    | WeekToDate
+      -- ^ @WEEK_TO_DATE@
+    | YearToDate
+      -- ^ @YEAR_TO_DATE@
+    | Yesterday
+      -- ^ @YESTERDAY@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DateRangeRelativeDateRange
+
+instance FromHttpApiData DateRangeRelativeDateRange where
+    parseQueryParam = \case
+        "LAST_24_MONTHS" -> Right Last24Months
+        "LAST_30_DAYS" -> Right Last30Days
+        "LAST_365_DAYS" -> Right Last365Days
+        "LAST_7_DAYS" -> Right Last7Days
+        "LAST_90_DAYS" -> Right Last90Days
+        "MONTH_TO_DATE" -> Right MonthToDate
+        "PREVIOUS_MONTH" -> Right PreviousMonth
+        "PREVIOUS_QUARTER" -> Right PreviousQuarter
+        "PREVIOUS_WEEK" -> Right PreviousWeek
+        "PREVIOUS_YEAR" -> Right PreviousYear
+        "QUARTER_TO_DATE" -> Right QuarterToDate
+        "TODAY" -> Right Today
+        "WEEK_TO_DATE" -> Right WeekToDate
+        "YEAR_TO_DATE" -> Right YearToDate
+        "YESTERDAY" -> Right Yesterday
+        x -> Left ("Unable to parse DateRangeRelativeDateRange from: " <> x)
+
+instance ToHttpApiData DateRangeRelativeDateRange where
+    toQueryParam = \case
+        Last24Months -> "LAST_24_MONTHS"
+        Last30Days -> "LAST_30_DAYS"
+        Last365Days -> "LAST_365_DAYS"
+        Last7Days -> "LAST_7_DAYS"
+        Last90Days -> "LAST_90_DAYS"
+        MonthToDate -> "MONTH_TO_DATE"
+        PreviousMonth -> "PREVIOUS_MONTH"
+        PreviousQuarter -> "PREVIOUS_QUARTER"
+        PreviousWeek -> "PREVIOUS_WEEK"
+        PreviousYear -> "PREVIOUS_YEAR"
+        QuarterToDate -> "QUARTER_TO_DATE"
+        Today -> "TODAY"
+        WeekToDate -> "WEEK_TO_DATE"
+        YearToDate -> "YEAR_TO_DATE"
+        Yesterday -> "YESTERDAY"
+
+instance FromJSON DateRangeRelativeDateRange where
+    parseJSON = parseJSONText "DateRangeRelativeDateRange"
+
+instance ToJSON DateRangeRelativeDateRange where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data AdvertisersListSortField
+    = ID
+      -- ^ @ID@
+    | Name
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdvertisersListSortField
+
+instance FromHttpApiData AdvertisersListSortField where
+    parseQueryParam = \case
+        "ID" -> Right ID
+        "NAME" -> Right Name
+        x -> Left ("Unable to parse AdvertisersListSortField from: " <> x)
+
+instance ToHttpApiData AdvertisersListSortField where
+    toQueryParam = \case
+        ID -> "ID"
+        Name -> "NAME"
+
+instance FromJSON AdvertisersListSortField where
+    parseJSON = parseJSONText "AdvertisersListSortField"
+
+instance ToJSON AdvertisersListSortField where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CreativeFieldsListSortOrder
+    = CFLSOAscending
+      -- ^ @ASCENDING@
+    | CFLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeFieldsListSortOrder
+
+instance FromHttpApiData CreativeFieldsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right CFLSOAscending
+        "DESCENDING" -> Right CFLSODescending
+        x -> Left ("Unable to parse CreativeFieldsListSortOrder from: " <> x)
+
+instance ToHttpApiData CreativeFieldsListSortOrder where
+    toQueryParam = \case
+        CFLSOAscending -> "ASCENDING"
+        CFLSODescending -> "DESCENDING"
+
+instance FromJSON CreativeFieldsListSortOrder where
+    parseJSON = parseJSONText "CreativeFieldsListSortOrder"
+
+instance ToJSON CreativeFieldsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data UserRolesListSortField
+    = URLSFID
+      -- ^ @ID@
+    | URLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable UserRolesListSortField
+
+instance FromHttpApiData UserRolesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right URLSFID
+        "NAME" -> Right URLSFName
+        x -> Left ("Unable to parse UserRolesListSortField from: " <> x)
+
+instance ToHttpApiData UserRolesListSortField where
+    toQueryParam = \case
+        URLSFID -> "ID"
+        URLSFName -> "NAME"
+
+instance FromJSON UserRolesListSortField where
+    parseJSON = parseJSONText "UserRolesListSortField"
+
+instance ToJSON UserRolesListSortField where
+    toJSON = toJSONText
+
+-- | Tag format type for the floodlight activity. If left blank, the tag
+-- format will default to HTML.
+data FloodlightActivityTagFormat
+    = HTML
+      -- ^ @HTML@
+    | Xhtml
+      -- ^ @XHTML@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivityTagFormat
+
+instance FromHttpApiData FloodlightActivityTagFormat where
+    parseQueryParam = \case
+        "HTML" -> Right HTML
+        "XHTML" -> Right Xhtml
+        x -> Left ("Unable to parse FloodlightActivityTagFormat from: " <> x)
+
+instance ToHttpApiData FloodlightActivityTagFormat where
+    toQueryParam = \case
+        HTML -> "HTML"
+        Xhtml -> "XHTML"
+
+instance FromJSON FloodlightActivityTagFormat where
+    parseJSON = parseJSONText "FloodlightActivityTagFormat"
+
+instance ToJSON FloodlightActivityTagFormat where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data OrderDocumentsListSortOrder
+    = ODLSOAscending
+      -- ^ @ASCENDING@
+    | ODLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable OrderDocumentsListSortOrder
+
+instance FromHttpApiData OrderDocumentsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right ODLSOAscending
+        "DESCENDING" -> Right ODLSODescending
+        x -> Left ("Unable to parse OrderDocumentsListSortOrder from: " <> x)
+
+instance ToHttpApiData OrderDocumentsListSortOrder where
+    toQueryParam = \case
+        ODLSOAscending -> "ASCENDING"
+        ODLSODescending -> "DESCENDING"
+
+instance FromJSON OrderDocumentsListSortOrder where
+    parseJSON = parseJSONText "OrderDocumentsListSortOrder"
+
+instance ToJSON OrderDocumentsListSortOrder where
+    toJSON = toJSONText
+
+-- | Role of the asset in relation to creative. Applicable to all but the
+-- following creative types: all REDIRECT and TRACKING_TEXT. This is a
+-- required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER,
+-- IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple
+-- primary assets), and all VPAID creatives. BACKUP_IMAGE applies to
+-- FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
+-- Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
+-- ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
+-- OTHER refers to assets from sources other than DCM, such as Studio
+-- uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
+-- PARENT_VIDEO refers to videos uploaded by the user in DCM and is
+-- applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
+-- TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO
+-- assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO
+-- creatives. ALTERNATE_VIDEO refers to the DCM representation of child
+-- asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO
+-- creatives. These cannot be added or removed within DCM. For
+-- VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and
+-- ALTERNATE_VIDEO assets that are marked active serve as backup in case
+-- the VPAID creative cannot be served. Only PARENT_VIDEO assets can be
+-- added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative.
+data CreativeAssetRole
+    = AdditionalFlash
+      -- ^ @ADDITIONAL_FLASH@
+    | AdditionalImage
+      -- ^ @ADDITIONAL_IMAGE@
+    | AlternateVideo
+      -- ^ @ALTERNATE_VIDEO@
+    | BackupImage
+      -- ^ @BACKUP_IMAGE@
+    | Other
+      -- ^ @OTHER@
+    | ParentVideo
+      -- ^ @PARENT_VIDEO@
+    | Primary
+      -- ^ @PRIMARY@
+    | TranscodedVideo
+      -- ^ @TRANSCODED_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetRole
+
+instance FromHttpApiData CreativeAssetRole where
+    parseQueryParam = \case
+        "ADDITIONAL_FLASH" -> Right AdditionalFlash
+        "ADDITIONAL_IMAGE" -> Right AdditionalImage
+        "ALTERNATE_VIDEO" -> Right AlternateVideo
+        "BACKUP_IMAGE" -> Right BackupImage
+        "OTHER" -> Right Other
+        "PARENT_VIDEO" -> Right ParentVideo
+        "PRIMARY" -> Right Primary
+        "TRANSCODED_VIDEO" -> Right TranscodedVideo
+        x -> Left ("Unable to parse CreativeAssetRole from: " <> x)
+
+instance ToHttpApiData CreativeAssetRole where
+    toQueryParam = \case
+        AdditionalFlash -> "ADDITIONAL_FLASH"
+        AdditionalImage -> "ADDITIONAL_IMAGE"
+        AlternateVideo -> "ALTERNATE_VIDEO"
+        BackupImage -> "BACKUP_IMAGE"
+        Other -> "OTHER"
+        ParentVideo -> "PARENT_VIDEO"
+        Primary -> "PRIMARY"
+        TranscodedVideo -> "TRANSCODED_VIDEO"
+
+instance FromJSON CreativeAssetRole where
+    parseJSON = parseJSONText "CreativeAssetRole"
+
+instance ToJSON CreativeAssetRole where
+    toJSON = toJSONText
+
+-- | Select only dynamic targeting keys with this object type.
+data DynamicTargetingKeysListObjectType
+    = ObjectAd
+      -- ^ @OBJECT_AD@
+    | ObjectAdvertiser
+      -- ^ @OBJECT_ADVERTISER@
+    | ObjectCreative
+      -- ^ @OBJECT_CREATIVE@
+    | ObjectPlacement
+      -- ^ @OBJECT_PLACEMENT@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DynamicTargetingKeysListObjectType
+
+instance FromHttpApiData DynamicTargetingKeysListObjectType where
+    parseQueryParam = \case
+        "OBJECT_AD" -> Right ObjectAd
+        "OBJECT_ADVERTISER" -> Right ObjectAdvertiser
+        "OBJECT_CREATIVE" -> Right ObjectCreative
+        "OBJECT_PLACEMENT" -> Right ObjectPlacement
+        x -> Left ("Unable to parse DynamicTargetingKeysListObjectType from: " <> x)
+
+instance ToHttpApiData DynamicTargetingKeysListObjectType where
+    toQueryParam = \case
+        ObjectAd -> "OBJECT_AD"
+        ObjectAdvertiser -> "OBJECT_ADVERTISER"
+        ObjectCreative -> "OBJECT_CREATIVE"
+        ObjectPlacement -> "OBJECT_PLACEMENT"
+
+instance FromJSON DynamicTargetingKeysListObjectType where
+    parseJSON = parseJSONText "DynamicTargetingKeysListObjectType"
+
+instance ToJSON DynamicTargetingKeysListObjectType where
+    toJSON = toJSONText
+
+-- | The delivery type for the recipient.
+data RecipientDeliveryType
+    = Attachment
+      -- ^ @ATTACHMENT@
+    | Link
+      -- ^ @LINK@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable RecipientDeliveryType
+
+instance FromHttpApiData RecipientDeliveryType where
+    parseQueryParam = \case
+        "ATTACHMENT" -> Right Attachment
+        "LINK" -> Right Link
+        x -> Left ("Unable to parse RecipientDeliveryType from: " <> x)
+
+instance ToHttpApiData RecipientDeliveryType where
+    toQueryParam = \case
+        Attachment -> "ATTACHMENT"
+        Link -> "LINK"
+
+instance FromJSON RecipientDeliveryType where
+    parseJSON = parseJSONText "RecipientDeliveryType"
+
+instance ToJSON RecipientDeliveryType where
+    toJSON = toJSONText
+
+-- | Third-party URL type for in-stream video creatives.
+data ThirdPartyTrackingURLThirdPartyURLType
+    = ClickTracking
+      -- ^ @CLICK_TRACKING@
+    | Impression
+      -- ^ @IMPRESSION@
+    | RichMediaBackupImpression
+      -- ^ @RICH_MEDIA_BACKUP_IMPRESSION@
+    | RichMediaImpression
+      -- ^ @RICH_MEDIA_IMPRESSION@
+    | RichMediaRmImpression
+      -- ^ @RICH_MEDIA_RM_IMPRESSION@
+    | Survey
+      -- ^ @SURVEY@
+    | VideoComplete
+      -- ^ @VIDEO_COMPLETE@
+    | VideoCustom
+      -- ^ @VIDEO_CUSTOM@
+    | VideoFirstQuartile
+      -- ^ @VIDEO_FIRST_QUARTILE@
+    | VideoFullscreen
+      -- ^ @VIDEO_FULLSCREEN@
+    | VideoMidpoint
+      -- ^ @VIDEO_MIDPOINT@
+    | VideoMute
+      -- ^ @VIDEO_MUTE@
+    | VideoPause
+      -- ^ @VIDEO_PAUSE@
+    | VideoProgress
+      -- ^ @VIDEO_PROGRESS@
+    | VideoRewind
+      -- ^ @VIDEO_REWIND@
+    | VideoSkip
+      -- ^ @VIDEO_SKIP@
+    | VideoStart
+      -- ^ @VIDEO_START@
+    | VideoStop
+      -- ^ @VIDEO_STOP@
+    | VideoThirdQuartile
+      -- ^ @VIDEO_THIRD_QUARTILE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ThirdPartyTrackingURLThirdPartyURLType
+
+instance FromHttpApiData ThirdPartyTrackingURLThirdPartyURLType where
+    parseQueryParam = \case
+        "CLICK_TRACKING" -> Right ClickTracking
+        "IMPRESSION" -> Right Impression
+        "RICH_MEDIA_BACKUP_IMPRESSION" -> Right RichMediaBackupImpression
+        "RICH_MEDIA_IMPRESSION" -> Right RichMediaImpression
+        "RICH_MEDIA_RM_IMPRESSION" -> Right RichMediaRmImpression
+        "SURVEY" -> Right Survey
+        "VIDEO_COMPLETE" -> Right VideoComplete
+        "VIDEO_CUSTOM" -> Right VideoCustom
+        "VIDEO_FIRST_QUARTILE" -> Right VideoFirstQuartile
+        "VIDEO_FULLSCREEN" -> Right VideoFullscreen
+        "VIDEO_MIDPOINT" -> Right VideoMidpoint
+        "VIDEO_MUTE" -> Right VideoMute
+        "VIDEO_PAUSE" -> Right VideoPause
+        "VIDEO_PROGRESS" -> Right VideoProgress
+        "VIDEO_REWIND" -> Right VideoRewind
+        "VIDEO_SKIP" -> Right VideoSkip
+        "VIDEO_START" -> Right VideoStart
+        "VIDEO_STOP" -> Right VideoStop
+        "VIDEO_THIRD_QUARTILE" -> Right VideoThirdQuartile
+        x -> Left ("Unable to parse ThirdPartyTrackingURLThirdPartyURLType from: " <> x)
+
+instance ToHttpApiData ThirdPartyTrackingURLThirdPartyURLType where
+    toQueryParam = \case
+        ClickTracking -> "CLICK_TRACKING"
+        Impression -> "IMPRESSION"
+        RichMediaBackupImpression -> "RICH_MEDIA_BACKUP_IMPRESSION"
+        RichMediaImpression -> "RICH_MEDIA_IMPRESSION"
+        RichMediaRmImpression -> "RICH_MEDIA_RM_IMPRESSION"
+        Survey -> "SURVEY"
+        VideoComplete -> "VIDEO_COMPLETE"
+        VideoCustom -> "VIDEO_CUSTOM"
+        VideoFirstQuartile -> "VIDEO_FIRST_QUARTILE"
+        VideoFullscreen -> "VIDEO_FULLSCREEN"
+        VideoMidpoint -> "VIDEO_MIDPOINT"
+        VideoMute -> "VIDEO_MUTE"
+        VideoPause -> "VIDEO_PAUSE"
+        VideoProgress -> "VIDEO_PROGRESS"
+        VideoRewind -> "VIDEO_REWIND"
+        VideoSkip -> "VIDEO_SKIP"
+        VideoStart -> "VIDEO_START"
+        VideoStop -> "VIDEO_STOP"
+        VideoThirdQuartile -> "VIDEO_THIRD_QUARTILE"
+
+instance FromJSON ThirdPartyTrackingURLThirdPartyURLType where
+    parseJSON = parseJSONText "ThirdPartyTrackingURLThirdPartyURLType"
+
+instance ToJSON ThirdPartyTrackingURLThirdPartyURLType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data TargetableRemarketingListsListSortOrder
+    = TRLLSOAscending
+      -- ^ @ASCENDING@
+    | TRLLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable TargetableRemarketingListsListSortOrder
+
+instance FromHttpApiData TargetableRemarketingListsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right TRLLSOAscending
+        "DESCENDING" -> Right TRLLSODescending
+        x -> Left ("Unable to parse TargetableRemarketingListsListSortOrder from: " <> x)
+
+instance ToHttpApiData TargetableRemarketingListsListSortOrder where
+    toQueryParam = \case
+        TRLLSOAscending -> "ASCENDING"
+        TRLLSODescending -> "DESCENDING"
+
+instance FromJSON TargetableRemarketingListsListSortOrder where
+    parseJSON = parseJSONText "TargetableRemarketingListsListSortOrder"
+
+instance ToJSON TargetableRemarketingListsListSortOrder where
+    toJSON = toJSONText
+
+-- | Offset left unit for an asset. This is a read-only field. Applicable to
+-- the following creative types: all RICH_MEDIA.
+data CreativeAssetPositionLeftUnit
+    = OffSetUnitPercent
+      -- ^ @OFFSET_UNIT_PERCENT@
+    | OffSetUnitPixel
+      -- ^ @OFFSET_UNIT_PIXEL@
+    | OffSetUnitPixelFromCenter
+      -- ^ @OFFSET_UNIT_PIXEL_FROM_CENTER@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetPositionLeftUnit
+
+instance FromHttpApiData CreativeAssetPositionLeftUnit where
+    parseQueryParam = \case
+        "OFFSET_UNIT_PERCENT" -> Right OffSetUnitPercent
+        "OFFSET_UNIT_PIXEL" -> Right OffSetUnitPixel
+        "OFFSET_UNIT_PIXEL_FROM_CENTER" -> Right OffSetUnitPixelFromCenter
+        x -> Left ("Unable to parse CreativeAssetPositionLeftUnit from: " <> x)
+
+instance ToHttpApiData CreativeAssetPositionLeftUnit where
+    toQueryParam = \case
+        OffSetUnitPercent -> "OFFSET_UNIT_PERCENT"
+        OffSetUnitPixel -> "OFFSET_UNIT_PIXEL"
+        OffSetUnitPixelFromCenter -> "OFFSET_UNIT_PIXEL_FROM_CENTER"
+
+instance FromJSON CreativeAssetPositionLeftUnit where
+    parseJSON = parseJSONText "CreativeAssetPositionLeftUnit"
+
+instance ToJSON CreativeAssetPositionLeftUnit where
+    toJSON = toJSONText
+
+-- | Placement cap cost option.
+data PricingScheduleCapCostOption
+    = CapCostCumulative
+      -- ^ @CAP_COST_CUMULATIVE@
+    | CapCostMonthly
+      -- ^ @CAP_COST_MONTHLY@
+    | CapCostNone
+      -- ^ @CAP_COST_NONE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PricingScheduleCapCostOption
+
+instance FromHttpApiData PricingScheduleCapCostOption where
+    parseQueryParam = \case
+        "CAP_COST_CUMULATIVE" -> Right CapCostCumulative
+        "CAP_COST_MONTHLY" -> Right CapCostMonthly
+        "CAP_COST_NONE" -> Right CapCostNone
+        x -> Left ("Unable to parse PricingScheduleCapCostOption from: " <> x)
+
+instance ToHttpApiData PricingScheduleCapCostOption where
+    toQueryParam = \case
+        CapCostCumulative -> "CAP_COST_CUMULATIVE"
+        CapCostMonthly -> "CAP_COST_MONTHLY"
+        CapCostNone -> "CAP_COST_NONE"
+
+instance FromJSON PricingScheduleCapCostOption where
+    parseJSON = parseJSONText "PricingScheduleCapCostOption"
+
+instance ToJSON PricingScheduleCapCostOption where
+    toJSON = toJSONText
+
+-- | Levels of availability for a user role permission.
+data UserRolePermissionAvailability
+    = AccountAlways
+      -- ^ @ACCOUNT_ALWAYS@
+    | AccountByDefault
+      -- ^ @ACCOUNT_BY_DEFAULT@
+    | NotAvailableByDefault
+      -- ^ @NOT_AVAILABLE_BY_DEFAULT@
+    | SubAccountAndAccountAlways
+      -- ^ @SUBACCOUNT_AND_ACCOUNT_ALWAYS@
+    | SubAccountAndAccountByDefault
+      -- ^ @SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable UserRolePermissionAvailability
+
+instance FromHttpApiData UserRolePermissionAvailability where
+    parseQueryParam = \case
+        "ACCOUNT_ALWAYS" -> Right AccountAlways
+        "ACCOUNT_BY_DEFAULT" -> Right AccountByDefault
+        "NOT_AVAILABLE_BY_DEFAULT" -> Right NotAvailableByDefault
+        "SUBACCOUNT_AND_ACCOUNT_ALWAYS" -> Right SubAccountAndAccountAlways
+        "SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT" -> Right SubAccountAndAccountByDefault
+        x -> Left ("Unable to parse UserRolePermissionAvailability from: " <> x)
+
+instance ToHttpApiData UserRolePermissionAvailability where
+    toQueryParam = \case
+        AccountAlways -> "ACCOUNT_ALWAYS"
+        AccountByDefault -> "ACCOUNT_BY_DEFAULT"
+        NotAvailableByDefault -> "NOT_AVAILABLE_BY_DEFAULT"
+        SubAccountAndAccountAlways -> "SUBACCOUNT_AND_ACCOUNT_ALWAYS"
+        SubAccountAndAccountByDefault -> "SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT"
+
+instance FromJSON UserRolePermissionAvailability where
+    parseJSON = parseJSONText "UserRolePermissionAvailability"
+
+instance ToJSON UserRolePermissionAvailability where
+    toJSON = toJSONText
+
+-- | Visibility of this directory site contact assignment. When set to PUBLIC
+-- this contact assignment is visible to all account and agency users; when
+-- set to PRIVATE it is visible only to the site.
+data DirectorySiteContactAssignmentVisibility
+    = Private
+      -- ^ @PRIVATE@
+    | Public
+      -- ^ @PUBLIC@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DirectorySiteContactAssignmentVisibility
+
+instance FromHttpApiData DirectorySiteContactAssignmentVisibility where
+    parseQueryParam = \case
+        "PRIVATE" -> Right Private
+        "PUBLIC" -> Right Public
+        x -> Left ("Unable to parse DirectorySiteContactAssignmentVisibility from: " <> x)
+
+instance ToHttpApiData DirectorySiteContactAssignmentVisibility where
+    toQueryParam = \case
+        Private -> "PRIVATE"
+        Public -> "PUBLIC"
+
+instance FromJSON DirectorySiteContactAssignmentVisibility where
+    parseJSON = parseJSONText "DirectorySiteContactAssignmentVisibility"
+
+instance ToJSON DirectorySiteContactAssignmentVisibility where
+    toJSON = toJSONText
+
+-- | Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to
+-- rendering on desktop, on mobile devices or in mobile apps for regular or
+-- interstitial ads respectively. APP and APP_INTERSTITIAL are no longer
+-- allowed for new placement insertions. Instead, use DISPLAY or
+-- DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream
+-- video ads developed with the VAST standard. This field is required on
+-- insertion.
+data PlacementCompatibility
+    = App
+      -- ^ @APP@
+    | AppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | Display
+      -- ^ @DISPLAY@
+    | DisplayInterstitial
+      -- ^ @DISPLAY_INTERSTITIAL@
+    | InStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementCompatibility
+
+instance FromHttpApiData PlacementCompatibility where
+    parseQueryParam = \case
+        "APP" -> Right App
+        "APP_INTERSTITIAL" -> Right AppInterstitial
+        "DISPLAY" -> Right Display
+        "DISPLAY_INTERSTITIAL" -> Right DisplayInterstitial
+        "IN_STREAM_VIDEO" -> Right InStreamVideo
+        x -> Left ("Unable to parse PlacementCompatibility from: " <> x)
+
+instance ToHttpApiData PlacementCompatibility where
+    toQueryParam = \case
+        App -> "APP"
+        AppInterstitial -> "APP_INTERSTITIAL"
+        Display -> "DISPLAY"
+        DisplayInterstitial -> "DISPLAY_INTERSTITIAL"
+        InStreamVideo -> "IN_STREAM_VIDEO"
+
+instance FromJSON PlacementCompatibility where
+    parseJSON = parseJSONText "PlacementCompatibility"
+
+instance ToJSON PlacementCompatibility where
+    toJSON = toJSONText
+
+-- | Comparison operator of this term. This field is only relevant when type
+-- is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
+data ListPopulationTermOperator
+    = NumEquals
+      -- ^ @NUM_EQUALS@
+    | NumGreaterThan
+      -- ^ @NUM_GREATER_THAN@
+    | NumGreaterThanEqual
+      -- ^ @NUM_GREATER_THAN_EQUAL@
+    | NumLessThan
+      -- ^ @NUM_LESS_THAN@
+    | NumLessThanEqual
+      -- ^ @NUM_LESS_THAN_EQUAL@
+    | StringContains
+      -- ^ @STRING_CONTAINS@
+    | StringEquals
+      -- ^ @STRING_EQUALS@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ListPopulationTermOperator
+
+instance FromHttpApiData ListPopulationTermOperator where
+    parseQueryParam = \case
+        "NUM_EQUALS" -> Right NumEquals
+        "NUM_GREATER_THAN" -> Right NumGreaterThan
+        "NUM_GREATER_THAN_EQUAL" -> Right NumGreaterThanEqual
+        "NUM_LESS_THAN" -> Right NumLessThan
+        "NUM_LESS_THAN_EQUAL" -> Right NumLessThanEqual
+        "STRING_CONTAINS" -> Right StringContains
+        "STRING_EQUALS" -> Right StringEquals
+        x -> Left ("Unable to parse ListPopulationTermOperator from: " <> x)
+
+instance ToHttpApiData ListPopulationTermOperator where
+    toQueryParam = \case
+        NumEquals -> "NUM_EQUALS"
+        NumGreaterThan -> "NUM_GREATER_THAN"
+        NumGreaterThanEqual -> "NUM_GREATER_THAN_EQUAL"
+        NumLessThan -> "NUM_LESS_THAN"
+        NumLessThanEqual -> "NUM_LESS_THAN_EQUAL"
+        StringContains -> "STRING_CONTAINS"
+        StringEquals -> "STRING_EQUALS"
+
+instance FromJSON ListPopulationTermOperator where
+    parseJSON = parseJSONText "ListPopulationTermOperator"
+
+instance ToJSON ListPopulationTermOperator where
+    toJSON = toJSONText
+
+-- | Select only placements with this payment source.
+data PlacementsListPaymentSource
+    = PlacementAgencyPaid
+      -- ^ @PLACEMENT_AGENCY_PAID@
+    | PlacementPublisherPaid
+      -- ^ @PLACEMENT_PUBLISHER_PAID@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementsListPaymentSource
+
+instance FromHttpApiData PlacementsListPaymentSource where
+    parseQueryParam = \case
+        "PLACEMENT_AGENCY_PAID" -> Right PlacementAgencyPaid
+        "PLACEMENT_PUBLISHER_PAID" -> Right PlacementPublisherPaid
+        x -> Left ("Unable to parse PlacementsListPaymentSource from: " <> x)
+
+instance ToHttpApiData PlacementsListPaymentSource where
+    toQueryParam = \case
+        PlacementAgencyPaid -> "PLACEMENT_AGENCY_PAID"
+        PlacementPublisherPaid -> "PLACEMENT_PUBLISHER_PAID"
+
+instance FromJSON PlacementsListPaymentSource where
+    parseJSON = parseJSONText "PlacementsListPaymentSource"
+
+instance ToJSON PlacementsListPaymentSource where
+    toJSON = toJSONText
+
+-- | The field by which to sort the list.
+data ReportsListSortField
+    = RLSFID
+      -- ^ @ID@
+      -- Sort by report ID.
+    | RLSFLastModifiedTime
+      -- ^ @LAST_MODIFIED_TIME@
+      -- Sort by \'lastModifiedTime\' field.
+    | RLSFName
+      -- ^ @NAME@
+      -- Sort by name of reports.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportsListSortField
+
+instance FromHttpApiData ReportsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right RLSFID
+        "LAST_MODIFIED_TIME" -> Right RLSFLastModifiedTime
+        "NAME" -> Right RLSFName
+        x -> Left ("Unable to parse ReportsListSortField from: " <> x)
+
+instance ToHttpApiData ReportsListSortField where
+    toQueryParam = \case
+        RLSFID -> "ID"
+        RLSFLastModifiedTime -> "LAST_MODIFIED_TIME"
+        RLSFName -> "NAME"
+
+instance FromJSON ReportsListSortField where
+    parseJSON = parseJSONText "ReportsListSortField"
+
+instance ToJSON ReportsListSortField where
+    toJSON = toJSONText
+
+-- | Ad slot compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to
+-- rendering either on desktop, mobile devices or in mobile apps for
+-- regular or interstitial ads respectively. APP and APP_INTERSTITIAL are
+-- for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in
+-- in-stream video ads developed with the VAST standard.
+data AdSlotCompatibility
+    = ASCApp
+      -- ^ @APP@
+    | ASCAppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | ASCDisplay
+      -- ^ @DISPLAY@
+    | ASCDisplayInterstitial
+      -- ^ @DISPLAY_INTERSTITIAL@
+    | ASCInStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdSlotCompatibility
+
+instance FromHttpApiData AdSlotCompatibility where
+    parseQueryParam = \case
+        "APP" -> Right ASCApp
+        "APP_INTERSTITIAL" -> Right ASCAppInterstitial
+        "DISPLAY" -> Right ASCDisplay
+        "DISPLAY_INTERSTITIAL" -> Right ASCDisplayInterstitial
+        "IN_STREAM_VIDEO" -> Right ASCInStreamVideo
+        x -> Left ("Unable to parse AdSlotCompatibility from: " <> x)
+
+instance ToHttpApiData AdSlotCompatibility where
+    toQueryParam = \case
+        ASCApp -> "APP"
+        ASCAppInterstitial -> "APP_INTERSTITIAL"
+        ASCDisplay -> "DISPLAY"
+        ASCDisplayInterstitial -> "DISPLAY_INTERSTITIAL"
+        ASCInStreamVideo -> "IN_STREAM_VIDEO"
+
+instance FromJSON AdSlotCompatibility where
+    parseJSON = parseJSONText "AdSlotCompatibility"
+
+instance ToJSON AdSlotCompatibility where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data CampaignsListSortField
+    = CLSFID
+      -- ^ @ID@
+    | CLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CampaignsListSortField
+
+instance FromHttpApiData CampaignsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right CLSFID
+        "NAME" -> Right CLSFName
+        x -> Left ("Unable to parse CampaignsListSortField from: " <> x)
+
+instance ToHttpApiData CampaignsListSortField where
+    toQueryParam = \case
+        CLSFID -> "ID"
+        CLSFName -> "NAME"
+
+instance FromJSON CampaignsListSortField where
+    parseJSON = parseJSONText "CampaignsListSortField"
+
+instance ToJSON CampaignsListSortField where
+    toJSON = toJSONText
+
+-- | Trafficker type of this user profile.
+data AccountUserProFileTraffickerType
+    = ExternalTrafficker
+      -- ^ @EXTERNAL_TRAFFICKER@
+    | InternalNonTrafficker
+      -- ^ @INTERNAL_NON_TRAFFICKER@
+    | InternalTrafficker
+      -- ^ @INTERNAL_TRAFFICKER@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountUserProFileTraffickerType
+
+instance FromHttpApiData AccountUserProFileTraffickerType where
+    parseQueryParam = \case
+        "EXTERNAL_TRAFFICKER" -> Right ExternalTrafficker
+        "INTERNAL_NON_TRAFFICKER" -> Right InternalNonTrafficker
+        "INTERNAL_TRAFFICKER" -> Right InternalTrafficker
+        x -> Left ("Unable to parse AccountUserProFileTraffickerType from: " <> x)
+
+instance ToHttpApiData AccountUserProFileTraffickerType where
+    toQueryParam = \case
+        ExternalTrafficker -> "EXTERNAL_TRAFFICKER"
+        InternalNonTrafficker -> "INTERNAL_NON_TRAFFICKER"
+        InternalTrafficker -> "INTERNAL_TRAFFICKER"
+
+instance FromJSON AccountUserProFileTraffickerType where
+    parseJSON = parseJSONText "AccountUserProFileTraffickerType"
+
+instance ToJSON AccountUserProFileTraffickerType where
+    toJSON = toJSONText
+
+data CreativeAssetMetadataDetectedFeaturesItem
+    = ApplicationCache
+      -- ^ @APPLICATION_CACHE@
+    | Audio
+      -- ^ @AUDIO@
+    | Canvas
+      -- ^ @CANVAS@
+    | CanvasText
+      -- ^ @CANVAS_TEXT@
+    | CssAnimations
+      -- ^ @CSS_ANIMATIONS@
+    | CssBackgRoundSize
+      -- ^ @CSS_BACKGROUND_SIZE@
+    | CssBOrderImage
+      -- ^ @CSS_BORDER_IMAGE@
+    | CssBOrderRadius
+      -- ^ @CSS_BORDER_RADIUS@
+    | CssBoxShadow
+      -- ^ @CSS_BOX_SHADOW@
+    | CssColumns
+      -- ^ @CSS_COLUMNS@
+    | CssFlexBox
+      -- ^ @CSS_FLEX_BOX@
+    | CssFontFace
+      -- ^ @CSS_FONT_FACE@
+    | CssGeneratedContent
+      -- ^ @CSS_GENERATED_CONTENT@
+    | CssGradients
+      -- ^ @CSS_GRADIENTS@
+    | CssHsla
+      -- ^ @CSS_HSLA@
+    | CssMultipleBgs
+      -- ^ @CSS_MULTIPLE_BGS@
+    | CssOpacity
+      -- ^ @CSS_OPACITY@
+    | CssReflections
+      -- ^ @CSS_REFLECTIONS@
+    | CssRgba
+      -- ^ @CSS_RGBA@
+    | CssTextShadow
+      -- ^ @CSS_TEXT_SHADOW@
+    | CssTransforms
+      -- ^ @CSS_TRANSFORMS@
+    | CssTRANSFORMS3D
+      -- ^ @CSS_TRANSFORMS3D@
+    | CssTransitions
+      -- ^ @CSS_TRANSITIONS@
+    | DragAndDrop
+      -- ^ @DRAG_AND_DROP@
+    | GeoLocation
+      -- ^ @GEO_LOCATION@
+    | HashChange
+      -- ^ @HASH_CHANGE@
+    | History
+      -- ^ @HISTORY@
+    | IndexedDB
+      -- ^ @INDEXED_DB@
+    | InlineSvg
+      -- ^ @INLINE_SVG@
+    | InputAttrAutocomplete
+      -- ^ @INPUT_ATTR_AUTOCOMPLETE@
+    | InputAttrAutofocus
+      -- ^ @INPUT_ATTR_AUTOFOCUS@
+    | InputAttrList
+      -- ^ @INPUT_ATTR_LIST@
+    | InputAttrMax
+      -- ^ @INPUT_ATTR_MAX@
+    | InputAttrMin
+      -- ^ @INPUT_ATTR_MIN@
+    | InputAttrMultiple
+      -- ^ @INPUT_ATTR_MULTIPLE@
+    | InputAttrPattern
+      -- ^ @INPUT_ATTR_PATTERN@
+    | InputAttrPlaceholder
+      -- ^ @INPUT_ATTR_PLACEHOLDER@
+    | InputAttrRequired
+      -- ^ @INPUT_ATTR_REQUIRED@
+    | InputAttrStep
+      -- ^ @INPUT_ATTR_STEP@
+    | InputTypeColor
+      -- ^ @INPUT_TYPE_COLOR@
+    | InputTypeDate
+      -- ^ @INPUT_TYPE_DATE@
+    | InputTypeDatetime
+      -- ^ @INPUT_TYPE_DATETIME@
+    | InputTypeDatetimeLocal
+      -- ^ @INPUT_TYPE_DATETIME_LOCAL@
+    | InputTypeEmail
+      -- ^ @INPUT_TYPE_EMAIL@
+    | InputTypeMonth
+      -- ^ @INPUT_TYPE_MONTH@
+    | InputTypeNumber
+      -- ^ @INPUT_TYPE_NUMBER@
+    | InputTypeRange
+      -- ^ @INPUT_TYPE_RANGE@
+    | InputTypeSearch
+      -- ^ @INPUT_TYPE_SEARCH@
+    | InputTypeTel
+      -- ^ @INPUT_TYPE_TEL@
+    | InputTypeTime
+      -- ^ @INPUT_TYPE_TIME@
+    | InputTypeURL
+      -- ^ @INPUT_TYPE_URL@
+    | InputTypeWeek
+      -- ^ @INPUT_TYPE_WEEK@
+    | LocalStorage
+      -- ^ @LOCAL_STORAGE@
+    | PostMessage
+      -- ^ @POST_MESSAGE@
+    | SessionStorage
+      -- ^ @SESSION_STORAGE@
+    | Smil
+      -- ^ @SMIL@
+    | SvgClipPaths
+      -- ^ @SVG_CLIP_PATHS@
+    | SvgFeImage
+      -- ^ @SVG_FE_IMAGE@
+    | SvgFilters
+      -- ^ @SVG_FILTERS@
+    | SvgHref
+      -- ^ @SVG_HREF@
+    | Touch
+      -- ^ @TOUCH@
+    | Video
+      -- ^ @VIDEO@
+    | Webgl
+      -- ^ @WEBGL@
+    | WebSockets
+      -- ^ @WEB_SOCKETS@
+    | WebSQLDatabase
+      -- ^ @WEB_SQL_DATABASE@
+    | WebWorkers
+      -- ^ @WEB_WORKERS@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetMetadataDetectedFeaturesItem
+
+instance FromHttpApiData CreativeAssetMetadataDetectedFeaturesItem where
+    parseQueryParam = \case
+        "APPLICATION_CACHE" -> Right ApplicationCache
+        "AUDIO" -> Right Audio
+        "CANVAS" -> Right Canvas
+        "CANVAS_TEXT" -> Right CanvasText
+        "CSS_ANIMATIONS" -> Right CssAnimations
+        "CSS_BACKGROUND_SIZE" -> Right CssBackgRoundSize
+        "CSS_BORDER_IMAGE" -> Right CssBOrderImage
+        "CSS_BORDER_RADIUS" -> Right CssBOrderRadius
+        "CSS_BOX_SHADOW" -> Right CssBoxShadow
+        "CSS_COLUMNS" -> Right CssColumns
+        "CSS_FLEX_BOX" -> Right CssFlexBox
+        "CSS_FONT_FACE" -> Right CssFontFace
+        "CSS_GENERATED_CONTENT" -> Right CssGeneratedContent
+        "CSS_GRADIENTS" -> Right CssGradients
+        "CSS_HSLA" -> Right CssHsla
+        "CSS_MULTIPLE_BGS" -> Right CssMultipleBgs
+        "CSS_OPACITY" -> Right CssOpacity
+        "CSS_REFLECTIONS" -> Right CssReflections
+        "CSS_RGBA" -> Right CssRgba
+        "CSS_TEXT_SHADOW" -> Right CssTextShadow
+        "CSS_TRANSFORMS" -> Right CssTransforms
+        "CSS_TRANSFORMS3D" -> Right CssTRANSFORMS3D
+        "CSS_TRANSITIONS" -> Right CssTransitions
+        "DRAG_AND_DROP" -> Right DragAndDrop
+        "GEO_LOCATION" -> Right GeoLocation
+        "HASH_CHANGE" -> Right HashChange
+        "HISTORY" -> Right History
+        "INDEXED_DB" -> Right IndexedDB
+        "INLINE_SVG" -> Right InlineSvg
+        "INPUT_ATTR_AUTOCOMPLETE" -> Right InputAttrAutocomplete
+        "INPUT_ATTR_AUTOFOCUS" -> Right InputAttrAutofocus
+        "INPUT_ATTR_LIST" -> Right InputAttrList
+        "INPUT_ATTR_MAX" -> Right InputAttrMax
+        "INPUT_ATTR_MIN" -> Right InputAttrMin
+        "INPUT_ATTR_MULTIPLE" -> Right InputAttrMultiple
+        "INPUT_ATTR_PATTERN" -> Right InputAttrPattern
+        "INPUT_ATTR_PLACEHOLDER" -> Right InputAttrPlaceholder
+        "INPUT_ATTR_REQUIRED" -> Right InputAttrRequired
+        "INPUT_ATTR_STEP" -> Right InputAttrStep
+        "INPUT_TYPE_COLOR" -> Right InputTypeColor
+        "INPUT_TYPE_DATE" -> Right InputTypeDate
+        "INPUT_TYPE_DATETIME" -> Right InputTypeDatetime
+        "INPUT_TYPE_DATETIME_LOCAL" -> Right InputTypeDatetimeLocal
+        "INPUT_TYPE_EMAIL" -> Right InputTypeEmail
+        "INPUT_TYPE_MONTH" -> Right InputTypeMonth
+        "INPUT_TYPE_NUMBER" -> Right InputTypeNumber
+        "INPUT_TYPE_RANGE" -> Right InputTypeRange
+        "INPUT_TYPE_SEARCH" -> Right InputTypeSearch
+        "INPUT_TYPE_TEL" -> Right InputTypeTel
+        "INPUT_TYPE_TIME" -> Right InputTypeTime
+        "INPUT_TYPE_URL" -> Right InputTypeURL
+        "INPUT_TYPE_WEEK" -> Right InputTypeWeek
+        "LOCAL_STORAGE" -> Right LocalStorage
+        "POST_MESSAGE" -> Right PostMessage
+        "SESSION_STORAGE" -> Right SessionStorage
+        "SMIL" -> Right Smil
+        "SVG_CLIP_PATHS" -> Right SvgClipPaths
+        "SVG_FE_IMAGE" -> Right SvgFeImage
+        "SVG_FILTERS" -> Right SvgFilters
+        "SVG_HREF" -> Right SvgHref
+        "TOUCH" -> Right Touch
+        "VIDEO" -> Right Video
+        "WEBGL" -> Right Webgl
+        "WEB_SOCKETS" -> Right WebSockets
+        "WEB_SQL_DATABASE" -> Right WebSQLDatabase
+        "WEB_WORKERS" -> Right WebWorkers
+        x -> Left ("Unable to parse CreativeAssetMetadataDetectedFeaturesItem from: " <> x)
+
+instance ToHttpApiData CreativeAssetMetadataDetectedFeaturesItem where
+    toQueryParam = \case
+        ApplicationCache -> "APPLICATION_CACHE"
+        Audio -> "AUDIO"
+        Canvas -> "CANVAS"
+        CanvasText -> "CANVAS_TEXT"
+        CssAnimations -> "CSS_ANIMATIONS"
+        CssBackgRoundSize -> "CSS_BACKGROUND_SIZE"
+        CssBOrderImage -> "CSS_BORDER_IMAGE"
+        CssBOrderRadius -> "CSS_BORDER_RADIUS"
+        CssBoxShadow -> "CSS_BOX_SHADOW"
+        CssColumns -> "CSS_COLUMNS"
+        CssFlexBox -> "CSS_FLEX_BOX"
+        CssFontFace -> "CSS_FONT_FACE"
+        CssGeneratedContent -> "CSS_GENERATED_CONTENT"
+        CssGradients -> "CSS_GRADIENTS"
+        CssHsla -> "CSS_HSLA"
+        CssMultipleBgs -> "CSS_MULTIPLE_BGS"
+        CssOpacity -> "CSS_OPACITY"
+        CssReflections -> "CSS_REFLECTIONS"
+        CssRgba -> "CSS_RGBA"
+        CssTextShadow -> "CSS_TEXT_SHADOW"
+        CssTransforms -> "CSS_TRANSFORMS"
+        CssTRANSFORMS3D -> "CSS_TRANSFORMS3D"
+        CssTransitions -> "CSS_TRANSITIONS"
+        DragAndDrop -> "DRAG_AND_DROP"
+        GeoLocation -> "GEO_LOCATION"
+        HashChange -> "HASH_CHANGE"
+        History -> "HISTORY"
+        IndexedDB -> "INDEXED_DB"
+        InlineSvg -> "INLINE_SVG"
+        InputAttrAutocomplete -> "INPUT_ATTR_AUTOCOMPLETE"
+        InputAttrAutofocus -> "INPUT_ATTR_AUTOFOCUS"
+        InputAttrList -> "INPUT_ATTR_LIST"
+        InputAttrMax -> "INPUT_ATTR_MAX"
+        InputAttrMin -> "INPUT_ATTR_MIN"
+        InputAttrMultiple -> "INPUT_ATTR_MULTIPLE"
+        InputAttrPattern -> "INPUT_ATTR_PATTERN"
+        InputAttrPlaceholder -> "INPUT_ATTR_PLACEHOLDER"
+        InputAttrRequired -> "INPUT_ATTR_REQUIRED"
+        InputAttrStep -> "INPUT_ATTR_STEP"
+        InputTypeColor -> "INPUT_TYPE_COLOR"
+        InputTypeDate -> "INPUT_TYPE_DATE"
+        InputTypeDatetime -> "INPUT_TYPE_DATETIME"
+        InputTypeDatetimeLocal -> "INPUT_TYPE_DATETIME_LOCAL"
+        InputTypeEmail -> "INPUT_TYPE_EMAIL"
+        InputTypeMonth -> "INPUT_TYPE_MONTH"
+        InputTypeNumber -> "INPUT_TYPE_NUMBER"
+        InputTypeRange -> "INPUT_TYPE_RANGE"
+        InputTypeSearch -> "INPUT_TYPE_SEARCH"
+        InputTypeTel -> "INPUT_TYPE_TEL"
+        InputTypeTime -> "INPUT_TYPE_TIME"
+        InputTypeURL -> "INPUT_TYPE_URL"
+        InputTypeWeek -> "INPUT_TYPE_WEEK"
+        LocalStorage -> "LOCAL_STORAGE"
+        PostMessage -> "POST_MESSAGE"
+        SessionStorage -> "SESSION_STORAGE"
+        Smil -> "SMIL"
+        SvgClipPaths -> "SVG_CLIP_PATHS"
+        SvgFeImage -> "SVG_FE_IMAGE"
+        SvgFilters -> "SVG_FILTERS"
+        SvgHref -> "SVG_HREF"
+        Touch -> "TOUCH"
+        Video -> "VIDEO"
+        Webgl -> "WEBGL"
+        WebSockets -> "WEB_SOCKETS"
+        WebSQLDatabase -> "WEB_SQL_DATABASE"
+        WebWorkers -> "WEB_WORKERS"
+
+instance FromJSON CreativeAssetMetadataDetectedFeaturesItem where
+    parseJSON = parseJSONText "CreativeAssetMetadataDetectedFeaturesItem"
+
+instance ToJSON CreativeAssetMetadataDetectedFeaturesItem where
+    toJSON = toJSONText
+
+-- | Select default ads with the specified compatibility. Applicable when
+-- type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to
+-- rendering either on desktop or on mobile devices for regular or
+-- interstitial ads, respectively. APP and APP_INTERSTITIAL are for
+-- rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an
+-- in-stream video ads developed with the VAST standard.
+data AdsListCompatibility
+    = ALCApp
+      -- ^ @APP@
+    | ALCAppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | ALCDisplay
+      -- ^ @DISPLAY@
+    | ALCDisplayInterstitial
+      -- ^ @DISPLAY_INTERSTITIAL@
+    | ALCInStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdsListCompatibility
+
+instance FromHttpApiData AdsListCompatibility where
+    parseQueryParam = \case
+        "APP" -> Right ALCApp
+        "APP_INTERSTITIAL" -> Right ALCAppInterstitial
+        "DISPLAY" -> Right ALCDisplay
+        "DISPLAY_INTERSTITIAL" -> Right ALCDisplayInterstitial
+        "IN_STREAM_VIDEO" -> Right ALCInStreamVideo
+        x -> Left ("Unable to parse AdsListCompatibility from: " <> x)
+
+instance ToHttpApiData AdsListCompatibility where
+    toQueryParam = \case
+        ALCApp -> "APP"
+        ALCAppInterstitial -> "APP_INTERSTITIAL"
+        ALCDisplay -> "DISPLAY"
+        ALCDisplayInterstitial -> "DISPLAY_INTERSTITIAL"
+        ALCInStreamVideo -> "IN_STREAM_VIDEO"
+
+instance FromJSON AdsListCompatibility where
+    parseJSON = parseJSONText "AdsListCompatibility"
+
+instance ToJSON AdsListCompatibility where
+    toJSON = toJSONText
+
+-- | Status of this event tag. Must be ENABLED for this event tag to fire.
+-- This is a required field.
+data EventTagStatus
+    = Disabled
+      -- ^ @DISABLED@
+    | Enabled
+      -- ^ @ENABLED@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable EventTagStatus
+
+instance FromHttpApiData EventTagStatus where
+    parseQueryParam = \case
+        "DISABLED" -> Right Disabled
+        "ENABLED" -> Right Enabled
+        x -> Left ("Unable to parse EventTagStatus from: " <> x)
+
+instance ToHttpApiData EventTagStatus where
+    toQueryParam = \case
+        Disabled -> "DISABLED"
+        Enabled -> "ENABLED"
+
+instance FromJSON EventTagStatus where
+    parseJSON = parseJSONText "EventTagStatus"
+
+instance ToJSON EventTagStatus where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data SitesListSortField
+    = SLSFID
+      -- ^ @ID@
+    | SLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable SitesListSortField
+
+instance FromHttpApiData SitesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right SLSFID
+        "NAME" -> Right SLSFName
+        x -> Left ("Unable to parse SitesListSortField from: " <> x)
+
+instance ToHttpApiData SitesListSortField where
+    toQueryParam = \case
+        SLSFID -> "ID"
+        SLSFName -> "NAME"
+
+instance FromJSON SitesListSortField where
+    parseJSON = parseJSONText "SitesListSortField"
+
+instance ToJSON SitesListSortField where
+    toJSON = toJSONText
+
+-- | Select only event tags with the specified event tag types. Event tag
+-- types can be used to specify whether to use a third-party pixel, a
+-- third-party JavaScript URL, or a third-party click-through URL for
+-- either impression or click tracking.
+data EventTagsListEventTagTypes
+    = ClickThroughEventTag
+      -- ^ @CLICK_THROUGH_EVENT_TAG@
+    | ImpressionImageEventTag
+      -- ^ @IMPRESSION_IMAGE_EVENT_TAG@
+    | ImpressionJavascriptEventTag
+      -- ^ @IMPRESSION_JAVASCRIPT_EVENT_TAG@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable EventTagsListEventTagTypes
+
+instance FromHttpApiData EventTagsListEventTagTypes where
+    parseQueryParam = \case
+        "CLICK_THROUGH_EVENT_TAG" -> Right ClickThroughEventTag
+        "IMPRESSION_IMAGE_EVENT_TAG" -> Right ImpressionImageEventTag
+        "IMPRESSION_JAVASCRIPT_EVENT_TAG" -> Right ImpressionJavascriptEventTag
+        x -> Left ("Unable to parse EventTagsListEventTagTypes from: " <> x)
+
+instance ToHttpApiData EventTagsListEventTagTypes where
+    toQueryParam = \case
+        ClickThroughEventTag -> "CLICK_THROUGH_EVENT_TAG"
+        ImpressionImageEventTag -> "IMPRESSION_IMAGE_EVENT_TAG"
+        ImpressionJavascriptEventTag -> "IMPRESSION_JAVASCRIPT_EVENT_TAG"
+
+instance FromJSON EventTagsListEventTagTypes where
+    parseJSON = parseJSONText "EventTagsListEventTagTypes"
+
+instance ToJSON EventTagsListEventTagTypes where
+    toJSON = toJSONText
+
+-- | The status of the report file.
+data FileStatus
+    = Cancelled
+      -- ^ @CANCELLED@
+    | Failed
+      -- ^ @FAILED@
+    | Processing
+      -- ^ @PROCESSING@
+    | ReportAvailable
+      -- ^ @REPORT_AVAILABLE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FileStatus
+
+instance FromHttpApiData FileStatus where
+    parseQueryParam = \case
+        "CANCELLED" -> Right Cancelled
+        "FAILED" -> Right Failed
+        "PROCESSING" -> Right Processing
+        "REPORT_AVAILABLE" -> Right ReportAvailable
+        x -> Left ("Unable to parse FileStatus from: " <> x)
+
+instance ToHttpApiData FileStatus where
+    toQueryParam = \case
+        Cancelled -> "CANCELLED"
+        Failed -> "FAILED"
+        Processing -> "PROCESSING"
+        ReportAvailable -> "REPORT_AVAILABLE"
+
+instance FromJSON FileStatus where
+    parseJSON = parseJSONText "FileStatus"
+
+instance ToJSON FileStatus where
+    toJSON = toJSONText
+
+-- | Artwork type used by the creative.This is a read-only field.
+data CreativeCustomEventArtworkType
+    = ArtworkTypeFlash
+      -- ^ @ARTWORK_TYPE_FLASH@
+    | ArtworkTypeHTML5
+      -- ^ @ARTWORK_TYPE_HTML5@
+    | ArtworkTypeImage
+      -- ^ @ARTWORK_TYPE_IMAGE@
+    | ArtworkTypeMixed
+      -- ^ @ARTWORK_TYPE_MIXED@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeCustomEventArtworkType
+
+instance FromHttpApiData CreativeCustomEventArtworkType where
+    parseQueryParam = \case
+        "ARTWORK_TYPE_FLASH" -> Right ArtworkTypeFlash
+        "ARTWORK_TYPE_HTML5" -> Right ArtworkTypeHTML5
+        "ARTWORK_TYPE_IMAGE" -> Right ArtworkTypeImage
+        "ARTWORK_TYPE_MIXED" -> Right ArtworkTypeMixed
+        x -> Left ("Unable to parse CreativeCustomEventArtworkType from: " <> x)
+
+instance ToHttpApiData CreativeCustomEventArtworkType where
+    toQueryParam = \case
+        ArtworkTypeFlash -> "ARTWORK_TYPE_FLASH"
+        ArtworkTypeHTML5 -> "ARTWORK_TYPE_HTML5"
+        ArtworkTypeImage -> "ARTWORK_TYPE_IMAGE"
+        ArtworkTypeMixed -> "ARTWORK_TYPE_MIXED"
+
+instance FromJSON CreativeCustomEventArtworkType where
+    parseJSON = parseJSONText "CreativeCustomEventArtworkType"
+
+instance ToJSON CreativeCustomEventArtworkType where
+    toJSON = toJSONText
+
+-- | Types of attribution options for natural search conversions.
+data FloodlightConfigurationNATuralSearchConversionAttributionOption
+    = ExcludeNATuralSearchConversionAttribution
+      -- ^ @EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION@
+    | IncludeNATuralSearchConversionAttribution
+      -- ^ @INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION@
+    | IncludeNATuralSearchTieredConversionAttribution
+      -- ^ @INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightConfigurationNATuralSearchConversionAttributionOption
+
+instance FromHttpApiData FloodlightConfigurationNATuralSearchConversionAttributionOption where
+    parseQueryParam = \case
+        "EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION" -> Right ExcludeNATuralSearchConversionAttribution
+        "INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION" -> Right IncludeNATuralSearchConversionAttribution
+        "INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION" -> Right IncludeNATuralSearchTieredConversionAttribution
+        x -> Left ("Unable to parse FloodlightConfigurationNATuralSearchConversionAttributionOption from: " <> x)
+
+instance ToHttpApiData FloodlightConfigurationNATuralSearchConversionAttributionOption where
+    toQueryParam = \case
+        ExcludeNATuralSearchConversionAttribution -> "EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION"
+        IncludeNATuralSearchConversionAttribution -> "INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION"
+        IncludeNATuralSearchTieredConversionAttribution -> "INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION"
+
+instance FromJSON FloodlightConfigurationNATuralSearchConversionAttributionOption where
+    parseJSON = parseJSONText "FloodlightConfigurationNATuralSearchConversionAttributionOption"
+
+instance ToJSON FloodlightConfigurationNATuralSearchConversionAttributionOption where
+    toJSON = toJSONText
+
+-- | Artwork type of rich media creative. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA.
+data CreativeAssetArtworkType
+    = CAATArtworkTypeFlash
+      -- ^ @ARTWORK_TYPE_FLASH@
+    | CAATArtworkTypeHTML5
+      -- ^ @ARTWORK_TYPE_HTML5@
+    | CAATArtworkTypeImage
+      -- ^ @ARTWORK_TYPE_IMAGE@
+    | CAATArtworkTypeMixed
+      -- ^ @ARTWORK_TYPE_MIXED@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetArtworkType
+
+instance FromHttpApiData CreativeAssetArtworkType where
+    parseQueryParam = \case
+        "ARTWORK_TYPE_FLASH" -> Right CAATArtworkTypeFlash
+        "ARTWORK_TYPE_HTML5" -> Right CAATArtworkTypeHTML5
+        "ARTWORK_TYPE_IMAGE" -> Right CAATArtworkTypeImage
+        "ARTWORK_TYPE_MIXED" -> Right CAATArtworkTypeMixed
+        x -> Left ("Unable to parse CreativeAssetArtworkType from: " <> x)
+
+instance ToHttpApiData CreativeAssetArtworkType where
+    toQueryParam = \case
+        CAATArtworkTypeFlash -> "ARTWORK_TYPE_FLASH"
+        CAATArtworkTypeHTML5 -> "ARTWORK_TYPE_HTML5"
+        CAATArtworkTypeImage -> "ARTWORK_TYPE_IMAGE"
+        CAATArtworkTypeMixed -> "ARTWORK_TYPE_MIXED"
+
+instance FromJSON CreativeAssetArtworkType where
+    parseJSON = parseJSONText "CreativeAssetArtworkType"
+
+instance ToJSON CreativeAssetArtworkType where
+    toJSON = toJSONText
+
+-- | The type of custom floodlight variable to supply a value for. These map
+-- to the \"u[1-20]=\" in the tags.
+data CustomFloodlightVariableType
+    = U1
+      -- ^ @U1@
+    | U10
+      -- ^ @U10@
+    | U11
+      -- ^ @U11@
+    | U12
+      -- ^ @U12@
+    | U13
+      -- ^ @U13@
+    | U14
+      -- ^ @U14@
+    | U15
+      -- ^ @U15@
+    | U16
+      -- ^ @U16@
+    | U17
+      -- ^ @U17@
+    | U18
+      -- ^ @U18@
+    | U19
+      -- ^ @U19@
+    | U2
+      -- ^ @U2@
+    | U20
+      -- ^ @U20@
+    | U3
+      -- ^ @U3@
+    | U4
+      -- ^ @U4@
+    | U5
+      -- ^ @U5@
+    | U6
+      -- ^ @U6@
+    | U7
+      -- ^ @U7@
+    | U8
+      -- ^ @U8@
+    | U9
+      -- ^ @U9@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CustomFloodlightVariableType
+
+instance FromHttpApiData CustomFloodlightVariableType where
+    parseQueryParam = \case
+        "U1" -> Right U1
+        "U10" -> Right U10
+        "U11" -> Right U11
+        "U12" -> Right U12
+        "U13" -> Right U13
+        "U14" -> Right U14
+        "U15" -> Right U15
+        "U16" -> Right U16
+        "U17" -> Right U17
+        "U18" -> Right U18
+        "U19" -> Right U19
+        "U2" -> Right U2
+        "U20" -> Right U20
+        "U3" -> Right U3
+        "U4" -> Right U4
+        "U5" -> Right U5
+        "U6" -> Right U6
+        "U7" -> Right U7
+        "U8" -> Right U8
+        "U9" -> Right U9
+        x -> Left ("Unable to parse CustomFloodlightVariableType from: " <> x)
+
+instance ToHttpApiData CustomFloodlightVariableType where
+    toQueryParam = \case
+        U1 -> "U1"
+        U10 -> "U10"
+        U11 -> "U11"
+        U12 -> "U12"
+        U13 -> "U13"
+        U14 -> "U14"
+        U15 -> "U15"
+        U16 -> "U16"
+        U17 -> "U17"
+        U18 -> "U18"
+        U19 -> "U19"
+        U2 -> "U2"
+        U20 -> "U20"
+        U3 -> "U3"
+        U4 -> "U4"
+        U5 -> "U5"
+        U6 -> "U6"
+        U7 -> "U7"
+        U8 -> "U8"
+        U9 -> "U9"
+
+instance FromJSON CustomFloodlightVariableType where
+    parseJSON = parseJSONText "CustomFloodlightVariableType"
+
+instance ToJSON CustomFloodlightVariableType where
+    toJSON = toJSONText
+
+-- | The error code.
+data ConversionErrorCode
+    = Internal
+      -- ^ @INTERNAL@
+    | InvalidArgument
+      -- ^ @INVALID_ARGUMENT@
+    | NotFound
+      -- ^ @NOT_FOUND@
+    | PermissionDenied
+      -- ^ @PERMISSION_DENIED@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ConversionErrorCode
+
+instance FromHttpApiData ConversionErrorCode where
+    parseQueryParam = \case
+        "INTERNAL" -> Right Internal
+        "INVALID_ARGUMENT" -> Right InvalidArgument
+        "NOT_FOUND" -> Right NotFound
+        "PERMISSION_DENIED" -> Right PermissionDenied
+        x -> Left ("Unable to parse ConversionErrorCode from: " <> x)
+
+instance ToHttpApiData ConversionErrorCode where
+    toQueryParam = \case
+        Internal -> "INTERNAL"
+        InvalidArgument -> "INVALID_ARGUMENT"
+        NotFound -> "NOT_FOUND"
+        PermissionDenied -> "PERMISSION_DENIED"
+
+instance FromJSON ConversionErrorCode where
+    parseJSON = parseJSONText "ConversionErrorCode"
+
+instance ToJSON ConversionErrorCode where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data FloodlightActivitiesListSortOrder
+    = FALSOAscending
+      -- ^ @ASCENDING@
+    | FALSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivitiesListSortOrder
+
+instance FromHttpApiData FloodlightActivitiesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right FALSOAscending
+        "DESCENDING" -> Right FALSODescending
+        x -> Left ("Unable to parse FloodlightActivitiesListSortOrder from: " <> x)
+
+instance ToHttpApiData FloodlightActivitiesListSortOrder where
+    toQueryParam = \case
+        FALSOAscending -> "ASCENDING"
+        FALSODescending -> "DESCENDING"
+
+instance FromJSON FloodlightActivitiesListSortOrder where
+    parseJSON = parseJSONText "FloodlightActivitiesListSortOrder"
+
+instance ToJSON FloodlightActivitiesListSortOrder where
+    toJSON = toJSONText
+
+-- | The output format of the report. Only available once the file is
+-- available.
+data FileFormat
+    = CSV
+      -- ^ @CSV@
+    | Excel
+      -- ^ @EXCEL@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FileFormat
+
+instance FromHttpApiData FileFormat where
+    parseQueryParam = \case
+        "CSV" -> Right CSV
+        "EXCEL" -> Right Excel
+        x -> Left ("Unable to parse FileFormat from: " <> x)
+
+instance ToHttpApiData FileFormat where
+    toQueryParam = \case
+        CSV -> "CSV"
+        Excel -> "EXCEL"
+
+instance FromJSON FileFormat where
+    parseJSON = parseJSONText "FileFormat"
+
+instance ToJSON FileFormat where
+    toJSON = toJSONText
+
+-- | The encryption entity type. This should match the encryption
+-- configuration for ad serving or Data Transfer.
+data EncryptionInfoEncryptionEntityType
+    = AdwordsCustomer
+      -- ^ @ADWORDS_CUSTOMER@
+    | DBmAdvertiser
+      -- ^ @DBM_ADVERTISER@
+    | DBmPartner
+      -- ^ @DBM_PARTNER@
+    | DcmAccount
+      -- ^ @DCM_ACCOUNT@
+    | DcmAdvertiser
+      -- ^ @DCM_ADVERTISER@
+    | EncryptionEntityTypeUnknown
+      -- ^ @ENCRYPTION_ENTITY_TYPE_UNKNOWN@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable EncryptionInfoEncryptionEntityType
+
+instance FromHttpApiData EncryptionInfoEncryptionEntityType where
+    parseQueryParam = \case
+        "ADWORDS_CUSTOMER" -> Right AdwordsCustomer
+        "DBM_ADVERTISER" -> Right DBmAdvertiser
+        "DBM_PARTNER" -> Right DBmPartner
+        "DCM_ACCOUNT" -> Right DcmAccount
+        "DCM_ADVERTISER" -> Right DcmAdvertiser
+        "ENCRYPTION_ENTITY_TYPE_UNKNOWN" -> Right EncryptionEntityTypeUnknown
+        x -> Left ("Unable to parse EncryptionInfoEncryptionEntityType from: " <> x)
+
+instance ToHttpApiData EncryptionInfoEncryptionEntityType where
+    toQueryParam = \case
+        AdwordsCustomer -> "ADWORDS_CUSTOMER"
+        DBmAdvertiser -> "DBM_ADVERTISER"
+        DBmPartner -> "DBM_PARTNER"
+        DcmAccount -> "DCM_ACCOUNT"
+        DcmAdvertiser -> "DCM_ADVERTISER"
+        EncryptionEntityTypeUnknown -> "ENCRYPTION_ENTITY_TYPE_UNKNOWN"
+
+instance FromJSON EncryptionInfoEncryptionEntityType where
+    parseJSON = parseJSONText "EncryptionInfoEncryptionEntityType"
+
+instance ToJSON EncryptionInfoEncryptionEntityType where
+    toJSON = toJSONText
+
+-- | Placement pricing type. This field is required on insertion.
+data PricingSchedulePricingType
+    = PricingTypeCpa
+      -- ^ @PRICING_TYPE_CPA@
+    | PricingTypeCpc
+      -- ^ @PRICING_TYPE_CPC@
+    | PricingTypeCpm
+      -- ^ @PRICING_TYPE_CPM@
+    | PricingTypeFlatRateClicks
+      -- ^ @PRICING_TYPE_FLAT_RATE_CLICKS@
+    | PricingTypeFlatRateImpressions
+      -- ^ @PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PricingSchedulePricingType
+
+instance FromHttpApiData PricingSchedulePricingType where
+    parseQueryParam = \case
+        "PRICING_TYPE_CPA" -> Right PricingTypeCpa
+        "PRICING_TYPE_CPC" -> Right PricingTypeCpc
+        "PRICING_TYPE_CPM" -> Right PricingTypeCpm
+        "PRICING_TYPE_FLAT_RATE_CLICKS" -> Right PricingTypeFlatRateClicks
+        "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Right PricingTypeFlatRateImpressions
+        x -> Left ("Unable to parse PricingSchedulePricingType from: " <> x)
+
+instance ToHttpApiData PricingSchedulePricingType where
+    toQueryParam = \case
+        PricingTypeCpa -> "PRICING_TYPE_CPA"
+        PricingTypeCpc -> "PRICING_TYPE_CPC"
+        PricingTypeCpm -> "PRICING_TYPE_CPM"
+        PricingTypeFlatRateClicks -> "PRICING_TYPE_FLAT_RATE_CLICKS"
+        PricingTypeFlatRateImpressions -> "PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
+
+instance FromJSON PricingSchedulePricingType where
+    parseJSON = parseJSONText "PricingSchedulePricingType"
+
+instance ToJSON PricingSchedulePricingType where
+    toJSON = toJSONText
+
+-- | Target type used by the event.
+data CreativeCustomEventTargetType
+    = TargetBlank
+      -- ^ @TARGET_BLANK@
+    | TargetParent
+      -- ^ @TARGET_PARENT@
+    | TargetPopup
+      -- ^ @TARGET_POPUP@
+    | TargetSelf
+      -- ^ @TARGET_SELF@
+    | TargetTop
+      -- ^ @TARGET_TOP@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeCustomEventTargetType
+
+instance FromHttpApiData CreativeCustomEventTargetType where
+    parseQueryParam = \case
+        "TARGET_BLANK" -> Right TargetBlank
+        "TARGET_PARENT" -> Right TargetParent
+        "TARGET_POPUP" -> Right TargetPopup
+        "TARGET_SELF" -> Right TargetSelf
+        "TARGET_TOP" -> Right TargetTop
+        x -> Left ("Unable to parse CreativeCustomEventTargetType from: " <> x)
+
+instance ToHttpApiData CreativeCustomEventTargetType where
+    toQueryParam = \case
+        TargetBlank -> "TARGET_BLANK"
+        TargetParent -> "TARGET_PARENT"
+        TargetPopup -> "TARGET_POPUP"
+        TargetSelf -> "TARGET_SELF"
+        TargetTop -> "TARGET_TOP"
+
+instance FromJSON CreativeCustomEventTargetType where
+    parseJSON = parseJSONText "CreativeCustomEventTargetType"
+
+instance ToJSON CreativeCustomEventTargetType where
+    toJSON = toJSONText
+
+-- | The scope that defines which results are returned, default is \'MINE\'.
+data ReportsListScope
+    = All
+      -- ^ @ALL@
+      -- All reports in account.
+    | Mine
+      -- ^ @MINE@
+      -- My reports.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportsListScope
+
+instance FromHttpApiData ReportsListScope where
+    parseQueryParam = \case
+        "ALL" -> Right All
+        "MINE" -> Right Mine
+        x -> Left ("Unable to parse ReportsListScope from: " <> x)
+
+instance ToHttpApiData ReportsListScope where
+    toQueryParam = \case
+        All -> "ALL"
+        Mine -> "MINE"
+
+instance FromJSON ReportsListScope where
+    parseJSON = parseJSONText "ReportsListScope"
+
+instance ToJSON ReportsListScope where
+    toJSON = toJSONText
+
+-- | Duration type for which an asset will be displayed. Applicable to the
+-- following creative types: all RICH_MEDIA.
+data CreativeAssetDurationType
+    = AssetDurationTypeAuto
+      -- ^ @ASSET_DURATION_TYPE_AUTO@
+    | AssetDurationTypeCustom
+      -- ^ @ASSET_DURATION_TYPE_CUSTOM@
+    | AssetDurationTypeNone
+      -- ^ @ASSET_DURATION_TYPE_NONE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetDurationType
+
+instance FromHttpApiData CreativeAssetDurationType where
+    parseQueryParam = \case
+        "ASSET_DURATION_TYPE_AUTO" -> Right AssetDurationTypeAuto
+        "ASSET_DURATION_TYPE_CUSTOM" -> Right AssetDurationTypeCustom
+        "ASSET_DURATION_TYPE_NONE" -> Right AssetDurationTypeNone
+        x -> Left ("Unable to parse CreativeAssetDurationType from: " <> x)
+
+instance ToHttpApiData CreativeAssetDurationType where
+    toQueryParam = \case
+        AssetDurationTypeAuto -> "ASSET_DURATION_TYPE_AUTO"
+        AssetDurationTypeCustom -> "ASSET_DURATION_TYPE_CUSTOM"
+        AssetDurationTypeNone -> "ASSET_DURATION_TYPE_NONE"
+
+instance FromJSON CreativeAssetDurationType where
+    parseJSON = parseJSONText "CreativeAssetDurationType"
+
+instance ToJSON CreativeAssetDurationType where
+    toJSON = toJSONText
+
+-- | Product from which this targetable remarketing list was originated.
+data TargetableRemarketingListListSource
+    = RemarketingListSourceAdx
+      -- ^ @REMARKETING_LIST_SOURCE_ADX@
+    | RemarketingListSourceDBm
+      -- ^ @REMARKETING_LIST_SOURCE_DBM@
+    | RemarketingListSourceDfa
+      -- ^ @REMARKETING_LIST_SOURCE_DFA@
+    | RemarketingListSourceDfp
+      -- ^ @REMARKETING_LIST_SOURCE_DFP@
+    | RemarketingListSourceDmp
+      -- ^ @REMARKETING_LIST_SOURCE_DMP@
+    | RemarketingListSourceGa
+      -- ^ @REMARKETING_LIST_SOURCE_GA@
+    | RemarketingListSourceGplus
+      -- ^ @REMARKETING_LIST_SOURCE_GPLUS@
+    | RemarketingListSourceOther
+      -- ^ @REMARKETING_LIST_SOURCE_OTHER@
+    | RemarketingListSourcePlayStore
+      -- ^ @REMARKETING_LIST_SOURCE_PLAY_STORE@
+    | RemarketingListSourceXfp
+      -- ^ @REMARKETING_LIST_SOURCE_XFP@
+    | RemarketingListSourceYouTube
+      -- ^ @REMARKETING_LIST_SOURCE_YOUTUBE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable TargetableRemarketingListListSource
+
+instance FromHttpApiData TargetableRemarketingListListSource where
+    parseQueryParam = \case
+        "REMARKETING_LIST_SOURCE_ADX" -> Right RemarketingListSourceAdx
+        "REMARKETING_LIST_SOURCE_DBM" -> Right RemarketingListSourceDBm
+        "REMARKETING_LIST_SOURCE_DFA" -> Right RemarketingListSourceDfa
+        "REMARKETING_LIST_SOURCE_DFP" -> Right RemarketingListSourceDfp
+        "REMARKETING_LIST_SOURCE_DMP" -> Right RemarketingListSourceDmp
+        "REMARKETING_LIST_SOURCE_GA" -> Right RemarketingListSourceGa
+        "REMARKETING_LIST_SOURCE_GPLUS" -> Right RemarketingListSourceGplus
+        "REMARKETING_LIST_SOURCE_OTHER" -> Right RemarketingListSourceOther
+        "REMARKETING_LIST_SOURCE_PLAY_STORE" -> Right RemarketingListSourcePlayStore
+        "REMARKETING_LIST_SOURCE_XFP" -> Right RemarketingListSourceXfp
+        "REMARKETING_LIST_SOURCE_YOUTUBE" -> Right RemarketingListSourceYouTube
+        x -> Left ("Unable to parse TargetableRemarketingListListSource from: " <> x)
+
+instance ToHttpApiData TargetableRemarketingListListSource where
+    toQueryParam = \case
+        RemarketingListSourceAdx -> "REMARKETING_LIST_SOURCE_ADX"
+        RemarketingListSourceDBm -> "REMARKETING_LIST_SOURCE_DBM"
+        RemarketingListSourceDfa -> "REMARKETING_LIST_SOURCE_DFA"
+        RemarketingListSourceDfp -> "REMARKETING_LIST_SOURCE_DFP"
+        RemarketingListSourceDmp -> "REMARKETING_LIST_SOURCE_DMP"
+        RemarketingListSourceGa -> "REMARKETING_LIST_SOURCE_GA"
+        RemarketingListSourceGplus -> "REMARKETING_LIST_SOURCE_GPLUS"
+        RemarketingListSourceOther -> "REMARKETING_LIST_SOURCE_OTHER"
+        RemarketingListSourcePlayStore -> "REMARKETING_LIST_SOURCE_PLAY_STORE"
+        RemarketingListSourceXfp -> "REMARKETING_LIST_SOURCE_XFP"
+        RemarketingListSourceYouTube -> "REMARKETING_LIST_SOURCE_YOUTUBE"
+
+instance FromJSON TargetableRemarketingListListSource where
+    parseJSON = parseJSONText "TargetableRemarketingListListSource"
+
+instance ToJSON TargetableRemarketingListListSource where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data CreativeGroupsListSortField
+    = CGLSFID
+      -- ^ @ID@
+    | CGLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeGroupsListSortField
+
+instance FromHttpApiData CreativeGroupsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right CGLSFID
+        "NAME" -> Right CGLSFName
+        x -> Left ("Unable to parse CreativeGroupsListSortField from: " <> x)
+
+instance ToHttpApiData CreativeGroupsListSortField where
+    toQueryParam = \case
+        CGLSFID -> "ID"
+        CGLSFName -> "NAME"
+
+instance FromJSON CreativeGroupsListSortField where
+    parseJSON = parseJSONText "CreativeGroupsListSortField"
+
+instance ToJSON CreativeGroupsListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data PlacementsListSortField
+    = PLSFID
+      -- ^ @ID@
+    | PLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementsListSortField
+
+instance FromHttpApiData PlacementsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right PLSFID
+        "NAME" -> Right PLSFName
+        x -> Left ("Unable to parse PlacementsListSortField from: " <> x)
+
+instance ToHttpApiData PlacementsListSortField where
+    toQueryParam = \case
+        PLSFID -> "ID"
+        PLSFName -> "NAME"
+
+instance FromJSON PlacementsListSortField where
+    parseJSON = parseJSONText "PlacementsListSortField"
+
+instance ToJSON PlacementsListSortField where
+    toJSON = toJSONText
+
+data CreativeBackupImageFeaturesItem
+    = CBIFIApplicationCache
+      -- ^ @APPLICATION_CACHE@
+    | CBIFIAudio
+      -- ^ @AUDIO@
+    | CBIFICanvas
+      -- ^ @CANVAS@
+    | CBIFICanvasText
+      -- ^ @CANVAS_TEXT@
+    | CBIFICssAnimations
+      -- ^ @CSS_ANIMATIONS@
+    | CBIFICssBackgRoundSize
+      -- ^ @CSS_BACKGROUND_SIZE@
+    | CBIFICssBOrderImage
+      -- ^ @CSS_BORDER_IMAGE@
+    | CBIFICssBOrderRadius
+      -- ^ @CSS_BORDER_RADIUS@
+    | CBIFICssBoxShadow
+      -- ^ @CSS_BOX_SHADOW@
+    | CBIFICssColumns
+      -- ^ @CSS_COLUMNS@
+    | CBIFICssFlexBox
+      -- ^ @CSS_FLEX_BOX@
+    | CBIFICssFontFace
+      -- ^ @CSS_FONT_FACE@
+    | CBIFICssGeneratedContent
+      -- ^ @CSS_GENERATED_CONTENT@
+    | CBIFICssGradients
+      -- ^ @CSS_GRADIENTS@
+    | CBIFICssHsla
+      -- ^ @CSS_HSLA@
+    | CBIFICssMultipleBgs
+      -- ^ @CSS_MULTIPLE_BGS@
+    | CBIFICssOpacity
+      -- ^ @CSS_OPACITY@
+    | CBIFICssReflections
+      -- ^ @CSS_REFLECTIONS@
+    | CBIFICssRgba
+      -- ^ @CSS_RGBA@
+    | CBIFICssTextShadow
+      -- ^ @CSS_TEXT_SHADOW@
+    | CBIFICssTransforms
+      -- ^ @CSS_TRANSFORMS@
+    | CBIFICssTRANSFORMS3D
+      -- ^ @CSS_TRANSFORMS3D@
+    | CBIFICssTransitions
+      -- ^ @CSS_TRANSITIONS@
+    | CBIFIDragAndDrop
+      -- ^ @DRAG_AND_DROP@
+    | CBIFIGeoLocation
+      -- ^ @GEO_LOCATION@
+    | CBIFIHashChange
+      -- ^ @HASH_CHANGE@
+    | CBIFIHistory
+      -- ^ @HISTORY@
+    | CBIFIIndexedDB
+      -- ^ @INDEXED_DB@
+    | CBIFIInlineSvg
+      -- ^ @INLINE_SVG@
+    | CBIFIInputAttrAutocomplete
+      -- ^ @INPUT_ATTR_AUTOCOMPLETE@
+    | CBIFIInputAttrAutofocus
+      -- ^ @INPUT_ATTR_AUTOFOCUS@
+    | CBIFIInputAttrList
+      -- ^ @INPUT_ATTR_LIST@
+    | CBIFIInputAttrMax
+      -- ^ @INPUT_ATTR_MAX@
+    | CBIFIInputAttrMin
+      -- ^ @INPUT_ATTR_MIN@
+    | CBIFIInputAttrMultiple
+      -- ^ @INPUT_ATTR_MULTIPLE@
+    | CBIFIInputAttrPattern
+      -- ^ @INPUT_ATTR_PATTERN@
+    | CBIFIInputAttrPlaceholder
+      -- ^ @INPUT_ATTR_PLACEHOLDER@
+    | CBIFIInputAttrRequired
+      -- ^ @INPUT_ATTR_REQUIRED@
+    | CBIFIInputAttrStep
+      -- ^ @INPUT_ATTR_STEP@
+    | CBIFIInputTypeColor
+      -- ^ @INPUT_TYPE_COLOR@
+    | CBIFIInputTypeDate
+      -- ^ @INPUT_TYPE_DATE@
+    | CBIFIInputTypeDatetime
+      -- ^ @INPUT_TYPE_DATETIME@
+    | CBIFIInputTypeDatetimeLocal
+      -- ^ @INPUT_TYPE_DATETIME_LOCAL@
+    | CBIFIInputTypeEmail
+      -- ^ @INPUT_TYPE_EMAIL@
+    | CBIFIInputTypeMonth
+      -- ^ @INPUT_TYPE_MONTH@
+    | CBIFIInputTypeNumber
+      -- ^ @INPUT_TYPE_NUMBER@
+    | CBIFIInputTypeRange
+      -- ^ @INPUT_TYPE_RANGE@
+    | CBIFIInputTypeSearch
+      -- ^ @INPUT_TYPE_SEARCH@
+    | CBIFIInputTypeTel
+      -- ^ @INPUT_TYPE_TEL@
+    | CBIFIInputTypeTime
+      -- ^ @INPUT_TYPE_TIME@
+    | CBIFIInputTypeURL
+      -- ^ @INPUT_TYPE_URL@
+    | CBIFIInputTypeWeek
+      -- ^ @INPUT_TYPE_WEEK@
+    | CBIFILocalStorage
+      -- ^ @LOCAL_STORAGE@
+    | CBIFIPostMessage
+      -- ^ @POST_MESSAGE@
+    | CBIFISessionStorage
+      -- ^ @SESSION_STORAGE@
+    | CBIFISmil
+      -- ^ @SMIL@
+    | CBIFISvgClipPaths
+      -- ^ @SVG_CLIP_PATHS@
+    | CBIFISvgFeImage
+      -- ^ @SVG_FE_IMAGE@
+    | CBIFISvgFilters
+      -- ^ @SVG_FILTERS@
+    | CBIFISvgHref
+      -- ^ @SVG_HREF@
+    | CBIFITouch
+      -- ^ @TOUCH@
+    | CBIFIVideo
+      -- ^ @VIDEO@
+    | CBIFIWebgl
+      -- ^ @WEBGL@
+    | CBIFIWebSockets
+      -- ^ @WEB_SOCKETS@
+    | CBIFIWebSQLDatabase
+      -- ^ @WEB_SQL_DATABASE@
+    | CBIFIWebWorkers
+      -- ^ @WEB_WORKERS@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeBackupImageFeaturesItem
+
+instance FromHttpApiData CreativeBackupImageFeaturesItem where
+    parseQueryParam = \case
+        "APPLICATION_CACHE" -> Right CBIFIApplicationCache
+        "AUDIO" -> Right CBIFIAudio
+        "CANVAS" -> Right CBIFICanvas
+        "CANVAS_TEXT" -> Right CBIFICanvasText
+        "CSS_ANIMATIONS" -> Right CBIFICssAnimations
+        "CSS_BACKGROUND_SIZE" -> Right CBIFICssBackgRoundSize
+        "CSS_BORDER_IMAGE" -> Right CBIFICssBOrderImage
+        "CSS_BORDER_RADIUS" -> Right CBIFICssBOrderRadius
+        "CSS_BOX_SHADOW" -> Right CBIFICssBoxShadow
+        "CSS_COLUMNS" -> Right CBIFICssColumns
+        "CSS_FLEX_BOX" -> Right CBIFICssFlexBox
+        "CSS_FONT_FACE" -> Right CBIFICssFontFace
+        "CSS_GENERATED_CONTENT" -> Right CBIFICssGeneratedContent
+        "CSS_GRADIENTS" -> Right CBIFICssGradients
+        "CSS_HSLA" -> Right CBIFICssHsla
+        "CSS_MULTIPLE_BGS" -> Right CBIFICssMultipleBgs
+        "CSS_OPACITY" -> Right CBIFICssOpacity
+        "CSS_REFLECTIONS" -> Right CBIFICssReflections
+        "CSS_RGBA" -> Right CBIFICssRgba
+        "CSS_TEXT_SHADOW" -> Right CBIFICssTextShadow
+        "CSS_TRANSFORMS" -> Right CBIFICssTransforms
+        "CSS_TRANSFORMS3D" -> Right CBIFICssTRANSFORMS3D
+        "CSS_TRANSITIONS" -> Right CBIFICssTransitions
+        "DRAG_AND_DROP" -> Right CBIFIDragAndDrop
+        "GEO_LOCATION" -> Right CBIFIGeoLocation
+        "HASH_CHANGE" -> Right CBIFIHashChange
+        "HISTORY" -> Right CBIFIHistory
+        "INDEXED_DB" -> Right CBIFIIndexedDB
+        "INLINE_SVG" -> Right CBIFIInlineSvg
+        "INPUT_ATTR_AUTOCOMPLETE" -> Right CBIFIInputAttrAutocomplete
+        "INPUT_ATTR_AUTOFOCUS" -> Right CBIFIInputAttrAutofocus
+        "INPUT_ATTR_LIST" -> Right CBIFIInputAttrList
+        "INPUT_ATTR_MAX" -> Right CBIFIInputAttrMax
+        "INPUT_ATTR_MIN" -> Right CBIFIInputAttrMin
+        "INPUT_ATTR_MULTIPLE" -> Right CBIFIInputAttrMultiple
+        "INPUT_ATTR_PATTERN" -> Right CBIFIInputAttrPattern
+        "INPUT_ATTR_PLACEHOLDER" -> Right CBIFIInputAttrPlaceholder
+        "INPUT_ATTR_REQUIRED" -> Right CBIFIInputAttrRequired
+        "INPUT_ATTR_STEP" -> Right CBIFIInputAttrStep
+        "INPUT_TYPE_COLOR" -> Right CBIFIInputTypeColor
+        "INPUT_TYPE_DATE" -> Right CBIFIInputTypeDate
+        "INPUT_TYPE_DATETIME" -> Right CBIFIInputTypeDatetime
+        "INPUT_TYPE_DATETIME_LOCAL" -> Right CBIFIInputTypeDatetimeLocal
+        "INPUT_TYPE_EMAIL" -> Right CBIFIInputTypeEmail
+        "INPUT_TYPE_MONTH" -> Right CBIFIInputTypeMonth
+        "INPUT_TYPE_NUMBER" -> Right CBIFIInputTypeNumber
+        "INPUT_TYPE_RANGE" -> Right CBIFIInputTypeRange
+        "INPUT_TYPE_SEARCH" -> Right CBIFIInputTypeSearch
+        "INPUT_TYPE_TEL" -> Right CBIFIInputTypeTel
+        "INPUT_TYPE_TIME" -> Right CBIFIInputTypeTime
+        "INPUT_TYPE_URL" -> Right CBIFIInputTypeURL
+        "INPUT_TYPE_WEEK" -> Right CBIFIInputTypeWeek
+        "LOCAL_STORAGE" -> Right CBIFILocalStorage
+        "POST_MESSAGE" -> Right CBIFIPostMessage
+        "SESSION_STORAGE" -> Right CBIFISessionStorage
+        "SMIL" -> Right CBIFISmil
+        "SVG_CLIP_PATHS" -> Right CBIFISvgClipPaths
+        "SVG_FE_IMAGE" -> Right CBIFISvgFeImage
+        "SVG_FILTERS" -> Right CBIFISvgFilters
+        "SVG_HREF" -> Right CBIFISvgHref
+        "TOUCH" -> Right CBIFITouch
+        "VIDEO" -> Right CBIFIVideo
+        "WEBGL" -> Right CBIFIWebgl
+        "WEB_SOCKETS" -> Right CBIFIWebSockets
+        "WEB_SQL_DATABASE" -> Right CBIFIWebSQLDatabase
+        "WEB_WORKERS" -> Right CBIFIWebWorkers
+        x -> Left ("Unable to parse CreativeBackupImageFeaturesItem from: " <> x)
+
+instance ToHttpApiData CreativeBackupImageFeaturesItem where
+    toQueryParam = \case
+        CBIFIApplicationCache -> "APPLICATION_CACHE"
+        CBIFIAudio -> "AUDIO"
+        CBIFICanvas -> "CANVAS"
+        CBIFICanvasText -> "CANVAS_TEXT"
+        CBIFICssAnimations -> "CSS_ANIMATIONS"
+        CBIFICssBackgRoundSize -> "CSS_BACKGROUND_SIZE"
+        CBIFICssBOrderImage -> "CSS_BORDER_IMAGE"
+        CBIFICssBOrderRadius -> "CSS_BORDER_RADIUS"
+        CBIFICssBoxShadow -> "CSS_BOX_SHADOW"
+        CBIFICssColumns -> "CSS_COLUMNS"
+        CBIFICssFlexBox -> "CSS_FLEX_BOX"
+        CBIFICssFontFace -> "CSS_FONT_FACE"
+        CBIFICssGeneratedContent -> "CSS_GENERATED_CONTENT"
+        CBIFICssGradients -> "CSS_GRADIENTS"
+        CBIFICssHsla -> "CSS_HSLA"
+        CBIFICssMultipleBgs -> "CSS_MULTIPLE_BGS"
+        CBIFICssOpacity -> "CSS_OPACITY"
+        CBIFICssReflections -> "CSS_REFLECTIONS"
+        CBIFICssRgba -> "CSS_RGBA"
+        CBIFICssTextShadow -> "CSS_TEXT_SHADOW"
+        CBIFICssTransforms -> "CSS_TRANSFORMS"
+        CBIFICssTRANSFORMS3D -> "CSS_TRANSFORMS3D"
+        CBIFICssTransitions -> "CSS_TRANSITIONS"
+        CBIFIDragAndDrop -> "DRAG_AND_DROP"
+        CBIFIGeoLocation -> "GEO_LOCATION"
+        CBIFIHashChange -> "HASH_CHANGE"
+        CBIFIHistory -> "HISTORY"
+        CBIFIIndexedDB -> "INDEXED_DB"
+        CBIFIInlineSvg -> "INLINE_SVG"
+        CBIFIInputAttrAutocomplete -> "INPUT_ATTR_AUTOCOMPLETE"
+        CBIFIInputAttrAutofocus -> "INPUT_ATTR_AUTOFOCUS"
+        CBIFIInputAttrList -> "INPUT_ATTR_LIST"
+        CBIFIInputAttrMax -> "INPUT_ATTR_MAX"
+        CBIFIInputAttrMin -> "INPUT_ATTR_MIN"
+        CBIFIInputAttrMultiple -> "INPUT_ATTR_MULTIPLE"
+        CBIFIInputAttrPattern -> "INPUT_ATTR_PATTERN"
+        CBIFIInputAttrPlaceholder -> "INPUT_ATTR_PLACEHOLDER"
+        CBIFIInputAttrRequired -> "INPUT_ATTR_REQUIRED"
+        CBIFIInputAttrStep -> "INPUT_ATTR_STEP"
+        CBIFIInputTypeColor -> "INPUT_TYPE_COLOR"
+        CBIFIInputTypeDate -> "INPUT_TYPE_DATE"
+        CBIFIInputTypeDatetime -> "INPUT_TYPE_DATETIME"
+        CBIFIInputTypeDatetimeLocal -> "INPUT_TYPE_DATETIME_LOCAL"
+        CBIFIInputTypeEmail -> "INPUT_TYPE_EMAIL"
+        CBIFIInputTypeMonth -> "INPUT_TYPE_MONTH"
+        CBIFIInputTypeNumber -> "INPUT_TYPE_NUMBER"
+        CBIFIInputTypeRange -> "INPUT_TYPE_RANGE"
+        CBIFIInputTypeSearch -> "INPUT_TYPE_SEARCH"
+        CBIFIInputTypeTel -> "INPUT_TYPE_TEL"
+        CBIFIInputTypeTime -> "INPUT_TYPE_TIME"
+        CBIFIInputTypeURL -> "INPUT_TYPE_URL"
+        CBIFIInputTypeWeek -> "INPUT_TYPE_WEEK"
+        CBIFILocalStorage -> "LOCAL_STORAGE"
+        CBIFIPostMessage -> "POST_MESSAGE"
+        CBIFISessionStorage -> "SESSION_STORAGE"
+        CBIFISmil -> "SMIL"
+        CBIFISvgClipPaths -> "SVG_CLIP_PATHS"
+        CBIFISvgFeImage -> "SVG_FE_IMAGE"
+        CBIFISvgFilters -> "SVG_FILTERS"
+        CBIFISvgHref -> "SVG_HREF"
+        CBIFITouch -> "TOUCH"
+        CBIFIVideo -> "VIDEO"
+        CBIFIWebgl -> "WEBGL"
+        CBIFIWebSockets -> "WEB_SOCKETS"
+        CBIFIWebSQLDatabase -> "WEB_SQL_DATABASE"
+        CBIFIWebWorkers -> "WEB_WORKERS"
+
+instance FromJSON CreativeBackupImageFeaturesItem where
+    parseJSON = parseJSONText "CreativeBackupImageFeaturesItem"
+
+instance ToJSON CreativeBackupImageFeaturesItem where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data AdvertisersListSortOrder
+    = ALSOAscending
+      -- ^ @ASCENDING@
+    | ALSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdvertisersListSortOrder
+
+instance FromHttpApiData AdvertisersListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right ALSOAscending
+        "DESCENDING" -> Right ALSODescending
+        x -> Left ("Unable to parse AdvertisersListSortOrder from: " <> x)
+
+instance ToHttpApiData AdvertisersListSortOrder where
+    toQueryParam = \case
+        ALSOAscending -> "ASCENDING"
+        ALSODescending -> "DESCENDING"
+
+instance FromJSON AdvertisersListSortOrder where
+    parseJSON = parseJSONText "AdvertisersListSortOrder"
+
+instance ToJSON AdvertisersListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data CreativeFieldsListSortField
+    = CFLSFID
+      -- ^ @ID@
+    | CFLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeFieldsListSortField
+
+instance FromHttpApiData CreativeFieldsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right CFLSFID
+        "NAME" -> Right CFLSFName
+        x -> Left ("Unable to parse CreativeFieldsListSortField from: " <> x)
+
+instance ToHttpApiData CreativeFieldsListSortField where
+    toQueryParam = \case
+        CFLSFID -> "ID"
+        CFLSFName -> "NAME"
+
+instance FromJSON CreativeFieldsListSortField where
+    parseJSON = parseJSONText "CreativeFieldsListSortField"
+
+instance ToJSON CreativeFieldsListSortField where
+    toJSON = toJSONText
+
+-- | Variable name in the tag. This is a required field.
+data UserDefinedVariableConfigurationVariableType
+    = UDVCVTU1
+      -- ^ @U1@
+    | UDVCVTU10
+      -- ^ @U10@
+    | UDVCVTU11
+      -- ^ @U11@
+    | UDVCVTU12
+      -- ^ @U12@
+    | UDVCVTU13
+      -- ^ @U13@
+    | UDVCVTU14
+      -- ^ @U14@
+    | UDVCVTU15
+      -- ^ @U15@
+    | UDVCVTU16
+      -- ^ @U16@
+    | UDVCVTU17
+      -- ^ @U17@
+    | UDVCVTU18
+      -- ^ @U18@
+    | UDVCVTU19
+      -- ^ @U19@
+    | UDVCVTU2
+      -- ^ @U2@
+    | UDVCVTU20
+      -- ^ @U20@
+    | UDVCVTU3
+      -- ^ @U3@
+    | UDVCVTU4
+      -- ^ @U4@
+    | UDVCVTU5
+      -- ^ @U5@
+    | UDVCVTU6
+      -- ^ @U6@
+    | UDVCVTU7
+      -- ^ @U7@
+    | UDVCVTU8
+      -- ^ @U8@
+    | UDVCVTU9
+      -- ^ @U9@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable UserDefinedVariableConfigurationVariableType
+
+instance FromHttpApiData UserDefinedVariableConfigurationVariableType where
+    parseQueryParam = \case
+        "U1" -> Right UDVCVTU1
+        "U10" -> Right UDVCVTU10
+        "U11" -> Right UDVCVTU11
+        "U12" -> Right UDVCVTU12
+        "U13" -> Right UDVCVTU13
+        "U14" -> Right UDVCVTU14
+        "U15" -> Right UDVCVTU15
+        "U16" -> Right UDVCVTU16
+        "U17" -> Right UDVCVTU17
+        "U18" -> Right UDVCVTU18
+        "U19" -> Right UDVCVTU19
+        "U2" -> Right UDVCVTU2
+        "U20" -> Right UDVCVTU20
+        "U3" -> Right UDVCVTU3
+        "U4" -> Right UDVCVTU4
+        "U5" -> Right UDVCVTU5
+        "U6" -> Right UDVCVTU6
+        "U7" -> Right UDVCVTU7
+        "U8" -> Right UDVCVTU8
+        "U9" -> Right UDVCVTU9
+        x -> Left ("Unable to parse UserDefinedVariableConfigurationVariableType from: " <> x)
+
+instance ToHttpApiData UserDefinedVariableConfigurationVariableType where
+    toQueryParam = \case
+        UDVCVTU1 -> "U1"
+        UDVCVTU10 -> "U10"
+        UDVCVTU11 -> "U11"
+        UDVCVTU12 -> "U12"
+        UDVCVTU13 -> "U13"
+        UDVCVTU14 -> "U14"
+        UDVCVTU15 -> "U15"
+        UDVCVTU16 -> "U16"
+        UDVCVTU17 -> "U17"
+        UDVCVTU18 -> "U18"
+        UDVCVTU19 -> "U19"
+        UDVCVTU2 -> "U2"
+        UDVCVTU20 -> "U20"
+        UDVCVTU3 -> "U3"
+        UDVCVTU4 -> "U4"
+        UDVCVTU5 -> "U5"
+        UDVCVTU6 -> "U6"
+        UDVCVTU7 -> "U7"
+        UDVCVTU8 -> "U8"
+        UDVCVTU9 -> "U9"
+
+instance FromJSON UserDefinedVariableConfigurationVariableType where
+    parseJSON = parseJSONText "UserDefinedVariableConfigurationVariableType"
+
+instance ToJSON UserDefinedVariableConfigurationVariableType where
+    toJSON = toJSONText
+
+-- | Position in the browser where the window will open.
+data FsCommandPositionOption
+    = Centered
+      -- ^ @CENTERED@
+    | DistanceFromTopLeftCorner
+      -- ^ @DISTANCE_FROM_TOP_LEFT_CORNER@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FsCommandPositionOption
+
+instance FromHttpApiData FsCommandPositionOption where
+    parseQueryParam = \case
+        "CENTERED" -> Right Centered
+        "DISTANCE_FROM_TOP_LEFT_CORNER" -> Right DistanceFromTopLeftCorner
+        x -> Left ("Unable to parse FsCommandPositionOption from: " <> x)
+
+instance ToHttpApiData FsCommandPositionOption where
+    toQueryParam = \case
+        Centered -> "CENTERED"
+        DistanceFromTopLeftCorner -> "DISTANCE_FROM_TOP_LEFT_CORNER"
+
+instance FromJSON FsCommandPositionOption where
+    parseJSON = parseJSONText "FsCommandPositionOption"
+
+instance ToJSON FsCommandPositionOption where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data UserRolesListSortOrder
+    = URLSOAscending
+      -- ^ @ASCENDING@
+    | URLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable UserRolesListSortOrder
+
+instance FromHttpApiData UserRolesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right URLSOAscending
+        "DESCENDING" -> Right URLSODescending
+        x -> Left ("Unable to parse UserRolesListSortOrder from: " <> x)
+
+instance ToHttpApiData UserRolesListSortOrder where
+    toQueryParam = \case
+        URLSOAscending -> "ASCENDING"
+        URLSODescending -> "DESCENDING"
+
+instance FromJSON UserRolesListSortOrder where
+    parseJSON = parseJSONText "UserRolesListSortOrder"
+
+instance ToJSON UserRolesListSortOrder where
+    toJSON = toJSONText
+
+-- | Select only placements that are associated with these compatibilities.
+-- DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or
+-- on mobile devices for regular or interstitial ads respectively. APP and
+-- APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO
+-- refers to rendering in in-stream video ads developed with the VAST
+-- standard.
+data PlacementsListCompatibilities
+    = PLCApp
+      -- ^ @APP@
+    | PLCAppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | PLCDisplay
+      -- ^ @DISPLAY@
+    | PLCDisplayInterstitial
+      -- ^ @DISPLAY_INTERSTITIAL@
+    | PLCInStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementsListCompatibilities
+
+instance FromHttpApiData PlacementsListCompatibilities where
+    parseQueryParam = \case
+        "APP" -> Right PLCApp
+        "APP_INTERSTITIAL" -> Right PLCAppInterstitial
+        "DISPLAY" -> Right PLCDisplay
+        "DISPLAY_INTERSTITIAL" -> Right PLCDisplayInterstitial
+        "IN_STREAM_VIDEO" -> Right PLCInStreamVideo
+        x -> Left ("Unable to parse PlacementsListCompatibilities from: " <> x)
+
+instance ToHttpApiData PlacementsListCompatibilities where
+    toQueryParam = \case
+        PLCApp -> "APP"
+        PLCAppInterstitial -> "APP_INTERSTITIAL"
+        PLCDisplay -> "DISPLAY"
+        PLCDisplayInterstitial -> "DISPLAY_INTERSTITIAL"
+        PLCInStreamVideo -> "IN_STREAM_VIDEO"
+
+instance FromJSON PlacementsListCompatibilities where
+    parseJSON = parseJSONText "PlacementsListCompatibilities"
+
+instance ToJSON PlacementsListCompatibilities where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data OrderDocumentsListSortField
+    = ODLSFID
+      -- ^ @ID@
+    | ODLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable OrderDocumentsListSortField
+
+instance FromHttpApiData OrderDocumentsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right ODLSFID
+        "NAME" -> Right ODLSFName
+        x -> Left ("Unable to parse OrderDocumentsListSortField from: " <> x)
+
+instance ToHttpApiData OrderDocumentsListSortField where
+    toQueryParam = \case
+        ODLSFID -> "ID"
+        ODLSFName -> "NAME"
+
+instance FromJSON OrderDocumentsListSortField where
+    parseJSON = parseJSONText "OrderDocumentsListSortField"
+
+instance ToJSON OrderDocumentsListSortField where
+    toJSON = toJSONText
+
+data CreativeCompatibilityItem
+    = CCIApp
+      -- ^ @APP@
+    | CCIAppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | CCIDisplay
+      -- ^ @DISPLAY@
+    | CCIDisplayInterstitial
+      -- ^ @DISPLAY_INTERSTITIAL@
+    | CCIInStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeCompatibilityItem
+
+instance FromHttpApiData CreativeCompatibilityItem where
+    parseQueryParam = \case
+        "APP" -> Right CCIApp
+        "APP_INTERSTITIAL" -> Right CCIAppInterstitial
+        "DISPLAY" -> Right CCIDisplay
+        "DISPLAY_INTERSTITIAL" -> Right CCIDisplayInterstitial
+        "IN_STREAM_VIDEO" -> Right CCIInStreamVideo
+        x -> Left ("Unable to parse CreativeCompatibilityItem from: " <> x)
+
+instance ToHttpApiData CreativeCompatibilityItem where
+    toQueryParam = \case
+        CCIApp -> "APP"
+        CCIAppInterstitial -> "APP_INTERSTITIAL"
+        CCIDisplay -> "DISPLAY"
+        CCIDisplayInterstitial -> "DISPLAY_INTERSTITIAL"
+        CCIInStreamVideo -> "IN_STREAM_VIDEO"
+
+instance FromJSON CreativeCompatibilityItem where
+    parseJSON = parseJSONText "CreativeCompatibilityItem"
+
+instance ToJSON CreativeCompatibilityItem where
+    toJSON = toJSONText
+
+-- | The type of delivery for the owner to receive, if enabled.
+data ReportDeliveryEmailOwnerDeliveryType
+    = RDEODTAttachment
+      -- ^ @ATTACHMENT@
+    | RDEODTLink
+      -- ^ @LINK@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportDeliveryEmailOwnerDeliveryType
+
+instance FromHttpApiData ReportDeliveryEmailOwnerDeliveryType where
+    parseQueryParam = \case
+        "ATTACHMENT" -> Right RDEODTAttachment
+        "LINK" -> Right RDEODTLink
+        x -> Left ("Unable to parse ReportDeliveryEmailOwnerDeliveryType from: " <> x)
+
+instance ToHttpApiData ReportDeliveryEmailOwnerDeliveryType where
+    toQueryParam = \case
+        RDEODTAttachment -> "ATTACHMENT"
+        RDEODTLink -> "LINK"
+
+instance FromJSON ReportDeliveryEmailOwnerDeliveryType where
+    parseJSON = parseJSONText "ReportDeliveryEmailOwnerDeliveryType"
+
+instance ToJSON ReportDeliveryEmailOwnerDeliveryType where
+    toJSON = toJSONText
+
+-- | Site contact type.
+data SiteContactContactType
+    = SalesPerson
+      -- ^ @SALES_PERSON@
+    | Trafficker
+      -- ^ @TRAFFICKER@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable SiteContactContactType
+
+instance FromHttpApiData SiteContactContactType where
+    parseQueryParam = \case
+        "SALES_PERSON" -> Right SalesPerson
+        "TRAFFICKER" -> Right Trafficker
+        x -> Left ("Unable to parse SiteContactContactType from: " <> x)
+
+instance ToHttpApiData SiteContactContactType where
+    toQueryParam = \case
+        SalesPerson -> "SALES_PERSON"
+        Trafficker -> "TRAFFICKER"
+
+instance FromJSON SiteContactContactType where
+    parseJSON = parseJSONText "SiteContactContactType"
+
+instance ToJSON SiteContactContactType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is \'DESCENDING\'.
+data ReportsListSortOrder
+    = RLSOAscending
+      -- ^ @ASCENDING@
+      -- Ascending order.
+    | RLSODescending
+      -- ^ @DESCENDING@
+      -- Descending order.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportsListSortOrder
+
+instance FromHttpApiData ReportsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right RLSOAscending
+        "DESCENDING" -> Right RLSODescending
+        x -> Left ("Unable to parse ReportsListSortOrder from: " <> x)
+
+instance ToHttpApiData ReportsListSortOrder where
+    toQueryParam = \case
+        RLSOAscending -> "ASCENDING"
+        RLSODescending -> "DESCENDING"
+
+instance FromJSON ReportsListSortOrder where
+    parseJSON = parseJSONText "ReportsListSortOrder"
+
+instance ToJSON ReportsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data TargetableRemarketingListsListSortField
+    = TRLLSFID
+      -- ^ @ID@
+    | TRLLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable TargetableRemarketingListsListSortField
+
+instance FromHttpApiData TargetableRemarketingListsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right TRLLSFID
+        "NAME" -> Right TRLLSFName
+        x -> Left ("Unable to parse TargetableRemarketingListsListSortField from: " <> x)
+
+instance ToHttpApiData TargetableRemarketingListsListSortField where
+    toQueryParam = \case
+        TRLLSFID -> "ID"
+        TRLLSFName -> "NAME"
+
+instance FromJSON TargetableRemarketingListsListSortField where
+    parseJSON = parseJSONText "TargetableRemarketingListsListSortField"
+
+instance ToJSON TargetableRemarketingListsListSortField where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CampaignsListSortOrder
+    = CLSOAscending
+      -- ^ @ASCENDING@
+    | CLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CampaignsListSortOrder
+
+instance FromHttpApiData CampaignsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right CLSOAscending
+        "DESCENDING" -> Right CLSODescending
+        x -> Left ("Unable to parse CampaignsListSortOrder from: " <> x)
+
+instance ToHttpApiData CampaignsListSortOrder where
+    toQueryParam = \case
+        CLSOAscending -> "ASCENDING"
+        CLSODescending -> "DESCENDING"
+
+instance FromJSON CampaignsListSortOrder where
+    parseJSON = parseJSONText "CampaignsListSortOrder"
+
+instance ToJSON CampaignsListSortOrder where
+    toJSON = toJSONText
+
+-- | Select only floodlight activity groups with the specified floodlight
+-- activity group type.
+data FloodlightActivityGroupsListType
+    = Counter
+      -- ^ @COUNTER@
+    | Sale
+      -- ^ @SALE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivityGroupsListType
+
+instance FromHttpApiData FloodlightActivityGroupsListType where
+    parseQueryParam = \case
+        "COUNTER" -> Right Counter
+        "SALE" -> Right Sale
+        x -> Left ("Unable to parse FloodlightActivityGroupsListType from: " <> x)
+
+instance ToHttpApiData FloodlightActivityGroupsListType where
+    toQueryParam = \case
+        Counter -> "COUNTER"
+        Sale -> "SALE"
+
+instance FromJSON FloodlightActivityGroupsListType where
+    parseJSON = parseJSONText "FloodlightActivityGroupsListType"
+
+instance ToJSON FloodlightActivityGroupsListType where
+    toJSON = toJSONText
+
+-- | Day that will be counted as the first day of the week in reports. This
+-- is a required field.
+data FloodlightConfigurationFirstDayOfWeek
+    = Monday
+      -- ^ @MONDAY@
+    | Sunday
+      -- ^ @SUNDAY@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightConfigurationFirstDayOfWeek
+
+instance FromHttpApiData FloodlightConfigurationFirstDayOfWeek where
+    parseQueryParam = \case
+        "MONDAY" -> Right Monday
+        "SUNDAY" -> Right Sunday
+        x -> Left ("Unable to parse FloodlightConfigurationFirstDayOfWeek from: " <> x)
+
+instance ToHttpApiData FloodlightConfigurationFirstDayOfWeek where
+    toQueryParam = \case
+        Monday -> "MONDAY"
+        Sunday -> "SUNDAY"
+
+instance FromJSON FloodlightConfigurationFirstDayOfWeek where
+    parseJSON = parseJSONText "FloodlightConfigurationFirstDayOfWeek"
+
+instance ToJSON FloodlightConfigurationFirstDayOfWeek where
+    toJSON = toJSONText
+
+-- | Serving priority of an ad, with respect to other ads. The lower the
+-- priority number, the greater the priority with which it is served.
+data DeliverySchedulePriority
+    = AdPriority01
+      -- ^ @AD_PRIORITY_01@
+    | AdPriority02
+      -- ^ @AD_PRIORITY_02@
+    | AdPriority03
+      -- ^ @AD_PRIORITY_03@
+    | AdPriority04
+      -- ^ @AD_PRIORITY_04@
+    | AdPriority05
+      -- ^ @AD_PRIORITY_05@
+    | AdPriority06
+      -- ^ @AD_PRIORITY_06@
+    | AdPriority07
+      -- ^ @AD_PRIORITY_07@
+    | AdPriority08
+      -- ^ @AD_PRIORITY_08@
+    | AdPriority09
+      -- ^ @AD_PRIORITY_09@
+    | AdPriority10
+      -- ^ @AD_PRIORITY_10@
+    | AdPriority11
+      -- ^ @AD_PRIORITY_11@
+    | AdPriority12
+      -- ^ @AD_PRIORITY_12@
+    | AdPriority13
+      -- ^ @AD_PRIORITY_13@
+    | AdPriority14
+      -- ^ @AD_PRIORITY_14@
+    | AdPriority15
+      -- ^ @AD_PRIORITY_15@
+    | AdPriority16
+      -- ^ @AD_PRIORITY_16@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DeliverySchedulePriority
+
+instance FromHttpApiData DeliverySchedulePriority where
+    parseQueryParam = \case
+        "AD_PRIORITY_01" -> Right AdPriority01
+        "AD_PRIORITY_02" -> Right AdPriority02
+        "AD_PRIORITY_03" -> Right AdPriority03
+        "AD_PRIORITY_04" -> Right AdPriority04
+        "AD_PRIORITY_05" -> Right AdPriority05
+        "AD_PRIORITY_06" -> Right AdPriority06
+        "AD_PRIORITY_07" -> Right AdPriority07
+        "AD_PRIORITY_08" -> Right AdPriority08
+        "AD_PRIORITY_09" -> Right AdPriority09
+        "AD_PRIORITY_10" -> Right AdPriority10
+        "AD_PRIORITY_11" -> Right AdPriority11
+        "AD_PRIORITY_12" -> Right AdPriority12
+        "AD_PRIORITY_13" -> Right AdPriority13
+        "AD_PRIORITY_14" -> Right AdPriority14
+        "AD_PRIORITY_15" -> Right AdPriority15
+        "AD_PRIORITY_16" -> Right AdPriority16
+        x -> Left ("Unable to parse DeliverySchedulePriority from: " <> x)
+
+instance ToHttpApiData DeliverySchedulePriority where
+    toQueryParam = \case
+        AdPriority01 -> "AD_PRIORITY_01"
+        AdPriority02 -> "AD_PRIORITY_02"
+        AdPriority03 -> "AD_PRIORITY_03"
+        AdPriority04 -> "AD_PRIORITY_04"
+        AdPriority05 -> "AD_PRIORITY_05"
+        AdPriority06 -> "AD_PRIORITY_06"
+        AdPriority07 -> "AD_PRIORITY_07"
+        AdPriority08 -> "AD_PRIORITY_08"
+        AdPriority09 -> "AD_PRIORITY_09"
+        AdPriority10 -> "AD_PRIORITY_10"
+        AdPriority11 -> "AD_PRIORITY_11"
+        AdPriority12 -> "AD_PRIORITY_12"
+        AdPriority13 -> "AD_PRIORITY_13"
+        AdPriority14 -> "AD_PRIORITY_14"
+        AdPriority15 -> "AD_PRIORITY_15"
+        AdPriority16 -> "AD_PRIORITY_16"
+
+instance FromJSON DeliverySchedulePriority where
+    parseJSON = parseJSONText "DeliverySchedulePriority"
+
+instance ToJSON DeliverySchedulePriority where
+    toJSON = toJSONText
+
+-- | Select only floodlight activities with the specified floodlight activity
+-- group type.
+data FloodlightActivitiesListFloodlightActivityGroupType
+    = FALFAGTCounter
+      -- ^ @COUNTER@
+    | FALFAGTSale
+      -- ^ @SALE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivitiesListFloodlightActivityGroupType
+
+instance FromHttpApiData FloodlightActivitiesListFloodlightActivityGroupType where
+    parseQueryParam = \case
+        "COUNTER" -> Right FALFAGTCounter
+        "SALE" -> Right FALFAGTSale
+        x -> Left ("Unable to parse FloodlightActivitiesListFloodlightActivityGroupType from: " <> x)
+
+instance ToHttpApiData FloodlightActivitiesListFloodlightActivityGroupType where
+    toQueryParam = \case
+        FALFAGTCounter -> "COUNTER"
+        FALFAGTSale -> "SALE"
+
+instance FromJSON FloodlightActivitiesListFloodlightActivityGroupType where
+    parseJSON = parseJSONText "FloodlightActivitiesListFloodlightActivityGroupType"
+
+instance ToJSON FloodlightActivitiesListFloodlightActivityGroupType where
+    toJSON = toJSONText
+
+-- | Source application where creative was authored. Presently, only DBM
+-- authored creatives will have this field set. Applicable to all creative
+-- types.
+data CreativeAuthoringSource
+    = CreativeAuthoringSourceDBm
+      -- ^ @CREATIVE_AUTHORING_SOURCE_DBM@
+    | CreativeAuthoringSourceDcm
+      -- ^ @CREATIVE_AUTHORING_SOURCE_DCM@
+    | CreativeAuthoringSourceStudio
+      -- ^ @CREATIVE_AUTHORING_SOURCE_STUDIO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAuthoringSource
+
+instance FromHttpApiData CreativeAuthoringSource where
+    parseQueryParam = \case
+        "CREATIVE_AUTHORING_SOURCE_DBM" -> Right CreativeAuthoringSourceDBm
+        "CREATIVE_AUTHORING_SOURCE_DCM" -> Right CreativeAuthoringSourceDcm
+        "CREATIVE_AUTHORING_SOURCE_STUDIO" -> Right CreativeAuthoringSourceStudio
+        x -> Left ("Unable to parse CreativeAuthoringSource from: " <> x)
+
+instance ToHttpApiData CreativeAuthoringSource where
+    toQueryParam = \case
+        CreativeAuthoringSourceDBm -> "CREATIVE_AUTHORING_SOURCE_DBM"
+        CreativeAuthoringSourceDcm -> "CREATIVE_AUTHORING_SOURCE_DCM"
+        CreativeAuthoringSourceStudio -> "CREATIVE_AUTHORING_SOURCE_STUDIO"
+
+instance FromJSON CreativeAuthoringSource where
+    parseJSON = parseJSONText "CreativeAuthoringSource"
+
+instance ToJSON CreativeAuthoringSource where
+    toJSON = toJSONText
+
+data FloodlightConfigurationStandardVariableTypesItem
+    = Num
+      -- ^ @NUM@
+    | Ord
+      -- ^ @ORD@
+    | Tran
+      -- ^ @TRAN@
+    | U
+      -- ^ @U@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightConfigurationStandardVariableTypesItem
+
+instance FromHttpApiData FloodlightConfigurationStandardVariableTypesItem where
+    parseQueryParam = \case
+        "NUM" -> Right Num
+        "ORD" -> Right Ord
+        "TRAN" -> Right Tran
+        "U" -> Right U
+        x -> Left ("Unable to parse FloodlightConfigurationStandardVariableTypesItem from: " <> x)
+
+instance ToHttpApiData FloodlightConfigurationStandardVariableTypesItem where
+    toQueryParam = \case
+        Num -> "NUM"
+        Ord -> "ORD"
+        Tran -> "TRAN"
+        U -> "U"
+
+instance FromJSON FloodlightConfigurationStandardVariableTypesItem where
+    parseJSON = parseJSONText "FloodlightConfigurationStandardVariableTypesItem"
+
+instance ToJSON FloodlightConfigurationStandardVariableTypesItem where
+    toJSON = toJSONText
+
+-- | Payment source for this placement. This is a required field that is
+-- read-only after insertion.
+data PlacementPaymentSource
+    = PPSPlacementAgencyPaid
+      -- ^ @PLACEMENT_AGENCY_PAID@
+    | PPSPlacementPublisherPaid
+      -- ^ @PLACEMENT_PUBLISHER_PAID@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementPaymentSource
+
+instance FromHttpApiData PlacementPaymentSource where
+    parseQueryParam = \case
+        "PLACEMENT_AGENCY_PAID" -> Right PPSPlacementAgencyPaid
+        "PLACEMENT_PUBLISHER_PAID" -> Right PPSPlacementPublisherPaid
+        x -> Left ("Unable to parse PlacementPaymentSource from: " <> x)
+
+instance ToHttpApiData PlacementPaymentSource where
+    toQueryParam = \case
+        PPSPlacementAgencyPaid -> "PLACEMENT_AGENCY_PAID"
+        PPSPlacementPublisherPaid -> "PLACEMENT_PUBLISHER_PAID"
+
+instance FromJSON PlacementPaymentSource where
+    parseJSON = parseJSONText "PlacementPaymentSource"
+
+instance ToJSON PlacementPaymentSource where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is \'DESCENDING\'.
+data ReportsFilesListSortOrder
+    = RFLSOAscending
+      -- ^ @ASCENDING@
+      -- Ascending order.
+    | RFLSODescending
+      -- ^ @DESCENDING@
+      -- Descending order.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportsFilesListSortOrder
+
+instance FromHttpApiData ReportsFilesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right RFLSOAscending
+        "DESCENDING" -> Right RFLSODescending
+        x -> Left ("Unable to parse ReportsFilesListSortOrder from: " <> x)
+
+instance ToHttpApiData ReportsFilesListSortOrder where
+    toQueryParam = \case
+        RFLSOAscending -> "ASCENDING"
+        RFLSODescending -> "DESCENDING"
+
+instance FromJSON ReportsFilesListSortOrder where
+    parseJSON = parseJSONText "ReportsFilesListSortOrder"
+
+instance ToJSON ReportsFilesListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data InventoryItemsListSortField
+    = IILSFID
+      -- ^ @ID@
+    | IILSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable InventoryItemsListSortField
+
+instance FromHttpApiData InventoryItemsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right IILSFID
+        "NAME" -> Right IILSFName
+        x -> Left ("Unable to parse InventoryItemsListSortField from: " <> x)
+
+instance ToHttpApiData InventoryItemsListSortField where
+    toQueryParam = \case
+        IILSFID -> "ID"
+        IILSFName -> "NAME"
+
+instance FromJSON InventoryItemsListSortField where
+    parseJSON = parseJSONText "InventoryItemsListSortField"
+
+instance ToJSON InventoryItemsListSortField where
+    toJSON = toJSONText
+
+-- | Event tag type. Can be used to specify whether to use a third-party
+-- pixel, a third-party JavaScript URL, or a third-party click-through URL
+-- for either impression or click tracking. This is a required field.
+data EventTagType
+    = ETTClickThroughEventTag
+      -- ^ @CLICK_THROUGH_EVENT_TAG@
+    | ETTImpressionImageEventTag
+      -- ^ @IMPRESSION_IMAGE_EVENT_TAG@
+    | ETTImpressionJavascriptEventTag
+      -- ^ @IMPRESSION_JAVASCRIPT_EVENT_TAG@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable EventTagType
+
+instance FromHttpApiData EventTagType where
+    parseQueryParam = \case
+        "CLICK_THROUGH_EVENT_TAG" -> Right ETTClickThroughEventTag
+        "IMPRESSION_IMAGE_EVENT_TAG" -> Right ETTImpressionImageEventTag
+        "IMPRESSION_JAVASCRIPT_EVENT_TAG" -> Right ETTImpressionJavascriptEventTag
+        x -> Left ("Unable to parse EventTagType from: " <> x)
+
+instance ToHttpApiData EventTagType where
+    toQueryParam = \case
+        ETTClickThroughEventTag -> "CLICK_THROUGH_EVENT_TAG"
+        ETTImpressionImageEventTag -> "IMPRESSION_IMAGE_EVENT_TAG"
+        ETTImpressionJavascriptEventTag -> "IMPRESSION_JAVASCRIPT_EVENT_TAG"
+
+instance FromJSON EventTagType where
+    parseJSON = parseJSONText "EventTagType"
+
+instance ToJSON EventTagType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CreativesListSortOrder
+    = CAscending
+      -- ^ @ASCENDING@
+    | CDescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativesListSortOrder
+
+instance FromHttpApiData CreativesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right CAscending
+        "DESCENDING" -> Right CDescending
+        x -> Left ("Unable to parse CreativesListSortOrder from: " <> x)
+
+instance ToHttpApiData CreativesListSortOrder where
+    toQueryParam = \case
+        CAscending -> "ASCENDING"
+        CDescending -> "DESCENDING"
+
+instance FromJSON CreativesListSortOrder where
+    parseJSON = parseJSONText "CreativesListSortOrder"
+
+instance ToJSON CreativesListSortOrder where
+    toJSON = toJSONText
+
+-- | Select only inventory items with this type.
+data InventoryItemsListType
+    = PlanningPlacementTypeCredit
+      -- ^ @PLANNING_PLACEMENT_TYPE_CREDIT@
+    | PlanningPlacementTypeRegular
+      -- ^ @PLANNING_PLACEMENT_TYPE_REGULAR@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable InventoryItemsListType
+
+instance FromHttpApiData InventoryItemsListType where
+    parseQueryParam = \case
+        "PLANNING_PLACEMENT_TYPE_CREDIT" -> Right PlanningPlacementTypeCredit
+        "PLANNING_PLACEMENT_TYPE_REGULAR" -> Right PlanningPlacementTypeRegular
+        x -> Left ("Unable to parse InventoryItemsListType from: " <> x)
+
+instance ToHttpApiData InventoryItemsListType where
+    toQueryParam = \case
+        PlanningPlacementTypeCredit -> "PLANNING_PLACEMENT_TYPE_CREDIT"
+        PlanningPlacementTypeRegular -> "PLANNING_PLACEMENT_TYPE_REGULAR"
+
+instance FromJSON InventoryItemsListType where
+    parseJSON = parseJSONText "InventoryItemsListType"
+
+instance ToJSON InventoryItemsListType where
+    toJSON = toJSONText
+
+-- | Popup window position either centered or at specific coordinate.
+data PopupWindowPropertiesPositionType
+    = Center
+      -- ^ @CENTER@
+    | Coordinates
+      -- ^ @COORDINATES@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PopupWindowPropertiesPositionType
+
+instance FromHttpApiData PopupWindowPropertiesPositionType where
+    parseQueryParam = \case
+        "CENTER" -> Right Center
+        "COORDINATES" -> Right Coordinates
+        x -> Left ("Unable to parse PopupWindowPropertiesPositionType from: " <> x)
+
+instance ToHttpApiData PopupWindowPropertiesPositionType where
+    toQueryParam = \case
+        Center -> "CENTER"
+        Coordinates -> "COORDINATES"
+
+instance FromJSON PopupWindowPropertiesPositionType where
+    parseJSON = parseJSONText "PopupWindowPropertiesPositionType"
+
+instance ToJSON PopupWindowPropertiesPositionType where
+    toJSON = toJSONText
+
+-- | Directory site contact role.
+data DirectorySiteContactRole
+    = Admin
+      -- ^ @ADMIN@
+    | Edit
+      -- ^ @EDIT@
+    | View
+      -- ^ @VIEW@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DirectorySiteContactRole
+
+instance FromHttpApiData DirectorySiteContactRole where
+    parseQueryParam = \case
+        "ADMIN" -> Right Admin
+        "EDIT" -> Right Edit
+        "VIEW" -> Right View
+        x -> Left ("Unable to parse DirectorySiteContactRole from: " <> x)
+
+instance ToHttpApiData DirectorySiteContactRole where
+    toQueryParam = \case
+        Admin -> "ADMIN"
+        Edit -> "EDIT"
+        View -> "VIEW"
+
+instance FromJSON DirectorySiteContactRole where
+    parseJSON = parseJSONText "DirectorySiteContactRole"
+
+instance ToJSON DirectorySiteContactRole where
+    toJSON = toJSONText
+
+-- | Option specifying how keywords are embedded in ad tags. This setting can
+-- be used to specify whether keyword placeholders are inserted in
+-- placement tags for this site. Publishers can then add keywords to those
+-- placeholders.
+data TagSettingKeywordOption
+    = GenerateSeparateTagForEachKeyword
+      -- ^ @GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD@
+    | Ignore
+      -- ^ @IGNORE@
+    | PlaceholderWithListOfKeywords
+      -- ^ @PLACEHOLDER_WITH_LIST_OF_KEYWORDS@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable TagSettingKeywordOption
+
+instance FromHttpApiData TagSettingKeywordOption where
+    parseQueryParam = \case
+        "GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD" -> Right GenerateSeparateTagForEachKeyword
+        "IGNORE" -> Right Ignore
+        "PLACEHOLDER_WITH_LIST_OF_KEYWORDS" -> Right PlaceholderWithListOfKeywords
+        x -> Left ("Unable to parse TagSettingKeywordOption from: " <> x)
+
+instance ToHttpApiData TagSettingKeywordOption where
+    toQueryParam = \case
+        GenerateSeparateTagForEachKeyword -> "GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD"
+        Ignore -> "IGNORE"
+        PlaceholderWithListOfKeywords -> "PLACEHOLDER_WITH_LIST_OF_KEYWORDS"
+
+instance FromJSON TagSettingKeywordOption where
+    parseJSON = parseJSONText "TagSettingKeywordOption"
+
+instance ToJSON TagSettingKeywordOption where
+    toJSON = toJSONText
+
+-- | Authoring tool for HTML5 banner creatives. This is a read-only field.
+-- Applicable to the following creative types: HTML5_BANNER.
+data CreativeAuthoringTool
+    = Ninja
+      -- ^ @NINJA@
+    | Swiffy
+      -- ^ @SWIFFY@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAuthoringTool
+
+instance FromHttpApiData CreativeAuthoringTool where
+    parseQueryParam = \case
+        "NINJA" -> Right Ninja
+        "SWIFFY" -> Right Swiffy
+        x -> Left ("Unable to parse CreativeAuthoringTool from: " <> x)
+
+instance ToHttpApiData CreativeAuthoringTool where
+    toQueryParam = \case
+        Ninja -> "NINJA"
+        Swiffy -> "SWIFFY"
+
+instance FromJSON CreativeAuthoringTool where
+    parseJSON = parseJSONText "CreativeAuthoringTool"
+
+instance ToJSON CreativeAuthoringTool where
+    toJSON = toJSONText
+
+-- | Type of this contact.
+data OrderContactContactType
+    = PlanningOrderContactBuyerBillingContact
+      -- ^ @PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT@
+    | PlanningOrderContactBuyerContact
+      -- ^ @PLANNING_ORDER_CONTACT_BUYER_CONTACT@
+    | PlanningOrderContactSellerContact
+      -- ^ @PLANNING_ORDER_CONTACT_SELLER_CONTACT@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable OrderContactContactType
+
+instance FromHttpApiData OrderContactContactType where
+    parseQueryParam = \case
+        "PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT" -> Right PlanningOrderContactBuyerBillingContact
+        "PLANNING_ORDER_CONTACT_BUYER_CONTACT" -> Right PlanningOrderContactBuyerContact
+        "PLANNING_ORDER_CONTACT_SELLER_CONTACT" -> Right PlanningOrderContactSellerContact
+        x -> Left ("Unable to parse OrderContactContactType from: " <> x)
+
+instance ToHttpApiData OrderContactContactType where
+    toQueryParam = \case
+        PlanningOrderContactBuyerBillingContact -> "PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT"
+        PlanningOrderContactBuyerContact -> "PLANNING_ORDER_CONTACT_BUYER_CONTACT"
+        PlanningOrderContactSellerContact -> "PLANNING_ORDER_CONTACT_SELLER_CONTACT"
+
+instance FromJSON OrderContactContactType where
+    parseJSON = parseJSONText "OrderContactContactType"
+
+instance ToJSON OrderContactContactType where
+    toJSON = toJSONText
+
+-- | Type of asset to upload. This is a required field. IMAGE is solely used
+-- for IMAGE creatives. Other image assets should use HTML_IMAGE.
+data CreativeAssetIdType
+    = CAITFlash
+      -- ^ @FLASH@
+    | CAITHTML
+      -- ^ @HTML@
+    | CAITHTMLImage
+      -- ^ @HTML_IMAGE@
+    | CAITImage
+      -- ^ @IMAGE@
+    | CAITVideo
+      -- ^ @VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetIdType
+
+instance FromHttpApiData CreativeAssetIdType where
+    parseQueryParam = \case
+        "FLASH" -> Right CAITFlash
+        "HTML" -> Right CAITHTML
+        "HTML_IMAGE" -> Right CAITHTMLImage
+        "IMAGE" -> Right CAITImage
+        "VIDEO" -> Right CAITVideo
+        x -> Left ("Unable to parse CreativeAssetIdType from: " <> x)
+
+instance ToHttpApiData CreativeAssetIdType where
+    toQueryParam = \case
+        CAITFlash -> "FLASH"
+        CAITHTML -> "HTML"
+        CAITHTMLImage -> "HTML_IMAGE"
+        CAITImage -> "IMAGE"
+        CAITVideo -> "VIDEO"
+
+instance FromJSON CreativeAssetIdType where
+    parseJSON = parseJSONText "CreativeAssetIdType"
+
+instance ToJSON CreativeAssetIdType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data AccountUserProFilesListSortOrder
+    = AUPFLSOAscending
+      -- ^ @ASCENDING@
+    | AUPFLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountUserProFilesListSortOrder
+
+instance FromHttpApiData AccountUserProFilesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right AUPFLSOAscending
+        "DESCENDING" -> Right AUPFLSODescending
+        x -> Left ("Unable to parse AccountUserProFilesListSortOrder from: " <> x)
+
+instance ToHttpApiData AccountUserProFilesListSortOrder where
+    toQueryParam = \case
+        AUPFLSOAscending -> "ASCENDING"
+        AUPFLSODescending -> "DESCENDING"
+
+instance FromJSON AccountUserProFilesListSortOrder where
+    parseJSON = parseJSONText "AccountUserProFilesListSortOrder"
+
+instance ToJSON AccountUserProFilesListSortOrder where
+    toJSON = toJSONText
+
+-- | Product from which this remarketing list was originated.
+data RemarketingListListSource
+    = RLLSRemarketingListSourceAdx
+      -- ^ @REMARKETING_LIST_SOURCE_ADX@
+    | RLLSRemarketingListSourceDBm
+      -- ^ @REMARKETING_LIST_SOURCE_DBM@
+    | RLLSRemarketingListSourceDfa
+      -- ^ @REMARKETING_LIST_SOURCE_DFA@
+    | RLLSRemarketingListSourceDfp
+      -- ^ @REMARKETING_LIST_SOURCE_DFP@
+    | RLLSRemarketingListSourceDmp
+      -- ^ @REMARKETING_LIST_SOURCE_DMP@
+    | RLLSRemarketingListSourceGa
+      -- ^ @REMARKETING_LIST_SOURCE_GA@
+    | RLLSRemarketingListSourceGplus
+      -- ^ @REMARKETING_LIST_SOURCE_GPLUS@
+    | RLLSRemarketingListSourceOther
+      -- ^ @REMARKETING_LIST_SOURCE_OTHER@
+    | RLLSRemarketingListSourcePlayStore
+      -- ^ @REMARKETING_LIST_SOURCE_PLAY_STORE@
+    | RLLSRemarketingListSourceXfp
+      -- ^ @REMARKETING_LIST_SOURCE_XFP@
+    | RLLSRemarketingListSourceYouTube
+      -- ^ @REMARKETING_LIST_SOURCE_YOUTUBE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable RemarketingListListSource
+
+instance FromHttpApiData RemarketingListListSource where
+    parseQueryParam = \case
+        "REMARKETING_LIST_SOURCE_ADX" -> Right RLLSRemarketingListSourceAdx
+        "REMARKETING_LIST_SOURCE_DBM" -> Right RLLSRemarketingListSourceDBm
+        "REMARKETING_LIST_SOURCE_DFA" -> Right RLLSRemarketingListSourceDfa
+        "REMARKETING_LIST_SOURCE_DFP" -> Right RLLSRemarketingListSourceDfp
+        "REMARKETING_LIST_SOURCE_DMP" -> Right RLLSRemarketingListSourceDmp
+        "REMARKETING_LIST_SOURCE_GA" -> Right RLLSRemarketingListSourceGa
+        "REMARKETING_LIST_SOURCE_GPLUS" -> Right RLLSRemarketingListSourceGplus
+        "REMARKETING_LIST_SOURCE_OTHER" -> Right RLLSRemarketingListSourceOther
+        "REMARKETING_LIST_SOURCE_PLAY_STORE" -> Right RLLSRemarketingListSourcePlayStore
+        "REMARKETING_LIST_SOURCE_XFP" -> Right RLLSRemarketingListSourceXfp
+        "REMARKETING_LIST_SOURCE_YOUTUBE" -> Right RLLSRemarketingListSourceYouTube
+        x -> Left ("Unable to parse RemarketingListListSource from: " <> x)
+
+instance ToHttpApiData RemarketingListListSource where
+    toQueryParam = \case
+        RLLSRemarketingListSourceAdx -> "REMARKETING_LIST_SOURCE_ADX"
+        RLLSRemarketingListSourceDBm -> "REMARKETING_LIST_SOURCE_DBM"
+        RLLSRemarketingListSourceDfa -> "REMARKETING_LIST_SOURCE_DFA"
+        RLLSRemarketingListSourceDfp -> "REMARKETING_LIST_SOURCE_DFP"
+        RLLSRemarketingListSourceDmp -> "REMARKETING_LIST_SOURCE_DMP"
+        RLLSRemarketingListSourceGa -> "REMARKETING_LIST_SOURCE_GA"
+        RLLSRemarketingListSourceGplus -> "REMARKETING_LIST_SOURCE_GPLUS"
+        RLLSRemarketingListSourceOther -> "REMARKETING_LIST_SOURCE_OTHER"
+        RLLSRemarketingListSourcePlayStore -> "REMARKETING_LIST_SOURCE_PLAY_STORE"
+        RLLSRemarketingListSourceXfp -> "REMARKETING_LIST_SOURCE_XFP"
+        RLLSRemarketingListSourceYouTube -> "REMARKETING_LIST_SOURCE_YOUTUBE"
+
+instance FromJSON RemarketingListListSource where
+    parseJSON = parseJSONText "RemarketingListListSource"
+
+instance ToJSON RemarketingListListSource where
+    toJSON = toJSONText
+
+-- | User type of the user profile. This is a read-only field that can be
+-- left blank.
+data AccountUserProFileUserAccessType
+    = InternalAdministrator
+      -- ^ @INTERNAL_ADMINISTRATOR@
+    | NormalUser
+      -- ^ @NORMAL_USER@
+    | ReadOnlySuperUser
+      -- ^ @READ_ONLY_SUPER_USER@
+    | SuperUser
+      -- ^ @SUPER_USER@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountUserProFileUserAccessType
+
+instance FromHttpApiData AccountUserProFileUserAccessType where
+    parseQueryParam = \case
+        "INTERNAL_ADMINISTRATOR" -> Right InternalAdministrator
+        "NORMAL_USER" -> Right NormalUser
+        "READ_ONLY_SUPER_USER" -> Right ReadOnlySuperUser
+        "SUPER_USER" -> Right SuperUser
+        x -> Left ("Unable to parse AccountUserProFileUserAccessType from: " <> x)
+
+instance ToHttpApiData AccountUserProFileUserAccessType where
+    toQueryParam = \case
+        InternalAdministrator -> "INTERNAL_ADMINISTRATOR"
+        NormalUser -> "NORMAL_USER"
+        ReadOnlySuperUser -> "READ_ONLY_SUPER_USER"
+        SuperUser -> "SUPER_USER"
+
+instance FromJSON AccountUserProFileUserAccessType where
+    parseJSON = parseJSONText "AccountUserProFileUserAccessType"
+
+instance ToJSON AccountUserProFileUserAccessType where
+    toJSON = toJSONText
+
+-- | Initial wait time type before making the asset visible. Applicable to
+-- the following creative types: all RICH_MEDIA.
+data CreativeAssetStartTimeType
+    = AssetStartTimeTypeCustom
+      -- ^ @ASSET_START_TIME_TYPE_CUSTOM@
+    | AssetStartTimeTypeNone
+      -- ^ @ASSET_START_TIME_TYPE_NONE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetStartTimeType
+
+instance FromHttpApiData CreativeAssetStartTimeType where
+    parseQueryParam = \case
+        "ASSET_START_TIME_TYPE_CUSTOM" -> Right AssetStartTimeTypeCustom
+        "ASSET_START_TIME_TYPE_NONE" -> Right AssetStartTimeTypeNone
+        x -> Left ("Unable to parse CreativeAssetStartTimeType from: " <> x)
+
+instance ToHttpApiData CreativeAssetStartTimeType where
+    toQueryParam = \case
+        AssetStartTimeTypeCustom -> "ASSET_START_TIME_TYPE_CUSTOM"
+        AssetStartTimeTypeNone -> "ASSET_START_TIME_TYPE_NONE"
+
+instance FromJSON CreativeAssetStartTimeType where
+    parseJSON = parseJSONText "CreativeAssetStartTimeType"
+
+instance ToJSON CreativeAssetStartTimeType where
+    toJSON = toJSONText
+
+-- | Audience gender of this project.
+data ProjectAudienceGender
+    = PlanningAudienceGenderFemale
+      -- ^ @PLANNING_AUDIENCE_GENDER_FEMALE@
+    | PlanningAudienceGenderMale
+      -- ^ @PLANNING_AUDIENCE_GENDER_MALE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ProjectAudienceGender
+
+instance FromHttpApiData ProjectAudienceGender where
+    parseQueryParam = \case
+        "PLANNING_AUDIENCE_GENDER_FEMALE" -> Right PlanningAudienceGenderFemale
+        "PLANNING_AUDIENCE_GENDER_MALE" -> Right PlanningAudienceGenderMale
+        x -> Left ("Unable to parse ProjectAudienceGender from: " <> x)
+
+instance ToHttpApiData ProjectAudienceGender where
+    toQueryParam = \case
+        PlanningAudienceGenderFemale -> "PLANNING_AUDIENCE_GENDER_FEMALE"
+        PlanningAudienceGenderMale -> "PLANNING_AUDIENCE_GENDER_MALE"
+
+instance FromJSON ProjectAudienceGender where
+    parseJSON = parseJSONText "ProjectAudienceGender"
+
+instance ToJSON ProjectAudienceGender where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data PlacementStrategiesListSortField
+    = PSLSFID
+      -- ^ @ID@
+    | PSLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementStrategiesListSortField
+
+instance FromHttpApiData PlacementStrategiesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right PSLSFID
+        "NAME" -> Right PSLSFName
+        x -> Left ("Unable to parse PlacementStrategiesListSortField from: " <> x)
+
+instance ToHttpApiData PlacementStrategiesListSortField where
+    toQueryParam = \case
+        PSLSFID -> "ID"
+        PSLSFName -> "NAME"
+
+instance FromJSON PlacementStrategiesListSortField where
+    parseJSON = parseJSONText "PlacementStrategiesListSortField"
+
+instance ToJSON PlacementStrategiesListSortField where
+    toJSON = toJSONText
+
+-- | Data type for the variable. This is a required field.
+data UserDefinedVariableConfigurationDataType
+    = Number
+      -- ^ @NUMBER@
+    | String
+      -- ^ @STRING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable UserDefinedVariableConfigurationDataType
+
+instance FromHttpApiData UserDefinedVariableConfigurationDataType where
+    parseQueryParam = \case
+        "NUMBER" -> Right Number
+        "STRING" -> Right String
+        x -> Left ("Unable to parse UserDefinedVariableConfigurationDataType from: " <> x)
+
+instance ToHttpApiData UserDefinedVariableConfigurationDataType where
+    toQueryParam = \case
+        Number -> "NUMBER"
+        String -> "STRING"
+
+instance FromJSON UserDefinedVariableConfigurationDataType where
+    parseJSON = parseJSONText "UserDefinedVariableConfigurationDataType"
+
+instance ToJSON UserDefinedVariableConfigurationDataType where
+    toJSON = toJSONText
+
+-- | Code type used for cache busting in the generated tag.
+data FloodlightActivityCacheBustingType
+    = ActiveServerPage
+      -- ^ @ACTIVE_SERVER_PAGE@
+    | ColdFusion
+      -- ^ @COLD_FUSION@
+    | Javascript
+      -- ^ @JAVASCRIPT@
+    | Jsp
+      -- ^ @JSP@
+    | Php
+      -- ^ @PHP@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivityCacheBustingType
+
+instance FromHttpApiData FloodlightActivityCacheBustingType where
+    parseQueryParam = \case
+        "ACTIVE_SERVER_PAGE" -> Right ActiveServerPage
+        "COLD_FUSION" -> Right ColdFusion
+        "JAVASCRIPT" -> Right Javascript
+        "JSP" -> Right Jsp
+        "PHP" -> Right Php
+        x -> Left ("Unable to parse FloodlightActivityCacheBustingType from: " <> x)
+
+instance ToHttpApiData FloodlightActivityCacheBustingType where
+    toQueryParam = \case
+        ActiveServerPage -> "ACTIVE_SERVER_PAGE"
+        ColdFusion -> "COLD_FUSION"
+        Javascript -> "JAVASCRIPT"
+        Jsp -> "JSP"
+        Php -> "PHP"
+
+instance FromJSON FloodlightActivityCacheBustingType where
+    parseJSON = parseJSONText "FloodlightActivityCacheBustingType"
+
+instance ToJSON FloodlightActivityCacheBustingType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CreativeGroupsListSortOrder
+    = CGLSOAscending
+      -- ^ @ASCENDING@
+    | CGLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeGroupsListSortOrder
+
+instance FromHttpApiData CreativeGroupsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right CGLSOAscending
+        "DESCENDING" -> Right CGLSODescending
+        x -> Left ("Unable to parse CreativeGroupsListSortOrder from: " <> x)
+
+instance ToHttpApiData CreativeGroupsListSortOrder where
+    toQueryParam = \case
+        CGLSOAscending -> "ASCENDING"
+        CGLSODescending -> "DESCENDING"
+
+instance FromJSON CreativeGroupsListSortOrder where
+    parseJSON = parseJSONText "CreativeGroupsListSortOrder"
+
+instance ToJSON CreativeGroupsListSortOrder where
+    toJSON = toJSONText
+
+-- | Type of this order document
+data OrderDocumentType
+    = PlanningOrderTypeChangeOrder
+      -- ^ @PLANNING_ORDER_TYPE_CHANGE_ORDER@
+    | PlanningOrderTypeInsertionOrder
+      -- ^ @PLANNING_ORDER_TYPE_INSERTION_ORDER@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable OrderDocumentType
+
+instance FromHttpApiData OrderDocumentType where
+    parseQueryParam = \case
+        "PLANNING_ORDER_TYPE_CHANGE_ORDER" -> Right PlanningOrderTypeChangeOrder
+        "PLANNING_ORDER_TYPE_INSERTION_ORDER" -> Right PlanningOrderTypeInsertionOrder
+        x -> Left ("Unable to parse OrderDocumentType from: " <> x)
+
+instance ToHttpApiData OrderDocumentType where
+    toQueryParam = \case
+        PlanningOrderTypeChangeOrder -> "PLANNING_ORDER_TYPE_CHANGE_ORDER"
+        PlanningOrderTypeInsertionOrder -> "PLANNING_ORDER_TYPE_INSERTION_ORDER"
+
+instance FromJSON OrderDocumentType where
+    parseJSON = parseJSONText "OrderDocumentType"
+
+instance ToJSON OrderDocumentType where
+    toJSON = toJSONText
+
+-- | TagData tag format of this tag.
+data TagDataFormat
+    = PlacementTagClickCommands
+      -- ^ @PLACEMENT_TAG_CLICK_COMMANDS@
+    | PlacementTagIframeIlayer
+      -- ^ @PLACEMENT_TAG_IFRAME_ILAYER@
+    | PlacementTagIframeJavascript
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT@
+    | PlacementTagIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY@
+    | PlacementTagInstreamVideoPrefetch
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH@
+    | PlacementTagInstreamVideoPrefetchVast3
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3@
+    | PlacementTagInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERNAL_REDIRECT@
+    | PlacementTagInterstitialIframeJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT@
+    | PlacementTagInterstitialIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY@
+    | PlacementTagInterstitialInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT@
+    | PlacementTagInterstitialJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT@
+    | PlacementTagInterstitialJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY@
+    | PlacementTagJavascript
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT@
+    | PlacementTagJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT_LEGACY@
+    | PlacementTagStandard
+      -- ^ @PLACEMENT_TAG_STANDARD@
+    | PlacementTagTracking
+      -- ^ @PLACEMENT_TAG_TRACKING@
+    | PlacementTagTrackingIframe
+      -- ^ @PLACEMENT_TAG_TRACKING_IFRAME@
+    | PlacementTagTrackingJavascript
+      -- ^ @PLACEMENT_TAG_TRACKING_JAVASCRIPT@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable TagDataFormat
+
+instance FromHttpApiData TagDataFormat where
+    parseQueryParam = \case
+        "PLACEMENT_TAG_CLICK_COMMANDS" -> Right PlacementTagClickCommands
+        "PLACEMENT_TAG_IFRAME_ILAYER" -> Right PlacementTagIframeIlayer
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT" -> Right PlacementTagIframeJavascript
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY" -> Right PlacementTagIframeJavascriptLegacy
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH" -> Right PlacementTagInstreamVideoPrefetch
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3" -> Right PlacementTagInstreamVideoPrefetchVast3
+        "PLACEMENT_TAG_INTERNAL_REDIRECT" -> Right PlacementTagInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT" -> Right PlacementTagInterstitialIframeJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY" -> Right PlacementTagInterstitialIframeJavascriptLegacy
+        "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT" -> Right PlacementTagInterstitialInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT" -> Right PlacementTagInterstitialJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY" -> Right PlacementTagInterstitialJavascriptLegacy
+        "PLACEMENT_TAG_JAVASCRIPT" -> Right PlacementTagJavascript
+        "PLACEMENT_TAG_JAVASCRIPT_LEGACY" -> Right PlacementTagJavascriptLegacy
+        "PLACEMENT_TAG_STANDARD" -> Right PlacementTagStandard
+        "PLACEMENT_TAG_TRACKING" -> Right PlacementTagTracking
+        "PLACEMENT_TAG_TRACKING_IFRAME" -> Right PlacementTagTrackingIframe
+        "PLACEMENT_TAG_TRACKING_JAVASCRIPT" -> Right PlacementTagTrackingJavascript
+        x -> Left ("Unable to parse TagDataFormat from: " <> x)
+
+instance ToHttpApiData TagDataFormat where
+    toQueryParam = \case
+        PlacementTagClickCommands -> "PLACEMENT_TAG_CLICK_COMMANDS"
+        PlacementTagIframeIlayer -> "PLACEMENT_TAG_IFRAME_ILAYER"
+        PlacementTagIframeJavascript -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+        PlacementTagIframeJavascriptLegacy -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY"
+        PlacementTagInstreamVideoPrefetch -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        PlacementTagInstreamVideoPrefetchVast3 -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        PlacementTagInternalRedirect -> "PLACEMENT_TAG_INTERNAL_REDIRECT"
+        PlacementTagInterstitialIframeJavascript -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+        PlacementTagInterstitialIframeJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY"
+        PlacementTagInterstitialInternalRedirect -> "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+        PlacementTagInterstitialJavascript -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+        PlacementTagInterstitialJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY"
+        PlacementTagJavascript -> "PLACEMENT_TAG_JAVASCRIPT"
+        PlacementTagJavascriptLegacy -> "PLACEMENT_TAG_JAVASCRIPT_LEGACY"
+        PlacementTagStandard -> "PLACEMENT_TAG_STANDARD"
+        PlacementTagTracking -> "PLACEMENT_TAG_TRACKING"
+        PlacementTagTrackingIframe -> "PLACEMENT_TAG_TRACKING_IFRAME"
+        PlacementTagTrackingJavascript -> "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+
+instance FromJSON TagDataFormat where
+    parseJSON = parseJSONText "TagDataFormat"
+
+instance ToJSON TagDataFormat where
+    toJSON = toJSONText
+
+-- | Maximum number of active ads allowed for the account.
+data AccountActiveAdSummaryActiveAdsLimitTier
+    = ActiveAdsTier100K
+      -- ^ @ACTIVE_ADS_TIER_100K@
+    | ActiveAdsTier200K
+      -- ^ @ACTIVE_ADS_TIER_200K@
+    | ActiveAdsTier300K
+      -- ^ @ACTIVE_ADS_TIER_300K@
+    | ActiveAdsTier40K
+      -- ^ @ACTIVE_ADS_TIER_40K@
+    | ActiveAdsTier75K
+      -- ^ @ACTIVE_ADS_TIER_75K@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountActiveAdSummaryActiveAdsLimitTier
+
+instance FromHttpApiData AccountActiveAdSummaryActiveAdsLimitTier where
+    parseQueryParam = \case
+        "ACTIVE_ADS_TIER_100K" -> Right ActiveAdsTier100K
+        "ACTIVE_ADS_TIER_200K" -> Right ActiveAdsTier200K
+        "ACTIVE_ADS_TIER_300K" -> Right ActiveAdsTier300K
+        "ACTIVE_ADS_TIER_40K" -> Right ActiveAdsTier40K
+        "ACTIVE_ADS_TIER_75K" -> Right ActiveAdsTier75K
+        x -> Left ("Unable to parse AccountActiveAdSummaryActiveAdsLimitTier from: " <> x)
+
+instance ToHttpApiData AccountActiveAdSummaryActiveAdsLimitTier where
+    toQueryParam = \case
+        ActiveAdsTier100K -> "ACTIVE_ADS_TIER_100K"
+        ActiveAdsTier200K -> "ACTIVE_ADS_TIER_200K"
+        ActiveAdsTier300K -> "ACTIVE_ADS_TIER_300K"
+        ActiveAdsTier40K -> "ACTIVE_ADS_TIER_40K"
+        ActiveAdsTier75K -> "ACTIVE_ADS_TIER_75K"
+
+instance FromJSON AccountActiveAdSummaryActiveAdsLimitTier where
+    parseJSON = parseJSONText "AccountActiveAdSummaryActiveAdsLimitTier"
+
+instance ToJSON AccountActiveAdSummaryActiveAdsLimitTier where
+    toJSON = toJSONText
+
+-- | Rich media child asset type. This is a read-only field. Applicable to
+-- the following creative types: all VPAID.
+data CreativeAssetChildAssetType
+    = ChildAssetTypeData
+      -- ^ @CHILD_ASSET_TYPE_DATA@
+    | ChildAssetTypeFlash
+      -- ^ @CHILD_ASSET_TYPE_FLASH@
+    | ChildAssetTypeImage
+      -- ^ @CHILD_ASSET_TYPE_IMAGE@
+    | ChildAssetTypeVideo
+      -- ^ @CHILD_ASSET_TYPE_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetChildAssetType
+
+instance FromHttpApiData CreativeAssetChildAssetType where
+    parseQueryParam = \case
+        "CHILD_ASSET_TYPE_DATA" -> Right ChildAssetTypeData
+        "CHILD_ASSET_TYPE_FLASH" -> Right ChildAssetTypeFlash
+        "CHILD_ASSET_TYPE_IMAGE" -> Right ChildAssetTypeImage
+        "CHILD_ASSET_TYPE_VIDEO" -> Right ChildAssetTypeVideo
+        x -> Left ("Unable to parse CreativeAssetChildAssetType from: " <> x)
+
+instance ToHttpApiData CreativeAssetChildAssetType where
+    toQueryParam = \case
+        ChildAssetTypeData -> "CHILD_ASSET_TYPE_DATA"
+        ChildAssetTypeFlash -> "CHILD_ASSET_TYPE_FLASH"
+        ChildAssetTypeImage -> "CHILD_ASSET_TYPE_IMAGE"
+        ChildAssetTypeVideo -> "CHILD_ASSET_TYPE_VIDEO"
+
+instance FromJSON CreativeAssetChildAssetType where
+    parseJSON = parseJSONText "CreativeAssetChildAssetType"
+
+instance ToJSON CreativeAssetChildAssetType where
+    toJSON = toJSONText
+
+-- | Select only placement groups belonging with this group type. A package
+-- is a simple group of placements that acts as a single pricing point for
+-- a group of tags. A roadblock is a group of placements that not only acts
+-- as a single pricing point but also assumes that all the tags in it will
+-- be served at the same time. A roadblock requires one of its assigned
+-- placements to be marked as primary for reporting.
+data PlacementGroupsListPlacementGroupType
+    = PlacementPackage
+      -- ^ @PLACEMENT_PACKAGE@
+    | PlacementRoadblock
+      -- ^ @PLACEMENT_ROADBLOCK@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementGroupsListPlacementGroupType
+
+instance FromHttpApiData PlacementGroupsListPlacementGroupType where
+    parseQueryParam = \case
+        "PLACEMENT_PACKAGE" -> Right PlacementPackage
+        "PLACEMENT_ROADBLOCK" -> Right PlacementRoadblock
+        x -> Left ("Unable to parse PlacementGroupsListPlacementGroupType from: " <> x)
+
+instance ToHttpApiData PlacementGroupsListPlacementGroupType where
+    toQueryParam = \case
+        PlacementPackage -> "PLACEMENT_PACKAGE"
+        PlacementRoadblock -> "PLACEMENT_ROADBLOCK"
+
+instance FromJSON PlacementGroupsListPlacementGroupType where
+    parseJSON = parseJSONText "PlacementGroupsListPlacementGroupType"
+
+instance ToJSON PlacementGroupsListPlacementGroupType where
+    toJSON = toJSONText
+
+-- | Status of the filter. NONE means the user has access to none of the
+-- objects. ALL means the user has access to all objects. ASSIGNED means
+-- the user has access to the objects with IDs in the objectIds list.
+data ObjectFilterStatus
+    = OFSAll
+      -- ^ @ALL@
+    | OFSAssigned
+      -- ^ @ASSIGNED@
+    | OFSNone
+      -- ^ @NONE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ObjectFilterStatus
+
+instance FromHttpApiData ObjectFilterStatus where
+    parseQueryParam = \case
+        "ALL" -> Right OFSAll
+        "ASSIGNED" -> Right OFSAssigned
+        "NONE" -> Right OFSNone
+        x -> Left ("Unable to parse ObjectFilterStatus from: " <> x)
+
+instance ToHttpApiData ObjectFilterStatus where
+    toQueryParam = \case
+        OFSAll -> "ALL"
+        OFSAssigned -> "ASSIGNED"
+        OFSNone -> "NONE"
+
+instance FromJSON ObjectFilterStatus where
+    parseJSON = parseJSONText "ObjectFilterStatus"
+
+instance ToJSON ObjectFilterStatus where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CampaignCreativeAssociationsListSortOrder
+    = CCALSOAscending
+      -- ^ @ASCENDING@
+    | CCALSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CampaignCreativeAssociationsListSortOrder
+
+instance FromHttpApiData CampaignCreativeAssociationsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right CCALSOAscending
+        "DESCENDING" -> Right CCALSODescending
+        x -> Left ("Unable to parse CampaignCreativeAssociationsListSortOrder from: " <> x)
+
+instance ToHttpApiData CampaignCreativeAssociationsListSortOrder where
+    toQueryParam = \case
+        CCALSOAscending -> "ASCENDING"
+        CCALSODescending -> "DESCENDING"
+
+instance FromJSON CampaignCreativeAssociationsListSortOrder where
+    parseJSON = parseJSONText "CampaignCreativeAssociationsListSortOrder"
+
+instance ToJSON CampaignCreativeAssociationsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data FloodlightActivitiesListSortField
+    = FALSFID
+      -- ^ @ID@
+    | FALSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivitiesListSortField
+
+instance FromHttpApiData FloodlightActivitiesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right FALSFID
+        "NAME" -> Right FALSFName
+        x -> Left ("Unable to parse FloodlightActivitiesListSortField from: " <> x)
+
+instance ToHttpApiData FloodlightActivitiesListSortField where
+    toQueryParam = \case
+        FALSFID -> "ID"
+        FALSFName -> "NAME"
+
+instance FromJSON FloodlightActivitiesListSortField where
+    parseJSON = parseJSONText "FloodlightActivitiesListSortField"
+
+instance ToJSON FloodlightActivitiesListSortField where
+    toJSON = toJSONText
+
+-- | Select only creatives with these creative types.
+data CreativesListTypes
+    = CLTBrandSafeDefaultInstreamVideo
+      -- ^ @BRAND_SAFE_DEFAULT_INSTREAM_VIDEO@
+    | CLTCustomDisplay
+      -- ^ @CUSTOM_DISPLAY@
+    | CLTCustomDisplayInterstitial
+      -- ^ @CUSTOM_DISPLAY_INTERSTITIAL@
+    | CLTDisplay
+      -- ^ @DISPLAY@
+    | CLTDisplayImageGallery
+      -- ^ @DISPLAY_IMAGE_GALLERY@
+    | CLTDisplayRedirect
+      -- ^ @DISPLAY_REDIRECT@
+    | CLTFlashInpage
+      -- ^ @FLASH_INPAGE@
+    | CLTHTML5Banner
+      -- ^ @HTML5_BANNER@
+    | CLTImage
+      -- ^ @IMAGE@
+    | CLTInstreamVideo
+      -- ^ @INSTREAM_VIDEO@
+    | CLTInstreamVideoRedirect
+      -- ^ @INSTREAM_VIDEO_REDIRECT@
+    | CLTInternalRedirect
+      -- ^ @INTERNAL_REDIRECT@
+    | CLTInterstitialInternalRedirect
+      -- ^ @INTERSTITIAL_INTERNAL_REDIRECT@
+    | CLTRichMediaDisplayBanner
+      -- ^ @RICH_MEDIA_DISPLAY_BANNER@
+    | CLTRichMediaDisplayExpanding
+      -- ^ @RICH_MEDIA_DISPLAY_EXPANDING@
+    | CLTRichMediaDisplayInterstitial
+      -- ^ @RICH_MEDIA_DISPLAY_INTERSTITIAL@
+    | CLTRichMediaDisplayMultiFloatingInterstitial
+      -- ^ @RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL@
+    | CLTRichMediaImExpand
+      -- ^ @RICH_MEDIA_IM_EXPAND@
+    | CLTRichMediaInpageFloating
+      -- ^ @RICH_MEDIA_INPAGE_FLOATING@
+    | CLTRichMediaMobileInApp
+      -- ^ @RICH_MEDIA_MOBILE_IN_APP@
+    | CLTRichMediaPeelDown
+      -- ^ @RICH_MEDIA_PEEL_DOWN@
+    | CLTTrackingText
+      -- ^ @TRACKING_TEXT@
+    | CLTVpaidLinearVideo
+      -- ^ @VPAID_LINEAR_VIDEO@
+    | CLTVpaidNonLinearVideo
+      -- ^ @VPAID_NON_LINEAR_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativesListTypes
+
+instance FromHttpApiData CreativesListTypes where
+    parseQueryParam = \case
+        "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO" -> Right CLTBrandSafeDefaultInstreamVideo
+        "CUSTOM_DISPLAY" -> Right CLTCustomDisplay
+        "CUSTOM_DISPLAY_INTERSTITIAL" -> Right CLTCustomDisplayInterstitial
+        "DISPLAY" -> Right CLTDisplay
+        "DISPLAY_IMAGE_GALLERY" -> Right CLTDisplayImageGallery
+        "DISPLAY_REDIRECT" -> Right CLTDisplayRedirect
+        "FLASH_INPAGE" -> Right CLTFlashInpage
+        "HTML5_BANNER" -> Right CLTHTML5Banner
+        "IMAGE" -> Right CLTImage
+        "INSTREAM_VIDEO" -> Right CLTInstreamVideo
+        "INSTREAM_VIDEO_REDIRECT" -> Right CLTInstreamVideoRedirect
+        "INTERNAL_REDIRECT" -> Right CLTInternalRedirect
+        "INTERSTITIAL_INTERNAL_REDIRECT" -> Right CLTInterstitialInternalRedirect
+        "RICH_MEDIA_DISPLAY_BANNER" -> Right CLTRichMediaDisplayBanner
+        "RICH_MEDIA_DISPLAY_EXPANDING" -> Right CLTRichMediaDisplayExpanding
+        "RICH_MEDIA_DISPLAY_INTERSTITIAL" -> Right CLTRichMediaDisplayInterstitial
+        "RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL" -> Right CLTRichMediaDisplayMultiFloatingInterstitial
+        "RICH_MEDIA_IM_EXPAND" -> Right CLTRichMediaImExpand
+        "RICH_MEDIA_INPAGE_FLOATING" -> Right CLTRichMediaInpageFloating
+        "RICH_MEDIA_MOBILE_IN_APP" -> Right CLTRichMediaMobileInApp
+        "RICH_MEDIA_PEEL_DOWN" -> Right CLTRichMediaPeelDown
+        "TRACKING_TEXT" -> Right CLTTrackingText
+        "VPAID_LINEAR_VIDEO" -> Right CLTVpaidLinearVideo
+        "VPAID_NON_LINEAR_VIDEO" -> Right CLTVpaidNonLinearVideo
+        x -> Left ("Unable to parse CreativesListTypes from: " <> x)
+
+instance ToHttpApiData CreativesListTypes where
+    toQueryParam = \case
+        CLTBrandSafeDefaultInstreamVideo -> "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO"
+        CLTCustomDisplay -> "CUSTOM_DISPLAY"
+        CLTCustomDisplayInterstitial -> "CUSTOM_DISPLAY_INTERSTITIAL"
+        CLTDisplay -> "DISPLAY"
+        CLTDisplayImageGallery -> "DISPLAY_IMAGE_GALLERY"
+        CLTDisplayRedirect -> "DISPLAY_REDIRECT"
+        CLTFlashInpage -> "FLASH_INPAGE"
+        CLTHTML5Banner -> "HTML5_BANNER"
+        CLTImage -> "IMAGE"
+        CLTInstreamVideo -> "INSTREAM_VIDEO"
+        CLTInstreamVideoRedirect -> "INSTREAM_VIDEO_REDIRECT"
+        CLTInternalRedirect -> "INTERNAL_REDIRECT"
+        CLTInterstitialInternalRedirect -> "INTERSTITIAL_INTERNAL_REDIRECT"
+        CLTRichMediaDisplayBanner -> "RICH_MEDIA_DISPLAY_BANNER"
+        CLTRichMediaDisplayExpanding -> "RICH_MEDIA_DISPLAY_EXPANDING"
+        CLTRichMediaDisplayInterstitial -> "RICH_MEDIA_DISPLAY_INTERSTITIAL"
+        CLTRichMediaDisplayMultiFloatingInterstitial -> "RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL"
+        CLTRichMediaImExpand -> "RICH_MEDIA_IM_EXPAND"
+        CLTRichMediaInpageFloating -> "RICH_MEDIA_INPAGE_FLOATING"
+        CLTRichMediaMobileInApp -> "RICH_MEDIA_MOBILE_IN_APP"
+        CLTRichMediaPeelDown -> "RICH_MEDIA_PEEL_DOWN"
+        CLTTrackingText -> "TRACKING_TEXT"
+        CLTVpaidLinearVideo -> "VPAID_LINEAR_VIDEO"
+        CLTVpaidNonLinearVideo -> "VPAID_NON_LINEAR_VIDEO"
+
+instance FromJSON CreativesListTypes where
+    parseJSON = parseJSONText "CreativesListTypes"
+
+instance ToJSON CreativesListTypes where
+    toJSON = toJSONText
+
+data DirectorySiteInpageTagFormatsItem
+    = IframeJavascriptInpage
+      -- ^ @IFRAME_JAVASCRIPT_INPAGE@
+    | InternalRedirectInpage
+      -- ^ @INTERNAL_REDIRECT_INPAGE@
+    | JavascriptInpage
+      -- ^ @JAVASCRIPT_INPAGE@
+    | Standard
+      -- ^ @STANDARD@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DirectorySiteInpageTagFormatsItem
+
+instance FromHttpApiData DirectorySiteInpageTagFormatsItem where
+    parseQueryParam = \case
+        "IFRAME_JAVASCRIPT_INPAGE" -> Right IframeJavascriptInpage
+        "INTERNAL_REDIRECT_INPAGE" -> Right InternalRedirectInpage
+        "JAVASCRIPT_INPAGE" -> Right JavascriptInpage
+        "STANDARD" -> Right Standard
+        x -> Left ("Unable to parse DirectorySiteInpageTagFormatsItem from: " <> x)
+
+instance ToHttpApiData DirectorySiteInpageTagFormatsItem where
+    toQueryParam = \case
+        IframeJavascriptInpage -> "IFRAME_JAVASCRIPT_INPAGE"
+        InternalRedirectInpage -> "INTERNAL_REDIRECT_INPAGE"
+        JavascriptInpage -> "JAVASCRIPT_INPAGE"
+        Standard -> "STANDARD"
+
+instance FromJSON DirectorySiteInpageTagFormatsItem where
+    parseJSON = parseJSONText "DirectorySiteInpageTagFormatsItem"
+
+instance ToJSON DirectorySiteInpageTagFormatsItem where
+    toJSON = toJSONText
+
+-- | Window mode options for flash assets. Applicable to the following
+-- creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING,
+-- RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and
+-- RICH_MEDIA_INPAGE_FLOATING.
+data CreativeAssetWindowMode
+    = Opaque
+      -- ^ @OPAQUE@
+    | Transparent
+      -- ^ @TRANSPARENT@
+    | Window
+      -- ^ @WINDOW@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetWindowMode
+
+instance FromHttpApiData CreativeAssetWindowMode where
+    parseQueryParam = \case
+        "OPAQUE" -> Right Opaque
+        "TRANSPARENT" -> Right Transparent
+        "WINDOW" -> Right Window
+        x -> Left ("Unable to parse CreativeAssetWindowMode from: " <> x)
+
+instance ToHttpApiData CreativeAssetWindowMode where
+    toQueryParam = \case
+        Opaque -> "OPAQUE"
+        Transparent -> "TRANSPARENT"
+        Window -> "WINDOW"
+
+instance FromJSON CreativeAssetWindowMode where
+    parseJSON = parseJSONText "CreativeAssetWindowMode"
+
+instance ToJSON CreativeAssetWindowMode where
+    toJSON = toJSONText
+
+-- | Possible alignments for an asset. This is a read-only field. Applicable
+-- to the following creative types:
+-- RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
+data CreativeAssetAlignment
+    = AlignmentBottom
+      -- ^ @ALIGNMENT_BOTTOM@
+    | AlignmentLeft
+      -- ^ @ALIGNMENT_LEFT@
+    | AlignmentRight
+      -- ^ @ALIGNMENT_RIGHT@
+    | AlignmentTop
+      -- ^ @ALIGNMENT_TOP@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetAlignment
+
+instance FromHttpApiData CreativeAssetAlignment where
+    parseQueryParam = \case
+        "ALIGNMENT_BOTTOM" -> Right AlignmentBottom
+        "ALIGNMENT_LEFT" -> Right AlignmentLeft
+        "ALIGNMENT_RIGHT" -> Right AlignmentRight
+        "ALIGNMENT_TOP" -> Right AlignmentTop
+        x -> Left ("Unable to parse CreativeAssetAlignment from: " <> x)
+
+instance ToHttpApiData CreativeAssetAlignment where
+    toQueryParam = \case
+        AlignmentBottom -> "ALIGNMENT_BOTTOM"
+        AlignmentLeft -> "ALIGNMENT_LEFT"
+        AlignmentRight -> "ALIGNMENT_RIGHT"
+        AlignmentTop -> "ALIGNMENT_TOP"
+
+instance FromJSON CreativeAssetAlignment where
+    parseJSON = parseJSONText "CreativeAssetAlignment"
+
+instance ToJSON CreativeAssetAlignment where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data RemarketingListsListSortOrder
+    = RLLSOAscending
+      -- ^ @ASCENDING@
+    | RLLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable RemarketingListsListSortOrder
+
+instance FromHttpApiData RemarketingListsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right RLLSOAscending
+        "DESCENDING" -> Right RLLSODescending
+        x -> Left ("Unable to parse RemarketingListsListSortOrder from: " <> x)
+
+instance ToHttpApiData RemarketingListsListSortOrder where
+    toQueryParam = \case
+        RLLSOAscending -> "ASCENDING"
+        RLLSODescending -> "DESCENDING"
+
+instance FromJSON RemarketingListsListSortOrder where
+    parseJSON = parseJSONText "RemarketingListsListSortOrder"
+
+instance ToJSON RemarketingListsListSortOrder where
+    toJSON = toJSONText
+
+-- | Select only placement groups with these pricing types.
+data PlacementGroupsListPricingTypes
+    = PGLPTPricingTypeCpa
+      -- ^ @PRICING_TYPE_CPA@
+    | PGLPTPricingTypeCpc
+      -- ^ @PRICING_TYPE_CPC@
+    | PGLPTPricingTypeCpm
+      -- ^ @PRICING_TYPE_CPM@
+    | PGLPTPricingTypeFlatRateClicks
+      -- ^ @PRICING_TYPE_FLAT_RATE_CLICKS@
+    | PGLPTPricingTypeFlatRateImpressions
+      -- ^ @PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementGroupsListPricingTypes
+
+instance FromHttpApiData PlacementGroupsListPricingTypes where
+    parseQueryParam = \case
+        "PRICING_TYPE_CPA" -> Right PGLPTPricingTypeCpa
+        "PRICING_TYPE_CPC" -> Right PGLPTPricingTypeCpc
+        "PRICING_TYPE_CPM" -> Right PGLPTPricingTypeCpm
+        "PRICING_TYPE_FLAT_RATE_CLICKS" -> Right PGLPTPricingTypeFlatRateClicks
+        "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Right PGLPTPricingTypeFlatRateImpressions
+        x -> Left ("Unable to parse PlacementGroupsListPricingTypes from: " <> x)
+
+instance ToHttpApiData PlacementGroupsListPricingTypes where
+    toQueryParam = \case
+        PGLPTPricingTypeCpa -> "PRICING_TYPE_CPA"
+        PGLPTPricingTypeCpc -> "PRICING_TYPE_CPC"
+        PGLPTPricingTypeCpm -> "PRICING_TYPE_CPM"
+        PGLPTPricingTypeFlatRateClicks -> "PRICING_TYPE_FLAT_RATE_CLICKS"
+        PGLPTPricingTypeFlatRateImpressions -> "PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
+
+instance FromJSON PlacementGroupsListPricingTypes where
+    parseJSON = parseJSONText "PlacementGroupsListPricingTypes"
+
+instance ToJSON PlacementGroupsListPricingTypes where
+    toJSON = toJSONText
+
+-- | Type of the object of this dynamic targeting key. This is a required
+-- field.
+data DynamicTargetingKeysDeleteObjectType
+    = DTKDOTObjectAd
+      -- ^ @OBJECT_AD@
+    | DTKDOTObjectAdvertiser
+      -- ^ @OBJECT_ADVERTISER@
+    | DTKDOTObjectCreative
+      -- ^ @OBJECT_CREATIVE@
+    | DTKDOTObjectPlacement
+      -- ^ @OBJECT_PLACEMENT@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DynamicTargetingKeysDeleteObjectType
+
+instance FromHttpApiData DynamicTargetingKeysDeleteObjectType where
+    parseQueryParam = \case
+        "OBJECT_AD" -> Right DTKDOTObjectAd
+        "OBJECT_ADVERTISER" -> Right DTKDOTObjectAdvertiser
+        "OBJECT_CREATIVE" -> Right DTKDOTObjectCreative
+        "OBJECT_PLACEMENT" -> Right DTKDOTObjectPlacement
+        x -> Left ("Unable to parse DynamicTargetingKeysDeleteObjectType from: " <> x)
+
+instance ToHttpApiData DynamicTargetingKeysDeleteObjectType where
+    toQueryParam = \case
+        DTKDOTObjectAd -> "OBJECT_AD"
+        DTKDOTObjectAdvertiser -> "OBJECT_ADVERTISER"
+        DTKDOTObjectCreative -> "OBJECT_CREATIVE"
+        DTKDOTObjectPlacement -> "OBJECT_PLACEMENT"
+
+instance FromJSON DynamicTargetingKeysDeleteObjectType where
+    parseJSON = parseJSONText "DynamicTargetingKeysDeleteObjectType"
+
+instance ToJSON DynamicTargetingKeysDeleteObjectType where
+    toJSON = toJSONText
+
+-- | Maximum number of active ads allowed for this account.
+data AccountActiveAdsLimitTier
+    = AAALTActiveAdsTier100K
+      -- ^ @ACTIVE_ADS_TIER_100K@
+    | AAALTActiveAdsTier200K
+      -- ^ @ACTIVE_ADS_TIER_200K@
+    | AAALTActiveAdsTier300K
+      -- ^ @ACTIVE_ADS_TIER_300K@
+    | AAALTActiveAdsTier40K
+      -- ^ @ACTIVE_ADS_TIER_40K@
+    | AAALTActiveAdsTier75K
+      -- ^ @ACTIVE_ADS_TIER_75K@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountActiveAdsLimitTier
+
+instance FromHttpApiData AccountActiveAdsLimitTier where
+    parseQueryParam = \case
+        "ACTIVE_ADS_TIER_100K" -> Right AAALTActiveAdsTier100K
+        "ACTIVE_ADS_TIER_200K" -> Right AAALTActiveAdsTier200K
+        "ACTIVE_ADS_TIER_300K" -> Right AAALTActiveAdsTier300K
+        "ACTIVE_ADS_TIER_40K" -> Right AAALTActiveAdsTier40K
+        "ACTIVE_ADS_TIER_75K" -> Right AAALTActiveAdsTier75K
+        x -> Left ("Unable to parse AccountActiveAdsLimitTier from: " <> x)
+
+instance ToHttpApiData AccountActiveAdsLimitTier where
+    toQueryParam = \case
+        AAALTActiveAdsTier100K -> "ACTIVE_ADS_TIER_100K"
+        AAALTActiveAdsTier200K -> "ACTIVE_ADS_TIER_200K"
+        AAALTActiveAdsTier300K -> "ACTIVE_ADS_TIER_300K"
+        AAALTActiveAdsTier40K -> "ACTIVE_ADS_TIER_40K"
+        AAALTActiveAdsTier75K -> "ACTIVE_ADS_TIER_75K"
+
+instance FromJSON AccountActiveAdsLimitTier where
+    parseJSON = parseJSONText "AccountActiveAdsLimitTier"
+
+instance ToJSON AccountActiveAdsLimitTier where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data AccountsListSortOrder
+    = AAscending
+      -- ^ @ASCENDING@
+    | ADescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountsListSortOrder
+
+instance FromHttpApiData AccountsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right AAscending
+        "DESCENDING" -> Right ADescending
+        x -> Left ("Unable to parse AccountsListSortOrder from: " <> x)
+
+instance ToHttpApiData AccountsListSortOrder where
+    toQueryParam = \case
+        AAscending -> "ASCENDING"
+        ADescending -> "DESCENDING"
+
+instance FromJSON AccountsListSortOrder where
+    parseJSON = parseJSONText "AccountsListSortOrder"
+
+instance ToJSON AccountsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data SubAccountsListSortField
+    = SALSFID
+      -- ^ @ID@
+    | SALSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable SubAccountsListSortField
+
+instance FromHttpApiData SubAccountsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right SALSFID
+        "NAME" -> Right SALSFName
+        x -> Left ("Unable to parse SubAccountsListSortField from: " <> x)
+
+instance ToHttpApiData SubAccountsListSortField where
+    toQueryParam = \case
+        SALSFID -> "ID"
+        SALSFName -> "NAME"
+
+instance FromJSON SubAccountsListSortField where
+    parseJSON = parseJSONText "SubAccountsListSortField"
+
+instance ToJSON SubAccountsListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data AdsListSortField
+    = ALSFID
+      -- ^ @ID@
+    | ALSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdsListSortField
+
+instance FromHttpApiData AdsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right ALSFID
+        "NAME" -> Right ALSFName
+        x -> Left ("Unable to parse AdsListSortField from: " <> x)
+
+instance ToHttpApiData AdsListSortField where
+    toQueryParam = \case
+        ALSFID -> "ID"
+        ALSFName -> "NAME"
+
+instance FromJSON AdsListSortField where
+    parseJSON = parseJSONText "AdsListSortField"
+
+instance ToJSON AdsListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data ProjectsListSortField
+    = PID
+      -- ^ @ID@
+    | PName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ProjectsListSortField
+
+instance FromHttpApiData ProjectsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right PID
+        "NAME" -> Right PName
+        x -> Left ("Unable to parse ProjectsListSortField from: " <> x)
+
+instance ToHttpApiData ProjectsListSortField where
+    toQueryParam = \case
+        PID -> "ID"
+        PName -> "NAME"
+
+instance FromJSON ProjectsListSortField where
+    parseJSON = parseJSONText "ProjectsListSortField"
+
+instance ToJSON ProjectsListSortField where
+    toJSON = toJSONText
+
+-- | Select only ads with these types.
+data AdsListType
+    = AdServingClickTracker
+      -- ^ @AD_SERVING_CLICK_TRACKER@
+    | AdServingDefaultAd
+      -- ^ @AD_SERVING_DEFAULT_AD@
+    | AdServingStandardAd
+      -- ^ @AD_SERVING_STANDARD_AD@
+    | AdServingTracking
+      -- ^ @AD_SERVING_TRACKING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdsListType
+
+instance FromHttpApiData AdsListType where
+    parseQueryParam = \case
+        "AD_SERVING_CLICK_TRACKER" -> Right AdServingClickTracker
+        "AD_SERVING_DEFAULT_AD" -> Right AdServingDefaultAd
+        "AD_SERVING_STANDARD_AD" -> Right AdServingStandardAd
+        "AD_SERVING_TRACKING" -> Right AdServingTracking
+        x -> Left ("Unable to parse AdsListType from: " <> x)
+
+instance ToHttpApiData AdsListType where
+    toQueryParam = \case
+        AdServingClickTracker -> "AD_SERVING_CLICK_TRACKER"
+        AdServingDefaultAd -> "AD_SERVING_DEFAULT_AD"
+        AdServingStandardAd -> "AD_SERVING_STANDARD_AD"
+        AdServingTracking -> "AD_SERVING_TRACKING"
+
+instance FromJSON AdsListType where
+    parseJSON = parseJSONText "AdsListType"
+
+instance ToJSON AdsListType where
+    toJSON = toJSONText
+
+-- | Optimization model for this configuration.
+data CreativeOptimizationConfigurationOptimizationModel
+    = Click
+      -- ^ @CLICK@
+    | PostClick
+      -- ^ @POST_CLICK@
+    | PostClickAndImpression
+      -- ^ @POST_CLICK_AND_IMPRESSION@
+    | PostImpression
+      -- ^ @POST_IMPRESSION@
+    | VideoCompletion
+      -- ^ @VIDEO_COMPLETION@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeOptimizationConfigurationOptimizationModel
+
+instance FromHttpApiData CreativeOptimizationConfigurationOptimizationModel where
+    parseQueryParam = \case
+        "CLICK" -> Right Click
+        "POST_CLICK" -> Right PostClick
+        "POST_CLICK_AND_IMPRESSION" -> Right PostClickAndImpression
+        "POST_IMPRESSION" -> Right PostImpression
+        "VIDEO_COMPLETION" -> Right VideoCompletion
+        x -> Left ("Unable to parse CreativeOptimizationConfigurationOptimizationModel from: " <> x)
+
+instance ToHttpApiData CreativeOptimizationConfigurationOptimizationModel where
+    toQueryParam = \case
+        Click -> "CLICK"
+        PostClick -> "POST_CLICK"
+        PostClickAndImpression -> "POST_CLICK_AND_IMPRESSION"
+        PostImpression -> "POST_IMPRESSION"
+        VideoCompletion -> "VIDEO_COMPLETION"
+
+instance FromJSON CreativeOptimizationConfigurationOptimizationModel where
+    parseJSON = parseJSONText "CreativeOptimizationConfigurationOptimizationModel"
+
+instance ToJSON CreativeOptimizationConfigurationOptimizationModel where
+    toJSON = toJSONText
+
+-- | Administrative level required to enable this account permission.
+data AccountPermissionLevel
+    = Administrator
+      -- ^ @ADMINISTRATOR@
+    | User
+      -- ^ @USER@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountPermissionLevel
+
+instance FromHttpApiData AccountPermissionLevel where
+    parseQueryParam = \case
+        "ADMINISTRATOR" -> Right Administrator
+        "USER" -> Right User
+        x -> Left ("Unable to parse AccountPermissionLevel from: " <> x)
+
+instance ToHttpApiData AccountPermissionLevel where
+    toQueryParam = \case
+        Administrator -> "ADMINISTRATOR"
+        User -> "USER"
+
+instance FromJSON AccountPermissionLevel where
+    parseJSON = parseJSONText "AccountPermissionLevel"
+
+instance ToJSON AccountPermissionLevel where
+    toJSON = toJSONText
+
+-- | List population term type determines the applicable fields in this
+-- object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName,
+-- variableFriendlyName, operator, value, and negation are applicable. If
+-- set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are
+-- applicable. If set to REFERRER_TERM then operator, value, and negation
+-- are applicable.
+data ListPopulationTermType
+    = CustomVariableTerm
+      -- ^ @CUSTOM_VARIABLE_TERM@
+    | ListMembershipTerm
+      -- ^ @LIST_MEMBERSHIP_TERM@
+    | ReferrerTerm
+      -- ^ @REFERRER_TERM@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ListPopulationTermType
+
+instance FromHttpApiData ListPopulationTermType where
+    parseQueryParam = \case
+        "CUSTOM_VARIABLE_TERM" -> Right CustomVariableTerm
+        "LIST_MEMBERSHIP_TERM" -> Right ListMembershipTerm
+        "REFERRER_TERM" -> Right ReferrerTerm
+        x -> Left ("Unable to parse ListPopulationTermType from: " <> x)
+
+instance ToHttpApiData ListPopulationTermType where
+    toQueryParam = \case
+        CustomVariableTerm -> "CUSTOM_VARIABLE_TERM"
+        ListMembershipTerm -> "LIST_MEMBERSHIP_TERM"
+        ReferrerTerm -> "REFERRER_TERM"
+
+instance FromJSON ListPopulationTermType where
+    parseJSON = parseJSONText "ListPopulationTermType"
+
+instance ToJSON ListPopulationTermType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data AdvertiserGroupsListSortOrder
+    = AGLSOAscending
+      -- ^ @ASCENDING@
+    | AGLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdvertiserGroupsListSortOrder
+
+instance FromHttpApiData AdvertiserGroupsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right AGLSOAscending
+        "DESCENDING" -> Right AGLSODescending
+        x -> Left ("Unable to parse AdvertiserGroupsListSortOrder from: " <> x)
+
+instance ToHttpApiData AdvertiserGroupsListSortOrder where
+    toQueryParam = \case
+        AGLSOAscending -> "ASCENDING"
+        AGLSODescending -> "DESCENDING"
+
+instance FromJSON AdvertiserGroupsListSortOrder where
+    parseJSON = parseJSONText "AdvertiserGroupsListSortOrder"
+
+instance ToJSON AdvertiserGroupsListSortOrder where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data CreativeFieldValuesListSortOrder
+    = CFVLSOAscending
+      -- ^ @ASCENDING@
+    | CFVLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeFieldValuesListSortOrder
+
+instance FromHttpApiData CreativeFieldValuesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right CFVLSOAscending
+        "DESCENDING" -> Right CFVLSODescending
+        x -> Left ("Unable to parse CreativeFieldValuesListSortOrder from: " <> x)
+
+instance ToHttpApiData CreativeFieldValuesListSortOrder where
+    toQueryParam = \case
+        CFVLSOAscending -> "ASCENDING"
+        CFVLSODescending -> "DESCENDING"
+
+instance FromJSON CreativeFieldValuesListSortOrder where
+    parseJSON = parseJSONText "CreativeFieldValuesListSortOrder"
+
+instance ToJSON CreativeFieldValuesListSortOrder where
+    toJSON = toJSONText
+
+-- | An optional sort order for the dimension column.
+data SortedDimensionSortOrder
+    = SDSOAscending
+      -- ^ @ASCENDING@
+    | SDSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable SortedDimensionSortOrder
+
+instance FromHttpApiData SortedDimensionSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right SDSOAscending
+        "DESCENDING" -> Right SDSODescending
+        x -> Left ("Unable to parse SortedDimensionSortOrder from: " <> x)
+
+instance ToHttpApiData SortedDimensionSortOrder where
+    toQueryParam = \case
+        SDSOAscending -> "ASCENDING"
+        SDSODescending -> "DESCENDING"
+
+instance FromJSON SortedDimensionSortOrder where
+    parseJSON = parseJSONText "SortedDimensionSortOrder"
+
+instance ToJSON SortedDimensionSortOrder where
+    toJSON = toJSONText
+
+-- | The field by which to sort the list.
+data FilesListSortField
+    = FLSFID
+      -- ^ @ID@
+      -- Sort by file ID.
+    | FLSFLastModifiedTime
+      -- ^ @LAST_MODIFIED_TIME@
+      -- Sort by \'lastmodifiedAt\' field.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FilesListSortField
+
+instance FromHttpApiData FilesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right FLSFID
+        "LAST_MODIFIED_TIME" -> Right FLSFLastModifiedTime
+        x -> Left ("Unable to parse FilesListSortField from: " <> x)
+
+instance ToHttpApiData FilesListSortField where
+    toQueryParam = \case
+        FLSFID -> "ID"
+        FLSFLastModifiedTime -> "LAST_MODIFIED_TIME"
+
+instance FromJSON FilesListSortField where
+    parseJSON = parseJSONText "FilesListSortField"
+
+instance ToJSON FilesListSortField where
+    toJSON = toJSONText
+
+data DirectorySiteInterstitialTagFormatsItem
+    = IframeJavascriptInterstitial
+      -- ^ @IFRAME_JAVASCRIPT_INTERSTITIAL@
+    | InternalRedirectInterstitial
+      -- ^ @INTERNAL_REDIRECT_INTERSTITIAL@
+    | JavascriptInterstitial
+      -- ^ @JAVASCRIPT_INTERSTITIAL@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DirectorySiteInterstitialTagFormatsItem
+
+instance FromHttpApiData DirectorySiteInterstitialTagFormatsItem where
+    parseQueryParam = \case
+        "IFRAME_JAVASCRIPT_INTERSTITIAL" -> Right IframeJavascriptInterstitial
+        "INTERNAL_REDIRECT_INTERSTITIAL" -> Right InternalRedirectInterstitial
+        "JAVASCRIPT_INTERSTITIAL" -> Right JavascriptInterstitial
+        x -> Left ("Unable to parse DirectorySiteInterstitialTagFormatsItem from: " <> x)
+
+instance ToHttpApiData DirectorySiteInterstitialTagFormatsItem where
+    toQueryParam = \case
+        IframeJavascriptInterstitial -> "IFRAME_JAVASCRIPT_INTERSTITIAL"
+        InternalRedirectInterstitial -> "INTERNAL_REDIRECT_INTERSTITIAL"
+        JavascriptInterstitial -> "JAVASCRIPT_INTERSTITIAL"
+
+instance FromJSON DirectorySiteInterstitialTagFormatsItem where
+    parseJSON = parseJSONText "DirectorySiteInterstitialTagFormatsItem"
+
+instance ToJSON DirectorySiteInterstitialTagFormatsItem where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data EventTagsListSortField
+    = ETLSFID
+      -- ^ @ID@
+    | ETLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable EventTagsListSortField
+
+instance FromHttpApiData EventTagsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right ETLSFID
+        "NAME" -> Right ETLSFName
+        x -> Left ("Unable to parse EventTagsListSortField from: " <> x)
+
+instance ToHttpApiData EventTagsListSortField where
+    toQueryParam = \case
+        ETLSFID -> "ID"
+        ETLSFName -> "NAME"
+
+instance FromJSON EventTagsListSortField where
+    parseJSON = parseJSONText "EventTagsListSortField"
+
+instance ToJSON EventTagsListSortField where
+    toJSON = toJSONText
+
+-- | Type of inventory item.
+data InventoryItemType
+    = IITPlanningPlacementTypeCredit
+      -- ^ @PLANNING_PLACEMENT_TYPE_CREDIT@
+    | IITPlanningPlacementTypeRegular
+      -- ^ @PLANNING_PLACEMENT_TYPE_REGULAR@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable InventoryItemType
+
+instance FromHttpApiData InventoryItemType where
+    parseQueryParam = \case
+        "PLANNING_PLACEMENT_TYPE_CREDIT" -> Right IITPlanningPlacementTypeCredit
+        "PLANNING_PLACEMENT_TYPE_REGULAR" -> Right IITPlanningPlacementTypeRegular
+        x -> Left ("Unable to parse InventoryItemType from: " <> x)
+
+instance ToHttpApiData InventoryItemType where
+    toQueryParam = \case
+        IITPlanningPlacementTypeCredit -> "PLANNING_PLACEMENT_TYPE_CREDIT"
+        IITPlanningPlacementTypeRegular -> "PLANNING_PLACEMENT_TYPE_REGULAR"
+
+instance FromJSON InventoryItemType where
+    parseJSON = parseJSONText "InventoryItemType"
+
+instance ToJSON InventoryItemType where
+    toJSON = toJSONText
+
+-- | Offset top unit for an asset. This is a read-only field if the asset
+-- displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following
+-- creative types: all RICH_MEDIA.
+data CreativeAssetPositionTopUnit
+    = CAPTUOffSetUnitPercent
+      -- ^ @OFFSET_UNIT_PERCENT@
+    | CAPTUOffSetUnitPixel
+      -- ^ @OFFSET_UNIT_PIXEL@
+    | CAPTUOffSetUnitPixelFromCenter
+      -- ^ @OFFSET_UNIT_PIXEL_FROM_CENTER@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetPositionTopUnit
+
+instance FromHttpApiData CreativeAssetPositionTopUnit where
+    parseQueryParam = \case
+        "OFFSET_UNIT_PERCENT" -> Right CAPTUOffSetUnitPercent
+        "OFFSET_UNIT_PIXEL" -> Right CAPTUOffSetUnitPixel
+        "OFFSET_UNIT_PIXEL_FROM_CENTER" -> Right CAPTUOffSetUnitPixelFromCenter
+        x -> Left ("Unable to parse CreativeAssetPositionTopUnit from: " <> x)
+
+instance ToHttpApiData CreativeAssetPositionTopUnit where
+    toQueryParam = \case
+        CAPTUOffSetUnitPercent -> "OFFSET_UNIT_PERCENT"
+        CAPTUOffSetUnitPixel -> "OFFSET_UNIT_PIXEL"
+        CAPTUOffSetUnitPixelFromCenter -> "OFFSET_UNIT_PIXEL_FROM_CENTER"
+
+instance FromJSON CreativeAssetPositionTopUnit where
+    parseJSON = parseJSONText "CreativeAssetPositionTopUnit"
+
+instance ToJSON CreativeAssetPositionTopUnit where
+    toJSON = toJSONText
+
+-- | Type of the associated floodlight activity group. This is a read-only
+-- field.
+data FloodlightActivityFloodlightActivityGroupType
+    = FAFAGTCounter
+      -- ^ @COUNTER@
+    | FAFAGTSale
+      -- ^ @SALE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivityFloodlightActivityGroupType
+
+instance FromHttpApiData FloodlightActivityFloodlightActivityGroupType where
+    parseQueryParam = \case
+        "COUNTER" -> Right FAFAGTCounter
+        "SALE" -> Right FAFAGTSale
+        x -> Left ("Unable to parse FloodlightActivityFloodlightActivityGroupType from: " <> x)
+
+instance ToHttpApiData FloodlightActivityFloodlightActivityGroupType where
+    toQueryParam = \case
+        FAFAGTCounter -> "COUNTER"
+        FAFAGTSale -> "SALE"
+
+instance FromJSON FloodlightActivityFloodlightActivityGroupType where
+    parseJSON = parseJSONText "FloodlightActivityFloodlightActivityGroupType"
+
+instance ToJSON FloodlightActivityFloodlightActivityGroupType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data DirectorySiteContactsListSortOrder
+    = DSCLSOAscending
+      -- ^ @ASCENDING@
+    | DSCLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DirectorySiteContactsListSortOrder
+
+instance FromHttpApiData DirectorySiteContactsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right DSCLSOAscending
+        "DESCENDING" -> Right DSCLSODescending
+        x -> Left ("Unable to parse DirectorySiteContactsListSortOrder from: " <> x)
+
+instance ToHttpApiData DirectorySiteContactsListSortOrder where
+    toQueryParam = \case
+        DSCLSOAscending -> "ASCENDING"
+        DSCLSODescending -> "DESCENDING"
+
+instance FromJSON DirectorySiteContactsListSortOrder where
+    parseJSON = parseJSONText "DirectorySiteContactsListSortOrder"
+
+instance ToJSON DirectorySiteContactsListSortOrder where
+    toJSON = toJSONText
+
+-- | Group type of this inventory item if it represents a placement group. Is
+-- null otherwise. There are two type of placement groups:
+-- PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory
+-- items that acts as a single pricing point for a group of tags.
+-- PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items
+-- that not only acts as a single pricing point, but also assumes that all
+-- the tags in it will be served at the same time. A roadblock requires one
+-- of its assigned inventory items to be marked as primary.
+data PricingGroupType
+    = PlanningPlacementGroupTypePackage
+      -- ^ @PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE@
+    | PlanningPlacementGroupTypeRoadblock
+      -- ^ @PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PricingGroupType
+
+instance FromHttpApiData PricingGroupType where
+    parseQueryParam = \case
+        "PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE" -> Right PlanningPlacementGroupTypePackage
+        "PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK" -> Right PlanningPlacementGroupTypeRoadblock
+        x -> Left ("Unable to parse PricingGroupType from: " <> x)
+
+instance ToHttpApiData PricingGroupType where
+    toQueryParam = \case
+        PlanningPlacementGroupTypePackage -> "PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE"
+        PlanningPlacementGroupTypeRoadblock -> "PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK"
+
+instance FromJSON PricingGroupType where
+    parseJSON = parseJSONText "PricingGroupType"
+
+instance ToJSON PricingGroupType where
+    toJSON = toJSONText
+
+-- | Select only ads with the specified creativeType.
+data AdsListCreativeType
+    = ALCTBrandSafeDefaultInstreamVideo
+      -- ^ @BRAND_SAFE_DEFAULT_INSTREAM_VIDEO@
+    | ALCTCustomDisplay
+      -- ^ @CUSTOM_DISPLAY@
+    | ALCTCustomDisplayInterstitial
+      -- ^ @CUSTOM_DISPLAY_INTERSTITIAL@
+    | ALCTDisplay
+      -- ^ @DISPLAY@
+    | ALCTDisplayImageGallery
+      -- ^ @DISPLAY_IMAGE_GALLERY@
+    | ALCTDisplayRedirect
+      -- ^ @DISPLAY_REDIRECT@
+    | ALCTFlashInpage
+      -- ^ @FLASH_INPAGE@
+    | ALCTHTML5Banner
+      -- ^ @HTML5_BANNER@
+    | ALCTImage
+      -- ^ @IMAGE@
+    | ALCTInstreamVideo
+      -- ^ @INSTREAM_VIDEO@
+    | ALCTInstreamVideoRedirect
+      -- ^ @INSTREAM_VIDEO_REDIRECT@
+    | ALCTInternalRedirect
+      -- ^ @INTERNAL_REDIRECT@
+    | ALCTInterstitialInternalRedirect
+      -- ^ @INTERSTITIAL_INTERNAL_REDIRECT@
+    | ALCTRichMediaDisplayBanner
+      -- ^ @RICH_MEDIA_DISPLAY_BANNER@
+    | ALCTRichMediaDisplayExpanding
+      -- ^ @RICH_MEDIA_DISPLAY_EXPANDING@
+    | ALCTRichMediaDisplayInterstitial
+      -- ^ @RICH_MEDIA_DISPLAY_INTERSTITIAL@
+    | ALCTRichMediaDisplayMultiFloatingInterstitial
+      -- ^ @RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL@
+    | ALCTRichMediaImExpand
+      -- ^ @RICH_MEDIA_IM_EXPAND@
+    | ALCTRichMediaInpageFloating
+      -- ^ @RICH_MEDIA_INPAGE_FLOATING@
+    | ALCTRichMediaMobileInApp
+      -- ^ @RICH_MEDIA_MOBILE_IN_APP@
+    | ALCTRichMediaPeelDown
+      -- ^ @RICH_MEDIA_PEEL_DOWN@
+    | ALCTTrackingText
+      -- ^ @TRACKING_TEXT@
+    | ALCTVpaidLinearVideo
+      -- ^ @VPAID_LINEAR_VIDEO@
+    | ALCTVpaidNonLinearVideo
+      -- ^ @VPAID_NON_LINEAR_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdsListCreativeType
+
+instance FromHttpApiData AdsListCreativeType where
+    parseQueryParam = \case
+        "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO" -> Right ALCTBrandSafeDefaultInstreamVideo
+        "CUSTOM_DISPLAY" -> Right ALCTCustomDisplay
+        "CUSTOM_DISPLAY_INTERSTITIAL" -> Right ALCTCustomDisplayInterstitial
+        "DISPLAY" -> Right ALCTDisplay
+        "DISPLAY_IMAGE_GALLERY" -> Right ALCTDisplayImageGallery
+        "DISPLAY_REDIRECT" -> Right ALCTDisplayRedirect
+        "FLASH_INPAGE" -> Right ALCTFlashInpage
+        "HTML5_BANNER" -> Right ALCTHTML5Banner
+        "IMAGE" -> Right ALCTImage
+        "INSTREAM_VIDEO" -> Right ALCTInstreamVideo
+        "INSTREAM_VIDEO_REDIRECT" -> Right ALCTInstreamVideoRedirect
+        "INTERNAL_REDIRECT" -> Right ALCTInternalRedirect
+        "INTERSTITIAL_INTERNAL_REDIRECT" -> Right ALCTInterstitialInternalRedirect
+        "RICH_MEDIA_DISPLAY_BANNER" -> Right ALCTRichMediaDisplayBanner
+        "RICH_MEDIA_DISPLAY_EXPANDING" -> Right ALCTRichMediaDisplayExpanding
+        "RICH_MEDIA_DISPLAY_INTERSTITIAL" -> Right ALCTRichMediaDisplayInterstitial
+        "RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL" -> Right ALCTRichMediaDisplayMultiFloatingInterstitial
+        "RICH_MEDIA_IM_EXPAND" -> Right ALCTRichMediaImExpand
+        "RICH_MEDIA_INPAGE_FLOATING" -> Right ALCTRichMediaInpageFloating
+        "RICH_MEDIA_MOBILE_IN_APP" -> Right ALCTRichMediaMobileInApp
+        "RICH_MEDIA_PEEL_DOWN" -> Right ALCTRichMediaPeelDown
+        "TRACKING_TEXT" -> Right ALCTTrackingText
+        "VPAID_LINEAR_VIDEO" -> Right ALCTVpaidLinearVideo
+        "VPAID_NON_LINEAR_VIDEO" -> Right ALCTVpaidNonLinearVideo
+        x -> Left ("Unable to parse AdsListCreativeType from: " <> x)
+
+instance ToHttpApiData AdsListCreativeType where
+    toQueryParam = \case
+        ALCTBrandSafeDefaultInstreamVideo -> "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO"
+        ALCTCustomDisplay -> "CUSTOM_DISPLAY"
+        ALCTCustomDisplayInterstitial -> "CUSTOM_DISPLAY_INTERSTITIAL"
+        ALCTDisplay -> "DISPLAY"
+        ALCTDisplayImageGallery -> "DISPLAY_IMAGE_GALLERY"
+        ALCTDisplayRedirect -> "DISPLAY_REDIRECT"
+        ALCTFlashInpage -> "FLASH_INPAGE"
+        ALCTHTML5Banner -> "HTML5_BANNER"
+        ALCTImage -> "IMAGE"
+        ALCTInstreamVideo -> "INSTREAM_VIDEO"
+        ALCTInstreamVideoRedirect -> "INSTREAM_VIDEO_REDIRECT"
+        ALCTInternalRedirect -> "INTERNAL_REDIRECT"
+        ALCTInterstitialInternalRedirect -> "INTERSTITIAL_INTERNAL_REDIRECT"
+        ALCTRichMediaDisplayBanner -> "RICH_MEDIA_DISPLAY_BANNER"
+        ALCTRichMediaDisplayExpanding -> "RICH_MEDIA_DISPLAY_EXPANDING"
+        ALCTRichMediaDisplayInterstitial -> "RICH_MEDIA_DISPLAY_INTERSTITIAL"
+        ALCTRichMediaDisplayMultiFloatingInterstitial -> "RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL"
+        ALCTRichMediaImExpand -> "RICH_MEDIA_IM_EXPAND"
+        ALCTRichMediaInpageFloating -> "RICH_MEDIA_INPAGE_FLOATING"
+        ALCTRichMediaMobileInApp -> "RICH_MEDIA_MOBILE_IN_APP"
+        ALCTRichMediaPeelDown -> "RICH_MEDIA_PEEL_DOWN"
+        ALCTTrackingText -> "TRACKING_TEXT"
+        ALCTVpaidLinearVideo -> "VPAID_LINEAR_VIDEO"
+        ALCTVpaidNonLinearVideo -> "VPAID_NON_LINEAR_VIDEO"
+
+instance FromJSON AdsListCreativeType where
+    parseJSON = parseJSONText "AdsListCreativeType"
+
+instance ToJSON AdsListCreativeType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data FloodlightActivityGroupsListSortOrder
+    = FAGLSOAscending
+      -- ^ @ASCENDING@
+    | FAGLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivityGroupsListSortOrder
+
+instance FromHttpApiData FloodlightActivityGroupsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right FAGLSOAscending
+        "DESCENDING" -> Right FAGLSODescending
+        x -> Left ("Unable to parse FloodlightActivityGroupsListSortOrder from: " <> x)
+
+instance ToHttpApiData FloodlightActivityGroupsListSortOrder where
+    toQueryParam = \case
+        FAGLSOAscending -> "ASCENDING"
+        FAGLSODescending -> "DESCENDING"
+
+instance FromJSON FloodlightActivityGroupsListSortOrder where
+    parseJSON = parseJSONText "FloodlightActivityGroupsListSortOrder"
+
+instance ToJSON FloodlightActivityGroupsListSortOrder where
+    toJSON = toJSONText
+
+-- | Type of creative rotation. Can be used to specify whether to use
+-- sequential or random rotation.
+data CreativeRotationType
+    = CreativeRotationTypeRandom
+      -- ^ @CREATIVE_ROTATION_TYPE_RANDOM@
+    | CreativeRotationTypeSequential
+      -- ^ @CREATIVE_ROTATION_TYPE_SEQUENTIAL@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeRotationType
+
+instance FromHttpApiData CreativeRotationType where
+    parseQueryParam = \case
+        "CREATIVE_ROTATION_TYPE_RANDOM" -> Right CreativeRotationTypeRandom
+        "CREATIVE_ROTATION_TYPE_SEQUENTIAL" -> Right CreativeRotationTypeSequential
+        x -> Left ("Unable to parse CreativeRotationType from: " <> x)
+
+instance ToHttpApiData CreativeRotationType where
+    toQueryParam = \case
+        CreativeRotationTypeRandom -> "CREATIVE_ROTATION_TYPE_RANDOM"
+        CreativeRotationTypeSequential -> "CREATIVE_ROTATION_TYPE_SEQUENTIAL"
+
+instance FromJSON CreativeRotationType where
+    parseJSON = parseJSONText "CreativeRotationType"
+
+instance ToJSON CreativeRotationType where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data OrdersListSortField
+    = OLSFID
+      -- ^ @ID@
+    | OLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable OrdersListSortField
+
+instance FromHttpApiData OrdersListSortField where
+    parseQueryParam = \case
+        "ID" -> Right OLSFID
+        "NAME" -> Right OLSFName
+        x -> Left ("Unable to parse OrdersListSortField from: " <> x)
+
+instance ToHttpApiData OrdersListSortField where
+    toQueryParam = \case
+        OLSFID -> "ID"
+        OLSFName -> "NAME"
+
+instance FromJSON OrdersListSortField where
+    parseJSON = parseJSONText "OrdersListSortField"
+
+instance ToJSON OrdersListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data PlacementGroupsListSortField
+    = PGLSFID
+      -- ^ @ID@
+    | PGLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementGroupsListSortField
+
+instance FromHttpApiData PlacementGroupsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right PGLSFID
+        "NAME" -> Right PGLSFName
+        x -> Left ("Unable to parse PlacementGroupsListSortField from: " <> x)
+
+instance ToHttpApiData PlacementGroupsListSortField where
+    toQueryParam = \case
+        PGLSFID -> "ID"
+        PGLSFName -> "NAME"
+
+instance FromJSON PlacementGroupsListSortField where
+    parseJSON = parseJSONText "PlacementGroupsListSortField"
+
+instance ToJSON PlacementGroupsListSortField where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data DirectorySitesListSortOrder
+    = DSLSOAscending
+      -- ^ @ASCENDING@
+    | DSLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DirectorySitesListSortOrder
+
+instance FromHttpApiData DirectorySitesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right DSLSOAscending
+        "DESCENDING" -> Right DSLSODescending
+        x -> Left ("Unable to parse DirectorySitesListSortOrder from: " <> x)
+
+instance ToHttpApiData DirectorySitesListSortOrder where
+    toQueryParam = \case
+        DSLSOAscending -> "ASCENDING"
+        DSLSODescending -> "DESCENDING"
+
+instance FromJSON DirectorySitesListSortOrder where
+    parseJSON = parseJSONText "DirectorySitesListSortOrder"
+
+instance ToJSON DirectorySitesListSortOrder where
+    toJSON = toJSONText
+
+data CreativeAssetDetectedFeaturesItem
+    = CADFIApplicationCache
+      -- ^ @APPLICATION_CACHE@
+    | CADFIAudio
+      -- ^ @AUDIO@
+    | CADFICanvas
+      -- ^ @CANVAS@
+    | CADFICanvasText
+      -- ^ @CANVAS_TEXT@
+    | CADFICssAnimations
+      -- ^ @CSS_ANIMATIONS@
+    | CADFICssBackgRoundSize
+      -- ^ @CSS_BACKGROUND_SIZE@
+    | CADFICssBOrderImage
+      -- ^ @CSS_BORDER_IMAGE@
+    | CADFICssBOrderRadius
+      -- ^ @CSS_BORDER_RADIUS@
+    | CADFICssBoxShadow
+      -- ^ @CSS_BOX_SHADOW@
+    | CADFICssColumns
+      -- ^ @CSS_COLUMNS@
+    | CADFICssFlexBox
+      -- ^ @CSS_FLEX_BOX@
+    | CADFICssFontFace
+      -- ^ @CSS_FONT_FACE@
+    | CADFICssGeneratedContent
+      -- ^ @CSS_GENERATED_CONTENT@
+    | CADFICssGradients
+      -- ^ @CSS_GRADIENTS@
+    | CADFICssHsla
+      -- ^ @CSS_HSLA@
+    | CADFICssMultipleBgs
+      -- ^ @CSS_MULTIPLE_BGS@
+    | CADFICssOpacity
+      -- ^ @CSS_OPACITY@
+    | CADFICssReflections
+      -- ^ @CSS_REFLECTIONS@
+    | CADFICssRgba
+      -- ^ @CSS_RGBA@
+    | CADFICssTextShadow
+      -- ^ @CSS_TEXT_SHADOW@
+    | CADFICssTransforms
+      -- ^ @CSS_TRANSFORMS@
+    | CADFICssTRANSFORMS3D
+      -- ^ @CSS_TRANSFORMS3D@
+    | CADFICssTransitions
+      -- ^ @CSS_TRANSITIONS@
+    | CADFIDragAndDrop
+      -- ^ @DRAG_AND_DROP@
+    | CADFIGeoLocation
+      -- ^ @GEO_LOCATION@
+    | CADFIHashChange
+      -- ^ @HASH_CHANGE@
+    | CADFIHistory
+      -- ^ @HISTORY@
+    | CADFIIndexedDB
+      -- ^ @INDEXED_DB@
+    | CADFIInlineSvg
+      -- ^ @INLINE_SVG@
+    | CADFIInputAttrAutocomplete
+      -- ^ @INPUT_ATTR_AUTOCOMPLETE@
+    | CADFIInputAttrAutofocus
+      -- ^ @INPUT_ATTR_AUTOFOCUS@
+    | CADFIInputAttrList
+      -- ^ @INPUT_ATTR_LIST@
+    | CADFIInputAttrMax
+      -- ^ @INPUT_ATTR_MAX@
+    | CADFIInputAttrMin
+      -- ^ @INPUT_ATTR_MIN@
+    | CADFIInputAttrMultiple
+      -- ^ @INPUT_ATTR_MULTIPLE@
+    | CADFIInputAttrPattern
+      -- ^ @INPUT_ATTR_PATTERN@
+    | CADFIInputAttrPlaceholder
+      -- ^ @INPUT_ATTR_PLACEHOLDER@
+    | CADFIInputAttrRequired
+      -- ^ @INPUT_ATTR_REQUIRED@
+    | CADFIInputAttrStep
+      -- ^ @INPUT_ATTR_STEP@
+    | CADFIInputTypeColor
+      -- ^ @INPUT_TYPE_COLOR@
+    | CADFIInputTypeDate
+      -- ^ @INPUT_TYPE_DATE@
+    | CADFIInputTypeDatetime
+      -- ^ @INPUT_TYPE_DATETIME@
+    | CADFIInputTypeDatetimeLocal
+      -- ^ @INPUT_TYPE_DATETIME_LOCAL@
+    | CADFIInputTypeEmail
+      -- ^ @INPUT_TYPE_EMAIL@
+    | CADFIInputTypeMonth
+      -- ^ @INPUT_TYPE_MONTH@
+    | CADFIInputTypeNumber
+      -- ^ @INPUT_TYPE_NUMBER@
+    | CADFIInputTypeRange
+      -- ^ @INPUT_TYPE_RANGE@
+    | CADFIInputTypeSearch
+      -- ^ @INPUT_TYPE_SEARCH@
+    | CADFIInputTypeTel
+      -- ^ @INPUT_TYPE_TEL@
+    | CADFIInputTypeTime
+      -- ^ @INPUT_TYPE_TIME@
+    | CADFIInputTypeURL
+      -- ^ @INPUT_TYPE_URL@
+    | CADFIInputTypeWeek
+      -- ^ @INPUT_TYPE_WEEK@
+    | CADFILocalStorage
+      -- ^ @LOCAL_STORAGE@
+    | CADFIPostMessage
+      -- ^ @POST_MESSAGE@
+    | CADFISessionStorage
+      -- ^ @SESSION_STORAGE@
+    | CADFISmil
+      -- ^ @SMIL@
+    | CADFISvgClipPaths
+      -- ^ @SVG_CLIP_PATHS@
+    | CADFISvgFeImage
+      -- ^ @SVG_FE_IMAGE@
+    | CADFISvgFilters
+      -- ^ @SVG_FILTERS@
+    | CADFISvgHref
+      -- ^ @SVG_HREF@
+    | CADFITouch
+      -- ^ @TOUCH@
+    | CADFIVideo
+      -- ^ @VIDEO@
+    | CADFIWebgl
+      -- ^ @WEBGL@
+    | CADFIWebSockets
+      -- ^ @WEB_SOCKETS@
+    | CADFIWebSQLDatabase
+      -- ^ @WEB_SQL_DATABASE@
+    | CADFIWebWorkers
+      -- ^ @WEB_WORKERS@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetDetectedFeaturesItem
+
+instance FromHttpApiData CreativeAssetDetectedFeaturesItem where
+    parseQueryParam = \case
+        "APPLICATION_CACHE" -> Right CADFIApplicationCache
+        "AUDIO" -> Right CADFIAudio
+        "CANVAS" -> Right CADFICanvas
+        "CANVAS_TEXT" -> Right CADFICanvasText
+        "CSS_ANIMATIONS" -> Right CADFICssAnimations
+        "CSS_BACKGROUND_SIZE" -> Right CADFICssBackgRoundSize
+        "CSS_BORDER_IMAGE" -> Right CADFICssBOrderImage
+        "CSS_BORDER_RADIUS" -> Right CADFICssBOrderRadius
+        "CSS_BOX_SHADOW" -> Right CADFICssBoxShadow
+        "CSS_COLUMNS" -> Right CADFICssColumns
+        "CSS_FLEX_BOX" -> Right CADFICssFlexBox
+        "CSS_FONT_FACE" -> Right CADFICssFontFace
+        "CSS_GENERATED_CONTENT" -> Right CADFICssGeneratedContent
+        "CSS_GRADIENTS" -> Right CADFICssGradients
+        "CSS_HSLA" -> Right CADFICssHsla
+        "CSS_MULTIPLE_BGS" -> Right CADFICssMultipleBgs
+        "CSS_OPACITY" -> Right CADFICssOpacity
+        "CSS_REFLECTIONS" -> Right CADFICssReflections
+        "CSS_RGBA" -> Right CADFICssRgba
+        "CSS_TEXT_SHADOW" -> Right CADFICssTextShadow
+        "CSS_TRANSFORMS" -> Right CADFICssTransforms
+        "CSS_TRANSFORMS3D" -> Right CADFICssTRANSFORMS3D
+        "CSS_TRANSITIONS" -> Right CADFICssTransitions
+        "DRAG_AND_DROP" -> Right CADFIDragAndDrop
+        "GEO_LOCATION" -> Right CADFIGeoLocation
+        "HASH_CHANGE" -> Right CADFIHashChange
+        "HISTORY" -> Right CADFIHistory
+        "INDEXED_DB" -> Right CADFIIndexedDB
+        "INLINE_SVG" -> Right CADFIInlineSvg
+        "INPUT_ATTR_AUTOCOMPLETE" -> Right CADFIInputAttrAutocomplete
+        "INPUT_ATTR_AUTOFOCUS" -> Right CADFIInputAttrAutofocus
+        "INPUT_ATTR_LIST" -> Right CADFIInputAttrList
+        "INPUT_ATTR_MAX" -> Right CADFIInputAttrMax
+        "INPUT_ATTR_MIN" -> Right CADFIInputAttrMin
+        "INPUT_ATTR_MULTIPLE" -> Right CADFIInputAttrMultiple
+        "INPUT_ATTR_PATTERN" -> Right CADFIInputAttrPattern
+        "INPUT_ATTR_PLACEHOLDER" -> Right CADFIInputAttrPlaceholder
+        "INPUT_ATTR_REQUIRED" -> Right CADFIInputAttrRequired
+        "INPUT_ATTR_STEP" -> Right CADFIInputAttrStep
+        "INPUT_TYPE_COLOR" -> Right CADFIInputTypeColor
+        "INPUT_TYPE_DATE" -> Right CADFIInputTypeDate
+        "INPUT_TYPE_DATETIME" -> Right CADFIInputTypeDatetime
+        "INPUT_TYPE_DATETIME_LOCAL" -> Right CADFIInputTypeDatetimeLocal
+        "INPUT_TYPE_EMAIL" -> Right CADFIInputTypeEmail
+        "INPUT_TYPE_MONTH" -> Right CADFIInputTypeMonth
+        "INPUT_TYPE_NUMBER" -> Right CADFIInputTypeNumber
+        "INPUT_TYPE_RANGE" -> Right CADFIInputTypeRange
+        "INPUT_TYPE_SEARCH" -> Right CADFIInputTypeSearch
+        "INPUT_TYPE_TEL" -> Right CADFIInputTypeTel
+        "INPUT_TYPE_TIME" -> Right CADFIInputTypeTime
+        "INPUT_TYPE_URL" -> Right CADFIInputTypeURL
+        "INPUT_TYPE_WEEK" -> Right CADFIInputTypeWeek
+        "LOCAL_STORAGE" -> Right CADFILocalStorage
+        "POST_MESSAGE" -> Right CADFIPostMessage
+        "SESSION_STORAGE" -> Right CADFISessionStorage
+        "SMIL" -> Right CADFISmil
+        "SVG_CLIP_PATHS" -> Right CADFISvgClipPaths
+        "SVG_FE_IMAGE" -> Right CADFISvgFeImage
+        "SVG_FILTERS" -> Right CADFISvgFilters
+        "SVG_HREF" -> Right CADFISvgHref
+        "TOUCH" -> Right CADFITouch
+        "VIDEO" -> Right CADFIVideo
+        "WEBGL" -> Right CADFIWebgl
+        "WEB_SOCKETS" -> Right CADFIWebSockets
+        "WEB_SQL_DATABASE" -> Right CADFIWebSQLDatabase
+        "WEB_WORKERS" -> Right CADFIWebWorkers
+        x -> Left ("Unable to parse CreativeAssetDetectedFeaturesItem from: " <> x)
+
+instance ToHttpApiData CreativeAssetDetectedFeaturesItem where
+    toQueryParam = \case
+        CADFIApplicationCache -> "APPLICATION_CACHE"
+        CADFIAudio -> "AUDIO"
+        CADFICanvas -> "CANVAS"
+        CADFICanvasText -> "CANVAS_TEXT"
+        CADFICssAnimations -> "CSS_ANIMATIONS"
+        CADFICssBackgRoundSize -> "CSS_BACKGROUND_SIZE"
+        CADFICssBOrderImage -> "CSS_BORDER_IMAGE"
+        CADFICssBOrderRadius -> "CSS_BORDER_RADIUS"
+        CADFICssBoxShadow -> "CSS_BOX_SHADOW"
+        CADFICssColumns -> "CSS_COLUMNS"
+        CADFICssFlexBox -> "CSS_FLEX_BOX"
+        CADFICssFontFace -> "CSS_FONT_FACE"
+        CADFICssGeneratedContent -> "CSS_GENERATED_CONTENT"
+        CADFICssGradients -> "CSS_GRADIENTS"
+        CADFICssHsla -> "CSS_HSLA"
+        CADFICssMultipleBgs -> "CSS_MULTIPLE_BGS"
+        CADFICssOpacity -> "CSS_OPACITY"
+        CADFICssReflections -> "CSS_REFLECTIONS"
+        CADFICssRgba -> "CSS_RGBA"
+        CADFICssTextShadow -> "CSS_TEXT_SHADOW"
+        CADFICssTransforms -> "CSS_TRANSFORMS"
+        CADFICssTRANSFORMS3D -> "CSS_TRANSFORMS3D"
+        CADFICssTransitions -> "CSS_TRANSITIONS"
+        CADFIDragAndDrop -> "DRAG_AND_DROP"
+        CADFIGeoLocation -> "GEO_LOCATION"
+        CADFIHashChange -> "HASH_CHANGE"
+        CADFIHistory -> "HISTORY"
+        CADFIIndexedDB -> "INDEXED_DB"
+        CADFIInlineSvg -> "INLINE_SVG"
+        CADFIInputAttrAutocomplete -> "INPUT_ATTR_AUTOCOMPLETE"
+        CADFIInputAttrAutofocus -> "INPUT_ATTR_AUTOFOCUS"
+        CADFIInputAttrList -> "INPUT_ATTR_LIST"
+        CADFIInputAttrMax -> "INPUT_ATTR_MAX"
+        CADFIInputAttrMin -> "INPUT_ATTR_MIN"
+        CADFIInputAttrMultiple -> "INPUT_ATTR_MULTIPLE"
+        CADFIInputAttrPattern -> "INPUT_ATTR_PATTERN"
+        CADFIInputAttrPlaceholder -> "INPUT_ATTR_PLACEHOLDER"
+        CADFIInputAttrRequired -> "INPUT_ATTR_REQUIRED"
+        CADFIInputAttrStep -> "INPUT_ATTR_STEP"
+        CADFIInputTypeColor -> "INPUT_TYPE_COLOR"
+        CADFIInputTypeDate -> "INPUT_TYPE_DATE"
+        CADFIInputTypeDatetime -> "INPUT_TYPE_DATETIME"
+        CADFIInputTypeDatetimeLocal -> "INPUT_TYPE_DATETIME_LOCAL"
+        CADFIInputTypeEmail -> "INPUT_TYPE_EMAIL"
+        CADFIInputTypeMonth -> "INPUT_TYPE_MONTH"
+        CADFIInputTypeNumber -> "INPUT_TYPE_NUMBER"
+        CADFIInputTypeRange -> "INPUT_TYPE_RANGE"
+        CADFIInputTypeSearch -> "INPUT_TYPE_SEARCH"
+        CADFIInputTypeTel -> "INPUT_TYPE_TEL"
+        CADFIInputTypeTime -> "INPUT_TYPE_TIME"
+        CADFIInputTypeURL -> "INPUT_TYPE_URL"
+        CADFIInputTypeWeek -> "INPUT_TYPE_WEEK"
+        CADFILocalStorage -> "LOCAL_STORAGE"
+        CADFIPostMessage -> "POST_MESSAGE"
+        CADFISessionStorage -> "SESSION_STORAGE"
+        CADFISmil -> "SMIL"
+        CADFISvgClipPaths -> "SVG_CLIP_PATHS"
+        CADFISvgFeImage -> "SVG_FE_IMAGE"
+        CADFISvgFilters -> "SVG_FILTERS"
+        CADFISvgHref -> "SVG_HREF"
+        CADFITouch -> "TOUCH"
+        CADFIVideo -> "VIDEO"
+        CADFIWebgl -> "WEBGL"
+        CADFIWebSockets -> "WEB_SOCKETS"
+        CADFIWebSQLDatabase -> "WEB_SQL_DATABASE"
+        CADFIWebWorkers -> "WEB_WORKERS"
+
+instance FromJSON CreativeAssetDetectedFeaturesItem where
+    parseJSON = parseJSONText "CreativeAssetDetectedFeaturesItem"
+
+instance ToJSON CreativeAssetDetectedFeaturesItem where
+    toJSON = toJSONText
+
+-- | Type of the floodlight activity group. This is a required field that is
+-- read-only after insertion.
+data FloodlightActivityGroupType
+    = FAGTCounter
+      -- ^ @COUNTER@
+    | FAGTSale
+      -- ^ @SALE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivityGroupType
+
+instance FromHttpApiData FloodlightActivityGroupType where
+    parseQueryParam = \case
+        "COUNTER" -> Right FAGTCounter
+        "SALE" -> Right FAGTSale
+        x -> Left ("Unable to parse FloodlightActivityGroupType from: " <> x)
+
+instance ToHttpApiData FloodlightActivityGroupType where
+    toQueryParam = \case
+        FAGTCounter -> "COUNTER"
+        FAGTSale -> "SALE"
+
+instance FromJSON FloodlightActivityGroupType where
+    parseJSON = parseJSONText "FloodlightActivityGroupType"
+
+instance ToJSON FloodlightActivityGroupType where
+    toJSON = toJSONText
+
+-- | Directory site contact type.
+data DirectorySiteContactType
+    = DSCTBilling
+      -- ^ @BILLING@
+    | DSCTOther
+      -- ^ @OTHER@
+    | DSCTSales
+      -- ^ @SALES@
+    | DSCTTechnical
+      -- ^ @TECHNICAL@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DirectorySiteContactType
+
+instance FromHttpApiData DirectorySiteContactType where
+    parseQueryParam = \case
+        "BILLING" -> Right DSCTBilling
+        "OTHER" -> Right DSCTOther
+        "SALES" -> Right DSCTSales
+        "TECHNICAL" -> Right DSCTTechnical
+        x -> Left ("Unable to parse DirectorySiteContactType from: " <> x)
+
+instance ToHttpApiData DirectorySiteContactType where
+    toQueryParam = \case
+        DSCTBilling -> "BILLING"
+        DSCTOther -> "OTHER"
+        DSCTSales -> "SALES"
+        DSCTTechnical -> "TECHNICAL"
+
+instance FromJSON DirectorySiteContactType where
+    parseJSON = parseJSONText "DirectorySiteContactType"
+
+instance ToJSON DirectorySiteContactType where
+    toJSON = toJSONText
+
+-- | Tag formats to generate for these placements.
+data PlacementsGeneratetagsTagFormats
+    = PGTFPlacementTagClickCommands
+      -- ^ @PLACEMENT_TAG_CLICK_COMMANDS@
+    | PGTFPlacementTagIframeIlayer
+      -- ^ @PLACEMENT_TAG_IFRAME_ILAYER@
+    | PGTFPlacementTagIframeJavascript
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT@
+    | PGTFPlacementTagIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY@
+    | PGTFPlacementTagInstreamVideoPrefetch
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH@
+    | PGTFPlacementTagInstreamVideoPrefetchVast3
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3@
+    | PGTFPlacementTagInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERNAL_REDIRECT@
+    | PGTFPlacementTagInterstitialIframeJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT@
+    | PGTFPlacementTagInterstitialIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY@
+    | PGTFPlacementTagInterstitialInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT@
+    | PGTFPlacementTagInterstitialJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT@
+    | PGTFPlacementTagInterstitialJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY@
+    | PGTFPlacementTagJavascript
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT@
+    | PGTFPlacementTagJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT_LEGACY@
+    | PGTFPlacementTagStandard
+      -- ^ @PLACEMENT_TAG_STANDARD@
+    | PGTFPlacementTagTracking
+      -- ^ @PLACEMENT_TAG_TRACKING@
+    | PGTFPlacementTagTrackingIframe
+      -- ^ @PLACEMENT_TAG_TRACKING_IFRAME@
+    | PGTFPlacementTagTrackingJavascript
+      -- ^ @PLACEMENT_TAG_TRACKING_JAVASCRIPT@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementsGeneratetagsTagFormats
+
+instance FromHttpApiData PlacementsGeneratetagsTagFormats where
+    parseQueryParam = \case
+        "PLACEMENT_TAG_CLICK_COMMANDS" -> Right PGTFPlacementTagClickCommands
+        "PLACEMENT_TAG_IFRAME_ILAYER" -> Right PGTFPlacementTagIframeIlayer
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT" -> Right PGTFPlacementTagIframeJavascript
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY" -> Right PGTFPlacementTagIframeJavascriptLegacy
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH" -> Right PGTFPlacementTagInstreamVideoPrefetch
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3" -> Right PGTFPlacementTagInstreamVideoPrefetchVast3
+        "PLACEMENT_TAG_INTERNAL_REDIRECT" -> Right PGTFPlacementTagInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT" -> Right PGTFPlacementTagInterstitialIframeJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY" -> Right PGTFPlacementTagInterstitialIframeJavascriptLegacy
+        "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT" -> Right PGTFPlacementTagInterstitialInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT" -> Right PGTFPlacementTagInterstitialJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY" -> Right PGTFPlacementTagInterstitialJavascriptLegacy
+        "PLACEMENT_TAG_JAVASCRIPT" -> Right PGTFPlacementTagJavascript
+        "PLACEMENT_TAG_JAVASCRIPT_LEGACY" -> Right PGTFPlacementTagJavascriptLegacy
+        "PLACEMENT_TAG_STANDARD" -> Right PGTFPlacementTagStandard
+        "PLACEMENT_TAG_TRACKING" -> Right PGTFPlacementTagTracking
+        "PLACEMENT_TAG_TRACKING_IFRAME" -> Right PGTFPlacementTagTrackingIframe
+        "PLACEMENT_TAG_TRACKING_JAVASCRIPT" -> Right PGTFPlacementTagTrackingJavascript
+        x -> Left ("Unable to parse PlacementsGeneratetagsTagFormats from: " <> x)
+
+instance ToHttpApiData PlacementsGeneratetagsTagFormats where
+    toQueryParam = \case
+        PGTFPlacementTagClickCommands -> "PLACEMENT_TAG_CLICK_COMMANDS"
+        PGTFPlacementTagIframeIlayer -> "PLACEMENT_TAG_IFRAME_ILAYER"
+        PGTFPlacementTagIframeJavascript -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+        PGTFPlacementTagIframeJavascriptLegacy -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY"
+        PGTFPlacementTagInstreamVideoPrefetch -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        PGTFPlacementTagInstreamVideoPrefetchVast3 -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        PGTFPlacementTagInternalRedirect -> "PLACEMENT_TAG_INTERNAL_REDIRECT"
+        PGTFPlacementTagInterstitialIframeJavascript -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+        PGTFPlacementTagInterstitialIframeJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY"
+        PGTFPlacementTagInterstitialInternalRedirect -> "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+        PGTFPlacementTagInterstitialJavascript -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+        PGTFPlacementTagInterstitialJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY"
+        PGTFPlacementTagJavascript -> "PLACEMENT_TAG_JAVASCRIPT"
+        PGTFPlacementTagJavascriptLegacy -> "PLACEMENT_TAG_JAVASCRIPT_LEGACY"
+        PGTFPlacementTagStandard -> "PLACEMENT_TAG_STANDARD"
+        PGTFPlacementTagTracking -> "PLACEMENT_TAG_TRACKING"
+        PGTFPlacementTagTrackingIframe -> "PLACEMENT_TAG_TRACKING_IFRAME"
+        PGTFPlacementTagTrackingJavascript -> "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+
+instance FromJSON PlacementsGeneratetagsTagFormats where
+    parseJSON = parseJSONText "PlacementsGeneratetagsTagFormats"
+
+instance ToJSON PlacementsGeneratetagsTagFormats where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data AccountUserProFilesListSortField
+    = AUPFLSFID
+      -- ^ @ID@
+    | AUPFLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountUserProFilesListSortField
+
+instance FromHttpApiData AccountUserProFilesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right AUPFLSFID
+        "NAME" -> Right AUPFLSFName
+        x -> Left ("Unable to parse AccountUserProFilesListSortField from: " <> x)
+
+instance ToHttpApiData AccountUserProFilesListSortField where
+    toQueryParam = \case
+        AUPFLSFID -> "ID"
+        AUPFLSFName -> "NAME"
+
+instance FromJSON AccountUserProFilesListSortField where
+    parseJSON = parseJSONText "AccountUserProFilesListSortField"
+
+instance ToJSON AccountUserProFilesListSortField where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data InventoryItemsListSortOrder
+    = IILSOAscending
+      -- ^ @ASCENDING@
+    | IILSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable InventoryItemsListSortOrder
+
+instance FromHttpApiData InventoryItemsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right IILSOAscending
+        "DESCENDING" -> Right IILSODescending
+        x -> Left ("Unable to parse InventoryItemsListSortOrder from: " <> x)
+
+instance ToHttpApiData InventoryItemsListSortOrder where
+    toQueryParam = \case
+        IILSOAscending -> "ASCENDING"
+        IILSODescending -> "DESCENDING"
+
+instance FromJSON InventoryItemsListSortOrder where
+    parseJSON = parseJSONText "InventoryItemsListSortOrder"
+
+instance ToJSON InventoryItemsListSortOrder where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data PlacementStrategiesListSortOrder
+    = PSLSOAscending
+      -- ^ @ASCENDING@
+    | PSLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementStrategiesListSortOrder
+
+instance FromHttpApiData PlacementStrategiesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right PSLSOAscending
+        "DESCENDING" -> Right PSLSODescending
+        x -> Left ("Unable to parse PlacementStrategiesListSortOrder from: " <> x)
+
+instance ToHttpApiData PlacementStrategiesListSortOrder where
+    toQueryParam = \case
+        PSLSOAscending -> "ASCENDING"
+        PSLSODescending -> "DESCENDING"
+
+instance FromJSON PlacementStrategiesListSortOrder where
+    parseJSON = parseJSONText "PlacementStrategiesListSortOrder"
+
+instance ToJSON PlacementStrategiesListSortOrder where
+    toJSON = toJSONText
+
+-- | The field by which to sort the list.
+data ReportsFilesListSortField
+    = RFLSFID
+      -- ^ @ID@
+      -- Sort by file ID.
+    | RFLSFLastModifiedTime
+      -- ^ @LAST_MODIFIED_TIME@
+      -- Sort by \'lastmodifiedAt\' field.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportsFilesListSortField
+
+instance FromHttpApiData ReportsFilesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right RFLSFID
+        "LAST_MODIFIED_TIME" -> Right RFLSFLastModifiedTime
+        x -> Left ("Unable to parse ReportsFilesListSortField from: " <> x)
+
+instance ToHttpApiData ReportsFilesListSortField where
+    toQueryParam = \case
+        RFLSFID -> "ID"
+        RFLSFLastModifiedTime -> "LAST_MODIFIED_TIME"
+
+instance FromJSON ReportsFilesListSortField where
+    parseJSON = parseJSONText "ReportsFilesListSortField"
+
+instance ToJSON ReportsFilesListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data CreativesListSortField
+    = CID
+      -- ^ @ID@
+    | CName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativesListSortField
+
+instance FromHttpApiData CreativesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right CID
+        "NAME" -> Right CName
+        x -> Left ("Unable to parse CreativesListSortField from: " <> x)
+
+instance ToHttpApiData CreativesListSortField where
+    toQueryParam = \case
+        CID -> "ID"
+        CName -> "NAME"
+
+instance FromJSON CreativesListSortField where
+    parseJSON = parseJSONText "CreativesListSortField"
+
+instance ToJSON CreativesListSortField where
+    toJSON = toJSONText
+
+data DayPartTargetingDaysOfWeekItem
+    = DPTDOWIFriday
+      -- ^ @FRIDAY@
+    | DPTDOWIMonday
+      -- ^ @MONDAY@
+    | DPTDOWISaturday
+      -- ^ @SATURDAY@
+    | DPTDOWISunday
+      -- ^ @SUNDAY@
+    | DPTDOWIThursday
+      -- ^ @THURSDAY@
+    | DPTDOWITuesday
+      -- ^ @TUESDAY@
+    | DPTDOWIWednesday
+      -- ^ @WEDNESDAY@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DayPartTargetingDaysOfWeekItem
+
+instance FromHttpApiData DayPartTargetingDaysOfWeekItem where
+    parseQueryParam = \case
+        "FRIDAY" -> Right DPTDOWIFriday
+        "MONDAY" -> Right DPTDOWIMonday
+        "SATURDAY" -> Right DPTDOWISaturday
+        "SUNDAY" -> Right DPTDOWISunday
+        "THURSDAY" -> Right DPTDOWIThursday
+        "TUESDAY" -> Right DPTDOWITuesday
+        "WEDNESDAY" -> Right DPTDOWIWednesday
+        x -> Left ("Unable to parse DayPartTargetingDaysOfWeekItem from: " <> x)
+
+instance ToHttpApiData DayPartTargetingDaysOfWeekItem where
+    toQueryParam = \case
+        DPTDOWIFriday -> "FRIDAY"
+        DPTDOWIMonday -> "MONDAY"
+        DPTDOWISaturday -> "SATURDAY"
+        DPTDOWISunday -> "SUNDAY"
+        DPTDOWIThursday -> "THURSDAY"
+        DPTDOWITuesday -> "TUESDAY"
+        DPTDOWIWednesday -> "WEDNESDAY"
+
+instance FromJSON DayPartTargetingDaysOfWeekItem where
+    parseJSON = parseJSONText "DayPartTargetingDaysOfWeekItem"
+
+instance ToJSON DayPartTargetingDaysOfWeekItem where
+    toJSON = toJSONText
+
+-- | Strategy for calculating weights. Used with
+-- CREATIVE_ROTATION_TYPE_RANDOM.
+data CreativeRotationWeightCalculationStrategy
+    = WeightStrategyCustom
+      -- ^ @WEIGHT_STRATEGY_CUSTOM@
+    | WeightStrategyEqual
+      -- ^ @WEIGHT_STRATEGY_EQUAL@
+    | WeightStrategyHighestCtr
+      -- ^ @WEIGHT_STRATEGY_HIGHEST_CTR@
+    | WeightStrategyOptimized
+      -- ^ @WEIGHT_STRATEGY_OPTIMIZED@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeRotationWeightCalculationStrategy
+
+instance FromHttpApiData CreativeRotationWeightCalculationStrategy where
+    parseQueryParam = \case
+        "WEIGHT_STRATEGY_CUSTOM" -> Right WeightStrategyCustom
+        "WEIGHT_STRATEGY_EQUAL" -> Right WeightStrategyEqual
+        "WEIGHT_STRATEGY_HIGHEST_CTR" -> Right WeightStrategyHighestCtr
+        "WEIGHT_STRATEGY_OPTIMIZED" -> Right WeightStrategyOptimized
+        x -> Left ("Unable to parse CreativeRotationWeightCalculationStrategy from: " <> x)
+
+instance ToHttpApiData CreativeRotationWeightCalculationStrategy where
+    toQueryParam = \case
+        WeightStrategyCustom -> "WEIGHT_STRATEGY_CUSTOM"
+        WeightStrategyEqual -> "WEIGHT_STRATEGY_EQUAL"
+        WeightStrategyHighestCtr -> "WEIGHT_STRATEGY_HIGHEST_CTR"
+        WeightStrategyOptimized -> "WEIGHT_STRATEGY_OPTIMIZED"
+
+instance FromJSON CreativeRotationWeightCalculationStrategy where
+    parseJSON = parseJSONText "CreativeRotationWeightCalculationStrategy"
+
+instance ToJSON CreativeRotationWeightCalculationStrategy where
+    toJSON = toJSONText
+
+-- | The scope that defines which results are returned, default is \'MINE\'.
+data FilesListScope
+    = FLSAll
+      -- ^ @ALL@
+      -- All files in account.
+    | FLSMine
+      -- ^ @MINE@
+      -- My files.
+    | FLSSharedWithMe
+      -- ^ @SHARED_WITH_ME@
+      -- Files shared with me.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FilesListScope
+
+instance FromHttpApiData FilesListScope where
+    parseQueryParam = \case
+        "ALL" -> Right FLSAll
+        "MINE" -> Right FLSMine
+        "SHARED_WITH_ME" -> Right FLSSharedWithMe
+        x -> Left ("Unable to parse FilesListScope from: " <> x)
+
+instance ToHttpApiData FilesListScope where
+    toQueryParam = \case
+        FLSAll -> "ALL"
+        FLSMine -> "MINE"
+        FLSSharedWithMe -> "SHARED_WITH_ME"
+
+instance FromJSON FilesListScope where
+    parseJSON = parseJSONText "FilesListScope"
+
+instance ToJSON FilesListScope where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data ContentCategoriesListSortField
+    = CCLSFID
+      -- ^ @ID@
+    | CCLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ContentCategoriesListSortField
+
+instance FromHttpApiData ContentCategoriesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right CCLSFID
+        "NAME" -> Right CCLSFName
+        x -> Left ("Unable to parse ContentCategoriesListSortField from: " <> x)
+
+instance ToHttpApiData ContentCategoriesListSortField where
+    toQueryParam = \case
+        CCLSFID -> "ID"
+        CCLSFName -> "NAME"
+
+instance FromJSON ContentCategoriesListSortField where
+    parseJSON = parseJSONText "ContentCategoriesListSortField"
+
+instance ToJSON ContentCategoriesListSortField where
+    toJSON = toJSONText
+
+-- | Audience age group of this project.
+data ProjectAudienceAgeGroup
+    = PlanningAudienceAge1824
+      -- ^ @PLANNING_AUDIENCE_AGE_18_24@
+    | PlanningAudienceAge2534
+      -- ^ @PLANNING_AUDIENCE_AGE_25_34@
+    | PlanningAudienceAge3544
+      -- ^ @PLANNING_AUDIENCE_AGE_35_44@
+    | PlanningAudienceAge4554
+      -- ^ @PLANNING_AUDIENCE_AGE_45_54@
+    | PlanningAudienceAge5564
+      -- ^ @PLANNING_AUDIENCE_AGE_55_64@
+    | PlanningAudienceAge65OrMore
+      -- ^ @PLANNING_AUDIENCE_AGE_65_OR_MORE@
+    | PlanningAudienceAgeUnknown
+      -- ^ @PLANNING_AUDIENCE_AGE_UNKNOWN@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ProjectAudienceAgeGroup
+
+instance FromHttpApiData ProjectAudienceAgeGroup where
+    parseQueryParam = \case
+        "PLANNING_AUDIENCE_AGE_18_24" -> Right PlanningAudienceAge1824
+        "PLANNING_AUDIENCE_AGE_25_34" -> Right PlanningAudienceAge2534
+        "PLANNING_AUDIENCE_AGE_35_44" -> Right PlanningAudienceAge3544
+        "PLANNING_AUDIENCE_AGE_45_54" -> Right PlanningAudienceAge4554
+        "PLANNING_AUDIENCE_AGE_55_64" -> Right PlanningAudienceAge5564
+        "PLANNING_AUDIENCE_AGE_65_OR_MORE" -> Right PlanningAudienceAge65OrMore
+        "PLANNING_AUDIENCE_AGE_UNKNOWN" -> Right PlanningAudienceAgeUnknown
+        x -> Left ("Unable to parse ProjectAudienceAgeGroup from: " <> x)
+
+instance ToHttpApiData ProjectAudienceAgeGroup where
+    toQueryParam = \case
+        PlanningAudienceAge1824 -> "PLANNING_AUDIENCE_AGE_18_24"
+        PlanningAudienceAge2534 -> "PLANNING_AUDIENCE_AGE_25_34"
+        PlanningAudienceAge3544 -> "PLANNING_AUDIENCE_AGE_35_44"
+        PlanningAudienceAge4554 -> "PLANNING_AUDIENCE_AGE_45_54"
+        PlanningAudienceAge5564 -> "PLANNING_AUDIENCE_AGE_55_64"
+        PlanningAudienceAge65OrMore -> "PLANNING_AUDIENCE_AGE_65_OR_MORE"
+        PlanningAudienceAgeUnknown -> "PLANNING_AUDIENCE_AGE_UNKNOWN"
+
+instance FromJSON ProjectAudienceAgeGroup where
+    parseJSON = parseJSONText "ProjectAudienceAgeGroup"
+
+instance ToJSON ProjectAudienceAgeGroup where
+    toJSON = toJSONText
+
+-- | Type of ad. This is a required field on insertion. Note that default ads
+-- (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative
+-- resource).
+data AdType
+    = ATAdServingClickTracker
+      -- ^ @AD_SERVING_CLICK_TRACKER@
+    | ATAdServingDefaultAd
+      -- ^ @AD_SERVING_DEFAULT_AD@
+    | ATAdServingStandardAd
+      -- ^ @AD_SERVING_STANDARD_AD@
+    | ATAdServingTracking
+      -- ^ @AD_SERVING_TRACKING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdType
+
+instance FromHttpApiData AdType where
+    parseQueryParam = \case
+        "AD_SERVING_CLICK_TRACKER" -> Right ATAdServingClickTracker
+        "AD_SERVING_DEFAULT_AD" -> Right ATAdServingDefaultAd
+        "AD_SERVING_STANDARD_AD" -> Right ATAdServingStandardAd
+        "AD_SERVING_TRACKING" -> Right ATAdServingTracking
+        x -> Left ("Unable to parse AdType from: " <> x)
+
+instance ToHttpApiData AdType where
+    toQueryParam = \case
+        ATAdServingClickTracker -> "AD_SERVING_CLICK_TRACKER"
+        ATAdServingDefaultAd -> "AD_SERVING_DEFAULT_AD"
+        ATAdServingStandardAd -> "AD_SERVING_STANDARD_AD"
+        ATAdServingTracking -> "AD_SERVING_TRACKING"
+
+instance FromJSON AdType where
+    parseJSON = parseJSONText "AdType"
+
+instance ToJSON AdType where
+    toJSON = toJSONText
+
+-- | Select only change logs with the specified action.
+data ChangeLogsListAction
+    = ActionAdd
+      -- ^ @ACTION_ADD@
+    | ActionAssign
+      -- ^ @ACTION_ASSIGN@
+    | ActionAssociate
+      -- ^ @ACTION_ASSOCIATE@
+    | ActionCreate
+      -- ^ @ACTION_CREATE@
+    | ActionDelete
+      -- ^ @ACTION_DELETE@
+    | ActionDisable
+      -- ^ @ACTION_DISABLE@
+    | ActionEmailTags
+      -- ^ @ACTION_EMAIL_TAGS@
+    | ActionEnable
+      -- ^ @ACTION_ENABLE@
+    | ActionLink
+      -- ^ @ACTION_LINK@
+    | ActionMarkAsDefault
+      -- ^ @ACTION_MARK_AS_DEFAULT@
+    | ActionPush
+      -- ^ @ACTION_PUSH@
+    | ActionRemove
+      -- ^ @ACTION_REMOVE@
+    | ActionSend
+      -- ^ @ACTION_SEND@
+    | ActionShare
+      -- ^ @ACTION_SHARE@
+    | ActionUnassign
+      -- ^ @ACTION_UNASSIGN@
+    | ActionUnlink
+      -- ^ @ACTION_UNLINK@
+    | ActionUpdate
+      -- ^ @ACTION_UPDATE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ChangeLogsListAction
+
+instance FromHttpApiData ChangeLogsListAction where
+    parseQueryParam = \case
+        "ACTION_ADD" -> Right ActionAdd
+        "ACTION_ASSIGN" -> Right ActionAssign
+        "ACTION_ASSOCIATE" -> Right ActionAssociate
+        "ACTION_CREATE" -> Right ActionCreate
+        "ACTION_DELETE" -> Right ActionDelete
+        "ACTION_DISABLE" -> Right ActionDisable
+        "ACTION_EMAIL_TAGS" -> Right ActionEmailTags
+        "ACTION_ENABLE" -> Right ActionEnable
+        "ACTION_LINK" -> Right ActionLink
+        "ACTION_MARK_AS_DEFAULT" -> Right ActionMarkAsDefault
+        "ACTION_PUSH" -> Right ActionPush
+        "ACTION_REMOVE" -> Right ActionRemove
+        "ACTION_SEND" -> Right ActionSend
+        "ACTION_SHARE" -> Right ActionShare
+        "ACTION_UNASSIGN" -> Right ActionUnassign
+        "ACTION_UNLINK" -> Right ActionUnlink
+        "ACTION_UPDATE" -> Right ActionUpdate
+        x -> Left ("Unable to parse ChangeLogsListAction from: " <> x)
+
+instance ToHttpApiData ChangeLogsListAction where
+    toQueryParam = \case
+        ActionAdd -> "ACTION_ADD"
+        ActionAssign -> "ACTION_ASSIGN"
+        ActionAssociate -> "ACTION_ASSOCIATE"
+        ActionCreate -> "ACTION_CREATE"
+        ActionDelete -> "ACTION_DELETE"
+        ActionDisable -> "ACTION_DISABLE"
+        ActionEmailTags -> "ACTION_EMAIL_TAGS"
+        ActionEnable -> "ACTION_ENABLE"
+        ActionLink -> "ACTION_LINK"
+        ActionMarkAsDefault -> "ACTION_MARK_AS_DEFAULT"
+        ActionPush -> "ACTION_PUSH"
+        ActionRemove -> "ACTION_REMOVE"
+        ActionSend -> "ACTION_SEND"
+        ActionShare -> "ACTION_SHARE"
+        ActionUnassign -> "ACTION_UNASSIGN"
+        ActionUnlink -> "ACTION_UNLINK"
+        ActionUpdate -> "ACTION_UPDATE"
+
+instance FromJSON ChangeLogsListAction where
+    parseJSON = parseJSONText "ChangeLogsListAction"
+
+instance ToJSON ChangeLogsListAction where
+    toJSON = toJSONText
+
+-- | Type of artwork used for the creative. This is a read-only field.
+-- Applicable to the following creative types: all RICH_MEDIA, and all
+-- VPAID.
+data CreativeArtworkType
+    = CATArtworkTypeFlash
+      -- ^ @ARTWORK_TYPE_FLASH@
+    | CATArtworkTypeHTML5
+      -- ^ @ARTWORK_TYPE_HTML5@
+    | CATArtworkTypeImage
+      -- ^ @ARTWORK_TYPE_IMAGE@
+    | CATArtworkTypeMixed
+      -- ^ @ARTWORK_TYPE_MIXED@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeArtworkType
+
+instance FromHttpApiData CreativeArtworkType where
+    parseQueryParam = \case
+        "ARTWORK_TYPE_FLASH" -> Right CATArtworkTypeFlash
+        "ARTWORK_TYPE_HTML5" -> Right CATArtworkTypeHTML5
+        "ARTWORK_TYPE_IMAGE" -> Right CATArtworkTypeImage
+        "ARTWORK_TYPE_MIXED" -> Right CATArtworkTypeMixed
+        x -> Left ("Unable to parse CreativeArtworkType from: " <> x)
+
+instance ToHttpApiData CreativeArtworkType where
+    toQueryParam = \case
+        CATArtworkTypeFlash -> "ARTWORK_TYPE_FLASH"
+        CATArtworkTypeHTML5 -> "ARTWORK_TYPE_HTML5"
+        CATArtworkTypeImage -> "ARTWORK_TYPE_IMAGE"
+        CATArtworkTypeMixed -> "ARTWORK_TYPE_MIXED"
+
+instance FromJSON CreativeArtworkType where
+    parseJSON = parseJSONText "CreativeArtworkType"
+
+instance ToJSON CreativeArtworkType where
+    toJSON = toJSONText
+
+-- | Third-party placement status.
+data PlacementStatus
+    = AcknowledgeAcceptance
+      -- ^ @ACKNOWLEDGE_ACCEPTANCE@
+    | AcknowledgeRejection
+      -- ^ @ACKNOWLEDGE_REJECTION@
+    | Draft
+      -- ^ @DRAFT@
+    | PaymentAccepted
+      -- ^ @PAYMENT_ACCEPTED@
+    | PaymentRejected
+      -- ^ @PAYMENT_REJECTED@
+    | PendingReview
+      -- ^ @PENDING_REVIEW@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementStatus
+
+instance FromHttpApiData PlacementStatus where
+    parseQueryParam = \case
+        "ACKNOWLEDGE_ACCEPTANCE" -> Right AcknowledgeAcceptance
+        "ACKNOWLEDGE_REJECTION" -> Right AcknowledgeRejection
+        "DRAFT" -> Right Draft
+        "PAYMENT_ACCEPTED" -> Right PaymentAccepted
+        "PAYMENT_REJECTED" -> Right PaymentRejected
+        "PENDING_REVIEW" -> Right PendingReview
+        x -> Left ("Unable to parse PlacementStatus from: " <> x)
+
+instance ToHttpApiData PlacementStatus where
+    toQueryParam = \case
+        AcknowledgeAcceptance -> "ACKNOWLEDGE_ACCEPTANCE"
+        AcknowledgeRejection -> "ACKNOWLEDGE_REJECTION"
+        Draft -> "DRAFT"
+        PaymentAccepted -> "PAYMENT_ACCEPTED"
+        PaymentRejected -> "PAYMENT_REJECTED"
+        PendingReview -> "PENDING_REVIEW"
+
+instance FromJSON PlacementStatus where
+    parseJSON = parseJSONText "PlacementStatus"
+
+instance ToJSON PlacementStatus where
+    toJSON = toJSONText
+
+-- | Enum to define for \"MONTHLY\" scheduled reports whether reports should
+-- be repeated on the same day of the month as \"startDate\" or the same
+-- day of the week of the month. Example: If \'startDate\' is Monday, April
+-- 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on
+-- the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent
+-- reports on the first Monday of the month.
+data ReportScheduleRunsOnDayOfMonth
+    = DayOfMonth
+      -- ^ @DAY_OF_MONTH@
+    | WeekOfMonth
+      -- ^ @WEEK_OF_MONTH@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportScheduleRunsOnDayOfMonth
+
+instance FromHttpApiData ReportScheduleRunsOnDayOfMonth where
+    parseQueryParam = \case
+        "DAY_OF_MONTH" -> Right DayOfMonth
+        "WEEK_OF_MONTH" -> Right WeekOfMonth
+        x -> Left ("Unable to parse ReportScheduleRunsOnDayOfMonth from: " <> x)
+
+instance ToHttpApiData ReportScheduleRunsOnDayOfMonth where
+    toQueryParam = \case
+        DayOfMonth -> "DAY_OF_MONTH"
+        WeekOfMonth -> "WEEK_OF_MONTH"
+
+instance FromJSON ReportScheduleRunsOnDayOfMonth where
+    parseJSON = parseJSONText "ReportScheduleRunsOnDayOfMonth"
+
+instance ToJSON ReportScheduleRunsOnDayOfMonth where
+    toJSON = toJSONText
+
+data FloodlightActivityUserDefinedVariableTypesItem
+    = FAUDVTIU1
+      -- ^ @U1@
+    | FAUDVTIU10
+      -- ^ @U10@
+    | FAUDVTIU11
+      -- ^ @U11@
+    | FAUDVTIU12
+      -- ^ @U12@
+    | FAUDVTIU13
+      -- ^ @U13@
+    | FAUDVTIU14
+      -- ^ @U14@
+    | FAUDVTIU15
+      -- ^ @U15@
+    | FAUDVTIU16
+      -- ^ @U16@
+    | FAUDVTIU17
+      -- ^ @U17@
+    | FAUDVTIU18
+      -- ^ @U18@
+    | FAUDVTIU19
+      -- ^ @U19@
+    | FAUDVTIU2
+      -- ^ @U2@
+    | FAUDVTIU20
+      -- ^ @U20@
+    | FAUDVTIU3
+      -- ^ @U3@
+    | FAUDVTIU4
+      -- ^ @U4@
+    | FAUDVTIU5
+      -- ^ @U5@
+    | FAUDVTIU6
+      -- ^ @U6@
+    | FAUDVTIU7
+      -- ^ @U7@
+    | FAUDVTIU8
+      -- ^ @U8@
+    | FAUDVTIU9
+      -- ^ @U9@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivityUserDefinedVariableTypesItem
+
+instance FromHttpApiData FloodlightActivityUserDefinedVariableTypesItem where
+    parseQueryParam = \case
+        "U1" -> Right FAUDVTIU1
+        "U10" -> Right FAUDVTIU10
+        "U11" -> Right FAUDVTIU11
+        "U12" -> Right FAUDVTIU12
+        "U13" -> Right FAUDVTIU13
+        "U14" -> Right FAUDVTIU14
+        "U15" -> Right FAUDVTIU15
+        "U16" -> Right FAUDVTIU16
+        "U17" -> Right FAUDVTIU17
+        "U18" -> Right FAUDVTIU18
+        "U19" -> Right FAUDVTIU19
+        "U2" -> Right FAUDVTIU2
+        "U20" -> Right FAUDVTIU20
+        "U3" -> Right FAUDVTIU3
+        "U4" -> Right FAUDVTIU4
+        "U5" -> Right FAUDVTIU5
+        "U6" -> Right FAUDVTIU6
+        "U7" -> Right FAUDVTIU7
+        "U8" -> Right FAUDVTIU8
+        "U9" -> Right FAUDVTIU9
+        x -> Left ("Unable to parse FloodlightActivityUserDefinedVariableTypesItem from: " <> x)
+
+instance ToHttpApiData FloodlightActivityUserDefinedVariableTypesItem where
+    toQueryParam = \case
+        FAUDVTIU1 -> "U1"
+        FAUDVTIU10 -> "U10"
+        FAUDVTIU11 -> "U11"
+        FAUDVTIU12 -> "U12"
+        FAUDVTIU13 -> "U13"
+        FAUDVTIU14 -> "U14"
+        FAUDVTIU15 -> "U15"
+        FAUDVTIU16 -> "U16"
+        FAUDVTIU17 -> "U17"
+        FAUDVTIU18 -> "U18"
+        FAUDVTIU19 -> "U19"
+        FAUDVTIU2 -> "U2"
+        FAUDVTIU20 -> "U20"
+        FAUDVTIU3 -> "U3"
+        FAUDVTIU4 -> "U4"
+        FAUDVTIU5 -> "U5"
+        FAUDVTIU6 -> "U6"
+        FAUDVTIU7 -> "U7"
+        FAUDVTIU8 -> "U8"
+        FAUDVTIU9 -> "U9"
+
+instance FromJSON FloodlightActivityUserDefinedVariableTypesItem where
+    parseJSON = parseJSONText "FloodlightActivityUserDefinedVariableTypesItem"
+
+instance ToJSON FloodlightActivityUserDefinedVariableTypesItem where
+    toJSON = toJSONText
+
+-- | Site filter type for this event tag. If no type is specified then the
+-- event tag will be applied to all sites.
+data EventTagSiteFilterType
+    = BlackList
+      -- ^ @BLACKLIST@
+    | WhiteList
+      -- ^ @WHITELIST@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable EventTagSiteFilterType
+
+instance FromHttpApiData EventTagSiteFilterType where
+    parseQueryParam = \case
+        "BLACKLIST" -> Right BlackList
+        "WHITELIST" -> Right WhiteList
+        x -> Left ("Unable to parse EventTagSiteFilterType from: " <> x)
+
+instance ToHttpApiData EventTagSiteFilterType where
+    toQueryParam = \case
+        BlackList -> "BLACKLIST"
+        WhiteList -> "WHITELIST"
+
+instance FromJSON EventTagSiteFilterType where
+    parseJSON = parseJSONText "EventTagSiteFilterType"
+
+instance ToJSON EventTagSiteFilterType where
+    toJSON = toJSONText
+
+-- | The output format of the report. If not specified, default format is
+-- \"CSV\". Note that the actual format in the completed report file might
+-- differ if for instance the report\'s size exceeds the format\'s
+-- capabilities. \"CSV\" will then be the fallback format.
+data ReportFormat
+    = RFCSV
+      -- ^ @CSV@
+    | RFExcel
+      -- ^ @EXCEL@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportFormat
+
+instance FromHttpApiData ReportFormat where
+    parseQueryParam = \case
+        "CSV" -> Right RFCSV
+        "EXCEL" -> Right RFExcel
+        x -> Left ("Unable to parse ReportFormat from: " <> x)
+
+instance ToHttpApiData ReportFormat where
+    toQueryParam = \case
+        RFCSV -> "CSV"
+        RFExcel -> "EXCEL"
+
+instance FromJSON ReportFormat where
+    parseJSON = parseJSONText "ReportFormat"
+
+instance ToJSON ReportFormat where
+    toJSON = toJSONText
+
+-- | Type of this placement group. A package is a simple group of placements
+-- that acts as a single pricing point for a group of tags. A roadblock is
+-- a group of placements that not only acts as a single pricing point, but
+-- also assumes that all the tags in it will be served at the same time. A
+-- roadblock requires one of its assigned placements to be marked as
+-- primary for reporting. This field is required on insertion.
+data PlacementGroupPlacementGroupType
+    = PGPGTPlacementPackage
+      -- ^ @PLACEMENT_PACKAGE@
+    | PGPGTPlacementRoadblock
+      -- ^ @PLACEMENT_ROADBLOCK@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementGroupPlacementGroupType
+
+instance FromHttpApiData PlacementGroupPlacementGroupType where
+    parseQueryParam = \case
+        "PLACEMENT_PACKAGE" -> Right PGPGTPlacementPackage
+        "PLACEMENT_ROADBLOCK" -> Right PGPGTPlacementRoadblock
+        x -> Left ("Unable to parse PlacementGroupPlacementGroupType from: " <> x)
+
+instance ToHttpApiData PlacementGroupPlacementGroupType where
+    toQueryParam = \case
+        PGPGTPlacementPackage -> "PLACEMENT_PACKAGE"
+        PGPGTPlacementRoadblock -> "PLACEMENT_ROADBLOCK"
+
+instance FromJSON PlacementGroupPlacementGroupType where
+    parseJSON = parseJSONText "PlacementGroupPlacementGroupType"
+
+instance ToJSON PlacementGroupPlacementGroupType where
+    toJSON = toJSONText
+
+-- | Pricing type of this inventory item.
+data PricingPricingType
+    = PlanningPlacementPricingTypeClicks
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CLICKS@
+    | PlanningPlacementPricingTypeCpa
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CPA@
+    | PlanningPlacementPricingTypeCpc
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CPC@
+    | PlanningPlacementPricingTypeCpm
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_CPM@
+    | PlanningPlacementPricingTypeFlatRateClicks
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS@
+    | PlanningPlacementPricingTypeFlatRateImpressions
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
+    | PlanningPlacementPricingTypeImpressions
+      -- ^ @PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PricingPricingType
+
+instance FromHttpApiData PricingPricingType where
+    parseQueryParam = \case
+        "PLANNING_PLACEMENT_PRICING_TYPE_CLICKS" -> Right PlanningPlacementPricingTypeClicks
+        "PLANNING_PLACEMENT_PRICING_TYPE_CPA" -> Right PlanningPlacementPricingTypeCpa
+        "PLANNING_PLACEMENT_PRICING_TYPE_CPC" -> Right PlanningPlacementPricingTypeCpc
+        "PLANNING_PLACEMENT_PRICING_TYPE_CPM" -> Right PlanningPlacementPricingTypeCpm
+        "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS" -> Right PlanningPlacementPricingTypeFlatRateClicks
+        "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Right PlanningPlacementPricingTypeFlatRateImpressions
+        "PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS" -> Right PlanningPlacementPricingTypeImpressions
+        x -> Left ("Unable to parse PricingPricingType from: " <> x)
+
+instance ToHttpApiData PricingPricingType where
+    toQueryParam = \case
+        PlanningPlacementPricingTypeClicks -> "PLANNING_PLACEMENT_PRICING_TYPE_CLICKS"
+        PlanningPlacementPricingTypeCpa -> "PLANNING_PLACEMENT_PRICING_TYPE_CPA"
+        PlanningPlacementPricingTypeCpc -> "PLANNING_PLACEMENT_PRICING_TYPE_CPC"
+        PlanningPlacementPricingTypeCpm -> "PLANNING_PLACEMENT_PRICING_TYPE_CPM"
+        PlanningPlacementPricingTypeFlatRateClicks -> "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS"
+        PlanningPlacementPricingTypeFlatRateImpressions -> "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
+        PlanningPlacementPricingTypeImpressions -> "PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS"
+
+instance FromJSON PricingPricingType where
+    parseJSON = parseJSONText "PricingPricingType"
+
+instance ToJSON PricingPricingType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data SubAccountsListSortOrder
+    = SALSOAscending
+      -- ^ @ASCENDING@
+    | SALSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable SubAccountsListSortOrder
+
+instance FromHttpApiData SubAccountsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right SALSOAscending
+        "DESCENDING" -> Right SALSODescending
+        x -> Left ("Unable to parse SubAccountsListSortOrder from: " <> x)
+
+instance ToHttpApiData SubAccountsListSortOrder where
+    toQueryParam = \case
+        SALSOAscending -> "ASCENDING"
+        SALSODescending -> "DESCENDING"
+
+instance FromJSON SubAccountsListSortOrder where
+    parseJSON = parseJSONText "SubAccountsListSortOrder"
+
+instance ToJSON SubAccountsListSortOrder where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data AdsListSortOrder
+    = ADSAscending
+      -- ^ @ASCENDING@
+    | ADSDescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdsListSortOrder
+
+instance FromHttpApiData AdsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right ADSAscending
+        "DESCENDING" -> Right ADSDescending
+        x -> Left ("Unable to parse AdsListSortOrder from: " <> x)
+
+instance ToHttpApiData AdsListSortOrder where
+    toQueryParam = \case
+        ADSAscending -> "ASCENDING"
+        ADSDescending -> "DESCENDING"
+
+instance FromJSON AdsListSortOrder where
+    parseJSON = parseJSONText "AdsListSortOrder"
+
+instance ToJSON AdsListSortOrder where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data ProjectsListSortOrder
+    = PLSOAscending
+      -- ^ @ASCENDING@
+    | PLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ProjectsListSortOrder
+
+instance FromHttpApiData ProjectsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right PLSOAscending
+        "DESCENDING" -> Right PLSODescending
+        x -> Left ("Unable to parse ProjectsListSortOrder from: " <> x)
+
+instance ToHttpApiData ProjectsListSortOrder where
+    toQueryParam = \case
+        PLSOAscending -> "ASCENDING"
+        PLSODescending -> "DESCENDING"
+
+instance FromJSON ProjectsListSortOrder where
+    parseJSON = parseJSONText "ProjectsListSortOrder"
+
+instance ToJSON ProjectsListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data RemarketingListsListSortField
+    = RLLSFID
+      -- ^ @ID@
+    | RLLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable RemarketingListsListSortField
+
+instance FromHttpApiData RemarketingListsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right RLLSFID
+        "NAME" -> Right RLLSFName
+        x -> Left ("Unable to parse RemarketingListsListSortField from: " <> x)
+
+instance ToHttpApiData RemarketingListsListSortField where
+    toQueryParam = \case
+        RLLSFID -> "ID"
+        RLLSFName -> "NAME"
+
+instance FromJSON RemarketingListsListSortField where
+    parseJSON = parseJSONText "RemarketingListsListSortField"
+
+instance ToJSON RemarketingListsListSortField where
+    toJSON = toJSONText
+
+data ReportScheduleRepeatsOnWeekDaysItem
+    = RSROWDIFriday
+      -- ^ @FRIDAY@
+    | RSROWDIMonday
+      -- ^ @MONDAY@
+    | RSROWDISaturday
+      -- ^ @SATURDAY@
+    | RSROWDISunday
+      -- ^ @SUNDAY@
+    | RSROWDIThursday
+      -- ^ @THURSDAY@
+    | RSROWDITuesday
+      -- ^ @TUESDAY@
+    | RSROWDIWednesday
+      -- ^ @WEDNESDAY@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportScheduleRepeatsOnWeekDaysItem
+
+instance FromHttpApiData ReportScheduleRepeatsOnWeekDaysItem where
+    parseQueryParam = \case
+        "FRIDAY" -> Right RSROWDIFriday
+        "MONDAY" -> Right RSROWDIMonday
+        "SATURDAY" -> Right RSROWDISaturday
+        "SUNDAY" -> Right RSROWDISunday
+        "THURSDAY" -> Right RSROWDIThursday
+        "TUESDAY" -> Right RSROWDITuesday
+        "WEDNESDAY" -> Right RSROWDIWednesday
+        x -> Left ("Unable to parse ReportScheduleRepeatsOnWeekDaysItem from: " <> x)
+
+instance ToHttpApiData ReportScheduleRepeatsOnWeekDaysItem where
+    toQueryParam = \case
+        RSROWDIFriday -> "FRIDAY"
+        RSROWDIMonday -> "MONDAY"
+        RSROWDISaturday -> "SATURDAY"
+        RSROWDISunday -> "SUNDAY"
+        RSROWDIThursday -> "THURSDAY"
+        RSROWDITuesday -> "TUESDAY"
+        RSROWDIWednesday -> "WEDNESDAY"
+
+instance FromJSON ReportScheduleRepeatsOnWeekDaysItem where
+    parseJSON = parseJSONText "ReportScheduleRepeatsOnWeekDaysItem"
+
+instance ToJSON ReportScheduleRepeatsOnWeekDaysItem where
+    toJSON = toJSONText
+
+-- | Creative group number of the creative group assignment.
+data CreativeGroupAssignmentCreativeGroupNumber
+    = CreativeGroupOne
+      -- ^ @CREATIVE_GROUP_ONE@
+    | CreativeGroupTwo
+      -- ^ @CREATIVE_GROUP_TWO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeGroupAssignmentCreativeGroupNumber
+
+instance FromHttpApiData CreativeGroupAssignmentCreativeGroupNumber where
+    parseQueryParam = \case
+        "CREATIVE_GROUP_ONE" -> Right CreativeGroupOne
+        "CREATIVE_GROUP_TWO" -> Right CreativeGroupTwo
+        x -> Left ("Unable to parse CreativeGroupAssignmentCreativeGroupNumber from: " <> x)
+
+instance ToHttpApiData CreativeGroupAssignmentCreativeGroupNumber where
+    toQueryParam = \case
+        CreativeGroupOne -> "CREATIVE_GROUP_ONE"
+        CreativeGroupTwo -> "CREATIVE_GROUP_TWO"
+
+instance FromJSON CreativeGroupAssignmentCreativeGroupNumber where
+    parseJSON = parseJSONText "CreativeGroupAssignmentCreativeGroupNumber"
+
+instance ToJSON CreativeGroupAssignmentCreativeGroupNumber where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data AccountsListSortField
+    = AID
+      -- ^ @ID@
+    | AName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountsListSortField
+
+instance FromHttpApiData AccountsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right AID
+        "NAME" -> Right AName
+        x -> Left ("Unable to parse AccountsListSortField from: " <> x)
+
+instance ToHttpApiData AccountsListSortField where
+    toQueryParam = \case
+        AID -> "ID"
+        AName -> "NAME"
+
+instance FromJSON AccountsListSortField where
+    parseJSON = parseJSONText "AccountsListSortField"
+
+instance ToJSON AccountsListSortField where
+    toJSON = toJSONText
+
+-- | Select only advertisers with the specified status.
+data AdvertisersListStatus
+    = Approved
+      -- ^ @APPROVED@
+    | OnHold
+      -- ^ @ON_HOLD@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdvertisersListStatus
+
+instance FromHttpApiData AdvertisersListStatus where
+    parseQueryParam = \case
+        "APPROVED" -> Right Approved
+        "ON_HOLD" -> Right OnHold
+        x -> Left ("Unable to parse AdvertisersListStatus from: " <> x)
+
+instance ToHttpApiData AdvertisersListStatus where
+    toQueryParam = \case
+        Approved -> "APPROVED"
+        OnHold -> "ON_HOLD"
+
+instance FromJSON AdvertisersListStatus where
+    parseJSON = parseJSONText "AdvertisersListStatus"
+
+instance ToJSON AdvertisersListStatus where
+    toJSON = toJSONText
+
+-- | Determines how the \'value\' field is matched when filtering. If not
+-- specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, \'*\' is
+-- allowed as a placeholder for variable length character sequences, and it
+-- can be escaped with a backslash. Note, only paid search dimensions
+-- (\'dfa:paidSearch*\') allow a matchType other than EXACT.
+data DimensionValueMatchType
+    = BeginsWith
+      -- ^ @BEGINS_WITH@
+    | Contains
+      -- ^ @CONTAINS@
+    | Exact
+      -- ^ @EXACT@
+    | WildcardExpression
+      -- ^ @WILDCARD_EXPRESSION@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DimensionValueMatchType
+
+instance FromHttpApiData DimensionValueMatchType where
+    parseQueryParam = \case
+        "BEGINS_WITH" -> Right BeginsWith
+        "CONTAINS" -> Right Contains
+        "EXACT" -> Right Exact
+        "WILDCARD_EXPRESSION" -> Right WildcardExpression
+        x -> Left ("Unable to parse DimensionValueMatchType from: " <> x)
+
+instance ToHttpApiData DimensionValueMatchType where
+    toQueryParam = \case
+        BeginsWith -> "BEGINS_WITH"
+        Contains -> "CONTAINS"
+        Exact -> "EXACT"
+        WildcardExpression -> "WILDCARD_EXPRESSION"
+
+instance FromJSON DimensionValueMatchType where
+    parseJSON = parseJSONText "DimensionValueMatchType"
+
+instance ToJSON DimensionValueMatchType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data PlacementGroupsListSortOrder
+    = PGLSOAscending
+      -- ^ @ASCENDING@
+    | PGLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementGroupsListSortOrder
+
+instance FromHttpApiData PlacementGroupsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right PGLSOAscending
+        "DESCENDING" -> Right PGLSODescending
+        x -> Left ("Unable to parse PlacementGroupsListSortOrder from: " <> x)
+
+instance ToHttpApiData PlacementGroupsListSortOrder where
+    toQueryParam = \case
+        PGLSOAscending -> "ASCENDING"
+        PGLSODescending -> "DESCENDING"
+
+instance FromJSON PlacementGroupsListSortOrder where
+    parseJSON = parseJSONText "PlacementGroupsListSortOrder"
+
+instance ToJSON PlacementGroupsListSortOrder where
+    toJSON = toJSONText
+
+-- | Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+-- DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or
+-- on mobile devices or in mobile apps for regular or interstitial ads,
+-- respectively. APP and APP_INTERSTITIAL are only used for existing
+-- default ads. New mobile placements must be assigned DISPLAY or
+-- DISPLAY_INTERSTITIAL and default ads created for those placements will
+-- be limited to those compatibility types. IN_STREAM_VIDEO refers to
+-- rendering in-stream video ads developed with the VAST standard.
+data AdCompatibility
+    = ACApp
+      -- ^ @APP@
+    | ACAppInterstitial
+      -- ^ @APP_INTERSTITIAL@
+    | ACDisplay
+      -- ^ @DISPLAY@
+    | ACDisplayInterstitial
+      -- ^ @DISPLAY_INTERSTITIAL@
+    | ACInStreamVideo
+      -- ^ @IN_STREAM_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdCompatibility
+
+instance FromHttpApiData AdCompatibility where
+    parseQueryParam = \case
+        "APP" -> Right ACApp
+        "APP_INTERSTITIAL" -> Right ACAppInterstitial
+        "DISPLAY" -> Right ACDisplay
+        "DISPLAY_INTERSTITIAL" -> Right ACDisplayInterstitial
+        "IN_STREAM_VIDEO" -> Right ACInStreamVideo
+        x -> Left ("Unable to parse AdCompatibility from: " <> x)
+
+instance ToHttpApiData AdCompatibility where
+    toQueryParam = \case
+        ACApp -> "APP"
+        ACAppInterstitial -> "APP_INTERSTITIAL"
+        ACDisplay -> "DISPLAY"
+        ACDisplayInterstitial -> "DISPLAY_INTERSTITIAL"
+        ACInStreamVideo -> "IN_STREAM_VIDEO"
+
+instance FromJSON AdCompatibility where
+    parseJSON = parseJSONText "AdCompatibility"
+
+instance ToJSON AdCompatibility where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data CreativeFieldValuesListSortField
+    = CFVLSFID
+      -- ^ @ID@
+    | CFVLSFValue
+      -- ^ @VALUE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeFieldValuesListSortField
+
+instance FromHttpApiData CreativeFieldValuesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right CFVLSFID
+        "VALUE" -> Right CFVLSFValue
+        x -> Left ("Unable to parse CreativeFieldValuesListSortField from: " <> x)
+
+instance ToHttpApiData CreativeFieldValuesListSortField where
+    toQueryParam = \case
+        CFVLSFID -> "ID"
+        CFVLSFValue -> "VALUE"
+
+instance FromJSON CreativeFieldValuesListSortField where
+    parseJSON = parseJSONText "CreativeFieldValuesListSortField"
+
+instance ToJSON CreativeFieldValuesListSortField where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data FloodlightActivityGroupsListSortField
+    = FAGLSFID
+      -- ^ @ID@
+    | FAGLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivityGroupsListSortField
+
+instance FromHttpApiData FloodlightActivityGroupsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right FAGLSFID
+        "NAME" -> Right FAGLSFName
+        x -> Left ("Unable to parse FloodlightActivityGroupsListSortField from: " <> x)
+
+instance ToHttpApiData FloodlightActivityGroupsListSortField where
+    toQueryParam = \case
+        FAGLSFID -> "ID"
+        FAGLSFName -> "NAME"
+
+instance FromJSON FloodlightActivityGroupsListSortField where
+    parseJSON = parseJSONText "FloodlightActivityGroupsListSortField"
+
+instance ToJSON FloodlightActivityGroupsListSortField where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data OrdersListSortOrder
+    = OLSOAscending
+      -- ^ @ASCENDING@
+    | OLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable OrdersListSortOrder
+
+instance FromHttpApiData OrdersListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right OLSOAscending
+        "DESCENDING" -> Right OLSODescending
+        x -> Left ("Unable to parse OrdersListSortOrder from: " <> x)
+
+instance ToHttpApiData OrdersListSortOrder where
+    toQueryParam = \case
+        OLSOAscending -> "ASCENDING"
+        OLSODescending -> "DESCENDING"
+
+instance FromJSON OrdersListSortOrder where
+    parseJSON = parseJSONText "OrdersListSortOrder"
+
+instance ToJSON OrdersListSortOrder where
+    toJSON = toJSONText
+
+-- | Profile for this account. This is a read-only field that can be left
+-- blank.
+data AccountAccountProFile
+    = AccountProFileBasic
+      -- ^ @ACCOUNT_PROFILE_BASIC@
+    | AccountProFileStandard
+      -- ^ @ACCOUNT_PROFILE_STANDARD@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountAccountProFile
+
+instance FromHttpApiData AccountAccountProFile where
+    parseQueryParam = \case
+        "ACCOUNT_PROFILE_BASIC" -> Right AccountProFileBasic
+        "ACCOUNT_PROFILE_STANDARD" -> Right AccountProFileStandard
+        x -> Left ("Unable to parse AccountAccountProFile from: " <> x)
+
+instance ToHttpApiData AccountAccountProFile where
+    toQueryParam = \case
+        AccountProFileBasic -> "ACCOUNT_PROFILE_BASIC"
+        AccountProFileStandard -> "ACCOUNT_PROFILE_STANDARD"
+
+instance FromJSON AccountAccountProFile where
+    parseJSON = parseJSONText "AccountAccountProFile"
+
+instance ToJSON AccountAccountProFile where
+    toJSON = toJSONText
+
+-- | Type of this creative.This is a required field. Applicable to all
+-- creative types.
+data CreativeType
+    = CTBrandSafeDefaultInstreamVideo
+      -- ^ @BRAND_SAFE_DEFAULT_INSTREAM_VIDEO@
+    | CTCustomDisplay
+      -- ^ @CUSTOM_DISPLAY@
+    | CTCustomDisplayInterstitial
+      -- ^ @CUSTOM_DISPLAY_INTERSTITIAL@
+    | CTDisplay
+      -- ^ @DISPLAY@
+    | CTDisplayImageGallery
+      -- ^ @DISPLAY_IMAGE_GALLERY@
+    | CTDisplayRedirect
+      -- ^ @DISPLAY_REDIRECT@
+    | CTFlashInpage
+      -- ^ @FLASH_INPAGE@
+    | CTHTML5Banner
+      -- ^ @HTML5_BANNER@
+    | CTImage
+      -- ^ @IMAGE@
+    | CTInstreamVideo
+      -- ^ @INSTREAM_VIDEO@
+    | CTInstreamVideoRedirect
+      -- ^ @INSTREAM_VIDEO_REDIRECT@
+    | CTInternalRedirect
+      -- ^ @INTERNAL_REDIRECT@
+    | CTInterstitialInternalRedirect
+      -- ^ @INTERSTITIAL_INTERNAL_REDIRECT@
+    | CTRichMediaDisplayBanner
+      -- ^ @RICH_MEDIA_DISPLAY_BANNER@
+    | CTRichMediaDisplayExpanding
+      -- ^ @RICH_MEDIA_DISPLAY_EXPANDING@
+    | CTRichMediaDisplayInterstitial
+      -- ^ @RICH_MEDIA_DISPLAY_INTERSTITIAL@
+    | CTRichMediaDisplayMultiFloatingInterstitial
+      -- ^ @RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL@
+    | CTRichMediaImExpand
+      -- ^ @RICH_MEDIA_IM_EXPAND@
+    | CTRichMediaInpageFloating
+      -- ^ @RICH_MEDIA_INPAGE_FLOATING@
+    | CTRichMediaMobileInApp
+      -- ^ @RICH_MEDIA_MOBILE_IN_APP@
+    | CTRichMediaPeelDown
+      -- ^ @RICH_MEDIA_PEEL_DOWN@
+    | CTTrackingText
+      -- ^ @TRACKING_TEXT@
+    | CTVpaidLinearVideo
+      -- ^ @VPAID_LINEAR_VIDEO@
+    | CTVpaidNonLinearVideo
+      -- ^ @VPAID_NON_LINEAR_VIDEO@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeType
+
+instance FromHttpApiData CreativeType where
+    parseQueryParam = \case
+        "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO" -> Right CTBrandSafeDefaultInstreamVideo
+        "CUSTOM_DISPLAY" -> Right CTCustomDisplay
+        "CUSTOM_DISPLAY_INTERSTITIAL" -> Right CTCustomDisplayInterstitial
+        "DISPLAY" -> Right CTDisplay
+        "DISPLAY_IMAGE_GALLERY" -> Right CTDisplayImageGallery
+        "DISPLAY_REDIRECT" -> Right CTDisplayRedirect
+        "FLASH_INPAGE" -> Right CTFlashInpage
+        "HTML5_BANNER" -> Right CTHTML5Banner
+        "IMAGE" -> Right CTImage
+        "INSTREAM_VIDEO" -> Right CTInstreamVideo
+        "INSTREAM_VIDEO_REDIRECT" -> Right CTInstreamVideoRedirect
+        "INTERNAL_REDIRECT" -> Right CTInternalRedirect
+        "INTERSTITIAL_INTERNAL_REDIRECT" -> Right CTInterstitialInternalRedirect
+        "RICH_MEDIA_DISPLAY_BANNER" -> Right CTRichMediaDisplayBanner
+        "RICH_MEDIA_DISPLAY_EXPANDING" -> Right CTRichMediaDisplayExpanding
+        "RICH_MEDIA_DISPLAY_INTERSTITIAL" -> Right CTRichMediaDisplayInterstitial
+        "RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL" -> Right CTRichMediaDisplayMultiFloatingInterstitial
+        "RICH_MEDIA_IM_EXPAND" -> Right CTRichMediaImExpand
+        "RICH_MEDIA_INPAGE_FLOATING" -> Right CTRichMediaInpageFloating
+        "RICH_MEDIA_MOBILE_IN_APP" -> Right CTRichMediaMobileInApp
+        "RICH_MEDIA_PEEL_DOWN" -> Right CTRichMediaPeelDown
+        "TRACKING_TEXT" -> Right CTTrackingText
+        "VPAID_LINEAR_VIDEO" -> Right CTVpaidLinearVideo
+        "VPAID_NON_LINEAR_VIDEO" -> Right CTVpaidNonLinearVideo
+        x -> Left ("Unable to parse CreativeType from: " <> x)
+
+instance ToHttpApiData CreativeType where
+    toQueryParam = \case
+        CTBrandSafeDefaultInstreamVideo -> "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO"
+        CTCustomDisplay -> "CUSTOM_DISPLAY"
+        CTCustomDisplayInterstitial -> "CUSTOM_DISPLAY_INTERSTITIAL"
+        CTDisplay -> "DISPLAY"
+        CTDisplayImageGallery -> "DISPLAY_IMAGE_GALLERY"
+        CTDisplayRedirect -> "DISPLAY_REDIRECT"
+        CTFlashInpage -> "FLASH_INPAGE"
+        CTHTML5Banner -> "HTML5_BANNER"
+        CTImage -> "IMAGE"
+        CTInstreamVideo -> "INSTREAM_VIDEO"
+        CTInstreamVideoRedirect -> "INSTREAM_VIDEO_REDIRECT"
+        CTInternalRedirect -> "INTERNAL_REDIRECT"
+        CTInterstitialInternalRedirect -> "INTERSTITIAL_INTERNAL_REDIRECT"
+        CTRichMediaDisplayBanner -> "RICH_MEDIA_DISPLAY_BANNER"
+        CTRichMediaDisplayExpanding -> "RICH_MEDIA_DISPLAY_EXPANDING"
+        CTRichMediaDisplayInterstitial -> "RICH_MEDIA_DISPLAY_INTERSTITIAL"
+        CTRichMediaDisplayMultiFloatingInterstitial -> "RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL"
+        CTRichMediaImExpand -> "RICH_MEDIA_IM_EXPAND"
+        CTRichMediaInpageFloating -> "RICH_MEDIA_INPAGE_FLOATING"
+        CTRichMediaMobileInApp -> "RICH_MEDIA_MOBILE_IN_APP"
+        CTRichMediaPeelDown -> "RICH_MEDIA_PEEL_DOWN"
+        CTTrackingText -> "TRACKING_TEXT"
+        CTVpaidLinearVideo -> "VPAID_LINEAR_VIDEO"
+        CTVpaidNonLinearVideo -> "VPAID_NON_LINEAR_VIDEO"
+
+instance FromJSON CreativeType where
+    parseJSON = parseJSONText "CreativeType"
+
+instance ToJSON CreativeType where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is \'DESCENDING\'.
+data FilesListSortOrder
+    = FLSOAscending
+      -- ^ @ASCENDING@
+      -- Ascending order.
+    | FLSODescending
+      -- ^ @DESCENDING@
+      -- Descending order.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FilesListSortOrder
+
+instance FromHttpApiData FilesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right FLSOAscending
+        "DESCENDING" -> Right FLSODescending
+        x -> Left ("Unable to parse FilesListSortOrder from: " <> x)
+
+instance ToHttpApiData FilesListSortOrder where
+    toQueryParam = \case
+        FLSOAscending -> "ASCENDING"
+        FLSODescending -> "DESCENDING"
+
+instance FromJSON FilesListSortOrder where
+    parseJSON = parseJSONText "FilesListSortOrder"
+
+instance ToJSON FilesListSortOrder where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data AdvertiserGroupsListSortField
+    = AGLSFID
+      -- ^ @ID@
+    | AGLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdvertiserGroupsListSortField
+
+instance FromHttpApiData AdvertiserGroupsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right AGLSFID
+        "NAME" -> Right AGLSFName
+        x -> Left ("Unable to parse AdvertiserGroupsListSortField from: " <> x)
+
+instance ToHttpApiData AdvertiserGroupsListSortField where
+    toQueryParam = \case
+        AGLSFID -> "ID"
+        AGLSFName -> "NAME"
+
+instance FromJSON AdvertiserGroupsListSortField where
+    parseJSON = parseJSONText "AdvertiserGroupsListSortField"
+
+instance ToJSON AdvertiserGroupsListSortField where
+    toJSON = toJSONText
+
+-- | Type of browser window for which the backup image of the flash creative
+-- can be displayed.
+data TargetWindowTargetWindowOption
+    = CurrentWindow
+      -- ^ @CURRENT_WINDOW@
+    | Custom
+      -- ^ @CUSTOM@
+    | NewWindow
+      -- ^ @NEW_WINDOW@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable TargetWindowTargetWindowOption
+
+instance FromHttpApiData TargetWindowTargetWindowOption where
+    parseQueryParam = \case
+        "CURRENT_WINDOW" -> Right CurrentWindow
+        "CUSTOM" -> Right Custom
+        "NEW_WINDOW" -> Right NewWindow
+        x -> Left ("Unable to parse TargetWindowTargetWindowOption from: " <> x)
+
+instance ToHttpApiData TargetWindowTargetWindowOption where
+    toQueryParam = \case
+        CurrentWindow -> "CURRENT_WINDOW"
+        Custom -> "CUSTOM"
+        NewWindow -> "NEW_WINDOW"
+
+instance FromJSON TargetWindowTargetWindowOption where
+    parseJSON = parseJSONText "TargetWindowTargetWindowOption"
+
+instance ToJSON TargetWindowTargetWindowOption where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data DirectorySiteContactsListSortField
+    = DSCLSFID
+      -- ^ @ID@
+    | DSCLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DirectorySiteContactsListSortField
+
+instance FromHttpApiData DirectorySiteContactsListSortField where
+    parseQueryParam = \case
+        "ID" -> Right DSCLSFID
+        "NAME" -> Right DSCLSFName
+        x -> Left ("Unable to parse DirectorySiteContactsListSortField from: " <> x)
+
+instance ToHttpApiData DirectorySiteContactsListSortField where
+    toQueryParam = \case
+        DSCLSFID -> "ID"
+        DSCLSFName -> "NAME"
+
+instance FromJSON DirectorySiteContactsListSortField where
+    parseJSON = parseJSONText "DirectorySiteContactsListSortField"
+
+instance ToJSON DirectorySiteContactsListSortField where
+    toJSON = toJSONText
+
+-- | Select only placements with these pricing types.
+data PlacementsListPricingTypes
+    = PLPTPricingTypeCpa
+      -- ^ @PRICING_TYPE_CPA@
+    | PLPTPricingTypeCpc
+      -- ^ @PRICING_TYPE_CPC@
+    | PLPTPricingTypeCpm
+      -- ^ @PRICING_TYPE_CPM@
+    | PLPTPricingTypeFlatRateClicks
+      -- ^ @PRICING_TYPE_FLAT_RATE_CLICKS@
+    | PLPTPricingTypeFlatRateImpressions
+      -- ^ @PRICING_TYPE_FLAT_RATE_IMPRESSIONS@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementsListPricingTypes
+
+instance FromHttpApiData PlacementsListPricingTypes where
+    parseQueryParam = \case
+        "PRICING_TYPE_CPA" -> Right PLPTPricingTypeCpa
+        "PRICING_TYPE_CPC" -> Right PLPTPricingTypeCpc
+        "PRICING_TYPE_CPM" -> Right PLPTPricingTypeCpm
+        "PRICING_TYPE_FLAT_RATE_CLICKS" -> Right PLPTPricingTypeFlatRateClicks
+        "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" -> Right PLPTPricingTypeFlatRateImpressions
+        x -> Left ("Unable to parse PlacementsListPricingTypes from: " <> x)
+
+instance ToHttpApiData PlacementsListPricingTypes where
+    toQueryParam = \case
+        PLPTPricingTypeCpa -> "PRICING_TYPE_CPA"
+        PLPTPricingTypeCpc -> "PRICING_TYPE_CPC"
+        PLPTPricingTypeCpm -> "PRICING_TYPE_CPM"
+        PLPTPricingTypeFlatRateClicks -> "PRICING_TYPE_FLAT_RATE_CLICKS"
+        PLPTPricingTypeFlatRateImpressions -> "PRICING_TYPE_FLAT_RATE_IMPRESSIONS"
+
+instance FromJSON PlacementsListPricingTypes where
+    parseJSON = parseJSONText "PlacementsListPricingTypes"
+
+instance ToJSON PlacementsListPricingTypes where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data EventTagsListSortOrder
+    = ETLSOAscending
+      -- ^ @ASCENDING@
+    | ETLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable EventTagsListSortOrder
+
+instance FromHttpApiData EventTagsListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right ETLSOAscending
+        "DESCENDING" -> Right ETLSODescending
+        x -> Left ("Unable to parse EventTagsListSortOrder from: " <> x)
+
+instance ToHttpApiData EventTagsListSortOrder where
+    toQueryParam = \case
+        ETLSOAscending -> "ASCENDING"
+        ETLSODescending -> "DESCENDING"
+
+instance FromJSON EventTagsListSortOrder where
+    parseJSON = parseJSONText "EventTagsListSortOrder"
+
+instance ToJSON EventTagsListSortOrder where
+    toJSON = toJSONText
+
+-- | Describes whether the encrypted cookie was received from ad serving (the
+-- %m macro) or from Data Transfer.
+data EncryptionInfoEncryptionSource
+    = AdServing
+      -- ^ @AD_SERVING@
+    | DataTransfer
+      -- ^ @DATA_TRANSFER@
+    | EncryptionScopeUnknown
+      -- ^ @ENCRYPTION_SCOPE_UNKNOWN@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable EncryptionInfoEncryptionSource
+
+instance FromHttpApiData EncryptionInfoEncryptionSource where
+    parseQueryParam = \case
+        "AD_SERVING" -> Right AdServing
+        "DATA_TRANSFER" -> Right DataTransfer
+        "ENCRYPTION_SCOPE_UNKNOWN" -> Right EncryptionScopeUnknown
+        x -> Left ("Unable to parse EncryptionInfoEncryptionSource from: " <> x)
+
+instance ToHttpApiData EncryptionInfoEncryptionSource where
+    toQueryParam = \case
+        AdServing -> "AD_SERVING"
+        DataTransfer -> "DATA_TRANSFER"
+        EncryptionScopeUnknown -> "ENCRYPTION_SCOPE_UNKNOWN"
+
+instance FromJSON EncryptionInfoEncryptionSource where
+    parseJSON = parseJSONText "EncryptionInfoEncryptionSource"
+
+instance ToJSON EncryptionInfoEncryptionSource where
+    toJSON = toJSONText
+
+-- | Field by which to sort the list.
+data DirectorySitesListSortField
+    = DSLSFID
+      -- ^ @ID@
+    | DSLSFName
+      -- ^ @NAME@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DirectorySitesListSortField
+
+instance FromHttpApiData DirectorySitesListSortField where
+    parseQueryParam = \case
+        "ID" -> Right DSLSFID
+        "NAME" -> Right DSLSFName
+        x -> Left ("Unable to parse DirectorySitesListSortField from: " <> x)
+
+instance ToHttpApiData DirectorySitesListSortField where
+    toQueryParam = \case
+        DSLSFID -> "ID"
+        DSLSFName -> "NAME"
+
+instance FromJSON DirectorySitesListSortField where
+    parseJSON = parseJSONText "DirectorySitesListSortField"
+
+instance ToJSON DirectorySitesListSortField where
+    toJSON = toJSONText
+
+-- | The dimension option.
+data ReportCrossDimensionReachCriteriaDimension
+    = RCDRCDAdvertiser
+      -- ^ @ADVERTISER@
+    | RCDRCDCampaign
+      -- ^ @CAMPAIGN@
+    | RCDRCDSiteByAdvertiser
+      -- ^ @SITE_BY_ADVERTISER@
+    | RCDRCDSiteByCampaign
+      -- ^ @SITE_BY_CAMPAIGN@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportCrossDimensionReachCriteriaDimension
+
+instance FromHttpApiData ReportCrossDimensionReachCriteriaDimension where
+    parseQueryParam = \case
+        "ADVERTISER" -> Right RCDRCDAdvertiser
+        "CAMPAIGN" -> Right RCDRCDCampaign
+        "SITE_BY_ADVERTISER" -> Right RCDRCDSiteByAdvertiser
+        "SITE_BY_CAMPAIGN" -> Right RCDRCDSiteByCampaign
+        x -> Left ("Unable to parse ReportCrossDimensionReachCriteriaDimension from: " <> x)
+
+instance ToHttpApiData ReportCrossDimensionReachCriteriaDimension where
+    toQueryParam = \case
+        RCDRCDAdvertiser -> "ADVERTISER"
+        RCDRCDCampaign -> "CAMPAIGN"
+        RCDRCDSiteByAdvertiser -> "SITE_BY_ADVERTISER"
+        RCDRCDSiteByCampaign -> "SITE_BY_CAMPAIGN"
+
+instance FromJSON ReportCrossDimensionReachCriteriaDimension where
+    parseJSON = parseJSONText "ReportCrossDimensionReachCriteriaDimension"
+
+instance ToJSON ReportCrossDimensionReachCriteriaDimension where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data SitesListSortOrder
+    = SLSOAscending
+      -- ^ @ASCENDING@
+    | SLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable SitesListSortOrder
+
+instance FromHttpApiData SitesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right SLSOAscending
+        "DESCENDING" -> Right SLSODescending
+        x -> Left ("Unable to parse SitesListSortOrder from: " <> x)
+
+instance ToHttpApiData SitesListSortOrder where
+    toQueryParam = \case
+        SLSOAscending -> "ASCENDING"
+        SLSODescending -> "DESCENDING"
+
+instance FromJSON SitesListSortOrder where
+    parseJSON = parseJSONText "SitesListSortOrder"
+
+instance ToJSON SitesListSortOrder where
+    toJSON = toJSONText
+
+data PlacementTagFormatsItem
+    = PTFIPlacementTagClickCommands
+      -- ^ @PLACEMENT_TAG_CLICK_COMMANDS@
+    | PTFIPlacementTagIframeIlayer
+      -- ^ @PLACEMENT_TAG_IFRAME_ILAYER@
+    | PTFIPlacementTagIframeJavascript
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT@
+    | PTFIPlacementTagIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY@
+    | PTFIPlacementTagInstreamVideoPrefetch
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH@
+    | PTFIPlacementTagInstreamVideoPrefetchVast3
+      -- ^ @PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3@
+    | PTFIPlacementTagInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERNAL_REDIRECT@
+    | PTFIPlacementTagInterstitialIframeJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT@
+    | PTFIPlacementTagInterstitialIframeJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY@
+    | PTFIPlacementTagInterstitialInternalRedirect
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT@
+    | PTFIPlacementTagInterstitialJavascript
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT@
+    | PTFIPlacementTagInterstitialJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY@
+    | PTFIPlacementTagJavascript
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT@
+    | PTFIPlacementTagJavascriptLegacy
+      -- ^ @PLACEMENT_TAG_JAVASCRIPT_LEGACY@
+    | PTFIPlacementTagStandard
+      -- ^ @PLACEMENT_TAG_STANDARD@
+    | PTFIPlacementTagTracking
+      -- ^ @PLACEMENT_TAG_TRACKING@
+    | PTFIPlacementTagTrackingIframe
+      -- ^ @PLACEMENT_TAG_TRACKING_IFRAME@
+    | PTFIPlacementTagTrackingJavascript
+      -- ^ @PLACEMENT_TAG_TRACKING_JAVASCRIPT@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PlacementTagFormatsItem
+
+instance FromHttpApiData PlacementTagFormatsItem where
+    parseQueryParam = \case
+        "PLACEMENT_TAG_CLICK_COMMANDS" -> Right PTFIPlacementTagClickCommands
+        "PLACEMENT_TAG_IFRAME_ILAYER" -> Right PTFIPlacementTagIframeIlayer
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT" -> Right PTFIPlacementTagIframeJavascript
+        "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY" -> Right PTFIPlacementTagIframeJavascriptLegacy
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH" -> Right PTFIPlacementTagInstreamVideoPrefetch
+        "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3" -> Right PTFIPlacementTagInstreamVideoPrefetchVast3
+        "PLACEMENT_TAG_INTERNAL_REDIRECT" -> Right PTFIPlacementTagInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT" -> Right PTFIPlacementTagInterstitialIframeJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY" -> Right PTFIPlacementTagInterstitialIframeJavascriptLegacy
+        "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT" -> Right PTFIPlacementTagInterstitialInternalRedirect
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT" -> Right PTFIPlacementTagInterstitialJavascript
+        "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY" -> Right PTFIPlacementTagInterstitialJavascriptLegacy
+        "PLACEMENT_TAG_JAVASCRIPT" -> Right PTFIPlacementTagJavascript
+        "PLACEMENT_TAG_JAVASCRIPT_LEGACY" -> Right PTFIPlacementTagJavascriptLegacy
+        "PLACEMENT_TAG_STANDARD" -> Right PTFIPlacementTagStandard
+        "PLACEMENT_TAG_TRACKING" -> Right PTFIPlacementTagTracking
+        "PLACEMENT_TAG_TRACKING_IFRAME" -> Right PTFIPlacementTagTrackingIframe
+        "PLACEMENT_TAG_TRACKING_JAVASCRIPT" -> Right PTFIPlacementTagTrackingJavascript
+        x -> Left ("Unable to parse PlacementTagFormatsItem from: " <> x)
+
+instance ToHttpApiData PlacementTagFormatsItem where
+    toQueryParam = \case
+        PTFIPlacementTagClickCommands -> "PLACEMENT_TAG_CLICK_COMMANDS"
+        PTFIPlacementTagIframeIlayer -> "PLACEMENT_TAG_IFRAME_ILAYER"
+        PTFIPlacementTagIframeJavascript -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+        PTFIPlacementTagIframeJavascriptLegacy -> "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY"
+        PTFIPlacementTagInstreamVideoPrefetch -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        PTFIPlacementTagInstreamVideoPrefetchVast3 -> "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        PTFIPlacementTagInternalRedirect -> "PLACEMENT_TAG_INTERNAL_REDIRECT"
+        PTFIPlacementTagInterstitialIframeJavascript -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+        PTFIPlacementTagInterstitialIframeJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY"
+        PTFIPlacementTagInterstitialInternalRedirect -> "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+        PTFIPlacementTagInterstitialJavascript -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+        PTFIPlacementTagInterstitialJavascriptLegacy -> "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY"
+        PTFIPlacementTagJavascript -> "PLACEMENT_TAG_JAVASCRIPT"
+        PTFIPlacementTagJavascriptLegacy -> "PLACEMENT_TAG_JAVASCRIPT_LEGACY"
+        PTFIPlacementTagStandard -> "PLACEMENT_TAG_STANDARD"
+        PTFIPlacementTagTracking -> "PLACEMENT_TAG_TRACKING"
+        PTFIPlacementTagTrackingIframe -> "PLACEMENT_TAG_TRACKING_IFRAME"
+        PTFIPlacementTagTrackingJavascript -> "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+
+instance FromJSON PlacementTagFormatsItem where
+    parseJSON = parseJSONText "PlacementTagFormatsItem"
+
+instance ToJSON PlacementTagFormatsItem where
+    toJSON = toJSONText
+
+-- | Type of the object of this dynamic targeting key. This is a required
+-- field.
+data DynamicTargetingKeyObjectType
+    = DTKOTObjectAd
+      -- ^ @OBJECT_AD@
+    | DTKOTObjectAdvertiser
+      -- ^ @OBJECT_ADVERTISER@
+    | DTKOTObjectCreative
+      -- ^ @OBJECT_CREATIVE@
+    | DTKOTObjectPlacement
+      -- ^ @OBJECT_PLACEMENT@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable DynamicTargetingKeyObjectType
+
+instance FromHttpApiData DynamicTargetingKeyObjectType where
+    parseQueryParam = \case
+        "OBJECT_AD" -> Right DTKOTObjectAd
+        "OBJECT_ADVERTISER" -> Right DTKOTObjectAdvertiser
+        "OBJECT_CREATIVE" -> Right DTKOTObjectCreative
+        "OBJECT_PLACEMENT" -> Right DTKOTObjectPlacement
+        x -> Left ("Unable to parse DynamicTargetingKeyObjectType from: " <> x)
+
+instance ToHttpApiData DynamicTargetingKeyObjectType where
+    toQueryParam = \case
+        DTKOTObjectAd -> "OBJECT_AD"
+        DTKOTObjectAdvertiser -> "OBJECT_ADVERTISER"
+        DTKOTObjectCreative -> "OBJECT_CREATIVE"
+        DTKOTObjectPlacement -> "OBJECT_PLACEMENT"
+
+instance FromJSON DynamicTargetingKeyObjectType where
+    parseJSON = parseJSONText "DynamicTargetingKeyObjectType"
+
+instance ToJSON DynamicTargetingKeyObjectType where
+    toJSON = toJSONText
+
+-- | The type of the report.
+data ReportType
+    = RTCrossDimensionReach
+      -- ^ @CROSS_DIMENSION_REACH@
+    | RTFloodlight
+      -- ^ @FLOODLIGHT@
+    | RTPathToConversion
+      -- ^ @PATH_TO_CONVERSION@
+    | RTReach
+      -- ^ @REACH@
+    | RTStandard
+      -- ^ @STANDARD@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ReportType
+
+instance FromHttpApiData ReportType where
+    parseQueryParam = \case
+        "CROSS_DIMENSION_REACH" -> Right RTCrossDimensionReach
+        "FLOODLIGHT" -> Right RTFloodlight
+        "PATH_TO_CONVERSION" -> Right RTPathToConversion
+        "REACH" -> Right RTReach
+        "STANDARD" -> Right RTStandard
+        x -> Left ("Unable to parse ReportType from: " <> x)
+
+instance ToHttpApiData ReportType where
+    toQueryParam = \case
+        RTCrossDimensionReach -> "CROSS_DIMENSION_REACH"
+        RTFloodlight -> "FLOODLIGHT"
+        RTPathToConversion -> "PATH_TO_CONVERSION"
+        RTReach -> "REACH"
+        RTStandard -> "STANDARD"
+
+instance FromJSON ReportType where
+    parseJSON = parseJSONText "ReportType"
+
+instance ToJSON ReportType where
+    toJSON = toJSONText
+
+data CreativeAssetMetadataWarnedValidationRulesItem
+    = ADMobReferenced
+      -- ^ @ADMOB_REFERENCED@
+    | AssetFormatUnsupportedDcm
+      -- ^ @ASSET_FORMAT_UNSUPPORTED_DCM@
+    | AssetInvalid
+      -- ^ @ASSET_INVALID@
+    | ClickTagHardCoded
+      -- ^ @CLICK_TAG_HARD_CODED@
+    | ClickTagInvalid
+      -- ^ @CLICK_TAG_INVALID@
+    | ClickTagInGwd
+      -- ^ @CLICK_TAG_IN_GWD@
+    | ClickTagMissing
+      -- ^ @CLICK_TAG_MISSING@
+    | ClickTagMoreThanOne
+      -- ^ @CLICK_TAG_MORE_THAN_ONE@
+    | ClickTagNonTopLevel
+      -- ^ @CLICK_TAG_NON_TOP_LEVEL@
+    | ComponentUnsupportedDcm
+      -- ^ @COMPONENT_UNSUPPORTED_DCM@
+    | EnablerUnsupportedMethodDcm
+      -- ^ @ENABLER_UNSUPPORTED_METHOD_DCM@
+    | ExternalFileReferenced
+      -- ^ @EXTERNAL_FILE_REFERENCED@
+    | FileDetailEmpty
+      -- ^ @FILE_DETAIL_EMPTY@
+    | FileTypeInvalid
+      -- ^ @FILE_TYPE_INVALID@
+    | GwdPropertiesInvalid
+      -- ^ @GWD_PROPERTIES_INVALID@
+    | HTML5FeatureUnsupported
+      -- ^ @HTML5_FEATURE_UNSUPPORTED@
+    | LinkedFileNotFound
+      -- ^ @LINKED_FILE_NOT_FOUND@
+    | MaxFlashVersion11
+      -- ^ @MAX_FLASH_VERSION_11@
+    | MraidReferenced
+      -- ^ @MRAID_REFERENCED@
+    | NotSSLCompliant
+      -- ^ @NOT_SSL_COMPLIANT@
+    | OrphanedAsset
+      -- ^ @ORPHANED_ASSET@
+    | PrimaryHTMLMissing
+      -- ^ @PRIMARY_HTML_MISSING@
+    | SvgInvalid
+      -- ^ @SVG_INVALID@
+    | ZipInvalid
+      -- ^ @ZIP_INVALID@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetMetadataWarnedValidationRulesItem
+
+instance FromHttpApiData CreativeAssetMetadataWarnedValidationRulesItem where
+    parseQueryParam = \case
+        "ADMOB_REFERENCED" -> Right ADMobReferenced
+        "ASSET_FORMAT_UNSUPPORTED_DCM" -> Right AssetFormatUnsupportedDcm
+        "ASSET_INVALID" -> Right AssetInvalid
+        "CLICK_TAG_HARD_CODED" -> Right ClickTagHardCoded
+        "CLICK_TAG_INVALID" -> Right ClickTagInvalid
+        "CLICK_TAG_IN_GWD" -> Right ClickTagInGwd
+        "CLICK_TAG_MISSING" -> Right ClickTagMissing
+        "CLICK_TAG_MORE_THAN_ONE" -> Right ClickTagMoreThanOne
+        "CLICK_TAG_NON_TOP_LEVEL" -> Right ClickTagNonTopLevel
+        "COMPONENT_UNSUPPORTED_DCM" -> Right ComponentUnsupportedDcm
+        "ENABLER_UNSUPPORTED_METHOD_DCM" -> Right EnablerUnsupportedMethodDcm
+        "EXTERNAL_FILE_REFERENCED" -> Right ExternalFileReferenced
+        "FILE_DETAIL_EMPTY" -> Right FileDetailEmpty
+        "FILE_TYPE_INVALID" -> Right FileTypeInvalid
+        "GWD_PROPERTIES_INVALID" -> Right GwdPropertiesInvalid
+        "HTML5_FEATURE_UNSUPPORTED" -> Right HTML5FeatureUnsupported
+        "LINKED_FILE_NOT_FOUND" -> Right LinkedFileNotFound
+        "MAX_FLASH_VERSION_11" -> Right MaxFlashVersion11
+        "MRAID_REFERENCED" -> Right MraidReferenced
+        "NOT_SSL_COMPLIANT" -> Right NotSSLCompliant
+        "ORPHANED_ASSET" -> Right OrphanedAsset
+        "PRIMARY_HTML_MISSING" -> Right PrimaryHTMLMissing
+        "SVG_INVALID" -> Right SvgInvalid
+        "ZIP_INVALID" -> Right ZipInvalid
+        x -> Left ("Unable to parse CreativeAssetMetadataWarnedValidationRulesItem from: " <> x)
+
+instance ToHttpApiData CreativeAssetMetadataWarnedValidationRulesItem where
+    toQueryParam = \case
+        ADMobReferenced -> "ADMOB_REFERENCED"
+        AssetFormatUnsupportedDcm -> "ASSET_FORMAT_UNSUPPORTED_DCM"
+        AssetInvalid -> "ASSET_INVALID"
+        ClickTagHardCoded -> "CLICK_TAG_HARD_CODED"
+        ClickTagInvalid -> "CLICK_TAG_INVALID"
+        ClickTagInGwd -> "CLICK_TAG_IN_GWD"
+        ClickTagMissing -> "CLICK_TAG_MISSING"
+        ClickTagMoreThanOne -> "CLICK_TAG_MORE_THAN_ONE"
+        ClickTagNonTopLevel -> "CLICK_TAG_NON_TOP_LEVEL"
+        ComponentUnsupportedDcm -> "COMPONENT_UNSUPPORTED_DCM"
+        EnablerUnsupportedMethodDcm -> "ENABLER_UNSUPPORTED_METHOD_DCM"
+        ExternalFileReferenced -> "EXTERNAL_FILE_REFERENCED"
+        FileDetailEmpty -> "FILE_DETAIL_EMPTY"
+        FileTypeInvalid -> "FILE_TYPE_INVALID"
+        GwdPropertiesInvalid -> "GWD_PROPERTIES_INVALID"
+        HTML5FeatureUnsupported -> "HTML5_FEATURE_UNSUPPORTED"
+        LinkedFileNotFound -> "LINKED_FILE_NOT_FOUND"
+        MaxFlashVersion11 -> "MAX_FLASH_VERSION_11"
+        MraidReferenced -> "MRAID_REFERENCED"
+        NotSSLCompliant -> "NOT_SSL_COMPLIANT"
+        OrphanedAsset -> "ORPHANED_ASSET"
+        PrimaryHTMLMissing -> "PRIMARY_HTML_MISSING"
+        SvgInvalid -> "SVG_INVALID"
+        ZipInvalid -> "ZIP_INVALID"
+
+instance FromJSON CreativeAssetMetadataWarnedValidationRulesItem where
+    parseJSON = parseJSONText "CreativeAssetMetadataWarnedValidationRulesItem"
+
+instance ToJSON CreativeAssetMetadataWarnedValidationRulesItem where
+    toJSON = toJSONText
+
+-- | Payment source type of this ad slot.
+data AdSlotPaymentSourceType
+    = PlanningPaymentSourceTypeAgencyPaid
+      -- ^ @PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID@
+    | PlanningPaymentSourceTypePublisherPaid
+      -- ^ @PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdSlotPaymentSourceType
+
+instance FromHttpApiData AdSlotPaymentSourceType where
+    parseQueryParam = \case
+        "PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID" -> Right PlanningPaymentSourceTypeAgencyPaid
+        "PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID" -> Right PlanningPaymentSourceTypePublisherPaid
+        x -> Left ("Unable to parse AdSlotPaymentSourceType from: " <> x)
+
+instance ToHttpApiData AdSlotPaymentSourceType where
+    toQueryParam = \case
+        PlanningPaymentSourceTypeAgencyPaid -> "PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID"
+        PlanningPaymentSourceTypePublisherPaid -> "PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID"
+
+instance FromJSON AdSlotPaymentSourceType where
+    parseJSON = parseJSONText "AdSlotPaymentSourceType"
+
+instance ToJSON AdSlotPaymentSourceType where
+    toJSON = toJSONText
+
+data AccountPermissionAccountProFilesItem
+    = APAPFIAccountProFileBasic
+      -- ^ @ACCOUNT_PROFILE_BASIC@
+    | APAPFIAccountProFileStandard
+      -- ^ @ACCOUNT_PROFILE_STANDARD@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AccountPermissionAccountProFilesItem
+
+instance FromHttpApiData AccountPermissionAccountProFilesItem where
+    parseQueryParam = \case
+        "ACCOUNT_PROFILE_BASIC" -> Right APAPFIAccountProFileBasic
+        "ACCOUNT_PROFILE_STANDARD" -> Right APAPFIAccountProFileStandard
+        x -> Left ("Unable to parse AccountPermissionAccountProFilesItem from: " <> x)
+
+instance ToHttpApiData AccountPermissionAccountProFilesItem where
+    toQueryParam = \case
+        APAPFIAccountProFileBasic -> "ACCOUNT_PROFILE_BASIC"
+        APAPFIAccountProFileStandard -> "ACCOUNT_PROFILE_STANDARD"
+
+instance FromJSON AccountPermissionAccountProFilesItem where
+    parseJSON = parseJSONText "AccountPermissionAccountProFilesItem"
+
+instance ToJSON AccountPermissionAccountProFilesItem where
+    toJSON = toJSONText
+
+-- | Type of the event. This is a read-only field.
+data CreativeCustomEventAdvertiserCustomEventType
+    = AdvertiserEventCounter
+      -- ^ @ADVERTISER_EVENT_COUNTER@
+    | AdvertiserEventExit
+      -- ^ @ADVERTISER_EVENT_EXIT@
+    | AdvertiserEventTimer
+      -- ^ @ADVERTISER_EVENT_TIMER@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeCustomEventAdvertiserCustomEventType
+
+instance FromHttpApiData CreativeCustomEventAdvertiserCustomEventType where
+    parseQueryParam = \case
+        "ADVERTISER_EVENT_COUNTER" -> Right AdvertiserEventCounter
+        "ADVERTISER_EVENT_EXIT" -> Right AdvertiserEventExit
+        "ADVERTISER_EVENT_TIMER" -> Right AdvertiserEventTimer
+        x -> Left ("Unable to parse CreativeCustomEventAdvertiserCustomEventType from: " <> x)
+
+instance ToHttpApiData CreativeCustomEventAdvertiserCustomEventType where
+    toQueryParam = \case
+        AdvertiserEventCounter -> "ADVERTISER_EVENT_COUNTER"
+        AdvertiserEventExit -> "ADVERTISER_EVENT_EXIT"
+        AdvertiserEventTimer -> "ADVERTISER_EVENT_TIMER"
+
+instance FromJSON CreativeCustomEventAdvertiserCustomEventType where
+    parseJSON = parseJSONText "CreativeCustomEventAdvertiserCustomEventType"
+
+instance ToJSON CreativeCustomEventAdvertiserCustomEventType where
+    toJSON = toJSONText
+
+-- | Select only change logs with the specified object type.
+data ChangeLogsListObjectType
+    = CLLOTObjectAccount
+      -- ^ @OBJECT_ACCOUNT@
+    | CLLOTObjectAccountBillingFeature
+      -- ^ @OBJECT_ACCOUNT_BILLING_FEATURE@
+    | CLLOTObjectAd
+      -- ^ @OBJECT_AD@
+    | CLLOTObjectAdvertiser
+      -- ^ @OBJECT_ADVERTISER@
+    | CLLOTObjectAdvertiserGroup
+      -- ^ @OBJECT_ADVERTISER_GROUP@
+    | CLLOTObjectBillingAccountGroup
+      -- ^ @OBJECT_BILLING_ACCOUNT_GROUP@
+    | CLLOTObjectBillingFeature
+      -- ^ @OBJECT_BILLING_FEATURE@
+    | CLLOTObjectBillingMinimumFee
+      -- ^ @OBJECT_BILLING_MINIMUM_FEE@
+    | CLLOTObjectBillingProFile
+      -- ^ @OBJECT_BILLING_PROFILE@
+    | CLLOTObjectCampaign
+      -- ^ @OBJECT_CAMPAIGN@
+    | CLLOTObjectContentCategory
+      -- ^ @OBJECT_CONTENT_CATEGORY@
+    | CLLOTObjectCreative
+      -- ^ @OBJECT_CREATIVE@
+    | CLLOTObjectCreativeAsset
+      -- ^ @OBJECT_CREATIVE_ASSET@
+    | CLLOTObjectCreativeBundle
+      -- ^ @OBJECT_CREATIVE_BUNDLE@
+    | CLLOTObjectCreativeField
+      -- ^ @OBJECT_CREATIVE_FIELD@
+    | CLLOTObjectCreativeGroup
+      -- ^ @OBJECT_CREATIVE_GROUP@
+    | CLLOTObjectDfaSite
+      -- ^ @OBJECT_DFA_SITE@
+    | CLLOTObjectEventTag
+      -- ^ @OBJECT_EVENT_TAG@
+    | CLLOTObjectFloodlightActivityGroup
+      -- ^ @OBJECT_FLOODLIGHT_ACTIVITY_GROUP@
+    | CLLOTObjectFloodlightActvity
+      -- ^ @OBJECT_FLOODLIGHT_ACTVITY@
+    | CLLOTObjectFloodlightConfiguration
+      -- ^ @OBJECT_FLOODLIGHT_CONFIGURATION@
+    | CLLOTObjectInstreamCreative
+      -- ^ @OBJECT_INSTREAM_CREATIVE@
+    | CLLOTObjectLandingPage
+      -- ^ @OBJECT_LANDING_PAGE@
+    | CLLOTObjectMediaOrder
+      -- ^ @OBJECT_MEDIA_ORDER@
+    | CLLOTObjectPlacement
+      -- ^ @OBJECT_PLACEMENT@
+    | CLLOTObjectPlacementStrategy
+      -- ^ @OBJECT_PLACEMENT_STRATEGY@
+    | CLLOTObjectPlaystoreLink
+      -- ^ @OBJECT_PLAYSTORE_LINK@
+    | CLLOTObjectProvidedListClient
+      -- ^ @OBJECT_PROVIDED_LIST_CLIENT@
+    | CLLOTObjectRateCard
+      -- ^ @OBJECT_RATE_CARD@
+    | CLLOTObjectRemarketingList
+      -- ^ @OBJECT_REMARKETING_LIST@
+    | CLLOTObjectRichmediaCreative
+      -- ^ @OBJECT_RICHMEDIA_CREATIVE@
+    | CLLOTObjectSdSite
+      -- ^ @OBJECT_SD_SITE@
+    | CLLOTObjectSize
+      -- ^ @OBJECT_SIZE@
+    | CLLOTObjectSubAccount
+      -- ^ @OBJECT_SUBACCOUNT@
+    | CLLOTObjectUserProFile
+      -- ^ @OBJECT_USER_PROFILE@
+    | CLLOTObjectUserProFileFilter
+      -- ^ @OBJECT_USER_PROFILE_FILTER@
+    | CLLOTObjectUserRole
+      -- ^ @OBJECT_USER_ROLE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ChangeLogsListObjectType
+
+instance FromHttpApiData ChangeLogsListObjectType where
+    parseQueryParam = \case
+        "OBJECT_ACCOUNT" -> Right CLLOTObjectAccount
+        "OBJECT_ACCOUNT_BILLING_FEATURE" -> Right CLLOTObjectAccountBillingFeature
+        "OBJECT_AD" -> Right CLLOTObjectAd
+        "OBJECT_ADVERTISER" -> Right CLLOTObjectAdvertiser
+        "OBJECT_ADVERTISER_GROUP" -> Right CLLOTObjectAdvertiserGroup
+        "OBJECT_BILLING_ACCOUNT_GROUP" -> Right CLLOTObjectBillingAccountGroup
+        "OBJECT_BILLING_FEATURE" -> Right CLLOTObjectBillingFeature
+        "OBJECT_BILLING_MINIMUM_FEE" -> Right CLLOTObjectBillingMinimumFee
+        "OBJECT_BILLING_PROFILE" -> Right CLLOTObjectBillingProFile
+        "OBJECT_CAMPAIGN" -> Right CLLOTObjectCampaign
+        "OBJECT_CONTENT_CATEGORY" -> Right CLLOTObjectContentCategory
+        "OBJECT_CREATIVE" -> Right CLLOTObjectCreative
+        "OBJECT_CREATIVE_ASSET" -> Right CLLOTObjectCreativeAsset
+        "OBJECT_CREATIVE_BUNDLE" -> Right CLLOTObjectCreativeBundle
+        "OBJECT_CREATIVE_FIELD" -> Right CLLOTObjectCreativeField
+        "OBJECT_CREATIVE_GROUP" -> Right CLLOTObjectCreativeGroup
+        "OBJECT_DFA_SITE" -> Right CLLOTObjectDfaSite
+        "OBJECT_EVENT_TAG" -> Right CLLOTObjectEventTag
+        "OBJECT_FLOODLIGHT_ACTIVITY_GROUP" -> Right CLLOTObjectFloodlightActivityGroup
+        "OBJECT_FLOODLIGHT_ACTVITY" -> Right CLLOTObjectFloodlightActvity
+        "OBJECT_FLOODLIGHT_CONFIGURATION" -> Right CLLOTObjectFloodlightConfiguration
+        "OBJECT_INSTREAM_CREATIVE" -> Right CLLOTObjectInstreamCreative
+        "OBJECT_LANDING_PAGE" -> Right CLLOTObjectLandingPage
+        "OBJECT_MEDIA_ORDER" -> Right CLLOTObjectMediaOrder
+        "OBJECT_PLACEMENT" -> Right CLLOTObjectPlacement
+        "OBJECT_PLACEMENT_STRATEGY" -> Right CLLOTObjectPlacementStrategy
+        "OBJECT_PLAYSTORE_LINK" -> Right CLLOTObjectPlaystoreLink
+        "OBJECT_PROVIDED_LIST_CLIENT" -> Right CLLOTObjectProvidedListClient
+        "OBJECT_RATE_CARD" -> Right CLLOTObjectRateCard
+        "OBJECT_REMARKETING_LIST" -> Right CLLOTObjectRemarketingList
+        "OBJECT_RICHMEDIA_CREATIVE" -> Right CLLOTObjectRichmediaCreative
+        "OBJECT_SD_SITE" -> Right CLLOTObjectSdSite
+        "OBJECT_SIZE" -> Right CLLOTObjectSize
+        "OBJECT_SUBACCOUNT" -> Right CLLOTObjectSubAccount
+        "OBJECT_USER_PROFILE" -> Right CLLOTObjectUserProFile
+        "OBJECT_USER_PROFILE_FILTER" -> Right CLLOTObjectUserProFileFilter
+        "OBJECT_USER_ROLE" -> Right CLLOTObjectUserRole
+        x -> Left ("Unable to parse ChangeLogsListObjectType from: " <> x)
+
+instance ToHttpApiData ChangeLogsListObjectType where
+    toQueryParam = \case
+        CLLOTObjectAccount -> "OBJECT_ACCOUNT"
+        CLLOTObjectAccountBillingFeature -> "OBJECT_ACCOUNT_BILLING_FEATURE"
+        CLLOTObjectAd -> "OBJECT_AD"
+        CLLOTObjectAdvertiser -> "OBJECT_ADVERTISER"
+        CLLOTObjectAdvertiserGroup -> "OBJECT_ADVERTISER_GROUP"
+        CLLOTObjectBillingAccountGroup -> "OBJECT_BILLING_ACCOUNT_GROUP"
+        CLLOTObjectBillingFeature -> "OBJECT_BILLING_FEATURE"
+        CLLOTObjectBillingMinimumFee -> "OBJECT_BILLING_MINIMUM_FEE"
+        CLLOTObjectBillingProFile -> "OBJECT_BILLING_PROFILE"
+        CLLOTObjectCampaign -> "OBJECT_CAMPAIGN"
+        CLLOTObjectContentCategory -> "OBJECT_CONTENT_CATEGORY"
+        CLLOTObjectCreative -> "OBJECT_CREATIVE"
+        CLLOTObjectCreativeAsset -> "OBJECT_CREATIVE_ASSET"
+        CLLOTObjectCreativeBundle -> "OBJECT_CREATIVE_BUNDLE"
+        CLLOTObjectCreativeField -> "OBJECT_CREATIVE_FIELD"
+        CLLOTObjectCreativeGroup -> "OBJECT_CREATIVE_GROUP"
+        CLLOTObjectDfaSite -> "OBJECT_DFA_SITE"
+        CLLOTObjectEventTag -> "OBJECT_EVENT_TAG"
+        CLLOTObjectFloodlightActivityGroup -> "OBJECT_FLOODLIGHT_ACTIVITY_GROUP"
+        CLLOTObjectFloodlightActvity -> "OBJECT_FLOODLIGHT_ACTVITY"
+        CLLOTObjectFloodlightConfiguration -> "OBJECT_FLOODLIGHT_CONFIGURATION"
+        CLLOTObjectInstreamCreative -> "OBJECT_INSTREAM_CREATIVE"
+        CLLOTObjectLandingPage -> "OBJECT_LANDING_PAGE"
+        CLLOTObjectMediaOrder -> "OBJECT_MEDIA_ORDER"
+        CLLOTObjectPlacement -> "OBJECT_PLACEMENT"
+        CLLOTObjectPlacementStrategy -> "OBJECT_PLACEMENT_STRATEGY"
+        CLLOTObjectPlaystoreLink -> "OBJECT_PLAYSTORE_LINK"
+        CLLOTObjectProvidedListClient -> "OBJECT_PROVIDED_LIST_CLIENT"
+        CLLOTObjectRateCard -> "OBJECT_RATE_CARD"
+        CLLOTObjectRemarketingList -> "OBJECT_REMARKETING_LIST"
+        CLLOTObjectRichmediaCreative -> "OBJECT_RICHMEDIA_CREATIVE"
+        CLLOTObjectSdSite -> "OBJECT_SD_SITE"
+        CLLOTObjectSize -> "OBJECT_SIZE"
+        CLLOTObjectSubAccount -> "OBJECT_SUBACCOUNT"
+        CLLOTObjectUserProFile -> "OBJECT_USER_PROFILE"
+        CLLOTObjectUserProFileFilter -> "OBJECT_USER_PROFILE_FILTER"
+        CLLOTObjectUserRole -> "OBJECT_USER_ROLE"
+
+instance FromJSON ChangeLogsListObjectType where
+    parseJSON = parseJSONText "ChangeLogsListObjectType"
+
+instance ToJSON ChangeLogsListObjectType where
+    toJSON = toJSONText
+
+-- | Cap cost type of this inventory item.
+data PricingCapCostType
+    = PlanningPlacementCapCostTypeCumulative
+      -- ^ @PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE@
+    | PlanningPlacementCapCostTypeMonthly
+      -- ^ @PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY@
+    | PlanningPlacementCapCostTypeNone
+      -- ^ @PLANNING_PLACEMENT_CAP_COST_TYPE_NONE@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PricingCapCostType
+
+instance FromHttpApiData PricingCapCostType where
+    parseQueryParam = \case
+        "PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE" -> Right PlanningPlacementCapCostTypeCumulative
+        "PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY" -> Right PlanningPlacementCapCostTypeMonthly
+        "PLANNING_PLACEMENT_CAP_COST_TYPE_NONE" -> Right PlanningPlacementCapCostTypeNone
+        x -> Left ("Unable to parse PricingCapCostType from: " <> x)
+
+instance ToHttpApiData PricingCapCostType where
+    toQueryParam = \case
+        PlanningPlacementCapCostTypeCumulative -> "PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE"
+        PlanningPlacementCapCostTypeMonthly -> "PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY"
+        PlanningPlacementCapCostTypeNone -> "PLANNING_PLACEMENT_CAP_COST_TYPE_NONE"
+
+instance FromJSON PricingCapCostType where
+    parseJSON = parseJSONText "PricingCapCostType"
+
+instance ToJSON PricingCapCostType where
+    toJSON = toJSONText
+
+-- | Type of rich media asset. This is a read-only field. Applicable to the
+-- following creative types: all RICH_MEDIA.
+data CreativeAssetDisplayType
+    = AssetDisplayTypeExpanding
+      -- ^ @ASSET_DISPLAY_TYPE_EXPANDING@
+    | AssetDisplayTypeFlashInFlash
+      -- ^ @ASSET_DISPLAY_TYPE_FLASH_IN_FLASH@
+    | AssetDisplayTypeFlashInFlashExpanding
+      -- ^ @ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING@
+    | AssetDisplayTypeFloating
+      -- ^ @ASSET_DISPLAY_TYPE_FLOATING@
+    | AssetDisplayTypeInpage
+      -- ^ @ASSET_DISPLAY_TYPE_INPAGE@
+    | AssetDisplayTypeOverlay
+      -- ^ @ASSET_DISPLAY_TYPE_OVERLAY@
+    | AssetDisplayTypePeelDown
+      -- ^ @ASSET_DISPLAY_TYPE_PEEL_DOWN@
+    | AssetDisplayTypeVpaidLinear
+      -- ^ @ASSET_DISPLAY_TYPE_VPAID_LINEAR@
+    | AssetDisplayTypeVpaidNonLinear
+      -- ^ @ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable CreativeAssetDisplayType
+
+instance FromHttpApiData CreativeAssetDisplayType where
+    parseQueryParam = \case
+        "ASSET_DISPLAY_TYPE_EXPANDING" -> Right AssetDisplayTypeExpanding
+        "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH" -> Right AssetDisplayTypeFlashInFlash
+        "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING" -> Right AssetDisplayTypeFlashInFlashExpanding
+        "ASSET_DISPLAY_TYPE_FLOATING" -> Right AssetDisplayTypeFloating
+        "ASSET_DISPLAY_TYPE_INPAGE" -> Right AssetDisplayTypeInpage
+        "ASSET_DISPLAY_TYPE_OVERLAY" -> Right AssetDisplayTypeOverlay
+        "ASSET_DISPLAY_TYPE_PEEL_DOWN" -> Right AssetDisplayTypePeelDown
+        "ASSET_DISPLAY_TYPE_VPAID_LINEAR" -> Right AssetDisplayTypeVpaidLinear
+        "ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR" -> Right AssetDisplayTypeVpaidNonLinear
+        x -> Left ("Unable to parse CreativeAssetDisplayType from: " <> x)
+
+instance ToHttpApiData CreativeAssetDisplayType where
+    toQueryParam = \case
+        AssetDisplayTypeExpanding -> "ASSET_DISPLAY_TYPE_EXPANDING"
+        AssetDisplayTypeFlashInFlash -> "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH"
+        AssetDisplayTypeFlashInFlashExpanding -> "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING"
+        AssetDisplayTypeFloating -> "ASSET_DISPLAY_TYPE_FLOATING"
+        AssetDisplayTypeInpage -> "ASSET_DISPLAY_TYPE_INPAGE"
+        AssetDisplayTypeOverlay -> "ASSET_DISPLAY_TYPE_OVERLAY"
+        AssetDisplayTypePeelDown -> "ASSET_DISPLAY_TYPE_PEEL_DOWN"
+        AssetDisplayTypeVpaidLinear -> "ASSET_DISPLAY_TYPE_VPAID_LINEAR"
+        AssetDisplayTypeVpaidNonLinear -> "ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR"
+
+instance FromJSON CreativeAssetDisplayType where
+    parseJSON = parseJSONText "CreativeAssetDisplayType"
+
+instance ToJSON CreativeAssetDisplayType where
+    toJSON = toJSONText
+
+-- | Counting method for conversions for this floodlight activity. This is a
+-- required field.
+data FloodlightActivityCountingMethod
+    = ItemsSoldCounting
+      -- ^ @ITEMS_SOLD_COUNTING@
+    | SessionCounting
+      -- ^ @SESSION_COUNTING@
+    | StandardCounting
+      -- ^ @STANDARD_COUNTING@
+    | TransactionsCounting
+      -- ^ @TRANSACTIONS_COUNTING@
+    | UniqueCounting
+      -- ^ @UNIQUE_COUNTING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FloodlightActivityCountingMethod
+
+instance FromHttpApiData FloodlightActivityCountingMethod where
+    parseQueryParam = \case
+        "ITEMS_SOLD_COUNTING" -> Right ItemsSoldCounting
+        "SESSION_COUNTING" -> Right SessionCounting
+        "STANDARD_COUNTING" -> Right StandardCounting
+        "TRANSACTIONS_COUNTING" -> Right TransactionsCounting
+        "UNIQUE_COUNTING" -> Right UniqueCounting
+        x -> Left ("Unable to parse FloodlightActivityCountingMethod from: " <> x)
+
+instance ToHttpApiData FloodlightActivityCountingMethod where
+    toQueryParam = \case
+        ItemsSoldCounting -> "ITEMS_SOLD_COUNTING"
+        SessionCounting -> "SESSION_COUNTING"
+        StandardCounting -> "STANDARD_COUNTING"
+        TransactionsCounting -> "TRANSACTIONS_COUNTING"
+        UniqueCounting -> "UNIQUE_COUNTING"
+
+instance FromJSON FloodlightActivityCountingMethod where
+    parseJSON = parseJSONText "FloodlightActivityCountingMethod"
+
+instance ToJSON FloodlightActivityCountingMethod where
+    toJSON = toJSONText
+
+-- | Order of sorted results, default is ASCENDING.
+data ContentCategoriesListSortOrder
+    = CCLSOAscending
+      -- ^ @ASCENDING@
+    | CCLSODescending
+      -- ^ @DESCENDING@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ContentCategoriesListSortOrder
+
+instance FromHttpApiData ContentCategoriesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right CCLSOAscending
+        "DESCENDING" -> Right CCLSODescending
+        x -> Left ("Unable to parse ContentCategoriesListSortOrder from: " <> x)
+
+instance ToHttpApiData ContentCategoriesListSortOrder where
+    toQueryParam = \case
+        CCLSOAscending -> "ASCENDING"
+        CCLSODescending -> "DESCENDING"
+
+instance FromJSON ContentCategoriesListSortOrder where
+    parseJSON = parseJSONText "ContentCategoriesListSortOrder"
+
+instance ToJSON ContentCategoriesListSortOrder where
+    toJSON = toJSONText
+
+-- | Status of this advertiser.
+data AdvertiserStatus
+    = ASApproved
+      -- ^ @APPROVED@
+    | ASOnHold
+      -- ^ @ON_HOLD@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AdvertiserStatus
+
+instance FromHttpApiData AdvertiserStatus where
+    parseQueryParam = \case
+        "APPROVED" -> Right ASApproved
+        "ON_HOLD" -> Right ASOnHold
+        x -> Left ("Unable to parse AdvertiserStatus from: " <> x)
+
+instance ToHttpApiData AdvertiserStatus where
+    toQueryParam = \case
         ASApproved -> "APPROVED"
         ASOnHold -> "ON_HOLD"
 
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountActiveAdSummaries/Get.hs b/gen/Network/Google/Resource/DFAReporting/AccountActiveAdSummaries/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/AccountActiveAdSummaries/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AccountActiveAdSummaries/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AccountActiveAdSummaries.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AccountActiveAdSummariesGet' request conforms to.
 type AccountActiveAdSummariesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accountActiveAdSummaries" :>
@@ -55,7 +55,7 @@
 -- | Gets the account\'s active ad summary by account ID.
 --
 -- /See:/ 'accountActiveAdSummariesGet' smart constructor.
-data AccountActiveAdSummariesGet = AccountActiveAdSummariesGet
+data AccountActiveAdSummariesGet = AccountActiveAdSummariesGet'
     { _aaasgProFileId        :: !(Textual Int64)
     , _aaasgSummaryAccountId :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'aaasgSummaryAccountId'
     -> AccountActiveAdSummariesGet
 accountActiveAdSummariesGet pAaasgProFileId_ pAaasgSummaryAccountId_ =
-    AccountActiveAdSummariesGet
+    AccountActiveAdSummariesGet'
     { _aaasgProFileId = _Coerce # pAaasgProFileId_
     , _aaasgSummaryAccountId = _Coerce # pAaasgSummaryAccountId_
     }
@@ -95,7 +95,9 @@
          where
         type Rs AccountActiveAdSummariesGet =
              AccountActiveAdSummary
-        requestClient AccountActiveAdSummariesGet{..}
+        type Scopes AccountActiveAdSummariesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountActiveAdSummariesGet'{..}
           = go _aaasgProFileId _aaasgSummaryAccountId
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AccountPermissionGroups.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AccountPermissionGroupsGet' request conforms to.
 type AccountPermissionGroupsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accountPermissionGroups" :>
@@ -55,7 +55,7 @@
 -- | Gets one account permission group by ID.
 --
 -- /See:/ 'accountPermissionGroupsGet' smart constructor.
-data AccountPermissionGroupsGet = AccountPermissionGroupsGet
+data AccountPermissionGroupsGet = AccountPermissionGroupsGet'
     { _apggProFileId :: !(Textual Int64)
     , _apggId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'apggId'
     -> AccountPermissionGroupsGet
 accountPermissionGroupsGet pApggProFileId_ pApggId_ =
-    AccountPermissionGroupsGet
+    AccountPermissionGroupsGet'
     { _apggProFileId = _Coerce # pApggProFileId_
     , _apggId = _Coerce # pApggId_
     }
@@ -93,7 +93,9 @@
          where
         type Rs AccountPermissionGroupsGet =
              AccountPermissionGroup
-        requestClient AccountPermissionGroupsGet{..}
+        type Scopes AccountPermissionGroupsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountPermissionGroupsGet'{..}
           = go _apggProFileId _apggId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AccountPermissionGroups/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AccountPermissionGroups.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'AccountPermissionGroupsList' request conforms to.
 type AccountPermissionGroupsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accountPermissionGroups" :>
@@ -53,7 +53,7 @@
 -- | Retrieves the list of account permission groups.
 --
 -- /See:/ 'accountPermissionGroupsList' smart constructor.
-newtype AccountPermissionGroupsList = AccountPermissionGroupsList
+newtype AccountPermissionGroupsList = AccountPermissionGroupsList'
     { _apglProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'apglProFileId'
     -> AccountPermissionGroupsList
 accountPermissionGroupsList pApglProFileId_ =
-    AccountPermissionGroupsList
+    AccountPermissionGroupsList'
     { _apglProFileId = _Coerce # pApglProFileId_
     }
 
@@ -81,7 +81,9 @@
          where
         type Rs AccountPermissionGroupsList =
              AccountPermissionGroupsListResponse
-        requestClient AccountPermissionGroupsList{..}
+        type Scopes AccountPermissionGroupsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountPermissionGroupsList'{..}
           = go _apglProFileId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountPermissions/Get.hs b/gen/Network/Google/Resource/DFAReporting/AccountPermissions/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/AccountPermissions/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AccountPermissions/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AccountPermissions.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AccountPermissionsGet' request conforms to.
 type AccountPermissionsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accountPermissions" :>
@@ -55,7 +55,7 @@
 -- | Gets one account permission by ID.
 --
 -- /See:/ 'accountPermissionsGet' smart constructor.
-data AccountPermissionsGet = AccountPermissionsGet
+data AccountPermissionsGet = AccountPermissionsGet'
     { _apgProFileId :: !(Textual Int64)
     , _apgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'apgId'
     -> AccountPermissionsGet
 accountPermissionsGet pApgProFileId_ pApgId_ =
-    AccountPermissionsGet
+    AccountPermissionsGet'
     { _apgProFileId = _Coerce # pApgProFileId_
     , _apgId = _Coerce # pApgId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest AccountPermissionsGet where
         type Rs AccountPermissionsGet = AccountPermission
-        requestClient AccountPermissionsGet{..}
+        type Scopes AccountPermissionsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountPermissionsGet'{..}
           = go _apgProFileId _apgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountPermissions/List.hs b/gen/Network/Google/Resource/DFAReporting/AccountPermissions/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/AccountPermissions/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AccountPermissions/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AccountPermissions.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'AccountPermissionsList' request conforms to.
 type AccountPermissionsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accountPermissions" :>
@@ -53,7 +53,7 @@
 -- | Retrieves the list of account permissions.
 --
 -- /See:/ 'accountPermissionsList' smart constructor.
-newtype AccountPermissionsList = AccountPermissionsList
+newtype AccountPermissionsList = AccountPermissionsList'
     { _aplProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'aplProFileId'
     -> AccountPermissionsList
 accountPermissionsList pAplProFileId_ =
-    AccountPermissionsList
+    AccountPermissionsList'
     { _aplProFileId = _Coerce # pAplProFileId_
     }
 
@@ -79,7 +79,9 @@
 instance GoogleRequest AccountPermissionsList where
         type Rs AccountPermissionsList =
              AccountPermissionsListResponse
-        requestClient AccountPermissionsList{..}
+        type Scopes AccountPermissionsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountPermissionsList'{..}
           = go _aplProFileId (Just AltJSON) dFAReportingService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Get.hs b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AccountUserProFiles.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AccountUserProFilesGet' request conforms to.
 type AccountUserProFilesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accountUserProfiles" :>
@@ -55,7 +55,7 @@
 -- | Gets one account user profile by ID.
 --
 -- /See:/ 'accountUserProFilesGet' smart constructor.
-data AccountUserProFilesGet = AccountUserProFilesGet
+data AccountUserProFilesGet = AccountUserProFilesGet'
     { _aupfgProFileId :: !(Textual Int64)
     , _aupfgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'aupfgId'
     -> AccountUserProFilesGet
 accountUserProFilesGet pAupfgProFileId_ pAupfgId_ =
-    AccountUserProFilesGet
+    AccountUserProFilesGet'
     { _aupfgProFileId = _Coerce # pAupfgProFileId_
     , _aupfgId = _Coerce # pAupfgId_
     }
@@ -91,7 +91,9 @@
 
 instance GoogleRequest AccountUserProFilesGet where
         type Rs AccountUserProFilesGet = AccountUserProFile
-        requestClient AccountUserProFilesGet{..}
+        type Scopes AccountUserProFilesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountUserProFilesGet'{..}
           = go _aupfgProFileId _aupfgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Insert.hs b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AccountUserProFiles.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AccountUserProFilesInsert' request conforms to.
 type AccountUserProFilesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accountUserProfiles" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new account user profile.
 --
 -- /See:/ 'accountUserProFilesInsert' smart constructor.
-data AccountUserProFilesInsert = AccountUserProFilesInsert
+data AccountUserProFilesInsert = AccountUserProFilesInsert'
     { _aupfiProFileId :: !(Textual Int64)
     , _aupfiPayload   :: !AccountUserProFile
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> AccountUserProFile -- ^ 'aupfiPayload'
     -> AccountUserProFilesInsert
 accountUserProFilesInsert pAupfiProFileId_ pAupfiPayload_ =
-    AccountUserProFilesInsert
+    AccountUserProFilesInsert'
     { _aupfiProFileId = _Coerce # pAupfiProFileId_
     , _aupfiPayload = pAupfiPayload_
     }
@@ -93,7 +93,9 @@
          where
         type Rs AccountUserProFilesInsert =
              AccountUserProFile
-        requestClient AccountUserProFilesInsert{..}
+        type Scopes AccountUserProFilesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountUserProFilesInsert'{..}
           = go _aupfiProFileId (Just AltJSON) _aupfiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/List.hs b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AccountUserProFiles.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -52,7 +52,7 @@
 -- 'AccountUserProFilesList' request conforms to.
 type AccountUserProFilesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accountUserProfiles" :>
@@ -75,7 +75,7 @@
 -- | Retrieves a list of account user profiles, possibly filtered.
 --
 -- /See:/ 'accountUserProFilesList' smart constructor.
-data AccountUserProFilesList = AccountUserProFilesList
+data AccountUserProFilesList = AccountUserProFilesList'
     { _aupflUserRoleId   :: !(Maybe (Textual Int64))
     , _aupflSearchString :: !(Maybe Text)
     , _aupflIds          :: !(Maybe [Textual Int64])
@@ -115,7 +115,7 @@
     :: Int64 -- ^ 'aupflProFileId'
     -> AccountUserProFilesList
 accountUserProFilesList pAupflProFileId_ =
-    AccountUserProFilesList
+    AccountUserProFilesList'
     { _aupflUserRoleId = Nothing
     , _aupflSearchString = Nothing
     , _aupflIds = Nothing
@@ -201,7 +201,9 @@
 instance GoogleRequest AccountUserProFilesList where
         type Rs AccountUserProFilesList =
              AccountUserProFilesListResponse
-        requestClient AccountUserProFilesList{..}
+        type Scopes AccountUserProFilesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountUserProFilesList'{..}
           = go _aupflProFileId _aupflUserRoleId
               _aupflSearchString
               (_aupflIds ^. _Default)
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Patch.hs b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AccountUserProFiles.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'AccountUserProFilesPatch' request conforms to.
 type AccountUserProFilesPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accountUserProfiles" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'accountUserProFilesPatch' smart constructor.
-data AccountUserProFilesPatch = AccountUserProFilesPatch
+data AccountUserProFilesPatch = AccountUserProFilesPatch'
     { _aupfpProFileId :: !(Textual Int64)
     , _aupfpPayload   :: !AccountUserProFile
     , _aupfpId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'aupfpId'
     -> AccountUserProFilesPatch
 accountUserProFilesPatch pAupfpProFileId_ pAupfpPayload_ pAupfpId_ =
-    AccountUserProFilesPatch
+    AccountUserProFilesPatch'
     { _aupfpProFileId = _Coerce # pAupfpProFileId_
     , _aupfpPayload = pAupfpPayload_
     , _aupfpId = _Coerce # pAupfpId_
@@ -105,7 +105,9 @@
 
 instance GoogleRequest AccountUserProFilesPatch where
         type Rs AccountUserProFilesPatch = AccountUserProFile
-        requestClient AccountUserProFilesPatch{..}
+        type Scopes AccountUserProFilesPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountUserProFilesPatch'{..}
           = go _aupfpProFileId (Just _aupfpId) (Just AltJSON)
               _aupfpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Update.hs b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AccountUserProFiles/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AccountUserProFiles.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AccountUserProFilesUpdate' request conforms to.
 type AccountUserProFilesUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accountUserProfiles" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing account user profile.
 --
 -- /See:/ 'accountUserProFilesUpdate' smart constructor.
-data AccountUserProFilesUpdate = AccountUserProFilesUpdate
+data AccountUserProFilesUpdate = AccountUserProFilesUpdate'
     { _aupfuProFileId :: !(Textual Int64)
     , _aupfuPayload   :: !AccountUserProFile
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> AccountUserProFile -- ^ 'aupfuPayload'
     -> AccountUserProFilesUpdate
 accountUserProFilesUpdate pAupfuProFileId_ pAupfuPayload_ =
-    AccountUserProFilesUpdate
+    AccountUserProFilesUpdate'
     { _aupfuProFileId = _Coerce # pAupfuProFileId_
     , _aupfuPayload = pAupfuPayload_
     }
@@ -93,7 +93,9 @@
          where
         type Rs AccountUserProFilesUpdate =
              AccountUserProFile
-        requestClient AccountUserProFilesUpdate{..}
+        type Scopes AccountUserProFilesUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountUserProFilesUpdate'{..}
           = go _aupfuProFileId (Just AltJSON) _aupfuPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Accounts/Get.hs b/gen/Network/Google/Resource/DFAReporting/Accounts/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Accounts/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Accounts/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Accounts.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AccountsGet' request conforms to.
 type AccountsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accounts" :>
@@ -54,7 +54,7 @@
 -- | Gets one account by ID.
 --
 -- /See:/ 'accountsGet' smart constructor.
-data AccountsGet = AccountsGet
+data AccountsGet = AccountsGet'
     { _aggProFileId :: !(Textual Int64)
     , _aggId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'aggId'
     -> AccountsGet
 accountsGet pAggProFileId_ pAggId_ =
-    AccountsGet
+    AccountsGet'
     { _aggProFileId = _Coerce # pAggProFileId_
     , _aggId = _Coerce # pAggId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest AccountsGet where
         type Rs AccountsGet = Account
-        requestClient AccountsGet{..}
+        type Scopes AccountsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountsGet'{..}
           = go _aggProFileId _aggId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Accounts/List.hs b/gen/Network/Google/Resource/DFAReporting/Accounts/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Accounts/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Accounts/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Accounts.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -50,7 +50,7 @@
 -- 'AccountsList' request conforms to.
 type AccountsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accounts" :>
@@ -67,7 +67,7 @@
 -- | Retrieves the list of accounts, possibly filtered.
 --
 -- /See:/ 'accountsList' smart constructor.
-data AccountsList = AccountsList
+data AccountsList = AccountsList'
     { _accSearchString :: !(Maybe Text)
     , _accIds          :: !(Maybe [Textual Int64])
     , _accProFileId    :: !(Textual Int64)
@@ -101,7 +101,7 @@
     :: Int64 -- ^ 'accProFileId'
     -> AccountsList
 accountsList pAccProFileId_ =
-    AccountsList
+    AccountsList'
     { _accSearchString = Nothing
     , _accIds = Nothing
     , _accProFileId = _Coerce # pAccProFileId_
@@ -166,7 +166,9 @@
 
 instance GoogleRequest AccountsList where
         type Rs AccountsList = AccountsListResponse
-        requestClient AccountsList{..}
+        type Scopes AccountsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountsList'{..}
           = go _accProFileId _accSearchString
               (_accIds ^. _Default)
               _accSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/Accounts/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Accounts/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/Accounts/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Accounts/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Accounts.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'AccountsPatch' request conforms to.
 type AccountsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accounts" :>
@@ -56,7 +56,7 @@
 -- | Updates an existing account. This method supports patch semantics.
 --
 -- /See:/ 'accountsPatch' smart constructor.
-data AccountsPatch = AccountsPatch
+data AccountsPatch = AccountsPatch'
     { _appProFileId :: !(Textual Int64)
     , _appPayload   :: !Account
     , _appId        :: !(Textual Int64)
@@ -77,7 +77,7 @@
     -> Int64 -- ^ 'appId'
     -> AccountsPatch
 accountsPatch pAppProFileId_ pAppPayload_ pAppId_ =
-    AccountsPatch
+    AccountsPatch'
     { _appProFileId = _Coerce # pAppProFileId_
     , _appPayload = pAppPayload_
     , _appId = _Coerce # pAppId_
@@ -101,7 +101,9 @@
 
 instance GoogleRequest AccountsPatch where
         type Rs AccountsPatch = Account
-        requestClient AccountsPatch{..}
+        type Scopes AccountsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountsPatch'{..}
           = go _appProFileId (Just _appId) (Just AltJSON)
               _appPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Accounts/Update.hs b/gen/Network/Google/Resource/DFAReporting/Accounts/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/Accounts/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Accounts/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Accounts.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AccountsUpdate' request conforms to.
 type AccountsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "accounts" :>
@@ -54,7 +54,7 @@
 -- | Updates an existing account.
 --
 -- /See:/ 'accountsUpdate' smart constructor.
-data AccountsUpdate = AccountsUpdate
+data AccountsUpdate = AccountsUpdate'
     { _auuProFileId :: !(Textual Int64)
     , _auuPayload   :: !Account
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Account -- ^ 'auuPayload'
     -> AccountsUpdate
 accountsUpdate pAuuProFileId_ pAuuPayload_ =
-    AccountsUpdate
+    AccountsUpdate'
     { _auuProFileId = _Coerce # pAuuProFileId_
     , _auuPayload = pAuuPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest AccountsUpdate where
         type Rs AccountsUpdate = Account
-        requestClient AccountsUpdate{..}
+        type Scopes AccountsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AccountsUpdate'{..}
           = go _auuProFileId (Just AltJSON) _auuPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Ads/Get.hs b/gen/Network/Google/Resource/DFAReporting/Ads/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Ads/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Ads/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Ads.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AdsGet' request conforms to.
 type AdsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "ads" :>
@@ -54,7 +54,7 @@
 -- | Gets one ad by ID.
 --
 -- /See:/ 'adsGet' smart constructor.
-data AdsGet = AdsGet
+data AdsGet = AdsGet'
     { _adsProFileId :: !(Textual Int64)
     , _adsId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'adsId'
     -> AdsGet
 adsGet pAdsProFileId_ pAdsId_ =
-    AdsGet
+    AdsGet'
     { _adsProFileId = _Coerce # pAdsProFileId_
     , _adsId = _Coerce # pAdsId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest AdsGet where
         type Rs AdsGet = Ad
-        requestClient AdsGet{..}
+        type Scopes AdsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdsGet'{..}
           = go _adsProFileId _adsId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Ads/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Ads/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/Ads/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Ads/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Ads.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AdsInsert' request conforms to.
 type AdsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "ads" :>
@@ -54,7 +54,7 @@
 -- | Inserts a new ad.
 --
 -- /See:/ 'adsInsert' smart constructor.
-data AdsInsert = AdsInsert
+data AdsInsert = AdsInsert'
     { _aiProFileId :: !(Textual Int64)
     , _aiPayload   :: !Ad
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Ad -- ^ 'aiPayload'
     -> AdsInsert
 adsInsert pAiProFileId_ pAiPayload_ =
-    AdsInsert
+    AdsInsert'
     { _aiProFileId = _Coerce # pAiProFileId_
     , _aiPayload = pAiPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest AdsInsert where
         type Rs AdsInsert = Ad
-        requestClient AdsInsert{..}
+        type Scopes AdsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdsInsert'{..}
           = go _aiProFileId (Just AltJSON) _aiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Ads/List.hs b/gen/Network/Google/Resource/DFAReporting/Ads/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Ads/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Ads/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Ads.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -67,7 +67,7 @@
 -- 'AdsList' request conforms to.
 type AdsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "ads" :>
@@ -130,7 +130,7 @@
 -- | Retrieves a list of ads, possibly filtered.
 --
 -- /See:/ 'adsList' smart constructor.
-data AdsList = AdsList
+data AdsList = AdsList'
     { _alRemarketingListIds                   :: !(Maybe [Textual Int64])
     , _alLandingPageIds                       :: !(Maybe [Textual Int64])
     , _alCreativeIds                          :: !(Maybe [Textual Int64])
@@ -215,7 +215,7 @@
     :: Int64 -- ^ 'alProFileId'
     -> AdsList
 adsList pAlProFileId_ =
-    AdsList
+    AdsList'
     { _alRemarketingListIds = Nothing
     , _alLandingPageIds = Nothing
     , _alCreativeIds = Nothing
@@ -389,7 +389,7 @@
       (\ s a -> s{_alDynamicClickTracker = a})
 
 -- | Select default ads with the specified compatibility. Applicable when
--- type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to
+-- type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to
 -- rendering either on desktop or on mobile devices for regular or
 -- interstitial ads, respectively. APP and APP_INTERSTITIAL are for
 -- rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an
@@ -420,7 +420,9 @@
 
 instance GoogleRequest AdsList where
         type Rs AdsList = AdsListResponse
-        requestClient AdsList{..}
+        type Scopes AdsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdsList'{..}
           = go _alProFileId (_alRemarketingListIds ^. _Default)
               (_alLandingPageIds ^. _Default)
               (_alCreativeIds ^. _Default)
diff --git a/gen/Network/Google/Resource/DFAReporting/Ads/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Ads/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/Ads/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Ads/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Ads.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'AdsPatch' request conforms to.
 type AdsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "ads" :>
@@ -56,7 +56,7 @@
 -- | Updates an existing ad. This method supports patch semantics.
 --
 -- /See:/ 'adsPatch' smart constructor.
-data AdsPatch = AdsPatch
+data AdsPatch = AdsPatch'
     { _adsdProFileId :: !(Textual Int64)
     , _adsdPayload   :: !Ad
     , _adsdId        :: !(Textual Int64)
@@ -77,7 +77,7 @@
     -> Int64 -- ^ 'adsdId'
     -> AdsPatch
 adsPatch pAdsdProFileId_ pAdsdPayload_ pAdsdId_ =
-    AdsPatch
+    AdsPatch'
     { _adsdProFileId = _Coerce # pAdsdProFileId_
     , _adsdPayload = pAdsdPayload_
     , _adsdId = _Coerce # pAdsdId_
@@ -102,7 +102,9 @@
 
 instance GoogleRequest AdsPatch where
         type Rs AdsPatch = Ad
-        requestClient AdsPatch{..}
+        type Scopes AdsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdsPatch'{..}
           = go _adsdProFileId (Just _adsdId) (Just AltJSON)
               _adsdPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Ads/Update.hs b/gen/Network/Google/Resource/DFAReporting/Ads/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/Ads/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Ads/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Ads.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AdsUpdate' request conforms to.
 type AdsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "ads" :>
@@ -54,7 +54,7 @@
 -- | Updates an existing ad.
 --
 -- /See:/ 'adsUpdate' smart constructor.
-data AdsUpdate = AdsUpdate
+data AdsUpdate = AdsUpdate'
     { _aProFileId :: !(Textual Int64)
     , _aPayload   :: !Ad
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Ad -- ^ 'aPayload'
     -> AdsUpdate
 adsUpdate pAProFileId_ pAPayload_ =
-    AdsUpdate
+    AdsUpdate'
     { _aProFileId = _Coerce # pAProFileId_
     , _aPayload = pAPayload_
     }
@@ -88,7 +88,9 @@
 
 instance GoogleRequest AdsUpdate where
         type Rs AdsUpdate = Ad
-        requestClient AdsUpdate{..}
+        type Scopes AdsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdsUpdate'{..}
           = go _aProFileId (Just AltJSON) _aPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Delete.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Delete.hs
--- a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Delete.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AdvertiserGroups.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AdvertiserGroupsDelete' request conforms to.
 type AdvertiserGroupsDeleteResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertiserGroups" :>
@@ -54,7 +54,7 @@
 -- | Deletes an existing advertiser group.
 --
 -- /See:/ 'advertiserGroupsDelete' smart constructor.
-data AdvertiserGroupsDelete = AdvertiserGroupsDelete
+data AdvertiserGroupsDelete = AdvertiserGroupsDelete'
     { _agdProFileId :: !(Textual Int64)
     , _agdId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'agdId'
     -> AdvertiserGroupsDelete
 advertiserGroupsDelete pAgdProFileId_ pAgdId_ =
-    AdvertiserGroupsDelete
+    AdvertiserGroupsDelete'
     { _agdProFileId = _Coerce # pAgdProFileId_
     , _agdId = _Coerce # pAgdId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest AdvertiserGroupsDelete where
         type Rs AdvertiserGroupsDelete = ()
-        requestClient AdvertiserGroupsDelete{..}
+        type Scopes AdvertiserGroupsDelete =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertiserGroupsDelete'{..}
           = go _agdProFileId _agdId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AdvertiserGroups.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AdvertiserGroupsGet' request conforms to.
 type AdvertiserGroupsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertiserGroups" :>
@@ -55,7 +55,7 @@
 -- | Gets one advertiser group by ID.
 --
 -- /See:/ 'advertiserGroupsGet' smart constructor.
-data AdvertiserGroupsGet = AdvertiserGroupsGet
+data AdvertiserGroupsGet = AdvertiserGroupsGet'
     { _agggProFileId :: !(Textual Int64)
     , _agggId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'agggId'
     -> AdvertiserGroupsGet
 advertiserGroupsGet pAgggProFileId_ pAgggId_ =
-    AdvertiserGroupsGet
+    AdvertiserGroupsGet'
     { _agggProFileId = _Coerce # pAgggProFileId_
     , _agggId = _Coerce # pAgggId_
     }
@@ -91,7 +91,9 @@
 
 instance GoogleRequest AdvertiserGroupsGet where
         type Rs AdvertiserGroupsGet = AdvertiserGroup
-        requestClient AdvertiserGroupsGet{..}
+        type Scopes AdvertiserGroupsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertiserGroupsGet'{..}
           = go _agggProFileId _agggId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Insert.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AdvertiserGroups.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AdvertiserGroupsInsert' request conforms to.
 type AdvertiserGroupsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertiserGroups" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new advertiser group.
 --
 -- /See:/ 'advertiserGroupsInsert' smart constructor.
-data AdvertiserGroupsInsert = AdvertiserGroupsInsert
+data AdvertiserGroupsInsert = AdvertiserGroupsInsert'
     { _agiProFileId :: !(Textual Int64)
     , _agiPayload   :: !AdvertiserGroup
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> AdvertiserGroup -- ^ 'agiPayload'
     -> AdvertiserGroupsInsert
 advertiserGroupsInsert pAgiProFileId_ pAgiPayload_ =
-    AdvertiserGroupsInsert
+    AdvertiserGroupsInsert'
     { _agiProFileId = _Coerce # pAgiProFileId_
     , _agiPayload = pAgiPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest AdvertiserGroupsInsert where
         type Rs AdvertiserGroupsInsert = AdvertiserGroup
-        requestClient AdvertiserGroupsInsert{..}
+        type Scopes AdvertiserGroupsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertiserGroupsInsert'{..}
           = go _agiProFileId (Just AltJSON) _agiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AdvertiserGroups.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -49,7 +49,7 @@
 -- 'AdvertiserGroupsList' request conforms to.
 type AdvertiserGroupsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertiserGroups" :>
@@ -67,7 +67,7 @@
 -- | Retrieves a list of advertiser groups, possibly filtered.
 --
 -- /See:/ 'advertiserGroupsList' smart constructor.
-data AdvertiserGroupsList = AdvertiserGroupsList
+data AdvertiserGroupsList = AdvertiserGroupsList'
     { _aglSearchString :: !(Maybe Text)
     , _aglIds          :: !(Maybe [Textual Int64])
     , _aglProFileId    :: !(Textual Int64)
@@ -98,7 +98,7 @@
     :: Int64 -- ^ 'aglProFileId'
     -> AdvertiserGroupsList
 advertiserGroupsList pAglProFileId_ =
-    AdvertiserGroupsList
+    AdvertiserGroupsList'
     { _aglSearchString = Nothing
     , _aglIds = Nothing
     , _aglProFileId = _Coerce # pAglProFileId_
@@ -158,7 +158,9 @@
 instance GoogleRequest AdvertiserGroupsList where
         type Rs AdvertiserGroupsList =
              AdvertiserGroupsListResponse
-        requestClient AdvertiserGroupsList{..}
+        type Scopes AdvertiserGroupsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertiserGroupsList'{..}
           = go _aglProFileId _aglSearchString
               (_aglIds ^. _Default)
               _aglSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Patch.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AdvertiserGroups.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'AdvertiserGroupsPatch' request conforms to.
 type AdvertiserGroupsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertiserGroups" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'advertiserGroupsPatch' smart constructor.
-data AdvertiserGroupsPatch = AdvertiserGroupsPatch
+data AdvertiserGroupsPatch = AdvertiserGroupsPatch'
     { _agpProFileId :: !(Textual Int64)
     , _agpPayload   :: !AdvertiserGroup
     , _agpId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'agpId'
     -> AdvertiserGroupsPatch
 advertiserGroupsPatch pAgpProFileId_ pAgpPayload_ pAgpId_ =
-    AdvertiserGroupsPatch
+    AdvertiserGroupsPatch'
     { _agpProFileId = _Coerce # pAgpProFileId_
     , _agpPayload = pAgpPayload_
     , _agpId = _Coerce # pAgpId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest AdvertiserGroupsPatch where
         type Rs AdvertiserGroupsPatch = AdvertiserGroup
-        requestClient AdvertiserGroupsPatch{..}
+        type Scopes AdvertiserGroupsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertiserGroupsPatch'{..}
           = go _agpProFileId (Just _agpId) (Just AltJSON)
               _agpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Update.hs b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/AdvertiserGroups/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.AdvertiserGroups.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AdvertiserGroupsUpdate' request conforms to.
 type AdvertiserGroupsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertiserGroups" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing advertiser group.
 --
 -- /See:/ 'advertiserGroupsUpdate' smart constructor.
-data AdvertiserGroupsUpdate = AdvertiserGroupsUpdate
+data AdvertiserGroupsUpdate = AdvertiserGroupsUpdate'
     { _aguProFileId :: !(Textual Int64)
     , _aguPayload   :: !AdvertiserGroup
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> AdvertiserGroup -- ^ 'aguPayload'
     -> AdvertiserGroupsUpdate
 advertiserGroupsUpdate pAguProFileId_ pAguPayload_ =
-    AdvertiserGroupsUpdate
+    AdvertiserGroupsUpdate'
     { _aguProFileId = _Coerce # pAguProFileId_
     , _aguPayload = pAguPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest AdvertiserGroupsUpdate where
         type Rs AdvertiserGroupsUpdate = AdvertiserGroup
-        requestClient AdvertiserGroupsUpdate{..}
+        type Scopes AdvertiserGroupsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertiserGroupsUpdate'{..}
           = go _aguProFileId (Just AltJSON) _aguPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Advertisers/Get.hs b/gen/Network/Google/Resource/DFAReporting/Advertisers/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Advertisers/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Advertisers/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Advertisers.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AdvertisersGet' request conforms to.
 type AdvertisersGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertisers" :>
@@ -54,7 +54,7 @@
 -- | Gets one advertiser by ID.
 --
 -- /See:/ 'advertisersGet' smart constructor.
-data AdvertisersGet = AdvertisersGet
+data AdvertisersGet = AdvertisersGet'
     { _advProFileId :: !(Textual Int64)
     , _advId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'advId'
     -> AdvertisersGet
 advertisersGet pAdvProFileId_ pAdvId_ =
-    AdvertisersGet
+    AdvertisersGet'
     { _advProFileId = _Coerce # pAdvProFileId_
     , _advId = _Coerce # pAdvId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest AdvertisersGet where
         type Rs AdvertisersGet = Advertiser
-        requestClient AdvertisersGet{..}
+        type Scopes AdvertisersGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertisersGet'{..}
           = go _advProFileId _advId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Advertisers/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Advertisers/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/Advertisers/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Advertisers/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Advertisers.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AdvertisersInsert' request conforms to.
 type AdvertisersInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertisers" :>
@@ -54,7 +54,7 @@
 -- | Inserts a new advertiser.
 --
 -- /See:/ 'advertisersInsert' smart constructor.
-data AdvertisersInsert = AdvertisersInsert
+data AdvertisersInsert = AdvertisersInsert'
     { _aiiProFileId :: !(Textual Int64)
     , _aiiPayload   :: !Advertiser
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Advertiser -- ^ 'aiiPayload'
     -> AdvertisersInsert
 advertisersInsert pAiiProFileId_ pAiiPayload_ =
-    AdvertisersInsert
+    AdvertisersInsert'
     { _aiiProFileId = _Coerce # pAiiProFileId_
     , _aiiPayload = pAiiPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest AdvertisersInsert where
         type Rs AdvertisersInsert = Advertiser
-        requestClient AdvertisersInsert{..}
+        type Scopes AdvertisersInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertisersInsert'{..}
           = go _aiiProFileId (Just AltJSON) _aiiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Advertisers/List.hs b/gen/Network/Google/Resource/DFAReporting/Advertisers/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Advertisers/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Advertisers/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Advertisers.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- 'AdvertisersList' request conforms to.
 type AdvertisersListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertisers" :>
@@ -81,7 +81,7 @@
 -- | Retrieves a list of advertisers, possibly filtered.
 --
 -- /See:/ 'advertisersList' smart constructor.
-data AdvertisersList = AdvertisersList
+data AdvertisersList = AdvertisersList'
     { _allStatus                              :: !(Maybe AdvertisersListStatus)
     , _allOnlyParent                          :: !(Maybe Bool)
     , _allSearchString                        :: !(Maybe Text)
@@ -130,7 +130,7 @@
     :: Int64 -- ^ 'allProFileId'
     -> AdvertisersList
 advertisersList pAllProFileId_ =
-    AdvertisersList
+    AdvertisersList'
     { _allStatus = Nothing
     , _allOnlyParent = Nothing
     , _allSearchString = Nothing
@@ -236,7 +236,9 @@
 
 instance GoogleRequest AdvertisersList where
         type Rs AdvertisersList = AdvertisersListResponse
-        requestClient AdvertisersList{..}
+        type Scopes AdvertisersList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertisersList'{..}
           = go _allProFileId _allStatus _allOnlyParent
               _allSearchString
               (_allIds ^. _Default)
diff --git a/gen/Network/Google/Resource/DFAReporting/Advertisers/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Advertisers/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/Advertisers/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Advertisers/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Advertisers.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'AdvertisersPatch' request conforms to.
 type AdvertisersPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertisers" :>
@@ -57,7 +57,7 @@
 -- | Updates an existing advertiser. This method supports patch semantics.
 --
 -- /See:/ 'advertisersPatch' smart constructor.
-data AdvertisersPatch = AdvertisersPatch
+data AdvertisersPatch = AdvertisersPatch'
     { _apProFileId :: !(Textual Int64)
     , _apPayload   :: !Advertiser
     , _apId        :: !(Textual Int64)
@@ -78,7 +78,7 @@
     -> Int64 -- ^ 'apId'
     -> AdvertisersPatch
 advertisersPatch pApProFileId_ pApPayload_ pApId_ =
-    AdvertisersPatch
+    AdvertisersPatch'
     { _apProFileId = _Coerce # pApProFileId_
     , _apPayload = pApPayload_
     , _apId = _Coerce # pApId_
@@ -101,7 +101,9 @@
 
 instance GoogleRequest AdvertisersPatch where
         type Rs AdvertisersPatch = Advertiser
-        requestClient AdvertisersPatch{..}
+        type Scopes AdvertisersPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertisersPatch'{..}
           = go _apProFileId (Just _apId) (Just AltJSON)
               _apPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Advertisers/Update.hs b/gen/Network/Google/Resource/DFAReporting/Advertisers/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/Advertisers/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Advertisers/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Advertisers.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'AdvertisersUpdate' request conforms to.
 type AdvertisersUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "advertisers" :>
@@ -54,7 +54,7 @@
 -- | Updates an existing advertiser.
 --
 -- /See:/ 'advertisersUpdate' smart constructor.
-data AdvertisersUpdate = AdvertisersUpdate
+data AdvertisersUpdate = AdvertisersUpdate'
     { _auProFileId :: !(Textual Int64)
     , _auPayload   :: !Advertiser
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Advertiser -- ^ 'auPayload'
     -> AdvertisersUpdate
 advertisersUpdate pAuProFileId_ pAuPayload_ =
-    AdvertisersUpdate
+    AdvertisersUpdate'
     { _auProFileId = _Coerce # pAuProFileId_
     , _auPayload = pAuPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest AdvertisersUpdate where
         type Rs AdvertisersUpdate = Advertiser
-        requestClient AdvertisersUpdate{..}
+        type Scopes AdvertisersUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient AdvertisersUpdate'{..}
           = go _auProFileId (Just AltJSON) _auPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Browsers/List.hs b/gen/Network/Google/Resource/DFAReporting/Browsers/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Browsers/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Browsers/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Browsers.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'BrowsersList' request conforms to.
 type BrowsersListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "browsers" :>
@@ -53,7 +53,7 @@
 -- | Retrieves a list of browsers.
 --
 -- /See:/ 'browsersList' smart constructor.
-newtype BrowsersList = BrowsersList
+newtype BrowsersList = BrowsersList'
     { _blProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'blProFileId'
     -> BrowsersList
 browsersList pBlProFileId_ =
-    BrowsersList
+    BrowsersList'
     { _blProFileId = _Coerce # pBlProFileId_
     }
 
@@ -78,7 +78,9 @@
 
 instance GoogleRequest BrowsersList where
         type Rs BrowsersList = BrowsersListResponse
-        requestClient BrowsersList{..}
+        type Scopes BrowsersList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient BrowsersList'{..}
           = go _blProFileId (Just AltJSON) dFAReportingService
           where go
                   = buildClient (Proxy :: Proxy BrowsersListResource)
diff --git a/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/Insert.hs b/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CampaignCreativeAssociations.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -47,7 +47,7 @@
 -- 'CampaignCreativeAssociationsInsert' request conforms to.
 type CampaignCreativeAssociationsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -62,7 +62,7 @@
 -- a default ad does not exist already.
 --
 -- /See:/ 'campaignCreativeAssociationsInsert' smart constructor.
-data CampaignCreativeAssociationsInsert = CampaignCreativeAssociationsInsert
+data CampaignCreativeAssociationsInsert = CampaignCreativeAssociationsInsert'
     { _ccaiCampaignId :: !(Textual Int64)
     , _ccaiProFileId  :: !(Textual Int64)
     , _ccaiPayload    :: !CampaignCreativeAssociation
@@ -83,7 +83,7 @@
     -> CampaignCreativeAssociation -- ^ 'ccaiPayload'
     -> CampaignCreativeAssociationsInsert
 campaignCreativeAssociationsInsert pCcaiCampaignId_ pCcaiProFileId_ pCcaiPayload_ =
-    CampaignCreativeAssociationsInsert
+    CampaignCreativeAssociationsInsert'
     { _ccaiCampaignId = _Coerce # pCcaiCampaignId_
     , _ccaiProFileId = _Coerce # pCcaiProFileId_
     , _ccaiPayload = pCcaiPayload_
@@ -112,7 +112,9 @@
          CampaignCreativeAssociationsInsert where
         type Rs CampaignCreativeAssociationsInsert =
              CampaignCreativeAssociation
-        requestClient CampaignCreativeAssociationsInsert{..}
+        type Scopes CampaignCreativeAssociationsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CampaignCreativeAssociationsInsert'{..}
           = go _ccaiProFileId _ccaiCampaignId (Just AltJSON)
               _ccaiPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/List.hs b/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CampaignCreativeAssociations/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CampaignCreativeAssociations.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -48,7 +48,7 @@
 -- 'CampaignCreativeAssociationsList' request conforms to.
 type CampaignCreativeAssociationsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -66,7 +66,7 @@
 -- campaign.
 --
 -- /See:/ 'campaignCreativeAssociationsList' smart constructor.
-data CampaignCreativeAssociationsList = CampaignCreativeAssociationsList
+data CampaignCreativeAssociationsList = CampaignCreativeAssociationsList'
     { _ccalCampaignId :: !(Textual Int64)
     , _ccalProFileId  :: !(Textual Int64)
     , _ccalSortOrder  :: !(Maybe CampaignCreativeAssociationsListSortOrder)
@@ -92,7 +92,7 @@
     -> Int64 -- ^ 'ccalProFileId'
     -> CampaignCreativeAssociationsList
 campaignCreativeAssociationsList pCcalCampaignId_ pCcalProFileId_ =
-    CampaignCreativeAssociationsList
+    CampaignCreativeAssociationsList'
     { _ccalCampaignId = _Coerce # pCcalCampaignId_
     , _ccalProFileId = _Coerce # pCcalProFileId_
     , _ccalSortOrder = Nothing
@@ -137,7 +137,9 @@
          CampaignCreativeAssociationsList where
         type Rs CampaignCreativeAssociationsList =
              CampaignCreativeAssociationsListResponse
-        requestClient CampaignCreativeAssociationsList{..}
+        type Scopes CampaignCreativeAssociationsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CampaignCreativeAssociationsList'{..}
           = go _ccalProFileId _ccalCampaignId _ccalSortOrder
               _ccalPageToken
               _ccalMaxResults
diff --git a/gen/Network/Google/Resource/DFAReporting/Campaigns/Get.hs b/gen/Network/Google/Resource/DFAReporting/Campaigns/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Campaigns/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Campaigns/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Campaigns.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CampaignsGet' request conforms to.
 type CampaignsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -54,7 +54,7 @@
 -- | Gets one campaign by ID.
 --
 -- /See:/ 'campaignsGet' smart constructor.
-data CampaignsGet = CampaignsGet
+data CampaignsGet = CampaignsGet'
     { _cggProFileId :: !(Textual Int64)
     , _cggId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'cggId'
     -> CampaignsGet
 campaignsGet pCggProFileId_ pCggId_ =
-    CampaignsGet
+    CampaignsGet'
     { _cggProFileId = _Coerce # pCggProFileId_
     , _cggId = _Coerce # pCggId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest CampaignsGet where
         type Rs CampaignsGet = Campaign
-        requestClient CampaignsGet{..}
+        type Scopes CampaignsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CampaignsGet'{..}
           = go _cggProFileId _cggId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Campaigns/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Campaigns/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/Campaigns/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Campaigns/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Campaigns.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'CampaignsInsert' request conforms to.
 type CampaignsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -58,7 +58,7 @@
 -- | Inserts a new campaign.
 --
 -- /See:/ 'campaignsInsert' smart constructor.
-data CampaignsInsert = CampaignsInsert
+data CampaignsInsert = CampaignsInsert'
     { _camProFileId              :: !(Textual Int64)
     , _camPayload                :: !Campaign
     , _camDefaultLandingPageURL  :: !Text
@@ -83,7 +83,7 @@
     -> Text -- ^ 'camDefaultLandingPageName'
     -> CampaignsInsert
 campaignsInsert pCamProFileId_ pCamPayload_ pCamDefaultLandingPageURL_ pCamDefaultLandingPageName_ =
-    CampaignsInsert
+    CampaignsInsert'
     { _camProFileId = _Coerce # pCamProFileId_
     , _camPayload = pCamPayload_
     , _camDefaultLandingPageURL = pCamDefaultLandingPageURL_
@@ -116,7 +116,9 @@
 
 instance GoogleRequest CampaignsInsert where
         type Rs CampaignsInsert = Campaign
-        requestClient CampaignsInsert{..}
+        type Scopes CampaignsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CampaignsInsert'{..}
           = go _camProFileId (Just _camDefaultLandingPageName)
               (Just _camDefaultLandingPageURL)
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/DFAReporting/Campaigns/List.hs b/gen/Network/Google/Resource/DFAReporting/Campaigns/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Campaigns/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Campaigns/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Campaigns.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- 'CampaignsList' request conforms to.
 type CampaignsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -81,7 +81,7 @@
 -- | Retrieves a list of campaigns, possibly filtered.
 --
 -- /See:/ 'campaignsList' smart constructor.
-data CampaignsList = CampaignsList
+data CampaignsList = CampaignsList'
     { _clExcludedIds                    :: !(Maybe [Textual Int64])
     , _clSearchString                   :: !(Maybe Text)
     , _clIds                            :: !(Maybe [Textual Int64])
@@ -133,7 +133,7 @@
     :: Int64 -- ^ 'clProFileId'
     -> CampaignsList
 campaignsList pClProFileId_ =
-    CampaignsList
+    CampaignsList'
     { _clExcludedIds = Nothing
     , _clSearchString = Nothing
     , _clIds = Nothing
@@ -248,7 +248,9 @@
 
 instance GoogleRequest CampaignsList where
         type Rs CampaignsList = CampaignsListResponse
-        requestClient CampaignsList{..}
+        type Scopes CampaignsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CampaignsList'{..}
           = go _clProFileId (_clExcludedIds ^. _Default)
               _clSearchString
               (_clIds ^. _Default)
diff --git a/gen/Network/Google/Resource/DFAReporting/Campaigns/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Campaigns/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/Campaigns/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Campaigns/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Campaigns.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'CampaignsPatch' request conforms to.
 type CampaignsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -56,7 +56,7 @@
 -- | Updates an existing campaign. This method supports patch semantics.
 --
 -- /See:/ 'campaignsPatch' smart constructor.
-data CampaignsPatch = CampaignsPatch
+data CampaignsPatch = CampaignsPatch'
     { _cpProFileId :: !(Textual Int64)
     , _cpPayload   :: !Campaign
     , _cpId        :: !(Textual Int64)
@@ -77,7 +77,7 @@
     -> Int64 -- ^ 'cpId'
     -> CampaignsPatch
 campaignsPatch pCpProFileId_ pCpPayload_ pCpId_ =
-    CampaignsPatch
+    CampaignsPatch'
     { _cpProFileId = _Coerce # pCpProFileId_
     , _cpPayload = pCpPayload_
     , _cpId = _Coerce # pCpId_
@@ -100,7 +100,9 @@
 
 instance GoogleRequest CampaignsPatch where
         type Rs CampaignsPatch = Campaign
-        requestClient CampaignsPatch{..}
+        type Scopes CampaignsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CampaignsPatch'{..}
           = go _cpProFileId (Just _cpId) (Just AltJSON)
               _cpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Campaigns/Update.hs b/gen/Network/Google/Resource/DFAReporting/Campaigns/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/Campaigns/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Campaigns/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Campaigns.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CampaignsUpdate' request conforms to.
 type CampaignsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -54,7 +54,7 @@
 -- | Updates an existing campaign.
 --
 -- /See:/ 'campaignsUpdate' smart constructor.
-data CampaignsUpdate = CampaignsUpdate
+data CampaignsUpdate = CampaignsUpdate'
     { _cuProFileId :: !(Textual Int64)
     , _cuPayload   :: !Campaign
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Campaign -- ^ 'cuPayload'
     -> CampaignsUpdate
 campaignsUpdate pCuProFileId_ pCuPayload_ =
-    CampaignsUpdate
+    CampaignsUpdate'
     { _cuProFileId = _Coerce # pCuProFileId_
     , _cuPayload = pCuPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest CampaignsUpdate where
         type Rs CampaignsUpdate = Campaign
-        requestClient CampaignsUpdate{..}
+        type Scopes CampaignsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CampaignsUpdate'{..}
           = go _cuProFileId (Just AltJSON) _cuPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/ChangeLogs/Get.hs b/gen/Network/Google/Resource/DFAReporting/ChangeLogs/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/ChangeLogs/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/ChangeLogs/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.ChangeLogs.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'ChangeLogsGet' request conforms to.
 type ChangeLogsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "changeLogs" :>
@@ -54,7 +54,7 @@
 -- | Gets one change log by ID.
 --
 -- /See:/ 'changeLogsGet' smart constructor.
-data ChangeLogsGet = ChangeLogsGet
+data ChangeLogsGet = ChangeLogsGet'
     { _clgProFileId :: !(Textual Int64)
     , _clgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'clgId'
     -> ChangeLogsGet
 changeLogsGet pClgProFileId_ pClgId_ =
-    ChangeLogsGet
+    ChangeLogsGet'
     { _clgProFileId = _Coerce # pClgProFileId_
     , _clgId = _Coerce # pClgId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest ChangeLogsGet where
         type Rs ChangeLogsGet = ChangeLog
-        requestClient ChangeLogsGet{..}
+        type Scopes ChangeLogsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ChangeLogsGet'{..}
           = go _clgProFileId _clgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/ChangeLogs/List.hs b/gen/Network/Google/Resource/DFAReporting/ChangeLogs/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/ChangeLogs/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/ChangeLogs/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.ChangeLogs.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -53,7 +53,7 @@
 -- 'ChangeLogsList' request conforms to.
 type ChangeLogsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "changeLogs" :>
@@ -73,7 +73,7 @@
 -- | Retrieves a list of change logs.
 --
 -- /See:/ 'changeLogsList' smart constructor.
-data ChangeLogsList = ChangeLogsList
+data ChangeLogsList = ChangeLogsList'
     { _cllUserProFileIds :: !(Maybe [Textual Int64])
     , _cllObjectType     :: !(Maybe ChangeLogsListObjectType)
     , _cllSearchString   :: !(Maybe Text)
@@ -116,7 +116,7 @@
     :: Int64 -- ^ 'cllProFileId'
     -> ChangeLogsList
 changeLogsList pCllProFileId_ =
-    ChangeLogsList
+    ChangeLogsList'
     { _cllUserProFileIds = Nothing
     , _cllObjectType = Nothing
     , _cllSearchString = Nothing
@@ -213,7 +213,9 @@
 
 instance GoogleRequest ChangeLogsList where
         type Rs ChangeLogsList = ChangeLogsListResponse
-        requestClient ChangeLogsList{..}
+        type Scopes ChangeLogsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ChangeLogsList'{..}
           = go _cllProFileId (_cllUserProFileIds ^. _Default)
               _cllObjectType
               _cllSearchString
diff --git a/gen/Network/Google/Resource/DFAReporting/Cities/List.hs b/gen/Network/Google/Resource/DFAReporting/Cities/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Cities/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Cities/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Cities.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -47,7 +47,7 @@
 -- 'CitiesList' request conforms to.
 type CitiesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "cities" :>
@@ -61,7 +61,7 @@
 -- | Retrieves a list of cities, possibly filtered.
 --
 -- /See:/ 'citiesList' smart constructor.
-data CitiesList = CitiesList
+data CitiesList = CitiesList'
     { _citRegionDartIds  :: !(Maybe [Textual Int64])
     , _citProFileId      :: !(Textual Int64)
     , _citNamePrefix     :: !(Maybe Text)
@@ -86,7 +86,7 @@
     :: Int64 -- ^ 'citProFileId'
     -> CitiesList
 citiesList pCitProFileId_ =
-    CitiesList
+    CitiesList'
     { _citRegionDartIds = Nothing
     , _citProFileId = _Coerce # pCitProFileId_
     , _citNamePrefix = Nothing
@@ -131,7 +131,9 @@
 
 instance GoogleRequest CitiesList where
         type Rs CitiesList = CitiesListResponse
-        requestClient CitiesList{..}
+        type Scopes CitiesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CitiesList'{..}
           = go _citProFileId (_citRegionDartIds ^. _Default)
               _citNamePrefix
               (_citCountryDartIds ^. _Default)
diff --git a/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/Get.hs b/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.ConnectionTypes.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'ConnectionTypesGet' request conforms to.
 type ConnectionTypesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "connectionTypes" :>
@@ -55,7 +55,7 @@
 -- | Gets one connection type by ID.
 --
 -- /See:/ 'connectionTypesGet' smart constructor.
-data ConnectionTypesGet = ConnectionTypesGet
+data ConnectionTypesGet = ConnectionTypesGet'
     { _ctgProFileId :: !(Textual Int64)
     , _ctgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'ctgId'
     -> ConnectionTypesGet
 connectionTypesGet pCtgProFileId_ pCtgId_ =
-    ConnectionTypesGet
+    ConnectionTypesGet'
     { _ctgProFileId = _Coerce # pCtgProFileId_
     , _ctgId = _Coerce # pCtgId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest ConnectionTypesGet where
         type Rs ConnectionTypesGet = ConnectionType
-        requestClient ConnectionTypesGet{..}
+        type Scopes ConnectionTypesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ConnectionTypesGet'{..}
           = go _ctgProFileId _ctgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/List.hs b/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/ConnectionTypes/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.ConnectionTypes.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'ConnectionTypesList' request conforms to.
 type ConnectionTypesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "connectionTypes" :>
@@ -53,7 +53,7 @@
 -- | Retrieves a list of connection types.
 --
 -- /See:/ 'connectionTypesList' smart constructor.
-newtype ConnectionTypesList = ConnectionTypesList
+newtype ConnectionTypesList = ConnectionTypesList'
     { _ctlProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'ctlProFileId'
     -> ConnectionTypesList
 connectionTypesList pCtlProFileId_ =
-    ConnectionTypesList
+    ConnectionTypesList'
     { _ctlProFileId = _Coerce # pCtlProFileId_
     }
 
@@ -79,7 +79,9 @@
 instance GoogleRequest ConnectionTypesList where
         type Rs ConnectionTypesList =
              ConnectionTypesListResponse
-        requestClient ConnectionTypesList{..}
+        type Scopes ConnectionTypesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ConnectionTypesList'{..}
           = go _ctlProFileId (Just AltJSON) dFAReportingService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Delete.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Delete.hs
--- a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Delete.hs
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.ContentCategories.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'ContentCategoriesDelete' request conforms to.
 type ContentCategoriesDeleteResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "contentCategories" :>
@@ -54,7 +54,7 @@
 -- | Deletes an existing content category.
 --
 -- /See:/ 'contentCategoriesDelete' smart constructor.
-data ContentCategoriesDelete = ContentCategoriesDelete
+data ContentCategoriesDelete = ContentCategoriesDelete'
     { _ccdProFileId :: !(Textual Int64)
     , _ccdId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'ccdId'
     -> ContentCategoriesDelete
 contentCategoriesDelete pCcdProFileId_ pCcdId_ =
-    ContentCategoriesDelete
+    ContentCategoriesDelete'
     { _ccdProFileId = _Coerce # pCcdProFileId_
     , _ccdId = _Coerce # pCcdId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest ContentCategoriesDelete where
         type Rs ContentCategoriesDelete = ()
-        requestClient ContentCategoriesDelete{..}
+        type Scopes ContentCategoriesDelete =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ContentCategoriesDelete'{..}
           = go _ccdProFileId _ccdId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Get.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.ContentCategories.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'ContentCategoriesGet' request conforms to.
 type ContentCategoriesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "contentCategories" :>
@@ -55,7 +55,7 @@
 -- | Gets one content category by ID.
 --
 -- /See:/ 'contentCategoriesGet' smart constructor.
-data ContentCategoriesGet = ContentCategoriesGet
+data ContentCategoriesGet = ContentCategoriesGet'
     { _ccgProFileId :: !(Textual Int64)
     , _ccgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'ccgId'
     -> ContentCategoriesGet
 contentCategoriesGet pCcgProFileId_ pCcgId_ =
-    ContentCategoriesGet
+    ContentCategoriesGet'
     { _ccgProFileId = _Coerce # pCcgProFileId_
     , _ccgId = _Coerce # pCcgId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest ContentCategoriesGet where
         type Rs ContentCategoriesGet = ContentCategory
-        requestClient ContentCategoriesGet{..}
+        type Scopes ContentCategoriesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ContentCategoriesGet'{..}
           = go _ccgProFileId _ccgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Insert.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.ContentCategories.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'ContentCategoriesInsert' request conforms to.
 type ContentCategoriesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "contentCategories" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new content category.
 --
 -- /See:/ 'contentCategoriesInsert' smart constructor.
-data ContentCategoriesInsert = ContentCategoriesInsert
+data ContentCategoriesInsert = ContentCategoriesInsert'
     { _cciProFileId :: !(Textual Int64)
     , _cciPayload   :: !ContentCategory
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> ContentCategory -- ^ 'cciPayload'
     -> ContentCategoriesInsert
 contentCategoriesInsert pCciProFileId_ pCciPayload_ =
-    ContentCategoriesInsert
+    ContentCategoriesInsert'
     { _cciProFileId = _Coerce # pCciProFileId_
     , _cciPayload = pCciPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest ContentCategoriesInsert where
         type Rs ContentCategoriesInsert = ContentCategory
-        requestClient ContentCategoriesInsert{..}
+        type Scopes ContentCategoriesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ContentCategoriesInsert'{..}
           = go _cciProFileId (Just AltJSON) _cciPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/List.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/ContentCategories/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.ContentCategories.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -49,7 +49,7 @@
 -- 'ContentCategoriesList' request conforms to.
 type ContentCategoriesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "contentCategories" :>
@@ -67,7 +67,7 @@
 -- | Retrieves a list of content categories, possibly filtered.
 --
 -- /See:/ 'contentCategoriesList' smart constructor.
-data ContentCategoriesList = ContentCategoriesList
+data ContentCategoriesList = ContentCategoriesList'
     { _cclSearchString :: !(Maybe Text)
     , _cclIds          :: !(Maybe [Textual Int64])
     , _cclProFileId    :: !(Textual Int64)
@@ -98,7 +98,7 @@
     :: Int64 -- ^ 'cclProFileId'
     -> ContentCategoriesList
 contentCategoriesList pCclProFileId_ =
-    ContentCategoriesList
+    ContentCategoriesList'
     { _cclSearchString = Nothing
     , _cclIds = Nothing
     , _cclProFileId = _Coerce # pCclProFileId_
@@ -158,7 +158,9 @@
 instance GoogleRequest ContentCategoriesList where
         type Rs ContentCategoriesList =
              ContentCategoriesListResponse
-        requestClient ContentCategoriesList{..}
+        type Scopes ContentCategoriesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ContentCategoriesList'{..}
           = go _cclProFileId _cclSearchString
               (_cclIds ^. _Default)
               _cclSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Patch.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.ContentCategories.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'ContentCategoriesPatch' request conforms to.
 type ContentCategoriesPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "contentCategories" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'contentCategoriesPatch' smart constructor.
-data ContentCategoriesPatch = ContentCategoriesPatch
+data ContentCategoriesPatch = ContentCategoriesPatch'
     { _ccpProFileId :: !(Textual Int64)
     , _ccpPayload   :: !ContentCategory
     , _ccpId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'ccpId'
     -> ContentCategoriesPatch
 contentCategoriesPatch pCcpProFileId_ pCcpPayload_ pCcpId_ =
-    ContentCategoriesPatch
+    ContentCategoriesPatch'
     { _ccpProFileId = _Coerce # pCcpProFileId_
     , _ccpPayload = pCcpPayload_
     , _ccpId = _Coerce # pCcpId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest ContentCategoriesPatch where
         type Rs ContentCategoriesPatch = ContentCategory
-        requestClient ContentCategoriesPatch{..}
+        type Scopes ContentCategoriesPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ContentCategoriesPatch'{..}
           = go _ccpProFileId (Just _ccpId) (Just AltJSON)
               _ccpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Update.hs b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/ContentCategories/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/ContentCategories/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.ContentCategories.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'ContentCategoriesUpdate' request conforms to.
 type ContentCategoriesUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "contentCategories" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing content category.
 --
 -- /See:/ 'contentCategoriesUpdate' smart constructor.
-data ContentCategoriesUpdate = ContentCategoriesUpdate
+data ContentCategoriesUpdate = ContentCategoriesUpdate'
     { _ccuProFileId :: !(Textual Int64)
     , _ccuPayload   :: !ContentCategory
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> ContentCategory -- ^ 'ccuPayload'
     -> ContentCategoriesUpdate
 contentCategoriesUpdate pCcuProFileId_ pCcuPayload_ =
-    ContentCategoriesUpdate
+    ContentCategoriesUpdate'
     { _ccuProFileId = _Coerce # pCcuProFileId_
     , _ccuPayload = pCcuPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest ContentCategoriesUpdate where
         type Rs ContentCategoriesUpdate = ContentCategory
-        requestClient ContentCategoriesUpdate{..}
+        type Scopes ContentCategoriesUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ContentCategoriesUpdate'{..}
           = go _ccuProFileId (Just AltJSON) _ccuPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Conversions/Batchinsert.hs b/gen/Network/Google/Resource/DFAReporting/Conversions/Batchinsert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/Conversions/Batchinsert.hs
@@ -0,0 +1,103 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.Conversions.Batchinsert
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts conversions.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.conversions.batchinsert@.
+module Network.Google.Resource.DFAReporting.Conversions.Batchinsert
+    (
+    -- * REST Resource
+      ConversionsBatchinsertResource
+
+    -- * Creating a Request
+    , conversionsBatchinsert
+    , ConversionsBatchinsert
+
+    -- * Request Lenses
+    , cbProFileId
+    , cbPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.conversions.batchinsert@ method which the
+-- 'ConversionsBatchinsert' request conforms to.
+type ConversionsBatchinsertResource =
+     "dfareporting" :>
+       "v2.5" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "conversions" :>
+               "batchinsert" :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] ConversionsBatchInsertRequest :>
+                     Post '[JSON] ConversionsBatchInsertResponse
+
+-- | Inserts conversions.
+--
+-- /See:/ 'conversionsBatchinsert' smart constructor.
+data ConversionsBatchinsert = ConversionsBatchinsert'
+    { _cbProFileId :: !(Textual Int64)
+    , _cbPayload   :: !ConversionsBatchInsertRequest
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConversionsBatchinsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cbProFileId'
+--
+-- * 'cbPayload'
+conversionsBatchinsert
+    :: Int64 -- ^ 'cbProFileId'
+    -> ConversionsBatchInsertRequest -- ^ 'cbPayload'
+    -> ConversionsBatchinsert
+conversionsBatchinsert pCbProFileId_ pCbPayload_ =
+    ConversionsBatchinsert'
+    { _cbProFileId = _Coerce # pCbProFileId_
+    , _cbPayload = pCbPayload_
+    }
+
+-- | User profile ID associated with this request.
+cbProFileId :: Lens' ConversionsBatchinsert Int64
+cbProFileId
+  = lens _cbProFileId (\ s a -> s{_cbProFileId = a}) .
+      _Coerce
+
+-- | Multipart request metadata.
+cbPayload :: Lens' ConversionsBatchinsert ConversionsBatchInsertRequest
+cbPayload
+  = lens _cbPayload (\ s a -> s{_cbPayload = a})
+
+instance GoogleRequest ConversionsBatchinsert where
+        type Rs ConversionsBatchinsert =
+             ConversionsBatchInsertResponse
+        type Scopes ConversionsBatchinsert =
+             '["https://www.googleapis.com/auth/ddmconversions"]
+        requestClient ConversionsBatchinsert'{..}
+          = go _cbProFileId (Just AltJSON) _cbPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ConversionsBatchinsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/Countries/Get.hs b/gen/Network/Google/Resource/DFAReporting/Countries/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Countries/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Countries/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Countries.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CountriesGet' request conforms to.
 type CountriesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "countries" :>
@@ -54,7 +54,7 @@
 -- | Gets one country by ID.
 --
 -- /See:/ 'countriesGet' smart constructor.
-data CountriesGet = CountriesGet
+data CountriesGet = CountriesGet'
     { _cgProFileId :: !(Textual Int64)
     , _cgDartId    :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'cgDartId'
     -> CountriesGet
 countriesGet pCgProFileId_ pCgDartId_ =
-    CountriesGet
+    CountriesGet'
     { _cgProFileId = _Coerce # pCgProFileId_
     , _cgDartId = _Coerce # pCgDartId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest CountriesGet where
         type Rs CountriesGet = Country
-        requestClient CountriesGet{..}
+        type Scopes CountriesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CountriesGet'{..}
           = go _cgProFileId _cgDartId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Countries/List.hs b/gen/Network/Google/Resource/DFAReporting/Countries/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Countries/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Countries/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Countries.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'CountriesList' request conforms to.
 type CountriesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "countries" :>
@@ -53,7 +53,7 @@
 -- | Retrieves a list of countries.
 --
 -- /See:/ 'countriesList' smart constructor.
-newtype CountriesList = CountriesList
+newtype CountriesList = CountriesList'
     { _couProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'couProFileId'
     -> CountriesList
 countriesList pCouProFileId_ =
-    CountriesList
+    CountriesList'
     { _couProFileId = _Coerce # pCouProFileId_
     }
 
@@ -78,7 +78,9 @@
 
 instance GoogleRequest CountriesList where
         type Rs CountriesList = CountriesListResponse
-        requestClient CountriesList{..}
+        type Scopes CountriesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CountriesList'{..}
           = go _couProFileId (Just AltJSON) dFAReportingService
           where go
                   = buildClient (Proxy :: Proxy CountriesListResource)
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeAssets/Insert.hs b/gen/Network/Google/Resource/DFAReporting/CreativeAssets/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeAssets/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeAssets/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeAssets.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'CreativeAssetsInsert' request conforms to.
 type CreativeAssetsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeAssets" :>
@@ -57,22 +57,21 @@
        :<|>
        "upload" :>
          "dfareporting" :>
-           "v2.2" :>
+           "v2.5" :>
              "userprofiles" :>
                Capture "profileId" (Textual Int64) :>
                  "creativeAssets" :>
                    Capture "advertiserId" (Textual Int64) :>
                      "creativeAssets" :>
                        QueryParam "alt" AltJSON :>
-                         QueryParam "uploadType" AltMedia :>
-                           MultipartRelated '[JSON] CreativeAssetMetadata
-                             RequestBody
-                             :> Post '[JSON] CreativeAssetMetadata
+                         QueryParam "uploadType" Multipart :>
+                           MultipartRelated '[JSON] CreativeAssetMetadata :>
+                             Post '[JSON] CreativeAssetMetadata
 
 -- | Inserts a new creative asset.
 --
 -- /See:/ 'creativeAssetsInsert' smart constructor.
-data CreativeAssetsInsert = CreativeAssetsInsert
+data CreativeAssetsInsert = CreativeAssetsInsert'
     { _caiAdvertiserId :: !(Textual Int64)
     , _caiProFileId    :: !(Textual Int64)
     , _caiPayload      :: !CreativeAssetMetadata
@@ -93,7 +92,7 @@
     -> CreativeAssetMetadata -- ^ 'caiPayload'
     -> CreativeAssetsInsert
 creativeAssetsInsert pCaiAdvertiserId_ pCaiProFileId_ pCaiPayload_ =
-    CreativeAssetsInsert
+    CreativeAssetsInsert'
     { _caiAdvertiserId = _Coerce # pCaiAdvertiserId_
     , _caiProFileId = _Coerce # pCaiProFileId_
     , _caiPayload = pCaiPayload_
@@ -119,7 +118,9 @@
 
 instance GoogleRequest CreativeAssetsInsert where
         type Rs CreativeAssetsInsert = CreativeAssetMetadata
-        requestClient CreativeAssetsInsert{..}
+        type Scopes CreativeAssetsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeAssetsInsert'{..}
           = go _caiProFileId _caiAdvertiserId (Just AltJSON)
               _caiPayload
               dFAReportingService
@@ -132,10 +133,12 @@
          (MediaUpload CreativeAssetsInsert) where
         type Rs (MediaUpload CreativeAssetsInsert) =
              CreativeAssetMetadata
+        type Scopes (MediaUpload CreativeAssetsInsert) =
+             Scopes CreativeAssetsInsert
         requestClient
-          (MediaUpload CreativeAssetsInsert{..} body)
+          (MediaUpload CreativeAssetsInsert'{..} body)
           = go _caiProFileId _caiAdvertiserId (Just AltJSON)
-              (Just AltMedia)
+              (Just Multipart)
               _caiPayload
               body
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Delete.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Delete.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Delete.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFieldValues.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'CreativeFieldValuesDelete' request conforms to.
 type CreativeFieldValuesDeleteResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -57,7 +57,7 @@
 -- | Deletes an existing creative field value.
 --
 -- /See:/ 'creativeFieldValuesDelete' smart constructor.
-data CreativeFieldValuesDelete = CreativeFieldValuesDelete
+data CreativeFieldValuesDelete = CreativeFieldValuesDelete'
     { _cfvdCreativeFieldId :: !(Textual Int64)
     , _cfvdProFileId       :: !(Textual Int64)
     , _cfvdId              :: !(Textual Int64)
@@ -78,7 +78,7 @@
     -> Int64 -- ^ 'cfvdId'
     -> CreativeFieldValuesDelete
 creativeFieldValuesDelete pCfvdCreativeFieldId_ pCfvdProFileId_ pCfvdId_ =
-    CreativeFieldValuesDelete
+    CreativeFieldValuesDelete'
     { _cfvdCreativeFieldId = _Coerce # pCfvdCreativeFieldId_
     , _cfvdProFileId = _Coerce # pCfvdProFileId_
     , _cfvdId = _Coerce # pCfvdId_
@@ -106,7 +106,9 @@
 instance GoogleRequest CreativeFieldValuesDelete
          where
         type Rs CreativeFieldValuesDelete = ()
-        requestClient CreativeFieldValuesDelete{..}
+        type Scopes CreativeFieldValuesDelete =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldValuesDelete'{..}
           = go _cfvdProFileId _cfvdCreativeFieldId _cfvdId
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Get.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFieldValues.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'CreativeFieldValuesGet' request conforms to.
 type CreativeFieldValuesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -58,7 +58,7 @@
 -- | Gets one creative field value by ID.
 --
 -- /See:/ 'creativeFieldValuesGet' smart constructor.
-data CreativeFieldValuesGet = CreativeFieldValuesGet
+data CreativeFieldValuesGet = CreativeFieldValuesGet'
     { _cfvgCreativeFieldId :: !(Textual Int64)
     , _cfvgProFileId       :: !(Textual Int64)
     , _cfvgId              :: !(Textual Int64)
@@ -79,7 +79,7 @@
     -> Int64 -- ^ 'cfvgId'
     -> CreativeFieldValuesGet
 creativeFieldValuesGet pCfvgCreativeFieldId_ pCfvgProFileId_ pCfvgId_ =
-    CreativeFieldValuesGet
+    CreativeFieldValuesGet'
     { _cfvgCreativeFieldId = _Coerce # pCfvgCreativeFieldId_
     , _cfvgProFileId = _Coerce # pCfvgProFileId_
     , _cfvgId = _Coerce # pCfvgId_
@@ -106,7 +106,9 @@
 
 instance GoogleRequest CreativeFieldValuesGet where
         type Rs CreativeFieldValuesGet = CreativeFieldValue
-        requestClient CreativeFieldValuesGet{..}
+        type Scopes CreativeFieldValuesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldValuesGet'{..}
           = go _cfvgProFileId _cfvgCreativeFieldId _cfvgId
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Insert.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFieldValues.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'CreativeFieldValuesInsert' request conforms to.
 type CreativeFieldValuesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -58,7 +58,7 @@
 -- | Inserts a new creative field value.
 --
 -- /See:/ 'creativeFieldValuesInsert' smart constructor.
-data CreativeFieldValuesInsert = CreativeFieldValuesInsert
+data CreativeFieldValuesInsert = CreativeFieldValuesInsert'
     { _cfviCreativeFieldId :: !(Textual Int64)
     , _cfviProFileId       :: !(Textual Int64)
     , _cfviPayload         :: !CreativeFieldValue
@@ -79,7 +79,7 @@
     -> CreativeFieldValue -- ^ 'cfviPayload'
     -> CreativeFieldValuesInsert
 creativeFieldValuesInsert pCfviCreativeFieldId_ pCfviProFileId_ pCfviPayload_ =
-    CreativeFieldValuesInsert
+    CreativeFieldValuesInsert'
     { _cfviCreativeFieldId = _Coerce # pCfviCreativeFieldId_
     , _cfviProFileId = _Coerce # pCfviProFileId_
     , _cfviPayload = pCfviPayload_
@@ -108,7 +108,9 @@
          where
         type Rs CreativeFieldValuesInsert =
              CreativeFieldValue
-        requestClient CreativeFieldValuesInsert{..}
+        type Scopes CreativeFieldValuesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldValuesInsert'{..}
           = go _cfviProFileId _cfviCreativeFieldId
               (Just AltJSON)
               _cfviPayload
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/List.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFieldValues.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -50,7 +50,7 @@
 -- 'CreativeFieldValuesList' request conforms to.
 type CreativeFieldValuesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -72,7 +72,7 @@
 -- | Retrieves a list of creative field values, possibly filtered.
 --
 -- /See:/ 'creativeFieldValuesList' smart constructor.
-data CreativeFieldValuesList = CreativeFieldValuesList
+data CreativeFieldValuesList = CreativeFieldValuesList'
     { _cfvlCreativeFieldId :: !(Textual Int64)
     , _cfvlSearchString    :: !(Maybe Text)
     , _cfvlIds             :: !(Maybe [Textual Int64])
@@ -107,7 +107,7 @@
     -> Int64 -- ^ 'cfvlProFileId'
     -> CreativeFieldValuesList
 creativeFieldValuesList pCfvlCreativeFieldId_ pCfvlProFileId_ =
-    CreativeFieldValuesList
+    CreativeFieldValuesList'
     { _cfvlCreativeFieldId = _Coerce # pCfvlCreativeFieldId_
     , _cfvlSearchString = Nothing
     , _cfvlIds = Nothing
@@ -173,7 +173,9 @@
 instance GoogleRequest CreativeFieldValuesList where
         type Rs CreativeFieldValuesList =
              CreativeFieldValuesListResponse
-        requestClient CreativeFieldValuesList{..}
+        type Scopes CreativeFieldValuesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldValuesList'{..}
           = go _cfvlProFileId _cfvlCreativeFieldId
               _cfvlSearchString
               (_cfvlIds ^. _Default)
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Patch.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFieldValues.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -47,7 +47,7 @@
 -- 'CreativeFieldValuesPatch' request conforms to.
 type CreativeFieldValuesPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -62,7 +62,7 @@
 -- semantics.
 --
 -- /See:/ 'creativeFieldValuesPatch' smart constructor.
-data CreativeFieldValuesPatch = CreativeFieldValuesPatch
+data CreativeFieldValuesPatch = CreativeFieldValuesPatch'
     { _cfvpCreativeFieldId :: !(Textual Int64)
     , _cfvpProFileId       :: !(Textual Int64)
     , _cfvpPayload         :: !CreativeFieldValue
@@ -87,7 +87,7 @@
     -> Int64 -- ^ 'cfvpId'
     -> CreativeFieldValuesPatch
 creativeFieldValuesPatch pCfvpCreativeFieldId_ pCfvpProFileId_ pCfvpPayload_ pCfvpId_ =
-    CreativeFieldValuesPatch
+    CreativeFieldValuesPatch'
     { _cfvpCreativeFieldId = _Coerce # pCfvpCreativeFieldId_
     , _cfvpProFileId = _Coerce # pCfvpProFileId_
     , _cfvpPayload = pCfvpPayload_
@@ -120,7 +120,9 @@
 
 instance GoogleRequest CreativeFieldValuesPatch where
         type Rs CreativeFieldValuesPatch = CreativeFieldValue
-        requestClient CreativeFieldValuesPatch{..}
+        type Scopes CreativeFieldValuesPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldValuesPatch'{..}
           = go _cfvpProFileId _cfvpCreativeFieldId
               (Just _cfvpId)
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Update.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFieldValues/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFieldValues.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'CreativeFieldValuesUpdate' request conforms to.
 type CreativeFieldValuesUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -58,7 +58,7 @@
 -- | Updates an existing creative field value.
 --
 -- /See:/ 'creativeFieldValuesUpdate' smart constructor.
-data CreativeFieldValuesUpdate = CreativeFieldValuesUpdate
+data CreativeFieldValuesUpdate = CreativeFieldValuesUpdate'
     { _cfvuCreativeFieldId :: !(Textual Int64)
     , _cfvuProFileId       :: !(Textual Int64)
     , _cfvuPayload         :: !CreativeFieldValue
@@ -79,7 +79,7 @@
     -> CreativeFieldValue -- ^ 'cfvuPayload'
     -> CreativeFieldValuesUpdate
 creativeFieldValuesUpdate pCfvuCreativeFieldId_ pCfvuProFileId_ pCfvuPayload_ =
-    CreativeFieldValuesUpdate
+    CreativeFieldValuesUpdate'
     { _cfvuCreativeFieldId = _Coerce # pCfvuCreativeFieldId_
     , _cfvuProFileId = _Coerce # pCfvuProFileId_
     , _cfvuPayload = pCfvuPayload_
@@ -108,7 +108,9 @@
          where
         type Rs CreativeFieldValuesUpdate =
              CreativeFieldValue
-        requestClient CreativeFieldValuesUpdate{..}
+        type Scopes CreativeFieldValuesUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldValuesUpdate'{..}
           = go _cfvuProFileId _cfvuCreativeFieldId
               (Just AltJSON)
               _cfvuPayload
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Delete.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Delete.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Delete.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFields.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CreativeFieldsDelete' request conforms to.
 type CreativeFieldsDeleteResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -54,7 +54,7 @@
 -- | Deletes an existing creative field.
 --
 -- /See:/ 'creativeFieldsDelete' smart constructor.
-data CreativeFieldsDelete = CreativeFieldsDelete
+data CreativeFieldsDelete = CreativeFieldsDelete'
     { _cfdProFileId :: !(Textual Int64)
     , _cfdId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'cfdId'
     -> CreativeFieldsDelete
 creativeFieldsDelete pCfdProFileId_ pCfdId_ =
-    CreativeFieldsDelete
+    CreativeFieldsDelete'
     { _cfdProFileId = _Coerce # pCfdProFileId_
     , _cfdId = _Coerce # pCfdId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest CreativeFieldsDelete where
         type Rs CreativeFieldsDelete = ()
-        requestClient CreativeFieldsDelete{..}
+        type Scopes CreativeFieldsDelete =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldsDelete'{..}
           = go _cfdProFileId _cfdId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Get.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFields.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CreativeFieldsGet' request conforms to.
 type CreativeFieldsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -54,7 +54,7 @@
 -- | Gets one creative field by ID.
 --
 -- /See:/ 'creativeFieldsGet' smart constructor.
-data CreativeFieldsGet = CreativeFieldsGet
+data CreativeFieldsGet = CreativeFieldsGet'
     { _cfgProFileId :: !(Textual Int64)
     , _cfgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'cfgId'
     -> CreativeFieldsGet
 creativeFieldsGet pCfgProFileId_ pCfgId_ =
-    CreativeFieldsGet
+    CreativeFieldsGet'
     { _cfgProFileId = _Coerce # pCfgProFileId_
     , _cfgId = _Coerce # pCfgId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest CreativeFieldsGet where
         type Rs CreativeFieldsGet = CreativeField
-        requestClient CreativeFieldsGet{..}
+        type Scopes CreativeFieldsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldsGet'{..}
           = go _cfgProFileId _cfgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Insert.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFields.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CreativeFieldsInsert' request conforms to.
 type CreativeFieldsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new creative field.
 --
 -- /See:/ 'creativeFieldsInsert' smart constructor.
-data CreativeFieldsInsert = CreativeFieldsInsert
+data CreativeFieldsInsert = CreativeFieldsInsert'
     { _cfiProFileId :: !(Textual Int64)
     , _cfiPayload   :: !CreativeField
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> CreativeField -- ^ 'cfiPayload'
     -> CreativeFieldsInsert
 creativeFieldsInsert pCfiProFileId_ pCfiPayload_ =
-    CreativeFieldsInsert
+    CreativeFieldsInsert'
     { _cfiProFileId = _Coerce # pCfiProFileId_
     , _cfiPayload = pCfiPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest CreativeFieldsInsert where
         type Rs CreativeFieldsInsert = CreativeField
-        requestClient CreativeFieldsInsert{..}
+        type Scopes CreativeFieldsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldsInsert'{..}
           = go _cfiProFileId (Just AltJSON) _cfiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/List.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFields/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFields.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -50,7 +50,7 @@
 -- 'CreativeFieldsList' request conforms to.
 type CreativeFieldsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -67,7 +67,7 @@
 -- | Retrieves a list of creative fields, possibly filtered.
 --
 -- /See:/ 'creativeFieldsList' smart constructor.
-data CreativeFieldsList = CreativeFieldsList
+data CreativeFieldsList = CreativeFieldsList'
     { _cflSearchString  :: !(Maybe Text)
     , _cflIds           :: !(Maybe [Textual Int64])
     , _cflProFileId     :: !(Textual Int64)
@@ -101,7 +101,7 @@
     :: Int64 -- ^ 'cflProFileId'
     -> CreativeFieldsList
 creativeFieldsList pCflProFileId_ =
-    CreativeFieldsList
+    CreativeFieldsList'
     { _cflSearchString = Nothing
     , _cflIds = Nothing
     , _cflProFileId = _Coerce # pCflProFileId_
@@ -170,7 +170,9 @@
 instance GoogleRequest CreativeFieldsList where
         type Rs CreativeFieldsList =
              CreativeFieldsListResponse
-        requestClient CreativeFieldsList{..}
+        type Scopes CreativeFieldsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldsList'{..}
           = go _cflProFileId _cflSearchString
               (_cflIds ^. _Default)
               _cflSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Patch.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFields.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'CreativeFieldsPatch' request conforms to.
 type CreativeFieldsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'creativeFieldsPatch' smart constructor.
-data CreativeFieldsPatch = CreativeFieldsPatch
+data CreativeFieldsPatch = CreativeFieldsPatch'
     { _cfpProFileId :: !(Textual Int64)
     , _cfpPayload   :: !CreativeField
     , _cfpId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'cfpId'
     -> CreativeFieldsPatch
 creativeFieldsPatch pCfpProFileId_ pCfpPayload_ pCfpId_ =
-    CreativeFieldsPatch
+    CreativeFieldsPatch'
     { _cfpProFileId = _Coerce # pCfpProFileId_
     , _cfpPayload = pCfpPayload_
     , _cfpId = _Coerce # pCfpId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest CreativeFieldsPatch where
         type Rs CreativeFieldsPatch = CreativeField
-        requestClient CreativeFieldsPatch{..}
+        type Scopes CreativeFieldsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldsPatch'{..}
           = go _cfpProFileId (Just _cfpId) (Just AltJSON)
               _cfpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Update.hs b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeFields/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeFields/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeFields.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CreativeFieldsUpdate' request conforms to.
 type CreativeFieldsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeFields" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing creative field.
 --
 -- /See:/ 'creativeFieldsUpdate' smart constructor.
-data CreativeFieldsUpdate = CreativeFieldsUpdate
+data CreativeFieldsUpdate = CreativeFieldsUpdate'
     { _cfuProFileId :: !(Textual Int64)
     , _cfuPayload   :: !CreativeField
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> CreativeField -- ^ 'cfuPayload'
     -> CreativeFieldsUpdate
 creativeFieldsUpdate pCfuProFileId_ pCfuPayload_ =
-    CreativeFieldsUpdate
+    CreativeFieldsUpdate'
     { _cfuProFileId = _Coerce # pCfuProFileId_
     , _cfuPayload = pCfuPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest CreativeFieldsUpdate where
         type Rs CreativeFieldsUpdate = CreativeField
-        requestClient CreativeFieldsUpdate{..}
+        type Scopes CreativeFieldsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeFieldsUpdate'{..}
           = go _cfuProFileId (Just AltJSON) _cfuPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeGroups.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CreativeGroupsGet' request conforms to.
 type CreativeGroupsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeGroups" :>
@@ -54,7 +54,7 @@
 -- | Gets one creative group by ID.
 --
 -- /See:/ 'creativeGroupsGet' smart constructor.
-data CreativeGroupsGet = CreativeGroupsGet
+data CreativeGroupsGet = CreativeGroupsGet'
     { _cgggProFileId :: !(Textual Int64)
     , _cgggId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'cgggId'
     -> CreativeGroupsGet
 creativeGroupsGet pCgggProFileId_ pCgggId_ =
-    CreativeGroupsGet
+    CreativeGroupsGet'
     { _cgggProFileId = _Coerce # pCgggProFileId_
     , _cgggId = _Coerce # pCgggId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest CreativeGroupsGet where
         type Rs CreativeGroupsGet = CreativeGroup
-        requestClient CreativeGroupsGet{..}
+        type Scopes CreativeGroupsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeGroupsGet'{..}
           = go _cgggProFileId _cgggId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Insert.hs b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeGroups.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CreativeGroupsInsert' request conforms to.
 type CreativeGroupsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeGroups" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new creative group.
 --
 -- /See:/ 'creativeGroupsInsert' smart constructor.
-data CreativeGroupsInsert = CreativeGroupsInsert
+data CreativeGroupsInsert = CreativeGroupsInsert'
     { _cgiProFileId :: !(Textual Int64)
     , _cgiPayload   :: !CreativeGroup
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> CreativeGroup -- ^ 'cgiPayload'
     -> CreativeGroupsInsert
 creativeGroupsInsert pCgiProFileId_ pCgiPayload_ =
-    CreativeGroupsInsert
+    CreativeGroupsInsert'
     { _cgiProFileId = _Coerce # pCgiProFileId_
     , _cgiPayload = pCgiPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest CreativeGroupsInsert where
         type Rs CreativeGroupsInsert = CreativeGroup
-        requestClient CreativeGroupsInsert{..}
+        type Scopes CreativeGroupsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeGroupsInsert'{..}
           = go _cgiProFileId (Just AltJSON) _cgiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeGroups.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -51,7 +51,7 @@
 -- 'CreativeGroupsList' request conforms to.
 type CreativeGroupsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeGroups" :>
@@ -69,7 +69,7 @@
 -- | Retrieves a list of creative groups, possibly filtered.
 --
 -- /See:/ 'creativeGroupsList' smart constructor.
-data CreativeGroupsList = CreativeGroupsList
+data CreativeGroupsList = CreativeGroupsList'
     { _cglSearchString  :: !(Maybe Text)
     , _cglIds           :: !(Maybe [Textual Int64])
     , _cglProFileId     :: !(Textual Int64)
@@ -106,7 +106,7 @@
     :: Int64 -- ^ 'cglProFileId'
     -> CreativeGroupsList
 creativeGroupsList pCglProFileId_ =
-    CreativeGroupsList
+    CreativeGroupsList'
     { _cglSearchString = Nothing
     , _cglIds = Nothing
     , _cglProFileId = _Coerce # pCglProFileId_
@@ -183,7 +183,9 @@
 instance GoogleRequest CreativeGroupsList where
         type Rs CreativeGroupsList =
              CreativeGroupsListResponse
-        requestClient CreativeGroupsList{..}
+        type Scopes CreativeGroupsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeGroupsList'{..}
           = go _cglProFileId _cglSearchString
               (_cglIds ^. _Default)
               _cglSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Patch.hs b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeGroups.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'CreativeGroupsPatch' request conforms to.
 type CreativeGroupsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeGroups" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'creativeGroupsPatch' smart constructor.
-data CreativeGroupsPatch = CreativeGroupsPatch
+data CreativeGroupsPatch = CreativeGroupsPatch'
     { _cgpProFileId :: !(Textual Int64)
     , _cgpPayload   :: !CreativeGroup
     , _cgpId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'cgpId'
     -> CreativeGroupsPatch
 creativeGroupsPatch pCgpProFileId_ pCgpPayload_ pCgpId_ =
-    CreativeGroupsPatch
+    CreativeGroupsPatch'
     { _cgpProFileId = _Coerce # pCgpProFileId_
     , _cgpPayload = pCgpPayload_
     , _cgpId = _Coerce # pCgpId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest CreativeGroupsPatch where
         type Rs CreativeGroupsPatch = CreativeGroup
-        requestClient CreativeGroupsPatch{..}
+        type Scopes CreativeGroupsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeGroupsPatch'{..}
           = go _cgpProFileId (Just _cgpId) (Just AltJSON)
               _cgpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Update.hs b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/CreativeGroups/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.CreativeGroups.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CreativeGroupsUpdate' request conforms to.
 type CreativeGroupsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creativeGroups" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing creative group.
 --
 -- /See:/ 'creativeGroupsUpdate' smart constructor.
-data CreativeGroupsUpdate = CreativeGroupsUpdate
+data CreativeGroupsUpdate = CreativeGroupsUpdate'
     { _cguProFileId :: !(Textual Int64)
     , _cguPayload   :: !CreativeGroup
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> CreativeGroup -- ^ 'cguPayload'
     -> CreativeGroupsUpdate
 creativeGroupsUpdate pCguProFileId_ pCguPayload_ =
-    CreativeGroupsUpdate
+    CreativeGroupsUpdate'
     { _cguProFileId = _Coerce # pCguProFileId_
     , _cguPayload = pCguPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest CreativeGroupsUpdate where
         type Rs CreativeGroupsUpdate = CreativeGroup
-        requestClient CreativeGroupsUpdate{..}
+        type Scopes CreativeGroupsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativeGroupsUpdate'{..}
           = go _cguProFileId (Just AltJSON) _cguPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Creatives/Get.hs b/gen/Network/Google/Resource/DFAReporting/Creatives/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Creatives/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Creatives/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Creatives.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CreativesGet' request conforms to.
 type CreativesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creatives" :>
@@ -54,7 +54,7 @@
 -- | Gets one creative by ID.
 --
 -- /See:/ 'creativesGet' smart constructor.
-data CreativesGet = CreativesGet
+data CreativesGet = CreativesGet'
     { _ccProFileId :: !(Textual Int64)
     , _ccId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'ccId'
     -> CreativesGet
 creativesGet pCcProFileId_ pCcId_ =
-    CreativesGet
+    CreativesGet'
     { _ccProFileId = _Coerce # pCcProFileId_
     , _ccId = _Coerce # pCcId_
     }
@@ -88,7 +88,9 @@
 
 instance GoogleRequest CreativesGet where
         type Rs CreativesGet = Creative
-        requestClient CreativesGet{..}
+        type Scopes CreativesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativesGet'{..}
           = go _ccProFileId _ccId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Creatives/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Creatives/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/Creatives/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Creatives/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Creatives.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CreativesInsert' request conforms to.
 type CreativesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creatives" :>
@@ -54,7 +54,7 @@
 -- | Inserts a new creative.
 --
 -- /See:/ 'creativesInsert' smart constructor.
-data CreativesInsert = CreativesInsert
+data CreativesInsert = CreativesInsert'
     { _ciProFileId :: !(Textual Int64)
     , _ciPayload   :: !Creative
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Creative -- ^ 'ciPayload'
     -> CreativesInsert
 creativesInsert pCiProFileId_ pCiPayload_ =
-    CreativesInsert
+    CreativesInsert'
     { _ciProFileId = _Coerce # pCiProFileId_
     , _ciPayload = pCiPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest CreativesInsert where
         type Rs CreativesInsert = Creative
-        requestClient CreativesInsert{..}
+        type Scopes CreativesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativesInsert'{..}
           = go _ciProFileId (Just AltJSON) _ciPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Creatives/List.hs b/gen/Network/Google/Resource/DFAReporting/Creatives/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Creatives/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Creatives/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Creatives.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -59,7 +59,7 @@
 -- 'CreativesList' request conforms to.
 type CreativesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creatives" :>
@@ -94,7 +94,7 @@
 -- | Retrieves a list of creatives, possibly filtered.
 --
 -- /See:/ 'creativesList' smart constructor.
-data CreativesList = CreativesList
+data CreativesList = CreativesList'
     { _cRenderingIds         :: !(Maybe [Textual Int64])
     , _cAdvertiserId         :: !(Maybe (Textual Int64))
     , _cSearchString         :: !(Maybe Text)
@@ -155,7 +155,7 @@
     :: Int64 -- ^ 'cProFileId'
     -> CreativesList
 creativesList pCProFileId_ =
-    CreativesList
+    CreativesList'
     { _cRenderingIds = Nothing
     , _cAdvertiserId = Nothing
     , _cSearchString = Nothing
@@ -290,7 +290,9 @@
 
 instance GoogleRequest CreativesList where
         type Rs CreativesList = CreativesListResponse
-        requestClient CreativesList{..}
+        type Scopes CreativesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativesList'{..}
           = go _cProFileId (_cRenderingIds ^. _Default)
               _cAdvertiserId
               _cSearchString
diff --git a/gen/Network/Google/Resource/DFAReporting/Creatives/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Creatives/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/Creatives/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Creatives/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Creatives.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'CreativesPatch' request conforms to.
 type CreativesPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creatives" :>
@@ -56,7 +56,7 @@
 -- | Updates an existing creative. This method supports patch semantics.
 --
 -- /See:/ 'creativesPatch' smart constructor.
-data CreativesPatch = CreativesPatch
+data CreativesPatch = CreativesPatch'
     { _cppProFileId :: !(Textual Int64)
     , _cppPayload   :: !Creative
     , _cppId        :: !(Textual Int64)
@@ -77,7 +77,7 @@
     -> Int64 -- ^ 'cppId'
     -> CreativesPatch
 creativesPatch pCppProFileId_ pCppPayload_ pCppId_ =
-    CreativesPatch
+    CreativesPatch'
     { _cppProFileId = _Coerce # pCppProFileId_
     , _cppPayload = pCppPayload_
     , _cppId = _Coerce # pCppId_
@@ -101,7 +101,9 @@
 
 instance GoogleRequest CreativesPatch where
         type Rs CreativesPatch = Creative
-        requestClient CreativesPatch{..}
+        type Scopes CreativesPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativesPatch'{..}
           = go _cppProFileId (Just _cppId) (Just AltJSON)
               _cppPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Creatives/Update.hs b/gen/Network/Google/Resource/DFAReporting/Creatives/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/Creatives/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Creatives/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Creatives.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'CreativesUpdate' request conforms to.
 type CreativesUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "creatives" :>
@@ -54,7 +54,7 @@
 -- | Updates an existing creative.
 --
 -- /See:/ 'creativesUpdate' smart constructor.
-data CreativesUpdate = CreativesUpdate
+data CreativesUpdate = CreativesUpdate'
     { _creProFileId :: !(Textual Int64)
     , _crePayload   :: !Creative
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Creative -- ^ 'crePayload'
     -> CreativesUpdate
 creativesUpdate pCreProFileId_ pCrePayload_ =
-    CreativesUpdate
+    CreativesUpdate'
     { _creProFileId = _Coerce # pCreProFileId_
     , _crePayload = pCrePayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest CreativesUpdate where
         type Rs CreativesUpdate = Creative
-        requestClient CreativesUpdate{..}
+        type Scopes CreativesUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient CreativesUpdate'{..}
           = go _creProFileId (Just AltJSON) _crePayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/DimensionValues/Query.hs b/gen/Network/Google/Resource/DFAReporting/DimensionValues/Query.hs
--- a/gen/Network/Google/Resource/DFAReporting/DimensionValues/Query.hs
+++ b/gen/Network/Google/Resource/DFAReporting/DimensionValues/Query.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.DimensionValues.Query
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'DimensionValuesQuery' request conforms to.
 type DimensionValuesQueryResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "dimensionvalues" :>
@@ -60,7 +60,7 @@
 -- | Retrieves list of report dimension values for a list of filters.
 --
 -- /See:/ 'dimensionValuesQuery' smart constructor.
-data DimensionValuesQuery = DimensionValuesQuery
+data DimensionValuesQuery = DimensionValuesQuery'
     { _dvqProFileId  :: !(Textual Int64)
     , _dvqPayload    :: !DimensionValueRequest
     , _dvqPageToken  :: !(Maybe Text)
@@ -83,7 +83,7 @@
     -> DimensionValueRequest -- ^ 'dvqPayload'
     -> DimensionValuesQuery
 dimensionValuesQuery pDvqProFileId_ pDvqPayload_ =
-    DimensionValuesQuery
+    DimensionValuesQuery'
     { _dvqProFileId = _Coerce # pDvqProFileId_
     , _dvqPayload = pDvqPayload_
     , _dvqPageToken = Nothing
@@ -115,7 +115,9 @@
 
 instance GoogleRequest DimensionValuesQuery where
         type Rs DimensionValuesQuery = DimensionValueList
-        requestClient DimensionValuesQuery{..}
+        type Scopes DimensionValuesQuery =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient DimensionValuesQuery'{..}
           = go _dvqProFileId _dvqPageToken _dvqMaxResults
               (Just AltJSON)
               _dvqPayload
diff --git a/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/Get.hs b/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.DirectorySiteContacts.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'DirectorySiteContactsGet' request conforms to.
 type DirectorySiteContactsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "directorySiteContacts" :>
@@ -55,7 +55,7 @@
 -- | Gets one directory site contact by ID.
 --
 -- /See:/ 'directorySiteContactsGet' smart constructor.
-data DirectorySiteContactsGet = DirectorySiteContactsGet
+data DirectorySiteContactsGet = DirectorySiteContactsGet'
     { _dscgProFileId :: !(Textual Int64)
     , _dscgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'dscgId'
     -> DirectorySiteContactsGet
 directorySiteContactsGet pDscgProFileId_ pDscgId_ =
-    DirectorySiteContactsGet
+    DirectorySiteContactsGet'
     { _dscgProFileId = _Coerce # pDscgProFileId_
     , _dscgId = _Coerce # pDscgId_
     }
@@ -92,7 +92,9 @@
 instance GoogleRequest DirectorySiteContactsGet where
         type Rs DirectorySiteContactsGet =
              DirectorySiteContact
-        requestClient DirectorySiteContactsGet{..}
+        type Scopes DirectorySiteContactsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient DirectorySiteContactsGet'{..}
           = go _dscgProFileId _dscgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/List.hs b/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/DirectorySiteContacts/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.DirectorySiteContacts.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -50,7 +50,7 @@
 -- 'DirectorySiteContactsList' request conforms to.
 type DirectorySiteContactsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "directorySiteContacts" :>
@@ -71,7 +71,7 @@
 -- | Retrieves a list of directory site contacts, possibly filtered.
 --
 -- /See:/ 'directorySiteContactsList' smart constructor.
-data DirectorySiteContactsList = DirectorySiteContactsList
+data DirectorySiteContactsList = DirectorySiteContactsList'
     { _dsclSearchString     :: !(Maybe Text)
     , _dsclIds              :: !(Maybe [Textual Int64])
     , _dsclProFileId        :: !(Textual Int64)
@@ -105,7 +105,7 @@
     :: Int64 -- ^ 'dsclProFileId'
     -> DirectorySiteContactsList
 directorySiteContactsList pDsclProFileId_ =
-    DirectorySiteContactsList
+    DirectorySiteContactsList'
     { _dsclSearchString = Nothing
     , _dsclIds = Nothing
     , _dsclProFileId = _Coerce # pDsclProFileId_
@@ -181,7 +181,9 @@
          where
         type Rs DirectorySiteContactsList =
              DirectorySiteContactsListResponse
-        requestClient DirectorySiteContactsList{..}
+        type Scopes DirectorySiteContactsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient DirectorySiteContactsList'{..}
           = go _dsclProFileId _dsclSearchString
               (_dsclIds ^. _Default)
               (_dsclDirectorySiteIds ^. _Default)
diff --git a/gen/Network/Google/Resource/DFAReporting/DirectorySites/Get.hs b/gen/Network/Google/Resource/DFAReporting/DirectorySites/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/DirectorySites/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/DirectorySites/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.DirectorySites.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'DirectorySitesGet' request conforms to.
 type DirectorySitesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "directorySites" :>
@@ -54,7 +54,7 @@
 -- | Gets one directory site by ID.
 --
 -- /See:/ 'directorySitesGet' smart constructor.
-data DirectorySitesGet = DirectorySitesGet
+data DirectorySitesGet = DirectorySitesGet'
     { _dsgProFileId :: !(Textual Int64)
     , _dsgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'dsgId'
     -> DirectorySitesGet
 directorySitesGet pDsgProFileId_ pDsgId_ =
-    DirectorySitesGet
+    DirectorySitesGet'
     { _dsgProFileId = _Coerce # pDsgProFileId_
     , _dsgId = _Coerce # pDsgId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest DirectorySitesGet where
         type Rs DirectorySitesGet = DirectorySite
-        requestClient DirectorySitesGet{..}
+        type Scopes DirectorySitesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient DirectorySitesGet'{..}
           = go _dsgProFileId _dsgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/DirectorySites/Insert.hs b/gen/Network/Google/Resource/DFAReporting/DirectorySites/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/DirectorySites/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/DirectorySites/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.DirectorySites.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'DirectorySitesInsert' request conforms to.
 type DirectorySitesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "directorySites" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new directory site.
 --
 -- /See:/ 'directorySitesInsert' smart constructor.
-data DirectorySitesInsert = DirectorySitesInsert
+data DirectorySitesInsert = DirectorySitesInsert'
     { _dsiProFileId :: !(Textual Int64)
     , _dsiPayload   :: !DirectorySite
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> DirectorySite -- ^ 'dsiPayload'
     -> DirectorySitesInsert
 directorySitesInsert pDsiProFileId_ pDsiPayload_ =
-    DirectorySitesInsert
+    DirectorySitesInsert'
     { _dsiProFileId = _Coerce # pDsiProFileId_
     , _dsiPayload = pDsiPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest DirectorySitesInsert where
         type Rs DirectorySitesInsert = DirectorySite
-        requestClient DirectorySitesInsert{..}
+        type Scopes DirectorySitesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient DirectorySitesInsert'{..}
           = go _dsiProFileId (Just AltJSON) _dsiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/DirectorySites/List.hs b/gen/Network/Google/Resource/DFAReporting/DirectorySites/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/DirectorySites/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/DirectorySites/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.DirectorySites.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- 'DirectorySitesList' request conforms to.
 type DirectorySitesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "directorySites" :>
@@ -84,7 +84,7 @@
 -- | Retrieves a list of directory sites, possibly filtered.
 --
 -- /See:/ 'directorySitesList' smart constructor.
-data DirectorySitesList = DirectorySitesList
+data DirectorySitesList = DirectorySitesList'
     { _dslSearchString                   :: !(Maybe Text)
     , _dslAcceptsInterstitialPlacements  :: !(Maybe Bool)
     , _dslAcceptsPublisherPaidPlacements :: !(Maybe Bool)
@@ -136,7 +136,7 @@
     :: Int64 -- ^ 'dslProFileId'
     -> DirectorySitesList
 directorySitesList pDslProFileId_ =
-    DirectorySitesList
+    DirectorySitesList'
     { _dslSearchString = Nothing
     , _dslAcceptsInterstitialPlacements = Nothing
     , _dslAcceptsPublisherPaidPlacements = Nothing
@@ -248,7 +248,9 @@
 instance GoogleRequest DirectorySitesList where
         type Rs DirectorySitesList =
              DirectorySitesListResponse
-        requestClient DirectorySitesList{..}
+        type Scopes DirectorySitesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient DirectorySitesList'{..}
           = go _dslProFileId _dslSearchString
               _dslAcceptsInterstitialPlacements
               _dslAcceptsPublisherPaidPlacements
diff --git a/gen/Network/Google/Resource/DFAReporting/DynamicTargetingKeys/Delete.hs b/gen/Network/Google/Resource/DFAReporting/DynamicTargetingKeys/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/DynamicTargetingKeys/Delete.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.DynamicTargetingKeys.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an existing dynamic targeting key.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.dynamicTargetingKeys.delete@.
+module Network.Google.Resource.DFAReporting.DynamicTargetingKeys.Delete
+    (
+    -- * REST Resource
+      DynamicTargetingKeysDeleteResource
+
+    -- * Creating a Request
+    , dynamicTargetingKeysDelete
+    , DynamicTargetingKeysDelete
+
+    -- * Request Lenses
+    , dtkdObjectType
+    , dtkdObjectId
+    , dtkdProFileId
+    , dtkdName
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.dynamicTargetingKeys.delete@ method which the
+-- 'DynamicTargetingKeysDelete' request conforms to.
+type DynamicTargetingKeysDeleteResource =
+     "dfareporting" :>
+       "v2.5" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "dynamicTargetingKeys" :>
+               Capture "objectId" (Textual Int64) :>
+                 QueryParam "name" Text :>
+                   QueryParam "objectType"
+                     DynamicTargetingKeysDeleteObjectType
+                     :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes an existing dynamic targeting key.
+--
+-- /See:/ 'dynamicTargetingKeysDelete' smart constructor.
+data DynamicTargetingKeysDelete = DynamicTargetingKeysDelete'
+    { _dtkdObjectType :: !DynamicTargetingKeysDeleteObjectType
+    , _dtkdObjectId   :: !(Textual Int64)
+    , _dtkdProFileId  :: !(Textual Int64)
+    , _dtkdName       :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DynamicTargetingKeysDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtkdObjectType'
+--
+-- * 'dtkdObjectId'
+--
+-- * 'dtkdProFileId'
+--
+-- * 'dtkdName'
+dynamicTargetingKeysDelete
+    :: DynamicTargetingKeysDeleteObjectType -- ^ 'dtkdObjectType'
+    -> Int64 -- ^ 'dtkdObjectId'
+    -> Int64 -- ^ 'dtkdProFileId'
+    -> Text -- ^ 'dtkdName'
+    -> DynamicTargetingKeysDelete
+dynamicTargetingKeysDelete pDtkdObjectType_ pDtkdObjectId_ pDtkdProFileId_ pDtkdName_ =
+    DynamicTargetingKeysDelete'
+    { _dtkdObjectType = pDtkdObjectType_
+    , _dtkdObjectId = _Coerce # pDtkdObjectId_
+    , _dtkdProFileId = _Coerce # pDtkdProFileId_
+    , _dtkdName = pDtkdName_
+    }
+
+-- | Type of the object of this dynamic targeting key. This is a required
+-- field.
+dtkdObjectType :: Lens' DynamicTargetingKeysDelete DynamicTargetingKeysDeleteObjectType
+dtkdObjectType
+  = lens _dtkdObjectType
+      (\ s a -> s{_dtkdObjectType = a})
+
+-- | ID of the object of this dynamic targeting key. This is a required
+-- field.
+dtkdObjectId :: Lens' DynamicTargetingKeysDelete Int64
+dtkdObjectId
+  = lens _dtkdObjectId (\ s a -> s{_dtkdObjectId = a})
+      . _Coerce
+
+-- | User profile ID associated with this request.
+dtkdProFileId :: Lens' DynamicTargetingKeysDelete Int64
+dtkdProFileId
+  = lens _dtkdProFileId
+      (\ s a -> s{_dtkdProFileId = a})
+      . _Coerce
+
+-- | Name of this dynamic targeting key. This is a required field. Must be
+-- less than 256 characters long and cannot contain commas. All characters
+-- are converted to lowercase.
+dtkdName :: Lens' DynamicTargetingKeysDelete Text
+dtkdName = lens _dtkdName (\ s a -> s{_dtkdName = a})
+
+instance GoogleRequest DynamicTargetingKeysDelete
+         where
+        type Rs DynamicTargetingKeysDelete = ()
+        type Scopes DynamicTargetingKeysDelete =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient DynamicTargetingKeysDelete'{..}
+          = go _dtkdProFileId _dtkdObjectId (Just _dtkdName)
+              (Just _dtkdObjectType)
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DynamicTargetingKeysDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/DynamicTargetingKeys/Insert.hs b/gen/Network/Google/Resource/DFAReporting/DynamicTargetingKeys/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/DynamicTargetingKeys/Insert.hs
@@ -0,0 +1,112 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.DynamicTargetingKeys.Insert
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a new dynamic targeting key. Keys must be created at the
+-- advertiser level before being assigned to the advertiser\'s ads,
+-- creatives, or placements. There is a maximum of 1000 keys per
+-- advertiser, out of which a maximum of 20 keys can be assigned per ad,
+-- creative, or placement.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.dynamicTargetingKeys.insert@.
+module Network.Google.Resource.DFAReporting.DynamicTargetingKeys.Insert
+    (
+    -- * REST Resource
+      DynamicTargetingKeysInsertResource
+
+    -- * Creating a Request
+    , dynamicTargetingKeysInsert
+    , DynamicTargetingKeysInsert
+
+    -- * Request Lenses
+    , dtkiProFileId
+    , dtkiPayload
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.dynamicTargetingKeys.insert@ method which the
+-- 'DynamicTargetingKeysInsert' request conforms to.
+type DynamicTargetingKeysInsertResource =
+     "dfareporting" :>
+       "v2.5" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "dynamicTargetingKeys" :>
+               QueryParam "alt" AltJSON :>
+                 ReqBody '[JSON] DynamicTargetingKey :>
+                   Post '[JSON] DynamicTargetingKey
+
+-- | Inserts a new dynamic targeting key. Keys must be created at the
+-- advertiser level before being assigned to the advertiser\'s ads,
+-- creatives, or placements. There is a maximum of 1000 keys per
+-- advertiser, out of which a maximum of 20 keys can be assigned per ad,
+-- creative, or placement.
+--
+-- /See:/ 'dynamicTargetingKeysInsert' smart constructor.
+data DynamicTargetingKeysInsert = DynamicTargetingKeysInsert'
+    { _dtkiProFileId :: !(Textual Int64)
+    , _dtkiPayload   :: !DynamicTargetingKey
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DynamicTargetingKeysInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtkiProFileId'
+--
+-- * 'dtkiPayload'
+dynamicTargetingKeysInsert
+    :: Int64 -- ^ 'dtkiProFileId'
+    -> DynamicTargetingKey -- ^ 'dtkiPayload'
+    -> DynamicTargetingKeysInsert
+dynamicTargetingKeysInsert pDtkiProFileId_ pDtkiPayload_ =
+    DynamicTargetingKeysInsert'
+    { _dtkiProFileId = _Coerce # pDtkiProFileId_
+    , _dtkiPayload = pDtkiPayload_
+    }
+
+-- | User profile ID associated with this request.
+dtkiProFileId :: Lens' DynamicTargetingKeysInsert Int64
+dtkiProFileId
+  = lens _dtkiProFileId
+      (\ s a -> s{_dtkiProFileId = a})
+      . _Coerce
+
+-- | Multipart request metadata.
+dtkiPayload :: Lens' DynamicTargetingKeysInsert DynamicTargetingKey
+dtkiPayload
+  = lens _dtkiPayload (\ s a -> s{_dtkiPayload = a})
+
+instance GoogleRequest DynamicTargetingKeysInsert
+         where
+        type Rs DynamicTargetingKeysInsert =
+             DynamicTargetingKey
+        type Scopes DynamicTargetingKeysInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient DynamicTargetingKeysInsert'{..}
+          = go _dtkiProFileId (Just AltJSON) _dtkiPayload
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DynamicTargetingKeysInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/DynamicTargetingKeys/List.hs b/gen/Network/Google/Resource/DFAReporting/DynamicTargetingKeys/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/DFAReporting/DynamicTargetingKeys/List.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.DFAReporting.DynamicTargetingKeys.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of dynamic targeting keys.
+--
+-- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.dynamicTargetingKeys.list@.
+module Network.Google.Resource.DFAReporting.DynamicTargetingKeys.List
+    (
+    -- * REST Resource
+      DynamicTargetingKeysListResource
+
+    -- * Creating a Request
+    , dynamicTargetingKeysList
+    , DynamicTargetingKeysList
+
+    -- * Request Lenses
+    , dtklObjectType
+    , dtklAdvertiserId
+    , dtklObjectId
+    , dtklProFileId
+    , dtklNames
+    ) where
+
+import           Network.Google.DFAReporting.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @dfareporting.dynamicTargetingKeys.list@ method which the
+-- 'DynamicTargetingKeysList' request conforms to.
+type DynamicTargetingKeysListResource =
+     "dfareporting" :>
+       "v2.5" :>
+         "userprofiles" :>
+           Capture "profileId" (Textual Int64) :>
+             "dynamicTargetingKeys" :>
+               QueryParam "objectType"
+                 DynamicTargetingKeysListObjectType
+                 :>
+                 QueryParam "advertiserId" (Textual Int64) :>
+                   QueryParam "objectId" (Textual Int64) :>
+                     QueryParams "names" Text :>
+                       QueryParam "alt" AltJSON :>
+                         Get '[JSON] DynamicTargetingKeysListResponse
+
+-- | Retrieves a list of dynamic targeting keys.
+--
+-- /See:/ 'dynamicTargetingKeysList' smart constructor.
+data DynamicTargetingKeysList = DynamicTargetingKeysList'
+    { _dtklObjectType   :: !(Maybe DynamicTargetingKeysListObjectType)
+    , _dtklAdvertiserId :: !(Maybe (Textual Int64))
+    , _dtklObjectId     :: !(Maybe (Textual Int64))
+    , _dtklProFileId    :: !(Textual Int64)
+    , _dtklNames        :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DynamicTargetingKeysList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtklObjectType'
+--
+-- * 'dtklAdvertiserId'
+--
+-- * 'dtklObjectId'
+--
+-- * 'dtklProFileId'
+--
+-- * 'dtklNames'
+dynamicTargetingKeysList
+    :: Int64 -- ^ 'dtklProFileId'
+    -> DynamicTargetingKeysList
+dynamicTargetingKeysList pDtklProFileId_ =
+    DynamicTargetingKeysList'
+    { _dtklObjectType = Nothing
+    , _dtklAdvertiserId = Nothing
+    , _dtklObjectId = Nothing
+    , _dtklProFileId = _Coerce # pDtklProFileId_
+    , _dtklNames = Nothing
+    }
+
+-- | Select only dynamic targeting keys with this object type.
+dtklObjectType :: Lens' DynamicTargetingKeysList (Maybe DynamicTargetingKeysListObjectType)
+dtklObjectType
+  = lens _dtklObjectType
+      (\ s a -> s{_dtklObjectType = a})
+
+-- | Select only dynamic targeting keys whose object has this advertiser ID.
+dtklAdvertiserId :: Lens' DynamicTargetingKeysList (Maybe Int64)
+dtklAdvertiserId
+  = lens _dtklAdvertiserId
+      (\ s a -> s{_dtklAdvertiserId = a})
+      . mapping _Coerce
+
+-- | Select only dynamic targeting keys with this object ID.
+dtklObjectId :: Lens' DynamicTargetingKeysList (Maybe Int64)
+dtklObjectId
+  = lens _dtklObjectId (\ s a -> s{_dtklObjectId = a})
+      . mapping _Coerce
+
+-- | User profile ID associated with this request.
+dtklProFileId :: Lens' DynamicTargetingKeysList Int64
+dtklProFileId
+  = lens _dtklProFileId
+      (\ s a -> s{_dtklProFileId = a})
+      . _Coerce
+
+-- | Select only dynamic targeting keys exactly matching these names.
+dtklNames :: Lens' DynamicTargetingKeysList [Text]
+dtklNames
+  = lens _dtklNames (\ s a -> s{_dtklNames = a}) .
+      _Default
+      . _Coerce
+
+instance GoogleRequest DynamicTargetingKeysList where
+        type Rs DynamicTargetingKeysList =
+             DynamicTargetingKeysListResponse
+        type Scopes DynamicTargetingKeysList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient DynamicTargetingKeysList'{..}
+          = go _dtklProFileId _dtklObjectType _dtklAdvertiserId
+              _dtklObjectId
+              (_dtklNames ^. _Default)
+              (Just AltJSON)
+              dFAReportingService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy DynamicTargetingKeysListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/Delete.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/Delete.hs
--- a/gen/Network/Google/Resource/DFAReporting/EventTags/Delete.hs
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.EventTags.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'EventTagsDelete' request conforms to.
 type EventTagsDeleteResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "eventTags" :>
@@ -54,7 +54,7 @@
 -- | Deletes an existing event tag.
 --
 -- /See:/ 'eventTagsDelete' smart constructor.
-data EventTagsDelete = EventTagsDelete
+data EventTagsDelete = EventTagsDelete'
     { _etdProFileId :: !(Textual Int64)
     , _etdId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'etdId'
     -> EventTagsDelete
 eventTagsDelete pEtdProFileId_ pEtdId_ =
-    EventTagsDelete
+    EventTagsDelete'
     { _etdProFileId = _Coerce # pEtdProFileId_
     , _etdId = _Coerce # pEtdId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest EventTagsDelete where
         type Rs EventTagsDelete = ()
-        requestClient EventTagsDelete{..}
+        type Scopes EventTagsDelete =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient EventTagsDelete'{..}
           = go _etdProFileId _etdId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/Get.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/EventTags/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.EventTags.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'EventTagsGet' request conforms to.
 type EventTagsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "eventTags" :>
@@ -54,7 +54,7 @@
 -- | Gets one event tag by ID.
 --
 -- /See:/ 'eventTagsGet' smart constructor.
-data EventTagsGet = EventTagsGet
+data EventTagsGet = EventTagsGet'
     { _etgProFileId :: !(Textual Int64)
     , _etgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'etgId'
     -> EventTagsGet
 eventTagsGet pEtgProFileId_ pEtgId_ =
-    EventTagsGet
+    EventTagsGet'
     { _etgProFileId = _Coerce # pEtgProFileId_
     , _etgId = _Coerce # pEtgId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest EventTagsGet where
         type Rs EventTagsGet = EventTag
-        requestClient EventTagsGet{..}
+        type Scopes EventTagsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient EventTagsGet'{..}
           = go _etgProFileId _etgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/Insert.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/EventTags/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.EventTags.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'EventTagsInsert' request conforms to.
 type EventTagsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "eventTags" :>
@@ -54,7 +54,7 @@
 -- | Inserts a new event tag.
 --
 -- /See:/ 'eventTagsInsert' smart constructor.
-data EventTagsInsert = EventTagsInsert
+data EventTagsInsert = EventTagsInsert'
     { _etiProFileId :: !(Textual Int64)
     , _etiPayload   :: !EventTag
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> EventTag -- ^ 'etiPayload'
     -> EventTagsInsert
 eventTagsInsert pEtiProFileId_ pEtiPayload_ =
-    EventTagsInsert
+    EventTagsInsert'
     { _etiProFileId = _Coerce # pEtiProFileId_
     , _etiPayload = pEtiPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest EventTagsInsert where
         type Rs EventTagsInsert = EventTag
-        requestClient EventTagsInsert{..}
+        type Scopes EventTagsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient EventTagsInsert'{..}
           = go _etiProFileId (Just AltJSON) _etiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/List.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/EventTags/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.EventTags.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -53,7 +53,7 @@
 -- 'EventTagsList' request conforms to.
 type EventTagsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "eventTags" :>
@@ -76,7 +76,7 @@
 -- | Retrieves a list of event tags, possibly filtered.
 --
 -- /See:/ 'eventTagsList' smart constructor.
-data EventTagsList = EventTagsList
+data EventTagsList = EventTagsList'
     { _etlDefinitionsOnly :: !(Maybe Bool)
     , _etlEventTagTypes   :: !(Maybe [EventTagsListEventTagTypes])
     , _etlEnabled         :: !(Maybe Bool)
@@ -119,7 +119,7 @@
     :: Int64 -- ^ 'etlProFileId'
     -> EventTagsList
 eventTagsList pEtlProFileId_ =
-    EventTagsList
+    EventTagsList'
     { _etlDefinitionsOnly = Nothing
     , _etlEventTagTypes = Nothing
     , _etlEnabled = Nothing
@@ -222,7 +222,9 @@
 
 instance GoogleRequest EventTagsList where
         type Rs EventTagsList = EventTagsListResponse
-        requestClient EventTagsList{..}
+        type Scopes EventTagsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient EventTagsList'{..}
           = go _etlProFileId _etlDefinitionsOnly
               (_etlEventTagTypes ^. _Default)
               _etlEnabled
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/Patch.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/EventTags/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.EventTags.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'EventTagsPatch' request conforms to.
 type EventTagsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "eventTags" :>
@@ -56,7 +56,7 @@
 -- | Updates an existing event tag. This method supports patch semantics.
 --
 -- /See:/ 'eventTagsPatch' smart constructor.
-data EventTagsPatch = EventTagsPatch
+data EventTagsPatch = EventTagsPatch'
     { _etpProFileId :: !(Textual Int64)
     , _etpPayload   :: !EventTag
     , _etpId        :: !(Textual Int64)
@@ -77,7 +77,7 @@
     -> Int64 -- ^ 'etpId'
     -> EventTagsPatch
 eventTagsPatch pEtpProFileId_ pEtpPayload_ pEtpId_ =
-    EventTagsPatch
+    EventTagsPatch'
     { _etpProFileId = _Coerce # pEtpProFileId_
     , _etpPayload = pEtpPayload_
     , _etpId = _Coerce # pEtpId_
@@ -101,7 +101,9 @@
 
 instance GoogleRequest EventTagsPatch where
         type Rs EventTagsPatch = EventTag
-        requestClient EventTagsPatch{..}
+        type Scopes EventTagsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient EventTagsPatch'{..}
           = go _etpProFileId (Just _etpId) (Just AltJSON)
               _etpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/EventTags/Update.hs b/gen/Network/Google/Resource/DFAReporting/EventTags/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/EventTags/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/EventTags/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.EventTags.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'EventTagsUpdate' request conforms to.
 type EventTagsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "eventTags" :>
@@ -54,7 +54,7 @@
 -- | Updates an existing event tag.
 --
 -- /See:/ 'eventTagsUpdate' smart constructor.
-data EventTagsUpdate = EventTagsUpdate
+data EventTagsUpdate = EventTagsUpdate'
     { _etuProFileId :: !(Textual Int64)
     , _etuPayload   :: !EventTag
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> EventTag -- ^ 'etuPayload'
     -> EventTagsUpdate
 eventTagsUpdate pEtuProFileId_ pEtuPayload_ =
-    EventTagsUpdate
+    EventTagsUpdate'
     { _etuProFileId = _Coerce # pEtuProFileId_
     , _etuPayload = pEtuPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest EventTagsUpdate where
         type Rs EventTagsUpdate = EventTag
-        requestClient EventTagsUpdate{..}
+        type Scopes EventTagsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient EventTagsUpdate'{..}
           = go _etuProFileId (Just AltJSON) _etuPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Files/Get.hs b/gen/Network/Google/Resource/DFAReporting/Files/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Files/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Files/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Files.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FilesGet' request conforms to.
 type FilesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "reports" :>
            Capture "reportId" (Textual Int64) :>
              "files" :>
@@ -52,7 +52,7 @@
                  QueryParam "alt" AltJSON :> Get '[JSON] File
        :<|>
        "dfareporting" :>
-         "v2.2" :>
+         "v2.5" :>
            "reports" :>
              Capture "reportId" (Textual Int64) :>
                "files" :>
@@ -63,7 +63,7 @@
 -- | Retrieves a report file by its report ID and file ID.
 --
 -- /See:/ 'filesGet' smart constructor.
-data FilesGet = FilesGet
+data FilesGet = FilesGet'
     { _fgReportId :: !(Textual Int64)
     , _fgFileId   :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'fgFileId'
     -> FilesGet
 filesGet pFgReportId_ pFgFileId_ =
-    FilesGet
+    FilesGet'
     { _fgReportId = _Coerce # pFgReportId_
     , _fgFileId = _Coerce # pFgFileId_
     }
@@ -99,7 +99,9 @@
 
 instance GoogleRequest FilesGet where
         type Rs FilesGet = File
-        requestClient FilesGet{..}
+        type Scopes FilesGet =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient FilesGet'{..}
           = go _fgReportId _fgFileId (Just AltJSON)
               dFAReportingService
           where go :<|> _
@@ -108,7 +110,9 @@
 
 instance GoogleRequest (MediaDownload FilesGet) where
         type Rs (MediaDownload FilesGet) = Stream
-        requestClient (MediaDownload FilesGet{..})
+        type Scopes (MediaDownload FilesGet) =
+             Scopes FilesGet
+        requestClient (MediaDownload FilesGet'{..})
           = go _fgReportId _fgFileId (Just AltMedia)
               dFAReportingService
           where _ :<|> go
diff --git a/gen/Network/Google/Resource/DFAReporting/Files/List.hs b/gen/Network/Google/Resource/DFAReporting/Files/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Files/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Files/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Files.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -48,7 +48,7 @@
 -- 'FilesList' request conforms to.
 type FilesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "files" :>
@@ -62,7 +62,7 @@
 -- | Lists files for a user profile.
 --
 -- /See:/ 'filesList' smart constructor.
-data FilesList = FilesList
+data FilesList = FilesList'
     { _flProFileId  :: !(Textual Int64)
     , _flSortOrder  :: !FilesListSortOrder
     , _flScope      :: !FilesListScope
@@ -90,7 +90,7 @@
     :: Int64 -- ^ 'flProFileId'
     -> FilesList
 filesList pFlProFileId_ =
-    FilesList
+    FilesList'
     { _flProFileId = _Coerce # pFlProFileId_
     , _flSortOrder = FLSODescending
     , _flScope = FLSMine
@@ -132,7 +132,9 @@
 
 instance GoogleRequest FilesList where
         type Rs FilesList = FileList
-        requestClient FilesList{..}
+        type Scopes FilesList =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient FilesList'{..}
           = go _flProFileId (Just _flSortOrder) (Just _flScope)
               _flPageToken
               (Just _flSortField)
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Delete.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Delete.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Delete.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivities.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightActivitiesDelete' request conforms to.
 type FloodlightActivitiesDeleteResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivities" :>
@@ -54,7 +54,7 @@
 -- | Deletes an existing floodlight activity.
 --
 -- /See:/ 'floodlightActivitiesDelete' smart constructor.
-data FloodlightActivitiesDelete = FloodlightActivitiesDelete
+data FloodlightActivitiesDelete = FloodlightActivitiesDelete'
     { _fadProFileId :: !(Textual Int64)
     , _fadId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'fadId'
     -> FloodlightActivitiesDelete
 floodlightActivitiesDelete pFadProFileId_ pFadId_ =
-    FloodlightActivitiesDelete
+    FloodlightActivitiesDelete'
     { _fadProFileId = _Coerce # pFadProFileId_
     , _fadId = _Coerce # pFadId_
     }
@@ -90,7 +90,9 @@
 instance GoogleRequest FloodlightActivitiesDelete
          where
         type Rs FloodlightActivitiesDelete = ()
-        requestClient FloodlightActivitiesDelete{..}
+        type Scopes FloodlightActivitiesDelete =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivitiesDelete'{..}
           = go _fadProFileId _fadId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Generatetag.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Generatetag.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Generatetag.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Generatetag.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivities.Generatetag
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightActivitiesGeneratetag' request conforms to.
 type FloodlightActivitiesGeneratetagResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivities" :>
@@ -56,7 +56,7 @@
 -- | Generates a tag for a floodlight activity.
 --
 -- /See:/ 'floodlightActivitiesGeneratetag' smart constructor.
-data FloodlightActivitiesGeneratetag = FloodlightActivitiesGeneratetag
+data FloodlightActivitiesGeneratetag = FloodlightActivitiesGeneratetag'
     { _fagFloodlightActivityId :: !(Maybe (Textual Int64))
     , _fagProFileId            :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     :: Int64 -- ^ 'fagProFileId'
     -> FloodlightActivitiesGeneratetag
 floodlightActivitiesGeneratetag pFagProFileId_ =
-    FloodlightActivitiesGeneratetag
+    FloodlightActivitiesGeneratetag'
     { _fagFloodlightActivityId = Nothing
     , _fagProFileId = _Coerce # pFagProFileId_
     }
@@ -94,7 +94,9 @@
          FloodlightActivitiesGeneratetag where
         type Rs FloodlightActivitiesGeneratetag =
              FloodlightActivitiesGenerateTagResponse
-        requestClient FloodlightActivitiesGeneratetag{..}
+        type Scopes FloodlightActivitiesGeneratetag =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivitiesGeneratetag'{..}
           = go _fagProFileId _fagFloodlightActivityId
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Get.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivities.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightActivitiesGet' request conforms to.
 type FloodlightActivitiesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivities" :>
@@ -55,7 +55,7 @@
 -- | Gets one floodlight activity by ID.
 --
 -- /See:/ 'floodlightActivitiesGet' smart constructor.
-data FloodlightActivitiesGet = FloodlightActivitiesGet
+data FloodlightActivitiesGet = FloodlightActivitiesGet'
     { _fProFileId :: !(Textual Int64)
     , _fId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'fId'
     -> FloodlightActivitiesGet
 floodlightActivitiesGet pFProFileId_ pFId_ =
-    FloodlightActivitiesGet
+    FloodlightActivitiesGet'
     { _fProFileId = _Coerce # pFProFileId_
     , _fId = _Coerce # pFId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest FloodlightActivitiesGet where
         type Rs FloodlightActivitiesGet = FloodlightActivity
-        requestClient FloodlightActivitiesGet{..}
+        type Scopes FloodlightActivitiesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivitiesGet'{..}
           = go _fProFileId _fId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Insert.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivities.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightActivitiesInsert' request conforms to.
 type FloodlightActivitiesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivities" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new floodlight activity.
 --
 -- /See:/ 'floodlightActivitiesInsert' smart constructor.
-data FloodlightActivitiesInsert = FloodlightActivitiesInsert
+data FloodlightActivitiesInsert = FloodlightActivitiesInsert'
     { _faiProFileId :: !(Textual Int64)
     , _faiPayload   :: !FloodlightActivity
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> FloodlightActivity -- ^ 'faiPayload'
     -> FloodlightActivitiesInsert
 floodlightActivitiesInsert pFaiProFileId_ pFaiPayload_ =
-    FloodlightActivitiesInsert
+    FloodlightActivitiesInsert'
     { _faiProFileId = _Coerce # pFaiProFileId_
     , _faiPayload = pFaiPayload_
     }
@@ -92,7 +92,9 @@
          where
         type Rs FloodlightActivitiesInsert =
              FloodlightActivity
-        requestClient FloodlightActivitiesInsert{..}
+        type Scopes FloodlightActivitiesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivitiesInsert'{..}
           = go _faiProFileId (Just AltJSON) _faiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/List.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivities.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- 'FloodlightActivitiesList' request conforms to.
 type FloodlightActivitiesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivities" :>
@@ -92,7 +92,7 @@
 -- | Retrieves a list of floodlight activities, possibly filtered.
 --
 -- /See:/ 'floodlightActivitiesList' smart constructor.
-data FloodlightActivitiesList = FloodlightActivitiesList
+data FloodlightActivitiesList = FloodlightActivitiesList'
     { _falTagString                        :: !(Maybe Text)
     , _falFloodlightActivityGroupTagString :: !(Maybe Text)
     , _falFloodlightConfigurationId        :: !(Maybe (Textual Int64))
@@ -144,7 +144,7 @@
     :: Int64 -- ^ 'falProFileId'
     -> FloodlightActivitiesList
 floodlightActivitiesList pFalProFileId_ =
-    FloodlightActivitiesList
+    FloodlightActivitiesList'
     { _falTagString = Nothing
     , _falFloodlightActivityGroupTagString = Nothing
     , _falFloodlightConfigurationId = Nothing
@@ -267,7 +267,9 @@
 instance GoogleRequest FloodlightActivitiesList where
         type Rs FloodlightActivitiesList =
              FloodlightActivitiesListResponse
-        requestClient FloodlightActivitiesList{..}
+        type Scopes FloodlightActivitiesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivitiesList'{..}
           = go _falProFileId _falTagString
               _falFloodlightActivityGroupTagString
               _falFloodlightConfigurationId
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Patch.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivities.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'FloodlightActivitiesPatch' request conforms to.
 type FloodlightActivitiesPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivities" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'floodlightActivitiesPatch' smart constructor.
-data FloodlightActivitiesPatch = FloodlightActivitiesPatch
+data FloodlightActivitiesPatch = FloodlightActivitiesPatch'
     { _fapProFileId :: !(Textual Int64)
     , _fapPayload   :: !FloodlightActivity
     , _fapId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'fapId'
     -> FloodlightActivitiesPatch
 floodlightActivitiesPatch pFapProFileId_ pFapPayload_ pFapId_ =
-    FloodlightActivitiesPatch
+    FloodlightActivitiesPatch'
     { _fapProFileId = _Coerce # pFapProFileId_
     , _fapPayload = pFapPayload_
     , _fapId = _Coerce # pFapId_
@@ -106,7 +106,9 @@
          where
         type Rs FloodlightActivitiesPatch =
              FloodlightActivity
-        requestClient FloodlightActivitiesPatch{..}
+        type Scopes FloodlightActivitiesPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivitiesPatch'{..}
           = go _fapProFileId (Just _fapId) (Just AltJSON)
               _fapPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Update.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivities/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivities.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightActivitiesUpdate' request conforms to.
 type FloodlightActivitiesUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivities" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing floodlight activity.
 --
 -- /See:/ 'floodlightActivitiesUpdate' smart constructor.
-data FloodlightActivitiesUpdate = FloodlightActivitiesUpdate
+data FloodlightActivitiesUpdate = FloodlightActivitiesUpdate'
     { _fauProFileId :: !(Textual Int64)
     , _fauPayload   :: !FloodlightActivity
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> FloodlightActivity -- ^ 'fauPayload'
     -> FloodlightActivitiesUpdate
 floodlightActivitiesUpdate pFauProFileId_ pFauPayload_ =
-    FloodlightActivitiesUpdate
+    FloodlightActivitiesUpdate'
     { _fauProFileId = _Coerce # pFauProFileId_
     , _fauPayload = pFauPayload_
     }
@@ -92,7 +92,9 @@
          where
         type Rs FloodlightActivitiesUpdate =
              FloodlightActivity
-        requestClient FloodlightActivitiesUpdate{..}
+        type Scopes FloodlightActivitiesUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivitiesUpdate'{..}
           = go _fauProFileId (Just AltJSON) _fauPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Delete.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Delete.hs
+++ /dev/null
@@ -1,101 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Delete
--- Copyright   : (c) 2015 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes an existing floodlight activity group.
---
--- /See:/ <https://developers.google.com/doubleclick-advertisers/reporting/ DCM/DFA Reporting And Trafficking API Reference> for @dfareporting.floodlightActivityGroups.delete@.
-module Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Delete
-    (
-    -- * REST Resource
-      FloodlightActivityGroupsDeleteResource
-
-    -- * Creating a Request
-    , floodlightActivityGroupsDelete
-    , FloodlightActivityGroupsDelete
-
-    -- * Request Lenses
-    , fagdProFileId
-    , fagdId
-    ) where
-
-import           Network.Google.DFAReporting.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dfareporting.floodlightActivityGroups.delete@ method which the
--- 'FloodlightActivityGroupsDelete' request conforms to.
-type FloodlightActivityGroupsDeleteResource =
-     "dfareporting" :>
-       "v2.2" :>
-         "userprofiles" :>
-           Capture "profileId" (Textual Int64) :>
-             "floodlightActivityGroups" :>
-               Capture "id" (Textual Int64) :>
-                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Deletes an existing floodlight activity group.
---
--- /See:/ 'floodlightActivityGroupsDelete' smart constructor.
-data FloodlightActivityGroupsDelete = FloodlightActivityGroupsDelete
-    { _fagdProFileId :: !(Textual Int64)
-    , _fagdId        :: !(Textual Int64)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FloodlightActivityGroupsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fagdProFileId'
---
--- * 'fagdId'
-floodlightActivityGroupsDelete
-    :: Int64 -- ^ 'fagdProFileId'
-    -> Int64 -- ^ 'fagdId'
-    -> FloodlightActivityGroupsDelete
-floodlightActivityGroupsDelete pFagdProFileId_ pFagdId_ =
-    FloodlightActivityGroupsDelete
-    { _fagdProFileId = _Coerce # pFagdProFileId_
-    , _fagdId = _Coerce # pFagdId_
-    }
-
--- | User profile ID associated with this request.
-fagdProFileId :: Lens' FloodlightActivityGroupsDelete Int64
-fagdProFileId
-  = lens _fagdProFileId
-      (\ s a -> s{_fagdProFileId = a})
-      . _Coerce
-
--- | Floodlight activity Group ID.
-fagdId :: Lens' FloodlightActivityGroupsDelete Int64
-fagdId
-  = lens _fagdId (\ s a -> s{_fagdId = a}) . _Coerce
-
-instance GoogleRequest FloodlightActivityGroupsDelete
-         where
-        type Rs FloodlightActivityGroupsDelete = ()
-        requestClient FloodlightActivityGroupsDelete{..}
-          = go _fagdProFileId _fagdId (Just AltJSON)
-              dFAReportingService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy FloodlightActivityGroupsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightActivityGroupsGet' request conforms to.
 type FloodlightActivityGroupsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivityGroups" :>
@@ -55,7 +55,7 @@
 -- | Gets one floodlight activity group by ID.
 --
 -- /See:/ 'floodlightActivityGroupsGet' smart constructor.
-data FloodlightActivityGroupsGet = FloodlightActivityGroupsGet
+data FloodlightActivityGroupsGet = FloodlightActivityGroupsGet'
     { _faggProFileId :: !(Textual Int64)
     , _faggId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'faggId'
     -> FloodlightActivityGroupsGet
 floodlightActivityGroupsGet pFaggProFileId_ pFaggId_ =
-    FloodlightActivityGroupsGet
+    FloodlightActivityGroupsGet'
     { _faggProFileId = _Coerce # pFaggProFileId_
     , _faggId = _Coerce # pFaggId_
     }
@@ -93,7 +93,9 @@
          where
         type Rs FloodlightActivityGroupsGet =
              FloodlightActivityGroup
-        requestClient FloodlightActivityGroupsGet{..}
+        type Scopes FloodlightActivityGroupsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivityGroupsGet'{..}
           = go _faggProFileId _faggId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Insert.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightActivityGroupsInsert' request conforms to.
 type FloodlightActivityGroupsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivityGroups" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new floodlight activity group.
 --
 -- /See:/ 'floodlightActivityGroupsInsert' smart constructor.
-data FloodlightActivityGroupsInsert = FloodlightActivityGroupsInsert
+data FloodlightActivityGroupsInsert = FloodlightActivityGroupsInsert'
     { _fagiProFileId :: !(Textual Int64)
     , _fagiPayload   :: !FloodlightActivityGroup
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> FloodlightActivityGroup -- ^ 'fagiPayload'
     -> FloodlightActivityGroupsInsert
 floodlightActivityGroupsInsert pFagiProFileId_ pFagiPayload_ =
-    FloodlightActivityGroupsInsert
+    FloodlightActivityGroupsInsert'
     { _fagiProFileId = _Coerce # pFagiProFileId_
     , _fagiPayload = pFagiPayload_
     }
@@ -93,7 +93,9 @@
          where
         type Rs FloodlightActivityGroupsInsert =
              FloodlightActivityGroup
-        requestClient FloodlightActivityGroupsInsert{..}
+        type Scopes FloodlightActivityGroupsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivityGroupsInsert'{..}
           = go _fagiProFileId (Just AltJSON) _fagiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivityGroups.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -52,7 +52,7 @@
 -- 'FloodlightActivityGroupsList' request conforms to.
 type FloodlightActivityGroupsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivityGroups" :>
@@ -79,7 +79,7 @@
 -- | Retrieves a list of floodlight activity groups, possibly filtered.
 --
 -- /See:/ 'floodlightActivityGroupsList' smart constructor.
-data FloodlightActivityGroupsList = FloodlightActivityGroupsList
+data FloodlightActivityGroupsList = FloodlightActivityGroupsList'
     { _faglFloodlightConfigurationId :: !(Maybe (Textual Int64))
     , _faglAdvertiserId              :: !(Maybe (Textual Int64))
     , _faglSearchString              :: !(Maybe Text)
@@ -119,7 +119,7 @@
     :: Int64 -- ^ 'faglProFileId'
     -> FloodlightActivityGroupsList
 floodlightActivityGroupsList pFaglProFileId_ =
-    FloodlightActivityGroupsList
+    FloodlightActivityGroupsList'
     { _faglFloodlightConfigurationId = Nothing
     , _faglAdvertiserId = Nothing
     , _faglSearchString = Nothing
@@ -213,7 +213,9 @@
          where
         type Rs FloodlightActivityGroupsList =
              FloodlightActivityGroupsListResponse
-        requestClient FloodlightActivityGroupsList{..}
+        type Scopes FloodlightActivityGroupsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivityGroupsList'{..}
           = go _faglProFileId _faglFloodlightConfigurationId
               _faglAdvertiserId
               _faglSearchString
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Patch.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'FloodlightActivityGroupsPatch' request conforms to.
 type FloodlightActivityGroupsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivityGroups" :>
@@ -59,7 +59,7 @@
 -- patch semantics.
 --
 -- /See:/ 'floodlightActivityGroupsPatch' smart constructor.
-data FloodlightActivityGroupsPatch = FloodlightActivityGroupsPatch
+data FloodlightActivityGroupsPatch = FloodlightActivityGroupsPatch'
     { _fagpProFileId :: !(Textual Int64)
     , _fagpPayload   :: !FloodlightActivityGroup
     , _fagpId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'fagpId'
     -> FloodlightActivityGroupsPatch
 floodlightActivityGroupsPatch pFagpProFileId_ pFagpPayload_ pFagpId_ =
-    FloodlightActivityGroupsPatch
+    FloodlightActivityGroupsPatch'
     { _fagpProFileId = _Coerce # pFagpProFileId_
     , _fagpPayload = pFagpPayload_
     , _fagpId = _Coerce # pFagpId_
@@ -107,7 +107,9 @@
          where
         type Rs FloodlightActivityGroupsPatch =
              FloodlightActivityGroup
-        requestClient FloodlightActivityGroupsPatch{..}
+        type Scopes FloodlightActivityGroupsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivityGroupsPatch'{..}
           = go _fagpProFileId (Just _fagpId) (Just AltJSON)
               _fagpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Update.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightActivityGroups/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightActivityGroupsUpdate' request conforms to.
 type FloodlightActivityGroupsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightActivityGroups" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing floodlight activity group.
 --
 -- /See:/ 'floodlightActivityGroupsUpdate' smart constructor.
-data FloodlightActivityGroupsUpdate = FloodlightActivityGroupsUpdate
+data FloodlightActivityGroupsUpdate = FloodlightActivityGroupsUpdate'
     { _faguProFileId :: !(Textual Int64)
     , _faguPayload   :: !FloodlightActivityGroup
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> FloodlightActivityGroup -- ^ 'faguPayload'
     -> FloodlightActivityGroupsUpdate
 floodlightActivityGroupsUpdate pFaguProFileId_ pFaguPayload_ =
-    FloodlightActivityGroupsUpdate
+    FloodlightActivityGroupsUpdate'
     { _faguProFileId = _Coerce # pFaguProFileId_
     , _faguPayload = pFaguPayload_
     }
@@ -93,7 +93,9 @@
          where
         type Rs FloodlightActivityGroupsUpdate =
              FloodlightActivityGroup
-        requestClient FloodlightActivityGroupsUpdate{..}
+        type Scopes FloodlightActivityGroupsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightActivityGroupsUpdate'{..}
           = go _faguProFileId (Just AltJSON) _faguPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Get.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightConfigurations.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightConfigurationsGet' request conforms to.
 type FloodlightConfigurationsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightConfigurations" :>
@@ -55,7 +55,7 @@
 -- | Gets one floodlight configuration by ID.
 --
 -- /See:/ 'floodlightConfigurationsGet' smart constructor.
-data FloodlightConfigurationsGet = FloodlightConfigurationsGet
+data FloodlightConfigurationsGet = FloodlightConfigurationsGet'
     { _fcgProFileId :: !(Textual Int64)
     , _fcgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'fcgId'
     -> FloodlightConfigurationsGet
 floodlightConfigurationsGet pFcgProFileId_ pFcgId_ =
-    FloodlightConfigurationsGet
+    FloodlightConfigurationsGet'
     { _fcgProFileId = _Coerce # pFcgProFileId_
     , _fcgId = _Coerce # pFcgId_
     }
@@ -92,7 +92,9 @@
          where
         type Rs FloodlightConfigurationsGet =
              FloodlightConfiguration
-        requestClient FloodlightConfigurationsGet{..}
+        type Scopes FloodlightConfigurationsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightConfigurationsGet'{..}
           = go _fcgProFileId _fcgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/List.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightConfigurations.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightConfigurationsList' request conforms to.
 type FloodlightConfigurationsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightConfigurations" :>
@@ -55,7 +55,7 @@
 -- | Retrieves a list of floodlight configurations, possibly filtered.
 --
 -- /See:/ 'floodlightConfigurationsList' smart constructor.
-data FloodlightConfigurationsList = FloodlightConfigurationsList
+data FloodlightConfigurationsList = FloodlightConfigurationsList'
     { _fclIds       :: !(Maybe [Textual Int64])
     , _fclProFileId :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     :: Int64 -- ^ 'fclProFileId'
     -> FloodlightConfigurationsList
 floodlightConfigurationsList pFclProFileId_ =
-    FloodlightConfigurationsList
+    FloodlightConfigurationsList'
     { _fclIds = Nothing
     , _fclProFileId = _Coerce # pFclProFileId_
     }
@@ -93,7 +93,9 @@
          where
         type Rs FloodlightConfigurationsList =
              FloodlightConfigurationsListResponse
-        requestClient FloodlightConfigurationsList{..}
+        type Scopes FloodlightConfigurationsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightConfigurationsList'{..}
           = go _fclProFileId (_fclIds ^. _Default)
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Patch.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightConfigurations.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'FloodlightConfigurationsPatch' request conforms to.
 type FloodlightConfigurationsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightConfigurations" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'floodlightConfigurationsPatch' smart constructor.
-data FloodlightConfigurationsPatch = FloodlightConfigurationsPatch
+data FloodlightConfigurationsPatch = FloodlightConfigurationsPatch'
     { _fcpProFileId :: !(Textual Int64)
     , _fcpPayload   :: !FloodlightConfiguration
     , _fcpId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'fcpId'
     -> FloodlightConfigurationsPatch
 floodlightConfigurationsPatch pFcpProFileId_ pFcpPayload_ pFcpId_ =
-    FloodlightConfigurationsPatch
+    FloodlightConfigurationsPatch'
     { _fcpProFileId = _Coerce # pFcpProFileId_
     , _fcpPayload = pFcpPayload_
     , _fcpId = _Coerce # pFcpId_
@@ -106,7 +106,9 @@
          where
         type Rs FloodlightConfigurationsPatch =
              FloodlightConfiguration
-        requestClient FloodlightConfigurationsPatch{..}
+        type Scopes FloodlightConfigurationsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightConfigurationsPatch'{..}
           = go _fcpProFileId (Just _fcpId) (Just AltJSON)
               _fcpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Update.hs b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/FloodlightConfigurations/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.FloodlightConfigurations.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'FloodlightConfigurationsUpdate' request conforms to.
 type FloodlightConfigurationsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "floodlightConfigurations" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing floodlight configuration.
 --
 -- /See:/ 'floodlightConfigurationsUpdate' smart constructor.
-data FloodlightConfigurationsUpdate = FloodlightConfigurationsUpdate
+data FloodlightConfigurationsUpdate = FloodlightConfigurationsUpdate'
     { _fcuProFileId :: !(Textual Int64)
     , _fcuPayload   :: !FloodlightConfiguration
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> FloodlightConfiguration -- ^ 'fcuPayload'
     -> FloodlightConfigurationsUpdate
 floodlightConfigurationsUpdate pFcuProFileId_ pFcuPayload_ =
-    FloodlightConfigurationsUpdate
+    FloodlightConfigurationsUpdate'
     { _fcuProFileId = _Coerce # pFcuProFileId_
     , _fcuPayload = pFcuPayload_
     }
@@ -92,7 +92,9 @@
          where
         type Rs FloodlightConfigurationsUpdate =
              FloodlightConfiguration
-        requestClient FloodlightConfigurationsUpdate{..}
+        type Scopes FloodlightConfigurationsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient FloodlightConfigurationsUpdate'{..}
           = go _fcuProFileId (Just AltJSON) _fcuPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/InventoryItems/Get.hs b/gen/Network/Google/Resource/DFAReporting/InventoryItems/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/InventoryItems/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/InventoryItems/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.InventoryItems.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'InventoryItemsGet' request conforms to.
 type InventoryItemsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "projects" :>
@@ -57,7 +57,7 @@
 -- | Gets one inventory item by ID.
 --
 -- /See:/ 'inventoryItemsGet' smart constructor.
-data InventoryItemsGet = InventoryItemsGet
+data InventoryItemsGet = InventoryItemsGet'
     { _iigProFileId :: !(Textual Int64)
     , _iigId        :: !(Textual Int64)
     , _iigProjectId :: !(Textual Int64)
@@ -78,7 +78,7 @@
     -> Int64 -- ^ 'iigProjectId'
     -> InventoryItemsGet
 inventoryItemsGet pIigProFileId_ pIigId_ pIigProjectId_ =
-    InventoryItemsGet
+    InventoryItemsGet'
     { _iigProFileId = _Coerce # pIigProFileId_
     , _iigId = _Coerce # pIigId_
     , _iigProjectId = _Coerce # pIigProjectId_
@@ -103,7 +103,9 @@
 
 instance GoogleRequest InventoryItemsGet where
         type Rs InventoryItemsGet = InventoryItem
-        requestClient InventoryItemsGet{..}
+        type Scopes InventoryItemsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient InventoryItemsGet'{..}
           = go _iigProFileId _iigProjectId _iigId
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/InventoryItems/List.hs b/gen/Network/Google/Resource/DFAReporting/InventoryItems/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/InventoryItems/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/InventoryItems/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.InventoryItems.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -40,6 +40,7 @@
     , iilPageToken
     , iilProjectId
     , iilSortField
+    , iilType
     , iilOrderId
     , iilSiteId
     , iilMaxResults
@@ -52,7 +53,7 @@
 -- 'InventoryItemsList' request conforms to.
 type InventoryItemsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "projects" :>
@@ -63,16 +64,17 @@
                        QueryParam "inPlan" Bool :>
                          QueryParam "pageToken" Text :>
                            QueryParam "sortField" InventoryItemsListSortField :>
-                             QueryParams "orderId" (Textual Int64) :>
-                               QueryParams "siteId" (Textual Int64) :>
-                                 QueryParam "maxResults" (Textual Int32) :>
-                                   QueryParam "alt" AltJSON :>
-                                     Get '[JSON] InventoryItemsListResponse
+                             QueryParam "type" InventoryItemsListType :>
+                               QueryParams "orderId" (Textual Int64) :>
+                                 QueryParams "siteId" (Textual Int64) :>
+                                   QueryParam "maxResults" (Textual Int32) :>
+                                     QueryParam "alt" AltJSON :>
+                                       Get '[JSON] InventoryItemsListResponse
 
 -- | Retrieves a list of inventory items, possibly filtered.
 --
 -- /See:/ 'inventoryItemsList' smart constructor.
-data InventoryItemsList = InventoryItemsList
+data InventoryItemsList = InventoryItemsList'
     { _iilIds        :: !(Maybe [Textual Int64])
     , _iilProFileId  :: !(Textual Int64)
     , _iilSortOrder  :: !(Maybe InventoryItemsListSortOrder)
@@ -80,6 +82,7 @@
     , _iilPageToken  :: !(Maybe Text)
     , _iilProjectId  :: !(Textual Int64)
     , _iilSortField  :: !(Maybe InventoryItemsListSortField)
+    , _iilType       :: !(Maybe InventoryItemsListType)
     , _iilOrderId    :: !(Maybe [Textual Int64])
     , _iilSiteId     :: !(Maybe [Textual Int64])
     , _iilMaxResults :: !(Maybe (Textual Int32))
@@ -103,6 +106,8 @@
 --
 -- * 'iilSortField'
 --
+-- * 'iilType'
+--
 -- * 'iilOrderId'
 --
 -- * 'iilSiteId'
@@ -113,7 +118,7 @@
     -> Int64 -- ^ 'iilProjectId'
     -> InventoryItemsList
 inventoryItemsList pIilProFileId_ pIilProjectId_ =
-    InventoryItemsList
+    InventoryItemsList'
     { _iilIds = Nothing
     , _iilProFileId = _Coerce # pIilProFileId_
     , _iilSortOrder = Nothing
@@ -121,6 +126,7 @@
     , _iilPageToken = Nothing
     , _iilProjectId = _Coerce # pIilProjectId_
     , _iilSortField = Nothing
+    , _iilType = Nothing
     , _iilOrderId = Nothing
     , _iilSiteId = Nothing
     , _iilMaxResults = Nothing
@@ -164,6 +170,10 @@
 iilSortField
   = lens _iilSortField (\ s a -> s{_iilSortField = a})
 
+-- | Select only inventory items with this type.
+iilType :: Lens' InventoryItemsList (Maybe InventoryItemsListType)
+iilType = lens _iilType (\ s a -> s{_iilType = a})
+
 -- | Select only inventory items that belong to specified orders.
 iilOrderId :: Lens' InventoryItemsList [Int64]
 iilOrderId
@@ -188,13 +198,16 @@
 instance GoogleRequest InventoryItemsList where
         type Rs InventoryItemsList =
              InventoryItemsListResponse
-        requestClient InventoryItemsList{..}
+        type Scopes InventoryItemsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient InventoryItemsList'{..}
           = go _iilProFileId _iilProjectId
               (_iilIds ^. _Default)
               _iilSortOrder
               _iilInPlan
               _iilPageToken
               _iilSortField
+              _iilType
               (_iilOrderId ^. _Default)
               (_iilSiteId ^. _Default)
               _iilMaxResults
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/Delete.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/Delete.hs
--- a/gen/Network/Google/Resource/DFAReporting/LandingPages/Delete.hs
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.LandingPages.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'LandingPagesDelete' request conforms to.
 type LandingPagesDeleteResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -57,7 +57,7 @@
 -- | Deletes an existing campaign landing page.
 --
 -- /See:/ 'landingPagesDelete' smart constructor.
-data LandingPagesDelete = LandingPagesDelete
+data LandingPagesDelete = LandingPagesDelete'
     { _lpdCampaignId :: !(Textual Int64)
     , _lpdProFileId  :: !(Textual Int64)
     , _lpdId         :: !(Textual Int64)
@@ -78,7 +78,7 @@
     -> Int64 -- ^ 'lpdId'
     -> LandingPagesDelete
 landingPagesDelete pLpdCampaignId_ pLpdProFileId_ pLpdId_ =
-    LandingPagesDelete
+    LandingPagesDelete'
     { _lpdCampaignId = _Coerce # pLpdCampaignId_
     , _lpdProFileId = _Coerce # pLpdProFileId_
     , _lpdId = _Coerce # pLpdId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest LandingPagesDelete where
         type Rs LandingPagesDelete = ()
-        requestClient LandingPagesDelete{..}
+        type Scopes LandingPagesDelete =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient LandingPagesDelete'{..}
           = go _lpdProFileId _lpdCampaignId _lpdId
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/Get.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/LandingPages/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.LandingPages.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'LandingPagesGet' request conforms to.
 type LandingPagesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -57,7 +57,7 @@
 -- | Gets one campaign landing page by ID.
 --
 -- /See:/ 'landingPagesGet' smart constructor.
-data LandingPagesGet = LandingPagesGet
+data LandingPagesGet = LandingPagesGet'
     { _lpgCampaignId :: !(Textual Int64)
     , _lpgProFileId  :: !(Textual Int64)
     , _lpgId         :: !(Textual Int64)
@@ -78,7 +78,7 @@
     -> Int64 -- ^ 'lpgId'
     -> LandingPagesGet
 landingPagesGet pLpgCampaignId_ pLpgProFileId_ pLpgId_ =
-    LandingPagesGet
+    LandingPagesGet'
     { _lpgCampaignId = _Coerce # pLpgCampaignId_
     , _lpgProFileId = _Coerce # pLpgProFileId_
     , _lpgId = _Coerce # pLpgId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest LandingPagesGet where
         type Rs LandingPagesGet = LandingPage
-        requestClient LandingPagesGet{..}
+        type Scopes LandingPagesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient LandingPagesGet'{..}
           = go _lpgProFileId _lpgCampaignId _lpgId
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/Insert.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/LandingPages/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.LandingPages.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'LandingPagesInsert' request conforms to.
 type LandingPagesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -58,7 +58,7 @@
 -- | Inserts a new landing page for the specified campaign.
 --
 -- /See:/ 'landingPagesInsert' smart constructor.
-data LandingPagesInsert = LandingPagesInsert
+data LandingPagesInsert = LandingPagesInsert'
     { _lpiCampaignId :: !(Textual Int64)
     , _lpiProFileId  :: !(Textual Int64)
     , _lpiPayload    :: !LandingPage
@@ -79,7 +79,7 @@
     -> LandingPage -- ^ 'lpiPayload'
     -> LandingPagesInsert
 landingPagesInsert pLpiCampaignId_ pLpiProFileId_ pLpiPayload_ =
-    LandingPagesInsert
+    LandingPagesInsert'
     { _lpiCampaignId = _Coerce # pLpiCampaignId_
     , _lpiProFileId = _Coerce # pLpiProFileId_
     , _lpiPayload = pLpiPayload_
@@ -105,7 +105,9 @@
 
 instance GoogleRequest LandingPagesInsert where
         type Rs LandingPagesInsert = LandingPage
-        requestClient LandingPagesInsert{..}
+        type Scopes LandingPagesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient LandingPagesInsert'{..}
           = go _lpiProFileId _lpiCampaignId (Just AltJSON)
               _lpiPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/List.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/LandingPages/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.LandingPages.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'LandingPagesList' request conforms to.
 type LandingPagesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -56,7 +56,7 @@
 -- | Retrieves the list of landing pages for the specified campaign.
 --
 -- /See:/ 'landingPagesList' smart constructor.
-data LandingPagesList = LandingPagesList
+data LandingPagesList = LandingPagesList'
     { _lplCampaignId :: !(Textual Int64)
     , _lplProFileId  :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -73,7 +73,7 @@
     -> Int64 -- ^ 'lplProFileId'
     -> LandingPagesList
 landingPagesList pLplCampaignId_ pLplProFileId_ =
-    LandingPagesList
+    LandingPagesList'
     { _lplCampaignId = _Coerce # pLplCampaignId_
     , _lplProFileId = _Coerce # pLplProFileId_
     }
@@ -93,7 +93,9 @@
 
 instance GoogleRequest LandingPagesList where
         type Rs LandingPagesList = LandingPagesListResponse
-        requestClient LandingPagesList{..}
+        type Scopes LandingPagesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient LandingPagesList'{..}
           = go _lplProFileId _lplCampaignId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/Patch.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/LandingPages/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.LandingPages.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -47,7 +47,7 @@
 -- 'LandingPagesPatch' request conforms to.
 type LandingPagesPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -62,7 +62,7 @@
 -- semantics.
 --
 -- /See:/ 'landingPagesPatch' smart constructor.
-data LandingPagesPatch = LandingPagesPatch
+data LandingPagesPatch = LandingPagesPatch'
     { _lppCampaignId :: !(Textual Int64)
     , _lppProFileId  :: !(Textual Int64)
     , _lppPayload    :: !LandingPage
@@ -87,7 +87,7 @@
     -> Int64 -- ^ 'lppId'
     -> LandingPagesPatch
 landingPagesPatch pLppCampaignId_ pLppProFileId_ pLppPayload_ pLppId_ =
-    LandingPagesPatch
+    LandingPagesPatch'
     { _lppCampaignId = _Coerce # pLppCampaignId_
     , _lppProFileId = _Coerce # pLppProFileId_
     , _lppPayload = pLppPayload_
@@ -119,7 +119,9 @@
 
 instance GoogleRequest LandingPagesPatch where
         type Rs LandingPagesPatch = LandingPage
-        requestClient LandingPagesPatch{..}
+        type Scopes LandingPagesPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient LandingPagesPatch'{..}
           = go _lppProFileId _lppCampaignId (Just _lppId)
               (Just AltJSON)
               _lppPayload
diff --git a/gen/Network/Google/Resource/DFAReporting/LandingPages/Update.hs b/gen/Network/Google/Resource/DFAReporting/LandingPages/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/LandingPages/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/LandingPages/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.LandingPages.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'LandingPagesUpdate' request conforms to.
 type LandingPagesUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "campaigns" :>
@@ -58,7 +58,7 @@
 -- | Updates an existing campaign landing page.
 --
 -- /See:/ 'landingPagesUpdate' smart constructor.
-data LandingPagesUpdate = LandingPagesUpdate
+data LandingPagesUpdate = LandingPagesUpdate'
     { _lpuCampaignId :: !(Textual Int64)
     , _lpuProFileId  :: !(Textual Int64)
     , _lpuPayload    :: !LandingPage
@@ -79,7 +79,7 @@
     -> LandingPage -- ^ 'lpuPayload'
     -> LandingPagesUpdate
 landingPagesUpdate pLpuCampaignId_ pLpuProFileId_ pLpuPayload_ =
-    LandingPagesUpdate
+    LandingPagesUpdate'
     { _lpuCampaignId = _Coerce # pLpuCampaignId_
     , _lpuProFileId = _Coerce # pLpuProFileId_
     , _lpuPayload = pLpuPayload_
@@ -105,7 +105,9 @@
 
 instance GoogleRequest LandingPagesUpdate where
         type Rs LandingPagesUpdate = LandingPage
-        requestClient LandingPagesUpdate{..}
+        type Scopes LandingPagesUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient LandingPagesUpdate'{..}
           = go _lpuProFileId _lpuCampaignId (Just AltJSON)
               _lpuPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Metros/List.hs b/gen/Network/Google/Resource/DFAReporting/Metros/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Metros/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Metros/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Metros.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'MetrosList' request conforms to.
 type MetrosListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "metros" :>
@@ -53,7 +53,7 @@
 -- | Retrieves a list of metros.
 --
 -- /See:/ 'metrosList' smart constructor.
-newtype MetrosList = MetrosList
+newtype MetrosList = MetrosList'
     { _mlProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'mlProFileId'
     -> MetrosList
 metrosList pMlProFileId_ =
-    MetrosList
+    MetrosList'
     { _mlProFileId = _Coerce # pMlProFileId_
     }
 
@@ -78,7 +78,9 @@
 
 instance GoogleRequest MetrosList where
         type Rs MetrosList = MetrosListResponse
-        requestClient MetrosList{..}
+        type Scopes MetrosList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient MetrosList'{..}
           = go _mlProFileId (Just AltJSON) dFAReportingService
           where go
                   = buildClient (Proxy :: Proxy MetrosListResource)
diff --git a/gen/Network/Google/Resource/DFAReporting/MobileCarriers/Get.hs b/gen/Network/Google/Resource/DFAReporting/MobileCarriers/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/MobileCarriers/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/MobileCarriers/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.MobileCarriers.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'MobileCarriersGet' request conforms to.
 type MobileCarriersGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "mobileCarriers" :>
@@ -54,7 +54,7 @@
 -- | Gets one mobile carrier by ID.
 --
 -- /See:/ 'mobileCarriersGet' smart constructor.
-data MobileCarriersGet = MobileCarriersGet
+data MobileCarriersGet = MobileCarriersGet'
     { _mcgProFileId :: !(Textual Int64)
     , _mcgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'mcgId'
     -> MobileCarriersGet
 mobileCarriersGet pMcgProFileId_ pMcgId_ =
-    MobileCarriersGet
+    MobileCarriersGet'
     { _mcgProFileId = _Coerce # pMcgProFileId_
     , _mcgId = _Coerce # pMcgId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest MobileCarriersGet where
         type Rs MobileCarriersGet = MobileCarrier
-        requestClient MobileCarriersGet{..}
+        type Scopes MobileCarriersGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient MobileCarriersGet'{..}
           = go _mcgProFileId _mcgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/MobileCarriers/List.hs b/gen/Network/Google/Resource/DFAReporting/MobileCarriers/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/MobileCarriers/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/MobileCarriers/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.MobileCarriers.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'MobileCarriersList' request conforms to.
 type MobileCarriersListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "mobileCarriers" :>
@@ -53,7 +53,7 @@
 -- | Retrieves a list of mobile carriers.
 --
 -- /See:/ 'mobileCarriersList' smart constructor.
-newtype MobileCarriersList = MobileCarriersList
+newtype MobileCarriersList = MobileCarriersList'
     { _mclProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'mclProFileId'
     -> MobileCarriersList
 mobileCarriersList pMclProFileId_ =
-    MobileCarriersList
+    MobileCarriersList'
     { _mclProFileId = _Coerce # pMclProFileId_
     }
 
@@ -79,7 +79,9 @@
 instance GoogleRequest MobileCarriersList where
         type Rs MobileCarriersList =
              MobileCarriersListResponse
-        requestClient MobileCarriersList{..}
+        type Scopes MobileCarriersList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient MobileCarriersList'{..}
           = go _mclProFileId (Just AltJSON) dFAReportingService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/Get.hs b/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.OperatingSystemVersions.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'OperatingSystemVersionsGet' request conforms to.
 type OperatingSystemVersionsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "operatingSystemVersions" :>
@@ -55,7 +55,7 @@
 -- | Gets one operating system version by ID.
 --
 -- /See:/ 'operatingSystemVersionsGet' smart constructor.
-data OperatingSystemVersionsGet = OperatingSystemVersionsGet
+data OperatingSystemVersionsGet = OperatingSystemVersionsGet'
     { _osvgProFileId :: !(Textual Int64)
     , _osvgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'osvgId'
     -> OperatingSystemVersionsGet
 operatingSystemVersionsGet pOsvgProFileId_ pOsvgId_ =
-    OperatingSystemVersionsGet
+    OperatingSystemVersionsGet'
     { _osvgProFileId = _Coerce # pOsvgProFileId_
     , _osvgId = _Coerce # pOsvgId_
     }
@@ -93,7 +93,9 @@
          where
         type Rs OperatingSystemVersionsGet =
              OperatingSystemVersion
-        requestClient OperatingSystemVersionsGet{..}
+        type Scopes OperatingSystemVersionsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient OperatingSystemVersionsGet'{..}
           = go _osvgProFileId _osvgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/List.hs b/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/OperatingSystemVersions/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.OperatingSystemVersions.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'OperatingSystemVersionsList' request conforms to.
 type OperatingSystemVersionsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "operatingSystemVersions" :>
@@ -53,7 +53,7 @@
 -- | Retrieves a list of operating system versions.
 --
 -- /See:/ 'operatingSystemVersionsList' smart constructor.
-newtype OperatingSystemVersionsList = OperatingSystemVersionsList
+newtype OperatingSystemVersionsList = OperatingSystemVersionsList'
     { _osvlProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'osvlProFileId'
     -> OperatingSystemVersionsList
 operatingSystemVersionsList pOsvlProFileId_ =
-    OperatingSystemVersionsList
+    OperatingSystemVersionsList'
     { _osvlProFileId = _Coerce # pOsvlProFileId_
     }
 
@@ -81,7 +81,9 @@
          where
         type Rs OperatingSystemVersionsList =
              OperatingSystemVersionsListResponse
-        requestClient OperatingSystemVersionsList{..}
+        type Scopes OperatingSystemVersionsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient OperatingSystemVersionsList'{..}
           = go _osvlProFileId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/OperatingSystems/Get.hs b/gen/Network/Google/Resource/DFAReporting/OperatingSystems/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/OperatingSystems/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/OperatingSystems/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.OperatingSystems.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'OperatingSystemsGet' request conforms to.
 type OperatingSystemsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "operatingSystems" :>
@@ -55,7 +55,7 @@
 -- | Gets one operating system by DART ID.
 --
 -- /See:/ 'operatingSystemsGet' smart constructor.
-data OperatingSystemsGet = OperatingSystemsGet
+data OperatingSystemsGet = OperatingSystemsGet'
     { _osgProFileId :: !(Textual Int64)
     , _osgDartId    :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'osgDartId'
     -> OperatingSystemsGet
 operatingSystemsGet pOsgProFileId_ pOsgDartId_ =
-    OperatingSystemsGet
+    OperatingSystemsGet'
     { _osgProFileId = _Coerce # pOsgProFileId_
     , _osgDartId = _Coerce # pOsgDartId_
     }
@@ -91,7 +91,9 @@
 
 instance GoogleRequest OperatingSystemsGet where
         type Rs OperatingSystemsGet = OperatingSystem
-        requestClient OperatingSystemsGet{..}
+        type Scopes OperatingSystemsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient OperatingSystemsGet'{..}
           = go _osgProFileId _osgDartId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/OperatingSystems/List.hs b/gen/Network/Google/Resource/DFAReporting/OperatingSystems/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/OperatingSystems/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/OperatingSystems/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.OperatingSystems.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'OperatingSystemsList' request conforms to.
 type OperatingSystemsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "operatingSystems" :>
@@ -53,7 +53,7 @@
 -- | Retrieves a list of operating systems.
 --
 -- /See:/ 'operatingSystemsList' smart constructor.
-newtype OperatingSystemsList = OperatingSystemsList
+newtype OperatingSystemsList = OperatingSystemsList'
     { _oslProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'oslProFileId'
     -> OperatingSystemsList
 operatingSystemsList pOslProFileId_ =
-    OperatingSystemsList
+    OperatingSystemsList'
     { _oslProFileId = _Coerce # pOslProFileId_
     }
 
@@ -79,7 +79,9 @@
 instance GoogleRequest OperatingSystemsList where
         type Rs OperatingSystemsList =
              OperatingSystemsListResponse
-        requestClient OperatingSystemsList{..}
+        type Scopes OperatingSystemsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient OperatingSystemsList'{..}
           = go _oslProFileId (Just AltJSON) dFAReportingService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/DFAReporting/OrderDocuments/Get.hs b/gen/Network/Google/Resource/DFAReporting/OrderDocuments/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/OrderDocuments/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/OrderDocuments/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.OrderDocuments.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'OrderDocumentsGet' request conforms to.
 type OrderDocumentsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "projects" :>
@@ -57,7 +57,7 @@
 -- | Gets one order document by ID.
 --
 -- /See:/ 'orderDocumentsGet' smart constructor.
-data OrderDocumentsGet = OrderDocumentsGet
+data OrderDocumentsGet = OrderDocumentsGet'
     { _odgProFileId :: !(Textual Int64)
     , _odgId        :: !(Textual Int64)
     , _odgProjectId :: !(Textual Int64)
@@ -78,7 +78,7 @@
     -> Int64 -- ^ 'odgProjectId'
     -> OrderDocumentsGet
 orderDocumentsGet pOdgProFileId_ pOdgId_ pOdgProjectId_ =
-    OrderDocumentsGet
+    OrderDocumentsGet'
     { _odgProFileId = _Coerce # pOdgProFileId_
     , _odgId = _Coerce # pOdgId_
     , _odgProjectId = _Coerce # pOdgProjectId_
@@ -103,7 +103,9 @@
 
 instance GoogleRequest OrderDocumentsGet where
         type Rs OrderDocumentsGet = OrderDocument
-        requestClient OrderDocumentsGet{..}
+        type Scopes OrderDocumentsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient OrderDocumentsGet'{..}
           = go _odgProFileId _odgProjectId _odgId
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/OrderDocuments/List.hs b/gen/Network/Google/Resource/DFAReporting/OrderDocuments/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/OrderDocuments/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/OrderDocuments/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.OrderDocuments.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -53,7 +53,7 @@
 -- 'OrderDocumentsList' request conforms to.
 type OrderDocumentsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "projects" :>
@@ -74,7 +74,7 @@
 -- | Retrieves a list of order documents, possibly filtered.
 --
 -- /See:/ 'orderDocumentsList' smart constructor.
-data OrderDocumentsList = OrderDocumentsList
+data OrderDocumentsList = OrderDocumentsList'
     { _odlSearchString :: !(Maybe Text)
     , _odlIds          :: !(Maybe [Textual Int64])
     , _odlProFileId    :: !(Textual Int64)
@@ -118,7 +118,7 @@
     -> Int64 -- ^ 'odlProjectId'
     -> OrderDocumentsList
 orderDocumentsList pOdlProFileId_ pOdlProjectId_ =
-    OrderDocumentsList
+    OrderDocumentsList'
     { _odlSearchString = Nothing
     , _odlIds = Nothing
     , _odlProFileId = _Coerce # pOdlProFileId_
@@ -208,7 +208,9 @@
 instance GoogleRequest OrderDocumentsList where
         type Rs OrderDocumentsList =
              OrderDocumentsListResponse
-        requestClient OrderDocumentsList{..}
+        type Scopes OrderDocumentsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient OrderDocumentsList'{..}
           = go _odlProFileId _odlProjectId _odlSearchString
               (_odlIds ^. _Default)
               _odlSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/Orders/Get.hs b/gen/Network/Google/Resource/DFAReporting/Orders/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Orders/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Orders/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Orders.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'OrdersGet' request conforms to.
 type OrdersGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "projects" :>
@@ -57,7 +57,7 @@
 -- | Gets one order by ID.
 --
 -- /See:/ 'ordersGet' smart constructor.
-data OrdersGet = OrdersGet
+data OrdersGet = OrdersGet'
     { _ogProFileId :: !(Textual Int64)
     , _ogId        :: !(Textual Int64)
     , _ogProjectId :: !(Textual Int64)
@@ -78,7 +78,7 @@
     -> Int64 -- ^ 'ogProjectId'
     -> OrdersGet
 ordersGet pOgProFileId_ pOgId_ pOgProjectId_ =
-    OrdersGet
+    OrdersGet'
     { _ogProFileId = _Coerce # pOgProFileId_
     , _ogId = _Coerce # pOgId_
     , _ogProjectId = _Coerce # pOgProjectId_
@@ -102,7 +102,9 @@
 
 instance GoogleRequest OrdersGet where
         type Rs OrdersGet = Order
-        requestClient OrdersGet{..}
+        type Scopes OrdersGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient OrdersGet'{..}
           = go _ogProFileId _ogProjectId _ogId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Orders/List.hs b/gen/Network/Google/Resource/DFAReporting/Orders/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Orders/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Orders/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Orders.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -51,7 +51,7 @@
 -- 'OrdersList' request conforms to.
 type OrdersListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "projects" :>
@@ -70,7 +70,7 @@
 -- | Retrieves a list of orders, possibly filtered.
 --
 -- /See:/ 'ordersList' smart constructor.
-data OrdersList = OrdersList
+data OrdersList = OrdersList'
     { _olSearchString :: !(Maybe Text)
     , _olIds          :: !(Maybe [Textual Int64])
     , _olProFileId    :: !(Textual Int64)
@@ -108,7 +108,7 @@
     -> Int64 -- ^ 'olProjectId'
     -> OrdersList
 ordersList pOlProFileId_ pOlProjectId_ =
-    OrdersList
+    OrdersList'
     { _olSearchString = Nothing
     , _olIds = Nothing
     , _olProFileId = _Coerce # pOlProFileId_
@@ -179,7 +179,9 @@
 
 instance GoogleRequest OrdersList where
         type Rs OrdersList = OrdersListResponse
-        requestClient OrdersList{..}
+        type Scopes OrdersList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient OrdersList'{..}
           = go _olProFileId _olProjectId _olSearchString
               (_olIds ^. _Default)
               _olSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementGroups.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlacementGroupsGet' request conforms to.
 type PlacementGroupsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementGroups" :>
@@ -55,7 +55,7 @@
 -- | Gets one placement group by ID.
 --
 -- /See:/ 'placementGroupsGet' smart constructor.
-data PlacementGroupsGet = PlacementGroupsGet
+data PlacementGroupsGet = PlacementGroupsGet'
     { _pggProFileId :: !(Textual Int64)
     , _pggId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'pggId'
     -> PlacementGroupsGet
 placementGroupsGet pPggProFileId_ pPggId_ =
-    PlacementGroupsGet
+    PlacementGroupsGet'
     { _pggProFileId = _Coerce # pPggProFileId_
     , _pggId = _Coerce # pPggId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest PlacementGroupsGet where
         type Rs PlacementGroupsGet = PlacementGroup
-        requestClient PlacementGroupsGet{..}
+        type Scopes PlacementGroupsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementGroupsGet'{..}
           = go _pggProFileId _pggId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Insert.hs b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementGroups.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlacementGroupsInsert' request conforms to.
 type PlacementGroupsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementGroups" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new placement group.
 --
 -- /See:/ 'placementGroupsInsert' smart constructor.
-data PlacementGroupsInsert = PlacementGroupsInsert
+data PlacementGroupsInsert = PlacementGroupsInsert'
     { _pgiProFileId :: !(Textual Int64)
     , _pgiPayload   :: !PlacementGroup
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> PlacementGroup -- ^ 'pgiPayload'
     -> PlacementGroupsInsert
 placementGroupsInsert pPgiProFileId_ pPgiPayload_ =
-    PlacementGroupsInsert
+    PlacementGroupsInsert'
     { _pgiProFileId = _Coerce # pPgiProFileId_
     , _pgiPayload = pPgiPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest PlacementGroupsInsert where
         type Rs PlacementGroupsInsert = PlacementGroup
-        requestClient PlacementGroupsInsert{..}
+        type Scopes PlacementGroupsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementGroupsInsert'{..}
           = go _pgiProFileId (Just AltJSON) _pgiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementGroups.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -62,7 +62,7 @@
 -- 'PlacementGroupsList' request conforms to.
 type PlacementGroupsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementGroups" :>
@@ -105,7 +105,7 @@
 -- | Retrieves a list of placement groups, possibly filtered.
 --
 -- /See:/ 'placementGroupsList' smart constructor.
-data PlacementGroupsList = PlacementGroupsList
+data PlacementGroupsList = PlacementGroupsList'
     { _pglPlacementStrategyIds :: !(Maybe [Textual Int64])
     , _pglContentCategoryIds   :: !(Maybe [Textual Int64])
     , _pglMaxEndDate           :: !(Maybe Text)
@@ -175,7 +175,7 @@
     :: Int64 -- ^ 'pglProFileId'
     -> PlacementGroupsList
 placementGroupsList pPglProFileId_ =
-    PlacementGroupsList
+    PlacementGroupsList'
     { _pglPlacementStrategyIds = Nothing
     , _pglContentCategoryIds = Nothing
     , _pglMaxEndDate = Nothing
@@ -355,7 +355,9 @@
 instance GoogleRequest PlacementGroupsList where
         type Rs PlacementGroupsList =
              PlacementGroupsListResponse
-        requestClient PlacementGroupsList{..}
+        type Scopes PlacementGroupsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementGroupsList'{..}
           = go _pglProFileId
               (_pglPlacementStrategyIds ^. _Default)
               (_pglContentCategoryIds ^. _Default)
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Patch.hs b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementGroups.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'PlacementGroupsPatch' request conforms to.
 type PlacementGroupsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementGroups" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'placementGroupsPatch' smart constructor.
-data PlacementGroupsPatch = PlacementGroupsPatch
+data PlacementGroupsPatch = PlacementGroupsPatch'
     { _pgpProFileId :: !(Textual Int64)
     , _pgpPayload   :: !PlacementGroup
     , _pgpId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'pgpId'
     -> PlacementGroupsPatch
 placementGroupsPatch pPgpProFileId_ pPgpPayload_ pPgpId_ =
-    PlacementGroupsPatch
+    PlacementGroupsPatch'
     { _pgpProFileId = _Coerce # pPgpProFileId_
     , _pgpPayload = pPgpPayload_
     , _pgpId = _Coerce # pPgpId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest PlacementGroupsPatch where
         type Rs PlacementGroupsPatch = PlacementGroup
-        requestClient PlacementGroupsPatch{..}
+        type Scopes PlacementGroupsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementGroupsPatch'{..}
           = go _pgpProFileId (Just _pgpId) (Just AltJSON)
               _pgpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Update.hs b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementGroups/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementGroups.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlacementGroupsUpdate' request conforms to.
 type PlacementGroupsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementGroups" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing placement group.
 --
 -- /See:/ 'placementGroupsUpdate' smart constructor.
-data PlacementGroupsUpdate = PlacementGroupsUpdate
+data PlacementGroupsUpdate = PlacementGroupsUpdate'
     { _pguProFileId :: !(Textual Int64)
     , _pguPayload   :: !PlacementGroup
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> PlacementGroup -- ^ 'pguPayload'
     -> PlacementGroupsUpdate
 placementGroupsUpdate pPguProFileId_ pPguPayload_ =
-    PlacementGroupsUpdate
+    PlacementGroupsUpdate'
     { _pguProFileId = _Coerce # pPguProFileId_
     , _pguPayload = pPguPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest PlacementGroupsUpdate where
         type Rs PlacementGroupsUpdate = PlacementGroup
-        requestClient PlacementGroupsUpdate{..}
+        type Scopes PlacementGroupsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementGroupsUpdate'{..}
           = go _pguProFileId (Just AltJSON) _pguPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Delete.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Delete.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Delete.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementStrategies.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlacementStrategiesDelete' request conforms to.
 type PlacementStrategiesDeleteResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementStrategies" :>
@@ -54,7 +54,7 @@
 -- | Deletes an existing placement strategy.
 --
 -- /See:/ 'placementStrategiesDelete' smart constructor.
-data PlacementStrategiesDelete = PlacementStrategiesDelete
+data PlacementStrategiesDelete = PlacementStrategiesDelete'
     { _psdProFileId :: !(Textual Int64)
     , _psdId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'psdId'
     -> PlacementStrategiesDelete
 placementStrategiesDelete pPsdProFileId_ pPsdId_ =
-    PlacementStrategiesDelete
+    PlacementStrategiesDelete'
     { _psdProFileId = _Coerce # pPsdProFileId_
     , _psdId = _Coerce # pPsdId_
     }
@@ -90,7 +90,9 @@
 instance GoogleRequest PlacementStrategiesDelete
          where
         type Rs PlacementStrategiesDelete = ()
-        requestClient PlacementStrategiesDelete{..}
+        type Scopes PlacementStrategiesDelete =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementStrategiesDelete'{..}
           = go _psdProFileId _psdId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Get.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementStrategies.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlacementStrategiesGet' request conforms to.
 type PlacementStrategiesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementStrategies" :>
@@ -55,7 +55,7 @@
 -- | Gets one placement strategy by ID.
 --
 -- /See:/ 'placementStrategiesGet' smart constructor.
-data PlacementStrategiesGet = PlacementStrategiesGet
+data PlacementStrategiesGet = PlacementStrategiesGet'
     { _psgProFileId :: !(Textual Int64)
     , _psgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'psgId'
     -> PlacementStrategiesGet
 placementStrategiesGet pPsgProFileId_ pPsgId_ =
-    PlacementStrategiesGet
+    PlacementStrategiesGet'
     { _psgProFileId = _Coerce # pPsgProFileId_
     , _psgId = _Coerce # pPsgId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest PlacementStrategiesGet where
         type Rs PlacementStrategiesGet = PlacementStrategy
-        requestClient PlacementStrategiesGet{..}
+        type Scopes PlacementStrategiesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementStrategiesGet'{..}
           = go _psgProFileId _psgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Insert.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementStrategies.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlacementStrategiesInsert' request conforms to.
 type PlacementStrategiesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementStrategies" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new placement strategy.
 --
 -- /See:/ 'placementStrategiesInsert' smart constructor.
-data PlacementStrategiesInsert = PlacementStrategiesInsert
+data PlacementStrategiesInsert = PlacementStrategiesInsert'
     { _psiProFileId :: !(Textual Int64)
     , _psiPayload   :: !PlacementStrategy
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> PlacementStrategy -- ^ 'psiPayload'
     -> PlacementStrategiesInsert
 placementStrategiesInsert pPsiProFileId_ pPsiPayload_ =
-    PlacementStrategiesInsert
+    PlacementStrategiesInsert'
     { _psiProFileId = _Coerce # pPsiProFileId_
     , _psiPayload = pPsiPayload_
     }
@@ -91,7 +91,9 @@
 instance GoogleRequest PlacementStrategiesInsert
          where
         type Rs PlacementStrategiesInsert = PlacementStrategy
-        requestClient PlacementStrategiesInsert{..}
+        type Scopes PlacementStrategiesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementStrategiesInsert'{..}
           = go _psiProFileId (Just AltJSON) _psiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/List.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementStrategies.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -49,7 +49,7 @@
 -- 'PlacementStrategiesList' request conforms to.
 type PlacementStrategiesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementStrategies" :>
@@ -69,7 +69,7 @@
 -- | Retrieves a list of placement strategies, possibly filtered.
 --
 -- /See:/ 'placementStrategiesList' smart constructor.
-data PlacementStrategiesList = PlacementStrategiesList
+data PlacementStrategiesList = PlacementStrategiesList'
     { _pslSearchString :: !(Maybe Text)
     , _pslIds          :: !(Maybe [Textual Int64])
     , _pslProFileId    :: !(Textual Int64)
@@ -100,7 +100,7 @@
     :: Int64 -- ^ 'pslProFileId'
     -> PlacementStrategiesList
 placementStrategiesList pPslProFileId_ =
-    PlacementStrategiesList
+    PlacementStrategiesList'
     { _pslSearchString = Nothing
     , _pslIds = Nothing
     , _pslProFileId = _Coerce # pPslProFileId_
@@ -160,7 +160,9 @@
 instance GoogleRequest PlacementStrategiesList where
         type Rs PlacementStrategiesList =
              PlacementStrategiesListResponse
-        requestClient PlacementStrategiesList{..}
+        type Scopes PlacementStrategiesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementStrategiesList'{..}
           = go _pslProFileId _pslSearchString
               (_pslIds ^. _Default)
               _pslSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Patch.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementStrategies.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'PlacementStrategiesPatch' request conforms to.
 type PlacementStrategiesPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementStrategies" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'placementStrategiesPatch' smart constructor.
-data PlacementStrategiesPatch = PlacementStrategiesPatch
+data PlacementStrategiesPatch = PlacementStrategiesPatch'
     { _pspProFileId :: !(Textual Int64)
     , _pspPayload   :: !PlacementStrategy
     , _pspId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'pspId'
     -> PlacementStrategiesPatch
 placementStrategiesPatch pPspProFileId_ pPspPayload_ pPspId_ =
-    PlacementStrategiesPatch
+    PlacementStrategiesPatch'
     { _pspProFileId = _Coerce # pPspProFileId_
     , _pspPayload = pPspPayload_
     , _pspId = _Coerce # pPspId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest PlacementStrategiesPatch where
         type Rs PlacementStrategiesPatch = PlacementStrategy
-        requestClient PlacementStrategiesPatch{..}
+        type Scopes PlacementStrategiesPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementStrategiesPatch'{..}
           = go _pspProFileId (Just _pspId) (Just AltJSON)
               _pspPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Update.hs b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlacementStrategies/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlacementStrategies.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlacementStrategiesUpdate' request conforms to.
 type PlacementStrategiesUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placementStrategies" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing placement strategy.
 --
 -- /See:/ 'placementStrategiesUpdate' smart constructor.
-data PlacementStrategiesUpdate = PlacementStrategiesUpdate
+data PlacementStrategiesUpdate = PlacementStrategiesUpdate'
     { _psuProFileId :: !(Textual Int64)
     , _psuPayload   :: !PlacementStrategy
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> PlacementStrategy -- ^ 'psuPayload'
     -> PlacementStrategiesUpdate
 placementStrategiesUpdate pPsuProFileId_ pPsuPayload_ =
-    PlacementStrategiesUpdate
+    PlacementStrategiesUpdate'
     { _psuProFileId = _Coerce # pPsuProFileId_
     , _psuPayload = pPsuPayload_
     }
@@ -91,7 +91,9 @@
 instance GoogleRequest PlacementStrategiesUpdate
          where
         type Rs PlacementStrategiesUpdate = PlacementStrategy
-        requestClient PlacementStrategiesUpdate{..}
+        type Scopes PlacementStrategiesUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementStrategiesUpdate'{..}
           = go _psuProFileId (Just AltJSON) _psuPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/Generatetags.hs b/gen/Network/Google/Resource/DFAReporting/Placements/Generatetags.hs
--- a/gen/Network/Google/Resource/DFAReporting/Placements/Generatetags.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/Generatetags.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Placements.Generatetags
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'PlacementsGeneratetags' request conforms to.
 type PlacementsGeneratetagsResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placements" :>
@@ -62,7 +62,7 @@
 -- | Generates tags for a placement.
 --
 -- /See:/ 'placementsGeneratetags' smart constructor.
-data PlacementsGeneratetags = PlacementsGeneratetags
+data PlacementsGeneratetags = PlacementsGeneratetags'
     { _pgsTagFormats   :: !(Maybe [PlacementsGeneratetagsTagFormats])
     , _pgsCampaignId   :: !(Maybe (Textual Int64))
     , _pgsProFileId    :: !(Textual Int64)
@@ -84,7 +84,7 @@
     :: Int64 -- ^ 'pgsProFileId'
     -> PlacementsGeneratetags
 placementsGeneratetags pPgsProFileId_ =
-    PlacementsGeneratetags
+    PlacementsGeneratetags'
     { _pgsTagFormats = Nothing
     , _pgsCampaignId = Nothing
     , _pgsProFileId = _Coerce # pPgsProFileId_
@@ -124,7 +124,9 @@
 instance GoogleRequest PlacementsGeneratetags where
         type Rs PlacementsGeneratetags =
              PlacementsGenerateTagsResponse
-        requestClient PlacementsGeneratetags{..}
+        type Scopes PlacementsGeneratetags =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementsGeneratetags'{..}
           = go _pgsProFileId (_pgsTagFormats ^. _Default)
               _pgsCampaignId
               (_pgsPlacementIds ^. _Default)
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/Get.hs b/gen/Network/Google/Resource/DFAReporting/Placements/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Placements/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Placements.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlacementsGet' request conforms to.
 type PlacementsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placements" :>
@@ -54,7 +54,7 @@
 -- | Gets one placement by ID.
 --
 -- /See:/ 'placementsGet' smart constructor.
-data PlacementsGet = PlacementsGet
+data PlacementsGet = PlacementsGet'
     { _pgProFileId :: !(Textual Int64)
     , _pgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'pgId'
     -> PlacementsGet
 placementsGet pPgProFileId_ pPgId_ =
-    PlacementsGet
+    PlacementsGet'
     { _pgProFileId = _Coerce # pPgProFileId_
     , _pgId = _Coerce # pPgId_
     }
@@ -88,7 +88,9 @@
 
 instance GoogleRequest PlacementsGet where
         type Rs PlacementsGet = Placement
-        requestClient PlacementsGet{..}
+        type Scopes PlacementsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementsGet'{..}
           = go _pgProFileId _pgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Placements/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/Placements/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Placements.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlacementsInsert' request conforms to.
 type PlacementsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placements" :>
@@ -54,7 +54,7 @@
 -- | Inserts a new placement.
 --
 -- /See:/ 'placementsInsert' smart constructor.
-data PlacementsInsert = PlacementsInsert
+data PlacementsInsert = PlacementsInsert'
     { _piProFileId :: !(Textual Int64)
     , _piPayload   :: !Placement
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Placement -- ^ 'piPayload'
     -> PlacementsInsert
 placementsInsert pPiProFileId_ pPiPayload_ =
-    PlacementsInsert
+    PlacementsInsert'
     { _piProFileId = _Coerce # pPiProFileId_
     , _piPayload = pPiPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest PlacementsInsert where
         type Rs PlacementsInsert = Placement
-        requestClient PlacementsInsert{..}
+        type Scopes PlacementsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementsInsert'{..}
           = go _piProFileId (Just AltJSON) _piPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/List.hs b/gen/Network/Google/Resource/DFAReporting/Placements/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Placements/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Placements.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -65,7 +65,7 @@
 -- 'PlacementsList' request conforms to.
 type PlacementsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placements" :>
@@ -119,7 +119,7 @@
 -- | Retrieves a list of placements, possibly filtered.
 --
 -- /See:/ 'placementsList' smart constructor.
-data PlacementsList = PlacementsList
+data PlacementsList = PlacementsList'
     { _pPlacementStrategyIds :: !(Maybe [Textual Int64])
     , _pContentCategoryIds   :: !(Maybe [Textual Int64])
     , _pMaxEndDate           :: !(Maybe Text)
@@ -198,7 +198,7 @@
     :: Int64 -- ^ 'pProFileId'
     -> PlacementsList
 placementsList pPProFileId_ =
-    PlacementsList
+    PlacementsList'
     { _pPlacementStrategyIds = Nothing
     , _pContentCategoryIds = Nothing
     , _pMaxEndDate = Nothing
@@ -339,10 +339,11 @@
   = lens _pSortField (\ s a -> s{_pSortField = a})
 
 -- | Select only placements that are associated with these compatibilities.
--- WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on
--- mobile devices for regular or interstitial ads respectively. APP and
--- APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers
--- to rendering in in-stream video ads developed with the VAST standard.
+-- DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or
+-- on mobile devices for regular or interstitial ads respectively. APP and
+-- APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO
+-- refers to rendering in in-stream video ads developed with the VAST
+-- standard.
 pCompatibilities :: Lens' PlacementsList [PlacementsListCompatibilities]
 pCompatibilities
   = lens _pCompatibilities
@@ -395,7 +396,9 @@
 
 instance GoogleRequest PlacementsList where
         type Rs PlacementsList = PlacementsListResponse
-        requestClient PlacementsList{..}
+        type Scopes PlacementsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementsList'{..}
           = go _pProFileId (_pPlacementStrategyIds ^. _Default)
               (_pContentCategoryIds ^. _Default)
               _pMaxEndDate
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Placements/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/Placements/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Placements.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'PlacementsPatch' request conforms to.
 type PlacementsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placements" :>
@@ -56,7 +56,7 @@
 -- | Updates an existing placement. This method supports patch semantics.
 --
 -- /See:/ 'placementsPatch' smart constructor.
-data PlacementsPatch = PlacementsPatch
+data PlacementsPatch = PlacementsPatch'
     { _ppProFileId :: !(Textual Int64)
     , _ppPayload   :: !Placement
     , _ppId        :: !(Textual Int64)
@@ -77,7 +77,7 @@
     -> Int64 -- ^ 'ppId'
     -> PlacementsPatch
 placementsPatch pPpProFileId_ pPpPayload_ pPpId_ =
-    PlacementsPatch
+    PlacementsPatch'
     { _ppProFileId = _Coerce # pPpProFileId_
     , _ppPayload = pPpPayload_
     , _ppId = _Coerce # pPpId_
@@ -100,7 +100,9 @@
 
 instance GoogleRequest PlacementsPatch where
         type Rs PlacementsPatch = Placement
-        requestClient PlacementsPatch{..}
+        type Scopes PlacementsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementsPatch'{..}
           = go _ppProFileId (Just _ppId) (Just AltJSON)
               _ppPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Placements/Update.hs b/gen/Network/Google/Resource/DFAReporting/Placements/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/Placements/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Placements/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Placements.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlacementsUpdate' request conforms to.
 type PlacementsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "placements" :>
@@ -54,7 +54,7 @@
 -- | Updates an existing placement.
 --
 -- /See:/ 'placementsUpdate' smart constructor.
-data PlacementsUpdate = PlacementsUpdate
+data PlacementsUpdate = PlacementsUpdate'
     { _puProFileId :: !(Textual Int64)
     , _puPayload   :: !Placement
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Placement -- ^ 'puPayload'
     -> PlacementsUpdate
 placementsUpdate pPuProFileId_ pPuPayload_ =
-    PlacementsUpdate
+    PlacementsUpdate'
     { _puProFileId = _Coerce # pPuProFileId_
     , _puPayload = pPuPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest PlacementsUpdate where
         type Rs PlacementsUpdate = Placement
-        requestClient PlacementsUpdate{..}
+        type Scopes PlacementsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlacementsUpdate'{..}
           = go _puProFileId (Just AltJSON) _puPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/PlatformTypes/Get.hs b/gen/Network/Google/Resource/DFAReporting/PlatformTypes/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlatformTypes/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlatformTypes/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlatformTypes.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PlatformTypesGet' request conforms to.
 type PlatformTypesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "platformTypes" :>
@@ -54,7 +54,7 @@
 -- | Gets one platform type by ID.
 --
 -- /See:/ 'platformTypesGet' smart constructor.
-data PlatformTypesGet = PlatformTypesGet
+data PlatformTypesGet = PlatformTypesGet'
     { _ptgProFileId :: !(Textual Int64)
     , _ptgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'ptgId'
     -> PlatformTypesGet
 platformTypesGet pPtgProFileId_ pPtgId_ =
-    PlatformTypesGet
+    PlatformTypesGet'
     { _ptgProFileId = _Coerce # pPtgProFileId_
     , _ptgId = _Coerce # pPtgId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest PlatformTypesGet where
         type Rs PlatformTypesGet = PlatformType
-        requestClient PlatformTypesGet{..}
+        type Scopes PlatformTypesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlatformTypesGet'{..}
           = go _ptgProFileId _ptgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/PlatformTypes/List.hs b/gen/Network/Google/Resource/DFAReporting/PlatformTypes/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/PlatformTypes/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PlatformTypes/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PlatformTypes.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'PlatformTypesList' request conforms to.
 type PlatformTypesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "platformTypes" :>
@@ -53,7 +53,7 @@
 -- | Retrieves a list of platform types.
 --
 -- /See:/ 'platformTypesList' smart constructor.
-newtype PlatformTypesList = PlatformTypesList
+newtype PlatformTypesList = PlatformTypesList'
     { _ptlProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'ptlProFileId'
     -> PlatformTypesList
 platformTypesList pPtlProFileId_ =
-    PlatformTypesList
+    PlatformTypesList'
     { _ptlProFileId = _Coerce # pPtlProFileId_
     }
 
@@ -78,7 +78,9 @@
 
 instance GoogleRequest PlatformTypesList where
         type Rs PlatformTypesList = PlatformTypesListResponse
-        requestClient PlatformTypesList{..}
+        type Scopes PlatformTypesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PlatformTypesList'{..}
           = go _ptlProFileId (Just AltJSON) dFAReportingService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/DFAReporting/PostalCodes/Get.hs b/gen/Network/Google/Resource/DFAReporting/PostalCodes/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/PostalCodes/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PostalCodes/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PostalCodes.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'PostalCodesGet' request conforms to.
 type PostalCodesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "postalCodes" :>
@@ -54,7 +54,7 @@
 -- | Gets one postal code by ID.
 --
 -- /See:/ 'postalCodesGet' smart constructor.
-data PostalCodesGet = PostalCodesGet
+data PostalCodesGet = PostalCodesGet'
     { _pcgProFileId :: !(Textual Int64)
     , _pcgCode      :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Text -- ^ 'pcgCode'
     -> PostalCodesGet
 postalCodesGet pPcgProFileId_ pPcgCode_ =
-    PostalCodesGet
+    PostalCodesGet'
     { _pcgProFileId = _Coerce # pPcgProFileId_
     , _pcgCode = pPcgCode_
     }
@@ -88,7 +88,9 @@
 
 instance GoogleRequest PostalCodesGet where
         type Rs PostalCodesGet = PostalCode
-        requestClient PostalCodesGet{..}
+        type Scopes PostalCodesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PostalCodesGet'{..}
           = go _pcgProFileId _pcgCode (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/PostalCodes/List.hs b/gen/Network/Google/Resource/DFAReporting/PostalCodes/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/PostalCodes/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/PostalCodes/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.PostalCodes.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'PostalCodesList' request conforms to.
 type PostalCodesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "postalCodes" :>
@@ -53,7 +53,7 @@
 -- | Retrieves a list of postal codes.
 --
 -- /See:/ 'postalCodesList' smart constructor.
-newtype PostalCodesList = PostalCodesList
+newtype PostalCodesList = PostalCodesList'
     { _pclProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'pclProFileId'
     -> PostalCodesList
 postalCodesList pPclProFileId_ =
-    PostalCodesList
+    PostalCodesList'
     { _pclProFileId = _Coerce # pPclProFileId_
     }
 
@@ -78,7 +78,9 @@
 
 instance GoogleRequest PostalCodesList where
         type Rs PostalCodesList = PostalCodesListResponse
-        requestClient PostalCodesList{..}
+        type Scopes PostalCodesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient PostalCodesList'{..}
           = go _pclProFileId (Just AltJSON) dFAReportingService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/DFAReporting/Projects/Get.hs b/gen/Network/Google/Resource/DFAReporting/Projects/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Projects/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Projects/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Projects.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'ProjectsGet' request conforms to.
 type ProjectsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "projects" :>
@@ -54,7 +54,7 @@
 -- | Gets one project by ID.
 --
 -- /See:/ 'projectsGet' smart constructor.
-data ProjectsGet = ProjectsGet
+data ProjectsGet = ProjectsGet'
     { _proProFileId :: !(Textual Int64)
     , _proId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'proId'
     -> ProjectsGet
 projectsGet pProProFileId_ pProId_ =
-    ProjectsGet
+    ProjectsGet'
     { _proProFileId = _Coerce # pProProFileId_
     , _proId = _Coerce # pProId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest ProjectsGet where
         type Rs ProjectsGet = Project
-        requestClient ProjectsGet{..}
+        type Scopes ProjectsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ProjectsGet'{..}
           = go _proProFileId _proId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Projects/List.hs b/gen/Network/Google/Resource/DFAReporting/Projects/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Projects/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Projects/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Projects.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -50,7 +50,7 @@
 -- 'ProjectsList' request conforms to.
 type ProjectsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "projects" :>
@@ -67,7 +67,7 @@
 -- | Retrieves a list of projects, possibly filtered.
 --
 -- /See:/ 'projectsList' smart constructor.
-data ProjectsList = ProjectsList
+data ProjectsList = ProjectsList'
     { _plSearchString  :: !(Maybe Text)
     , _plIds           :: !(Maybe [Textual Int64])
     , _plProFileId     :: !(Textual Int64)
@@ -101,7 +101,7 @@
     :: Int64 -- ^ 'plProFileId'
     -> ProjectsList
 projectsList pPlProFileId_ =
-    ProjectsList
+    ProjectsList'
     { _plSearchString = Nothing
     , _plIds = Nothing
     , _plProFileId = _Coerce # pPlProFileId_
@@ -167,7 +167,9 @@
 
 instance GoogleRequest ProjectsList where
         type Rs ProjectsList = ProjectsListResponse
-        requestClient ProjectsList{..}
+        type Scopes ProjectsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient ProjectsList'{..}
           = go _plProFileId _plSearchString
               (_plIds ^. _Default)
               _plSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/Regions/List.hs b/gen/Network/Google/Resource/DFAReporting/Regions/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Regions/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Regions/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Regions.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'RegionsList' request conforms to.
 type RegionsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "regions" :>
@@ -53,7 +53,7 @@
 -- | Retrieves a list of regions.
 --
 -- /See:/ 'regionsList' smart constructor.
-newtype RegionsList = RegionsList
+newtype RegionsList = RegionsList'
     { _rProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'rProFileId'
     -> RegionsList
 regionsList pRProFileId_ =
-    RegionsList
+    RegionsList'
     { _rProFileId = _Coerce # pRProFileId_
     }
 
@@ -78,7 +78,9 @@
 
 instance GoogleRequest RegionsList where
         type Rs RegionsList = RegionsListResponse
-        requestClient RegionsList{..}
+        type Scopes RegionsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient RegionsList'{..}
           = go _rProFileId (Just AltJSON) dFAReportingService
           where go
                   = buildClient (Proxy :: Proxy RegionsListResource)
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Get.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.RemarketingListShares.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'RemarketingListSharesGet' request conforms to.
 type RemarketingListSharesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "remarketingListShares" :>
@@ -55,7 +55,7 @@
 -- | Gets one remarketing list share by remarketing list ID.
 --
 -- /See:/ 'remarketingListSharesGet' smart constructor.
-data RemarketingListSharesGet = RemarketingListSharesGet
+data RemarketingListSharesGet = RemarketingListSharesGet'
     { _rlsgProFileId         :: !(Textual Int64)
     , _rlsgRemarketingListId :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'rlsgRemarketingListId'
     -> RemarketingListSharesGet
 remarketingListSharesGet pRlsgProFileId_ pRlsgRemarketingListId_ =
-    RemarketingListSharesGet
+    RemarketingListSharesGet'
     { _rlsgProFileId = _Coerce # pRlsgProFileId_
     , _rlsgRemarketingListId = _Coerce # pRlsgRemarketingListId_
     }
@@ -94,7 +94,9 @@
 instance GoogleRequest RemarketingListSharesGet where
         type Rs RemarketingListSharesGet =
              RemarketingListShare
-        requestClient RemarketingListSharesGet{..}
+        type Scopes RemarketingListSharesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient RemarketingListSharesGet'{..}
           = go _rlsgProFileId _rlsgRemarketingListId
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Patch.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.RemarketingListShares.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'RemarketingListSharesPatch' request conforms to.
 type RemarketingListSharesPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "remarketingListShares" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'remarketingListSharesPatch' smart constructor.
-data RemarketingListSharesPatch = RemarketingListSharesPatch
+data RemarketingListSharesPatch = RemarketingListSharesPatch'
     { _rlspProFileId         :: !(Textual Int64)
     , _rlspPayload           :: !RemarketingListShare
     , _rlspRemarketingListId :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'rlspRemarketingListId'
     -> RemarketingListSharesPatch
 remarketingListSharesPatch pRlspProFileId_ pRlspPayload_ pRlspRemarketingListId_ =
-    RemarketingListSharesPatch
+    RemarketingListSharesPatch'
     { _rlspProFileId = _Coerce # pRlspProFileId_
     , _rlspPayload = pRlspPayload_
     , _rlspRemarketingListId = _Coerce # pRlspRemarketingListId_
@@ -109,7 +109,9 @@
          where
         type Rs RemarketingListSharesPatch =
              RemarketingListShare
-        requestClient RemarketingListSharesPatch{..}
+        type Scopes RemarketingListSharesPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient RemarketingListSharesPatch'{..}
           = go _rlspProFileId (Just _rlspRemarketingListId)
               (Just AltJSON)
               _rlspPayload
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Update.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingListShares/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.RemarketingListShares.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'RemarketingListSharesUpdate' request conforms to.
 type RemarketingListSharesUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "remarketingListShares" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing remarketing list share.
 --
 -- /See:/ 'remarketingListSharesUpdate' smart constructor.
-data RemarketingListSharesUpdate = RemarketingListSharesUpdate
+data RemarketingListSharesUpdate = RemarketingListSharesUpdate'
     { _rlsuProFileId :: !(Textual Int64)
     , _rlsuPayload   :: !RemarketingListShare
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> RemarketingListShare -- ^ 'rlsuPayload'
     -> RemarketingListSharesUpdate
 remarketingListSharesUpdate pRlsuProFileId_ pRlsuPayload_ =
-    RemarketingListSharesUpdate
+    RemarketingListSharesUpdate'
     { _rlsuProFileId = _Coerce # pRlsuProFileId_
     , _rlsuPayload = pRlsuPayload_
     }
@@ -93,7 +93,9 @@
          where
         type Rs RemarketingListSharesUpdate =
              RemarketingListShare
-        requestClient RemarketingListSharesUpdate{..}
+        type Scopes RemarketingListSharesUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient RemarketingListSharesUpdate'{..}
           = go _rlsuProFileId (Just AltJSON) _rlsuPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Get.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.RemarketingLists.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'RemarketingListsGet' request conforms to.
 type RemarketingListsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "remarketingLists" :>
@@ -55,7 +55,7 @@
 -- | Gets one remarketing list by ID.
 --
 -- /See:/ 'remarketingListsGet' smart constructor.
-data RemarketingListsGet = RemarketingListsGet
+data RemarketingListsGet = RemarketingListsGet'
     { _rlgProFileId :: !(Textual Int64)
     , _rlgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'rlgId'
     -> RemarketingListsGet
 remarketingListsGet pRlgProFileId_ pRlgId_ =
-    RemarketingListsGet
+    RemarketingListsGet'
     { _rlgProFileId = _Coerce # pRlgProFileId_
     , _rlgId = _Coerce # pRlgId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest RemarketingListsGet where
         type Rs RemarketingListsGet = RemarketingList
-        requestClient RemarketingListsGet{..}
+        type Scopes RemarketingListsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient RemarketingListsGet'{..}
           = go _rlgProFileId _rlgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Insert.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.RemarketingLists.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'RemarketingListsInsert' request conforms to.
 type RemarketingListsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "remarketingLists" :>
@@ -55,7 +55,7 @@
 -- | Inserts a new remarketing list.
 --
 -- /See:/ 'remarketingListsInsert' smart constructor.
-data RemarketingListsInsert = RemarketingListsInsert
+data RemarketingListsInsert = RemarketingListsInsert'
     { _rliProFileId :: !(Textual Int64)
     , _rliPayload   :: !RemarketingList
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> RemarketingList -- ^ 'rliPayload'
     -> RemarketingListsInsert
 remarketingListsInsert pRliProFileId_ pRliPayload_ =
-    RemarketingListsInsert
+    RemarketingListsInsert'
     { _rliProFileId = _Coerce # pRliProFileId_
     , _rliPayload = pRliPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest RemarketingListsInsert where
         type Rs RemarketingListsInsert = RemarketingList
-        requestClient RemarketingListsInsert{..}
+        type Scopes RemarketingListsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient RemarketingListsInsert'{..}
           = go _rliProFileId (Just AltJSON) _rliPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/List.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.RemarketingLists.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -51,7 +51,7 @@
 -- 'RemarketingListsList' request conforms to.
 type RemarketingListsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "remarketingLists" :>
@@ -71,7 +71,7 @@
 -- | Retrieves a list of remarketing lists, possibly filtered.
 --
 -- /See:/ 'remarketingListsList' smart constructor.
-data RemarketingListsList = RemarketingListsList
+data RemarketingListsList = RemarketingListsList'
     { _rllFloodlightActivityId :: !(Maybe (Textual Int64))
     , _rllAdvertiserId         :: !(Textual Int64)
     , _rllProFileId            :: !(Textual Int64)
@@ -109,7 +109,7 @@
     -> Int64 -- ^ 'rllProFileId'
     -> RemarketingListsList
 remarketingListsList pRllAdvertiserId_ pRllProFileId_ =
-    RemarketingListsList
+    RemarketingListsList'
     { _rllFloodlightActivityId = Nothing
     , _rllAdvertiserId = _Coerce # pRllAdvertiserId_
     , _rllProFileId = _Coerce # pRllProFileId_
@@ -182,7 +182,9 @@
 instance GoogleRequest RemarketingListsList where
         type Rs RemarketingListsList =
              RemarketingListsListResponse
-        requestClient RemarketingListsList{..}
+        type Scopes RemarketingListsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient RemarketingListsList'{..}
           = go _rllProFileId (Just _rllAdvertiserId)
               _rllFloodlightActivityId
               _rllSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Patch.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.RemarketingLists.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'RemarketingListsPatch' request conforms to.
 type RemarketingListsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "remarketingLists" :>
@@ -59,7 +59,7 @@
 -- semantics.
 --
 -- /See:/ 'remarketingListsPatch' smart constructor.
-data RemarketingListsPatch = RemarketingListsPatch
+data RemarketingListsPatch = RemarketingListsPatch'
     { _rlpProFileId :: !(Textual Int64)
     , _rlpPayload   :: !RemarketingList
     , _rlpId        :: !(Textual Int64)
@@ -80,7 +80,7 @@
     -> Int64 -- ^ 'rlpId'
     -> RemarketingListsPatch
 remarketingListsPatch pRlpProFileId_ pRlpPayload_ pRlpId_ =
-    RemarketingListsPatch
+    RemarketingListsPatch'
     { _rlpProFileId = _Coerce # pRlpProFileId_
     , _rlpPayload = pRlpPayload_
     , _rlpId = _Coerce # pRlpId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest RemarketingListsPatch where
         type Rs RemarketingListsPatch = RemarketingList
-        requestClient RemarketingListsPatch{..}
+        type Scopes RemarketingListsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient RemarketingListsPatch'{..}
           = go _rlpProFileId (Just _rlpId) (Just AltJSON)
               _rlpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Update.hs b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/RemarketingLists/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.RemarketingLists.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'RemarketingListsUpdate' request conforms to.
 type RemarketingListsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "remarketingLists" :>
@@ -55,7 +55,7 @@
 -- | Updates an existing remarketing list.
 --
 -- /See:/ 'remarketingListsUpdate' smart constructor.
-data RemarketingListsUpdate = RemarketingListsUpdate
+data RemarketingListsUpdate = RemarketingListsUpdate'
     { _rluProFileId :: !(Textual Int64)
     , _rluPayload   :: !RemarketingList
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> RemarketingList -- ^ 'rluPayload'
     -> RemarketingListsUpdate
 remarketingListsUpdate pRluProFileId_ pRluPayload_ =
-    RemarketingListsUpdate
+    RemarketingListsUpdate'
     { _rluProFileId = _Coerce # pRluProFileId_
     , _rluPayload = pRluPayload_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest RemarketingListsUpdate where
         type Rs RemarketingListsUpdate = RemarketingList
-        requestClient RemarketingListsUpdate{..}
+        type Scopes RemarketingListsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient RemarketingListsUpdate'{..}
           = go _rluProFileId (Just AltJSON) _rluPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/CompatibleFields/Query.hs b/gen/Network/Google/Resource/DFAReporting/Reports/CompatibleFields/Query.hs
--- a/gen/Network/Google/Resource/DFAReporting/Reports/CompatibleFields/Query.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/CompatibleFields/Query.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Reports.CompatibleFields.Query
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,7 +46,7 @@
 -- 'ReportsCompatibleFieldsQuery' request conforms to.
 type ReportsCompatibleFieldsQueryResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "reports" :>
@@ -61,7 +61,7 @@
 -- input report and user permissions.
 --
 -- /See:/ 'reportsCompatibleFieldsQuery' smart constructor.
-data ReportsCompatibleFieldsQuery = ReportsCompatibleFieldsQuery
+data ReportsCompatibleFieldsQuery = ReportsCompatibleFieldsQuery'
     { _rcfqProFileId :: !(Textual Int64)
     , _rcfqPayload   :: !Report
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -78,7 +78,7 @@
     -> Report -- ^ 'rcfqPayload'
     -> ReportsCompatibleFieldsQuery
 reportsCompatibleFieldsQuery pRcfqProFileId_ pRcfqPayload_ =
-    ReportsCompatibleFieldsQuery
+    ReportsCompatibleFieldsQuery'
     { _rcfqProFileId = _Coerce # pRcfqProFileId_
     , _rcfqPayload = pRcfqPayload_
     }
@@ -99,7 +99,9 @@
          where
         type Rs ReportsCompatibleFieldsQuery =
              CompatibleFields
-        requestClient ReportsCompatibleFieldsQuery{..}
+        type Scopes ReportsCompatibleFieldsQuery =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient ReportsCompatibleFieldsQuery'{..}
           = go _rcfqProFileId (Just AltJSON) _rcfqPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Delete.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Delete.hs
--- a/gen/Network/Google/Resource/DFAReporting/Reports/Delete.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Reports.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'ReportsDelete' request conforms to.
 type ReportsDeleteResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "reports" :>
@@ -54,7 +54,7 @@
 -- | Deletes a report by its ID.
 --
 -- /See:/ 'reportsDelete' smart constructor.
-data ReportsDelete = ReportsDelete
+data ReportsDelete = ReportsDelete'
     { _rdReportId  :: !(Textual Int64)
     , _rdProFileId :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'rdProFileId'
     -> ReportsDelete
 reportsDelete pRdReportId_ pRdProFileId_ =
-    ReportsDelete
+    ReportsDelete'
     { _rdReportId = _Coerce # pRdReportId_
     , _rdProFileId = _Coerce # pRdProFileId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest ReportsDelete where
         type Rs ReportsDelete = ()
-        requestClient ReportsDelete{..}
+        type Scopes ReportsDelete =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient ReportsDelete'{..}
           = go _rdProFileId _rdReportId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Files/Get.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Files/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Reports/Files/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Files/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Reports.Files.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'ReportsFilesGet' request conforms to.
 type ReportsFilesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "reports" :>
@@ -55,7 +55,7 @@
                      QueryParam "alt" AltJSON :> Get '[JSON] File
        :<|>
        "dfareporting" :>
-         "v2.2" :>
+         "v2.5" :>
            "userprofiles" :>
              Capture "profileId" (Textual Int64) :>
                "reports" :>
@@ -68,7 +68,7 @@
 -- | Retrieves a report file.
 --
 -- /See:/ 'reportsFilesGet' smart constructor.
-data ReportsFilesGet = ReportsFilesGet
+data ReportsFilesGet = ReportsFilesGet'
     { _rfgReportId  :: !(Textual Int64)
     , _rfgProFileId :: !(Textual Int64)
     , _rfgFileId    :: !(Textual Int64)
@@ -89,7 +89,7 @@
     -> Int64 -- ^ 'rfgFileId'
     -> ReportsFilesGet
 reportsFilesGet pRfgReportId_ pRfgProFileId_ pRfgFileId_ =
-    ReportsFilesGet
+    ReportsFilesGet'
     { _rfgReportId = _Coerce # pRfgReportId_
     , _rfgProFileId = _Coerce # pRfgProFileId_
     , _rfgFileId = _Coerce # pRfgFileId_
@@ -115,7 +115,9 @@
 
 instance GoogleRequest ReportsFilesGet where
         type Rs ReportsFilesGet = File
-        requestClient ReportsFilesGet{..}
+        type Scopes ReportsFilesGet =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient ReportsFilesGet'{..}
           = go _rfgProFileId _rfgReportId _rfgFileId
               (Just AltJSON)
               dFAReportingService
@@ -127,7 +129,9 @@
 instance GoogleRequest
          (MediaDownload ReportsFilesGet) where
         type Rs (MediaDownload ReportsFilesGet) = Stream
-        requestClient (MediaDownload ReportsFilesGet{..})
+        type Scopes (MediaDownload ReportsFilesGet) =
+             Scopes ReportsFilesGet
+        requestClient (MediaDownload ReportsFilesGet'{..})
           = go _rfgProFileId _rfgReportId _rfgFileId
               (Just AltMedia)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Files/List.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Files/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Reports/Files/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Files/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Reports.Files.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -48,7 +48,7 @@
 -- 'ReportsFilesList' request conforms to.
 type ReportsFilesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "reports" :>
@@ -63,7 +63,7 @@
 -- | Lists files for a report.
 --
 -- /See:/ 'reportsFilesList' smart constructor.
-data ReportsFilesList = ReportsFilesList
+data ReportsFilesList = ReportsFilesList'
     { _rflReportId   :: !(Textual Int64)
     , _rflProFileId  :: !(Textual Int64)
     , _rflSortOrder  :: !ReportsFilesListSortOrder
@@ -92,7 +92,7 @@
     -> Int64 -- ^ 'rflProFileId'
     -> ReportsFilesList
 reportsFilesList pRflReportId_ pRflProFileId_ =
-    ReportsFilesList
+    ReportsFilesList'
     { _rflReportId = _Coerce # pRflReportId_
     , _rflProFileId = _Coerce # pRflProFileId_
     , _rflSortOrder = RFLSODescending
@@ -137,7 +137,9 @@
 
 instance GoogleRequest ReportsFilesList where
         type Rs ReportsFilesList = FileList
-        requestClient ReportsFilesList{..}
+        type Scopes ReportsFilesList =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient ReportsFilesList'{..}
           = go _rflProFileId _rflReportId (Just _rflSortOrder)
               _rflPageToken
               (Just _rflSortField)
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Get.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Reports/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Reports.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'ReportsGet' request conforms to.
 type ReportsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "reports" :>
@@ -54,7 +54,7 @@
 -- | Retrieves a report by its ID.
 --
 -- /See:/ 'reportsGet' smart constructor.
-data ReportsGet = ReportsGet
+data ReportsGet = ReportsGet'
     { _rgReportId  :: !(Textual Int64)
     , _rgProFileId :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'rgProFileId'
     -> ReportsGet
 reportsGet pRgReportId_ pRgProFileId_ =
-    ReportsGet
+    ReportsGet'
     { _rgReportId = _Coerce # pRgReportId_
     , _rgProFileId = _Coerce # pRgProFileId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest ReportsGet where
         type Rs ReportsGet = Report
-        requestClient ReportsGet{..}
+        type Scopes ReportsGet =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient ReportsGet'{..}
           = go _rgProFileId _rgReportId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/Reports/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Reports.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'ReportsInsert' request conforms to.
 type ReportsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "reports" :>
@@ -54,7 +54,7 @@
 -- | Creates a report.
 --
 -- /See:/ 'reportsInsert' smart constructor.
-data ReportsInsert = ReportsInsert
+data ReportsInsert = ReportsInsert'
     { _riProFileId :: !(Textual Int64)
     , _riPayload   :: !Report
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Report -- ^ 'riPayload'
     -> ReportsInsert
 reportsInsert pRiProFileId_ pRiPayload_ =
-    ReportsInsert
+    ReportsInsert'
     { _riProFileId = _Coerce # pRiProFileId_
     , _riPayload = pRiPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest ReportsInsert where
         type Rs ReportsInsert = Report
-        requestClient ReportsInsert{..}
+        type Scopes ReportsInsert =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient ReportsInsert'{..}
           = go _riProFileId (Just AltJSON) _riPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/List.hs b/gen/Network/Google/Resource/DFAReporting/Reports/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Reports/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Reports.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -48,7 +48,7 @@
 -- 'ReportsList' request conforms to.
 type ReportsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "reports" :>
@@ -62,7 +62,7 @@
 -- | Retrieves list of reports.
 --
 -- /See:/ 'reportsList' smart constructor.
-data ReportsList = ReportsList
+data ReportsList = ReportsList'
     { _rlProFileId  :: !(Textual Int64)
     , _rlSortOrder  :: !ReportsListSortOrder
     , _rlScope      :: !ReportsListScope
@@ -90,7 +90,7 @@
     :: Int64 -- ^ 'rlProFileId'
     -> ReportsList
 reportsList pRlProFileId_ =
-    ReportsList
+    ReportsList'
     { _rlProFileId = _Coerce # pRlProFileId_
     , _rlSortOrder = RLSODescending
     , _rlScope = Mine
@@ -132,7 +132,9 @@
 
 instance GoogleRequest ReportsList where
         type Rs ReportsList = ReportList
-        requestClient ReportsList{..}
+        type Scopes ReportsList =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient ReportsList'{..}
           = go _rlProFileId (Just _rlSortOrder) (Just _rlScope)
               _rlPageToken
               (Just _rlSortField)
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/Reports/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Reports.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'ReportsPatch' request conforms to.
 type ReportsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "reports" :>
@@ -56,7 +56,7 @@
 -- | Updates a report. This method supports patch semantics.
 --
 -- /See:/ 'reportsPatch' smart constructor.
-data ReportsPatch = ReportsPatch
+data ReportsPatch = ReportsPatch'
     { _rpReportId  :: !(Textual Int64)
     , _rpProFileId :: !(Textual Int64)
     , _rpPayload   :: !Report
@@ -77,7 +77,7 @@
     -> Report -- ^ 'rpPayload'
     -> ReportsPatch
 reportsPatch pRpReportId_ pRpProFileId_ pRpPayload_ =
-    ReportsPatch
+    ReportsPatch'
     { _rpReportId = _Coerce # pRpReportId_
     , _rpProFileId = _Coerce # pRpProFileId_
     , _rpPayload = pRpPayload_
@@ -102,7 +102,9 @@
 
 instance GoogleRequest ReportsPatch where
         type Rs ReportsPatch = Report
-        requestClient ReportsPatch{..}
+        type Scopes ReportsPatch =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient ReportsPatch'{..}
           = go _rpProFileId _rpReportId (Just AltJSON)
               _rpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Run.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Run.hs
--- a/gen/Network/Google/Resource/DFAReporting/Reports/Run.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Run.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Reports.Run
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'ReportsRun' request conforms to.
 type ReportsRunResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "reports" :>
@@ -57,7 +57,7 @@
 -- | Runs a report.
 --
 -- /See:/ 'reportsRun' smart constructor.
-data ReportsRun = ReportsRun
+data ReportsRun = ReportsRun'
     { _rrSynchronous :: !(Maybe Bool)
     , _rrReportId    :: !(Textual Int64)
     , _rrProFileId   :: !(Textual Int64)
@@ -77,7 +77,7 @@
     -> Int64 -- ^ 'rrProFileId'
     -> ReportsRun
 reportsRun pRrReportId_ pRrProFileId_ =
-    ReportsRun
+    ReportsRun'
     { _rrSynchronous = Nothing
     , _rrReportId = _Coerce # pRrReportId_
     , _rrProFileId = _Coerce # pRrProFileId_
@@ -103,7 +103,9 @@
 
 instance GoogleRequest ReportsRun where
         type Rs ReportsRun = File
-        requestClient ReportsRun{..}
+        type Scopes ReportsRun =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient ReportsRun'{..}
           = go _rrProFileId _rrReportId _rrSynchronous
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Reports/Update.hs b/gen/Network/Google/Resource/DFAReporting/Reports/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/Reports/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Reports/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Reports.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'ReportsUpdate' request conforms to.
 type ReportsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "reports" :>
@@ -56,7 +56,7 @@
 -- | Updates a report.
 --
 -- /See:/ 'reportsUpdate' smart constructor.
-data ReportsUpdate = ReportsUpdate
+data ReportsUpdate = ReportsUpdate'
     { _ruReportId  :: !(Textual Int64)
     , _ruProFileId :: !(Textual Int64)
     , _ruPayload   :: !Report
@@ -77,7 +77,7 @@
     -> Report -- ^ 'ruPayload'
     -> ReportsUpdate
 reportsUpdate pRuReportId_ pRuProFileId_ pRuPayload_ =
-    ReportsUpdate
+    ReportsUpdate'
     { _ruReportId = _Coerce # pRuReportId_
     , _ruProFileId = _Coerce # pRuProFileId_
     , _ruPayload = pRuPayload_
@@ -102,7 +102,9 @@
 
 instance GoogleRequest ReportsUpdate where
         type Rs ReportsUpdate = Report
-        requestClient ReportsUpdate{..}
+        type Scopes ReportsUpdate =
+             '["https://www.googleapis.com/auth/dfareporting"]
+        requestClient ReportsUpdate'{..}
           = go _ruProFileId _ruReportId (Just AltJSON)
               _ruPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Sites/Get.hs b/gen/Network/Google/Resource/DFAReporting/Sites/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Sites/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Sites/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Sites.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'SitesGet' request conforms to.
 type SitesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "sites" :>
@@ -54,7 +54,7 @@
 -- | Gets one site by ID.
 --
 -- /See:/ 'sitesGet' smart constructor.
-data SitesGet = SitesGet
+data SitesGet = SitesGet'
     { _sggProFileId :: !(Textual Int64)
     , _sggId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'sggId'
     -> SitesGet
 sitesGet pSggProFileId_ pSggId_ =
-    SitesGet
+    SitesGet'
     { _sggProFileId = _Coerce # pSggProFileId_
     , _sggId = _Coerce # pSggId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest SitesGet where
         type Rs SitesGet = Site
-        requestClient SitesGet{..}
+        type Scopes SitesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SitesGet'{..}
           = go _sggProFileId _sggId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Sites/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Sites/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/Sites/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Sites/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Sites.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'SitesInsert' request conforms to.
 type SitesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "sites" :>
@@ -54,7 +54,7 @@
 -- | Inserts a new site.
 --
 -- /See:/ 'sitesInsert' smart constructor.
-data SitesInsert = SitesInsert
+data SitesInsert = SitesInsert'
     { _sProFileId :: !(Textual Int64)
     , _sPayload   :: !Site
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Site -- ^ 'sPayload'
     -> SitesInsert
 sitesInsert pSProFileId_ pSPayload_ =
-    SitesInsert
+    SitesInsert'
     { _sProFileId = _Coerce # pSProFileId_
     , _sPayload = pSPayload_
     }
@@ -88,7 +88,9 @@
 
 instance GoogleRequest SitesInsert where
         type Rs SitesInsert = Site
-        requestClient SitesInsert{..}
+        type Scopes SitesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SitesInsert'{..}
           = go _sProFileId (Just AltJSON) _sPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Sites/List.hs b/gen/Network/Google/Resource/DFAReporting/Sites/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Sites/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Sites/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Sites.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,7 +58,7 @@
 -- 'SitesList' request conforms to.
 type SitesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "sites" :>
@@ -87,7 +87,7 @@
 -- | Retrieves a list of sites, possibly filtered.
 --
 -- /See:/ 'sitesList' smart constructor.
-data SitesList = SitesList
+data SitesList = SitesList'
     { _sitUnmAppedSite                   :: !(Maybe Bool)
     , _sitCampaignIds                    :: !(Maybe [Textual Int64])
     , _sitSearchString                   :: !(Maybe Text)
@@ -145,7 +145,7 @@
     :: Int64 -- ^ 'sitProFileId'
     -> SitesList
 sitesList pSitProFileId_ =
-    SitesList
+    SitesList'
     { _sitUnmAppedSite = Nothing
     , _sitCampaignIds = Nothing
     , _sitSearchString = Nothing
@@ -271,7 +271,9 @@
 
 instance GoogleRequest SitesList where
         type Rs SitesList = SitesListResponse
-        requestClient SitesList{..}
+        type Scopes SitesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SitesList'{..}
           = go _sitProFileId _sitUnmAppedSite
               (_sitCampaignIds ^. _Default)
               _sitSearchString
diff --git a/gen/Network/Google/Resource/DFAReporting/Sites/Patch.hs b/gen/Network/Google/Resource/DFAReporting/Sites/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/Sites/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Sites/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Sites.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'SitesPatch' request conforms to.
 type SitesPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "sites" :>
@@ -56,7 +56,7 @@
 -- | Updates an existing site. This method supports patch semantics.
 --
 -- /See:/ 'sitesPatch' smart constructor.
-data SitesPatch = SitesPatch
+data SitesPatch = SitesPatch'
     { _spProFileId :: !(Textual Int64)
     , _spPayload   :: !Site
     , _spId        :: !(Textual Int64)
@@ -77,7 +77,7 @@
     -> Int64 -- ^ 'spId'
     -> SitesPatch
 sitesPatch pSpProFileId_ pSpPayload_ pSpId_ =
-    SitesPatch
+    SitesPatch'
     { _spProFileId = _Coerce # pSpProFileId_
     , _spPayload = pSpPayload_
     , _spId = _Coerce # pSpId_
@@ -100,7 +100,9 @@
 
 instance GoogleRequest SitesPatch where
         type Rs SitesPatch = Site
-        requestClient SitesPatch{..}
+        type Scopes SitesPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SitesPatch'{..}
           = go _spProFileId (Just _spId) (Just AltJSON)
               _spPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/Sites/Update.hs b/gen/Network/Google/Resource/DFAReporting/Sites/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/Sites/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Sites/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Sites.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'SitesUpdate' request conforms to.
 type SitesUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "sites" :>
@@ -54,7 +54,7 @@
 -- | Updates an existing site.
 --
 -- /See:/ 'sitesUpdate' smart constructor.
-data SitesUpdate = SitesUpdate
+data SitesUpdate = SitesUpdate'
     { _suProFileId :: !(Textual Int64)
     , _suPayload   :: !Site
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Site -- ^ 'suPayload'
     -> SitesUpdate
 sitesUpdate pSuProFileId_ pSuPayload_ =
-    SitesUpdate
+    SitesUpdate'
     { _suProFileId = _Coerce # pSuProFileId_
     , _suPayload = pSuPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest SitesUpdate where
         type Rs SitesUpdate = Site
-        requestClient SitesUpdate{..}
+        type Scopes SitesUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SitesUpdate'{..}
           = go _suProFileId (Just AltJSON) _suPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Sizes/Get.hs b/gen/Network/Google/Resource/DFAReporting/Sizes/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/Sizes/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Sizes/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Sizes.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'SizesGet' request conforms to.
 type SizesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "sizes" :>
@@ -54,7 +54,7 @@
 -- | Gets one size by ID.
 --
 -- /See:/ 'sizesGet' smart constructor.
-data SizesGet = SizesGet
+data SizesGet = SizesGet'
     { _sgProFileId :: !(Textual Int64)
     , _sgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'sgId'
     -> SizesGet
 sizesGet pSgProFileId_ pSgId_ =
-    SizesGet
+    SizesGet'
     { _sgProFileId = _Coerce # pSgProFileId_
     , _sgId = _Coerce # pSgId_
     }
@@ -88,7 +88,9 @@
 
 instance GoogleRequest SizesGet where
         type Rs SizesGet = Size
-        requestClient SizesGet{..}
+        type Scopes SizesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SizesGet'{..}
           = go _sgProFileId _sgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Sizes/Insert.hs b/gen/Network/Google/Resource/DFAReporting/Sizes/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/Sizes/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Sizes/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Sizes.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'SizesInsert' request conforms to.
 type SizesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "sizes" :>
@@ -54,7 +54,7 @@
 -- | Inserts a new size.
 --
 -- /See:/ 'sizesInsert' smart constructor.
-data SizesInsert = SizesInsert
+data SizesInsert = SizesInsert'
     { _siProFileId :: !(Textual Int64)
     , _siPayload   :: !Size
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Size -- ^ 'siPayload'
     -> SizesInsert
 sizesInsert pSiProFileId_ pSiPayload_ =
-    SizesInsert
+    SizesInsert'
     { _siProFileId = _Coerce # pSiProFileId_
     , _siPayload = pSiPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest SizesInsert where
         type Rs SizesInsert = Size
-        requestClient SizesInsert{..}
+        type Scopes SizesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SizesInsert'{..}
           = go _siProFileId (Just AltJSON) _siPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/Sizes/List.hs b/gen/Network/Google/Resource/DFAReporting/Sizes/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/Sizes/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/Sizes/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.Sizes.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -47,7 +47,7 @@
 -- 'SizesList' request conforms to.
 type SizesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "sizes" :>
@@ -61,7 +61,7 @@
 -- | Retrieves a list of sizes, possibly filtered.
 --
 -- /See:/ 'sizesList' smart constructor.
-data SizesList = SizesList
+data SizesList = SizesList'
     { _slHeight      :: !(Maybe (Textual Int32))
     , _slIds         :: !(Maybe [Textual Int64])
     , _slWidth       :: !(Maybe (Textual Int32))
@@ -86,7 +86,7 @@
     :: Int64 -- ^ 'slProFileId'
     -> SizesList
 sizesList pSlProFileId_ =
-    SizesList
+    SizesList'
     { _slHeight = Nothing
     , _slIds = Nothing
     , _slWidth = Nothing
@@ -126,7 +126,9 @@
 
 instance GoogleRequest SizesList where
         type Rs SizesList = SizesListResponse
-        requestClient SizesList{..}
+        type Scopes SizesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SizesList'{..}
           = go _slProFileId _slHeight (_slIds ^. _Default)
               _slWidth
               _slIabStandard
diff --git a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Get.hs b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.SubAccounts.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'SubAccountsGet' request conforms to.
 type SubAccountsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "subaccounts" :>
@@ -54,7 +54,7 @@
 -- | Gets one subaccount by ID.
 --
 -- /See:/ 'subAccountsGet' smart constructor.
-data SubAccountsGet = SubAccountsGet
+data SubAccountsGet = SubAccountsGet'
     { _sagProFileId :: !(Textual Int64)
     , _sagId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'sagId'
     -> SubAccountsGet
 subAccountsGet pSagProFileId_ pSagId_ =
-    SubAccountsGet
+    SubAccountsGet'
     { _sagProFileId = _Coerce # pSagProFileId_
     , _sagId = _Coerce # pSagId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest SubAccountsGet where
         type Rs SubAccountsGet = SubAccount
-        requestClient SubAccountsGet{..}
+        type Scopes SubAccountsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SubAccountsGet'{..}
           = go _sagProFileId _sagId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Insert.hs b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.SubAccounts.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'SubAccountsInsert' request conforms to.
 type SubAccountsInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "subaccounts" :>
@@ -54,7 +54,7 @@
 -- | Inserts a new subaccount.
 --
 -- /See:/ 'subAccountsInsert' smart constructor.
-data SubAccountsInsert = SubAccountsInsert
+data SubAccountsInsert = SubAccountsInsert'
     { _saiProFileId :: !(Textual Int64)
     , _saiPayload   :: !SubAccount
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> SubAccount -- ^ 'saiPayload'
     -> SubAccountsInsert
 subAccountsInsert pSaiProFileId_ pSaiPayload_ =
-    SubAccountsInsert
+    SubAccountsInsert'
     { _saiProFileId = _Coerce # pSaiProFileId_
     , _saiPayload = pSaiPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest SubAccountsInsert where
         type Rs SubAccountsInsert = SubAccount
-        requestClient SubAccountsInsert{..}
+        type Scopes SubAccountsInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SubAccountsInsert'{..}
           = go _saiProFileId (Just AltJSON) _saiPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/SubAccounts/List.hs b/gen/Network/Google/Resource/DFAReporting/SubAccounts/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/SubAccounts/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/SubAccounts/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.SubAccounts.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -49,7 +49,7 @@
 -- 'SubAccountsList' request conforms to.
 type SubAccountsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "subaccounts" :>
@@ -65,7 +65,7 @@
 -- | Gets a list of subaccounts, possibly filtered.
 --
 -- /See:/ 'subAccountsList' smart constructor.
-data SubAccountsList = SubAccountsList
+data SubAccountsList = SubAccountsList'
     { _salSearchString :: !(Maybe Text)
     , _salIds          :: !(Maybe [Textual Int64])
     , _salProFileId    :: !(Textual Int64)
@@ -96,7 +96,7 @@
     :: Int64 -- ^ 'salProFileId'
     -> SubAccountsList
 subAccountsList pSalProFileId_ =
-    SubAccountsList
+    SubAccountsList'
     { _salSearchString = Nothing
     , _salIds = Nothing
     , _salProFileId = _Coerce # pSalProFileId_
@@ -154,7 +154,9 @@
 
 instance GoogleRequest SubAccountsList where
         type Rs SubAccountsList = SubAccountsListResponse
-        requestClient SubAccountsList{..}
+        type Scopes SubAccountsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SubAccountsList'{..}
           = go _salProFileId _salSearchString
               (_salIds ^. _Default)
               _salSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Patch.hs b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.SubAccounts.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'SubAccountsPatch' request conforms to.
 type SubAccountsPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "subaccounts" :>
@@ -57,7 +57,7 @@
 -- | Updates an existing subaccount. This method supports patch semantics.
 --
 -- /See:/ 'subAccountsPatch' smart constructor.
-data SubAccountsPatch = SubAccountsPatch
+data SubAccountsPatch = SubAccountsPatch'
     { _sapProFileId :: !(Textual Int64)
     , _sapPayload   :: !SubAccount
     , _sapId        :: !(Textual Int64)
@@ -78,7 +78,7 @@
     -> Int64 -- ^ 'sapId'
     -> SubAccountsPatch
 subAccountsPatch pSapProFileId_ pSapPayload_ pSapId_ =
-    SubAccountsPatch
+    SubAccountsPatch'
     { _sapProFileId = _Coerce # pSapProFileId_
     , _sapPayload = pSapPayload_
     , _sapId = _Coerce # pSapId_
@@ -102,7 +102,9 @@
 
 instance GoogleRequest SubAccountsPatch where
         type Rs SubAccountsPatch = SubAccount
-        requestClient SubAccountsPatch{..}
+        type Scopes SubAccountsPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SubAccountsPatch'{..}
           = go _sapProFileId (Just _sapId) (Just AltJSON)
               _sapPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Update.hs b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/SubAccounts/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/SubAccounts/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.SubAccounts.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'SubAccountsUpdate' request conforms to.
 type SubAccountsUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "subaccounts" :>
@@ -54,7 +54,7 @@
 -- | Updates an existing subaccount.
 --
 -- /See:/ 'subAccountsUpdate' smart constructor.
-data SubAccountsUpdate = SubAccountsUpdate
+data SubAccountsUpdate = SubAccountsUpdate'
     { _sauProFileId :: !(Textual Int64)
     , _sauPayload   :: !SubAccount
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> SubAccount -- ^ 'sauPayload'
     -> SubAccountsUpdate
 subAccountsUpdate pSauProFileId_ pSauPayload_ =
-    SubAccountsUpdate
+    SubAccountsUpdate'
     { _sauProFileId = _Coerce # pSauProFileId_
     , _sauPayload = pSauPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest SubAccountsUpdate where
         type Rs SubAccountsUpdate = SubAccount
-        requestClient SubAccountsUpdate{..}
+        type Scopes SubAccountsUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient SubAccountsUpdate'{..}
           = go _sauProFileId (Just AltJSON) _sauPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/Get.hs b/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.TargetableRemarketingLists.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'TargetableRemarketingListsGet' request conforms to.
 type TargetableRemarketingListsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "targetableRemarketingLists" :>
@@ -55,7 +55,7 @@
 -- | Gets one remarketing list by ID.
 --
 -- /See:/ 'targetableRemarketingListsGet' smart constructor.
-data TargetableRemarketingListsGet = TargetableRemarketingListsGet
+data TargetableRemarketingListsGet = TargetableRemarketingListsGet'
     { _trlgProFileId :: !(Textual Int64)
     , _trlgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'trlgId'
     -> TargetableRemarketingListsGet
 targetableRemarketingListsGet pTrlgProFileId_ pTrlgId_ =
-    TargetableRemarketingListsGet
+    TargetableRemarketingListsGet'
     { _trlgProFileId = _Coerce # pTrlgProFileId_
     , _trlgId = _Coerce # pTrlgId_
     }
@@ -93,7 +93,9 @@
          where
         type Rs TargetableRemarketingListsGet =
              TargetableRemarketingList
-        requestClient TargetableRemarketingListsGet{..}
+        type Scopes TargetableRemarketingListsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient TargetableRemarketingListsGet'{..}
           = go _trlgProFileId _trlgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/List.hs b/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/TargetableRemarketingLists/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.TargetableRemarketingLists.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -50,7 +50,7 @@
 -- 'TargetableRemarketingListsList' request conforms to.
 type TargetableRemarketingListsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "targetableRemarketingLists" :>
@@ -72,7 +72,7 @@
 -- | Retrieves a list of targetable remarketing lists, possibly filtered.
 --
 -- /See:/ 'targetableRemarketingListsList' smart constructor.
-data TargetableRemarketingListsList = TargetableRemarketingListsList
+data TargetableRemarketingListsList = TargetableRemarketingListsList'
     { _trllAdvertiserId :: !(Textual Int64)
     , _trllProFileId    :: !(Textual Int64)
     , _trllSortOrder    :: !(Maybe TargetableRemarketingListsListSortOrder)
@@ -107,7 +107,7 @@
     -> Int64 -- ^ 'trllProFileId'
     -> TargetableRemarketingListsList
 targetableRemarketingListsList pTrllAdvertiserId_ pTrllProFileId_ =
-    TargetableRemarketingListsList
+    TargetableRemarketingListsList'
     { _trllAdvertiserId = _Coerce # pTrllAdvertiserId_
     , _trllProFileId = _Coerce # pTrllProFileId_
     , _trllSortOrder = Nothing
@@ -178,7 +178,9 @@
          where
         type Rs TargetableRemarketingListsList =
              TargetableRemarketingListsListResponse
-        requestClient TargetableRemarketingListsList{..}
+        type Scopes TargetableRemarketingListsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient TargetableRemarketingListsList'{..}
           = go _trllProFileId (Just _trllAdvertiserId)
               _trllSortOrder
               _trllActive
diff --git a/gen/Network/Google/Resource/DFAReporting/UserProFiles/Get.hs b/gen/Network/Google/Resource/DFAReporting/UserProFiles/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserProFiles/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserProFiles/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserProFiles.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'UserProFilesGet' request conforms to.
 type UserProFilesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              QueryParam "alt" AltJSON :> Get '[JSON] UserProFile
@@ -51,7 +51,7 @@
 -- | Gets one user profile by ID.
 --
 -- /See:/ 'userProFilesGet' smart constructor.
-newtype UserProFilesGet = UserProFilesGet
+newtype UserProFilesGet = UserProFilesGet'
     { _upfgProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -64,7 +64,7 @@
     :: Int64 -- ^ 'upfgProFileId'
     -> UserProFilesGet
 userProFilesGet pUpfgProFileId_ =
-    UserProFilesGet
+    UserProFilesGet'
     { _upfgProFileId = _Coerce # pUpfgProFileId_
     }
 
@@ -77,7 +77,10 @@
 
 instance GoogleRequest UserProFilesGet where
         type Rs UserProFilesGet = UserProFile
-        requestClient UserProFilesGet{..}
+        type Scopes UserProFilesGet =
+             '["https://www.googleapis.com/auth/dfareporting",
+               "https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserProFilesGet'{..}
           = go _upfgProFileId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/UserProFiles/List.hs b/gen/Network/Google/Resource/DFAReporting/UserProFiles/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserProFiles/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserProFiles/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserProFiles.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -41,7 +41,7 @@
 -- 'UserProFilesList' request conforms to.
 type UserProFilesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            QueryParam "alt" AltJSON :>
              Get '[JSON] UserProFileList
@@ -50,18 +50,21 @@
 --
 -- /See:/ 'userProFilesList' smart constructor.
 data UserProFilesList =
-    UserProFilesList
+    UserProFilesList'
     deriving (Eq,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'UserProFilesList' with the minimum fields required to make a request.
 --
 userProFilesList
     :: UserProFilesList
-userProFilesList = UserProFilesList
+userProFilesList = UserProFilesList'
 
 instance GoogleRequest UserProFilesList where
         type Rs UserProFilesList = UserProFileList
-        requestClient UserProFilesList{}
+        type Scopes UserProFilesList =
+             '["https://www.googleapis.com/auth/dfareporting",
+               "https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserProFilesList'{}
           = go (Just AltJSON) dFAReportingService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/Get.hs b/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserRolePermissionGroups.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'UserRolePermissionGroupsGet' request conforms to.
 type UserRolePermissionGroupsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "userRolePermissionGroups" :>
@@ -55,7 +55,7 @@
 -- | Gets one user role permission group by ID.
 --
 -- /See:/ 'userRolePermissionGroupsGet' smart constructor.
-data UserRolePermissionGroupsGet = UserRolePermissionGroupsGet
+data UserRolePermissionGroupsGet = UserRolePermissionGroupsGet'
     { _urpggProFileId :: !(Textual Int64)
     , _urpggId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'urpggId'
     -> UserRolePermissionGroupsGet
 userRolePermissionGroupsGet pUrpggProFileId_ pUrpggId_ =
-    UserRolePermissionGroupsGet
+    UserRolePermissionGroupsGet'
     { _urpggProFileId = _Coerce # pUrpggProFileId_
     , _urpggId = _Coerce # pUrpggId_
     }
@@ -93,7 +93,9 @@
          where
         type Rs UserRolePermissionGroupsGet =
              UserRolePermissionGroup
-        requestClient UserRolePermissionGroupsGet{..}
+        type Scopes UserRolePermissionGroupsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserRolePermissionGroupsGet'{..}
           = go _urpggProFileId _urpggId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/List.hs b/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserRolePermissionGroups/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserRolePermissionGroups.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -43,7 +43,7 @@
 -- 'UserRolePermissionGroupsList' request conforms to.
 type UserRolePermissionGroupsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "userRolePermissionGroups" :>
@@ -53,7 +53,7 @@
 -- | Gets a list of all supported user role permission groups.
 --
 -- /See:/ 'userRolePermissionGroupsList' smart constructor.
-newtype UserRolePermissionGroupsList = UserRolePermissionGroupsList
+newtype UserRolePermissionGroupsList = UserRolePermissionGroupsList'
     { _urpglProFileId :: Textual Int64
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Int64 -- ^ 'urpglProFileId'
     -> UserRolePermissionGroupsList
 userRolePermissionGroupsList pUrpglProFileId_ =
-    UserRolePermissionGroupsList
+    UserRolePermissionGroupsList'
     { _urpglProFileId = _Coerce # pUrpglProFileId_
     }
 
@@ -81,7 +81,9 @@
          where
         type Rs UserRolePermissionGroupsList =
              UserRolePermissionGroupsListResponse
-        requestClient UserRolePermissionGroupsList{..}
+        type Scopes UserRolePermissionGroupsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserRolePermissionGroupsList'{..}
           = go _urpglProFileId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/Get.hs b/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserRolePermissions.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'UserRolePermissionsGet' request conforms to.
 type UserRolePermissionsGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "userRolePermissions" :>
@@ -55,7 +55,7 @@
 -- | Gets one user role permission by ID.
 --
 -- /See:/ 'userRolePermissionsGet' smart constructor.
-data UserRolePermissionsGet = UserRolePermissionsGet
+data UserRolePermissionsGet = UserRolePermissionsGet'
     { _uProFileId :: !(Textual Int64)
     , _uId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Int64 -- ^ 'uId'
     -> UserRolePermissionsGet
 userRolePermissionsGet pUProFileId_ pUId_ =
-    UserRolePermissionsGet
+    UserRolePermissionsGet'
     { _uProFileId = _Coerce # pUProFileId_
     , _uId = _Coerce # pUId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest UserRolePermissionsGet where
         type Rs UserRolePermissionsGet = UserRolePermission
-        requestClient UserRolePermissionsGet{..}
+        type Scopes UserRolePermissionsGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserRolePermissionsGet'{..}
           = go _uProFileId _uId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/List.hs b/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserRolePermissions/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserRolePermissions.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'UserRolePermissionsList' request conforms to.
 type UserRolePermissionsListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "userRolePermissions" :>
@@ -55,7 +55,7 @@
 -- | Gets a list of user role permissions, possibly filtered.
 --
 -- /See:/ 'userRolePermissionsList' smart constructor.
-data UserRolePermissionsList = UserRolePermissionsList
+data UserRolePermissionsList = UserRolePermissionsList'
     { _urplIds       :: !(Maybe [Textual Int64])
     , _urplProFileId :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     :: Int64 -- ^ 'urplProFileId'
     -> UserRolePermissionsList
 userRolePermissionsList pUrplProFileId_ =
-    UserRolePermissionsList
+    UserRolePermissionsList'
     { _urplIds = Nothing
     , _urplProFileId = _Coerce # pUrplProFileId_
     }
@@ -92,7 +92,9 @@
 instance GoogleRequest UserRolePermissionsList where
         type Rs UserRolePermissionsList =
              UserRolePermissionsListResponse
-        requestClient UserRolePermissionsList{..}
+        type Scopes UserRolePermissionsList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserRolePermissionsList'{..}
           = go _urplProFileId (_urplIds ^. _Default)
               (Just AltJSON)
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/Delete.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/Delete.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserRoles/Delete.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserRoles.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'UserRolesDelete' request conforms to.
 type UserRolesDeleteResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "userRoles" :>
@@ -54,7 +54,7 @@
 -- | Deletes an existing user role.
 --
 -- /See:/ 'userRolesDelete' smart constructor.
-data UserRolesDelete = UserRolesDelete
+data UserRolesDelete = UserRolesDelete'
     { _urdProFileId :: !(Textual Int64)
     , _urdId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'urdId'
     -> UserRolesDelete
 userRolesDelete pUrdProFileId_ pUrdId_ =
-    UserRolesDelete
+    UserRolesDelete'
     { _urdProFileId = _Coerce # pUrdProFileId_
     , _urdId = _Coerce # pUrdId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest UserRolesDelete where
         type Rs UserRolesDelete = ()
-        requestClient UserRolesDelete{..}
+        type Scopes UserRolesDelete =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserRolesDelete'{..}
           = go _urdProFileId _urdId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/Get.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/Get.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserRoles/Get.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserRoles.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'UserRolesGet' request conforms to.
 type UserRolesGetResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "userRoles" :>
@@ -54,7 +54,7 @@
 -- | Gets one user role by ID.
 --
 -- /See:/ 'userRolesGet' smart constructor.
-data UserRolesGet = UserRolesGet
+data UserRolesGet = UserRolesGet'
     { _urgProFileId :: !(Textual Int64)
     , _urgId        :: !(Textual Int64)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Int64 -- ^ 'urgId'
     -> UserRolesGet
 userRolesGet pUrgProFileId_ pUrgId_ =
-    UserRolesGet
+    UserRolesGet'
     { _urgProFileId = _Coerce # pUrgProFileId_
     , _urgId = _Coerce # pUrgId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest UserRolesGet where
         type Rs UserRolesGet = UserRole
-        requestClient UserRolesGet{..}
+        type Scopes UserRolesGet =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserRolesGet'{..}
           = go _urgProFileId _urgId (Just AltJSON)
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/Insert.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/Insert.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserRoles/Insert.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserRoles.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'UserRolesInsert' request conforms to.
 type UserRolesInsertResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "userRoles" :>
@@ -54,7 +54,7 @@
 -- | Inserts a new user role.
 --
 -- /See:/ 'userRolesInsert' smart constructor.
-data UserRolesInsert = UserRolesInsert
+data UserRolesInsert = UserRolesInsert'
     { _uriProFileId :: !(Textual Int64)
     , _uriPayload   :: !UserRole
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> UserRole -- ^ 'uriPayload'
     -> UserRolesInsert
 userRolesInsert pUriProFileId_ pUriPayload_ =
-    UserRolesInsert
+    UserRolesInsert'
     { _uriProFileId = _Coerce # pUriProFileId_
     , _uriPayload = pUriPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest UserRolesInsert where
         type Rs UserRolesInsert = UserRole
-        requestClient UserRolesInsert{..}
+        type Scopes UserRolesInsert =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserRolesInsert'{..}
           = go _uriProFileId (Just AltJSON) _uriPayload
               dFAReportingService
           where go
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/List.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/List.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserRoles/List.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserRoles.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -51,7 +51,7 @@
 -- 'UserRolesList' request conforms to.
 type UserRolesListResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "userRoles" :>
@@ -69,7 +69,7 @@
 -- | Retrieves a list of user roles, possibly filtered.
 --
 -- /See:/ 'userRolesList' smart constructor.
-data UserRolesList = UserRolesList
+data UserRolesList = UserRolesList'
     { _urlSearchString        :: !(Maybe Text)
     , _urlIds                 :: !(Maybe [Textual Int64])
     , _urlProFileId           :: !(Textual Int64)
@@ -106,7 +106,7 @@
     :: Int64 -- ^ 'urlProFileId'
     -> UserRolesList
 userRolesList pUrlProFileId_ =
-    UserRolesList
+    UserRolesList'
     { _urlSearchString = Nothing
     , _urlIds = Nothing
     , _urlProFileId = _Coerce # pUrlProFileId_
@@ -180,7 +180,9 @@
 
 instance GoogleRequest UserRolesList where
         type Rs UserRolesList = UserRolesListResponse
-        requestClient UserRolesList{..}
+        type Scopes UserRolesList =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserRolesList'{..}
           = go _urlProFileId _urlSearchString
               (_urlIds ^. _Default)
               _urlSortOrder
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/Patch.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/Patch.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserRoles/Patch.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserRoles.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -45,7 +45,7 @@
 -- 'UserRolesPatch' request conforms to.
 type UserRolesPatchResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "userRoles" :>
@@ -56,7 +56,7 @@
 -- | Updates an existing user role. This method supports patch semantics.
 --
 -- /See:/ 'userRolesPatch' smart constructor.
-data UserRolesPatch = UserRolesPatch
+data UserRolesPatch = UserRolesPatch'
     { _urpProFileId :: !(Textual Int64)
     , _urpPayload   :: !UserRole
     , _urpId        :: !(Textual Int64)
@@ -77,7 +77,7 @@
     -> Int64 -- ^ 'urpId'
     -> UserRolesPatch
 userRolesPatch pUrpProFileId_ pUrpPayload_ pUrpId_ =
-    UserRolesPatch
+    UserRolesPatch'
     { _urpProFileId = _Coerce # pUrpProFileId_
     , _urpPayload = pUrpPayload_
     , _urpId = _Coerce # pUrpId_
@@ -101,7 +101,9 @@
 
 instance GoogleRequest UserRolesPatch where
         type Rs UserRolesPatch = UserRole
-        requestClient UserRolesPatch{..}
+        type Scopes UserRolesPatch =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserRolesPatch'{..}
           = go _urpProFileId (Just _urpId) (Just AltJSON)
               _urpPayload
               dFAReportingService
diff --git a/gen/Network/Google/Resource/DFAReporting/UserRoles/Update.hs b/gen/Network/Google/Resource/DFAReporting/UserRoles/Update.hs
--- a/gen/Network/Google/Resource/DFAReporting/UserRoles/Update.hs
+++ b/gen/Network/Google/Resource/DFAReporting/UserRoles/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.DFAReporting.UserRoles.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -44,7 +44,7 @@
 -- 'UserRolesUpdate' request conforms to.
 type UserRolesUpdateResource =
      "dfareporting" :>
-       "v2.2" :>
+       "v2.5" :>
          "userprofiles" :>
            Capture "profileId" (Textual Int64) :>
              "userRoles" :>
@@ -54,7 +54,7 @@
 -- | Updates an existing user role.
 --
 -- /See:/ 'userRolesUpdate' smart constructor.
-data UserRolesUpdate = UserRolesUpdate
+data UserRolesUpdate = UserRolesUpdate'
     { _uruProFileId :: !(Textual Int64)
     , _uruPayload   :: !UserRole
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> UserRole -- ^ 'uruPayload'
     -> UserRolesUpdate
 userRolesUpdate pUruProFileId_ pUruPayload_ =
-    UserRolesUpdate
+    UserRolesUpdate'
     { _uruProFileId = _Coerce # pUruProFileId_
     , _uruPayload = pUruPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest UserRolesUpdate where
         type Rs UserRolesUpdate = UserRole
-        requestClient UserRolesUpdate{..}
+        type Scopes UserRolesUpdate =
+             '["https://www.googleapis.com/auth/dfatrafficking"]
+        requestClient UserRolesUpdate'{..}
           = go _uruProFileId (Just AltJSON) _uruPayload
               dFAReportingService
           where go
diff --git a/gogol-dfareporting.cabal b/gogol-dfareporting.cabal
--- a/gogol-dfareporting.cabal
+++ b/gogol-dfareporting.cabal
@@ -1,5 +1,5 @@
 name:                  gogol-dfareporting
-version:               0.0.1
+version:               0.1.0
 synopsis:              Google DCM/DFA Reporting And Trafficking SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -7,19 +7,19 @@
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2015 Brendan Hay
+copyright:             Copyright (c) 2015-2016 Brendan Hay
 category:              Network, Google, Cloud
 build-type:            Simple
 cabal-version:         >= 1.10
 extra-source-files:    README.md
 
 description:
-    Manage your DoubleClick Campaign Manager ad campaigns and reports.
+    Manages your DoubleClick Campaign Manager ad campaigns and reports.
     .
     /Warning:/ This is an experimental prototype/preview release which is still
     under exploratory development and not intended for public use, caveat emptor!
     .
-    This library is compatible with version @v2.2@
+    This library is compatible with version @v2.5@
     of the API.
 
 source-repository head
@@ -84,6 +84,7 @@
         , Network.Google.Resource.DFAReporting.ContentCategories.List
         , Network.Google.Resource.DFAReporting.ContentCategories.Patch
         , Network.Google.Resource.DFAReporting.ContentCategories.Update
+        , Network.Google.Resource.DFAReporting.Conversions.Batchinsert
         , Network.Google.Resource.DFAReporting.Countries.Get
         , Network.Google.Resource.DFAReporting.Countries.List
         , Network.Google.Resource.DFAReporting.CreativeAssets.Insert
@@ -115,6 +116,9 @@
         , Network.Google.Resource.DFAReporting.DirectorySites.Get
         , Network.Google.Resource.DFAReporting.DirectorySites.Insert
         , Network.Google.Resource.DFAReporting.DirectorySites.List
+        , Network.Google.Resource.DFAReporting.DynamicTargetingKeys.Delete
+        , Network.Google.Resource.DFAReporting.DynamicTargetingKeys.Insert
+        , Network.Google.Resource.DFAReporting.DynamicTargetingKeys.List
         , Network.Google.Resource.DFAReporting.EventTags.Delete
         , Network.Google.Resource.DFAReporting.EventTags.Get
         , Network.Google.Resource.DFAReporting.EventTags.Insert
@@ -130,7 +134,6 @@
         , Network.Google.Resource.DFAReporting.FloodlightActivities.List
         , Network.Google.Resource.DFAReporting.FloodlightActivities.Patch
         , Network.Google.Resource.DFAReporting.FloodlightActivities.Update
-        , Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Delete
         , Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Get
         , Network.Google.Resource.DFAReporting.FloodlightActivityGroups.Insert
         , Network.Google.Resource.DFAReporting.FloodlightActivityGroups.List
@@ -234,5 +237,5 @@
         , Network.Google.DFAReporting.Types.Sum
 
     build-depends:
-          gogol-core == 0.0.1.*
+          gogol-core == 0.1.0.*
         , base       >= 4.7 && < 5
