diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.3.0`
+`0.5.0`
 
 
 ## Description
diff --git a/gen/Network/Google/Analytics.hs b/gen/Network/Google/Analytics.hs
--- a/gen/Network/Google/Analytics.hs
+++ b/gen/Network/Google/Analytics.hs
@@ -763,7 +763,6 @@
     -- ** AccountTreeRequest
     , AccountTreeRequest
     , accountTreeRequest
-    , atrAccountSettings
     , atrWebPropertyName
     , atrKind
     , atrAccountName
@@ -947,7 +946,6 @@
     -- ** AccountTreeResponse
     , AccountTreeResponse
     , accountTreeResponse
-    , atrtAccountSettings
     , atrtKind
     , atrtProFile
     , atrtAccount
@@ -1090,14 +1088,6 @@
     , gedeciType
     , gedeciComparisonType
 
-    -- ** AccountTreeRequestAccountSettings
-    , AccountTreeRequestAccountSettings
-    , accountTreeRequestAccountSettings
-    , atrasShareWithSpeciaLists
-    , atrasShareWithSupport
-    , atrasShareAnonymouslyWithOthers
-    , atrasShareWithGoogleProducts
-
     -- ** McfDataQuery
     , McfDataQuery
     , mcfDataQuery
@@ -1249,14 +1239,6 @@
     , remarketingAudienceStateBasedAudienceDefinition
     , rasbadExcludeConditions
     , rasbadIncludeConditions
-
-    -- ** AccountTreeResponseAccountSettings
-    , AccountTreeResponseAccountSettings
-    , accountTreeResponseAccountSettings
-    , aShareWithSpeciaLists
-    , aShareWithSupport
-    , aShareAnonymouslyWithOthers
-    , aShareWithGoogleProducts
 
     -- ** GoalURLDestinationDetails
     , GoalURLDestinationDetails
diff --git a/gen/Network/Google/Analytics/Types.hs b/gen/Network/Google/Analytics/Types.hs
--- a/gen/Network/Google/Analytics/Types.hs
+++ b/gen/Network/Google/Analytics/Types.hs
@@ -490,7 +490,6 @@
     -- * AccountTreeRequest
     , AccountTreeRequest
     , accountTreeRequest
-    , atrAccountSettings
     , atrWebPropertyName
     , atrKind
     , atrAccountName
@@ -674,7 +673,6 @@
     -- * AccountTreeResponse
     , AccountTreeResponse
     , accountTreeResponse
-    , atrtAccountSettings
     , atrtKind
     , atrtProFile
     , atrtAccount
@@ -817,14 +815,6 @@
     , gedeciType
     , gedeciComparisonType
 
-    -- * AccountTreeRequestAccountSettings
-    , AccountTreeRequestAccountSettings
-    , accountTreeRequestAccountSettings
-    , atrasShareWithSpeciaLists
-    , atrasShareWithSupport
-    , atrasShareAnonymouslyWithOthers
-    , atrasShareWithGoogleProducts
-
     -- * McfDataQuery
     , McfDataQuery
     , mcfDataQuery
@@ -977,14 +967,6 @@
     , rasbadExcludeConditions
     , rasbadIncludeConditions
 
-    -- * AccountTreeResponseAccountSettings
-    , AccountTreeResponseAccountSettings
-    , accountTreeResponseAccountSettings
-    , aShareWithSpeciaLists
-    , aShareWithSupport
-    , aShareAnonymouslyWithOthers
-    , aShareWithGoogleProducts
-
     -- * GoalURLDestinationDetails
     , GoalURLDestinationDetails
     , goalURLDestinationDetails
@@ -1175,29 +1157,29 @@
 
 -- | Manage Google Analytics Account users by email address
 analyticsManageUsersScope :: Proxy '["https://www.googleapis.com/auth/analytics.manage.users"]
-analyticsManageUsersScope = Proxy;
+analyticsManageUsersScope = Proxy
 
 -- | Create a new Google Analytics account along with its default property
 -- and view
 analyticsProvisionScope :: Proxy '["https://www.googleapis.com/auth/analytics.provision"]
-analyticsProvisionScope = Proxy;
+analyticsProvisionScope = Proxy
 
 -- | View Google Analytics user permissions
 analyticsManageUsersReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/analytics.manage.users.readonly"]
-analyticsManageUsersReadOnlyScope = Proxy;
+analyticsManageUsersReadOnlyScope = Proxy
 
 -- | View and manage your Google Analytics data
 analyticsScope :: Proxy '["https://www.googleapis.com/auth/analytics"]
-analyticsScope = Proxy;
+analyticsScope = Proxy
 
 -- | View your Google Analytics data
 analyticsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/analytics.readonly"]
-analyticsReadOnlyScope = Proxy;
+analyticsReadOnlyScope = Proxy
 
 -- | Manage Google Analytics user deletion requests
 analyticsUserDeletionScope :: Proxy '["https://www.googleapis.com/auth/analytics.user.deletion"]
-analyticsUserDeletionScope = Proxy;
+analyticsUserDeletionScope = Proxy
 
 -- | Edit Google Analytics management entities
 analyticsEditScope :: Proxy '["https://www.googleapis.com/auth/analytics.edit"]
-analyticsEditScope = Proxy;
+analyticsEditScope = Proxy
diff --git a/gen/Network/Google/Analytics/Types/Product.hs b/gen/Network/Google/Analytics/Types/Product.hs
--- a/gen/Network/Google/Analytics/Types/Product.hs
+++ b/gen/Network/Google/Analytics/Types/Product.hs
@@ -23,10952 +23,11120 @@
 -- | JSON template for a user deletion request resource.
 --
 -- /See:/ 'userDeletionRequest' smart constructor.
-data UserDeletionRequest = UserDeletionRequest'
-    { _udrWebPropertyId       :: !(Maybe Text)
-    , _udrKind                :: !Text
-    , _udrId                  :: !(Maybe UserDeletionRequestId)
-    , _udrFirebaseProjectId   :: !(Maybe Text)
-    , _udrDeletionRequestTime :: !(Maybe DateTime')
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserDeletionRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'udrWebPropertyId'
---
--- * 'udrKind'
---
--- * 'udrId'
---
--- * 'udrFirebaseProjectId'
---
--- * 'udrDeletionRequestTime'
-userDeletionRequest
-    :: UserDeletionRequest
-userDeletionRequest =
-    UserDeletionRequest'
-    { _udrWebPropertyId = Nothing
-    , _udrKind = "analytics#userDeletionRequest"
-    , _udrId = Nothing
-    , _udrFirebaseProjectId = Nothing
-    , _udrDeletionRequestTime = Nothing
-    }
-
--- | Web property ID of the form UA-XXXXX-YY.
-udrWebPropertyId :: Lens' UserDeletionRequest (Maybe Text)
-udrWebPropertyId
-  = lens _udrWebPropertyId
-      (\ s a -> s{_udrWebPropertyId = a})
-
--- | Value is \"analytics#userDeletionRequest\".
-udrKind :: Lens' UserDeletionRequest Text
-udrKind = lens _udrKind (\ s a -> s{_udrKind = a})
-
--- | User ID.
-udrId :: Lens' UserDeletionRequest (Maybe UserDeletionRequestId)
-udrId = lens _udrId (\ s a -> s{_udrId = a})
-
--- | Firebase Project Id
-udrFirebaseProjectId :: Lens' UserDeletionRequest (Maybe Text)
-udrFirebaseProjectId
-  = lens _udrFirebaseProjectId
-      (\ s a -> s{_udrFirebaseProjectId = a})
-
--- | This marks the point in time for which all user data before should be
--- deleted
-udrDeletionRequestTime :: Lens' UserDeletionRequest (Maybe UTCTime)
-udrDeletionRequestTime
-  = lens _udrDeletionRequestTime
-      (\ s a -> s{_udrDeletionRequestTime = a})
-      . mapping _DateTime
-
-instance FromJSON UserDeletionRequest where
-        parseJSON
-          = withObject "UserDeletionRequest"
-              (\ o ->
-                 UserDeletionRequest' <$>
-                   (o .:? "webPropertyId") <*>
-                     (o .:? "kind" .!= "analytics#userDeletionRequest")
-                     <*> (o .:? "id")
-                     <*> (o .:? "firebaseProjectId")
-                     <*> (o .:? "deletionRequestTime"))
-
-instance ToJSON UserDeletionRequest where
-        toJSON UserDeletionRequest'{..}
-          = object
-              (catMaybes
-                 [("webPropertyId" .=) <$> _udrWebPropertyId,
-                  Just ("kind" .= _udrKind), ("id" .=) <$> _udrId,
-                  ("firebaseProjectId" .=) <$> _udrFirebaseProjectId,
-                  ("deletionRequestTime" .=) <$>
-                    _udrDeletionRequestTime])
-
--- | An unsampled report collection lists Analytics unsampled reports to
--- which the user has access. Each view (profile) can have a set of
--- unsampled reports. Each resource in the unsampled report collection
--- corresponds to a single Analytics unsampled report.
---
--- /See:/ 'unSampledReports' smart constructor.
-data UnSampledReports = UnSampledReports'
-    { _usrNextLink     :: !(Maybe Text)
-    , _usrItemsPerPage :: !(Maybe (Textual Int32))
-    , _usrKind         :: !Text
-    , _usrUsername     :: !(Maybe Text)
-    , _usrItems        :: !(Maybe [UnSampledReport])
-    , _usrTotalResults :: !(Maybe (Textual Int32))
-    , _usrStartIndex   :: !(Maybe (Textual Int32))
-    , _usrPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UnSampledReports' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'usrNextLink'
---
--- * 'usrItemsPerPage'
---
--- * 'usrKind'
---
--- * 'usrUsername'
---
--- * 'usrItems'
---
--- * 'usrTotalResults'
---
--- * 'usrStartIndex'
---
--- * 'usrPreviousLink'
-unSampledReports
-    :: UnSampledReports
-unSampledReports =
-    UnSampledReports'
-    { _usrNextLink = Nothing
-    , _usrItemsPerPage = Nothing
-    , _usrKind = "analytics#unsampledReports"
-    , _usrUsername = Nothing
-    , _usrItems = Nothing
-    , _usrTotalResults = Nothing
-    , _usrStartIndex = Nothing
-    , _usrPreviousLink = Nothing
-    }
-
--- | Link to next page for this unsampled report collection.
-usrNextLink :: Lens' UnSampledReports (Maybe Text)
-usrNextLink
-  = lens _usrNextLink (\ s a -> s{_usrNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-usrItemsPerPage :: Lens' UnSampledReports (Maybe Int32)
-usrItemsPerPage
-  = lens _usrItemsPerPage
-      (\ s a -> s{_usrItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-usrKind :: Lens' UnSampledReports Text
-usrKind = lens _usrKind (\ s a -> s{_usrKind = a})
-
--- | Email ID of the authenticated user
-usrUsername :: Lens' UnSampledReports (Maybe Text)
-usrUsername
-  = lens _usrUsername (\ s a -> s{_usrUsername = a})
-
--- | A list of unsampled reports.
-usrItems :: Lens' UnSampledReports [UnSampledReport]
-usrItems
-  = lens _usrItems (\ s a -> s{_usrItems = a}) .
-      _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- resources in the result.
-usrTotalResults :: Lens' UnSampledReports (Maybe Int32)
-usrTotalResults
-  = lens _usrTotalResults
-      (\ s a -> s{_usrTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-usrStartIndex :: Lens' UnSampledReports (Maybe Int32)
-usrStartIndex
-  = lens _usrStartIndex
-      (\ s a -> s{_usrStartIndex = a})
-      . mapping _Coerce
-
--- | Link to previous page for this unsampled report collection.
-usrPreviousLink :: Lens' UnSampledReports (Maybe Text)
-usrPreviousLink
-  = lens _usrPreviousLink
-      (\ s a -> s{_usrPreviousLink = a})
-
-instance FromJSON UnSampledReports where
-        parseJSON
-          = withObject "UnSampledReports"
-              (\ o ->
-                 UnSampledReports' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#unsampledReports")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON UnSampledReports where
-        toJSON UnSampledReports'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _usrNextLink,
-                  ("itemsPerPage" .=) <$> _usrItemsPerPage,
-                  Just ("kind" .= _usrKind),
-                  ("username" .=) <$> _usrUsername,
-                  ("items" .=) <$> _usrItems,
-                  ("totalResults" .=) <$> _usrTotalResults,
-                  ("startIndex" .=) <$> _usrStartIndex,
-                  ("previousLink" .=) <$> _usrPreviousLink])
-
---
--- /See:/ 'goalURLDestinationDetailsStepsItem' smart constructor.
-data GoalURLDestinationDetailsStepsItem = GoalURLDestinationDetailsStepsItem'
-    { _guddsiURL    :: !(Maybe Text)
-    , _guddsiName   :: !(Maybe Text)
-    , _guddsiNumber :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GoalURLDestinationDetailsStepsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'guddsiURL'
---
--- * 'guddsiName'
---
--- * 'guddsiNumber'
-goalURLDestinationDetailsStepsItem
-    :: GoalURLDestinationDetailsStepsItem
-goalURLDestinationDetailsStepsItem =
-    GoalURLDestinationDetailsStepsItem'
-    { _guddsiURL = Nothing
-    , _guddsiName = Nothing
-    , _guddsiNumber = Nothing
-    }
-
--- | URL for this step.
-guddsiURL :: Lens' GoalURLDestinationDetailsStepsItem (Maybe Text)
-guddsiURL
-  = lens _guddsiURL (\ s a -> s{_guddsiURL = a})
-
--- | Step name.
-guddsiName :: Lens' GoalURLDestinationDetailsStepsItem (Maybe Text)
-guddsiName
-  = lens _guddsiName (\ s a -> s{_guddsiName = a})
-
--- | Step number.
-guddsiNumber :: Lens' GoalURLDestinationDetailsStepsItem (Maybe Int32)
-guddsiNumber
-  = lens _guddsiNumber (\ s a -> s{_guddsiNumber = a})
-      . mapping _Coerce
-
-instance FromJSON GoalURLDestinationDetailsStepsItem
-         where
-        parseJSON
-          = withObject "GoalURLDestinationDetailsStepsItem"
-              (\ o ->
-                 GoalURLDestinationDetailsStepsItem' <$>
-                   (o .:? "url") <*> (o .:? "name") <*>
-                     (o .:? "number"))
-
-instance ToJSON GoalURLDestinationDetailsStepsItem
-         where
-        toJSON GoalURLDestinationDetailsStepsItem'{..}
-          = object
-              (catMaybes
-                 [("url" .=) <$> _guddsiURL,
-                  ("name" .=) <$> _guddsiName,
-                  ("number" .=) <$> _guddsiNumber])
-
--- | Analytics data request query parameters.
---
--- /See:/ 'gaDataQuery' smart constructor.
-data GaDataQuery = GaDataQuery'
-    { _gdqMetrics       :: !(Maybe [Text])
-    , _gdqSamplingLevel :: !(Maybe Text)
-    , _gdqFilters       :: !(Maybe Text)
-    , _gdqIds           :: !(Maybe Text)
-    , _gdqEndDate       :: !(Maybe Text)
-    , _gdqSort          :: !(Maybe [Text])
-    , _gdqDimensions    :: !(Maybe Text)
-    , _gdqStartIndex    :: !(Maybe (Textual Int32))
-    , _gdqMaxResults    :: !(Maybe (Textual Int32))
-    , _gdqSegment       :: !(Maybe Text)
-    , _gdqStartDate     :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GaDataQuery' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gdqMetrics'
---
--- * 'gdqSamplingLevel'
---
--- * 'gdqFilters'
---
--- * 'gdqIds'
---
--- * 'gdqEndDate'
---
--- * 'gdqSort'
---
--- * 'gdqDimensions'
---
--- * 'gdqStartIndex'
---
--- * 'gdqMaxResults'
---
--- * 'gdqSegment'
---
--- * 'gdqStartDate'
-gaDataQuery
-    :: GaDataQuery
-gaDataQuery =
-    GaDataQuery'
-    { _gdqMetrics = Nothing
-    , _gdqSamplingLevel = Nothing
-    , _gdqFilters = Nothing
-    , _gdqIds = Nothing
-    , _gdqEndDate = Nothing
-    , _gdqSort = Nothing
-    , _gdqDimensions = Nothing
-    , _gdqStartIndex = Nothing
-    , _gdqMaxResults = Nothing
-    , _gdqSegment = Nothing
-    , _gdqStartDate = Nothing
-    }
-
--- | List of analytics metrics.
-gdqMetrics :: Lens' GaDataQuery [Text]
-gdqMetrics
-  = lens _gdqMetrics (\ s a -> s{_gdqMetrics = a}) .
-      _Default
-      . _Coerce
-
--- | Desired sampling level
-gdqSamplingLevel :: Lens' GaDataQuery (Maybe Text)
-gdqSamplingLevel
-  = lens _gdqSamplingLevel
-      (\ s a -> s{_gdqSamplingLevel = a})
-
--- | Comma-separated list of dimension or metric filters.
-gdqFilters :: Lens' GaDataQuery (Maybe Text)
-gdqFilters
-  = lens _gdqFilters (\ s a -> s{_gdqFilters = a})
-
--- | Unique table ID.
-gdqIds :: Lens' GaDataQuery (Maybe Text)
-gdqIds = lens _gdqIds (\ s a -> s{_gdqIds = a})
-
--- | End date.
-gdqEndDate :: Lens' GaDataQuery (Maybe Text)
-gdqEndDate
-  = lens _gdqEndDate (\ s a -> s{_gdqEndDate = a})
-
--- | List of dimensions or metrics based on which Analytics data is sorted.
-gdqSort :: Lens' GaDataQuery [Text]
-gdqSort
-  = lens _gdqSort (\ s a -> s{_gdqSort = a}) . _Default
-      . _Coerce
-
--- | List of analytics dimensions.
-gdqDimensions :: Lens' GaDataQuery (Maybe Text)
-gdqDimensions
-  = lens _gdqDimensions
-      (\ s a -> s{_gdqDimensions = a})
-
--- | Start index.
-gdqStartIndex :: Lens' GaDataQuery (Maybe Int32)
-gdqStartIndex
-  = lens _gdqStartIndex
-      (\ s a -> s{_gdqStartIndex = a})
-      . mapping _Coerce
-
--- | Maximum results per page.
-gdqMaxResults :: Lens' GaDataQuery (Maybe Int32)
-gdqMaxResults
-  = lens _gdqMaxResults
-      (\ s a -> s{_gdqMaxResults = a})
-      . mapping _Coerce
-
--- | Analytics advanced segment.
-gdqSegment :: Lens' GaDataQuery (Maybe Text)
-gdqSegment
-  = lens _gdqSegment (\ s a -> s{_gdqSegment = a})
-
--- | Start date.
-gdqStartDate :: Lens' GaDataQuery (Maybe Text)
-gdqStartDate
-  = lens _gdqStartDate (\ s a -> s{_gdqStartDate = a})
-
-instance FromJSON GaDataQuery where
-        parseJSON
-          = withObject "GaDataQuery"
-              (\ o ->
-                 GaDataQuery' <$>
-                   (o .:? "metrics" .!= mempty) <*>
-                     (o .:? "samplingLevel")
-                     <*> (o .:? "filters")
-                     <*> (o .:? "ids")
-                     <*> (o .:? "end-date")
-                     <*> (o .:? "sort" .!= mempty)
-                     <*> (o .:? "dimensions")
-                     <*> (o .:? "start-index")
-                     <*> (o .:? "max-results")
-                     <*> (o .:? "segment")
-                     <*> (o .:? "start-date"))
-
-instance ToJSON GaDataQuery where
-        toJSON GaDataQuery'{..}
-          = object
-              (catMaybes
-                 [("metrics" .=) <$> _gdqMetrics,
-                  ("samplingLevel" .=) <$> _gdqSamplingLevel,
-                  ("filters" .=) <$> _gdqFilters,
-                  ("ids" .=) <$> _gdqIds,
-                  ("end-date" .=) <$> _gdqEndDate,
-                  ("sort" .=) <$> _gdqSort,
-                  ("dimensions" .=) <$> _gdqDimensions,
-                  ("start-index" .=) <$> _gdqStartIndex,
-                  ("max-results" .=) <$> _gdqMaxResults,
-                  ("segment" .=) <$> _gdqSegment,
-                  ("start-date" .=) <$> _gdqStartDate])
-
--- | A remarketing audience collection lists Analytics remarketing audiences
--- to which the user has access. Each resource in the collection
--- corresponds to a single Analytics remarketing audience.
---
--- /See:/ 'remarketingAudiences' smart constructor.
-data RemarketingAudiences = RemarketingAudiences'
-    { _raNextLink     :: !(Maybe Text)
-    , _raItemsPerPage :: !(Maybe (Textual Int32))
-    , _raKind         :: !Text
-    , _raUsername     :: !(Maybe Text)
-    , _raItems        :: !(Maybe [RemarketingAudience])
-    , _raTotalResults :: !(Maybe (Textual Int32))
-    , _raStartIndex   :: !(Maybe (Textual Int32))
-    , _raPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RemarketingAudiences' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'raNextLink'
---
--- * 'raItemsPerPage'
---
--- * 'raKind'
---
--- * 'raUsername'
---
--- * 'raItems'
---
--- * 'raTotalResults'
---
--- * 'raStartIndex'
---
--- * 'raPreviousLink'
-remarketingAudiences
-    :: RemarketingAudiences
-remarketingAudiences =
-    RemarketingAudiences'
-    { _raNextLink = Nothing
-    , _raItemsPerPage = Nothing
-    , _raKind = "analytics#remarketingAudiences"
-    , _raUsername = Nothing
-    , _raItems = Nothing
-    , _raTotalResults = Nothing
-    , _raStartIndex = Nothing
-    , _raPreviousLink = Nothing
-    }
-
--- | Link to next page for this remarketing audience collection.
-raNextLink :: Lens' RemarketingAudiences (Maybe Text)
-raNextLink
-  = lens _raNextLink (\ s a -> s{_raNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-raItemsPerPage :: Lens' RemarketingAudiences (Maybe Int32)
-raItemsPerPage
-  = lens _raItemsPerPage
-      (\ s a -> s{_raItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-raKind :: Lens' RemarketingAudiences Text
-raKind = lens _raKind (\ s a -> s{_raKind = a})
-
--- | Email ID of the authenticated user
-raUsername :: Lens' RemarketingAudiences (Maybe Text)
-raUsername
-  = lens _raUsername (\ s a -> s{_raUsername = a})
-
--- | A list of remarketing audiences.
-raItems :: Lens' RemarketingAudiences [RemarketingAudience]
-raItems
-  = lens _raItems (\ s a -> s{_raItems = a}) . _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-raTotalResults :: Lens' RemarketingAudiences (Maybe Int32)
-raTotalResults
-  = lens _raTotalResults
-      (\ s a -> s{_raTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-raStartIndex :: Lens' RemarketingAudiences (Maybe Int32)
-raStartIndex
-  = lens _raStartIndex (\ s a -> s{_raStartIndex = a})
-      . mapping _Coerce
-
--- | Link to previous page for this view (profile) collection.
-raPreviousLink :: Lens' RemarketingAudiences (Maybe Text)
-raPreviousLink
-  = lens _raPreviousLink
-      (\ s a -> s{_raPreviousLink = a})
-
-instance FromJSON RemarketingAudiences where
-        parseJSON
-          = withObject "RemarketingAudiences"
-              (\ o ->
-                 RemarketingAudiences' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#remarketingAudiences")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON RemarketingAudiences where
-        toJSON RemarketingAudiences'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _raNextLink,
-                  ("itemsPerPage" .=) <$> _raItemsPerPage,
-                  Just ("kind" .= _raKind),
-                  ("username" .=) <$> _raUsername,
-                  ("items" .=) <$> _raItems,
-                  ("totalResults" .=) <$> _raTotalResults,
-                  ("startIndex" .=) <$> _raStartIndex,
-                  ("previousLink" .=) <$> _raPreviousLink])
-
---
--- /See:/ 'gaDataDataTableRowsItem' smart constructor.
-newtype GaDataDataTableRowsItem = GaDataDataTableRowsItem'
-    { _gddtriC :: Maybe [GaDataDataTableRowsItemCItem]
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GaDataDataTableRowsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gddtriC'
-gaDataDataTableRowsItem
-    :: GaDataDataTableRowsItem
-gaDataDataTableRowsItem =
-    GaDataDataTableRowsItem'
-    { _gddtriC = Nothing
-    }
-
-gddtriC :: Lens' GaDataDataTableRowsItem [GaDataDataTableRowsItemCItem]
-gddtriC
-  = lens _gddtriC (\ s a -> s{_gddtriC = a}) . _Default
-      . _Coerce
-
-instance FromJSON GaDataDataTableRowsItem where
-        parseJSON
-          = withObject "GaDataDataTableRowsItem"
-              (\ o ->
-                 GaDataDataTableRowsItem' <$> (o .:? "c" .!= mempty))
-
-instance ToJSON GaDataDataTableRowsItem where
-        toJSON GaDataDataTableRowsItem'{..}
-          = object (catMaybes [("c" .=) <$> _gddtriC])
-
--- | JSON template for Analytics unsampled report resource.
---
--- /See:/ 'unSampledReport' smart constructor.
-data UnSampledReport = UnSampledReport'
-    { _uDownloadType                :: !(Maybe Text)
-    , _uStatus                      :: !(Maybe Text)
-    , _uMetrics                     :: !(Maybe Text)
-    , _uDriveDownloadDetails        :: !(Maybe UnSampledReportDriveDownloadDetails)
-    , _uWebPropertyId               :: !(Maybe Text)
-    , _uKind                        :: !Text
-    , _uCreated                     :: !(Maybe DateTime')
-    , _uFilters                     :: !(Maybe Text)
-    , _uProFileId                   :: !(Maybe Text)
-    , _uEndDate                     :: !(Maybe Text)
-    , _uSelfLink                    :: !(Maybe Text)
-    , _uAccountId                   :: !(Maybe Text)
-    , _uId                          :: !(Maybe Text)
-    , _uUpdated                     :: !(Maybe DateTime')
-    , _uTitle                       :: !(Maybe Text)
-    , _uDimensions                  :: !(Maybe Text)
-    , _uSegment                     :: !(Maybe Text)
-    , _uCloudStorageDownloadDetails :: !(Maybe UnSampledReportCloudStorageDownloadDetails)
-    , _uStartDate                   :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UnSampledReport' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uDownloadType'
---
--- * 'uStatus'
---
--- * 'uMetrics'
---
--- * 'uDriveDownloadDetails'
---
--- * 'uWebPropertyId'
---
--- * 'uKind'
---
--- * 'uCreated'
---
--- * 'uFilters'
---
--- * 'uProFileId'
---
--- * 'uEndDate'
---
--- * 'uSelfLink'
---
--- * 'uAccountId'
---
--- * 'uId'
---
--- * 'uUpdated'
---
--- * 'uTitle'
---
--- * 'uDimensions'
---
--- * 'uSegment'
---
--- * 'uCloudStorageDownloadDetails'
---
--- * 'uStartDate'
-unSampledReport
-    :: UnSampledReport
-unSampledReport =
-    UnSampledReport'
-    { _uDownloadType = Nothing
-    , _uStatus = Nothing
-    , _uMetrics = Nothing
-    , _uDriveDownloadDetails = Nothing
-    , _uWebPropertyId = Nothing
-    , _uKind = "analytics#unsampledReport"
-    , _uCreated = Nothing
-    , _uFilters = Nothing
-    , _uProFileId = Nothing
-    , _uEndDate = Nothing
-    , _uSelfLink = Nothing
-    , _uAccountId = Nothing
-    , _uId = Nothing
-    , _uUpdated = Nothing
-    , _uTitle = Nothing
-    , _uDimensions = Nothing
-    , _uSegment = Nothing
-    , _uCloudStorageDownloadDetails = Nothing
-    , _uStartDate = Nothing
-    }
-
--- | The type of download you need to use for the report data file. Possible
--- values include \`GOOGLE_DRIVE\` and \`GOOGLE_CLOUD_STORAGE\`. If the
--- value is \`GOOGLE_DRIVE\`, see the \`driveDownloadDetails\` field. If
--- the value is \`GOOGLE_CLOUD_STORAGE\`, see the
--- \`cloudStorageDownloadDetails\` field.
-uDownloadType :: Lens' UnSampledReport (Maybe Text)
-uDownloadType
-  = lens _uDownloadType
-      (\ s a -> s{_uDownloadType = a})
-
--- | Status of this unsampled report. Possible values are PENDING, COMPLETED,
--- or FAILED.
-uStatus :: Lens' UnSampledReport (Maybe Text)
-uStatus = lens _uStatus (\ s a -> s{_uStatus = a})
-
--- | The metrics for the unsampled report.
-uMetrics :: Lens' UnSampledReport (Maybe Text)
-uMetrics = lens _uMetrics (\ s a -> s{_uMetrics = a})
-
--- | Download details for a file stored in Google Drive.
-uDriveDownloadDetails :: Lens' UnSampledReport (Maybe UnSampledReportDriveDownloadDetails)
-uDriveDownloadDetails
-  = lens _uDriveDownloadDetails
-      (\ s a -> s{_uDriveDownloadDetails = a})
-
--- | Web property ID to which this unsampled report belongs. The web property
--- ID is of the form UA-XXXXX-YY.
-uWebPropertyId :: Lens' UnSampledReport (Maybe Text)
-uWebPropertyId
-  = lens _uWebPropertyId
-      (\ s a -> s{_uWebPropertyId = a})
-
--- | Resource type for an Analytics unsampled report.
-uKind :: Lens' UnSampledReport Text
-uKind = lens _uKind (\ s a -> s{_uKind = a})
-
--- | Time this unsampled report was created.
-uCreated :: Lens' UnSampledReport (Maybe UTCTime)
-uCreated
-  = lens _uCreated (\ s a -> s{_uCreated = a}) .
-      mapping _DateTime
-
--- | The filters for the unsampled report.
-uFilters :: Lens' UnSampledReport (Maybe Text)
-uFilters = lens _uFilters (\ s a -> s{_uFilters = a})
-
--- | View (Profile) ID to which this unsampled report belongs.
-uProFileId :: Lens' UnSampledReport (Maybe Text)
-uProFileId
-  = lens _uProFileId (\ s a -> s{_uProFileId = a})
-
--- | The end date for the unsampled report.
-uEndDate :: Lens' UnSampledReport (Maybe Text)
-uEndDate = lens _uEndDate (\ s a -> s{_uEndDate = a})
-
--- | Link for this unsampled report.
-uSelfLink :: Lens' UnSampledReport (Maybe Text)
-uSelfLink
-  = lens _uSelfLink (\ s a -> s{_uSelfLink = a})
-
--- | Account ID to which this unsampled report belongs.
-uAccountId :: Lens' UnSampledReport (Maybe Text)
-uAccountId
-  = lens _uAccountId (\ s a -> s{_uAccountId = a})
-
--- | Unsampled report ID.
-uId :: Lens' UnSampledReport (Maybe Text)
-uId = lens _uId (\ s a -> s{_uId = a})
-
--- | Time this unsampled report was last modified.
-uUpdated :: Lens' UnSampledReport (Maybe UTCTime)
-uUpdated
-  = lens _uUpdated (\ s a -> s{_uUpdated = a}) .
-      mapping _DateTime
-
--- | Title of the unsampled report.
-uTitle :: Lens' UnSampledReport (Maybe Text)
-uTitle = lens _uTitle (\ s a -> s{_uTitle = a})
-
--- | The dimensions for the unsampled report.
-uDimensions :: Lens' UnSampledReport (Maybe Text)
-uDimensions
-  = lens _uDimensions (\ s a -> s{_uDimensions = a})
-
--- | The segment for the unsampled report.
-uSegment :: Lens' UnSampledReport (Maybe Text)
-uSegment = lens _uSegment (\ s a -> s{_uSegment = a})
-
--- | Download details for a file stored in Google Cloud Storage.
-uCloudStorageDownloadDetails :: Lens' UnSampledReport (Maybe UnSampledReportCloudStorageDownloadDetails)
-uCloudStorageDownloadDetails
-  = lens _uCloudStorageDownloadDetails
-      (\ s a -> s{_uCloudStorageDownloadDetails = a})
-
--- | The start date for the unsampled report.
-uStartDate :: Lens' UnSampledReport (Maybe Text)
-uStartDate
-  = lens _uStartDate (\ s a -> s{_uStartDate = a})
-
-instance FromJSON UnSampledReport where
-        parseJSON
-          = withObject "UnSampledReport"
-              (\ o ->
-                 UnSampledReport' <$>
-                   (o .:? "downloadType") <*> (o .:? "status") <*>
-                     (o .:? "metrics")
-                     <*> (o .:? "driveDownloadDetails")
-                     <*> (o .:? "webPropertyId")
-                     <*> (o .:? "kind" .!= "analytics#unsampledReport")
-                     <*> (o .:? "created")
-                     <*> (o .:? "filters")
-                     <*> (o .:? "profileId")
-                     <*> (o .:? "end-date")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "title")
-                     <*> (o .:? "dimensions")
-                     <*> (o .:? "segment")
-                     <*> (o .:? "cloudStorageDownloadDetails")
-                     <*> (o .:? "start-date"))
-
-instance ToJSON UnSampledReport where
-        toJSON UnSampledReport'{..}
-          = object
-              (catMaybes
-                 [("downloadType" .=) <$> _uDownloadType,
-                  ("status" .=) <$> _uStatus,
-                  ("metrics" .=) <$> _uMetrics,
-                  ("driveDownloadDetails" .=) <$>
-                    _uDriveDownloadDetails,
-                  ("webPropertyId" .=) <$> _uWebPropertyId,
-                  Just ("kind" .= _uKind),
-                  ("created" .=) <$> _uCreated,
-                  ("filters" .=) <$> _uFilters,
-                  ("profileId" .=) <$> _uProFileId,
-                  ("end-date" .=) <$> _uEndDate,
-                  ("selfLink" .=) <$> _uSelfLink,
-                  ("accountId" .=) <$> _uAccountId, ("id" .=) <$> _uId,
-                  ("updated" .=) <$> _uUpdated,
-                  ("title" .=) <$> _uTitle,
-                  ("dimensions" .=) <$> _uDimensions,
-                  ("segment" .=) <$> _uSegment,
-                  ("cloudStorageDownloadDetails" .=) <$>
-                    _uCloudStorageDownloadDetails,
-                  ("start-date" .=) <$> _uStartDate])
-
---
--- /See:/ 'mcfDataColumnHeadersItem' smart constructor.
-data McfDataColumnHeadersItem = McfDataColumnHeadersItem'
-    { _mdchiColumnType :: !(Maybe Text)
-    , _mdchiName       :: !(Maybe Text)
-    , _mdchiDataType   :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'McfDataColumnHeadersItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mdchiColumnType'
---
--- * 'mdchiName'
---
--- * 'mdchiDataType'
-mcfDataColumnHeadersItem
-    :: McfDataColumnHeadersItem
-mcfDataColumnHeadersItem =
-    McfDataColumnHeadersItem'
-    { _mdchiColumnType = Nothing
-    , _mdchiName = Nothing
-    , _mdchiDataType = Nothing
-    }
-
--- | Column Type. Either DIMENSION or METRIC.
-mdchiColumnType :: Lens' McfDataColumnHeadersItem (Maybe Text)
-mdchiColumnType
-  = lens _mdchiColumnType
-      (\ s a -> s{_mdchiColumnType = a})
-
--- | Column name.
-mdchiName :: Lens' McfDataColumnHeadersItem (Maybe Text)
-mdchiName
-  = lens _mdchiName (\ s a -> s{_mdchiName = a})
-
--- | Data type. Dimension and metric values data types such as INTEGER,
--- DOUBLE, CURRENCY, MCF_SEQUENCE etc.
-mdchiDataType :: Lens' McfDataColumnHeadersItem (Maybe Text)
-mdchiDataType
-  = lens _mdchiDataType
-      (\ s a -> s{_mdchiDataType = a})
-
-instance FromJSON McfDataColumnHeadersItem where
-        parseJSON
-          = withObject "McfDataColumnHeadersItem"
-              (\ o ->
-                 McfDataColumnHeadersItem' <$>
-                   (o .:? "columnType") <*> (o .:? "name") <*>
-                     (o .:? "dataType"))
-
-instance ToJSON McfDataColumnHeadersItem where
-        toJSON McfDataColumnHeadersItem'{..}
-          = object
-              (catMaybes
-                 [("columnType" .=) <$> _mdchiColumnType,
-                  ("name" .=) <$> _mdchiName,
-                  ("dataType" .=) <$> _mdchiDataType])
-
--- | Total values for the requested metrics over all the results, not just
--- the results returned in this response. The order of the metric totals is
--- same as the metric order specified in the request.
---
--- /See:/ 'gaDataTotalsForAllResults' smart constructor.
-newtype GaDataTotalsForAllResults = GaDataTotalsForAllResults'
-    { _gdtfarAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GaDataTotalsForAllResults' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gdtfarAddtional'
-gaDataTotalsForAllResults
-    :: HashMap Text Text -- ^ 'gdtfarAddtional'
-    -> GaDataTotalsForAllResults
-gaDataTotalsForAllResults pGdtfarAddtional_ =
-    GaDataTotalsForAllResults'
-    { _gdtfarAddtional = _Coerce # pGdtfarAddtional_
-    }
-
--- | Key-value pair for the total value of a metric. Key is the metric name
--- and the value is the total value for that metric.
-gdtfarAddtional :: Lens' GaDataTotalsForAllResults (HashMap Text Text)
-gdtfarAddtional
-  = lens _gdtfarAddtional
-      (\ s a -> s{_gdtfarAddtional = a})
-      . _Coerce
-
-instance FromJSON GaDataTotalsForAllResults where
-        parseJSON
-          = withObject "GaDataTotalsForAllResults"
-              (\ o ->
-                 GaDataTotalsForAllResults' <$> (parseJSONObject o))
-
-instance ToJSON GaDataTotalsForAllResults where
-        toJSON = toJSON . _gdtfarAddtional
-
--- | Parent link for this view (profile). Points to the web property to which
--- this view (profile) belongs.
---
--- /See:/ 'proFileParentLink' smart constructor.
-data ProFileParentLink = ProFileParentLink'
-    { _pfplHref :: !(Maybe Text)
-    , _pfplType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ProFileParentLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pfplHref'
---
--- * 'pfplType'
-proFileParentLink
-    :: ProFileParentLink
-proFileParentLink =
-    ProFileParentLink'
-    { _pfplHref = Nothing
-    , _pfplType = "analytics#webproperty"
-    }
-
--- | Link to the web property to which this view (profile) belongs.
-pfplHref :: Lens' ProFileParentLink (Maybe Text)
-pfplHref = lens _pfplHref (\ s a -> s{_pfplHref = a})
-
--- | Value is \"analytics#webproperty\".
-pfplType :: Lens' ProFileParentLink Text
-pfplType = lens _pfplType (\ s a -> s{_pfplType = a})
-
-instance FromJSON ProFileParentLink where
-        parseJSON
-          = withObject "ProFileParentLink"
-              (\ o ->
-                 ProFileParentLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#webproperty"))
-
-instance ToJSON ProFileParentLink where
-        toJSON ProFileParentLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _pfplHref,
-                  Just ("type" .= _pfplType)])
-
--- | JSON template for an Analytics remarketing audience.
---
--- /See:/ 'remarketingAudience' smart constructor.
-data RemarketingAudience = RemarketingAudience'
-    { _rWebPropertyId                :: !(Maybe Text)
-    , _rKind                         :: !Text
-    , _rCreated                      :: !(Maybe DateTime')
-    , _rLinkedAdAccounts             :: !(Maybe [LinkedForeignAccount])
-    , _rAudienceDefinition           :: !(Maybe RemarketingAudienceAudienceDefinition)
-    , _rAudienceType                 :: !(Maybe Text)
-    , _rAccountId                    :: !(Maybe Text)
-    , _rName                         :: !(Maybe Text)
-    , _rStateBasedAudienceDefinition :: !(Maybe RemarketingAudienceStateBasedAudienceDefinition)
-    , _rLinkedViews                  :: !(Maybe [Text])
-    , _rInternalWebPropertyId        :: !(Maybe Text)
-    , _rId                           :: !(Maybe Text)
-    , _rUpdated                      :: !(Maybe DateTime')
-    , _rDescription                  :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RemarketingAudience' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rWebPropertyId'
---
--- * 'rKind'
---
--- * 'rCreated'
---
--- * 'rLinkedAdAccounts'
---
--- * 'rAudienceDefinition'
---
--- * 'rAudienceType'
---
--- * 'rAccountId'
---
--- * 'rName'
---
--- * 'rStateBasedAudienceDefinition'
---
--- * 'rLinkedViews'
---
--- * 'rInternalWebPropertyId'
---
--- * 'rId'
---
--- * 'rUpdated'
---
--- * 'rDescription'
-remarketingAudience
-    :: RemarketingAudience
-remarketingAudience =
-    RemarketingAudience'
-    { _rWebPropertyId = Nothing
-    , _rKind = "analytics#remarketingAudience"
-    , _rCreated = Nothing
-    , _rLinkedAdAccounts = Nothing
-    , _rAudienceDefinition = Nothing
-    , _rAudienceType = Nothing
-    , _rAccountId = Nothing
-    , _rName = Nothing
-    , _rStateBasedAudienceDefinition = Nothing
-    , _rLinkedViews = Nothing
-    , _rInternalWebPropertyId = Nothing
-    , _rId = Nothing
-    , _rUpdated = Nothing
-    , _rDescription = Nothing
-    }
-
--- | Web property ID of the form UA-XXXXX-YY to which this remarketing
--- audience belongs.
-rWebPropertyId :: Lens' RemarketingAudience (Maybe Text)
-rWebPropertyId
-  = lens _rWebPropertyId
-      (\ s a -> s{_rWebPropertyId = a})
-
--- | Collection type.
-rKind :: Lens' RemarketingAudience Text
-rKind = lens _rKind (\ s a -> s{_rKind = a})
-
--- | Time this remarketing audience was created.
-rCreated :: Lens' RemarketingAudience (Maybe UTCTime)
-rCreated
-  = lens _rCreated (\ s a -> s{_rCreated = a}) .
-      mapping _DateTime
-
--- | The linked ad accounts associated with this remarketing audience. A
--- remarketing audience can have only one linkedAdAccount currently.
-rLinkedAdAccounts :: Lens' RemarketingAudience [LinkedForeignAccount]
-rLinkedAdAccounts
-  = lens _rLinkedAdAccounts
-      (\ s a -> s{_rLinkedAdAccounts = a})
-      . _Default
-      . _Coerce
-
--- | The simple audience definition that will cause a user to be added to an
--- audience.
-rAudienceDefinition :: Lens' RemarketingAudience (Maybe RemarketingAudienceAudienceDefinition)
-rAudienceDefinition
-  = lens _rAudienceDefinition
-      (\ s a -> s{_rAudienceDefinition = a})
-
--- | The type of audience, either SIMPLE or STATE_BASED.
-rAudienceType :: Lens' RemarketingAudience (Maybe Text)
-rAudienceType
-  = lens _rAudienceType
-      (\ s a -> s{_rAudienceType = a})
-
--- | Account ID to which this remarketing audience belongs.
-rAccountId :: Lens' RemarketingAudience (Maybe Text)
-rAccountId
-  = lens _rAccountId (\ s a -> s{_rAccountId = a})
-
--- | The name of this remarketing audience.
-rName :: Lens' RemarketingAudience (Maybe Text)
-rName = lens _rName (\ s a -> s{_rName = a})
-
--- | A state based audience definition that will cause a user to be added or
--- removed from an audience.
-rStateBasedAudienceDefinition :: Lens' RemarketingAudience (Maybe RemarketingAudienceStateBasedAudienceDefinition)
-rStateBasedAudienceDefinition
-  = lens _rStateBasedAudienceDefinition
-      (\ s a -> s{_rStateBasedAudienceDefinition = a})
-
--- | The views (profiles) that this remarketing audience is linked to.
-rLinkedViews :: Lens' RemarketingAudience [Text]
-rLinkedViews
-  = lens _rLinkedViews (\ s a -> s{_rLinkedViews = a})
-      . _Default
-      . _Coerce
-
--- | Internal ID for the web property to which this remarketing audience
--- belongs.
-rInternalWebPropertyId :: Lens' RemarketingAudience (Maybe Text)
-rInternalWebPropertyId
-  = lens _rInternalWebPropertyId
-      (\ s a -> s{_rInternalWebPropertyId = a})
-
--- | Remarketing Audience ID.
-rId :: Lens' RemarketingAudience (Maybe Text)
-rId = lens _rId (\ s a -> s{_rId = a})
-
--- | Time this remarketing audience was last modified.
-rUpdated :: Lens' RemarketingAudience (Maybe UTCTime)
-rUpdated
-  = lens _rUpdated (\ s a -> s{_rUpdated = a}) .
-      mapping _DateTime
-
--- | The description of this remarketing audience.
-rDescription :: Lens' RemarketingAudience (Maybe Text)
-rDescription
-  = lens _rDescription (\ s a -> s{_rDescription = a})
-
-instance FromJSON RemarketingAudience where
-        parseJSON
-          = withObject "RemarketingAudience"
-              (\ o ->
-                 RemarketingAudience' <$>
-                   (o .:? "webPropertyId") <*>
-                     (o .:? "kind" .!= "analytics#remarketingAudience")
-                     <*> (o .:? "created")
-                     <*> (o .:? "linkedAdAccounts" .!= mempty)
-                     <*> (o .:? "audienceDefinition")
-                     <*> (o .:? "audienceType")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "stateBasedAudienceDefinition")
-                     <*> (o .:? "linkedViews" .!= mempty)
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "description"))
-
-instance ToJSON RemarketingAudience where
-        toJSON RemarketingAudience'{..}
-          = object
-              (catMaybes
-                 [("webPropertyId" .=) <$> _rWebPropertyId,
-                  Just ("kind" .= _rKind),
-                  ("created" .=) <$> _rCreated,
-                  ("linkedAdAccounts" .=) <$> _rLinkedAdAccounts,
-                  ("audienceDefinition" .=) <$> _rAudienceDefinition,
-                  ("audienceType" .=) <$> _rAudienceType,
-                  ("accountId" .=) <$> _rAccountId,
-                  ("name" .=) <$> _rName,
-                  ("stateBasedAudienceDefinition" .=) <$>
-                    _rStateBasedAudienceDefinition,
-                  ("linkedViews" .=) <$> _rLinkedViews,
-                  ("internalWebPropertyId" .=) <$>
-                    _rInternalWebPropertyId,
-                  ("id" .=) <$> _rId, ("updated" .=) <$> _rUpdated,
-                  ("description" .=) <$> _rDescription])
-
---
--- /See:/ 'gaDataDataTableRowsItemCItem' smart constructor.
-newtype GaDataDataTableRowsItemCItem = GaDataDataTableRowsItemCItem'
-    { _gddtriciV :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GaDataDataTableRowsItemCItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gddtriciV'
-gaDataDataTableRowsItemCItem
-    :: GaDataDataTableRowsItemCItem
-gaDataDataTableRowsItemCItem =
-    GaDataDataTableRowsItemCItem'
-    { _gddtriciV = Nothing
-    }
-
-gddtriciV :: Lens' GaDataDataTableRowsItemCItem (Maybe Text)
-gddtriciV
-  = lens _gddtriciV (\ s a -> s{_gddtriciV = a})
-
-instance FromJSON GaDataDataTableRowsItemCItem where
-        parseJSON
-          = withObject "GaDataDataTableRowsItemCItem"
-              (\ o ->
-                 GaDataDataTableRowsItemCItem' <$> (o .:? "v"))
-
-instance ToJSON GaDataDataTableRowsItemCItem where
-        toJSON GaDataDataTableRowsItemCItem'{..}
-          = object (catMaybes [("v" .=) <$> _gddtriciV])
-
--- | Permissions the user has for this entity.
---
--- /See:/ 'entityUserLinkPermissions' smart constructor.
-data EntityUserLinkPermissions = EntityUserLinkPermissions'
-    { _eulpLocal     :: !(Maybe [Text])
-    , _eulpEffective :: !(Maybe [Text])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EntityUserLinkPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eulpLocal'
---
--- * 'eulpEffective'
-entityUserLinkPermissions
-    :: EntityUserLinkPermissions
-entityUserLinkPermissions =
-    EntityUserLinkPermissions'
-    { _eulpLocal = Nothing
-    , _eulpEffective = Nothing
-    }
-
--- | Permissions that a user has been assigned at this very level. Does not
--- include any implied or inherited permissions. Local permissions are
--- modifiable.
-eulpLocal :: Lens' EntityUserLinkPermissions [Text]
-eulpLocal
-  = lens _eulpLocal (\ s a -> s{_eulpLocal = a}) .
-      _Default
-      . _Coerce
-
--- | Effective permissions represent all the permissions that a user has for
--- this entity. These include any implied permissions (e.g., EDIT implies
--- VIEW) or inherited permissions from the parent entity. Effective
--- permissions are read-only.
-eulpEffective :: Lens' EntityUserLinkPermissions [Text]
-eulpEffective
-  = lens _eulpEffective
-      (\ s a -> s{_eulpEffective = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON EntityUserLinkPermissions where
-        parseJSON
-          = withObject "EntityUserLinkPermissions"
-              (\ o ->
-                 EntityUserLinkPermissions' <$>
-                   (o .:? "local" .!= mempty) <*>
-                     (o .:? "effective" .!= mempty))
-
-instance ToJSON EntityUserLinkPermissions where
-        toJSON EntityUserLinkPermissions'{..}
-          = object
-              (catMaybes
-                 [("local" .=) <$> _eulpLocal,
-                  ("effective" .=) <$> _eulpEffective])
-
--- | Information for the view (profile), for which the real time data was
--- requested.
---
--- /See:/ 'realtimeDataProFileInfo' smart constructor.
-data RealtimeDataProFileInfo = RealtimeDataProFileInfo'
-    { _rdpfiWebPropertyId         :: !(Maybe Text)
-    , _rdpfiProFileId             :: !(Maybe Text)
-    , _rdpfiProFileName           :: !(Maybe Text)
-    , _rdpfiAccountId             :: !(Maybe Text)
-    , _rdpfiInternalWebPropertyId :: !(Maybe Text)
-    , _rdpfiTableId               :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RealtimeDataProFileInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdpfiWebPropertyId'
---
--- * 'rdpfiProFileId'
---
--- * 'rdpfiProFileName'
---
--- * 'rdpfiAccountId'
---
--- * 'rdpfiInternalWebPropertyId'
---
--- * 'rdpfiTableId'
-realtimeDataProFileInfo
-    :: RealtimeDataProFileInfo
-realtimeDataProFileInfo =
-    RealtimeDataProFileInfo'
-    { _rdpfiWebPropertyId = Nothing
-    , _rdpfiProFileId = Nothing
-    , _rdpfiProFileName = Nothing
-    , _rdpfiAccountId = Nothing
-    , _rdpfiInternalWebPropertyId = Nothing
-    , _rdpfiTableId = Nothing
-    }
-
--- | Web Property ID to which this view (profile) belongs.
-rdpfiWebPropertyId :: Lens' RealtimeDataProFileInfo (Maybe Text)
-rdpfiWebPropertyId
-  = lens _rdpfiWebPropertyId
-      (\ s a -> s{_rdpfiWebPropertyId = a})
-
--- | View (Profile) ID.
-rdpfiProFileId :: Lens' RealtimeDataProFileInfo (Maybe Text)
-rdpfiProFileId
-  = lens _rdpfiProFileId
-      (\ s a -> s{_rdpfiProFileId = a})
-
--- | View (Profile) name.
-rdpfiProFileName :: Lens' RealtimeDataProFileInfo (Maybe Text)
-rdpfiProFileName
-  = lens _rdpfiProFileName
-      (\ s a -> s{_rdpfiProFileName = a})
-
--- | Account ID to which this view (profile) belongs.
-rdpfiAccountId :: Lens' RealtimeDataProFileInfo (Maybe Text)
-rdpfiAccountId
-  = lens _rdpfiAccountId
-      (\ s a -> s{_rdpfiAccountId = a})
-
--- | Internal ID for the web property to which this view (profile) belongs.
-rdpfiInternalWebPropertyId :: Lens' RealtimeDataProFileInfo (Maybe Text)
-rdpfiInternalWebPropertyId
-  = lens _rdpfiInternalWebPropertyId
-      (\ s a -> s{_rdpfiInternalWebPropertyId = a})
-
--- | Table ID for view (profile).
-rdpfiTableId :: Lens' RealtimeDataProFileInfo (Maybe Text)
-rdpfiTableId
-  = lens _rdpfiTableId (\ s a -> s{_rdpfiTableId = a})
-
-instance FromJSON RealtimeDataProFileInfo where
-        parseJSON
-          = withObject "RealtimeDataProFileInfo"
-              (\ o ->
-                 RealtimeDataProFileInfo' <$>
-                   (o .:? "webPropertyId") <*> (o .:? "profileId") <*>
-                     (o .:? "profileName")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "tableId"))
-
-instance ToJSON RealtimeDataProFileInfo where
-        toJSON RealtimeDataProFileInfo'{..}
-          = object
-              (catMaybes
-                 [("webPropertyId" .=) <$> _rdpfiWebPropertyId,
-                  ("profileId" .=) <$> _rdpfiProFileId,
-                  ("profileName" .=) <$> _rdpfiProFileName,
-                  ("accountId" .=) <$> _rdpfiAccountId,
-                  ("internalWebPropertyId" .=) <$>
-                    _rdpfiInternalWebPropertyId,
-                  ("tableId" .=) <$> _rdpfiTableId])
-
---
--- /See:/ 'mcfDataRowsItemItemConversionPathValueItem' smart constructor.
-data McfDataRowsItemItemConversionPathValueItem = McfDataRowsItemItemConversionPathValueItem'
-    { _mdriicpviInteractionType :: !(Maybe Text)
-    , _mdriicpviNodeValue       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'McfDataRowsItemItemConversionPathValueItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mdriicpviInteractionType'
---
--- * 'mdriicpviNodeValue'
-mcfDataRowsItemItemConversionPathValueItem
-    :: McfDataRowsItemItemConversionPathValueItem
-mcfDataRowsItemItemConversionPathValueItem =
-    McfDataRowsItemItemConversionPathValueItem'
-    { _mdriicpviInteractionType = Nothing
-    , _mdriicpviNodeValue = Nothing
-    }
-
--- | Type of an interaction on conversion path. Such as CLICK, IMPRESSION
--- etc.
-mdriicpviInteractionType :: Lens' McfDataRowsItemItemConversionPathValueItem (Maybe Text)
-mdriicpviInteractionType
-  = lens _mdriicpviInteractionType
-      (\ s a -> s{_mdriicpviInteractionType = a})
-
--- | Node value of an interaction on conversion path. Such as source, medium
--- etc.
-mdriicpviNodeValue :: Lens' McfDataRowsItemItemConversionPathValueItem (Maybe Text)
-mdriicpviNodeValue
-  = lens _mdriicpviNodeValue
-      (\ s a -> s{_mdriicpviNodeValue = a})
-
-instance FromJSON
-         McfDataRowsItemItemConversionPathValueItem where
-        parseJSON
-          = withObject
-              "McfDataRowsItemItemConversionPathValueItem"
-              (\ o ->
-                 McfDataRowsItemItemConversionPathValueItem' <$>
-                   (o .:? "interactionType") <*> (o .:? "nodeValue"))
-
-instance ToJSON
-         McfDataRowsItemItemConversionPathValueItem where
-        toJSON
-          McfDataRowsItemItemConversionPathValueItem'{..}
-          = object
-              (catMaybes
-                 [("interactionType" .=) <$>
-                    _mdriicpviInteractionType,
-                  ("nodeValue" .=) <$> _mdriicpviNodeValue])
-
--- | JSON template for an Analytics filter expression.
---
--- /See:/ 'filterExpression' smart constructor.
-data FilterExpression = FilterExpression'
-    { _feFieldIndex      :: !(Maybe (Textual Int32))
-    , _feField           :: !(Maybe Text)
-    , _feKind            :: !Text
-    , _feMatchType       :: !(Maybe Text)
-    , _feCaseSensitive   :: !(Maybe Bool)
-    , _feExpressionValue :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FilterExpression' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'feFieldIndex'
---
--- * 'feField'
---
--- * 'feKind'
---
--- * 'feMatchType'
---
--- * 'feCaseSensitive'
---
--- * 'feExpressionValue'
-filterExpression
-    :: FilterExpression
-filterExpression =
-    FilterExpression'
-    { _feFieldIndex = Nothing
-    , _feField = Nothing
-    , _feKind = "analytics#filterExpression"
-    , _feMatchType = Nothing
-    , _feCaseSensitive = Nothing
-    , _feExpressionValue = Nothing
-    }
-
--- | The Index of the custom dimension. Set only if the field is a is
--- CUSTOM_DIMENSION.
-feFieldIndex :: Lens' FilterExpression (Maybe Int32)
-feFieldIndex
-  = lens _feFieldIndex (\ s a -> s{_feFieldIndex = a})
-      . mapping _Coerce
-
--- | Field to filter. Possible values: - Content and Traffic -
--- PAGE_REQUEST_URI, - PAGE_HOSTNAME, - PAGE_TITLE, - REFERRAL, -
--- COST_DATA_URI (Campaign target URL), - HIT_TYPE, - INTERNAL_SEARCH_TERM,
--- - INTERNAL_SEARCH_TYPE, - SOURCE_PROPERTY_TRACKING_ID, - Campaign or
--- AdGroup - CAMPAIGN_SOURCE, - CAMPAIGN_MEDIUM, - CAMPAIGN_NAME, -
--- CAMPAIGN_AD_GROUP, - CAMPAIGN_TERM, - CAMPAIGN_CONTENT, - CAMPAIGN_CODE,
--- - CAMPAIGN_REFERRAL_PATH, - E-Commerce - TRANSACTION_COUNTRY, -
--- TRANSACTION_REGION, - TRANSACTION_CITY, - TRANSACTION_AFFILIATION (Store
--- or order location), - ITEM_NAME, - ITEM_CODE, - ITEM_VARIATION, -
--- TRANSACTION_ID, - TRANSACTION_CURRENCY_CODE, - PRODUCT_ACTION_TYPE, -
--- Audience\/Users - BROWSER, - BROWSER_VERSION, - BROWSER_SIZE, -
--- PLATFORM, - PLATFORM_VERSION, - LANGUAGE, - SCREEN_RESOLUTION, -
--- SCREEN_COLORS, - JAVA_ENABLED (Boolean Field), - FLASH_VERSION, -
--- GEO_SPEED (Connection speed), - VISITOR_TYPE, - GEO_ORGANIZATION (ISP
--- organization), - GEO_DOMAIN, - GEO_IP_ADDRESS, - GEO_IP_VERSION, -
--- Location - GEO_COUNTRY, - GEO_REGION, - GEO_CITY, - Event -
--- EVENT_CATEGORY, - EVENT_ACTION, - EVENT_LABEL, - Other - CUSTOM_FIELD_1,
--- - CUSTOM_FIELD_2, - USER_DEFINED_VALUE, - Application - APP_ID, -
--- APP_INSTALLER_ID, - APP_NAME, - APP_VERSION, - SCREEN, - IS_APP (Boolean
--- Field), - IS_FATAL_EXCEPTION (Boolean Field), - EXCEPTION_DESCRIPTION, -
--- Mobile device - IS_MOBILE (Boolean Field, Deprecated. Use
--- DEVICE_CATEGORY=mobile), - IS_TABLET (Boolean Field, Deprecated. Use
--- DEVICE_CATEGORY=tablet), - DEVICE_CATEGORY, - MOBILE_HAS_QWERTY_KEYBOARD
--- (Boolean Field), - MOBILE_HAS_NFC_SUPPORT (Boolean Field), -
--- MOBILE_HAS_CELLULAR_RADIO (Boolean Field), - MOBILE_HAS_WIFI_SUPPORT
--- (Boolean Field), - MOBILE_BRAND_NAME, - MOBILE_MODEL_NAME, -
--- MOBILE_MARKETING_NAME, - MOBILE_POINTING_METHOD, - Social -
--- SOCIAL_NETWORK, - SOCIAL_ACTION, - SOCIAL_ACTION_TARGET, - Custom
--- dimension - CUSTOM_DIMENSION (See accompanying field index),
-feField :: Lens' FilterExpression (Maybe Text)
-feField = lens _feField (\ s a -> s{_feField = a})
-
--- | Kind value for filter expression
-feKind :: Lens' FilterExpression Text
-feKind = lens _feKind (\ s a -> s{_feKind = a})
-
--- | Match type for this filter. Possible values are BEGINS_WITH, EQUAL,
--- ENDS_WITH, CONTAINS, or MATCHES. GEO_DOMAIN, GEO_IP_ADDRESS,
--- PAGE_REQUEST_URI, or PAGE_HOSTNAME filters can use any match type; all
--- other filters must use MATCHES.
-feMatchType :: Lens' FilterExpression (Maybe Text)
-feMatchType
-  = lens _feMatchType (\ s a -> s{_feMatchType = a})
-
--- | Determines if the filter is case sensitive.
-feCaseSensitive :: Lens' FilterExpression (Maybe Bool)
-feCaseSensitive
-  = lens _feCaseSensitive
-      (\ s a -> s{_feCaseSensitive = a})
-
--- | Filter expression value
-feExpressionValue :: Lens' FilterExpression (Maybe Text)
-feExpressionValue
-  = lens _feExpressionValue
-      (\ s a -> s{_feExpressionValue = a})
-
-instance FromJSON FilterExpression where
-        parseJSON
-          = withObject "FilterExpression"
-              (\ o ->
-                 FilterExpression' <$>
-                   (o .:? "fieldIndex") <*> (o .:? "field") <*>
-                     (o .:? "kind" .!= "analytics#filterExpression")
-                     <*> (o .:? "matchType")
-                     <*> (o .:? "caseSensitive")
-                     <*> (o .:? "expressionValue"))
-
-instance ToJSON FilterExpression where
-        toJSON FilterExpression'{..}
-          = object
-              (catMaybes
-                 [("fieldIndex" .=) <$> _feFieldIndex,
-                  ("field" .=) <$> _feField, Just ("kind" .= _feKind),
-                  ("matchType" .=) <$> _feMatchType,
-                  ("caseSensitive" .=) <$> _feCaseSensitive,
-                  ("expressionValue" .=) <$> _feExpressionValue])
-
--- | JSON template for a linked view (profile).
---
--- /See:/ 'proFileRef' smart constructor.
-data ProFileRef = ProFileRef'
-    { _pfrWebPropertyId         :: !(Maybe Text)
-    , _pfrKind                  :: !Text
-    , _pfrHref                  :: !(Maybe Text)
-    , _pfrAccountId             :: !(Maybe Text)
-    , _pfrName                  :: !(Maybe Text)
-    , _pfrInternalWebPropertyId :: !(Maybe Text)
-    , _pfrId                    :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ProFileRef' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pfrWebPropertyId'
---
--- * 'pfrKind'
---
--- * 'pfrHref'
---
--- * 'pfrAccountId'
---
--- * 'pfrName'
---
--- * 'pfrInternalWebPropertyId'
---
--- * 'pfrId'
-proFileRef
-    :: ProFileRef
-proFileRef =
-    ProFileRef'
-    { _pfrWebPropertyId = Nothing
-    , _pfrKind = "analytics#profileRef"
-    , _pfrHref = Nothing
-    , _pfrAccountId = Nothing
-    , _pfrName = Nothing
-    , _pfrInternalWebPropertyId = Nothing
-    , _pfrId = Nothing
-    }
-
--- | Web property ID of the form UA-XXXXX-YY to which this view (profile)
--- belongs.
-pfrWebPropertyId :: Lens' ProFileRef (Maybe Text)
-pfrWebPropertyId
-  = lens _pfrWebPropertyId
-      (\ s a -> s{_pfrWebPropertyId = a})
-
--- | Analytics view (profile) reference.
-pfrKind :: Lens' ProFileRef Text
-pfrKind = lens _pfrKind (\ s a -> s{_pfrKind = a})
-
--- | Link for this view (profile).
-pfrHref :: Lens' ProFileRef (Maybe Text)
-pfrHref = lens _pfrHref (\ s a -> s{_pfrHref = a})
-
--- | Account ID to which this view (profile) belongs.
-pfrAccountId :: Lens' ProFileRef (Maybe Text)
-pfrAccountId
-  = lens _pfrAccountId (\ s a -> s{_pfrAccountId = a})
-
--- | Name of this view (profile).
-pfrName :: Lens' ProFileRef (Maybe Text)
-pfrName = lens _pfrName (\ s a -> s{_pfrName = a})
-
--- | Internal ID for the web property to which this view (profile) belongs.
-pfrInternalWebPropertyId :: Lens' ProFileRef (Maybe Text)
-pfrInternalWebPropertyId
-  = lens _pfrInternalWebPropertyId
-      (\ s a -> s{_pfrInternalWebPropertyId = a})
-
--- | View (Profile) ID.
-pfrId :: Lens' ProFileRef (Maybe Text)
-pfrId = lens _pfrId (\ s a -> s{_pfrId = a})
-
-instance FromJSON ProFileRef where
-        parseJSON
-          = withObject "ProFileRef"
-              (\ o ->
-                 ProFileRef' <$>
-                   (o .:? "webPropertyId") <*>
-                     (o .:? "kind" .!= "analytics#profileRef")
-                     <*> (o .:? "href")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "id"))
-
-instance ToJSON ProFileRef where
-        toJSON ProFileRef'{..}
-          = object
-              (catMaybes
-                 [("webPropertyId" .=) <$> _pfrWebPropertyId,
-                  Just ("kind" .= _pfrKind), ("href" .=) <$> _pfrHref,
-                  ("accountId" .=) <$> _pfrAccountId,
-                  ("name" .=) <$> _pfrName,
-                  ("internalWebPropertyId" .=) <$>
-                    _pfrInternalWebPropertyId,
-                  ("id" .=) <$> _pfrId])
-
--- | An account collection provides a list of Analytics accounts to which a
--- user has access. The account collection is the entry point to all
--- management information. Each resource in the collection corresponds to a
--- single Analytics account.
---
--- /See:/ 'accounts' smart constructor.
-data Accounts = Accounts'
-    { _aNextLink     :: !(Maybe Text)
-    , _aItemsPerPage :: !(Maybe (Textual Int32))
-    , _aKind         :: !Text
-    , _aUsername     :: !(Maybe Text)
-    , _aItems        :: !(Maybe [Account])
-    , _aTotalResults :: !(Maybe (Textual Int32))
-    , _aStartIndex   :: !(Maybe (Textual Int32))
-    , _aPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Accounts' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aNextLink'
---
--- * 'aItemsPerPage'
---
--- * 'aKind'
---
--- * 'aUsername'
---
--- * 'aItems'
---
--- * 'aTotalResults'
---
--- * 'aStartIndex'
---
--- * 'aPreviousLink'
-accounts
-    :: Accounts
-accounts =
-    Accounts'
-    { _aNextLink = Nothing
-    , _aItemsPerPage = Nothing
-    , _aKind = "analytics#accounts"
-    , _aUsername = Nothing
-    , _aItems = Nothing
-    , _aTotalResults = Nothing
-    , _aStartIndex = Nothing
-    , _aPreviousLink = Nothing
-    }
-
--- | Next link for this account collection.
-aNextLink :: Lens' Accounts (Maybe Text)
-aNextLink
-  = lens _aNextLink (\ s a -> s{_aNextLink = a})
-
--- | The maximum number of entries the response can contain, regardless of
--- the actual number of entries returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-aItemsPerPage :: Lens' Accounts (Maybe Int32)
-aItemsPerPage
-  = lens _aItemsPerPage
-      (\ s a -> s{_aItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-aKind :: Lens' Accounts Text
-aKind = lens _aKind (\ s a -> s{_aKind = a})
-
--- | Email ID of the authenticated user
-aUsername :: Lens' Accounts (Maybe Text)
-aUsername
-  = lens _aUsername (\ s a -> s{_aUsername = a})
-
--- | A list of accounts.
-aItems :: Lens' Accounts [Account]
-aItems
-  = lens _aItems (\ s a -> s{_aItems = a}) . _Default .
-      _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-aTotalResults :: Lens' Accounts (Maybe Int32)
-aTotalResults
-  = lens _aTotalResults
-      (\ s a -> s{_aTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the entries, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-aStartIndex :: Lens' Accounts (Maybe Int32)
-aStartIndex
-  = lens _aStartIndex (\ s a -> s{_aStartIndex = a}) .
-      mapping _Coerce
-
--- | Previous link for this account collection.
-aPreviousLink :: Lens' Accounts (Maybe Text)
-aPreviousLink
-  = lens _aPreviousLink
-      (\ s a -> s{_aPreviousLink = a})
-
-instance FromJSON Accounts where
-        parseJSON
-          = withObject "Accounts"
-              (\ o ->
-                 Accounts' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#accounts")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON Accounts where
-        toJSON Accounts'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _aNextLink,
-                  ("itemsPerPage" .=) <$> _aItemsPerPage,
-                  Just ("kind" .= _aKind),
-                  ("username" .=) <$> _aUsername,
-                  ("items" .=) <$> _aItems,
-                  ("totalResults" .=) <$> _aTotalResults,
-                  ("startIndex" .=) <$> _aStartIndex,
-                  ("previousLink" .=) <$> _aPreviousLink])
-
--- | An experiment collection lists Analytics experiments to which the user
--- has access. Each view (profile) can have a set of experiments. Each
--- resource in the Experiment collection corresponds to a single Analytics
--- experiment.
---
--- /See:/ 'experiments' smart constructor.
-data Experiments = Experiments'
-    { _eNextLink     :: !(Maybe Text)
-    , _eItemsPerPage :: !(Maybe (Textual Int32))
-    , _eKind         :: !Text
-    , _eUsername     :: !(Maybe Text)
-    , _eItems        :: !(Maybe [Experiment])
-    , _eTotalResults :: !(Maybe (Textual Int32))
-    , _eStartIndex   :: !(Maybe (Textual Int32))
-    , _ePreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Experiments' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eNextLink'
---
--- * 'eItemsPerPage'
---
--- * 'eKind'
---
--- * 'eUsername'
---
--- * 'eItems'
---
--- * 'eTotalResults'
---
--- * 'eStartIndex'
---
--- * 'ePreviousLink'
-experiments
-    :: Experiments
-experiments =
-    Experiments'
-    { _eNextLink = Nothing
-    , _eItemsPerPage = Nothing
-    , _eKind = "analytics#experiments"
-    , _eUsername = Nothing
-    , _eItems = Nothing
-    , _eTotalResults = Nothing
-    , _eStartIndex = Nothing
-    , _ePreviousLink = Nothing
-    }
-
--- | Link to next page for this experiment collection.
-eNextLink :: Lens' Experiments (Maybe Text)
-eNextLink
-  = lens _eNextLink (\ s a -> s{_eNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-eItemsPerPage :: Lens' Experiments (Maybe Int32)
-eItemsPerPage
-  = lens _eItemsPerPage
-      (\ s a -> s{_eItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-eKind :: Lens' Experiments Text
-eKind = lens _eKind (\ s a -> s{_eKind = a})
-
--- | Email ID of the authenticated user
-eUsername :: Lens' Experiments (Maybe Text)
-eUsername
-  = lens _eUsername (\ s a -> s{_eUsername = a})
-
--- | A list of experiments.
-eItems :: Lens' Experiments [Experiment]
-eItems
-  = lens _eItems (\ s a -> s{_eItems = a}) . _Default .
-      _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- resources in the result.
-eTotalResults :: Lens' Experiments (Maybe Int32)
-eTotalResults
-  = lens _eTotalResults
-      (\ s a -> s{_eTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-eStartIndex :: Lens' Experiments (Maybe Int32)
-eStartIndex
-  = lens _eStartIndex (\ s a -> s{_eStartIndex = a}) .
-      mapping _Coerce
-
--- | Link to previous page for this experiment collection.
-ePreviousLink :: Lens' Experiments (Maybe Text)
-ePreviousLink
-  = lens _ePreviousLink
-      (\ s a -> s{_ePreviousLink = a})
-
-instance FromJSON Experiments where
-        parseJSON
-          = withObject "Experiments"
-              (\ o ->
-                 Experiments' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#experiments")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON Experiments where
-        toJSON Experiments'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _eNextLink,
-                  ("itemsPerPage" .=) <$> _eItemsPerPage,
-                  Just ("kind" .= _eKind),
-                  ("username" .=) <$> _eUsername,
-                  ("items" .=) <$> _eItems,
-                  ("totalResults" .=) <$> _eTotalResults,
-                  ("startIndex" .=) <$> _eStartIndex,
-                  ("previousLink" .=) <$> _ePreviousLink])
-
--- | Parent link for an experiment. Points to the view (profile) to which
--- this experiment belongs.
---
--- /See:/ 'experimentParentLink' smart constructor.
-data ExperimentParentLink = ExperimentParentLink'
-    { _eplHref :: !(Maybe Text)
-    , _eplType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ExperimentParentLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eplHref'
---
--- * 'eplType'
-experimentParentLink
-    :: ExperimentParentLink
-experimentParentLink =
-    ExperimentParentLink'
-    { _eplHref = Nothing
-    , _eplType = "analytics#profile"
-    }
-
--- | Link to the view (profile) to which this experiment belongs. This field
--- is read-only.
-eplHref :: Lens' ExperimentParentLink (Maybe Text)
-eplHref = lens _eplHref (\ s a -> s{_eplHref = a})
-
--- | Value is \"analytics#profile\". This field is read-only.
-eplType :: Lens' ExperimentParentLink Text
-eplType = lens _eplType (\ s a -> s{_eplType = a})
-
-instance FromJSON ExperimentParentLink where
-        parseJSON
-          = withObject "ExperimentParentLink"
-              (\ o ->
-                 ExperimentParentLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#profile"))
-
-instance ToJSON ExperimentParentLink where
-        toJSON ExperimentParentLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _eplHref,
-                  Just ("type" .= _eplType)])
-
--- | Download details for a file stored in Google Drive.
---
--- /See:/ 'unSampledReportDriveDownloadDetails' smart constructor.
-newtype UnSampledReportDriveDownloadDetails = UnSampledReportDriveDownloadDetails'
-    { _usrdddDocumentId :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UnSampledReportDriveDownloadDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'usrdddDocumentId'
-unSampledReportDriveDownloadDetails
-    :: UnSampledReportDriveDownloadDetails
-unSampledReportDriveDownloadDetails =
-    UnSampledReportDriveDownloadDetails'
-    { _usrdddDocumentId = Nothing
-    }
-
--- | Id of the document\/file containing the report data.
-usrdddDocumentId :: Lens' UnSampledReportDriveDownloadDetails (Maybe Text)
-usrdddDocumentId
-  = lens _usrdddDocumentId
-      (\ s a -> s{_usrdddDocumentId = a})
-
-instance FromJSON UnSampledReportDriveDownloadDetails
-         where
-        parseJSON
-          = withObject "UnSampledReportDriveDownloadDetails"
-              (\ o ->
-                 UnSampledReportDriveDownloadDetails' <$>
-                   (o .:? "documentId"))
-
-instance ToJSON UnSampledReportDriveDownloadDetails
-         where
-        toJSON UnSampledReportDriveDownloadDetails'{..}
-          = object
-              (catMaybes [("documentId" .=) <$> _usrdddDocumentId])
-
--- | Information for the view (profile), for which the Analytics data was
--- requested.
---
--- /See:/ 'mcfDataProFileInfo' smart constructor.
-data McfDataProFileInfo = McfDataProFileInfo'
-    { _mdpfiWebPropertyId         :: !(Maybe Text)
-    , _mdpfiProFileId             :: !(Maybe Text)
-    , _mdpfiProFileName           :: !(Maybe Text)
-    , _mdpfiAccountId             :: !(Maybe Text)
-    , _mdpfiInternalWebPropertyId :: !(Maybe Text)
-    , _mdpfiTableId               :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'McfDataProFileInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mdpfiWebPropertyId'
---
--- * 'mdpfiProFileId'
---
--- * 'mdpfiProFileName'
---
--- * 'mdpfiAccountId'
---
--- * 'mdpfiInternalWebPropertyId'
---
--- * 'mdpfiTableId'
-mcfDataProFileInfo
-    :: McfDataProFileInfo
-mcfDataProFileInfo =
-    McfDataProFileInfo'
-    { _mdpfiWebPropertyId = Nothing
-    , _mdpfiProFileId = Nothing
-    , _mdpfiProFileName = Nothing
-    , _mdpfiAccountId = Nothing
-    , _mdpfiInternalWebPropertyId = Nothing
-    , _mdpfiTableId = Nothing
-    }
-
--- | Web Property ID to which this view (profile) belongs.
-mdpfiWebPropertyId :: Lens' McfDataProFileInfo (Maybe Text)
-mdpfiWebPropertyId
-  = lens _mdpfiWebPropertyId
-      (\ s a -> s{_mdpfiWebPropertyId = a})
-
--- | View (Profile) ID.
-mdpfiProFileId :: Lens' McfDataProFileInfo (Maybe Text)
-mdpfiProFileId
-  = lens _mdpfiProFileId
-      (\ s a -> s{_mdpfiProFileId = a})
-
--- | View (Profile) name.
-mdpfiProFileName :: Lens' McfDataProFileInfo (Maybe Text)
-mdpfiProFileName
-  = lens _mdpfiProFileName
-      (\ s a -> s{_mdpfiProFileName = a})
-
--- | Account ID to which this view (profile) belongs.
-mdpfiAccountId :: Lens' McfDataProFileInfo (Maybe Text)
-mdpfiAccountId
-  = lens _mdpfiAccountId
-      (\ s a -> s{_mdpfiAccountId = a})
-
--- | Internal ID for the web property to which this view (profile) belongs.
-mdpfiInternalWebPropertyId :: Lens' McfDataProFileInfo (Maybe Text)
-mdpfiInternalWebPropertyId
-  = lens _mdpfiInternalWebPropertyId
-      (\ s a -> s{_mdpfiInternalWebPropertyId = a})
-
--- | Table ID for view (profile).
-mdpfiTableId :: Lens' McfDataProFileInfo (Maybe Text)
-mdpfiTableId
-  = lens _mdpfiTableId (\ s a -> s{_mdpfiTableId = a})
-
-instance FromJSON McfDataProFileInfo where
-        parseJSON
-          = withObject "McfDataProFileInfo"
-              (\ o ->
-                 McfDataProFileInfo' <$>
-                   (o .:? "webPropertyId") <*> (o .:? "profileId") <*>
-                     (o .:? "profileName")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "tableId"))
-
-instance ToJSON McfDataProFileInfo where
-        toJSON McfDataProFileInfo'{..}
-          = object
-              (catMaybes
-                 [("webPropertyId" .=) <$> _mdpfiWebPropertyId,
-                  ("profileId" .=) <$> _mdpfiProFileId,
-                  ("profileName" .=) <$> _mdpfiProFileName,
-                  ("accountId" .=) <$> _mdpfiAccountId,
-                  ("internalWebPropertyId" .=) <$>
-                    _mdpfiInternalWebPropertyId,
-                  ("tableId" .=) <$> _mdpfiTableId])
-
--- | Lists Analytics custom data sources to which the user has access. Each
--- resource in the collection corresponds to a single Analytics custom data
--- source.
---
--- /See:/ 'customDataSources' smart constructor.
-data CustomDataSources = CustomDataSources'
-    { _cdsNextLink     :: !(Maybe Text)
-    , _cdsItemsPerPage :: !(Maybe (Textual Int32))
-    , _cdsKind         :: !Text
-    , _cdsUsername     :: !(Maybe Text)
-    , _cdsItems        :: !(Maybe [CustomDataSource])
-    , _cdsTotalResults :: !(Maybe (Textual Int32))
-    , _cdsStartIndex   :: !(Maybe (Textual Int32))
-    , _cdsPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomDataSources' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdsNextLink'
---
--- * 'cdsItemsPerPage'
---
--- * 'cdsKind'
---
--- * 'cdsUsername'
---
--- * 'cdsItems'
---
--- * 'cdsTotalResults'
---
--- * 'cdsStartIndex'
---
--- * 'cdsPreviousLink'
-customDataSources
-    :: CustomDataSources
-customDataSources =
-    CustomDataSources'
-    { _cdsNextLink = Nothing
-    , _cdsItemsPerPage = Nothing
-    , _cdsKind = "analytics#customDataSources"
-    , _cdsUsername = Nothing
-    , _cdsItems = Nothing
-    , _cdsTotalResults = Nothing
-    , _cdsStartIndex = Nothing
-    , _cdsPreviousLink = Nothing
-    }
-
--- | Link to next page for this custom data source collection.
-cdsNextLink :: Lens' CustomDataSources (Maybe Text)
-cdsNextLink
-  = lens _cdsNextLink (\ s a -> s{_cdsNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-cdsItemsPerPage :: Lens' CustomDataSources (Maybe Int32)
-cdsItemsPerPage
-  = lens _cdsItemsPerPage
-      (\ s a -> s{_cdsItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-cdsKind :: Lens' CustomDataSources Text
-cdsKind = lens _cdsKind (\ s a -> s{_cdsKind = a})
-
--- | Email ID of the authenticated user
-cdsUsername :: Lens' CustomDataSources (Maybe Text)
-cdsUsername
-  = lens _cdsUsername (\ s a -> s{_cdsUsername = a})
-
--- | Collection of custom data sources.
-cdsItems :: Lens' CustomDataSources [CustomDataSource]
-cdsItems
-  = lens _cdsItems (\ s a -> s{_cdsItems = a}) .
-      _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-cdsTotalResults :: Lens' CustomDataSources (Maybe Int32)
-cdsTotalResults
-  = lens _cdsTotalResults
-      (\ s a -> s{_cdsTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-cdsStartIndex :: Lens' CustomDataSources (Maybe Int32)
-cdsStartIndex
-  = lens _cdsStartIndex
-      (\ s a -> s{_cdsStartIndex = a})
-      . mapping _Coerce
-
--- | Link to previous page for this custom data source collection.
-cdsPreviousLink :: Lens' CustomDataSources (Maybe Text)
-cdsPreviousLink
-  = lens _cdsPreviousLink
-      (\ s a -> s{_cdsPreviousLink = a})
-
-instance FromJSON CustomDataSources where
-        parseJSON
-          = withObject "CustomDataSources"
-              (\ o ->
-                 CustomDataSources' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#customDataSources")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON CustomDataSources where
-        toJSON CustomDataSources'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _cdsNextLink,
-                  ("itemsPerPage" .=) <$> _cdsItemsPerPage,
-                  Just ("kind" .= _cdsKind),
-                  ("username" .=) <$> _cdsUsername,
-                  ("items" .=) <$> _cdsItems,
-                  ("totalResults" .=) <$> _cdsTotalResults,
-                  ("startIndex" .=) <$> _cdsStartIndex,
-                  ("previousLink" .=) <$> _cdsPreviousLink])
-
--- | Child link for this web property. Points to the list of views (profiles)
--- for this web property.
---
--- /See:/ 'webPropertyChildLink' smart constructor.
-data WebPropertyChildLink = WebPropertyChildLink'
-    { _wpclHref :: !(Maybe Text)
-    , _wpclType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'WebPropertyChildLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'wpclHref'
---
--- * 'wpclType'
-webPropertyChildLink
-    :: WebPropertyChildLink
-webPropertyChildLink =
-    WebPropertyChildLink'
-    { _wpclHref = Nothing
-    , _wpclType = "analytics#profiles"
-    }
-
--- | Link to the list of views (profiles) for this web property.
-wpclHref :: Lens' WebPropertyChildLink (Maybe Text)
-wpclHref = lens _wpclHref (\ s a -> s{_wpclHref = a})
-
--- | Type of the parent link. Its value is \"analytics#profiles\".
-wpclType :: Lens' WebPropertyChildLink Text
-wpclType = lens _wpclType (\ s a -> s{_wpclType = a})
-
-instance FromJSON WebPropertyChildLink where
-        parseJSON
-          = withObject "WebPropertyChildLink"
-              (\ o ->
-                 WebPropertyChildLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#profiles"))
-
-instance ToJSON WebPropertyChildLink where
-        toJSON WebPropertyChildLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _wpclHref,
-                  Just ("type" .= _wpclType)])
-
--- | JSON template for a hash Client Id response resource.
---
--- /See:/ 'hashClientIdResponse' smart constructor.
-data HashClientIdResponse = HashClientIdResponse'
-    { _hcirClientId       :: !(Maybe Text)
-    , _hcirWebPropertyId  :: !(Maybe Text)
-    , _hcirKind           :: !Text
-    , _hcirHashedClientId :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'HashClientIdResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hcirClientId'
---
--- * 'hcirWebPropertyId'
---
--- * 'hcirKind'
---
--- * 'hcirHashedClientId'
-hashClientIdResponse
-    :: HashClientIdResponse
-hashClientIdResponse =
-    HashClientIdResponse'
-    { _hcirClientId = Nothing
-    , _hcirWebPropertyId = Nothing
-    , _hcirKind = "analytics#hashClientIdResponse"
-    , _hcirHashedClientId = Nothing
-    }
-
-hcirClientId :: Lens' HashClientIdResponse (Maybe Text)
-hcirClientId
-  = lens _hcirClientId (\ s a -> s{_hcirClientId = a})
-
-hcirWebPropertyId :: Lens' HashClientIdResponse (Maybe Text)
-hcirWebPropertyId
-  = lens _hcirWebPropertyId
-      (\ s a -> s{_hcirWebPropertyId = a})
-
-hcirKind :: Lens' HashClientIdResponse Text
-hcirKind = lens _hcirKind (\ s a -> s{_hcirKind = a})
-
-hcirHashedClientId :: Lens' HashClientIdResponse (Maybe Text)
-hcirHashedClientId
-  = lens _hcirHashedClientId
-      (\ s a -> s{_hcirHashedClientId = a})
-
-instance FromJSON HashClientIdResponse where
-        parseJSON
-          = withObject "HashClientIdResponse"
-              (\ o ->
-                 HashClientIdResponse' <$>
-                   (o .:? "clientId") <*> (o .:? "webPropertyId") <*>
-                     (o .:? "kind" .!= "analytics#hashClientIdResponse")
-                     <*> (o .:? "hashedClientId"))
-
-instance ToJSON HashClientIdResponse where
-        toJSON HashClientIdResponse'{..}
-          = object
-              (catMaybes
-                 [("clientId" .=) <$> _hcirClientId,
-                  ("webPropertyId" .=) <$> _hcirWebPropertyId,
-                  Just ("kind" .= _hcirKind),
-                  ("hashedClientId" .=) <$> _hcirHashedClientId])
-
--- | Multi-Channel Funnels data for a given view (profile).
---
--- /See:/ 'mcfData' smart constructor.
-data McfData = McfData'
-    { _mdNextLink            :: !(Maybe Text)
-    , _mdSampleSpace         :: !(Maybe (Textual Int64))
-    , _mdItemsPerPage        :: !(Maybe (Textual Int32))
-    , _mdProFileInfo         :: !(Maybe McfDataProFileInfo)
-    , _mdKind                :: !Text
-    , _mdSampleSize          :: !(Maybe (Textual Int64))
-    , _mdRows                :: !(Maybe [[McfDataRowsItemItem]])
-    , _mdSelfLink            :: !(Maybe Text)
-    , _mdQuery               :: !(Maybe McfDataQuery)
-    , _mdColumnHeaders       :: !(Maybe [McfDataColumnHeadersItem])
-    , _mdId                  :: !(Maybe Text)
-    , _mdTotalResults        :: !(Maybe (Textual Int32))
-    , _mdContainsSampledData :: !(Maybe Bool)
-    , _mdTotalsForAllResults :: !(Maybe McfDataTotalsForAllResults)
-    , _mdPreviousLink        :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'McfData' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mdNextLink'
---
--- * 'mdSampleSpace'
---
--- * 'mdItemsPerPage'
---
--- * 'mdProFileInfo'
---
--- * 'mdKind'
---
--- * 'mdSampleSize'
---
--- * 'mdRows'
---
--- * 'mdSelfLink'
---
--- * 'mdQuery'
---
--- * 'mdColumnHeaders'
---
--- * 'mdId'
---
--- * 'mdTotalResults'
---
--- * 'mdContainsSampledData'
---
--- * 'mdTotalsForAllResults'
---
--- * 'mdPreviousLink'
-mcfData
-    :: McfData
-mcfData =
-    McfData'
-    { _mdNextLink = Nothing
-    , _mdSampleSpace = Nothing
-    , _mdItemsPerPage = Nothing
-    , _mdProFileInfo = Nothing
-    , _mdKind = "analytics#mcfData"
-    , _mdSampleSize = Nothing
-    , _mdRows = Nothing
-    , _mdSelfLink = Nothing
-    , _mdQuery = Nothing
-    , _mdColumnHeaders = Nothing
-    , _mdId = Nothing
-    , _mdTotalResults = Nothing
-    , _mdContainsSampledData = Nothing
-    , _mdTotalsForAllResults = Nothing
-    , _mdPreviousLink = Nothing
-    }
-
--- | Link to next page for this Analytics data query.
-mdNextLink :: Lens' McfData (Maybe Text)
-mdNextLink
-  = lens _mdNextLink (\ s a -> s{_mdNextLink = a})
-
--- | Total size of the sample space from which the samples were selected.
-mdSampleSpace :: Lens' McfData (Maybe Int64)
-mdSampleSpace
-  = lens _mdSampleSpace
-      (\ s a -> s{_mdSampleSpace = a})
-      . mapping _Coerce
-
--- | The maximum number of rows the response can contain, regardless of the
--- actual number of rows returned. Its value ranges from 1 to 10,000 with a
--- value of 1000 by default, or otherwise specified by the max-results
--- query parameter.
-mdItemsPerPage :: Lens' McfData (Maybe Int32)
-mdItemsPerPage
-  = lens _mdItemsPerPage
-      (\ s a -> s{_mdItemsPerPage = a})
-      . mapping _Coerce
-
--- | Information for the view (profile), for which the Analytics data was
--- requested.
-mdProFileInfo :: Lens' McfData (Maybe McfDataProFileInfo)
-mdProFileInfo
-  = lens _mdProFileInfo
-      (\ s a -> s{_mdProFileInfo = a})
-
--- | Resource type.
-mdKind :: Lens' McfData Text
-mdKind = lens _mdKind (\ s a -> s{_mdKind = a})
-
--- | The number of samples used to calculate the result.
-mdSampleSize :: Lens' McfData (Maybe Int64)
-mdSampleSize
-  = lens _mdSampleSize (\ s a -> s{_mdSampleSize = a})
-      . mapping _Coerce
-
--- | Analytics data rows, where each row contains a list of dimension values
--- followed by the metric values. The order of dimensions and metrics is
--- same as specified in the request.
-mdRows :: Lens' McfData [[McfDataRowsItemItem]]
-mdRows
-  = lens _mdRows (\ s a -> s{_mdRows = a}) . _Default .
-      _Coerce
-
--- | Link to this page.
-mdSelfLink :: Lens' McfData (Maybe Text)
-mdSelfLink
-  = lens _mdSelfLink (\ s a -> s{_mdSelfLink = a})
-
--- | Analytics data request query parameters.
-mdQuery :: Lens' McfData (Maybe McfDataQuery)
-mdQuery = lens _mdQuery (\ s a -> s{_mdQuery = a})
-
--- | Column headers that list dimension names followed by the metric names.
--- The order of dimensions and metrics is same as specified in the request.
-mdColumnHeaders :: Lens' McfData [McfDataColumnHeadersItem]
-mdColumnHeaders
-  = lens _mdColumnHeaders
-      (\ s a -> s{_mdColumnHeaders = a})
-      . _Default
-      . _Coerce
-
--- | Unique ID for this data response.
-mdId :: Lens' McfData (Maybe Text)
-mdId = lens _mdId (\ s a -> s{_mdId = a})
-
--- | The total number of rows for the query, regardless of the number of rows
--- in the response.
-mdTotalResults :: Lens' McfData (Maybe Int32)
-mdTotalResults
-  = lens _mdTotalResults
-      (\ s a -> s{_mdTotalResults = a})
-      . mapping _Coerce
-
--- | Determines if the Analytics data contains sampled data.
-mdContainsSampledData :: Lens' McfData (Maybe Bool)
-mdContainsSampledData
-  = lens _mdContainsSampledData
-      (\ s a -> s{_mdContainsSampledData = a})
-
--- | Total values for the requested metrics over all the results, not just
--- the results returned in this response. The order of the metric totals is
--- same as the metric order specified in the request.
-mdTotalsForAllResults :: Lens' McfData (Maybe McfDataTotalsForAllResults)
-mdTotalsForAllResults
-  = lens _mdTotalsForAllResults
-      (\ s a -> s{_mdTotalsForAllResults = a})
-
--- | Link to previous page for this Analytics data query.
-mdPreviousLink :: Lens' McfData (Maybe Text)
-mdPreviousLink
-  = lens _mdPreviousLink
-      (\ s a -> s{_mdPreviousLink = a})
-
-instance FromJSON McfData where
-        parseJSON
-          = withObject "McfData"
-              (\ o ->
-                 McfData' <$>
-                   (o .:? "nextLink") <*> (o .:? "sampleSpace") <*>
-                     (o .:? "itemsPerPage")
-                     <*> (o .:? "profileInfo")
-                     <*> (o .:? "kind" .!= "analytics#mcfData")
-                     <*> (o .:? "sampleSize")
-                     <*> (o .:? "rows" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "query")
-                     <*> (o .:? "columnHeaders" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "containsSampledData")
-                     <*> (o .:? "totalsForAllResults")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON McfData where
-        toJSON McfData'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _mdNextLink,
-                  ("sampleSpace" .=) <$> _mdSampleSpace,
-                  ("itemsPerPage" .=) <$> _mdItemsPerPage,
-                  ("profileInfo" .=) <$> _mdProFileInfo,
-                  Just ("kind" .= _mdKind),
-                  ("sampleSize" .=) <$> _mdSampleSize,
-                  ("rows" .=) <$> _mdRows,
-                  ("selfLink" .=) <$> _mdSelfLink,
-                  ("query" .=) <$> _mdQuery,
-                  ("columnHeaders" .=) <$> _mdColumnHeaders,
-                  ("id" .=) <$> _mdId,
-                  ("totalResults" .=) <$> _mdTotalResults,
-                  ("containsSampledData" .=) <$>
-                    _mdContainsSampledData,
-                  ("totalsForAllResults" .=) <$>
-                    _mdTotalsForAllResults,
-                  ("previousLink" .=) <$> _mdPreviousLink])
-
--- | JSON template for a user reference.
---
--- /See:/ 'userRef' smart constructor.
-data UserRef = UserRef'
-    { _urEmail :: !(Maybe Text)
-    , _urKind  :: !Text
-    , _urId    :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserRef' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'urEmail'
---
--- * 'urKind'
---
--- * 'urId'
-userRef
-    :: UserRef
-userRef =
-    UserRef'
-    { _urEmail = Nothing
-    , _urKind = "analytics#userRef"
-    , _urId = Nothing
-    }
-
--- | Email ID of this user.
-urEmail :: Lens' UserRef (Maybe Text)
-urEmail = lens _urEmail (\ s a -> s{_urEmail = a})
-
-urKind :: Lens' UserRef Text
-urKind = lens _urKind (\ s a -> s{_urKind = a})
-
--- | User ID.
-urId :: Lens' UserRef (Maybe Text)
-urId = lens _urId (\ s a -> s{_urId = a})
-
-instance FromJSON UserRef where
-        parseJSON
-          = withObject "UserRef"
-              (\ o ->
-                 UserRef' <$>
-                   (o .:? "email") <*>
-                     (o .:? "kind" .!= "analytics#userRef")
-                     <*> (o .:? "id"))
-
-instance ToJSON UserRef where
-        toJSON UserRef'{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _urEmail, Just ("kind" .= _urKind),
-                  ("id" .=) <$> _urId])
-
--- | Details for the goal of the type VISIT_NUM_PAGES.
---
--- /See:/ 'goalVisitNumPagesDetails' smart constructor.
-data GoalVisitNumPagesDetails = GoalVisitNumPagesDetails'
-    { _gvnpdComparisonValue :: !(Maybe (Textual Int64))
-    , _gvnpdComparisonType  :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GoalVisitNumPagesDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gvnpdComparisonValue'
---
--- * 'gvnpdComparisonType'
-goalVisitNumPagesDetails
-    :: GoalVisitNumPagesDetails
-goalVisitNumPagesDetails =
-    GoalVisitNumPagesDetails'
-    { _gvnpdComparisonValue = Nothing
-    , _gvnpdComparisonType = Nothing
-    }
-
--- | Value used for this comparison.
-gvnpdComparisonValue :: Lens' GoalVisitNumPagesDetails (Maybe Int64)
-gvnpdComparisonValue
-  = lens _gvnpdComparisonValue
-      (\ s a -> s{_gvnpdComparisonValue = a})
-      . mapping _Coerce
-
--- | Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or
--- EQUAL.
-gvnpdComparisonType :: Lens' GoalVisitNumPagesDetails (Maybe Text)
-gvnpdComparisonType
-  = lens _gvnpdComparisonType
-      (\ s a -> s{_gvnpdComparisonType = a})
-
-instance FromJSON GoalVisitNumPagesDetails where
-        parseJSON
-          = withObject "GoalVisitNumPagesDetails"
-              (\ o ->
-                 GoalVisitNumPagesDetails' <$>
-                   (o .:? "comparisonValue") <*>
-                     (o .:? "comparisonType"))
-
-instance ToJSON GoalVisitNumPagesDetails where
-        toJSON GoalVisitNumPagesDetails'{..}
-          = object
-              (catMaybes
-                 [("comparisonValue" .=) <$> _gvnpdComparisonValue,
-                  ("comparisonType" .=) <$> _gvnpdComparisonType])
-
---
--- /See:/ 'realtimeDataColumnHeadersItem' smart constructor.
-data RealtimeDataColumnHeadersItem = RealtimeDataColumnHeadersItem'
-    { _rdchiColumnType :: !(Maybe Text)
-    , _rdchiName       :: !(Maybe Text)
-    , _rdchiDataType   :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RealtimeDataColumnHeadersItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdchiColumnType'
---
--- * 'rdchiName'
---
--- * 'rdchiDataType'
-realtimeDataColumnHeadersItem
-    :: RealtimeDataColumnHeadersItem
-realtimeDataColumnHeadersItem =
-    RealtimeDataColumnHeadersItem'
-    { _rdchiColumnType = Nothing
-    , _rdchiName = Nothing
-    , _rdchiDataType = Nothing
-    }
-
--- | Column Type. Either DIMENSION or METRIC.
-rdchiColumnType :: Lens' RealtimeDataColumnHeadersItem (Maybe Text)
-rdchiColumnType
-  = lens _rdchiColumnType
-      (\ s a -> s{_rdchiColumnType = a})
-
--- | Column name.
-rdchiName :: Lens' RealtimeDataColumnHeadersItem (Maybe Text)
-rdchiName
-  = lens _rdchiName (\ s a -> s{_rdchiName = a})
-
--- | Data type. Dimension column headers have only STRING as the data type.
--- Metric column headers have data types for metric values such as INTEGER,
--- DOUBLE, CURRENCY etc.
-rdchiDataType :: Lens' RealtimeDataColumnHeadersItem (Maybe Text)
-rdchiDataType
-  = lens _rdchiDataType
-      (\ s a -> s{_rdchiDataType = a})
-
-instance FromJSON RealtimeDataColumnHeadersItem where
-        parseJSON
-          = withObject "RealtimeDataColumnHeadersItem"
-              (\ o ->
-                 RealtimeDataColumnHeadersItem' <$>
-                   (o .:? "columnType") <*> (o .:? "name") <*>
-                     (o .:? "dataType"))
-
-instance ToJSON RealtimeDataColumnHeadersItem where
-        toJSON RealtimeDataColumnHeadersItem'{..}
-          = object
-              (catMaybes
-                 [("columnType" .=) <$> _rdchiColumnType,
-                  ("name" .=) <$> _rdchiName,
-                  ("dataType" .=) <$> _rdchiDataType])
-
--- | JSON template for a linked account.
---
--- /See:/ 'accountRef' smart constructor.
-data AccountRef = AccountRef'
-    { _arKind :: !Text
-    , _arHref :: !(Maybe Text)
-    , _arName :: !(Maybe Text)
-    , _arId   :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountRef' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'arKind'
---
--- * 'arHref'
---
--- * 'arName'
---
--- * 'arId'
-accountRef
-    :: AccountRef
-accountRef =
-    AccountRef'
-    { _arKind = "analytics#accountRef"
-    , _arHref = Nothing
-    , _arName = Nothing
-    , _arId = Nothing
-    }
-
--- | Analytics account reference.
-arKind :: Lens' AccountRef Text
-arKind = lens _arKind (\ s a -> s{_arKind = a})
-
--- | Link for this account.
-arHref :: Lens' AccountRef (Maybe Text)
-arHref = lens _arHref (\ s a -> s{_arHref = a})
-
--- | Account name.
-arName :: Lens' AccountRef (Maybe Text)
-arName = lens _arName (\ s a -> s{_arName = a})
-
--- | Account ID.
-arId :: Lens' AccountRef (Maybe Text)
-arId = lens _arId (\ s a -> s{_arId = a})
-
-instance FromJSON AccountRef where
-        parseJSON
-          = withObject "AccountRef"
-              (\ o ->
-                 AccountRef' <$>
-                   (o .:? "kind" .!= "analytics#accountRef") <*>
-                     (o .:? "href")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON AccountRef where
-        toJSON AccountRef'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _arKind), ("href" .=) <$> _arHref,
-                  ("name" .=) <$> _arName, ("id" .=) <$> _arId])
-
--- | An entity AdWords link collection provides a list of GA-AdWords links
--- Each resource in this collection corresponds to a single link.
---
--- /See:/ 'entityAdWordsLinks' smart constructor.
-data EntityAdWordsLinks = EntityAdWordsLinks'
-    { _eawlNextLink     :: !(Maybe Text)
-    , _eawlItemsPerPage :: !(Maybe (Textual Int32))
-    , _eawlKind         :: !Text
-    , _eawlItems        :: !(Maybe [EntityAdWordsLink])
-    , _eawlTotalResults :: !(Maybe (Textual Int32))
-    , _eawlStartIndex   :: !(Maybe (Textual Int32))
-    , _eawlPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EntityAdWordsLinks' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eawlNextLink'
---
--- * 'eawlItemsPerPage'
---
--- * 'eawlKind'
---
--- * 'eawlItems'
---
--- * 'eawlTotalResults'
---
--- * 'eawlStartIndex'
---
--- * 'eawlPreviousLink'
-entityAdWordsLinks
-    :: EntityAdWordsLinks
-entityAdWordsLinks =
-    EntityAdWordsLinks'
-    { _eawlNextLink = Nothing
-    , _eawlItemsPerPage = Nothing
-    , _eawlKind = "analytics#entityAdWordsLinks"
-    , _eawlItems = Nothing
-    , _eawlTotalResults = Nothing
-    , _eawlStartIndex = Nothing
-    , _eawlPreviousLink = Nothing
-    }
-
--- | Next link for this AdWords link collection.
-eawlNextLink :: Lens' EntityAdWordsLinks (Maybe Text)
-eawlNextLink
-  = lens _eawlNextLink (\ s a -> s{_eawlNextLink = a})
-
--- | The maximum number of entries the response can contain, regardless of
--- the actual number of entries returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-eawlItemsPerPage :: Lens' EntityAdWordsLinks (Maybe Int32)
-eawlItemsPerPage
-  = lens _eawlItemsPerPage
-      (\ s a -> s{_eawlItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-eawlKind :: Lens' EntityAdWordsLinks Text
-eawlKind = lens _eawlKind (\ s a -> s{_eawlKind = a})
-
--- | A list of entity AdWords links.
-eawlItems :: Lens' EntityAdWordsLinks [EntityAdWordsLink]
-eawlItems
-  = lens _eawlItems (\ s a -> s{_eawlItems = a}) .
-      _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-eawlTotalResults :: Lens' EntityAdWordsLinks (Maybe Int32)
-eawlTotalResults
-  = lens _eawlTotalResults
-      (\ s a -> s{_eawlTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the entries, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-eawlStartIndex :: Lens' EntityAdWordsLinks (Maybe Int32)
-eawlStartIndex
-  = lens _eawlStartIndex
-      (\ s a -> s{_eawlStartIndex = a})
-      . mapping _Coerce
-
--- | Previous link for this AdWords link collection.
-eawlPreviousLink :: Lens' EntityAdWordsLinks (Maybe Text)
-eawlPreviousLink
-  = lens _eawlPreviousLink
-      (\ s a -> s{_eawlPreviousLink = a})
-
-instance FromJSON EntityAdWordsLinks where
-        parseJSON
-          = withObject "EntityAdWordsLinks"
-              (\ o ->
-                 EntityAdWordsLinks' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#entityAdWordsLinks")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON EntityAdWordsLinks where
-        toJSON EntityAdWordsLinks'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _eawlNextLink,
-                  ("itemsPerPage" .=) <$> _eawlItemsPerPage,
-                  Just ("kind" .= _eawlKind),
-                  ("items" .=) <$> _eawlItems,
-                  ("totalResults" .=) <$> _eawlTotalResults,
-                  ("startIndex" .=) <$> _eawlStartIndex,
-                  ("previousLink" .=) <$> _eawlPreviousLink])
-
--- | A view (profile) collection lists Analytics views (profiles) to which
--- the user has access. Each resource in the collection corresponds to a
--- single Analytics view (profile).
---
--- /See:/ 'proFiles' smart constructor.
-data ProFiles = ProFiles'
-    { _pfNextLink     :: !(Maybe Text)
-    , _pfItemsPerPage :: !(Maybe (Textual Int32))
-    , _pfKind         :: !Text
-    , _pfUsername     :: !(Maybe Text)
-    , _pfItems        :: !(Maybe [ProFile])
-    , _pfTotalResults :: !(Maybe (Textual Int32))
-    , _pfStartIndex   :: !(Maybe (Textual Int32))
-    , _pfPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ProFiles' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pfNextLink'
---
--- * 'pfItemsPerPage'
---
--- * 'pfKind'
---
--- * 'pfUsername'
---
--- * 'pfItems'
---
--- * 'pfTotalResults'
---
--- * 'pfStartIndex'
---
--- * 'pfPreviousLink'
-proFiles
-    :: ProFiles
-proFiles =
-    ProFiles'
-    { _pfNextLink = Nothing
-    , _pfItemsPerPage = Nothing
-    , _pfKind = "analytics#profiles"
-    , _pfUsername = Nothing
-    , _pfItems = Nothing
-    , _pfTotalResults = Nothing
-    , _pfStartIndex = Nothing
-    , _pfPreviousLink = Nothing
-    }
-
--- | Link to next page for this view (profile) collection.
-pfNextLink :: Lens' ProFiles (Maybe Text)
-pfNextLink
-  = lens _pfNextLink (\ s a -> s{_pfNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-pfItemsPerPage :: Lens' ProFiles (Maybe Int32)
-pfItemsPerPage
-  = lens _pfItemsPerPage
-      (\ s a -> s{_pfItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-pfKind :: Lens' ProFiles Text
-pfKind = lens _pfKind (\ s a -> s{_pfKind = a})
-
--- | Email ID of the authenticated user
-pfUsername :: Lens' ProFiles (Maybe Text)
-pfUsername
-  = lens _pfUsername (\ s a -> s{_pfUsername = a})
-
--- | A list of views (profiles).
-pfItems :: Lens' ProFiles [ProFile]
-pfItems
-  = lens _pfItems (\ s a -> s{_pfItems = a}) . _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-pfTotalResults :: Lens' ProFiles (Maybe Int32)
-pfTotalResults
-  = lens _pfTotalResults
-      (\ s a -> s{_pfTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-pfStartIndex :: Lens' ProFiles (Maybe Int32)
-pfStartIndex
-  = lens _pfStartIndex (\ s a -> s{_pfStartIndex = a})
-      . mapping _Coerce
-
--- | Link to previous page for this view (profile) collection.
-pfPreviousLink :: Lens' ProFiles (Maybe Text)
-pfPreviousLink
-  = lens _pfPreviousLink
-      (\ s a -> s{_pfPreviousLink = a})
-
-instance FromJSON ProFiles where
-        parseJSON
-          = withObject "ProFiles"
-              (\ o ->
-                 ProFiles' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#profiles")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON ProFiles where
-        toJSON ProFiles'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _pfNextLink,
-                  ("itemsPerPage" .=) <$> _pfItemsPerPage,
-                  Just ("kind" .= _pfKind),
-                  ("username" .=) <$> _pfUsername,
-                  ("items" .=) <$> _pfItems,
-                  ("totalResults" .=) <$> _pfTotalResults,
-                  ("startIndex" .=) <$> _pfStartIndex,
-                  ("previousLink" .=) <$> _pfPreviousLink])
-
--- | Request template for the delete upload data request.
---
--- /See:/ 'analyticsDataimportDeleteUploadDataRequest' smart constructor.
-newtype AnalyticsDataimportDeleteUploadDataRequest = AnalyticsDataimportDeleteUploadDataRequest'
-    { _addudrCustomDataImportUids :: Maybe [Text]
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AnalyticsDataimportDeleteUploadDataRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'addudrCustomDataImportUids'
-analyticsDataimportDeleteUploadDataRequest
-    :: AnalyticsDataimportDeleteUploadDataRequest
-analyticsDataimportDeleteUploadDataRequest =
-    AnalyticsDataimportDeleteUploadDataRequest'
-    { _addudrCustomDataImportUids = Nothing
-    }
-
--- | A list of upload UIDs.
-addudrCustomDataImportUids :: Lens' AnalyticsDataimportDeleteUploadDataRequest [Text]
-addudrCustomDataImportUids
-  = lens _addudrCustomDataImportUids
-      (\ s a -> s{_addudrCustomDataImportUids = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-         AnalyticsDataimportDeleteUploadDataRequest where
-        parseJSON
-          = withObject
-              "AnalyticsDataimportDeleteUploadDataRequest"
-              (\ o ->
-                 AnalyticsDataimportDeleteUploadDataRequest' <$>
-                   (o .:? "customDataImportUids" .!= mempty))
-
-instance ToJSON
-         AnalyticsDataimportDeleteUploadDataRequest where
-        toJSON
-          AnalyticsDataimportDeleteUploadDataRequest'{..}
-          = object
-              (catMaybes
-                 [("customDataImportUids" .=) <$>
-                    _addudrCustomDataImportUids])
-
--- | JSON template for Analytics Entity AdWords Link.
---
--- /See:/ 'entityAdWordsLink' smart constructor.
-data EntityAdWordsLink = EntityAdWordsLink'
-    { _entAdWordsAccounts :: !(Maybe [AdWordsAccount])
-    , _entProFileIds      :: !(Maybe [Text])
-    , _entKind            :: !Text
-    , _entSelfLink        :: !(Maybe Text)
-    , _entName            :: !(Maybe Text)
-    , _entId              :: !(Maybe Text)
-    , _entEntity          :: !(Maybe EntityAdWordsLinkEntity)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EntityAdWordsLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'entAdWordsAccounts'
---
--- * 'entProFileIds'
---
--- * 'entKind'
---
--- * 'entSelfLink'
---
--- * 'entName'
---
--- * 'entId'
---
--- * 'entEntity'
-entityAdWordsLink
-    :: EntityAdWordsLink
-entityAdWordsLink =
-    EntityAdWordsLink'
-    { _entAdWordsAccounts = Nothing
-    , _entProFileIds = Nothing
-    , _entKind = "analytics#entityAdWordsLink"
-    , _entSelfLink = Nothing
-    , _entName = Nothing
-    , _entId = Nothing
-    , _entEntity = Nothing
-    }
-
--- | A list of AdWords client accounts. These cannot be MCC accounts. This
--- field is required when creating an AdWords link. It cannot be empty.
-entAdWordsAccounts :: Lens' EntityAdWordsLink [AdWordsAccount]
-entAdWordsAccounts
-  = lens _entAdWordsAccounts
-      (\ s a -> s{_entAdWordsAccounts = a})
-      . _Default
-      . _Coerce
-
--- | IDs of linked Views (Profiles) represented as strings.
-entProFileIds :: Lens' EntityAdWordsLink [Text]
-entProFileIds
-  = lens _entProFileIds
-      (\ s a -> s{_entProFileIds = a})
-      . _Default
-      . _Coerce
-
--- | Resource type for entity AdWords link.
-entKind :: Lens' EntityAdWordsLink Text
-entKind = lens _entKind (\ s a -> s{_entKind = a})
-
--- | URL link for this Google Analytics - Google AdWords link.
-entSelfLink :: Lens' EntityAdWordsLink (Maybe Text)
-entSelfLink
-  = lens _entSelfLink (\ s a -> s{_entSelfLink = a})
-
--- | Name of the link. This field is required when creating an AdWords link.
-entName :: Lens' EntityAdWordsLink (Maybe Text)
-entName = lens _entName (\ s a -> s{_entName = a})
-
--- | Entity AdWords link ID
-entId :: Lens' EntityAdWordsLink (Maybe Text)
-entId = lens _entId (\ s a -> s{_entId = a})
-
--- | Web property being linked.
-entEntity :: Lens' EntityAdWordsLink (Maybe EntityAdWordsLinkEntity)
-entEntity
-  = lens _entEntity (\ s a -> s{_entEntity = a})
-
-instance FromJSON EntityAdWordsLink where
-        parseJSON
-          = withObject "EntityAdWordsLink"
-              (\ o ->
-                 EntityAdWordsLink' <$>
-                   (o .:? "adWordsAccounts" .!= mempty) <*>
-                     (o .:? "profileIds" .!= mempty)
-                     <*> (o .:? "kind" .!= "analytics#entityAdWordsLink")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "entity"))
-
-instance ToJSON EntityAdWordsLink where
-        toJSON EntityAdWordsLink'{..}
-          = object
-              (catMaybes
-                 [("adWordsAccounts" .=) <$> _entAdWordsAccounts,
-                  ("profileIds" .=) <$> _entProFileIds,
-                  Just ("kind" .= _entKind),
-                  ("selfLink" .=) <$> _entSelfLink,
-                  ("name" .=) <$> _entName, ("id" .=) <$> _entId,
-                  ("entity" .=) <$> _entEntity])
-
--- | Details for the filter of the type SEARCH_AND_REPLACE.
---
--- /See:/ 'filterSearchAndReplaceDetails' smart constructor.
-data FilterSearchAndReplaceDetails = FilterSearchAndReplaceDetails'
-    { _fsardFieldIndex    :: !(Maybe (Textual Int32))
-    , _fsardField         :: !(Maybe Text)
-    , _fsardSearchString  :: !(Maybe Text)
-    , _fsardReplaceString :: !(Maybe Text)
-    , _fsardCaseSensitive :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FilterSearchAndReplaceDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fsardFieldIndex'
---
--- * 'fsardField'
---
--- * 'fsardSearchString'
---
--- * 'fsardReplaceString'
---
--- * 'fsardCaseSensitive'
-filterSearchAndReplaceDetails
-    :: FilterSearchAndReplaceDetails
-filterSearchAndReplaceDetails =
-    FilterSearchAndReplaceDetails'
-    { _fsardFieldIndex = Nothing
-    , _fsardField = Nothing
-    , _fsardSearchString = Nothing
-    , _fsardReplaceString = Nothing
-    , _fsardCaseSensitive = Nothing
-    }
-
--- | The Index of the custom dimension. Required if field is a
--- CUSTOM_DIMENSION.
-fsardFieldIndex :: Lens' FilterSearchAndReplaceDetails (Maybe Int32)
-fsardFieldIndex
-  = lens _fsardFieldIndex
-      (\ s a -> s{_fsardFieldIndex = a})
-      . mapping _Coerce
-
--- | Field to use in the filter.
-fsardField :: Lens' FilterSearchAndReplaceDetails (Maybe Text)
-fsardField
-  = lens _fsardField (\ s a -> s{_fsardField = a})
-
--- | Term to search.
-fsardSearchString :: Lens' FilterSearchAndReplaceDetails (Maybe Text)
-fsardSearchString
-  = lens _fsardSearchString
-      (\ s a -> s{_fsardSearchString = a})
-
--- | Term to replace the search term with.
-fsardReplaceString :: Lens' FilterSearchAndReplaceDetails (Maybe Text)
-fsardReplaceString
-  = lens _fsardReplaceString
-      (\ s a -> s{_fsardReplaceString = a})
-
--- | Determines if the filter is case sensitive.
-fsardCaseSensitive :: Lens' FilterSearchAndReplaceDetails (Maybe Bool)
-fsardCaseSensitive
-  = lens _fsardCaseSensitive
-      (\ s a -> s{_fsardCaseSensitive = a})
-
-instance FromJSON FilterSearchAndReplaceDetails where
-        parseJSON
-          = withObject "FilterSearchAndReplaceDetails"
-              (\ o ->
-                 FilterSearchAndReplaceDetails' <$>
-                   (o .:? "fieldIndex") <*> (o .:? "field") <*>
-                     (o .:? "searchString")
-                     <*> (o .:? "replaceString")
-                     <*> (o .:? "caseSensitive"))
-
-instance ToJSON FilterSearchAndReplaceDetails where
-        toJSON FilterSearchAndReplaceDetails'{..}
-          = object
-              (catMaybes
-                 [("fieldIndex" .=) <$> _fsardFieldIndex,
-                  ("field" .=) <$> _fsardField,
-                  ("searchString" .=) <$> _fsardSearchString,
-                  ("replaceString" .=) <$> _fsardReplaceString,
-                  ("caseSensitive" .=) <$> _fsardCaseSensitive])
-
--- | Permissions the user has for this view (profile).
---
--- /See:/ 'proFilePermissions' smart constructor.
-newtype ProFilePermissions = ProFilePermissions'
-    { _pfpEffective :: Maybe [Text]
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ProFilePermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pfpEffective'
-proFilePermissions
-    :: ProFilePermissions
-proFilePermissions =
-    ProFilePermissions'
-    { _pfpEffective = Nothing
-    }
-
--- | All the permissions that the user has for this view (profile). These
--- include any implied permissions (e.g., EDIT implies VIEW) or inherited
--- permissions from the parent web property.
-pfpEffective :: Lens' ProFilePermissions [Text]
-pfpEffective
-  = lens _pfpEffective (\ s a -> s{_pfpEffective = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ProFilePermissions where
-        parseJSON
-          = withObject "ProFilePermissions"
-              (\ o ->
-                 ProFilePermissions' <$>
-                   (o .:? "effective" .!= mempty))
-
-instance ToJSON ProFilePermissions where
-        toJSON ProFilePermissions'{..}
-          = object
-              (catMaybes [("effective" .=) <$> _pfpEffective])
-
--- | JSON template for an Analytics view (profile).
---
--- /See:/ 'proFile' smart constructor.
-data ProFile = ProFile'
-    { _pParentLink                        :: !(Maybe ProFileParentLink)
-    , _pECommerceTracking                 :: !(Maybe Bool)
-    , _pSiteSearchCategoryParameters      :: !(Maybe Text)
-    , _pWebPropertyId                     :: !(Maybe Text)
-    , _pChildLink                         :: !(Maybe ProFileChildLink)
-    , _pSiteSearchQueryParameters         :: !(Maybe Text)
-    , _pKind                              :: !Text
-    , _pDefaultPage                       :: !(Maybe Text)
-    , _pCreated                           :: !(Maybe DateTime')
-    , _pSelfLink                          :: !(Maybe Text)
-    , _pAccountId                         :: !(Maybe Text)
-    , _pBotFilteringEnabled               :: !(Maybe Bool)
-    , _pName                              :: !(Maybe Text)
-    , _pCurrency                          :: !(Maybe Text)
-    , _pStarred                           :: !(Maybe Bool)
-    , _pInternalWebPropertyId             :: !(Maybe Text)
-    , _pId                                :: !(Maybe Text)
-    , _pUpdated                           :: !(Maybe DateTime')
-    , _pPermissions                       :: !(Maybe ProFilePermissions)
-    , _pWebsiteURL                        :: !(Maybe Text)
-    , _pType                              :: !(Maybe Text)
-    , _pStripSiteSearchCategoryParameters :: !(Maybe Bool)
-    , _pTimezone                          :: !(Maybe Text)
-    , _pExcludeQueryParameters            :: !(Maybe Text)
-    , _pEnhancedECommerceTracking         :: !(Maybe Bool)
-    , _pStripSiteSearchQueryParameters    :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ProFile' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pParentLink'
---
--- * 'pECommerceTracking'
---
--- * 'pSiteSearchCategoryParameters'
---
--- * 'pWebPropertyId'
---
--- * 'pChildLink'
---
--- * 'pSiteSearchQueryParameters'
---
--- * 'pKind'
---
--- * 'pDefaultPage'
---
--- * 'pCreated'
---
--- * 'pSelfLink'
---
--- * 'pAccountId'
---
--- * 'pBotFilteringEnabled'
---
--- * 'pName'
---
--- * 'pCurrency'
---
--- * 'pStarred'
---
--- * 'pInternalWebPropertyId'
---
--- * 'pId'
---
--- * 'pUpdated'
---
--- * 'pPermissions'
---
--- * 'pWebsiteURL'
---
--- * 'pType'
---
--- * 'pStripSiteSearchCategoryParameters'
---
--- * 'pTimezone'
---
--- * 'pExcludeQueryParameters'
---
--- * 'pEnhancedECommerceTracking'
---
--- * 'pStripSiteSearchQueryParameters'
-proFile
-    :: ProFile
-proFile =
-    ProFile'
-    { _pParentLink = Nothing
-    , _pECommerceTracking = Nothing
-    , _pSiteSearchCategoryParameters = Nothing
-    , _pWebPropertyId = Nothing
-    , _pChildLink = Nothing
-    , _pSiteSearchQueryParameters = Nothing
-    , _pKind = "analytics#profile"
-    , _pDefaultPage = Nothing
-    , _pCreated = Nothing
-    , _pSelfLink = Nothing
-    , _pAccountId = Nothing
-    , _pBotFilteringEnabled = Nothing
-    , _pName = Nothing
-    , _pCurrency = Nothing
-    , _pStarred = Nothing
-    , _pInternalWebPropertyId = Nothing
-    , _pId = Nothing
-    , _pUpdated = Nothing
-    , _pPermissions = Nothing
-    , _pWebsiteURL = Nothing
-    , _pType = Nothing
-    , _pStripSiteSearchCategoryParameters = Nothing
-    , _pTimezone = Nothing
-    , _pExcludeQueryParameters = Nothing
-    , _pEnhancedECommerceTracking = Nothing
-    , _pStripSiteSearchQueryParameters = Nothing
-    }
-
--- | Parent link for this view (profile). Points to the web property to which
--- this view (profile) belongs.
-pParentLink :: Lens' ProFile (Maybe ProFileParentLink)
-pParentLink
-  = lens _pParentLink (\ s a -> s{_pParentLink = a})
-
--- | Indicates whether ecommerce tracking is enabled for this view (profile).
-pECommerceTracking :: Lens' ProFile (Maybe Bool)
-pECommerceTracking
-  = lens _pECommerceTracking
-      (\ s a -> s{_pECommerceTracking = a})
-
--- | Site search category parameters for this view (profile).
-pSiteSearchCategoryParameters :: Lens' ProFile (Maybe Text)
-pSiteSearchCategoryParameters
-  = lens _pSiteSearchCategoryParameters
-      (\ s a -> s{_pSiteSearchCategoryParameters = a})
-
--- | Web property ID of the form UA-XXXXX-YY to which this view (profile)
--- belongs.
-pWebPropertyId :: Lens' ProFile (Maybe Text)
-pWebPropertyId
-  = lens _pWebPropertyId
-      (\ s a -> s{_pWebPropertyId = a})
-
--- | Child link for this view (profile). Points to the list of goals for this
--- view (profile).
-pChildLink :: Lens' ProFile (Maybe ProFileChildLink)
-pChildLink
-  = lens _pChildLink (\ s a -> s{_pChildLink = a})
-
--- | The site search query parameters for this view (profile).
-pSiteSearchQueryParameters :: Lens' ProFile (Maybe Text)
-pSiteSearchQueryParameters
-  = lens _pSiteSearchQueryParameters
-      (\ s a -> s{_pSiteSearchQueryParameters = a})
-
--- | Resource type for Analytics view (profile).
-pKind :: Lens' ProFile Text
-pKind = lens _pKind (\ s a -> s{_pKind = a})
-
--- | Default page for this view (profile).
-pDefaultPage :: Lens' ProFile (Maybe Text)
-pDefaultPage
-  = lens _pDefaultPage (\ s a -> s{_pDefaultPage = a})
-
--- | Time this view (profile) was created.
-pCreated :: Lens' ProFile (Maybe UTCTime)
-pCreated
-  = lens _pCreated (\ s a -> s{_pCreated = a}) .
-      mapping _DateTime
-
--- | Link for this view (profile).
-pSelfLink :: Lens' ProFile (Maybe Text)
-pSelfLink
-  = lens _pSelfLink (\ s a -> s{_pSelfLink = a})
-
--- | Account ID to which this view (profile) belongs.
-pAccountId :: Lens' ProFile (Maybe Text)
-pAccountId
-  = lens _pAccountId (\ s a -> s{_pAccountId = a})
-
--- | Indicates whether bot filtering is enabled for this view (profile).
-pBotFilteringEnabled :: Lens' ProFile (Maybe Bool)
-pBotFilteringEnabled
-  = lens _pBotFilteringEnabled
-      (\ s a -> s{_pBotFilteringEnabled = a})
-
--- | Name of this view (profile).
-pName :: Lens' ProFile (Maybe Text)
-pName = lens _pName (\ s a -> s{_pName = a})
-
--- | The currency type associated with this view (profile), defaults to USD.
--- The supported values are: USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK,
--- RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR,
--- CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP,
--- HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
-pCurrency :: Lens' ProFile (Maybe Text)
-pCurrency
-  = lens _pCurrency (\ s a -> s{_pCurrency = a})
-
--- | Indicates whether this view (profile) is starred or not.
-pStarred :: Lens' ProFile (Maybe Bool)
-pStarred = lens _pStarred (\ s a -> s{_pStarred = a})
-
--- | Internal ID for the web property to which this view (profile) belongs.
-pInternalWebPropertyId :: Lens' ProFile (Maybe Text)
-pInternalWebPropertyId
-  = lens _pInternalWebPropertyId
-      (\ s a -> s{_pInternalWebPropertyId = a})
-
--- | View (Profile) ID.
-pId :: Lens' ProFile (Maybe Text)
-pId = lens _pId (\ s a -> s{_pId = a})
-
--- | Time this view (profile) was last modified.
-pUpdated :: Lens' ProFile (Maybe UTCTime)
-pUpdated
-  = lens _pUpdated (\ s a -> s{_pUpdated = a}) .
-      mapping _DateTime
-
--- | Permissions the user has for this view (profile).
-pPermissions :: Lens' ProFile (Maybe ProFilePermissions)
-pPermissions
-  = lens _pPermissions (\ s a -> s{_pPermissions = a})
-
--- | Website URL for this view (profile).
-pWebsiteURL :: Lens' ProFile (Maybe Text)
-pWebsiteURL
-  = lens _pWebsiteURL (\ s a -> s{_pWebsiteURL = a})
-
--- | View (Profile) type. Supported types: WEB or APP.
-pType :: Lens' ProFile (Maybe Text)
-pType = lens _pType (\ s a -> s{_pType = a})
-
--- | Whether or not Analytics will strip search category parameters from the
--- URLs in your reports.
-pStripSiteSearchCategoryParameters :: Lens' ProFile (Maybe Bool)
-pStripSiteSearchCategoryParameters
-  = lens _pStripSiteSearchCategoryParameters
-      (\ s a -> s{_pStripSiteSearchCategoryParameters = a})
-
--- | Time zone for which this view (profile) has been configured. Time zones
--- are identified by strings from the TZ database.
-pTimezone :: Lens' ProFile (Maybe Text)
-pTimezone
-  = lens _pTimezone (\ s a -> s{_pTimezone = a})
-
--- | The query parameters that are excluded from this view (profile).
-pExcludeQueryParameters :: Lens' ProFile (Maybe Text)
-pExcludeQueryParameters
-  = lens _pExcludeQueryParameters
-      (\ s a -> s{_pExcludeQueryParameters = a})
-
--- | Indicates whether enhanced ecommerce tracking is enabled for this view
--- (profile). This property can only be enabled if ecommerce tracking is
--- enabled.
-pEnhancedECommerceTracking :: Lens' ProFile (Maybe Bool)
-pEnhancedECommerceTracking
-  = lens _pEnhancedECommerceTracking
-      (\ s a -> s{_pEnhancedECommerceTracking = a})
-
--- | Whether or not Analytics will strip search query parameters from the
--- URLs in your reports.
-pStripSiteSearchQueryParameters :: Lens' ProFile (Maybe Bool)
-pStripSiteSearchQueryParameters
-  = lens _pStripSiteSearchQueryParameters
-      (\ s a -> s{_pStripSiteSearchQueryParameters = a})
-
-instance FromJSON ProFile where
-        parseJSON
-          = withObject "ProFile"
-              (\ o ->
-                 ProFile' <$>
-                   (o .:? "parentLink") <*> (o .:? "eCommerceTracking")
-                     <*> (o .:? "siteSearchCategoryParameters")
-                     <*> (o .:? "webPropertyId")
-                     <*> (o .:? "childLink")
-                     <*> (o .:? "siteSearchQueryParameters")
-                     <*> (o .:? "kind" .!= "analytics#profile")
-                     <*> (o .:? "defaultPage")
-                     <*> (o .:? "created")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "botFilteringEnabled")
-                     <*> (o .:? "name")
-                     <*> (o .:? "currency")
-                     <*> (o .:? "starred")
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "permissions")
-                     <*> (o .:? "websiteUrl")
-                     <*> (o .:? "type")
-                     <*> (o .:? "stripSiteSearchCategoryParameters")
-                     <*> (o .:? "timezone")
-                     <*> (o .:? "excludeQueryParameters")
-                     <*> (o .:? "enhancedECommerceTracking")
-                     <*> (o .:? "stripSiteSearchQueryParameters"))
-
-instance ToJSON ProFile where
-        toJSON ProFile'{..}
-          = object
-              (catMaybes
-                 [("parentLink" .=) <$> _pParentLink,
-                  ("eCommerceTracking" .=) <$> _pECommerceTracking,
-                  ("siteSearchCategoryParameters" .=) <$>
-                    _pSiteSearchCategoryParameters,
-                  ("webPropertyId" .=) <$> _pWebPropertyId,
-                  ("childLink" .=) <$> _pChildLink,
-                  ("siteSearchQueryParameters" .=) <$>
-                    _pSiteSearchQueryParameters,
-                  Just ("kind" .= _pKind),
-                  ("defaultPage" .=) <$> _pDefaultPage,
-                  ("created" .=) <$> _pCreated,
-                  ("selfLink" .=) <$> _pSelfLink,
-                  ("accountId" .=) <$> _pAccountId,
-                  ("botFilteringEnabled" .=) <$> _pBotFilteringEnabled,
-                  ("name" .=) <$> _pName,
-                  ("currency" .=) <$> _pCurrency,
-                  ("starred" .=) <$> _pStarred,
-                  ("internalWebPropertyId" .=) <$>
-                    _pInternalWebPropertyId,
-                  ("id" .=) <$> _pId, ("updated" .=) <$> _pUpdated,
-                  ("permissions" .=) <$> _pPermissions,
-                  ("websiteUrl" .=) <$> _pWebsiteURL,
-                  ("type" .=) <$> _pType,
-                  ("stripSiteSearchCategoryParameters" .=) <$>
-                    _pStripSiteSearchCategoryParameters,
-                  ("timezone" .=) <$> _pTimezone,
-                  ("excludeQueryParameters" .=) <$>
-                    _pExcludeQueryParameters,
-                  ("enhancedECommerceTracking" .=) <$>
-                    _pEnhancedECommerceTracking,
-                  ("stripSiteSearchQueryParameters" .=) <$>
-                    _pStripSiteSearchQueryParameters])
-
--- | An AccountSummary collection lists a summary of accounts, properties and
--- views (profiles) to which the user has access. Each resource in the
--- collection corresponds to a single AccountSummary.
---
--- /See:/ 'accountSummaries' smart constructor.
-data AccountSummaries = AccountSummaries'
-    { _asNextLink     :: !(Maybe Text)
-    , _asItemsPerPage :: !(Maybe (Textual Int32))
-    , _asKind         :: !Text
-    , _asUsername     :: !(Maybe Text)
-    , _asItems        :: !(Maybe [AccountSummary])
-    , _asTotalResults :: !(Maybe (Textual Int32))
-    , _asStartIndex   :: !(Maybe (Textual Int32))
-    , _asPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountSummaries' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'asNextLink'
---
--- * 'asItemsPerPage'
---
--- * 'asKind'
---
--- * 'asUsername'
---
--- * 'asItems'
---
--- * 'asTotalResults'
---
--- * 'asStartIndex'
---
--- * 'asPreviousLink'
-accountSummaries
-    :: AccountSummaries
-accountSummaries =
-    AccountSummaries'
-    { _asNextLink = Nothing
-    , _asItemsPerPage = Nothing
-    , _asKind = "analytics#accountSummaries"
-    , _asUsername = Nothing
-    , _asItems = Nothing
-    , _asTotalResults = Nothing
-    , _asStartIndex = Nothing
-    , _asPreviousLink = Nothing
-    }
-
--- | Link to next page for this AccountSummary collection.
-asNextLink :: Lens' AccountSummaries (Maybe Text)
-asNextLink
-  = lens _asNextLink (\ s a -> s{_asNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-asItemsPerPage :: Lens' AccountSummaries (Maybe Int32)
-asItemsPerPage
-  = lens _asItemsPerPage
-      (\ s a -> s{_asItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-asKind :: Lens' AccountSummaries Text
-asKind = lens _asKind (\ s a -> s{_asKind = a})
-
--- | Email ID of the authenticated user
-asUsername :: Lens' AccountSummaries (Maybe Text)
-asUsername
-  = lens _asUsername (\ s a -> s{_asUsername = a})
-
--- | A list of AccountSummaries.
-asItems :: Lens' AccountSummaries [AccountSummary]
-asItems
-  = lens _asItems (\ s a -> s{_asItems = a}) . _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-asTotalResults :: Lens' AccountSummaries (Maybe Int32)
-asTotalResults
-  = lens _asTotalResults
-      (\ s a -> s{_asTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-asStartIndex :: Lens' AccountSummaries (Maybe Int32)
-asStartIndex
-  = lens _asStartIndex (\ s a -> s{_asStartIndex = a})
-      . mapping _Coerce
-
--- | Link to previous page for this AccountSummary collection.
-asPreviousLink :: Lens' AccountSummaries (Maybe Text)
-asPreviousLink
-  = lens _asPreviousLink
-      (\ s a -> s{_asPreviousLink = a})
-
-instance FromJSON AccountSummaries where
-        parseJSON
-          = withObject "AccountSummaries"
-              (\ o ->
-                 AccountSummaries' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#accountSummaries")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON AccountSummaries where
-        toJSON AccountSummaries'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _asNextLink,
-                  ("itemsPerPage" .=) <$> _asItemsPerPage,
-                  Just ("kind" .= _asKind),
-                  ("username" .=) <$> _asUsername,
-                  ("items" .=) <$> _asItems,
-                  ("totalResults" .=) <$> _asTotalResults,
-                  ("startIndex" .=) <$> _asStartIndex,
-                  ("previousLink" .=) <$> _asPreviousLink])
-
--- | Details for the goal of the type EVENT.
---
--- /See:/ 'goalEventDetails' smart constructor.
-data GoalEventDetails = GoalEventDetails'
-    { _gedUseEventValue   :: !(Maybe Bool)
-    , _gedEventConditions :: !(Maybe [GoalEventDetailsEventConditionsItem])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GoalEventDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gedUseEventValue'
---
--- * 'gedEventConditions'
-goalEventDetails
-    :: GoalEventDetails
-goalEventDetails =
-    GoalEventDetails'
-    { _gedUseEventValue = Nothing
-    , _gedEventConditions = Nothing
-    }
-
--- | Determines if the event value should be used as the value for this goal.
-gedUseEventValue :: Lens' GoalEventDetails (Maybe Bool)
-gedUseEventValue
-  = lens _gedUseEventValue
-      (\ s a -> s{_gedUseEventValue = a})
-
--- | List of event conditions.
-gedEventConditions :: Lens' GoalEventDetails [GoalEventDetailsEventConditionsItem]
-gedEventConditions
-  = lens _gedEventConditions
-      (\ s a -> s{_gedEventConditions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON GoalEventDetails where
-        parseJSON
-          = withObject "GoalEventDetails"
-              (\ o ->
-                 GoalEventDetails' <$>
-                   (o .:? "useEventValue") <*>
-                     (o .:? "eventConditions" .!= mempty))
-
-instance ToJSON GoalEventDetails where
-        toJSON GoalEventDetails'{..}
-          = object
-              (catMaybes
-                 [("useEventValue" .=) <$> _gedUseEventValue,
-                  ("eventConditions" .=) <$> _gedEventConditions])
-
--- | JSON template for an Analytics WebPropertySummary. WebPropertySummary
--- returns basic information (i.e., summary) for a web property.
---
--- /See:/ 'webPropertySummary' smart constructor.
-data WebPropertySummary = WebPropertySummary'
-    { _wpsKind                  :: !Text
-    , _wpsProFiles              :: !(Maybe [ProFileSummary])
-    , _wpsName                  :: !(Maybe Text)
-    , _wpsStarred               :: !(Maybe Bool)
-    , _wpsInternalWebPropertyId :: !(Maybe Text)
-    , _wpsId                    :: !(Maybe Text)
-    , _wpsWebsiteURL            :: !(Maybe Text)
-    , _wpsLevel                 :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'WebPropertySummary' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'wpsKind'
---
--- * 'wpsProFiles'
---
--- * 'wpsName'
---
--- * 'wpsStarred'
---
--- * 'wpsInternalWebPropertyId'
---
--- * 'wpsId'
---
--- * 'wpsWebsiteURL'
---
--- * 'wpsLevel'
-webPropertySummary
-    :: WebPropertySummary
-webPropertySummary =
-    WebPropertySummary'
-    { _wpsKind = "analytics#webPropertySummary"
-    , _wpsProFiles = Nothing
-    , _wpsName = Nothing
-    , _wpsStarred = Nothing
-    , _wpsInternalWebPropertyId = Nothing
-    , _wpsId = Nothing
-    , _wpsWebsiteURL = Nothing
-    , _wpsLevel = Nothing
-    }
-
--- | Resource type for Analytics WebPropertySummary.
-wpsKind :: Lens' WebPropertySummary Text
-wpsKind = lens _wpsKind (\ s a -> s{_wpsKind = a})
-
--- | List of profiles under this web property.
-wpsProFiles :: Lens' WebPropertySummary [ProFileSummary]
-wpsProFiles
-  = lens _wpsProFiles (\ s a -> s{_wpsProFiles = a}) .
-      _Default
-      . _Coerce
-
--- | Web property name.
-wpsName :: Lens' WebPropertySummary (Maybe Text)
-wpsName = lens _wpsName (\ s a -> s{_wpsName = a})
-
--- | Indicates whether this web property is starred or not.
-wpsStarred :: Lens' WebPropertySummary (Maybe Bool)
-wpsStarred
-  = lens _wpsStarred (\ s a -> s{_wpsStarred = a})
-
--- | Internal ID for this web property.
-wpsInternalWebPropertyId :: Lens' WebPropertySummary (Maybe Text)
-wpsInternalWebPropertyId
-  = lens _wpsInternalWebPropertyId
-      (\ s a -> s{_wpsInternalWebPropertyId = a})
-
--- | Web property ID of the form UA-XXXXX-YY.
-wpsId :: Lens' WebPropertySummary (Maybe Text)
-wpsId = lens _wpsId (\ s a -> s{_wpsId = a})
-
--- | Website url for this web property.
-wpsWebsiteURL :: Lens' WebPropertySummary (Maybe Text)
-wpsWebsiteURL
-  = lens _wpsWebsiteURL
-      (\ s a -> s{_wpsWebsiteURL = a})
-
--- | Level for this web property. Possible values are STANDARD or PREMIUM.
-wpsLevel :: Lens' WebPropertySummary (Maybe Text)
-wpsLevel = lens _wpsLevel (\ s a -> s{_wpsLevel = a})
-
-instance FromJSON WebPropertySummary where
-        parseJSON
-          = withObject "WebPropertySummary"
-              (\ o ->
-                 WebPropertySummary' <$>
-                   (o .:? "kind" .!= "analytics#webPropertySummary") <*>
-                     (o .:? "profiles" .!= mempty)
-                     <*> (o .:? "name")
-                     <*> (o .:? "starred")
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "websiteUrl")
-                     <*> (o .:? "level"))
-
-instance ToJSON WebPropertySummary where
-        toJSON WebPropertySummary'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _wpsKind),
-                  ("profiles" .=) <$> _wpsProFiles,
-                  ("name" .=) <$> _wpsName,
-                  ("starred" .=) <$> _wpsStarred,
-                  ("internalWebPropertyId" .=) <$>
-                    _wpsInternalWebPropertyId,
-                  ("id" .=) <$> _wpsId,
-                  ("websiteUrl" .=) <$> _wpsWebsiteURL,
-                  ("level" .=) <$> _wpsLevel])
-
--- | A filter collection lists filters created by users in an Analytics
--- account. Each resource in the collection corresponds to a filter.
---
--- /See:/ 'filters' smart constructor.
-data Filters = Filters'
-    { _fNextLink     :: !(Maybe Text)
-    , _fItemsPerPage :: !(Maybe (Textual Int32))
-    , _fKind         :: !Text
-    , _fUsername     :: !(Maybe Text)
-    , _fItems        :: !(Maybe [Filter])
-    , _fTotalResults :: !(Maybe (Textual Int32))
-    , _fStartIndex   :: !(Maybe (Textual Int32))
-    , _fPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Filters' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fNextLink'
---
--- * 'fItemsPerPage'
---
--- * 'fKind'
---
--- * 'fUsername'
---
--- * 'fItems'
---
--- * 'fTotalResults'
---
--- * 'fStartIndex'
---
--- * 'fPreviousLink'
-filters
-    :: Filters
-filters =
-    Filters'
-    { _fNextLink = Nothing
-    , _fItemsPerPage = Nothing
-    , _fKind = "analytics#filters"
-    , _fUsername = Nothing
-    , _fItems = Nothing
-    , _fTotalResults = Nothing
-    , _fStartIndex = Nothing
-    , _fPreviousLink = Nothing
-    }
-
--- | Link to next page for this filter collection.
-fNextLink :: Lens' Filters (Maybe Text)
-fNextLink
-  = lens _fNextLink (\ s a -> s{_fNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to
--- 1,000 with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-fItemsPerPage :: Lens' Filters (Maybe Int32)
-fItemsPerPage
-  = lens _fItemsPerPage
-      (\ s a -> s{_fItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-fKind :: Lens' Filters Text
-fKind = lens _fKind (\ s a -> s{_fKind = a})
-
--- | Email ID of the authenticated user
-fUsername :: Lens' Filters (Maybe Text)
-fUsername
-  = lens _fUsername (\ s a -> s{_fUsername = a})
-
--- | A list of filters.
-fItems :: Lens' Filters [Filter]
-fItems
-  = lens _fItems (\ s a -> s{_fItems = a}) . _Default .
-      _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-fTotalResults :: Lens' Filters (Maybe Int32)
-fTotalResults
-  = lens _fTotalResults
-      (\ s a -> s{_fTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-fStartIndex :: Lens' Filters (Maybe Int32)
-fStartIndex
-  = lens _fStartIndex (\ s a -> s{_fStartIndex = a}) .
-      mapping _Coerce
-
--- | Link to previous page for this filter collection.
-fPreviousLink :: Lens' Filters (Maybe Text)
-fPreviousLink
-  = lens _fPreviousLink
-      (\ s a -> s{_fPreviousLink = a})
-
-instance FromJSON Filters where
-        parseJSON
-          = withObject "Filters"
-              (\ o ->
-                 Filters' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#filters")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON Filters where
-        toJSON Filters'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _fNextLink,
-                  ("itemsPerPage" .=) <$> _fItemsPerPage,
-                  Just ("kind" .= _fKind),
-                  ("username" .=) <$> _fUsername,
-                  ("items" .=) <$> _fItems,
-                  ("totalResults" .=) <$> _fTotalResults,
-                  ("startIndex" .=) <$> _fStartIndex,
-                  ("previousLink" .=) <$> _fPreviousLink])
-
--- | Analytics data for a given view (profile).
---
--- /See:/ 'gaData' smart constructor.
-data GaData = GaData'
-    { _gdNextLink            :: !(Maybe Text)
-    , _gdSampleSpace         :: !(Maybe (Textual Int64))
-    , _gdItemsPerPage        :: !(Maybe (Textual Int32))
-    , _gdProFileInfo         :: !(Maybe GaDataProFileInfo)
-    , _gdKind                :: !Text
-    , _gdSampleSize          :: !(Maybe (Textual Int64))
-    , _gdRows                :: !(Maybe [[Text]])
-    , _gdSelfLink            :: !(Maybe Text)
-    , _gdQuery               :: !(Maybe GaDataQuery)
-    , _gdColumnHeaders       :: !(Maybe [GaDataColumnHeadersItem])
-    , _gdId                  :: !(Maybe Text)
-    , _gdTotalResults        :: !(Maybe (Textual Int32))
-    , _gdDataLastRefreshed   :: !(Maybe (Textual Int64))
-    , _gdDataTable           :: !(Maybe GaDataDataTable)
-    , _gdContainsSampledData :: !(Maybe Bool)
-    , _gdTotalsForAllResults :: !(Maybe GaDataTotalsForAllResults)
-    , _gdPreviousLink        :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GaData' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gdNextLink'
---
--- * 'gdSampleSpace'
---
--- * 'gdItemsPerPage'
---
--- * 'gdProFileInfo'
---
--- * 'gdKind'
---
--- * 'gdSampleSize'
---
--- * 'gdRows'
---
--- * 'gdSelfLink'
---
--- * 'gdQuery'
---
--- * 'gdColumnHeaders'
---
--- * 'gdId'
---
--- * 'gdTotalResults'
---
--- * 'gdDataLastRefreshed'
---
--- * 'gdDataTable'
---
--- * 'gdContainsSampledData'
---
--- * 'gdTotalsForAllResults'
---
--- * 'gdPreviousLink'
-gaData
-    :: GaData
-gaData =
-    GaData'
-    { _gdNextLink = Nothing
-    , _gdSampleSpace = Nothing
-    , _gdItemsPerPage = Nothing
-    , _gdProFileInfo = Nothing
-    , _gdKind = "analytics#gaData"
-    , _gdSampleSize = Nothing
-    , _gdRows = Nothing
-    , _gdSelfLink = Nothing
-    , _gdQuery = Nothing
-    , _gdColumnHeaders = Nothing
-    , _gdId = Nothing
-    , _gdTotalResults = Nothing
-    , _gdDataLastRefreshed = Nothing
-    , _gdDataTable = Nothing
-    , _gdContainsSampledData = Nothing
-    , _gdTotalsForAllResults = Nothing
-    , _gdPreviousLink = Nothing
-    }
-
--- | Link to next page for this Analytics data query.
-gdNextLink :: Lens' GaData (Maybe Text)
-gdNextLink
-  = lens _gdNextLink (\ s a -> s{_gdNextLink = a})
-
--- | Total size of the sample space from which the samples were selected.
-gdSampleSpace :: Lens' GaData (Maybe Int64)
-gdSampleSpace
-  = lens _gdSampleSpace
-      (\ s a -> s{_gdSampleSpace = a})
-      . mapping _Coerce
-
--- | The maximum number of rows the response can contain, regardless of the
--- actual number of rows returned. Its value ranges from 1 to 10,000 with a
--- value of 1000 by default, or otherwise specified by the max-results
--- query parameter.
-gdItemsPerPage :: Lens' GaData (Maybe Int32)
-gdItemsPerPage
-  = lens _gdItemsPerPage
-      (\ s a -> s{_gdItemsPerPage = a})
-      . mapping _Coerce
-
--- | Information for the view (profile), for which the Analytics data was
--- requested.
-gdProFileInfo :: Lens' GaData (Maybe GaDataProFileInfo)
-gdProFileInfo
-  = lens _gdProFileInfo
-      (\ s a -> s{_gdProFileInfo = a})
-
--- | Resource type.
-gdKind :: Lens' GaData Text
-gdKind = lens _gdKind (\ s a -> s{_gdKind = a})
-
--- | The number of samples used to calculate the result.
-gdSampleSize :: Lens' GaData (Maybe Int64)
-gdSampleSize
-  = lens _gdSampleSize (\ s a -> s{_gdSampleSize = a})
-      . mapping _Coerce
-
--- | Analytics data rows, where each row contains a list of dimension values
--- followed by the metric values. The order of dimensions and metrics is
--- same as specified in the request.
-gdRows :: Lens' GaData [[Text]]
-gdRows
-  = lens _gdRows (\ s a -> s{_gdRows = a}) . _Default .
-      _Coerce
-
--- | Link to this page.
-gdSelfLink :: Lens' GaData (Maybe Text)
-gdSelfLink
-  = lens _gdSelfLink (\ s a -> s{_gdSelfLink = a})
-
--- | Analytics data request query parameters.
-gdQuery :: Lens' GaData (Maybe GaDataQuery)
-gdQuery = lens _gdQuery (\ s a -> s{_gdQuery = a})
-
--- | Column headers that list dimension names followed by the metric names.
--- The order of dimensions and metrics is same as specified in the request.
-gdColumnHeaders :: Lens' GaData [GaDataColumnHeadersItem]
-gdColumnHeaders
-  = lens _gdColumnHeaders
-      (\ s a -> s{_gdColumnHeaders = a})
-      . _Default
-      . _Coerce
-
--- | Unique ID for this data response.
-gdId :: Lens' GaData (Maybe Text)
-gdId = lens _gdId (\ s a -> s{_gdId = a})
-
--- | The total number of rows for the query, regardless of the number of rows
--- in the response.
-gdTotalResults :: Lens' GaData (Maybe Int32)
-gdTotalResults
-  = lens _gdTotalResults
-      (\ s a -> s{_gdTotalResults = a})
-      . mapping _Coerce
-
--- | The last refreshed time in seconds for Analytics data.
-gdDataLastRefreshed :: Lens' GaData (Maybe Int64)
-gdDataLastRefreshed
-  = lens _gdDataLastRefreshed
-      (\ s a -> s{_gdDataLastRefreshed = a})
-      . mapping _Coerce
-
-gdDataTable :: Lens' GaData (Maybe GaDataDataTable)
-gdDataTable
-  = lens _gdDataTable (\ s a -> s{_gdDataTable = a})
-
--- | Determines if Analytics data contains samples.
-gdContainsSampledData :: Lens' GaData (Maybe Bool)
-gdContainsSampledData
-  = lens _gdContainsSampledData
-      (\ s a -> s{_gdContainsSampledData = a})
-
--- | Total values for the requested metrics over all the results, not just
--- the results returned in this response. The order of the metric totals is
--- same as the metric order specified in the request.
-gdTotalsForAllResults :: Lens' GaData (Maybe GaDataTotalsForAllResults)
-gdTotalsForAllResults
-  = lens _gdTotalsForAllResults
-      (\ s a -> s{_gdTotalsForAllResults = a})
-
--- | Link to previous page for this Analytics data query.
-gdPreviousLink :: Lens' GaData (Maybe Text)
-gdPreviousLink
-  = lens _gdPreviousLink
-      (\ s a -> s{_gdPreviousLink = a})
-
-instance FromJSON GaData where
-        parseJSON
-          = withObject "GaData"
-              (\ o ->
-                 GaData' <$>
-                   (o .:? "nextLink") <*> (o .:? "sampleSpace") <*>
-                     (o .:? "itemsPerPage")
-                     <*> (o .:? "profileInfo")
-                     <*> (o .:? "kind" .!= "analytics#gaData")
-                     <*> (o .:? "sampleSize")
-                     <*> (o .:? "rows" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "query")
-                     <*> (o .:? "columnHeaders" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "dataLastRefreshed")
-                     <*> (o .:? "dataTable")
-                     <*> (o .:? "containsSampledData")
-                     <*> (o .:? "totalsForAllResults")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON GaData where
-        toJSON GaData'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _gdNextLink,
-                  ("sampleSpace" .=) <$> _gdSampleSpace,
-                  ("itemsPerPage" .=) <$> _gdItemsPerPage,
-                  ("profileInfo" .=) <$> _gdProFileInfo,
-                  Just ("kind" .= _gdKind),
-                  ("sampleSize" .=) <$> _gdSampleSize,
-                  ("rows" .=) <$> _gdRows,
-                  ("selfLink" .=) <$> _gdSelfLink,
-                  ("query" .=) <$> _gdQuery,
-                  ("columnHeaders" .=) <$> _gdColumnHeaders,
-                  ("id" .=) <$> _gdId,
-                  ("totalResults" .=) <$> _gdTotalResults,
-                  ("dataLastRefreshed" .=) <$> _gdDataLastRefreshed,
-                  ("dataTable" .=) <$> _gdDataTable,
-                  ("containsSampledData" .=) <$>
-                    _gdContainsSampledData,
-                  ("totalsForAllResults" .=) <$>
-                    _gdTotalsForAllResults,
-                  ("previousLink" .=) <$> _gdPreviousLink])
-
--- | Total values for the requested metrics over all the results, not just
--- the results returned in this response. The order of the metric totals is
--- same as the metric order specified in the request.
---
--- /See:/ 'realtimeDataTotalsForAllResults' smart constructor.
-newtype RealtimeDataTotalsForAllResults = RealtimeDataTotalsForAllResults'
-    { _rdtfarAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RealtimeDataTotalsForAllResults' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdtfarAddtional'
-realtimeDataTotalsForAllResults
-    :: HashMap Text Text -- ^ 'rdtfarAddtional'
-    -> RealtimeDataTotalsForAllResults
-realtimeDataTotalsForAllResults pRdtfarAddtional_ =
-    RealtimeDataTotalsForAllResults'
-    { _rdtfarAddtional = _Coerce # pRdtfarAddtional_
-    }
-
--- | Key-value pair for the total value of a metric. Key is the metric name
--- and the value is the total value for that metric.
-rdtfarAddtional :: Lens' RealtimeDataTotalsForAllResults (HashMap Text Text)
-rdtfarAddtional
-  = lens _rdtfarAddtional
-      (\ s a -> s{_rdtfarAddtional = a})
-      . _Coerce
-
-instance FromJSON RealtimeDataTotalsForAllResults
-         where
-        parseJSON
-          = withObject "RealtimeDataTotalsForAllResults"
-              (\ o ->
-                 RealtimeDataTotalsForAllResults' <$>
-                   (parseJSONObject o))
-
-instance ToJSON RealtimeDataTotalsForAllResults where
-        toJSON = toJSON . _rdtfarAddtional
-
--- | JSON template for an Analytics custom data source.
---
--- /See:/ 'customDataSource' smart constructor.
-data CustomDataSource = CustomDataSource'
-    { _cParentLink     :: !(Maybe CustomDataSourceParentLink)
-    , _cWebPropertyId  :: !(Maybe Text)
-    , _cChildLink      :: !(Maybe CustomDataSourceChildLink)
-    , _cKind           :: !Text
-    , _cCreated        :: !(Maybe DateTime')
-    , _cUploadType     :: !(Maybe Text)
-    , _cSchema         :: !(Maybe [Text])
-    , _cImportBehavior :: !(Maybe Text)
-    , _cSelfLink       :: !(Maybe Text)
-    , _cAccountId      :: !(Maybe Text)
-    , _cName           :: !(Maybe Text)
-    , _cId             :: !(Maybe Text)
-    , _cUpdated        :: !(Maybe DateTime')
-    , _cType           :: !(Maybe Text)
-    , _cDescription    :: !(Maybe Text)
-    , _cProFilesLinked :: !(Maybe [Text])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomDataSource' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cParentLink'
---
--- * 'cWebPropertyId'
---
--- * 'cChildLink'
---
--- * 'cKind'
---
--- * 'cCreated'
---
--- * 'cUploadType'
---
--- * 'cSchema'
---
--- * 'cImportBehavior'
---
--- * 'cSelfLink'
---
--- * 'cAccountId'
---
--- * 'cName'
---
--- * 'cId'
---
--- * 'cUpdated'
---
--- * 'cType'
---
--- * 'cDescription'
---
--- * 'cProFilesLinked'
-customDataSource
-    :: CustomDataSource
-customDataSource =
-    CustomDataSource'
-    { _cParentLink = Nothing
-    , _cWebPropertyId = Nothing
-    , _cChildLink = Nothing
-    , _cKind = "analytics#customDataSource"
-    , _cCreated = Nothing
-    , _cUploadType = Nothing
-    , _cSchema = Nothing
-    , _cImportBehavior = Nothing
-    , _cSelfLink = Nothing
-    , _cAccountId = Nothing
-    , _cName = Nothing
-    , _cId = Nothing
-    , _cUpdated = Nothing
-    , _cType = Nothing
-    , _cDescription = Nothing
-    , _cProFilesLinked = Nothing
-    }
-
--- | Parent link for this custom data source. Points to the web property to
--- which this custom data source belongs.
-cParentLink :: Lens' CustomDataSource (Maybe CustomDataSourceParentLink)
-cParentLink
-  = lens _cParentLink (\ s a -> s{_cParentLink = a})
-
--- | Web property ID of the form UA-XXXXX-YY to which this custom data source
--- belongs.
-cWebPropertyId :: Lens' CustomDataSource (Maybe Text)
-cWebPropertyId
-  = lens _cWebPropertyId
-      (\ s a -> s{_cWebPropertyId = a})
-
-cChildLink :: Lens' CustomDataSource (Maybe CustomDataSourceChildLink)
-cChildLink
-  = lens _cChildLink (\ s a -> s{_cChildLink = a})
-
--- | Resource type for Analytics custom data source.
-cKind :: Lens' CustomDataSource Text
-cKind = lens _cKind (\ s a -> s{_cKind = a})
-
--- | Time this custom data source was created.
-cCreated :: Lens' CustomDataSource (Maybe UTCTime)
-cCreated
-  = lens _cCreated (\ s a -> s{_cCreated = a}) .
-      mapping _DateTime
-
--- | Upload type of the custom data source.
-cUploadType :: Lens' CustomDataSource (Maybe Text)
-cUploadType
-  = lens _cUploadType (\ s a -> s{_cUploadType = a})
-
--- | Collection of schema headers of the custom data source.
-cSchema :: Lens' CustomDataSource [Text]
-cSchema
-  = lens _cSchema (\ s a -> s{_cSchema = a}) . _Default
-      . _Coerce
-
-cImportBehavior :: Lens' CustomDataSource (Maybe Text)
-cImportBehavior
-  = lens _cImportBehavior
-      (\ s a -> s{_cImportBehavior = a})
-
--- | Link for this Analytics custom data source.
-cSelfLink :: Lens' CustomDataSource (Maybe Text)
-cSelfLink
-  = lens _cSelfLink (\ s a -> s{_cSelfLink = a})
-
--- | Account ID to which this custom data source belongs.
-cAccountId :: Lens' CustomDataSource (Maybe Text)
-cAccountId
-  = lens _cAccountId (\ s a -> s{_cAccountId = a})
-
--- | Name of this custom data source.
-cName :: Lens' CustomDataSource (Maybe Text)
-cName = lens _cName (\ s a -> s{_cName = a})
-
--- | Custom data source ID.
-cId :: Lens' CustomDataSource (Maybe Text)
-cId = lens _cId (\ s a -> s{_cId = a})
-
--- | Time this custom data source was last modified.
-cUpdated :: Lens' CustomDataSource (Maybe UTCTime)
-cUpdated
-  = lens _cUpdated (\ s a -> s{_cUpdated = a}) .
-      mapping _DateTime
-
--- | Type of the custom data source.
-cType :: Lens' CustomDataSource (Maybe Text)
-cType = lens _cType (\ s a -> s{_cType = a})
-
--- | Description of custom data source.
-cDescription :: Lens' CustomDataSource (Maybe Text)
-cDescription
-  = lens _cDescription (\ s a -> s{_cDescription = a})
-
--- | IDs of views (profiles) linked to the custom data source.
-cProFilesLinked :: Lens' CustomDataSource [Text]
-cProFilesLinked
-  = lens _cProFilesLinked
-      (\ s a -> s{_cProFilesLinked = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON CustomDataSource where
-        parseJSON
-          = withObject "CustomDataSource"
-              (\ o ->
-                 CustomDataSource' <$>
-                   (o .:? "parentLink") <*> (o .:? "webPropertyId") <*>
-                     (o .:? "childLink")
-                     <*> (o .:? "kind" .!= "analytics#customDataSource")
-                     <*> (o .:? "created")
-                     <*> (o .:? "uploadType")
-                     <*> (o .:? "schema" .!= mempty)
-                     <*> (o .:? "importBehavior")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "type")
-                     <*> (o .:? "description")
-                     <*> (o .:? "profilesLinked" .!= mempty))
-
-instance ToJSON CustomDataSource where
-        toJSON CustomDataSource'{..}
-          = object
-              (catMaybes
-                 [("parentLink" .=) <$> _cParentLink,
-                  ("webPropertyId" .=) <$> _cWebPropertyId,
-                  ("childLink" .=) <$> _cChildLink,
-                  Just ("kind" .= _cKind),
-                  ("created" .=) <$> _cCreated,
-                  ("uploadType" .=) <$> _cUploadType,
-                  ("schema" .=) <$> _cSchema,
-                  ("importBehavior" .=) <$> _cImportBehavior,
-                  ("selfLink" .=) <$> _cSelfLink,
-                  ("accountId" .=) <$> _cAccountId,
-                  ("name" .=) <$> _cName, ("id" .=) <$> _cId,
-                  ("updated" .=) <$> _cUpdated, ("type" .=) <$> _cType,
-                  ("description" .=) <$> _cDescription,
-                  ("profilesLinked" .=) <$> _cProFilesLinked])
-
--- | JSON template for an Analytics account tree requests. The account tree
--- request is used in the provisioning api to create an account, property,
--- and view (profile). It contains the basic information required to make
--- these fields.
---
--- /See:/ 'accountTreeRequest' smart constructor.
-data AccountTreeRequest = AccountTreeRequest'
-    { _atrAccountSettings :: !(Maybe AccountTreeRequestAccountSettings)
-    , _atrWebPropertyName :: !(Maybe Text)
-    , _atrKind            :: !Text
-    , _atrAccountName     :: !(Maybe Text)
-    , _atrProFileName     :: !(Maybe Text)
-    , _atrWebsiteURL      :: !(Maybe Text)
-    , _atrTimezone        :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountTreeRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atrAccountSettings'
---
--- * 'atrWebPropertyName'
---
--- * 'atrKind'
---
--- * 'atrAccountName'
---
--- * 'atrProFileName'
---
--- * 'atrWebsiteURL'
---
--- * 'atrTimezone'
-accountTreeRequest
-    :: AccountTreeRequest
-accountTreeRequest =
-    AccountTreeRequest'
-    { _atrAccountSettings = Nothing
-    , _atrWebPropertyName = Nothing
-    , _atrKind = "analytics#accountTreeRequest"
-    , _atrAccountName = Nothing
-    , _atrProFileName = Nothing
-    , _atrWebsiteURL = Nothing
-    , _atrTimezone = Nothing
-    }
-
-atrAccountSettings :: Lens' AccountTreeRequest (Maybe AccountTreeRequestAccountSettings)
-atrAccountSettings
-  = lens _atrAccountSettings
-      (\ s a -> s{_atrAccountSettings = a})
-
-atrWebPropertyName :: Lens' AccountTreeRequest (Maybe Text)
-atrWebPropertyName
-  = lens _atrWebPropertyName
-      (\ s a -> s{_atrWebPropertyName = a})
-
--- | Resource type for account ticket.
-atrKind :: Lens' AccountTreeRequest Text
-atrKind = lens _atrKind (\ s a -> s{_atrKind = a})
-
-atrAccountName :: Lens' AccountTreeRequest (Maybe Text)
-atrAccountName
-  = lens _atrAccountName
-      (\ s a -> s{_atrAccountName = a})
-
-atrProFileName :: Lens' AccountTreeRequest (Maybe Text)
-atrProFileName
-  = lens _atrProFileName
-      (\ s a -> s{_atrProFileName = a})
-
-atrWebsiteURL :: Lens' AccountTreeRequest (Maybe Text)
-atrWebsiteURL
-  = lens _atrWebsiteURL
-      (\ s a -> s{_atrWebsiteURL = a})
-
-atrTimezone :: Lens' AccountTreeRequest (Maybe Text)
-atrTimezone
-  = lens _atrTimezone (\ s a -> s{_atrTimezone = a})
-
-instance FromJSON AccountTreeRequest where
-        parseJSON
-          = withObject "AccountTreeRequest"
-              (\ o ->
-                 AccountTreeRequest' <$>
-                   (o .:? "accountSettings") <*>
-                     (o .:? "webpropertyName")
-                     <*> (o .:? "kind" .!= "analytics#accountTreeRequest")
-                     <*> (o .:? "accountName")
-                     <*> (o .:? "profileName")
-                     <*> (o .:? "websiteUrl")
-                     <*> (o .:? "timezone"))
-
-instance ToJSON AccountTreeRequest where
-        toJSON AccountTreeRequest'{..}
-          = object
-              (catMaybes
-                 [("accountSettings" .=) <$> _atrAccountSettings,
-                  ("webpropertyName" .=) <$> _atrWebPropertyName,
-                  Just ("kind" .= _atrKind),
-                  ("accountName" .=) <$> _atrAccountName,
-                  ("profileName" .=) <$> _atrProFileName,
-                  ("websiteUrl" .=) <$> _atrWebsiteURL,
-                  ("timezone" .=) <$> _atrTimezone])
-
--- | JSON template for a web property reference.
---
--- /See:/ 'webPropertyRef' smart constructor.
-data WebPropertyRef = WebPropertyRef'
-    { _wprKind                  :: !Text
-    , _wprHref                  :: !(Maybe Text)
-    , _wprAccountId             :: !(Maybe Text)
-    , _wprName                  :: !(Maybe Text)
-    , _wprInternalWebPropertyId :: !(Maybe Text)
-    , _wprId                    :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'WebPropertyRef' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'wprKind'
---
--- * 'wprHref'
---
--- * 'wprAccountId'
---
--- * 'wprName'
---
--- * 'wprInternalWebPropertyId'
---
--- * 'wprId'
-webPropertyRef
-    :: WebPropertyRef
-webPropertyRef =
-    WebPropertyRef'
-    { _wprKind = "analytics#webPropertyRef"
-    , _wprHref = Nothing
-    , _wprAccountId = Nothing
-    , _wprName = Nothing
-    , _wprInternalWebPropertyId = Nothing
-    , _wprId = Nothing
-    }
-
--- | Analytics web property reference.
-wprKind :: Lens' WebPropertyRef Text
-wprKind = lens _wprKind (\ s a -> s{_wprKind = a})
-
--- | Link for this web property.
-wprHref :: Lens' WebPropertyRef (Maybe Text)
-wprHref = lens _wprHref (\ s a -> s{_wprHref = a})
-
--- | Account ID to which this web property belongs.
-wprAccountId :: Lens' WebPropertyRef (Maybe Text)
-wprAccountId
-  = lens _wprAccountId (\ s a -> s{_wprAccountId = a})
-
--- | Name of this web property.
-wprName :: Lens' WebPropertyRef (Maybe Text)
-wprName = lens _wprName (\ s a -> s{_wprName = a})
-
--- | Internal ID for this web property.
-wprInternalWebPropertyId :: Lens' WebPropertyRef (Maybe Text)
-wprInternalWebPropertyId
-  = lens _wprInternalWebPropertyId
-      (\ s a -> s{_wprInternalWebPropertyId = a})
-
--- | Web property ID of the form UA-XXXXX-YY.
-wprId :: Lens' WebPropertyRef (Maybe Text)
-wprId = lens _wprId (\ s a -> s{_wprId = a})
-
-instance FromJSON WebPropertyRef where
-        parseJSON
-          = withObject "WebPropertyRef"
-              (\ o ->
-                 WebPropertyRef' <$>
-                   (o .:? "kind" .!= "analytics#webPropertyRef") <*>
-                     (o .:? "href")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "id"))
-
-instance ToJSON WebPropertyRef where
-        toJSON WebPropertyRef'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _wprKind), ("href" .=) <$> _wprHref,
-                  ("accountId" .=) <$> _wprAccountId,
-                  ("name" .=) <$> _wprName,
-                  ("internalWebPropertyId" .=) <$>
-                    _wprInternalWebPropertyId,
-                  ("id" .=) <$> _wprId])
-
--- | JSON template for an Analytics Remarketing Audience Foreign Link.
---
--- /See:/ 'linkedForeignAccount' smart constructor.
-data LinkedForeignAccount = LinkedForeignAccount'
-    { _lfaStatus                :: !(Maybe Text)
-    , _lfaWebPropertyId         :: !(Maybe Text)
-    , _lfaKind                  :: !Text
-    , _lfaEligibleForSearch     :: !(Maybe Bool)
-    , _lfaAccountId             :: !(Maybe Text)
-    , _lfaRemarketingAudienceId :: !(Maybe Text)
-    , _lfaLinkedAccountId       :: !(Maybe Text)
-    , _lfaInternalWebPropertyId :: !(Maybe Text)
-    , _lfaId                    :: !(Maybe Text)
-    , _lfaType                  :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'LinkedForeignAccount' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lfaStatus'
---
--- * 'lfaWebPropertyId'
---
--- * 'lfaKind'
---
--- * 'lfaEligibleForSearch'
---
--- * 'lfaAccountId'
---
--- * 'lfaRemarketingAudienceId'
---
--- * 'lfaLinkedAccountId'
---
--- * 'lfaInternalWebPropertyId'
---
--- * 'lfaId'
---
--- * 'lfaType'
-linkedForeignAccount
-    :: LinkedForeignAccount
-linkedForeignAccount =
-    LinkedForeignAccount'
-    { _lfaStatus = Nothing
-    , _lfaWebPropertyId = Nothing
-    , _lfaKind = "analytics#linkedForeignAccount"
-    , _lfaEligibleForSearch = Nothing
-    , _lfaAccountId = Nothing
-    , _lfaRemarketingAudienceId = Nothing
-    , _lfaLinkedAccountId = Nothing
-    , _lfaInternalWebPropertyId = Nothing
-    , _lfaId = Nothing
-    , _lfaType = Nothing
-    }
-
--- | The status of this foreign account link.
-lfaStatus :: Lens' LinkedForeignAccount (Maybe Text)
-lfaStatus
-  = lens _lfaStatus (\ s a -> s{_lfaStatus = a})
-
--- | Web property ID of the form UA-XXXXX-YY to which this linked foreign
--- account belongs.
-lfaWebPropertyId :: Lens' LinkedForeignAccount (Maybe Text)
-lfaWebPropertyId
-  = lens _lfaWebPropertyId
-      (\ s a -> s{_lfaWebPropertyId = a})
-
--- | Resource type for linked foreign account.
-lfaKind :: Lens' LinkedForeignAccount Text
-lfaKind = lens _lfaKind (\ s a -> s{_lfaKind = a})
-
--- | Boolean indicating whether this is eligible for search.
-lfaEligibleForSearch :: Lens' LinkedForeignAccount (Maybe Bool)
-lfaEligibleForSearch
-  = lens _lfaEligibleForSearch
-      (\ s a -> s{_lfaEligibleForSearch = a})
-
--- | Account ID to which this linked foreign account belongs.
-lfaAccountId :: Lens' LinkedForeignAccount (Maybe Text)
-lfaAccountId
-  = lens _lfaAccountId (\ s a -> s{_lfaAccountId = a})
-
--- | Remarketing audience ID to which this linked foreign account belongs.
-lfaRemarketingAudienceId :: Lens' LinkedForeignAccount (Maybe Text)
-lfaRemarketingAudienceId
-  = lens _lfaRemarketingAudienceId
-      (\ s a -> s{_lfaRemarketingAudienceId = a})
-
--- | The foreign account ID. For example the an AdWords \`linkedAccountId\`
--- has the following format XXX-XXX-XXXX.
-lfaLinkedAccountId :: Lens' LinkedForeignAccount (Maybe Text)
-lfaLinkedAccountId
-  = lens _lfaLinkedAccountId
-      (\ s a -> s{_lfaLinkedAccountId = a})
-
--- | Internal ID for the web property to which this linked foreign account
--- belongs.
-lfaInternalWebPropertyId :: Lens' LinkedForeignAccount (Maybe Text)
-lfaInternalWebPropertyId
-  = lens _lfaInternalWebPropertyId
-      (\ s a -> s{_lfaInternalWebPropertyId = a})
-
--- | Entity ad account link ID.
-lfaId :: Lens' LinkedForeignAccount (Maybe Text)
-lfaId = lens _lfaId (\ s a -> s{_lfaId = a})
-
--- | The type of the foreign account. For example, \`ADWORDS_LINKS\`,
--- \`DBM_LINKS\`, \`MCC_LINKS\` or \`OPTIMIZE\`.
-lfaType :: Lens' LinkedForeignAccount (Maybe Text)
-lfaType = lens _lfaType (\ s a -> s{_lfaType = a})
-
-instance FromJSON LinkedForeignAccount where
-        parseJSON
-          = withObject "LinkedForeignAccount"
-              (\ o ->
-                 LinkedForeignAccount' <$>
-                   (o .:? "status") <*> (o .:? "webPropertyId") <*>
-                     (o .:? "kind" .!= "analytics#linkedForeignAccount")
-                     <*> (o .:? "eligibleForSearch")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "remarketingAudienceId")
-                     <*> (o .:? "linkedAccountId")
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "type"))
-
-instance ToJSON LinkedForeignAccount where
-        toJSON LinkedForeignAccount'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _lfaStatus,
-                  ("webPropertyId" .=) <$> _lfaWebPropertyId,
-                  Just ("kind" .= _lfaKind),
-                  ("eligibleForSearch" .=) <$> _lfaEligibleForSearch,
-                  ("accountId" .=) <$> _lfaAccountId,
-                  ("remarketingAudienceId" .=) <$>
-                    _lfaRemarketingAudienceId,
-                  ("linkedAccountId" .=) <$> _lfaLinkedAccountId,
-                  ("internalWebPropertyId" .=) <$>
-                    _lfaInternalWebPropertyId,
-                  ("id" .=) <$> _lfaId, ("type" .=) <$> _lfaType])
-
--- | A goal collection lists Analytics goals to which the user has access.
--- Each view (profile) can have a set of goals. Each resource in the Goal
--- collection corresponds to a single Analytics goal.
---
--- /See:/ 'goals' smart constructor.
-data Goals = Goals'
-    { _gNextLink     :: !(Maybe Text)
-    , _gItemsPerPage :: !(Maybe (Textual Int32))
-    , _gKind         :: !Text
-    , _gUsername     :: !(Maybe Text)
-    , _gItems        :: !(Maybe [Goal])
-    , _gTotalResults :: !(Maybe (Textual Int32))
-    , _gStartIndex   :: !(Maybe (Textual Int32))
-    , _gPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Goals' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gNextLink'
---
--- * 'gItemsPerPage'
---
--- * 'gKind'
---
--- * 'gUsername'
---
--- * 'gItems'
---
--- * 'gTotalResults'
---
--- * 'gStartIndex'
---
--- * 'gPreviousLink'
-goals
-    :: Goals
-goals =
-    Goals'
-    { _gNextLink = Nothing
-    , _gItemsPerPage = Nothing
-    , _gKind = "analytics#goals"
-    , _gUsername = Nothing
-    , _gItems = Nothing
-    , _gTotalResults = Nothing
-    , _gStartIndex = Nothing
-    , _gPreviousLink = Nothing
-    }
-
--- | Link to next page for this goal collection.
-gNextLink :: Lens' Goals (Maybe Text)
-gNextLink
-  = lens _gNextLink (\ s a -> s{_gNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-gItemsPerPage :: Lens' Goals (Maybe Int32)
-gItemsPerPage
-  = lens _gItemsPerPage
-      (\ s a -> s{_gItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-gKind :: Lens' Goals Text
-gKind = lens _gKind (\ s a -> s{_gKind = a})
-
--- | Email ID of the authenticated user
-gUsername :: Lens' Goals (Maybe Text)
-gUsername
-  = lens _gUsername (\ s a -> s{_gUsername = a})
-
--- | A list of goals.
-gItems :: Lens' Goals [Goal]
-gItems
-  = lens _gItems (\ s a -> s{_gItems = a}) . _Default .
-      _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- resources in the result.
-gTotalResults :: Lens' Goals (Maybe Int32)
-gTotalResults
-  = lens _gTotalResults
-      (\ s a -> s{_gTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-gStartIndex :: Lens' Goals (Maybe Int32)
-gStartIndex
-  = lens _gStartIndex (\ s a -> s{_gStartIndex = a}) .
-      mapping _Coerce
-
--- | Link to previous page for this goal collection.
-gPreviousLink :: Lens' Goals (Maybe Text)
-gPreviousLink
-  = lens _gPreviousLink
-      (\ s a -> s{_gPreviousLink = a})
-
-instance FromJSON Goals where
-        parseJSON
-          = withObject "Goals"
-              (\ o ->
-                 Goals' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#goals")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON Goals where
-        toJSON Goals'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _gNextLink,
-                  ("itemsPerPage" .=) <$> _gItemsPerPage,
-                  Just ("kind" .= _gKind),
-                  ("username" .=) <$> _gUsername,
-                  ("items" .=) <$> _gItems,
-                  ("totalResults" .=) <$> _gTotalResults,
-                  ("startIndex" .=) <$> _gStartIndex,
-                  ("previousLink" .=) <$> _gPreviousLink])
-
--- | A union object representing a dimension or metric value. Only one of
--- \"primitiveValue\" or \"conversionPathValue\" attribute will be
--- populated.
---
--- /See:/ 'mcfDataRowsItemItem' smart constructor.
-data McfDataRowsItemItem = McfDataRowsItemItem'
-    { _mdriiPrimitiveValue      :: !(Maybe Text)
-    , _mdriiConversionPathValue :: !(Maybe [McfDataRowsItemItemConversionPathValueItem])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'McfDataRowsItemItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mdriiPrimitiveValue'
---
--- * 'mdriiConversionPathValue'
-mcfDataRowsItemItem
-    :: McfDataRowsItemItem
-mcfDataRowsItemItem =
-    McfDataRowsItemItem'
-    { _mdriiPrimitiveValue = Nothing
-    , _mdriiConversionPathValue = Nothing
-    }
-
--- | A primitive dimension value. A primitive metric value.
-mdriiPrimitiveValue :: Lens' McfDataRowsItemItem (Maybe Text)
-mdriiPrimitiveValue
-  = lens _mdriiPrimitiveValue
-      (\ s a -> s{_mdriiPrimitiveValue = a})
-
--- | A conversion path dimension value, containing a list of interactions
--- with their attributes.
-mdriiConversionPathValue :: Lens' McfDataRowsItemItem [McfDataRowsItemItemConversionPathValueItem]
-mdriiConversionPathValue
-  = lens _mdriiConversionPathValue
-      (\ s a -> s{_mdriiConversionPathValue = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON McfDataRowsItemItem where
-        parseJSON
-          = withObject "McfDataRowsItemItem"
-              (\ o ->
-                 McfDataRowsItemItem' <$>
-                   (o .:? "primitiveValue") <*>
-                     (o .:? "conversionPathValue" .!= mempty))
-
-instance ToJSON McfDataRowsItemItem where
-        toJSON McfDataRowsItemItem'{..}
-          = object
-              (catMaybes
-                 [("primitiveValue" .=) <$> _mdriiPrimitiveValue,
-                  ("conversionPathValue" .=) <$>
-                    _mdriiConversionPathValue])
-
--- | Permissions the user has for this account.
---
--- /See:/ 'accountPermissions' smart constructor.
-newtype AccountPermissions = AccountPermissions'
-    { _apEffective :: Maybe [Text]
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'apEffective'
-accountPermissions
-    :: AccountPermissions
-accountPermissions =
-    AccountPermissions'
-    { _apEffective = Nothing
-    }
-
--- | All the permissions that the user has for this account. These include
--- any implied permissions (e.g., EDIT implies VIEW).
-apEffective :: Lens' AccountPermissions [Text]
-apEffective
-  = lens _apEffective (\ s a -> s{_apEffective = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON AccountPermissions where
-        parseJSON
-          = withObject "AccountPermissions"
-              (\ o ->
-                 AccountPermissions' <$>
-                   (o .:? "effective" .!= mempty))
-
-instance ToJSON AccountPermissions where
-        toJSON AccountPermissions'{..}
-          = object
-              (catMaybes [("effective" .=) <$> _apEffective])
-
--- | Entity for this link. It can be an account, a web property, or a view
--- (profile).
---
--- /See:/ 'entityUserLinkEntity' smart constructor.
-data EntityUserLinkEntity = EntityUserLinkEntity'
-    { _euleProFileRef     :: !(Maybe ProFileRef)
-    , _euleAccountRef     :: !(Maybe AccountRef)
-    , _euleWebPropertyRef :: !(Maybe WebPropertyRef)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EntityUserLinkEntity' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'euleProFileRef'
---
--- * 'euleAccountRef'
---
--- * 'euleWebPropertyRef'
-entityUserLinkEntity
-    :: EntityUserLinkEntity
-entityUserLinkEntity =
-    EntityUserLinkEntity'
-    { _euleProFileRef = Nothing
-    , _euleAccountRef = Nothing
-    , _euleWebPropertyRef = Nothing
-    }
-
--- | View (Profile) for this link.
-euleProFileRef :: Lens' EntityUserLinkEntity (Maybe ProFileRef)
-euleProFileRef
-  = lens _euleProFileRef
-      (\ s a -> s{_euleProFileRef = a})
-
--- | Account for this link.
-euleAccountRef :: Lens' EntityUserLinkEntity (Maybe AccountRef)
-euleAccountRef
-  = lens _euleAccountRef
-      (\ s a -> s{_euleAccountRef = a})
-
--- | Web property for this link.
-euleWebPropertyRef :: Lens' EntityUserLinkEntity (Maybe WebPropertyRef)
-euleWebPropertyRef
-  = lens _euleWebPropertyRef
-      (\ s a -> s{_euleWebPropertyRef = a})
-
-instance FromJSON EntityUserLinkEntity where
-        parseJSON
-          = withObject "EntityUserLinkEntity"
-              (\ o ->
-                 EntityUserLinkEntity' <$>
-                   (o .:? "profileRef") <*> (o .:? "accountRef") <*>
-                     (o .:? "webPropertyRef"))
-
-instance ToJSON EntityUserLinkEntity where
-        toJSON EntityUserLinkEntity'{..}
-          = object
-              (catMaybes
-                 [("profileRef" .=) <$> _euleProFileRef,
-                  ("accountRef" .=) <$> _euleAccountRef,
-                  ("webPropertyRef" .=) <$> _euleWebPropertyRef])
-
--- | JSON template for Analytics account entry.
---
--- /See:/ 'account' smart constructor.
-data Account = Account'
-    { _accChildLink   :: !(Maybe AccountChildLink)
-    , _accKind        :: !Text
-    , _accCreated     :: !(Maybe DateTime')
-    , _accSelfLink    :: !(Maybe Text)
-    , _accName        :: !(Maybe Text)
-    , _accStarred     :: !(Maybe Bool)
-    , _accId          :: !(Maybe Text)
-    , _accUpdated     :: !(Maybe DateTime')
-    , _accPermissions :: !(Maybe AccountPermissions)
-    } 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:
---
--- * 'accChildLink'
---
--- * 'accKind'
---
--- * 'accCreated'
---
--- * 'accSelfLink'
---
--- * 'accName'
---
--- * 'accStarred'
---
--- * 'accId'
---
--- * 'accUpdated'
---
--- * 'accPermissions'
-account
-    :: Account
-account =
-    Account'
-    { _accChildLink = Nothing
-    , _accKind = "analytics#account"
-    , _accCreated = Nothing
-    , _accSelfLink = Nothing
-    , _accName = Nothing
-    , _accStarred = Nothing
-    , _accId = Nothing
-    , _accUpdated = Nothing
-    , _accPermissions = Nothing
-    }
-
--- | Child link for an account entry. Points to the list of web properties
--- for this account.
-accChildLink :: Lens' Account (Maybe AccountChildLink)
-accChildLink
-  = lens _accChildLink (\ s a -> s{_accChildLink = a})
-
--- | Resource type for Analytics account.
-accKind :: Lens' Account Text
-accKind = lens _accKind (\ s a -> s{_accKind = a})
-
--- | Time the account was created.
-accCreated :: Lens' Account (Maybe UTCTime)
-accCreated
-  = lens _accCreated (\ s a -> s{_accCreated = a}) .
-      mapping _DateTime
-
--- | Link for this account.
-accSelfLink :: Lens' Account (Maybe Text)
-accSelfLink
-  = lens _accSelfLink (\ s a -> s{_accSelfLink = a})
-
--- | Account name.
-accName :: Lens' Account (Maybe Text)
-accName = lens _accName (\ s a -> s{_accName = a})
-
--- | Indicates whether this account is starred or not.
-accStarred :: Lens' Account (Maybe Bool)
-accStarred
-  = lens _accStarred (\ s a -> s{_accStarred = a})
-
--- | Account ID.
-accId :: Lens' Account (Maybe Text)
-accId = lens _accId (\ s a -> s{_accId = a})
-
--- | Time the account was last modified.
-accUpdated :: Lens' Account (Maybe UTCTime)
-accUpdated
-  = lens _accUpdated (\ s a -> s{_accUpdated = a}) .
-      mapping _DateTime
-
--- | Permissions the user has for this account.
-accPermissions :: Lens' Account (Maybe AccountPermissions)
-accPermissions
-  = lens _accPermissions
-      (\ s a -> s{_accPermissions = a})
-
-instance FromJSON Account where
-        parseJSON
-          = withObject "Account"
-              (\ o ->
-                 Account' <$>
-                   (o .:? "childLink") <*>
-                     (o .:? "kind" .!= "analytics#account")
-                     <*> (o .:? "created")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "starred")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "permissions"))
-
-instance ToJSON Account where
-        toJSON Account'{..}
-          = object
-              (catMaybes
-                 [("childLink" .=) <$> _accChildLink,
-                  Just ("kind" .= _accKind),
-                  ("created" .=) <$> _accCreated,
-                  ("selfLink" .=) <$> _accSelfLink,
-                  ("name" .=) <$> _accName,
-                  ("starred" .=) <$> _accStarred, ("id" .=) <$> _accId,
-                  ("updated" .=) <$> _accUpdated,
-                  ("permissions" .=) <$> _accPermissions])
-
--- | JSON template for Analytics experiment resource.
---
--- /See:/ 'experiment' smart constructor.
-data Experiment = Experiment'
-    { _expParentLink                     :: !(Maybe ExperimentParentLink)
-    , _expEqualWeighting                 :: !(Maybe Bool)
-    , _expStatus                         :: !(Maybe Text)
-    , _expWebPropertyId                  :: !(Maybe Text)
-    , _expStartTime                      :: !(Maybe DateTime')
-    , _expSnippet                        :: !(Maybe Text)
-    , _expKind                           :: !Text
-    , _expCreated                        :: !(Maybe DateTime')
-    , _expReasonExperimentEnded          :: !(Maybe Text)
-    , _expTrafficCoverage                :: !(Maybe (Textual Double))
-    , _expEditableInGaUi                 :: !(Maybe Bool)
-    , _expMinimumExperimentLengthInDays  :: !(Maybe (Textual Int32))
-    , _expProFileId                      :: !(Maybe Text)
-    , _expOptimizationType               :: !(Maybe Text)
-    , _expSelfLink                       :: !(Maybe Text)
-    , _expAccountId                      :: !(Maybe Text)
-    , _expName                           :: !(Maybe Text)
-    , _expWinnerFound                    :: !(Maybe Bool)
-    , _expEndTime                        :: !(Maybe DateTime')
-    , _expVariations                     :: !(Maybe [ExperimentVariationsItem])
-    , _expInternalWebPropertyId          :: !(Maybe Text)
-    , _expId                             :: !(Maybe Text)
-    , _expUpdated                        :: !(Maybe DateTime')
-    , _expRewriteVariationURLsAsOriginal :: !(Maybe Bool)
-    , _expObjectiveMetric                :: !(Maybe Text)
-    , _expWinnerConfidenceLevel          :: !(Maybe (Textual Double))
-    , _expServingFramework               :: !(Maybe Text)
-    , _expDescription                    :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Experiment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'expParentLink'
---
--- * 'expEqualWeighting'
---
--- * 'expStatus'
---
--- * 'expWebPropertyId'
---
--- * 'expStartTime'
---
--- * 'expSnippet'
---
--- * 'expKind'
---
--- * 'expCreated'
---
--- * 'expReasonExperimentEnded'
---
--- * 'expTrafficCoverage'
---
--- * 'expEditableInGaUi'
---
--- * 'expMinimumExperimentLengthInDays'
---
--- * 'expProFileId'
---
--- * 'expOptimizationType'
---
--- * 'expSelfLink'
---
--- * 'expAccountId'
---
--- * 'expName'
---
--- * 'expWinnerFound'
---
--- * 'expEndTime'
---
--- * 'expVariations'
---
--- * 'expInternalWebPropertyId'
---
--- * 'expId'
---
--- * 'expUpdated'
---
--- * 'expRewriteVariationURLsAsOriginal'
---
--- * 'expObjectiveMetric'
---
--- * 'expWinnerConfidenceLevel'
---
--- * 'expServingFramework'
---
--- * 'expDescription'
-experiment
-    :: Experiment
-experiment =
-    Experiment'
-    { _expParentLink = Nothing
-    , _expEqualWeighting = Nothing
-    , _expStatus = Nothing
-    , _expWebPropertyId = Nothing
-    , _expStartTime = Nothing
-    , _expSnippet = Nothing
-    , _expKind = "analytics#experiment"
-    , _expCreated = Nothing
-    , _expReasonExperimentEnded = Nothing
-    , _expTrafficCoverage = Nothing
-    , _expEditableInGaUi = Nothing
-    , _expMinimumExperimentLengthInDays = Nothing
-    , _expProFileId = Nothing
-    , _expOptimizationType = Nothing
-    , _expSelfLink = Nothing
-    , _expAccountId = Nothing
-    , _expName = Nothing
-    , _expWinnerFound = Nothing
-    , _expEndTime = Nothing
-    , _expVariations = Nothing
-    , _expInternalWebPropertyId = Nothing
-    , _expId = Nothing
-    , _expUpdated = Nothing
-    , _expRewriteVariationURLsAsOriginal = Nothing
-    , _expObjectiveMetric = Nothing
-    , _expWinnerConfidenceLevel = Nothing
-    , _expServingFramework = Nothing
-    , _expDescription = Nothing
-    }
-
--- | Parent link for an experiment. Points to the view (profile) to which
--- this experiment belongs.
-expParentLink :: Lens' Experiment (Maybe ExperimentParentLink)
-expParentLink
-  = lens _expParentLink
-      (\ s a -> s{_expParentLink = a})
-
--- | Boolean specifying whether to distribute traffic evenly across all
--- variations. If the value is False, content experiments follows the
--- default behavior of adjusting traffic dynamically based on variation
--- performance. Optional -- defaults to False. This field may not be
--- changed for an experiment whose status is ENDED.
-expEqualWeighting :: Lens' Experiment (Maybe Bool)
-expEqualWeighting
-  = lens _expEqualWeighting
-      (\ s a -> s{_expEqualWeighting = a})
-
--- | Experiment status. Possible values: \"DRAFT\", \"READY_TO_RUN\",
--- \"RUNNING\", \"ENDED\". Experiments can be created in the \"DRAFT\",
--- \"READY_TO_RUN\" or \"RUNNING\" state. This field is required when
--- creating an experiment.
-expStatus :: Lens' Experiment (Maybe Text)
-expStatus
-  = lens _expStatus (\ s a -> s{_expStatus = a})
-
--- | Web property ID to which this experiment belongs. The web property ID is
--- of the form UA-XXXXX-YY. This field is read-only.
-expWebPropertyId :: Lens' Experiment (Maybe Text)
-expWebPropertyId
-  = lens _expWebPropertyId
-      (\ s a -> s{_expWebPropertyId = a})
-
--- | The starting time of the experiment (the time the status changed from
--- READY_TO_RUN to RUNNING). This field is present only if the experiment
--- has started. This field is read-only.
-expStartTime :: Lens' Experiment (Maybe UTCTime)
-expStartTime
-  = lens _expStartTime (\ s a -> s{_expStartTime = a})
-      . mapping _DateTime
-
--- | The snippet of code to include on the control page(s). This field is
--- read-only.
-expSnippet :: Lens' Experiment (Maybe Text)
-expSnippet
-  = lens _expSnippet (\ s a -> s{_expSnippet = a})
-
--- | Resource type for an Analytics experiment. This field is read-only.
-expKind :: Lens' Experiment Text
-expKind = lens _expKind (\ s a -> s{_expKind = a})
-
--- | Time the experiment was created. This field is read-only.
-expCreated :: Lens' Experiment (Maybe UTCTime)
-expCreated
-  = lens _expCreated (\ s a -> s{_expCreated = a}) .
-      mapping _DateTime
-
--- | Why the experiment ended. Possible values: \"STOPPED_BY_USER\",
--- \"WINNER_FOUND\", \"EXPERIMENT_EXPIRED\", \"ENDED_WITH_NO_WINNER\",
--- \"GOAL_OBJECTIVE_CHANGED\". \"ENDED_WITH_NO_WINNER\" means that the
--- experiment didn\'t expire but no winner was projected to be found. If
--- the experiment status is changed via the API to ENDED this field is set
--- to STOPPED_BY_USER. This field is read-only.
-expReasonExperimentEnded :: Lens' Experiment (Maybe Text)
-expReasonExperimentEnded
-  = lens _expReasonExperimentEnded
-      (\ s a -> s{_expReasonExperimentEnded = a})
-
--- | A floating-point number in (0, 1]. Specifies the fraction of the traffic
--- that participates in the experiment. Can be changed for a running
--- experiment. This field may not be changed for an experiments whose
--- status is ENDED.
-expTrafficCoverage :: Lens' Experiment (Maybe Double)
-expTrafficCoverage
-  = lens _expTrafficCoverage
-      (\ s a -> s{_expTrafficCoverage = a})
-      . mapping _Coerce
-
--- | If true, the end user will be able to edit the experiment via the Google
--- Analytics user interface.
-expEditableInGaUi :: Lens' Experiment (Maybe Bool)
-expEditableInGaUi
-  = lens _expEditableInGaUi
-      (\ s a -> s{_expEditableInGaUi = a})
-
--- | An integer number in [3, 90]. Specifies the minimum length of the
--- experiment. Can be changed for a running experiment. This field may not
--- be changed for an experiments whose status is ENDED.
-expMinimumExperimentLengthInDays :: Lens' Experiment (Maybe Int32)
-expMinimumExperimentLengthInDays
-  = lens _expMinimumExperimentLengthInDays
-      (\ s a -> s{_expMinimumExperimentLengthInDays = a})
-      . mapping _Coerce
-
--- | View (Profile) ID to which this experiment belongs. This field is
--- read-only.
-expProFileId :: Lens' Experiment (Maybe Text)
-expProFileId
-  = lens _expProFileId (\ s a -> s{_expProFileId = a})
-
--- | Whether the objectiveMetric should be minimized or maximized. Possible
--- values: \"MAXIMUM\", \"MINIMUM\". Optional--defaults to \"MAXIMUM\".
--- Cannot be specified without objectiveMetric. Cannot be modified when
--- status is \"RUNNING\" or \"ENDED\".
-expOptimizationType :: Lens' Experiment (Maybe Text)
-expOptimizationType
-  = lens _expOptimizationType
-      (\ s a -> s{_expOptimizationType = a})
-
--- | Link for this experiment. This field is read-only.
-expSelfLink :: Lens' Experiment (Maybe Text)
-expSelfLink
-  = lens _expSelfLink (\ s a -> s{_expSelfLink = a})
-
--- | Account ID to which this experiment belongs. This field is read-only.
-expAccountId :: Lens' Experiment (Maybe Text)
-expAccountId
-  = lens _expAccountId (\ s a -> s{_expAccountId = a})
-
--- | Experiment name. This field may not be changed for an experiment whose
--- status is ENDED. This field is required when creating an experiment.
-expName :: Lens' Experiment (Maybe Text)
-expName = lens _expName (\ s a -> s{_expName = a})
-
--- | Boolean specifying whether a winner has been found for this experiment.
--- This field is read-only.
-expWinnerFound :: Lens' Experiment (Maybe Bool)
-expWinnerFound
-  = lens _expWinnerFound
-      (\ s a -> s{_expWinnerFound = a})
-
--- | The ending time of the experiment (the time the status changed from
--- RUNNING to ENDED). This field is present only if the experiment has
--- ended. This field is read-only.
-expEndTime :: Lens' Experiment (Maybe UTCTime)
-expEndTime
-  = lens _expEndTime (\ s a -> s{_expEndTime = a}) .
-      mapping _DateTime
-
--- | Array of variations. The first variation in the array is the original.
--- The number of variations may not change once an experiment is in the
--- RUNNING state. At least two variations are required before status can be
--- set to RUNNING.
-expVariations :: Lens' Experiment [ExperimentVariationsItem]
-expVariations
-  = lens _expVariations
-      (\ s a -> s{_expVariations = a})
-      . _Default
-      . _Coerce
-
--- | Internal ID for the web property to which this experiment belongs. This
--- field is read-only.
-expInternalWebPropertyId :: Lens' Experiment (Maybe Text)
-expInternalWebPropertyId
-  = lens _expInternalWebPropertyId
-      (\ s a -> s{_expInternalWebPropertyId = a})
-
--- | Experiment ID. Required for patch and update. Disallowed for create.
-expId :: Lens' Experiment (Maybe Text)
-expId = lens _expId (\ s a -> s{_expId = a})
-
--- | Time the experiment was last modified. This field is read-only.
-expUpdated :: Lens' Experiment (Maybe UTCTime)
-expUpdated
-  = lens _expUpdated (\ s a -> s{_expUpdated = a}) .
-      mapping _DateTime
-
--- | Boolean specifying whether variations URLS are rewritten to match those
--- of the original. This field may not be changed for an experiments whose
--- status is ENDED.
-expRewriteVariationURLsAsOriginal :: Lens' Experiment (Maybe Bool)
-expRewriteVariationURLsAsOriginal
-  = lens _expRewriteVariationURLsAsOriginal
-      (\ s a -> s{_expRewriteVariationURLsAsOriginal = a})
-
--- | The metric that the experiment is optimizing. Valid values:
--- \"ga:goal(n)Completions\", \"ga:adsenseAdsClicks\",
--- \"ga:adsenseAdsViewed\", \"ga:adsenseRevenue\", \"ga:bounces\",
--- \"ga:pageviews\", \"ga:sessionDuration\", \"ga:transactions\",
--- \"ga:transactionRevenue\". This field is required if status is
--- \"RUNNING\" and servingFramework is one of \"REDIRECT\" or \"API\".
-expObjectiveMetric :: Lens' Experiment (Maybe Text)
-expObjectiveMetric
-  = lens _expObjectiveMetric
-      (\ s a -> s{_expObjectiveMetric = a})
-
--- | A floating-point number in (0, 1). Specifies the necessary confidence
--- level to choose a winner. This field may not be changed for an
--- experiments whose status is ENDED.
-expWinnerConfidenceLevel :: Lens' Experiment (Maybe Double)
-expWinnerConfidenceLevel
-  = lens _expWinnerConfidenceLevel
-      (\ s a -> s{_expWinnerConfidenceLevel = a})
-      . mapping _Coerce
-
--- | The framework used to serve the experiment variations and evaluate the
--- results. One of: - REDIRECT: Google Analytics redirects traffic to
--- different variation pages, reports the chosen variation and evaluates
--- the results. - API: Google Analytics chooses and reports the variation
--- to serve and evaluates the results; the caller is responsible for
--- serving the selected variation. - EXTERNAL: The variations will be
--- served externally and the chosen variation reported to Google Analytics.
--- The caller is responsible for serving the selected variation and
--- evaluating the results.
-expServingFramework :: Lens' Experiment (Maybe Text)
-expServingFramework
-  = lens _expServingFramework
-      (\ s a -> s{_expServingFramework = a})
-
--- | Notes about this experiment.
-expDescription :: Lens' Experiment (Maybe Text)
-expDescription
-  = lens _expDescription
-      (\ s a -> s{_expDescription = a})
-
-instance FromJSON Experiment where
-        parseJSON
-          = withObject "Experiment"
-              (\ o ->
-                 Experiment' <$>
-                   (o .:? "parentLink") <*> (o .:? "equalWeighting") <*>
-                     (o .:? "status")
-                     <*> (o .:? "webPropertyId")
-                     <*> (o .:? "startTime")
-                     <*> (o .:? "snippet")
-                     <*> (o .:? "kind" .!= "analytics#experiment")
-                     <*> (o .:? "created")
-                     <*> (o .:? "reasonExperimentEnded")
-                     <*> (o .:? "trafficCoverage")
-                     <*> (o .:? "editableInGaUi")
-                     <*> (o .:? "minimumExperimentLengthInDays")
-                     <*> (o .:? "profileId")
-                     <*> (o .:? "optimizationType")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "winnerFound")
-                     <*> (o .:? "endTime")
-                     <*> (o .:? "variations" .!= mempty)
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "rewriteVariationUrlsAsOriginal")
-                     <*> (o .:? "objectiveMetric")
-                     <*> (o .:? "winnerConfidenceLevel")
-                     <*> (o .:? "servingFramework")
-                     <*> (o .:? "description"))
-
-instance ToJSON Experiment where
-        toJSON Experiment'{..}
-          = object
-              (catMaybes
-                 [("parentLink" .=) <$> _expParentLink,
-                  ("equalWeighting" .=) <$> _expEqualWeighting,
-                  ("status" .=) <$> _expStatus,
-                  ("webPropertyId" .=) <$> _expWebPropertyId,
-                  ("startTime" .=) <$> _expStartTime,
-                  ("snippet" .=) <$> _expSnippet,
-                  Just ("kind" .= _expKind),
-                  ("created" .=) <$> _expCreated,
-                  ("reasonExperimentEnded" .=) <$>
-                    _expReasonExperimentEnded,
-                  ("trafficCoverage" .=) <$> _expTrafficCoverage,
-                  ("editableInGaUi" .=) <$> _expEditableInGaUi,
-                  ("minimumExperimentLengthInDays" .=) <$>
-                    _expMinimumExperimentLengthInDays,
-                  ("profileId" .=) <$> _expProFileId,
-                  ("optimizationType" .=) <$> _expOptimizationType,
-                  ("selfLink" .=) <$> _expSelfLink,
-                  ("accountId" .=) <$> _expAccountId,
-                  ("name" .=) <$> _expName,
-                  ("winnerFound" .=) <$> _expWinnerFound,
-                  ("endTime" .=) <$> _expEndTime,
-                  ("variations" .=) <$> _expVariations,
-                  ("internalWebPropertyId" .=) <$>
-                    _expInternalWebPropertyId,
-                  ("id" .=) <$> _expId, ("updated" .=) <$> _expUpdated,
-                  ("rewriteVariationUrlsAsOriginal" .=) <$>
-                    _expRewriteVariationURLsAsOriginal,
-                  ("objectiveMetric" .=) <$> _expObjectiveMetric,
-                  ("winnerConfidenceLevel" .=) <$>
-                    _expWinnerConfidenceLevel,
-                  ("servingFramework" .=) <$> _expServingFramework,
-                  ("description" .=) <$> _expDescription])
-
--- | An entity user link collection provides a list of Analytics ACL links
--- Each resource in this collection corresponds to a single link.
---
--- /See:/ 'entityUserLinks' smart constructor.
-data EntityUserLinks = EntityUserLinks'
-    { _eulNextLink     :: !(Maybe Text)
-    , _eulItemsPerPage :: !(Maybe (Textual Int32))
-    , _eulKind         :: !Text
-    , _eulItems        :: !(Maybe [EntityUserLink])
-    , _eulTotalResults :: !(Maybe (Textual Int32))
-    , _eulStartIndex   :: !(Maybe (Textual Int32))
-    , _eulPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EntityUserLinks' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eulNextLink'
---
--- * 'eulItemsPerPage'
---
--- * 'eulKind'
---
--- * 'eulItems'
---
--- * 'eulTotalResults'
---
--- * 'eulStartIndex'
---
--- * 'eulPreviousLink'
-entityUserLinks
-    :: EntityUserLinks
-entityUserLinks =
-    EntityUserLinks'
-    { _eulNextLink = Nothing
-    , _eulItemsPerPage = Nothing
-    , _eulKind = "analytics#entityUserLinks"
-    , _eulItems = Nothing
-    , _eulTotalResults = Nothing
-    , _eulStartIndex = Nothing
-    , _eulPreviousLink = Nothing
-    }
-
--- | Next link for this account collection.
-eulNextLink :: Lens' EntityUserLinks (Maybe Text)
-eulNextLink
-  = lens _eulNextLink (\ s a -> s{_eulNextLink = a})
-
--- | The maximum number of entries the response can contain, regardless of
--- the actual number of entries returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-eulItemsPerPage :: Lens' EntityUserLinks (Maybe Int32)
-eulItemsPerPage
-  = lens _eulItemsPerPage
-      (\ s a -> s{_eulItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-eulKind :: Lens' EntityUserLinks Text
-eulKind = lens _eulKind (\ s a -> s{_eulKind = a})
-
--- | A list of entity user links.
-eulItems :: Lens' EntityUserLinks [EntityUserLink]
-eulItems
-  = lens _eulItems (\ s a -> s{_eulItems = a}) .
-      _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-eulTotalResults :: Lens' EntityUserLinks (Maybe Int32)
-eulTotalResults
-  = lens _eulTotalResults
-      (\ s a -> s{_eulTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the entries, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-eulStartIndex :: Lens' EntityUserLinks (Maybe Int32)
-eulStartIndex
-  = lens _eulStartIndex
-      (\ s a -> s{_eulStartIndex = a})
-      . mapping _Coerce
-
--- | Previous link for this account collection.
-eulPreviousLink :: Lens' EntityUserLinks (Maybe Text)
-eulPreviousLink
-  = lens _eulPreviousLink
-      (\ s a -> s{_eulPreviousLink = a})
-
-instance FromJSON EntityUserLinks where
-        parseJSON
-          = withObject "EntityUserLinks"
-              (\ o ->
-                 EntityUserLinks' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#entityUserLinks")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON EntityUserLinks where
-        toJSON EntityUserLinks'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _eulNextLink,
-                  ("itemsPerPage" .=) <$> _eulItemsPerPage,
-                  Just ("kind" .= _eulKind),
-                  ("items" .=) <$> _eulItems,
-                  ("totalResults" .=) <$> _eulTotalResults,
-                  ("startIndex" .=) <$> _eulStartIndex,
-                  ("previousLink" .=) <$> _eulPreviousLink])
-
--- | JSON template for an AdWords account.
---
--- /See:/ 'adWordsAccount' smart constructor.
-data AdWordsAccount = AdWordsAccount'
-    { _awaAutoTaggingEnabled :: !(Maybe Bool)
-    , _awaKind               :: !Text
-    , _awaCustomerId         :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AdWordsAccount' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'awaAutoTaggingEnabled'
---
--- * 'awaKind'
---
--- * 'awaCustomerId'
-adWordsAccount
-    :: AdWordsAccount
-adWordsAccount =
-    AdWordsAccount'
-    { _awaAutoTaggingEnabled = Nothing
-    , _awaKind = "analytics#adWordsAccount"
-    , _awaCustomerId = Nothing
-    }
-
--- | True if auto-tagging is enabled on the AdWords account. Read-only after
--- the insert operation.
-awaAutoTaggingEnabled :: Lens' AdWordsAccount (Maybe Bool)
-awaAutoTaggingEnabled
-  = lens _awaAutoTaggingEnabled
-      (\ s a -> s{_awaAutoTaggingEnabled = a})
-
--- | Resource type for AdWords account.
-awaKind :: Lens' AdWordsAccount Text
-awaKind = lens _awaKind (\ s a -> s{_awaKind = a})
-
--- | Customer ID. This field is required when creating an AdWords link.
-awaCustomerId :: Lens' AdWordsAccount (Maybe Text)
-awaCustomerId
-  = lens _awaCustomerId
-      (\ s a -> s{_awaCustomerId = a})
-
-instance FromJSON AdWordsAccount where
-        parseJSON
-          = withObject "AdWordsAccount"
-              (\ o ->
-                 AdWordsAccount' <$>
-                   (o .:? "autoTaggingEnabled") <*>
-                     (o .:? "kind" .!= "analytics#adWordsAccount")
-                     <*> (o .:? "customerId"))
-
-instance ToJSON AdWordsAccount where
-        toJSON AdWordsAccount'{..}
-          = object
-              (catMaybes
-                 [("autoTaggingEnabled" .=) <$>
-                    _awaAutoTaggingEnabled,
-                  Just ("kind" .= _awaKind),
-                  ("customerId" .=) <$> _awaCustomerId])
-
--- | JSON template for a profile filter link.
---
--- /See:/ 'filterRef' smart constructor.
-data FilterRef = FilterRef'
-    { _frKind      :: !Text
-    , _frHref      :: !(Maybe Text)
-    , _frAccountId :: !(Maybe Text)
-    , _frName      :: !(Maybe Text)
-    , _frId        :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FilterRef' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frKind'
---
--- * 'frHref'
---
--- * 'frAccountId'
---
--- * 'frName'
---
--- * 'frId'
-filterRef
-    :: FilterRef
-filterRef =
-    FilterRef'
-    { _frKind = "analytics#filterRef"
-    , _frHref = Nothing
-    , _frAccountId = Nothing
-    , _frName = Nothing
-    , _frId = Nothing
-    }
-
--- | Kind value for filter reference.
-frKind :: Lens' FilterRef Text
-frKind = lens _frKind (\ s a -> s{_frKind = a})
-
--- | Link for this filter.
-frHref :: Lens' FilterRef (Maybe Text)
-frHref = lens _frHref (\ s a -> s{_frHref = a})
-
--- | Account ID to which this filter belongs.
-frAccountId :: Lens' FilterRef (Maybe Text)
-frAccountId
-  = lens _frAccountId (\ s a -> s{_frAccountId = a})
-
--- | Name of this filter.
-frName :: Lens' FilterRef (Maybe Text)
-frName = lens _frName (\ s a -> s{_frName = a})
-
--- | Filter ID.
-frId :: Lens' FilterRef (Maybe Text)
-frId = lens _frId (\ s a -> s{_frId = a})
-
-instance FromJSON FilterRef where
-        parseJSON
-          = withObject "FilterRef"
-              (\ o ->
-                 FilterRef' <$>
-                   (o .:? "kind" .!= "analytics#filterRef") <*>
-                     (o .:? "href")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id"))
-
-instance ToJSON FilterRef where
-        toJSON FilterRef'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _frKind), ("href" .=) <$> _frHref,
-                  ("accountId" .=) <$> _frAccountId,
-                  ("name" .=) <$> _frName, ("id" .=) <$> _frId])
-
--- | Details for the goal of the type VISIT_TIME_ON_SITE.
---
--- /See:/ 'goalVisitTimeOnSiteDetails' smart constructor.
-data GoalVisitTimeOnSiteDetails = GoalVisitTimeOnSiteDetails'
-    { _gvtosdComparisonValue :: !(Maybe (Textual Int64))
-    , _gvtosdComparisonType  :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GoalVisitTimeOnSiteDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gvtosdComparisonValue'
---
--- * 'gvtosdComparisonType'
-goalVisitTimeOnSiteDetails
-    :: GoalVisitTimeOnSiteDetails
-goalVisitTimeOnSiteDetails =
-    GoalVisitTimeOnSiteDetails'
-    { _gvtosdComparisonValue = Nothing
-    , _gvtosdComparisonType = Nothing
-    }
-
--- | Value used for this comparison.
-gvtosdComparisonValue :: Lens' GoalVisitTimeOnSiteDetails (Maybe Int64)
-gvtosdComparisonValue
-  = lens _gvtosdComparisonValue
-      (\ s a -> s{_gvtosdComparisonValue = a})
-      . mapping _Coerce
-
--- | Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
-gvtosdComparisonType :: Lens' GoalVisitTimeOnSiteDetails (Maybe Text)
-gvtosdComparisonType
-  = lens _gvtosdComparisonType
-      (\ s a -> s{_gvtosdComparisonType = a})
-
-instance FromJSON GoalVisitTimeOnSiteDetails where
-        parseJSON
-          = withObject "GoalVisitTimeOnSiteDetails"
-              (\ o ->
-                 GoalVisitTimeOnSiteDetails' <$>
-                   (o .:? "comparisonValue") <*>
-                     (o .:? "comparisonType"))
-
-instance ToJSON GoalVisitTimeOnSiteDetails where
-        toJSON GoalVisitTimeOnSiteDetails'{..}
-          = object
-              (catMaybes
-                 [("comparisonValue" .=) <$> _gvtosdComparisonValue,
-                  ("comparisonType" .=) <$> _gvtosdComparisonType])
-
--- | A web property collection lists Analytics web properties to which the
--- user has access. Each resource in the collection corresponds to a single
--- Analytics web property.
---
--- /See:/ 'webProperties' smart constructor.
-data WebProperties = WebProperties'
-    { _wpNextLink     :: !(Maybe Text)
-    , _wpItemsPerPage :: !(Maybe (Textual Int32))
-    , _wpKind         :: !Text
-    , _wpUsername     :: !(Maybe Text)
-    , _wpItems        :: !(Maybe [WebProperty])
-    , _wpTotalResults :: !(Maybe (Textual Int32))
-    , _wpStartIndex   :: !(Maybe (Textual Int32))
-    , _wpPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'WebProperties' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'wpNextLink'
---
--- * 'wpItemsPerPage'
---
--- * 'wpKind'
---
--- * 'wpUsername'
---
--- * 'wpItems'
---
--- * 'wpTotalResults'
---
--- * 'wpStartIndex'
---
--- * 'wpPreviousLink'
-webProperties
-    :: WebProperties
-webProperties =
-    WebProperties'
-    { _wpNextLink = Nothing
-    , _wpItemsPerPage = Nothing
-    , _wpKind = "analytics#webproperties"
-    , _wpUsername = Nothing
-    , _wpItems = Nothing
-    , _wpTotalResults = Nothing
-    , _wpStartIndex = Nothing
-    , _wpPreviousLink = Nothing
-    }
-
--- | Link to next page for this web property collection.
-wpNextLink :: Lens' WebProperties (Maybe Text)
-wpNextLink
-  = lens _wpNextLink (\ s a -> s{_wpNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-wpItemsPerPage :: Lens' WebProperties (Maybe Int32)
-wpItemsPerPage
-  = lens _wpItemsPerPage
-      (\ s a -> s{_wpItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-wpKind :: Lens' WebProperties Text
-wpKind = lens _wpKind (\ s a -> s{_wpKind = a})
-
--- | Email ID of the authenticated user
-wpUsername :: Lens' WebProperties (Maybe Text)
-wpUsername
-  = lens _wpUsername (\ s a -> s{_wpUsername = a})
-
--- | A list of web properties.
-wpItems :: Lens' WebProperties [WebProperty]
-wpItems
-  = lens _wpItems (\ s a -> s{_wpItems = a}) . _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-wpTotalResults :: Lens' WebProperties (Maybe Int32)
-wpTotalResults
-  = lens _wpTotalResults
-      (\ s a -> s{_wpTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-wpStartIndex :: Lens' WebProperties (Maybe Int32)
-wpStartIndex
-  = lens _wpStartIndex (\ s a -> s{_wpStartIndex = a})
-      . mapping _Coerce
-
--- | Link to previous page for this web property collection.
-wpPreviousLink :: Lens' WebProperties (Maybe Text)
-wpPreviousLink
-  = lens _wpPreviousLink
-      (\ s a -> s{_wpPreviousLink = a})
-
-instance FromJSON WebProperties where
-        parseJSON
-          = withObject "WebProperties"
-              (\ o ->
-                 WebProperties' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#webproperties")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON WebProperties where
-        toJSON WebProperties'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _wpNextLink,
-                  ("itemsPerPage" .=) <$> _wpItemsPerPage,
-                  Just ("kind" .= _wpKind),
-                  ("username" .=) <$> _wpUsername,
-                  ("items" .=) <$> _wpItems,
-                  ("totalResults" .=) <$> _wpTotalResults,
-                  ("startIndex" .=) <$> _wpStartIndex,
-                  ("previousLink" .=) <$> _wpPreviousLink])
-
--- | A custom metric collection lists Analytics custom metrics to which the
--- user has access. Each resource in the collection corresponds to a single
--- Analytics custom metric.
---
--- /See:/ 'customMetrics' smart constructor.
-data CustomMetrics = CustomMetrics'
-    { _cmNextLink     :: !(Maybe Text)
-    , _cmItemsPerPage :: !(Maybe (Textual Int32))
-    , _cmKind         :: !Text
-    , _cmUsername     :: !(Maybe Text)
-    , _cmItems        :: !(Maybe [CustomMetric])
-    , _cmTotalResults :: !(Maybe (Textual Int32))
-    , _cmStartIndex   :: !(Maybe (Textual Int32))
-    , _cmPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomMetrics' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cmNextLink'
---
--- * 'cmItemsPerPage'
---
--- * 'cmKind'
---
--- * 'cmUsername'
---
--- * 'cmItems'
---
--- * 'cmTotalResults'
---
--- * 'cmStartIndex'
---
--- * 'cmPreviousLink'
-customMetrics
-    :: CustomMetrics
-customMetrics =
-    CustomMetrics'
-    { _cmNextLink = Nothing
-    , _cmItemsPerPage = Nothing
-    , _cmKind = "analytics#customMetrics"
-    , _cmUsername = Nothing
-    , _cmItems = Nothing
-    , _cmTotalResults = Nothing
-    , _cmStartIndex = Nothing
-    , _cmPreviousLink = Nothing
-    }
-
--- | Link to next page for this custom metric collection.
-cmNextLink :: Lens' CustomMetrics (Maybe Text)
-cmNextLink
-  = lens _cmNextLink (\ s a -> s{_cmNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-cmItemsPerPage :: Lens' CustomMetrics (Maybe Int32)
-cmItemsPerPage
-  = lens _cmItemsPerPage
-      (\ s a -> s{_cmItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-cmKind :: Lens' CustomMetrics Text
-cmKind = lens _cmKind (\ s a -> s{_cmKind = a})
-
--- | Email ID of the authenticated user
-cmUsername :: Lens' CustomMetrics (Maybe Text)
-cmUsername
-  = lens _cmUsername (\ s a -> s{_cmUsername = a})
-
--- | Collection of custom metrics.
-cmItems :: Lens' CustomMetrics [CustomMetric]
-cmItems
-  = lens _cmItems (\ s a -> s{_cmItems = a}) . _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-cmTotalResults :: Lens' CustomMetrics (Maybe Int32)
-cmTotalResults
-  = lens _cmTotalResults
-      (\ s a -> s{_cmTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-cmStartIndex :: Lens' CustomMetrics (Maybe Int32)
-cmStartIndex
-  = lens _cmStartIndex (\ s a -> s{_cmStartIndex = a})
-      . mapping _Coerce
-
--- | Link to previous page for this custom metric collection.
-cmPreviousLink :: Lens' CustomMetrics (Maybe Text)
-cmPreviousLink
-  = lens _cmPreviousLink
-      (\ s a -> s{_cmPreviousLink = a})
-
-instance FromJSON CustomMetrics where
-        parseJSON
-          = withObject "CustomMetrics"
-              (\ o ->
-                 CustomMetrics' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#customMetrics")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON CustomMetrics where
-        toJSON CustomMetrics'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _cmNextLink,
-                  ("itemsPerPage" .=) <$> _cmItemsPerPage,
-                  Just ("kind" .= _cmKind),
-                  ("username" .=) <$> _cmUsername,
-                  ("items" .=) <$> _cmItems,
-                  ("totalResults" .=) <$> _cmTotalResults,
-                  ("startIndex" .=) <$> _cmStartIndex,
-                  ("previousLink" .=) <$> _cmPreviousLink])
-
--- | Details for the filter of the type ADVANCED.
---
--- /See:/ 'filterAdvancedDetails' smart constructor.
-data FilterAdvancedDetails = FilterAdvancedDetails'
-    { _fadExtractA            :: !(Maybe Text)
-    , _fadFieldARequired      :: !(Maybe Bool)
-    , _fadFieldA              :: !(Maybe Text)
-    , _fadFieldBIndex         :: !(Maybe (Textual Int32))
-    , _fadOutputToField       :: !(Maybe Text)
-    , _fadOutputConstructor   :: !(Maybe Text)
-    , _fadExtractB            :: !(Maybe Text)
-    , _fadFieldAIndex         :: !(Maybe (Textual Int32))
-    , _fadCaseSensitive       :: !(Maybe Bool)
-    , _fadOutputToFieldIndex  :: !(Maybe (Textual Int32))
-    , _fadFieldB              :: !(Maybe Text)
-    , _fadFieldBRequired      :: !(Maybe Bool)
-    , _fadOverrideOutputField :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FilterAdvancedDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fadExtractA'
---
--- * 'fadFieldARequired'
---
--- * 'fadFieldA'
---
--- * 'fadFieldBIndex'
---
--- * 'fadOutputToField'
---
--- * 'fadOutputConstructor'
---
--- * 'fadExtractB'
---
--- * 'fadFieldAIndex'
---
--- * 'fadCaseSensitive'
---
--- * 'fadOutputToFieldIndex'
---
--- * 'fadFieldB'
---
--- * 'fadFieldBRequired'
---
--- * 'fadOverrideOutputField'
-filterAdvancedDetails
-    :: FilterAdvancedDetails
-filterAdvancedDetails =
-    FilterAdvancedDetails'
-    { _fadExtractA = Nothing
-    , _fadFieldARequired = Nothing
-    , _fadFieldA = Nothing
-    , _fadFieldBIndex = Nothing
-    , _fadOutputToField = Nothing
-    , _fadOutputConstructor = Nothing
-    , _fadExtractB = Nothing
-    , _fadFieldAIndex = Nothing
-    , _fadCaseSensitive = Nothing
-    , _fadOutputToFieldIndex = Nothing
-    , _fadFieldB = Nothing
-    , _fadFieldBRequired = Nothing
-    , _fadOverrideOutputField = Nothing
-    }
-
--- | Expression to extract from field A.
-fadExtractA :: Lens' FilterAdvancedDetails (Maybe Text)
-fadExtractA
-  = lens _fadExtractA (\ s a -> s{_fadExtractA = a})
-
--- | Indicates if field A is required to match.
-fadFieldARequired :: Lens' FilterAdvancedDetails (Maybe Bool)
-fadFieldARequired
-  = lens _fadFieldARequired
-      (\ s a -> s{_fadFieldARequired = a})
-
--- | Field A.
-fadFieldA :: Lens' FilterAdvancedDetails (Maybe Text)
-fadFieldA
-  = lens _fadFieldA (\ s a -> s{_fadFieldA = a})
-
--- | The Index of the custom dimension. Required if field is a
--- CUSTOM_DIMENSION.
-fadFieldBIndex :: Lens' FilterAdvancedDetails (Maybe Int32)
-fadFieldBIndex
-  = lens _fadFieldBIndex
-      (\ s a -> s{_fadFieldBIndex = a})
-      . mapping _Coerce
-
--- | Output field.
-fadOutputToField :: Lens' FilterAdvancedDetails (Maybe Text)
-fadOutputToField
-  = lens _fadOutputToField
-      (\ s a -> s{_fadOutputToField = a})
-
--- | Expression used to construct the output value.
-fadOutputConstructor :: Lens' FilterAdvancedDetails (Maybe Text)
-fadOutputConstructor
-  = lens _fadOutputConstructor
-      (\ s a -> s{_fadOutputConstructor = a})
-
--- | Expression to extract from field B.
-fadExtractB :: Lens' FilterAdvancedDetails (Maybe Text)
-fadExtractB
-  = lens _fadExtractB (\ s a -> s{_fadExtractB = a})
-
--- | The Index of the custom dimension. Required if field is a
--- CUSTOM_DIMENSION.
-fadFieldAIndex :: Lens' FilterAdvancedDetails (Maybe Int32)
-fadFieldAIndex
-  = lens _fadFieldAIndex
-      (\ s a -> s{_fadFieldAIndex = a})
-      . mapping _Coerce
-
--- | Indicates if the filter expressions are case sensitive.
-fadCaseSensitive :: Lens' FilterAdvancedDetails (Maybe Bool)
-fadCaseSensitive
-  = lens _fadCaseSensitive
-      (\ s a -> s{_fadCaseSensitive = a})
-
--- | The Index of the custom dimension. Required if field is a
--- CUSTOM_DIMENSION.
-fadOutputToFieldIndex :: Lens' FilterAdvancedDetails (Maybe Int32)
-fadOutputToFieldIndex
-  = lens _fadOutputToFieldIndex
-      (\ s a -> s{_fadOutputToFieldIndex = a})
-      . mapping _Coerce
-
--- | Field B.
-fadFieldB :: Lens' FilterAdvancedDetails (Maybe Text)
-fadFieldB
-  = lens _fadFieldB (\ s a -> s{_fadFieldB = a})
-
--- | Indicates if field B is required to match.
-fadFieldBRequired :: Lens' FilterAdvancedDetails (Maybe Bool)
-fadFieldBRequired
-  = lens _fadFieldBRequired
-      (\ s a -> s{_fadFieldBRequired = a})
-
--- | Indicates if the existing value of the output field, if any, should be
--- overridden by the output expression.
-fadOverrideOutputField :: Lens' FilterAdvancedDetails (Maybe Bool)
-fadOverrideOutputField
-  = lens _fadOverrideOutputField
-      (\ s a -> s{_fadOverrideOutputField = a})
-
-instance FromJSON FilterAdvancedDetails where
-        parseJSON
-          = withObject "FilterAdvancedDetails"
-              (\ o ->
-                 FilterAdvancedDetails' <$>
-                   (o .:? "extractA") <*> (o .:? "fieldARequired") <*>
-                     (o .:? "fieldA")
-                     <*> (o .:? "fieldBIndex")
-                     <*> (o .:? "outputToField")
-                     <*> (o .:? "outputConstructor")
-                     <*> (o .:? "extractB")
-                     <*> (o .:? "fieldAIndex")
-                     <*> (o .:? "caseSensitive")
-                     <*> (o .:? "outputToFieldIndex")
-                     <*> (o .:? "fieldB")
-                     <*> (o .:? "fieldBRequired")
-                     <*> (o .:? "overrideOutputField"))
-
-instance ToJSON FilterAdvancedDetails where
-        toJSON FilterAdvancedDetails'{..}
-          = object
-              (catMaybes
-                 [("extractA" .=) <$> _fadExtractA,
-                  ("fieldARequired" .=) <$> _fadFieldARequired,
-                  ("fieldA" .=) <$> _fadFieldA,
-                  ("fieldBIndex" .=) <$> _fadFieldBIndex,
-                  ("outputToField" .=) <$> _fadOutputToField,
-                  ("outputConstructor" .=) <$> _fadOutputConstructor,
-                  ("extractB" .=) <$> _fadExtractB,
-                  ("fieldAIndex" .=) <$> _fadFieldAIndex,
-                  ("caseSensitive" .=) <$> _fadCaseSensitive,
-                  ("outputToFieldIndex" .=) <$> _fadOutputToFieldIndex,
-                  ("fieldB" .=) <$> _fadFieldB,
-                  ("fieldBRequired" .=) <$> _fadFieldBRequired,
-                  ("overrideOutputField" .=) <$>
-                    _fadOverrideOutputField])
-
--- | JSON template for an Analytics account tree response. The account tree
--- response is used in the provisioning api to return the result of
--- creating an account, property, and view (profile).
---
--- /See:/ 'accountTreeResponse' smart constructor.
-data AccountTreeResponse = AccountTreeResponse'
-    { _atrtAccountSettings :: !(Maybe AccountTreeResponseAccountSettings)
-    , _atrtKind            :: !Text
-    , _atrtProFile         :: !(Maybe ProFile)
-    , _atrtAccount         :: !(Maybe Account)
-    , _atrtWebProperty     :: !(Maybe WebProperty)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountTreeResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atrtAccountSettings'
---
--- * 'atrtKind'
---
--- * 'atrtProFile'
---
--- * 'atrtAccount'
---
--- * 'atrtWebProperty'
-accountTreeResponse
-    :: AccountTreeResponse
-accountTreeResponse =
-    AccountTreeResponse'
-    { _atrtAccountSettings = Nothing
-    , _atrtKind = "analytics#accountTreeResponse"
-    , _atrtProFile = Nothing
-    , _atrtAccount = Nothing
-    , _atrtWebProperty = Nothing
-    }
-
-atrtAccountSettings :: Lens' AccountTreeResponse (Maybe AccountTreeResponseAccountSettings)
-atrtAccountSettings
-  = lens _atrtAccountSettings
-      (\ s a -> s{_atrtAccountSettings = a})
-
--- | Resource type for account ticket.
-atrtKind :: Lens' AccountTreeResponse Text
-atrtKind = lens _atrtKind (\ s a -> s{_atrtKind = a})
-
--- | View (Profile) for the account.
-atrtProFile :: Lens' AccountTreeResponse (Maybe ProFile)
-atrtProFile
-  = lens _atrtProFile (\ s a -> s{_atrtProFile = a})
-
--- | The account created.
-atrtAccount :: Lens' AccountTreeResponse (Maybe Account)
-atrtAccount
-  = lens _atrtAccount (\ s a -> s{_atrtAccount = a})
-
--- | Web property for the account.
-atrtWebProperty :: Lens' AccountTreeResponse (Maybe WebProperty)
-atrtWebProperty
-  = lens _atrtWebProperty
-      (\ s a -> s{_atrtWebProperty = a})
-
-instance FromJSON AccountTreeResponse where
-        parseJSON
-          = withObject "AccountTreeResponse"
-              (\ o ->
-                 AccountTreeResponse' <$>
-                   (o .:? "accountSettings") <*>
-                     (o .:? "kind" .!= "analytics#accountTreeResponse")
-                     <*> (o .:? "profile")
-                     <*> (o .:? "account")
-                     <*> (o .:? "webproperty"))
-
-instance ToJSON AccountTreeResponse where
-        toJSON AccountTreeResponse'{..}
-          = object
-              (catMaybes
-                 [("accountSettings" .=) <$> _atrtAccountSettings,
-                  Just ("kind" .= _atrtKind),
-                  ("profile" .=) <$> _atrtProFile,
-                  ("account" .=) <$> _atrtAccount,
-                  ("webproperty" .=) <$> _atrtWebProperty])
-
--- | Details for the filter of the type UPPER.
---
--- /See:/ 'filterUppercaseDetails' smart constructor.
-data FilterUppercaseDetails = FilterUppercaseDetails'
-    { _fudFieldIndex :: !(Maybe (Textual Int32))
-    , _fudField      :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FilterUppercaseDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fudFieldIndex'
---
--- * 'fudField'
-filterUppercaseDetails
-    :: FilterUppercaseDetails
-filterUppercaseDetails =
-    FilterUppercaseDetails'
-    { _fudFieldIndex = Nothing
-    , _fudField = Nothing
-    }
-
--- | The Index of the custom dimension. Required if field is a
--- CUSTOM_DIMENSION.
-fudFieldIndex :: Lens' FilterUppercaseDetails (Maybe Int32)
-fudFieldIndex
-  = lens _fudFieldIndex
-      (\ s a -> s{_fudFieldIndex = a})
-      . mapping _Coerce
-
--- | Field to use in the filter.
-fudField :: Lens' FilterUppercaseDetails (Maybe Text)
-fudField = lens _fudField (\ s a -> s{_fudField = a})
-
-instance FromJSON FilterUppercaseDetails where
-        parseJSON
-          = withObject "FilterUppercaseDetails"
-              (\ o ->
-                 FilterUppercaseDetails' <$>
-                   (o .:? "fieldIndex") <*> (o .:? "field"))
-
-instance ToJSON FilterUppercaseDetails where
-        toJSON FilterUppercaseDetails'{..}
-          = object
-              (catMaybes
-                 [("fieldIndex" .=) <$> _fudFieldIndex,
-                  ("field" .=) <$> _fudField])
-
---
--- /See:/ 'customDataSourceChildLink' smart constructor.
-data CustomDataSourceChildLink = CustomDataSourceChildLink'
-    { _cdsclHref :: !(Maybe Text)
-    , _cdsclType :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomDataSourceChildLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdsclHref'
---
--- * 'cdsclType'
-customDataSourceChildLink
-    :: CustomDataSourceChildLink
-customDataSourceChildLink =
-    CustomDataSourceChildLink'
-    { _cdsclHref = Nothing
-    , _cdsclType = Nothing
-    }
-
--- | Link to the list of daily uploads for this custom data source. Link to
--- the list of uploads for this custom data source.
-cdsclHref :: Lens' CustomDataSourceChildLink (Maybe Text)
-cdsclHref
-  = lens _cdsclHref (\ s a -> s{_cdsclHref = a})
-
--- | Value is \"analytics#dailyUploads\". Value is \"analytics#uploads\".
-cdsclType :: Lens' CustomDataSourceChildLink (Maybe Text)
-cdsclType
-  = lens _cdsclType (\ s a -> s{_cdsclType = a})
-
-instance FromJSON CustomDataSourceChildLink where
-        parseJSON
-          = withObject "CustomDataSourceChildLink"
-              (\ o ->
-                 CustomDataSourceChildLink' <$>
-                   (o .:? "href") <*> (o .:? "type"))
-
-instance ToJSON CustomDataSourceChildLink where
-        toJSON CustomDataSourceChildLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _cdsclHref,
-                  ("type" .=) <$> _cdsclType])
-
--- | JSON template for an Analytics Remarketing Include Conditions.
---
--- /See:/ 'includeConditions' smart constructor.
-data IncludeConditions = IncludeConditions'
-    { _icKind                   :: !Text
-    , _icDaysToLookBack         :: !(Maybe (Textual Int32))
-    , _icMembershipDurationDays :: !(Maybe (Textual Int32))
-    , _icSegment                :: !(Maybe Text)
-    , _icIsSmartList            :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'IncludeConditions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'icKind'
---
--- * 'icDaysToLookBack'
---
--- * 'icMembershipDurationDays'
---
--- * 'icSegment'
---
--- * 'icIsSmartList'
-includeConditions
-    :: IncludeConditions
-includeConditions =
-    IncludeConditions'
-    { _icKind = "analytics#includeConditions"
-    , _icDaysToLookBack = Nothing
-    , _icMembershipDurationDays = Nothing
-    , _icSegment = Nothing
-    , _icIsSmartList = Nothing
-    }
-
--- | Resource type for include conditions.
-icKind :: Lens' IncludeConditions Text
-icKind = lens _icKind (\ s a -> s{_icKind = a})
-
--- | The look-back window lets you specify a time frame for evaluating the
--- behavior that qualifies users for your audience. For example, if your
--- filters include users from Central Asia, and Transactions Greater than
--- 2, and you set the look-back window to 14 days, then any user from
--- Central Asia whose cumulative transactions exceed 2 during the last 14
--- days is added to the audience.
-icDaysToLookBack :: Lens' IncludeConditions (Maybe Int32)
-icDaysToLookBack
-  = lens _icDaysToLookBack
-      (\ s a -> s{_icDaysToLookBack = a})
-      . mapping _Coerce
-
--- | Number of days (in the range 1 to 540) a user remains in the audience.
-icMembershipDurationDays :: Lens' IncludeConditions (Maybe Int32)
-icMembershipDurationDays
-  = lens _icMembershipDurationDays
-      (\ s a -> s{_icMembershipDurationDays = a})
-      . mapping _Coerce
-
--- | The segment condition that will cause a user to be added to an audience.
-icSegment :: Lens' IncludeConditions (Maybe Text)
-icSegment
-  = lens _icSegment (\ s a -> s{_icSegment = a})
-
--- | Boolean indicating whether this segment is a smart list.
--- https:\/\/support.google.com\/analytics\/answer\/4628577
-icIsSmartList :: Lens' IncludeConditions (Maybe Bool)
-icIsSmartList
-  = lens _icIsSmartList
-      (\ s a -> s{_icIsSmartList = a})
-
-instance FromJSON IncludeConditions where
-        parseJSON
-          = withObject "IncludeConditions"
-              (\ o ->
-                 IncludeConditions' <$>
-                   (o .:? "kind" .!= "analytics#includeConditions") <*>
-                     (o .:? "daysToLookBack")
-                     <*> (o .:? "membershipDurationDays")
-                     <*> (o .:? "segment")
-                     <*> (o .:? "isSmartList"))
-
-instance ToJSON IncludeConditions where
-        toJSON IncludeConditions'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _icKind),
-                  ("daysToLookBack" .=) <$> _icDaysToLookBack,
-                  ("membershipDurationDays" .=) <$>
-                    _icMembershipDurationDays,
-                  ("segment" .=) <$> _icSegment,
-                  ("isSmartList" .=) <$> _icIsSmartList])
-
--- | Parent link for this filter. Points to the account to which this filter
--- belongs.
---
--- /See:/ 'filterParentLink' smart constructor.
-data FilterParentLink = FilterParentLink'
-    { _fplHref :: !(Maybe Text)
-    , _fplType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FilterParentLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fplHref'
---
--- * 'fplType'
-filterParentLink
-    :: FilterParentLink
-filterParentLink =
-    FilterParentLink'
-    { _fplHref = Nothing
-    , _fplType = "analytics#account"
-    }
-
--- | Link to the account to which this filter belongs.
-fplHref :: Lens' FilterParentLink (Maybe Text)
-fplHref = lens _fplHref (\ s a -> s{_fplHref = a})
-
--- | Value is \"analytics#account\".
-fplType :: Lens' FilterParentLink Text
-fplType = lens _fplType (\ s a -> s{_fplType = a})
-
-instance FromJSON FilterParentLink where
-        parseJSON
-          = withObject "FilterParentLink"
-              (\ o ->
-                 FilterParentLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#account"))
-
-instance ToJSON FilterParentLink where
-        toJSON FilterParentLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _fplHref,
-                  Just ("type" .= _fplType)])
-
--- | JSON template for a hash Client Id request resource.
---
--- /See:/ 'hashClientIdRequest' smart constructor.
-data HashClientIdRequest = HashClientIdRequest'
-    { _hClientId      :: !(Maybe Text)
-    , _hWebPropertyId :: !(Maybe Text)
-    , _hKind          :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'HashClientIdRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hClientId'
---
--- * 'hWebPropertyId'
---
--- * 'hKind'
-hashClientIdRequest
-    :: HashClientIdRequest
-hashClientIdRequest =
-    HashClientIdRequest'
-    { _hClientId = Nothing
-    , _hWebPropertyId = Nothing
-    , _hKind = "analytics#hashClientIdRequest"
-    }
-
-hClientId :: Lens' HashClientIdRequest (Maybe Text)
-hClientId
-  = lens _hClientId (\ s a -> s{_hClientId = a})
-
-hWebPropertyId :: Lens' HashClientIdRequest (Maybe Text)
-hWebPropertyId
-  = lens _hWebPropertyId
-      (\ s a -> s{_hWebPropertyId = a})
-
-hKind :: Lens' HashClientIdRequest Text
-hKind = lens _hKind (\ s a -> s{_hKind = a})
-
-instance FromJSON HashClientIdRequest where
-        parseJSON
-          = withObject "HashClientIdRequest"
-              (\ o ->
-                 HashClientIdRequest' <$>
-                   (o .:? "clientId") <*> (o .:? "webPropertyId") <*>
-                     (o .:? "kind" .!= "analytics#hashClientIdRequest"))
-
-instance ToJSON HashClientIdRequest where
-        toJSON HashClientIdRequest'{..}
-          = object
-              (catMaybes
-                 [("clientId" .=) <$> _hClientId,
-                  ("webPropertyId" .=) <$> _hWebPropertyId,
-                  Just ("kind" .= _hKind)])
-
--- | Real time data for a given view (profile).
---
--- /See:/ 'realtimeData' smart constructor.
-data RealtimeData = RealtimeData'
-    { _rdProFileInfo         :: !(Maybe RealtimeDataProFileInfo)
-    , _rdKind                :: !Text
-    , _rdRows                :: !(Maybe [[Text]])
-    , _rdSelfLink            :: !(Maybe Text)
-    , _rdQuery               :: !(Maybe RealtimeDataQuery)
-    , _rdColumnHeaders       :: !(Maybe [RealtimeDataColumnHeadersItem])
-    , _rdId                  :: !(Maybe Text)
-    , _rdTotalResults        :: !(Maybe (Textual Int32))
-    , _rdTotalsForAllResults :: !(Maybe RealtimeDataTotalsForAllResults)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RealtimeData' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdProFileInfo'
---
--- * 'rdKind'
---
--- * 'rdRows'
---
--- * 'rdSelfLink'
---
--- * 'rdQuery'
---
--- * 'rdColumnHeaders'
---
--- * 'rdId'
---
--- * 'rdTotalResults'
---
--- * 'rdTotalsForAllResults'
-realtimeData
-    :: RealtimeData
-realtimeData =
-    RealtimeData'
-    { _rdProFileInfo = Nothing
-    , _rdKind = "analytics#realtimeData"
-    , _rdRows = Nothing
-    , _rdSelfLink = Nothing
-    , _rdQuery = Nothing
-    , _rdColumnHeaders = Nothing
-    , _rdId = Nothing
-    , _rdTotalResults = Nothing
-    , _rdTotalsForAllResults = Nothing
-    }
-
--- | Information for the view (profile), for which the real time data was
--- requested.
-rdProFileInfo :: Lens' RealtimeData (Maybe RealtimeDataProFileInfo)
-rdProFileInfo
-  = lens _rdProFileInfo
-      (\ s a -> s{_rdProFileInfo = a})
-
--- | Resource type.
-rdKind :: Lens' RealtimeData Text
-rdKind = lens _rdKind (\ s a -> s{_rdKind = a})
-
--- | Real time data rows, where each row contains a list of dimension values
--- followed by the metric values. The order of dimensions and metrics is
--- same as specified in the request.
-rdRows :: Lens' RealtimeData [[Text]]
-rdRows
-  = lens _rdRows (\ s a -> s{_rdRows = a}) . _Default .
-      _Coerce
-
--- | Link to this page.
-rdSelfLink :: Lens' RealtimeData (Maybe Text)
-rdSelfLink
-  = lens _rdSelfLink (\ s a -> s{_rdSelfLink = a})
-
--- | Real time data request query parameters.
-rdQuery :: Lens' RealtimeData (Maybe RealtimeDataQuery)
-rdQuery = lens _rdQuery (\ s a -> s{_rdQuery = a})
-
--- | Column headers that list dimension names followed by the metric names.
--- The order of dimensions and metrics is same as specified in the request.
-rdColumnHeaders :: Lens' RealtimeData [RealtimeDataColumnHeadersItem]
-rdColumnHeaders
-  = lens _rdColumnHeaders
-      (\ s a -> s{_rdColumnHeaders = a})
-      . _Default
-      . _Coerce
-
--- | Unique ID for this data response.
-rdId :: Lens' RealtimeData (Maybe Text)
-rdId = lens _rdId (\ s a -> s{_rdId = a})
-
--- | The total number of rows for the query, regardless of the number of rows
--- in the response.
-rdTotalResults :: Lens' RealtimeData (Maybe Int32)
-rdTotalResults
-  = lens _rdTotalResults
-      (\ s a -> s{_rdTotalResults = a})
-      . mapping _Coerce
-
--- | Total values for the requested metrics over all the results, not just
--- the results returned in this response. The order of the metric totals is
--- same as the metric order specified in the request.
-rdTotalsForAllResults :: Lens' RealtimeData (Maybe RealtimeDataTotalsForAllResults)
-rdTotalsForAllResults
-  = lens _rdTotalsForAllResults
-      (\ s a -> s{_rdTotalsForAllResults = a})
-
-instance FromJSON RealtimeData where
-        parseJSON
-          = withObject "RealtimeData"
-              (\ o ->
-                 RealtimeData' <$>
-                   (o .:? "profileInfo") <*>
-                     (o .:? "kind" .!= "analytics#realtimeData")
-                     <*> (o .:? "rows" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "query")
-                     <*> (o .:? "columnHeaders" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "totalsForAllResults"))
-
-instance ToJSON RealtimeData where
-        toJSON RealtimeData'{..}
-          = object
-              (catMaybes
-                 [("profileInfo" .=) <$> _rdProFileInfo,
-                  Just ("kind" .= _rdKind), ("rows" .=) <$> _rdRows,
-                  ("selfLink" .=) <$> _rdSelfLink,
-                  ("query" .=) <$> _rdQuery,
-                  ("columnHeaders" .=) <$> _rdColumnHeaders,
-                  ("id" .=) <$> _rdId,
-                  ("totalResults" .=) <$> _rdTotalResults,
-                  ("totalsForAllResults" .=) <$>
-                    _rdTotalsForAllResults])
-
--- | JSON template for Analytics Custom Metric.
---
--- /See:/ 'customMetric' smart constructor.
-data CustomMetric = CustomMetric'
-    { _cusParentLink    :: !(Maybe CustomMetricParentLink)
-    , _cusWebPropertyId :: !(Maybe Text)
-    , _cusKind          :: !Text
-    , _cusMaxValue      :: !(Maybe Text)
-    , _cusCreated       :: !(Maybe DateTime')
-    , _cusMinValue      :: !(Maybe Text)
-    , _cusActive        :: !(Maybe Bool)
-    , _cusSelfLink      :: !(Maybe Text)
-    , _cusAccountId     :: !(Maybe Text)
-    , _cusName          :: !(Maybe Text)
-    , _cusScope         :: !(Maybe Text)
-    , _cusId            :: !(Maybe Text)
-    , _cusUpdated       :: !(Maybe DateTime')
-    , _cusType          :: !(Maybe Text)
-    , _cusIndex         :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomMetric' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cusParentLink'
---
--- * 'cusWebPropertyId'
---
--- * 'cusKind'
---
--- * 'cusMaxValue'
---
--- * 'cusCreated'
---
--- * 'cusMinValue'
---
--- * 'cusActive'
---
--- * 'cusSelfLink'
---
--- * 'cusAccountId'
---
--- * 'cusName'
---
--- * 'cusScope'
---
--- * 'cusId'
---
--- * 'cusUpdated'
---
--- * 'cusType'
---
--- * 'cusIndex'
-customMetric
-    :: CustomMetric
-customMetric =
-    CustomMetric'
-    { _cusParentLink = Nothing
-    , _cusWebPropertyId = Nothing
-    , _cusKind = "analytics#customMetric"
-    , _cusMaxValue = Nothing
-    , _cusCreated = Nothing
-    , _cusMinValue = Nothing
-    , _cusActive = Nothing
-    , _cusSelfLink = Nothing
-    , _cusAccountId = Nothing
-    , _cusName = Nothing
-    , _cusScope = Nothing
-    , _cusId = Nothing
-    , _cusUpdated = Nothing
-    , _cusType = Nothing
-    , _cusIndex = Nothing
-    }
-
--- | Parent link for the custom metric. Points to the property to which the
--- custom metric belongs.
-cusParentLink :: Lens' CustomMetric (Maybe CustomMetricParentLink)
-cusParentLink
-  = lens _cusParentLink
-      (\ s a -> s{_cusParentLink = a})
-
--- | Property ID.
-cusWebPropertyId :: Lens' CustomMetric (Maybe Text)
-cusWebPropertyId
-  = lens _cusWebPropertyId
-      (\ s a -> s{_cusWebPropertyId = a})
-
--- | Kind value for a custom metric. Set to \"analytics#customMetric\". It is
--- a read-only field.
-cusKind :: Lens' CustomMetric Text
-cusKind = lens _cusKind (\ s a -> s{_cusKind = a})
-
--- | Max value of custom metric.
-cusMaxValue :: Lens' CustomMetric (Maybe Text)
-cusMaxValue
-  = lens _cusMaxValue (\ s a -> s{_cusMaxValue = a})
-
--- | Time the custom metric was created.
-cusCreated :: Lens' CustomMetric (Maybe UTCTime)
-cusCreated
-  = lens _cusCreated (\ s a -> s{_cusCreated = a}) .
-      mapping _DateTime
-
--- | Min value of custom metric.
-cusMinValue :: Lens' CustomMetric (Maybe Text)
-cusMinValue
-  = lens _cusMinValue (\ s a -> s{_cusMinValue = a})
-
--- | Boolean indicating whether the custom metric is active.
-cusActive :: Lens' CustomMetric (Maybe Bool)
-cusActive
-  = lens _cusActive (\ s a -> s{_cusActive = a})
-
--- | Link for the custom metric
-cusSelfLink :: Lens' CustomMetric (Maybe Text)
-cusSelfLink
-  = lens _cusSelfLink (\ s a -> s{_cusSelfLink = a})
-
--- | Account ID.
-cusAccountId :: Lens' CustomMetric (Maybe Text)
-cusAccountId
-  = lens _cusAccountId (\ s a -> s{_cusAccountId = a})
-
--- | Name of the custom metric.
-cusName :: Lens' CustomMetric (Maybe Text)
-cusName = lens _cusName (\ s a -> s{_cusName = a})
-
--- | Scope of the custom metric: HIT or PRODUCT.
-cusScope :: Lens' CustomMetric (Maybe Text)
-cusScope = lens _cusScope (\ s a -> s{_cusScope = a})
-
--- | Custom metric ID.
-cusId :: Lens' CustomMetric (Maybe Text)
-cusId = lens _cusId (\ s a -> s{_cusId = a})
-
--- | Time the custom metric was last modified.
-cusUpdated :: Lens' CustomMetric (Maybe UTCTime)
-cusUpdated
-  = lens _cusUpdated (\ s a -> s{_cusUpdated = a}) .
-      mapping _DateTime
-
--- | Data type of custom metric.
-cusType :: Lens' CustomMetric (Maybe Text)
-cusType = lens _cusType (\ s a -> s{_cusType = a})
-
--- | Index of the custom metric.
-cusIndex :: Lens' CustomMetric (Maybe Int32)
-cusIndex
-  = lens _cusIndex (\ s a -> s{_cusIndex = a}) .
-      mapping _Coerce
-
-instance FromJSON CustomMetric where
-        parseJSON
-          = withObject "CustomMetric"
-              (\ o ->
-                 CustomMetric' <$>
-                   (o .:? "parentLink") <*> (o .:? "webPropertyId") <*>
-                     (o .:? "kind" .!= "analytics#customMetric")
-                     <*> (o .:? "max_value")
-                     <*> (o .:? "created")
-                     <*> (o .:? "min_value")
-                     <*> (o .:? "active")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "scope")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "type")
-                     <*> (o .:? "index"))
-
-instance ToJSON CustomMetric where
-        toJSON CustomMetric'{..}
-          = object
-              (catMaybes
-                 [("parentLink" .=) <$> _cusParentLink,
-                  ("webPropertyId" .=) <$> _cusWebPropertyId,
-                  Just ("kind" .= _cusKind),
-                  ("max_value" .=) <$> _cusMaxValue,
-                  ("created" .=) <$> _cusCreated,
-                  ("min_value" .=) <$> _cusMinValue,
-                  ("active" .=) <$> _cusActive,
-                  ("selfLink" .=) <$> _cusSelfLink,
-                  ("accountId" .=) <$> _cusAccountId,
-                  ("name" .=) <$> _cusName, ("scope" .=) <$> _cusScope,
-                  ("id" .=) <$> _cusId, ("updated" .=) <$> _cusUpdated,
-                  ("type" .=) <$> _cusType,
-                  ("index" .=) <$> _cusIndex])
-
--- | JSON template for an Analytics ProfileSummary. ProfileSummary returns
--- basic information (i.e., summary) for a profile.
---
--- /See:/ 'proFileSummary' smart constructor.
-data ProFileSummary = ProFileSummary'
-    { _pfsKind    :: !Text
-    , _pfsName    :: !(Maybe Text)
-    , _pfsStarred :: !(Maybe Bool)
-    , _pfsId      :: !(Maybe Text)
-    , _pfsType    :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ProFileSummary' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pfsKind'
---
--- * 'pfsName'
---
--- * 'pfsStarred'
---
--- * 'pfsId'
---
--- * 'pfsType'
-proFileSummary
-    :: ProFileSummary
-proFileSummary =
-    ProFileSummary'
-    { _pfsKind = "analytics#profileSummary"
-    , _pfsName = Nothing
-    , _pfsStarred = Nothing
-    , _pfsId = Nothing
-    , _pfsType = Nothing
-    }
-
--- | Resource type for Analytics ProfileSummary.
-pfsKind :: Lens' ProFileSummary Text
-pfsKind = lens _pfsKind (\ s a -> s{_pfsKind = a})
-
--- | View (profile) name.
-pfsName :: Lens' ProFileSummary (Maybe Text)
-pfsName = lens _pfsName (\ s a -> s{_pfsName = a})
-
--- | Indicates whether this view (profile) is starred or not.
-pfsStarred :: Lens' ProFileSummary (Maybe Bool)
-pfsStarred
-  = lens _pfsStarred (\ s a -> s{_pfsStarred = a})
-
--- | View (profile) ID.
-pfsId :: Lens' ProFileSummary (Maybe Text)
-pfsId = lens _pfsId (\ s a -> s{_pfsId = a})
-
--- | View (Profile) type. Supported types: WEB or APP.
-pfsType :: Lens' ProFileSummary (Maybe Text)
-pfsType = lens _pfsType (\ s a -> s{_pfsType = a})
-
-instance FromJSON ProFileSummary where
-        parseJSON
-          = withObject "ProFileSummary"
-              (\ o ->
-                 ProFileSummary' <$>
-                   (o .:? "kind" .!= "analytics#profileSummary") <*>
-                     (o .:? "name")
-                     <*> (o .:? "starred")
-                     <*> (o .:? "id")
-                     <*> (o .:? "type"))
-
-instance ToJSON ProFileSummary where
-        toJSON ProFileSummary'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _pfsKind), ("name" .=) <$> _pfsName,
-                  ("starred" .=) <$> _pfsStarred, ("id" .=) <$> _pfsId,
-                  ("type" .=) <$> _pfsType])
-
--- | Parent link for the custom dimension. Points to the property to which
--- the custom dimension belongs.
---
--- /See:/ 'customDimensionParentLink' smart constructor.
-data CustomDimensionParentLink = CustomDimensionParentLink'
-    { _cdplHref :: !(Maybe Text)
-    , _cdplType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomDimensionParentLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdplHref'
---
--- * 'cdplType'
-customDimensionParentLink
-    :: CustomDimensionParentLink
-customDimensionParentLink =
-    CustomDimensionParentLink'
-    { _cdplHref = Nothing
-    , _cdplType = "analytics#webproperty"
-    }
-
--- | Link to the property to which the custom dimension belongs.
-cdplHref :: Lens' CustomDimensionParentLink (Maybe Text)
-cdplHref = lens _cdplHref (\ s a -> s{_cdplHref = a})
-
--- | Type of the parent link. Set to \"analytics#webproperty\".
-cdplType :: Lens' CustomDimensionParentLink Text
-cdplType = lens _cdplType (\ s a -> s{_cdplType = a})
-
-instance FromJSON CustomDimensionParentLink where
-        parseJSON
-          = withObject "CustomDimensionParentLink"
-              (\ o ->
-                 CustomDimensionParentLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#webproperty"))
-
-instance ToJSON CustomDimensionParentLink where
-        toJSON CustomDimensionParentLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _cdplHref,
-                  Just ("type" .= _cdplType)])
-
--- | JSON template for an Analytics web property.
---
--- /See:/ 'webProperty' smart constructor.
-data WebProperty = WebProperty'
-    { _wParentLink                      :: !(Maybe WebPropertyParentLink)
-    , _wChildLink                       :: !(Maybe WebPropertyChildLink)
-    , _wDefaultProFileId                :: !(Maybe (Textual Int64))
-    , _wKind                            :: !Text
-    , _wCreated                         :: !(Maybe DateTime')
-    , _wDataRetentionTtl                :: !(Maybe Text)
-    , _wDataRetentionResetOnNewActivity :: !(Maybe Bool)
-    , _wSelfLink                        :: !(Maybe Text)
-    , _wAccountId                       :: !(Maybe Text)
-    , _wName                            :: !(Maybe Text)
-    , _wStarred                         :: !(Maybe Bool)
-    , _wInternalWebPropertyId           :: !(Maybe Text)
-    , _wId                              :: !(Maybe Text)
-    , _wUpdated                         :: !(Maybe DateTime')
-    , _wProFileCount                    :: !(Maybe (Textual Int32))
-    , _wPermissions                     :: !(Maybe WebPropertyPermissions)
-    , _wWebsiteURL                      :: !(Maybe Text)
-    , _wIndustryVertical                :: !(Maybe Text)
-    , _wLevel                           :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'WebProperty' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'wParentLink'
---
--- * 'wChildLink'
---
--- * 'wDefaultProFileId'
---
--- * 'wKind'
---
--- * 'wCreated'
---
--- * 'wDataRetentionTtl'
---
--- * 'wDataRetentionResetOnNewActivity'
---
--- * 'wSelfLink'
---
--- * 'wAccountId'
---
--- * 'wName'
---
--- * 'wStarred'
---
--- * 'wInternalWebPropertyId'
---
--- * 'wId'
---
--- * 'wUpdated'
---
--- * 'wProFileCount'
---
--- * 'wPermissions'
---
--- * 'wWebsiteURL'
---
--- * 'wIndustryVertical'
---
--- * 'wLevel'
-webProperty
-    :: WebProperty
-webProperty =
-    WebProperty'
-    { _wParentLink = Nothing
-    , _wChildLink = Nothing
-    , _wDefaultProFileId = Nothing
-    , _wKind = "analytics#webproperty"
-    , _wCreated = Nothing
-    , _wDataRetentionTtl = Nothing
-    , _wDataRetentionResetOnNewActivity = Nothing
-    , _wSelfLink = Nothing
-    , _wAccountId = Nothing
-    , _wName = Nothing
-    , _wStarred = Nothing
-    , _wInternalWebPropertyId = Nothing
-    , _wId = Nothing
-    , _wUpdated = Nothing
-    , _wProFileCount = Nothing
-    , _wPermissions = Nothing
-    , _wWebsiteURL = Nothing
-    , _wIndustryVertical = Nothing
-    , _wLevel = Nothing
-    }
-
--- | Parent link for this web property. Points to the account to which this
--- web property belongs.
-wParentLink :: Lens' WebProperty (Maybe WebPropertyParentLink)
-wParentLink
-  = lens _wParentLink (\ s a -> s{_wParentLink = a})
-
--- | Child link for this web property. Points to the list of views (profiles)
--- for this web property.
-wChildLink :: Lens' WebProperty (Maybe WebPropertyChildLink)
-wChildLink
-  = lens _wChildLink (\ s a -> s{_wChildLink = a})
-
--- | Default view (profile) ID.
-wDefaultProFileId :: Lens' WebProperty (Maybe Int64)
-wDefaultProFileId
-  = lens _wDefaultProFileId
-      (\ s a -> s{_wDefaultProFileId = a})
-      . mapping _Coerce
-
--- | Resource type for Analytics WebProperty.
-wKind :: Lens' WebProperty Text
-wKind = lens _wKind (\ s a -> s{_wKind = a})
-
--- | Time this web property was created.
-wCreated :: Lens' WebProperty (Maybe UTCTime)
-wCreated
-  = lens _wCreated (\ s a -> s{_wCreated = a}) .
-      mapping _DateTime
-
--- | The length of time for which user and event data is retained. This
--- property cannot be set on insert.
-wDataRetentionTtl :: Lens' WebProperty (Maybe Text)
-wDataRetentionTtl
-  = lens _wDataRetentionTtl
-      (\ s a -> s{_wDataRetentionTtl = a})
-
--- | Set to true to reset the retention period of the user identifier with
--- each new event from that user (thus setting the expiration date to
--- current time plus retention period). Set to false to delete data
--- associated with the user identifer automatically after the rentention
--- period. This property cannot be set on insert.
-wDataRetentionResetOnNewActivity :: Lens' WebProperty (Maybe Bool)
-wDataRetentionResetOnNewActivity
-  = lens _wDataRetentionResetOnNewActivity
-      (\ s a -> s{_wDataRetentionResetOnNewActivity = a})
-
--- | Link for this web property.
-wSelfLink :: Lens' WebProperty (Maybe Text)
-wSelfLink
-  = lens _wSelfLink (\ s a -> s{_wSelfLink = a})
-
--- | Account ID to which this web property belongs.
-wAccountId :: Lens' WebProperty (Maybe Text)
-wAccountId
-  = lens _wAccountId (\ s a -> s{_wAccountId = a})
-
--- | Name of this web property.
-wName :: Lens' WebProperty (Maybe Text)
-wName = lens _wName (\ s a -> s{_wName = a})
-
--- | Indicates whether this web property is starred or not.
-wStarred :: Lens' WebProperty (Maybe Bool)
-wStarred = lens _wStarred (\ s a -> s{_wStarred = a})
-
--- | Internal ID for this web property.
-wInternalWebPropertyId :: Lens' WebProperty (Maybe Text)
-wInternalWebPropertyId
-  = lens _wInternalWebPropertyId
-      (\ s a -> s{_wInternalWebPropertyId = a})
-
--- | Web property ID of the form UA-XXXXX-YY.
-wId :: Lens' WebProperty (Maybe Text)
-wId = lens _wId (\ s a -> s{_wId = a})
-
--- | Time this web property was last modified.
-wUpdated :: Lens' WebProperty (Maybe UTCTime)
-wUpdated
-  = lens _wUpdated (\ s a -> s{_wUpdated = a}) .
-      mapping _DateTime
-
--- | View (Profile) count for this web property.
-wProFileCount :: Lens' WebProperty (Maybe Int32)
-wProFileCount
-  = lens _wProFileCount
-      (\ s a -> s{_wProFileCount = a})
-      . mapping _Coerce
-
--- | Permissions the user has for this web property.
-wPermissions :: Lens' WebProperty (Maybe WebPropertyPermissions)
-wPermissions
-  = lens _wPermissions (\ s a -> s{_wPermissions = a})
-
--- | Website url for this web property.
-wWebsiteURL :: Lens' WebProperty (Maybe Text)
-wWebsiteURL
-  = lens _wWebsiteURL (\ s a -> s{_wWebsiteURL = a})
-
--- | The industry vertical\/category selected for this web property.
-wIndustryVertical :: Lens' WebProperty (Maybe Text)
-wIndustryVertical
-  = lens _wIndustryVertical
-      (\ s a -> s{_wIndustryVertical = a})
-
--- | Level for this web property. Possible values are STANDARD or PREMIUM.
-wLevel :: Lens' WebProperty (Maybe Text)
-wLevel = lens _wLevel (\ s a -> s{_wLevel = a})
-
-instance FromJSON WebProperty where
-        parseJSON
-          = withObject "WebProperty"
-              (\ o ->
-                 WebProperty' <$>
-                   (o .:? "parentLink") <*> (o .:? "childLink") <*>
-                     (o .:? "defaultProfileId")
-                     <*> (o .:? "kind" .!= "analytics#webproperty")
-                     <*> (o .:? "created")
-                     <*> (o .:? "dataRetentionTtl")
-                     <*> (o .:? "dataRetentionResetOnNewActivity")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "starred")
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "profileCount")
-                     <*> (o .:? "permissions")
-                     <*> (o .:? "websiteUrl")
-                     <*> (o .:? "industryVertical")
-                     <*> (o .:? "level"))
-
-instance ToJSON WebProperty where
-        toJSON WebProperty'{..}
-          = object
-              (catMaybes
-                 [("parentLink" .=) <$> _wParentLink,
-                  ("childLink" .=) <$> _wChildLink,
-                  ("defaultProfileId" .=) <$> _wDefaultProFileId,
-                  Just ("kind" .= _wKind),
-                  ("created" .=) <$> _wCreated,
-                  ("dataRetentionTtl" .=) <$> _wDataRetentionTtl,
-                  ("dataRetentionResetOnNewActivity" .=) <$>
-                    _wDataRetentionResetOnNewActivity,
-                  ("selfLink" .=) <$> _wSelfLink,
-                  ("accountId" .=) <$> _wAccountId,
-                  ("name" .=) <$> _wName, ("starred" .=) <$> _wStarred,
-                  ("internalWebPropertyId" .=) <$>
-                    _wInternalWebPropertyId,
-                  ("id" .=) <$> _wId, ("updated" .=) <$> _wUpdated,
-                  ("profileCount" .=) <$> _wProFileCount,
-                  ("permissions" .=) <$> _wPermissions,
-                  ("websiteUrl" .=) <$> _wWebsiteURL,
-                  ("industryVertical" .=) <$> _wIndustryVertical,
-                  ("level" .=) <$> _wLevel])
-
--- | Permissions the user has for this web property.
---
--- /See:/ 'webPropertyPermissions' smart constructor.
-newtype WebPropertyPermissions = WebPropertyPermissions'
-    { _wppEffective :: Maybe [Text]
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'WebPropertyPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'wppEffective'
-webPropertyPermissions
-    :: WebPropertyPermissions
-webPropertyPermissions =
-    WebPropertyPermissions'
-    { _wppEffective = Nothing
-    }
-
--- | All the permissions that the user has for this web property. These
--- include any implied permissions (e.g., EDIT implies VIEW) or inherited
--- permissions from the parent account.
-wppEffective :: Lens' WebPropertyPermissions [Text]
-wppEffective
-  = lens _wppEffective (\ s a -> s{_wppEffective = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON WebPropertyPermissions where
-        parseJSON
-          = withObject "WebPropertyPermissions"
-              (\ o ->
-                 WebPropertyPermissions' <$>
-                   (o .:? "effective" .!= mempty))
-
-instance ToJSON WebPropertyPermissions where
-        toJSON WebPropertyPermissions'{..}
-          = object
-              (catMaybes [("effective" .=) <$> _wppEffective])
-
--- | JSON template for an Analytics Entity-User Link. Returns permissions
--- that a user has for an entity.
---
--- /See:/ 'entityUserLink' smart constructor.
-data EntityUserLink = EntityUserLink'
-    { _euluKind        :: !Text
-    , _euluUserRef     :: !(Maybe UserRef)
-    , _euluSelfLink    :: !(Maybe Text)
-    , _euluId          :: !(Maybe Text)
-    , _euluPermissions :: !(Maybe EntityUserLinkPermissions)
-    , _euluEntity      :: !(Maybe EntityUserLinkEntity)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EntityUserLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'euluKind'
---
--- * 'euluUserRef'
---
--- * 'euluSelfLink'
---
--- * 'euluId'
---
--- * 'euluPermissions'
---
--- * 'euluEntity'
-entityUserLink
-    :: EntityUserLink
-entityUserLink =
-    EntityUserLink'
-    { _euluKind = "analytics#entityUserLink"
-    , _euluUserRef = Nothing
-    , _euluSelfLink = Nothing
-    , _euluId = Nothing
-    , _euluPermissions = Nothing
-    , _euluEntity = Nothing
-    }
-
--- | Resource type for entity user link.
-euluKind :: Lens' EntityUserLink Text
-euluKind = lens _euluKind (\ s a -> s{_euluKind = a})
-
--- | User reference.
-euluUserRef :: Lens' EntityUserLink (Maybe UserRef)
-euluUserRef
-  = lens _euluUserRef (\ s a -> s{_euluUserRef = a})
-
--- | Self link for this resource.
-euluSelfLink :: Lens' EntityUserLink (Maybe Text)
-euluSelfLink
-  = lens _euluSelfLink (\ s a -> s{_euluSelfLink = a})
-
--- | Entity user link ID
-euluId :: Lens' EntityUserLink (Maybe Text)
-euluId = lens _euluId (\ s a -> s{_euluId = a})
-
--- | Permissions the user has for this entity.
-euluPermissions :: Lens' EntityUserLink (Maybe EntityUserLinkPermissions)
-euluPermissions
-  = lens _euluPermissions
-      (\ s a -> s{_euluPermissions = a})
-
--- | Entity for this link. It can be an account, a web property, or a view
--- (profile).
-euluEntity :: Lens' EntityUserLink (Maybe EntityUserLinkEntity)
-euluEntity
-  = lens _euluEntity (\ s a -> s{_euluEntity = a})
-
-instance FromJSON EntityUserLink where
-        parseJSON
-          = withObject "EntityUserLink"
-              (\ o ->
-                 EntityUserLink' <$>
-                   (o .:? "kind" .!= "analytics#entityUserLink") <*>
-                     (o .:? "userRef")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "id")
-                     <*> (o .:? "permissions")
-                     <*> (o .:? "entity"))
-
-instance ToJSON EntityUserLink where
-        toJSON EntityUserLink'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _euluKind),
-                  ("userRef" .=) <$> _euluUserRef,
-                  ("selfLink" .=) <$> _euluSelfLink,
-                  ("id" .=) <$> _euluId,
-                  ("permissions" .=) <$> _euluPermissions,
-                  ("entity" .=) <$> _euluEntity])
-
--- | Parent link for this custom data source. Points to the web property to
--- which this custom data source belongs.
---
--- /See:/ 'customDataSourceParentLink' smart constructor.
-data CustomDataSourceParentLink = CustomDataSourceParentLink'
-    { _cdsplHref :: !(Maybe Text)
-    , _cdsplType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomDataSourceParentLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdsplHref'
---
--- * 'cdsplType'
-customDataSourceParentLink
-    :: CustomDataSourceParentLink
-customDataSourceParentLink =
-    CustomDataSourceParentLink'
-    { _cdsplHref = Nothing
-    , _cdsplType = "analytics#webproperty"
-    }
-
--- | Link to the web property to which this custom data source belongs.
-cdsplHref :: Lens' CustomDataSourceParentLink (Maybe Text)
-cdsplHref
-  = lens _cdsplHref (\ s a -> s{_cdsplHref = a})
-
--- | Value is \"analytics#webproperty\".
-cdsplType :: Lens' CustomDataSourceParentLink Text
-cdsplType
-  = lens _cdsplType (\ s a -> s{_cdsplType = a})
-
-instance FromJSON CustomDataSourceParentLink where
-        parseJSON
-          = withObject "CustomDataSourceParentLink"
-              (\ o ->
-                 CustomDataSourceParentLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#webproperty"))
-
-instance ToJSON CustomDataSourceParentLink where
-        toJSON CustomDataSourceParentLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _cdsplHref,
-                  Just ("type" .= _cdsplType)])
-
---
--- /See:/ 'goalEventDetailsEventConditionsItem' smart constructor.
-data GoalEventDetailsEventConditionsItem = GoalEventDetailsEventConditionsItem'
-    { _gedeciMatchType       :: !(Maybe Text)
-    , _gedeciExpression      :: !(Maybe Text)
-    , _gedeciComparisonValue :: !(Maybe (Textual Int64))
-    , _gedeciType            :: !(Maybe Text)
-    , _gedeciComparisonType  :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GoalEventDetailsEventConditionsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gedeciMatchType'
---
--- * 'gedeciExpression'
---
--- * 'gedeciComparisonValue'
---
--- * 'gedeciType'
---
--- * 'gedeciComparisonType'
-goalEventDetailsEventConditionsItem
-    :: GoalEventDetailsEventConditionsItem
-goalEventDetailsEventConditionsItem =
-    GoalEventDetailsEventConditionsItem'
-    { _gedeciMatchType = Nothing
-    , _gedeciExpression = Nothing
-    , _gedeciComparisonValue = Nothing
-    , _gedeciType = Nothing
-    , _gedeciComparisonType = Nothing
-    }
-
--- | Type of the match to be performed. Possible values are REGEXP,
--- BEGINS_WITH, or EXACT.
-gedeciMatchType :: Lens' GoalEventDetailsEventConditionsItem (Maybe Text)
-gedeciMatchType
-  = lens _gedeciMatchType
-      (\ s a -> s{_gedeciMatchType = a})
-
--- | Expression used for this match.
-gedeciExpression :: Lens' GoalEventDetailsEventConditionsItem (Maybe Text)
-gedeciExpression
-  = lens _gedeciExpression
-      (\ s a -> s{_gedeciExpression = a})
-
--- | Value used for this comparison.
-gedeciComparisonValue :: Lens' GoalEventDetailsEventConditionsItem (Maybe Int64)
-gedeciComparisonValue
-  = lens _gedeciComparisonValue
-      (\ s a -> s{_gedeciComparisonValue = a})
-      . mapping _Coerce
-
--- | Type of this event condition. Possible values are CATEGORY, ACTION,
--- LABEL, or VALUE.
-gedeciType :: Lens' GoalEventDetailsEventConditionsItem (Maybe Text)
-gedeciType
-  = lens _gedeciType (\ s a -> s{_gedeciType = a})
-
--- | Type of comparison. Possible values are LESS_THAN, GREATER_THAN or
--- EQUAL.
-gedeciComparisonType :: Lens' GoalEventDetailsEventConditionsItem (Maybe Text)
-gedeciComparisonType
-  = lens _gedeciComparisonType
-      (\ s a -> s{_gedeciComparisonType = a})
-
-instance FromJSON GoalEventDetailsEventConditionsItem
-         where
-        parseJSON
-          = withObject "GoalEventDetailsEventConditionsItem"
-              (\ o ->
-                 GoalEventDetailsEventConditionsItem' <$>
-                   (o .:? "matchType") <*> (o .:? "expression") <*>
-                     (o .:? "comparisonValue")
-                     <*> (o .:? "type")
-                     <*> (o .:? "comparisonType"))
-
-instance ToJSON GoalEventDetailsEventConditionsItem
-         where
-        toJSON GoalEventDetailsEventConditionsItem'{..}
-          = object
-              (catMaybes
-                 [("matchType" .=) <$> _gedeciMatchType,
-                  ("expression" .=) <$> _gedeciExpression,
-                  ("comparisonValue" .=) <$> _gedeciComparisonValue,
-                  ("type" .=) <$> _gedeciType,
-                  ("comparisonType" .=) <$> _gedeciComparisonType])
-
---
--- /See:/ 'accountTreeRequestAccountSettings' smart constructor.
-data AccountTreeRequestAccountSettings = AccountTreeRequestAccountSettings'
-    { _atrasShareWithSpeciaLists       :: !(Maybe Bool)
-    , _atrasShareWithSupport           :: !(Maybe Bool)
-    , _atrasShareAnonymouslyWithOthers :: !(Maybe Bool)
-    , _atrasShareWithGoogleProducts    :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountTreeRequestAccountSettings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atrasShareWithSpeciaLists'
---
--- * 'atrasShareWithSupport'
---
--- * 'atrasShareAnonymouslyWithOthers'
---
--- * 'atrasShareWithGoogleProducts'
-accountTreeRequestAccountSettings
-    :: AccountTreeRequestAccountSettings
-accountTreeRequestAccountSettings =
-    AccountTreeRequestAccountSettings'
-    { _atrasShareWithSpeciaLists = Nothing
-    , _atrasShareWithSupport = Nothing
-    , _atrasShareAnonymouslyWithOthers = Nothing
-    , _atrasShareWithGoogleProducts = Nothing
-    }
-
-atrasShareWithSpeciaLists :: Lens' AccountTreeRequestAccountSettings (Maybe Bool)
-atrasShareWithSpeciaLists
-  = lens _atrasShareWithSpeciaLists
-      (\ s a -> s{_atrasShareWithSpeciaLists = a})
-
-atrasShareWithSupport :: Lens' AccountTreeRequestAccountSettings (Maybe Bool)
-atrasShareWithSupport
-  = lens _atrasShareWithSupport
-      (\ s a -> s{_atrasShareWithSupport = a})
-
-atrasShareAnonymouslyWithOthers :: Lens' AccountTreeRequestAccountSettings (Maybe Bool)
-atrasShareAnonymouslyWithOthers
-  = lens _atrasShareAnonymouslyWithOthers
-      (\ s a -> s{_atrasShareAnonymouslyWithOthers = a})
-
-atrasShareWithGoogleProducts :: Lens' AccountTreeRequestAccountSettings (Maybe Bool)
-atrasShareWithGoogleProducts
-  = lens _atrasShareWithGoogleProducts
-      (\ s a -> s{_atrasShareWithGoogleProducts = a})
-
-instance FromJSON AccountTreeRequestAccountSettings
-         where
-        parseJSON
-          = withObject "AccountTreeRequestAccountSettings"
-              (\ o ->
-                 AccountTreeRequestAccountSettings' <$>
-                   (o .:? "shareWithSpecialists") <*>
-                     (o .:? "shareWithSupport")
-                     <*> (o .:? "shareAnonymouslyWithOthers")
-                     <*> (o .:? "shareWithGoogleProducts"))
-
-instance ToJSON AccountTreeRequestAccountSettings
-         where
-        toJSON AccountTreeRequestAccountSettings'{..}
-          = object
-              (catMaybes
-                 [("shareWithSpecialists" .=) <$>
-                    _atrasShareWithSpeciaLists,
-                  ("shareWithSupport" .=) <$> _atrasShareWithSupport,
-                  ("shareAnonymouslyWithOthers" .=) <$>
-                    _atrasShareAnonymouslyWithOthers,
-                  ("shareWithGoogleProducts" .=) <$>
-                    _atrasShareWithGoogleProducts])
-
--- | Analytics data request query parameters.
---
--- /See:/ 'mcfDataQuery' smart constructor.
-data McfDataQuery = McfDataQuery'
-    { _mdqMetrics       :: !(Maybe [Text])
-    , _mdqSamplingLevel :: !(Maybe Text)
-    , _mdqFilters       :: !(Maybe Text)
-    , _mdqIds           :: !(Maybe Text)
-    , _mdqEndDate       :: !(Maybe Text)
-    , _mdqSort          :: !(Maybe [Text])
-    , _mdqDimensions    :: !(Maybe Text)
-    , _mdqStartIndex    :: !(Maybe (Textual Int32))
-    , _mdqMaxResults    :: !(Maybe (Textual Int32))
-    , _mdqSegment       :: !(Maybe Text)
-    , _mdqStartDate     :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'McfDataQuery' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mdqMetrics'
---
--- * 'mdqSamplingLevel'
---
--- * 'mdqFilters'
---
--- * 'mdqIds'
---
--- * 'mdqEndDate'
---
--- * 'mdqSort'
---
--- * 'mdqDimensions'
---
--- * 'mdqStartIndex'
---
--- * 'mdqMaxResults'
---
--- * 'mdqSegment'
---
--- * 'mdqStartDate'
-mcfDataQuery
-    :: McfDataQuery
-mcfDataQuery =
-    McfDataQuery'
-    { _mdqMetrics = Nothing
-    , _mdqSamplingLevel = Nothing
-    , _mdqFilters = Nothing
-    , _mdqIds = Nothing
-    , _mdqEndDate = Nothing
-    , _mdqSort = Nothing
-    , _mdqDimensions = Nothing
-    , _mdqStartIndex = Nothing
-    , _mdqMaxResults = Nothing
-    , _mdqSegment = Nothing
-    , _mdqStartDate = Nothing
-    }
-
--- | List of analytics metrics.
-mdqMetrics :: Lens' McfDataQuery [Text]
-mdqMetrics
-  = lens _mdqMetrics (\ s a -> s{_mdqMetrics = a}) .
-      _Default
-      . _Coerce
-
--- | Desired sampling level
-mdqSamplingLevel :: Lens' McfDataQuery (Maybe Text)
-mdqSamplingLevel
-  = lens _mdqSamplingLevel
-      (\ s a -> s{_mdqSamplingLevel = a})
-
--- | Comma-separated list of dimension or metric filters.
-mdqFilters :: Lens' McfDataQuery (Maybe Text)
-mdqFilters
-  = lens _mdqFilters (\ s a -> s{_mdqFilters = a})
-
--- | Unique table ID.
-mdqIds :: Lens' McfDataQuery (Maybe Text)
-mdqIds = lens _mdqIds (\ s a -> s{_mdqIds = a})
-
--- | End date.
-mdqEndDate :: Lens' McfDataQuery (Maybe Text)
-mdqEndDate
-  = lens _mdqEndDate (\ s a -> s{_mdqEndDate = a})
-
--- | List of dimensions or metrics based on which Analytics data is sorted.
-mdqSort :: Lens' McfDataQuery [Text]
-mdqSort
-  = lens _mdqSort (\ s a -> s{_mdqSort = a}) . _Default
-      . _Coerce
-
--- | List of analytics dimensions.
-mdqDimensions :: Lens' McfDataQuery (Maybe Text)
-mdqDimensions
-  = lens _mdqDimensions
-      (\ s a -> s{_mdqDimensions = a})
-
--- | Start index.
-mdqStartIndex :: Lens' McfDataQuery (Maybe Int32)
-mdqStartIndex
-  = lens _mdqStartIndex
-      (\ s a -> s{_mdqStartIndex = a})
-      . mapping _Coerce
-
--- | Maximum results per page.
-mdqMaxResults :: Lens' McfDataQuery (Maybe Int32)
-mdqMaxResults
-  = lens _mdqMaxResults
-      (\ s a -> s{_mdqMaxResults = a})
-      . mapping _Coerce
-
--- | Analytics advanced segment.
-mdqSegment :: Lens' McfDataQuery (Maybe Text)
-mdqSegment
-  = lens _mdqSegment (\ s a -> s{_mdqSegment = a})
-
--- | Start date.
-mdqStartDate :: Lens' McfDataQuery (Maybe Text)
-mdqStartDate
-  = lens _mdqStartDate (\ s a -> s{_mdqStartDate = a})
-
-instance FromJSON McfDataQuery where
-        parseJSON
-          = withObject "McfDataQuery"
-              (\ o ->
-                 McfDataQuery' <$>
-                   (o .:? "metrics" .!= mempty) <*>
-                     (o .:? "samplingLevel")
-                     <*> (o .:? "filters")
-                     <*> (o .:? "ids")
-                     <*> (o .:? "end-date")
-                     <*> (o .:? "sort" .!= mempty)
-                     <*> (o .:? "dimensions")
-                     <*> (o .:? "start-index")
-                     <*> (o .:? "max-results")
-                     <*> (o .:? "segment")
-                     <*> (o .:? "start-date"))
-
-instance ToJSON McfDataQuery where
-        toJSON McfDataQuery'{..}
-          = object
-              (catMaybes
-                 [("metrics" .=) <$> _mdqMetrics,
-                  ("samplingLevel" .=) <$> _mdqSamplingLevel,
-                  ("filters" .=) <$> _mdqFilters,
-                  ("ids" .=) <$> _mdqIds,
-                  ("end-date" .=) <$> _mdqEndDate,
-                  ("sort" .=) <$> _mdqSort,
-                  ("dimensions" .=) <$> _mdqDimensions,
-                  ("start-index" .=) <$> _mdqStartIndex,
-                  ("max-results" .=) <$> _mdqMaxResults,
-                  ("segment" .=) <$> _mdqSegment,
-                  ("start-date" .=) <$> _mdqStartDate])
-
--- | JSON template for Analytics goal resource.
---
--- /See:/ 'goal' smart constructor.
-data Goal = Goal'
-    { _goaParentLink             :: !(Maybe GoalParentLink)
-    , _goaWebPropertyId          :: !(Maybe Text)
-    , _goaKind                   :: !Text
-    , _goaCreated                :: !(Maybe DateTime')
-    , _goaValue                  :: !(Maybe (Textual Double))
-    , _goaProFileId              :: !(Maybe Text)
-    , _goaEventDetails           :: !(Maybe GoalEventDetails)
-    , _goaActive                 :: !(Maybe Bool)
-    , _goaSelfLink               :: !(Maybe Text)
-    , _goaVisitTimeOnSiteDetails :: !(Maybe GoalVisitTimeOnSiteDetails)
-    , _goaAccountId              :: !(Maybe Text)
-    , _goaName                   :: !(Maybe Text)
-    , _goaInternalWebPropertyId  :: !(Maybe Text)
-    , _goaId                     :: !(Maybe Text)
-    , _goaURLDestinationDetails  :: !(Maybe GoalURLDestinationDetails)
-    , _goaVisitNumPagesDetails   :: !(Maybe GoalVisitNumPagesDetails)
-    , _goaUpdated                :: !(Maybe DateTime')
-    , _goaType                   :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Goal' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'goaParentLink'
---
--- * 'goaWebPropertyId'
---
--- * 'goaKind'
---
--- * 'goaCreated'
---
--- * 'goaValue'
---
--- * 'goaProFileId'
---
--- * 'goaEventDetails'
---
--- * 'goaActive'
---
--- * 'goaSelfLink'
---
--- * 'goaVisitTimeOnSiteDetails'
---
--- * 'goaAccountId'
---
--- * 'goaName'
---
--- * 'goaInternalWebPropertyId'
---
--- * 'goaId'
---
--- * 'goaURLDestinationDetails'
---
--- * 'goaVisitNumPagesDetails'
---
--- * 'goaUpdated'
---
--- * 'goaType'
-goal
-    :: Goal
-goal =
-    Goal'
-    { _goaParentLink = Nothing
-    , _goaWebPropertyId = Nothing
-    , _goaKind = "analytics#goal"
-    , _goaCreated = Nothing
-    , _goaValue = Nothing
-    , _goaProFileId = Nothing
-    , _goaEventDetails = Nothing
-    , _goaActive = Nothing
-    , _goaSelfLink = Nothing
-    , _goaVisitTimeOnSiteDetails = Nothing
-    , _goaAccountId = Nothing
-    , _goaName = Nothing
-    , _goaInternalWebPropertyId = Nothing
-    , _goaId = Nothing
-    , _goaURLDestinationDetails = Nothing
-    , _goaVisitNumPagesDetails = Nothing
-    , _goaUpdated = Nothing
-    , _goaType = Nothing
-    }
-
--- | Parent link for a goal. Points to the view (profile) to which this goal
--- belongs.
-goaParentLink :: Lens' Goal (Maybe GoalParentLink)
-goaParentLink
-  = lens _goaParentLink
-      (\ s a -> s{_goaParentLink = a})
-
--- | Web property ID to which this goal belongs. The web property ID is of
--- the form UA-XXXXX-YY.
-goaWebPropertyId :: Lens' Goal (Maybe Text)
-goaWebPropertyId
-  = lens _goaWebPropertyId
-      (\ s a -> s{_goaWebPropertyId = a})
-
--- | Resource type for an Analytics goal.
-goaKind :: Lens' Goal Text
-goaKind = lens _goaKind (\ s a -> s{_goaKind = a})
-
--- | Time this goal was created.
-goaCreated :: Lens' Goal (Maybe UTCTime)
-goaCreated
-  = lens _goaCreated (\ s a -> s{_goaCreated = a}) .
-      mapping _DateTime
-
--- | Goal value.
-goaValue :: Lens' Goal (Maybe Double)
-goaValue
-  = lens _goaValue (\ s a -> s{_goaValue = a}) .
-      mapping _Coerce
-
--- | View (Profile) ID to which this goal belongs.
-goaProFileId :: Lens' Goal (Maybe Text)
-goaProFileId
-  = lens _goaProFileId (\ s a -> s{_goaProFileId = a})
-
--- | Details for the goal of the type EVENT.
-goaEventDetails :: Lens' Goal (Maybe GoalEventDetails)
-goaEventDetails
-  = lens _goaEventDetails
-      (\ s a -> s{_goaEventDetails = a})
-
--- | Determines whether this goal is active.
-goaActive :: Lens' Goal (Maybe Bool)
-goaActive
-  = lens _goaActive (\ s a -> s{_goaActive = a})
-
--- | Link for this goal.
-goaSelfLink :: Lens' Goal (Maybe Text)
-goaSelfLink
-  = lens _goaSelfLink (\ s a -> s{_goaSelfLink = a})
-
--- | Details for the goal of the type VISIT_TIME_ON_SITE.
-goaVisitTimeOnSiteDetails :: Lens' Goal (Maybe GoalVisitTimeOnSiteDetails)
-goaVisitTimeOnSiteDetails
-  = lens _goaVisitTimeOnSiteDetails
-      (\ s a -> s{_goaVisitTimeOnSiteDetails = a})
-
--- | Account ID to which this goal belongs.
-goaAccountId :: Lens' Goal (Maybe Text)
-goaAccountId
-  = lens _goaAccountId (\ s a -> s{_goaAccountId = a})
-
--- | Goal name.
-goaName :: Lens' Goal (Maybe Text)
-goaName = lens _goaName (\ s a -> s{_goaName = a})
-
--- | Internal ID for the web property to which this goal belongs.
-goaInternalWebPropertyId :: Lens' Goal (Maybe Text)
-goaInternalWebPropertyId
-  = lens _goaInternalWebPropertyId
-      (\ s a -> s{_goaInternalWebPropertyId = a})
-
--- | Goal ID.
-goaId :: Lens' Goal (Maybe Text)
-goaId = lens _goaId (\ s a -> s{_goaId = a})
-
--- | Details for the goal of the type URL_DESTINATION.
-goaURLDestinationDetails :: Lens' Goal (Maybe GoalURLDestinationDetails)
-goaURLDestinationDetails
-  = lens _goaURLDestinationDetails
-      (\ s a -> s{_goaURLDestinationDetails = a})
-
--- | Details for the goal of the type VISIT_NUM_PAGES.
-goaVisitNumPagesDetails :: Lens' Goal (Maybe GoalVisitNumPagesDetails)
-goaVisitNumPagesDetails
-  = lens _goaVisitNumPagesDetails
-      (\ s a -> s{_goaVisitNumPagesDetails = a})
-
--- | Time this goal was last modified.
-goaUpdated :: Lens' Goal (Maybe UTCTime)
-goaUpdated
-  = lens _goaUpdated (\ s a -> s{_goaUpdated = a}) .
-      mapping _DateTime
-
--- | Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE,
--- VISIT_NUM_PAGES, AND EVENT.
-goaType :: Lens' Goal (Maybe Text)
-goaType = lens _goaType (\ s a -> s{_goaType = a})
-
-instance FromJSON Goal where
-        parseJSON
-          = withObject "Goal"
-              (\ o ->
-                 Goal' <$>
-                   (o .:? "parentLink") <*> (o .:? "webPropertyId") <*>
-                     (o .:? "kind" .!= "analytics#goal")
-                     <*> (o .:? "created")
-                     <*> (o .:? "value")
-                     <*> (o .:? "profileId")
-                     <*> (o .:? "eventDetails")
-                     <*> (o .:? "active")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "visitTimeOnSiteDetails")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "urlDestinationDetails")
-                     <*> (o .:? "visitNumPagesDetails")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "type"))
-
-instance ToJSON Goal where
-        toJSON Goal'{..}
-          = object
-              (catMaybes
-                 [("parentLink" .=) <$> _goaParentLink,
-                  ("webPropertyId" .=) <$> _goaWebPropertyId,
-                  Just ("kind" .= _goaKind),
-                  ("created" .=) <$> _goaCreated,
-                  ("value" .=) <$> _goaValue,
-                  ("profileId" .=) <$> _goaProFileId,
-                  ("eventDetails" .=) <$> _goaEventDetails,
-                  ("active" .=) <$> _goaActive,
-                  ("selfLink" .=) <$> _goaSelfLink,
-                  ("visitTimeOnSiteDetails" .=) <$>
-                    _goaVisitTimeOnSiteDetails,
-                  ("accountId" .=) <$> _goaAccountId,
-                  ("name" .=) <$> _goaName,
-                  ("internalWebPropertyId" .=) <$>
-                    _goaInternalWebPropertyId,
-                  ("id" .=) <$> _goaId,
-                  ("urlDestinationDetails" .=) <$>
-                    _goaURLDestinationDetails,
-                  ("visitNumPagesDetails" .=) <$>
-                    _goaVisitNumPagesDetails,
-                  ("updated" .=) <$> _goaUpdated,
-                  ("type" .=) <$> _goaType])
-
--- | JSON template for an Analytics account ticket. The account ticket
--- consists of the ticket ID and the basic information for the account,
--- property and profile.
---
--- /See:/ 'accountTicket' smart constructor.
-data AccountTicket = AccountTicket'
-    { _atRedirectURI :: !(Maybe Text)
-    , _atKind        :: !Text
-    , _atProFile     :: !(Maybe ProFile)
-    , _atAccount     :: !(Maybe Account)
-    , _atWebProperty :: !(Maybe WebProperty)
-    , _atId          :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountTicket' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atRedirectURI'
---
--- * 'atKind'
---
--- * 'atProFile'
---
--- * 'atAccount'
---
--- * 'atWebProperty'
---
--- * 'atId'
-accountTicket
-    :: AccountTicket
-accountTicket =
-    AccountTicket'
-    { _atRedirectURI = Nothing
-    , _atKind = "analytics#accountTicket"
-    , _atProFile = Nothing
-    , _atAccount = Nothing
-    , _atWebProperty = Nothing
-    , _atId = Nothing
-    }
-
--- | Redirect URI where the user will be sent after accepting Terms of
--- Service. Must be configured in APIs console as a callback URL.
-atRedirectURI :: Lens' AccountTicket (Maybe Text)
-atRedirectURI
-  = lens _atRedirectURI
-      (\ s a -> s{_atRedirectURI = a})
-
--- | Resource type for account ticket.
-atKind :: Lens' AccountTicket Text
-atKind = lens _atKind (\ s a -> s{_atKind = a})
-
--- | View (Profile) for the account.
-atProFile :: Lens' AccountTicket (Maybe ProFile)
-atProFile
-  = lens _atProFile (\ s a -> s{_atProFile = a})
-
--- | Account for this ticket.
-atAccount :: Lens' AccountTicket (Maybe Account)
-atAccount
-  = lens _atAccount (\ s a -> s{_atAccount = a})
-
--- | Web property for the account.
-atWebProperty :: Lens' AccountTicket (Maybe WebProperty)
-atWebProperty
-  = lens _atWebProperty
-      (\ s a -> s{_atWebProperty = a})
-
--- | Account ticket ID used to access the account ticket.
-atId :: Lens' AccountTicket (Maybe Text)
-atId = lens _atId (\ s a -> s{_atId = a})
-
-instance FromJSON AccountTicket where
-        parseJSON
-          = withObject "AccountTicket"
-              (\ o ->
-                 AccountTicket' <$>
-                   (o .:? "redirectUri") <*>
-                     (o .:? "kind" .!= "analytics#accountTicket")
-                     <*> (o .:? "profile")
-                     <*> (o .:? "account")
-                     <*> (o .:? "webproperty")
-                     <*> (o .:? "id"))
-
-instance ToJSON AccountTicket where
-        toJSON AccountTicket'{..}
-          = object
-              (catMaybes
-                 [("redirectUri" .=) <$> _atRedirectURI,
-                  Just ("kind" .= _atKind),
-                  ("profile" .=) <$> _atProFile,
-                  ("account" .=) <$> _atAccount,
-                  ("webproperty" .=) <$> _atWebProperty,
-                  ("id" .=) <$> _atId])
-
--- | JSON template for an Analytics AccountSummary. An AccountSummary is a
--- lightweight tree comprised of properties\/profiles.
---
--- /See:/ 'accountSummary' smart constructor.
-data AccountSummary = AccountSummary'
-    { _assKind          :: !Text
-    , _assWebProperties :: !(Maybe [WebPropertySummary])
-    , _assName          :: !(Maybe Text)
-    , _assStarred       :: !(Maybe Bool)
-    , _assId            :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountSummary' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'assKind'
---
--- * 'assWebProperties'
---
--- * 'assName'
---
--- * 'assStarred'
---
--- * 'assId'
-accountSummary
-    :: AccountSummary
-accountSummary =
-    AccountSummary'
-    { _assKind = "analytics#accountSummary"
-    , _assWebProperties = Nothing
-    , _assName = Nothing
-    , _assStarred = Nothing
-    , _assId = Nothing
-    }
-
--- | Resource type for Analytics AccountSummary.
-assKind :: Lens' AccountSummary Text
-assKind = lens _assKind (\ s a -> s{_assKind = a})
-
--- | List of web properties under this account.
-assWebProperties :: Lens' AccountSummary [WebPropertySummary]
-assWebProperties
-  = lens _assWebProperties
-      (\ s a -> s{_assWebProperties = a})
-      . _Default
-      . _Coerce
-
--- | Account name.
-assName :: Lens' AccountSummary (Maybe Text)
-assName = lens _assName (\ s a -> s{_assName = a})
-
--- | Indicates whether this account is starred or not.
-assStarred :: Lens' AccountSummary (Maybe Bool)
-assStarred
-  = lens _assStarred (\ s a -> s{_assStarred = a})
-
--- | Account ID.
-assId :: Lens' AccountSummary (Maybe Text)
-assId = lens _assId (\ s a -> s{_assId = a})
-
-instance FromJSON AccountSummary where
-        parseJSON
-          = withObject "AccountSummary"
-              (\ o ->
-                 AccountSummary' <$>
-                   (o .:? "kind" .!= "analytics#accountSummary") <*>
-                     (o .:? "webProperties" .!= mempty)
-                     <*> (o .:? "name")
-                     <*> (o .:? "starred")
-                     <*> (o .:? "id"))
-
-instance ToJSON AccountSummary where
-        toJSON AccountSummary'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _assKind),
-                  ("webProperties" .=) <$> _assWebProperties,
-                  ("name" .=) <$> _assName,
-                  ("starred" .=) <$> _assStarred,
-                  ("id" .=) <$> _assId])
-
--- | Real time data request query parameters.
---
--- /See:/ 'realtimeDataQuery' smart constructor.
-data RealtimeDataQuery = RealtimeDataQuery'
-    { _rdqMetrics    :: !(Maybe [Text])
-    , _rdqFilters    :: !(Maybe Text)
-    , _rdqIds        :: !(Maybe Text)
-    , _rdqSort       :: !(Maybe [Text])
-    , _rdqDimensions :: !(Maybe Text)
-    , _rdqMaxResults :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RealtimeDataQuery' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdqMetrics'
---
--- * 'rdqFilters'
---
--- * 'rdqIds'
---
--- * 'rdqSort'
---
--- * 'rdqDimensions'
---
--- * 'rdqMaxResults'
-realtimeDataQuery
-    :: RealtimeDataQuery
-realtimeDataQuery =
-    RealtimeDataQuery'
-    { _rdqMetrics = Nothing
-    , _rdqFilters = Nothing
-    , _rdqIds = Nothing
-    , _rdqSort = Nothing
-    , _rdqDimensions = Nothing
-    , _rdqMaxResults = Nothing
-    }
-
--- | List of real time metrics.
-rdqMetrics :: Lens' RealtimeDataQuery [Text]
-rdqMetrics
-  = lens _rdqMetrics (\ s a -> s{_rdqMetrics = a}) .
-      _Default
-      . _Coerce
-
--- | Comma-separated list of dimension or metric filters.
-rdqFilters :: Lens' RealtimeDataQuery (Maybe Text)
-rdqFilters
-  = lens _rdqFilters (\ s a -> s{_rdqFilters = a})
-
--- | Unique table ID.
-rdqIds :: Lens' RealtimeDataQuery (Maybe Text)
-rdqIds = lens _rdqIds (\ s a -> s{_rdqIds = a})
-
--- | List of dimensions or metrics based on which real time data is sorted.
-rdqSort :: Lens' RealtimeDataQuery [Text]
-rdqSort
-  = lens _rdqSort (\ s a -> s{_rdqSort = a}) . _Default
-      . _Coerce
-
--- | List of real time dimensions.
-rdqDimensions :: Lens' RealtimeDataQuery (Maybe Text)
-rdqDimensions
-  = lens _rdqDimensions
-      (\ s a -> s{_rdqDimensions = a})
-
--- | Maximum results per page.
-rdqMaxResults :: Lens' RealtimeDataQuery (Maybe Int32)
-rdqMaxResults
-  = lens _rdqMaxResults
-      (\ s a -> s{_rdqMaxResults = a})
-      . mapping _Coerce
-
-instance FromJSON RealtimeDataQuery where
-        parseJSON
-          = withObject "RealtimeDataQuery"
-              (\ o ->
-                 RealtimeDataQuery' <$>
-                   (o .:? "metrics" .!= mempty) <*> (o .:? "filters")
-                     <*> (o .:? "ids")
-                     <*> (o .:? "sort" .!= mempty)
-                     <*> (o .:? "dimensions")
-                     <*> (o .:? "max-results"))
-
-instance ToJSON RealtimeDataQuery where
-        toJSON RealtimeDataQuery'{..}
-          = object
-              (catMaybes
-                 [("metrics" .=) <$> _rdqMetrics,
-                  ("filters" .=) <$> _rdqFilters,
-                  ("ids" .=) <$> _rdqIds, ("sort" .=) <$> _rdqSort,
-                  ("dimensions" .=) <$> _rdqDimensions,
-                  ("max-results" .=) <$> _rdqMaxResults])
-
--- | Lists columns (dimensions and metrics) for a particular report type.
---
--- /See:/ 'columns' smart constructor.
-data Columns = Columns'
-    { _colEtag           :: !(Maybe Text)
-    , _colKind           :: !Text
-    , _colItems          :: !(Maybe [Column])
-    , _colTotalResults   :: !(Maybe (Textual Int32))
-    , _colAttributeNames :: !(Maybe [Text])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Columns' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'colEtag'
---
--- * 'colKind'
---
--- * 'colItems'
---
--- * 'colTotalResults'
---
--- * 'colAttributeNames'
-columns
-    :: Columns
-columns =
-    Columns'
-    { _colEtag = Nothing
-    , _colKind = "analytics#columns"
-    , _colItems = Nothing
-    , _colTotalResults = Nothing
-    , _colAttributeNames = Nothing
-    }
-
--- | Etag of collection. This etag can be compared with the last response
--- etag to check if response has changed.
-colEtag :: Lens' Columns (Maybe Text)
-colEtag = lens _colEtag (\ s a -> s{_colEtag = a})
-
--- | Collection type.
-colKind :: Lens' Columns Text
-colKind = lens _colKind (\ s a -> s{_colKind = a})
-
--- | List of columns for a report type.
-colItems :: Lens' Columns [Column]
-colItems
-  = lens _colItems (\ s a -> s{_colItems = a}) .
-      _Default
-      . _Coerce
-
--- | Total number of columns returned in the response.
-colTotalResults :: Lens' Columns (Maybe Int32)
-colTotalResults
-  = lens _colTotalResults
-      (\ s a -> s{_colTotalResults = a})
-      . mapping _Coerce
-
--- | List of attributes names returned by columns.
-colAttributeNames :: Lens' Columns [Text]
-colAttributeNames
-  = lens _colAttributeNames
-      (\ s a -> s{_colAttributeNames = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON Columns where
-        parseJSON
-          = withObject "Columns"
-              (\ o ->
-                 Columns' <$>
-                   (o .:? "etag") <*>
-                     (o .:? "kind" .!= "analytics#columns")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "attributeNames" .!= mempty))
-
-instance ToJSON Columns where
-        toJSON Columns'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _colEtag, Just ("kind" .= _colKind),
-                  ("items" .=) <$> _colItems,
-                  ("totalResults" .=) <$> _colTotalResults,
-                  ("attributeNames" .=) <$> _colAttributeNames])
-
--- | Details for the filter of the type LOWER.
---
--- /See:/ 'filterLowercaseDetails' smart constructor.
-data FilterLowercaseDetails = FilterLowercaseDetails'
-    { _fldFieldIndex :: !(Maybe (Textual Int32))
-    , _fldField      :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FilterLowercaseDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fldFieldIndex'
---
--- * 'fldField'
-filterLowercaseDetails
-    :: FilterLowercaseDetails
-filterLowercaseDetails =
-    FilterLowercaseDetails'
-    { _fldFieldIndex = Nothing
-    , _fldField = Nothing
-    }
-
--- | The Index of the custom dimension. Required if field is a
--- CUSTOM_DIMENSION.
-fldFieldIndex :: Lens' FilterLowercaseDetails (Maybe Int32)
-fldFieldIndex
-  = lens _fldFieldIndex
-      (\ s a -> s{_fldFieldIndex = a})
-      . mapping _Coerce
-
--- | Field to use in the filter.
-fldField :: Lens' FilterLowercaseDetails (Maybe Text)
-fldField = lens _fldField (\ s a -> s{_fldField = a})
-
-instance FromJSON FilterLowercaseDetails where
-        parseJSON
-          = withObject "FilterLowercaseDetails"
-              (\ o ->
-                 FilterLowercaseDetails' <$>
-                   (o .:? "fieldIndex") <*> (o .:? "field"))
-
-instance ToJSON FilterLowercaseDetails where
-        toJSON FilterLowercaseDetails'{..}
-          = object
-              (catMaybes
-                 [("fieldIndex" .=) <$> _fldFieldIndex,
-                  ("field" .=) <$> _fldField])
-
--- | JSON template for an Analytics account filter.
---
--- /See:/ 'filter'' smart constructor.
-data Filter = Filter'
-    { _filParentLink              :: !(Maybe FilterParentLink)
-    , _filAdvancedDetails         :: !(Maybe FilterAdvancedDetails)
-    , _filUppercaseDetails        :: !(Maybe FilterUppercaseDetails)
-    , _filLowercaseDetails        :: !(Maybe FilterLowercaseDetails)
-    , _filKind                    :: !Text
-    , _filCreated                 :: !(Maybe DateTime')
-    , _filIncludeDetails          :: !(Maybe FilterExpression)
-    , _filExcludeDetails          :: !(Maybe FilterExpression)
-    , _filSelfLink                :: !(Maybe Text)
-    , _filAccountId               :: !(Maybe Text)
-    , _filName                    :: !(Maybe Text)
-    , _filId                      :: !(Maybe Text)
-    , _filUpdated                 :: !(Maybe DateTime')
-    , _filType                    :: !(Maybe Text)
-    , _filSearchAndReplaceDetails :: !(Maybe FilterSearchAndReplaceDetails)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Filter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'filParentLink'
---
--- * 'filAdvancedDetails'
---
--- * 'filUppercaseDetails'
---
--- * 'filLowercaseDetails'
---
--- * 'filKind'
---
--- * 'filCreated'
---
--- * 'filIncludeDetails'
---
--- * 'filExcludeDetails'
---
--- * 'filSelfLink'
---
--- * 'filAccountId'
---
--- * 'filName'
---
--- * 'filId'
---
--- * 'filUpdated'
---
--- * 'filType'
---
--- * 'filSearchAndReplaceDetails'
-filter'
-    :: Filter
-filter' =
-    Filter'
-    { _filParentLink = Nothing
-    , _filAdvancedDetails = Nothing
-    , _filUppercaseDetails = Nothing
-    , _filLowercaseDetails = Nothing
-    , _filKind = "analytics#filter"
-    , _filCreated = Nothing
-    , _filIncludeDetails = Nothing
-    , _filExcludeDetails = Nothing
-    , _filSelfLink = Nothing
-    , _filAccountId = Nothing
-    , _filName = Nothing
-    , _filId = Nothing
-    , _filUpdated = Nothing
-    , _filType = Nothing
-    , _filSearchAndReplaceDetails = Nothing
-    }
-
--- | Parent link for this filter. Points to the account to which this filter
--- belongs.
-filParentLink :: Lens' Filter (Maybe FilterParentLink)
-filParentLink
-  = lens _filParentLink
-      (\ s a -> s{_filParentLink = a})
-
--- | Details for the filter of the type ADVANCED.
-filAdvancedDetails :: Lens' Filter (Maybe FilterAdvancedDetails)
-filAdvancedDetails
-  = lens _filAdvancedDetails
-      (\ s a -> s{_filAdvancedDetails = a})
-
--- | Details for the filter of the type UPPER.
-filUppercaseDetails :: Lens' Filter (Maybe FilterUppercaseDetails)
-filUppercaseDetails
-  = lens _filUppercaseDetails
-      (\ s a -> s{_filUppercaseDetails = a})
-
--- | Details for the filter of the type LOWER.
-filLowercaseDetails :: Lens' Filter (Maybe FilterLowercaseDetails)
-filLowercaseDetails
-  = lens _filLowercaseDetails
-      (\ s a -> s{_filLowercaseDetails = a})
-
--- | Resource type for Analytics filter.
-filKind :: Lens' Filter Text
-filKind = lens _filKind (\ s a -> s{_filKind = a})
-
--- | Time this filter was created.
-filCreated :: Lens' Filter (Maybe UTCTime)
-filCreated
-  = lens _filCreated (\ s a -> s{_filCreated = a}) .
-      mapping _DateTime
-
--- | Details for the filter of the type INCLUDE.
-filIncludeDetails :: Lens' Filter (Maybe FilterExpression)
-filIncludeDetails
-  = lens _filIncludeDetails
-      (\ s a -> s{_filIncludeDetails = a})
-
--- | Details for the filter of the type EXCLUDE.
-filExcludeDetails :: Lens' Filter (Maybe FilterExpression)
-filExcludeDetails
-  = lens _filExcludeDetails
-      (\ s a -> s{_filExcludeDetails = a})
-
--- | Link for this filter.
-filSelfLink :: Lens' Filter (Maybe Text)
-filSelfLink
-  = lens _filSelfLink (\ s a -> s{_filSelfLink = a})
-
--- | Account ID to which this filter belongs.
-filAccountId :: Lens' Filter (Maybe Text)
-filAccountId
-  = lens _filAccountId (\ s a -> s{_filAccountId = a})
-
--- | Name of this filter.
-filName :: Lens' Filter (Maybe Text)
-filName = lens _filName (\ s a -> s{_filName = a})
-
--- | Filter ID.
-filId :: Lens' Filter (Maybe Text)
-filId = lens _filId (\ s a -> s{_filId = a})
-
--- | Time this filter was last modified.
-filUpdated :: Lens' Filter (Maybe UTCTime)
-filUpdated
-  = lens _filUpdated (\ s a -> s{_filUpdated = a}) .
-      mapping _DateTime
-
--- | Type of this filter. Possible values are INCLUDE, EXCLUDE, LOWERCASE,
--- UPPERCASE, SEARCH_AND_REPLACE and ADVANCED.
-filType :: Lens' Filter (Maybe Text)
-filType = lens _filType (\ s a -> s{_filType = a})
-
--- | Details for the filter of the type SEARCH_AND_REPLACE.
-filSearchAndReplaceDetails :: Lens' Filter (Maybe FilterSearchAndReplaceDetails)
-filSearchAndReplaceDetails
-  = lens _filSearchAndReplaceDetails
-      (\ s a -> s{_filSearchAndReplaceDetails = a})
-
-instance FromJSON Filter where
-        parseJSON
-          = withObject "Filter"
-              (\ o ->
-                 Filter' <$>
-                   (o .:? "parentLink") <*> (o .:? "advancedDetails")
-                     <*> (o .:? "uppercaseDetails")
-                     <*> (o .:? "lowercaseDetails")
-                     <*> (o .:? "kind" .!= "analytics#filter")
-                     <*> (o .:? "created")
-                     <*> (o .:? "includeDetails")
-                     <*> (o .:? "excludeDetails")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "type")
-                     <*> (o .:? "searchAndReplaceDetails"))
-
-instance ToJSON Filter where
-        toJSON Filter'{..}
-          = object
-              (catMaybes
-                 [("parentLink" .=) <$> _filParentLink,
-                  ("advancedDetails" .=) <$> _filAdvancedDetails,
-                  ("uppercaseDetails" .=) <$> _filUppercaseDetails,
-                  ("lowercaseDetails" .=) <$> _filLowercaseDetails,
-                  Just ("kind" .= _filKind),
-                  ("created" .=) <$> _filCreated,
-                  ("includeDetails" .=) <$> _filIncludeDetails,
-                  ("excludeDetails" .=) <$> _filExcludeDetails,
-                  ("selfLink" .=) <$> _filSelfLink,
-                  ("accountId" .=) <$> _filAccountId,
-                  ("name" .=) <$> _filName, ("id" .=) <$> _filId,
-                  ("updated" .=) <$> _filUpdated,
-                  ("type" .=) <$> _filType,
-                  ("searchAndReplaceDetails" .=) <$>
-                    _filSearchAndReplaceDetails])
-
--- | Upload collection lists Analytics uploads to which the user has access.
--- Each custom data source can have a set of uploads. Each resource in the
--- upload collection corresponds to a single Analytics data upload.
---
--- /See:/ 'uploads' smart constructor.
-data Uploads = Uploads'
-    { _uplNextLink     :: !(Maybe Text)
-    , _uplItemsPerPage :: !(Maybe (Textual Int32))
-    , _uplKind         :: !Text
-    , _uplItems        :: !(Maybe [Upload])
-    , _uplTotalResults :: !(Maybe (Textual Int32))
-    , _uplStartIndex   :: !(Maybe (Textual Int32))
-    , _uplPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Uploads' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uplNextLink'
---
--- * 'uplItemsPerPage'
---
--- * 'uplKind'
---
--- * 'uplItems'
---
--- * 'uplTotalResults'
---
--- * 'uplStartIndex'
---
--- * 'uplPreviousLink'
-uploads
-    :: Uploads
-uploads =
-    Uploads'
-    { _uplNextLink = Nothing
-    , _uplItemsPerPage = Nothing
-    , _uplKind = "analytics#uploads"
-    , _uplItems = Nothing
-    , _uplTotalResults = Nothing
-    , _uplStartIndex = Nothing
-    , _uplPreviousLink = Nothing
-    }
-
--- | Link to next page for this upload collection.
-uplNextLink :: Lens' Uploads (Maybe Text)
-uplNextLink
-  = lens _uplNextLink (\ s a -> s{_uplNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-uplItemsPerPage :: Lens' Uploads (Maybe Int32)
-uplItemsPerPage
-  = lens _uplItemsPerPage
-      (\ s a -> s{_uplItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-uplKind :: Lens' Uploads Text
-uplKind = lens _uplKind (\ s a -> s{_uplKind = a})
-
--- | A list of uploads.
-uplItems :: Lens' Uploads [Upload]
-uplItems
-  = lens _uplItems (\ s a -> s{_uplItems = a}) .
-      _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- resources in the result.
-uplTotalResults :: Lens' Uploads (Maybe Int32)
-uplTotalResults
-  = lens _uplTotalResults
-      (\ s a -> s{_uplTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-uplStartIndex :: Lens' Uploads (Maybe Int32)
-uplStartIndex
-  = lens _uplStartIndex
-      (\ s a -> s{_uplStartIndex = a})
-      . mapping _Coerce
-
--- | Link to previous page for this upload collection.
-uplPreviousLink :: Lens' Uploads (Maybe Text)
-uplPreviousLink
-  = lens _uplPreviousLink
-      (\ s a -> s{_uplPreviousLink = a})
-
-instance FromJSON Uploads where
-        parseJSON
-          = withObject "Uploads"
-              (\ o ->
-                 Uploads' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#uploads")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON Uploads where
-        toJSON Uploads'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _uplNextLink,
-                  ("itemsPerPage" .=) <$> _uplItemsPerPage,
-                  Just ("kind" .= _uplKind),
-                  ("items" .=) <$> _uplItems,
-                  ("totalResults" .=) <$> _uplTotalResults,
-                  ("startIndex" .=) <$> _uplStartIndex,
-                  ("previousLink" .=) <$> _uplPreviousLink])
-
--- | A custom dimension collection lists Analytics custom dimensions to which
--- the user has access. Each resource in the collection corresponds to a
--- single Analytics custom dimension.
---
--- /See:/ 'customDimensions' smart constructor.
-data CustomDimensions = CustomDimensions'
-    { _cdNextLink     :: !(Maybe Text)
-    , _cdItemsPerPage :: !(Maybe (Textual Int32))
-    , _cdKind         :: !Text
-    , _cdUsername     :: !(Maybe Text)
-    , _cdItems        :: !(Maybe [CustomDimension])
-    , _cdTotalResults :: !(Maybe (Textual Int32))
-    , _cdStartIndex   :: !(Maybe (Textual Int32))
-    , _cdPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomDimensions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdNextLink'
---
--- * 'cdItemsPerPage'
---
--- * 'cdKind'
---
--- * 'cdUsername'
---
--- * 'cdItems'
---
--- * 'cdTotalResults'
---
--- * 'cdStartIndex'
---
--- * 'cdPreviousLink'
-customDimensions
-    :: CustomDimensions
-customDimensions =
-    CustomDimensions'
-    { _cdNextLink = Nothing
-    , _cdItemsPerPage = Nothing
-    , _cdKind = "analytics#customDimensions"
-    , _cdUsername = Nothing
-    , _cdItems = Nothing
-    , _cdTotalResults = Nothing
-    , _cdStartIndex = Nothing
-    , _cdPreviousLink = Nothing
-    }
-
--- | Link to next page for this custom dimension collection.
-cdNextLink :: Lens' CustomDimensions (Maybe Text)
-cdNextLink
-  = lens _cdNextLink (\ s a -> s{_cdNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-cdItemsPerPage :: Lens' CustomDimensions (Maybe Int32)
-cdItemsPerPage
-  = lens _cdItemsPerPage
-      (\ s a -> s{_cdItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-cdKind :: Lens' CustomDimensions Text
-cdKind = lens _cdKind (\ s a -> s{_cdKind = a})
-
--- | Email ID of the authenticated user
-cdUsername :: Lens' CustomDimensions (Maybe Text)
-cdUsername
-  = lens _cdUsername (\ s a -> s{_cdUsername = a})
-
--- | Collection of custom dimensions.
-cdItems :: Lens' CustomDimensions [CustomDimension]
-cdItems
-  = lens _cdItems (\ s a -> s{_cdItems = a}) . _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-cdTotalResults :: Lens' CustomDimensions (Maybe Int32)
-cdTotalResults
-  = lens _cdTotalResults
-      (\ s a -> s{_cdTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-cdStartIndex :: Lens' CustomDimensions (Maybe Int32)
-cdStartIndex
-  = lens _cdStartIndex (\ s a -> s{_cdStartIndex = a})
-      . mapping _Coerce
-
--- | Link to previous page for this custom dimension collection.
-cdPreviousLink :: Lens' CustomDimensions (Maybe Text)
-cdPreviousLink
-  = lens _cdPreviousLink
-      (\ s a -> s{_cdPreviousLink = a})
-
-instance FromJSON CustomDimensions where
-        parseJSON
-          = withObject "CustomDimensions"
-              (\ o ->
-                 CustomDimensions' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#customDimensions")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON CustomDimensions where
-        toJSON CustomDimensions'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _cdNextLink,
-                  ("itemsPerPage" .=) <$> _cdItemsPerPage,
-                  Just ("kind" .= _cdKind),
-                  ("username" .=) <$> _cdUsername,
-                  ("items" .=) <$> _cdItems,
-                  ("totalResults" .=) <$> _cdTotalResults,
-                  ("startIndex" .=) <$> _cdStartIndex,
-                  ("previousLink" .=) <$> _cdPreviousLink])
-
--- | An segment collection lists Analytics segments that the user has access
--- to. Each resource in the collection corresponds to a single Analytics
--- segment.
---
--- /See:/ 'segments' smart constructor.
-data Segments = Segments'
-    { _sNextLink     :: !(Maybe Text)
-    , _sItemsPerPage :: !(Maybe (Textual Int32))
-    , _sKind         :: !Text
-    , _sUsername     :: !(Maybe Text)
-    , _sItems        :: !(Maybe [Segment])
-    , _sTotalResults :: !(Maybe (Textual Int32))
-    , _sStartIndex   :: !(Maybe (Textual Int32))
-    , _sPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Segments' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sNextLink'
---
--- * 'sItemsPerPage'
---
--- * 'sKind'
---
--- * 'sUsername'
---
--- * 'sItems'
---
--- * 'sTotalResults'
---
--- * 'sStartIndex'
---
--- * 'sPreviousLink'
-segments
-    :: Segments
-segments =
-    Segments'
-    { _sNextLink = Nothing
-    , _sItemsPerPage = Nothing
-    , _sKind = "analytics#segments"
-    , _sUsername = Nothing
-    , _sItems = Nothing
-    , _sTotalResults = Nothing
-    , _sStartIndex = Nothing
-    , _sPreviousLink = Nothing
-    }
-
--- | Link to next page for this segment collection.
-sNextLink :: Lens' Segments (Maybe Text)
-sNextLink
-  = lens _sNextLink (\ s a -> s{_sNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to 1000
--- with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-sItemsPerPage :: Lens' Segments (Maybe Int32)
-sItemsPerPage
-  = lens _sItemsPerPage
-      (\ s a -> s{_sItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type for segments.
-sKind :: Lens' Segments Text
-sKind = lens _sKind (\ s a -> s{_sKind = a})
-
--- | Email ID of the authenticated user
-sUsername :: Lens' Segments (Maybe Text)
-sUsername
-  = lens _sUsername (\ s a -> s{_sUsername = a})
-
--- | A list of segments.
-sItems :: Lens' Segments [Segment]
-sItems
-  = lens _sItems (\ s a -> s{_sItems = a}) . _Default .
-      _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-sTotalResults :: Lens' Segments (Maybe Int32)
-sTotalResults
-  = lens _sTotalResults
-      (\ s a -> s{_sTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-sStartIndex :: Lens' Segments (Maybe Int32)
-sStartIndex
-  = lens _sStartIndex (\ s a -> s{_sStartIndex = a}) .
-      mapping _Coerce
-
--- | Link to previous page for this segment collection.
-sPreviousLink :: Lens' Segments (Maybe Text)
-sPreviousLink
-  = lens _sPreviousLink
-      (\ s a -> s{_sPreviousLink = a})
-
-instance FromJSON Segments where
-        parseJSON
-          = withObject "Segments"
-              (\ o ->
-                 Segments' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#segments")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON Segments where
-        toJSON Segments'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _sNextLink,
-                  ("itemsPerPage" .=) <$> _sItemsPerPage,
-                  Just ("kind" .= _sKind),
-                  ("username" .=) <$> _sUsername,
-                  ("items" .=) <$> _sItems,
-                  ("totalResults" .=) <$> _sTotalResults,
-                  ("startIndex" .=) <$> _sStartIndex,
-                  ("previousLink" .=) <$> _sPreviousLink])
-
---
--- /See:/ 'gaDataDataTable' smart constructor.
-data GaDataDataTable = GaDataDataTable'
-    { _gddtCols :: !(Maybe [GaDataDataTableColsItem])
-    , _gddtRows :: !(Maybe [GaDataDataTableRowsItem])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GaDataDataTable' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gddtCols'
---
--- * 'gddtRows'
-gaDataDataTable
-    :: GaDataDataTable
-gaDataDataTable =
-    GaDataDataTable'
-    { _gddtCols = Nothing
-    , _gddtRows = Nothing
-    }
-
-gddtCols :: Lens' GaDataDataTable [GaDataDataTableColsItem]
-gddtCols
-  = lens _gddtCols (\ s a -> s{_gddtCols = a}) .
-      _Default
-      . _Coerce
-
-gddtRows :: Lens' GaDataDataTable [GaDataDataTableRowsItem]
-gddtRows
-  = lens _gddtRows (\ s a -> s{_gddtRows = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON GaDataDataTable where
-        parseJSON
-          = withObject "GaDataDataTable"
-              (\ o ->
-                 GaDataDataTable' <$>
-                   (o .:? "cols" .!= mempty) <*>
-                     (o .:? "rows" .!= mempty))
-
-instance ToJSON GaDataDataTable where
-        toJSON GaDataDataTable'{..}
-          = object
-              (catMaybes
-                 [("cols" .=) <$> _gddtCols,
-                  ("rows" .=) <$> _gddtRows])
-
--- | Web property being linked.
---
--- /See:/ 'entityAdWordsLinkEntity' smart constructor.
-newtype EntityAdWordsLinkEntity = EntityAdWordsLinkEntity'
-    { _eawleWebPropertyRef :: Maybe WebPropertyRef
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EntityAdWordsLinkEntity' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eawleWebPropertyRef'
-entityAdWordsLinkEntity
-    :: EntityAdWordsLinkEntity
-entityAdWordsLinkEntity =
-    EntityAdWordsLinkEntity'
-    { _eawleWebPropertyRef = Nothing
-    }
-
-eawleWebPropertyRef :: Lens' EntityAdWordsLinkEntity (Maybe WebPropertyRef)
-eawleWebPropertyRef
-  = lens _eawleWebPropertyRef
-      (\ s a -> s{_eawleWebPropertyRef = a})
-
-instance FromJSON EntityAdWordsLinkEntity where
-        parseJSON
-          = withObject "EntityAdWordsLinkEntity"
-              (\ o ->
-                 EntityAdWordsLinkEntity' <$>
-                   (o .:? "webPropertyRef"))
-
-instance ToJSON EntityAdWordsLinkEntity where
-        toJSON EntityAdWordsLinkEntity'{..}
-          = object
-              (catMaybes
-                 [("webPropertyRef" .=) <$> _eawleWebPropertyRef])
-
--- | A state based audience definition that will cause a user to be added or
--- removed from an audience.
---
--- /See:/ 'remarketingAudienceStateBasedAudienceDefinition' smart constructor.
-data RemarketingAudienceStateBasedAudienceDefinition = RemarketingAudienceStateBasedAudienceDefinition'
-    { _rasbadExcludeConditions :: !(Maybe RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions)
-    , _rasbadIncludeConditions :: !(Maybe IncludeConditions)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RemarketingAudienceStateBasedAudienceDefinition' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rasbadExcludeConditions'
---
--- * 'rasbadIncludeConditions'
-remarketingAudienceStateBasedAudienceDefinition
-    :: RemarketingAudienceStateBasedAudienceDefinition
-remarketingAudienceStateBasedAudienceDefinition =
-    RemarketingAudienceStateBasedAudienceDefinition'
-    { _rasbadExcludeConditions = Nothing
-    , _rasbadIncludeConditions = Nothing
-    }
-
--- | Defines the conditions to exclude users from the audience.
-rasbadExcludeConditions :: Lens' RemarketingAudienceStateBasedAudienceDefinition (Maybe RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions)
-rasbadExcludeConditions
-  = lens _rasbadExcludeConditions
-      (\ s a -> s{_rasbadExcludeConditions = a})
-
--- | Defines the conditions to include users to the audience.
-rasbadIncludeConditions :: Lens' RemarketingAudienceStateBasedAudienceDefinition (Maybe IncludeConditions)
-rasbadIncludeConditions
-  = lens _rasbadIncludeConditions
-      (\ s a -> s{_rasbadIncludeConditions = a})
-
-instance FromJSON
-         RemarketingAudienceStateBasedAudienceDefinition where
-        parseJSON
-          = withObject
-              "RemarketingAudienceStateBasedAudienceDefinition"
-              (\ o ->
-                 RemarketingAudienceStateBasedAudienceDefinition' <$>
-                   (o .:? "excludeConditions") <*>
-                     (o .:? "includeConditions"))
-
-instance ToJSON
-         RemarketingAudienceStateBasedAudienceDefinition where
-        toJSON
-          RemarketingAudienceStateBasedAudienceDefinition'{..}
-          = object
-              (catMaybes
-                 [("excludeConditions" .=) <$>
-                    _rasbadExcludeConditions,
-                  ("includeConditions" .=) <$>
-                    _rasbadIncludeConditions])
-
---
--- /See:/ 'accountTreeResponseAccountSettings' smart constructor.
-data AccountTreeResponseAccountSettings = AccountTreeResponseAccountSettings'
-    { _aShareWithSpeciaLists       :: !(Maybe Bool)
-    , _aShareWithSupport           :: !(Maybe Bool)
-    , _aShareAnonymouslyWithOthers :: !(Maybe Bool)
-    , _aShareWithGoogleProducts    :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountTreeResponseAccountSettings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aShareWithSpeciaLists'
---
--- * 'aShareWithSupport'
---
--- * 'aShareAnonymouslyWithOthers'
---
--- * 'aShareWithGoogleProducts'
-accountTreeResponseAccountSettings
-    :: AccountTreeResponseAccountSettings
-accountTreeResponseAccountSettings =
-    AccountTreeResponseAccountSettings'
-    { _aShareWithSpeciaLists = Nothing
-    , _aShareWithSupport = Nothing
-    , _aShareAnonymouslyWithOthers = Nothing
-    , _aShareWithGoogleProducts = Nothing
-    }
-
-aShareWithSpeciaLists :: Lens' AccountTreeResponseAccountSettings (Maybe Bool)
-aShareWithSpeciaLists
-  = lens _aShareWithSpeciaLists
-      (\ s a -> s{_aShareWithSpeciaLists = a})
-
-aShareWithSupport :: Lens' AccountTreeResponseAccountSettings (Maybe Bool)
-aShareWithSupport
-  = lens _aShareWithSupport
-      (\ s a -> s{_aShareWithSupport = a})
-
-aShareAnonymouslyWithOthers :: Lens' AccountTreeResponseAccountSettings (Maybe Bool)
-aShareAnonymouslyWithOthers
-  = lens _aShareAnonymouslyWithOthers
-      (\ s a -> s{_aShareAnonymouslyWithOthers = a})
-
-aShareWithGoogleProducts :: Lens' AccountTreeResponseAccountSettings (Maybe Bool)
-aShareWithGoogleProducts
-  = lens _aShareWithGoogleProducts
-      (\ s a -> s{_aShareWithGoogleProducts = a})
-
-instance FromJSON AccountTreeResponseAccountSettings
-         where
-        parseJSON
-          = withObject "AccountTreeResponseAccountSettings"
-              (\ o ->
-                 AccountTreeResponseAccountSettings' <$>
-                   (o .:? "shareWithSpecialists") <*>
-                     (o .:? "shareWithSupport")
-                     <*> (o .:? "shareAnonymouslyWithOthers")
-                     <*> (o .:? "shareWithGoogleProducts"))
-
-instance ToJSON AccountTreeResponseAccountSettings
-         where
-        toJSON AccountTreeResponseAccountSettings'{..}
-          = object
-              (catMaybes
-                 [("shareWithSpecialists" .=) <$>
-                    _aShareWithSpeciaLists,
-                  ("shareWithSupport" .=) <$> _aShareWithSupport,
-                  ("shareAnonymouslyWithOthers" .=) <$>
-                    _aShareAnonymouslyWithOthers,
-                  ("shareWithGoogleProducts" .=) <$>
-                    _aShareWithGoogleProducts])
-
--- | Details for the goal of the type URL_DESTINATION.
---
--- /See:/ 'goalURLDestinationDetails' smart constructor.
-data GoalURLDestinationDetails = GoalURLDestinationDetails'
-    { _guddURL               :: !(Maybe Text)
-    , _guddMatchType         :: !(Maybe Text)
-    , _guddSteps             :: !(Maybe [GoalURLDestinationDetailsStepsItem])
-    , _guddCaseSensitive     :: !(Maybe Bool)
-    , _guddFirstStepRequired :: !(Maybe Bool)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GoalURLDestinationDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'guddURL'
---
--- * 'guddMatchType'
---
--- * 'guddSteps'
---
--- * 'guddCaseSensitive'
---
--- * 'guddFirstStepRequired'
-goalURLDestinationDetails
-    :: GoalURLDestinationDetails
-goalURLDestinationDetails =
-    GoalURLDestinationDetails'
-    { _guddURL = Nothing
-    , _guddMatchType = Nothing
-    , _guddSteps = Nothing
-    , _guddCaseSensitive = Nothing
-    , _guddFirstStepRequired = Nothing
-    }
-
--- | URL for this goal.
-guddURL :: Lens' GoalURLDestinationDetails (Maybe Text)
-guddURL = lens _guddURL (\ s a -> s{_guddURL = a})
-
--- | Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX.
-guddMatchType :: Lens' GoalURLDestinationDetails (Maybe Text)
-guddMatchType
-  = lens _guddMatchType
-      (\ s a -> s{_guddMatchType = a})
-
--- | List of steps configured for this goal funnel.
-guddSteps :: Lens' GoalURLDestinationDetails [GoalURLDestinationDetailsStepsItem]
-guddSteps
-  = lens _guddSteps (\ s a -> s{_guddSteps = a}) .
-      _Default
-      . _Coerce
-
--- | Determines if the goal URL must exactly match the capitalization of
--- visited URLs.
-guddCaseSensitive :: Lens' GoalURLDestinationDetails (Maybe Bool)
-guddCaseSensitive
-  = lens _guddCaseSensitive
-      (\ s a -> s{_guddCaseSensitive = a})
-
--- | Determines if the first step in this goal is required.
-guddFirstStepRequired :: Lens' GoalURLDestinationDetails (Maybe Bool)
-guddFirstStepRequired
-  = lens _guddFirstStepRequired
-      (\ s a -> s{_guddFirstStepRequired = a})
-
-instance FromJSON GoalURLDestinationDetails where
-        parseJSON
-          = withObject "GoalURLDestinationDetails"
-              (\ o ->
-                 GoalURLDestinationDetails' <$>
-                   (o .:? "url") <*> (o .:? "matchType") <*>
-                     (o .:? "steps" .!= mempty)
-                     <*> (o .:? "caseSensitive")
-                     <*> (o .:? "firstStepRequired"))
-
-instance ToJSON GoalURLDestinationDetails where
-        toJSON GoalURLDestinationDetails'{..}
-          = object
-              (catMaybes
-                 [("url" .=) <$> _guddURL,
-                  ("matchType" .=) <$> _guddMatchType,
-                  ("steps" .=) <$> _guddSteps,
-                  ("caseSensitive" .=) <$> _guddCaseSensitive,
-                  ("firstStepRequired" .=) <$> _guddFirstStepRequired])
-
--- | A profile filter link collection lists profile filter links between
--- profiles and filters. Each resource in the collection corresponds to a
--- profile filter link.
---
--- /See:/ 'proFileFilterLinks' smart constructor.
-data ProFileFilterLinks = ProFileFilterLinks'
-    { _pfflNextLink     :: !(Maybe Text)
-    , _pfflItemsPerPage :: !(Maybe (Textual Int32))
-    , _pfflKind         :: !Text
-    , _pfflUsername     :: !(Maybe Text)
-    , _pfflItems        :: !(Maybe [ProFileFilterLink])
-    , _pfflTotalResults :: !(Maybe (Textual Int32))
-    , _pfflStartIndex   :: !(Maybe (Textual Int32))
-    , _pfflPreviousLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ProFileFilterLinks' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pfflNextLink'
---
--- * 'pfflItemsPerPage'
---
--- * 'pfflKind'
---
--- * 'pfflUsername'
---
--- * 'pfflItems'
---
--- * 'pfflTotalResults'
---
--- * 'pfflStartIndex'
---
--- * 'pfflPreviousLink'
-proFileFilterLinks
-    :: ProFileFilterLinks
-proFileFilterLinks =
-    ProFileFilterLinks'
-    { _pfflNextLink = Nothing
-    , _pfflItemsPerPage = Nothing
-    , _pfflKind = "analytics#profileFilterLinks"
-    , _pfflUsername = Nothing
-    , _pfflItems = Nothing
-    , _pfflTotalResults = Nothing
-    , _pfflStartIndex = Nothing
-    , _pfflPreviousLink = Nothing
-    }
-
--- | Link to next page for this profile filter link collection.
-pfflNextLink :: Lens' ProFileFilterLinks (Maybe Text)
-pfflNextLink
-  = lens _pfflNextLink (\ s a -> s{_pfflNextLink = a})
-
--- | The maximum number of resources the response can contain, regardless of
--- the actual number of resources returned. Its value ranges from 1 to
--- 1,000 with a value of 1000 by default, or otherwise specified by the
--- max-results query parameter.
-pfflItemsPerPage :: Lens' ProFileFilterLinks (Maybe Int32)
-pfflItemsPerPage
-  = lens _pfflItemsPerPage
-      (\ s a -> s{_pfflItemsPerPage = a})
-      . mapping _Coerce
-
--- | Collection type.
-pfflKind :: Lens' ProFileFilterLinks Text
-pfflKind = lens _pfflKind (\ s a -> s{_pfflKind = a})
-
--- | Email ID of the authenticated user
-pfflUsername :: Lens' ProFileFilterLinks (Maybe Text)
-pfflUsername
-  = lens _pfflUsername (\ s a -> s{_pfflUsername = a})
-
--- | A list of profile filter links.
-pfflItems :: Lens' ProFileFilterLinks [ProFileFilterLink]
-pfflItems
-  = lens _pfflItems (\ s a -> s{_pfflItems = a}) .
-      _Default
-      . _Coerce
-
--- | The total number of results for the query, regardless of the number of
--- results in the response.
-pfflTotalResults :: Lens' ProFileFilterLinks (Maybe Int32)
-pfflTotalResults
-  = lens _pfflTotalResults
-      (\ s a -> s{_pfflTotalResults = a})
-      . mapping _Coerce
-
--- | The starting index of the resources, which is 1 by default or otherwise
--- specified by the start-index query parameter.
-pfflStartIndex :: Lens' ProFileFilterLinks (Maybe Int32)
-pfflStartIndex
-  = lens _pfflStartIndex
-      (\ s a -> s{_pfflStartIndex = a})
-      . mapping _Coerce
-
--- | Link to previous page for this profile filter link collection.
-pfflPreviousLink :: Lens' ProFileFilterLinks (Maybe Text)
-pfflPreviousLink
-  = lens _pfflPreviousLink
-      (\ s a -> s{_pfflPreviousLink = a})
-
-instance FromJSON ProFileFilterLinks where
-        parseJSON
-          = withObject "ProFileFilterLinks"
-              (\ o ->
-                 ProFileFilterLinks' <$>
-                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
-                     (o .:? "kind" .!= "analytics#profileFilterLinks")
-                     <*> (o .:? "username")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "totalResults")
-                     <*> (o .:? "startIndex")
-                     <*> (o .:? "previousLink"))
-
-instance ToJSON ProFileFilterLinks where
-        toJSON ProFileFilterLinks'{..}
-          = object
-              (catMaybes
-                 [("nextLink" .=) <$> _pfflNextLink,
-                  ("itemsPerPage" .=) <$> _pfflItemsPerPage,
-                  Just ("kind" .= _pfflKind),
-                  ("username" .=) <$> _pfflUsername,
-                  ("items" .=) <$> _pfflItems,
-                  ("totalResults" .=) <$> _pfflTotalResults,
-                  ("startIndex" .=) <$> _pfflStartIndex,
-                  ("previousLink" .=) <$> _pfflPreviousLink])
-
--- | Parent link for this web property. Points to the account to which this
--- web property belongs.
---
--- /See:/ 'webPropertyParentLink' smart constructor.
-data WebPropertyParentLink = WebPropertyParentLink'
-    { _wpplHref :: !(Maybe Text)
-    , _wpplType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'WebPropertyParentLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'wpplHref'
---
--- * 'wpplType'
-webPropertyParentLink
-    :: WebPropertyParentLink
-webPropertyParentLink =
-    WebPropertyParentLink'
-    { _wpplHref = Nothing
-    , _wpplType = "analytics#account"
-    }
-
--- | Link to the account for this web property.
-wpplHref :: Lens' WebPropertyParentLink (Maybe Text)
-wpplHref = lens _wpplHref (\ s a -> s{_wpplHref = a})
-
--- | Type of the parent link. Its value is \"analytics#account\".
-wpplType :: Lens' WebPropertyParentLink Text
-wpplType = lens _wpplType (\ s a -> s{_wpplType = a})
-
-instance FromJSON WebPropertyParentLink where
-        parseJSON
-          = withObject "WebPropertyParentLink"
-              (\ o ->
-                 WebPropertyParentLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#account"))
-
-instance ToJSON WebPropertyParentLink where
-        toJSON WebPropertyParentLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _wpplHref,
-                  Just ("type" .= _wpplType)])
-
--- | Information for the view (profile), for which the Analytics data was
--- requested.
---
--- /See:/ 'gaDataProFileInfo' smart constructor.
-data GaDataProFileInfo = GaDataProFileInfo'
-    { _gdpfiWebPropertyId         :: !(Maybe Text)
-    , _gdpfiProFileId             :: !(Maybe Text)
-    , _gdpfiProFileName           :: !(Maybe Text)
-    , _gdpfiAccountId             :: !(Maybe Text)
-    , _gdpfiInternalWebPropertyId :: !(Maybe Text)
-    , _gdpfiTableId               :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GaDataProFileInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gdpfiWebPropertyId'
---
--- * 'gdpfiProFileId'
---
--- * 'gdpfiProFileName'
---
--- * 'gdpfiAccountId'
---
--- * 'gdpfiInternalWebPropertyId'
---
--- * 'gdpfiTableId'
-gaDataProFileInfo
-    :: GaDataProFileInfo
-gaDataProFileInfo =
-    GaDataProFileInfo'
-    { _gdpfiWebPropertyId = Nothing
-    , _gdpfiProFileId = Nothing
-    , _gdpfiProFileName = Nothing
-    , _gdpfiAccountId = Nothing
-    , _gdpfiInternalWebPropertyId = Nothing
-    , _gdpfiTableId = Nothing
-    }
-
--- | Web Property ID to which this view (profile) belongs.
-gdpfiWebPropertyId :: Lens' GaDataProFileInfo (Maybe Text)
-gdpfiWebPropertyId
-  = lens _gdpfiWebPropertyId
-      (\ s a -> s{_gdpfiWebPropertyId = a})
-
--- | View (Profile) ID.
-gdpfiProFileId :: Lens' GaDataProFileInfo (Maybe Text)
-gdpfiProFileId
-  = lens _gdpfiProFileId
-      (\ s a -> s{_gdpfiProFileId = a})
-
--- | View (Profile) name.
-gdpfiProFileName :: Lens' GaDataProFileInfo (Maybe Text)
-gdpfiProFileName
-  = lens _gdpfiProFileName
-      (\ s a -> s{_gdpfiProFileName = a})
-
--- | Account ID to which this view (profile) belongs.
-gdpfiAccountId :: Lens' GaDataProFileInfo (Maybe Text)
-gdpfiAccountId
-  = lens _gdpfiAccountId
-      (\ s a -> s{_gdpfiAccountId = a})
-
--- | Internal ID for the web property to which this view (profile) belongs.
-gdpfiInternalWebPropertyId :: Lens' GaDataProFileInfo (Maybe Text)
-gdpfiInternalWebPropertyId
-  = lens _gdpfiInternalWebPropertyId
-      (\ s a -> s{_gdpfiInternalWebPropertyId = a})
-
--- | Table ID for view (profile).
-gdpfiTableId :: Lens' GaDataProFileInfo (Maybe Text)
-gdpfiTableId
-  = lens _gdpfiTableId (\ s a -> s{_gdpfiTableId = a})
-
-instance FromJSON GaDataProFileInfo where
-        parseJSON
-          = withObject "GaDataProFileInfo"
-              (\ o ->
-                 GaDataProFileInfo' <$>
-                   (o .:? "webPropertyId") <*> (o .:? "profileId") <*>
-                     (o .:? "profileName")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "internalWebPropertyId")
-                     <*> (o .:? "tableId"))
-
-instance ToJSON GaDataProFileInfo where
-        toJSON GaDataProFileInfo'{..}
-          = object
-              (catMaybes
-                 [("webPropertyId" .=) <$> _gdpfiWebPropertyId,
-                  ("profileId" .=) <$> _gdpfiProFileId,
-                  ("profileName" .=) <$> _gdpfiProFileName,
-                  ("accountId" .=) <$> _gdpfiAccountId,
-                  ("internalWebPropertyId" .=) <$>
-                    _gdpfiInternalWebPropertyId,
-                  ("tableId" .=) <$> _gdpfiTableId])
-
--- | Metadata returned for an upload operation.
---
--- /See:/ 'upload' smart constructor.
-data Upload = Upload'
-    { _uuStatus             :: !(Maybe Text)
-    , _uuKind               :: !Text
-    , _uuCustomDataSourceId :: !(Maybe Text)
-    , _uuUploadTime         :: !(Maybe DateTime')
-    , _uuAccountId          :: !(Maybe (Textual Int64))
-    , _uuId                 :: !(Maybe Text)
-    , _uuErrors             :: !(Maybe [Text])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Upload' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uuStatus'
---
--- * 'uuKind'
---
--- * 'uuCustomDataSourceId'
---
--- * 'uuUploadTime'
---
--- * 'uuAccountId'
---
--- * 'uuId'
---
--- * 'uuErrors'
-upload
-    :: Upload
-upload =
-    Upload'
-    { _uuStatus = Nothing
-    , _uuKind = "analytics#upload"
-    , _uuCustomDataSourceId = Nothing
-    , _uuUploadTime = Nothing
-    , _uuAccountId = Nothing
-    , _uuId = Nothing
-    , _uuErrors = Nothing
-    }
-
--- | Upload status. Possible values: PENDING, COMPLETED, FAILED, DELETING,
--- DELETED.
-uuStatus :: Lens' Upload (Maybe Text)
-uuStatus = lens _uuStatus (\ s a -> s{_uuStatus = a})
-
--- | Resource type for Analytics upload.
-uuKind :: Lens' Upload Text
-uuKind = lens _uuKind (\ s a -> s{_uuKind = a})
-
--- | Custom data source Id to which this data import belongs.
-uuCustomDataSourceId :: Lens' Upload (Maybe Text)
-uuCustomDataSourceId
-  = lens _uuCustomDataSourceId
-      (\ s a -> s{_uuCustomDataSourceId = a})
-
--- | Time this file is uploaded.
-uuUploadTime :: Lens' Upload (Maybe UTCTime)
-uuUploadTime
-  = lens _uuUploadTime (\ s a -> s{_uuUploadTime = a})
-      . mapping _DateTime
-
--- | Account Id to which this upload belongs.
-uuAccountId :: Lens' Upload (Maybe Int64)
-uuAccountId
-  = lens _uuAccountId (\ s a -> s{_uuAccountId = a}) .
-      mapping _Coerce
-
--- | A unique ID for this upload.
-uuId :: Lens' Upload (Maybe Text)
-uuId = lens _uuId (\ s a -> s{_uuId = a})
-
--- | Data import errors collection.
-uuErrors :: Lens' Upload [Text]
-uuErrors
-  = lens _uuErrors (\ s a -> s{_uuErrors = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON Upload where
-        parseJSON
-          = withObject "Upload"
-              (\ o ->
-                 Upload' <$>
-                   (o .:? "status") <*>
-                     (o .:? "kind" .!= "analytics#upload")
-                     <*> (o .:? "customDataSourceId")
-                     <*> (o .:? "uploadTime")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "id")
-                     <*> (o .:? "errors" .!= mempty))
-
-instance ToJSON Upload where
-        toJSON Upload'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _uuStatus,
-                  Just ("kind" .= _uuKind),
-                  ("customDataSourceId" .=) <$> _uuCustomDataSourceId,
-                  ("uploadTime" .=) <$> _uuUploadTime,
-                  ("accountId" .=) <$> _uuAccountId,
-                  ("id" .=) <$> _uuId, ("errors" .=) <$> _uuErrors])
-
--- | JSON template for Analytics Custom Dimension.
---
--- /See:/ 'customDimension' smart constructor.
-data CustomDimension = CustomDimension'
-    { _cddParentLink    :: !(Maybe CustomDimensionParentLink)
-    , _cddWebPropertyId :: !(Maybe Text)
-    , _cddKind          :: !Text
-    , _cddCreated       :: !(Maybe DateTime')
-    , _cddActive        :: !(Maybe Bool)
-    , _cddSelfLink      :: !(Maybe Text)
-    , _cddAccountId     :: !(Maybe Text)
-    , _cddName          :: !(Maybe Text)
-    , _cddScope         :: !(Maybe Text)
-    , _cddId            :: !(Maybe Text)
-    , _cddUpdated       :: !(Maybe DateTime')
-    , _cddIndex         :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomDimension' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cddParentLink'
---
--- * 'cddWebPropertyId'
---
--- * 'cddKind'
---
--- * 'cddCreated'
---
--- * 'cddActive'
---
--- * 'cddSelfLink'
---
--- * 'cddAccountId'
---
--- * 'cddName'
---
--- * 'cddScope'
---
--- * 'cddId'
---
--- * 'cddUpdated'
---
--- * 'cddIndex'
-customDimension
-    :: CustomDimension
-customDimension =
-    CustomDimension'
-    { _cddParentLink = Nothing
-    , _cddWebPropertyId = Nothing
-    , _cddKind = "analytics#customDimension"
-    , _cddCreated = Nothing
-    , _cddActive = Nothing
-    , _cddSelfLink = Nothing
-    , _cddAccountId = Nothing
-    , _cddName = Nothing
-    , _cddScope = Nothing
-    , _cddId = Nothing
-    , _cddUpdated = Nothing
-    , _cddIndex = Nothing
-    }
-
--- | Parent link for the custom dimension. Points to the property to which
--- the custom dimension belongs.
-cddParentLink :: Lens' CustomDimension (Maybe CustomDimensionParentLink)
-cddParentLink
-  = lens _cddParentLink
-      (\ s a -> s{_cddParentLink = a})
-
--- | Property ID.
-cddWebPropertyId :: Lens' CustomDimension (Maybe Text)
-cddWebPropertyId
-  = lens _cddWebPropertyId
-      (\ s a -> s{_cddWebPropertyId = a})
-
--- | Kind value for a custom dimension. Set to \"analytics#customDimension\".
--- It is a read-only field.
-cddKind :: Lens' CustomDimension Text
-cddKind = lens _cddKind (\ s a -> s{_cddKind = a})
-
--- | Time the custom dimension was created.
-cddCreated :: Lens' CustomDimension (Maybe UTCTime)
-cddCreated
-  = lens _cddCreated (\ s a -> s{_cddCreated = a}) .
-      mapping _DateTime
-
--- | Boolean indicating whether the custom dimension is active.
-cddActive :: Lens' CustomDimension (Maybe Bool)
-cddActive
-  = lens _cddActive (\ s a -> s{_cddActive = a})
-
--- | Link for the custom dimension
-cddSelfLink :: Lens' CustomDimension (Maybe Text)
-cddSelfLink
-  = lens _cddSelfLink (\ s a -> s{_cddSelfLink = a})
-
--- | Account ID.
-cddAccountId :: Lens' CustomDimension (Maybe Text)
-cddAccountId
-  = lens _cddAccountId (\ s a -> s{_cddAccountId = a})
-
--- | Name of the custom dimension.
-cddName :: Lens' CustomDimension (Maybe Text)
-cddName = lens _cddName (\ s a -> s{_cddName = a})
-
--- | Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
-cddScope :: Lens' CustomDimension (Maybe Text)
-cddScope = lens _cddScope (\ s a -> s{_cddScope = a})
-
--- | Custom dimension ID.
-cddId :: Lens' CustomDimension (Maybe Text)
-cddId = lens _cddId (\ s a -> s{_cddId = a})
-
--- | Time the custom dimension was last modified.
-cddUpdated :: Lens' CustomDimension (Maybe UTCTime)
-cddUpdated
-  = lens _cddUpdated (\ s a -> s{_cddUpdated = a}) .
-      mapping _DateTime
-
--- | Index of the custom dimension.
-cddIndex :: Lens' CustomDimension (Maybe Int32)
-cddIndex
-  = lens _cddIndex (\ s a -> s{_cddIndex = a}) .
-      mapping _Coerce
-
-instance FromJSON CustomDimension where
-        parseJSON
-          = withObject "CustomDimension"
-              (\ o ->
-                 CustomDimension' <$>
-                   (o .:? "parentLink") <*> (o .:? "webPropertyId") <*>
-                     (o .:? "kind" .!= "analytics#customDimension")
-                     <*> (o .:? "created")
-                     <*> (o .:? "active")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "accountId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "scope")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "index"))
-
-instance ToJSON CustomDimension where
-        toJSON CustomDimension'{..}
-          = object
-              (catMaybes
-                 [("parentLink" .=) <$> _cddParentLink,
-                  ("webPropertyId" .=) <$> _cddWebPropertyId,
-                  Just ("kind" .= _cddKind),
-                  ("created" .=) <$> _cddCreated,
-                  ("active" .=) <$> _cddActive,
-                  ("selfLink" .=) <$> _cddSelfLink,
-                  ("accountId" .=) <$> _cddAccountId,
-                  ("name" .=) <$> _cddName, ("scope" .=) <$> _cddScope,
-                  ("id" .=) <$> _cddId, ("updated" .=) <$> _cddUpdated,
-                  ("index" .=) <$> _cddIndex])
-
--- | JSON template for an Analytics segment.
---
--- /See:/ 'segment' smart constructor.
-data Segment = Segment'
-    { _segDefinition :: !(Maybe Text)
-    , _segKind       :: !Text
-    , _segCreated    :: !(Maybe DateTime')
-    , _segSelfLink   :: !(Maybe Text)
-    , _segName       :: !(Maybe Text)
-    , _segId         :: !(Maybe Text)
-    , _segUpdated    :: !(Maybe DateTime')
-    , _segType       :: !(Maybe Text)
-    , _segSegmentId  :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Segment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'segDefinition'
---
--- * 'segKind'
---
--- * 'segCreated'
---
--- * 'segSelfLink'
---
--- * 'segName'
---
--- * 'segId'
---
--- * 'segUpdated'
---
--- * 'segType'
---
--- * 'segSegmentId'
-segment
-    :: Segment
-segment =
-    Segment'
-    { _segDefinition = Nothing
-    , _segKind = "analytics#segment"
-    , _segCreated = Nothing
-    , _segSelfLink = Nothing
-    , _segName = Nothing
-    , _segId = Nothing
-    , _segUpdated = Nothing
-    , _segType = Nothing
-    , _segSegmentId = Nothing
-    }
-
--- | Segment definition.
-segDefinition :: Lens' Segment (Maybe Text)
-segDefinition
-  = lens _segDefinition
-      (\ s a -> s{_segDefinition = a})
-
--- | Resource type for Analytics segment.
-segKind :: Lens' Segment Text
-segKind = lens _segKind (\ s a -> s{_segKind = a})
-
--- | Time the segment was created.
-segCreated :: Lens' Segment (Maybe UTCTime)
-segCreated
-  = lens _segCreated (\ s a -> s{_segCreated = a}) .
-      mapping _DateTime
-
--- | Link for this segment.
-segSelfLink :: Lens' Segment (Maybe Text)
-segSelfLink
-  = lens _segSelfLink (\ s a -> s{_segSelfLink = a})
-
--- | Segment name.
-segName :: Lens' Segment (Maybe Text)
-segName = lens _segName (\ s a -> s{_segName = a})
-
--- | Segment ID.
-segId :: Lens' Segment (Maybe Text)
-segId = lens _segId (\ s a -> s{_segId = a})
-
--- | Time the segment was last modified.
-segUpdated :: Lens' Segment (Maybe UTCTime)
-segUpdated
-  = lens _segUpdated (\ s a -> s{_segUpdated = a}) .
-      mapping _DateTime
-
--- | Type for a segment. Possible values are \"BUILT_IN\" or \"CUSTOM\".
-segType :: Lens' Segment (Maybe Text)
-segType = lens _segType (\ s a -> s{_segType = a})
-
--- | Segment ID. Can be used with the \'segment\' parameter in Core Reporting
--- API.
-segSegmentId :: Lens' Segment (Maybe Text)
-segSegmentId
-  = lens _segSegmentId (\ s a -> s{_segSegmentId = a})
-
-instance FromJSON Segment where
-        parseJSON
-          = withObject "Segment"
-              (\ o ->
-                 Segment' <$>
-                   (o .:? "definition") <*>
-                     (o .:? "kind" .!= "analytics#segment")
-                     <*> (o .:? "created")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "type")
-                     <*> (o .:? "segmentId"))
-
-instance ToJSON Segment where
-        toJSON Segment'{..}
-          = object
-              (catMaybes
-                 [("definition" .=) <$> _segDefinition,
-                  Just ("kind" .= _segKind),
-                  ("created" .=) <$> _segCreated,
-                  ("selfLink" .=) <$> _segSelfLink,
-                  ("name" .=) <$> _segName, ("id" .=) <$> _segId,
-                  ("updated" .=) <$> _segUpdated,
-                  ("type" .=) <$> _segType,
-                  ("segmentId" .=) <$> _segSegmentId])
-
--- | Child link for an account entry. Points to the list of web properties
--- for this account.
---
--- /See:/ 'accountChildLink' smart constructor.
-data AccountChildLink = AccountChildLink'
-    { _aclHref :: !(Maybe Text)
-    , _aclType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AccountChildLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aclHref'
---
--- * 'aclType'
-accountChildLink
-    :: AccountChildLink
-accountChildLink =
-    AccountChildLink'
-    { _aclHref = Nothing
-    , _aclType = "analytics#webproperties"
-    }
-
--- | Link to the list of web properties for this account.
-aclHref :: Lens' AccountChildLink (Maybe Text)
-aclHref = lens _aclHref (\ s a -> s{_aclHref = a})
-
--- | Type of the child link. Its value is \"analytics#webproperties\".
-aclType :: Lens' AccountChildLink Text
-aclType = lens _aclType (\ s a -> s{_aclType = a})
-
-instance FromJSON AccountChildLink where
-        parseJSON
-          = withObject "AccountChildLink"
-              (\ o ->
-                 AccountChildLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#webproperties"))
-
-instance ToJSON AccountChildLink where
-        toJSON AccountChildLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _aclHref,
-                  Just ("type" .= _aclType)])
-
--- | JSON template for an Analytics profile filter link.
---
--- /See:/ 'proFileFilterLink' smart constructor.
-data ProFileFilterLink = ProFileFilterLink'
-    { _proProFileRef :: !(Maybe ProFileRef)
-    , _proKind       :: !Text
-    , _proFilterRef  :: !(Maybe FilterRef)
-    , _proSelfLink   :: !(Maybe Text)
-    , _proId         :: !(Maybe Text)
-    , _proRank       :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ProFileFilterLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'proProFileRef'
---
--- * 'proKind'
---
--- * 'proFilterRef'
---
--- * 'proSelfLink'
---
--- * 'proId'
---
--- * 'proRank'
-proFileFilterLink
-    :: ProFileFilterLink
-proFileFilterLink =
-    ProFileFilterLink'
-    { _proProFileRef = Nothing
-    , _proKind = "analytics#profileFilterLink"
-    , _proFilterRef = Nothing
-    , _proSelfLink = Nothing
-    , _proId = Nothing
-    , _proRank = Nothing
-    }
-
--- | View (Profile) for this link.
-proProFileRef :: Lens' ProFileFilterLink (Maybe ProFileRef)
-proProFileRef
-  = lens _proProFileRef
-      (\ s a -> s{_proProFileRef = a})
-
--- | Resource type for Analytics filter.
-proKind :: Lens' ProFileFilterLink Text
-proKind = lens _proKind (\ s a -> s{_proKind = a})
-
--- | Filter for this link.
-proFilterRef :: Lens' ProFileFilterLink (Maybe FilterRef)
-proFilterRef
-  = lens _proFilterRef (\ s a -> s{_proFilterRef = a})
-
--- | Link for this profile filter link.
-proSelfLink :: Lens' ProFileFilterLink (Maybe Text)
-proSelfLink
-  = lens _proSelfLink (\ s a -> s{_proSelfLink = a})
-
--- | Profile filter link ID.
-proId :: Lens' ProFileFilterLink (Maybe Text)
-proId = lens _proId (\ s a -> s{_proId = a})
-
--- | The rank of this profile filter link relative to the other filters
--- linked to the same profile. For readonly (i.e., list and get)
--- operations, the rank always starts at 1. For write (i.e., create,
--- update, or delete) operations, you may specify a value between 0 and 255
--- inclusively, [0, 255]. In order to insert a link at the end of the list,
--- either don\'t specify a rank or set a rank to a number greater than the
--- largest rank in the list. In order to insert a link to the beginning of
--- the list specify a rank that is less than or equal to 1. The new link
--- will move all existing filters with the same or lower rank down the
--- list. After the link is inserted\/updated\/deleted all profile filter
--- links will be renumbered starting at 1.
-proRank :: Lens' ProFileFilterLink (Maybe Int32)
-proRank
-  = lens _proRank (\ s a -> s{_proRank = a}) .
-      mapping _Coerce
-
-instance FromJSON ProFileFilterLink where
-        parseJSON
-          = withObject "ProFileFilterLink"
-              (\ o ->
-                 ProFileFilterLink' <$>
-                   (o .:? "profileRef") <*>
-                     (o .:? "kind" .!= "analytics#profileFilterLink")
-                     <*> (o .:? "filterRef")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "id")
-                     <*> (o .:? "rank"))
-
-instance ToJSON ProFileFilterLink where
-        toJSON ProFileFilterLink'{..}
-          = object
-              (catMaybes
-                 [("profileRef" .=) <$> _proProFileRef,
-                  Just ("kind" .= _proKind),
-                  ("filterRef" .=) <$> _proFilterRef,
-                  ("selfLink" .=) <$> _proSelfLink,
-                  ("id" .=) <$> _proId, ("rank" .=) <$> _proRank])
-
--- | Parent link for the custom metric. Points to the property to which the
--- custom metric belongs.
---
--- /See:/ 'customMetricParentLink' smart constructor.
-data CustomMetricParentLink = CustomMetricParentLink'
-    { _cmplHref :: !(Maybe Text)
-    , _cmplType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CustomMetricParentLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cmplHref'
---
--- * 'cmplType'
-customMetricParentLink
-    :: CustomMetricParentLink
-customMetricParentLink =
-    CustomMetricParentLink'
-    { _cmplHref = Nothing
-    , _cmplType = "analytics#webproperty"
-    }
-
--- | Link to the property to which the custom metric belongs.
-cmplHref :: Lens' CustomMetricParentLink (Maybe Text)
-cmplHref = lens _cmplHref (\ s a -> s{_cmplHref = a})
-
--- | Type of the parent link. Set to \"analytics#webproperty\".
-cmplType :: Lens' CustomMetricParentLink Text
-cmplType = lens _cmplType (\ s a -> s{_cmplType = a})
-
-instance FromJSON CustomMetricParentLink where
-        parseJSON
-          = withObject "CustomMetricParentLink"
-              (\ o ->
-                 CustomMetricParentLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#webproperty"))
-
-instance ToJSON CustomMetricParentLink where
-        toJSON CustomMetricParentLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _cmplHref,
-                  Just ("type" .= _cmplType)])
-
--- | JSON template for a metadata column.
---
--- /See:/ 'column' smart constructor.
-data Column = Column'
-    { _ccKind       :: !Text
-    , _ccAttributes :: !(Maybe ColumnAttributes)
-    , _ccId         :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Column' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccKind'
---
--- * 'ccAttributes'
---
--- * 'ccId'
-column
-    :: Column
-column =
-    Column'
-    { _ccKind = "analytics#column"
-    , _ccAttributes = Nothing
-    , _ccId = Nothing
-    }
-
--- | Resource type for Analytics column.
-ccKind :: Lens' Column Text
-ccKind = lens _ccKind (\ s a -> s{_ccKind = a})
-
--- | Map of attribute name and value for this column.
-ccAttributes :: Lens' Column (Maybe ColumnAttributes)
-ccAttributes
-  = lens _ccAttributes (\ s a -> s{_ccAttributes = a})
-
--- | Column id.
-ccId :: Lens' Column (Maybe Text)
-ccId = lens _ccId (\ s a -> s{_ccId = a})
-
-instance FromJSON Column where
-        parseJSON
-          = withObject "Column"
-              (\ o ->
-                 Column' <$>
-                   (o .:? "kind" .!= "analytics#column") <*>
-                     (o .:? "attributes")
-                     <*> (o .:? "id"))
-
-instance ToJSON Column where
-        toJSON Column'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _ccKind),
-                  ("attributes" .=) <$> _ccAttributes,
-                  ("id" .=) <$> _ccId])
-
--- | The simple audience definition that will cause a user to be added to an
--- audience.
---
--- /See:/ 'remarketingAudienceAudienceDefinition' smart constructor.
-newtype RemarketingAudienceAudienceDefinition = RemarketingAudienceAudienceDefinition'
-    { _raadIncludeConditions :: Maybe IncludeConditions
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RemarketingAudienceAudienceDefinition' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'raadIncludeConditions'
-remarketingAudienceAudienceDefinition
-    :: RemarketingAudienceAudienceDefinition
-remarketingAudienceAudienceDefinition =
-    RemarketingAudienceAudienceDefinition'
-    { _raadIncludeConditions = Nothing
-    }
-
--- | Defines the conditions to include users to the audience.
-raadIncludeConditions :: Lens' RemarketingAudienceAudienceDefinition (Maybe IncludeConditions)
-raadIncludeConditions
-  = lens _raadIncludeConditions
-      (\ s a -> s{_raadIncludeConditions = a})
-
-instance FromJSON
-         RemarketingAudienceAudienceDefinition where
-        parseJSON
-          = withObject "RemarketingAudienceAudienceDefinition"
-              (\ o ->
-                 RemarketingAudienceAudienceDefinition' <$>
-                   (o .:? "includeConditions"))
-
-instance ToJSON RemarketingAudienceAudienceDefinition
-         where
-        toJSON RemarketingAudienceAudienceDefinition'{..}
-          = object
-              (catMaybes
-                 [("includeConditions" .=) <$>
-                    _raadIncludeConditions])
-
---
--- /See:/ 'gaDataDataTableColsItem' smart constructor.
-data GaDataDataTableColsItem = GaDataDataTableColsItem'
-    { _gddtciId    :: !(Maybe Text)
-    , _gddtciType  :: !(Maybe Text)
-    , _gddtciLabel :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GaDataDataTableColsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gddtciId'
---
--- * 'gddtciType'
---
--- * 'gddtciLabel'
-gaDataDataTableColsItem
-    :: GaDataDataTableColsItem
-gaDataDataTableColsItem =
-    GaDataDataTableColsItem'
-    { _gddtciId = Nothing
-    , _gddtciType = Nothing
-    , _gddtciLabel = Nothing
-    }
-
-gddtciId :: Lens' GaDataDataTableColsItem (Maybe Text)
-gddtciId = lens _gddtciId (\ s a -> s{_gddtciId = a})
-
-gddtciType :: Lens' GaDataDataTableColsItem (Maybe Text)
-gddtciType
-  = lens _gddtciType (\ s a -> s{_gddtciType = a})
-
-gddtciLabel :: Lens' GaDataDataTableColsItem (Maybe Text)
-gddtciLabel
-  = lens _gddtciLabel (\ s a -> s{_gddtciLabel = a})
-
-instance FromJSON GaDataDataTableColsItem where
-        parseJSON
-          = withObject "GaDataDataTableColsItem"
-              (\ o ->
-                 GaDataDataTableColsItem' <$>
-                   (o .:? "id") <*> (o .:? "type") <*> (o .:? "label"))
-
-instance ToJSON GaDataDataTableColsItem where
-        toJSON GaDataDataTableColsItem'{..}
-          = object
-              (catMaybes
-                 [("id" .=) <$> _gddtciId,
-                  ("type" .=) <$> _gddtciType,
-                  ("label" .=) <$> _gddtciLabel])
-
---
--- /See:/ 'experimentVariationsItem' smart constructor.
-data ExperimentVariationsItem = ExperimentVariationsItem'
-    { _eviStatus :: !(Maybe Text)
-    , _eviWeight :: !(Maybe (Textual Double))
-    , _eviURL    :: !(Maybe Text)
-    , _eviWon    :: !(Maybe Bool)
-    , _eviName   :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ExperimentVariationsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eviStatus'
---
--- * 'eviWeight'
---
--- * 'eviURL'
---
--- * 'eviWon'
---
--- * 'eviName'
-experimentVariationsItem
-    :: ExperimentVariationsItem
-experimentVariationsItem =
-    ExperimentVariationsItem'
-    { _eviStatus = Nothing
-    , _eviWeight = Nothing
-    , _eviURL = Nothing
-    , _eviWon = Nothing
-    , _eviName = Nothing
-    }
-
--- | Status of the variation. Possible values: \"ACTIVE\", \"INACTIVE\".
--- INACTIVE variations are not served. This field may not be changed for an
--- experiment whose status is ENDED.
-eviStatus :: Lens' ExperimentVariationsItem (Maybe Text)
-eviStatus
-  = lens _eviStatus (\ s a -> s{_eviStatus = a})
-
--- | Weight that this variation should receive. Only present if the
--- experiment is running. This field is read-only.
-eviWeight :: Lens' ExperimentVariationsItem (Maybe Double)
-eviWeight
-  = lens _eviWeight (\ s a -> s{_eviWeight = a}) .
-      mapping _Coerce
-
--- | The URL of the variation. This field may not be changed for an
--- experiment whose status is RUNNING or ENDED.
-eviURL :: Lens' ExperimentVariationsItem (Maybe Text)
-eviURL = lens _eviURL (\ s a -> s{_eviURL = a})
-
--- | True if the experiment has ended and this variation performed
--- (statistically) significantly better than the original. This field is
--- read-only.
-eviWon :: Lens' ExperimentVariationsItem (Maybe Bool)
-eviWon = lens _eviWon (\ s a -> s{_eviWon = a})
-
--- | The name of the variation. This field is required when creating an
--- experiment. This field may not be changed for an experiment whose status
--- is ENDED.
-eviName :: Lens' ExperimentVariationsItem (Maybe Text)
-eviName = lens _eviName (\ s a -> s{_eviName = a})
-
-instance FromJSON ExperimentVariationsItem where
-        parseJSON
-          = withObject "ExperimentVariationsItem"
-              (\ o ->
-                 ExperimentVariationsItem' <$>
-                   (o .:? "status") <*> (o .:? "weight") <*>
-                     (o .:? "url")
-                     <*> (o .:? "won")
-                     <*> (o .:? "name"))
-
-instance ToJSON ExperimentVariationsItem where
-        toJSON ExperimentVariationsItem'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _eviStatus,
-                  ("weight" .=) <$> _eviWeight, ("url" .=) <$> _eviURL,
-                  ("won" .=) <$> _eviWon, ("name" .=) <$> _eviName])
-
--- | Defines the conditions to exclude users from the audience.
---
--- /See:/ 'remarketingAudienceStateBasedAudienceDefinitionExcludeConditions' smart constructor.
-data RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions = RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions'
-    { _rasbadecExclusionDuration :: !(Maybe Text)
-    , _rasbadecSegment           :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rasbadecExclusionDuration'
---
--- * 'rasbadecSegment'
-remarketingAudienceStateBasedAudienceDefinitionExcludeConditions
-    :: RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions
-remarketingAudienceStateBasedAudienceDefinitionExcludeConditions =
-    RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions'
-    { _rasbadecExclusionDuration = Nothing
-    , _rasbadecSegment = Nothing
-    }
-
--- | Whether to make the exclusion TEMPORARY or PERMANENT.
-rasbadecExclusionDuration :: Lens' RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions (Maybe Text)
-rasbadecExclusionDuration
-  = lens _rasbadecExclusionDuration
-      (\ s a -> s{_rasbadecExclusionDuration = a})
-
--- | The segment condition that will cause a user to be removed from an
--- audience.
-rasbadecSegment :: Lens' RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions (Maybe Text)
-rasbadecSegment
-  = lens _rasbadecSegment
-      (\ s a -> s{_rasbadecSegment = a})
-
-instance FromJSON
-         RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions
-         where
-        parseJSON
-          = withObject
-              "RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions"
-              (\ o ->
-                 RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions'
-                   <$>
-                   (o .:? "exclusionDuration") <*> (o .:? "segment"))
-
-instance ToJSON
-         RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions
-         where
-        toJSON
-          RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions'{..}
-          = object
-              (catMaybes
-                 [("exclusionDuration" .=) <$>
-                    _rasbadecExclusionDuration,
-                  ("segment" .=) <$> _rasbadecSegment])
-
--- | Total values for the requested metrics over all the results, not just
--- the results returned in this response. The order of the metric totals is
--- same as the metric order specified in the request.
---
--- /See:/ 'mcfDataTotalsForAllResults' smart constructor.
-newtype McfDataTotalsForAllResults = McfDataTotalsForAllResults'
-    { _mdtfarAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'McfDataTotalsForAllResults' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mdtfarAddtional'
-mcfDataTotalsForAllResults
-    :: HashMap Text Text -- ^ 'mdtfarAddtional'
-    -> McfDataTotalsForAllResults
-mcfDataTotalsForAllResults pMdtfarAddtional_ =
-    McfDataTotalsForAllResults'
-    { _mdtfarAddtional = _Coerce # pMdtfarAddtional_
-    }
-
--- | Key-value pair for the total value of a metric. Key is the metric name
--- and the value is the total value for that metric.
-mdtfarAddtional :: Lens' McfDataTotalsForAllResults (HashMap Text Text)
-mdtfarAddtional
-  = lens _mdtfarAddtional
-      (\ s a -> s{_mdtfarAddtional = a})
-      . _Coerce
-
-instance FromJSON McfDataTotalsForAllResults where
-        parseJSON
-          = withObject "McfDataTotalsForAllResults"
-              (\ o ->
-                 McfDataTotalsForAllResults' <$> (parseJSONObject o))
-
-instance ToJSON McfDataTotalsForAllResults where
-        toJSON = toJSON . _mdtfarAddtional
-
--- | User ID.
---
--- /See:/ 'userDeletionRequestId' smart constructor.
-data UserDeletionRequestId = UserDeletionRequestId'
-    { _udriUserId :: !(Maybe Text)
-    , _udriType   :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UserDeletionRequestId' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'udriUserId'
---
--- * 'udriType'
-userDeletionRequestId
-    :: UserDeletionRequestId
-userDeletionRequestId =
-    UserDeletionRequestId'
-    { _udriUserId = Nothing
-    , _udriType = Nothing
-    }
-
--- | The User\'s id
-udriUserId :: Lens' UserDeletionRequestId (Maybe Text)
-udriUserId
-  = lens _udriUserId (\ s a -> s{_udriUserId = a})
-
--- | Type of user
-udriType :: Lens' UserDeletionRequestId (Maybe Text)
-udriType = lens _udriType (\ s a -> s{_udriType = a})
-
-instance FromJSON UserDeletionRequestId where
-        parseJSON
-          = withObject "UserDeletionRequestId"
-              (\ o ->
-                 UserDeletionRequestId' <$>
-                   (o .:? "userId") <*> (o .:? "type"))
-
-instance ToJSON UserDeletionRequestId where
-        toJSON UserDeletionRequestId'{..}
-          = object
-              (catMaybes
-                 [("userId" .=) <$> _udriUserId,
-                  ("type" .=) <$> _udriType])
-
--- | Download details for a file stored in Google Cloud Storage.
---
--- /See:/ 'unSampledReportCloudStorageDownloadDetails' smart constructor.
-data UnSampledReportCloudStorageDownloadDetails = UnSampledReportCloudStorageDownloadDetails'
-    { _usrcsddObjectId :: !(Maybe Text)
-    , _usrcsddBucketId :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UnSampledReportCloudStorageDownloadDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'usrcsddObjectId'
---
--- * 'usrcsddBucketId'
-unSampledReportCloudStorageDownloadDetails
-    :: UnSampledReportCloudStorageDownloadDetails
-unSampledReportCloudStorageDownloadDetails =
-    UnSampledReportCloudStorageDownloadDetails'
-    { _usrcsddObjectId = Nothing
-    , _usrcsddBucketId = Nothing
-    }
-
--- | Id of the file object containing the report data.
-usrcsddObjectId :: Lens' UnSampledReportCloudStorageDownloadDetails (Maybe Text)
-usrcsddObjectId
-  = lens _usrcsddObjectId
-      (\ s a -> s{_usrcsddObjectId = a})
-
--- | Id of the bucket the file object is stored in.
-usrcsddBucketId :: Lens' UnSampledReportCloudStorageDownloadDetails (Maybe Text)
-usrcsddBucketId
-  = lens _usrcsddBucketId
-      (\ s a -> s{_usrcsddBucketId = a})
-
-instance FromJSON
-         UnSampledReportCloudStorageDownloadDetails where
-        parseJSON
-          = withObject
-              "UnSampledReportCloudStorageDownloadDetails"
-              (\ o ->
-                 UnSampledReportCloudStorageDownloadDetails' <$>
-                   (o .:? "objectId") <*> (o .:? "bucketId"))
-
-instance ToJSON
-         UnSampledReportCloudStorageDownloadDetails where
-        toJSON
-          UnSampledReportCloudStorageDownloadDetails'{..}
-          = object
-              (catMaybes
-                 [("objectId" .=) <$> _usrcsddObjectId,
-                  ("bucketId" .=) <$> _usrcsddBucketId])
-
--- | Child link for this view (profile). Points to the list of goals for this
--- view (profile).
---
--- /See:/ 'proFileChildLink' smart constructor.
-data ProFileChildLink = ProFileChildLink'
-    { _pfclHref :: !(Maybe Text)
-    , _pfclType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ProFileChildLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pfclHref'
---
--- * 'pfclType'
-proFileChildLink
-    :: ProFileChildLink
-proFileChildLink =
-    ProFileChildLink'
-    { _pfclHref = Nothing
-    , _pfclType = "analytics#goals"
-    }
-
--- | Link to the list of goals for this view (profile).
-pfclHref :: Lens' ProFileChildLink (Maybe Text)
-pfclHref = lens _pfclHref (\ s a -> s{_pfclHref = a})
-
--- | Value is \"analytics#goals\".
-pfclType :: Lens' ProFileChildLink Text
-pfclType = lens _pfclType (\ s a -> s{_pfclType = a})
-
-instance FromJSON ProFileChildLink where
-        parseJSON
-          = withObject "ProFileChildLink"
-              (\ o ->
-                 ProFileChildLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#goals"))
-
-instance ToJSON ProFileChildLink where
-        toJSON ProFileChildLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _pfclHref,
-                  Just ("type" .= _pfclType)])
-
---
--- /See:/ 'gaDataColumnHeadersItem' smart constructor.
-data GaDataColumnHeadersItem = GaDataColumnHeadersItem'
-    { _gdchiColumnType :: !(Maybe Text)
-    , _gdchiName       :: !(Maybe Text)
-    , _gdchiDataType   :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GaDataColumnHeadersItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gdchiColumnType'
---
--- * 'gdchiName'
---
--- * 'gdchiDataType'
-gaDataColumnHeadersItem
-    :: GaDataColumnHeadersItem
-gaDataColumnHeadersItem =
-    GaDataColumnHeadersItem'
-    { _gdchiColumnType = Nothing
-    , _gdchiName = Nothing
-    , _gdchiDataType = Nothing
-    }
-
--- | Column Type. Either DIMENSION or METRIC.
-gdchiColumnType :: Lens' GaDataColumnHeadersItem (Maybe Text)
-gdchiColumnType
-  = lens _gdchiColumnType
-      (\ s a -> s{_gdchiColumnType = a})
-
--- | Column name.
-gdchiName :: Lens' GaDataColumnHeadersItem (Maybe Text)
-gdchiName
-  = lens _gdchiName (\ s a -> s{_gdchiName = a})
-
--- | Data type. Dimension column headers have only STRING as the data type.
--- Metric column headers have data types for metric values such as INTEGER,
--- DOUBLE, CURRENCY etc.
-gdchiDataType :: Lens' GaDataColumnHeadersItem (Maybe Text)
-gdchiDataType
-  = lens _gdchiDataType
-      (\ s a -> s{_gdchiDataType = a})
-
-instance FromJSON GaDataColumnHeadersItem where
-        parseJSON
-          = withObject "GaDataColumnHeadersItem"
-              (\ o ->
-                 GaDataColumnHeadersItem' <$>
-                   (o .:? "columnType") <*> (o .:? "name") <*>
-                     (o .:? "dataType"))
-
-instance ToJSON GaDataColumnHeadersItem where
-        toJSON GaDataColumnHeadersItem'{..}
-          = object
-              (catMaybes
-                 [("columnType" .=) <$> _gdchiColumnType,
-                  ("name" .=) <$> _gdchiName,
-                  ("dataType" .=) <$> _gdchiDataType])
-
--- | Parent link for a goal. Points to the view (profile) to which this goal
--- belongs.
---
--- /See:/ 'goalParentLink' smart constructor.
-data GoalParentLink = GoalParentLink'
-    { _gplHref :: !(Maybe Text)
-    , _gplType :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GoalParentLink' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gplHref'
---
--- * 'gplType'
-goalParentLink
-    :: GoalParentLink
-goalParentLink =
-    GoalParentLink'
-    { _gplHref = Nothing
-    , _gplType = "analytics#profile"
-    }
-
--- | Link to the view (profile) to which this goal belongs.
-gplHref :: Lens' GoalParentLink (Maybe Text)
-gplHref = lens _gplHref (\ s a -> s{_gplHref = a})
-
--- | Value is \"analytics#profile\".
-gplType :: Lens' GoalParentLink Text
-gplType = lens _gplType (\ s a -> s{_gplType = a})
-
-instance FromJSON GoalParentLink where
-        parseJSON
-          = withObject "GoalParentLink"
-              (\ o ->
-                 GoalParentLink' <$>
-                   (o .:? "href") <*>
-                     (o .:? "type" .!= "analytics#profile"))
-
-instance ToJSON GoalParentLink where
-        toJSON GoalParentLink'{..}
-          = object
-              (catMaybes
-                 [("href" .=) <$> _gplHref,
-                  Just ("type" .= _gplType)])
-
--- | Map of attribute name and value for this column.
---
--- /See:/ 'columnAttributes' smart constructor.
-newtype ColumnAttributes = ColumnAttributes'
-    { _caAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ColumnAttributes' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caAddtional'
-columnAttributes
-    :: HashMap Text Text -- ^ 'caAddtional'
-    -> ColumnAttributes
-columnAttributes pCaAddtional_ =
-    ColumnAttributes'
-    { _caAddtional = _Coerce # pCaAddtional_
-    }
+data UserDeletionRequest =
+  UserDeletionRequest'
+    { _udrWebPropertyId       :: !(Maybe Text)
+    , _udrKind                :: !Text
+    , _udrId                  :: !(Maybe UserDeletionRequestId)
+    , _udrFirebaseProjectId   :: !(Maybe Text)
+    , _udrDeletionRequestTime :: !(Maybe DateTime')
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'UserDeletionRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'udrWebPropertyId'
+--
+-- * 'udrKind'
+--
+-- * 'udrId'
+--
+-- * 'udrFirebaseProjectId'
+--
+-- * 'udrDeletionRequestTime'
+userDeletionRequest
+    :: UserDeletionRequest
+userDeletionRequest =
+  UserDeletionRequest'
+    { _udrWebPropertyId = Nothing
+    , _udrKind = "analytics#userDeletionRequest"
+    , _udrId = Nothing
+    , _udrFirebaseProjectId = Nothing
+    , _udrDeletionRequestTime = Nothing
+    }
+
+
+-- | Web property ID of the form UA-XXXXX-YY.
+udrWebPropertyId :: Lens' UserDeletionRequest (Maybe Text)
+udrWebPropertyId
+  = lens _udrWebPropertyId
+      (\ s a -> s{_udrWebPropertyId = a})
+
+-- | Value is \"analytics#userDeletionRequest\".
+udrKind :: Lens' UserDeletionRequest Text
+udrKind = lens _udrKind (\ s a -> s{_udrKind = a})
+
+-- | User ID.
+udrId :: Lens' UserDeletionRequest (Maybe UserDeletionRequestId)
+udrId = lens _udrId (\ s a -> s{_udrId = a})
+
+-- | Firebase Project Id
+udrFirebaseProjectId :: Lens' UserDeletionRequest (Maybe Text)
+udrFirebaseProjectId
+  = lens _udrFirebaseProjectId
+      (\ s a -> s{_udrFirebaseProjectId = a})
+
+-- | This marks the point in time for which all user data before should be
+-- deleted
+udrDeletionRequestTime :: Lens' UserDeletionRequest (Maybe UTCTime)
+udrDeletionRequestTime
+  = lens _udrDeletionRequestTime
+      (\ s a -> s{_udrDeletionRequestTime = a})
+      . mapping _DateTime
+
+instance FromJSON UserDeletionRequest where
+        parseJSON
+          = withObject "UserDeletionRequest"
+              (\ o ->
+                 UserDeletionRequest' <$>
+                   (o .:? "webPropertyId") <*>
+                     (o .:? "kind" .!= "analytics#userDeletionRequest")
+                     <*> (o .:? "id")
+                     <*> (o .:? "firebaseProjectId")
+                     <*> (o .:? "deletionRequestTime"))
+
+instance ToJSON UserDeletionRequest where
+        toJSON UserDeletionRequest'{..}
+          = object
+              (catMaybes
+                 [("webPropertyId" .=) <$> _udrWebPropertyId,
+                  Just ("kind" .= _udrKind), ("id" .=) <$> _udrId,
+                  ("firebaseProjectId" .=) <$> _udrFirebaseProjectId,
+                  ("deletionRequestTime" .=) <$>
+                    _udrDeletionRequestTime])
+
+-- | An unsampled report collection lists Analytics unsampled reports to
+-- which the user has access. Each view (profile) can have a set of
+-- unsampled reports. Each resource in the unsampled report collection
+-- corresponds to a single Analytics unsampled report.
+--
+-- /See:/ 'unSampledReports' smart constructor.
+data UnSampledReports =
+  UnSampledReports'
+    { _usrNextLink     :: !(Maybe Text)
+    , _usrItemsPerPage :: !(Maybe (Textual Int32))
+    , _usrKind         :: !Text
+    , _usrUsername     :: !(Maybe Text)
+    , _usrItems        :: !(Maybe [UnSampledReport])
+    , _usrTotalResults :: !(Maybe (Textual Int32))
+    , _usrStartIndex   :: !(Maybe (Textual Int32))
+    , _usrPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'UnSampledReports' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usrNextLink'
+--
+-- * 'usrItemsPerPage'
+--
+-- * 'usrKind'
+--
+-- * 'usrUsername'
+--
+-- * 'usrItems'
+--
+-- * 'usrTotalResults'
+--
+-- * 'usrStartIndex'
+--
+-- * 'usrPreviousLink'
+unSampledReports
+    :: UnSampledReports
+unSampledReports =
+  UnSampledReports'
+    { _usrNextLink = Nothing
+    , _usrItemsPerPage = Nothing
+    , _usrKind = "analytics#unsampledReports"
+    , _usrUsername = Nothing
+    , _usrItems = Nothing
+    , _usrTotalResults = Nothing
+    , _usrStartIndex = Nothing
+    , _usrPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this unsampled report collection.
+usrNextLink :: Lens' UnSampledReports (Maybe Text)
+usrNextLink
+  = lens _usrNextLink (\ s a -> s{_usrNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+usrItemsPerPage :: Lens' UnSampledReports (Maybe Int32)
+usrItemsPerPage
+  = lens _usrItemsPerPage
+      (\ s a -> s{_usrItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+usrKind :: Lens' UnSampledReports Text
+usrKind = lens _usrKind (\ s a -> s{_usrKind = a})
+
+-- | Email ID of the authenticated user
+usrUsername :: Lens' UnSampledReports (Maybe Text)
+usrUsername
+  = lens _usrUsername (\ s a -> s{_usrUsername = a})
+
+-- | A list of unsampled reports.
+usrItems :: Lens' UnSampledReports [UnSampledReport]
+usrItems
+  = lens _usrItems (\ s a -> s{_usrItems = a}) .
+      _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- resources in the result.
+usrTotalResults :: Lens' UnSampledReports (Maybe Int32)
+usrTotalResults
+  = lens _usrTotalResults
+      (\ s a -> s{_usrTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+usrStartIndex :: Lens' UnSampledReports (Maybe Int32)
+usrStartIndex
+  = lens _usrStartIndex
+      (\ s a -> s{_usrStartIndex = a})
+      . mapping _Coerce
+
+-- | Link to previous page for this unsampled report collection.
+usrPreviousLink :: Lens' UnSampledReports (Maybe Text)
+usrPreviousLink
+  = lens _usrPreviousLink
+      (\ s a -> s{_usrPreviousLink = a})
+
+instance FromJSON UnSampledReports where
+        parseJSON
+          = withObject "UnSampledReports"
+              (\ o ->
+                 UnSampledReports' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#unsampledReports")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON UnSampledReports where
+        toJSON UnSampledReports'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _usrNextLink,
+                  ("itemsPerPage" .=) <$> _usrItemsPerPage,
+                  Just ("kind" .= _usrKind),
+                  ("username" .=) <$> _usrUsername,
+                  ("items" .=) <$> _usrItems,
+                  ("totalResults" .=) <$> _usrTotalResults,
+                  ("startIndex" .=) <$> _usrStartIndex,
+                  ("previousLink" .=) <$> _usrPreviousLink])
+
+--
+-- /See:/ 'goalURLDestinationDetailsStepsItem' smart constructor.
+data GoalURLDestinationDetailsStepsItem =
+  GoalURLDestinationDetailsStepsItem'
+    { _guddsiURL    :: !(Maybe Text)
+    , _guddsiName   :: !(Maybe Text)
+    , _guddsiNumber :: !(Maybe (Textual Int32))
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GoalURLDestinationDetailsStepsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'guddsiURL'
+--
+-- * 'guddsiName'
+--
+-- * 'guddsiNumber'
+goalURLDestinationDetailsStepsItem
+    :: GoalURLDestinationDetailsStepsItem
+goalURLDestinationDetailsStepsItem =
+  GoalURLDestinationDetailsStepsItem'
+    {_guddsiURL = Nothing, _guddsiName = Nothing, _guddsiNumber = Nothing}
+
+
+-- | URL for this step.
+guddsiURL :: Lens' GoalURLDestinationDetailsStepsItem (Maybe Text)
+guddsiURL
+  = lens _guddsiURL (\ s a -> s{_guddsiURL = a})
+
+-- | Step name.
+guddsiName :: Lens' GoalURLDestinationDetailsStepsItem (Maybe Text)
+guddsiName
+  = lens _guddsiName (\ s a -> s{_guddsiName = a})
+
+-- | Step number.
+guddsiNumber :: Lens' GoalURLDestinationDetailsStepsItem (Maybe Int32)
+guddsiNumber
+  = lens _guddsiNumber (\ s a -> s{_guddsiNumber = a})
+      . mapping _Coerce
+
+instance FromJSON GoalURLDestinationDetailsStepsItem
+         where
+        parseJSON
+          = withObject "GoalURLDestinationDetailsStepsItem"
+              (\ o ->
+                 GoalURLDestinationDetailsStepsItem' <$>
+                   (o .:? "url") <*> (o .:? "name") <*>
+                     (o .:? "number"))
+
+instance ToJSON GoalURLDestinationDetailsStepsItem
+         where
+        toJSON GoalURLDestinationDetailsStepsItem'{..}
+          = object
+              (catMaybes
+                 [("url" .=) <$> _guddsiURL,
+                  ("name" .=) <$> _guddsiName,
+                  ("number" .=) <$> _guddsiNumber])
+
+-- | Analytics data request query parameters.
+--
+-- /See:/ 'gaDataQuery' smart constructor.
+data GaDataQuery =
+  GaDataQuery'
+    { _gdqMetrics       :: !(Maybe [Text])
+    , _gdqSamplingLevel :: !(Maybe Text)
+    , _gdqFilters       :: !(Maybe Text)
+    , _gdqIds           :: !(Maybe Text)
+    , _gdqEndDate       :: !(Maybe Text)
+    , _gdqSort          :: !(Maybe [Text])
+    , _gdqDimensions    :: !(Maybe Text)
+    , _gdqStartIndex    :: !(Maybe (Textual Int32))
+    , _gdqMaxResults    :: !(Maybe (Textual Int32))
+    , _gdqSegment       :: !(Maybe Text)
+    , _gdqStartDate     :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GaDataQuery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdqMetrics'
+--
+-- * 'gdqSamplingLevel'
+--
+-- * 'gdqFilters'
+--
+-- * 'gdqIds'
+--
+-- * 'gdqEndDate'
+--
+-- * 'gdqSort'
+--
+-- * 'gdqDimensions'
+--
+-- * 'gdqStartIndex'
+--
+-- * 'gdqMaxResults'
+--
+-- * 'gdqSegment'
+--
+-- * 'gdqStartDate'
+gaDataQuery
+    :: GaDataQuery
+gaDataQuery =
+  GaDataQuery'
+    { _gdqMetrics = Nothing
+    , _gdqSamplingLevel = Nothing
+    , _gdqFilters = Nothing
+    , _gdqIds = Nothing
+    , _gdqEndDate = Nothing
+    , _gdqSort = Nothing
+    , _gdqDimensions = Nothing
+    , _gdqStartIndex = Nothing
+    , _gdqMaxResults = Nothing
+    , _gdqSegment = Nothing
+    , _gdqStartDate = Nothing
+    }
+
+
+-- | List of analytics metrics.
+gdqMetrics :: Lens' GaDataQuery [Text]
+gdqMetrics
+  = lens _gdqMetrics (\ s a -> s{_gdqMetrics = a}) .
+      _Default
+      . _Coerce
+
+-- | Desired sampling level
+gdqSamplingLevel :: Lens' GaDataQuery (Maybe Text)
+gdqSamplingLevel
+  = lens _gdqSamplingLevel
+      (\ s a -> s{_gdqSamplingLevel = a})
+
+-- | Comma-separated list of dimension or metric filters.
+gdqFilters :: Lens' GaDataQuery (Maybe Text)
+gdqFilters
+  = lens _gdqFilters (\ s a -> s{_gdqFilters = a})
+
+-- | Unique table ID.
+gdqIds :: Lens' GaDataQuery (Maybe Text)
+gdqIds = lens _gdqIds (\ s a -> s{_gdqIds = a})
+
+-- | End date.
+gdqEndDate :: Lens' GaDataQuery (Maybe Text)
+gdqEndDate
+  = lens _gdqEndDate (\ s a -> s{_gdqEndDate = a})
+
+-- | List of dimensions or metrics based on which Analytics data is sorted.
+gdqSort :: Lens' GaDataQuery [Text]
+gdqSort
+  = lens _gdqSort (\ s a -> s{_gdqSort = a}) . _Default
+      . _Coerce
+
+-- | List of analytics dimensions.
+gdqDimensions :: Lens' GaDataQuery (Maybe Text)
+gdqDimensions
+  = lens _gdqDimensions
+      (\ s a -> s{_gdqDimensions = a})
+
+-- | Start index.
+gdqStartIndex :: Lens' GaDataQuery (Maybe Int32)
+gdqStartIndex
+  = lens _gdqStartIndex
+      (\ s a -> s{_gdqStartIndex = a})
+      . mapping _Coerce
+
+-- | Maximum results per page.
+gdqMaxResults :: Lens' GaDataQuery (Maybe Int32)
+gdqMaxResults
+  = lens _gdqMaxResults
+      (\ s a -> s{_gdqMaxResults = a})
+      . mapping _Coerce
+
+-- | Analytics advanced segment.
+gdqSegment :: Lens' GaDataQuery (Maybe Text)
+gdqSegment
+  = lens _gdqSegment (\ s a -> s{_gdqSegment = a})
+
+-- | Start date.
+gdqStartDate :: Lens' GaDataQuery (Maybe Text)
+gdqStartDate
+  = lens _gdqStartDate (\ s a -> s{_gdqStartDate = a})
+
+instance FromJSON GaDataQuery where
+        parseJSON
+          = withObject "GaDataQuery"
+              (\ o ->
+                 GaDataQuery' <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "samplingLevel")
+                     <*> (o .:? "filters")
+                     <*> (o .:? "ids")
+                     <*> (o .:? "end-date")
+                     <*> (o .:? "sort" .!= mempty)
+                     <*> (o .:? "dimensions")
+                     <*> (o .:? "start-index")
+                     <*> (o .:? "max-results")
+                     <*> (o .:? "segment")
+                     <*> (o .:? "start-date"))
+
+instance ToJSON GaDataQuery where
+        toJSON GaDataQuery'{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _gdqMetrics,
+                  ("samplingLevel" .=) <$> _gdqSamplingLevel,
+                  ("filters" .=) <$> _gdqFilters,
+                  ("ids" .=) <$> _gdqIds,
+                  ("end-date" .=) <$> _gdqEndDate,
+                  ("sort" .=) <$> _gdqSort,
+                  ("dimensions" .=) <$> _gdqDimensions,
+                  ("start-index" .=) <$> _gdqStartIndex,
+                  ("max-results" .=) <$> _gdqMaxResults,
+                  ("segment" .=) <$> _gdqSegment,
+                  ("start-date" .=) <$> _gdqStartDate])
+
+-- | A remarketing audience collection lists Analytics remarketing audiences
+-- to which the user has access. Each resource in the collection
+-- corresponds to a single Analytics remarketing audience.
+--
+-- /See:/ 'remarketingAudiences' smart constructor.
+data RemarketingAudiences =
+  RemarketingAudiences'
+    { _raNextLink     :: !(Maybe Text)
+    , _raItemsPerPage :: !(Maybe (Textual Int32))
+    , _raKind         :: !Text
+    , _raUsername     :: !(Maybe Text)
+    , _raItems        :: !(Maybe [RemarketingAudience])
+    , _raTotalResults :: !(Maybe (Textual Int32))
+    , _raStartIndex   :: !(Maybe (Textual Int32))
+    , _raPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RemarketingAudiences' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'raNextLink'
+--
+-- * 'raItemsPerPage'
+--
+-- * 'raKind'
+--
+-- * 'raUsername'
+--
+-- * 'raItems'
+--
+-- * 'raTotalResults'
+--
+-- * 'raStartIndex'
+--
+-- * 'raPreviousLink'
+remarketingAudiences
+    :: RemarketingAudiences
+remarketingAudiences =
+  RemarketingAudiences'
+    { _raNextLink = Nothing
+    , _raItemsPerPage = Nothing
+    , _raKind = "analytics#remarketingAudiences"
+    , _raUsername = Nothing
+    , _raItems = Nothing
+    , _raTotalResults = Nothing
+    , _raStartIndex = Nothing
+    , _raPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this remarketing audience collection.
+raNextLink :: Lens' RemarketingAudiences (Maybe Text)
+raNextLink
+  = lens _raNextLink (\ s a -> s{_raNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+raItemsPerPage :: Lens' RemarketingAudiences (Maybe Int32)
+raItemsPerPage
+  = lens _raItemsPerPage
+      (\ s a -> s{_raItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+raKind :: Lens' RemarketingAudiences Text
+raKind = lens _raKind (\ s a -> s{_raKind = a})
+
+-- | Email ID of the authenticated user
+raUsername :: Lens' RemarketingAudiences (Maybe Text)
+raUsername
+  = lens _raUsername (\ s a -> s{_raUsername = a})
+
+-- | A list of remarketing audiences.
+raItems :: Lens' RemarketingAudiences [RemarketingAudience]
+raItems
+  = lens _raItems (\ s a -> s{_raItems = a}) . _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+raTotalResults :: Lens' RemarketingAudiences (Maybe Int32)
+raTotalResults
+  = lens _raTotalResults
+      (\ s a -> s{_raTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+raStartIndex :: Lens' RemarketingAudiences (Maybe Int32)
+raStartIndex
+  = lens _raStartIndex (\ s a -> s{_raStartIndex = a})
+      . mapping _Coerce
+
+-- | Link to previous page for this view (profile) collection.
+raPreviousLink :: Lens' RemarketingAudiences (Maybe Text)
+raPreviousLink
+  = lens _raPreviousLink
+      (\ s a -> s{_raPreviousLink = a})
+
+instance FromJSON RemarketingAudiences where
+        parseJSON
+          = withObject "RemarketingAudiences"
+              (\ o ->
+                 RemarketingAudiences' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#remarketingAudiences")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON RemarketingAudiences where
+        toJSON RemarketingAudiences'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _raNextLink,
+                  ("itemsPerPage" .=) <$> _raItemsPerPage,
+                  Just ("kind" .= _raKind),
+                  ("username" .=) <$> _raUsername,
+                  ("items" .=) <$> _raItems,
+                  ("totalResults" .=) <$> _raTotalResults,
+                  ("startIndex" .=) <$> _raStartIndex,
+                  ("previousLink" .=) <$> _raPreviousLink])
+
+--
+-- /See:/ 'gaDataDataTableRowsItem' smart constructor.
+newtype GaDataDataTableRowsItem =
+  GaDataDataTableRowsItem'
+    { _gddtriC :: Maybe [GaDataDataTableRowsItemCItem]
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GaDataDataTableRowsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gddtriC'
+gaDataDataTableRowsItem
+    :: GaDataDataTableRowsItem
+gaDataDataTableRowsItem = GaDataDataTableRowsItem' {_gddtriC = Nothing}
+
+
+gddtriC :: Lens' GaDataDataTableRowsItem [GaDataDataTableRowsItemCItem]
+gddtriC
+  = lens _gddtriC (\ s a -> s{_gddtriC = a}) . _Default
+      . _Coerce
+
+instance FromJSON GaDataDataTableRowsItem where
+        parseJSON
+          = withObject "GaDataDataTableRowsItem"
+              (\ o ->
+                 GaDataDataTableRowsItem' <$> (o .:? "c" .!= mempty))
+
+instance ToJSON GaDataDataTableRowsItem where
+        toJSON GaDataDataTableRowsItem'{..}
+          = object (catMaybes [("c" .=) <$> _gddtriC])
+
+-- | JSON template for Analytics unsampled report resource.
+--
+-- /See:/ 'unSampledReport' smart constructor.
+data UnSampledReport =
+  UnSampledReport'
+    { _uDownloadType                :: !(Maybe Text)
+    , _uStatus                      :: !(Maybe Text)
+    , _uMetrics                     :: !(Maybe Text)
+    , _uDriveDownloadDetails        :: !(Maybe UnSampledReportDriveDownloadDetails)
+    , _uWebPropertyId               :: !(Maybe Text)
+    , _uKind                        :: !Text
+    , _uCreated                     :: !(Maybe DateTime')
+    , _uFilters                     :: !(Maybe Text)
+    , _uProFileId                   :: !(Maybe Text)
+    , _uEndDate                     :: !(Maybe Text)
+    , _uSelfLink                    :: !(Maybe Text)
+    , _uAccountId                   :: !(Maybe Text)
+    , _uId                          :: !(Maybe Text)
+    , _uUpdated                     :: !(Maybe DateTime')
+    , _uTitle                       :: !(Maybe Text)
+    , _uDimensions                  :: !(Maybe Text)
+    , _uSegment                     :: !(Maybe Text)
+    , _uCloudStorageDownloadDetails :: !(Maybe UnSampledReportCloudStorageDownloadDetails)
+    , _uStartDate                   :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'UnSampledReport' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'uDownloadType'
+--
+-- * 'uStatus'
+--
+-- * 'uMetrics'
+--
+-- * 'uDriveDownloadDetails'
+--
+-- * 'uWebPropertyId'
+--
+-- * 'uKind'
+--
+-- * 'uCreated'
+--
+-- * 'uFilters'
+--
+-- * 'uProFileId'
+--
+-- * 'uEndDate'
+--
+-- * 'uSelfLink'
+--
+-- * 'uAccountId'
+--
+-- * 'uId'
+--
+-- * 'uUpdated'
+--
+-- * 'uTitle'
+--
+-- * 'uDimensions'
+--
+-- * 'uSegment'
+--
+-- * 'uCloudStorageDownloadDetails'
+--
+-- * 'uStartDate'
+unSampledReport
+    :: UnSampledReport
+unSampledReport =
+  UnSampledReport'
+    { _uDownloadType = Nothing
+    , _uStatus = Nothing
+    , _uMetrics = Nothing
+    , _uDriveDownloadDetails = Nothing
+    , _uWebPropertyId = Nothing
+    , _uKind = "analytics#unsampledReport"
+    , _uCreated = Nothing
+    , _uFilters = Nothing
+    , _uProFileId = Nothing
+    , _uEndDate = Nothing
+    , _uSelfLink = Nothing
+    , _uAccountId = Nothing
+    , _uId = Nothing
+    , _uUpdated = Nothing
+    , _uTitle = Nothing
+    , _uDimensions = Nothing
+    , _uSegment = Nothing
+    , _uCloudStorageDownloadDetails = Nothing
+    , _uStartDate = Nothing
+    }
+
+
+-- | The type of download you need to use for the report data file. Possible
+-- values include \`GOOGLE_DRIVE\` and \`GOOGLE_CLOUD_STORAGE\`. If the
+-- value is \`GOOGLE_DRIVE\`, see the \`driveDownloadDetails\` field. If
+-- the value is \`GOOGLE_CLOUD_STORAGE\`, see the
+-- \`cloudStorageDownloadDetails\` field.
+uDownloadType :: Lens' UnSampledReport (Maybe Text)
+uDownloadType
+  = lens _uDownloadType
+      (\ s a -> s{_uDownloadType = a})
+
+-- | Status of this unsampled report. Possible values are PENDING, COMPLETED,
+-- or FAILED.
+uStatus :: Lens' UnSampledReport (Maybe Text)
+uStatus = lens _uStatus (\ s a -> s{_uStatus = a})
+
+-- | The metrics for the unsampled report.
+uMetrics :: Lens' UnSampledReport (Maybe Text)
+uMetrics = lens _uMetrics (\ s a -> s{_uMetrics = a})
+
+-- | Download details for a file stored in Google Drive.
+uDriveDownloadDetails :: Lens' UnSampledReport (Maybe UnSampledReportDriveDownloadDetails)
+uDriveDownloadDetails
+  = lens _uDriveDownloadDetails
+      (\ s a -> s{_uDriveDownloadDetails = a})
+
+-- | Web property ID to which this unsampled report belongs. The web property
+-- ID is of the form UA-XXXXX-YY.
+uWebPropertyId :: Lens' UnSampledReport (Maybe Text)
+uWebPropertyId
+  = lens _uWebPropertyId
+      (\ s a -> s{_uWebPropertyId = a})
+
+-- | Resource type for an Analytics unsampled report.
+uKind :: Lens' UnSampledReport Text
+uKind = lens _uKind (\ s a -> s{_uKind = a})
+
+-- | Time this unsampled report was created.
+uCreated :: Lens' UnSampledReport (Maybe UTCTime)
+uCreated
+  = lens _uCreated (\ s a -> s{_uCreated = a}) .
+      mapping _DateTime
+
+-- | The filters for the unsampled report.
+uFilters :: Lens' UnSampledReport (Maybe Text)
+uFilters = lens _uFilters (\ s a -> s{_uFilters = a})
+
+-- | View (Profile) ID to which this unsampled report belongs.
+uProFileId :: Lens' UnSampledReport (Maybe Text)
+uProFileId
+  = lens _uProFileId (\ s a -> s{_uProFileId = a})
+
+-- | The end date for the unsampled report.
+uEndDate :: Lens' UnSampledReport (Maybe Text)
+uEndDate = lens _uEndDate (\ s a -> s{_uEndDate = a})
+
+-- | Link for this unsampled report.
+uSelfLink :: Lens' UnSampledReport (Maybe Text)
+uSelfLink
+  = lens _uSelfLink (\ s a -> s{_uSelfLink = a})
+
+-- | Account ID to which this unsampled report belongs.
+uAccountId :: Lens' UnSampledReport (Maybe Text)
+uAccountId
+  = lens _uAccountId (\ s a -> s{_uAccountId = a})
+
+-- | Unsampled report ID.
+uId :: Lens' UnSampledReport (Maybe Text)
+uId = lens _uId (\ s a -> s{_uId = a})
+
+-- | Time this unsampled report was last modified.
+uUpdated :: Lens' UnSampledReport (Maybe UTCTime)
+uUpdated
+  = lens _uUpdated (\ s a -> s{_uUpdated = a}) .
+      mapping _DateTime
+
+-- | Title of the unsampled report.
+uTitle :: Lens' UnSampledReport (Maybe Text)
+uTitle = lens _uTitle (\ s a -> s{_uTitle = a})
+
+-- | The dimensions for the unsampled report.
+uDimensions :: Lens' UnSampledReport (Maybe Text)
+uDimensions
+  = lens _uDimensions (\ s a -> s{_uDimensions = a})
+
+-- | The segment for the unsampled report.
+uSegment :: Lens' UnSampledReport (Maybe Text)
+uSegment = lens _uSegment (\ s a -> s{_uSegment = a})
+
+-- | Download details for a file stored in Google Cloud Storage.
+uCloudStorageDownloadDetails :: Lens' UnSampledReport (Maybe UnSampledReportCloudStorageDownloadDetails)
+uCloudStorageDownloadDetails
+  = lens _uCloudStorageDownloadDetails
+      (\ s a -> s{_uCloudStorageDownloadDetails = a})
+
+-- | The start date for the unsampled report.
+uStartDate :: Lens' UnSampledReport (Maybe Text)
+uStartDate
+  = lens _uStartDate (\ s a -> s{_uStartDate = a})
+
+instance FromJSON UnSampledReport where
+        parseJSON
+          = withObject "UnSampledReport"
+              (\ o ->
+                 UnSampledReport' <$>
+                   (o .:? "downloadType") <*> (o .:? "status") <*>
+                     (o .:? "metrics")
+                     <*> (o .:? "driveDownloadDetails")
+                     <*> (o .:? "webPropertyId")
+                     <*> (o .:? "kind" .!= "analytics#unsampledReport")
+                     <*> (o .:? "created")
+                     <*> (o .:? "filters")
+                     <*> (o .:? "profileId")
+                     <*> (o .:? "end-date")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "title")
+                     <*> (o .:? "dimensions")
+                     <*> (o .:? "segment")
+                     <*> (o .:? "cloudStorageDownloadDetails")
+                     <*> (o .:? "start-date"))
+
+instance ToJSON UnSampledReport where
+        toJSON UnSampledReport'{..}
+          = object
+              (catMaybes
+                 [("downloadType" .=) <$> _uDownloadType,
+                  ("status" .=) <$> _uStatus,
+                  ("metrics" .=) <$> _uMetrics,
+                  ("driveDownloadDetails" .=) <$>
+                    _uDriveDownloadDetails,
+                  ("webPropertyId" .=) <$> _uWebPropertyId,
+                  Just ("kind" .= _uKind),
+                  ("created" .=) <$> _uCreated,
+                  ("filters" .=) <$> _uFilters,
+                  ("profileId" .=) <$> _uProFileId,
+                  ("end-date" .=) <$> _uEndDate,
+                  ("selfLink" .=) <$> _uSelfLink,
+                  ("accountId" .=) <$> _uAccountId, ("id" .=) <$> _uId,
+                  ("updated" .=) <$> _uUpdated,
+                  ("title" .=) <$> _uTitle,
+                  ("dimensions" .=) <$> _uDimensions,
+                  ("segment" .=) <$> _uSegment,
+                  ("cloudStorageDownloadDetails" .=) <$>
+                    _uCloudStorageDownloadDetails,
+                  ("start-date" .=) <$> _uStartDate])
+
+--
+-- /See:/ 'mcfDataColumnHeadersItem' smart constructor.
+data McfDataColumnHeadersItem =
+  McfDataColumnHeadersItem'
+    { _mdchiColumnType :: !(Maybe Text)
+    , _mdchiName       :: !(Maybe Text)
+    , _mdchiDataType   :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'McfDataColumnHeadersItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mdchiColumnType'
+--
+-- * 'mdchiName'
+--
+-- * 'mdchiDataType'
+mcfDataColumnHeadersItem
+    :: McfDataColumnHeadersItem
+mcfDataColumnHeadersItem =
+  McfDataColumnHeadersItem'
+    {_mdchiColumnType = Nothing, _mdchiName = Nothing, _mdchiDataType = Nothing}
+
+
+-- | Column Type. Either DIMENSION or METRIC.
+mdchiColumnType :: Lens' McfDataColumnHeadersItem (Maybe Text)
+mdchiColumnType
+  = lens _mdchiColumnType
+      (\ s a -> s{_mdchiColumnType = a})
+
+-- | Column name.
+mdchiName :: Lens' McfDataColumnHeadersItem (Maybe Text)
+mdchiName
+  = lens _mdchiName (\ s a -> s{_mdchiName = a})
+
+-- | Data type. Dimension and metric values data types such as INTEGER,
+-- DOUBLE, CURRENCY, MCF_SEQUENCE etc.
+mdchiDataType :: Lens' McfDataColumnHeadersItem (Maybe Text)
+mdchiDataType
+  = lens _mdchiDataType
+      (\ s a -> s{_mdchiDataType = a})
+
+instance FromJSON McfDataColumnHeadersItem where
+        parseJSON
+          = withObject "McfDataColumnHeadersItem"
+              (\ o ->
+                 McfDataColumnHeadersItem' <$>
+                   (o .:? "columnType") <*> (o .:? "name") <*>
+                     (o .:? "dataType"))
+
+instance ToJSON McfDataColumnHeadersItem where
+        toJSON McfDataColumnHeadersItem'{..}
+          = object
+              (catMaybes
+                 [("columnType" .=) <$> _mdchiColumnType,
+                  ("name" .=) <$> _mdchiName,
+                  ("dataType" .=) <$> _mdchiDataType])
+
+-- | Total values for the requested metrics over all the results, not just
+-- the results returned in this response. The order of the metric totals is
+-- same as the metric order specified in the request.
+--
+-- /See:/ 'gaDataTotalsForAllResults' smart constructor.
+newtype GaDataTotalsForAllResults =
+  GaDataTotalsForAllResults'
+    { _gdtfarAddtional :: HashMap Text Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GaDataTotalsForAllResults' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdtfarAddtional'
+gaDataTotalsForAllResults
+    :: HashMap Text Text -- ^ 'gdtfarAddtional'
+    -> GaDataTotalsForAllResults
+gaDataTotalsForAllResults pGdtfarAddtional_ =
+  GaDataTotalsForAllResults' {_gdtfarAddtional = _Coerce # pGdtfarAddtional_}
+
+
+-- | Key-value pair for the total value of a metric. Key is the metric name
+-- and the value is the total value for that metric.
+gdtfarAddtional :: Lens' GaDataTotalsForAllResults (HashMap Text Text)
+gdtfarAddtional
+  = lens _gdtfarAddtional
+      (\ s a -> s{_gdtfarAddtional = a})
+      . _Coerce
+
+instance FromJSON GaDataTotalsForAllResults where
+        parseJSON
+          = withObject "GaDataTotalsForAllResults"
+              (\ o ->
+                 GaDataTotalsForAllResults' <$> (parseJSONObject o))
+
+instance ToJSON GaDataTotalsForAllResults where
+        toJSON = toJSON . _gdtfarAddtional
+
+-- | Parent link for this view (profile). Points to the web property to which
+-- this view (profile) belongs.
+--
+-- /See:/ 'proFileParentLink' smart constructor.
+data ProFileParentLink =
+  ProFileParentLink'
+    { _pfplHref :: !(Maybe Text)
+    , _pfplType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ProFileParentLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pfplHref'
+--
+-- * 'pfplType'
+proFileParentLink
+    :: ProFileParentLink
+proFileParentLink =
+  ProFileParentLink' {_pfplHref = Nothing, _pfplType = "analytics#webproperty"}
+
+
+-- | Link to the web property to which this view (profile) belongs.
+pfplHref :: Lens' ProFileParentLink (Maybe Text)
+pfplHref = lens _pfplHref (\ s a -> s{_pfplHref = a})
+
+-- | Value is \"analytics#webproperty\".
+pfplType :: Lens' ProFileParentLink Text
+pfplType = lens _pfplType (\ s a -> s{_pfplType = a})
+
+instance FromJSON ProFileParentLink where
+        parseJSON
+          = withObject "ProFileParentLink"
+              (\ o ->
+                 ProFileParentLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#webproperty"))
+
+instance ToJSON ProFileParentLink where
+        toJSON ProFileParentLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _pfplHref,
+                  Just ("type" .= _pfplType)])
+
+-- | JSON template for an Analytics remarketing audience.
+--
+-- /See:/ 'remarketingAudience' smart constructor.
+data RemarketingAudience =
+  RemarketingAudience'
+    { _rWebPropertyId                :: !(Maybe Text)
+    , _rKind                         :: !Text
+    , _rCreated                      :: !(Maybe DateTime')
+    , _rLinkedAdAccounts             :: !(Maybe [LinkedForeignAccount])
+    , _rAudienceDefinition           :: !(Maybe RemarketingAudienceAudienceDefinition)
+    , _rAudienceType                 :: !(Maybe Text)
+    , _rAccountId                    :: !(Maybe Text)
+    , _rName                         :: !(Maybe Text)
+    , _rStateBasedAudienceDefinition :: !(Maybe RemarketingAudienceStateBasedAudienceDefinition)
+    , _rLinkedViews                  :: !(Maybe [Text])
+    , _rInternalWebPropertyId        :: !(Maybe Text)
+    , _rId                           :: !(Maybe Text)
+    , _rUpdated                      :: !(Maybe DateTime')
+    , _rDescription                  :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RemarketingAudience' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rWebPropertyId'
+--
+-- * 'rKind'
+--
+-- * 'rCreated'
+--
+-- * 'rLinkedAdAccounts'
+--
+-- * 'rAudienceDefinition'
+--
+-- * 'rAudienceType'
+--
+-- * 'rAccountId'
+--
+-- * 'rName'
+--
+-- * 'rStateBasedAudienceDefinition'
+--
+-- * 'rLinkedViews'
+--
+-- * 'rInternalWebPropertyId'
+--
+-- * 'rId'
+--
+-- * 'rUpdated'
+--
+-- * 'rDescription'
+remarketingAudience
+    :: RemarketingAudience
+remarketingAudience =
+  RemarketingAudience'
+    { _rWebPropertyId = Nothing
+    , _rKind = "analytics#remarketingAudience"
+    , _rCreated = Nothing
+    , _rLinkedAdAccounts = Nothing
+    , _rAudienceDefinition = Nothing
+    , _rAudienceType = Nothing
+    , _rAccountId = Nothing
+    , _rName = Nothing
+    , _rStateBasedAudienceDefinition = Nothing
+    , _rLinkedViews = Nothing
+    , _rInternalWebPropertyId = Nothing
+    , _rId = Nothing
+    , _rUpdated = Nothing
+    , _rDescription = Nothing
+    }
+
+
+-- | Web property ID of the form UA-XXXXX-YY to which this remarketing
+-- audience belongs.
+rWebPropertyId :: Lens' RemarketingAudience (Maybe Text)
+rWebPropertyId
+  = lens _rWebPropertyId
+      (\ s a -> s{_rWebPropertyId = a})
+
+-- | Collection type.
+rKind :: Lens' RemarketingAudience Text
+rKind = lens _rKind (\ s a -> s{_rKind = a})
+
+-- | Time this remarketing audience was created.
+rCreated :: Lens' RemarketingAudience (Maybe UTCTime)
+rCreated
+  = lens _rCreated (\ s a -> s{_rCreated = a}) .
+      mapping _DateTime
+
+-- | The linked ad accounts associated with this remarketing audience. A
+-- remarketing audience can have only one linkedAdAccount currently.
+rLinkedAdAccounts :: Lens' RemarketingAudience [LinkedForeignAccount]
+rLinkedAdAccounts
+  = lens _rLinkedAdAccounts
+      (\ s a -> s{_rLinkedAdAccounts = a})
+      . _Default
+      . _Coerce
+
+-- | The simple audience definition that will cause a user to be added to an
+-- audience.
+rAudienceDefinition :: Lens' RemarketingAudience (Maybe RemarketingAudienceAudienceDefinition)
+rAudienceDefinition
+  = lens _rAudienceDefinition
+      (\ s a -> s{_rAudienceDefinition = a})
+
+-- | The type of audience, either SIMPLE or STATE_BASED.
+rAudienceType :: Lens' RemarketingAudience (Maybe Text)
+rAudienceType
+  = lens _rAudienceType
+      (\ s a -> s{_rAudienceType = a})
+
+-- | Account ID to which this remarketing audience belongs.
+rAccountId :: Lens' RemarketingAudience (Maybe Text)
+rAccountId
+  = lens _rAccountId (\ s a -> s{_rAccountId = a})
+
+-- | The name of this remarketing audience.
+rName :: Lens' RemarketingAudience (Maybe Text)
+rName = lens _rName (\ s a -> s{_rName = a})
+
+-- | A state based audience definition that will cause a user to be added or
+-- removed from an audience.
+rStateBasedAudienceDefinition :: Lens' RemarketingAudience (Maybe RemarketingAudienceStateBasedAudienceDefinition)
+rStateBasedAudienceDefinition
+  = lens _rStateBasedAudienceDefinition
+      (\ s a -> s{_rStateBasedAudienceDefinition = a})
+
+-- | The views (profiles) that this remarketing audience is linked to.
+rLinkedViews :: Lens' RemarketingAudience [Text]
+rLinkedViews
+  = lens _rLinkedViews (\ s a -> s{_rLinkedViews = a})
+      . _Default
+      . _Coerce
+
+-- | Internal ID for the web property to which this remarketing audience
+-- belongs.
+rInternalWebPropertyId :: Lens' RemarketingAudience (Maybe Text)
+rInternalWebPropertyId
+  = lens _rInternalWebPropertyId
+      (\ s a -> s{_rInternalWebPropertyId = a})
+
+-- | Remarketing Audience ID.
+rId :: Lens' RemarketingAudience (Maybe Text)
+rId = lens _rId (\ s a -> s{_rId = a})
+
+-- | Time this remarketing audience was last modified.
+rUpdated :: Lens' RemarketingAudience (Maybe UTCTime)
+rUpdated
+  = lens _rUpdated (\ s a -> s{_rUpdated = a}) .
+      mapping _DateTime
+
+-- | The description of this remarketing audience.
+rDescription :: Lens' RemarketingAudience (Maybe Text)
+rDescription
+  = lens _rDescription (\ s a -> s{_rDescription = a})
+
+instance FromJSON RemarketingAudience where
+        parseJSON
+          = withObject "RemarketingAudience"
+              (\ o ->
+                 RemarketingAudience' <$>
+                   (o .:? "webPropertyId") <*>
+                     (o .:? "kind" .!= "analytics#remarketingAudience")
+                     <*> (o .:? "created")
+                     <*> (o .:? "linkedAdAccounts" .!= mempty)
+                     <*> (o .:? "audienceDefinition")
+                     <*> (o .:? "audienceType")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "stateBasedAudienceDefinition")
+                     <*> (o .:? "linkedViews" .!= mempty)
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "description"))
+
+instance ToJSON RemarketingAudience where
+        toJSON RemarketingAudience'{..}
+          = object
+              (catMaybes
+                 [("webPropertyId" .=) <$> _rWebPropertyId,
+                  Just ("kind" .= _rKind),
+                  ("created" .=) <$> _rCreated,
+                  ("linkedAdAccounts" .=) <$> _rLinkedAdAccounts,
+                  ("audienceDefinition" .=) <$> _rAudienceDefinition,
+                  ("audienceType" .=) <$> _rAudienceType,
+                  ("accountId" .=) <$> _rAccountId,
+                  ("name" .=) <$> _rName,
+                  ("stateBasedAudienceDefinition" .=) <$>
+                    _rStateBasedAudienceDefinition,
+                  ("linkedViews" .=) <$> _rLinkedViews,
+                  ("internalWebPropertyId" .=) <$>
+                    _rInternalWebPropertyId,
+                  ("id" .=) <$> _rId, ("updated" .=) <$> _rUpdated,
+                  ("description" .=) <$> _rDescription])
+
+--
+-- /See:/ 'gaDataDataTableRowsItemCItem' smart constructor.
+newtype GaDataDataTableRowsItemCItem =
+  GaDataDataTableRowsItemCItem'
+    { _gddtriciV :: Maybe Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GaDataDataTableRowsItemCItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gddtriciV'
+gaDataDataTableRowsItemCItem
+    :: GaDataDataTableRowsItemCItem
+gaDataDataTableRowsItemCItem =
+  GaDataDataTableRowsItemCItem' {_gddtriciV = Nothing}
+
+
+gddtriciV :: Lens' GaDataDataTableRowsItemCItem (Maybe Text)
+gddtriciV
+  = lens _gddtriciV (\ s a -> s{_gddtriciV = a})
+
+instance FromJSON GaDataDataTableRowsItemCItem where
+        parseJSON
+          = withObject "GaDataDataTableRowsItemCItem"
+              (\ o ->
+                 GaDataDataTableRowsItemCItem' <$> (o .:? "v"))
+
+instance ToJSON GaDataDataTableRowsItemCItem where
+        toJSON GaDataDataTableRowsItemCItem'{..}
+          = object (catMaybes [("v" .=) <$> _gddtriciV])
+
+-- | Permissions the user has for this entity.
+--
+-- /See:/ 'entityUserLinkPermissions' smart constructor.
+data EntityUserLinkPermissions =
+  EntityUserLinkPermissions'
+    { _eulpLocal     :: !(Maybe [Text])
+    , _eulpEffective :: !(Maybe [Text])
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EntityUserLinkPermissions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eulpLocal'
+--
+-- * 'eulpEffective'
+entityUserLinkPermissions
+    :: EntityUserLinkPermissions
+entityUserLinkPermissions =
+  EntityUserLinkPermissions' {_eulpLocal = Nothing, _eulpEffective = Nothing}
+
+
+-- | Permissions that a user has been assigned at this very level. Does not
+-- include any implied or inherited permissions. Local permissions are
+-- modifiable.
+eulpLocal :: Lens' EntityUserLinkPermissions [Text]
+eulpLocal
+  = lens _eulpLocal (\ s a -> s{_eulpLocal = a}) .
+      _Default
+      . _Coerce
+
+-- | Effective permissions represent all the permissions that a user has for
+-- this entity. These include any implied permissions (e.g., EDIT implies
+-- VIEW) or inherited permissions from the parent entity. Effective
+-- permissions are read-only.
+eulpEffective :: Lens' EntityUserLinkPermissions [Text]
+eulpEffective
+  = lens _eulpEffective
+      (\ s a -> s{_eulpEffective = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON EntityUserLinkPermissions where
+        parseJSON
+          = withObject "EntityUserLinkPermissions"
+              (\ o ->
+                 EntityUserLinkPermissions' <$>
+                   (o .:? "local" .!= mempty) <*>
+                     (o .:? "effective" .!= mempty))
+
+instance ToJSON EntityUserLinkPermissions where
+        toJSON EntityUserLinkPermissions'{..}
+          = object
+              (catMaybes
+                 [("local" .=) <$> _eulpLocal,
+                  ("effective" .=) <$> _eulpEffective])
+
+-- | Information for the view (profile), for which the real time data was
+-- requested.
+--
+-- /See:/ 'realtimeDataProFileInfo' smart constructor.
+data RealtimeDataProFileInfo =
+  RealtimeDataProFileInfo'
+    { _rdpfiWebPropertyId         :: !(Maybe Text)
+    , _rdpfiProFileId             :: !(Maybe Text)
+    , _rdpfiProFileName           :: !(Maybe Text)
+    , _rdpfiAccountId             :: !(Maybe Text)
+    , _rdpfiInternalWebPropertyId :: !(Maybe Text)
+    , _rdpfiTableId               :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RealtimeDataProFileInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdpfiWebPropertyId'
+--
+-- * 'rdpfiProFileId'
+--
+-- * 'rdpfiProFileName'
+--
+-- * 'rdpfiAccountId'
+--
+-- * 'rdpfiInternalWebPropertyId'
+--
+-- * 'rdpfiTableId'
+realtimeDataProFileInfo
+    :: RealtimeDataProFileInfo
+realtimeDataProFileInfo =
+  RealtimeDataProFileInfo'
+    { _rdpfiWebPropertyId = Nothing
+    , _rdpfiProFileId = Nothing
+    , _rdpfiProFileName = Nothing
+    , _rdpfiAccountId = Nothing
+    , _rdpfiInternalWebPropertyId = Nothing
+    , _rdpfiTableId = Nothing
+    }
+
+
+-- | Web Property ID to which this view (profile) belongs.
+rdpfiWebPropertyId :: Lens' RealtimeDataProFileInfo (Maybe Text)
+rdpfiWebPropertyId
+  = lens _rdpfiWebPropertyId
+      (\ s a -> s{_rdpfiWebPropertyId = a})
+
+-- | View (Profile) ID.
+rdpfiProFileId :: Lens' RealtimeDataProFileInfo (Maybe Text)
+rdpfiProFileId
+  = lens _rdpfiProFileId
+      (\ s a -> s{_rdpfiProFileId = a})
+
+-- | View (Profile) name.
+rdpfiProFileName :: Lens' RealtimeDataProFileInfo (Maybe Text)
+rdpfiProFileName
+  = lens _rdpfiProFileName
+      (\ s a -> s{_rdpfiProFileName = a})
+
+-- | Account ID to which this view (profile) belongs.
+rdpfiAccountId :: Lens' RealtimeDataProFileInfo (Maybe Text)
+rdpfiAccountId
+  = lens _rdpfiAccountId
+      (\ s a -> s{_rdpfiAccountId = a})
+
+-- | Internal ID for the web property to which this view (profile) belongs.
+rdpfiInternalWebPropertyId :: Lens' RealtimeDataProFileInfo (Maybe Text)
+rdpfiInternalWebPropertyId
+  = lens _rdpfiInternalWebPropertyId
+      (\ s a -> s{_rdpfiInternalWebPropertyId = a})
+
+-- | Table ID for view (profile).
+rdpfiTableId :: Lens' RealtimeDataProFileInfo (Maybe Text)
+rdpfiTableId
+  = lens _rdpfiTableId (\ s a -> s{_rdpfiTableId = a})
+
+instance FromJSON RealtimeDataProFileInfo where
+        parseJSON
+          = withObject "RealtimeDataProFileInfo"
+              (\ o ->
+                 RealtimeDataProFileInfo' <$>
+                   (o .:? "webPropertyId") <*> (o .:? "profileId") <*>
+                     (o .:? "profileName")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "tableId"))
+
+instance ToJSON RealtimeDataProFileInfo where
+        toJSON RealtimeDataProFileInfo'{..}
+          = object
+              (catMaybes
+                 [("webPropertyId" .=) <$> _rdpfiWebPropertyId,
+                  ("profileId" .=) <$> _rdpfiProFileId,
+                  ("profileName" .=) <$> _rdpfiProFileName,
+                  ("accountId" .=) <$> _rdpfiAccountId,
+                  ("internalWebPropertyId" .=) <$>
+                    _rdpfiInternalWebPropertyId,
+                  ("tableId" .=) <$> _rdpfiTableId])
+
+--
+-- /See:/ 'mcfDataRowsItemItemConversionPathValueItem' smart constructor.
+data McfDataRowsItemItemConversionPathValueItem =
+  McfDataRowsItemItemConversionPathValueItem'
+    { _mdriicpviInteractionType :: !(Maybe Text)
+    , _mdriicpviNodeValue       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'McfDataRowsItemItemConversionPathValueItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mdriicpviInteractionType'
+--
+-- * 'mdriicpviNodeValue'
+mcfDataRowsItemItemConversionPathValueItem
+    :: McfDataRowsItemItemConversionPathValueItem
+mcfDataRowsItemItemConversionPathValueItem =
+  McfDataRowsItemItemConversionPathValueItem'
+    {_mdriicpviInteractionType = Nothing, _mdriicpviNodeValue = Nothing}
+
+
+-- | Type of an interaction on conversion path. Such as CLICK, IMPRESSION
+-- etc.
+mdriicpviInteractionType :: Lens' McfDataRowsItemItemConversionPathValueItem (Maybe Text)
+mdriicpviInteractionType
+  = lens _mdriicpviInteractionType
+      (\ s a -> s{_mdriicpviInteractionType = a})
+
+-- | Node value of an interaction on conversion path. Such as source, medium
+-- etc.
+mdriicpviNodeValue :: Lens' McfDataRowsItemItemConversionPathValueItem (Maybe Text)
+mdriicpviNodeValue
+  = lens _mdriicpviNodeValue
+      (\ s a -> s{_mdriicpviNodeValue = a})
+
+instance FromJSON
+           McfDataRowsItemItemConversionPathValueItem
+         where
+        parseJSON
+          = withObject
+              "McfDataRowsItemItemConversionPathValueItem"
+              (\ o ->
+                 McfDataRowsItemItemConversionPathValueItem' <$>
+                   (o .:? "interactionType") <*> (o .:? "nodeValue"))
+
+instance ToJSON
+           McfDataRowsItemItemConversionPathValueItem
+         where
+        toJSON
+          McfDataRowsItemItemConversionPathValueItem'{..}
+          = object
+              (catMaybes
+                 [("interactionType" .=) <$>
+                    _mdriicpviInteractionType,
+                  ("nodeValue" .=) <$> _mdriicpviNodeValue])
+
+-- | JSON template for an Analytics filter expression.
+--
+-- /See:/ 'filterExpression' smart constructor.
+data FilterExpression =
+  FilterExpression'
+    { _feFieldIndex      :: !(Maybe (Textual Int32))
+    , _feField           :: !(Maybe Text)
+    , _feKind            :: !Text
+    , _feMatchType       :: !(Maybe Text)
+    , _feCaseSensitive   :: !(Maybe Bool)
+    , _feExpressionValue :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'FilterExpression' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'feFieldIndex'
+--
+-- * 'feField'
+--
+-- * 'feKind'
+--
+-- * 'feMatchType'
+--
+-- * 'feCaseSensitive'
+--
+-- * 'feExpressionValue'
+filterExpression
+    :: FilterExpression
+filterExpression =
+  FilterExpression'
+    { _feFieldIndex = Nothing
+    , _feField = Nothing
+    , _feKind = "analytics#filterExpression"
+    , _feMatchType = Nothing
+    , _feCaseSensitive = Nothing
+    , _feExpressionValue = Nothing
+    }
+
+
+-- | The Index of the custom dimension. Set only if the field is a is
+-- CUSTOM_DIMENSION.
+feFieldIndex :: Lens' FilterExpression (Maybe Int32)
+feFieldIndex
+  = lens _feFieldIndex (\ s a -> s{_feFieldIndex = a})
+      . mapping _Coerce
+
+-- | Field to filter. Possible values: - Content and Traffic -
+-- PAGE_REQUEST_URI, - PAGE_HOSTNAME, - PAGE_TITLE, - REFERRAL, -
+-- COST_DATA_URI (Campaign target URL), - HIT_TYPE, - INTERNAL_SEARCH_TERM,
+-- - INTERNAL_SEARCH_TYPE, - SOURCE_PROPERTY_TRACKING_ID, - Campaign or
+-- AdGroup - CAMPAIGN_SOURCE, - CAMPAIGN_MEDIUM, - CAMPAIGN_NAME, -
+-- CAMPAIGN_AD_GROUP, - CAMPAIGN_TERM, - CAMPAIGN_CONTENT, - CAMPAIGN_CODE,
+-- - CAMPAIGN_REFERRAL_PATH, - E-Commerce - TRANSACTION_COUNTRY, -
+-- TRANSACTION_REGION, - TRANSACTION_CITY, - TRANSACTION_AFFILIATION (Store
+-- or order location), - ITEM_NAME, - ITEM_CODE, - ITEM_VARIATION, -
+-- TRANSACTION_ID, - TRANSACTION_CURRENCY_CODE, - PRODUCT_ACTION_TYPE, -
+-- Audience\/Users - BROWSER, - BROWSER_VERSION, - BROWSER_SIZE, -
+-- PLATFORM, - PLATFORM_VERSION, - LANGUAGE, - SCREEN_RESOLUTION, -
+-- SCREEN_COLORS, - JAVA_ENABLED (Boolean Field), - FLASH_VERSION, -
+-- GEO_SPEED (Connection speed), - VISITOR_TYPE, - GEO_ORGANIZATION (ISP
+-- organization), - GEO_DOMAIN, - GEO_IP_ADDRESS, - GEO_IP_VERSION, -
+-- Location - GEO_COUNTRY, - GEO_REGION, - GEO_CITY, - Event -
+-- EVENT_CATEGORY, - EVENT_ACTION, - EVENT_LABEL, - Other - CUSTOM_FIELD_1,
+-- - CUSTOM_FIELD_2, - USER_DEFINED_VALUE, - Application - APP_ID, -
+-- APP_INSTALLER_ID, - APP_NAME, - APP_VERSION, - SCREEN, - IS_APP (Boolean
+-- Field), - IS_FATAL_EXCEPTION (Boolean Field), - EXCEPTION_DESCRIPTION, -
+-- Mobile device - IS_MOBILE (Boolean Field, Deprecated. Use
+-- DEVICE_CATEGORY=mobile), - IS_TABLET (Boolean Field, Deprecated. Use
+-- DEVICE_CATEGORY=tablet), - DEVICE_CATEGORY, - MOBILE_HAS_QWERTY_KEYBOARD
+-- (Boolean Field), - MOBILE_HAS_NFC_SUPPORT (Boolean Field), -
+-- MOBILE_HAS_CELLULAR_RADIO (Boolean Field), - MOBILE_HAS_WIFI_SUPPORT
+-- (Boolean Field), - MOBILE_BRAND_NAME, - MOBILE_MODEL_NAME, -
+-- MOBILE_MARKETING_NAME, - MOBILE_POINTING_METHOD, - Social -
+-- SOCIAL_NETWORK, - SOCIAL_ACTION, - SOCIAL_ACTION_TARGET, - Custom
+-- dimension - CUSTOM_DIMENSION (See accompanying field index),
+feField :: Lens' FilterExpression (Maybe Text)
+feField = lens _feField (\ s a -> s{_feField = a})
+
+-- | Kind value for filter expression
+feKind :: Lens' FilterExpression Text
+feKind = lens _feKind (\ s a -> s{_feKind = a})
+
+-- | Match type for this filter. Possible values are BEGINS_WITH, EQUAL,
+-- ENDS_WITH, CONTAINS, or MATCHES. GEO_DOMAIN, GEO_IP_ADDRESS,
+-- PAGE_REQUEST_URI, or PAGE_HOSTNAME filters can use any match type; all
+-- other filters must use MATCHES.
+feMatchType :: Lens' FilterExpression (Maybe Text)
+feMatchType
+  = lens _feMatchType (\ s a -> s{_feMatchType = a})
+
+-- | Determines if the filter is case sensitive.
+feCaseSensitive :: Lens' FilterExpression (Maybe Bool)
+feCaseSensitive
+  = lens _feCaseSensitive
+      (\ s a -> s{_feCaseSensitive = a})
+
+-- | Filter expression value
+feExpressionValue :: Lens' FilterExpression (Maybe Text)
+feExpressionValue
+  = lens _feExpressionValue
+      (\ s a -> s{_feExpressionValue = a})
+
+instance FromJSON FilterExpression where
+        parseJSON
+          = withObject "FilterExpression"
+              (\ o ->
+                 FilterExpression' <$>
+                   (o .:? "fieldIndex") <*> (o .:? "field") <*>
+                     (o .:? "kind" .!= "analytics#filterExpression")
+                     <*> (o .:? "matchType")
+                     <*> (o .:? "caseSensitive")
+                     <*> (o .:? "expressionValue"))
+
+instance ToJSON FilterExpression where
+        toJSON FilterExpression'{..}
+          = object
+              (catMaybes
+                 [("fieldIndex" .=) <$> _feFieldIndex,
+                  ("field" .=) <$> _feField, Just ("kind" .= _feKind),
+                  ("matchType" .=) <$> _feMatchType,
+                  ("caseSensitive" .=) <$> _feCaseSensitive,
+                  ("expressionValue" .=) <$> _feExpressionValue])
+
+-- | JSON template for a linked view (profile).
+--
+-- /See:/ 'proFileRef' smart constructor.
+data ProFileRef =
+  ProFileRef'
+    { _pfrWebPropertyId         :: !(Maybe Text)
+    , _pfrKind                  :: !Text
+    , _pfrHref                  :: !(Maybe Text)
+    , _pfrAccountId             :: !(Maybe Text)
+    , _pfrName                  :: !(Maybe Text)
+    , _pfrInternalWebPropertyId :: !(Maybe Text)
+    , _pfrId                    :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ProFileRef' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pfrWebPropertyId'
+--
+-- * 'pfrKind'
+--
+-- * 'pfrHref'
+--
+-- * 'pfrAccountId'
+--
+-- * 'pfrName'
+--
+-- * 'pfrInternalWebPropertyId'
+--
+-- * 'pfrId'
+proFileRef
+    :: ProFileRef
+proFileRef =
+  ProFileRef'
+    { _pfrWebPropertyId = Nothing
+    , _pfrKind = "analytics#profileRef"
+    , _pfrHref = Nothing
+    , _pfrAccountId = Nothing
+    , _pfrName = Nothing
+    , _pfrInternalWebPropertyId = Nothing
+    , _pfrId = Nothing
+    }
+
+
+-- | Web property ID of the form UA-XXXXX-YY to which this view (profile)
+-- belongs.
+pfrWebPropertyId :: Lens' ProFileRef (Maybe Text)
+pfrWebPropertyId
+  = lens _pfrWebPropertyId
+      (\ s a -> s{_pfrWebPropertyId = a})
+
+-- | Analytics view (profile) reference.
+pfrKind :: Lens' ProFileRef Text
+pfrKind = lens _pfrKind (\ s a -> s{_pfrKind = a})
+
+-- | Link for this view (profile).
+pfrHref :: Lens' ProFileRef (Maybe Text)
+pfrHref = lens _pfrHref (\ s a -> s{_pfrHref = a})
+
+-- | Account ID to which this view (profile) belongs.
+pfrAccountId :: Lens' ProFileRef (Maybe Text)
+pfrAccountId
+  = lens _pfrAccountId (\ s a -> s{_pfrAccountId = a})
+
+-- | Name of this view (profile).
+pfrName :: Lens' ProFileRef (Maybe Text)
+pfrName = lens _pfrName (\ s a -> s{_pfrName = a})
+
+-- | Internal ID for the web property to which this view (profile) belongs.
+pfrInternalWebPropertyId :: Lens' ProFileRef (Maybe Text)
+pfrInternalWebPropertyId
+  = lens _pfrInternalWebPropertyId
+      (\ s a -> s{_pfrInternalWebPropertyId = a})
+
+-- | View (Profile) ID.
+pfrId :: Lens' ProFileRef (Maybe Text)
+pfrId = lens _pfrId (\ s a -> s{_pfrId = a})
+
+instance FromJSON ProFileRef where
+        parseJSON
+          = withObject "ProFileRef"
+              (\ o ->
+                 ProFileRef' <$>
+                   (o .:? "webPropertyId") <*>
+                     (o .:? "kind" .!= "analytics#profileRef")
+                     <*> (o .:? "href")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "id"))
+
+instance ToJSON ProFileRef where
+        toJSON ProFileRef'{..}
+          = object
+              (catMaybes
+                 [("webPropertyId" .=) <$> _pfrWebPropertyId,
+                  Just ("kind" .= _pfrKind), ("href" .=) <$> _pfrHref,
+                  ("accountId" .=) <$> _pfrAccountId,
+                  ("name" .=) <$> _pfrName,
+                  ("internalWebPropertyId" .=) <$>
+                    _pfrInternalWebPropertyId,
+                  ("id" .=) <$> _pfrId])
+
+-- | An account collection provides a list of Analytics accounts to which a
+-- user has access. The account collection is the entry point to all
+-- management information. Each resource in the collection corresponds to a
+-- single Analytics account.
+--
+-- /See:/ 'accounts' smart constructor.
+data Accounts =
+  Accounts'
+    { _aNextLink     :: !(Maybe Text)
+    , _aItemsPerPage :: !(Maybe (Textual Int32))
+    , _aKind         :: !Text
+    , _aUsername     :: !(Maybe Text)
+    , _aItems        :: !(Maybe [Account])
+    , _aTotalResults :: !(Maybe (Textual Int32))
+    , _aStartIndex   :: !(Maybe (Textual Int32))
+    , _aPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Accounts' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aNextLink'
+--
+-- * 'aItemsPerPage'
+--
+-- * 'aKind'
+--
+-- * 'aUsername'
+--
+-- * 'aItems'
+--
+-- * 'aTotalResults'
+--
+-- * 'aStartIndex'
+--
+-- * 'aPreviousLink'
+accounts
+    :: Accounts
+accounts =
+  Accounts'
+    { _aNextLink = Nothing
+    , _aItemsPerPage = Nothing
+    , _aKind = "analytics#accounts"
+    , _aUsername = Nothing
+    , _aItems = Nothing
+    , _aTotalResults = Nothing
+    , _aStartIndex = Nothing
+    , _aPreviousLink = Nothing
+    }
+
+
+-- | Next link for this account collection.
+aNextLink :: Lens' Accounts (Maybe Text)
+aNextLink
+  = lens _aNextLink (\ s a -> s{_aNextLink = a})
+
+-- | The maximum number of entries the response can contain, regardless of
+-- the actual number of entries returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+aItemsPerPage :: Lens' Accounts (Maybe Int32)
+aItemsPerPage
+  = lens _aItemsPerPage
+      (\ s a -> s{_aItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+aKind :: Lens' Accounts Text
+aKind = lens _aKind (\ s a -> s{_aKind = a})
+
+-- | Email ID of the authenticated user
+aUsername :: Lens' Accounts (Maybe Text)
+aUsername
+  = lens _aUsername (\ s a -> s{_aUsername = a})
+
+-- | A list of accounts.
+aItems :: Lens' Accounts [Account]
+aItems
+  = lens _aItems (\ s a -> s{_aItems = a}) . _Default .
+      _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+aTotalResults :: Lens' Accounts (Maybe Int32)
+aTotalResults
+  = lens _aTotalResults
+      (\ s a -> s{_aTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the entries, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+aStartIndex :: Lens' Accounts (Maybe Int32)
+aStartIndex
+  = lens _aStartIndex (\ s a -> s{_aStartIndex = a}) .
+      mapping _Coerce
+
+-- | Previous link for this account collection.
+aPreviousLink :: Lens' Accounts (Maybe Text)
+aPreviousLink
+  = lens _aPreviousLink
+      (\ s a -> s{_aPreviousLink = a})
+
+instance FromJSON Accounts where
+        parseJSON
+          = withObject "Accounts"
+              (\ o ->
+                 Accounts' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#accounts")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON Accounts where
+        toJSON Accounts'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _aNextLink,
+                  ("itemsPerPage" .=) <$> _aItemsPerPage,
+                  Just ("kind" .= _aKind),
+                  ("username" .=) <$> _aUsername,
+                  ("items" .=) <$> _aItems,
+                  ("totalResults" .=) <$> _aTotalResults,
+                  ("startIndex" .=) <$> _aStartIndex,
+                  ("previousLink" .=) <$> _aPreviousLink])
+
+-- | An experiment collection lists Analytics experiments to which the user
+-- has access. Each view (profile) can have a set of experiments. Each
+-- resource in the Experiment collection corresponds to a single Analytics
+-- experiment.
+--
+-- /See:/ 'experiments' smart constructor.
+data Experiments =
+  Experiments'
+    { _eNextLink     :: !(Maybe Text)
+    , _eItemsPerPage :: !(Maybe (Textual Int32))
+    , _eKind         :: !Text
+    , _eUsername     :: !(Maybe Text)
+    , _eItems        :: !(Maybe [Experiment])
+    , _eTotalResults :: !(Maybe (Textual Int32))
+    , _eStartIndex   :: !(Maybe (Textual Int32))
+    , _ePreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Experiments' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eNextLink'
+--
+-- * 'eItemsPerPage'
+--
+-- * 'eKind'
+--
+-- * 'eUsername'
+--
+-- * 'eItems'
+--
+-- * 'eTotalResults'
+--
+-- * 'eStartIndex'
+--
+-- * 'ePreviousLink'
+experiments
+    :: Experiments
+experiments =
+  Experiments'
+    { _eNextLink = Nothing
+    , _eItemsPerPage = Nothing
+    , _eKind = "analytics#experiments"
+    , _eUsername = Nothing
+    , _eItems = Nothing
+    , _eTotalResults = Nothing
+    , _eStartIndex = Nothing
+    , _ePreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this experiment collection.
+eNextLink :: Lens' Experiments (Maybe Text)
+eNextLink
+  = lens _eNextLink (\ s a -> s{_eNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+eItemsPerPage :: Lens' Experiments (Maybe Int32)
+eItemsPerPage
+  = lens _eItemsPerPage
+      (\ s a -> s{_eItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+eKind :: Lens' Experiments Text
+eKind = lens _eKind (\ s a -> s{_eKind = a})
+
+-- | Email ID of the authenticated user
+eUsername :: Lens' Experiments (Maybe Text)
+eUsername
+  = lens _eUsername (\ s a -> s{_eUsername = a})
+
+-- | A list of experiments.
+eItems :: Lens' Experiments [Experiment]
+eItems
+  = lens _eItems (\ s a -> s{_eItems = a}) . _Default .
+      _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- resources in the result.
+eTotalResults :: Lens' Experiments (Maybe Int32)
+eTotalResults
+  = lens _eTotalResults
+      (\ s a -> s{_eTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+eStartIndex :: Lens' Experiments (Maybe Int32)
+eStartIndex
+  = lens _eStartIndex (\ s a -> s{_eStartIndex = a}) .
+      mapping _Coerce
+
+-- | Link to previous page for this experiment collection.
+ePreviousLink :: Lens' Experiments (Maybe Text)
+ePreviousLink
+  = lens _ePreviousLink
+      (\ s a -> s{_ePreviousLink = a})
+
+instance FromJSON Experiments where
+        parseJSON
+          = withObject "Experiments"
+              (\ o ->
+                 Experiments' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#experiments")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON Experiments where
+        toJSON Experiments'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _eNextLink,
+                  ("itemsPerPage" .=) <$> _eItemsPerPage,
+                  Just ("kind" .= _eKind),
+                  ("username" .=) <$> _eUsername,
+                  ("items" .=) <$> _eItems,
+                  ("totalResults" .=) <$> _eTotalResults,
+                  ("startIndex" .=) <$> _eStartIndex,
+                  ("previousLink" .=) <$> _ePreviousLink])
+
+-- | Parent link for an experiment. Points to the view (profile) to which
+-- this experiment belongs.
+--
+-- /See:/ 'experimentParentLink' smart constructor.
+data ExperimentParentLink =
+  ExperimentParentLink'
+    { _eplHref :: !(Maybe Text)
+    , _eplType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ExperimentParentLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eplHref'
+--
+-- * 'eplType'
+experimentParentLink
+    :: ExperimentParentLink
+experimentParentLink =
+  ExperimentParentLink' {_eplHref = Nothing, _eplType = "analytics#profile"}
+
+
+-- | Link to the view (profile) to which this experiment belongs. This field
+-- is read-only.
+eplHref :: Lens' ExperimentParentLink (Maybe Text)
+eplHref = lens _eplHref (\ s a -> s{_eplHref = a})
+
+-- | Value is \"analytics#profile\". This field is read-only.
+eplType :: Lens' ExperimentParentLink Text
+eplType = lens _eplType (\ s a -> s{_eplType = a})
+
+instance FromJSON ExperimentParentLink where
+        parseJSON
+          = withObject "ExperimentParentLink"
+              (\ o ->
+                 ExperimentParentLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#profile"))
+
+instance ToJSON ExperimentParentLink where
+        toJSON ExperimentParentLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _eplHref,
+                  Just ("type" .= _eplType)])
+
+-- | Download details for a file stored in Google Drive.
+--
+-- /See:/ 'unSampledReportDriveDownloadDetails' smart constructor.
+newtype UnSampledReportDriveDownloadDetails =
+  UnSampledReportDriveDownloadDetails'
+    { _usrdddDocumentId :: Maybe Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'UnSampledReportDriveDownloadDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usrdddDocumentId'
+unSampledReportDriveDownloadDetails
+    :: UnSampledReportDriveDownloadDetails
+unSampledReportDriveDownloadDetails =
+  UnSampledReportDriveDownloadDetails' {_usrdddDocumentId = Nothing}
+
+
+-- | Id of the document\/file containing the report data.
+usrdddDocumentId :: Lens' UnSampledReportDriveDownloadDetails (Maybe Text)
+usrdddDocumentId
+  = lens _usrdddDocumentId
+      (\ s a -> s{_usrdddDocumentId = a})
+
+instance FromJSON UnSampledReportDriveDownloadDetails
+         where
+        parseJSON
+          = withObject "UnSampledReportDriveDownloadDetails"
+              (\ o ->
+                 UnSampledReportDriveDownloadDetails' <$>
+                   (o .:? "documentId"))
+
+instance ToJSON UnSampledReportDriveDownloadDetails
+         where
+        toJSON UnSampledReportDriveDownloadDetails'{..}
+          = object
+              (catMaybes [("documentId" .=) <$> _usrdddDocumentId])
+
+-- | Information for the view (profile), for which the Analytics data was
+-- requested.
+--
+-- /See:/ 'mcfDataProFileInfo' smart constructor.
+data McfDataProFileInfo =
+  McfDataProFileInfo'
+    { _mdpfiWebPropertyId         :: !(Maybe Text)
+    , _mdpfiProFileId             :: !(Maybe Text)
+    , _mdpfiProFileName           :: !(Maybe Text)
+    , _mdpfiAccountId             :: !(Maybe Text)
+    , _mdpfiInternalWebPropertyId :: !(Maybe Text)
+    , _mdpfiTableId               :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'McfDataProFileInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mdpfiWebPropertyId'
+--
+-- * 'mdpfiProFileId'
+--
+-- * 'mdpfiProFileName'
+--
+-- * 'mdpfiAccountId'
+--
+-- * 'mdpfiInternalWebPropertyId'
+--
+-- * 'mdpfiTableId'
+mcfDataProFileInfo
+    :: McfDataProFileInfo
+mcfDataProFileInfo =
+  McfDataProFileInfo'
+    { _mdpfiWebPropertyId = Nothing
+    , _mdpfiProFileId = Nothing
+    , _mdpfiProFileName = Nothing
+    , _mdpfiAccountId = Nothing
+    , _mdpfiInternalWebPropertyId = Nothing
+    , _mdpfiTableId = Nothing
+    }
+
+
+-- | Web Property ID to which this view (profile) belongs.
+mdpfiWebPropertyId :: Lens' McfDataProFileInfo (Maybe Text)
+mdpfiWebPropertyId
+  = lens _mdpfiWebPropertyId
+      (\ s a -> s{_mdpfiWebPropertyId = a})
+
+-- | View (Profile) ID.
+mdpfiProFileId :: Lens' McfDataProFileInfo (Maybe Text)
+mdpfiProFileId
+  = lens _mdpfiProFileId
+      (\ s a -> s{_mdpfiProFileId = a})
+
+-- | View (Profile) name.
+mdpfiProFileName :: Lens' McfDataProFileInfo (Maybe Text)
+mdpfiProFileName
+  = lens _mdpfiProFileName
+      (\ s a -> s{_mdpfiProFileName = a})
+
+-- | Account ID to which this view (profile) belongs.
+mdpfiAccountId :: Lens' McfDataProFileInfo (Maybe Text)
+mdpfiAccountId
+  = lens _mdpfiAccountId
+      (\ s a -> s{_mdpfiAccountId = a})
+
+-- | Internal ID for the web property to which this view (profile) belongs.
+mdpfiInternalWebPropertyId :: Lens' McfDataProFileInfo (Maybe Text)
+mdpfiInternalWebPropertyId
+  = lens _mdpfiInternalWebPropertyId
+      (\ s a -> s{_mdpfiInternalWebPropertyId = a})
+
+-- | Table ID for view (profile).
+mdpfiTableId :: Lens' McfDataProFileInfo (Maybe Text)
+mdpfiTableId
+  = lens _mdpfiTableId (\ s a -> s{_mdpfiTableId = a})
+
+instance FromJSON McfDataProFileInfo where
+        parseJSON
+          = withObject "McfDataProFileInfo"
+              (\ o ->
+                 McfDataProFileInfo' <$>
+                   (o .:? "webPropertyId") <*> (o .:? "profileId") <*>
+                     (o .:? "profileName")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "tableId"))
+
+instance ToJSON McfDataProFileInfo where
+        toJSON McfDataProFileInfo'{..}
+          = object
+              (catMaybes
+                 [("webPropertyId" .=) <$> _mdpfiWebPropertyId,
+                  ("profileId" .=) <$> _mdpfiProFileId,
+                  ("profileName" .=) <$> _mdpfiProFileName,
+                  ("accountId" .=) <$> _mdpfiAccountId,
+                  ("internalWebPropertyId" .=) <$>
+                    _mdpfiInternalWebPropertyId,
+                  ("tableId" .=) <$> _mdpfiTableId])
+
+-- | Lists Analytics custom data sources to which the user has access. Each
+-- resource in the collection corresponds to a single Analytics custom data
+-- source.
+--
+-- /See:/ 'customDataSources' smart constructor.
+data CustomDataSources =
+  CustomDataSources'
+    { _cdsNextLink     :: !(Maybe Text)
+    , _cdsItemsPerPage :: !(Maybe (Textual Int32))
+    , _cdsKind         :: !Text
+    , _cdsUsername     :: !(Maybe Text)
+    , _cdsItems        :: !(Maybe [CustomDataSource])
+    , _cdsTotalResults :: !(Maybe (Textual Int32))
+    , _cdsStartIndex   :: !(Maybe (Textual Int32))
+    , _cdsPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CustomDataSources' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdsNextLink'
+--
+-- * 'cdsItemsPerPage'
+--
+-- * 'cdsKind'
+--
+-- * 'cdsUsername'
+--
+-- * 'cdsItems'
+--
+-- * 'cdsTotalResults'
+--
+-- * 'cdsStartIndex'
+--
+-- * 'cdsPreviousLink'
+customDataSources
+    :: CustomDataSources
+customDataSources =
+  CustomDataSources'
+    { _cdsNextLink = Nothing
+    , _cdsItemsPerPage = Nothing
+    , _cdsKind = "analytics#customDataSources"
+    , _cdsUsername = Nothing
+    , _cdsItems = Nothing
+    , _cdsTotalResults = Nothing
+    , _cdsStartIndex = Nothing
+    , _cdsPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this custom data source collection.
+cdsNextLink :: Lens' CustomDataSources (Maybe Text)
+cdsNextLink
+  = lens _cdsNextLink (\ s a -> s{_cdsNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+cdsItemsPerPage :: Lens' CustomDataSources (Maybe Int32)
+cdsItemsPerPage
+  = lens _cdsItemsPerPage
+      (\ s a -> s{_cdsItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+cdsKind :: Lens' CustomDataSources Text
+cdsKind = lens _cdsKind (\ s a -> s{_cdsKind = a})
+
+-- | Email ID of the authenticated user
+cdsUsername :: Lens' CustomDataSources (Maybe Text)
+cdsUsername
+  = lens _cdsUsername (\ s a -> s{_cdsUsername = a})
+
+-- | Collection of custom data sources.
+cdsItems :: Lens' CustomDataSources [CustomDataSource]
+cdsItems
+  = lens _cdsItems (\ s a -> s{_cdsItems = a}) .
+      _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+cdsTotalResults :: Lens' CustomDataSources (Maybe Int32)
+cdsTotalResults
+  = lens _cdsTotalResults
+      (\ s a -> s{_cdsTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+cdsStartIndex :: Lens' CustomDataSources (Maybe Int32)
+cdsStartIndex
+  = lens _cdsStartIndex
+      (\ s a -> s{_cdsStartIndex = a})
+      . mapping _Coerce
+
+-- | Link to previous page for this custom data source collection.
+cdsPreviousLink :: Lens' CustomDataSources (Maybe Text)
+cdsPreviousLink
+  = lens _cdsPreviousLink
+      (\ s a -> s{_cdsPreviousLink = a})
+
+instance FromJSON CustomDataSources where
+        parseJSON
+          = withObject "CustomDataSources"
+              (\ o ->
+                 CustomDataSources' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#customDataSources")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON CustomDataSources where
+        toJSON CustomDataSources'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _cdsNextLink,
+                  ("itemsPerPage" .=) <$> _cdsItemsPerPage,
+                  Just ("kind" .= _cdsKind),
+                  ("username" .=) <$> _cdsUsername,
+                  ("items" .=) <$> _cdsItems,
+                  ("totalResults" .=) <$> _cdsTotalResults,
+                  ("startIndex" .=) <$> _cdsStartIndex,
+                  ("previousLink" .=) <$> _cdsPreviousLink])
+
+-- | Child link for this web property. Points to the list of views (profiles)
+-- for this web property.
+--
+-- /See:/ 'webPropertyChildLink' smart constructor.
+data WebPropertyChildLink =
+  WebPropertyChildLink'
+    { _wpclHref :: !(Maybe Text)
+    , _wpclType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'WebPropertyChildLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wpclHref'
+--
+-- * 'wpclType'
+webPropertyChildLink
+    :: WebPropertyChildLink
+webPropertyChildLink =
+  WebPropertyChildLink' {_wpclHref = Nothing, _wpclType = "analytics#profiles"}
+
+
+-- | Link to the list of views (profiles) for this web property.
+wpclHref :: Lens' WebPropertyChildLink (Maybe Text)
+wpclHref = lens _wpclHref (\ s a -> s{_wpclHref = a})
+
+-- | Type of the parent link. Its value is \"analytics#profiles\".
+wpclType :: Lens' WebPropertyChildLink Text
+wpclType = lens _wpclType (\ s a -> s{_wpclType = a})
+
+instance FromJSON WebPropertyChildLink where
+        parseJSON
+          = withObject "WebPropertyChildLink"
+              (\ o ->
+                 WebPropertyChildLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#profiles"))
+
+instance ToJSON WebPropertyChildLink where
+        toJSON WebPropertyChildLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _wpclHref,
+                  Just ("type" .= _wpclType)])
+
+-- | JSON template for a hash Client Id response resource.
+--
+-- /See:/ 'hashClientIdResponse' smart constructor.
+data HashClientIdResponse =
+  HashClientIdResponse'
+    { _hcirClientId       :: !(Maybe Text)
+    , _hcirWebPropertyId  :: !(Maybe Text)
+    , _hcirKind           :: !Text
+    , _hcirHashedClientId :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'HashClientIdResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'hcirClientId'
+--
+-- * 'hcirWebPropertyId'
+--
+-- * 'hcirKind'
+--
+-- * 'hcirHashedClientId'
+hashClientIdResponse
+    :: HashClientIdResponse
+hashClientIdResponse =
+  HashClientIdResponse'
+    { _hcirClientId = Nothing
+    , _hcirWebPropertyId = Nothing
+    , _hcirKind = "analytics#hashClientIdResponse"
+    , _hcirHashedClientId = Nothing
+    }
+
+
+hcirClientId :: Lens' HashClientIdResponse (Maybe Text)
+hcirClientId
+  = lens _hcirClientId (\ s a -> s{_hcirClientId = a})
+
+hcirWebPropertyId :: Lens' HashClientIdResponse (Maybe Text)
+hcirWebPropertyId
+  = lens _hcirWebPropertyId
+      (\ s a -> s{_hcirWebPropertyId = a})
+
+hcirKind :: Lens' HashClientIdResponse Text
+hcirKind = lens _hcirKind (\ s a -> s{_hcirKind = a})
+
+hcirHashedClientId :: Lens' HashClientIdResponse (Maybe Text)
+hcirHashedClientId
+  = lens _hcirHashedClientId
+      (\ s a -> s{_hcirHashedClientId = a})
+
+instance FromJSON HashClientIdResponse where
+        parseJSON
+          = withObject "HashClientIdResponse"
+              (\ o ->
+                 HashClientIdResponse' <$>
+                   (o .:? "clientId") <*> (o .:? "webPropertyId") <*>
+                     (o .:? "kind" .!= "analytics#hashClientIdResponse")
+                     <*> (o .:? "hashedClientId"))
+
+instance ToJSON HashClientIdResponse where
+        toJSON HashClientIdResponse'{..}
+          = object
+              (catMaybes
+                 [("clientId" .=) <$> _hcirClientId,
+                  ("webPropertyId" .=) <$> _hcirWebPropertyId,
+                  Just ("kind" .= _hcirKind),
+                  ("hashedClientId" .=) <$> _hcirHashedClientId])
+
+-- | Multi-Channel Funnels data for a given view (profile).
+--
+-- /See:/ 'mcfData' smart constructor.
+data McfData =
+  McfData'
+    { _mdNextLink            :: !(Maybe Text)
+    , _mdSampleSpace         :: !(Maybe (Textual Int64))
+    , _mdItemsPerPage        :: !(Maybe (Textual Int32))
+    , _mdProFileInfo         :: !(Maybe McfDataProFileInfo)
+    , _mdKind                :: !Text
+    , _mdSampleSize          :: !(Maybe (Textual Int64))
+    , _mdRows                :: !(Maybe [[McfDataRowsItemItem]])
+    , _mdSelfLink            :: !(Maybe Text)
+    , _mdQuery               :: !(Maybe McfDataQuery)
+    , _mdColumnHeaders       :: !(Maybe [McfDataColumnHeadersItem])
+    , _mdId                  :: !(Maybe Text)
+    , _mdTotalResults        :: !(Maybe (Textual Int32))
+    , _mdContainsSampledData :: !(Maybe Bool)
+    , _mdTotalsForAllResults :: !(Maybe McfDataTotalsForAllResults)
+    , _mdPreviousLink        :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'McfData' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mdNextLink'
+--
+-- * 'mdSampleSpace'
+--
+-- * 'mdItemsPerPage'
+--
+-- * 'mdProFileInfo'
+--
+-- * 'mdKind'
+--
+-- * 'mdSampleSize'
+--
+-- * 'mdRows'
+--
+-- * 'mdSelfLink'
+--
+-- * 'mdQuery'
+--
+-- * 'mdColumnHeaders'
+--
+-- * 'mdId'
+--
+-- * 'mdTotalResults'
+--
+-- * 'mdContainsSampledData'
+--
+-- * 'mdTotalsForAllResults'
+--
+-- * 'mdPreviousLink'
+mcfData
+    :: McfData
+mcfData =
+  McfData'
+    { _mdNextLink = Nothing
+    , _mdSampleSpace = Nothing
+    , _mdItemsPerPage = Nothing
+    , _mdProFileInfo = Nothing
+    , _mdKind = "analytics#mcfData"
+    , _mdSampleSize = Nothing
+    , _mdRows = Nothing
+    , _mdSelfLink = Nothing
+    , _mdQuery = Nothing
+    , _mdColumnHeaders = Nothing
+    , _mdId = Nothing
+    , _mdTotalResults = Nothing
+    , _mdContainsSampledData = Nothing
+    , _mdTotalsForAllResults = Nothing
+    , _mdPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this Analytics data query.
+mdNextLink :: Lens' McfData (Maybe Text)
+mdNextLink
+  = lens _mdNextLink (\ s a -> s{_mdNextLink = a})
+
+-- | Total size of the sample space from which the samples were selected.
+mdSampleSpace :: Lens' McfData (Maybe Int64)
+mdSampleSpace
+  = lens _mdSampleSpace
+      (\ s a -> s{_mdSampleSpace = a})
+      . mapping _Coerce
+
+-- | The maximum number of rows the response can contain, regardless of the
+-- actual number of rows returned. Its value ranges from 1 to 10,000 with a
+-- value of 1000 by default, or otherwise specified by the max-results
+-- query parameter.
+mdItemsPerPage :: Lens' McfData (Maybe Int32)
+mdItemsPerPage
+  = lens _mdItemsPerPage
+      (\ s a -> s{_mdItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Information for the view (profile), for which the Analytics data was
+-- requested.
+mdProFileInfo :: Lens' McfData (Maybe McfDataProFileInfo)
+mdProFileInfo
+  = lens _mdProFileInfo
+      (\ s a -> s{_mdProFileInfo = a})
+
+-- | Resource type.
+mdKind :: Lens' McfData Text
+mdKind = lens _mdKind (\ s a -> s{_mdKind = a})
+
+-- | The number of samples used to calculate the result.
+mdSampleSize :: Lens' McfData (Maybe Int64)
+mdSampleSize
+  = lens _mdSampleSize (\ s a -> s{_mdSampleSize = a})
+      . mapping _Coerce
+
+-- | Analytics data rows, where each row contains a list of dimension values
+-- followed by the metric values. The order of dimensions and metrics is
+-- same as specified in the request.
+mdRows :: Lens' McfData [[McfDataRowsItemItem]]
+mdRows
+  = lens _mdRows (\ s a -> s{_mdRows = a}) . _Default .
+      _Coerce
+
+-- | Link to this page.
+mdSelfLink :: Lens' McfData (Maybe Text)
+mdSelfLink
+  = lens _mdSelfLink (\ s a -> s{_mdSelfLink = a})
+
+-- | Analytics data request query parameters.
+mdQuery :: Lens' McfData (Maybe McfDataQuery)
+mdQuery = lens _mdQuery (\ s a -> s{_mdQuery = a})
+
+-- | Column headers that list dimension names followed by the metric names.
+-- The order of dimensions and metrics is same as specified in the request.
+mdColumnHeaders :: Lens' McfData [McfDataColumnHeadersItem]
+mdColumnHeaders
+  = lens _mdColumnHeaders
+      (\ s a -> s{_mdColumnHeaders = a})
+      . _Default
+      . _Coerce
+
+-- | Unique ID for this data response.
+mdId :: Lens' McfData (Maybe Text)
+mdId = lens _mdId (\ s a -> s{_mdId = a})
+
+-- | The total number of rows for the query, regardless of the number of rows
+-- in the response.
+mdTotalResults :: Lens' McfData (Maybe Int32)
+mdTotalResults
+  = lens _mdTotalResults
+      (\ s a -> s{_mdTotalResults = a})
+      . mapping _Coerce
+
+-- | Determines if the Analytics data contains sampled data.
+mdContainsSampledData :: Lens' McfData (Maybe Bool)
+mdContainsSampledData
+  = lens _mdContainsSampledData
+      (\ s a -> s{_mdContainsSampledData = a})
+
+-- | Total values for the requested metrics over all the results, not just
+-- the results returned in this response. The order of the metric totals is
+-- same as the metric order specified in the request.
+mdTotalsForAllResults :: Lens' McfData (Maybe McfDataTotalsForAllResults)
+mdTotalsForAllResults
+  = lens _mdTotalsForAllResults
+      (\ s a -> s{_mdTotalsForAllResults = a})
+
+-- | Link to previous page for this Analytics data query.
+mdPreviousLink :: Lens' McfData (Maybe Text)
+mdPreviousLink
+  = lens _mdPreviousLink
+      (\ s a -> s{_mdPreviousLink = a})
+
+instance FromJSON McfData where
+        parseJSON
+          = withObject "McfData"
+              (\ o ->
+                 McfData' <$>
+                   (o .:? "nextLink") <*> (o .:? "sampleSpace") <*>
+                     (o .:? "itemsPerPage")
+                     <*> (o .:? "profileInfo")
+                     <*> (o .:? "kind" .!= "analytics#mcfData")
+                     <*> (o .:? "sampleSize")
+                     <*> (o .:? "rows" .!= mempty)
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "query")
+                     <*> (o .:? "columnHeaders" .!= mempty)
+                     <*> (o .:? "id")
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "containsSampledData")
+                     <*> (o .:? "totalsForAllResults")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON McfData where
+        toJSON McfData'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _mdNextLink,
+                  ("sampleSpace" .=) <$> _mdSampleSpace,
+                  ("itemsPerPage" .=) <$> _mdItemsPerPage,
+                  ("profileInfo" .=) <$> _mdProFileInfo,
+                  Just ("kind" .= _mdKind),
+                  ("sampleSize" .=) <$> _mdSampleSize,
+                  ("rows" .=) <$> _mdRows,
+                  ("selfLink" .=) <$> _mdSelfLink,
+                  ("query" .=) <$> _mdQuery,
+                  ("columnHeaders" .=) <$> _mdColumnHeaders,
+                  ("id" .=) <$> _mdId,
+                  ("totalResults" .=) <$> _mdTotalResults,
+                  ("containsSampledData" .=) <$>
+                    _mdContainsSampledData,
+                  ("totalsForAllResults" .=) <$>
+                    _mdTotalsForAllResults,
+                  ("previousLink" .=) <$> _mdPreviousLink])
+
+-- | JSON template for a user reference.
+--
+-- /See:/ 'userRef' smart constructor.
+data UserRef =
+  UserRef'
+    { _urEmail :: !(Maybe Text)
+    , _urKind  :: !Text
+    , _urId    :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'UserRef' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'urEmail'
+--
+-- * 'urKind'
+--
+-- * 'urId'
+userRef
+    :: UserRef
+userRef =
+  UserRef' {_urEmail = Nothing, _urKind = "analytics#userRef", _urId = Nothing}
+
+
+-- | Email ID of this user.
+urEmail :: Lens' UserRef (Maybe Text)
+urEmail = lens _urEmail (\ s a -> s{_urEmail = a})
+
+urKind :: Lens' UserRef Text
+urKind = lens _urKind (\ s a -> s{_urKind = a})
+
+-- | User ID.
+urId :: Lens' UserRef (Maybe Text)
+urId = lens _urId (\ s a -> s{_urId = a})
+
+instance FromJSON UserRef where
+        parseJSON
+          = withObject "UserRef"
+              (\ o ->
+                 UserRef' <$>
+                   (o .:? "email") <*>
+                     (o .:? "kind" .!= "analytics#userRef")
+                     <*> (o .:? "id"))
+
+instance ToJSON UserRef where
+        toJSON UserRef'{..}
+          = object
+              (catMaybes
+                 [("email" .=) <$> _urEmail, Just ("kind" .= _urKind),
+                  ("id" .=) <$> _urId])
+
+-- | Details for the goal of the type VISIT_NUM_PAGES.
+--
+-- /See:/ 'goalVisitNumPagesDetails' smart constructor.
+data GoalVisitNumPagesDetails =
+  GoalVisitNumPagesDetails'
+    { _gvnpdComparisonValue :: !(Maybe (Textual Int64))
+    , _gvnpdComparisonType  :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GoalVisitNumPagesDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gvnpdComparisonValue'
+--
+-- * 'gvnpdComparisonType'
+goalVisitNumPagesDetails
+    :: GoalVisitNumPagesDetails
+goalVisitNumPagesDetails =
+  GoalVisitNumPagesDetails'
+    {_gvnpdComparisonValue = Nothing, _gvnpdComparisonType = Nothing}
+
+
+-- | Value used for this comparison.
+gvnpdComparisonValue :: Lens' GoalVisitNumPagesDetails (Maybe Int64)
+gvnpdComparisonValue
+  = lens _gvnpdComparisonValue
+      (\ s a -> s{_gvnpdComparisonValue = a})
+      . mapping _Coerce
+
+-- | Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or
+-- EQUAL.
+gvnpdComparisonType :: Lens' GoalVisitNumPagesDetails (Maybe Text)
+gvnpdComparisonType
+  = lens _gvnpdComparisonType
+      (\ s a -> s{_gvnpdComparisonType = a})
+
+instance FromJSON GoalVisitNumPagesDetails where
+        parseJSON
+          = withObject "GoalVisitNumPagesDetails"
+              (\ o ->
+                 GoalVisitNumPagesDetails' <$>
+                   (o .:? "comparisonValue") <*>
+                     (o .:? "comparisonType"))
+
+instance ToJSON GoalVisitNumPagesDetails where
+        toJSON GoalVisitNumPagesDetails'{..}
+          = object
+              (catMaybes
+                 [("comparisonValue" .=) <$> _gvnpdComparisonValue,
+                  ("comparisonType" .=) <$> _gvnpdComparisonType])
+
+--
+-- /See:/ 'realtimeDataColumnHeadersItem' smart constructor.
+data RealtimeDataColumnHeadersItem =
+  RealtimeDataColumnHeadersItem'
+    { _rdchiColumnType :: !(Maybe Text)
+    , _rdchiName       :: !(Maybe Text)
+    , _rdchiDataType   :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RealtimeDataColumnHeadersItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdchiColumnType'
+--
+-- * 'rdchiName'
+--
+-- * 'rdchiDataType'
+realtimeDataColumnHeadersItem
+    :: RealtimeDataColumnHeadersItem
+realtimeDataColumnHeadersItem =
+  RealtimeDataColumnHeadersItem'
+    {_rdchiColumnType = Nothing, _rdchiName = Nothing, _rdchiDataType = Nothing}
+
+
+-- | Column Type. Either DIMENSION or METRIC.
+rdchiColumnType :: Lens' RealtimeDataColumnHeadersItem (Maybe Text)
+rdchiColumnType
+  = lens _rdchiColumnType
+      (\ s a -> s{_rdchiColumnType = a})
+
+-- | Column name.
+rdchiName :: Lens' RealtimeDataColumnHeadersItem (Maybe Text)
+rdchiName
+  = lens _rdchiName (\ s a -> s{_rdchiName = a})
+
+-- | Data type. Dimension column headers have only STRING as the data type.
+-- Metric column headers have data types for metric values such as INTEGER,
+-- DOUBLE, CURRENCY etc.
+rdchiDataType :: Lens' RealtimeDataColumnHeadersItem (Maybe Text)
+rdchiDataType
+  = lens _rdchiDataType
+      (\ s a -> s{_rdchiDataType = a})
+
+instance FromJSON RealtimeDataColumnHeadersItem where
+        parseJSON
+          = withObject "RealtimeDataColumnHeadersItem"
+              (\ o ->
+                 RealtimeDataColumnHeadersItem' <$>
+                   (o .:? "columnType") <*> (o .:? "name") <*>
+                     (o .:? "dataType"))
+
+instance ToJSON RealtimeDataColumnHeadersItem where
+        toJSON RealtimeDataColumnHeadersItem'{..}
+          = object
+              (catMaybes
+                 [("columnType" .=) <$> _rdchiColumnType,
+                  ("name" .=) <$> _rdchiName,
+                  ("dataType" .=) <$> _rdchiDataType])
+
+-- | JSON template for a linked account.
+--
+-- /See:/ 'accountRef' smart constructor.
+data AccountRef =
+  AccountRef'
+    { _arKind :: !Text
+    , _arHref :: !(Maybe Text)
+    , _arName :: !(Maybe Text)
+    , _arId   :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AccountRef' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'arKind'
+--
+-- * 'arHref'
+--
+-- * 'arName'
+--
+-- * 'arId'
+accountRef
+    :: AccountRef
+accountRef =
+  AccountRef'
+    { _arKind = "analytics#accountRef"
+    , _arHref = Nothing
+    , _arName = Nothing
+    , _arId = Nothing
+    }
+
+
+-- | Analytics account reference.
+arKind :: Lens' AccountRef Text
+arKind = lens _arKind (\ s a -> s{_arKind = a})
+
+-- | Link for this account.
+arHref :: Lens' AccountRef (Maybe Text)
+arHref = lens _arHref (\ s a -> s{_arHref = a})
+
+-- | Account name.
+arName :: Lens' AccountRef (Maybe Text)
+arName = lens _arName (\ s a -> s{_arName = a})
+
+-- | Account ID.
+arId :: Lens' AccountRef (Maybe Text)
+arId = lens _arId (\ s a -> s{_arId = a})
+
+instance FromJSON AccountRef where
+        parseJSON
+          = withObject "AccountRef"
+              (\ o ->
+                 AccountRef' <$>
+                   (o .:? "kind" .!= "analytics#accountRef") <*>
+                     (o .:? "href")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON AccountRef where
+        toJSON AccountRef'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _arKind), ("href" .=) <$> _arHref,
+                  ("name" .=) <$> _arName, ("id" .=) <$> _arId])
+
+-- | An entity Google Ads link collection provides a list of GA-Google Ads
+-- links Each resource in this collection corresponds to a single link.
+--
+-- /See:/ 'entityAdWordsLinks' smart constructor.
+data EntityAdWordsLinks =
+  EntityAdWordsLinks'
+    { _eawlNextLink     :: !(Maybe Text)
+    , _eawlItemsPerPage :: !(Maybe (Textual Int32))
+    , _eawlKind         :: !Text
+    , _eawlItems        :: !(Maybe [EntityAdWordsLink])
+    , _eawlTotalResults :: !(Maybe (Textual Int32))
+    , _eawlStartIndex   :: !(Maybe (Textual Int32))
+    , _eawlPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EntityAdWordsLinks' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eawlNextLink'
+--
+-- * 'eawlItemsPerPage'
+--
+-- * 'eawlKind'
+--
+-- * 'eawlItems'
+--
+-- * 'eawlTotalResults'
+--
+-- * 'eawlStartIndex'
+--
+-- * 'eawlPreviousLink'
+entityAdWordsLinks
+    :: EntityAdWordsLinks
+entityAdWordsLinks =
+  EntityAdWordsLinks'
+    { _eawlNextLink = Nothing
+    , _eawlItemsPerPage = Nothing
+    , _eawlKind = "analytics#entityAdWordsLinks"
+    , _eawlItems = Nothing
+    , _eawlTotalResults = Nothing
+    , _eawlStartIndex = Nothing
+    , _eawlPreviousLink = Nothing
+    }
+
+
+-- | Next link for this Google Ads link collection.
+eawlNextLink :: Lens' EntityAdWordsLinks (Maybe Text)
+eawlNextLink
+  = lens _eawlNextLink (\ s a -> s{_eawlNextLink = a})
+
+-- | The maximum number of entries the response can contain, regardless of
+-- the actual number of entries returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+eawlItemsPerPage :: Lens' EntityAdWordsLinks (Maybe Int32)
+eawlItemsPerPage
+  = lens _eawlItemsPerPage
+      (\ s a -> s{_eawlItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+eawlKind :: Lens' EntityAdWordsLinks Text
+eawlKind = lens _eawlKind (\ s a -> s{_eawlKind = a})
+
+-- | A list of entity Google Ads links.
+eawlItems :: Lens' EntityAdWordsLinks [EntityAdWordsLink]
+eawlItems
+  = lens _eawlItems (\ s a -> s{_eawlItems = a}) .
+      _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+eawlTotalResults :: Lens' EntityAdWordsLinks (Maybe Int32)
+eawlTotalResults
+  = lens _eawlTotalResults
+      (\ s a -> s{_eawlTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the entries, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+eawlStartIndex :: Lens' EntityAdWordsLinks (Maybe Int32)
+eawlStartIndex
+  = lens _eawlStartIndex
+      (\ s a -> s{_eawlStartIndex = a})
+      . mapping _Coerce
+
+-- | Previous link for this Google Ads link collection.
+eawlPreviousLink :: Lens' EntityAdWordsLinks (Maybe Text)
+eawlPreviousLink
+  = lens _eawlPreviousLink
+      (\ s a -> s{_eawlPreviousLink = a})
+
+instance FromJSON EntityAdWordsLinks where
+        parseJSON
+          = withObject "EntityAdWordsLinks"
+              (\ o ->
+                 EntityAdWordsLinks' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#entityAdWordsLinks")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON EntityAdWordsLinks where
+        toJSON EntityAdWordsLinks'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _eawlNextLink,
+                  ("itemsPerPage" .=) <$> _eawlItemsPerPage,
+                  Just ("kind" .= _eawlKind),
+                  ("items" .=) <$> _eawlItems,
+                  ("totalResults" .=) <$> _eawlTotalResults,
+                  ("startIndex" .=) <$> _eawlStartIndex,
+                  ("previousLink" .=) <$> _eawlPreviousLink])
+
+-- | A view (profile) collection lists Analytics views (profiles) to which
+-- the user has access. Each resource in the collection corresponds to a
+-- single Analytics view (profile).
+--
+-- /See:/ 'proFiles' smart constructor.
+data ProFiles =
+  ProFiles'
+    { _pfNextLink     :: !(Maybe Text)
+    , _pfItemsPerPage :: !(Maybe (Textual Int32))
+    , _pfKind         :: !Text
+    , _pfUsername     :: !(Maybe Text)
+    , _pfItems        :: !(Maybe [ProFile])
+    , _pfTotalResults :: !(Maybe (Textual Int32))
+    , _pfStartIndex   :: !(Maybe (Textual Int32))
+    , _pfPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ProFiles' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pfNextLink'
+--
+-- * 'pfItemsPerPage'
+--
+-- * 'pfKind'
+--
+-- * 'pfUsername'
+--
+-- * 'pfItems'
+--
+-- * 'pfTotalResults'
+--
+-- * 'pfStartIndex'
+--
+-- * 'pfPreviousLink'
+proFiles
+    :: ProFiles
+proFiles =
+  ProFiles'
+    { _pfNextLink = Nothing
+    , _pfItemsPerPage = Nothing
+    , _pfKind = "analytics#profiles"
+    , _pfUsername = Nothing
+    , _pfItems = Nothing
+    , _pfTotalResults = Nothing
+    , _pfStartIndex = Nothing
+    , _pfPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this view (profile) collection.
+pfNextLink :: Lens' ProFiles (Maybe Text)
+pfNextLink
+  = lens _pfNextLink (\ s a -> s{_pfNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+pfItemsPerPage :: Lens' ProFiles (Maybe Int32)
+pfItemsPerPage
+  = lens _pfItemsPerPage
+      (\ s a -> s{_pfItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+pfKind :: Lens' ProFiles Text
+pfKind = lens _pfKind (\ s a -> s{_pfKind = a})
+
+-- | Email ID of the authenticated user
+pfUsername :: Lens' ProFiles (Maybe Text)
+pfUsername
+  = lens _pfUsername (\ s a -> s{_pfUsername = a})
+
+-- | A list of views (profiles).
+pfItems :: Lens' ProFiles [ProFile]
+pfItems
+  = lens _pfItems (\ s a -> s{_pfItems = a}) . _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+pfTotalResults :: Lens' ProFiles (Maybe Int32)
+pfTotalResults
+  = lens _pfTotalResults
+      (\ s a -> s{_pfTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+pfStartIndex :: Lens' ProFiles (Maybe Int32)
+pfStartIndex
+  = lens _pfStartIndex (\ s a -> s{_pfStartIndex = a})
+      . mapping _Coerce
+
+-- | Link to previous page for this view (profile) collection.
+pfPreviousLink :: Lens' ProFiles (Maybe Text)
+pfPreviousLink
+  = lens _pfPreviousLink
+      (\ s a -> s{_pfPreviousLink = a})
+
+instance FromJSON ProFiles where
+        parseJSON
+          = withObject "ProFiles"
+              (\ o ->
+                 ProFiles' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#profiles")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON ProFiles where
+        toJSON ProFiles'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _pfNextLink,
+                  ("itemsPerPage" .=) <$> _pfItemsPerPage,
+                  Just ("kind" .= _pfKind),
+                  ("username" .=) <$> _pfUsername,
+                  ("items" .=) <$> _pfItems,
+                  ("totalResults" .=) <$> _pfTotalResults,
+                  ("startIndex" .=) <$> _pfStartIndex,
+                  ("previousLink" .=) <$> _pfPreviousLink])
+
+-- | Request template for the delete upload data request.
+--
+-- /See:/ 'analyticsDataimportDeleteUploadDataRequest' smart constructor.
+newtype AnalyticsDataimportDeleteUploadDataRequest =
+  AnalyticsDataimportDeleteUploadDataRequest'
+    { _addudrCustomDataImportUids :: Maybe [Text]
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AnalyticsDataimportDeleteUploadDataRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'addudrCustomDataImportUids'
+analyticsDataimportDeleteUploadDataRequest
+    :: AnalyticsDataimportDeleteUploadDataRequest
+analyticsDataimportDeleteUploadDataRequest =
+  AnalyticsDataimportDeleteUploadDataRequest'
+    {_addudrCustomDataImportUids = Nothing}
+
+
+-- | A list of upload UIDs.
+addudrCustomDataImportUids :: Lens' AnalyticsDataimportDeleteUploadDataRequest [Text]
+addudrCustomDataImportUids
+  = lens _addudrCustomDataImportUids
+      (\ s a -> s{_addudrCustomDataImportUids = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON
+           AnalyticsDataimportDeleteUploadDataRequest
+         where
+        parseJSON
+          = withObject
+              "AnalyticsDataimportDeleteUploadDataRequest"
+              (\ o ->
+                 AnalyticsDataimportDeleteUploadDataRequest' <$>
+                   (o .:? "customDataImportUids" .!= mempty))
+
+instance ToJSON
+           AnalyticsDataimportDeleteUploadDataRequest
+         where
+        toJSON
+          AnalyticsDataimportDeleteUploadDataRequest'{..}
+          = object
+              (catMaybes
+                 [("customDataImportUids" .=) <$>
+                    _addudrCustomDataImportUids])
+
+-- | JSON template for Analytics Entity Google Ads Link.
+--
+-- /See:/ 'entityAdWordsLink' smart constructor.
+data EntityAdWordsLink =
+  EntityAdWordsLink'
+    { _entAdWordsAccounts :: !(Maybe [AdWordsAccount])
+    , _entProFileIds      :: !(Maybe [Text])
+    , _entKind            :: !Text
+    , _entSelfLink        :: !(Maybe Text)
+    , _entName            :: !(Maybe Text)
+    , _entId              :: !(Maybe Text)
+    , _entEntity          :: !(Maybe EntityAdWordsLinkEntity)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EntityAdWordsLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'entAdWordsAccounts'
+--
+-- * 'entProFileIds'
+--
+-- * 'entKind'
+--
+-- * 'entSelfLink'
+--
+-- * 'entName'
+--
+-- * 'entId'
+--
+-- * 'entEntity'
+entityAdWordsLink
+    :: EntityAdWordsLink
+entityAdWordsLink =
+  EntityAdWordsLink'
+    { _entAdWordsAccounts = Nothing
+    , _entProFileIds = Nothing
+    , _entKind = "analytics#entityAdWordsLink"
+    , _entSelfLink = Nothing
+    , _entName = Nothing
+    , _entId = Nothing
+    , _entEntity = Nothing
+    }
+
+
+-- | A list of Google Ads client accounts. These cannot be MCC accounts. This
+-- field is required when creating a Google Ads link. It cannot be empty.
+entAdWordsAccounts :: Lens' EntityAdWordsLink [AdWordsAccount]
+entAdWordsAccounts
+  = lens _entAdWordsAccounts
+      (\ s a -> s{_entAdWordsAccounts = a})
+      . _Default
+      . _Coerce
+
+-- | IDs of linked Views (Profiles) represented as strings.
+entProFileIds :: Lens' EntityAdWordsLink [Text]
+entProFileIds
+  = lens _entProFileIds
+      (\ s a -> s{_entProFileIds = a})
+      . _Default
+      . _Coerce
+
+-- | Resource type for entity Google Ads link.
+entKind :: Lens' EntityAdWordsLink Text
+entKind = lens _entKind (\ s a -> s{_entKind = a})
+
+-- | URL link for this Google Analytics - Google Ads link.
+entSelfLink :: Lens' EntityAdWordsLink (Maybe Text)
+entSelfLink
+  = lens _entSelfLink (\ s a -> s{_entSelfLink = a})
+
+-- | Name of the link. This field is required when creating a Google Ads
+-- link.
+entName :: Lens' EntityAdWordsLink (Maybe Text)
+entName = lens _entName (\ s a -> s{_entName = a})
+
+-- | Entity Google Ads link ID
+entId :: Lens' EntityAdWordsLink (Maybe Text)
+entId = lens _entId (\ s a -> s{_entId = a})
+
+-- | Web property being linked.
+entEntity :: Lens' EntityAdWordsLink (Maybe EntityAdWordsLinkEntity)
+entEntity
+  = lens _entEntity (\ s a -> s{_entEntity = a})
+
+instance FromJSON EntityAdWordsLink where
+        parseJSON
+          = withObject "EntityAdWordsLink"
+              (\ o ->
+                 EntityAdWordsLink' <$>
+                   (o .:? "adWordsAccounts" .!= mempty) <*>
+                     (o .:? "profileIds" .!= mempty)
+                     <*> (o .:? "kind" .!= "analytics#entityAdWordsLink")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "entity"))
+
+instance ToJSON EntityAdWordsLink where
+        toJSON EntityAdWordsLink'{..}
+          = object
+              (catMaybes
+                 [("adWordsAccounts" .=) <$> _entAdWordsAccounts,
+                  ("profileIds" .=) <$> _entProFileIds,
+                  Just ("kind" .= _entKind),
+                  ("selfLink" .=) <$> _entSelfLink,
+                  ("name" .=) <$> _entName, ("id" .=) <$> _entId,
+                  ("entity" .=) <$> _entEntity])
+
+-- | Details for the filter of the type SEARCH_AND_REPLACE.
+--
+-- /See:/ 'filterSearchAndReplaceDetails' smart constructor.
+data FilterSearchAndReplaceDetails =
+  FilterSearchAndReplaceDetails'
+    { _fsardFieldIndex    :: !(Maybe (Textual Int32))
+    , _fsardField         :: !(Maybe Text)
+    , _fsardSearchString  :: !(Maybe Text)
+    , _fsardReplaceString :: !(Maybe Text)
+    , _fsardCaseSensitive :: !(Maybe Bool)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'FilterSearchAndReplaceDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fsardFieldIndex'
+--
+-- * 'fsardField'
+--
+-- * 'fsardSearchString'
+--
+-- * 'fsardReplaceString'
+--
+-- * 'fsardCaseSensitive'
+filterSearchAndReplaceDetails
+    :: FilterSearchAndReplaceDetails
+filterSearchAndReplaceDetails =
+  FilterSearchAndReplaceDetails'
+    { _fsardFieldIndex = Nothing
+    , _fsardField = Nothing
+    , _fsardSearchString = Nothing
+    , _fsardReplaceString = Nothing
+    , _fsardCaseSensitive = Nothing
+    }
+
+
+-- | The Index of the custom dimension. Required if field is a
+-- CUSTOM_DIMENSION.
+fsardFieldIndex :: Lens' FilterSearchAndReplaceDetails (Maybe Int32)
+fsardFieldIndex
+  = lens _fsardFieldIndex
+      (\ s a -> s{_fsardFieldIndex = a})
+      . mapping _Coerce
+
+-- | Field to use in the filter.
+fsardField :: Lens' FilterSearchAndReplaceDetails (Maybe Text)
+fsardField
+  = lens _fsardField (\ s a -> s{_fsardField = a})
+
+-- | Term to search.
+fsardSearchString :: Lens' FilterSearchAndReplaceDetails (Maybe Text)
+fsardSearchString
+  = lens _fsardSearchString
+      (\ s a -> s{_fsardSearchString = a})
+
+-- | Term to replace the search term with.
+fsardReplaceString :: Lens' FilterSearchAndReplaceDetails (Maybe Text)
+fsardReplaceString
+  = lens _fsardReplaceString
+      (\ s a -> s{_fsardReplaceString = a})
+
+-- | Determines if the filter is case sensitive.
+fsardCaseSensitive :: Lens' FilterSearchAndReplaceDetails (Maybe Bool)
+fsardCaseSensitive
+  = lens _fsardCaseSensitive
+      (\ s a -> s{_fsardCaseSensitive = a})
+
+instance FromJSON FilterSearchAndReplaceDetails where
+        parseJSON
+          = withObject "FilterSearchAndReplaceDetails"
+              (\ o ->
+                 FilterSearchAndReplaceDetails' <$>
+                   (o .:? "fieldIndex") <*> (o .:? "field") <*>
+                     (o .:? "searchString")
+                     <*> (o .:? "replaceString")
+                     <*> (o .:? "caseSensitive"))
+
+instance ToJSON FilterSearchAndReplaceDetails where
+        toJSON FilterSearchAndReplaceDetails'{..}
+          = object
+              (catMaybes
+                 [("fieldIndex" .=) <$> _fsardFieldIndex,
+                  ("field" .=) <$> _fsardField,
+                  ("searchString" .=) <$> _fsardSearchString,
+                  ("replaceString" .=) <$> _fsardReplaceString,
+                  ("caseSensitive" .=) <$> _fsardCaseSensitive])
+
+-- | Permissions the user has for this view (profile).
+--
+-- /See:/ 'proFilePermissions' smart constructor.
+newtype ProFilePermissions =
+  ProFilePermissions'
+    { _pfpEffective :: Maybe [Text]
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ProFilePermissions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pfpEffective'
+proFilePermissions
+    :: ProFilePermissions
+proFilePermissions = ProFilePermissions' {_pfpEffective = Nothing}
+
+
+-- | All the permissions that the user has for this view (profile). These
+-- include any implied permissions (e.g., EDIT implies VIEW) or inherited
+-- permissions from the parent web property.
+pfpEffective :: Lens' ProFilePermissions [Text]
+pfpEffective
+  = lens _pfpEffective (\ s a -> s{_pfpEffective = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ProFilePermissions where
+        parseJSON
+          = withObject "ProFilePermissions"
+              (\ o ->
+                 ProFilePermissions' <$>
+                   (o .:? "effective" .!= mempty))
+
+instance ToJSON ProFilePermissions where
+        toJSON ProFilePermissions'{..}
+          = object
+              (catMaybes [("effective" .=) <$> _pfpEffective])
+
+-- | JSON template for an Analytics view (profile).
+--
+-- /See:/ 'proFile' smart constructor.
+data ProFile =
+  ProFile'
+    { _pParentLink                        :: !(Maybe ProFileParentLink)
+    , _pECommerceTracking                 :: !(Maybe Bool)
+    , _pSiteSearchCategoryParameters      :: !(Maybe Text)
+    , _pWebPropertyId                     :: !(Maybe Text)
+    , _pChildLink                         :: !(Maybe ProFileChildLink)
+    , _pSiteSearchQueryParameters         :: !(Maybe Text)
+    , _pKind                              :: !Text
+    , _pDefaultPage                       :: !(Maybe Text)
+    , _pCreated                           :: !(Maybe DateTime')
+    , _pSelfLink                          :: !(Maybe Text)
+    , _pAccountId                         :: !(Maybe Text)
+    , _pBotFilteringEnabled               :: !(Maybe Bool)
+    , _pName                              :: !(Maybe Text)
+    , _pCurrency                          :: !(Maybe Text)
+    , _pStarred                           :: !(Maybe Bool)
+    , _pInternalWebPropertyId             :: !(Maybe Text)
+    , _pId                                :: !(Maybe Text)
+    , _pUpdated                           :: !(Maybe DateTime')
+    , _pPermissions                       :: !(Maybe ProFilePermissions)
+    , _pWebsiteURL                        :: !(Maybe Text)
+    , _pType                              :: !(Maybe Text)
+    , _pStripSiteSearchCategoryParameters :: !(Maybe Bool)
+    , _pTimezone                          :: !(Maybe Text)
+    , _pExcludeQueryParameters            :: !(Maybe Text)
+    , _pEnhancedECommerceTracking         :: !(Maybe Bool)
+    , _pStripSiteSearchQueryParameters    :: !(Maybe Bool)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ProFile' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pParentLink'
+--
+-- * 'pECommerceTracking'
+--
+-- * 'pSiteSearchCategoryParameters'
+--
+-- * 'pWebPropertyId'
+--
+-- * 'pChildLink'
+--
+-- * 'pSiteSearchQueryParameters'
+--
+-- * 'pKind'
+--
+-- * 'pDefaultPage'
+--
+-- * 'pCreated'
+--
+-- * 'pSelfLink'
+--
+-- * 'pAccountId'
+--
+-- * 'pBotFilteringEnabled'
+--
+-- * 'pName'
+--
+-- * 'pCurrency'
+--
+-- * 'pStarred'
+--
+-- * 'pInternalWebPropertyId'
+--
+-- * 'pId'
+--
+-- * 'pUpdated'
+--
+-- * 'pPermissions'
+--
+-- * 'pWebsiteURL'
+--
+-- * 'pType'
+--
+-- * 'pStripSiteSearchCategoryParameters'
+--
+-- * 'pTimezone'
+--
+-- * 'pExcludeQueryParameters'
+--
+-- * 'pEnhancedECommerceTracking'
+--
+-- * 'pStripSiteSearchQueryParameters'
+proFile
+    :: ProFile
+proFile =
+  ProFile'
+    { _pParentLink = Nothing
+    , _pECommerceTracking = Nothing
+    , _pSiteSearchCategoryParameters = Nothing
+    , _pWebPropertyId = Nothing
+    , _pChildLink = Nothing
+    , _pSiteSearchQueryParameters = Nothing
+    , _pKind = "analytics#profile"
+    , _pDefaultPage = Nothing
+    , _pCreated = Nothing
+    , _pSelfLink = Nothing
+    , _pAccountId = Nothing
+    , _pBotFilteringEnabled = Nothing
+    , _pName = Nothing
+    , _pCurrency = Nothing
+    , _pStarred = Nothing
+    , _pInternalWebPropertyId = Nothing
+    , _pId = Nothing
+    , _pUpdated = Nothing
+    , _pPermissions = Nothing
+    , _pWebsiteURL = Nothing
+    , _pType = Nothing
+    , _pStripSiteSearchCategoryParameters = Nothing
+    , _pTimezone = Nothing
+    , _pExcludeQueryParameters = Nothing
+    , _pEnhancedECommerceTracking = Nothing
+    , _pStripSiteSearchQueryParameters = Nothing
+    }
+
+
+-- | Parent link for this view (profile). Points to the web property to which
+-- this view (profile) belongs.
+pParentLink :: Lens' ProFile (Maybe ProFileParentLink)
+pParentLink
+  = lens _pParentLink (\ s a -> s{_pParentLink = a})
+
+-- | Indicates whether ecommerce tracking is enabled for this view (profile).
+pECommerceTracking :: Lens' ProFile (Maybe Bool)
+pECommerceTracking
+  = lens _pECommerceTracking
+      (\ s a -> s{_pECommerceTracking = a})
+
+-- | Site search category parameters for this view (profile).
+pSiteSearchCategoryParameters :: Lens' ProFile (Maybe Text)
+pSiteSearchCategoryParameters
+  = lens _pSiteSearchCategoryParameters
+      (\ s a -> s{_pSiteSearchCategoryParameters = a})
+
+-- | Web property ID of the form UA-XXXXX-YY to which this view (profile)
+-- belongs.
+pWebPropertyId :: Lens' ProFile (Maybe Text)
+pWebPropertyId
+  = lens _pWebPropertyId
+      (\ s a -> s{_pWebPropertyId = a})
+
+-- | Child link for this view (profile). Points to the list of goals for this
+-- view (profile).
+pChildLink :: Lens' ProFile (Maybe ProFileChildLink)
+pChildLink
+  = lens _pChildLink (\ s a -> s{_pChildLink = a})
+
+-- | The site search query parameters for this view (profile).
+pSiteSearchQueryParameters :: Lens' ProFile (Maybe Text)
+pSiteSearchQueryParameters
+  = lens _pSiteSearchQueryParameters
+      (\ s a -> s{_pSiteSearchQueryParameters = a})
+
+-- | Resource type for Analytics view (profile).
+pKind :: Lens' ProFile Text
+pKind = lens _pKind (\ s a -> s{_pKind = a})
+
+-- | Default page for this view (profile).
+pDefaultPage :: Lens' ProFile (Maybe Text)
+pDefaultPage
+  = lens _pDefaultPage (\ s a -> s{_pDefaultPage = a})
+
+-- | Time this view (profile) was created.
+pCreated :: Lens' ProFile (Maybe UTCTime)
+pCreated
+  = lens _pCreated (\ s a -> s{_pCreated = a}) .
+      mapping _DateTime
+
+-- | Link for this view (profile).
+pSelfLink :: Lens' ProFile (Maybe Text)
+pSelfLink
+  = lens _pSelfLink (\ s a -> s{_pSelfLink = a})
+
+-- | Account ID to which this view (profile) belongs.
+pAccountId :: Lens' ProFile (Maybe Text)
+pAccountId
+  = lens _pAccountId (\ s a -> s{_pAccountId = a})
+
+-- | Indicates whether bot filtering is enabled for this view (profile).
+pBotFilteringEnabled :: Lens' ProFile (Maybe Bool)
+pBotFilteringEnabled
+  = lens _pBotFilteringEnabled
+      (\ s a -> s{_pBotFilteringEnabled = a})
+
+-- | Name of this view (profile).
+pName :: Lens' ProFile (Maybe Text)
+pName = lens _pName (\ s a -> s{_pName = a})
+
+-- | The currency type associated with this view (profile), defaults to USD.
+-- The supported values are: USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK,
+-- RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR,
+-- CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP,
+-- HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
+pCurrency :: Lens' ProFile (Maybe Text)
+pCurrency
+  = lens _pCurrency (\ s a -> s{_pCurrency = a})
+
+-- | Indicates whether this view (profile) is starred or not.
+pStarred :: Lens' ProFile (Maybe Bool)
+pStarred = lens _pStarred (\ s a -> s{_pStarred = a})
+
+-- | Internal ID for the web property to which this view (profile) belongs.
+pInternalWebPropertyId :: Lens' ProFile (Maybe Text)
+pInternalWebPropertyId
+  = lens _pInternalWebPropertyId
+      (\ s a -> s{_pInternalWebPropertyId = a})
+
+-- | View (Profile) ID.
+pId :: Lens' ProFile (Maybe Text)
+pId = lens _pId (\ s a -> s{_pId = a})
+
+-- | Time this view (profile) was last modified.
+pUpdated :: Lens' ProFile (Maybe UTCTime)
+pUpdated
+  = lens _pUpdated (\ s a -> s{_pUpdated = a}) .
+      mapping _DateTime
+
+-- | Permissions the user has for this view (profile).
+pPermissions :: Lens' ProFile (Maybe ProFilePermissions)
+pPermissions
+  = lens _pPermissions (\ s a -> s{_pPermissions = a})
+
+-- | Website URL for this view (profile).
+pWebsiteURL :: Lens' ProFile (Maybe Text)
+pWebsiteURL
+  = lens _pWebsiteURL (\ s a -> s{_pWebsiteURL = a})
+
+-- | View (Profile) type. Supported types: WEB or APP.
+pType :: Lens' ProFile (Maybe Text)
+pType = lens _pType (\ s a -> s{_pType = a})
+
+-- | Whether or not Analytics will strip search category parameters from the
+-- URLs in your reports.
+pStripSiteSearchCategoryParameters :: Lens' ProFile (Maybe Bool)
+pStripSiteSearchCategoryParameters
+  = lens _pStripSiteSearchCategoryParameters
+      (\ s a -> s{_pStripSiteSearchCategoryParameters = a})
+
+-- | Time zone for which this view (profile) has been configured. Time zones
+-- are identified by strings from the TZ database.
+pTimezone :: Lens' ProFile (Maybe Text)
+pTimezone
+  = lens _pTimezone (\ s a -> s{_pTimezone = a})
+
+-- | The query parameters that are excluded from this view (profile).
+pExcludeQueryParameters :: Lens' ProFile (Maybe Text)
+pExcludeQueryParameters
+  = lens _pExcludeQueryParameters
+      (\ s a -> s{_pExcludeQueryParameters = a})
+
+-- | Indicates whether enhanced ecommerce tracking is enabled for this view
+-- (profile). This property can only be enabled if ecommerce tracking is
+-- enabled.
+pEnhancedECommerceTracking :: Lens' ProFile (Maybe Bool)
+pEnhancedECommerceTracking
+  = lens _pEnhancedECommerceTracking
+      (\ s a -> s{_pEnhancedECommerceTracking = a})
+
+-- | Whether or not Analytics will strip search query parameters from the
+-- URLs in your reports.
+pStripSiteSearchQueryParameters :: Lens' ProFile (Maybe Bool)
+pStripSiteSearchQueryParameters
+  = lens _pStripSiteSearchQueryParameters
+      (\ s a -> s{_pStripSiteSearchQueryParameters = a})
+
+instance FromJSON ProFile where
+        parseJSON
+          = withObject "ProFile"
+              (\ o ->
+                 ProFile' <$>
+                   (o .:? "parentLink") <*> (o .:? "eCommerceTracking")
+                     <*> (o .:? "siteSearchCategoryParameters")
+                     <*> (o .:? "webPropertyId")
+                     <*> (o .:? "childLink")
+                     <*> (o .:? "siteSearchQueryParameters")
+                     <*> (o .:? "kind" .!= "analytics#profile")
+                     <*> (o .:? "defaultPage")
+                     <*> (o .:? "created")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "botFilteringEnabled")
+                     <*> (o .:? "name")
+                     <*> (o .:? "currency")
+                     <*> (o .:? "starred")
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "permissions")
+                     <*> (o .:? "websiteUrl")
+                     <*> (o .:? "type")
+                     <*> (o .:? "stripSiteSearchCategoryParameters")
+                     <*> (o .:? "timezone")
+                     <*> (o .:? "excludeQueryParameters")
+                     <*> (o .:? "enhancedECommerceTracking")
+                     <*> (o .:? "stripSiteSearchQueryParameters"))
+
+instance ToJSON ProFile where
+        toJSON ProFile'{..}
+          = object
+              (catMaybes
+                 [("parentLink" .=) <$> _pParentLink,
+                  ("eCommerceTracking" .=) <$> _pECommerceTracking,
+                  ("siteSearchCategoryParameters" .=) <$>
+                    _pSiteSearchCategoryParameters,
+                  ("webPropertyId" .=) <$> _pWebPropertyId,
+                  ("childLink" .=) <$> _pChildLink,
+                  ("siteSearchQueryParameters" .=) <$>
+                    _pSiteSearchQueryParameters,
+                  Just ("kind" .= _pKind),
+                  ("defaultPage" .=) <$> _pDefaultPage,
+                  ("created" .=) <$> _pCreated,
+                  ("selfLink" .=) <$> _pSelfLink,
+                  ("accountId" .=) <$> _pAccountId,
+                  ("botFilteringEnabled" .=) <$> _pBotFilteringEnabled,
+                  ("name" .=) <$> _pName,
+                  ("currency" .=) <$> _pCurrency,
+                  ("starred" .=) <$> _pStarred,
+                  ("internalWebPropertyId" .=) <$>
+                    _pInternalWebPropertyId,
+                  ("id" .=) <$> _pId, ("updated" .=) <$> _pUpdated,
+                  ("permissions" .=) <$> _pPermissions,
+                  ("websiteUrl" .=) <$> _pWebsiteURL,
+                  ("type" .=) <$> _pType,
+                  ("stripSiteSearchCategoryParameters" .=) <$>
+                    _pStripSiteSearchCategoryParameters,
+                  ("timezone" .=) <$> _pTimezone,
+                  ("excludeQueryParameters" .=) <$>
+                    _pExcludeQueryParameters,
+                  ("enhancedECommerceTracking" .=) <$>
+                    _pEnhancedECommerceTracking,
+                  ("stripSiteSearchQueryParameters" .=) <$>
+                    _pStripSiteSearchQueryParameters])
+
+-- | An AccountSummary collection lists a summary of accounts, properties and
+-- views (profiles) to which the user has access. Each resource in the
+-- collection corresponds to a single AccountSummary.
+--
+-- /See:/ 'accountSummaries' smart constructor.
+data AccountSummaries =
+  AccountSummaries'
+    { _asNextLink     :: !(Maybe Text)
+    , _asItemsPerPage :: !(Maybe (Textual Int32))
+    , _asKind         :: !Text
+    , _asUsername     :: !(Maybe Text)
+    , _asItems        :: !(Maybe [AccountSummary])
+    , _asTotalResults :: !(Maybe (Textual Int32))
+    , _asStartIndex   :: !(Maybe (Textual Int32))
+    , _asPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AccountSummaries' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asNextLink'
+--
+-- * 'asItemsPerPage'
+--
+-- * 'asKind'
+--
+-- * 'asUsername'
+--
+-- * 'asItems'
+--
+-- * 'asTotalResults'
+--
+-- * 'asStartIndex'
+--
+-- * 'asPreviousLink'
+accountSummaries
+    :: AccountSummaries
+accountSummaries =
+  AccountSummaries'
+    { _asNextLink = Nothing
+    , _asItemsPerPage = Nothing
+    , _asKind = "analytics#accountSummaries"
+    , _asUsername = Nothing
+    , _asItems = Nothing
+    , _asTotalResults = Nothing
+    , _asStartIndex = Nothing
+    , _asPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this AccountSummary collection.
+asNextLink :: Lens' AccountSummaries (Maybe Text)
+asNextLink
+  = lens _asNextLink (\ s a -> s{_asNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+asItemsPerPage :: Lens' AccountSummaries (Maybe Int32)
+asItemsPerPage
+  = lens _asItemsPerPage
+      (\ s a -> s{_asItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+asKind :: Lens' AccountSummaries Text
+asKind = lens _asKind (\ s a -> s{_asKind = a})
+
+-- | Email ID of the authenticated user
+asUsername :: Lens' AccountSummaries (Maybe Text)
+asUsername
+  = lens _asUsername (\ s a -> s{_asUsername = a})
+
+-- | A list of AccountSummaries.
+asItems :: Lens' AccountSummaries [AccountSummary]
+asItems
+  = lens _asItems (\ s a -> s{_asItems = a}) . _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+asTotalResults :: Lens' AccountSummaries (Maybe Int32)
+asTotalResults
+  = lens _asTotalResults
+      (\ s a -> s{_asTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+asStartIndex :: Lens' AccountSummaries (Maybe Int32)
+asStartIndex
+  = lens _asStartIndex (\ s a -> s{_asStartIndex = a})
+      . mapping _Coerce
+
+-- | Link to previous page for this AccountSummary collection.
+asPreviousLink :: Lens' AccountSummaries (Maybe Text)
+asPreviousLink
+  = lens _asPreviousLink
+      (\ s a -> s{_asPreviousLink = a})
+
+instance FromJSON AccountSummaries where
+        parseJSON
+          = withObject "AccountSummaries"
+              (\ o ->
+                 AccountSummaries' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#accountSummaries")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON AccountSummaries where
+        toJSON AccountSummaries'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _asNextLink,
+                  ("itemsPerPage" .=) <$> _asItemsPerPage,
+                  Just ("kind" .= _asKind),
+                  ("username" .=) <$> _asUsername,
+                  ("items" .=) <$> _asItems,
+                  ("totalResults" .=) <$> _asTotalResults,
+                  ("startIndex" .=) <$> _asStartIndex,
+                  ("previousLink" .=) <$> _asPreviousLink])
+
+-- | Details for the goal of the type EVENT.
+--
+-- /See:/ 'goalEventDetails' smart constructor.
+data GoalEventDetails =
+  GoalEventDetails'
+    { _gedUseEventValue   :: !(Maybe Bool)
+    , _gedEventConditions :: !(Maybe [GoalEventDetailsEventConditionsItem])
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GoalEventDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gedUseEventValue'
+--
+-- * 'gedEventConditions'
+goalEventDetails
+    :: GoalEventDetails
+goalEventDetails =
+  GoalEventDetails' {_gedUseEventValue = Nothing, _gedEventConditions = Nothing}
+
+
+-- | Determines if the event value should be used as the value for this goal.
+gedUseEventValue :: Lens' GoalEventDetails (Maybe Bool)
+gedUseEventValue
+  = lens _gedUseEventValue
+      (\ s a -> s{_gedUseEventValue = a})
+
+-- | List of event conditions.
+gedEventConditions :: Lens' GoalEventDetails [GoalEventDetailsEventConditionsItem]
+gedEventConditions
+  = lens _gedEventConditions
+      (\ s a -> s{_gedEventConditions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON GoalEventDetails where
+        parseJSON
+          = withObject "GoalEventDetails"
+              (\ o ->
+                 GoalEventDetails' <$>
+                   (o .:? "useEventValue") <*>
+                     (o .:? "eventConditions" .!= mempty))
+
+instance ToJSON GoalEventDetails where
+        toJSON GoalEventDetails'{..}
+          = object
+              (catMaybes
+                 [("useEventValue" .=) <$> _gedUseEventValue,
+                  ("eventConditions" .=) <$> _gedEventConditions])
+
+-- | JSON template for an Analytics WebPropertySummary. WebPropertySummary
+-- returns basic information (i.e., summary) for a web property.
+--
+-- /See:/ 'webPropertySummary' smart constructor.
+data WebPropertySummary =
+  WebPropertySummary'
+    { _wpsKind                  :: !Text
+    , _wpsProFiles              :: !(Maybe [ProFileSummary])
+    , _wpsName                  :: !(Maybe Text)
+    , _wpsStarred               :: !(Maybe Bool)
+    , _wpsInternalWebPropertyId :: !(Maybe Text)
+    , _wpsId                    :: !(Maybe Text)
+    , _wpsWebsiteURL            :: !(Maybe Text)
+    , _wpsLevel                 :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'WebPropertySummary' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wpsKind'
+--
+-- * 'wpsProFiles'
+--
+-- * 'wpsName'
+--
+-- * 'wpsStarred'
+--
+-- * 'wpsInternalWebPropertyId'
+--
+-- * 'wpsId'
+--
+-- * 'wpsWebsiteURL'
+--
+-- * 'wpsLevel'
+webPropertySummary
+    :: WebPropertySummary
+webPropertySummary =
+  WebPropertySummary'
+    { _wpsKind = "analytics#webPropertySummary"
+    , _wpsProFiles = Nothing
+    , _wpsName = Nothing
+    , _wpsStarred = Nothing
+    , _wpsInternalWebPropertyId = Nothing
+    , _wpsId = Nothing
+    , _wpsWebsiteURL = Nothing
+    , _wpsLevel = Nothing
+    }
+
+
+-- | Resource type for Analytics WebPropertySummary.
+wpsKind :: Lens' WebPropertySummary Text
+wpsKind = lens _wpsKind (\ s a -> s{_wpsKind = a})
+
+-- | List of profiles under this web property.
+wpsProFiles :: Lens' WebPropertySummary [ProFileSummary]
+wpsProFiles
+  = lens _wpsProFiles (\ s a -> s{_wpsProFiles = a}) .
+      _Default
+      . _Coerce
+
+-- | Web property name.
+wpsName :: Lens' WebPropertySummary (Maybe Text)
+wpsName = lens _wpsName (\ s a -> s{_wpsName = a})
+
+-- | Indicates whether this web property is starred or not.
+wpsStarred :: Lens' WebPropertySummary (Maybe Bool)
+wpsStarred
+  = lens _wpsStarred (\ s a -> s{_wpsStarred = a})
+
+-- | Internal ID for this web property.
+wpsInternalWebPropertyId :: Lens' WebPropertySummary (Maybe Text)
+wpsInternalWebPropertyId
+  = lens _wpsInternalWebPropertyId
+      (\ s a -> s{_wpsInternalWebPropertyId = a})
+
+-- | Web property ID of the form UA-XXXXX-YY.
+wpsId :: Lens' WebPropertySummary (Maybe Text)
+wpsId = lens _wpsId (\ s a -> s{_wpsId = a})
+
+-- | Website url for this web property.
+wpsWebsiteURL :: Lens' WebPropertySummary (Maybe Text)
+wpsWebsiteURL
+  = lens _wpsWebsiteURL
+      (\ s a -> s{_wpsWebsiteURL = a})
+
+-- | Level for this web property. Possible values are STANDARD or PREMIUM.
+wpsLevel :: Lens' WebPropertySummary (Maybe Text)
+wpsLevel = lens _wpsLevel (\ s a -> s{_wpsLevel = a})
+
+instance FromJSON WebPropertySummary where
+        parseJSON
+          = withObject "WebPropertySummary"
+              (\ o ->
+                 WebPropertySummary' <$>
+                   (o .:? "kind" .!= "analytics#webPropertySummary") <*>
+                     (o .:? "profiles" .!= mempty)
+                     <*> (o .:? "name")
+                     <*> (o .:? "starred")
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "websiteUrl")
+                     <*> (o .:? "level"))
+
+instance ToJSON WebPropertySummary where
+        toJSON WebPropertySummary'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _wpsKind),
+                  ("profiles" .=) <$> _wpsProFiles,
+                  ("name" .=) <$> _wpsName,
+                  ("starred" .=) <$> _wpsStarred,
+                  ("internalWebPropertyId" .=) <$>
+                    _wpsInternalWebPropertyId,
+                  ("id" .=) <$> _wpsId,
+                  ("websiteUrl" .=) <$> _wpsWebsiteURL,
+                  ("level" .=) <$> _wpsLevel])
+
+-- | A filter collection lists filters created by users in an Analytics
+-- account. Each resource in the collection corresponds to a filter.
+--
+-- /See:/ 'filters' smart constructor.
+data Filters =
+  Filters'
+    { _fNextLink     :: !(Maybe Text)
+    , _fItemsPerPage :: !(Maybe (Textual Int32))
+    , _fKind         :: !Text
+    , _fUsername     :: !(Maybe Text)
+    , _fItems        :: !(Maybe [Filter])
+    , _fTotalResults :: !(Maybe (Textual Int32))
+    , _fStartIndex   :: !(Maybe (Textual Int32))
+    , _fPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Filters' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fNextLink'
+--
+-- * 'fItemsPerPage'
+--
+-- * 'fKind'
+--
+-- * 'fUsername'
+--
+-- * 'fItems'
+--
+-- * 'fTotalResults'
+--
+-- * 'fStartIndex'
+--
+-- * 'fPreviousLink'
+filters
+    :: Filters
+filters =
+  Filters'
+    { _fNextLink = Nothing
+    , _fItemsPerPage = Nothing
+    , _fKind = "analytics#filters"
+    , _fUsername = Nothing
+    , _fItems = Nothing
+    , _fTotalResults = Nothing
+    , _fStartIndex = Nothing
+    , _fPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this filter collection.
+fNextLink :: Lens' Filters (Maybe Text)
+fNextLink
+  = lens _fNextLink (\ s a -> s{_fNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to
+-- 1,000 with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+fItemsPerPage :: Lens' Filters (Maybe Int32)
+fItemsPerPage
+  = lens _fItemsPerPage
+      (\ s a -> s{_fItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+fKind :: Lens' Filters Text
+fKind = lens _fKind (\ s a -> s{_fKind = a})
+
+-- | Email ID of the authenticated user
+fUsername :: Lens' Filters (Maybe Text)
+fUsername
+  = lens _fUsername (\ s a -> s{_fUsername = a})
+
+-- | A list of filters.
+fItems :: Lens' Filters [Filter]
+fItems
+  = lens _fItems (\ s a -> s{_fItems = a}) . _Default .
+      _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+fTotalResults :: Lens' Filters (Maybe Int32)
+fTotalResults
+  = lens _fTotalResults
+      (\ s a -> s{_fTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+fStartIndex :: Lens' Filters (Maybe Int32)
+fStartIndex
+  = lens _fStartIndex (\ s a -> s{_fStartIndex = a}) .
+      mapping _Coerce
+
+-- | Link to previous page for this filter collection.
+fPreviousLink :: Lens' Filters (Maybe Text)
+fPreviousLink
+  = lens _fPreviousLink
+      (\ s a -> s{_fPreviousLink = a})
+
+instance FromJSON Filters where
+        parseJSON
+          = withObject "Filters"
+              (\ o ->
+                 Filters' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#filters")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON Filters where
+        toJSON Filters'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _fNextLink,
+                  ("itemsPerPage" .=) <$> _fItemsPerPage,
+                  Just ("kind" .= _fKind),
+                  ("username" .=) <$> _fUsername,
+                  ("items" .=) <$> _fItems,
+                  ("totalResults" .=) <$> _fTotalResults,
+                  ("startIndex" .=) <$> _fStartIndex,
+                  ("previousLink" .=) <$> _fPreviousLink])
+
+-- | Analytics data for a given view (profile).
+--
+-- /See:/ 'gaData' smart constructor.
+data GaData =
+  GaData'
+    { _gdNextLink            :: !(Maybe Text)
+    , _gdSampleSpace         :: !(Maybe (Textual Int64))
+    , _gdItemsPerPage        :: !(Maybe (Textual Int32))
+    , _gdProFileInfo         :: !(Maybe GaDataProFileInfo)
+    , _gdKind                :: !Text
+    , _gdSampleSize          :: !(Maybe (Textual Int64))
+    , _gdRows                :: !(Maybe [[Text]])
+    , _gdSelfLink            :: !(Maybe Text)
+    , _gdQuery               :: !(Maybe GaDataQuery)
+    , _gdColumnHeaders       :: !(Maybe [GaDataColumnHeadersItem])
+    , _gdId                  :: !(Maybe Text)
+    , _gdTotalResults        :: !(Maybe (Textual Int32))
+    , _gdDataLastRefreshed   :: !(Maybe (Textual Int64))
+    , _gdDataTable           :: !(Maybe GaDataDataTable)
+    , _gdContainsSampledData :: !(Maybe Bool)
+    , _gdTotalsForAllResults :: !(Maybe GaDataTotalsForAllResults)
+    , _gdPreviousLink        :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GaData' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdNextLink'
+--
+-- * 'gdSampleSpace'
+--
+-- * 'gdItemsPerPage'
+--
+-- * 'gdProFileInfo'
+--
+-- * 'gdKind'
+--
+-- * 'gdSampleSize'
+--
+-- * 'gdRows'
+--
+-- * 'gdSelfLink'
+--
+-- * 'gdQuery'
+--
+-- * 'gdColumnHeaders'
+--
+-- * 'gdId'
+--
+-- * 'gdTotalResults'
+--
+-- * 'gdDataLastRefreshed'
+--
+-- * 'gdDataTable'
+--
+-- * 'gdContainsSampledData'
+--
+-- * 'gdTotalsForAllResults'
+--
+-- * 'gdPreviousLink'
+gaData
+    :: GaData
+gaData =
+  GaData'
+    { _gdNextLink = Nothing
+    , _gdSampleSpace = Nothing
+    , _gdItemsPerPage = Nothing
+    , _gdProFileInfo = Nothing
+    , _gdKind = "analytics#gaData"
+    , _gdSampleSize = Nothing
+    , _gdRows = Nothing
+    , _gdSelfLink = Nothing
+    , _gdQuery = Nothing
+    , _gdColumnHeaders = Nothing
+    , _gdId = Nothing
+    , _gdTotalResults = Nothing
+    , _gdDataLastRefreshed = Nothing
+    , _gdDataTable = Nothing
+    , _gdContainsSampledData = Nothing
+    , _gdTotalsForAllResults = Nothing
+    , _gdPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this Analytics data query.
+gdNextLink :: Lens' GaData (Maybe Text)
+gdNextLink
+  = lens _gdNextLink (\ s a -> s{_gdNextLink = a})
+
+-- | Total size of the sample space from which the samples were selected.
+gdSampleSpace :: Lens' GaData (Maybe Int64)
+gdSampleSpace
+  = lens _gdSampleSpace
+      (\ s a -> s{_gdSampleSpace = a})
+      . mapping _Coerce
+
+-- | The maximum number of rows the response can contain, regardless of the
+-- actual number of rows returned. Its value ranges from 1 to 10,000 with a
+-- value of 1000 by default, or otherwise specified by the max-results
+-- query parameter.
+gdItemsPerPage :: Lens' GaData (Maybe Int32)
+gdItemsPerPage
+  = lens _gdItemsPerPage
+      (\ s a -> s{_gdItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Information for the view (profile), for which the Analytics data was
+-- requested.
+gdProFileInfo :: Lens' GaData (Maybe GaDataProFileInfo)
+gdProFileInfo
+  = lens _gdProFileInfo
+      (\ s a -> s{_gdProFileInfo = a})
+
+-- | Resource type.
+gdKind :: Lens' GaData Text
+gdKind = lens _gdKind (\ s a -> s{_gdKind = a})
+
+-- | The number of samples used to calculate the result.
+gdSampleSize :: Lens' GaData (Maybe Int64)
+gdSampleSize
+  = lens _gdSampleSize (\ s a -> s{_gdSampleSize = a})
+      . mapping _Coerce
+
+-- | Analytics data rows, where each row contains a list of dimension values
+-- followed by the metric values. The order of dimensions and metrics is
+-- same as specified in the request.
+gdRows :: Lens' GaData [[Text]]
+gdRows
+  = lens _gdRows (\ s a -> s{_gdRows = a}) . _Default .
+      _Coerce
+
+-- | Link to this page.
+gdSelfLink :: Lens' GaData (Maybe Text)
+gdSelfLink
+  = lens _gdSelfLink (\ s a -> s{_gdSelfLink = a})
+
+-- | Analytics data request query parameters.
+gdQuery :: Lens' GaData (Maybe GaDataQuery)
+gdQuery = lens _gdQuery (\ s a -> s{_gdQuery = a})
+
+-- | Column headers that list dimension names followed by the metric names.
+-- The order of dimensions and metrics is same as specified in the request.
+gdColumnHeaders :: Lens' GaData [GaDataColumnHeadersItem]
+gdColumnHeaders
+  = lens _gdColumnHeaders
+      (\ s a -> s{_gdColumnHeaders = a})
+      . _Default
+      . _Coerce
+
+-- | Unique ID for this data response.
+gdId :: Lens' GaData (Maybe Text)
+gdId = lens _gdId (\ s a -> s{_gdId = a})
+
+-- | The total number of rows for the query, regardless of the number of rows
+-- in the response.
+gdTotalResults :: Lens' GaData (Maybe Int32)
+gdTotalResults
+  = lens _gdTotalResults
+      (\ s a -> s{_gdTotalResults = a})
+      . mapping _Coerce
+
+-- | The last refreshed time in seconds for Analytics data.
+gdDataLastRefreshed :: Lens' GaData (Maybe Int64)
+gdDataLastRefreshed
+  = lens _gdDataLastRefreshed
+      (\ s a -> s{_gdDataLastRefreshed = a})
+      . mapping _Coerce
+
+gdDataTable :: Lens' GaData (Maybe GaDataDataTable)
+gdDataTable
+  = lens _gdDataTable (\ s a -> s{_gdDataTable = a})
+
+-- | Determines if Analytics data contains samples.
+gdContainsSampledData :: Lens' GaData (Maybe Bool)
+gdContainsSampledData
+  = lens _gdContainsSampledData
+      (\ s a -> s{_gdContainsSampledData = a})
+
+-- | Total values for the requested metrics over all the results, not just
+-- the results returned in this response. The order of the metric totals is
+-- same as the metric order specified in the request.
+gdTotalsForAllResults :: Lens' GaData (Maybe GaDataTotalsForAllResults)
+gdTotalsForAllResults
+  = lens _gdTotalsForAllResults
+      (\ s a -> s{_gdTotalsForAllResults = a})
+
+-- | Link to previous page for this Analytics data query.
+gdPreviousLink :: Lens' GaData (Maybe Text)
+gdPreviousLink
+  = lens _gdPreviousLink
+      (\ s a -> s{_gdPreviousLink = a})
+
+instance FromJSON GaData where
+        parseJSON
+          = withObject "GaData"
+              (\ o ->
+                 GaData' <$>
+                   (o .:? "nextLink") <*> (o .:? "sampleSpace") <*>
+                     (o .:? "itemsPerPage")
+                     <*> (o .:? "profileInfo")
+                     <*> (o .:? "kind" .!= "analytics#gaData")
+                     <*> (o .:? "sampleSize")
+                     <*> (o .:? "rows" .!= mempty)
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "query")
+                     <*> (o .:? "columnHeaders" .!= mempty)
+                     <*> (o .:? "id")
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "dataLastRefreshed")
+                     <*> (o .:? "dataTable")
+                     <*> (o .:? "containsSampledData")
+                     <*> (o .:? "totalsForAllResults")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON GaData where
+        toJSON GaData'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _gdNextLink,
+                  ("sampleSpace" .=) <$> _gdSampleSpace,
+                  ("itemsPerPage" .=) <$> _gdItemsPerPage,
+                  ("profileInfo" .=) <$> _gdProFileInfo,
+                  Just ("kind" .= _gdKind),
+                  ("sampleSize" .=) <$> _gdSampleSize,
+                  ("rows" .=) <$> _gdRows,
+                  ("selfLink" .=) <$> _gdSelfLink,
+                  ("query" .=) <$> _gdQuery,
+                  ("columnHeaders" .=) <$> _gdColumnHeaders,
+                  ("id" .=) <$> _gdId,
+                  ("totalResults" .=) <$> _gdTotalResults,
+                  ("dataLastRefreshed" .=) <$> _gdDataLastRefreshed,
+                  ("dataTable" .=) <$> _gdDataTable,
+                  ("containsSampledData" .=) <$>
+                    _gdContainsSampledData,
+                  ("totalsForAllResults" .=) <$>
+                    _gdTotalsForAllResults,
+                  ("previousLink" .=) <$> _gdPreviousLink])
+
+-- | Total values for the requested metrics over all the results, not just
+-- the results returned in this response. The order of the metric totals is
+-- same as the metric order specified in the request.
+--
+-- /See:/ 'realtimeDataTotalsForAllResults' smart constructor.
+newtype RealtimeDataTotalsForAllResults =
+  RealtimeDataTotalsForAllResults'
+    { _rdtfarAddtional :: HashMap Text Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RealtimeDataTotalsForAllResults' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdtfarAddtional'
+realtimeDataTotalsForAllResults
+    :: HashMap Text Text -- ^ 'rdtfarAddtional'
+    -> RealtimeDataTotalsForAllResults
+realtimeDataTotalsForAllResults pRdtfarAddtional_ =
+  RealtimeDataTotalsForAllResults'
+    {_rdtfarAddtional = _Coerce # pRdtfarAddtional_}
+
+
+-- | Key-value pair for the total value of a metric. Key is the metric name
+-- and the value is the total value for that metric.
+rdtfarAddtional :: Lens' RealtimeDataTotalsForAllResults (HashMap Text Text)
+rdtfarAddtional
+  = lens _rdtfarAddtional
+      (\ s a -> s{_rdtfarAddtional = a})
+      . _Coerce
+
+instance FromJSON RealtimeDataTotalsForAllResults
+         where
+        parseJSON
+          = withObject "RealtimeDataTotalsForAllResults"
+              (\ o ->
+                 RealtimeDataTotalsForAllResults' <$>
+                   (parseJSONObject o))
+
+instance ToJSON RealtimeDataTotalsForAllResults where
+        toJSON = toJSON . _rdtfarAddtional
+
+-- | JSON template for an Analytics custom data source.
+--
+-- /See:/ 'customDataSource' smart constructor.
+data CustomDataSource =
+  CustomDataSource'
+    { _cParentLink     :: !(Maybe CustomDataSourceParentLink)
+    , _cWebPropertyId  :: !(Maybe Text)
+    , _cChildLink      :: !(Maybe CustomDataSourceChildLink)
+    , _cKind           :: !Text
+    , _cCreated        :: !(Maybe DateTime')
+    , _cUploadType     :: !(Maybe Text)
+    , _cSchema         :: !(Maybe [Text])
+    , _cImportBehavior :: !(Maybe Text)
+    , _cSelfLink       :: !(Maybe Text)
+    , _cAccountId      :: !(Maybe Text)
+    , _cName           :: !(Maybe Text)
+    , _cId             :: !(Maybe Text)
+    , _cUpdated        :: !(Maybe DateTime')
+    , _cType           :: !(Maybe Text)
+    , _cDescription    :: !(Maybe Text)
+    , _cProFilesLinked :: !(Maybe [Text])
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CustomDataSource' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cParentLink'
+--
+-- * 'cWebPropertyId'
+--
+-- * 'cChildLink'
+--
+-- * 'cKind'
+--
+-- * 'cCreated'
+--
+-- * 'cUploadType'
+--
+-- * 'cSchema'
+--
+-- * 'cImportBehavior'
+--
+-- * 'cSelfLink'
+--
+-- * 'cAccountId'
+--
+-- * 'cName'
+--
+-- * 'cId'
+--
+-- * 'cUpdated'
+--
+-- * 'cType'
+--
+-- * 'cDescription'
+--
+-- * 'cProFilesLinked'
+customDataSource
+    :: CustomDataSource
+customDataSource =
+  CustomDataSource'
+    { _cParentLink = Nothing
+    , _cWebPropertyId = Nothing
+    , _cChildLink = Nothing
+    , _cKind = "analytics#customDataSource"
+    , _cCreated = Nothing
+    , _cUploadType = Nothing
+    , _cSchema = Nothing
+    , _cImportBehavior = Nothing
+    , _cSelfLink = Nothing
+    , _cAccountId = Nothing
+    , _cName = Nothing
+    , _cId = Nothing
+    , _cUpdated = Nothing
+    , _cType = Nothing
+    , _cDescription = Nothing
+    , _cProFilesLinked = Nothing
+    }
+
+
+-- | Parent link for this custom data source. Points to the web property to
+-- which this custom data source belongs.
+cParentLink :: Lens' CustomDataSource (Maybe CustomDataSourceParentLink)
+cParentLink
+  = lens _cParentLink (\ s a -> s{_cParentLink = a})
+
+-- | Web property ID of the form UA-XXXXX-YY to which this custom data source
+-- belongs.
+cWebPropertyId :: Lens' CustomDataSource (Maybe Text)
+cWebPropertyId
+  = lens _cWebPropertyId
+      (\ s a -> s{_cWebPropertyId = a})
+
+cChildLink :: Lens' CustomDataSource (Maybe CustomDataSourceChildLink)
+cChildLink
+  = lens _cChildLink (\ s a -> s{_cChildLink = a})
+
+-- | Resource type for Analytics custom data source.
+cKind :: Lens' CustomDataSource Text
+cKind = lens _cKind (\ s a -> s{_cKind = a})
+
+-- | Time this custom data source was created.
+cCreated :: Lens' CustomDataSource (Maybe UTCTime)
+cCreated
+  = lens _cCreated (\ s a -> s{_cCreated = a}) .
+      mapping _DateTime
+
+-- | Upload type of the custom data source.
+cUploadType :: Lens' CustomDataSource (Maybe Text)
+cUploadType
+  = lens _cUploadType (\ s a -> s{_cUploadType = a})
+
+-- | Collection of schema headers of the custom data source.
+cSchema :: Lens' CustomDataSource [Text]
+cSchema
+  = lens _cSchema (\ s a -> s{_cSchema = a}) . _Default
+      . _Coerce
+
+cImportBehavior :: Lens' CustomDataSource (Maybe Text)
+cImportBehavior
+  = lens _cImportBehavior
+      (\ s a -> s{_cImportBehavior = a})
+
+-- | Link for this Analytics custom data source.
+cSelfLink :: Lens' CustomDataSource (Maybe Text)
+cSelfLink
+  = lens _cSelfLink (\ s a -> s{_cSelfLink = a})
+
+-- | Account ID to which this custom data source belongs.
+cAccountId :: Lens' CustomDataSource (Maybe Text)
+cAccountId
+  = lens _cAccountId (\ s a -> s{_cAccountId = a})
+
+-- | Name of this custom data source.
+cName :: Lens' CustomDataSource (Maybe Text)
+cName = lens _cName (\ s a -> s{_cName = a})
+
+-- | Custom data source ID.
+cId :: Lens' CustomDataSource (Maybe Text)
+cId = lens _cId (\ s a -> s{_cId = a})
+
+-- | Time this custom data source was last modified.
+cUpdated :: Lens' CustomDataSource (Maybe UTCTime)
+cUpdated
+  = lens _cUpdated (\ s a -> s{_cUpdated = a}) .
+      mapping _DateTime
+
+-- | Type of the custom data source.
+cType :: Lens' CustomDataSource (Maybe Text)
+cType = lens _cType (\ s a -> s{_cType = a})
+
+-- | Description of custom data source.
+cDescription :: Lens' CustomDataSource (Maybe Text)
+cDescription
+  = lens _cDescription (\ s a -> s{_cDescription = a})
+
+-- | IDs of views (profiles) linked to the custom data source.
+cProFilesLinked :: Lens' CustomDataSource [Text]
+cProFilesLinked
+  = lens _cProFilesLinked
+      (\ s a -> s{_cProFilesLinked = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON CustomDataSource where
+        parseJSON
+          = withObject "CustomDataSource"
+              (\ o ->
+                 CustomDataSource' <$>
+                   (o .:? "parentLink") <*> (o .:? "webPropertyId") <*>
+                     (o .:? "childLink")
+                     <*> (o .:? "kind" .!= "analytics#customDataSource")
+                     <*> (o .:? "created")
+                     <*> (o .:? "uploadType")
+                     <*> (o .:? "schema" .!= mempty)
+                     <*> (o .:? "importBehavior")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "type")
+                     <*> (o .:? "description")
+                     <*> (o .:? "profilesLinked" .!= mempty))
+
+instance ToJSON CustomDataSource where
+        toJSON CustomDataSource'{..}
+          = object
+              (catMaybes
+                 [("parentLink" .=) <$> _cParentLink,
+                  ("webPropertyId" .=) <$> _cWebPropertyId,
+                  ("childLink" .=) <$> _cChildLink,
+                  Just ("kind" .= _cKind),
+                  ("created" .=) <$> _cCreated,
+                  ("uploadType" .=) <$> _cUploadType,
+                  ("schema" .=) <$> _cSchema,
+                  ("importBehavior" .=) <$> _cImportBehavior,
+                  ("selfLink" .=) <$> _cSelfLink,
+                  ("accountId" .=) <$> _cAccountId,
+                  ("name" .=) <$> _cName, ("id" .=) <$> _cId,
+                  ("updated" .=) <$> _cUpdated, ("type" .=) <$> _cType,
+                  ("description" .=) <$> _cDescription,
+                  ("profilesLinked" .=) <$> _cProFilesLinked])
+
+-- | JSON template for an Analytics account tree requests. The account tree
+-- request is used in the provisioning api to create an account, property,
+-- and view (profile). It contains the basic information required to make
+-- these fields.
+--
+-- /See:/ 'accountTreeRequest' smart constructor.
+data AccountTreeRequest =
+  AccountTreeRequest'
+    { _atrWebPropertyName :: !(Maybe Text)
+    , _atrKind            :: !Text
+    , _atrAccountName     :: !(Maybe Text)
+    , _atrProFileName     :: !(Maybe Text)
+    , _atrWebsiteURL      :: !(Maybe Text)
+    , _atrTimezone        :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AccountTreeRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'atrWebPropertyName'
+--
+-- * 'atrKind'
+--
+-- * 'atrAccountName'
+--
+-- * 'atrProFileName'
+--
+-- * 'atrWebsiteURL'
+--
+-- * 'atrTimezone'
+accountTreeRequest
+    :: AccountTreeRequest
+accountTreeRequest =
+  AccountTreeRequest'
+    { _atrWebPropertyName = Nothing
+    , _atrKind = "analytics#accountTreeRequest"
+    , _atrAccountName = Nothing
+    , _atrProFileName = Nothing
+    , _atrWebsiteURL = Nothing
+    , _atrTimezone = Nothing
+    }
+
+
+atrWebPropertyName :: Lens' AccountTreeRequest (Maybe Text)
+atrWebPropertyName
+  = lens _atrWebPropertyName
+      (\ s a -> s{_atrWebPropertyName = a})
+
+-- | Resource type for account ticket.
+atrKind :: Lens' AccountTreeRequest Text
+atrKind = lens _atrKind (\ s a -> s{_atrKind = a})
+
+atrAccountName :: Lens' AccountTreeRequest (Maybe Text)
+atrAccountName
+  = lens _atrAccountName
+      (\ s a -> s{_atrAccountName = a})
+
+atrProFileName :: Lens' AccountTreeRequest (Maybe Text)
+atrProFileName
+  = lens _atrProFileName
+      (\ s a -> s{_atrProFileName = a})
+
+atrWebsiteURL :: Lens' AccountTreeRequest (Maybe Text)
+atrWebsiteURL
+  = lens _atrWebsiteURL
+      (\ s a -> s{_atrWebsiteURL = a})
+
+atrTimezone :: Lens' AccountTreeRequest (Maybe Text)
+atrTimezone
+  = lens _atrTimezone (\ s a -> s{_atrTimezone = a})
+
+instance FromJSON AccountTreeRequest where
+        parseJSON
+          = withObject "AccountTreeRequest"
+              (\ o ->
+                 AccountTreeRequest' <$>
+                   (o .:? "webpropertyName") <*>
+                     (o .:? "kind" .!= "analytics#accountTreeRequest")
+                     <*> (o .:? "accountName")
+                     <*> (o .:? "profileName")
+                     <*> (o .:? "websiteUrl")
+                     <*> (o .:? "timezone"))
+
+instance ToJSON AccountTreeRequest where
+        toJSON AccountTreeRequest'{..}
+          = object
+              (catMaybes
+                 [("webpropertyName" .=) <$> _atrWebPropertyName,
+                  Just ("kind" .= _atrKind),
+                  ("accountName" .=) <$> _atrAccountName,
+                  ("profileName" .=) <$> _atrProFileName,
+                  ("websiteUrl" .=) <$> _atrWebsiteURL,
+                  ("timezone" .=) <$> _atrTimezone])
+
+-- | JSON template for a web property reference.
+--
+-- /See:/ 'webPropertyRef' smart constructor.
+data WebPropertyRef =
+  WebPropertyRef'
+    { _wprKind                  :: !Text
+    , _wprHref                  :: !(Maybe Text)
+    , _wprAccountId             :: !(Maybe Text)
+    , _wprName                  :: !(Maybe Text)
+    , _wprInternalWebPropertyId :: !(Maybe Text)
+    , _wprId                    :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'WebPropertyRef' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wprKind'
+--
+-- * 'wprHref'
+--
+-- * 'wprAccountId'
+--
+-- * 'wprName'
+--
+-- * 'wprInternalWebPropertyId'
+--
+-- * 'wprId'
+webPropertyRef
+    :: WebPropertyRef
+webPropertyRef =
+  WebPropertyRef'
+    { _wprKind = "analytics#webPropertyRef"
+    , _wprHref = Nothing
+    , _wprAccountId = Nothing
+    , _wprName = Nothing
+    , _wprInternalWebPropertyId = Nothing
+    , _wprId = Nothing
+    }
+
+
+-- | Analytics web property reference.
+wprKind :: Lens' WebPropertyRef Text
+wprKind = lens _wprKind (\ s a -> s{_wprKind = a})
+
+-- | Link for this web property.
+wprHref :: Lens' WebPropertyRef (Maybe Text)
+wprHref = lens _wprHref (\ s a -> s{_wprHref = a})
+
+-- | Account ID to which this web property belongs.
+wprAccountId :: Lens' WebPropertyRef (Maybe Text)
+wprAccountId
+  = lens _wprAccountId (\ s a -> s{_wprAccountId = a})
+
+-- | Name of this web property.
+wprName :: Lens' WebPropertyRef (Maybe Text)
+wprName = lens _wprName (\ s a -> s{_wprName = a})
+
+-- | Internal ID for this web property.
+wprInternalWebPropertyId :: Lens' WebPropertyRef (Maybe Text)
+wprInternalWebPropertyId
+  = lens _wprInternalWebPropertyId
+      (\ s a -> s{_wprInternalWebPropertyId = a})
+
+-- | Web property ID of the form UA-XXXXX-YY.
+wprId :: Lens' WebPropertyRef (Maybe Text)
+wprId = lens _wprId (\ s a -> s{_wprId = a})
+
+instance FromJSON WebPropertyRef where
+        parseJSON
+          = withObject "WebPropertyRef"
+              (\ o ->
+                 WebPropertyRef' <$>
+                   (o .:? "kind" .!= "analytics#webPropertyRef") <*>
+                     (o .:? "href")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "id"))
+
+instance ToJSON WebPropertyRef where
+        toJSON WebPropertyRef'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _wprKind), ("href" .=) <$> _wprHref,
+                  ("accountId" .=) <$> _wprAccountId,
+                  ("name" .=) <$> _wprName,
+                  ("internalWebPropertyId" .=) <$>
+                    _wprInternalWebPropertyId,
+                  ("id" .=) <$> _wprId])
+
+-- | JSON template for an Analytics Remarketing Audience Foreign Link.
+--
+-- /See:/ 'linkedForeignAccount' smart constructor.
+data LinkedForeignAccount =
+  LinkedForeignAccount'
+    { _lfaStatus                :: !(Maybe Text)
+    , _lfaWebPropertyId         :: !(Maybe Text)
+    , _lfaKind                  :: !Text
+    , _lfaEligibleForSearch     :: !(Maybe Bool)
+    , _lfaAccountId             :: !(Maybe Text)
+    , _lfaRemarketingAudienceId :: !(Maybe Text)
+    , _lfaLinkedAccountId       :: !(Maybe Text)
+    , _lfaInternalWebPropertyId :: !(Maybe Text)
+    , _lfaId                    :: !(Maybe Text)
+    , _lfaType                  :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'LinkedForeignAccount' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfaStatus'
+--
+-- * 'lfaWebPropertyId'
+--
+-- * 'lfaKind'
+--
+-- * 'lfaEligibleForSearch'
+--
+-- * 'lfaAccountId'
+--
+-- * 'lfaRemarketingAudienceId'
+--
+-- * 'lfaLinkedAccountId'
+--
+-- * 'lfaInternalWebPropertyId'
+--
+-- * 'lfaId'
+--
+-- * 'lfaType'
+linkedForeignAccount
+    :: LinkedForeignAccount
+linkedForeignAccount =
+  LinkedForeignAccount'
+    { _lfaStatus = Nothing
+    , _lfaWebPropertyId = Nothing
+    , _lfaKind = "analytics#linkedForeignAccount"
+    , _lfaEligibleForSearch = Nothing
+    , _lfaAccountId = Nothing
+    , _lfaRemarketingAudienceId = Nothing
+    , _lfaLinkedAccountId = Nothing
+    , _lfaInternalWebPropertyId = Nothing
+    , _lfaId = Nothing
+    , _lfaType = Nothing
+    }
+
+
+-- | The status of this foreign account link.
+lfaStatus :: Lens' LinkedForeignAccount (Maybe Text)
+lfaStatus
+  = lens _lfaStatus (\ s a -> s{_lfaStatus = a})
+
+-- | Web property ID of the form UA-XXXXX-YY to which this linked foreign
+-- account belongs.
+lfaWebPropertyId :: Lens' LinkedForeignAccount (Maybe Text)
+lfaWebPropertyId
+  = lens _lfaWebPropertyId
+      (\ s a -> s{_lfaWebPropertyId = a})
+
+-- | Resource type for linked foreign account.
+lfaKind :: Lens' LinkedForeignAccount Text
+lfaKind = lens _lfaKind (\ s a -> s{_lfaKind = a})
+
+-- | Boolean indicating whether this is eligible for search.
+lfaEligibleForSearch :: Lens' LinkedForeignAccount (Maybe Bool)
+lfaEligibleForSearch
+  = lens _lfaEligibleForSearch
+      (\ s a -> s{_lfaEligibleForSearch = a})
+
+-- | Account ID to which this linked foreign account belongs.
+lfaAccountId :: Lens' LinkedForeignAccount (Maybe Text)
+lfaAccountId
+  = lens _lfaAccountId (\ s a -> s{_lfaAccountId = a})
+
+-- | Remarketing audience ID to which this linked foreign account belongs.
+lfaRemarketingAudienceId :: Lens' LinkedForeignAccount (Maybe Text)
+lfaRemarketingAudienceId
+  = lens _lfaRemarketingAudienceId
+      (\ s a -> s{_lfaRemarketingAudienceId = a})
+
+-- | The foreign account ID. For example the an Google Ads
+-- \`linkedAccountId\` has the following format XXX-XXX-XXXX.
+lfaLinkedAccountId :: Lens' LinkedForeignAccount (Maybe Text)
+lfaLinkedAccountId
+  = lens _lfaLinkedAccountId
+      (\ s a -> s{_lfaLinkedAccountId = a})
+
+-- | Internal ID for the web property to which this linked foreign account
+-- belongs.
+lfaInternalWebPropertyId :: Lens' LinkedForeignAccount (Maybe Text)
+lfaInternalWebPropertyId
+  = lens _lfaInternalWebPropertyId
+      (\ s a -> s{_lfaInternalWebPropertyId = a})
+
+-- | Entity ad account link ID.
+lfaId :: Lens' LinkedForeignAccount (Maybe Text)
+lfaId = lens _lfaId (\ s a -> s{_lfaId = a})
+
+-- | The type of the foreign account. For example, \`ADWORDS_LINKS\`,
+-- \`DBM_LINKS\`, \`MCC_LINKS\` or \`OPTIMIZE\`.
+lfaType :: Lens' LinkedForeignAccount (Maybe Text)
+lfaType = lens _lfaType (\ s a -> s{_lfaType = a})
+
+instance FromJSON LinkedForeignAccount where
+        parseJSON
+          = withObject "LinkedForeignAccount"
+              (\ o ->
+                 LinkedForeignAccount' <$>
+                   (o .:? "status") <*> (o .:? "webPropertyId") <*>
+                     (o .:? "kind" .!= "analytics#linkedForeignAccount")
+                     <*> (o .:? "eligibleForSearch")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "remarketingAudienceId")
+                     <*> (o .:? "linkedAccountId")
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "type"))
+
+instance ToJSON LinkedForeignAccount where
+        toJSON LinkedForeignAccount'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _lfaStatus,
+                  ("webPropertyId" .=) <$> _lfaWebPropertyId,
+                  Just ("kind" .= _lfaKind),
+                  ("eligibleForSearch" .=) <$> _lfaEligibleForSearch,
+                  ("accountId" .=) <$> _lfaAccountId,
+                  ("remarketingAudienceId" .=) <$>
+                    _lfaRemarketingAudienceId,
+                  ("linkedAccountId" .=) <$> _lfaLinkedAccountId,
+                  ("internalWebPropertyId" .=) <$>
+                    _lfaInternalWebPropertyId,
+                  ("id" .=) <$> _lfaId, ("type" .=) <$> _lfaType])
+
+-- | A goal collection lists Analytics goals to which the user has access.
+-- Each view (profile) can have a set of goals. Each resource in the Goal
+-- collection corresponds to a single Analytics goal.
+--
+-- /See:/ 'goals' smart constructor.
+data Goals =
+  Goals'
+    { _gNextLink     :: !(Maybe Text)
+    , _gItemsPerPage :: !(Maybe (Textual Int32))
+    , _gKind         :: !Text
+    , _gUsername     :: !(Maybe Text)
+    , _gItems        :: !(Maybe [Goal])
+    , _gTotalResults :: !(Maybe (Textual Int32))
+    , _gStartIndex   :: !(Maybe (Textual Int32))
+    , _gPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Goals' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gNextLink'
+--
+-- * 'gItemsPerPage'
+--
+-- * 'gKind'
+--
+-- * 'gUsername'
+--
+-- * 'gItems'
+--
+-- * 'gTotalResults'
+--
+-- * 'gStartIndex'
+--
+-- * 'gPreviousLink'
+goals
+    :: Goals
+goals =
+  Goals'
+    { _gNextLink = Nothing
+    , _gItemsPerPage = Nothing
+    , _gKind = "analytics#goals"
+    , _gUsername = Nothing
+    , _gItems = Nothing
+    , _gTotalResults = Nothing
+    , _gStartIndex = Nothing
+    , _gPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this goal collection.
+gNextLink :: Lens' Goals (Maybe Text)
+gNextLink
+  = lens _gNextLink (\ s a -> s{_gNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+gItemsPerPage :: Lens' Goals (Maybe Int32)
+gItemsPerPage
+  = lens _gItemsPerPage
+      (\ s a -> s{_gItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+gKind :: Lens' Goals Text
+gKind = lens _gKind (\ s a -> s{_gKind = a})
+
+-- | Email ID of the authenticated user
+gUsername :: Lens' Goals (Maybe Text)
+gUsername
+  = lens _gUsername (\ s a -> s{_gUsername = a})
+
+-- | A list of goals.
+gItems :: Lens' Goals [Goal]
+gItems
+  = lens _gItems (\ s a -> s{_gItems = a}) . _Default .
+      _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- resources in the result.
+gTotalResults :: Lens' Goals (Maybe Int32)
+gTotalResults
+  = lens _gTotalResults
+      (\ s a -> s{_gTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+gStartIndex :: Lens' Goals (Maybe Int32)
+gStartIndex
+  = lens _gStartIndex (\ s a -> s{_gStartIndex = a}) .
+      mapping _Coerce
+
+-- | Link to previous page for this goal collection.
+gPreviousLink :: Lens' Goals (Maybe Text)
+gPreviousLink
+  = lens _gPreviousLink
+      (\ s a -> s{_gPreviousLink = a})
+
+instance FromJSON Goals where
+        parseJSON
+          = withObject "Goals"
+              (\ o ->
+                 Goals' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#goals")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON Goals where
+        toJSON Goals'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _gNextLink,
+                  ("itemsPerPage" .=) <$> _gItemsPerPage,
+                  Just ("kind" .= _gKind),
+                  ("username" .=) <$> _gUsername,
+                  ("items" .=) <$> _gItems,
+                  ("totalResults" .=) <$> _gTotalResults,
+                  ("startIndex" .=) <$> _gStartIndex,
+                  ("previousLink" .=) <$> _gPreviousLink])
+
+-- | A union object representing a dimension or metric value. Only one of
+-- \"primitiveValue\" or \"conversionPathValue\" attribute will be
+-- populated.
+--
+-- /See:/ 'mcfDataRowsItemItem' smart constructor.
+data McfDataRowsItemItem =
+  McfDataRowsItemItem'
+    { _mdriiPrimitiveValue      :: !(Maybe Text)
+    , _mdriiConversionPathValue :: !(Maybe [McfDataRowsItemItemConversionPathValueItem])
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'McfDataRowsItemItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mdriiPrimitiveValue'
+--
+-- * 'mdriiConversionPathValue'
+mcfDataRowsItemItem
+    :: McfDataRowsItemItem
+mcfDataRowsItemItem =
+  McfDataRowsItemItem'
+    {_mdriiPrimitiveValue = Nothing, _mdriiConversionPathValue = Nothing}
+
+
+-- | A primitive dimension value. A primitive metric value.
+mdriiPrimitiveValue :: Lens' McfDataRowsItemItem (Maybe Text)
+mdriiPrimitiveValue
+  = lens _mdriiPrimitiveValue
+      (\ s a -> s{_mdriiPrimitiveValue = a})
+
+-- | A conversion path dimension value, containing a list of interactions
+-- with their attributes.
+mdriiConversionPathValue :: Lens' McfDataRowsItemItem [McfDataRowsItemItemConversionPathValueItem]
+mdriiConversionPathValue
+  = lens _mdriiConversionPathValue
+      (\ s a -> s{_mdriiConversionPathValue = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON McfDataRowsItemItem where
+        parseJSON
+          = withObject "McfDataRowsItemItem"
+              (\ o ->
+                 McfDataRowsItemItem' <$>
+                   (o .:? "primitiveValue") <*>
+                     (o .:? "conversionPathValue" .!= mempty))
+
+instance ToJSON McfDataRowsItemItem where
+        toJSON McfDataRowsItemItem'{..}
+          = object
+              (catMaybes
+                 [("primitiveValue" .=) <$> _mdriiPrimitiveValue,
+                  ("conversionPathValue" .=) <$>
+                    _mdriiConversionPathValue])
+
+-- | Permissions the user has for this account.
+--
+-- /See:/ 'accountPermissions' smart constructor.
+newtype AccountPermissions =
+  AccountPermissions'
+    { _apEffective :: Maybe [Text]
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AccountPermissions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apEffective'
+accountPermissions
+    :: AccountPermissions
+accountPermissions = AccountPermissions' {_apEffective = Nothing}
+
+
+-- | All the permissions that the user has for this account. These include
+-- any implied permissions (e.g., EDIT implies VIEW).
+apEffective :: Lens' AccountPermissions [Text]
+apEffective
+  = lens _apEffective (\ s a -> s{_apEffective = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON AccountPermissions where
+        parseJSON
+          = withObject "AccountPermissions"
+              (\ o ->
+                 AccountPermissions' <$>
+                   (o .:? "effective" .!= mempty))
+
+instance ToJSON AccountPermissions where
+        toJSON AccountPermissions'{..}
+          = object
+              (catMaybes [("effective" .=) <$> _apEffective])
+
+-- | Entity for this link. It can be an account, a web property, or a view
+-- (profile).
+--
+-- /See:/ 'entityUserLinkEntity' smart constructor.
+data EntityUserLinkEntity =
+  EntityUserLinkEntity'
+    { _euleProFileRef     :: !(Maybe ProFileRef)
+    , _euleAccountRef     :: !(Maybe AccountRef)
+    , _euleWebPropertyRef :: !(Maybe WebPropertyRef)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EntityUserLinkEntity' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'euleProFileRef'
+--
+-- * 'euleAccountRef'
+--
+-- * 'euleWebPropertyRef'
+entityUserLinkEntity
+    :: EntityUserLinkEntity
+entityUserLinkEntity =
+  EntityUserLinkEntity'
+    { _euleProFileRef = Nothing
+    , _euleAccountRef = Nothing
+    , _euleWebPropertyRef = Nothing
+    }
+
+
+-- | View (Profile) for this link.
+euleProFileRef :: Lens' EntityUserLinkEntity (Maybe ProFileRef)
+euleProFileRef
+  = lens _euleProFileRef
+      (\ s a -> s{_euleProFileRef = a})
+
+-- | Account for this link.
+euleAccountRef :: Lens' EntityUserLinkEntity (Maybe AccountRef)
+euleAccountRef
+  = lens _euleAccountRef
+      (\ s a -> s{_euleAccountRef = a})
+
+-- | Web property for this link.
+euleWebPropertyRef :: Lens' EntityUserLinkEntity (Maybe WebPropertyRef)
+euleWebPropertyRef
+  = lens _euleWebPropertyRef
+      (\ s a -> s{_euleWebPropertyRef = a})
+
+instance FromJSON EntityUserLinkEntity where
+        parseJSON
+          = withObject "EntityUserLinkEntity"
+              (\ o ->
+                 EntityUserLinkEntity' <$>
+                   (o .:? "profileRef") <*> (o .:? "accountRef") <*>
+                     (o .:? "webPropertyRef"))
+
+instance ToJSON EntityUserLinkEntity where
+        toJSON EntityUserLinkEntity'{..}
+          = object
+              (catMaybes
+                 [("profileRef" .=) <$> _euleProFileRef,
+                  ("accountRef" .=) <$> _euleAccountRef,
+                  ("webPropertyRef" .=) <$> _euleWebPropertyRef])
+
+-- | JSON template for Analytics account entry.
+--
+-- /See:/ 'account' smart constructor.
+data Account =
+  Account'
+    { _accChildLink   :: !(Maybe AccountChildLink)
+    , _accKind        :: !Text
+    , _accCreated     :: !(Maybe DateTime')
+    , _accSelfLink    :: !(Maybe Text)
+    , _accName        :: !(Maybe Text)
+    , _accStarred     :: !(Maybe Bool)
+    , _accId          :: !(Maybe Text)
+    , _accUpdated     :: !(Maybe DateTime')
+    , _accPermissions :: !(Maybe AccountPermissions)
+    }
+  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:
+--
+-- * 'accChildLink'
+--
+-- * 'accKind'
+--
+-- * 'accCreated'
+--
+-- * 'accSelfLink'
+--
+-- * 'accName'
+--
+-- * 'accStarred'
+--
+-- * 'accId'
+--
+-- * 'accUpdated'
+--
+-- * 'accPermissions'
+account
+    :: Account
+account =
+  Account'
+    { _accChildLink = Nothing
+    , _accKind = "analytics#account"
+    , _accCreated = Nothing
+    , _accSelfLink = Nothing
+    , _accName = Nothing
+    , _accStarred = Nothing
+    , _accId = Nothing
+    , _accUpdated = Nothing
+    , _accPermissions = Nothing
+    }
+
+
+-- | Child link for an account entry. Points to the list of web properties
+-- for this account.
+accChildLink :: Lens' Account (Maybe AccountChildLink)
+accChildLink
+  = lens _accChildLink (\ s a -> s{_accChildLink = a})
+
+-- | Resource type for Analytics account.
+accKind :: Lens' Account Text
+accKind = lens _accKind (\ s a -> s{_accKind = a})
+
+-- | Time the account was created.
+accCreated :: Lens' Account (Maybe UTCTime)
+accCreated
+  = lens _accCreated (\ s a -> s{_accCreated = a}) .
+      mapping _DateTime
+
+-- | Link for this account.
+accSelfLink :: Lens' Account (Maybe Text)
+accSelfLink
+  = lens _accSelfLink (\ s a -> s{_accSelfLink = a})
+
+-- | Account name.
+accName :: Lens' Account (Maybe Text)
+accName = lens _accName (\ s a -> s{_accName = a})
+
+-- | Indicates whether this account is starred or not.
+accStarred :: Lens' Account (Maybe Bool)
+accStarred
+  = lens _accStarred (\ s a -> s{_accStarred = a})
+
+-- | Account ID.
+accId :: Lens' Account (Maybe Text)
+accId = lens _accId (\ s a -> s{_accId = a})
+
+-- | Time the account was last modified.
+accUpdated :: Lens' Account (Maybe UTCTime)
+accUpdated
+  = lens _accUpdated (\ s a -> s{_accUpdated = a}) .
+      mapping _DateTime
+
+-- | Permissions the user has for this account.
+accPermissions :: Lens' Account (Maybe AccountPermissions)
+accPermissions
+  = lens _accPermissions
+      (\ s a -> s{_accPermissions = a})
+
+instance FromJSON Account where
+        parseJSON
+          = withObject "Account"
+              (\ o ->
+                 Account' <$>
+                   (o .:? "childLink") <*>
+                     (o .:? "kind" .!= "analytics#account")
+                     <*> (o .:? "created")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "name")
+                     <*> (o .:? "starred")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "permissions"))
+
+instance ToJSON Account where
+        toJSON Account'{..}
+          = object
+              (catMaybes
+                 [("childLink" .=) <$> _accChildLink,
+                  Just ("kind" .= _accKind),
+                  ("created" .=) <$> _accCreated,
+                  ("selfLink" .=) <$> _accSelfLink,
+                  ("name" .=) <$> _accName,
+                  ("starred" .=) <$> _accStarred, ("id" .=) <$> _accId,
+                  ("updated" .=) <$> _accUpdated,
+                  ("permissions" .=) <$> _accPermissions])
+
+-- | JSON template for Analytics experiment resource.
+--
+-- /See:/ 'experiment' smart constructor.
+data Experiment =
+  Experiment'
+    { _expParentLink                     :: !(Maybe ExperimentParentLink)
+    , _expEqualWeighting                 :: !(Maybe Bool)
+    , _expStatus                         :: !(Maybe Text)
+    , _expWebPropertyId                  :: !(Maybe Text)
+    , _expStartTime                      :: !(Maybe DateTime')
+    , _expSnippet                        :: !(Maybe Text)
+    , _expKind                           :: !Text
+    , _expCreated                        :: !(Maybe DateTime')
+    , _expReasonExperimentEnded          :: !(Maybe Text)
+    , _expTrafficCoverage                :: !(Maybe (Textual Double))
+    , _expEditableInGaUi                 :: !(Maybe Bool)
+    , _expMinimumExperimentLengthInDays  :: !(Maybe (Textual Int32))
+    , _expProFileId                      :: !(Maybe Text)
+    , _expOptimizationType               :: !(Maybe Text)
+    , _expSelfLink                       :: !(Maybe Text)
+    , _expAccountId                      :: !(Maybe Text)
+    , _expName                           :: !(Maybe Text)
+    , _expWinnerFound                    :: !(Maybe Bool)
+    , _expEndTime                        :: !(Maybe DateTime')
+    , _expVariations                     :: !(Maybe [ExperimentVariationsItem])
+    , _expInternalWebPropertyId          :: !(Maybe Text)
+    , _expId                             :: !(Maybe Text)
+    , _expUpdated                        :: !(Maybe DateTime')
+    , _expRewriteVariationURLsAsOriginal :: !(Maybe Bool)
+    , _expObjectiveMetric                :: !(Maybe Text)
+    , _expWinnerConfidenceLevel          :: !(Maybe (Textual Double))
+    , _expServingFramework               :: !(Maybe Text)
+    , _expDescription                    :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Experiment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'expParentLink'
+--
+-- * 'expEqualWeighting'
+--
+-- * 'expStatus'
+--
+-- * 'expWebPropertyId'
+--
+-- * 'expStartTime'
+--
+-- * 'expSnippet'
+--
+-- * 'expKind'
+--
+-- * 'expCreated'
+--
+-- * 'expReasonExperimentEnded'
+--
+-- * 'expTrafficCoverage'
+--
+-- * 'expEditableInGaUi'
+--
+-- * 'expMinimumExperimentLengthInDays'
+--
+-- * 'expProFileId'
+--
+-- * 'expOptimizationType'
+--
+-- * 'expSelfLink'
+--
+-- * 'expAccountId'
+--
+-- * 'expName'
+--
+-- * 'expWinnerFound'
+--
+-- * 'expEndTime'
+--
+-- * 'expVariations'
+--
+-- * 'expInternalWebPropertyId'
+--
+-- * 'expId'
+--
+-- * 'expUpdated'
+--
+-- * 'expRewriteVariationURLsAsOriginal'
+--
+-- * 'expObjectiveMetric'
+--
+-- * 'expWinnerConfidenceLevel'
+--
+-- * 'expServingFramework'
+--
+-- * 'expDescription'
+experiment
+    :: Experiment
+experiment =
+  Experiment'
+    { _expParentLink = Nothing
+    , _expEqualWeighting = Nothing
+    , _expStatus = Nothing
+    , _expWebPropertyId = Nothing
+    , _expStartTime = Nothing
+    , _expSnippet = Nothing
+    , _expKind = "analytics#experiment"
+    , _expCreated = Nothing
+    , _expReasonExperimentEnded = Nothing
+    , _expTrafficCoverage = Nothing
+    , _expEditableInGaUi = Nothing
+    , _expMinimumExperimentLengthInDays = Nothing
+    , _expProFileId = Nothing
+    , _expOptimizationType = Nothing
+    , _expSelfLink = Nothing
+    , _expAccountId = Nothing
+    , _expName = Nothing
+    , _expWinnerFound = Nothing
+    , _expEndTime = Nothing
+    , _expVariations = Nothing
+    , _expInternalWebPropertyId = Nothing
+    , _expId = Nothing
+    , _expUpdated = Nothing
+    , _expRewriteVariationURLsAsOriginal = Nothing
+    , _expObjectiveMetric = Nothing
+    , _expWinnerConfidenceLevel = Nothing
+    , _expServingFramework = Nothing
+    , _expDescription = Nothing
+    }
+
+
+-- | Parent link for an experiment. Points to the view (profile) to which
+-- this experiment belongs.
+expParentLink :: Lens' Experiment (Maybe ExperimentParentLink)
+expParentLink
+  = lens _expParentLink
+      (\ s a -> s{_expParentLink = a})
+
+-- | Boolean specifying whether to distribute traffic evenly across all
+-- variations. If the value is False, content experiments follows the
+-- default behavior of adjusting traffic dynamically based on variation
+-- performance. Optional -- defaults to False. This field may not be
+-- changed for an experiment whose status is ENDED.
+expEqualWeighting :: Lens' Experiment (Maybe Bool)
+expEqualWeighting
+  = lens _expEqualWeighting
+      (\ s a -> s{_expEqualWeighting = a})
+
+-- | Experiment status. Possible values: \"DRAFT\", \"READY_TO_RUN\",
+-- \"RUNNING\", \"ENDED\". Experiments can be created in the \"DRAFT\",
+-- \"READY_TO_RUN\" or \"RUNNING\" state. This field is required when
+-- creating an experiment.
+expStatus :: Lens' Experiment (Maybe Text)
+expStatus
+  = lens _expStatus (\ s a -> s{_expStatus = a})
+
+-- | Web property ID to which this experiment belongs. The web property ID is
+-- of the form UA-XXXXX-YY. This field is read-only.
+expWebPropertyId :: Lens' Experiment (Maybe Text)
+expWebPropertyId
+  = lens _expWebPropertyId
+      (\ s a -> s{_expWebPropertyId = a})
+
+-- | The starting time of the experiment (the time the status changed from
+-- READY_TO_RUN to RUNNING). This field is present only if the experiment
+-- has started. This field is read-only.
+expStartTime :: Lens' Experiment (Maybe UTCTime)
+expStartTime
+  = lens _expStartTime (\ s a -> s{_expStartTime = a})
+      . mapping _DateTime
+
+-- | The snippet of code to include on the control page(s). This field is
+-- read-only.
+expSnippet :: Lens' Experiment (Maybe Text)
+expSnippet
+  = lens _expSnippet (\ s a -> s{_expSnippet = a})
+
+-- | Resource type for an Analytics experiment. This field is read-only.
+expKind :: Lens' Experiment Text
+expKind = lens _expKind (\ s a -> s{_expKind = a})
+
+-- | Time the experiment was created. This field is read-only.
+expCreated :: Lens' Experiment (Maybe UTCTime)
+expCreated
+  = lens _expCreated (\ s a -> s{_expCreated = a}) .
+      mapping _DateTime
+
+-- | Why the experiment ended. Possible values: \"STOPPED_BY_USER\",
+-- \"WINNER_FOUND\", \"EXPERIMENT_EXPIRED\", \"ENDED_WITH_NO_WINNER\",
+-- \"GOAL_OBJECTIVE_CHANGED\". \"ENDED_WITH_NO_WINNER\" means that the
+-- experiment didn\'t expire but no winner was projected to be found. If
+-- the experiment status is changed via the API to ENDED this field is set
+-- to STOPPED_BY_USER. This field is read-only.
+expReasonExperimentEnded :: Lens' Experiment (Maybe Text)
+expReasonExperimentEnded
+  = lens _expReasonExperimentEnded
+      (\ s a -> s{_expReasonExperimentEnded = a})
+
+-- | A floating-point number in (0, 1]. Specifies the fraction of the traffic
+-- that participates in the experiment. Can be changed for a running
+-- experiment. This field may not be changed for an experiments whose
+-- status is ENDED.
+expTrafficCoverage :: Lens' Experiment (Maybe Double)
+expTrafficCoverage
+  = lens _expTrafficCoverage
+      (\ s a -> s{_expTrafficCoverage = a})
+      . mapping _Coerce
+
+-- | If true, the end user will be able to edit the experiment via the Google
+-- Analytics user interface.
+expEditableInGaUi :: Lens' Experiment (Maybe Bool)
+expEditableInGaUi
+  = lens _expEditableInGaUi
+      (\ s a -> s{_expEditableInGaUi = a})
+
+-- | An integer number in [3, 90]. Specifies the minimum length of the
+-- experiment. Can be changed for a running experiment. This field may not
+-- be changed for an experiments whose status is ENDED.
+expMinimumExperimentLengthInDays :: Lens' Experiment (Maybe Int32)
+expMinimumExperimentLengthInDays
+  = lens _expMinimumExperimentLengthInDays
+      (\ s a -> s{_expMinimumExperimentLengthInDays = a})
+      . mapping _Coerce
+
+-- | View (Profile) ID to which this experiment belongs. This field is
+-- read-only.
+expProFileId :: Lens' Experiment (Maybe Text)
+expProFileId
+  = lens _expProFileId (\ s a -> s{_expProFileId = a})
+
+-- | Whether the objectiveMetric should be minimized or maximized. Possible
+-- values: \"MAXIMUM\", \"MINIMUM\". Optional--defaults to \"MAXIMUM\".
+-- Cannot be specified without objectiveMetric. Cannot be modified when
+-- status is \"RUNNING\" or \"ENDED\".
+expOptimizationType :: Lens' Experiment (Maybe Text)
+expOptimizationType
+  = lens _expOptimizationType
+      (\ s a -> s{_expOptimizationType = a})
+
+-- | Link for this experiment. This field is read-only.
+expSelfLink :: Lens' Experiment (Maybe Text)
+expSelfLink
+  = lens _expSelfLink (\ s a -> s{_expSelfLink = a})
+
+-- | Account ID to which this experiment belongs. This field is read-only.
+expAccountId :: Lens' Experiment (Maybe Text)
+expAccountId
+  = lens _expAccountId (\ s a -> s{_expAccountId = a})
+
+-- | Experiment name. This field may not be changed for an experiment whose
+-- status is ENDED. This field is required when creating an experiment.
+expName :: Lens' Experiment (Maybe Text)
+expName = lens _expName (\ s a -> s{_expName = a})
+
+-- | Boolean specifying whether a winner has been found for this experiment.
+-- This field is read-only.
+expWinnerFound :: Lens' Experiment (Maybe Bool)
+expWinnerFound
+  = lens _expWinnerFound
+      (\ s a -> s{_expWinnerFound = a})
+
+-- | The ending time of the experiment (the time the status changed from
+-- RUNNING to ENDED). This field is present only if the experiment has
+-- ended. This field is read-only.
+expEndTime :: Lens' Experiment (Maybe UTCTime)
+expEndTime
+  = lens _expEndTime (\ s a -> s{_expEndTime = a}) .
+      mapping _DateTime
+
+-- | Array of variations. The first variation in the array is the original.
+-- The number of variations may not change once an experiment is in the
+-- RUNNING state. At least two variations are required before status can be
+-- set to RUNNING.
+expVariations :: Lens' Experiment [ExperimentVariationsItem]
+expVariations
+  = lens _expVariations
+      (\ s a -> s{_expVariations = a})
+      . _Default
+      . _Coerce
+
+-- | Internal ID for the web property to which this experiment belongs. This
+-- field is read-only.
+expInternalWebPropertyId :: Lens' Experiment (Maybe Text)
+expInternalWebPropertyId
+  = lens _expInternalWebPropertyId
+      (\ s a -> s{_expInternalWebPropertyId = a})
+
+-- | Experiment ID. Required for patch and update. Disallowed for create.
+expId :: Lens' Experiment (Maybe Text)
+expId = lens _expId (\ s a -> s{_expId = a})
+
+-- | Time the experiment was last modified. This field is read-only.
+expUpdated :: Lens' Experiment (Maybe UTCTime)
+expUpdated
+  = lens _expUpdated (\ s a -> s{_expUpdated = a}) .
+      mapping _DateTime
+
+-- | Boolean specifying whether variations URLS are rewritten to match those
+-- of the original. This field may not be changed for an experiments whose
+-- status is ENDED.
+expRewriteVariationURLsAsOriginal :: Lens' Experiment (Maybe Bool)
+expRewriteVariationURLsAsOriginal
+  = lens _expRewriteVariationURLsAsOriginal
+      (\ s a -> s{_expRewriteVariationURLsAsOriginal = a})
+
+-- | The metric that the experiment is optimizing. Valid values:
+-- \"ga:goal(n)Completions\", \"ga:adsenseAdsClicks\",
+-- \"ga:adsenseAdsViewed\", \"ga:adsenseRevenue\", \"ga:bounces\",
+-- \"ga:pageviews\", \"ga:sessionDuration\", \"ga:transactions\",
+-- \"ga:transactionRevenue\". This field is required if status is
+-- \"RUNNING\" and servingFramework is one of \"REDIRECT\" or \"API\".
+expObjectiveMetric :: Lens' Experiment (Maybe Text)
+expObjectiveMetric
+  = lens _expObjectiveMetric
+      (\ s a -> s{_expObjectiveMetric = a})
+
+-- | A floating-point number in (0, 1). Specifies the necessary confidence
+-- level to choose a winner. This field may not be changed for an
+-- experiments whose status is ENDED.
+expWinnerConfidenceLevel :: Lens' Experiment (Maybe Double)
+expWinnerConfidenceLevel
+  = lens _expWinnerConfidenceLevel
+      (\ s a -> s{_expWinnerConfidenceLevel = a})
+      . mapping _Coerce
+
+-- | The framework used to serve the experiment variations and evaluate the
+-- results. One of: - REDIRECT: Google Analytics redirects traffic to
+-- different variation pages, reports the chosen variation and evaluates
+-- the results. - API: Google Analytics chooses and reports the variation
+-- to serve and evaluates the results; the caller is responsible for
+-- serving the selected variation. - EXTERNAL: The variations will be
+-- served externally and the chosen variation reported to Google Analytics.
+-- The caller is responsible for serving the selected variation and
+-- evaluating the results.
+expServingFramework :: Lens' Experiment (Maybe Text)
+expServingFramework
+  = lens _expServingFramework
+      (\ s a -> s{_expServingFramework = a})
+
+-- | Notes about this experiment.
+expDescription :: Lens' Experiment (Maybe Text)
+expDescription
+  = lens _expDescription
+      (\ s a -> s{_expDescription = a})
+
+instance FromJSON Experiment where
+        parseJSON
+          = withObject "Experiment"
+              (\ o ->
+                 Experiment' <$>
+                   (o .:? "parentLink") <*> (o .:? "equalWeighting") <*>
+                     (o .:? "status")
+                     <*> (o .:? "webPropertyId")
+                     <*> (o .:? "startTime")
+                     <*> (o .:? "snippet")
+                     <*> (o .:? "kind" .!= "analytics#experiment")
+                     <*> (o .:? "created")
+                     <*> (o .:? "reasonExperimentEnded")
+                     <*> (o .:? "trafficCoverage")
+                     <*> (o .:? "editableInGaUi")
+                     <*> (o .:? "minimumExperimentLengthInDays")
+                     <*> (o .:? "profileId")
+                     <*> (o .:? "optimizationType")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "winnerFound")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "variations" .!= mempty)
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "rewriteVariationUrlsAsOriginal")
+                     <*> (o .:? "objectiveMetric")
+                     <*> (o .:? "winnerConfidenceLevel")
+                     <*> (o .:? "servingFramework")
+                     <*> (o .:? "description"))
+
+instance ToJSON Experiment where
+        toJSON Experiment'{..}
+          = object
+              (catMaybes
+                 [("parentLink" .=) <$> _expParentLink,
+                  ("equalWeighting" .=) <$> _expEqualWeighting,
+                  ("status" .=) <$> _expStatus,
+                  ("webPropertyId" .=) <$> _expWebPropertyId,
+                  ("startTime" .=) <$> _expStartTime,
+                  ("snippet" .=) <$> _expSnippet,
+                  Just ("kind" .= _expKind),
+                  ("created" .=) <$> _expCreated,
+                  ("reasonExperimentEnded" .=) <$>
+                    _expReasonExperimentEnded,
+                  ("trafficCoverage" .=) <$> _expTrafficCoverage,
+                  ("editableInGaUi" .=) <$> _expEditableInGaUi,
+                  ("minimumExperimentLengthInDays" .=) <$>
+                    _expMinimumExperimentLengthInDays,
+                  ("profileId" .=) <$> _expProFileId,
+                  ("optimizationType" .=) <$> _expOptimizationType,
+                  ("selfLink" .=) <$> _expSelfLink,
+                  ("accountId" .=) <$> _expAccountId,
+                  ("name" .=) <$> _expName,
+                  ("winnerFound" .=) <$> _expWinnerFound,
+                  ("endTime" .=) <$> _expEndTime,
+                  ("variations" .=) <$> _expVariations,
+                  ("internalWebPropertyId" .=) <$>
+                    _expInternalWebPropertyId,
+                  ("id" .=) <$> _expId, ("updated" .=) <$> _expUpdated,
+                  ("rewriteVariationUrlsAsOriginal" .=) <$>
+                    _expRewriteVariationURLsAsOriginal,
+                  ("objectiveMetric" .=) <$> _expObjectiveMetric,
+                  ("winnerConfidenceLevel" .=) <$>
+                    _expWinnerConfidenceLevel,
+                  ("servingFramework" .=) <$> _expServingFramework,
+                  ("description" .=) <$> _expDescription])
+
+-- | An entity user link collection provides a list of Analytics ACL links
+-- Each resource in this collection corresponds to a single link.
+--
+-- /See:/ 'entityUserLinks' smart constructor.
+data EntityUserLinks =
+  EntityUserLinks'
+    { _eulNextLink     :: !(Maybe Text)
+    , _eulItemsPerPage :: !(Maybe (Textual Int32))
+    , _eulKind         :: !Text
+    , _eulItems        :: !(Maybe [EntityUserLink])
+    , _eulTotalResults :: !(Maybe (Textual Int32))
+    , _eulStartIndex   :: !(Maybe (Textual Int32))
+    , _eulPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EntityUserLinks' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eulNextLink'
+--
+-- * 'eulItemsPerPage'
+--
+-- * 'eulKind'
+--
+-- * 'eulItems'
+--
+-- * 'eulTotalResults'
+--
+-- * 'eulStartIndex'
+--
+-- * 'eulPreviousLink'
+entityUserLinks
+    :: EntityUserLinks
+entityUserLinks =
+  EntityUserLinks'
+    { _eulNextLink = Nothing
+    , _eulItemsPerPage = Nothing
+    , _eulKind = "analytics#entityUserLinks"
+    , _eulItems = Nothing
+    , _eulTotalResults = Nothing
+    , _eulStartIndex = Nothing
+    , _eulPreviousLink = Nothing
+    }
+
+
+-- | Next link for this account collection.
+eulNextLink :: Lens' EntityUserLinks (Maybe Text)
+eulNextLink
+  = lens _eulNextLink (\ s a -> s{_eulNextLink = a})
+
+-- | The maximum number of entries the response can contain, regardless of
+-- the actual number of entries returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+eulItemsPerPage :: Lens' EntityUserLinks (Maybe Int32)
+eulItemsPerPage
+  = lens _eulItemsPerPage
+      (\ s a -> s{_eulItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+eulKind :: Lens' EntityUserLinks Text
+eulKind = lens _eulKind (\ s a -> s{_eulKind = a})
+
+-- | A list of entity user links.
+eulItems :: Lens' EntityUserLinks [EntityUserLink]
+eulItems
+  = lens _eulItems (\ s a -> s{_eulItems = a}) .
+      _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+eulTotalResults :: Lens' EntityUserLinks (Maybe Int32)
+eulTotalResults
+  = lens _eulTotalResults
+      (\ s a -> s{_eulTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the entries, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+eulStartIndex :: Lens' EntityUserLinks (Maybe Int32)
+eulStartIndex
+  = lens _eulStartIndex
+      (\ s a -> s{_eulStartIndex = a})
+      . mapping _Coerce
+
+-- | Previous link for this account collection.
+eulPreviousLink :: Lens' EntityUserLinks (Maybe Text)
+eulPreviousLink
+  = lens _eulPreviousLink
+      (\ s a -> s{_eulPreviousLink = a})
+
+instance FromJSON EntityUserLinks where
+        parseJSON
+          = withObject "EntityUserLinks"
+              (\ o ->
+                 EntityUserLinks' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#entityUserLinks")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON EntityUserLinks where
+        toJSON EntityUserLinks'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _eulNextLink,
+                  ("itemsPerPage" .=) <$> _eulItemsPerPage,
+                  Just ("kind" .= _eulKind),
+                  ("items" .=) <$> _eulItems,
+                  ("totalResults" .=) <$> _eulTotalResults,
+                  ("startIndex" .=) <$> _eulStartIndex,
+                  ("previousLink" .=) <$> _eulPreviousLink])
+
+-- | JSON template for an Google Ads account.
+--
+-- /See:/ 'adWordsAccount' smart constructor.
+data AdWordsAccount =
+  AdWordsAccount'
+    { _awaAutoTaggingEnabled :: !(Maybe Bool)
+    , _awaKind               :: !Text
+    , _awaCustomerId         :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AdWordsAccount' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'awaAutoTaggingEnabled'
+--
+-- * 'awaKind'
+--
+-- * 'awaCustomerId'
+adWordsAccount
+    :: AdWordsAccount
+adWordsAccount =
+  AdWordsAccount'
+    { _awaAutoTaggingEnabled = Nothing
+    , _awaKind = "analytics#adWordsAccount"
+    , _awaCustomerId = Nothing
+    }
+
+
+-- | True if auto-tagging is enabled on the Google Ads account. Read-only
+-- after the insert operation.
+awaAutoTaggingEnabled :: Lens' AdWordsAccount (Maybe Bool)
+awaAutoTaggingEnabled
+  = lens _awaAutoTaggingEnabled
+      (\ s a -> s{_awaAutoTaggingEnabled = a})
+
+-- | Resource type for Google Ads account.
+awaKind :: Lens' AdWordsAccount Text
+awaKind = lens _awaKind (\ s a -> s{_awaKind = a})
+
+-- | Customer ID. This field is required when creating a Google Ads link.
+awaCustomerId :: Lens' AdWordsAccount (Maybe Text)
+awaCustomerId
+  = lens _awaCustomerId
+      (\ s a -> s{_awaCustomerId = a})
+
+instance FromJSON AdWordsAccount where
+        parseJSON
+          = withObject "AdWordsAccount"
+              (\ o ->
+                 AdWordsAccount' <$>
+                   (o .:? "autoTaggingEnabled") <*>
+                     (o .:? "kind" .!= "analytics#adWordsAccount")
+                     <*> (o .:? "customerId"))
+
+instance ToJSON AdWordsAccount where
+        toJSON AdWordsAccount'{..}
+          = object
+              (catMaybes
+                 [("autoTaggingEnabled" .=) <$>
+                    _awaAutoTaggingEnabled,
+                  Just ("kind" .= _awaKind),
+                  ("customerId" .=) <$> _awaCustomerId])
+
+-- | JSON template for a profile filter link.
+--
+-- /See:/ 'filterRef' smart constructor.
+data FilterRef =
+  FilterRef'
+    { _frKind      :: !Text
+    , _frHref      :: !(Maybe Text)
+    , _frAccountId :: !(Maybe Text)
+    , _frName      :: !(Maybe Text)
+    , _frId        :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'FilterRef' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'frKind'
+--
+-- * 'frHref'
+--
+-- * 'frAccountId'
+--
+-- * 'frName'
+--
+-- * 'frId'
+filterRef
+    :: FilterRef
+filterRef =
+  FilterRef'
+    { _frKind = "analytics#filterRef"
+    , _frHref = Nothing
+    , _frAccountId = Nothing
+    , _frName = Nothing
+    , _frId = Nothing
+    }
+
+
+-- | Kind value for filter reference.
+frKind :: Lens' FilterRef Text
+frKind = lens _frKind (\ s a -> s{_frKind = a})
+
+-- | Link for this filter.
+frHref :: Lens' FilterRef (Maybe Text)
+frHref = lens _frHref (\ s a -> s{_frHref = a})
+
+-- | Account ID to which this filter belongs.
+frAccountId :: Lens' FilterRef (Maybe Text)
+frAccountId
+  = lens _frAccountId (\ s a -> s{_frAccountId = a})
+
+-- | Name of this filter.
+frName :: Lens' FilterRef (Maybe Text)
+frName = lens _frName (\ s a -> s{_frName = a})
+
+-- | Filter ID.
+frId :: Lens' FilterRef (Maybe Text)
+frId = lens _frId (\ s a -> s{_frId = a})
+
+instance FromJSON FilterRef where
+        parseJSON
+          = withObject "FilterRef"
+              (\ o ->
+                 FilterRef' <$>
+                   (o .:? "kind" .!= "analytics#filterRef") <*>
+                     (o .:? "href")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id"))
+
+instance ToJSON FilterRef where
+        toJSON FilterRef'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _frKind), ("href" .=) <$> _frHref,
+                  ("accountId" .=) <$> _frAccountId,
+                  ("name" .=) <$> _frName, ("id" .=) <$> _frId])
+
+-- | Details for the goal of the type VISIT_TIME_ON_SITE.
+--
+-- /See:/ 'goalVisitTimeOnSiteDetails' smart constructor.
+data GoalVisitTimeOnSiteDetails =
+  GoalVisitTimeOnSiteDetails'
+    { _gvtosdComparisonValue :: !(Maybe (Textual Int64))
+    , _gvtosdComparisonType  :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GoalVisitTimeOnSiteDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gvtosdComparisonValue'
+--
+-- * 'gvtosdComparisonType'
+goalVisitTimeOnSiteDetails
+    :: GoalVisitTimeOnSiteDetails
+goalVisitTimeOnSiteDetails =
+  GoalVisitTimeOnSiteDetails'
+    {_gvtosdComparisonValue = Nothing, _gvtosdComparisonType = Nothing}
+
+
+-- | Value used for this comparison.
+gvtosdComparisonValue :: Lens' GoalVisitTimeOnSiteDetails (Maybe Int64)
+gvtosdComparisonValue
+  = lens _gvtosdComparisonValue
+      (\ s a -> s{_gvtosdComparisonValue = a})
+      . mapping _Coerce
+
+-- | Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
+gvtosdComparisonType :: Lens' GoalVisitTimeOnSiteDetails (Maybe Text)
+gvtosdComparisonType
+  = lens _gvtosdComparisonType
+      (\ s a -> s{_gvtosdComparisonType = a})
+
+instance FromJSON GoalVisitTimeOnSiteDetails where
+        parseJSON
+          = withObject "GoalVisitTimeOnSiteDetails"
+              (\ o ->
+                 GoalVisitTimeOnSiteDetails' <$>
+                   (o .:? "comparisonValue") <*>
+                     (o .:? "comparisonType"))
+
+instance ToJSON GoalVisitTimeOnSiteDetails where
+        toJSON GoalVisitTimeOnSiteDetails'{..}
+          = object
+              (catMaybes
+                 [("comparisonValue" .=) <$> _gvtosdComparisonValue,
+                  ("comparisonType" .=) <$> _gvtosdComparisonType])
+
+-- | A web property collection lists Analytics web properties to which the
+-- user has access. Each resource in the collection corresponds to a single
+-- Analytics web property.
+--
+-- /See:/ 'webProperties' smart constructor.
+data WebProperties =
+  WebProperties'
+    { _wpNextLink     :: !(Maybe Text)
+    , _wpItemsPerPage :: !(Maybe (Textual Int32))
+    , _wpKind         :: !Text
+    , _wpUsername     :: !(Maybe Text)
+    , _wpItems        :: !(Maybe [WebProperty])
+    , _wpTotalResults :: !(Maybe (Textual Int32))
+    , _wpStartIndex   :: !(Maybe (Textual Int32))
+    , _wpPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'WebProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wpNextLink'
+--
+-- * 'wpItemsPerPage'
+--
+-- * 'wpKind'
+--
+-- * 'wpUsername'
+--
+-- * 'wpItems'
+--
+-- * 'wpTotalResults'
+--
+-- * 'wpStartIndex'
+--
+-- * 'wpPreviousLink'
+webProperties
+    :: WebProperties
+webProperties =
+  WebProperties'
+    { _wpNextLink = Nothing
+    , _wpItemsPerPage = Nothing
+    , _wpKind = "analytics#webproperties"
+    , _wpUsername = Nothing
+    , _wpItems = Nothing
+    , _wpTotalResults = Nothing
+    , _wpStartIndex = Nothing
+    , _wpPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this web property collection.
+wpNextLink :: Lens' WebProperties (Maybe Text)
+wpNextLink
+  = lens _wpNextLink (\ s a -> s{_wpNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+wpItemsPerPage :: Lens' WebProperties (Maybe Int32)
+wpItemsPerPage
+  = lens _wpItemsPerPage
+      (\ s a -> s{_wpItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+wpKind :: Lens' WebProperties Text
+wpKind = lens _wpKind (\ s a -> s{_wpKind = a})
+
+-- | Email ID of the authenticated user
+wpUsername :: Lens' WebProperties (Maybe Text)
+wpUsername
+  = lens _wpUsername (\ s a -> s{_wpUsername = a})
+
+-- | A list of web properties.
+wpItems :: Lens' WebProperties [WebProperty]
+wpItems
+  = lens _wpItems (\ s a -> s{_wpItems = a}) . _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+wpTotalResults :: Lens' WebProperties (Maybe Int32)
+wpTotalResults
+  = lens _wpTotalResults
+      (\ s a -> s{_wpTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+wpStartIndex :: Lens' WebProperties (Maybe Int32)
+wpStartIndex
+  = lens _wpStartIndex (\ s a -> s{_wpStartIndex = a})
+      . mapping _Coerce
+
+-- | Link to previous page for this web property collection.
+wpPreviousLink :: Lens' WebProperties (Maybe Text)
+wpPreviousLink
+  = lens _wpPreviousLink
+      (\ s a -> s{_wpPreviousLink = a})
+
+instance FromJSON WebProperties where
+        parseJSON
+          = withObject "WebProperties"
+              (\ o ->
+                 WebProperties' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#webproperties")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON WebProperties where
+        toJSON WebProperties'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _wpNextLink,
+                  ("itemsPerPage" .=) <$> _wpItemsPerPage,
+                  Just ("kind" .= _wpKind),
+                  ("username" .=) <$> _wpUsername,
+                  ("items" .=) <$> _wpItems,
+                  ("totalResults" .=) <$> _wpTotalResults,
+                  ("startIndex" .=) <$> _wpStartIndex,
+                  ("previousLink" .=) <$> _wpPreviousLink])
+
+-- | A custom metric collection lists Analytics custom metrics to which the
+-- user has access. Each resource in the collection corresponds to a single
+-- Analytics custom metric.
+--
+-- /See:/ 'customMetrics' smart constructor.
+data CustomMetrics =
+  CustomMetrics'
+    { _cmNextLink     :: !(Maybe Text)
+    , _cmItemsPerPage :: !(Maybe (Textual Int32))
+    , _cmKind         :: !Text
+    , _cmUsername     :: !(Maybe Text)
+    , _cmItems        :: !(Maybe [CustomMetric])
+    , _cmTotalResults :: !(Maybe (Textual Int32))
+    , _cmStartIndex   :: !(Maybe (Textual Int32))
+    , _cmPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CustomMetrics' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cmNextLink'
+--
+-- * 'cmItemsPerPage'
+--
+-- * 'cmKind'
+--
+-- * 'cmUsername'
+--
+-- * 'cmItems'
+--
+-- * 'cmTotalResults'
+--
+-- * 'cmStartIndex'
+--
+-- * 'cmPreviousLink'
+customMetrics
+    :: CustomMetrics
+customMetrics =
+  CustomMetrics'
+    { _cmNextLink = Nothing
+    , _cmItemsPerPage = Nothing
+    , _cmKind = "analytics#customMetrics"
+    , _cmUsername = Nothing
+    , _cmItems = Nothing
+    , _cmTotalResults = Nothing
+    , _cmStartIndex = Nothing
+    , _cmPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this custom metric collection.
+cmNextLink :: Lens' CustomMetrics (Maybe Text)
+cmNextLink
+  = lens _cmNextLink (\ s a -> s{_cmNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+cmItemsPerPage :: Lens' CustomMetrics (Maybe Int32)
+cmItemsPerPage
+  = lens _cmItemsPerPage
+      (\ s a -> s{_cmItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+cmKind :: Lens' CustomMetrics Text
+cmKind = lens _cmKind (\ s a -> s{_cmKind = a})
+
+-- | Email ID of the authenticated user
+cmUsername :: Lens' CustomMetrics (Maybe Text)
+cmUsername
+  = lens _cmUsername (\ s a -> s{_cmUsername = a})
+
+-- | Collection of custom metrics.
+cmItems :: Lens' CustomMetrics [CustomMetric]
+cmItems
+  = lens _cmItems (\ s a -> s{_cmItems = a}) . _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+cmTotalResults :: Lens' CustomMetrics (Maybe Int32)
+cmTotalResults
+  = lens _cmTotalResults
+      (\ s a -> s{_cmTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+cmStartIndex :: Lens' CustomMetrics (Maybe Int32)
+cmStartIndex
+  = lens _cmStartIndex (\ s a -> s{_cmStartIndex = a})
+      . mapping _Coerce
+
+-- | Link to previous page for this custom metric collection.
+cmPreviousLink :: Lens' CustomMetrics (Maybe Text)
+cmPreviousLink
+  = lens _cmPreviousLink
+      (\ s a -> s{_cmPreviousLink = a})
+
+instance FromJSON CustomMetrics where
+        parseJSON
+          = withObject "CustomMetrics"
+              (\ o ->
+                 CustomMetrics' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#customMetrics")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON CustomMetrics where
+        toJSON CustomMetrics'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _cmNextLink,
+                  ("itemsPerPage" .=) <$> _cmItemsPerPage,
+                  Just ("kind" .= _cmKind),
+                  ("username" .=) <$> _cmUsername,
+                  ("items" .=) <$> _cmItems,
+                  ("totalResults" .=) <$> _cmTotalResults,
+                  ("startIndex" .=) <$> _cmStartIndex,
+                  ("previousLink" .=) <$> _cmPreviousLink])
+
+-- | Details for the filter of the type ADVANCED.
+--
+-- /See:/ 'filterAdvancedDetails' smart constructor.
+data FilterAdvancedDetails =
+  FilterAdvancedDetails'
+    { _fadExtractA            :: !(Maybe Text)
+    , _fadFieldARequired      :: !(Maybe Bool)
+    , _fadFieldA              :: !(Maybe Text)
+    , _fadFieldBIndex         :: !(Maybe (Textual Int32))
+    , _fadOutputToField       :: !(Maybe Text)
+    , _fadOutputConstructor   :: !(Maybe Text)
+    , _fadExtractB            :: !(Maybe Text)
+    , _fadFieldAIndex         :: !(Maybe (Textual Int32))
+    , _fadCaseSensitive       :: !(Maybe Bool)
+    , _fadOutputToFieldIndex  :: !(Maybe (Textual Int32))
+    , _fadFieldB              :: !(Maybe Text)
+    , _fadFieldBRequired      :: !(Maybe Bool)
+    , _fadOverrideOutputField :: !(Maybe Bool)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'FilterAdvancedDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fadExtractA'
+--
+-- * 'fadFieldARequired'
+--
+-- * 'fadFieldA'
+--
+-- * 'fadFieldBIndex'
+--
+-- * 'fadOutputToField'
+--
+-- * 'fadOutputConstructor'
+--
+-- * 'fadExtractB'
+--
+-- * 'fadFieldAIndex'
+--
+-- * 'fadCaseSensitive'
+--
+-- * 'fadOutputToFieldIndex'
+--
+-- * 'fadFieldB'
+--
+-- * 'fadFieldBRequired'
+--
+-- * 'fadOverrideOutputField'
+filterAdvancedDetails
+    :: FilterAdvancedDetails
+filterAdvancedDetails =
+  FilterAdvancedDetails'
+    { _fadExtractA = Nothing
+    , _fadFieldARequired = Nothing
+    , _fadFieldA = Nothing
+    , _fadFieldBIndex = Nothing
+    , _fadOutputToField = Nothing
+    , _fadOutputConstructor = Nothing
+    , _fadExtractB = Nothing
+    , _fadFieldAIndex = Nothing
+    , _fadCaseSensitive = Nothing
+    , _fadOutputToFieldIndex = Nothing
+    , _fadFieldB = Nothing
+    , _fadFieldBRequired = Nothing
+    , _fadOverrideOutputField = Nothing
+    }
+
+
+-- | Expression to extract from field A.
+fadExtractA :: Lens' FilterAdvancedDetails (Maybe Text)
+fadExtractA
+  = lens _fadExtractA (\ s a -> s{_fadExtractA = a})
+
+-- | Indicates if field A is required to match.
+fadFieldARequired :: Lens' FilterAdvancedDetails (Maybe Bool)
+fadFieldARequired
+  = lens _fadFieldARequired
+      (\ s a -> s{_fadFieldARequired = a})
+
+-- | Field A.
+fadFieldA :: Lens' FilterAdvancedDetails (Maybe Text)
+fadFieldA
+  = lens _fadFieldA (\ s a -> s{_fadFieldA = a})
+
+-- | The Index of the custom dimension. Required if field is a
+-- CUSTOM_DIMENSION.
+fadFieldBIndex :: Lens' FilterAdvancedDetails (Maybe Int32)
+fadFieldBIndex
+  = lens _fadFieldBIndex
+      (\ s a -> s{_fadFieldBIndex = a})
+      . mapping _Coerce
+
+-- | Output field.
+fadOutputToField :: Lens' FilterAdvancedDetails (Maybe Text)
+fadOutputToField
+  = lens _fadOutputToField
+      (\ s a -> s{_fadOutputToField = a})
+
+-- | Expression used to construct the output value.
+fadOutputConstructor :: Lens' FilterAdvancedDetails (Maybe Text)
+fadOutputConstructor
+  = lens _fadOutputConstructor
+      (\ s a -> s{_fadOutputConstructor = a})
+
+-- | Expression to extract from field B.
+fadExtractB :: Lens' FilterAdvancedDetails (Maybe Text)
+fadExtractB
+  = lens _fadExtractB (\ s a -> s{_fadExtractB = a})
+
+-- | The Index of the custom dimension. Required if field is a
+-- CUSTOM_DIMENSION.
+fadFieldAIndex :: Lens' FilterAdvancedDetails (Maybe Int32)
+fadFieldAIndex
+  = lens _fadFieldAIndex
+      (\ s a -> s{_fadFieldAIndex = a})
+      . mapping _Coerce
+
+-- | Indicates if the filter expressions are case sensitive.
+fadCaseSensitive :: Lens' FilterAdvancedDetails (Maybe Bool)
+fadCaseSensitive
+  = lens _fadCaseSensitive
+      (\ s a -> s{_fadCaseSensitive = a})
+
+-- | The Index of the custom dimension. Required if field is a
+-- CUSTOM_DIMENSION.
+fadOutputToFieldIndex :: Lens' FilterAdvancedDetails (Maybe Int32)
+fadOutputToFieldIndex
+  = lens _fadOutputToFieldIndex
+      (\ s a -> s{_fadOutputToFieldIndex = a})
+      . mapping _Coerce
+
+-- | Field B.
+fadFieldB :: Lens' FilterAdvancedDetails (Maybe Text)
+fadFieldB
+  = lens _fadFieldB (\ s a -> s{_fadFieldB = a})
+
+-- | Indicates if field B is required to match.
+fadFieldBRequired :: Lens' FilterAdvancedDetails (Maybe Bool)
+fadFieldBRequired
+  = lens _fadFieldBRequired
+      (\ s a -> s{_fadFieldBRequired = a})
+
+-- | Indicates if the existing value of the output field, if any, should be
+-- overridden by the output expression.
+fadOverrideOutputField :: Lens' FilterAdvancedDetails (Maybe Bool)
+fadOverrideOutputField
+  = lens _fadOverrideOutputField
+      (\ s a -> s{_fadOverrideOutputField = a})
+
+instance FromJSON FilterAdvancedDetails where
+        parseJSON
+          = withObject "FilterAdvancedDetails"
+              (\ o ->
+                 FilterAdvancedDetails' <$>
+                   (o .:? "extractA") <*> (o .:? "fieldARequired") <*>
+                     (o .:? "fieldA")
+                     <*> (o .:? "fieldBIndex")
+                     <*> (o .:? "outputToField")
+                     <*> (o .:? "outputConstructor")
+                     <*> (o .:? "extractB")
+                     <*> (o .:? "fieldAIndex")
+                     <*> (o .:? "caseSensitive")
+                     <*> (o .:? "outputToFieldIndex")
+                     <*> (o .:? "fieldB")
+                     <*> (o .:? "fieldBRequired")
+                     <*> (o .:? "overrideOutputField"))
+
+instance ToJSON FilterAdvancedDetails where
+        toJSON FilterAdvancedDetails'{..}
+          = object
+              (catMaybes
+                 [("extractA" .=) <$> _fadExtractA,
+                  ("fieldARequired" .=) <$> _fadFieldARequired,
+                  ("fieldA" .=) <$> _fadFieldA,
+                  ("fieldBIndex" .=) <$> _fadFieldBIndex,
+                  ("outputToField" .=) <$> _fadOutputToField,
+                  ("outputConstructor" .=) <$> _fadOutputConstructor,
+                  ("extractB" .=) <$> _fadExtractB,
+                  ("fieldAIndex" .=) <$> _fadFieldAIndex,
+                  ("caseSensitive" .=) <$> _fadCaseSensitive,
+                  ("outputToFieldIndex" .=) <$> _fadOutputToFieldIndex,
+                  ("fieldB" .=) <$> _fadFieldB,
+                  ("fieldBRequired" .=) <$> _fadFieldBRequired,
+                  ("overrideOutputField" .=) <$>
+                    _fadOverrideOutputField])
+
+-- | JSON template for an Analytics account tree response. The account tree
+-- response is used in the provisioning api to return the result of
+-- creating an account, property, and view (profile).
+--
+-- /See:/ 'accountTreeResponse' smart constructor.
+data AccountTreeResponse =
+  AccountTreeResponse'
+    { _atrtKind        :: !Text
+    , _atrtProFile     :: !(Maybe ProFile)
+    , _atrtAccount     :: !(Maybe Account)
+    , _atrtWebProperty :: !(Maybe WebProperty)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AccountTreeResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'atrtKind'
+--
+-- * 'atrtProFile'
+--
+-- * 'atrtAccount'
+--
+-- * 'atrtWebProperty'
+accountTreeResponse
+    :: AccountTreeResponse
+accountTreeResponse =
+  AccountTreeResponse'
+    { _atrtKind = "analytics#accountTreeResponse"
+    , _atrtProFile = Nothing
+    , _atrtAccount = Nothing
+    , _atrtWebProperty = Nothing
+    }
+
+
+-- | Resource type for account ticket.
+atrtKind :: Lens' AccountTreeResponse Text
+atrtKind = lens _atrtKind (\ s a -> s{_atrtKind = a})
+
+-- | View (Profile) for the account.
+atrtProFile :: Lens' AccountTreeResponse (Maybe ProFile)
+atrtProFile
+  = lens _atrtProFile (\ s a -> s{_atrtProFile = a})
+
+-- | The account created.
+atrtAccount :: Lens' AccountTreeResponse (Maybe Account)
+atrtAccount
+  = lens _atrtAccount (\ s a -> s{_atrtAccount = a})
+
+-- | Web property for the account.
+atrtWebProperty :: Lens' AccountTreeResponse (Maybe WebProperty)
+atrtWebProperty
+  = lens _atrtWebProperty
+      (\ s a -> s{_atrtWebProperty = a})
+
+instance FromJSON AccountTreeResponse where
+        parseJSON
+          = withObject "AccountTreeResponse"
+              (\ o ->
+                 AccountTreeResponse' <$>
+                   (o .:? "kind" .!= "analytics#accountTreeResponse")
+                     <*> (o .:? "profile")
+                     <*> (o .:? "account")
+                     <*> (o .:? "webproperty"))
+
+instance ToJSON AccountTreeResponse where
+        toJSON AccountTreeResponse'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _atrtKind),
+                  ("profile" .=) <$> _atrtProFile,
+                  ("account" .=) <$> _atrtAccount,
+                  ("webproperty" .=) <$> _atrtWebProperty])
+
+-- | Details for the filter of the type UPPER.
+--
+-- /See:/ 'filterUppercaseDetails' smart constructor.
+data FilterUppercaseDetails =
+  FilterUppercaseDetails'
+    { _fudFieldIndex :: !(Maybe (Textual Int32))
+    , _fudField      :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'FilterUppercaseDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fudFieldIndex'
+--
+-- * 'fudField'
+filterUppercaseDetails
+    :: FilterUppercaseDetails
+filterUppercaseDetails =
+  FilterUppercaseDetails' {_fudFieldIndex = Nothing, _fudField = Nothing}
+
+
+-- | The Index of the custom dimension. Required if field is a
+-- CUSTOM_DIMENSION.
+fudFieldIndex :: Lens' FilterUppercaseDetails (Maybe Int32)
+fudFieldIndex
+  = lens _fudFieldIndex
+      (\ s a -> s{_fudFieldIndex = a})
+      . mapping _Coerce
+
+-- | Field to use in the filter.
+fudField :: Lens' FilterUppercaseDetails (Maybe Text)
+fudField = lens _fudField (\ s a -> s{_fudField = a})
+
+instance FromJSON FilterUppercaseDetails where
+        parseJSON
+          = withObject "FilterUppercaseDetails"
+              (\ o ->
+                 FilterUppercaseDetails' <$>
+                   (o .:? "fieldIndex") <*> (o .:? "field"))
+
+instance ToJSON FilterUppercaseDetails where
+        toJSON FilterUppercaseDetails'{..}
+          = object
+              (catMaybes
+                 [("fieldIndex" .=) <$> _fudFieldIndex,
+                  ("field" .=) <$> _fudField])
+
+--
+-- /See:/ 'customDataSourceChildLink' smart constructor.
+data CustomDataSourceChildLink =
+  CustomDataSourceChildLink'
+    { _cdsclHref :: !(Maybe Text)
+    , _cdsclType :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CustomDataSourceChildLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdsclHref'
+--
+-- * 'cdsclType'
+customDataSourceChildLink
+    :: CustomDataSourceChildLink
+customDataSourceChildLink =
+  CustomDataSourceChildLink' {_cdsclHref = Nothing, _cdsclType = Nothing}
+
+
+-- | Link to the list of daily uploads for this custom data source. Link to
+-- the list of uploads for this custom data source.
+cdsclHref :: Lens' CustomDataSourceChildLink (Maybe Text)
+cdsclHref
+  = lens _cdsclHref (\ s a -> s{_cdsclHref = a})
+
+-- | Value is \"analytics#dailyUploads\". Value is \"analytics#uploads\".
+cdsclType :: Lens' CustomDataSourceChildLink (Maybe Text)
+cdsclType
+  = lens _cdsclType (\ s a -> s{_cdsclType = a})
+
+instance FromJSON CustomDataSourceChildLink where
+        parseJSON
+          = withObject "CustomDataSourceChildLink"
+              (\ o ->
+                 CustomDataSourceChildLink' <$>
+                   (o .:? "href") <*> (o .:? "type"))
+
+instance ToJSON CustomDataSourceChildLink where
+        toJSON CustomDataSourceChildLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _cdsclHref,
+                  ("type" .=) <$> _cdsclType])
+
+-- | JSON template for an Analytics Remarketing Include Conditions.
+--
+-- /See:/ 'includeConditions' smart constructor.
+data IncludeConditions =
+  IncludeConditions'
+    { _icKind                   :: !Text
+    , _icDaysToLookBack         :: !(Maybe (Textual Int32))
+    , _icMembershipDurationDays :: !(Maybe (Textual Int32))
+    , _icSegment                :: !(Maybe Text)
+    , _icIsSmartList            :: !(Maybe Bool)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'IncludeConditions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'icKind'
+--
+-- * 'icDaysToLookBack'
+--
+-- * 'icMembershipDurationDays'
+--
+-- * 'icSegment'
+--
+-- * 'icIsSmartList'
+includeConditions
+    :: IncludeConditions
+includeConditions =
+  IncludeConditions'
+    { _icKind = "analytics#includeConditions"
+    , _icDaysToLookBack = Nothing
+    , _icMembershipDurationDays = Nothing
+    , _icSegment = Nothing
+    , _icIsSmartList = Nothing
+    }
+
+
+-- | Resource type for include conditions.
+icKind :: Lens' IncludeConditions Text
+icKind = lens _icKind (\ s a -> s{_icKind = a})
+
+-- | The look-back window lets you specify a time frame for evaluating the
+-- behavior that qualifies users for your audience. For example, if your
+-- filters include users from Central Asia, and Transactions Greater than
+-- 2, and you set the look-back window to 14 days, then any user from
+-- Central Asia whose cumulative transactions exceed 2 during the last 14
+-- days is added to the audience.
+icDaysToLookBack :: Lens' IncludeConditions (Maybe Int32)
+icDaysToLookBack
+  = lens _icDaysToLookBack
+      (\ s a -> s{_icDaysToLookBack = a})
+      . mapping _Coerce
+
+-- | Number of days (in the range 1 to 540) a user remains in the audience.
+icMembershipDurationDays :: Lens' IncludeConditions (Maybe Int32)
+icMembershipDurationDays
+  = lens _icMembershipDurationDays
+      (\ s a -> s{_icMembershipDurationDays = a})
+      . mapping _Coerce
+
+-- | The segment condition that will cause a user to be added to an audience.
+icSegment :: Lens' IncludeConditions (Maybe Text)
+icSegment
+  = lens _icSegment (\ s a -> s{_icSegment = a})
+
+-- | Boolean indicating whether this segment is a smart list.
+-- https:\/\/support.google.com\/analytics\/answer\/4628577
+icIsSmartList :: Lens' IncludeConditions (Maybe Bool)
+icIsSmartList
+  = lens _icIsSmartList
+      (\ s a -> s{_icIsSmartList = a})
+
+instance FromJSON IncludeConditions where
+        parseJSON
+          = withObject "IncludeConditions"
+              (\ o ->
+                 IncludeConditions' <$>
+                   (o .:? "kind" .!= "analytics#includeConditions") <*>
+                     (o .:? "daysToLookBack")
+                     <*> (o .:? "membershipDurationDays")
+                     <*> (o .:? "segment")
+                     <*> (o .:? "isSmartList"))
+
+instance ToJSON IncludeConditions where
+        toJSON IncludeConditions'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _icKind),
+                  ("daysToLookBack" .=) <$> _icDaysToLookBack,
+                  ("membershipDurationDays" .=) <$>
+                    _icMembershipDurationDays,
+                  ("segment" .=) <$> _icSegment,
+                  ("isSmartList" .=) <$> _icIsSmartList])
+
+-- | Parent link for this filter. Points to the account to which this filter
+-- belongs.
+--
+-- /See:/ 'filterParentLink' smart constructor.
+data FilterParentLink =
+  FilterParentLink'
+    { _fplHref :: !(Maybe Text)
+    , _fplType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'FilterParentLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fplHref'
+--
+-- * 'fplType'
+filterParentLink
+    :: FilterParentLink
+filterParentLink =
+  FilterParentLink' {_fplHref = Nothing, _fplType = "analytics#account"}
+
+
+-- | Link to the account to which this filter belongs.
+fplHref :: Lens' FilterParentLink (Maybe Text)
+fplHref = lens _fplHref (\ s a -> s{_fplHref = a})
+
+-- | Value is \"analytics#account\".
+fplType :: Lens' FilterParentLink Text
+fplType = lens _fplType (\ s a -> s{_fplType = a})
+
+instance FromJSON FilterParentLink where
+        parseJSON
+          = withObject "FilterParentLink"
+              (\ o ->
+                 FilterParentLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#account"))
+
+instance ToJSON FilterParentLink where
+        toJSON FilterParentLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _fplHref,
+                  Just ("type" .= _fplType)])
+
+-- | JSON template for a hash Client Id request resource.
+--
+-- /See:/ 'hashClientIdRequest' smart constructor.
+data HashClientIdRequest =
+  HashClientIdRequest'
+    { _hClientId      :: !(Maybe Text)
+    , _hWebPropertyId :: !(Maybe Text)
+    , _hKind          :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'HashClientIdRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'hClientId'
+--
+-- * 'hWebPropertyId'
+--
+-- * 'hKind'
+hashClientIdRequest
+    :: HashClientIdRequest
+hashClientIdRequest =
+  HashClientIdRequest'
+    { _hClientId = Nothing
+    , _hWebPropertyId = Nothing
+    , _hKind = "analytics#hashClientIdRequest"
+    }
+
+
+hClientId :: Lens' HashClientIdRequest (Maybe Text)
+hClientId
+  = lens _hClientId (\ s a -> s{_hClientId = a})
+
+hWebPropertyId :: Lens' HashClientIdRequest (Maybe Text)
+hWebPropertyId
+  = lens _hWebPropertyId
+      (\ s a -> s{_hWebPropertyId = a})
+
+hKind :: Lens' HashClientIdRequest Text
+hKind = lens _hKind (\ s a -> s{_hKind = a})
+
+instance FromJSON HashClientIdRequest where
+        parseJSON
+          = withObject "HashClientIdRequest"
+              (\ o ->
+                 HashClientIdRequest' <$>
+                   (o .:? "clientId") <*> (o .:? "webPropertyId") <*>
+                     (o .:? "kind" .!= "analytics#hashClientIdRequest"))
+
+instance ToJSON HashClientIdRequest where
+        toJSON HashClientIdRequest'{..}
+          = object
+              (catMaybes
+                 [("clientId" .=) <$> _hClientId,
+                  ("webPropertyId" .=) <$> _hWebPropertyId,
+                  Just ("kind" .= _hKind)])
+
+-- | Real time data for a given view (profile).
+--
+-- /See:/ 'realtimeData' smart constructor.
+data RealtimeData =
+  RealtimeData'
+    { _rdProFileInfo         :: !(Maybe RealtimeDataProFileInfo)
+    , _rdKind                :: !Text
+    , _rdRows                :: !(Maybe [[Text]])
+    , _rdSelfLink            :: !(Maybe Text)
+    , _rdQuery               :: !(Maybe RealtimeDataQuery)
+    , _rdColumnHeaders       :: !(Maybe [RealtimeDataColumnHeadersItem])
+    , _rdId                  :: !(Maybe Text)
+    , _rdTotalResults        :: !(Maybe (Textual Int32))
+    , _rdTotalsForAllResults :: !(Maybe RealtimeDataTotalsForAllResults)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RealtimeData' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdProFileInfo'
+--
+-- * 'rdKind'
+--
+-- * 'rdRows'
+--
+-- * 'rdSelfLink'
+--
+-- * 'rdQuery'
+--
+-- * 'rdColumnHeaders'
+--
+-- * 'rdId'
+--
+-- * 'rdTotalResults'
+--
+-- * 'rdTotalsForAllResults'
+realtimeData
+    :: RealtimeData
+realtimeData =
+  RealtimeData'
+    { _rdProFileInfo = Nothing
+    , _rdKind = "analytics#realtimeData"
+    , _rdRows = Nothing
+    , _rdSelfLink = Nothing
+    , _rdQuery = Nothing
+    , _rdColumnHeaders = Nothing
+    , _rdId = Nothing
+    , _rdTotalResults = Nothing
+    , _rdTotalsForAllResults = Nothing
+    }
+
+
+-- | Information for the view (profile), for which the real time data was
+-- requested.
+rdProFileInfo :: Lens' RealtimeData (Maybe RealtimeDataProFileInfo)
+rdProFileInfo
+  = lens _rdProFileInfo
+      (\ s a -> s{_rdProFileInfo = a})
+
+-- | Resource type.
+rdKind :: Lens' RealtimeData Text
+rdKind = lens _rdKind (\ s a -> s{_rdKind = a})
+
+-- | Real time data rows, where each row contains a list of dimension values
+-- followed by the metric values. The order of dimensions and metrics is
+-- same as specified in the request.
+rdRows :: Lens' RealtimeData [[Text]]
+rdRows
+  = lens _rdRows (\ s a -> s{_rdRows = a}) . _Default .
+      _Coerce
+
+-- | Link to this page.
+rdSelfLink :: Lens' RealtimeData (Maybe Text)
+rdSelfLink
+  = lens _rdSelfLink (\ s a -> s{_rdSelfLink = a})
+
+-- | Real time data request query parameters.
+rdQuery :: Lens' RealtimeData (Maybe RealtimeDataQuery)
+rdQuery = lens _rdQuery (\ s a -> s{_rdQuery = a})
+
+-- | Column headers that list dimension names followed by the metric names.
+-- The order of dimensions and metrics is same as specified in the request.
+rdColumnHeaders :: Lens' RealtimeData [RealtimeDataColumnHeadersItem]
+rdColumnHeaders
+  = lens _rdColumnHeaders
+      (\ s a -> s{_rdColumnHeaders = a})
+      . _Default
+      . _Coerce
+
+-- | Unique ID for this data response.
+rdId :: Lens' RealtimeData (Maybe Text)
+rdId = lens _rdId (\ s a -> s{_rdId = a})
+
+-- | The total number of rows for the query, regardless of the number of rows
+-- in the response.
+rdTotalResults :: Lens' RealtimeData (Maybe Int32)
+rdTotalResults
+  = lens _rdTotalResults
+      (\ s a -> s{_rdTotalResults = a})
+      . mapping _Coerce
+
+-- | Total values for the requested metrics over all the results, not just
+-- the results returned in this response. The order of the metric totals is
+-- same as the metric order specified in the request.
+rdTotalsForAllResults :: Lens' RealtimeData (Maybe RealtimeDataTotalsForAllResults)
+rdTotalsForAllResults
+  = lens _rdTotalsForAllResults
+      (\ s a -> s{_rdTotalsForAllResults = a})
+
+instance FromJSON RealtimeData where
+        parseJSON
+          = withObject "RealtimeData"
+              (\ o ->
+                 RealtimeData' <$>
+                   (o .:? "profileInfo") <*>
+                     (o .:? "kind" .!= "analytics#realtimeData")
+                     <*> (o .:? "rows" .!= mempty)
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "query")
+                     <*> (o .:? "columnHeaders" .!= mempty)
+                     <*> (o .:? "id")
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "totalsForAllResults"))
+
+instance ToJSON RealtimeData where
+        toJSON RealtimeData'{..}
+          = object
+              (catMaybes
+                 [("profileInfo" .=) <$> _rdProFileInfo,
+                  Just ("kind" .= _rdKind), ("rows" .=) <$> _rdRows,
+                  ("selfLink" .=) <$> _rdSelfLink,
+                  ("query" .=) <$> _rdQuery,
+                  ("columnHeaders" .=) <$> _rdColumnHeaders,
+                  ("id" .=) <$> _rdId,
+                  ("totalResults" .=) <$> _rdTotalResults,
+                  ("totalsForAllResults" .=) <$>
+                    _rdTotalsForAllResults])
+
+-- | JSON template for Analytics Custom Metric.
+--
+-- /See:/ 'customMetric' smart constructor.
+data CustomMetric =
+  CustomMetric'
+    { _cusParentLink    :: !(Maybe CustomMetricParentLink)
+    , _cusWebPropertyId :: !(Maybe Text)
+    , _cusKind          :: !Text
+    , _cusMaxValue      :: !(Maybe Text)
+    , _cusCreated       :: !(Maybe DateTime')
+    , _cusMinValue      :: !(Maybe Text)
+    , _cusActive        :: !(Maybe Bool)
+    , _cusSelfLink      :: !(Maybe Text)
+    , _cusAccountId     :: !(Maybe Text)
+    , _cusName          :: !(Maybe Text)
+    , _cusScope         :: !(Maybe Text)
+    , _cusId            :: !(Maybe Text)
+    , _cusUpdated       :: !(Maybe DateTime')
+    , _cusType          :: !(Maybe Text)
+    , _cusIndex         :: !(Maybe (Textual Int32))
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CustomMetric' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cusParentLink'
+--
+-- * 'cusWebPropertyId'
+--
+-- * 'cusKind'
+--
+-- * 'cusMaxValue'
+--
+-- * 'cusCreated'
+--
+-- * 'cusMinValue'
+--
+-- * 'cusActive'
+--
+-- * 'cusSelfLink'
+--
+-- * 'cusAccountId'
+--
+-- * 'cusName'
+--
+-- * 'cusScope'
+--
+-- * 'cusId'
+--
+-- * 'cusUpdated'
+--
+-- * 'cusType'
+--
+-- * 'cusIndex'
+customMetric
+    :: CustomMetric
+customMetric =
+  CustomMetric'
+    { _cusParentLink = Nothing
+    , _cusWebPropertyId = Nothing
+    , _cusKind = "analytics#customMetric"
+    , _cusMaxValue = Nothing
+    , _cusCreated = Nothing
+    , _cusMinValue = Nothing
+    , _cusActive = Nothing
+    , _cusSelfLink = Nothing
+    , _cusAccountId = Nothing
+    , _cusName = Nothing
+    , _cusScope = Nothing
+    , _cusId = Nothing
+    , _cusUpdated = Nothing
+    , _cusType = Nothing
+    , _cusIndex = Nothing
+    }
+
+
+-- | Parent link for the custom metric. Points to the property to which the
+-- custom metric belongs.
+cusParentLink :: Lens' CustomMetric (Maybe CustomMetricParentLink)
+cusParentLink
+  = lens _cusParentLink
+      (\ s a -> s{_cusParentLink = a})
+
+-- | Property ID.
+cusWebPropertyId :: Lens' CustomMetric (Maybe Text)
+cusWebPropertyId
+  = lens _cusWebPropertyId
+      (\ s a -> s{_cusWebPropertyId = a})
+
+-- | Kind value for a custom metric. Set to \"analytics#customMetric\". It is
+-- a read-only field.
+cusKind :: Lens' CustomMetric Text
+cusKind = lens _cusKind (\ s a -> s{_cusKind = a})
+
+-- | Max value of custom metric.
+cusMaxValue :: Lens' CustomMetric (Maybe Text)
+cusMaxValue
+  = lens _cusMaxValue (\ s a -> s{_cusMaxValue = a})
+
+-- | Time the custom metric was created.
+cusCreated :: Lens' CustomMetric (Maybe UTCTime)
+cusCreated
+  = lens _cusCreated (\ s a -> s{_cusCreated = a}) .
+      mapping _DateTime
+
+-- | Min value of custom metric.
+cusMinValue :: Lens' CustomMetric (Maybe Text)
+cusMinValue
+  = lens _cusMinValue (\ s a -> s{_cusMinValue = a})
+
+-- | Boolean indicating whether the custom metric is active.
+cusActive :: Lens' CustomMetric (Maybe Bool)
+cusActive
+  = lens _cusActive (\ s a -> s{_cusActive = a})
+
+-- | Link for the custom metric
+cusSelfLink :: Lens' CustomMetric (Maybe Text)
+cusSelfLink
+  = lens _cusSelfLink (\ s a -> s{_cusSelfLink = a})
+
+-- | Account ID.
+cusAccountId :: Lens' CustomMetric (Maybe Text)
+cusAccountId
+  = lens _cusAccountId (\ s a -> s{_cusAccountId = a})
+
+-- | Name of the custom metric.
+cusName :: Lens' CustomMetric (Maybe Text)
+cusName = lens _cusName (\ s a -> s{_cusName = a})
+
+-- | Scope of the custom metric: HIT or PRODUCT.
+cusScope :: Lens' CustomMetric (Maybe Text)
+cusScope = lens _cusScope (\ s a -> s{_cusScope = a})
+
+-- | Custom metric ID.
+cusId :: Lens' CustomMetric (Maybe Text)
+cusId = lens _cusId (\ s a -> s{_cusId = a})
+
+-- | Time the custom metric was last modified.
+cusUpdated :: Lens' CustomMetric (Maybe UTCTime)
+cusUpdated
+  = lens _cusUpdated (\ s a -> s{_cusUpdated = a}) .
+      mapping _DateTime
+
+-- | Data type of custom metric.
+cusType :: Lens' CustomMetric (Maybe Text)
+cusType = lens _cusType (\ s a -> s{_cusType = a})
+
+-- | Index of the custom metric.
+cusIndex :: Lens' CustomMetric (Maybe Int32)
+cusIndex
+  = lens _cusIndex (\ s a -> s{_cusIndex = a}) .
+      mapping _Coerce
+
+instance FromJSON CustomMetric where
+        parseJSON
+          = withObject "CustomMetric"
+              (\ o ->
+                 CustomMetric' <$>
+                   (o .:? "parentLink") <*> (o .:? "webPropertyId") <*>
+                     (o .:? "kind" .!= "analytics#customMetric")
+                     <*> (o .:? "max_value")
+                     <*> (o .:? "created")
+                     <*> (o .:? "min_value")
+                     <*> (o .:? "active")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "scope")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "type")
+                     <*> (o .:? "index"))
+
+instance ToJSON CustomMetric where
+        toJSON CustomMetric'{..}
+          = object
+              (catMaybes
+                 [("parentLink" .=) <$> _cusParentLink,
+                  ("webPropertyId" .=) <$> _cusWebPropertyId,
+                  Just ("kind" .= _cusKind),
+                  ("max_value" .=) <$> _cusMaxValue,
+                  ("created" .=) <$> _cusCreated,
+                  ("min_value" .=) <$> _cusMinValue,
+                  ("active" .=) <$> _cusActive,
+                  ("selfLink" .=) <$> _cusSelfLink,
+                  ("accountId" .=) <$> _cusAccountId,
+                  ("name" .=) <$> _cusName, ("scope" .=) <$> _cusScope,
+                  ("id" .=) <$> _cusId, ("updated" .=) <$> _cusUpdated,
+                  ("type" .=) <$> _cusType,
+                  ("index" .=) <$> _cusIndex])
+
+-- | JSON template for an Analytics ProfileSummary. ProfileSummary returns
+-- basic information (i.e., summary) for a profile.
+--
+-- /See:/ 'proFileSummary' smart constructor.
+data ProFileSummary =
+  ProFileSummary'
+    { _pfsKind    :: !Text
+    , _pfsName    :: !(Maybe Text)
+    , _pfsStarred :: !(Maybe Bool)
+    , _pfsId      :: !(Maybe Text)
+    , _pfsType    :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ProFileSummary' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pfsKind'
+--
+-- * 'pfsName'
+--
+-- * 'pfsStarred'
+--
+-- * 'pfsId'
+--
+-- * 'pfsType'
+proFileSummary
+    :: ProFileSummary
+proFileSummary =
+  ProFileSummary'
+    { _pfsKind = "analytics#profileSummary"
+    , _pfsName = Nothing
+    , _pfsStarred = Nothing
+    , _pfsId = Nothing
+    , _pfsType = Nothing
+    }
+
+
+-- | Resource type for Analytics ProfileSummary.
+pfsKind :: Lens' ProFileSummary Text
+pfsKind = lens _pfsKind (\ s a -> s{_pfsKind = a})
+
+-- | View (profile) name.
+pfsName :: Lens' ProFileSummary (Maybe Text)
+pfsName = lens _pfsName (\ s a -> s{_pfsName = a})
+
+-- | Indicates whether this view (profile) is starred or not.
+pfsStarred :: Lens' ProFileSummary (Maybe Bool)
+pfsStarred
+  = lens _pfsStarred (\ s a -> s{_pfsStarred = a})
+
+-- | View (profile) ID.
+pfsId :: Lens' ProFileSummary (Maybe Text)
+pfsId = lens _pfsId (\ s a -> s{_pfsId = a})
+
+-- | View (Profile) type. Supported types: WEB or APP.
+pfsType :: Lens' ProFileSummary (Maybe Text)
+pfsType = lens _pfsType (\ s a -> s{_pfsType = a})
+
+instance FromJSON ProFileSummary where
+        parseJSON
+          = withObject "ProFileSummary"
+              (\ o ->
+                 ProFileSummary' <$>
+                   (o .:? "kind" .!= "analytics#profileSummary") <*>
+                     (o .:? "name")
+                     <*> (o .:? "starred")
+                     <*> (o .:? "id")
+                     <*> (o .:? "type"))
+
+instance ToJSON ProFileSummary where
+        toJSON ProFileSummary'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _pfsKind), ("name" .=) <$> _pfsName,
+                  ("starred" .=) <$> _pfsStarred, ("id" .=) <$> _pfsId,
+                  ("type" .=) <$> _pfsType])
+
+-- | Parent link for the custom dimension. Points to the property to which
+-- the custom dimension belongs.
+--
+-- /See:/ 'customDimensionParentLink' smart constructor.
+data CustomDimensionParentLink =
+  CustomDimensionParentLink'
+    { _cdplHref :: !(Maybe Text)
+    , _cdplType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CustomDimensionParentLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdplHref'
+--
+-- * 'cdplType'
+customDimensionParentLink
+    :: CustomDimensionParentLink
+customDimensionParentLink =
+  CustomDimensionParentLink'
+    {_cdplHref = Nothing, _cdplType = "analytics#webproperty"}
+
+
+-- | Link to the property to which the custom dimension belongs.
+cdplHref :: Lens' CustomDimensionParentLink (Maybe Text)
+cdplHref = lens _cdplHref (\ s a -> s{_cdplHref = a})
+
+-- | Type of the parent link. Set to \"analytics#webproperty\".
+cdplType :: Lens' CustomDimensionParentLink Text
+cdplType = lens _cdplType (\ s a -> s{_cdplType = a})
+
+instance FromJSON CustomDimensionParentLink where
+        parseJSON
+          = withObject "CustomDimensionParentLink"
+              (\ o ->
+                 CustomDimensionParentLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#webproperty"))
+
+instance ToJSON CustomDimensionParentLink where
+        toJSON CustomDimensionParentLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _cdplHref,
+                  Just ("type" .= _cdplType)])
+
+-- | JSON template for an Analytics web property.
+--
+-- /See:/ 'webProperty' smart constructor.
+data WebProperty =
+  WebProperty'
+    { _wParentLink                      :: !(Maybe WebPropertyParentLink)
+    , _wChildLink                       :: !(Maybe WebPropertyChildLink)
+    , _wDefaultProFileId                :: !(Maybe (Textual Int64))
+    , _wKind                            :: !Text
+    , _wCreated                         :: !(Maybe DateTime')
+    , _wDataRetentionTtl                :: !(Maybe Text)
+    , _wDataRetentionResetOnNewActivity :: !(Maybe Bool)
+    , _wSelfLink                        :: !(Maybe Text)
+    , _wAccountId                       :: !(Maybe Text)
+    , _wName                            :: !(Maybe Text)
+    , _wStarred                         :: !(Maybe Bool)
+    , _wInternalWebPropertyId           :: !(Maybe Text)
+    , _wId                              :: !(Maybe Text)
+    , _wUpdated                         :: !(Maybe DateTime')
+    , _wProFileCount                    :: !(Maybe (Textual Int32))
+    , _wPermissions                     :: !(Maybe WebPropertyPermissions)
+    , _wWebsiteURL                      :: !(Maybe Text)
+    , _wIndustryVertical                :: !(Maybe Text)
+    , _wLevel                           :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'WebProperty' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wParentLink'
+--
+-- * 'wChildLink'
+--
+-- * 'wDefaultProFileId'
+--
+-- * 'wKind'
+--
+-- * 'wCreated'
+--
+-- * 'wDataRetentionTtl'
+--
+-- * 'wDataRetentionResetOnNewActivity'
+--
+-- * 'wSelfLink'
+--
+-- * 'wAccountId'
+--
+-- * 'wName'
+--
+-- * 'wStarred'
+--
+-- * 'wInternalWebPropertyId'
+--
+-- * 'wId'
+--
+-- * 'wUpdated'
+--
+-- * 'wProFileCount'
+--
+-- * 'wPermissions'
+--
+-- * 'wWebsiteURL'
+--
+-- * 'wIndustryVertical'
+--
+-- * 'wLevel'
+webProperty
+    :: WebProperty
+webProperty =
+  WebProperty'
+    { _wParentLink = Nothing
+    , _wChildLink = Nothing
+    , _wDefaultProFileId = Nothing
+    , _wKind = "analytics#webproperty"
+    , _wCreated = Nothing
+    , _wDataRetentionTtl = Nothing
+    , _wDataRetentionResetOnNewActivity = Nothing
+    , _wSelfLink = Nothing
+    , _wAccountId = Nothing
+    , _wName = Nothing
+    , _wStarred = Nothing
+    , _wInternalWebPropertyId = Nothing
+    , _wId = Nothing
+    , _wUpdated = Nothing
+    , _wProFileCount = Nothing
+    , _wPermissions = Nothing
+    , _wWebsiteURL = Nothing
+    , _wIndustryVertical = Nothing
+    , _wLevel = Nothing
+    }
+
+
+-- | Parent link for this web property. Points to the account to which this
+-- web property belongs.
+wParentLink :: Lens' WebProperty (Maybe WebPropertyParentLink)
+wParentLink
+  = lens _wParentLink (\ s a -> s{_wParentLink = a})
+
+-- | Child link for this web property. Points to the list of views (profiles)
+-- for this web property.
+wChildLink :: Lens' WebProperty (Maybe WebPropertyChildLink)
+wChildLink
+  = lens _wChildLink (\ s a -> s{_wChildLink = a})
+
+-- | Default view (profile) ID.
+wDefaultProFileId :: Lens' WebProperty (Maybe Int64)
+wDefaultProFileId
+  = lens _wDefaultProFileId
+      (\ s a -> s{_wDefaultProFileId = a})
+      . mapping _Coerce
+
+-- | Resource type for Analytics WebProperty.
+wKind :: Lens' WebProperty Text
+wKind = lens _wKind (\ s a -> s{_wKind = a})
+
+-- | Time this web property was created.
+wCreated :: Lens' WebProperty (Maybe UTCTime)
+wCreated
+  = lens _wCreated (\ s a -> s{_wCreated = a}) .
+      mapping _DateTime
+
+-- | The length of time for which user and event data is retained. This
+-- property cannot be set on insert.
+wDataRetentionTtl :: Lens' WebProperty (Maybe Text)
+wDataRetentionTtl
+  = lens _wDataRetentionTtl
+      (\ s a -> s{_wDataRetentionTtl = a})
+
+-- | Set to true to reset the retention period of the user identifier with
+-- each new event from that user (thus setting the expiration date to
+-- current time plus retention period). Set to false to delete data
+-- associated with the user identifer automatically after the rentention
+-- period. This property cannot be set on insert.
+wDataRetentionResetOnNewActivity :: Lens' WebProperty (Maybe Bool)
+wDataRetentionResetOnNewActivity
+  = lens _wDataRetentionResetOnNewActivity
+      (\ s a -> s{_wDataRetentionResetOnNewActivity = a})
+
+-- | Link for this web property.
+wSelfLink :: Lens' WebProperty (Maybe Text)
+wSelfLink
+  = lens _wSelfLink (\ s a -> s{_wSelfLink = a})
+
+-- | Account ID to which this web property belongs.
+wAccountId :: Lens' WebProperty (Maybe Text)
+wAccountId
+  = lens _wAccountId (\ s a -> s{_wAccountId = a})
+
+-- | Name of this web property.
+wName :: Lens' WebProperty (Maybe Text)
+wName = lens _wName (\ s a -> s{_wName = a})
+
+-- | Indicates whether this web property is starred or not.
+wStarred :: Lens' WebProperty (Maybe Bool)
+wStarred = lens _wStarred (\ s a -> s{_wStarred = a})
+
+-- | Internal ID for this web property.
+wInternalWebPropertyId :: Lens' WebProperty (Maybe Text)
+wInternalWebPropertyId
+  = lens _wInternalWebPropertyId
+      (\ s a -> s{_wInternalWebPropertyId = a})
+
+-- | Web property ID of the form UA-XXXXX-YY.
+wId :: Lens' WebProperty (Maybe Text)
+wId = lens _wId (\ s a -> s{_wId = a})
+
+-- | Time this web property was last modified.
+wUpdated :: Lens' WebProperty (Maybe UTCTime)
+wUpdated
+  = lens _wUpdated (\ s a -> s{_wUpdated = a}) .
+      mapping _DateTime
+
+-- | View (Profile) count for this web property.
+wProFileCount :: Lens' WebProperty (Maybe Int32)
+wProFileCount
+  = lens _wProFileCount
+      (\ s a -> s{_wProFileCount = a})
+      . mapping _Coerce
+
+-- | Permissions the user has for this web property.
+wPermissions :: Lens' WebProperty (Maybe WebPropertyPermissions)
+wPermissions
+  = lens _wPermissions (\ s a -> s{_wPermissions = a})
+
+-- | Website url for this web property.
+wWebsiteURL :: Lens' WebProperty (Maybe Text)
+wWebsiteURL
+  = lens _wWebsiteURL (\ s a -> s{_wWebsiteURL = a})
+
+-- | The industry vertical\/category selected for this web property.
+wIndustryVertical :: Lens' WebProperty (Maybe Text)
+wIndustryVertical
+  = lens _wIndustryVertical
+      (\ s a -> s{_wIndustryVertical = a})
+
+-- | Level for this web property. Possible values are STANDARD or PREMIUM.
+wLevel :: Lens' WebProperty (Maybe Text)
+wLevel = lens _wLevel (\ s a -> s{_wLevel = a})
+
+instance FromJSON WebProperty where
+        parseJSON
+          = withObject "WebProperty"
+              (\ o ->
+                 WebProperty' <$>
+                   (o .:? "parentLink") <*> (o .:? "childLink") <*>
+                     (o .:? "defaultProfileId")
+                     <*> (o .:? "kind" .!= "analytics#webproperty")
+                     <*> (o .:? "created")
+                     <*> (o .:? "dataRetentionTtl")
+                     <*> (o .:? "dataRetentionResetOnNewActivity")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "starred")
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "profileCount")
+                     <*> (o .:? "permissions")
+                     <*> (o .:? "websiteUrl")
+                     <*> (o .:? "industryVertical")
+                     <*> (o .:? "level"))
+
+instance ToJSON WebProperty where
+        toJSON WebProperty'{..}
+          = object
+              (catMaybes
+                 [("parentLink" .=) <$> _wParentLink,
+                  ("childLink" .=) <$> _wChildLink,
+                  ("defaultProfileId" .=) <$> _wDefaultProFileId,
+                  Just ("kind" .= _wKind),
+                  ("created" .=) <$> _wCreated,
+                  ("dataRetentionTtl" .=) <$> _wDataRetentionTtl,
+                  ("dataRetentionResetOnNewActivity" .=) <$>
+                    _wDataRetentionResetOnNewActivity,
+                  ("selfLink" .=) <$> _wSelfLink,
+                  ("accountId" .=) <$> _wAccountId,
+                  ("name" .=) <$> _wName, ("starred" .=) <$> _wStarred,
+                  ("internalWebPropertyId" .=) <$>
+                    _wInternalWebPropertyId,
+                  ("id" .=) <$> _wId, ("updated" .=) <$> _wUpdated,
+                  ("profileCount" .=) <$> _wProFileCount,
+                  ("permissions" .=) <$> _wPermissions,
+                  ("websiteUrl" .=) <$> _wWebsiteURL,
+                  ("industryVertical" .=) <$> _wIndustryVertical,
+                  ("level" .=) <$> _wLevel])
+
+-- | Permissions the user has for this web property.
+--
+-- /See:/ 'webPropertyPermissions' smart constructor.
+newtype WebPropertyPermissions =
+  WebPropertyPermissions'
+    { _wppEffective :: Maybe [Text]
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'WebPropertyPermissions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wppEffective'
+webPropertyPermissions
+    :: WebPropertyPermissions
+webPropertyPermissions = WebPropertyPermissions' {_wppEffective = Nothing}
+
+
+-- | All the permissions that the user has for this web property. These
+-- include any implied permissions (e.g., EDIT implies VIEW) or inherited
+-- permissions from the parent account.
+wppEffective :: Lens' WebPropertyPermissions [Text]
+wppEffective
+  = lens _wppEffective (\ s a -> s{_wppEffective = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON WebPropertyPermissions where
+        parseJSON
+          = withObject "WebPropertyPermissions"
+              (\ o ->
+                 WebPropertyPermissions' <$>
+                   (o .:? "effective" .!= mempty))
+
+instance ToJSON WebPropertyPermissions where
+        toJSON WebPropertyPermissions'{..}
+          = object
+              (catMaybes [("effective" .=) <$> _wppEffective])
+
+-- | JSON template for an Analytics Entity-User Link. Returns permissions
+-- that a user has for an entity.
+--
+-- /See:/ 'entityUserLink' smart constructor.
+data EntityUserLink =
+  EntityUserLink'
+    { _euluKind        :: !Text
+    , _euluUserRef     :: !(Maybe UserRef)
+    , _euluSelfLink    :: !(Maybe Text)
+    , _euluId          :: !(Maybe Text)
+    , _euluPermissions :: !(Maybe EntityUserLinkPermissions)
+    , _euluEntity      :: !(Maybe EntityUserLinkEntity)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EntityUserLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'euluKind'
+--
+-- * 'euluUserRef'
+--
+-- * 'euluSelfLink'
+--
+-- * 'euluId'
+--
+-- * 'euluPermissions'
+--
+-- * 'euluEntity'
+entityUserLink
+    :: EntityUserLink
+entityUserLink =
+  EntityUserLink'
+    { _euluKind = "analytics#entityUserLink"
+    , _euluUserRef = Nothing
+    , _euluSelfLink = Nothing
+    , _euluId = Nothing
+    , _euluPermissions = Nothing
+    , _euluEntity = Nothing
+    }
+
+
+-- | Resource type for entity user link.
+euluKind :: Lens' EntityUserLink Text
+euluKind = lens _euluKind (\ s a -> s{_euluKind = a})
+
+-- | User reference.
+euluUserRef :: Lens' EntityUserLink (Maybe UserRef)
+euluUserRef
+  = lens _euluUserRef (\ s a -> s{_euluUserRef = a})
+
+-- | Self link for this resource.
+euluSelfLink :: Lens' EntityUserLink (Maybe Text)
+euluSelfLink
+  = lens _euluSelfLink (\ s a -> s{_euluSelfLink = a})
+
+-- | Entity user link ID
+euluId :: Lens' EntityUserLink (Maybe Text)
+euluId = lens _euluId (\ s a -> s{_euluId = a})
+
+-- | Permissions the user has for this entity.
+euluPermissions :: Lens' EntityUserLink (Maybe EntityUserLinkPermissions)
+euluPermissions
+  = lens _euluPermissions
+      (\ s a -> s{_euluPermissions = a})
+
+-- | Entity for this link. It can be an account, a web property, or a view
+-- (profile).
+euluEntity :: Lens' EntityUserLink (Maybe EntityUserLinkEntity)
+euluEntity
+  = lens _euluEntity (\ s a -> s{_euluEntity = a})
+
+instance FromJSON EntityUserLink where
+        parseJSON
+          = withObject "EntityUserLink"
+              (\ o ->
+                 EntityUserLink' <$>
+                   (o .:? "kind" .!= "analytics#entityUserLink") <*>
+                     (o .:? "userRef")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "id")
+                     <*> (o .:? "permissions")
+                     <*> (o .:? "entity"))
+
+instance ToJSON EntityUserLink where
+        toJSON EntityUserLink'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _euluKind),
+                  ("userRef" .=) <$> _euluUserRef,
+                  ("selfLink" .=) <$> _euluSelfLink,
+                  ("id" .=) <$> _euluId,
+                  ("permissions" .=) <$> _euluPermissions,
+                  ("entity" .=) <$> _euluEntity])
+
+-- | Parent link for this custom data source. Points to the web property to
+-- which this custom data source belongs.
+--
+-- /See:/ 'customDataSourceParentLink' smart constructor.
+data CustomDataSourceParentLink =
+  CustomDataSourceParentLink'
+    { _cdsplHref :: !(Maybe Text)
+    , _cdsplType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CustomDataSourceParentLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdsplHref'
+--
+-- * 'cdsplType'
+customDataSourceParentLink
+    :: CustomDataSourceParentLink
+customDataSourceParentLink =
+  CustomDataSourceParentLink'
+    {_cdsplHref = Nothing, _cdsplType = "analytics#webproperty"}
+
+
+-- | Link to the web property to which this custom data source belongs.
+cdsplHref :: Lens' CustomDataSourceParentLink (Maybe Text)
+cdsplHref
+  = lens _cdsplHref (\ s a -> s{_cdsplHref = a})
+
+-- | Value is \"analytics#webproperty\".
+cdsplType :: Lens' CustomDataSourceParentLink Text
+cdsplType
+  = lens _cdsplType (\ s a -> s{_cdsplType = a})
+
+instance FromJSON CustomDataSourceParentLink where
+        parseJSON
+          = withObject "CustomDataSourceParentLink"
+              (\ o ->
+                 CustomDataSourceParentLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#webproperty"))
+
+instance ToJSON CustomDataSourceParentLink where
+        toJSON CustomDataSourceParentLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _cdsplHref,
+                  Just ("type" .= _cdsplType)])
+
+--
+-- /See:/ 'goalEventDetailsEventConditionsItem' smart constructor.
+data GoalEventDetailsEventConditionsItem =
+  GoalEventDetailsEventConditionsItem'
+    { _gedeciMatchType       :: !(Maybe Text)
+    , _gedeciExpression      :: !(Maybe Text)
+    , _gedeciComparisonValue :: !(Maybe (Textual Int64))
+    , _gedeciType            :: !(Maybe Text)
+    , _gedeciComparisonType  :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GoalEventDetailsEventConditionsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gedeciMatchType'
+--
+-- * 'gedeciExpression'
+--
+-- * 'gedeciComparisonValue'
+--
+-- * 'gedeciType'
+--
+-- * 'gedeciComparisonType'
+goalEventDetailsEventConditionsItem
+    :: GoalEventDetailsEventConditionsItem
+goalEventDetailsEventConditionsItem =
+  GoalEventDetailsEventConditionsItem'
+    { _gedeciMatchType = Nothing
+    , _gedeciExpression = Nothing
+    , _gedeciComparisonValue = Nothing
+    , _gedeciType = Nothing
+    , _gedeciComparisonType = Nothing
+    }
+
+
+-- | Type of the match to be performed. Possible values are REGEXP,
+-- BEGINS_WITH, or EXACT.
+gedeciMatchType :: Lens' GoalEventDetailsEventConditionsItem (Maybe Text)
+gedeciMatchType
+  = lens _gedeciMatchType
+      (\ s a -> s{_gedeciMatchType = a})
+
+-- | Expression used for this match.
+gedeciExpression :: Lens' GoalEventDetailsEventConditionsItem (Maybe Text)
+gedeciExpression
+  = lens _gedeciExpression
+      (\ s a -> s{_gedeciExpression = a})
+
+-- | Value used for this comparison.
+gedeciComparisonValue :: Lens' GoalEventDetailsEventConditionsItem (Maybe Int64)
+gedeciComparisonValue
+  = lens _gedeciComparisonValue
+      (\ s a -> s{_gedeciComparisonValue = a})
+      . mapping _Coerce
+
+-- | Type of this event condition. Possible values are CATEGORY, ACTION,
+-- LABEL, or VALUE.
+gedeciType :: Lens' GoalEventDetailsEventConditionsItem (Maybe Text)
+gedeciType
+  = lens _gedeciType (\ s a -> s{_gedeciType = a})
+
+-- | Type of comparison. Possible values are LESS_THAN, GREATER_THAN or
+-- EQUAL.
+gedeciComparisonType :: Lens' GoalEventDetailsEventConditionsItem (Maybe Text)
+gedeciComparisonType
+  = lens _gedeciComparisonType
+      (\ s a -> s{_gedeciComparisonType = a})
+
+instance FromJSON GoalEventDetailsEventConditionsItem
+         where
+        parseJSON
+          = withObject "GoalEventDetailsEventConditionsItem"
+              (\ o ->
+                 GoalEventDetailsEventConditionsItem' <$>
+                   (o .:? "matchType") <*> (o .:? "expression") <*>
+                     (o .:? "comparisonValue")
+                     <*> (o .:? "type")
+                     <*> (o .:? "comparisonType"))
+
+instance ToJSON GoalEventDetailsEventConditionsItem
+         where
+        toJSON GoalEventDetailsEventConditionsItem'{..}
+          = object
+              (catMaybes
+                 [("matchType" .=) <$> _gedeciMatchType,
+                  ("expression" .=) <$> _gedeciExpression,
+                  ("comparisonValue" .=) <$> _gedeciComparisonValue,
+                  ("type" .=) <$> _gedeciType,
+                  ("comparisonType" .=) <$> _gedeciComparisonType])
+
+-- | Analytics data request query parameters.
+--
+-- /See:/ 'mcfDataQuery' smart constructor.
+data McfDataQuery =
+  McfDataQuery'
+    { _mdqMetrics       :: !(Maybe [Text])
+    , _mdqSamplingLevel :: !(Maybe Text)
+    , _mdqFilters       :: !(Maybe Text)
+    , _mdqIds           :: !(Maybe Text)
+    , _mdqEndDate       :: !(Maybe Text)
+    , _mdqSort          :: !(Maybe [Text])
+    , _mdqDimensions    :: !(Maybe Text)
+    , _mdqStartIndex    :: !(Maybe (Textual Int32))
+    , _mdqMaxResults    :: !(Maybe (Textual Int32))
+    , _mdqSegment       :: !(Maybe Text)
+    , _mdqStartDate     :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'McfDataQuery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mdqMetrics'
+--
+-- * 'mdqSamplingLevel'
+--
+-- * 'mdqFilters'
+--
+-- * 'mdqIds'
+--
+-- * 'mdqEndDate'
+--
+-- * 'mdqSort'
+--
+-- * 'mdqDimensions'
+--
+-- * 'mdqStartIndex'
+--
+-- * 'mdqMaxResults'
+--
+-- * 'mdqSegment'
+--
+-- * 'mdqStartDate'
+mcfDataQuery
+    :: McfDataQuery
+mcfDataQuery =
+  McfDataQuery'
+    { _mdqMetrics = Nothing
+    , _mdqSamplingLevel = Nothing
+    , _mdqFilters = Nothing
+    , _mdqIds = Nothing
+    , _mdqEndDate = Nothing
+    , _mdqSort = Nothing
+    , _mdqDimensions = Nothing
+    , _mdqStartIndex = Nothing
+    , _mdqMaxResults = Nothing
+    , _mdqSegment = Nothing
+    , _mdqStartDate = Nothing
+    }
+
+
+-- | List of analytics metrics.
+mdqMetrics :: Lens' McfDataQuery [Text]
+mdqMetrics
+  = lens _mdqMetrics (\ s a -> s{_mdqMetrics = a}) .
+      _Default
+      . _Coerce
+
+-- | Desired sampling level
+mdqSamplingLevel :: Lens' McfDataQuery (Maybe Text)
+mdqSamplingLevel
+  = lens _mdqSamplingLevel
+      (\ s a -> s{_mdqSamplingLevel = a})
+
+-- | Comma-separated list of dimension or metric filters.
+mdqFilters :: Lens' McfDataQuery (Maybe Text)
+mdqFilters
+  = lens _mdqFilters (\ s a -> s{_mdqFilters = a})
+
+-- | Unique table ID.
+mdqIds :: Lens' McfDataQuery (Maybe Text)
+mdqIds = lens _mdqIds (\ s a -> s{_mdqIds = a})
+
+-- | End date.
+mdqEndDate :: Lens' McfDataQuery (Maybe Text)
+mdqEndDate
+  = lens _mdqEndDate (\ s a -> s{_mdqEndDate = a})
+
+-- | List of dimensions or metrics based on which Analytics data is sorted.
+mdqSort :: Lens' McfDataQuery [Text]
+mdqSort
+  = lens _mdqSort (\ s a -> s{_mdqSort = a}) . _Default
+      . _Coerce
+
+-- | List of analytics dimensions.
+mdqDimensions :: Lens' McfDataQuery (Maybe Text)
+mdqDimensions
+  = lens _mdqDimensions
+      (\ s a -> s{_mdqDimensions = a})
+
+-- | Start index.
+mdqStartIndex :: Lens' McfDataQuery (Maybe Int32)
+mdqStartIndex
+  = lens _mdqStartIndex
+      (\ s a -> s{_mdqStartIndex = a})
+      . mapping _Coerce
+
+-- | Maximum results per page.
+mdqMaxResults :: Lens' McfDataQuery (Maybe Int32)
+mdqMaxResults
+  = lens _mdqMaxResults
+      (\ s a -> s{_mdqMaxResults = a})
+      . mapping _Coerce
+
+-- | Analytics advanced segment.
+mdqSegment :: Lens' McfDataQuery (Maybe Text)
+mdqSegment
+  = lens _mdqSegment (\ s a -> s{_mdqSegment = a})
+
+-- | Start date.
+mdqStartDate :: Lens' McfDataQuery (Maybe Text)
+mdqStartDate
+  = lens _mdqStartDate (\ s a -> s{_mdqStartDate = a})
+
+instance FromJSON McfDataQuery where
+        parseJSON
+          = withObject "McfDataQuery"
+              (\ o ->
+                 McfDataQuery' <$>
+                   (o .:? "metrics" .!= mempty) <*>
+                     (o .:? "samplingLevel")
+                     <*> (o .:? "filters")
+                     <*> (o .:? "ids")
+                     <*> (o .:? "end-date")
+                     <*> (o .:? "sort" .!= mempty)
+                     <*> (o .:? "dimensions")
+                     <*> (o .:? "start-index")
+                     <*> (o .:? "max-results")
+                     <*> (o .:? "segment")
+                     <*> (o .:? "start-date"))
+
+instance ToJSON McfDataQuery where
+        toJSON McfDataQuery'{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _mdqMetrics,
+                  ("samplingLevel" .=) <$> _mdqSamplingLevel,
+                  ("filters" .=) <$> _mdqFilters,
+                  ("ids" .=) <$> _mdqIds,
+                  ("end-date" .=) <$> _mdqEndDate,
+                  ("sort" .=) <$> _mdqSort,
+                  ("dimensions" .=) <$> _mdqDimensions,
+                  ("start-index" .=) <$> _mdqStartIndex,
+                  ("max-results" .=) <$> _mdqMaxResults,
+                  ("segment" .=) <$> _mdqSegment,
+                  ("start-date" .=) <$> _mdqStartDate])
+
+-- | JSON template for Analytics goal resource.
+--
+-- /See:/ 'goal' smart constructor.
+data Goal =
+  Goal'
+    { _goaParentLink             :: !(Maybe GoalParentLink)
+    , _goaWebPropertyId          :: !(Maybe Text)
+    , _goaKind                   :: !Text
+    , _goaCreated                :: !(Maybe DateTime')
+    , _goaValue                  :: !(Maybe (Textual Double))
+    , _goaProFileId              :: !(Maybe Text)
+    , _goaEventDetails           :: !(Maybe GoalEventDetails)
+    , _goaActive                 :: !(Maybe Bool)
+    , _goaSelfLink               :: !(Maybe Text)
+    , _goaVisitTimeOnSiteDetails :: !(Maybe GoalVisitTimeOnSiteDetails)
+    , _goaAccountId              :: !(Maybe Text)
+    , _goaName                   :: !(Maybe Text)
+    , _goaInternalWebPropertyId  :: !(Maybe Text)
+    , _goaId                     :: !(Maybe Text)
+    , _goaURLDestinationDetails  :: !(Maybe GoalURLDestinationDetails)
+    , _goaVisitNumPagesDetails   :: !(Maybe GoalVisitNumPagesDetails)
+    , _goaUpdated                :: !(Maybe DateTime')
+    , _goaType                   :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Goal' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'goaParentLink'
+--
+-- * 'goaWebPropertyId'
+--
+-- * 'goaKind'
+--
+-- * 'goaCreated'
+--
+-- * 'goaValue'
+--
+-- * 'goaProFileId'
+--
+-- * 'goaEventDetails'
+--
+-- * 'goaActive'
+--
+-- * 'goaSelfLink'
+--
+-- * 'goaVisitTimeOnSiteDetails'
+--
+-- * 'goaAccountId'
+--
+-- * 'goaName'
+--
+-- * 'goaInternalWebPropertyId'
+--
+-- * 'goaId'
+--
+-- * 'goaURLDestinationDetails'
+--
+-- * 'goaVisitNumPagesDetails'
+--
+-- * 'goaUpdated'
+--
+-- * 'goaType'
+goal
+    :: Goal
+goal =
+  Goal'
+    { _goaParentLink = Nothing
+    , _goaWebPropertyId = Nothing
+    , _goaKind = "analytics#goal"
+    , _goaCreated = Nothing
+    , _goaValue = Nothing
+    , _goaProFileId = Nothing
+    , _goaEventDetails = Nothing
+    , _goaActive = Nothing
+    , _goaSelfLink = Nothing
+    , _goaVisitTimeOnSiteDetails = Nothing
+    , _goaAccountId = Nothing
+    , _goaName = Nothing
+    , _goaInternalWebPropertyId = Nothing
+    , _goaId = Nothing
+    , _goaURLDestinationDetails = Nothing
+    , _goaVisitNumPagesDetails = Nothing
+    , _goaUpdated = Nothing
+    , _goaType = Nothing
+    }
+
+
+-- | Parent link for a goal. Points to the view (profile) to which this goal
+-- belongs.
+goaParentLink :: Lens' Goal (Maybe GoalParentLink)
+goaParentLink
+  = lens _goaParentLink
+      (\ s a -> s{_goaParentLink = a})
+
+-- | Web property ID to which this goal belongs. The web property ID is of
+-- the form UA-XXXXX-YY.
+goaWebPropertyId :: Lens' Goal (Maybe Text)
+goaWebPropertyId
+  = lens _goaWebPropertyId
+      (\ s a -> s{_goaWebPropertyId = a})
+
+-- | Resource type for an Analytics goal.
+goaKind :: Lens' Goal Text
+goaKind = lens _goaKind (\ s a -> s{_goaKind = a})
+
+-- | Time this goal was created.
+goaCreated :: Lens' Goal (Maybe UTCTime)
+goaCreated
+  = lens _goaCreated (\ s a -> s{_goaCreated = a}) .
+      mapping _DateTime
+
+-- | Goal value.
+goaValue :: Lens' Goal (Maybe Double)
+goaValue
+  = lens _goaValue (\ s a -> s{_goaValue = a}) .
+      mapping _Coerce
+
+-- | View (Profile) ID to which this goal belongs.
+goaProFileId :: Lens' Goal (Maybe Text)
+goaProFileId
+  = lens _goaProFileId (\ s a -> s{_goaProFileId = a})
+
+-- | Details for the goal of the type EVENT.
+goaEventDetails :: Lens' Goal (Maybe GoalEventDetails)
+goaEventDetails
+  = lens _goaEventDetails
+      (\ s a -> s{_goaEventDetails = a})
+
+-- | Determines whether this goal is active.
+goaActive :: Lens' Goal (Maybe Bool)
+goaActive
+  = lens _goaActive (\ s a -> s{_goaActive = a})
+
+-- | Link for this goal.
+goaSelfLink :: Lens' Goal (Maybe Text)
+goaSelfLink
+  = lens _goaSelfLink (\ s a -> s{_goaSelfLink = a})
+
+-- | Details for the goal of the type VISIT_TIME_ON_SITE.
+goaVisitTimeOnSiteDetails :: Lens' Goal (Maybe GoalVisitTimeOnSiteDetails)
+goaVisitTimeOnSiteDetails
+  = lens _goaVisitTimeOnSiteDetails
+      (\ s a -> s{_goaVisitTimeOnSiteDetails = a})
+
+-- | Account ID to which this goal belongs.
+goaAccountId :: Lens' Goal (Maybe Text)
+goaAccountId
+  = lens _goaAccountId (\ s a -> s{_goaAccountId = a})
+
+-- | Goal name.
+goaName :: Lens' Goal (Maybe Text)
+goaName = lens _goaName (\ s a -> s{_goaName = a})
+
+-- | Internal ID for the web property to which this goal belongs.
+goaInternalWebPropertyId :: Lens' Goal (Maybe Text)
+goaInternalWebPropertyId
+  = lens _goaInternalWebPropertyId
+      (\ s a -> s{_goaInternalWebPropertyId = a})
+
+-- | Goal ID.
+goaId :: Lens' Goal (Maybe Text)
+goaId = lens _goaId (\ s a -> s{_goaId = a})
+
+-- | Details for the goal of the type URL_DESTINATION.
+goaURLDestinationDetails :: Lens' Goal (Maybe GoalURLDestinationDetails)
+goaURLDestinationDetails
+  = lens _goaURLDestinationDetails
+      (\ s a -> s{_goaURLDestinationDetails = a})
+
+-- | Details for the goal of the type VISIT_NUM_PAGES.
+goaVisitNumPagesDetails :: Lens' Goal (Maybe GoalVisitNumPagesDetails)
+goaVisitNumPagesDetails
+  = lens _goaVisitNumPagesDetails
+      (\ s a -> s{_goaVisitNumPagesDetails = a})
+
+-- | Time this goal was last modified.
+goaUpdated :: Lens' Goal (Maybe UTCTime)
+goaUpdated
+  = lens _goaUpdated (\ s a -> s{_goaUpdated = a}) .
+      mapping _DateTime
+
+-- | Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE,
+-- VISIT_NUM_PAGES, AND EVENT.
+goaType :: Lens' Goal (Maybe Text)
+goaType = lens _goaType (\ s a -> s{_goaType = a})
+
+instance FromJSON Goal where
+        parseJSON
+          = withObject "Goal"
+              (\ o ->
+                 Goal' <$>
+                   (o .:? "parentLink") <*> (o .:? "webPropertyId") <*>
+                     (o .:? "kind" .!= "analytics#goal")
+                     <*> (o .:? "created")
+                     <*> (o .:? "value")
+                     <*> (o .:? "profileId")
+                     <*> (o .:? "eventDetails")
+                     <*> (o .:? "active")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "visitTimeOnSiteDetails")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "urlDestinationDetails")
+                     <*> (o .:? "visitNumPagesDetails")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "type"))
+
+instance ToJSON Goal where
+        toJSON Goal'{..}
+          = object
+              (catMaybes
+                 [("parentLink" .=) <$> _goaParentLink,
+                  ("webPropertyId" .=) <$> _goaWebPropertyId,
+                  Just ("kind" .= _goaKind),
+                  ("created" .=) <$> _goaCreated,
+                  ("value" .=) <$> _goaValue,
+                  ("profileId" .=) <$> _goaProFileId,
+                  ("eventDetails" .=) <$> _goaEventDetails,
+                  ("active" .=) <$> _goaActive,
+                  ("selfLink" .=) <$> _goaSelfLink,
+                  ("visitTimeOnSiteDetails" .=) <$>
+                    _goaVisitTimeOnSiteDetails,
+                  ("accountId" .=) <$> _goaAccountId,
+                  ("name" .=) <$> _goaName,
+                  ("internalWebPropertyId" .=) <$>
+                    _goaInternalWebPropertyId,
+                  ("id" .=) <$> _goaId,
+                  ("urlDestinationDetails" .=) <$>
+                    _goaURLDestinationDetails,
+                  ("visitNumPagesDetails" .=) <$>
+                    _goaVisitNumPagesDetails,
+                  ("updated" .=) <$> _goaUpdated,
+                  ("type" .=) <$> _goaType])
+
+-- | JSON template for an Analytics account ticket. The account ticket
+-- consists of the ticket ID and the basic information for the account,
+-- property and profile.
+--
+-- /See:/ 'accountTicket' smart constructor.
+data AccountTicket =
+  AccountTicket'
+    { _atRedirectURI :: !(Maybe Text)
+    , _atKind        :: !Text
+    , _atProFile     :: !(Maybe ProFile)
+    , _atAccount     :: !(Maybe Account)
+    , _atWebProperty :: !(Maybe WebProperty)
+    , _atId          :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AccountTicket' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'atRedirectURI'
+--
+-- * 'atKind'
+--
+-- * 'atProFile'
+--
+-- * 'atAccount'
+--
+-- * 'atWebProperty'
+--
+-- * 'atId'
+accountTicket
+    :: AccountTicket
+accountTicket =
+  AccountTicket'
+    { _atRedirectURI = Nothing
+    , _atKind = "analytics#accountTicket"
+    , _atProFile = Nothing
+    , _atAccount = Nothing
+    , _atWebProperty = Nothing
+    , _atId = Nothing
+    }
+
+
+-- | Redirect URI where the user will be sent after accepting Terms of
+-- Service. Must be configured in APIs console as a callback URL.
+atRedirectURI :: Lens' AccountTicket (Maybe Text)
+atRedirectURI
+  = lens _atRedirectURI
+      (\ s a -> s{_atRedirectURI = a})
+
+-- | Resource type for account ticket.
+atKind :: Lens' AccountTicket Text
+atKind = lens _atKind (\ s a -> s{_atKind = a})
+
+-- | View (Profile) for the account.
+atProFile :: Lens' AccountTicket (Maybe ProFile)
+atProFile
+  = lens _atProFile (\ s a -> s{_atProFile = a})
+
+-- | Account for this ticket.
+atAccount :: Lens' AccountTicket (Maybe Account)
+atAccount
+  = lens _atAccount (\ s a -> s{_atAccount = a})
+
+-- | Web property for the account.
+atWebProperty :: Lens' AccountTicket (Maybe WebProperty)
+atWebProperty
+  = lens _atWebProperty
+      (\ s a -> s{_atWebProperty = a})
+
+-- | Account ticket ID used to access the account ticket.
+atId :: Lens' AccountTicket (Maybe Text)
+atId = lens _atId (\ s a -> s{_atId = a})
+
+instance FromJSON AccountTicket where
+        parseJSON
+          = withObject "AccountTicket"
+              (\ o ->
+                 AccountTicket' <$>
+                   (o .:? "redirectUri") <*>
+                     (o .:? "kind" .!= "analytics#accountTicket")
+                     <*> (o .:? "profile")
+                     <*> (o .:? "account")
+                     <*> (o .:? "webproperty")
+                     <*> (o .:? "id"))
+
+instance ToJSON AccountTicket where
+        toJSON AccountTicket'{..}
+          = object
+              (catMaybes
+                 [("redirectUri" .=) <$> _atRedirectURI,
+                  Just ("kind" .= _atKind),
+                  ("profile" .=) <$> _atProFile,
+                  ("account" .=) <$> _atAccount,
+                  ("webproperty" .=) <$> _atWebProperty,
+                  ("id" .=) <$> _atId])
+
+-- | JSON template for an Analytics AccountSummary. An AccountSummary is a
+-- lightweight tree comprised of properties\/profiles.
+--
+-- /See:/ 'accountSummary' smart constructor.
+data AccountSummary =
+  AccountSummary'
+    { _assKind          :: !Text
+    , _assWebProperties :: !(Maybe [WebPropertySummary])
+    , _assName          :: !(Maybe Text)
+    , _assStarred       :: !(Maybe Bool)
+    , _assId            :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AccountSummary' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'assKind'
+--
+-- * 'assWebProperties'
+--
+-- * 'assName'
+--
+-- * 'assStarred'
+--
+-- * 'assId'
+accountSummary
+    :: AccountSummary
+accountSummary =
+  AccountSummary'
+    { _assKind = "analytics#accountSummary"
+    , _assWebProperties = Nothing
+    , _assName = Nothing
+    , _assStarred = Nothing
+    , _assId = Nothing
+    }
+
+
+-- | Resource type for Analytics AccountSummary.
+assKind :: Lens' AccountSummary Text
+assKind = lens _assKind (\ s a -> s{_assKind = a})
+
+-- | List of web properties under this account.
+assWebProperties :: Lens' AccountSummary [WebPropertySummary]
+assWebProperties
+  = lens _assWebProperties
+      (\ s a -> s{_assWebProperties = a})
+      . _Default
+      . _Coerce
+
+-- | Account name.
+assName :: Lens' AccountSummary (Maybe Text)
+assName = lens _assName (\ s a -> s{_assName = a})
+
+-- | Indicates whether this account is starred or not.
+assStarred :: Lens' AccountSummary (Maybe Bool)
+assStarred
+  = lens _assStarred (\ s a -> s{_assStarred = a})
+
+-- | Account ID.
+assId :: Lens' AccountSummary (Maybe Text)
+assId = lens _assId (\ s a -> s{_assId = a})
+
+instance FromJSON AccountSummary where
+        parseJSON
+          = withObject "AccountSummary"
+              (\ o ->
+                 AccountSummary' <$>
+                   (o .:? "kind" .!= "analytics#accountSummary") <*>
+                     (o .:? "webProperties" .!= mempty)
+                     <*> (o .:? "name")
+                     <*> (o .:? "starred")
+                     <*> (o .:? "id"))
+
+instance ToJSON AccountSummary where
+        toJSON AccountSummary'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _assKind),
+                  ("webProperties" .=) <$> _assWebProperties,
+                  ("name" .=) <$> _assName,
+                  ("starred" .=) <$> _assStarred,
+                  ("id" .=) <$> _assId])
+
+-- | Real time data request query parameters.
+--
+-- /See:/ 'realtimeDataQuery' smart constructor.
+data RealtimeDataQuery =
+  RealtimeDataQuery'
+    { _rdqMetrics    :: !(Maybe [Text])
+    , _rdqFilters    :: !(Maybe Text)
+    , _rdqIds        :: !(Maybe Text)
+    , _rdqSort       :: !(Maybe [Text])
+    , _rdqDimensions :: !(Maybe Text)
+    , _rdqMaxResults :: !(Maybe (Textual Int32))
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RealtimeDataQuery' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdqMetrics'
+--
+-- * 'rdqFilters'
+--
+-- * 'rdqIds'
+--
+-- * 'rdqSort'
+--
+-- * 'rdqDimensions'
+--
+-- * 'rdqMaxResults'
+realtimeDataQuery
+    :: RealtimeDataQuery
+realtimeDataQuery =
+  RealtimeDataQuery'
+    { _rdqMetrics = Nothing
+    , _rdqFilters = Nothing
+    , _rdqIds = Nothing
+    , _rdqSort = Nothing
+    , _rdqDimensions = Nothing
+    , _rdqMaxResults = Nothing
+    }
+
+
+-- | List of real time metrics.
+rdqMetrics :: Lens' RealtimeDataQuery [Text]
+rdqMetrics
+  = lens _rdqMetrics (\ s a -> s{_rdqMetrics = a}) .
+      _Default
+      . _Coerce
+
+-- | Comma-separated list of dimension or metric filters.
+rdqFilters :: Lens' RealtimeDataQuery (Maybe Text)
+rdqFilters
+  = lens _rdqFilters (\ s a -> s{_rdqFilters = a})
+
+-- | Unique table ID.
+rdqIds :: Lens' RealtimeDataQuery (Maybe Text)
+rdqIds = lens _rdqIds (\ s a -> s{_rdqIds = a})
+
+-- | List of dimensions or metrics based on which real time data is sorted.
+rdqSort :: Lens' RealtimeDataQuery [Text]
+rdqSort
+  = lens _rdqSort (\ s a -> s{_rdqSort = a}) . _Default
+      . _Coerce
+
+-- | List of real time dimensions.
+rdqDimensions :: Lens' RealtimeDataQuery (Maybe Text)
+rdqDimensions
+  = lens _rdqDimensions
+      (\ s a -> s{_rdqDimensions = a})
+
+-- | Maximum results per page.
+rdqMaxResults :: Lens' RealtimeDataQuery (Maybe Int32)
+rdqMaxResults
+  = lens _rdqMaxResults
+      (\ s a -> s{_rdqMaxResults = a})
+      . mapping _Coerce
+
+instance FromJSON RealtimeDataQuery where
+        parseJSON
+          = withObject "RealtimeDataQuery"
+              (\ o ->
+                 RealtimeDataQuery' <$>
+                   (o .:? "metrics" .!= mempty) <*> (o .:? "filters")
+                     <*> (o .:? "ids")
+                     <*> (o .:? "sort" .!= mempty)
+                     <*> (o .:? "dimensions")
+                     <*> (o .:? "max-results"))
+
+instance ToJSON RealtimeDataQuery where
+        toJSON RealtimeDataQuery'{..}
+          = object
+              (catMaybes
+                 [("metrics" .=) <$> _rdqMetrics,
+                  ("filters" .=) <$> _rdqFilters,
+                  ("ids" .=) <$> _rdqIds, ("sort" .=) <$> _rdqSort,
+                  ("dimensions" .=) <$> _rdqDimensions,
+                  ("max-results" .=) <$> _rdqMaxResults])
+
+-- | Lists columns (dimensions and metrics) for a particular report type.
+--
+-- /See:/ 'columns' smart constructor.
+data Columns =
+  Columns'
+    { _colEtag           :: !(Maybe Text)
+    , _colKind           :: !Text
+    , _colItems          :: !(Maybe [Column])
+    , _colTotalResults   :: !(Maybe (Textual Int32))
+    , _colAttributeNames :: !(Maybe [Text])
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Columns' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'colEtag'
+--
+-- * 'colKind'
+--
+-- * 'colItems'
+--
+-- * 'colTotalResults'
+--
+-- * 'colAttributeNames'
+columns
+    :: Columns
+columns =
+  Columns'
+    { _colEtag = Nothing
+    , _colKind = "analytics#columns"
+    , _colItems = Nothing
+    , _colTotalResults = Nothing
+    , _colAttributeNames = Nothing
+    }
+
+
+-- | Etag of collection. This etag can be compared with the last response
+-- etag to check if response has changed.
+colEtag :: Lens' Columns (Maybe Text)
+colEtag = lens _colEtag (\ s a -> s{_colEtag = a})
+
+-- | Collection type.
+colKind :: Lens' Columns Text
+colKind = lens _colKind (\ s a -> s{_colKind = a})
+
+-- | List of columns for a report type.
+colItems :: Lens' Columns [Column]
+colItems
+  = lens _colItems (\ s a -> s{_colItems = a}) .
+      _Default
+      . _Coerce
+
+-- | Total number of columns returned in the response.
+colTotalResults :: Lens' Columns (Maybe Int32)
+colTotalResults
+  = lens _colTotalResults
+      (\ s a -> s{_colTotalResults = a})
+      . mapping _Coerce
+
+-- | List of attributes names returned by columns.
+colAttributeNames :: Lens' Columns [Text]
+colAttributeNames
+  = lens _colAttributeNames
+      (\ s a -> s{_colAttributeNames = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Columns where
+        parseJSON
+          = withObject "Columns"
+              (\ o ->
+                 Columns' <$>
+                   (o .:? "etag") <*>
+                     (o .:? "kind" .!= "analytics#columns")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "attributeNames" .!= mempty))
+
+instance ToJSON Columns where
+        toJSON Columns'{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _colEtag, Just ("kind" .= _colKind),
+                  ("items" .=) <$> _colItems,
+                  ("totalResults" .=) <$> _colTotalResults,
+                  ("attributeNames" .=) <$> _colAttributeNames])
+
+-- | Details for the filter of the type LOWER.
+--
+-- /See:/ 'filterLowercaseDetails' smart constructor.
+data FilterLowercaseDetails =
+  FilterLowercaseDetails'
+    { _fldFieldIndex :: !(Maybe (Textual Int32))
+    , _fldField      :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'FilterLowercaseDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fldFieldIndex'
+--
+-- * 'fldField'
+filterLowercaseDetails
+    :: FilterLowercaseDetails
+filterLowercaseDetails =
+  FilterLowercaseDetails' {_fldFieldIndex = Nothing, _fldField = Nothing}
+
+
+-- | The Index of the custom dimension. Required if field is a
+-- CUSTOM_DIMENSION.
+fldFieldIndex :: Lens' FilterLowercaseDetails (Maybe Int32)
+fldFieldIndex
+  = lens _fldFieldIndex
+      (\ s a -> s{_fldFieldIndex = a})
+      . mapping _Coerce
+
+-- | Field to use in the filter.
+fldField :: Lens' FilterLowercaseDetails (Maybe Text)
+fldField = lens _fldField (\ s a -> s{_fldField = a})
+
+instance FromJSON FilterLowercaseDetails where
+        parseJSON
+          = withObject "FilterLowercaseDetails"
+              (\ o ->
+                 FilterLowercaseDetails' <$>
+                   (o .:? "fieldIndex") <*> (o .:? "field"))
+
+instance ToJSON FilterLowercaseDetails where
+        toJSON FilterLowercaseDetails'{..}
+          = object
+              (catMaybes
+                 [("fieldIndex" .=) <$> _fldFieldIndex,
+                  ("field" .=) <$> _fldField])
+
+-- | JSON template for an Analytics account filter.
+--
+-- /See:/ 'filter'' smart constructor.
+data Filter =
+  Filter'
+    { _filParentLink              :: !(Maybe FilterParentLink)
+    , _filAdvancedDetails         :: !(Maybe FilterAdvancedDetails)
+    , _filUppercaseDetails        :: !(Maybe FilterUppercaseDetails)
+    , _filLowercaseDetails        :: !(Maybe FilterLowercaseDetails)
+    , _filKind                    :: !Text
+    , _filCreated                 :: !(Maybe DateTime')
+    , _filIncludeDetails          :: !(Maybe FilterExpression)
+    , _filExcludeDetails          :: !(Maybe FilterExpression)
+    , _filSelfLink                :: !(Maybe Text)
+    , _filAccountId               :: !(Maybe Text)
+    , _filName                    :: !(Maybe Text)
+    , _filId                      :: !(Maybe Text)
+    , _filUpdated                 :: !(Maybe DateTime')
+    , _filType                    :: !(Maybe Text)
+    , _filSearchAndReplaceDetails :: !(Maybe FilterSearchAndReplaceDetails)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Filter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'filParentLink'
+--
+-- * 'filAdvancedDetails'
+--
+-- * 'filUppercaseDetails'
+--
+-- * 'filLowercaseDetails'
+--
+-- * 'filKind'
+--
+-- * 'filCreated'
+--
+-- * 'filIncludeDetails'
+--
+-- * 'filExcludeDetails'
+--
+-- * 'filSelfLink'
+--
+-- * 'filAccountId'
+--
+-- * 'filName'
+--
+-- * 'filId'
+--
+-- * 'filUpdated'
+--
+-- * 'filType'
+--
+-- * 'filSearchAndReplaceDetails'
+filter'
+    :: Filter
+filter' =
+  Filter'
+    { _filParentLink = Nothing
+    , _filAdvancedDetails = Nothing
+    , _filUppercaseDetails = Nothing
+    , _filLowercaseDetails = Nothing
+    , _filKind = "analytics#filter"
+    , _filCreated = Nothing
+    , _filIncludeDetails = Nothing
+    , _filExcludeDetails = Nothing
+    , _filSelfLink = Nothing
+    , _filAccountId = Nothing
+    , _filName = Nothing
+    , _filId = Nothing
+    , _filUpdated = Nothing
+    , _filType = Nothing
+    , _filSearchAndReplaceDetails = Nothing
+    }
+
+
+-- | Parent link for this filter. Points to the account to which this filter
+-- belongs.
+filParentLink :: Lens' Filter (Maybe FilterParentLink)
+filParentLink
+  = lens _filParentLink
+      (\ s a -> s{_filParentLink = a})
+
+-- | Details for the filter of the type ADVANCED.
+filAdvancedDetails :: Lens' Filter (Maybe FilterAdvancedDetails)
+filAdvancedDetails
+  = lens _filAdvancedDetails
+      (\ s a -> s{_filAdvancedDetails = a})
+
+-- | Details for the filter of the type UPPER.
+filUppercaseDetails :: Lens' Filter (Maybe FilterUppercaseDetails)
+filUppercaseDetails
+  = lens _filUppercaseDetails
+      (\ s a -> s{_filUppercaseDetails = a})
+
+-- | Details for the filter of the type LOWER.
+filLowercaseDetails :: Lens' Filter (Maybe FilterLowercaseDetails)
+filLowercaseDetails
+  = lens _filLowercaseDetails
+      (\ s a -> s{_filLowercaseDetails = a})
+
+-- | Resource type for Analytics filter.
+filKind :: Lens' Filter Text
+filKind = lens _filKind (\ s a -> s{_filKind = a})
+
+-- | Time this filter was created.
+filCreated :: Lens' Filter (Maybe UTCTime)
+filCreated
+  = lens _filCreated (\ s a -> s{_filCreated = a}) .
+      mapping _DateTime
+
+-- | Details for the filter of the type INCLUDE.
+filIncludeDetails :: Lens' Filter (Maybe FilterExpression)
+filIncludeDetails
+  = lens _filIncludeDetails
+      (\ s a -> s{_filIncludeDetails = a})
+
+-- | Details for the filter of the type EXCLUDE.
+filExcludeDetails :: Lens' Filter (Maybe FilterExpression)
+filExcludeDetails
+  = lens _filExcludeDetails
+      (\ s a -> s{_filExcludeDetails = a})
+
+-- | Link for this filter.
+filSelfLink :: Lens' Filter (Maybe Text)
+filSelfLink
+  = lens _filSelfLink (\ s a -> s{_filSelfLink = a})
+
+-- | Account ID to which this filter belongs.
+filAccountId :: Lens' Filter (Maybe Text)
+filAccountId
+  = lens _filAccountId (\ s a -> s{_filAccountId = a})
+
+-- | Name of this filter.
+filName :: Lens' Filter (Maybe Text)
+filName = lens _filName (\ s a -> s{_filName = a})
+
+-- | Filter ID.
+filId :: Lens' Filter (Maybe Text)
+filId = lens _filId (\ s a -> s{_filId = a})
+
+-- | Time this filter was last modified.
+filUpdated :: Lens' Filter (Maybe UTCTime)
+filUpdated
+  = lens _filUpdated (\ s a -> s{_filUpdated = a}) .
+      mapping _DateTime
+
+-- | Type of this filter. Possible values are INCLUDE, EXCLUDE, LOWERCASE,
+-- UPPERCASE, SEARCH_AND_REPLACE and ADVANCED.
+filType :: Lens' Filter (Maybe Text)
+filType = lens _filType (\ s a -> s{_filType = a})
+
+-- | Details for the filter of the type SEARCH_AND_REPLACE.
+filSearchAndReplaceDetails :: Lens' Filter (Maybe FilterSearchAndReplaceDetails)
+filSearchAndReplaceDetails
+  = lens _filSearchAndReplaceDetails
+      (\ s a -> s{_filSearchAndReplaceDetails = a})
+
+instance FromJSON Filter where
+        parseJSON
+          = withObject "Filter"
+              (\ o ->
+                 Filter' <$>
+                   (o .:? "parentLink") <*> (o .:? "advancedDetails")
+                     <*> (o .:? "uppercaseDetails")
+                     <*> (o .:? "lowercaseDetails")
+                     <*> (o .:? "kind" .!= "analytics#filter")
+                     <*> (o .:? "created")
+                     <*> (o .:? "includeDetails")
+                     <*> (o .:? "excludeDetails")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "type")
+                     <*> (o .:? "searchAndReplaceDetails"))
+
+instance ToJSON Filter where
+        toJSON Filter'{..}
+          = object
+              (catMaybes
+                 [("parentLink" .=) <$> _filParentLink,
+                  ("advancedDetails" .=) <$> _filAdvancedDetails,
+                  ("uppercaseDetails" .=) <$> _filUppercaseDetails,
+                  ("lowercaseDetails" .=) <$> _filLowercaseDetails,
+                  Just ("kind" .= _filKind),
+                  ("created" .=) <$> _filCreated,
+                  ("includeDetails" .=) <$> _filIncludeDetails,
+                  ("excludeDetails" .=) <$> _filExcludeDetails,
+                  ("selfLink" .=) <$> _filSelfLink,
+                  ("accountId" .=) <$> _filAccountId,
+                  ("name" .=) <$> _filName, ("id" .=) <$> _filId,
+                  ("updated" .=) <$> _filUpdated,
+                  ("type" .=) <$> _filType,
+                  ("searchAndReplaceDetails" .=) <$>
+                    _filSearchAndReplaceDetails])
+
+-- | Upload collection lists Analytics uploads to which the user has access.
+-- Each custom data source can have a set of uploads. Each resource in the
+-- upload collection corresponds to a single Analytics data upload.
+--
+-- /See:/ 'uploads' smart constructor.
+data Uploads =
+  Uploads'
+    { _uplNextLink     :: !(Maybe Text)
+    , _uplItemsPerPage :: !(Maybe (Textual Int32))
+    , _uplKind         :: !Text
+    , _uplItems        :: !(Maybe [Upload])
+    , _uplTotalResults :: !(Maybe (Textual Int32))
+    , _uplStartIndex   :: !(Maybe (Textual Int32))
+    , _uplPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Uploads' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'uplNextLink'
+--
+-- * 'uplItemsPerPage'
+--
+-- * 'uplKind'
+--
+-- * 'uplItems'
+--
+-- * 'uplTotalResults'
+--
+-- * 'uplStartIndex'
+--
+-- * 'uplPreviousLink'
+uploads
+    :: Uploads
+uploads =
+  Uploads'
+    { _uplNextLink = Nothing
+    , _uplItemsPerPage = Nothing
+    , _uplKind = "analytics#uploads"
+    , _uplItems = Nothing
+    , _uplTotalResults = Nothing
+    , _uplStartIndex = Nothing
+    , _uplPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this upload collection.
+uplNextLink :: Lens' Uploads (Maybe Text)
+uplNextLink
+  = lens _uplNextLink (\ s a -> s{_uplNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+uplItemsPerPage :: Lens' Uploads (Maybe Int32)
+uplItemsPerPage
+  = lens _uplItemsPerPage
+      (\ s a -> s{_uplItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+uplKind :: Lens' Uploads Text
+uplKind = lens _uplKind (\ s a -> s{_uplKind = a})
+
+-- | A list of uploads.
+uplItems :: Lens' Uploads [Upload]
+uplItems
+  = lens _uplItems (\ s a -> s{_uplItems = a}) .
+      _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- resources in the result.
+uplTotalResults :: Lens' Uploads (Maybe Int32)
+uplTotalResults
+  = lens _uplTotalResults
+      (\ s a -> s{_uplTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+uplStartIndex :: Lens' Uploads (Maybe Int32)
+uplStartIndex
+  = lens _uplStartIndex
+      (\ s a -> s{_uplStartIndex = a})
+      . mapping _Coerce
+
+-- | Link to previous page for this upload collection.
+uplPreviousLink :: Lens' Uploads (Maybe Text)
+uplPreviousLink
+  = lens _uplPreviousLink
+      (\ s a -> s{_uplPreviousLink = a})
+
+instance FromJSON Uploads where
+        parseJSON
+          = withObject "Uploads"
+              (\ o ->
+                 Uploads' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#uploads")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON Uploads where
+        toJSON Uploads'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _uplNextLink,
+                  ("itemsPerPage" .=) <$> _uplItemsPerPage,
+                  Just ("kind" .= _uplKind),
+                  ("items" .=) <$> _uplItems,
+                  ("totalResults" .=) <$> _uplTotalResults,
+                  ("startIndex" .=) <$> _uplStartIndex,
+                  ("previousLink" .=) <$> _uplPreviousLink])
+
+-- | A custom dimension collection lists Analytics custom dimensions to which
+-- the user has access. Each resource in the collection corresponds to a
+-- single Analytics custom dimension.
+--
+-- /See:/ 'customDimensions' smart constructor.
+data CustomDimensions =
+  CustomDimensions'
+    { _cdNextLink     :: !(Maybe Text)
+    , _cdItemsPerPage :: !(Maybe (Textual Int32))
+    , _cdKind         :: !Text
+    , _cdUsername     :: !(Maybe Text)
+    , _cdItems        :: !(Maybe [CustomDimension])
+    , _cdTotalResults :: !(Maybe (Textual Int32))
+    , _cdStartIndex   :: !(Maybe (Textual Int32))
+    , _cdPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CustomDimensions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdNextLink'
+--
+-- * 'cdItemsPerPage'
+--
+-- * 'cdKind'
+--
+-- * 'cdUsername'
+--
+-- * 'cdItems'
+--
+-- * 'cdTotalResults'
+--
+-- * 'cdStartIndex'
+--
+-- * 'cdPreviousLink'
+customDimensions
+    :: CustomDimensions
+customDimensions =
+  CustomDimensions'
+    { _cdNextLink = Nothing
+    , _cdItemsPerPage = Nothing
+    , _cdKind = "analytics#customDimensions"
+    , _cdUsername = Nothing
+    , _cdItems = Nothing
+    , _cdTotalResults = Nothing
+    , _cdStartIndex = Nothing
+    , _cdPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this custom dimension collection.
+cdNextLink :: Lens' CustomDimensions (Maybe Text)
+cdNextLink
+  = lens _cdNextLink (\ s a -> s{_cdNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+cdItemsPerPage :: Lens' CustomDimensions (Maybe Int32)
+cdItemsPerPage
+  = lens _cdItemsPerPage
+      (\ s a -> s{_cdItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+cdKind :: Lens' CustomDimensions Text
+cdKind = lens _cdKind (\ s a -> s{_cdKind = a})
+
+-- | Email ID of the authenticated user
+cdUsername :: Lens' CustomDimensions (Maybe Text)
+cdUsername
+  = lens _cdUsername (\ s a -> s{_cdUsername = a})
+
+-- | Collection of custom dimensions.
+cdItems :: Lens' CustomDimensions [CustomDimension]
+cdItems
+  = lens _cdItems (\ s a -> s{_cdItems = a}) . _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+cdTotalResults :: Lens' CustomDimensions (Maybe Int32)
+cdTotalResults
+  = lens _cdTotalResults
+      (\ s a -> s{_cdTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+cdStartIndex :: Lens' CustomDimensions (Maybe Int32)
+cdStartIndex
+  = lens _cdStartIndex (\ s a -> s{_cdStartIndex = a})
+      . mapping _Coerce
+
+-- | Link to previous page for this custom dimension collection.
+cdPreviousLink :: Lens' CustomDimensions (Maybe Text)
+cdPreviousLink
+  = lens _cdPreviousLink
+      (\ s a -> s{_cdPreviousLink = a})
+
+instance FromJSON CustomDimensions where
+        parseJSON
+          = withObject "CustomDimensions"
+              (\ o ->
+                 CustomDimensions' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#customDimensions")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON CustomDimensions where
+        toJSON CustomDimensions'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _cdNextLink,
+                  ("itemsPerPage" .=) <$> _cdItemsPerPage,
+                  Just ("kind" .= _cdKind),
+                  ("username" .=) <$> _cdUsername,
+                  ("items" .=) <$> _cdItems,
+                  ("totalResults" .=) <$> _cdTotalResults,
+                  ("startIndex" .=) <$> _cdStartIndex,
+                  ("previousLink" .=) <$> _cdPreviousLink])
+
+-- | An segment collection lists Analytics segments that the user has access
+-- to. Each resource in the collection corresponds to a single Analytics
+-- segment.
+--
+-- /See:/ 'segments' smart constructor.
+data Segments =
+  Segments'
+    { _sNextLink     :: !(Maybe Text)
+    , _sItemsPerPage :: !(Maybe (Textual Int32))
+    , _sKind         :: !Text
+    , _sUsername     :: !(Maybe Text)
+    , _sItems        :: !(Maybe [Segment])
+    , _sTotalResults :: !(Maybe (Textual Int32))
+    , _sStartIndex   :: !(Maybe (Textual Int32))
+    , _sPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Segments' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sNextLink'
+--
+-- * 'sItemsPerPage'
+--
+-- * 'sKind'
+--
+-- * 'sUsername'
+--
+-- * 'sItems'
+--
+-- * 'sTotalResults'
+--
+-- * 'sStartIndex'
+--
+-- * 'sPreviousLink'
+segments
+    :: Segments
+segments =
+  Segments'
+    { _sNextLink = Nothing
+    , _sItemsPerPage = Nothing
+    , _sKind = "analytics#segments"
+    , _sUsername = Nothing
+    , _sItems = Nothing
+    , _sTotalResults = Nothing
+    , _sStartIndex = Nothing
+    , _sPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this segment collection.
+sNextLink :: Lens' Segments (Maybe Text)
+sNextLink
+  = lens _sNextLink (\ s a -> s{_sNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to 1000
+-- with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+sItemsPerPage :: Lens' Segments (Maybe Int32)
+sItemsPerPage
+  = lens _sItemsPerPage
+      (\ s a -> s{_sItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type for segments.
+sKind :: Lens' Segments Text
+sKind = lens _sKind (\ s a -> s{_sKind = a})
+
+-- | Email ID of the authenticated user
+sUsername :: Lens' Segments (Maybe Text)
+sUsername
+  = lens _sUsername (\ s a -> s{_sUsername = a})
+
+-- | A list of segments.
+sItems :: Lens' Segments [Segment]
+sItems
+  = lens _sItems (\ s a -> s{_sItems = a}) . _Default .
+      _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+sTotalResults :: Lens' Segments (Maybe Int32)
+sTotalResults
+  = lens _sTotalResults
+      (\ s a -> s{_sTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+sStartIndex :: Lens' Segments (Maybe Int32)
+sStartIndex
+  = lens _sStartIndex (\ s a -> s{_sStartIndex = a}) .
+      mapping _Coerce
+
+-- | Link to previous page for this segment collection.
+sPreviousLink :: Lens' Segments (Maybe Text)
+sPreviousLink
+  = lens _sPreviousLink
+      (\ s a -> s{_sPreviousLink = a})
+
+instance FromJSON Segments where
+        parseJSON
+          = withObject "Segments"
+              (\ o ->
+                 Segments' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#segments")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON Segments where
+        toJSON Segments'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _sNextLink,
+                  ("itemsPerPage" .=) <$> _sItemsPerPage,
+                  Just ("kind" .= _sKind),
+                  ("username" .=) <$> _sUsername,
+                  ("items" .=) <$> _sItems,
+                  ("totalResults" .=) <$> _sTotalResults,
+                  ("startIndex" .=) <$> _sStartIndex,
+                  ("previousLink" .=) <$> _sPreviousLink])
+
+--
+-- /See:/ 'gaDataDataTable' smart constructor.
+data GaDataDataTable =
+  GaDataDataTable'
+    { _gddtCols :: !(Maybe [GaDataDataTableColsItem])
+    , _gddtRows :: !(Maybe [GaDataDataTableRowsItem])
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GaDataDataTable' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gddtCols'
+--
+-- * 'gddtRows'
+gaDataDataTable
+    :: GaDataDataTable
+gaDataDataTable = GaDataDataTable' {_gddtCols = Nothing, _gddtRows = Nothing}
+
+
+gddtCols :: Lens' GaDataDataTable [GaDataDataTableColsItem]
+gddtCols
+  = lens _gddtCols (\ s a -> s{_gddtCols = a}) .
+      _Default
+      . _Coerce
+
+gddtRows :: Lens' GaDataDataTable [GaDataDataTableRowsItem]
+gddtRows
+  = lens _gddtRows (\ s a -> s{_gddtRows = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON GaDataDataTable where
+        parseJSON
+          = withObject "GaDataDataTable"
+              (\ o ->
+                 GaDataDataTable' <$>
+                   (o .:? "cols" .!= mempty) <*>
+                     (o .:? "rows" .!= mempty))
+
+instance ToJSON GaDataDataTable where
+        toJSON GaDataDataTable'{..}
+          = object
+              (catMaybes
+                 [("cols" .=) <$> _gddtCols,
+                  ("rows" .=) <$> _gddtRows])
+
+-- | Web property being linked.
+--
+-- /See:/ 'entityAdWordsLinkEntity' smart constructor.
+newtype EntityAdWordsLinkEntity =
+  EntityAdWordsLinkEntity'
+    { _eawleWebPropertyRef :: Maybe WebPropertyRef
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EntityAdWordsLinkEntity' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eawleWebPropertyRef'
+entityAdWordsLinkEntity
+    :: EntityAdWordsLinkEntity
+entityAdWordsLinkEntity =
+  EntityAdWordsLinkEntity' {_eawleWebPropertyRef = Nothing}
+
+
+eawleWebPropertyRef :: Lens' EntityAdWordsLinkEntity (Maybe WebPropertyRef)
+eawleWebPropertyRef
+  = lens _eawleWebPropertyRef
+      (\ s a -> s{_eawleWebPropertyRef = a})
+
+instance FromJSON EntityAdWordsLinkEntity where
+        parseJSON
+          = withObject "EntityAdWordsLinkEntity"
+              (\ o ->
+                 EntityAdWordsLinkEntity' <$>
+                   (o .:? "webPropertyRef"))
+
+instance ToJSON EntityAdWordsLinkEntity where
+        toJSON EntityAdWordsLinkEntity'{..}
+          = object
+              (catMaybes
+                 [("webPropertyRef" .=) <$> _eawleWebPropertyRef])
+
+-- | A state based audience definition that will cause a user to be added or
+-- removed from an audience.
+--
+-- /See:/ 'remarketingAudienceStateBasedAudienceDefinition' smart constructor.
+data RemarketingAudienceStateBasedAudienceDefinition =
+  RemarketingAudienceStateBasedAudienceDefinition'
+    { _rasbadExcludeConditions :: !(Maybe RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions)
+    , _rasbadIncludeConditions :: !(Maybe IncludeConditions)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RemarketingAudienceStateBasedAudienceDefinition' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rasbadExcludeConditions'
+--
+-- * 'rasbadIncludeConditions'
+remarketingAudienceStateBasedAudienceDefinition
+    :: RemarketingAudienceStateBasedAudienceDefinition
+remarketingAudienceStateBasedAudienceDefinition =
+  RemarketingAudienceStateBasedAudienceDefinition'
+    {_rasbadExcludeConditions = Nothing, _rasbadIncludeConditions = Nothing}
+
+
+-- | Defines the conditions to exclude users from the audience.
+rasbadExcludeConditions :: Lens' RemarketingAudienceStateBasedAudienceDefinition (Maybe RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions)
+rasbadExcludeConditions
+  = lens _rasbadExcludeConditions
+      (\ s a -> s{_rasbadExcludeConditions = a})
+
+-- | Defines the conditions to include users to the audience.
+rasbadIncludeConditions :: Lens' RemarketingAudienceStateBasedAudienceDefinition (Maybe IncludeConditions)
+rasbadIncludeConditions
+  = lens _rasbadIncludeConditions
+      (\ s a -> s{_rasbadIncludeConditions = a})
+
+instance FromJSON
+           RemarketingAudienceStateBasedAudienceDefinition
+         where
+        parseJSON
+          = withObject
+              "RemarketingAudienceStateBasedAudienceDefinition"
+              (\ o ->
+                 RemarketingAudienceStateBasedAudienceDefinition' <$>
+                   (o .:? "excludeConditions") <*>
+                     (o .:? "includeConditions"))
+
+instance ToJSON
+           RemarketingAudienceStateBasedAudienceDefinition
+         where
+        toJSON
+          RemarketingAudienceStateBasedAudienceDefinition'{..}
+          = object
+              (catMaybes
+                 [("excludeConditions" .=) <$>
+                    _rasbadExcludeConditions,
+                  ("includeConditions" .=) <$>
+                    _rasbadIncludeConditions])
+
+-- | Details for the goal of the type URL_DESTINATION.
+--
+-- /See:/ 'goalURLDestinationDetails' smart constructor.
+data GoalURLDestinationDetails =
+  GoalURLDestinationDetails'
+    { _guddURL               :: !(Maybe Text)
+    , _guddMatchType         :: !(Maybe Text)
+    , _guddSteps             :: !(Maybe [GoalURLDestinationDetailsStepsItem])
+    , _guddCaseSensitive     :: !(Maybe Bool)
+    , _guddFirstStepRequired :: !(Maybe Bool)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GoalURLDestinationDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'guddURL'
+--
+-- * 'guddMatchType'
+--
+-- * 'guddSteps'
+--
+-- * 'guddCaseSensitive'
+--
+-- * 'guddFirstStepRequired'
+goalURLDestinationDetails
+    :: GoalURLDestinationDetails
+goalURLDestinationDetails =
+  GoalURLDestinationDetails'
+    { _guddURL = Nothing
+    , _guddMatchType = Nothing
+    , _guddSteps = Nothing
+    , _guddCaseSensitive = Nothing
+    , _guddFirstStepRequired = Nothing
+    }
+
+
+-- | URL for this goal.
+guddURL :: Lens' GoalURLDestinationDetails (Maybe Text)
+guddURL = lens _guddURL (\ s a -> s{_guddURL = a})
+
+-- | Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX.
+guddMatchType :: Lens' GoalURLDestinationDetails (Maybe Text)
+guddMatchType
+  = lens _guddMatchType
+      (\ s a -> s{_guddMatchType = a})
+
+-- | List of steps configured for this goal funnel.
+guddSteps :: Lens' GoalURLDestinationDetails [GoalURLDestinationDetailsStepsItem]
+guddSteps
+  = lens _guddSteps (\ s a -> s{_guddSteps = a}) .
+      _Default
+      . _Coerce
+
+-- | Determines if the goal URL must exactly match the capitalization of
+-- visited URLs.
+guddCaseSensitive :: Lens' GoalURLDestinationDetails (Maybe Bool)
+guddCaseSensitive
+  = lens _guddCaseSensitive
+      (\ s a -> s{_guddCaseSensitive = a})
+
+-- | Determines if the first step in this goal is required.
+guddFirstStepRequired :: Lens' GoalURLDestinationDetails (Maybe Bool)
+guddFirstStepRequired
+  = lens _guddFirstStepRequired
+      (\ s a -> s{_guddFirstStepRequired = a})
+
+instance FromJSON GoalURLDestinationDetails where
+        parseJSON
+          = withObject "GoalURLDestinationDetails"
+              (\ o ->
+                 GoalURLDestinationDetails' <$>
+                   (o .:? "url") <*> (o .:? "matchType") <*>
+                     (o .:? "steps" .!= mempty)
+                     <*> (o .:? "caseSensitive")
+                     <*> (o .:? "firstStepRequired"))
+
+instance ToJSON GoalURLDestinationDetails where
+        toJSON GoalURLDestinationDetails'{..}
+          = object
+              (catMaybes
+                 [("url" .=) <$> _guddURL,
+                  ("matchType" .=) <$> _guddMatchType,
+                  ("steps" .=) <$> _guddSteps,
+                  ("caseSensitive" .=) <$> _guddCaseSensitive,
+                  ("firstStepRequired" .=) <$> _guddFirstStepRequired])
+
+-- | A profile filter link collection lists profile filter links between
+-- profiles and filters. Each resource in the collection corresponds to a
+-- profile filter link.
+--
+-- /See:/ 'proFileFilterLinks' smart constructor.
+data ProFileFilterLinks =
+  ProFileFilterLinks'
+    { _pfflNextLink     :: !(Maybe Text)
+    , _pfflItemsPerPage :: !(Maybe (Textual Int32))
+    , _pfflKind         :: !Text
+    , _pfflUsername     :: !(Maybe Text)
+    , _pfflItems        :: !(Maybe [ProFileFilterLink])
+    , _pfflTotalResults :: !(Maybe (Textual Int32))
+    , _pfflStartIndex   :: !(Maybe (Textual Int32))
+    , _pfflPreviousLink :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ProFileFilterLinks' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pfflNextLink'
+--
+-- * 'pfflItemsPerPage'
+--
+-- * 'pfflKind'
+--
+-- * 'pfflUsername'
+--
+-- * 'pfflItems'
+--
+-- * 'pfflTotalResults'
+--
+-- * 'pfflStartIndex'
+--
+-- * 'pfflPreviousLink'
+proFileFilterLinks
+    :: ProFileFilterLinks
+proFileFilterLinks =
+  ProFileFilterLinks'
+    { _pfflNextLink = Nothing
+    , _pfflItemsPerPage = Nothing
+    , _pfflKind = "analytics#profileFilterLinks"
+    , _pfflUsername = Nothing
+    , _pfflItems = Nothing
+    , _pfflTotalResults = Nothing
+    , _pfflStartIndex = Nothing
+    , _pfflPreviousLink = Nothing
+    }
+
+
+-- | Link to next page for this profile filter link collection.
+pfflNextLink :: Lens' ProFileFilterLinks (Maybe Text)
+pfflNextLink
+  = lens _pfflNextLink (\ s a -> s{_pfflNextLink = a})
+
+-- | The maximum number of resources the response can contain, regardless of
+-- the actual number of resources returned. Its value ranges from 1 to
+-- 1,000 with a value of 1000 by default, or otherwise specified by the
+-- max-results query parameter.
+pfflItemsPerPage :: Lens' ProFileFilterLinks (Maybe Int32)
+pfflItemsPerPage
+  = lens _pfflItemsPerPage
+      (\ s a -> s{_pfflItemsPerPage = a})
+      . mapping _Coerce
+
+-- | Collection type.
+pfflKind :: Lens' ProFileFilterLinks Text
+pfflKind = lens _pfflKind (\ s a -> s{_pfflKind = a})
+
+-- | Email ID of the authenticated user
+pfflUsername :: Lens' ProFileFilterLinks (Maybe Text)
+pfflUsername
+  = lens _pfflUsername (\ s a -> s{_pfflUsername = a})
+
+-- | A list of profile filter links.
+pfflItems :: Lens' ProFileFilterLinks [ProFileFilterLink]
+pfflItems
+  = lens _pfflItems (\ s a -> s{_pfflItems = a}) .
+      _Default
+      . _Coerce
+
+-- | The total number of results for the query, regardless of the number of
+-- results in the response.
+pfflTotalResults :: Lens' ProFileFilterLinks (Maybe Int32)
+pfflTotalResults
+  = lens _pfflTotalResults
+      (\ s a -> s{_pfflTotalResults = a})
+      . mapping _Coerce
+
+-- | The starting index of the resources, which is 1 by default or otherwise
+-- specified by the start-index query parameter.
+pfflStartIndex :: Lens' ProFileFilterLinks (Maybe Int32)
+pfflStartIndex
+  = lens _pfflStartIndex
+      (\ s a -> s{_pfflStartIndex = a})
+      . mapping _Coerce
+
+-- | Link to previous page for this profile filter link collection.
+pfflPreviousLink :: Lens' ProFileFilterLinks (Maybe Text)
+pfflPreviousLink
+  = lens _pfflPreviousLink
+      (\ s a -> s{_pfflPreviousLink = a})
+
+instance FromJSON ProFileFilterLinks where
+        parseJSON
+          = withObject "ProFileFilterLinks"
+              (\ o ->
+                 ProFileFilterLinks' <$>
+                   (o .:? "nextLink") <*> (o .:? "itemsPerPage") <*>
+                     (o .:? "kind" .!= "analytics#profileFilterLinks")
+                     <*> (o .:? "username")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "totalResults")
+                     <*> (o .:? "startIndex")
+                     <*> (o .:? "previousLink"))
+
+instance ToJSON ProFileFilterLinks where
+        toJSON ProFileFilterLinks'{..}
+          = object
+              (catMaybes
+                 [("nextLink" .=) <$> _pfflNextLink,
+                  ("itemsPerPage" .=) <$> _pfflItemsPerPage,
+                  Just ("kind" .= _pfflKind),
+                  ("username" .=) <$> _pfflUsername,
+                  ("items" .=) <$> _pfflItems,
+                  ("totalResults" .=) <$> _pfflTotalResults,
+                  ("startIndex" .=) <$> _pfflStartIndex,
+                  ("previousLink" .=) <$> _pfflPreviousLink])
+
+-- | Parent link for this web property. Points to the account to which this
+-- web property belongs.
+--
+-- /See:/ 'webPropertyParentLink' smart constructor.
+data WebPropertyParentLink =
+  WebPropertyParentLink'
+    { _wpplHref :: !(Maybe Text)
+    , _wpplType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'WebPropertyParentLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wpplHref'
+--
+-- * 'wpplType'
+webPropertyParentLink
+    :: WebPropertyParentLink
+webPropertyParentLink =
+  WebPropertyParentLink' {_wpplHref = Nothing, _wpplType = "analytics#account"}
+
+
+-- | Link to the account for this web property.
+wpplHref :: Lens' WebPropertyParentLink (Maybe Text)
+wpplHref = lens _wpplHref (\ s a -> s{_wpplHref = a})
+
+-- | Type of the parent link. Its value is \"analytics#account\".
+wpplType :: Lens' WebPropertyParentLink Text
+wpplType = lens _wpplType (\ s a -> s{_wpplType = a})
+
+instance FromJSON WebPropertyParentLink where
+        parseJSON
+          = withObject "WebPropertyParentLink"
+              (\ o ->
+                 WebPropertyParentLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#account"))
+
+instance ToJSON WebPropertyParentLink where
+        toJSON WebPropertyParentLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _wpplHref,
+                  Just ("type" .= _wpplType)])
+
+-- | Information for the view (profile), for which the Analytics data was
+-- requested.
+--
+-- /See:/ 'gaDataProFileInfo' smart constructor.
+data GaDataProFileInfo =
+  GaDataProFileInfo'
+    { _gdpfiWebPropertyId         :: !(Maybe Text)
+    , _gdpfiProFileId             :: !(Maybe Text)
+    , _gdpfiProFileName           :: !(Maybe Text)
+    , _gdpfiAccountId             :: !(Maybe Text)
+    , _gdpfiInternalWebPropertyId :: !(Maybe Text)
+    , _gdpfiTableId               :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GaDataProFileInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdpfiWebPropertyId'
+--
+-- * 'gdpfiProFileId'
+--
+-- * 'gdpfiProFileName'
+--
+-- * 'gdpfiAccountId'
+--
+-- * 'gdpfiInternalWebPropertyId'
+--
+-- * 'gdpfiTableId'
+gaDataProFileInfo
+    :: GaDataProFileInfo
+gaDataProFileInfo =
+  GaDataProFileInfo'
+    { _gdpfiWebPropertyId = Nothing
+    , _gdpfiProFileId = Nothing
+    , _gdpfiProFileName = Nothing
+    , _gdpfiAccountId = Nothing
+    , _gdpfiInternalWebPropertyId = Nothing
+    , _gdpfiTableId = Nothing
+    }
+
+
+-- | Web Property ID to which this view (profile) belongs.
+gdpfiWebPropertyId :: Lens' GaDataProFileInfo (Maybe Text)
+gdpfiWebPropertyId
+  = lens _gdpfiWebPropertyId
+      (\ s a -> s{_gdpfiWebPropertyId = a})
+
+-- | View (Profile) ID.
+gdpfiProFileId :: Lens' GaDataProFileInfo (Maybe Text)
+gdpfiProFileId
+  = lens _gdpfiProFileId
+      (\ s a -> s{_gdpfiProFileId = a})
+
+-- | View (Profile) name.
+gdpfiProFileName :: Lens' GaDataProFileInfo (Maybe Text)
+gdpfiProFileName
+  = lens _gdpfiProFileName
+      (\ s a -> s{_gdpfiProFileName = a})
+
+-- | Account ID to which this view (profile) belongs.
+gdpfiAccountId :: Lens' GaDataProFileInfo (Maybe Text)
+gdpfiAccountId
+  = lens _gdpfiAccountId
+      (\ s a -> s{_gdpfiAccountId = a})
+
+-- | Internal ID for the web property to which this view (profile) belongs.
+gdpfiInternalWebPropertyId :: Lens' GaDataProFileInfo (Maybe Text)
+gdpfiInternalWebPropertyId
+  = lens _gdpfiInternalWebPropertyId
+      (\ s a -> s{_gdpfiInternalWebPropertyId = a})
+
+-- | Table ID for view (profile).
+gdpfiTableId :: Lens' GaDataProFileInfo (Maybe Text)
+gdpfiTableId
+  = lens _gdpfiTableId (\ s a -> s{_gdpfiTableId = a})
+
+instance FromJSON GaDataProFileInfo where
+        parseJSON
+          = withObject "GaDataProFileInfo"
+              (\ o ->
+                 GaDataProFileInfo' <$>
+                   (o .:? "webPropertyId") <*> (o .:? "profileId") <*>
+                     (o .:? "profileName")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "internalWebPropertyId")
+                     <*> (o .:? "tableId"))
+
+instance ToJSON GaDataProFileInfo where
+        toJSON GaDataProFileInfo'{..}
+          = object
+              (catMaybes
+                 [("webPropertyId" .=) <$> _gdpfiWebPropertyId,
+                  ("profileId" .=) <$> _gdpfiProFileId,
+                  ("profileName" .=) <$> _gdpfiProFileName,
+                  ("accountId" .=) <$> _gdpfiAccountId,
+                  ("internalWebPropertyId" .=) <$>
+                    _gdpfiInternalWebPropertyId,
+                  ("tableId" .=) <$> _gdpfiTableId])
+
+-- | Metadata returned for an upload operation.
+--
+-- /See:/ 'upload' smart constructor.
+data Upload =
+  Upload'
+    { _uuStatus             :: !(Maybe Text)
+    , _uuKind               :: !Text
+    , _uuCustomDataSourceId :: !(Maybe Text)
+    , _uuUploadTime         :: !(Maybe DateTime')
+    , _uuAccountId          :: !(Maybe (Textual Int64))
+    , _uuId                 :: !(Maybe Text)
+    , _uuErrors             :: !(Maybe [Text])
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Upload' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'uuStatus'
+--
+-- * 'uuKind'
+--
+-- * 'uuCustomDataSourceId'
+--
+-- * 'uuUploadTime'
+--
+-- * 'uuAccountId'
+--
+-- * 'uuId'
+--
+-- * 'uuErrors'
+upload
+    :: Upload
+upload =
+  Upload'
+    { _uuStatus = Nothing
+    , _uuKind = "analytics#upload"
+    , _uuCustomDataSourceId = Nothing
+    , _uuUploadTime = Nothing
+    , _uuAccountId = Nothing
+    , _uuId = Nothing
+    , _uuErrors = Nothing
+    }
+
+
+-- | Upload status. Possible values: PENDING, COMPLETED, FAILED, DELETING,
+-- DELETED.
+uuStatus :: Lens' Upload (Maybe Text)
+uuStatus = lens _uuStatus (\ s a -> s{_uuStatus = a})
+
+-- | Resource type for Analytics upload.
+uuKind :: Lens' Upload Text
+uuKind = lens _uuKind (\ s a -> s{_uuKind = a})
+
+-- | Custom data source Id to which this data import belongs.
+uuCustomDataSourceId :: Lens' Upload (Maybe Text)
+uuCustomDataSourceId
+  = lens _uuCustomDataSourceId
+      (\ s a -> s{_uuCustomDataSourceId = a})
+
+-- | Time this file is uploaded.
+uuUploadTime :: Lens' Upload (Maybe UTCTime)
+uuUploadTime
+  = lens _uuUploadTime (\ s a -> s{_uuUploadTime = a})
+      . mapping _DateTime
+
+-- | Account Id to which this upload belongs.
+uuAccountId :: Lens' Upload (Maybe Int64)
+uuAccountId
+  = lens _uuAccountId (\ s a -> s{_uuAccountId = a}) .
+      mapping _Coerce
+
+-- | A unique ID for this upload.
+uuId :: Lens' Upload (Maybe Text)
+uuId = lens _uuId (\ s a -> s{_uuId = a})
+
+-- | Data import errors collection.
+uuErrors :: Lens' Upload [Text]
+uuErrors
+  = lens _uuErrors (\ s a -> s{_uuErrors = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON Upload where
+        parseJSON
+          = withObject "Upload"
+              (\ o ->
+                 Upload' <$>
+                   (o .:? "status") <*>
+                     (o .:? "kind" .!= "analytics#upload")
+                     <*> (o .:? "customDataSourceId")
+                     <*> (o .:? "uploadTime")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "id")
+                     <*> (o .:? "errors" .!= mempty))
+
+instance ToJSON Upload where
+        toJSON Upload'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _uuStatus,
+                  Just ("kind" .= _uuKind),
+                  ("customDataSourceId" .=) <$> _uuCustomDataSourceId,
+                  ("uploadTime" .=) <$> _uuUploadTime,
+                  ("accountId" .=) <$> _uuAccountId,
+                  ("id" .=) <$> _uuId, ("errors" .=) <$> _uuErrors])
+
+-- | JSON template for Analytics Custom Dimension.
+--
+-- /See:/ 'customDimension' smart constructor.
+data CustomDimension =
+  CustomDimension'
+    { _cddParentLink    :: !(Maybe CustomDimensionParentLink)
+    , _cddWebPropertyId :: !(Maybe Text)
+    , _cddKind          :: !Text
+    , _cddCreated       :: !(Maybe DateTime')
+    , _cddActive        :: !(Maybe Bool)
+    , _cddSelfLink      :: !(Maybe Text)
+    , _cddAccountId     :: !(Maybe Text)
+    , _cddName          :: !(Maybe Text)
+    , _cddScope         :: !(Maybe Text)
+    , _cddId            :: !(Maybe Text)
+    , _cddUpdated       :: !(Maybe DateTime')
+    , _cddIndex         :: !(Maybe (Textual Int32))
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CustomDimension' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cddParentLink'
+--
+-- * 'cddWebPropertyId'
+--
+-- * 'cddKind'
+--
+-- * 'cddCreated'
+--
+-- * 'cddActive'
+--
+-- * 'cddSelfLink'
+--
+-- * 'cddAccountId'
+--
+-- * 'cddName'
+--
+-- * 'cddScope'
+--
+-- * 'cddId'
+--
+-- * 'cddUpdated'
+--
+-- * 'cddIndex'
+customDimension
+    :: CustomDimension
+customDimension =
+  CustomDimension'
+    { _cddParentLink = Nothing
+    , _cddWebPropertyId = Nothing
+    , _cddKind = "analytics#customDimension"
+    , _cddCreated = Nothing
+    , _cddActive = Nothing
+    , _cddSelfLink = Nothing
+    , _cddAccountId = Nothing
+    , _cddName = Nothing
+    , _cddScope = Nothing
+    , _cddId = Nothing
+    , _cddUpdated = Nothing
+    , _cddIndex = Nothing
+    }
+
+
+-- | Parent link for the custom dimension. Points to the property to which
+-- the custom dimension belongs.
+cddParentLink :: Lens' CustomDimension (Maybe CustomDimensionParentLink)
+cddParentLink
+  = lens _cddParentLink
+      (\ s a -> s{_cddParentLink = a})
+
+-- | Property ID.
+cddWebPropertyId :: Lens' CustomDimension (Maybe Text)
+cddWebPropertyId
+  = lens _cddWebPropertyId
+      (\ s a -> s{_cddWebPropertyId = a})
+
+-- | Kind value for a custom dimension. Set to \"analytics#customDimension\".
+-- It is a read-only field.
+cddKind :: Lens' CustomDimension Text
+cddKind = lens _cddKind (\ s a -> s{_cddKind = a})
+
+-- | Time the custom dimension was created.
+cddCreated :: Lens' CustomDimension (Maybe UTCTime)
+cddCreated
+  = lens _cddCreated (\ s a -> s{_cddCreated = a}) .
+      mapping _DateTime
+
+-- | Boolean indicating whether the custom dimension is active.
+cddActive :: Lens' CustomDimension (Maybe Bool)
+cddActive
+  = lens _cddActive (\ s a -> s{_cddActive = a})
+
+-- | Link for the custom dimension
+cddSelfLink :: Lens' CustomDimension (Maybe Text)
+cddSelfLink
+  = lens _cddSelfLink (\ s a -> s{_cddSelfLink = a})
+
+-- | Account ID.
+cddAccountId :: Lens' CustomDimension (Maybe Text)
+cddAccountId
+  = lens _cddAccountId (\ s a -> s{_cddAccountId = a})
+
+-- | Name of the custom dimension.
+cddName :: Lens' CustomDimension (Maybe Text)
+cddName = lens _cddName (\ s a -> s{_cddName = a})
+
+-- | Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
+cddScope :: Lens' CustomDimension (Maybe Text)
+cddScope = lens _cddScope (\ s a -> s{_cddScope = a})
+
+-- | Custom dimension ID.
+cddId :: Lens' CustomDimension (Maybe Text)
+cddId = lens _cddId (\ s a -> s{_cddId = a})
+
+-- | Time the custom dimension was last modified.
+cddUpdated :: Lens' CustomDimension (Maybe UTCTime)
+cddUpdated
+  = lens _cddUpdated (\ s a -> s{_cddUpdated = a}) .
+      mapping _DateTime
+
+-- | Index of the custom dimension.
+cddIndex :: Lens' CustomDimension (Maybe Int32)
+cddIndex
+  = lens _cddIndex (\ s a -> s{_cddIndex = a}) .
+      mapping _Coerce
+
+instance FromJSON CustomDimension where
+        parseJSON
+          = withObject "CustomDimension"
+              (\ o ->
+                 CustomDimension' <$>
+                   (o .:? "parentLink") <*> (o .:? "webPropertyId") <*>
+                     (o .:? "kind" .!= "analytics#customDimension")
+                     <*> (o .:? "created")
+                     <*> (o .:? "active")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "accountId")
+                     <*> (o .:? "name")
+                     <*> (o .:? "scope")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "index"))
+
+instance ToJSON CustomDimension where
+        toJSON CustomDimension'{..}
+          = object
+              (catMaybes
+                 [("parentLink" .=) <$> _cddParentLink,
+                  ("webPropertyId" .=) <$> _cddWebPropertyId,
+                  Just ("kind" .= _cddKind),
+                  ("created" .=) <$> _cddCreated,
+                  ("active" .=) <$> _cddActive,
+                  ("selfLink" .=) <$> _cddSelfLink,
+                  ("accountId" .=) <$> _cddAccountId,
+                  ("name" .=) <$> _cddName, ("scope" .=) <$> _cddScope,
+                  ("id" .=) <$> _cddId, ("updated" .=) <$> _cddUpdated,
+                  ("index" .=) <$> _cddIndex])
+
+-- | JSON template for an Analytics segment.
+--
+-- /See:/ 'segment' smart constructor.
+data Segment =
+  Segment'
+    { _segDefinition :: !(Maybe Text)
+    , _segKind       :: !Text
+    , _segCreated    :: !(Maybe DateTime')
+    , _segSelfLink   :: !(Maybe Text)
+    , _segName       :: !(Maybe Text)
+    , _segId         :: !(Maybe Text)
+    , _segUpdated    :: !(Maybe DateTime')
+    , _segType       :: !(Maybe Text)
+    , _segSegmentId  :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Segment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'segDefinition'
+--
+-- * 'segKind'
+--
+-- * 'segCreated'
+--
+-- * 'segSelfLink'
+--
+-- * 'segName'
+--
+-- * 'segId'
+--
+-- * 'segUpdated'
+--
+-- * 'segType'
+--
+-- * 'segSegmentId'
+segment
+    :: Segment
+segment =
+  Segment'
+    { _segDefinition = Nothing
+    , _segKind = "analytics#segment"
+    , _segCreated = Nothing
+    , _segSelfLink = Nothing
+    , _segName = Nothing
+    , _segId = Nothing
+    , _segUpdated = Nothing
+    , _segType = Nothing
+    , _segSegmentId = Nothing
+    }
+
+
+-- | Segment definition.
+segDefinition :: Lens' Segment (Maybe Text)
+segDefinition
+  = lens _segDefinition
+      (\ s a -> s{_segDefinition = a})
+
+-- | Resource type for Analytics segment.
+segKind :: Lens' Segment Text
+segKind = lens _segKind (\ s a -> s{_segKind = a})
+
+-- | Time the segment was created.
+segCreated :: Lens' Segment (Maybe UTCTime)
+segCreated
+  = lens _segCreated (\ s a -> s{_segCreated = a}) .
+      mapping _DateTime
+
+-- | Link for this segment.
+segSelfLink :: Lens' Segment (Maybe Text)
+segSelfLink
+  = lens _segSelfLink (\ s a -> s{_segSelfLink = a})
+
+-- | Segment name.
+segName :: Lens' Segment (Maybe Text)
+segName = lens _segName (\ s a -> s{_segName = a})
+
+-- | Segment ID.
+segId :: Lens' Segment (Maybe Text)
+segId = lens _segId (\ s a -> s{_segId = a})
+
+-- | Time the segment was last modified.
+segUpdated :: Lens' Segment (Maybe UTCTime)
+segUpdated
+  = lens _segUpdated (\ s a -> s{_segUpdated = a}) .
+      mapping _DateTime
+
+-- | Type for a segment. Possible values are \"BUILT_IN\" or \"CUSTOM\".
+segType :: Lens' Segment (Maybe Text)
+segType = lens _segType (\ s a -> s{_segType = a})
+
+-- | Segment ID. Can be used with the \'segment\' parameter in Core Reporting
+-- API.
+segSegmentId :: Lens' Segment (Maybe Text)
+segSegmentId
+  = lens _segSegmentId (\ s a -> s{_segSegmentId = a})
+
+instance FromJSON Segment where
+        parseJSON
+          = withObject "Segment"
+              (\ o ->
+                 Segment' <$>
+                   (o .:? "definition") <*>
+                     (o .:? "kind" .!= "analytics#segment")
+                     <*> (o .:? "created")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "updated")
+                     <*> (o .:? "type")
+                     <*> (o .:? "segmentId"))
+
+instance ToJSON Segment where
+        toJSON Segment'{..}
+          = object
+              (catMaybes
+                 [("definition" .=) <$> _segDefinition,
+                  Just ("kind" .= _segKind),
+                  ("created" .=) <$> _segCreated,
+                  ("selfLink" .=) <$> _segSelfLink,
+                  ("name" .=) <$> _segName, ("id" .=) <$> _segId,
+                  ("updated" .=) <$> _segUpdated,
+                  ("type" .=) <$> _segType,
+                  ("segmentId" .=) <$> _segSegmentId])
+
+-- | Child link for an account entry. Points to the list of web properties
+-- for this account.
+--
+-- /See:/ 'accountChildLink' smart constructor.
+data AccountChildLink =
+  AccountChildLink'
+    { _aclHref :: !(Maybe Text)
+    , _aclType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AccountChildLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aclHref'
+--
+-- * 'aclType'
+accountChildLink
+    :: AccountChildLink
+accountChildLink =
+  AccountChildLink' {_aclHref = Nothing, _aclType = "analytics#webproperties"}
+
+
+-- | Link to the list of web properties for this account.
+aclHref :: Lens' AccountChildLink (Maybe Text)
+aclHref = lens _aclHref (\ s a -> s{_aclHref = a})
+
+-- | Type of the child link. Its value is \"analytics#webproperties\".
+aclType :: Lens' AccountChildLink Text
+aclType = lens _aclType (\ s a -> s{_aclType = a})
+
+instance FromJSON AccountChildLink where
+        parseJSON
+          = withObject "AccountChildLink"
+              (\ o ->
+                 AccountChildLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#webproperties"))
+
+instance ToJSON AccountChildLink where
+        toJSON AccountChildLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _aclHref,
+                  Just ("type" .= _aclType)])
+
+-- | JSON template for an Analytics profile filter link.
+--
+-- /See:/ 'proFileFilterLink' smart constructor.
+data ProFileFilterLink =
+  ProFileFilterLink'
+    { _proProFileRef :: !(Maybe ProFileRef)
+    , _proKind       :: !Text
+    , _proFilterRef  :: !(Maybe FilterRef)
+    , _proSelfLink   :: !(Maybe Text)
+    , _proId         :: !(Maybe Text)
+    , _proRank       :: !(Maybe (Textual Int32))
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ProFileFilterLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'proProFileRef'
+--
+-- * 'proKind'
+--
+-- * 'proFilterRef'
+--
+-- * 'proSelfLink'
+--
+-- * 'proId'
+--
+-- * 'proRank'
+proFileFilterLink
+    :: ProFileFilterLink
+proFileFilterLink =
+  ProFileFilterLink'
+    { _proProFileRef = Nothing
+    , _proKind = "analytics#profileFilterLink"
+    , _proFilterRef = Nothing
+    , _proSelfLink = Nothing
+    , _proId = Nothing
+    , _proRank = Nothing
+    }
+
+
+-- | View (Profile) for this link.
+proProFileRef :: Lens' ProFileFilterLink (Maybe ProFileRef)
+proProFileRef
+  = lens _proProFileRef
+      (\ s a -> s{_proProFileRef = a})
+
+-- | Resource type for Analytics filter.
+proKind :: Lens' ProFileFilterLink Text
+proKind = lens _proKind (\ s a -> s{_proKind = a})
+
+-- | Filter for this link.
+proFilterRef :: Lens' ProFileFilterLink (Maybe FilterRef)
+proFilterRef
+  = lens _proFilterRef (\ s a -> s{_proFilterRef = a})
+
+-- | Link for this profile filter link.
+proSelfLink :: Lens' ProFileFilterLink (Maybe Text)
+proSelfLink
+  = lens _proSelfLink (\ s a -> s{_proSelfLink = a})
+
+-- | Profile filter link ID.
+proId :: Lens' ProFileFilterLink (Maybe Text)
+proId = lens _proId (\ s a -> s{_proId = a})
+
+-- | The rank of this profile filter link relative to the other filters
+-- linked to the same profile. For readonly (i.e., list and get)
+-- operations, the rank always starts at 1. For write (i.e., create,
+-- update, or delete) operations, you may specify a value between 0 and 255
+-- inclusively, [0, 255]. In order to insert a link at the end of the list,
+-- either don\'t specify a rank or set a rank to a number greater than the
+-- largest rank in the list. In order to insert a link to the beginning of
+-- the list specify a rank that is less than or equal to 1. The new link
+-- will move all existing filters with the same or lower rank down the
+-- list. After the link is inserted\/updated\/deleted all profile filter
+-- links will be renumbered starting at 1.
+proRank :: Lens' ProFileFilterLink (Maybe Int32)
+proRank
+  = lens _proRank (\ s a -> s{_proRank = a}) .
+      mapping _Coerce
+
+instance FromJSON ProFileFilterLink where
+        parseJSON
+          = withObject "ProFileFilterLink"
+              (\ o ->
+                 ProFileFilterLink' <$>
+                   (o .:? "profileRef") <*>
+                     (o .:? "kind" .!= "analytics#profileFilterLink")
+                     <*> (o .:? "filterRef")
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "id")
+                     <*> (o .:? "rank"))
+
+instance ToJSON ProFileFilterLink where
+        toJSON ProFileFilterLink'{..}
+          = object
+              (catMaybes
+                 [("profileRef" .=) <$> _proProFileRef,
+                  Just ("kind" .= _proKind),
+                  ("filterRef" .=) <$> _proFilterRef,
+                  ("selfLink" .=) <$> _proSelfLink,
+                  ("id" .=) <$> _proId, ("rank" .=) <$> _proRank])
+
+-- | Parent link for the custom metric. Points to the property to which the
+-- custom metric belongs.
+--
+-- /See:/ 'customMetricParentLink' smart constructor.
+data CustomMetricParentLink =
+  CustomMetricParentLink'
+    { _cmplHref :: !(Maybe Text)
+    , _cmplType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CustomMetricParentLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cmplHref'
+--
+-- * 'cmplType'
+customMetricParentLink
+    :: CustomMetricParentLink
+customMetricParentLink =
+  CustomMetricParentLink'
+    {_cmplHref = Nothing, _cmplType = "analytics#webproperty"}
+
+
+-- | Link to the property to which the custom metric belongs.
+cmplHref :: Lens' CustomMetricParentLink (Maybe Text)
+cmplHref = lens _cmplHref (\ s a -> s{_cmplHref = a})
+
+-- | Type of the parent link. Set to \"analytics#webproperty\".
+cmplType :: Lens' CustomMetricParentLink Text
+cmplType = lens _cmplType (\ s a -> s{_cmplType = a})
+
+instance FromJSON CustomMetricParentLink where
+        parseJSON
+          = withObject "CustomMetricParentLink"
+              (\ o ->
+                 CustomMetricParentLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#webproperty"))
+
+instance ToJSON CustomMetricParentLink where
+        toJSON CustomMetricParentLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _cmplHref,
+                  Just ("type" .= _cmplType)])
+
+-- | JSON template for a metadata column.
+--
+-- /See:/ 'column' smart constructor.
+data Column =
+  Column'
+    { _ccKind       :: !Text
+    , _ccAttributes :: !(Maybe ColumnAttributes)
+    , _ccId         :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Column' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccKind'
+--
+-- * 'ccAttributes'
+--
+-- * 'ccId'
+column
+    :: Column
+column =
+  Column'
+    {_ccKind = "analytics#column", _ccAttributes = Nothing, _ccId = Nothing}
+
+
+-- | Resource type for Analytics column.
+ccKind :: Lens' Column Text
+ccKind = lens _ccKind (\ s a -> s{_ccKind = a})
+
+-- | Map of attribute name and value for this column.
+ccAttributes :: Lens' Column (Maybe ColumnAttributes)
+ccAttributes
+  = lens _ccAttributes (\ s a -> s{_ccAttributes = a})
+
+-- | Column id.
+ccId :: Lens' Column (Maybe Text)
+ccId = lens _ccId (\ s a -> s{_ccId = a})
+
+instance FromJSON Column where
+        parseJSON
+          = withObject "Column"
+              (\ o ->
+                 Column' <$>
+                   (o .:? "kind" .!= "analytics#column") <*>
+                     (o .:? "attributes")
+                     <*> (o .:? "id"))
+
+instance ToJSON Column where
+        toJSON Column'{..}
+          = object
+              (catMaybes
+                 [Just ("kind" .= _ccKind),
+                  ("attributes" .=) <$> _ccAttributes,
+                  ("id" .=) <$> _ccId])
+
+-- | The simple audience definition that will cause a user to be added to an
+-- audience.
+--
+-- /See:/ 'remarketingAudienceAudienceDefinition' smart constructor.
+newtype RemarketingAudienceAudienceDefinition =
+  RemarketingAudienceAudienceDefinition'
+    { _raadIncludeConditions :: Maybe IncludeConditions
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RemarketingAudienceAudienceDefinition' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'raadIncludeConditions'
+remarketingAudienceAudienceDefinition
+    :: RemarketingAudienceAudienceDefinition
+remarketingAudienceAudienceDefinition =
+  RemarketingAudienceAudienceDefinition' {_raadIncludeConditions = Nothing}
+
+
+-- | Defines the conditions to include users to the audience.
+raadIncludeConditions :: Lens' RemarketingAudienceAudienceDefinition (Maybe IncludeConditions)
+raadIncludeConditions
+  = lens _raadIncludeConditions
+      (\ s a -> s{_raadIncludeConditions = a})
+
+instance FromJSON
+           RemarketingAudienceAudienceDefinition
+         where
+        parseJSON
+          = withObject "RemarketingAudienceAudienceDefinition"
+              (\ o ->
+                 RemarketingAudienceAudienceDefinition' <$>
+                   (o .:? "includeConditions"))
+
+instance ToJSON RemarketingAudienceAudienceDefinition
+         where
+        toJSON RemarketingAudienceAudienceDefinition'{..}
+          = object
+              (catMaybes
+                 [("includeConditions" .=) <$>
+                    _raadIncludeConditions])
+
+--
+-- /See:/ 'gaDataDataTableColsItem' smart constructor.
+data GaDataDataTableColsItem =
+  GaDataDataTableColsItem'
+    { _gddtciId    :: !(Maybe Text)
+    , _gddtciType  :: !(Maybe Text)
+    , _gddtciLabel :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GaDataDataTableColsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gddtciId'
+--
+-- * 'gddtciType'
+--
+-- * 'gddtciLabel'
+gaDataDataTableColsItem
+    :: GaDataDataTableColsItem
+gaDataDataTableColsItem =
+  GaDataDataTableColsItem'
+    {_gddtciId = Nothing, _gddtciType = Nothing, _gddtciLabel = Nothing}
+
+
+gddtciId :: Lens' GaDataDataTableColsItem (Maybe Text)
+gddtciId = lens _gddtciId (\ s a -> s{_gddtciId = a})
+
+gddtciType :: Lens' GaDataDataTableColsItem (Maybe Text)
+gddtciType
+  = lens _gddtciType (\ s a -> s{_gddtciType = a})
+
+gddtciLabel :: Lens' GaDataDataTableColsItem (Maybe Text)
+gddtciLabel
+  = lens _gddtciLabel (\ s a -> s{_gddtciLabel = a})
+
+instance FromJSON GaDataDataTableColsItem where
+        parseJSON
+          = withObject "GaDataDataTableColsItem"
+              (\ o ->
+                 GaDataDataTableColsItem' <$>
+                   (o .:? "id") <*> (o .:? "type") <*> (o .:? "label"))
+
+instance ToJSON GaDataDataTableColsItem where
+        toJSON GaDataDataTableColsItem'{..}
+          = object
+              (catMaybes
+                 [("id" .=) <$> _gddtciId,
+                  ("type" .=) <$> _gddtciType,
+                  ("label" .=) <$> _gddtciLabel])
+
+--
+-- /See:/ 'experimentVariationsItem' smart constructor.
+data ExperimentVariationsItem =
+  ExperimentVariationsItem'
+    { _eviStatus :: !(Maybe Text)
+    , _eviWeight :: !(Maybe (Textual Double))
+    , _eviURL    :: !(Maybe Text)
+    , _eviWon    :: !(Maybe Bool)
+    , _eviName   :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ExperimentVariationsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eviStatus'
+--
+-- * 'eviWeight'
+--
+-- * 'eviURL'
+--
+-- * 'eviWon'
+--
+-- * 'eviName'
+experimentVariationsItem
+    :: ExperimentVariationsItem
+experimentVariationsItem =
+  ExperimentVariationsItem'
+    { _eviStatus = Nothing
+    , _eviWeight = Nothing
+    , _eviURL = Nothing
+    , _eviWon = Nothing
+    , _eviName = Nothing
+    }
+
+
+-- | Status of the variation. Possible values: \"ACTIVE\", \"INACTIVE\".
+-- INACTIVE variations are not served. This field may not be changed for an
+-- experiment whose status is ENDED.
+eviStatus :: Lens' ExperimentVariationsItem (Maybe Text)
+eviStatus
+  = lens _eviStatus (\ s a -> s{_eviStatus = a})
+
+-- | Weight that this variation should receive. Only present if the
+-- experiment is running. This field is read-only.
+eviWeight :: Lens' ExperimentVariationsItem (Maybe Double)
+eviWeight
+  = lens _eviWeight (\ s a -> s{_eviWeight = a}) .
+      mapping _Coerce
+
+-- | The URL of the variation. This field may not be changed for an
+-- experiment whose status is RUNNING or ENDED.
+eviURL :: Lens' ExperimentVariationsItem (Maybe Text)
+eviURL = lens _eviURL (\ s a -> s{_eviURL = a})
+
+-- | True if the experiment has ended and this variation performed
+-- (statistically) significantly better than the original. This field is
+-- read-only.
+eviWon :: Lens' ExperimentVariationsItem (Maybe Bool)
+eviWon = lens _eviWon (\ s a -> s{_eviWon = a})
+
+-- | The name of the variation. This field is required when creating an
+-- experiment. This field may not be changed for an experiment whose status
+-- is ENDED.
+eviName :: Lens' ExperimentVariationsItem (Maybe Text)
+eviName = lens _eviName (\ s a -> s{_eviName = a})
+
+instance FromJSON ExperimentVariationsItem where
+        parseJSON
+          = withObject "ExperimentVariationsItem"
+              (\ o ->
+                 ExperimentVariationsItem' <$>
+                   (o .:? "status") <*> (o .:? "weight") <*>
+                     (o .:? "url")
+                     <*> (o .:? "won")
+                     <*> (o .:? "name"))
+
+instance ToJSON ExperimentVariationsItem where
+        toJSON ExperimentVariationsItem'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _eviStatus,
+                  ("weight" .=) <$> _eviWeight, ("url" .=) <$> _eviURL,
+                  ("won" .=) <$> _eviWon, ("name" .=) <$> _eviName])
+
+-- | Defines the conditions to exclude users from the audience.
+--
+-- /See:/ 'remarketingAudienceStateBasedAudienceDefinitionExcludeConditions' smart constructor.
+data RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions =
+  RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions'
+    { _rasbadecExclusionDuration :: !(Maybe Text)
+    , _rasbadecSegment           :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rasbadecExclusionDuration'
+--
+-- * 'rasbadecSegment'
+remarketingAudienceStateBasedAudienceDefinitionExcludeConditions
+    :: RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions
+remarketingAudienceStateBasedAudienceDefinitionExcludeConditions =
+  RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions'
+    {_rasbadecExclusionDuration = Nothing, _rasbadecSegment = Nothing}
+
+
+-- | Whether to make the exclusion TEMPORARY or PERMANENT.
+rasbadecExclusionDuration :: Lens' RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions (Maybe Text)
+rasbadecExclusionDuration
+  = lens _rasbadecExclusionDuration
+      (\ s a -> s{_rasbadecExclusionDuration = a})
+
+-- | The segment condition that will cause a user to be removed from an
+-- audience.
+rasbadecSegment :: Lens' RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions (Maybe Text)
+rasbadecSegment
+  = lens _rasbadecSegment
+      (\ s a -> s{_rasbadecSegment = a})
+
+instance FromJSON
+           RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions
+         where
+        parseJSON
+          = withObject
+              "RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions"
+              (\ o ->
+                 RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions'
+                   <$>
+                   (o .:? "exclusionDuration") <*> (o .:? "segment"))
+
+instance ToJSON
+           RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions
+         where
+        toJSON
+          RemarketingAudienceStateBasedAudienceDefinitionExcludeConditions'{..}
+          = object
+              (catMaybes
+                 [("exclusionDuration" .=) <$>
+                    _rasbadecExclusionDuration,
+                  ("segment" .=) <$> _rasbadecSegment])
+
+-- | Total values for the requested metrics over all the results, not just
+-- the results returned in this response. The order of the metric totals is
+-- same as the metric order specified in the request.
+--
+-- /See:/ 'mcfDataTotalsForAllResults' smart constructor.
+newtype McfDataTotalsForAllResults =
+  McfDataTotalsForAllResults'
+    { _mdtfarAddtional :: HashMap Text Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'McfDataTotalsForAllResults' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mdtfarAddtional'
+mcfDataTotalsForAllResults
+    :: HashMap Text Text -- ^ 'mdtfarAddtional'
+    -> McfDataTotalsForAllResults
+mcfDataTotalsForAllResults pMdtfarAddtional_ =
+  McfDataTotalsForAllResults' {_mdtfarAddtional = _Coerce # pMdtfarAddtional_}
+
+
+-- | Key-value pair for the total value of a metric. Key is the metric name
+-- and the value is the total value for that metric.
+mdtfarAddtional :: Lens' McfDataTotalsForAllResults (HashMap Text Text)
+mdtfarAddtional
+  = lens _mdtfarAddtional
+      (\ s a -> s{_mdtfarAddtional = a})
+      . _Coerce
+
+instance FromJSON McfDataTotalsForAllResults where
+        parseJSON
+          = withObject "McfDataTotalsForAllResults"
+              (\ o ->
+                 McfDataTotalsForAllResults' <$> (parseJSONObject o))
+
+instance ToJSON McfDataTotalsForAllResults where
+        toJSON = toJSON . _mdtfarAddtional
+
+-- | User ID.
+--
+-- /See:/ 'userDeletionRequestId' smart constructor.
+data UserDeletionRequestId =
+  UserDeletionRequestId'
+    { _udriUserId :: !(Maybe Text)
+    , _udriType   :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'UserDeletionRequestId' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'udriUserId'
+--
+-- * 'udriType'
+userDeletionRequestId
+    :: UserDeletionRequestId
+userDeletionRequestId =
+  UserDeletionRequestId' {_udriUserId = Nothing, _udriType = Nothing}
+
+
+-- | The User\'s id
+udriUserId :: Lens' UserDeletionRequestId (Maybe Text)
+udriUserId
+  = lens _udriUserId (\ s a -> s{_udriUserId = a})
+
+-- | Type of user
+udriType :: Lens' UserDeletionRequestId (Maybe Text)
+udriType = lens _udriType (\ s a -> s{_udriType = a})
+
+instance FromJSON UserDeletionRequestId where
+        parseJSON
+          = withObject "UserDeletionRequestId"
+              (\ o ->
+                 UserDeletionRequestId' <$>
+                   (o .:? "userId") <*> (o .:? "type"))
+
+instance ToJSON UserDeletionRequestId where
+        toJSON UserDeletionRequestId'{..}
+          = object
+              (catMaybes
+                 [("userId" .=) <$> _udriUserId,
+                  ("type" .=) <$> _udriType])
+
+-- | Download details for a file stored in Google Cloud Storage.
+--
+-- /See:/ 'unSampledReportCloudStorageDownloadDetails' smart constructor.
+data UnSampledReportCloudStorageDownloadDetails =
+  UnSampledReportCloudStorageDownloadDetails'
+    { _usrcsddObjectId :: !(Maybe Text)
+    , _usrcsddBucketId :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'UnSampledReportCloudStorageDownloadDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usrcsddObjectId'
+--
+-- * 'usrcsddBucketId'
+unSampledReportCloudStorageDownloadDetails
+    :: UnSampledReportCloudStorageDownloadDetails
+unSampledReportCloudStorageDownloadDetails =
+  UnSampledReportCloudStorageDownloadDetails'
+    {_usrcsddObjectId = Nothing, _usrcsddBucketId = Nothing}
+
+
+-- | Id of the file object containing the report data.
+usrcsddObjectId :: Lens' UnSampledReportCloudStorageDownloadDetails (Maybe Text)
+usrcsddObjectId
+  = lens _usrcsddObjectId
+      (\ s a -> s{_usrcsddObjectId = a})
+
+-- | Id of the bucket the file object is stored in.
+usrcsddBucketId :: Lens' UnSampledReportCloudStorageDownloadDetails (Maybe Text)
+usrcsddBucketId
+  = lens _usrcsddBucketId
+      (\ s a -> s{_usrcsddBucketId = a})
+
+instance FromJSON
+           UnSampledReportCloudStorageDownloadDetails
+         where
+        parseJSON
+          = withObject
+              "UnSampledReportCloudStorageDownloadDetails"
+              (\ o ->
+                 UnSampledReportCloudStorageDownloadDetails' <$>
+                   (o .:? "objectId") <*> (o .:? "bucketId"))
+
+instance ToJSON
+           UnSampledReportCloudStorageDownloadDetails
+         where
+        toJSON
+          UnSampledReportCloudStorageDownloadDetails'{..}
+          = object
+              (catMaybes
+                 [("objectId" .=) <$> _usrcsddObjectId,
+                  ("bucketId" .=) <$> _usrcsddBucketId])
+
+-- | Child link for this view (profile). Points to the list of goals for this
+-- view (profile).
+--
+-- /See:/ 'proFileChildLink' smart constructor.
+data ProFileChildLink =
+  ProFileChildLink'
+    { _pfclHref :: !(Maybe Text)
+    , _pfclType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ProFileChildLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pfclHref'
+--
+-- * 'pfclType'
+proFileChildLink
+    :: ProFileChildLink
+proFileChildLink =
+  ProFileChildLink' {_pfclHref = Nothing, _pfclType = "analytics#goals"}
+
+
+-- | Link to the list of goals for this view (profile).
+pfclHref :: Lens' ProFileChildLink (Maybe Text)
+pfclHref = lens _pfclHref (\ s a -> s{_pfclHref = a})
+
+-- | Value is \"analytics#goals\".
+pfclType :: Lens' ProFileChildLink Text
+pfclType = lens _pfclType (\ s a -> s{_pfclType = a})
+
+instance FromJSON ProFileChildLink where
+        parseJSON
+          = withObject "ProFileChildLink"
+              (\ o ->
+                 ProFileChildLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#goals"))
+
+instance ToJSON ProFileChildLink where
+        toJSON ProFileChildLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _pfclHref,
+                  Just ("type" .= _pfclType)])
+
+--
+-- /See:/ 'gaDataColumnHeadersItem' smart constructor.
+data GaDataColumnHeadersItem =
+  GaDataColumnHeadersItem'
+    { _gdchiColumnType :: !(Maybe Text)
+    , _gdchiName       :: !(Maybe Text)
+    , _gdchiDataType   :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GaDataColumnHeadersItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdchiColumnType'
+--
+-- * 'gdchiName'
+--
+-- * 'gdchiDataType'
+gaDataColumnHeadersItem
+    :: GaDataColumnHeadersItem
+gaDataColumnHeadersItem =
+  GaDataColumnHeadersItem'
+    {_gdchiColumnType = Nothing, _gdchiName = Nothing, _gdchiDataType = Nothing}
+
+
+-- | Column Type. Either DIMENSION or METRIC.
+gdchiColumnType :: Lens' GaDataColumnHeadersItem (Maybe Text)
+gdchiColumnType
+  = lens _gdchiColumnType
+      (\ s a -> s{_gdchiColumnType = a})
+
+-- | Column name.
+gdchiName :: Lens' GaDataColumnHeadersItem (Maybe Text)
+gdchiName
+  = lens _gdchiName (\ s a -> s{_gdchiName = a})
+
+-- | Data type. Dimension column headers have only STRING as the data type.
+-- Metric column headers have data types for metric values such as INTEGER,
+-- DOUBLE, CURRENCY etc.
+gdchiDataType :: Lens' GaDataColumnHeadersItem (Maybe Text)
+gdchiDataType
+  = lens _gdchiDataType
+      (\ s a -> s{_gdchiDataType = a})
+
+instance FromJSON GaDataColumnHeadersItem where
+        parseJSON
+          = withObject "GaDataColumnHeadersItem"
+              (\ o ->
+                 GaDataColumnHeadersItem' <$>
+                   (o .:? "columnType") <*> (o .:? "name") <*>
+                     (o .:? "dataType"))
+
+instance ToJSON GaDataColumnHeadersItem where
+        toJSON GaDataColumnHeadersItem'{..}
+          = object
+              (catMaybes
+                 [("columnType" .=) <$> _gdchiColumnType,
+                  ("name" .=) <$> _gdchiName,
+                  ("dataType" .=) <$> _gdchiDataType])
+
+-- | Parent link for a goal. Points to the view (profile) to which this goal
+-- belongs.
+--
+-- /See:/ 'goalParentLink' smart constructor.
+data GoalParentLink =
+  GoalParentLink'
+    { _gplHref :: !(Maybe Text)
+    , _gplType :: !Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GoalParentLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gplHref'
+--
+-- * 'gplType'
+goalParentLink
+    :: GoalParentLink
+goalParentLink =
+  GoalParentLink' {_gplHref = Nothing, _gplType = "analytics#profile"}
+
+
+-- | Link to the view (profile) to which this goal belongs.
+gplHref :: Lens' GoalParentLink (Maybe Text)
+gplHref = lens _gplHref (\ s a -> s{_gplHref = a})
+
+-- | Value is \"analytics#profile\".
+gplType :: Lens' GoalParentLink Text
+gplType = lens _gplType (\ s a -> s{_gplType = a})
+
+instance FromJSON GoalParentLink where
+        parseJSON
+          = withObject "GoalParentLink"
+              (\ o ->
+                 GoalParentLink' <$>
+                   (o .:? "href") <*>
+                     (o .:? "type" .!= "analytics#profile"))
+
+instance ToJSON GoalParentLink where
+        toJSON GoalParentLink'{..}
+          = object
+              (catMaybes
+                 [("href" .=) <$> _gplHref,
+                  Just ("type" .= _gplType)])
+
+-- | Map of attribute name and value for this column.
+--
+-- /See:/ 'columnAttributes' smart constructor.
+newtype ColumnAttributes =
+  ColumnAttributes'
+    { _caAddtional :: HashMap Text Text
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ColumnAttributes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'caAddtional'
+columnAttributes
+    :: HashMap Text Text -- ^ 'caAddtional'
+    -> ColumnAttributes
+columnAttributes pCaAddtional_ =
+  ColumnAttributes' {_caAddtional = _Coerce # pCaAddtional_}
+
 
 -- | The name of the attribute.
 caAddtional :: Lens' ColumnAttributes (HashMap Text Text)
diff --git a/gen/Network/Google/Resource/Analytics/Data/Ga/Get.hs b/gen/Network/Google/Resource/Analytics/Data/Ga/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Data/Ga/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Data/Ga/Get.hs
@@ -77,7 +77,8 @@
 -- | Returns Analytics data for a view (profile).
 --
 -- /See:/ 'dataGaGet' smart constructor.
-data DataGaGet = DataGaGet'
+data DataGaGet =
+  DataGaGet'
     { _dggMetrics          :: !Text
     , _dggSamplingLevel    :: !(Maybe DataGaGetSamplingLevel)
     , _dggFilters          :: !(Maybe Text)
@@ -91,8 +92,10 @@
     , _dggMaxResults       :: !(Maybe (Textual Int32))
     , _dggSegment          :: !(Maybe Text)
     , _dggStartDate        :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DataGaGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -129,7 +132,7 @@
     -> Text -- ^ 'dggStartDate'
     -> DataGaGet
 dataGaGet pDggMetrics_ pDggIds_ pDggEndDate_ pDggStartDate_ =
-    DataGaGet'
+  DataGaGet'
     { _dggMetrics = pDggMetrics_
     , _dggSamplingLevel = Nothing
     , _dggFilters = Nothing
@@ -144,6 +147,7 @@
     , _dggSegment = Nothing
     , _dggStartDate = pDggStartDate_
     }
+
 
 -- | A comma-separated list of Analytics metrics. E.g.,
 -- \'ga:sessions,ga:pageviews\'. At least one metric must be specified.
diff --git a/gen/Network/Google/Resource/Analytics/Data/Mcf/Get.hs b/gen/Network/Google/Resource/Analytics/Data/Mcf/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Data/Mcf/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Data/Mcf/Get.hs
@@ -70,7 +70,8 @@
 -- | Returns Analytics Multi-Channel Funnels data for a view (profile).
 --
 -- /See:/ 'dataMcfGet' smart constructor.
-data DataMcfGet = DataMcfGet'
+data DataMcfGet =
+  DataMcfGet'
     { _dmgMetrics       :: !Text
     , _dmgSamplingLevel :: !(Maybe DataMcfGetSamplingLevel)
     , _dmgFilters       :: !(Maybe Text)
@@ -81,8 +82,10 @@
     , _dmgStartIndex    :: !(Maybe (Textual Int32))
     , _dmgMaxResults    :: !(Maybe (Textual Int32))
     , _dmgStartDate     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DataMcfGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -113,7 +116,7 @@
     -> Text -- ^ 'dmgStartDate'
     -> DataMcfGet
 dataMcfGet pDmgMetrics_ pDmgIds_ pDmgEndDate_ pDmgStartDate_ =
-    DataMcfGet'
+  DataMcfGet'
     { _dmgMetrics = pDmgMetrics_
     , _dmgSamplingLevel = Nothing
     , _dmgFilters = Nothing
@@ -125,6 +128,7 @@
     , _dmgMaxResults = Nothing
     , _dmgStartDate = pDmgStartDate_
     }
+
 
 -- | A comma-separated list of Multi-Channel Funnels metrics. E.g.,
 -- \'mcf:totalConversions,mcf:totalConversionValue\'. At least one metric
diff --git a/gen/Network/Google/Resource/Analytics/Data/Realtime/Get.hs b/gen/Network/Google/Resource/Analytics/Data/Realtime/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Data/Realtime/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Data/Realtime/Get.hs
@@ -62,15 +62,18 @@
 -- | Returns real time data for a view (profile).
 --
 -- /See:/ 'dataRealtimeGet' smart constructor.
-data DataRealtimeGet = DataRealtimeGet'
+data DataRealtimeGet =
+  DataRealtimeGet'
     { _drgMetrics    :: !Text
     , _drgFilters    :: !(Maybe Text)
     , _drgIds        :: !Text
     , _drgSort       :: !(Maybe Text)
     , _drgDimensions :: !(Maybe Text)
     , _drgMaxResults :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DataRealtimeGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -91,7 +94,7 @@
     -> Text -- ^ 'drgIds'
     -> DataRealtimeGet
 dataRealtimeGet pDrgMetrics_ pDrgIds_ =
-    DataRealtimeGet'
+  DataRealtimeGet'
     { _drgMetrics = pDrgMetrics_
     , _drgFilters = Nothing
     , _drgIds = pDrgIds_
@@ -99,6 +102,7 @@
     , _drgDimensions = Nothing
     , _drgMaxResults = Nothing
     }
+
 
 -- | A comma-separated list of real time metrics. E.g., \'rt:activeUsers\'.
 -- At least one metric must be specified.
diff --git a/gen/Network/Google/Resource/Analytics/Management/AccountSummaries/List.hs b/gen/Network/Google/Resource/Analytics/Management/AccountSummaries/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/AccountSummaries/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/AccountSummaries/List.hs
@@ -57,11 +57,14 @@
 -- accounts\/properties\/profiles) to which the user has access.
 --
 -- /See:/ 'managementAccountSummariesList' smart constructor.
-data ManagementAccountSummariesList = ManagementAccountSummariesList'
+data ManagementAccountSummariesList =
+  ManagementAccountSummariesList'
     { _maslStartIndex :: !(Maybe (Textual Int32))
     , _maslMaxResults :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementAccountSummariesList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -72,10 +75,9 @@
 managementAccountSummariesList
     :: ManagementAccountSummariesList
 managementAccountSummariesList =
-    ManagementAccountSummariesList'
-    { _maslStartIndex = Nothing
-    , _maslMaxResults = Nothing
-    }
+  ManagementAccountSummariesList'
+    {_maslStartIndex = Nothing, _maslMaxResults = Nothing}
+
 
 -- | An index of the first entity to retrieve. Use this parameter as a
 -- pagination mechanism along with the max-results parameter.
diff --git a/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Delete.hs b/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Delete.hs
--- a/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Delete.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Delete.hs
@@ -55,11 +55,14 @@
 -- | Removes a user from the given account.
 --
 -- /See:/ 'managementAccountUserLinksDelete' smart constructor.
-data ManagementAccountUserLinksDelete = ManagementAccountUserLinksDelete'
+data ManagementAccountUserLinksDelete =
+  ManagementAccountUserLinksDelete'
     { _mauldAccountId :: !Text
     , _mauldLinkId    :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementAccountUserLinksDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -72,11 +75,10 @@
     -> Text -- ^ 'mauldLinkId'
     -> ManagementAccountUserLinksDelete
 managementAccountUserLinksDelete pMauldAccountId_ pMauldLinkId_ =
-    ManagementAccountUserLinksDelete'
-    { _mauldAccountId = pMauldAccountId_
-    , _mauldLinkId = pMauldLinkId_
-    }
+  ManagementAccountUserLinksDelete'
+    {_mauldAccountId = pMauldAccountId_, _mauldLinkId = pMauldLinkId_}
 
+
 -- | Account ID to delete the user link for.
 mauldAccountId :: Lens' ManagementAccountUserLinksDelete Text
 mauldAccountId
@@ -89,7 +91,8 @@
   = lens _mauldLinkId (\ s a -> s{_mauldLinkId = a})
 
 instance GoogleRequest
-         ManagementAccountUserLinksDelete where
+           ManagementAccountUserLinksDelete
+         where
         type Rs ManagementAccountUserLinksDelete = ()
         type Scopes ManagementAccountUserLinksDelete =
              '["https://www.googleapis.com/auth/analytics.manage.users"]
diff --git a/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Insert.hs
@@ -56,11 +56,14 @@
 -- | Adds a new user to the given account.
 --
 -- /See:/ 'managementAccountUserLinksInsert' smart constructor.
-data ManagementAccountUserLinksInsert = ManagementAccountUserLinksInsert'
+data ManagementAccountUserLinksInsert =
+  ManagementAccountUserLinksInsert'
     { _mauliPayload   :: !EntityUserLink
     , _mauliAccountId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementAccountUserLinksInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -73,11 +76,10 @@
     -> Text -- ^ 'mauliAccountId'
     -> ManagementAccountUserLinksInsert
 managementAccountUserLinksInsert pMauliPayload_ pMauliAccountId_ =
-    ManagementAccountUserLinksInsert'
-    { _mauliPayload = pMauliPayload_
-    , _mauliAccountId = pMauliAccountId_
-    }
+  ManagementAccountUserLinksInsert'
+    {_mauliPayload = pMauliPayload_, _mauliAccountId = pMauliAccountId_}
 
+
 -- | Multipart request metadata.
 mauliPayload :: Lens' ManagementAccountUserLinksInsert EntityUserLink
 mauliPayload
@@ -90,7 +92,8 @@
       (\ s a -> s{_mauliAccountId = a})
 
 instance GoogleRequest
-         ManagementAccountUserLinksInsert where
+           ManagementAccountUserLinksInsert
+         where
         type Rs ManagementAccountUserLinksInsert =
              EntityUserLink
         type Scopes ManagementAccountUserLinksInsert =
diff --git a/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/List.hs b/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/List.hs
@@ -58,12 +58,15 @@
 -- | Lists account-user links for a given account.
 --
 -- /See:/ 'managementAccountUserLinksList' smart constructor.
-data ManagementAccountUserLinksList = ManagementAccountUserLinksList'
+data ManagementAccountUserLinksList =
+  ManagementAccountUserLinksList'
     { _maullAccountId  :: !Text
     , _maullStartIndex :: !(Maybe (Textual Int32))
     , _maullMaxResults :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementAccountUserLinksList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -77,11 +80,12 @@
     :: Text -- ^ 'maullAccountId'
     -> ManagementAccountUserLinksList
 managementAccountUserLinksList pMaullAccountId_ =
-    ManagementAccountUserLinksList'
+  ManagementAccountUserLinksList'
     { _maullAccountId = pMaullAccountId_
     , _maullStartIndex = Nothing
     , _maullMaxResults = Nothing
     }
+
 
 -- | Account ID to retrieve the user links for.
 maullAccountId :: Lens' ManagementAccountUserLinksList Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Update.hs b/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/AccountUserLinks/Update.hs
@@ -58,12 +58,15 @@
 -- | Updates permissions for an existing user on the given account.
 --
 -- /See:/ 'managementAccountUserLinksUpdate' smart constructor.
-data ManagementAccountUserLinksUpdate = ManagementAccountUserLinksUpdate'
+data ManagementAccountUserLinksUpdate =
+  ManagementAccountUserLinksUpdate'
     { _mauluPayload   :: !EntityUserLink
     , _mauluAccountId :: !Text
     , _mauluLinkId    :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementAccountUserLinksUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -79,12 +82,13 @@
     -> Text -- ^ 'mauluLinkId'
     -> ManagementAccountUserLinksUpdate
 managementAccountUserLinksUpdate pMauluPayload_ pMauluAccountId_ pMauluLinkId_ =
-    ManagementAccountUserLinksUpdate'
+  ManagementAccountUserLinksUpdate'
     { _mauluPayload = pMauluPayload_
     , _mauluAccountId = pMauluAccountId_
     , _mauluLinkId = pMauluLinkId_
     }
 
+
 -- | Multipart request metadata.
 mauluPayload :: Lens' ManagementAccountUserLinksUpdate EntityUserLink
 mauluPayload
@@ -102,7 +106,8 @@
   = lens _mauluLinkId (\ s a -> s{_mauluLinkId = a})
 
 instance GoogleRequest
-         ManagementAccountUserLinksUpdate where
+           ManagementAccountUserLinksUpdate
+         where
         type Rs ManagementAccountUserLinksUpdate =
              EntityUserLink
         type Scopes ManagementAccountUserLinksUpdate =
diff --git a/gen/Network/Google/Resource/Analytics/Management/Accounts/List.hs b/gen/Network/Google/Resource/Analytics/Management/Accounts/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Accounts/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Accounts/List.hs
@@ -54,11 +54,14 @@
 -- | Lists all accounts to which the user has access.
 --
 -- /See:/ 'managementAccountsList' smart constructor.
-data ManagementAccountsList = ManagementAccountsList'
+data ManagementAccountsList =
+  ManagementAccountsList'
     { _malStartIndex :: !(Maybe (Textual Int32))
     , _malMaxResults :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementAccountsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -69,10 +72,8 @@
 managementAccountsList
     :: ManagementAccountsList
 managementAccountsList =
-    ManagementAccountsList'
-    { _malStartIndex = Nothing
-    , _malMaxResults = Nothing
-    }
+  ManagementAccountsList' {_malStartIndex = Nothing, _malMaxResults = Nothing}
+
 
 -- | An index of the first account to retrieve. Use this parameter as a
 -- pagination mechanism along with the max-results parameter.
diff --git a/gen/Network/Google/Resource/Analytics/Management/ClientId/HashClientId.hs b/gen/Network/Google/Resource/Analytics/Management/ClientId/HashClientId.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ClientId/HashClientId.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ClientId/HashClientId.hs
@@ -53,10 +53,13 @@
 -- | Hashes the given Client ID.
 --
 -- /See:/ 'managementClientIdHashClientId' smart constructor.
-newtype ManagementClientIdHashClientId = ManagementClientIdHashClientId'
+newtype ManagementClientIdHashClientId =
+  ManagementClientIdHashClientId'
     { _mcihciPayload :: HashClientIdRequest
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementClientIdHashClientId' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -66,9 +69,8 @@
     :: HashClientIdRequest -- ^ 'mcihciPayload'
     -> ManagementClientIdHashClientId
 managementClientIdHashClientId pMcihciPayload_ =
-    ManagementClientIdHashClientId'
-    { _mcihciPayload = pMcihciPayload_
-    }
+  ManagementClientIdHashClientId' {_mcihciPayload = pMcihciPayload_}
+
 
 -- | Multipart request metadata.
 mcihciPayload :: Lens' ManagementClientIdHashClientId HashClientIdRequest
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomDataSources/List.hs b/gen/Network/Google/Resource/Analytics/Management/CustomDataSources/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomDataSources/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomDataSources/List.hs
@@ -61,13 +61,16 @@
 -- | List custom data sources to which the user has access.
 --
 -- /See:/ 'managementCustomDataSourcesList' smart constructor.
-data ManagementCustomDataSourcesList = ManagementCustomDataSourcesList'
+data ManagementCustomDataSourcesList =
+  ManagementCustomDataSourcesList'
     { _mcdslWebPropertyId :: !Text
     , _mcdslAccountId     :: !Text
     , _mcdslStartIndex    :: !(Maybe (Textual Int32))
     , _mcdslMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomDataSourcesList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -84,13 +87,14 @@
     -> Text -- ^ 'mcdslAccountId'
     -> ManagementCustomDataSourcesList
 managementCustomDataSourcesList pMcdslWebPropertyId_ pMcdslAccountId_ =
-    ManagementCustomDataSourcesList'
+  ManagementCustomDataSourcesList'
     { _mcdslWebPropertyId = pMcdslWebPropertyId_
     , _mcdslAccountId = pMcdslAccountId_
     , _mcdslStartIndex = Nothing
     , _mcdslMaxResults = Nothing
     }
 
+
 -- | Web property Id for the custom data sources to retrieve.
 mcdslWebPropertyId :: Lens' ManagementCustomDataSourcesList Text
 mcdslWebPropertyId
@@ -120,7 +124,8 @@
       . mapping _Coerce
 
 instance GoogleRequest
-         ManagementCustomDataSourcesList where
+           ManagementCustomDataSourcesList
+         where
         type Rs ManagementCustomDataSourcesList =
              CustomDataSources
         type Scopes ManagementCustomDataSourcesList =
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Get.hs b/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Get.hs
@@ -59,12 +59,15 @@
 -- | Get a custom dimension to which the user has access.
 --
 -- /See:/ 'managementCustomDimensionsGet' smart constructor.
-data ManagementCustomDimensionsGet = ManagementCustomDimensionsGet'
+data ManagementCustomDimensionsGet =
+  ManagementCustomDimensionsGet'
     { _mcdgWebPropertyId     :: !Text
     , _mcdgAccountId         :: !Text
     , _mcdgCustomDimensionId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomDimensionsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,11 +83,12 @@
     -> Text -- ^ 'mcdgCustomDimensionId'
     -> ManagementCustomDimensionsGet
 managementCustomDimensionsGet pMcdgWebPropertyId_ pMcdgAccountId_ pMcdgCustomDimensionId_ =
-    ManagementCustomDimensionsGet'
+  ManagementCustomDimensionsGet'
     { _mcdgWebPropertyId = pMcdgWebPropertyId_
     , _mcdgAccountId = pMcdgAccountId_
     , _mcdgCustomDimensionId = pMcdgCustomDimensionId_
     }
+
 
 -- | Web property ID for the custom dimension to retrieve.
 mcdgWebPropertyId :: Lens' ManagementCustomDimensionsGet Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Insert.hs
@@ -59,12 +59,15 @@
 -- | Create a new custom dimension.
 --
 -- /See:/ 'managementCustomDimensionsInsert' smart constructor.
-data ManagementCustomDimensionsInsert = ManagementCustomDimensionsInsert'
+data ManagementCustomDimensionsInsert =
+  ManagementCustomDimensionsInsert'
     { _mcdiWebPropertyId :: !Text
     , _mcdiPayload       :: !CustomDimension
     , _mcdiAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomDimensionsInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,12 +83,13 @@
     -> Text -- ^ 'mcdiAccountId'
     -> ManagementCustomDimensionsInsert
 managementCustomDimensionsInsert pMcdiWebPropertyId_ pMcdiPayload_ pMcdiAccountId_ =
-    ManagementCustomDimensionsInsert'
+  ManagementCustomDimensionsInsert'
     { _mcdiWebPropertyId = pMcdiWebPropertyId_
     , _mcdiPayload = pMcdiPayload_
     , _mcdiAccountId = pMcdiAccountId_
     }
 
+
 -- | Web property ID for the custom dimension to create.
 mcdiWebPropertyId :: Lens' ManagementCustomDimensionsInsert Text
 mcdiWebPropertyId
@@ -104,7 +108,8 @@
       (\ s a -> s{_mcdiAccountId = a})
 
 instance GoogleRequest
-         ManagementCustomDimensionsInsert where
+           ManagementCustomDimensionsInsert
+         where
         type Rs ManagementCustomDimensionsInsert =
              CustomDimension
         type Scopes ManagementCustomDimensionsInsert =
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/List.hs b/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/List.hs
@@ -61,13 +61,16 @@
 -- | Lists custom dimensions to which the user has access.
 --
 -- /See:/ 'managementCustomDimensionsList' smart constructor.
-data ManagementCustomDimensionsList = ManagementCustomDimensionsList'
+data ManagementCustomDimensionsList =
+  ManagementCustomDimensionsList'
     { _mcdlWebPropertyId :: !Text
     , _mcdlAccountId     :: !Text
     , _mcdlStartIndex    :: !(Maybe (Textual Int32))
     , _mcdlMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomDimensionsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -84,12 +87,13 @@
     -> Text -- ^ 'mcdlAccountId'
     -> ManagementCustomDimensionsList
 managementCustomDimensionsList pMcdlWebPropertyId_ pMcdlAccountId_ =
-    ManagementCustomDimensionsList'
+  ManagementCustomDimensionsList'
     { _mcdlWebPropertyId = pMcdlWebPropertyId_
     , _mcdlAccountId = pMcdlAccountId_
     , _mcdlStartIndex = Nothing
     , _mcdlMaxResults = Nothing
     }
+
 
 -- | Web property ID for the custom dimensions to retrieve.
 mcdlWebPropertyId :: Lens' ManagementCustomDimensionsList Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Patch.hs b/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Patch.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Patch.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Patch.hs
@@ -65,14 +65,17 @@
 -- semantics.
 --
 -- /See:/ 'managementCustomDimensionsPatch' smart constructor.
-data ManagementCustomDimensionsPatch = ManagementCustomDimensionsPatch'
+data ManagementCustomDimensionsPatch =
+  ManagementCustomDimensionsPatch'
     { _mcdpWebPropertyId               :: !Text
     , _mcdpIgnoreCustomDataSourceLinks :: !Bool
     , _mcdpPayload                     :: !CustomDimension
     , _mcdpAccountId                   :: !Text
     , _mcdpCustomDimensionId           :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomDimensionsPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -93,7 +96,7 @@
     -> Text -- ^ 'mcdpCustomDimensionId'
     -> ManagementCustomDimensionsPatch
 managementCustomDimensionsPatch pMcdpWebPropertyId_ pMcdpPayload_ pMcdpAccountId_ pMcdpCustomDimensionId_ =
-    ManagementCustomDimensionsPatch'
+  ManagementCustomDimensionsPatch'
     { _mcdpWebPropertyId = pMcdpWebPropertyId_
     , _mcdpIgnoreCustomDataSourceLinks = False
     , _mcdpPayload = pMcdpPayload_
@@ -101,6 +104,7 @@
     , _mcdpCustomDimensionId = pMcdpCustomDimensionId_
     }
 
+
 -- | Web property ID for the custom dimension to update.
 mcdpWebPropertyId :: Lens' ManagementCustomDimensionsPatch Text
 mcdpWebPropertyId
@@ -132,7 +136,8 @@
       (\ s a -> s{_mcdpCustomDimensionId = a})
 
 instance GoogleRequest
-         ManagementCustomDimensionsPatch where
+           ManagementCustomDimensionsPatch
+         where
         type Rs ManagementCustomDimensionsPatch =
              CustomDimension
         type Scopes ManagementCustomDimensionsPatch =
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Update.hs b/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomDimensions/Update.hs
@@ -63,14 +63,17 @@
 -- | Updates an existing custom dimension.
 --
 -- /See:/ 'managementCustomDimensionsUpdate' smart constructor.
-data ManagementCustomDimensionsUpdate = ManagementCustomDimensionsUpdate'
+data ManagementCustomDimensionsUpdate =
+  ManagementCustomDimensionsUpdate'
     { _mcduWebPropertyId               :: !Text
     , _mcduIgnoreCustomDataSourceLinks :: !Bool
     , _mcduPayload                     :: !CustomDimension
     , _mcduAccountId                   :: !Text
     , _mcduCustomDimensionId           :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomDimensionsUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -91,7 +94,7 @@
     -> Text -- ^ 'mcduCustomDimensionId'
     -> ManagementCustomDimensionsUpdate
 managementCustomDimensionsUpdate pMcduWebPropertyId_ pMcduPayload_ pMcduAccountId_ pMcduCustomDimensionId_ =
-    ManagementCustomDimensionsUpdate'
+  ManagementCustomDimensionsUpdate'
     { _mcduWebPropertyId = pMcduWebPropertyId_
     , _mcduIgnoreCustomDataSourceLinks = False
     , _mcduPayload = pMcduPayload_
@@ -99,6 +102,7 @@
     , _mcduCustomDimensionId = pMcduCustomDimensionId_
     }
 
+
 -- | Web property ID for the custom dimension to update.
 mcduWebPropertyId :: Lens' ManagementCustomDimensionsUpdate Text
 mcduWebPropertyId
@@ -130,7 +134,8 @@
       (\ s a -> s{_mcduCustomDimensionId = a})
 
 instance GoogleRequest
-         ManagementCustomDimensionsUpdate where
+           ManagementCustomDimensionsUpdate
+         where
         type Rs ManagementCustomDimensionsUpdate =
              CustomDimension
         type Scopes ManagementCustomDimensionsUpdate =
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Get.hs b/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Get.hs
@@ -58,12 +58,15 @@
 -- | Get a custom metric to which the user has access.
 --
 -- /See:/ 'managementCustomMetricsGet' smart constructor.
-data ManagementCustomMetricsGet = ManagementCustomMetricsGet'
+data ManagementCustomMetricsGet =
+  ManagementCustomMetricsGet'
     { _mcmgCustomMetricId :: !Text
     , _mcmgWebPropertyId  :: !Text
     , _mcmgAccountId      :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomMetricsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -79,11 +82,12 @@
     -> Text -- ^ 'mcmgAccountId'
     -> ManagementCustomMetricsGet
 managementCustomMetricsGet pMcmgCustomMetricId_ pMcmgWebPropertyId_ pMcmgAccountId_ =
-    ManagementCustomMetricsGet'
+  ManagementCustomMetricsGet'
     { _mcmgCustomMetricId = pMcmgCustomMetricId_
     , _mcmgWebPropertyId = pMcmgWebPropertyId_
     , _mcmgAccountId = pMcmgAccountId_
     }
+
 
 -- | The ID of the custom metric to retrieve.
 mcmgCustomMetricId :: Lens' ManagementCustomMetricsGet Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Insert.hs
@@ -59,12 +59,15 @@
 -- | Create a new custom metric.
 --
 -- /See:/ 'managementCustomMetricsInsert' smart constructor.
-data ManagementCustomMetricsInsert = ManagementCustomMetricsInsert'
+data ManagementCustomMetricsInsert =
+  ManagementCustomMetricsInsert'
     { _mcmiWebPropertyId :: !Text
     , _mcmiPayload       :: !CustomMetric
     , _mcmiAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomMetricsInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,11 +83,12 @@
     -> Text -- ^ 'mcmiAccountId'
     -> ManagementCustomMetricsInsert
 managementCustomMetricsInsert pMcmiWebPropertyId_ pMcmiPayload_ pMcmiAccountId_ =
-    ManagementCustomMetricsInsert'
+  ManagementCustomMetricsInsert'
     { _mcmiWebPropertyId = pMcmiWebPropertyId_
     , _mcmiPayload = pMcmiPayload_
     , _mcmiAccountId = pMcmiAccountId_
     }
+
 
 -- | Web property ID for the custom dimension to create.
 mcmiWebPropertyId :: Lens' ManagementCustomMetricsInsert Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/List.hs b/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/List.hs
@@ -60,13 +60,16 @@
 -- | Lists custom metrics to which the user has access.
 --
 -- /See:/ 'managementCustomMetricsList' smart constructor.
-data ManagementCustomMetricsList = ManagementCustomMetricsList'
+data ManagementCustomMetricsList =
+  ManagementCustomMetricsList'
     { _mcmlWebPropertyId :: !Text
     , _mcmlAccountId     :: !Text
     , _mcmlStartIndex    :: !(Maybe (Textual Int32))
     , _mcmlMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomMetricsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -83,12 +86,13 @@
     -> Text -- ^ 'mcmlAccountId'
     -> ManagementCustomMetricsList
 managementCustomMetricsList pMcmlWebPropertyId_ pMcmlAccountId_ =
-    ManagementCustomMetricsList'
+  ManagementCustomMetricsList'
     { _mcmlWebPropertyId = pMcmlWebPropertyId_
     , _mcmlAccountId = pMcmlAccountId_
     , _mcmlStartIndex = Nothing
     , _mcmlMaxResults = Nothing
     }
+
 
 -- | Web property ID for the custom metrics to retrieve.
 mcmlWebPropertyId :: Lens' ManagementCustomMetricsList Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Patch.hs b/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Patch.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Patch.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Patch.hs
@@ -63,14 +63,17 @@
 -- | Updates an existing custom metric. This method supports patch semantics.
 --
 -- /See:/ 'managementCustomMetricsPatch' smart constructor.
-data ManagementCustomMetricsPatch = ManagementCustomMetricsPatch'
+data ManagementCustomMetricsPatch =
+  ManagementCustomMetricsPatch'
     { _mcmpCustomMetricId              :: !Text
     , _mcmpWebPropertyId               :: !Text
     , _mcmpIgnoreCustomDataSourceLinks :: !Bool
     , _mcmpPayload                     :: !CustomMetric
     , _mcmpAccountId                   :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomMetricsPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -91,13 +94,14 @@
     -> Text -- ^ 'mcmpAccountId'
     -> ManagementCustomMetricsPatch
 managementCustomMetricsPatch pMcmpCustomMetricId_ pMcmpWebPropertyId_ pMcmpPayload_ pMcmpAccountId_ =
-    ManagementCustomMetricsPatch'
+  ManagementCustomMetricsPatch'
     { _mcmpCustomMetricId = pMcmpCustomMetricId_
     , _mcmpWebPropertyId = pMcmpWebPropertyId_
     , _mcmpIgnoreCustomDataSourceLinks = False
     , _mcmpPayload = pMcmpPayload_
     , _mcmpAccountId = pMcmpAccountId_
     }
+
 
 -- | Custom metric ID for the custom metric to update.
 mcmpCustomMetricId :: Lens' ManagementCustomMetricsPatch Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Update.hs b/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/CustomMetrics/Update.hs
@@ -63,14 +63,17 @@
 -- | Updates an existing custom metric.
 --
 -- /See:/ 'managementCustomMetricsUpdate' smart constructor.
-data ManagementCustomMetricsUpdate = ManagementCustomMetricsUpdate'
+data ManagementCustomMetricsUpdate =
+  ManagementCustomMetricsUpdate'
     { _mcmuCustomMetricId              :: !Text
     , _mcmuWebPropertyId               :: !Text
     , _mcmuIgnoreCustomDataSourceLinks :: !Bool
     , _mcmuPayload                     :: !CustomMetric
     , _mcmuAccountId                   :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementCustomMetricsUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -91,13 +94,14 @@
     -> Text -- ^ 'mcmuAccountId'
     -> ManagementCustomMetricsUpdate
 managementCustomMetricsUpdate pMcmuCustomMetricId_ pMcmuWebPropertyId_ pMcmuPayload_ pMcmuAccountId_ =
-    ManagementCustomMetricsUpdate'
+  ManagementCustomMetricsUpdate'
     { _mcmuCustomMetricId = pMcmuCustomMetricId_
     , _mcmuWebPropertyId = pMcmuWebPropertyId_
     , _mcmuIgnoreCustomDataSourceLinks = False
     , _mcmuPayload = pMcmuPayload_
     , _mcmuAccountId = pMcmuAccountId_
     }
+
 
 -- | Custom metric ID for the custom metric to update.
 mcmuCustomMetricId :: Lens' ManagementCustomMetricsUpdate Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Experiments/Delete.hs b/gen/Network/Google/Resource/Analytics/Management/Experiments/Delete.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Experiments/Delete.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Experiments/Delete.hs
@@ -61,13 +61,16 @@
 -- | Delete an experiment.
 --
 -- /See:/ 'managementExperimentsDelete' smart constructor.
-data ManagementExperimentsDelete = ManagementExperimentsDelete'
+data ManagementExperimentsDelete =
+  ManagementExperimentsDelete'
     { _medWebPropertyId :: !Text
     , _medProFileId     :: !Text
     , _medAccountId     :: !Text
     , _medExperimentId  :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementExperimentsDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,12 +89,13 @@
     -> Text -- ^ 'medExperimentId'
     -> ManagementExperimentsDelete
 managementExperimentsDelete pMedWebPropertyId_ pMedProFileId_ pMedAccountId_ pMedExperimentId_ =
-    ManagementExperimentsDelete'
+  ManagementExperimentsDelete'
     { _medWebPropertyId = pMedWebPropertyId_
     , _medProFileId = pMedProFileId_
     , _medAccountId = pMedAccountId_
     , _medExperimentId = pMedExperimentId_
     }
+
 
 -- | Web property ID to which the experiment belongs
 medWebPropertyId :: Lens' ManagementExperimentsDelete Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Experiments/Get.hs b/gen/Network/Google/Resource/Analytics/Management/Experiments/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Experiments/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Experiments/Get.hs
@@ -61,13 +61,16 @@
 -- | Returns an experiment to which the user has access.
 --
 -- /See:/ 'managementExperimentsGet' smart constructor.
-data ManagementExperimentsGet = ManagementExperimentsGet'
+data ManagementExperimentsGet =
+  ManagementExperimentsGet'
     { _megWebPropertyId :: !Text
     , _megProFileId     :: !Text
     , _megAccountId     :: !Text
     , _megExperimentId  :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementExperimentsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,12 +89,13 @@
     -> Text -- ^ 'megExperimentId'
     -> ManagementExperimentsGet
 managementExperimentsGet pMegWebPropertyId_ pMegProFileId_ pMegAccountId_ pMegExperimentId_ =
-    ManagementExperimentsGet'
+  ManagementExperimentsGet'
     { _megWebPropertyId = pMegWebPropertyId_
     , _megProFileId = pMegProFileId_
     , _megAccountId = pMegAccountId_
     , _megExperimentId = pMegExperimentId_
     }
+
 
 -- | Web property ID to retrieve the experiment for.
 megWebPropertyId :: Lens' ManagementExperimentsGet Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Experiments/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/Experiments/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Experiments/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Experiments/Insert.hs
@@ -61,13 +61,16 @@
 -- | Create a new experiment.
 --
 -- /See:/ 'managementExperimentsInsert' smart constructor.
-data ManagementExperimentsInsert = ManagementExperimentsInsert'
+data ManagementExperimentsInsert =
+  ManagementExperimentsInsert'
     { _meiWebPropertyId :: !Text
     , _meiProFileId     :: !Text
     , _meiPayload       :: !Experiment
     , _meiAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementExperimentsInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,12 +89,13 @@
     -> Text -- ^ 'meiAccountId'
     -> ManagementExperimentsInsert
 managementExperimentsInsert pMeiWebPropertyId_ pMeiProFileId_ pMeiPayload_ pMeiAccountId_ =
-    ManagementExperimentsInsert'
+  ManagementExperimentsInsert'
     { _meiWebPropertyId = pMeiWebPropertyId_
     , _meiProFileId = pMeiProFileId_
     , _meiPayload = pMeiPayload_
     , _meiAccountId = pMeiAccountId_
     }
+
 
 -- | Web property ID to create the experiment for.
 meiWebPropertyId :: Lens' ManagementExperimentsInsert Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Experiments/List.hs b/gen/Network/Google/Resource/Analytics/Management/Experiments/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Experiments/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Experiments/List.hs
@@ -63,14 +63,17 @@
 -- | Lists experiments to which the user has access.
 --
 -- /See:/ 'managementExperimentsList' smart constructor.
-data ManagementExperimentsList = ManagementExperimentsList'
+data ManagementExperimentsList =
+  ManagementExperimentsList'
     { _melWebPropertyId :: !Text
     , _melProFileId     :: !Text
     , _melAccountId     :: !Text
     , _melStartIndex    :: !(Maybe (Textual Int32))
     , _melMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementExperimentsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -90,13 +93,14 @@
     -> Text -- ^ 'melAccountId'
     -> ManagementExperimentsList
 managementExperimentsList pMelWebPropertyId_ pMelProFileId_ pMelAccountId_ =
-    ManagementExperimentsList'
+  ManagementExperimentsList'
     { _melWebPropertyId = pMelWebPropertyId_
     , _melProFileId = pMelProFileId_
     , _melAccountId = pMelAccountId_
     , _melStartIndex = Nothing
     , _melMaxResults = Nothing
     }
+
 
 -- | Web property ID to retrieve experiments for.
 melWebPropertyId :: Lens' ManagementExperimentsList Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Experiments/Patch.hs b/gen/Network/Google/Resource/Analytics/Management/Experiments/Patch.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Experiments/Patch.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Experiments/Patch.hs
@@ -64,14 +64,17 @@
 -- | Update an existing experiment. This method supports patch semantics.
 --
 -- /See:/ 'managementExperimentsPatch' smart constructor.
-data ManagementExperimentsPatch = ManagementExperimentsPatch'
+data ManagementExperimentsPatch =
+  ManagementExperimentsPatch'
     { _mepWebPropertyId :: !Text
     , _mepProFileId     :: !Text
     , _mepPayload       :: !Experiment
     , _mepAccountId     :: !Text
     , _mepExperimentId  :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementExperimentsPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -93,13 +96,14 @@
     -> Text -- ^ 'mepExperimentId'
     -> ManagementExperimentsPatch
 managementExperimentsPatch pMepWebPropertyId_ pMepProFileId_ pMepPayload_ pMepAccountId_ pMepExperimentId_ =
-    ManagementExperimentsPatch'
+  ManagementExperimentsPatch'
     { _mepWebPropertyId = pMepWebPropertyId_
     , _mepProFileId = pMepProFileId_
     , _mepPayload = pMepPayload_
     , _mepAccountId = pMepAccountId_
     , _mepExperimentId = pMepExperimentId_
     }
+
 
 -- | Web property ID of the experiment to update.
 mepWebPropertyId :: Lens' ManagementExperimentsPatch Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Experiments/Update.hs b/gen/Network/Google/Resource/Analytics/Management/Experiments/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Experiments/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Experiments/Update.hs
@@ -64,14 +64,17 @@
 -- | Update an existing experiment.
 --
 -- /See:/ 'managementExperimentsUpdate' smart constructor.
-data ManagementExperimentsUpdate = ManagementExperimentsUpdate'
+data ManagementExperimentsUpdate =
+  ManagementExperimentsUpdate'
     { _meuWebPropertyId :: !Text
     , _meuProFileId     :: !Text
     , _meuPayload       :: !Experiment
     , _meuAccountId     :: !Text
     , _meuExperimentId  :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementExperimentsUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -93,13 +96,14 @@
     -> Text -- ^ 'meuExperimentId'
     -> ManagementExperimentsUpdate
 managementExperimentsUpdate pMeuWebPropertyId_ pMeuProFileId_ pMeuPayload_ pMeuAccountId_ pMeuExperimentId_ =
-    ManagementExperimentsUpdate'
+  ManagementExperimentsUpdate'
     { _meuWebPropertyId = pMeuWebPropertyId_
     , _meuProFileId = pMeuProFileId_
     , _meuPayload = pMeuPayload_
     , _meuAccountId = pMeuAccountId_
     , _meuExperimentId = pMeuExperimentId_
     }
+
 
 -- | Web property ID of the experiment to update.
 meuWebPropertyId :: Lens' ManagementExperimentsUpdate Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Filters/Delete.hs b/gen/Network/Google/Resource/Analytics/Management/Filters/Delete.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Filters/Delete.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Filters/Delete.hs
@@ -55,11 +55,14 @@
 -- | Delete a filter.
 --
 -- /See:/ 'managementFiltersDelete' smart constructor.
-data ManagementFiltersDelete = ManagementFiltersDelete'
+data ManagementFiltersDelete =
+  ManagementFiltersDelete'
     { _mfdFilterId  :: !Text
     , _mfdAccountId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementFiltersDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -72,10 +75,9 @@
     -> Text -- ^ 'mfdAccountId'
     -> ManagementFiltersDelete
 managementFiltersDelete pMfdFilterId_ pMfdAccountId_ =
-    ManagementFiltersDelete'
-    { _mfdFilterId = pMfdFilterId_
-    , _mfdAccountId = pMfdAccountId_
-    }
+  ManagementFiltersDelete'
+    {_mfdFilterId = pMfdFilterId_, _mfdAccountId = pMfdAccountId_}
+
 
 -- | ID of the filter to be deleted.
 mfdFilterId :: Lens' ManagementFiltersDelete Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Filters/Get.hs b/gen/Network/Google/Resource/Analytics/Management/Filters/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Filters/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Filters/Get.hs
@@ -55,11 +55,14 @@
 -- | Returns a filters to which the user has access.
 --
 -- /See:/ 'managementFiltersGet' smart constructor.
-data ManagementFiltersGet = ManagementFiltersGet'
+data ManagementFiltersGet =
+  ManagementFiltersGet'
     { _mfgFilterId  :: !Text
     , _mfgAccountId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementFiltersGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -72,10 +75,9 @@
     -> Text -- ^ 'mfgAccountId'
     -> ManagementFiltersGet
 managementFiltersGet pMfgFilterId_ pMfgAccountId_ =
-    ManagementFiltersGet'
-    { _mfgFilterId = pMfgFilterId_
-    , _mfgAccountId = pMfgAccountId_
-    }
+  ManagementFiltersGet'
+    {_mfgFilterId = pMfgFilterId_, _mfgAccountId = pMfgAccountId_}
+
 
 -- | Filter ID to retrieve filters for.
 mfgFilterId :: Lens' ManagementFiltersGet Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Filters/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/Filters/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Filters/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Filters/Insert.hs
@@ -55,11 +55,14 @@
 -- | Create a new filter.
 --
 -- /See:/ 'managementFiltersInsert' smart constructor.
-data ManagementFiltersInsert = ManagementFiltersInsert'
+data ManagementFiltersInsert =
+  ManagementFiltersInsert'
     { _mfiPayload   :: !Filter
     , _mfiAccountId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementFiltersInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -72,10 +75,9 @@
     -> Text -- ^ 'mfiAccountId'
     -> ManagementFiltersInsert
 managementFiltersInsert pMfiPayload_ pMfiAccountId_ =
-    ManagementFiltersInsert'
-    { _mfiPayload = pMfiPayload_
-    , _mfiAccountId = pMfiAccountId_
-    }
+  ManagementFiltersInsert'
+    {_mfiPayload = pMfiPayload_, _mfiAccountId = pMfiAccountId_}
+
 
 -- | Multipart request metadata.
 mfiPayload :: Lens' ManagementFiltersInsert Filter
diff --git a/gen/Network/Google/Resource/Analytics/Management/Filters/List.hs b/gen/Network/Google/Resource/Analytics/Management/Filters/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Filters/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Filters/List.hs
@@ -57,12 +57,15 @@
 -- | Lists all filters for an account
 --
 -- /See:/ 'managementFiltersList' smart constructor.
-data ManagementFiltersList = ManagementFiltersList'
+data ManagementFiltersList =
+  ManagementFiltersList'
     { _mflAccountId  :: !Text
     , _mflStartIndex :: !(Maybe (Textual Int32))
     , _mflMaxResults :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementFiltersList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -76,11 +79,12 @@
     :: Text -- ^ 'mflAccountId'
     -> ManagementFiltersList
 managementFiltersList pMflAccountId_ =
-    ManagementFiltersList'
+  ManagementFiltersList'
     { _mflAccountId = pMflAccountId_
     , _mflStartIndex = Nothing
     , _mflMaxResults = Nothing
     }
+
 
 -- | Account ID to retrieve filters for.
 mflAccountId :: Lens' ManagementFiltersList Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Filters/Patch.hs b/gen/Network/Google/Resource/Analytics/Management/Filters/Patch.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Filters/Patch.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Filters/Patch.hs
@@ -57,12 +57,15 @@
 -- | Updates an existing filter. This method supports patch semantics.
 --
 -- /See:/ 'managementFiltersPatch' smart constructor.
-data ManagementFiltersPatch = ManagementFiltersPatch'
+data ManagementFiltersPatch =
+  ManagementFiltersPatch'
     { _mfpFilterId  :: !Text
     , _mfpPayload   :: !Filter
     , _mfpAccountId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementFiltersPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -78,11 +81,12 @@
     -> Text -- ^ 'mfpAccountId'
     -> ManagementFiltersPatch
 managementFiltersPatch pMfpFilterId_ pMfpPayload_ pMfpAccountId_ =
-    ManagementFiltersPatch'
+  ManagementFiltersPatch'
     { _mfpFilterId = pMfpFilterId_
     , _mfpPayload = pMfpPayload_
     , _mfpAccountId = pMfpAccountId_
     }
+
 
 -- | ID of the filter to be updated.
 mfpFilterId :: Lens' ManagementFiltersPatch Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Filters/Update.hs b/gen/Network/Google/Resource/Analytics/Management/Filters/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Filters/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Filters/Update.hs
@@ -57,12 +57,15 @@
 -- | Updates an existing filter.
 --
 -- /See:/ 'managementFiltersUpdate' smart constructor.
-data ManagementFiltersUpdate = ManagementFiltersUpdate'
+data ManagementFiltersUpdate =
+  ManagementFiltersUpdate'
     { _mfuFilterId  :: !Text
     , _mfuPayload   :: !Filter
     , _mfuAccountId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementFiltersUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -78,11 +81,12 @@
     -> Text -- ^ 'mfuAccountId'
     -> ManagementFiltersUpdate
 managementFiltersUpdate pMfuFilterId_ pMfuPayload_ pMfuAccountId_ =
-    ManagementFiltersUpdate'
+  ManagementFiltersUpdate'
     { _mfuFilterId = pMfuFilterId_
     , _mfuPayload = pMfuPayload_
     , _mfuAccountId = pMfuAccountId_
     }
+
 
 -- | ID of the filter to be updated.
 mfuFilterId :: Lens' ManagementFiltersUpdate Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Goals/Get.hs b/gen/Network/Google/Resource/Analytics/Management/Goals/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Goals/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Goals/Get.hs
@@ -61,13 +61,16 @@
 -- | Gets a goal to which the user has access.
 --
 -- /See:/ 'managementGoalsGet' smart constructor.
-data ManagementGoalsGet = ManagementGoalsGet'
+data ManagementGoalsGet =
+  ManagementGoalsGet'
     { _mggWebPropertyId :: !Text
     , _mggGoalId        :: !Text
     , _mggProFileId     :: !Text
     , _mggAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementGoalsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,12 +89,13 @@
     -> Text -- ^ 'mggAccountId'
     -> ManagementGoalsGet
 managementGoalsGet pMggWebPropertyId_ pMggGoalId_ pMggProFileId_ pMggAccountId_ =
-    ManagementGoalsGet'
+  ManagementGoalsGet'
     { _mggWebPropertyId = pMggWebPropertyId_
     , _mggGoalId = pMggGoalId_
     , _mggProFileId = pMggProFileId_
     , _mggAccountId = pMggAccountId_
     }
+
 
 -- | Web property ID to retrieve the goal for.
 mggWebPropertyId :: Lens' ManagementGoalsGet Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Goals/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/Goals/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Goals/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Goals/Insert.hs
@@ -61,13 +61,16 @@
 -- | Create a new goal.
 --
 -- /See:/ 'managementGoalsInsert' smart constructor.
-data ManagementGoalsInsert = ManagementGoalsInsert'
+data ManagementGoalsInsert =
+  ManagementGoalsInsert'
     { _mgiWebPropertyId :: !Text
     , _mgiProFileId     :: !Text
     , _mgiPayload       :: !Goal
     , _mgiAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementGoalsInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,12 +89,13 @@
     -> Text -- ^ 'mgiAccountId'
     -> ManagementGoalsInsert
 managementGoalsInsert pMgiWebPropertyId_ pMgiProFileId_ pMgiPayload_ pMgiAccountId_ =
-    ManagementGoalsInsert'
+  ManagementGoalsInsert'
     { _mgiWebPropertyId = pMgiWebPropertyId_
     , _mgiProFileId = pMgiProFileId_
     , _mgiPayload = pMgiPayload_
     , _mgiAccountId = pMgiAccountId_
     }
+
 
 -- | Web property ID to create the goal for.
 mgiWebPropertyId :: Lens' ManagementGoalsInsert Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Goals/List.hs b/gen/Network/Google/Resource/Analytics/Management/Goals/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Goals/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Goals/List.hs
@@ -63,14 +63,17 @@
 -- | Lists goals to which the user has access.
 --
 -- /See:/ 'managementGoalsList' smart constructor.
-data ManagementGoalsList = ManagementGoalsList'
+data ManagementGoalsList =
+  ManagementGoalsList'
     { _mglWebPropertyId :: !Text
     , _mglProFileId     :: !Text
     , _mglAccountId     :: !Text
     , _mglStartIndex    :: !(Maybe (Textual Int32))
     , _mglMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementGoalsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -90,13 +93,14 @@
     -> Text -- ^ 'mglAccountId'
     -> ManagementGoalsList
 managementGoalsList pMglWebPropertyId_ pMglProFileId_ pMglAccountId_ =
-    ManagementGoalsList'
+  ManagementGoalsList'
     { _mglWebPropertyId = pMglWebPropertyId_
     , _mglProFileId = pMglProFileId_
     , _mglAccountId = pMglAccountId_
     , _mglStartIndex = Nothing
     , _mglMaxResults = Nothing
     }
+
 
 -- | Web property ID to retrieve goals for. Can either be a specific web
 -- property ID or \'~all\', which refers to all the web properties that
diff --git a/gen/Network/Google/Resource/Analytics/Management/Goals/Patch.hs b/gen/Network/Google/Resource/Analytics/Management/Goals/Patch.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Goals/Patch.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Goals/Patch.hs
@@ -63,14 +63,17 @@
 -- | Updates an existing goal. This method supports patch semantics.
 --
 -- /See:/ 'managementGoalsPatch' smart constructor.
-data ManagementGoalsPatch = ManagementGoalsPatch'
+data ManagementGoalsPatch =
+  ManagementGoalsPatch'
     { _mgpWebPropertyId :: !Text
     , _mgpGoalId        :: !Text
     , _mgpProFileId     :: !Text
     , _mgpPayload       :: !Goal
     , _mgpAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementGoalsPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -92,13 +95,14 @@
     -> Text -- ^ 'mgpAccountId'
     -> ManagementGoalsPatch
 managementGoalsPatch pMgpWebPropertyId_ pMgpGoalId_ pMgpProFileId_ pMgpPayload_ pMgpAccountId_ =
-    ManagementGoalsPatch'
+  ManagementGoalsPatch'
     { _mgpWebPropertyId = pMgpWebPropertyId_
     , _mgpGoalId = pMgpGoalId_
     , _mgpProFileId = pMgpProFileId_
     , _mgpPayload = pMgpPayload_
     , _mgpAccountId = pMgpAccountId_
     }
+
 
 -- | Web property ID to update the goal.
 mgpWebPropertyId :: Lens' ManagementGoalsPatch Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Goals/Update.hs b/gen/Network/Google/Resource/Analytics/Management/Goals/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Goals/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Goals/Update.hs
@@ -63,14 +63,17 @@
 -- | Updates an existing goal.
 --
 -- /See:/ 'managementGoalsUpdate' smart constructor.
-data ManagementGoalsUpdate = ManagementGoalsUpdate'
+data ManagementGoalsUpdate =
+  ManagementGoalsUpdate'
     { _mguWebPropertyId :: !Text
     , _mguGoalId        :: !Text
     , _mguProFileId     :: !Text
     , _mguPayload       :: !Goal
     , _mguAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementGoalsUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -92,13 +95,14 @@
     -> Text -- ^ 'mguAccountId'
     -> ManagementGoalsUpdate
 managementGoalsUpdate pMguWebPropertyId_ pMguGoalId_ pMguProFileId_ pMguPayload_ pMguAccountId_ =
-    ManagementGoalsUpdate'
+  ManagementGoalsUpdate'
     { _mguWebPropertyId = pMguWebPropertyId_
     , _mguGoalId = pMguGoalId_
     , _mguProFileId = pMguProFileId_
     , _mguPayload = pMguPayload_
     , _mguAccountId = pMguAccountId_
     }
+
 
 -- | Web property ID to update the goal.
 mguWebPropertyId :: Lens' ManagementGoalsUpdate Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Delete.hs b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Delete.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Delete.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Delete.hs
@@ -61,13 +61,16 @@
 -- | Delete a profile filter link.
 --
 -- /See:/ 'managementProFileFilterLinksDelete' smart constructor.
-data ManagementProFileFilterLinksDelete = ManagementProFileFilterLinksDelete'
+data ManagementProFileFilterLinksDelete =
+  ManagementProFileFilterLinksDelete'
     { _mpffldWebPropertyId :: !Text
     , _mpffldProFileId     :: !Text
     , _mpffldAccountId     :: !Text
     , _mpffldLinkId        :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFileFilterLinksDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,13 +89,14 @@
     -> Text -- ^ 'mpffldLinkId'
     -> ManagementProFileFilterLinksDelete
 managementProFileFilterLinksDelete pMpffldWebPropertyId_ pMpffldProFileId_ pMpffldAccountId_ pMpffldLinkId_ =
-    ManagementProFileFilterLinksDelete'
+  ManagementProFileFilterLinksDelete'
     { _mpffldWebPropertyId = pMpffldWebPropertyId_
     , _mpffldProFileId = pMpffldProFileId_
     , _mpffldAccountId = pMpffldAccountId_
     , _mpffldLinkId = pMpffldLinkId_
     }
 
+
 -- | Web property Id to which the profile filter link belongs.
 mpffldWebPropertyId :: Lens' ManagementProFileFilterLinksDelete Text
 mpffldWebPropertyId
@@ -117,7 +121,8 @@
   = lens _mpffldLinkId (\ s a -> s{_mpffldLinkId = a})
 
 instance GoogleRequest
-         ManagementProFileFilterLinksDelete where
+           ManagementProFileFilterLinksDelete
+         where
         type Rs ManagementProFileFilterLinksDelete = ()
         type Scopes ManagementProFileFilterLinksDelete =
              '["https://www.googleapis.com/auth/analytics.edit"]
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Get.hs b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Get.hs
@@ -62,13 +62,16 @@
 -- | Returns a single profile filter link.
 --
 -- /See:/ 'managementProFileFilterLinksGet' smart constructor.
-data ManagementProFileFilterLinksGet = ManagementProFileFilterLinksGet'
+data ManagementProFileFilterLinksGet =
+  ManagementProFileFilterLinksGet'
     { _mpfflgWebPropertyId :: !Text
     , _mpfflgProFileId     :: !Text
     , _mpfflgAccountId     :: !Text
     , _mpfflgLinkId        :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFileFilterLinksGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -87,13 +90,14 @@
     -> Text -- ^ 'mpfflgLinkId'
     -> ManagementProFileFilterLinksGet
 managementProFileFilterLinksGet pMpfflgWebPropertyId_ pMpfflgProFileId_ pMpfflgAccountId_ pMpfflgLinkId_ =
-    ManagementProFileFilterLinksGet'
+  ManagementProFileFilterLinksGet'
     { _mpfflgWebPropertyId = pMpfflgWebPropertyId_
     , _mpfflgProFileId = pMpfflgProFileId_
     , _mpfflgAccountId = pMpfflgAccountId_
     , _mpfflgLinkId = pMpfflgLinkId_
     }
 
+
 -- | Web property Id to retrieve profile filter link for.
 mpfflgWebPropertyId :: Lens' ManagementProFileFilterLinksGet Text
 mpfflgWebPropertyId
@@ -118,7 +122,8 @@
   = lens _mpfflgLinkId (\ s a -> s{_mpfflgLinkId = a})
 
 instance GoogleRequest
-         ManagementProFileFilterLinksGet where
+           ManagementProFileFilterLinksGet
+         where
         type Rs ManagementProFileFilterLinksGet =
              ProFileFilterLink
         type Scopes ManagementProFileFilterLinksGet =
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Insert.hs
@@ -62,13 +62,16 @@
 -- | Create a new profile filter link.
 --
 -- /See:/ 'managementProFileFilterLinksInsert' smart constructor.
-data ManagementProFileFilterLinksInsert = ManagementProFileFilterLinksInsert'
+data ManagementProFileFilterLinksInsert =
+  ManagementProFileFilterLinksInsert'
     { _mpffliWebPropertyId :: !Text
     , _mpffliProFileId     :: !Text
     , _mpffliPayload       :: !ProFileFilterLink
     , _mpffliAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFileFilterLinksInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -87,13 +90,14 @@
     -> Text -- ^ 'mpffliAccountId'
     -> ManagementProFileFilterLinksInsert
 managementProFileFilterLinksInsert pMpffliWebPropertyId_ pMpffliProFileId_ pMpffliPayload_ pMpffliAccountId_ =
-    ManagementProFileFilterLinksInsert'
+  ManagementProFileFilterLinksInsert'
     { _mpffliWebPropertyId = pMpffliWebPropertyId_
     , _mpffliProFileId = pMpffliProFileId_
     , _mpffliPayload = pMpffliPayload_
     , _mpffliAccountId = pMpffliAccountId_
     }
 
+
 -- | Web property Id to create profile filter link for.
 mpffliWebPropertyId :: Lens' ManagementProFileFilterLinksInsert Text
 mpffliWebPropertyId
@@ -119,7 +123,8 @@
       (\ s a -> s{_mpffliAccountId = a})
 
 instance GoogleRequest
-         ManagementProFileFilterLinksInsert where
+           ManagementProFileFilterLinksInsert
+         where
         type Rs ManagementProFileFilterLinksInsert =
              ProFileFilterLink
         type Scopes ManagementProFileFilterLinksInsert =
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/List.hs b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/List.hs
@@ -64,14 +64,17 @@
 -- | Lists all profile filter links for a profile.
 --
 -- /See:/ 'managementProFileFilterLinksList' smart constructor.
-data ManagementProFileFilterLinksList = ManagementProFileFilterLinksList'
+data ManagementProFileFilterLinksList =
+  ManagementProFileFilterLinksList'
     { _mpffllWebPropertyId :: !Text
     , _mpffllProFileId     :: !Text
     , _mpffllAccountId     :: !Text
     , _mpffllStartIndex    :: !(Maybe (Textual Int32))
     , _mpffllMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFileFilterLinksList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -91,7 +94,7 @@
     -> Text -- ^ 'mpffllAccountId'
     -> ManagementProFileFilterLinksList
 managementProFileFilterLinksList pMpffllWebPropertyId_ pMpffllProFileId_ pMpffllAccountId_ =
-    ManagementProFileFilterLinksList'
+  ManagementProFileFilterLinksList'
     { _mpffllWebPropertyId = pMpffllWebPropertyId_
     , _mpffllProFileId = pMpffllProFileId_
     , _mpffllAccountId = pMpffllAccountId_
@@ -99,6 +102,7 @@
     , _mpffllMaxResults = Nothing
     }
 
+
 -- | Web property Id for profile filter links for. Can either be a specific
 -- web property ID or \'~all\', which refers to all the web properties that
 -- user has access to.
@@ -137,7 +141,8 @@
       . mapping _Coerce
 
 instance GoogleRequest
-         ManagementProFileFilterLinksList where
+           ManagementProFileFilterLinksList
+         where
         type Rs ManagementProFileFilterLinksList =
              ProFileFilterLinks
         type Scopes ManagementProFileFilterLinksList =
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Patch.hs b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Patch.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Patch.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Patch.hs
@@ -66,14 +66,17 @@
 -- semantics.
 --
 -- /See:/ 'managementProFileFilterLinksPatch' smart constructor.
-data ManagementProFileFilterLinksPatch = ManagementProFileFilterLinksPatch'
+data ManagementProFileFilterLinksPatch =
+  ManagementProFileFilterLinksPatch'
     { _mpfflpWebPropertyId :: !Text
     , _mpfflpProFileId     :: !Text
     , _mpfflpPayload       :: !ProFileFilterLink
     , _mpfflpAccountId     :: !Text
     , _mpfflpLinkId        :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFileFilterLinksPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -95,7 +98,7 @@
     -> Text -- ^ 'mpfflpLinkId'
     -> ManagementProFileFilterLinksPatch
 managementProFileFilterLinksPatch pMpfflpWebPropertyId_ pMpfflpProFileId_ pMpfflpPayload_ pMpfflpAccountId_ pMpfflpLinkId_ =
-    ManagementProFileFilterLinksPatch'
+  ManagementProFileFilterLinksPatch'
     { _mpfflpWebPropertyId = pMpfflpWebPropertyId_
     , _mpfflpProFileId = pMpfflpProFileId_
     , _mpfflpPayload = pMpfflpPayload_
@@ -103,6 +106,7 @@
     , _mpfflpLinkId = pMpfflpLinkId_
     }
 
+
 -- | Web property Id to which profile filter link belongs
 mpfflpWebPropertyId :: Lens' ManagementProFileFilterLinksPatch Text
 mpfflpWebPropertyId
@@ -133,7 +137,8 @@
   = lens _mpfflpLinkId (\ s a -> s{_mpfflpLinkId = a})
 
 instance GoogleRequest
-         ManagementProFileFilterLinksPatch where
+           ManagementProFileFilterLinksPatch
+         where
         type Rs ManagementProFileFilterLinksPatch =
              ProFileFilterLink
         type Scopes ManagementProFileFilterLinksPatch =
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Update.hs b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFileFilterLinks/Update.hs
@@ -64,14 +64,17 @@
 -- | Update an existing profile filter link.
 --
 -- /See:/ 'managementProFileFilterLinksUpdate' smart constructor.
-data ManagementProFileFilterLinksUpdate = ManagementProFileFilterLinksUpdate'
+data ManagementProFileFilterLinksUpdate =
+  ManagementProFileFilterLinksUpdate'
     { _mpffluWebPropertyId :: !Text
     , _mpffluProFileId     :: !Text
     , _mpffluPayload       :: !ProFileFilterLink
     , _mpffluAccountId     :: !Text
     , _mpffluLinkId        :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFileFilterLinksUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -93,7 +96,7 @@
     -> Text -- ^ 'mpffluLinkId'
     -> ManagementProFileFilterLinksUpdate
 managementProFileFilterLinksUpdate pMpffluWebPropertyId_ pMpffluProFileId_ pMpffluPayload_ pMpffluAccountId_ pMpffluLinkId_ =
-    ManagementProFileFilterLinksUpdate'
+  ManagementProFileFilterLinksUpdate'
     { _mpffluWebPropertyId = pMpffluWebPropertyId_
     , _mpffluProFileId = pMpffluProFileId_
     , _mpffluPayload = pMpffluPayload_
@@ -101,6 +104,7 @@
     , _mpffluLinkId = pMpffluLinkId_
     }
 
+
 -- | Web property Id to which profile filter link belongs
 mpffluWebPropertyId :: Lens' ManagementProFileFilterLinksUpdate Text
 mpffluWebPropertyId
@@ -131,7 +135,8 @@
   = lens _mpffluLinkId (\ s a -> s{_mpffluLinkId = a})
 
 instance GoogleRequest
-         ManagementProFileFilterLinksUpdate where
+           ManagementProFileFilterLinksUpdate
+         where
         type Rs ManagementProFileFilterLinksUpdate =
              ProFileFilterLink
         type Scopes ManagementProFileFilterLinksUpdate =
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Delete.hs b/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Delete.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Delete.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Delete.hs
@@ -61,13 +61,16 @@
 -- | Removes a user from the given view (profile).
 --
 -- /See:/ 'managementProFileUserLinksDelete' smart constructor.
-data ManagementProFileUserLinksDelete = ManagementProFileUserLinksDelete'
+data ManagementProFileUserLinksDelete =
+  ManagementProFileUserLinksDelete'
     { _mpfuldWebPropertyId :: !Text
     , _mpfuldProFileId     :: !Text
     , _mpfuldAccountId     :: !Text
     , _mpfuldLinkId        :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFileUserLinksDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,13 +89,14 @@
     -> Text -- ^ 'mpfuldLinkId'
     -> ManagementProFileUserLinksDelete
 managementProFileUserLinksDelete pMpfuldWebPropertyId_ pMpfuldProFileId_ pMpfuldAccountId_ pMpfuldLinkId_ =
-    ManagementProFileUserLinksDelete'
+  ManagementProFileUserLinksDelete'
     { _mpfuldWebPropertyId = pMpfuldWebPropertyId_
     , _mpfuldProFileId = pMpfuldProFileId_
     , _mpfuldAccountId = pMpfuldAccountId_
     , _mpfuldLinkId = pMpfuldLinkId_
     }
 
+
 -- | Web Property ID to delete the user link for.
 mpfuldWebPropertyId :: Lens' ManagementProFileUserLinksDelete Text
 mpfuldWebPropertyId
@@ -117,7 +121,8 @@
   = lens _mpfuldLinkId (\ s a -> s{_mpfuldLinkId = a})
 
 instance GoogleRequest
-         ManagementProFileUserLinksDelete where
+           ManagementProFileUserLinksDelete
+         where
         type Rs ManagementProFileUserLinksDelete = ()
         type Scopes ManagementProFileUserLinksDelete =
              '["https://www.googleapis.com/auth/analytics.manage.users"]
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Insert.hs
@@ -62,13 +62,16 @@
 -- | Adds a new user to the given view (profile).
 --
 -- /See:/ 'managementProFileUserLinksInsert' smart constructor.
-data ManagementProFileUserLinksInsert = ManagementProFileUserLinksInsert'
+data ManagementProFileUserLinksInsert =
+  ManagementProFileUserLinksInsert'
     { _mpfuliWebPropertyId :: !Text
     , _mpfuliProFileId     :: !Text
     , _mpfuliPayload       :: !EntityUserLink
     , _mpfuliAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFileUserLinksInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -87,13 +90,14 @@
     -> Text -- ^ 'mpfuliAccountId'
     -> ManagementProFileUserLinksInsert
 managementProFileUserLinksInsert pMpfuliWebPropertyId_ pMpfuliProFileId_ pMpfuliPayload_ pMpfuliAccountId_ =
-    ManagementProFileUserLinksInsert'
+  ManagementProFileUserLinksInsert'
     { _mpfuliWebPropertyId = pMpfuliWebPropertyId_
     , _mpfuliProFileId = pMpfuliProFileId_
     , _mpfuliPayload = pMpfuliPayload_
     , _mpfuliAccountId = pMpfuliAccountId_
     }
 
+
 -- | Web Property ID to create the user link for.
 mpfuliWebPropertyId :: Lens' ManagementProFileUserLinksInsert Text
 mpfuliWebPropertyId
@@ -119,7 +123,8 @@
       (\ s a -> s{_mpfuliAccountId = a})
 
 instance GoogleRequest
-         ManagementProFileUserLinksInsert where
+           ManagementProFileUserLinksInsert
+         where
         type Rs ManagementProFileUserLinksInsert =
              EntityUserLink
         type Scopes ManagementProFileUserLinksInsert =
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/List.hs b/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/List.hs
@@ -64,14 +64,17 @@
 -- | Lists profile-user links for a given view (profile).
 --
 -- /See:/ 'managementProFileUserLinksList' smart constructor.
-data ManagementProFileUserLinksList = ManagementProFileUserLinksList'
+data ManagementProFileUserLinksList =
+  ManagementProFileUserLinksList'
     { _mpfullWebPropertyId :: !Text
     , _mpfullProFileId     :: !Text
     , _mpfullAccountId     :: !Text
     , _mpfullStartIndex    :: !(Maybe (Textual Int32))
     , _mpfullMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFileUserLinksList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -91,13 +94,14 @@
     -> Text -- ^ 'mpfullAccountId'
     -> ManagementProFileUserLinksList
 managementProFileUserLinksList pMpfullWebPropertyId_ pMpfullProFileId_ pMpfullAccountId_ =
-    ManagementProFileUserLinksList'
+  ManagementProFileUserLinksList'
     { _mpfullWebPropertyId = pMpfullWebPropertyId_
     , _mpfullProFileId = pMpfullProFileId_
     , _mpfullAccountId = pMpfullAccountId_
     , _mpfullStartIndex = Nothing
     , _mpfullMaxResults = Nothing
     }
+
 
 -- | Web Property ID which the given view (profile) belongs to. Can either be
 -- a specific web property ID or \'~all\', which refers to all the web
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Update.hs b/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFileUserLinks/Update.hs
@@ -64,14 +64,17 @@
 -- | Updates permissions for an existing user on the given view (profile).
 --
 -- /See:/ 'managementProFileUserLinksUpdate' smart constructor.
-data ManagementProFileUserLinksUpdate = ManagementProFileUserLinksUpdate'
+data ManagementProFileUserLinksUpdate =
+  ManagementProFileUserLinksUpdate'
     { _mpfuluWebPropertyId :: !Text
     , _mpfuluProFileId     :: !Text
     , _mpfuluPayload       :: !EntityUserLink
     , _mpfuluAccountId     :: !Text
     , _mpfuluLinkId        :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFileUserLinksUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -93,7 +96,7 @@
     -> Text -- ^ 'mpfuluLinkId'
     -> ManagementProFileUserLinksUpdate
 managementProFileUserLinksUpdate pMpfuluWebPropertyId_ pMpfuluProFileId_ pMpfuluPayload_ pMpfuluAccountId_ pMpfuluLinkId_ =
-    ManagementProFileUserLinksUpdate'
+  ManagementProFileUserLinksUpdate'
     { _mpfuluWebPropertyId = pMpfuluWebPropertyId_
     , _mpfuluProFileId = pMpfuluProFileId_
     , _mpfuluPayload = pMpfuluPayload_
@@ -101,6 +104,7 @@
     , _mpfuluLinkId = pMpfuluLinkId_
     }
 
+
 -- | Web Property ID to update the user link for.
 mpfuluWebPropertyId :: Lens' ManagementProFileUserLinksUpdate Text
 mpfuluWebPropertyId
@@ -131,7 +135,8 @@
   = lens _mpfuluLinkId (\ s a -> s{_mpfuluLinkId = a})
 
 instance GoogleRequest
-         ManagementProFileUserLinksUpdate where
+           ManagementProFileUserLinksUpdate
+         where
         type Rs ManagementProFileUserLinksUpdate =
              EntityUserLink
         type Scopes ManagementProFileUserLinksUpdate =
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFiles/Delete.hs b/gen/Network/Google/Resource/Analytics/Management/ProFiles/Delete.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFiles/Delete.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFiles/Delete.hs
@@ -58,12 +58,15 @@
 -- | Deletes a view (profile).
 --
 -- /See:/ 'managementProFilesDelete' smart constructor.
-data ManagementProFilesDelete = ManagementProFilesDelete'
+data ManagementProFilesDelete =
+  ManagementProFilesDelete'
     { _mpfdWebPropertyId :: !Text
     , _mpfdProFileId     :: !Text
     , _mpfdAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFilesDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -79,11 +82,12 @@
     -> Text -- ^ 'mpfdAccountId'
     -> ManagementProFilesDelete
 managementProFilesDelete pMpfdWebPropertyId_ pMpfdProFileId_ pMpfdAccountId_ =
-    ManagementProFilesDelete'
+  ManagementProFilesDelete'
     { _mpfdWebPropertyId = pMpfdWebPropertyId_
     , _mpfdProFileId = pMpfdProFileId_
     , _mpfdAccountId = pMpfdAccountId_
     }
+
 
 -- | Web property ID to delete the view (profile) for.
 mpfdWebPropertyId :: Lens' ManagementProFilesDelete Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFiles/Get.hs b/gen/Network/Google/Resource/Analytics/Management/ProFiles/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFiles/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFiles/Get.hs
@@ -58,12 +58,15 @@
 -- | Gets a view (profile) to which the user has access.
 --
 -- /See:/ 'managementProFilesGet' smart constructor.
-data ManagementProFilesGet = ManagementProFilesGet'
+data ManagementProFilesGet =
+  ManagementProFilesGet'
     { _mpfgWebPropertyId :: !Text
     , _mpfgProFileId     :: !Text
     , _mpfgAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFilesGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -79,11 +82,12 @@
     -> Text -- ^ 'mpfgAccountId'
     -> ManagementProFilesGet
 managementProFilesGet pMpfgWebPropertyId_ pMpfgProFileId_ pMpfgAccountId_ =
-    ManagementProFilesGet'
+  ManagementProFilesGet'
     { _mpfgWebPropertyId = pMpfgWebPropertyId_
     , _mpfgProFileId = pMpfgProFileId_
     , _mpfgAccountId = pMpfgAccountId_
     }
+
 
 -- | Web property ID to retrieve the view (profile) for.
 mpfgWebPropertyId :: Lens' ManagementProFilesGet Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFiles/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/ProFiles/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFiles/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFiles/Insert.hs
@@ -58,12 +58,15 @@
 -- | Create a new view (profile).
 --
 -- /See:/ 'managementProFilesInsert' smart constructor.
-data ManagementProFilesInsert = ManagementProFilesInsert'
+data ManagementProFilesInsert =
+  ManagementProFilesInsert'
     { _mpfiWebPropertyId :: !Text
     , _mpfiPayload       :: !ProFile
     , _mpfiAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFilesInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -79,11 +82,12 @@
     -> Text -- ^ 'mpfiAccountId'
     -> ManagementProFilesInsert
 managementProFilesInsert pMpfiWebPropertyId_ pMpfiPayload_ pMpfiAccountId_ =
-    ManagementProFilesInsert'
+  ManagementProFilesInsert'
     { _mpfiWebPropertyId = pMpfiWebPropertyId_
     , _mpfiPayload = pMpfiPayload_
     , _mpfiAccountId = pMpfiAccountId_
     }
+
 
 -- | Web property ID to create the view (profile) for.
 mpfiWebPropertyId :: Lens' ManagementProFilesInsert Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFiles/List.hs b/gen/Network/Google/Resource/Analytics/Management/ProFiles/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFiles/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFiles/List.hs
@@ -60,13 +60,16 @@
 -- | Lists views (profiles) to which the user has access.
 --
 -- /See:/ 'managementProFilesList' smart constructor.
-data ManagementProFilesList = ManagementProFilesList'
+data ManagementProFilesList =
+  ManagementProFilesList'
     { _mpflWebPropertyId :: !Text
     , _mpflAccountId     :: !Text
     , _mpflStartIndex    :: !(Maybe (Textual Int32))
     , _mpflMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFilesList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -83,12 +86,13 @@
     -> Text -- ^ 'mpflAccountId'
     -> ManagementProFilesList
 managementProFilesList pMpflWebPropertyId_ pMpflAccountId_ =
-    ManagementProFilesList'
+  ManagementProFilesList'
     { _mpflWebPropertyId = pMpflWebPropertyId_
     , _mpflAccountId = pMpflAccountId_
     , _mpflStartIndex = Nothing
     , _mpflMaxResults = Nothing
     }
+
 
 -- | Web property ID for the views (profiles) to retrieve. Can either be a
 -- specific web property ID or \'~all\', which refers to all the web
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFiles/Patch.hs b/gen/Network/Google/Resource/Analytics/Management/ProFiles/Patch.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFiles/Patch.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFiles/Patch.hs
@@ -62,13 +62,16 @@
 -- semantics.
 --
 -- /See:/ 'managementProFilesPatch' smart constructor.
-data ManagementProFilesPatch = ManagementProFilesPatch'
+data ManagementProFilesPatch =
+  ManagementProFilesPatch'
     { _mpfpWebPropertyId :: !Text
     , _mpfpProFileId     :: !Text
     , _mpfpPayload       :: !ProFile
     , _mpfpAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFilesPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -87,12 +90,13 @@
     -> Text -- ^ 'mpfpAccountId'
     -> ManagementProFilesPatch
 managementProFilesPatch pMpfpWebPropertyId_ pMpfpProFileId_ pMpfpPayload_ pMpfpAccountId_ =
-    ManagementProFilesPatch'
+  ManagementProFilesPatch'
     { _mpfpWebPropertyId = pMpfpWebPropertyId_
     , _mpfpProFileId = pMpfpProFileId_
     , _mpfpPayload = pMpfpPayload_
     , _mpfpAccountId = pMpfpAccountId_
     }
+
 
 -- | Web property ID to which the view (profile) belongs
 mpfpWebPropertyId :: Lens' ManagementProFilesPatch Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/ProFiles/Update.hs b/gen/Network/Google/Resource/Analytics/Management/ProFiles/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/ProFiles/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/ProFiles/Update.hs
@@ -60,13 +60,16 @@
 -- | Updates an existing view (profile).
 --
 -- /See:/ 'managementProFilesUpdate' smart constructor.
-data ManagementProFilesUpdate = ManagementProFilesUpdate'
+data ManagementProFilesUpdate =
+  ManagementProFilesUpdate'
     { _mpfuWebPropertyId :: !Text
     , _mpfuProFileId     :: !Text
     , _mpfuPayload       :: !ProFile
     , _mpfuAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementProFilesUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -85,12 +88,13 @@
     -> Text -- ^ 'mpfuAccountId'
     -> ManagementProFilesUpdate
 managementProFilesUpdate pMpfuWebPropertyId_ pMpfuProFileId_ pMpfuPayload_ pMpfuAccountId_ =
-    ManagementProFilesUpdate'
+  ManagementProFilesUpdate'
     { _mpfuWebPropertyId = pMpfuWebPropertyId_
     , _mpfuProFileId = pMpfuProFileId_
     , _mpfuPayload = pMpfuPayload_
     , _mpfuAccountId = pMpfuAccountId_
     }
+
 
 -- | Web property ID to which the view (profile) belongs
 mpfuWebPropertyId :: Lens' ManagementProFilesUpdate Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Delete.hs b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Delete.hs
--- a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Delete.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Delete.hs
@@ -58,12 +58,15 @@
 -- | Delete a remarketing audience.
 --
 -- /See:/ 'managementRemarketingAudienceDelete' smart constructor.
-data ManagementRemarketingAudienceDelete = ManagementRemarketingAudienceDelete'
+data ManagementRemarketingAudienceDelete =
+  ManagementRemarketingAudienceDelete'
     { _mradWebPropertyId         :: !Text
     , _mradAccountId             :: !Text
     , _mradRemarketingAudienceId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementRemarketingAudienceDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -79,12 +82,13 @@
     -> Text -- ^ 'mradRemarketingAudienceId'
     -> ManagementRemarketingAudienceDelete
 managementRemarketingAudienceDelete pMradWebPropertyId_ pMradAccountId_ pMradRemarketingAudienceId_ =
-    ManagementRemarketingAudienceDelete'
+  ManagementRemarketingAudienceDelete'
     { _mradWebPropertyId = pMradWebPropertyId_
     , _mradAccountId = pMradAccountId_
     , _mradRemarketingAudienceId = pMradRemarketingAudienceId_
     }
 
+
 -- | Web property ID to which the remarketing audience belongs.
 mradWebPropertyId :: Lens' ManagementRemarketingAudienceDelete Text
 mradWebPropertyId
@@ -104,7 +108,8 @@
       (\ s a -> s{_mradRemarketingAudienceId = a})
 
 instance GoogleRequest
-         ManagementRemarketingAudienceDelete where
+           ManagementRemarketingAudienceDelete
+         where
         type Rs ManagementRemarketingAudienceDelete = ()
         type Scopes ManagementRemarketingAudienceDelete =
              '["https://www.googleapis.com/auth/analytics.edit"]
diff --git a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Get.hs b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Get.hs
@@ -59,12 +59,15 @@
 -- | Gets a remarketing audience to which the user has access.
 --
 -- /See:/ 'managementRemarketingAudienceGet' smart constructor.
-data ManagementRemarketingAudienceGet = ManagementRemarketingAudienceGet'
+data ManagementRemarketingAudienceGet =
+  ManagementRemarketingAudienceGet'
     { _mragWebPropertyId         :: !Text
     , _mragAccountId             :: !Text
     , _mragRemarketingAudienceId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementRemarketingAudienceGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,12 +83,13 @@
     -> Text -- ^ 'mragRemarketingAudienceId'
     -> ManagementRemarketingAudienceGet
 managementRemarketingAudienceGet pMragWebPropertyId_ pMragAccountId_ pMragRemarketingAudienceId_ =
-    ManagementRemarketingAudienceGet'
+  ManagementRemarketingAudienceGet'
     { _mragWebPropertyId = pMragWebPropertyId_
     , _mragAccountId = pMragAccountId_
     , _mragRemarketingAudienceId = pMragRemarketingAudienceId_
     }
 
+
 -- | The web property ID of the remarketing audience to retrieve.
 mragWebPropertyId :: Lens' ManagementRemarketingAudienceGet Text
 mragWebPropertyId
@@ -105,7 +109,8 @@
       (\ s a -> s{_mragRemarketingAudienceId = a})
 
 instance GoogleRequest
-         ManagementRemarketingAudienceGet where
+           ManagementRemarketingAudienceGet
+         where
         type Rs ManagementRemarketingAudienceGet =
              RemarketingAudience
         type Scopes ManagementRemarketingAudienceGet =
diff --git a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Insert.hs
@@ -59,12 +59,15 @@
 -- | Creates a new remarketing audience.
 --
 -- /See:/ 'managementRemarketingAudienceInsert' smart constructor.
-data ManagementRemarketingAudienceInsert = ManagementRemarketingAudienceInsert'
+data ManagementRemarketingAudienceInsert =
+  ManagementRemarketingAudienceInsert'
     { _mraiWebPropertyId :: !Text
     , _mraiPayload       :: !RemarketingAudience
     , _mraiAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementRemarketingAudienceInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,12 +83,13 @@
     -> Text -- ^ 'mraiAccountId'
     -> ManagementRemarketingAudienceInsert
 managementRemarketingAudienceInsert pMraiWebPropertyId_ pMraiPayload_ pMraiAccountId_ =
-    ManagementRemarketingAudienceInsert'
+  ManagementRemarketingAudienceInsert'
     { _mraiWebPropertyId = pMraiWebPropertyId_
     , _mraiPayload = pMraiPayload_
     , _mraiAccountId = pMraiAccountId_
     }
 
+
 -- | Web property ID for which to create the remarketing audience.
 mraiWebPropertyId :: Lens' ManagementRemarketingAudienceInsert Text
 mraiWebPropertyId
@@ -104,7 +108,8 @@
       (\ s a -> s{_mraiAccountId = a})
 
 instance GoogleRequest
-         ManagementRemarketingAudienceInsert where
+           ManagementRemarketingAudienceInsert
+         where
         type Rs ManagementRemarketingAudienceInsert =
              RemarketingAudience
         type Scopes ManagementRemarketingAudienceInsert =
diff --git a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/List.hs b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/List.hs
@@ -63,14 +63,17 @@
 -- | Lists remarketing audiences to which the user has access.
 --
 -- /See:/ 'managementRemarketingAudienceList' smart constructor.
-data ManagementRemarketingAudienceList = ManagementRemarketingAudienceList'
+data ManagementRemarketingAudienceList =
+  ManagementRemarketingAudienceList'
     { _mralWebPropertyId :: !Text
     , _mralAccountId     :: !Text
     , _mralType          :: !Text
     , _mralStartIndex    :: !(Maybe (Textual Int32))
     , _mralMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementRemarketingAudienceList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -89,7 +92,7 @@
     -> Text -- ^ 'mralAccountId'
     -> ManagementRemarketingAudienceList
 managementRemarketingAudienceList pMralWebPropertyId_ pMralAccountId_ =
-    ManagementRemarketingAudienceList'
+  ManagementRemarketingAudienceList'
     { _mralWebPropertyId = pMralWebPropertyId_
     , _mralAccountId = pMralAccountId_
     , _mralType = "all"
@@ -97,6 +100,7 @@
     , _mralMaxResults = Nothing
     }
 
+
 -- | The web property ID of the remarketing audiences to retrieve.
 mralWebPropertyId :: Lens' ManagementRemarketingAudienceList Text
 mralWebPropertyId
@@ -128,7 +132,8 @@
       . mapping _Coerce
 
 instance GoogleRequest
-         ManagementRemarketingAudienceList where
+           ManagementRemarketingAudienceList
+         where
         type Rs ManagementRemarketingAudienceList =
              RemarketingAudiences
         type Scopes ManagementRemarketingAudienceList =
diff --git a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Patch.hs b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Patch.hs
--- a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Patch.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Patch.hs
@@ -63,13 +63,16 @@
 -- semantics.
 --
 -- /See:/ 'managementRemarketingAudiencePatch' smart constructor.
-data ManagementRemarketingAudiencePatch = ManagementRemarketingAudiencePatch'
+data ManagementRemarketingAudiencePatch =
+  ManagementRemarketingAudiencePatch'
     { _mrapWebPropertyId         :: !Text
     , _mrapPayload               :: !RemarketingAudience
     , _mrapAccountId             :: !Text
     , _mrapRemarketingAudienceId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementRemarketingAudiencePatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -88,13 +91,14 @@
     -> Text -- ^ 'mrapRemarketingAudienceId'
     -> ManagementRemarketingAudiencePatch
 managementRemarketingAudiencePatch pMrapWebPropertyId_ pMrapPayload_ pMrapAccountId_ pMrapRemarketingAudienceId_ =
-    ManagementRemarketingAudiencePatch'
+  ManagementRemarketingAudiencePatch'
     { _mrapWebPropertyId = pMrapWebPropertyId_
     , _mrapPayload = pMrapPayload_
     , _mrapAccountId = pMrapAccountId_
     , _mrapRemarketingAudienceId = pMrapRemarketingAudienceId_
     }
 
+
 -- | The web property ID of the remarketing audience to update.
 mrapWebPropertyId :: Lens' ManagementRemarketingAudiencePatch Text
 mrapWebPropertyId
@@ -119,7 +123,8 @@
       (\ s a -> s{_mrapRemarketingAudienceId = a})
 
 instance GoogleRequest
-         ManagementRemarketingAudiencePatch where
+           ManagementRemarketingAudiencePatch
+         where
         type Rs ManagementRemarketingAudiencePatch =
              RemarketingAudience
         type Scopes ManagementRemarketingAudiencePatch =
diff --git a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Update.hs b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/RemarketingAudience/Update.hs
@@ -61,13 +61,16 @@
 -- | Updates an existing remarketing audience.
 --
 -- /See:/ 'managementRemarketingAudienceUpdate' smart constructor.
-data ManagementRemarketingAudienceUpdate = ManagementRemarketingAudienceUpdate'
+data ManagementRemarketingAudienceUpdate =
+  ManagementRemarketingAudienceUpdate'
     { _mrauWebPropertyId         :: !Text
     , _mrauPayload               :: !RemarketingAudience
     , _mrauAccountId             :: !Text
     , _mrauRemarketingAudienceId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementRemarketingAudienceUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,13 +89,14 @@
     -> Text -- ^ 'mrauRemarketingAudienceId'
     -> ManagementRemarketingAudienceUpdate
 managementRemarketingAudienceUpdate pMrauWebPropertyId_ pMrauPayload_ pMrauAccountId_ pMrauRemarketingAudienceId_ =
-    ManagementRemarketingAudienceUpdate'
+  ManagementRemarketingAudienceUpdate'
     { _mrauWebPropertyId = pMrauWebPropertyId_
     , _mrauPayload = pMrauPayload_
     , _mrauAccountId = pMrauAccountId_
     , _mrauRemarketingAudienceId = pMrauRemarketingAudienceId_
     }
 
+
 -- | The web property ID of the remarketing audience to update.
 mrauWebPropertyId :: Lens' ManagementRemarketingAudienceUpdate Text
 mrauWebPropertyId
@@ -117,7 +121,8 @@
       (\ s a -> s{_mrauRemarketingAudienceId = a})
 
 instance GoogleRequest
-         ManagementRemarketingAudienceUpdate where
+           ManagementRemarketingAudienceUpdate
+         where
         type Rs ManagementRemarketingAudienceUpdate =
              RemarketingAudience
         type Scopes ManagementRemarketingAudienceUpdate =
diff --git a/gen/Network/Google/Resource/Analytics/Management/Segments/List.hs b/gen/Network/Google/Resource/Analytics/Management/Segments/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Segments/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Segments/List.hs
@@ -54,11 +54,14 @@
 -- | Lists segments to which the user has access.
 --
 -- /See:/ 'managementSegmentsList' smart constructor.
-data ManagementSegmentsList = ManagementSegmentsList'
+data ManagementSegmentsList =
+  ManagementSegmentsList'
     { _mslStartIndex :: !(Maybe (Textual Int32))
     , _mslMaxResults :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementSegmentsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -69,10 +72,8 @@
 managementSegmentsList
     :: ManagementSegmentsList
 managementSegmentsList =
-    ManagementSegmentsList'
-    { _mslStartIndex = Nothing
-    , _mslMaxResults = Nothing
-    }
+  ManagementSegmentsList' {_mslStartIndex = Nothing, _mslMaxResults = Nothing}
+
 
 -- | An index of the first segment to retrieve. Use this parameter as a
 -- pagination mechanism along with the max-results parameter.
diff --git a/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Delete.hs b/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Delete.hs
--- a/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Delete.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Delete.hs
@@ -61,13 +61,16 @@
 -- | Deletes an unsampled report.
 --
 -- /See:/ 'managementUnSampledReportsDelete' smart constructor.
-data ManagementUnSampledReportsDelete = ManagementUnSampledReportsDelete'
+data ManagementUnSampledReportsDelete =
+  ManagementUnSampledReportsDelete'
     { _musrdWebPropertyId     :: !Text
     , _musrdProFileId         :: !Text
     , _musrdAccountId         :: !Text
     , _musrdUnSampledReportId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementUnSampledReportsDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,13 +89,14 @@
     -> Text -- ^ 'musrdUnSampledReportId'
     -> ManagementUnSampledReportsDelete
 managementUnSampledReportsDelete pMusrdWebPropertyId_ pMusrdProFileId_ pMusrdAccountId_ pMusrdUnSampledReportId_ =
-    ManagementUnSampledReportsDelete'
+  ManagementUnSampledReportsDelete'
     { _musrdWebPropertyId = pMusrdWebPropertyId_
     , _musrdProFileId = pMusrdProFileId_
     , _musrdAccountId = pMusrdAccountId_
     , _musrdUnSampledReportId = pMusrdUnSampledReportId_
     }
 
+
 -- | Web property ID to delete the unsampled reports for.
 musrdWebPropertyId :: Lens' ManagementUnSampledReportsDelete Text
 musrdWebPropertyId
@@ -118,7 +122,8 @@
       (\ s a -> s{_musrdUnSampledReportId = a})
 
 instance GoogleRequest
-         ManagementUnSampledReportsDelete where
+           ManagementUnSampledReportsDelete
+         where
         type Rs ManagementUnSampledReportsDelete = ()
         type Scopes ManagementUnSampledReportsDelete =
              '["https://www.googleapis.com/auth/analytics.edit"]
diff --git a/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Get.hs b/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Get.hs
@@ -62,13 +62,16 @@
 -- | Returns a single unsampled report.
 --
 -- /See:/ 'managementUnSampledReportsGet' smart constructor.
-data ManagementUnSampledReportsGet = ManagementUnSampledReportsGet'
+data ManagementUnSampledReportsGet =
+  ManagementUnSampledReportsGet'
     { _musrgWebPropertyId     :: !Text
     , _musrgProFileId         :: !Text
     , _musrgAccountId         :: !Text
     , _musrgUnSampledReportId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementUnSampledReportsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -87,12 +90,13 @@
     -> Text -- ^ 'musrgUnSampledReportId'
     -> ManagementUnSampledReportsGet
 managementUnSampledReportsGet pMusrgWebPropertyId_ pMusrgProFileId_ pMusrgAccountId_ pMusrgUnSampledReportId_ =
-    ManagementUnSampledReportsGet'
+  ManagementUnSampledReportsGet'
     { _musrgWebPropertyId = pMusrgWebPropertyId_
     , _musrgProFileId = pMusrgProFileId_
     , _musrgAccountId = pMusrgAccountId_
     , _musrgUnSampledReportId = pMusrgUnSampledReportId_
     }
+
 
 -- | Web property ID to retrieve unsampled reports for.
 musrgWebPropertyId :: Lens' ManagementUnSampledReportsGet Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/Insert.hs
@@ -62,13 +62,16 @@
 -- | Create a new unsampled report.
 --
 -- /See:/ 'managementUnSampledReportsInsert' smart constructor.
-data ManagementUnSampledReportsInsert = ManagementUnSampledReportsInsert'
+data ManagementUnSampledReportsInsert =
+  ManagementUnSampledReportsInsert'
     { _musriWebPropertyId :: !Text
     , _musriProFileId     :: !Text
     , _musriPayload       :: !UnSampledReport
     , _musriAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementUnSampledReportsInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -87,13 +90,14 @@
     -> Text -- ^ 'musriAccountId'
     -> ManagementUnSampledReportsInsert
 managementUnSampledReportsInsert pMusriWebPropertyId_ pMusriProFileId_ pMusriPayload_ pMusriAccountId_ =
-    ManagementUnSampledReportsInsert'
+  ManagementUnSampledReportsInsert'
     { _musriWebPropertyId = pMusriWebPropertyId_
     , _musriProFileId = pMusriProFileId_
     , _musriPayload = pMusriPayload_
     , _musriAccountId = pMusriAccountId_
     }
 
+
 -- | Web property ID to create the unsampled report for.
 musriWebPropertyId :: Lens' ManagementUnSampledReportsInsert Text
 musriWebPropertyId
@@ -118,7 +122,8 @@
       (\ s a -> s{_musriAccountId = a})
 
 instance GoogleRequest
-         ManagementUnSampledReportsInsert where
+           ManagementUnSampledReportsInsert
+         where
         type Rs ManagementUnSampledReportsInsert =
              UnSampledReport
         type Scopes ManagementUnSampledReportsInsert =
diff --git a/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/List.hs b/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/UnSampledReports/List.hs
@@ -64,14 +64,17 @@
 -- | Lists unsampled reports to which the user has access.
 --
 -- /See:/ 'managementUnSampledReportsList' smart constructor.
-data ManagementUnSampledReportsList = ManagementUnSampledReportsList'
+data ManagementUnSampledReportsList =
+  ManagementUnSampledReportsList'
     { _musrlWebPropertyId :: !Text
     , _musrlProFileId     :: !Text
     , _musrlAccountId     :: !Text
     , _musrlStartIndex    :: !(Maybe (Textual Int32))
     , _musrlMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementUnSampledReportsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -91,13 +94,14 @@
     -> Text -- ^ 'musrlAccountId'
     -> ManagementUnSampledReportsList
 managementUnSampledReportsList pMusrlWebPropertyId_ pMusrlProFileId_ pMusrlAccountId_ =
-    ManagementUnSampledReportsList'
+  ManagementUnSampledReportsList'
     { _musrlWebPropertyId = pMusrlWebPropertyId_
     , _musrlProFileId = pMusrlProFileId_
     , _musrlAccountId = pMusrlAccountId_
     , _musrlStartIndex = Nothing
     , _musrlMaxResults = Nothing
     }
+
 
 -- | Web property ID to retrieve unsampled reports for. Must be a specific
 -- web property ID, ~all is not supported.
diff --git a/gen/Network/Google/Resource/Analytics/Management/Uploads/DeleteUploadData.hs b/gen/Network/Google/Resource/Analytics/Management/Uploads/DeleteUploadData.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Uploads/DeleteUploadData.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Uploads/DeleteUploadData.hs
@@ -63,13 +63,16 @@
 -- | Delete data associated with a previous upload.
 --
 -- /See:/ 'managementUploadsDeleteUploadData' smart constructor.
-data ManagementUploadsDeleteUploadData = ManagementUploadsDeleteUploadData'
+data ManagementUploadsDeleteUploadData =
+  ManagementUploadsDeleteUploadData'
     { _mududWebPropertyId      :: !Text
     , _mududCustomDataSourceId :: !Text
     , _mududPayload            :: !AnalyticsDataimportDeleteUploadDataRequest
     , _mududAccountId          :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementUploadsDeleteUploadData' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -88,13 +91,14 @@
     -> Text -- ^ 'mududAccountId'
     -> ManagementUploadsDeleteUploadData
 managementUploadsDeleteUploadData pMududWebPropertyId_ pMududCustomDataSourceId_ pMududPayload_ pMududAccountId_ =
-    ManagementUploadsDeleteUploadData'
+  ManagementUploadsDeleteUploadData'
     { _mududWebPropertyId = pMududWebPropertyId_
     , _mududCustomDataSourceId = pMududCustomDataSourceId_
     , _mududPayload = pMududPayload_
     , _mududAccountId = pMududAccountId_
     }
 
+
 -- | Web property Id for the uploads to be deleted.
 mududWebPropertyId :: Lens' ManagementUploadsDeleteUploadData Text
 mududWebPropertyId
@@ -119,7 +123,8 @@
       (\ s a -> s{_mududAccountId = a})
 
 instance GoogleRequest
-         ManagementUploadsDeleteUploadData where
+           ManagementUploadsDeleteUploadData
+         where
         type Rs ManagementUploadsDeleteUploadData = ()
         type Scopes ManagementUploadsDeleteUploadData =
              '["https://www.googleapis.com/auth/analytics",
diff --git a/gen/Network/Google/Resource/Analytics/Management/Uploads/Get.hs b/gen/Network/Google/Resource/Analytics/Management/Uploads/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Uploads/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Uploads/Get.hs
@@ -61,13 +61,16 @@
 -- | List uploads to which the user has access.
 --
 -- /See:/ 'managementUploadsGet' smart constructor.
-data ManagementUploadsGet = ManagementUploadsGet'
+data ManagementUploadsGet =
+  ManagementUploadsGet'
     { _mugWebPropertyId      :: !Text
     , _mugCustomDataSourceId :: !Text
     , _mugAccountId          :: !Text
     , _mugUploadId           :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementUploadsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,12 +89,13 @@
     -> Text -- ^ 'mugUploadId'
     -> ManagementUploadsGet
 managementUploadsGet pMugWebPropertyId_ pMugCustomDataSourceId_ pMugAccountId_ pMugUploadId_ =
-    ManagementUploadsGet'
+  ManagementUploadsGet'
     { _mugWebPropertyId = pMugWebPropertyId_
     , _mugCustomDataSourceId = pMugCustomDataSourceId_
     , _mugAccountId = pMugAccountId_
     , _mugUploadId = pMugUploadId_
     }
+
 
 -- | Web property Id for the upload to retrieve.
 mugWebPropertyId :: Lens' ManagementUploadsGet Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Uploads/List.hs b/gen/Network/Google/Resource/Analytics/Management/Uploads/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Uploads/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Uploads/List.hs
@@ -63,14 +63,17 @@
 -- | List uploads to which the user has access.
 --
 -- /See:/ 'managementUploadsList' smart constructor.
-data ManagementUploadsList = ManagementUploadsList'
+data ManagementUploadsList =
+  ManagementUploadsList'
     { _mulWebPropertyId      :: !Text
     , _mulCustomDataSourceId :: !Text
     , _mulAccountId          :: !Text
     , _mulStartIndex         :: !(Maybe (Textual Int32))
     , _mulMaxResults         :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementUploadsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -90,13 +93,14 @@
     -> Text -- ^ 'mulAccountId'
     -> ManagementUploadsList
 managementUploadsList pMulWebPropertyId_ pMulCustomDataSourceId_ pMulAccountId_ =
-    ManagementUploadsList'
+  ManagementUploadsList'
     { _mulWebPropertyId = pMulWebPropertyId_
     , _mulCustomDataSourceId = pMulCustomDataSourceId_
     , _mulAccountId = pMulAccountId_
     , _mulStartIndex = Nothing
     , _mulMaxResults = Nothing
     }
+
 
 -- | Web property Id for the uploads to retrieve.
 mulWebPropertyId :: Lens' ManagementUploadsList Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/Uploads/UploadData.hs b/gen/Network/Google/Resource/Analytics/Management/Uploads/UploadData.hs
--- a/gen/Network/Google/Resource/Analytics/Management/Uploads/UploadData.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/Uploads/UploadData.hs
@@ -74,12 +74,15 @@
 -- | Upload data for a custom data source.
 --
 -- /See:/ 'managementUploadsUploadData' smart constructor.
-data ManagementUploadsUploadData = ManagementUploadsUploadData'
+data ManagementUploadsUploadData =
+  ManagementUploadsUploadData'
     { _muudWebPropertyId      :: !Text
     , _muudCustomDataSourceId :: !Text
     , _muudAccountId          :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementUploadsUploadData' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -95,12 +98,13 @@
     -> Text -- ^ 'muudAccountId'
     -> ManagementUploadsUploadData
 managementUploadsUploadData pMuudWebPropertyId_ pMuudCustomDataSourceId_ pMuudAccountId_ =
-    ManagementUploadsUploadData'
+  ManagementUploadsUploadData'
     { _muudWebPropertyId = pMuudWebPropertyId_
     , _muudCustomDataSourceId = pMuudCustomDataSourceId_
     , _muudAccountId = pMuudAccountId_
     }
 
+
 -- | Web property UA-string associated with the upload.
 muudWebPropertyId :: Lens' ManagementUploadsUploadData Text
 muudWebPropertyId
@@ -136,7 +140,8 @@
                       mempty
 
 instance GoogleRequest
-         (MediaUpload ManagementUploadsUploadData) where
+           (MediaUpload ManagementUploadsUploadData)
+         where
         type Rs (MediaUpload ManagementUploadsUploadData) =
              Upload
         type Scopes (MediaUpload ManagementUploadsUploadData)
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebProperties/Get.hs b/gen/Network/Google/Resource/Analytics/Management/WebProperties/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebProperties/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebProperties/Get.hs
@@ -55,11 +55,14 @@
 -- | Gets a web property to which the user has access.
 --
 -- /See:/ 'managementWebPropertiesGet' smart constructor.
-data ManagementWebPropertiesGet = ManagementWebPropertiesGet'
+data ManagementWebPropertiesGet =
+  ManagementWebPropertiesGet'
     { _mwpgWebPropertyId :: !Text
     , _mwpgAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertiesGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -72,10 +75,9 @@
     -> Text -- ^ 'mwpgAccountId'
     -> ManagementWebPropertiesGet
 managementWebPropertiesGet pMwpgWebPropertyId_ pMwpgAccountId_ =
-    ManagementWebPropertiesGet'
-    { _mwpgWebPropertyId = pMwpgWebPropertyId_
-    , _mwpgAccountId = pMwpgAccountId_
-    }
+  ManagementWebPropertiesGet'
+    {_mwpgWebPropertyId = pMwpgWebPropertyId_, _mwpgAccountId = pMwpgAccountId_}
+
 
 -- | ID to retrieve the web property for.
 mwpgWebPropertyId :: Lens' ManagementWebPropertiesGet Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebProperties/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/WebProperties/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebProperties/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebProperties/Insert.hs
@@ -60,11 +60,14 @@
 -- have at least one profile.
 --
 -- /See:/ 'managementWebPropertiesInsert' smart constructor.
-data ManagementWebPropertiesInsert = ManagementWebPropertiesInsert'
+data ManagementWebPropertiesInsert =
+  ManagementWebPropertiesInsert'
     { _mwpiPayload   :: !WebProperty
     , _mwpiAccountId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertiesInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -77,10 +80,9 @@
     -> Text -- ^ 'mwpiAccountId'
     -> ManagementWebPropertiesInsert
 managementWebPropertiesInsert pMwpiPayload_ pMwpiAccountId_ =
-    ManagementWebPropertiesInsert'
-    { _mwpiPayload = pMwpiPayload_
-    , _mwpiAccountId = pMwpiAccountId_
-    }
+  ManagementWebPropertiesInsert'
+    {_mwpiPayload = pMwpiPayload_, _mwpiAccountId = pMwpiAccountId_}
+
 
 -- | Multipart request metadata.
 mwpiPayload :: Lens' ManagementWebPropertiesInsert WebProperty
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebProperties/List.hs b/gen/Network/Google/Resource/Analytics/Management/WebProperties/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebProperties/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebProperties/List.hs
@@ -57,12 +57,15 @@
 -- | Lists web properties to which the user has access.
 --
 -- /See:/ 'managementWebPropertiesList' smart constructor.
-data ManagementWebPropertiesList = ManagementWebPropertiesList'
+data ManagementWebPropertiesList =
+  ManagementWebPropertiesList'
     { _mwplAccountId  :: !Text
     , _mwplStartIndex :: !(Maybe (Textual Int32))
     , _mwplMaxResults :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertiesList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -76,11 +79,12 @@
     :: Text -- ^ 'mwplAccountId'
     -> ManagementWebPropertiesList
 managementWebPropertiesList pMwplAccountId_ =
-    ManagementWebPropertiesList'
+  ManagementWebPropertiesList'
     { _mwplAccountId = pMwplAccountId_
     , _mwplStartIndex = Nothing
     , _mwplMaxResults = Nothing
     }
+
 
 -- | Account ID to retrieve web properties for. Can either be a specific
 -- account ID or \'~all\', which refers to all the accounts that user has
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebProperties/Patch.hs b/gen/Network/Google/Resource/Analytics/Management/WebProperties/Patch.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebProperties/Patch.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebProperties/Patch.hs
@@ -58,12 +58,15 @@
 -- | Updates an existing web property. This method supports patch semantics.
 --
 -- /See:/ 'managementWebPropertiesPatch' smart constructor.
-data ManagementWebPropertiesPatch = ManagementWebPropertiesPatch'
+data ManagementWebPropertiesPatch =
+  ManagementWebPropertiesPatch'
     { _mwppWebPropertyId :: !Text
     , _mwppPayload       :: !WebProperty
     , _mwppAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertiesPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -79,11 +82,12 @@
     -> Text -- ^ 'mwppAccountId'
     -> ManagementWebPropertiesPatch
 managementWebPropertiesPatch pMwppWebPropertyId_ pMwppPayload_ pMwppAccountId_ =
-    ManagementWebPropertiesPatch'
+  ManagementWebPropertiesPatch'
     { _mwppWebPropertyId = pMwppWebPropertyId_
     , _mwppPayload = pMwppPayload_
     , _mwppAccountId = pMwppAccountId_
     }
+
 
 -- | Web property ID
 mwppWebPropertyId :: Lens' ManagementWebPropertiesPatch Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebProperties/Update.hs b/gen/Network/Google/Resource/Analytics/Management/WebProperties/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebProperties/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebProperties/Update.hs
@@ -58,12 +58,15 @@
 -- | Updates an existing web property.
 --
 -- /See:/ 'managementWebPropertiesUpdate' smart constructor.
-data ManagementWebPropertiesUpdate = ManagementWebPropertiesUpdate'
+data ManagementWebPropertiesUpdate =
+  ManagementWebPropertiesUpdate'
     { _mwpuWebPropertyId :: !Text
     , _mwpuPayload       :: !WebProperty
     , _mwpuAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertiesUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -79,11 +82,12 @@
     -> Text -- ^ 'mwpuAccountId'
     -> ManagementWebPropertiesUpdate
 managementWebPropertiesUpdate pMwpuWebPropertyId_ pMwpuPayload_ pMwpuAccountId_ =
-    ManagementWebPropertiesUpdate'
+  ManagementWebPropertiesUpdate'
     { _mwpuWebPropertyId = pMwpuWebPropertyId_
     , _mwpuPayload = pMwpuPayload_
     , _mwpuAccountId = pMwpuAccountId_
     }
+
 
 -- | Web property ID
 mwpuWebPropertyId :: Lens' ManagementWebPropertiesUpdate Text
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Delete.hs b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Delete.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Delete.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Delete.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Deletes a web property-AdWords link.
+-- Deletes a web property-Google Ads link.
 --
 -- /See:/ <https://developers.google.com/analytics/ Google Analytics API Reference> for @analytics.management.webPropertyAdWordsLinks.delete@.
 module Network.Google.Resource.Analytics.Management.WebPropertyAdWordsLinks.Delete
@@ -56,15 +56,18 @@
                      Capture "webPropertyAdWordsLinkId" Text :>
                        QueryParam "alt" AltJSON :> Delete '[JSON] ()
 
--- | Deletes a web property-AdWords link.
+-- | Deletes a web property-Google Ads link.
 --
 -- /See:/ 'managementWebPropertyAdWordsLinksDelete' smart constructor.
-data ManagementWebPropertyAdWordsLinksDelete = ManagementWebPropertyAdWordsLinksDelete'
+data ManagementWebPropertyAdWordsLinksDelete =
+  ManagementWebPropertyAdWordsLinksDelete'
     { _mwpawldWebPropertyId            :: !Text
     , _mwpawldAccountId                :: !Text
     , _mwpawldWebPropertyAdWordsLinkId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertyAdWordsLinksDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,13 +83,14 @@
     -> Text -- ^ 'mwpawldWebPropertyAdWordsLinkId'
     -> ManagementWebPropertyAdWordsLinksDelete
 managementWebPropertyAdWordsLinksDelete pMwpawldWebPropertyId_ pMwpawldAccountId_ pMwpawldWebPropertyAdWordsLinkId_ =
-    ManagementWebPropertyAdWordsLinksDelete'
+  ManagementWebPropertyAdWordsLinksDelete'
     { _mwpawldWebPropertyId = pMwpawldWebPropertyId_
     , _mwpawldAccountId = pMwpawldAccountId_
     , _mwpawldWebPropertyAdWordsLinkId = pMwpawldWebPropertyAdWordsLinkId_
     }
 
--- | Web property ID to delete the AdWords link for.
+
+-- | Web property ID to delete the Google Ads link for.
 mwpawldWebPropertyId :: Lens' ManagementWebPropertyAdWordsLinksDelete Text
 mwpawldWebPropertyId
   = lens _mwpawldWebPropertyId
@@ -98,14 +102,15 @@
   = lens _mwpawldAccountId
       (\ s a -> s{_mwpawldAccountId = a})
 
--- | Web property AdWords link ID.
+-- | Web property Google Ads link ID.
 mwpawldWebPropertyAdWordsLinkId :: Lens' ManagementWebPropertyAdWordsLinksDelete Text
 mwpawldWebPropertyAdWordsLinkId
   = lens _mwpawldWebPropertyAdWordsLinkId
       (\ s a -> s{_mwpawldWebPropertyAdWordsLinkId = a})
 
 instance GoogleRequest
-         ManagementWebPropertyAdWordsLinksDelete where
+           ManagementWebPropertyAdWordsLinksDelete
+         where
         type Rs ManagementWebPropertyAdWordsLinksDelete = ()
         type Scopes ManagementWebPropertyAdWordsLinksDelete =
              '["https://www.googleapis.com/auth/analytics.edit"]
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Get.hs b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Get.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Get.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Get.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns a web property-AdWords link to which the user has access.
+-- Returns a web property-Google Ads link to which the user has access.
 --
 -- /See:/ <https://developers.google.com/analytics/ Google Analytics API Reference> for @analytics.management.webPropertyAdWordsLinks.get@.
 module Network.Google.Resource.Analytics.Management.WebPropertyAdWordsLinks.Get
@@ -56,15 +56,18 @@
                        QueryParam "alt" AltJSON :>
                          Get '[JSON] EntityAdWordsLink
 
--- | Returns a web property-AdWords link to which the user has access.
+-- | Returns a web property-Google Ads link to which the user has access.
 --
 -- /See:/ 'managementWebPropertyAdWordsLinksGet' smart constructor.
-data ManagementWebPropertyAdWordsLinksGet = ManagementWebPropertyAdWordsLinksGet'
+data ManagementWebPropertyAdWordsLinksGet =
+  ManagementWebPropertyAdWordsLinksGet'
     { _mwpawlgWebPropertyId            :: !Text
     , _mwpawlgAccountId                :: !Text
     , _mwpawlgWebPropertyAdWordsLinkId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertyAdWordsLinksGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,13 +83,14 @@
     -> Text -- ^ 'mwpawlgWebPropertyAdWordsLinkId'
     -> ManagementWebPropertyAdWordsLinksGet
 managementWebPropertyAdWordsLinksGet pMwpawlgWebPropertyId_ pMwpawlgAccountId_ pMwpawlgWebPropertyAdWordsLinkId_ =
-    ManagementWebPropertyAdWordsLinksGet'
+  ManagementWebPropertyAdWordsLinksGet'
     { _mwpawlgWebPropertyId = pMwpawlgWebPropertyId_
     , _mwpawlgAccountId = pMwpawlgAccountId_
     , _mwpawlgWebPropertyAdWordsLinkId = pMwpawlgWebPropertyAdWordsLinkId_
     }
 
--- | Web property ID to retrieve the AdWords link for.
+
+-- | Web property ID to retrieve the Google Ads link for.
 mwpawlgWebPropertyId :: Lens' ManagementWebPropertyAdWordsLinksGet Text
 mwpawlgWebPropertyId
   = lens _mwpawlgWebPropertyId
@@ -98,14 +102,15 @@
   = lens _mwpawlgAccountId
       (\ s a -> s{_mwpawlgAccountId = a})
 
--- | Web property-AdWords link ID.
+-- | Web property-Google Ads link ID.
 mwpawlgWebPropertyAdWordsLinkId :: Lens' ManagementWebPropertyAdWordsLinksGet Text
 mwpawlgWebPropertyAdWordsLinkId
   = lens _mwpawlgWebPropertyAdWordsLinkId
       (\ s a -> s{_mwpawlgWebPropertyAdWordsLinkId = a})
 
 instance GoogleRequest
-         ManagementWebPropertyAdWordsLinksGet where
+           ManagementWebPropertyAdWordsLinksGet
+         where
         type Rs ManagementWebPropertyAdWordsLinksGet =
              EntityAdWordsLink
         type Scopes ManagementWebPropertyAdWordsLinksGet =
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Insert.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Creates a webProperty-AdWords link.
+-- Creates a webProperty-Google Ads link.
 --
 -- /See:/ <https://developers.google.com/analytics/ Google Analytics API Reference> for @analytics.management.webPropertyAdWordsLinks.insert@.
 module Network.Google.Resource.Analytics.Management.WebPropertyAdWordsLinks.Insert
@@ -57,15 +57,18 @@
                        ReqBody '[JSON] EntityAdWordsLink :>
                          Post '[JSON] EntityAdWordsLink
 
--- | Creates a webProperty-AdWords link.
+-- | Creates a webProperty-Google Ads link.
 --
 -- /See:/ 'managementWebPropertyAdWordsLinksInsert' smart constructor.
-data ManagementWebPropertyAdWordsLinksInsert = ManagementWebPropertyAdWordsLinksInsert'
+data ManagementWebPropertyAdWordsLinksInsert =
+  ManagementWebPropertyAdWordsLinksInsert'
     { _mwpawliWebPropertyId :: !Text
     , _mwpawliPayload       :: !EntityAdWordsLink
     , _mwpawliAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertyAdWordsLinksInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -81,12 +84,13 @@
     -> Text -- ^ 'mwpawliAccountId'
     -> ManagementWebPropertyAdWordsLinksInsert
 managementWebPropertyAdWordsLinksInsert pMwpawliWebPropertyId_ pMwpawliPayload_ pMwpawliAccountId_ =
-    ManagementWebPropertyAdWordsLinksInsert'
+  ManagementWebPropertyAdWordsLinksInsert'
     { _mwpawliWebPropertyId = pMwpawliWebPropertyId_
     , _mwpawliPayload = pMwpawliPayload_
     , _mwpawliAccountId = pMwpawliAccountId_
     }
 
+
 -- | Web property ID to create the link for.
 mwpawliWebPropertyId :: Lens' ManagementWebPropertyAdWordsLinksInsert Text
 mwpawliWebPropertyId
@@ -106,7 +110,8 @@
       (\ s a -> s{_mwpawliAccountId = a})
 
 instance GoogleRequest
-         ManagementWebPropertyAdWordsLinksInsert where
+           ManagementWebPropertyAdWordsLinksInsert
+         where
         type Rs ManagementWebPropertyAdWordsLinksInsert =
              EntityAdWordsLink
         type Scopes ManagementWebPropertyAdWordsLinksInsert =
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/List.hs b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/List.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Lists webProperty-AdWords links for a given web property.
+-- Lists webProperty-Google Ads links for a given web property.
 --
 -- /See:/ <https://developers.google.com/analytics/ Google Analytics API Reference> for @analytics.management.webPropertyAdWordsLinks.list@.
 module Network.Google.Resource.Analytics.Management.WebPropertyAdWordsLinks.List
@@ -58,16 +58,19 @@
                          QueryParam "alt" AltJSON :>
                            Get '[JSON] EntityAdWordsLinks
 
--- | Lists webProperty-AdWords links for a given web property.
+-- | Lists webProperty-Google Ads links for a given web property.
 --
 -- /See:/ 'managementWebPropertyAdWordsLinksList' smart constructor.
-data ManagementWebPropertyAdWordsLinksList = ManagementWebPropertyAdWordsLinksList'
+data ManagementWebPropertyAdWordsLinksList =
+  ManagementWebPropertyAdWordsLinksList'
     { _mwpawllWebPropertyId :: !Text
     , _mwpawllAccountId     :: !Text
     , _mwpawllStartIndex    :: !(Maybe (Textual Int32))
     , _mwpawllMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertyAdWordsLinksList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -84,14 +87,15 @@
     -> Text -- ^ 'mwpawllAccountId'
     -> ManagementWebPropertyAdWordsLinksList
 managementWebPropertyAdWordsLinksList pMwpawllWebPropertyId_ pMwpawllAccountId_ =
-    ManagementWebPropertyAdWordsLinksList'
+  ManagementWebPropertyAdWordsLinksList'
     { _mwpawllWebPropertyId = pMwpawllWebPropertyId_
     , _mwpawllAccountId = pMwpawllAccountId_
     , _mwpawllStartIndex = Nothing
     , _mwpawllMaxResults = Nothing
     }
 
--- | Web property ID to retrieve the AdWords links for.
+
+-- | Web property ID to retrieve the Google Ads links for.
 mwpawllWebPropertyId :: Lens' ManagementWebPropertyAdWordsLinksList Text
 mwpawllWebPropertyId
   = lens _mwpawllWebPropertyId
@@ -103,7 +107,7 @@
   = lens _mwpawllAccountId
       (\ s a -> s{_mwpawllAccountId = a})
 
--- | An index of the first webProperty-AdWords link to retrieve. Use this
+-- | An index of the first webProperty-Google Ads link to retrieve. Use this
 -- parameter as a pagination mechanism along with the max-results
 -- parameter.
 mwpawllStartIndex :: Lens' ManagementWebPropertyAdWordsLinksList (Maybe Int32)
@@ -112,7 +116,7 @@
       (\ s a -> s{_mwpawllStartIndex = a})
       . mapping _Coerce
 
--- | The maximum number of webProperty-AdWords links to include in this
+-- | The maximum number of webProperty-Google Ads links to include in this
 -- response.
 mwpawllMaxResults :: Lens' ManagementWebPropertyAdWordsLinksList (Maybe Int32)
 mwpawllMaxResults
@@ -121,7 +125,8 @@
       . mapping _Coerce
 
 instance GoogleRequest
-         ManagementWebPropertyAdWordsLinksList where
+           ManagementWebPropertyAdWordsLinksList
+         where
         type Rs ManagementWebPropertyAdWordsLinksList =
              EntityAdWordsLinks
         type Scopes ManagementWebPropertyAdWordsLinksList =
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Patch.hs b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Patch.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Patch.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Patch.hs
@@ -20,8 +20,8 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Updates an existing webProperty-AdWords link. This method supports patch
--- semantics.
+-- Updates an existing webProperty-Google Ads link. This method supports
+-- patch semantics.
 --
 -- /See:/ <https://developers.google.com/analytics/ Google Analytics API Reference> for @analytics.management.webPropertyAdWordsLinks.patch@.
 module Network.Google.Resource.Analytics.Management.WebPropertyAdWordsLinks.Patch
@@ -59,17 +59,20 @@
                          ReqBody '[JSON] EntityAdWordsLink :>
                            Patch '[JSON] EntityAdWordsLink
 
--- | Updates an existing webProperty-AdWords link. This method supports patch
--- semantics.
+-- | Updates an existing webProperty-Google Ads link. This method supports
+-- patch semantics.
 --
 -- /See:/ 'managementWebPropertyAdWordsLinksPatch' smart constructor.
-data ManagementWebPropertyAdWordsLinksPatch = ManagementWebPropertyAdWordsLinksPatch'
+data ManagementWebPropertyAdWordsLinksPatch =
+  ManagementWebPropertyAdWordsLinksPatch'
     { _mwpawlpWebPropertyId            :: !Text
     , _mwpawlpPayload                  :: !EntityAdWordsLink
     , _mwpawlpAccountId                :: !Text
     , _mwpawlpWebPropertyAdWordsLinkId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertyAdWordsLinksPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -88,14 +91,15 @@
     -> Text -- ^ 'mwpawlpWebPropertyAdWordsLinkId'
     -> ManagementWebPropertyAdWordsLinksPatch
 managementWebPropertyAdWordsLinksPatch pMwpawlpWebPropertyId_ pMwpawlpPayload_ pMwpawlpAccountId_ pMwpawlpWebPropertyAdWordsLinkId_ =
-    ManagementWebPropertyAdWordsLinksPatch'
+  ManagementWebPropertyAdWordsLinksPatch'
     { _mwpawlpWebPropertyId = pMwpawlpWebPropertyId_
     , _mwpawlpPayload = pMwpawlpPayload_
     , _mwpawlpAccountId = pMwpawlpAccountId_
     , _mwpawlpWebPropertyAdWordsLinkId = pMwpawlpWebPropertyAdWordsLinkId_
     }
 
--- | Web property ID to retrieve the AdWords link for.
+
+-- | Web property ID to retrieve the Google Ads link for.
 mwpawlpWebPropertyId :: Lens' ManagementWebPropertyAdWordsLinksPatch Text
 mwpawlpWebPropertyId
   = lens _mwpawlpWebPropertyId
@@ -113,14 +117,15 @@
   = lens _mwpawlpAccountId
       (\ s a -> s{_mwpawlpAccountId = a})
 
--- | Web property-AdWords link ID.
+-- | Web property-Google Ads link ID.
 mwpawlpWebPropertyAdWordsLinkId :: Lens' ManagementWebPropertyAdWordsLinksPatch Text
 mwpawlpWebPropertyAdWordsLinkId
   = lens _mwpawlpWebPropertyAdWordsLinkId
       (\ s a -> s{_mwpawlpWebPropertyAdWordsLinkId = a})
 
 instance GoogleRequest
-         ManagementWebPropertyAdWordsLinksPatch where
+           ManagementWebPropertyAdWordsLinksPatch
+         where
         type Rs ManagementWebPropertyAdWordsLinksPatch =
              EntityAdWordsLink
         type Scopes ManagementWebPropertyAdWordsLinksPatch =
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Update.hs b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebPropertyAdWordsLinks/Update.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Updates an existing webProperty-AdWords link.
+-- Updates an existing webProperty-Google Ads link.
 --
 -- /See:/ <https://developers.google.com/analytics/ Google Analytics API Reference> for @analytics.management.webPropertyAdWordsLinks.update@.
 module Network.Google.Resource.Analytics.Management.WebPropertyAdWordsLinks.Update
@@ -59,16 +59,19 @@
                          ReqBody '[JSON] EntityAdWordsLink :>
                            Put '[JSON] EntityAdWordsLink
 
--- | Updates an existing webProperty-AdWords link.
+-- | Updates an existing webProperty-Google Ads link.
 --
 -- /See:/ 'managementWebPropertyAdWordsLinksUpdate' smart constructor.
-data ManagementWebPropertyAdWordsLinksUpdate = ManagementWebPropertyAdWordsLinksUpdate'
+data ManagementWebPropertyAdWordsLinksUpdate =
+  ManagementWebPropertyAdWordsLinksUpdate'
     { _mwpawluWebPropertyId            :: !Text
     , _mwpawluPayload                  :: !EntityAdWordsLink
     , _mwpawluAccountId                :: !Text
     , _mwpawluWebPropertyAdWordsLinkId :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertyAdWordsLinksUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -87,14 +90,15 @@
     -> Text -- ^ 'mwpawluWebPropertyAdWordsLinkId'
     -> ManagementWebPropertyAdWordsLinksUpdate
 managementWebPropertyAdWordsLinksUpdate pMwpawluWebPropertyId_ pMwpawluPayload_ pMwpawluAccountId_ pMwpawluWebPropertyAdWordsLinkId_ =
-    ManagementWebPropertyAdWordsLinksUpdate'
+  ManagementWebPropertyAdWordsLinksUpdate'
     { _mwpawluWebPropertyId = pMwpawluWebPropertyId_
     , _mwpawluPayload = pMwpawluPayload_
     , _mwpawluAccountId = pMwpawluAccountId_
     , _mwpawluWebPropertyAdWordsLinkId = pMwpawluWebPropertyAdWordsLinkId_
     }
 
--- | Web property ID to retrieve the AdWords link for.
+
+-- | Web property ID to retrieve the Google Ads link for.
 mwpawluWebPropertyId :: Lens' ManagementWebPropertyAdWordsLinksUpdate Text
 mwpawluWebPropertyId
   = lens _mwpawluWebPropertyId
@@ -112,14 +116,15 @@
   = lens _mwpawluAccountId
       (\ s a -> s{_mwpawluAccountId = a})
 
--- | Web property-AdWords link ID.
+-- | Web property-Google Ads link ID.
 mwpawluWebPropertyAdWordsLinkId :: Lens' ManagementWebPropertyAdWordsLinksUpdate Text
 mwpawluWebPropertyAdWordsLinkId
   = lens _mwpawluWebPropertyAdWordsLinkId
       (\ s a -> s{_mwpawluWebPropertyAdWordsLinkId = a})
 
 instance GoogleRequest
-         ManagementWebPropertyAdWordsLinksUpdate where
+           ManagementWebPropertyAdWordsLinksUpdate
+         where
         type Rs ManagementWebPropertyAdWordsLinksUpdate =
              EntityAdWordsLink
         type Scopes ManagementWebPropertyAdWordsLinksUpdate =
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Delete.hs b/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Delete.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Delete.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Delete.hs
@@ -58,12 +58,15 @@
 -- | Removes a user from the given web property.
 --
 -- /See:/ 'managementWebPropertyUserLinksDelete' smart constructor.
-data ManagementWebPropertyUserLinksDelete = ManagementWebPropertyUserLinksDelete'
+data ManagementWebPropertyUserLinksDelete =
+  ManagementWebPropertyUserLinksDelete'
     { _mwpuldWebPropertyId :: !Text
     , _mwpuldAccountId     :: !Text
     , _mwpuldLinkId        :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertyUserLinksDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -79,12 +82,13 @@
     -> Text -- ^ 'mwpuldLinkId'
     -> ManagementWebPropertyUserLinksDelete
 managementWebPropertyUserLinksDelete pMwpuldWebPropertyId_ pMwpuldAccountId_ pMwpuldLinkId_ =
-    ManagementWebPropertyUserLinksDelete'
+  ManagementWebPropertyUserLinksDelete'
     { _mwpuldWebPropertyId = pMwpuldWebPropertyId_
     , _mwpuldAccountId = pMwpuldAccountId_
     , _mwpuldLinkId = pMwpuldLinkId_
     }
 
+
 -- | Web Property ID to delete the user link for.
 mwpuldWebPropertyId :: Lens' ManagementWebPropertyUserLinksDelete Text
 mwpuldWebPropertyId
@@ -103,7 +107,8 @@
   = lens _mwpuldLinkId (\ s a -> s{_mwpuldLinkId = a})
 
 instance GoogleRequest
-         ManagementWebPropertyUserLinksDelete where
+           ManagementWebPropertyUserLinksDelete
+         where
         type Rs ManagementWebPropertyUserLinksDelete = ()
         type Scopes ManagementWebPropertyUserLinksDelete =
              '["https://www.googleapis.com/auth/analytics.manage.users"]
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Insert.hs b/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Insert.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Insert.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Insert.hs
@@ -59,12 +59,15 @@
 -- | Adds a new user to the given web property.
 --
 -- /See:/ 'managementWebPropertyUserLinksInsert' smart constructor.
-data ManagementWebPropertyUserLinksInsert = ManagementWebPropertyUserLinksInsert'
+data ManagementWebPropertyUserLinksInsert =
+  ManagementWebPropertyUserLinksInsert'
     { _mwpuliWebPropertyId :: !Text
     , _mwpuliPayload       :: !EntityUserLink
     , _mwpuliAccountId     :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertyUserLinksInsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,12 +83,13 @@
     -> Text -- ^ 'mwpuliAccountId'
     -> ManagementWebPropertyUserLinksInsert
 managementWebPropertyUserLinksInsert pMwpuliWebPropertyId_ pMwpuliPayload_ pMwpuliAccountId_ =
-    ManagementWebPropertyUserLinksInsert'
+  ManagementWebPropertyUserLinksInsert'
     { _mwpuliWebPropertyId = pMwpuliWebPropertyId_
     , _mwpuliPayload = pMwpuliPayload_
     , _mwpuliAccountId = pMwpuliAccountId_
     }
 
+
 -- | Web Property ID to create the user link for.
 mwpuliWebPropertyId :: Lens' ManagementWebPropertyUserLinksInsert Text
 mwpuliWebPropertyId
@@ -105,7 +109,8 @@
       (\ s a -> s{_mwpuliAccountId = a})
 
 instance GoogleRequest
-         ManagementWebPropertyUserLinksInsert where
+           ManagementWebPropertyUserLinksInsert
+         where
         type Rs ManagementWebPropertyUserLinksInsert =
              EntityUserLink
         type Scopes ManagementWebPropertyUserLinksInsert =
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/List.hs b/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/List.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/List.hs
@@ -61,13 +61,16 @@
 -- | Lists webProperty-user links for a given web property.
 --
 -- /See:/ 'managementWebPropertyUserLinksList' smart constructor.
-data ManagementWebPropertyUserLinksList = ManagementWebPropertyUserLinksList'
+data ManagementWebPropertyUserLinksList =
+  ManagementWebPropertyUserLinksList'
     { _mwpullWebPropertyId :: !Text
     , _mwpullAccountId     :: !Text
     , _mwpullStartIndex    :: !(Maybe (Textual Int32))
     , _mwpullMaxResults    :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertyUserLinksList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -84,13 +87,14 @@
     -> Text -- ^ 'mwpullAccountId'
     -> ManagementWebPropertyUserLinksList
 managementWebPropertyUserLinksList pMwpullWebPropertyId_ pMwpullAccountId_ =
-    ManagementWebPropertyUserLinksList'
+  ManagementWebPropertyUserLinksList'
     { _mwpullWebPropertyId = pMwpullWebPropertyId_
     , _mwpullAccountId = pMwpullAccountId_
     , _mwpullStartIndex = Nothing
     , _mwpullMaxResults = Nothing
     }
 
+
 -- | Web Property ID for the webProperty-user links to retrieve. Can either
 -- be a specific web property ID or \'~all\', which refers to all the web
 -- properties that user has access to.
@@ -123,7 +127,8 @@
       . mapping _Coerce
 
 instance GoogleRequest
-         ManagementWebPropertyUserLinksList where
+           ManagementWebPropertyUserLinksList
+         where
         type Rs ManagementWebPropertyUserLinksList =
              EntityUserLinks
         type Scopes ManagementWebPropertyUserLinksList =
diff --git a/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Update.hs b/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Update.hs
--- a/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Update.hs
+++ b/gen/Network/Google/Resource/Analytics/Management/WebPropertyUserLinks/Update.hs
@@ -61,13 +61,16 @@
 -- | Updates permissions for an existing user on the given web property.
 --
 -- /See:/ 'managementWebPropertyUserLinksUpdate' smart constructor.
-data ManagementWebPropertyUserLinksUpdate = ManagementWebPropertyUserLinksUpdate'
+data ManagementWebPropertyUserLinksUpdate =
+  ManagementWebPropertyUserLinksUpdate'
     { _mwpuluWebPropertyId :: !Text
     , _mwpuluPayload       :: !EntityUserLink
     , _mwpuluAccountId     :: !Text
     , _mwpuluLinkId        :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ManagementWebPropertyUserLinksUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,13 +89,14 @@
     -> Text -- ^ 'mwpuluLinkId'
     -> ManagementWebPropertyUserLinksUpdate
 managementWebPropertyUserLinksUpdate pMwpuluWebPropertyId_ pMwpuluPayload_ pMwpuluAccountId_ pMwpuluLinkId_ =
-    ManagementWebPropertyUserLinksUpdate'
+  ManagementWebPropertyUserLinksUpdate'
     { _mwpuluWebPropertyId = pMwpuluWebPropertyId_
     , _mwpuluPayload = pMwpuluPayload_
     , _mwpuluAccountId = pMwpuluAccountId_
     , _mwpuluLinkId = pMwpuluLinkId_
     }
 
+
 -- | Web property ID to update the account-user link for.
 mwpuluWebPropertyId :: Lens' ManagementWebPropertyUserLinksUpdate Text
 mwpuluWebPropertyId
@@ -117,7 +121,8 @@
   = lens _mwpuluLinkId (\ s a -> s{_mwpuluLinkId = a})
 
 instance GoogleRequest
-         ManagementWebPropertyUserLinksUpdate where
+           ManagementWebPropertyUserLinksUpdate
+         where
         type Rs ManagementWebPropertyUserLinksUpdate =
              EntityUserLink
         type Scopes ManagementWebPropertyUserLinksUpdate =
diff --git a/gen/Network/Google/Resource/Analytics/Metadata/Columns/List.hs b/gen/Network/Google/Resource/Analytics/Metadata/Columns/List.hs
--- a/gen/Network/Google/Resource/Analytics/Metadata/Columns/List.hs
+++ b/gen/Network/Google/Resource/Analytics/Metadata/Columns/List.hs
@@ -52,10 +52,13 @@
 -- | Lists all columns for a report type
 --
 -- /See:/ 'metadataColumnsList' smart constructor.
-newtype MetadataColumnsList = MetadataColumnsList'
+newtype MetadataColumnsList =
+  MetadataColumnsList'
     { _mclReportType :: Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'MetadataColumnsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -65,9 +68,8 @@
     :: Text -- ^ 'mclReportType'
     -> MetadataColumnsList
 metadataColumnsList pMclReportType_ =
-    MetadataColumnsList'
-    { _mclReportType = pMclReportType_
-    }
+  MetadataColumnsList' {_mclReportType = pMclReportType_}
+
 
 -- | Report type. Allowed Values: \'ga\'. Where \'ga\' corresponds to the
 -- Core Reporting API
diff --git a/gen/Network/Google/Resource/Analytics/Provisioning/CreateAccountTicket.hs b/gen/Network/Google/Resource/Analytics/Provisioning/CreateAccountTicket.hs
--- a/gen/Network/Google/Resource/Analytics/Provisioning/CreateAccountTicket.hs
+++ b/gen/Network/Google/Resource/Analytics/Provisioning/CreateAccountTicket.hs
@@ -53,10 +53,13 @@
 -- | Creates an account ticket.
 --
 -- /See:/ 'provisioningCreateAccountTicket' smart constructor.
-newtype ProvisioningCreateAccountTicket = ProvisioningCreateAccountTicket'
+newtype ProvisioningCreateAccountTicket =
+  ProvisioningCreateAccountTicket'
     { _pPayload :: AccountTicket
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ProvisioningCreateAccountTicket' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -66,16 +69,16 @@
     :: AccountTicket -- ^ 'pPayload'
     -> ProvisioningCreateAccountTicket
 provisioningCreateAccountTicket pPPayload_ =
-    ProvisioningCreateAccountTicket'
-    { _pPayload = pPPayload_
-    }
+  ProvisioningCreateAccountTicket' {_pPayload = pPPayload_}
 
+
 -- | Multipart request metadata.
 pPayload :: Lens' ProvisioningCreateAccountTicket AccountTicket
 pPayload = lens _pPayload (\ s a -> s{_pPayload = a})
 
 instance GoogleRequest
-         ProvisioningCreateAccountTicket where
+           ProvisioningCreateAccountTicket
+         where
         type Rs ProvisioningCreateAccountTicket =
              AccountTicket
         type Scopes ProvisioningCreateAccountTicket =
diff --git a/gen/Network/Google/Resource/Analytics/Provisioning/CreateAccountTree.hs b/gen/Network/Google/Resource/Analytics/Provisioning/CreateAccountTree.hs
--- a/gen/Network/Google/Resource/Analytics/Provisioning/CreateAccountTree.hs
+++ b/gen/Network/Google/Resource/Analytics/Provisioning/CreateAccountTree.hs
@@ -53,10 +53,13 @@
 -- | Provision account.
 --
 -- /See:/ 'provisioningCreateAccountTree' smart constructor.
-newtype ProvisioningCreateAccountTree = ProvisioningCreateAccountTree'
+newtype ProvisioningCreateAccountTree =
+  ProvisioningCreateAccountTree'
     { _pcatPayload :: AccountTreeRequest
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ProvisioningCreateAccountTree' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -66,9 +69,8 @@
     :: AccountTreeRequest -- ^ 'pcatPayload'
     -> ProvisioningCreateAccountTree
 provisioningCreateAccountTree pPcatPayload_ =
-    ProvisioningCreateAccountTree'
-    { _pcatPayload = pPcatPayload_
-    }
+  ProvisioningCreateAccountTree' {_pcatPayload = pPcatPayload_}
+
 
 -- | Multipart request metadata.
 pcatPayload :: Lens' ProvisioningCreateAccountTree AccountTreeRequest
diff --git a/gen/Network/Google/Resource/Analytics/UserDeletion/UserDeletionRequest/Upsert.hs b/gen/Network/Google/Resource/Analytics/UserDeletion/UserDeletionRequest/Upsert.hs
--- a/gen/Network/Google/Resource/Analytics/UserDeletion/UserDeletionRequest/Upsert.hs
+++ b/gen/Network/Google/Resource/Analytics/UserDeletion/UserDeletionRequest/Upsert.hs
@@ -53,10 +53,13 @@
 -- | Insert or update a user deletion requests.
 --
 -- /See:/ 'userDeletionUserDeletionRequestUpsert' smart constructor.
-newtype UserDeletionUserDeletionRequestUpsert = UserDeletionUserDeletionRequestUpsert'
+newtype UserDeletionUserDeletionRequestUpsert =
+  UserDeletionUserDeletionRequestUpsert'
     { _ududruPayload :: UserDeletionRequest
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UserDeletionUserDeletionRequestUpsert' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -66,10 +69,9 @@
     :: UserDeletionRequest -- ^ 'ududruPayload'
     -> UserDeletionUserDeletionRequestUpsert
 userDeletionUserDeletionRequestUpsert pUdudruPayload_ =
-    UserDeletionUserDeletionRequestUpsert'
-    { _ududruPayload = pUdudruPayload_
-    }
+  UserDeletionUserDeletionRequestUpsert' {_ududruPayload = pUdudruPayload_}
 
+
 -- | Multipart request metadata.
 ududruPayload :: Lens' UserDeletionUserDeletionRequestUpsert UserDeletionRequest
 ududruPayload
@@ -77,7 +79,8 @@
       (\ s a -> s{_ududruPayload = a})
 
 instance GoogleRequest
-         UserDeletionUserDeletionRequestUpsert where
+           UserDeletionUserDeletionRequestUpsert
+         where
         type Rs UserDeletionUserDeletionRequestUpsert =
              UserDeletionRequest
         type Scopes UserDeletionUserDeletionRequestUpsert =
diff --git a/gogol-analytics.cabal b/gogol-analytics.cabal
--- a/gogol-analytics.cabal
+++ b/gogol-analytics.cabal
@@ -1,5 +1,5 @@
 name:                  gogol-analytics
-version:               0.4.0
+version:               0.5.0
 synopsis:              Google Analytics SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -129,5 +129,5 @@
         , Network.Google.Analytics.Types.Sum
 
     build-depends:
-          gogol-core == 0.4.0.*
+          gogol-core == 0.5.0.*
         , base       >= 4.7 && < 5
