{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -fno-warn-duplicate-exports #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- | -- Module : Network.Google.Resource.YouTubeAnalytics.Reports.Query -- Copyright : (c) 2015-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Retrieve your YouTube Analytics reports. -- -- /See:/ for @youtubeAnalytics.reports.query@. module Network.Google.Resource.YouTubeAnalytics.Reports.Query ( -- * REST Resource ReportsQueryResource -- * Creating a Request , reportsQuery , ReportsQuery -- * Request Lenses , rqXgafv , rqMetrics , rqUploadProtocol , rqAccessToken , rqEndDate , rqIncludeHistoricalChannelData , rqFilters , rqUploadType , rqIds , rqStartDate , rqCurrency , rqSort , rqDimensions , rqStartIndex , rqMaxResults , rqCallback ) where import Network.Google.Prelude import Network.Google.YouTubeAnalytics.Types -- | A resource alias for @youtubeAnalytics.reports.query@ method which the -- 'ReportsQuery' request conforms to. type ReportsQueryResource = "v2" :> "reports" :> QueryParam "$.xgafv" Xgafv :> QueryParam "metrics" Text :> QueryParam "upload_protocol" Text :> QueryParam "access_token" Text :> QueryParam "endDate" Text :> QueryParam "includeHistoricalChannelData" Bool :> QueryParam "filters" Text :> QueryParam "uploadType" Text :> QueryParam "ids" Text :> QueryParam "startDate" Text :> QueryParam "currency" Text :> QueryParam "sort" Text :> QueryParam "dimensions" Text :> QueryParam "startIndex" (Textual Int32) :> QueryParam "maxResults" (Textual Int32) :> QueryParam "callback" Text :> QueryParam "alt" AltJSON :> Get '[JSON] QueryResponse -- | Retrieve your YouTube Analytics reports. -- -- /See:/ 'reportsQuery' smart constructor. data ReportsQuery = ReportsQuery' { _rqXgafv :: !(Maybe Xgafv) , _rqMetrics :: !(Maybe Text) , _rqUploadProtocol :: !(Maybe Text) , _rqAccessToken :: !(Maybe Text) , _rqEndDate :: !(Maybe Text) , _rqIncludeHistoricalChannelData :: !(Maybe Bool) , _rqFilters :: !(Maybe Text) , _rqUploadType :: !(Maybe Text) , _rqIds :: !(Maybe Text) , _rqStartDate :: !(Maybe Text) , _rqCurrency :: !(Maybe Text) , _rqSort :: !(Maybe Text) , _rqDimensions :: !(Maybe Text) , _rqStartIndex :: !(Maybe (Textual Int32)) , _rqMaxResults :: !(Maybe (Textual Int32)) , _rqCallback :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'ReportsQuery' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'rqXgafv' -- -- * 'rqMetrics' -- -- * 'rqUploadProtocol' -- -- * 'rqAccessToken' -- -- * 'rqEndDate' -- -- * 'rqIncludeHistoricalChannelData' -- -- * 'rqFilters' -- -- * 'rqUploadType' -- -- * 'rqIds' -- -- * 'rqStartDate' -- -- * 'rqCurrency' -- -- * 'rqSort' -- -- * 'rqDimensions' -- -- * 'rqStartIndex' -- -- * 'rqMaxResults' -- -- * 'rqCallback' reportsQuery :: ReportsQuery reportsQuery = ReportsQuery' { _rqXgafv = Nothing , _rqMetrics = Nothing , _rqUploadProtocol = Nothing , _rqAccessToken = Nothing , _rqEndDate = Nothing , _rqIncludeHistoricalChannelData = Nothing , _rqFilters = Nothing , _rqUploadType = Nothing , _rqIds = Nothing , _rqStartDate = Nothing , _rqCurrency = Nothing , _rqSort = Nothing , _rqDimensions = Nothing , _rqStartIndex = Nothing , _rqMaxResults = Nothing , _rqCallback = Nothing } -- | V1 error format. rqXgafv :: Lens' ReportsQuery (Maybe Xgafv) rqXgafv = lens _rqXgafv (\ s a -> s{_rqXgafv = a}) -- | A comma-separated list of YouTube Analytics metrics, such as \`views\` -- or \`likes,dislikes\`. See the [Available -- Reports](\/youtube\/analytics\/v2\/available_reports) document for a -- list of the reports that you can retrieve and the metrics available in -- each report, and see the -- [Metrics](\/youtube\/analytics\/v2\/dimsmets\/mets) document for -- definitions of those metrics. required: true, pattern: [0-9a-zA-Z,]+ rqMetrics :: Lens' ReportsQuery (Maybe Text) rqMetrics = lens _rqMetrics (\ s a -> s{_rqMetrics = a}) -- | Upload protocol for media (e.g. \"raw\", \"multipart\"). rqUploadProtocol :: Lens' ReportsQuery (Maybe Text) rqUploadProtocol = lens _rqUploadProtocol (\ s a -> s{_rqUploadProtocol = a}) -- | OAuth access token. rqAccessToken :: Lens' ReportsQuery (Maybe Text) rqAccessToken = lens _rqAccessToken (\ s a -> s{_rqAccessToken = a}) -- | The end date for fetching YouTube Analytics data. The value should be in -- \`YYYY-MM-DD\` format. required: true, pattern: -- [0-9]{4}-[0-9]{2}-[0-9]{2} rqEndDate :: Lens' ReportsQuery (Maybe Text) rqEndDate = lens _rqEndDate (\ s a -> s{_rqEndDate = a}) -- | If set to true historical data (i.e. channel data from before the -- linking of the channel to the content owner) will be retrieved.\", rqIncludeHistoricalChannelData :: Lens' ReportsQuery (Maybe Bool) rqIncludeHistoricalChannelData = lens _rqIncludeHistoricalChannelData (\ s a -> s{_rqIncludeHistoricalChannelData = a}) -- | A list of filters that should be applied when retrieving YouTube -- Analytics data. The [Available -- Reports](\/youtube\/analytics\/v2\/available_reports) document -- identifies the dimensions that can be used to filter each report, and -- the [Dimensions](\/youtube\/analytics\/v2\/dimsmets\/dims) document -- defines those dimensions. If a request uses multiple filters, join them -- together with a semicolon (\`;\`), and the returned result table will -- satisfy both filters. For example, a filters parameter value of -- \`video==dMH0bHeiRNg;country==IT\` restricts the result set to include -- data for the given video in Italy.\", rqFilters :: Lens' ReportsQuery (Maybe Text) rqFilters = lens _rqFilters (\ s a -> s{_rqFilters = a}) -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\"). rqUploadType :: Lens' ReportsQuery (Maybe Text) rqUploadType = lens _rqUploadType (\ s a -> s{_rqUploadType = a}) -- | Identifies the YouTube channel or content owner for which you are -- retrieving YouTube Analytics data. - To request data for a YouTube user, -- set the \`ids\` parameter value to \`channel==CHANNEL_ID\`, where -- \`CHANNEL_ID\` specifies the unique YouTube channel ID. - To request -- data for a YouTube CMS content owner, set the \`ids\` parameter value to -- \`contentOwner==OWNER_NAME\`, where \`OWNER_NAME\` is the CMS name of -- the content owner. required: true, pattern: [a-zA-Z]+==[a-zA-Z0-9_+-]+ rqIds :: Lens' ReportsQuery (Maybe Text) rqIds = lens _rqIds (\ s a -> s{_rqIds = a}) -- | The start date for fetching YouTube Analytics data. The value should be -- in \`YYYY-MM-DD\` format. required: true, pattern: -- \"[0-9]{4}-[0-9]{2}-[0-9]{2} rqStartDate :: Lens' ReportsQuery (Maybe Text) rqStartDate = lens _rqStartDate (\ s a -> s{_rqStartDate = a}) -- | The currency to which financial metrics should be converted. The default -- is US Dollar (USD). If the result contains no financial metrics, this -- flag will be ignored. Responds with an error if the specified currency -- is not recognized.\", pattern: [A-Z]{3} rqCurrency :: Lens' ReportsQuery (Maybe Text) rqCurrency = lens _rqCurrency (\ s a -> s{_rqCurrency = a}) -- | A comma-separated list of dimensions or metrics that determine the sort -- order for YouTube Analytics data. By default the sort order is -- ascending. The \'\`-\`\' prefix causes descending sort order.\", -- pattern: [-0-9a-zA-Z,]+ rqSort :: Lens' ReportsQuery (Maybe Text) rqSort = lens _rqSort (\ s a -> s{_rqSort = a}) -- | A comma-separated list of YouTube Analytics dimensions, such as -- \`views\` or \`ageGroup,gender\`. See the [Available -- Reports](\/youtube\/analytics\/v2\/available_reports) document for a -- list of the reports that you can retrieve and the dimensions used for -- those reports. Also see the -- [Dimensions](\/youtube\/analytics\/v2\/dimsmets\/dims) document for -- definitions of those dimensions.\" pattern: [0-9a-zA-Z,]+ rqDimensions :: Lens' ReportsQuery (Maybe Text) rqDimensions = lens _rqDimensions (\ s a -> s{_rqDimensions = a}) -- | An index of the first entity to retrieve. Use this parameter as a -- pagination mechanism along with the max-results parameter (one-based, -- inclusive).\", minValue: 1 rqStartIndex :: Lens' ReportsQuery (Maybe Int32) rqStartIndex = lens _rqStartIndex (\ s a -> s{_rqStartIndex = a}) . mapping _Coerce -- | The maximum number of rows to include in the response.\", minValue: 1 rqMaxResults :: Lens' ReportsQuery (Maybe Int32) rqMaxResults = lens _rqMaxResults (\ s a -> s{_rqMaxResults = a}) . mapping _Coerce -- | JSONP rqCallback :: Lens' ReportsQuery (Maybe Text) rqCallback = lens _rqCallback (\ s a -> s{_rqCallback = a}) instance GoogleRequest ReportsQuery where type Rs ReportsQuery = QueryResponse type Scopes ReportsQuery = '["https://www.googleapis.com/auth/youtube", "https://www.googleapis.com/auth/youtube.readonly", "https://www.googleapis.com/auth/youtubepartner", "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly"] requestClient ReportsQuery'{..} = go _rqXgafv _rqMetrics _rqUploadProtocol _rqAccessToken _rqEndDate _rqIncludeHistoricalChannelData _rqFilters _rqUploadType _rqIds _rqStartDate _rqCurrency _rqSort _rqDimensions _rqStartIndex _rqMaxResults _rqCallback (Just AltJSON) youTubeAnalyticsService where go = buildClient (Proxy :: Proxy ReportsQueryResource) mempty