-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google YouTube Reporting SDK.
--   
--   Schedules reporting jobs containing your YouTube Analytics data and
--   downloads the resulting bulk data reports in the form of CSV files.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v1</tt> of the API.
@package gogol-youtube-reporting
@version 0.3.0


module Network.Google.YouTubeReporting.Types

-- | Default request referring to version <tt>v1</tt> of the YouTube
--   Reporting API. This contains the host and root path used as a starting
--   point for constructing service requests.
youTubeReportingService :: ServiceConfig

-- | View YouTube Analytics reports for your YouTube content
youTubeAnalyticsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/yt-analytics.readonly"]

-- | View monetary and non-monetary YouTube Analytics reports for your
--   YouTube content
youTubeAnalyticsMonetaryReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/yt-analytics-monetary.readonly"]

-- | Response message for ReportingService.ListReports.
--   
--   <i>See:</i> <a>listReportsResponse</a> smart constructor.
data ListReportsResponse

-- | Creates a value of <a>ListReportsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrrNextPageToken</a></li>
--   <li><a>lrrReports</a></li>
--   </ul>
listReportsResponse :: ListReportsResponse

-- | A token to retrieve next page of results. Pass this value in the
--   ListReportsRequest.page_token field in the subsequent call to
--   `ListReports` method to retrieve the next page of results.
lrrNextPageToken :: Lens' ListReportsResponse (Maybe Text)

-- | The list of report types.
lrrReports :: Lens' ListReportsResponse [Report]

-- | A generic empty message that you can re-use to avoid defining
--   duplicated empty messages in your APIs. A typical example is to use it
--   as the request or the response type of an API method. For instance:
--   service Foo { rpc Bar(google.protobuf.Empty) returns
--   (google.protobuf.Empty); } The JSON representation for `Empty` is
--   empty JSON object `{}`.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | A report's metadata including the URL from which the report itself can
--   be downloaded.
--   
--   <i>See:</i> <a>report</a> smart constructor.
data Report

-- | Creates a value of <a>Report</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rJobId</a></li>
--   <li><a>rStartTime</a></li>
--   <li><a>rDownloadURL</a></li>
--   <li><a>rEndTime</a></li>
--   <li><a>rId</a></li>
--   <li><a>rCreateTime</a></li>
--   <li><a>rJobExpireTime</a></li>
--   </ul>
report :: Report

-- | The ID of the job that created this report.
rJobId :: Lens' Report (Maybe Text)

-- | The start of the time period that the report instance covers. The
--   value is inclusive.
rStartTime :: Lens' Report (Maybe UTCTime)

-- | The URL from which the report can be downloaded (max. 1000
--   characters).
rDownloadURL :: Lens' Report (Maybe Text)

-- | The end of the time period that the report instance covers. The value
--   is exclusive.
rEndTime :: Lens' Report (Maybe UTCTime)

-- | The server-generated ID of the report.
rId :: Lens' Report (Maybe Text)

-- | The date/time when this report was created.
rCreateTime :: Lens' Report (Maybe UTCTime)

-- | The date/time when the job this report belongs to will expire/expired.
rJobExpireTime :: Lens' Report (Maybe UTCTime)

-- | Response message for ReportingService.ListReportTypes.
--   
--   <i>See:</i> <a>listReportTypesResponse</a> smart constructor.
data ListReportTypesResponse

-- | Creates a value of <a>ListReportTypesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrtrNextPageToken</a></li>
--   <li><a>lrtrReportTypes</a></li>
--   </ul>
listReportTypesResponse :: ListReportTypesResponse

-- | A token to retrieve next page of results. Pass this value in the
--   ListReportTypesRequest.page_token field in the subsequent call to
--   `ListReportTypes` method to retrieve the next page of results.
lrtrNextPageToken :: Lens' ListReportTypesResponse (Maybe Text)

-- | The list of report types.
lrtrReportTypes :: Lens' ListReportTypesResponse [ReportType]

-- | Media resource.
--   
--   <i>See:</i> <a>media</a> smart constructor.
data Media

-- | Creates a value of <a>Media</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mResourceName</a></li>
--   </ul>
media :: Media

-- | Name of the media resource.
mResourceName :: Lens' Media (Maybe Text)

-- | A job creating reports of a specific type.
--   
--   <i>See:</i> <a>job</a> smart constructor.
data Job

-- | Creates a value of <a>Job</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jName</a></li>
--   <li><a>jId</a></li>
--   <li><a>jSystemManaged</a></li>
--   <li><a>jReportTypeId</a></li>
--   <li><a>jExpireTime</a></li>
--   <li><a>jCreateTime</a></li>
--   </ul>
job :: Job

-- | The name of the job (max. 100 characters).
jName :: Lens' Job (Maybe Text)

-- | The server-generated ID of the job (max. 40 characters).
jId :: Lens' Job (Maybe Text)

-- | True if this a system-managed job that cannot be modified by the user;
--   otherwise false.
jSystemManaged :: Lens' Job (Maybe Bool)

-- | The type of reports this job creates. Corresponds to the ID of a
--   ReportType.
jReportTypeId :: Lens' Job (Maybe Text)

-- | The date/time when this job will expire/expired. After a job expired,
--   no new reports are generated.
jExpireTime :: Lens' Job (Maybe UTCTime)

-- | The creation date/time of the job.
jCreateTime :: Lens' Job (Maybe UTCTime)

-- | V1 error format.
data Xgafv

-- | <tt>1</tt> v1 error format
X1 :: Xgafv

-- | <tt>2</tt> v2 error format
X2 :: Xgafv

-- | Response message for ReportingService.ListJobs.
--   
--   <i>See:</i> <a>listJobsResponse</a> smart constructor.
data ListJobsResponse

-- | Creates a value of <a>ListJobsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ljrNextPageToken</a></li>
--   <li><a>ljrJobs</a></li>
--   </ul>
listJobsResponse :: ListJobsResponse

-- | A token to retrieve next page of results. Pass this value in the
--   ListJobsRequest.page_token field in the subsequent call to `ListJobs`
--   method to retrieve the next page of results.
ljrNextPageToken :: Lens' ListJobsResponse (Maybe Text)

-- | The list of jobs.
ljrJobs :: Lens' ListJobsResponse [Job]

-- | A report type.
--   
--   <i>See:</i> <a>reportType</a> smart constructor.
data ReportType

-- | Creates a value of <a>ReportType</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtName</a></li>
--   <li><a>rtId</a></li>
--   <li><a>rtDeprecateTime</a></li>
--   <li><a>rtSystemManaged</a></li>
--   </ul>
reportType :: ReportType

-- | The name of the report type (max. 100 characters).
rtName :: Lens' ReportType (Maybe Text)

-- | The ID of the report type (max. 100 characters).
rtId :: Lens' ReportType (Maybe Text)

-- | The date/time when this report type was/will be deprecated.
rtDeprecateTime :: Lens' ReportType (Maybe UTCTime)

-- | True if this a system-managed report type; otherwise false. Reporting
--   jobs for system-managed report types are created automatically and can
--   thus not be used in the `CreateJob` method.
rtSystemManaged :: Lens' ReportType (Maybe Bool)


-- | Lists report types.
--   
--   <i>See:</i> <a>YouTube Reporting API Reference</a> for
--   <tt>youtubereporting.reportTypes.list</tt>.
module Network.Google.Resource.YouTubeReporting.ReportTypes.List

-- | A resource alias for <tt>youtubereporting.reportTypes.list</tt> method
--   which the <a>ReportTypesList</a> request conforms to.
type ReportTypesListResource = "v1" :> ("reportTypes" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "includeSystemManaged" Bool :> (QueryParam "onBehalfOfContentOwner" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListReportTypesResponse)))))))))))))

-- | Creates a value of <a>ReportTypesList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtlXgafv</a></li>
--   <li><a>rtlUploadProtocol</a></li>
--   <li><a>rtlPp</a></li>
--   <li><a>rtlAccessToken</a></li>
--   <li><a>rtlUploadType</a></li>
--   <li><a>rtlIncludeSystemManaged</a></li>
--   <li><a>rtlOnBehalfOfContentOwner</a></li>
--   <li><a>rtlBearerToken</a></li>
--   <li><a>rtlPageToken</a></li>
--   <li><a>rtlPageSize</a></li>
--   <li><a>rtlCallback</a></li>
--   </ul>
reportTypesList :: ReportTypesList

-- | Lists report types.
--   
--   <i>See:</i> <a>reportTypesList</a> smart constructor.
data ReportTypesList

-- | V1 error format.
rtlXgafv :: Lens' ReportTypesList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
rtlUploadProtocol :: Lens' ReportTypesList (Maybe Text)

-- | Pretty-print response.
rtlPp :: Lens' ReportTypesList Bool

-- | OAuth access token.
rtlAccessToken :: Lens' ReportTypesList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
rtlUploadType :: Lens' ReportTypesList (Maybe Text)

-- | If set to true, also system-managed report types will be returned;
--   otherwise only the report types that can be used to create new
--   reporting jobs will be returned.
rtlIncludeSystemManaged :: Lens' ReportTypesList (Maybe Bool)

-- | The content owner's external ID on which behalf the user is acting on.
--   If not set, the user is acting for himself (his own channel).
rtlOnBehalfOfContentOwner :: Lens' ReportTypesList (Maybe Text)

-- | OAuth bearer token.
rtlBearerToken :: Lens' ReportTypesList (Maybe Text)

-- | A token identifying a page of results the server should return.
--   Typically, this is the value of
--   ListReportTypesResponse.next_page_token returned in response to the
--   previous call to the `ListReportTypes` method.
rtlPageToken :: Lens' ReportTypesList (Maybe Text)

-- | Requested page size. Server may return fewer report types than
--   requested. If unspecified, server will pick an appropriate default.
rtlPageSize :: Lens' ReportTypesList (Maybe Int32)

-- | JSONP
rtlCallback :: Lens' ReportTypesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.YouTubeReporting.ReportTypes.List.ReportTypesList
instance Data.Data.Data Network.Google.Resource.YouTubeReporting.ReportTypes.List.ReportTypesList
instance GHC.Show.Show Network.Google.Resource.YouTubeReporting.ReportTypes.List.ReportTypesList
instance GHC.Classes.Eq Network.Google.Resource.YouTubeReporting.ReportTypes.List.ReportTypesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.YouTubeReporting.ReportTypes.List.ReportTypesList


-- | Method for media download. Download is supported on the URI
--   `/v1/media/{+name}?alt=media`.
--   
--   <i>See:</i> <a>YouTube Reporting API Reference</a> for
--   <tt>youtubereporting.media.download</tt>.
module Network.Google.Resource.YouTubeReporting.Media.Download

-- | A resource alias for <tt>youtubereporting.media.download</tt> method
--   which the <a>MediaDownload'</a> request conforms to.
type MediaDownloadResource = ("v1" :> ("media" :> (Capture "resourceName" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Media))))))))))) :<|> ("v1" :> ("media" :> (Capture "resourceName" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltMedia :> Get '[OctetStream] Stream)))))))))))

-- | Creates a value of <a>MediaDownload</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdXgafv</a></li>
--   <li><a>mdUploadProtocol</a></li>
--   <li><a>mdResourceName</a></li>
--   <li><a>mdPp</a></li>
--   <li><a>mdAccessToken</a></li>
--   <li><a>mdUploadType</a></li>
--   <li><a>mdBearerToken</a></li>
--   <li><a>mdCallback</a></li>
--   </ul>
mediaDownload :: Text -> MediaDownload'

-- | Method for media download. Download is supported on the URI
--   `/v1/media/{+name}?alt=media`.
--   
--   <i>See:</i> <a>mediaDownload</a> smart constructor.
data MediaDownload'

-- | V1 error format.
mdXgafv :: Lens' MediaDownload' (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
mdUploadProtocol :: Lens' MediaDownload' (Maybe Text)

-- | Name of the media that is being downloaded. See
--   ReadRequest.resource_name.
mdResourceName :: Lens' MediaDownload' Text

-- | Pretty-print response.
mdPp :: Lens' MediaDownload' Bool

-- | OAuth access token.
mdAccessToken :: Lens' MediaDownload' (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
mdUploadType :: Lens' MediaDownload' (Maybe Text)

-- | OAuth bearer token.
mdBearerToken :: Lens' MediaDownload' (Maybe Text)

-- | JSONP
mdCallback :: Lens' MediaDownload' (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.YouTubeReporting.Media.Download.MediaDownload'
instance Data.Data.Data Network.Google.Resource.YouTubeReporting.Media.Download.MediaDownload'
instance GHC.Show.Show Network.Google.Resource.YouTubeReporting.Media.Download.MediaDownload'
instance GHC.Classes.Eq Network.Google.Resource.YouTubeReporting.Media.Download.MediaDownload'
instance Network.Google.Types.GoogleRequest Network.Google.Resource.YouTubeReporting.Media.Download.MediaDownload'
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaDownload Network.Google.Resource.YouTubeReporting.Media.Download.MediaDownload')


-- | Lists reports created by a specific job. Returns NOT_FOUND if the job
--   does not exist.
--   
--   <i>See:</i> <a>YouTube Reporting API Reference</a> for
--   <tt>youtubereporting.jobs.reports.list</tt>.
module Network.Google.Resource.YouTubeReporting.Jobs.Reports.List

-- | A resource alias for <tt>youtubereporting.jobs.reports.list</tt>
--   method which the <a>JobsReportsList</a> request conforms to.
type JobsReportsListResource = "v1" :> ("jobs" :> (Capture "jobId" Text :> ("reports" :> (QueryParam "createdAfter" DateTime' :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "startTimeAtOrAfter" DateTime' :> (QueryParam "startTimeBefore" DateTime' :> (QueryParam "onBehalfOfContentOwner" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListReportsResponse)))))))))))))))))

-- | Creates a value of <a>JobsReportsList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jrlCreatedAfter</a></li>
--   <li><a>jrlXgafv</a></li>
--   <li><a>jrlJobId</a></li>
--   <li><a>jrlUploadProtocol</a></li>
--   <li><a>jrlPp</a></li>
--   <li><a>jrlAccessToken</a></li>
--   <li><a>jrlUploadType</a></li>
--   <li><a>jrlStartTimeAtOrAfter</a></li>
--   <li><a>jrlStartTimeBefore</a></li>
--   <li><a>jrlOnBehalfOfContentOwner</a></li>
--   <li><a>jrlBearerToken</a></li>
--   <li><a>jrlPageToken</a></li>
--   <li><a>jrlPageSize</a></li>
--   <li><a>jrlCallback</a></li>
--   </ul>
jobsReportsList :: Text -> JobsReportsList

-- | Lists reports created by a specific job. Returns NOT_FOUND if the job
--   does not exist.
--   
--   <i>See:</i> <a>jobsReportsList</a> smart constructor.
data JobsReportsList

-- | If set, only reports created after the specified date/time are
--   returned.
jrlCreatedAfter :: Lens' JobsReportsList (Maybe UTCTime)

-- | V1 error format.
jrlXgafv :: Lens' JobsReportsList (Maybe Xgafv)

-- | The ID of the job.
jrlJobId :: Lens' JobsReportsList Text

-- | Upload protocol for media (e.g. "raw", "multipart").
jrlUploadProtocol :: Lens' JobsReportsList (Maybe Text)

-- | Pretty-print response.
jrlPp :: Lens' JobsReportsList Bool

-- | OAuth access token.
jrlAccessToken :: Lens' JobsReportsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
jrlUploadType :: Lens' JobsReportsList (Maybe Text)

-- | If set, only reports whose start time is greater than or equal the
--   specified date/time are returned.
jrlStartTimeAtOrAfter :: Lens' JobsReportsList (Maybe UTCTime)

-- | If set, only reports whose start time is smaller than the specified
--   date/time are returned.
jrlStartTimeBefore :: Lens' JobsReportsList (Maybe UTCTime)

-- | The content owner's external ID on which behalf the user is acting on.
--   If not set, the user is acting for himself (his own channel).
jrlOnBehalfOfContentOwner :: Lens' JobsReportsList (Maybe Text)

-- | OAuth bearer token.
jrlBearerToken :: Lens' JobsReportsList (Maybe Text)

-- | A token identifying a page of results the server should return.
--   Typically, this is the value of ListReportsResponse.next_page_token
--   returned in response to the previous call to the `ListReports` method.
jrlPageToken :: Lens' JobsReportsList (Maybe Text)

-- | Requested page size. Server may return fewer report types than
--   requested. If unspecified, server will pick an appropriate default.
jrlPageSize :: Lens' JobsReportsList (Maybe Int32)

-- | JSONP
jrlCallback :: Lens' JobsReportsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.YouTubeReporting.Jobs.Reports.List.JobsReportsList
instance Data.Data.Data Network.Google.Resource.YouTubeReporting.Jobs.Reports.List.JobsReportsList
instance GHC.Show.Show Network.Google.Resource.YouTubeReporting.Jobs.Reports.List.JobsReportsList
instance GHC.Classes.Eq Network.Google.Resource.YouTubeReporting.Jobs.Reports.List.JobsReportsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.YouTubeReporting.Jobs.Reports.List.JobsReportsList


-- | Gets the metadata of a specific report.
--   
--   <i>See:</i> <a>YouTube Reporting API Reference</a> for
--   <tt>youtubereporting.jobs.reports.get</tt>.
module Network.Google.Resource.YouTubeReporting.Jobs.Reports.Get

-- | A resource alias for <tt>youtubereporting.jobs.reports.get</tt> method
--   which the <a>JobsReportsGet</a> request conforms to.
type JobsReportsGetResource = "v1" :> ("jobs" :> (Capture "jobId" Text :> ("reports" :> (Capture "reportId" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "onBehalfOfContentOwner" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Report)))))))))))))

-- | Creates a value of <a>JobsReportsGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jrgXgafv</a></li>
--   <li><a>jrgJobId</a></li>
--   <li><a>jrgUploadProtocol</a></li>
--   <li><a>jrgPp</a></li>
--   <li><a>jrgAccessToken</a></li>
--   <li><a>jrgReportId</a></li>
--   <li><a>jrgUploadType</a></li>
--   <li><a>jrgOnBehalfOfContentOwner</a></li>
--   <li><a>jrgBearerToken</a></li>
--   <li><a>jrgCallback</a></li>
--   </ul>
jobsReportsGet :: Text -> Text -> JobsReportsGet

-- | Gets the metadata of a specific report.
--   
--   <i>See:</i> <a>jobsReportsGet</a> smart constructor.
data JobsReportsGet

-- | V1 error format.
jrgXgafv :: Lens' JobsReportsGet (Maybe Xgafv)

-- | The ID of the job.
jrgJobId :: Lens' JobsReportsGet Text

-- | Upload protocol for media (e.g. "raw", "multipart").
jrgUploadProtocol :: Lens' JobsReportsGet (Maybe Text)

-- | Pretty-print response.
jrgPp :: Lens' JobsReportsGet Bool

-- | OAuth access token.
jrgAccessToken :: Lens' JobsReportsGet (Maybe Text)

-- | The ID of the report to retrieve.
jrgReportId :: Lens' JobsReportsGet Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
jrgUploadType :: Lens' JobsReportsGet (Maybe Text)

-- | The content owner's external ID on which behalf the user is acting on.
--   If not set, the user is acting for himself (his own channel).
jrgOnBehalfOfContentOwner :: Lens' JobsReportsGet (Maybe Text)

-- | OAuth bearer token.
jrgBearerToken :: Lens' JobsReportsGet (Maybe Text)

-- | JSONP
jrgCallback :: Lens' JobsReportsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.YouTubeReporting.Jobs.Reports.Get.JobsReportsGet
instance Data.Data.Data Network.Google.Resource.YouTubeReporting.Jobs.Reports.Get.JobsReportsGet
instance GHC.Show.Show Network.Google.Resource.YouTubeReporting.Jobs.Reports.Get.JobsReportsGet
instance GHC.Classes.Eq Network.Google.Resource.YouTubeReporting.Jobs.Reports.Get.JobsReportsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.YouTubeReporting.Jobs.Reports.Get.JobsReportsGet


-- | Lists jobs.
--   
--   <i>See:</i> <a>YouTube Reporting API Reference</a> for
--   <tt>youtubereporting.jobs.list</tt>.
module Network.Google.Resource.YouTubeReporting.Jobs.List

-- | A resource alias for <tt>youtubereporting.jobs.list</tt> method which
--   the <a>JobsList</a> request conforms to.
type JobsListResource = "v1" :> ("jobs" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "includeSystemManaged" Bool :> (QueryParam "onBehalfOfContentOwner" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListJobsResponse)))))))))))))

-- | Creates a value of <a>JobsList</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlXgafv</a></li>
--   <li><a>jlUploadProtocol</a></li>
--   <li><a>jlPp</a></li>
--   <li><a>jlAccessToken</a></li>
--   <li><a>jlUploadType</a></li>
--   <li><a>jlIncludeSystemManaged</a></li>
--   <li><a>jlOnBehalfOfContentOwner</a></li>
--   <li><a>jlBearerToken</a></li>
--   <li><a>jlPageToken</a></li>
--   <li><a>jlPageSize</a></li>
--   <li><a>jlCallback</a></li>
--   </ul>
jobsList :: JobsList

-- | Lists jobs.
--   
--   <i>See:</i> <a>jobsList</a> smart constructor.
data JobsList

-- | V1 error format.
jlXgafv :: Lens' JobsList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
jlUploadProtocol :: Lens' JobsList (Maybe Text)

-- | Pretty-print response.
jlPp :: Lens' JobsList Bool

-- | OAuth access token.
jlAccessToken :: Lens' JobsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
jlUploadType :: Lens' JobsList (Maybe Text)

-- | If set to true, also system-managed jobs will be returned; otherwise
--   only user-created jobs will be returned. System-managed jobs can
--   neither be modified nor deleted.
jlIncludeSystemManaged :: Lens' JobsList (Maybe Bool)

-- | The content owner's external ID on which behalf the user is acting on.
--   If not set, the user is acting for himself (his own channel).
jlOnBehalfOfContentOwner :: Lens' JobsList (Maybe Text)

-- | OAuth bearer token.
jlBearerToken :: Lens' JobsList (Maybe Text)

-- | A token identifying a page of results the server should return.
--   Typically, this is the value of
--   ListReportTypesResponse.next_page_token returned in response to the
--   previous call to the `ListJobs` method.
jlPageToken :: Lens' JobsList (Maybe Text)

-- | Requested page size. Server may return fewer jobs than requested. If
--   unspecified, server will pick an appropriate default.
jlPageSize :: Lens' JobsList (Maybe Int32)

-- | JSONP
jlCallback :: Lens' JobsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.YouTubeReporting.Jobs.List.JobsList
instance Data.Data.Data Network.Google.Resource.YouTubeReporting.Jobs.List.JobsList
instance GHC.Show.Show Network.Google.Resource.YouTubeReporting.Jobs.List.JobsList
instance GHC.Classes.Eq Network.Google.Resource.YouTubeReporting.Jobs.List.JobsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.YouTubeReporting.Jobs.List.JobsList


-- | Gets a job.
--   
--   <i>See:</i> <a>YouTube Reporting API Reference</a> for
--   <tt>youtubereporting.jobs.get</tt>.
module Network.Google.Resource.YouTubeReporting.Jobs.Get

-- | A resource alias for <tt>youtubereporting.jobs.get</tt> method which
--   the <a>JobsGet</a> request conforms to.
type JobsGetResource = "v1" :> ("jobs" :> (Capture "jobId" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "onBehalfOfContentOwner" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Job)))))))))))

-- | Creates a value of <a>JobsGet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jgXgafv</a></li>
--   <li><a>jgJobId</a></li>
--   <li><a>jgUploadProtocol</a></li>
--   <li><a>jgPp</a></li>
--   <li><a>jgAccessToken</a></li>
--   <li><a>jgUploadType</a></li>
--   <li><a>jgOnBehalfOfContentOwner</a></li>
--   <li><a>jgBearerToken</a></li>
--   <li><a>jgCallback</a></li>
--   </ul>
jobsGet :: Text -> JobsGet

-- | Gets a job.
--   
--   <i>See:</i> <a>jobsGet</a> smart constructor.
data JobsGet

-- | V1 error format.
jgXgafv :: Lens' JobsGet (Maybe Xgafv)

-- | The ID of the job to retrieve.
jgJobId :: Lens' JobsGet Text

-- | Upload protocol for media (e.g. "raw", "multipart").
jgUploadProtocol :: Lens' JobsGet (Maybe Text)

-- | Pretty-print response.
jgPp :: Lens' JobsGet Bool

-- | OAuth access token.
jgAccessToken :: Lens' JobsGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
jgUploadType :: Lens' JobsGet (Maybe Text)

-- | The content owner's external ID on which behalf the user is acting on.
--   If not set, the user is acting for himself (his own channel).
jgOnBehalfOfContentOwner :: Lens' JobsGet (Maybe Text)

-- | OAuth bearer token.
jgBearerToken :: Lens' JobsGet (Maybe Text)

-- | JSONP
jgCallback :: Lens' JobsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.YouTubeReporting.Jobs.Get.JobsGet
instance Data.Data.Data Network.Google.Resource.YouTubeReporting.Jobs.Get.JobsGet
instance GHC.Show.Show Network.Google.Resource.YouTubeReporting.Jobs.Get.JobsGet
instance GHC.Classes.Eq Network.Google.Resource.YouTubeReporting.Jobs.Get.JobsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.YouTubeReporting.Jobs.Get.JobsGet


-- | Deletes a job.
--   
--   <i>See:</i> <a>YouTube Reporting API Reference</a> for
--   <tt>youtubereporting.jobs.delete</tt>.
module Network.Google.Resource.YouTubeReporting.Jobs.Delete

-- | A resource alias for <tt>youtubereporting.jobs.delete</tt> method
--   which the <a>JobsDelete</a> request conforms to.
type JobsDeleteResource = "v1" :> ("jobs" :> (Capture "jobId" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "onBehalfOfContentOwner" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty)))))))))))

-- | Creates a value of <a>JobsDelete</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jdXgafv</a></li>
--   <li><a>jdJobId</a></li>
--   <li><a>jdUploadProtocol</a></li>
--   <li><a>jdPp</a></li>
--   <li><a>jdAccessToken</a></li>
--   <li><a>jdUploadType</a></li>
--   <li><a>jdOnBehalfOfContentOwner</a></li>
--   <li><a>jdBearerToken</a></li>
--   <li><a>jdCallback</a></li>
--   </ul>
jobsDelete :: Text -> JobsDelete

-- | Deletes a job.
--   
--   <i>See:</i> <a>jobsDelete</a> smart constructor.
data JobsDelete

-- | V1 error format.
jdXgafv :: Lens' JobsDelete (Maybe Xgafv)

-- | The ID of the job to delete.
jdJobId :: Lens' JobsDelete Text

-- | Upload protocol for media (e.g. "raw", "multipart").
jdUploadProtocol :: Lens' JobsDelete (Maybe Text)

-- | Pretty-print response.
jdPp :: Lens' JobsDelete Bool

-- | OAuth access token.
jdAccessToken :: Lens' JobsDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
jdUploadType :: Lens' JobsDelete (Maybe Text)

-- | The content owner's external ID on which behalf the user is acting on.
--   If not set, the user is acting for himself (his own channel).
jdOnBehalfOfContentOwner :: Lens' JobsDelete (Maybe Text)

-- | OAuth bearer token.
jdBearerToken :: Lens' JobsDelete (Maybe Text)

-- | JSONP
jdCallback :: Lens' JobsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.YouTubeReporting.Jobs.Delete.JobsDelete
instance Data.Data.Data Network.Google.Resource.YouTubeReporting.Jobs.Delete.JobsDelete
instance GHC.Show.Show Network.Google.Resource.YouTubeReporting.Jobs.Delete.JobsDelete
instance GHC.Classes.Eq Network.Google.Resource.YouTubeReporting.Jobs.Delete.JobsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.YouTubeReporting.Jobs.Delete.JobsDelete


-- | Creates a job and returns it.
--   
--   <i>See:</i> <a>YouTube Reporting API Reference</a> for
--   <tt>youtubereporting.jobs.create</tt>.
module Network.Google.Resource.YouTubeReporting.Jobs.Create

-- | A resource alias for <tt>youtubereporting.jobs.create</tt> method
--   which the <a>JobsCreate</a> request conforms to.
type JobsCreateResource = "v1" :> ("jobs" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "onBehalfOfContentOwner" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Job :> Post '[JSON] Job)))))))))))

-- | Creates a value of <a>JobsCreate</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jcXgafv</a></li>
--   <li><a>jcUploadProtocol</a></li>
--   <li><a>jcPp</a></li>
--   <li><a>jcAccessToken</a></li>
--   <li><a>jcUploadType</a></li>
--   <li><a>jcPayload</a></li>
--   <li><a>jcOnBehalfOfContentOwner</a></li>
--   <li><a>jcBearerToken</a></li>
--   <li><a>jcCallback</a></li>
--   </ul>
jobsCreate :: Job -> JobsCreate

-- | Creates a job and returns it.
--   
--   <i>See:</i> <a>jobsCreate</a> smart constructor.
data JobsCreate

-- | V1 error format.
jcXgafv :: Lens' JobsCreate (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
jcUploadProtocol :: Lens' JobsCreate (Maybe Text)

-- | Pretty-print response.
jcPp :: Lens' JobsCreate Bool

-- | OAuth access token.
jcAccessToken :: Lens' JobsCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
jcUploadType :: Lens' JobsCreate (Maybe Text)

-- | Multipart request metadata.
jcPayload :: Lens' JobsCreate Job

-- | The content owner's external ID on which behalf the user is acting on.
--   If not set, the user is acting for himself (his own channel).
jcOnBehalfOfContentOwner :: Lens' JobsCreate (Maybe Text)

-- | OAuth bearer token.
jcBearerToken :: Lens' JobsCreate (Maybe Text)

-- | JSONP
jcCallback :: Lens' JobsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.YouTubeReporting.Jobs.Create.JobsCreate
instance Data.Data.Data Network.Google.Resource.YouTubeReporting.Jobs.Create.JobsCreate
instance GHC.Show.Show Network.Google.Resource.YouTubeReporting.Jobs.Create.JobsCreate
instance GHC.Classes.Eq Network.Google.Resource.YouTubeReporting.Jobs.Create.JobsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.YouTubeReporting.Jobs.Create.JobsCreate


-- | Schedules reporting jobs containing your YouTube Analytics data and
--   downloads the resulting bulk data reports in the form of CSV files.
--   
--   <i>See:</i> <a>YouTube Reporting API Reference</a>
module Network.Google.YouTubeReporting

-- | Default request referring to version <tt>v1</tt> of the YouTube
--   Reporting API. This contains the host and root path used as a starting
--   point for constructing service requests.
youTubeReportingService :: ServiceConfig

-- | View YouTube Analytics reports for your YouTube content
youTubeAnalyticsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/yt-analytics.readonly"]

-- | View monetary and non-monetary YouTube Analytics reports for your
--   YouTube content
youTubeAnalyticsMonetaryReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/yt-analytics-monetary.readonly"]

-- | Represents the entirety of the methods and resources available for the
--   YouTube Reporting API service.
type YouTubeReportingAPI = JobsReportsListResource :<|> (JobsReportsGetResource :<|> (JobsListResource :<|> (JobsGetResource :<|> (JobsCreateResource :<|> (JobsDeleteResource :<|> (MediaDownloadResource :<|> ReportTypesListResource))))))

-- | Response message for ReportingService.ListReports.
--   
--   <i>See:</i> <a>listReportsResponse</a> smart constructor.
data ListReportsResponse

-- | Creates a value of <a>ListReportsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrrNextPageToken</a></li>
--   <li><a>lrrReports</a></li>
--   </ul>
listReportsResponse :: ListReportsResponse

-- | A token to retrieve next page of results. Pass this value in the
--   ListReportsRequest.page_token field in the subsequent call to
--   `ListReports` method to retrieve the next page of results.
lrrNextPageToken :: Lens' ListReportsResponse (Maybe Text)

-- | The list of report types.
lrrReports :: Lens' ListReportsResponse [Report]

-- | A generic empty message that you can re-use to avoid defining
--   duplicated empty messages in your APIs. A typical example is to use it
--   as the request or the response type of an API method. For instance:
--   service Foo { rpc Bar(google.protobuf.Empty) returns
--   (google.protobuf.Empty); } The JSON representation for `Empty` is
--   empty JSON object `{}`.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | A report's metadata including the URL from which the report itself can
--   be downloaded.
--   
--   <i>See:</i> <a>report</a> smart constructor.
data Report

-- | Creates a value of <a>Report</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rJobId</a></li>
--   <li><a>rStartTime</a></li>
--   <li><a>rDownloadURL</a></li>
--   <li><a>rEndTime</a></li>
--   <li><a>rId</a></li>
--   <li><a>rCreateTime</a></li>
--   <li><a>rJobExpireTime</a></li>
--   </ul>
report :: Report

-- | The ID of the job that created this report.
rJobId :: Lens' Report (Maybe Text)

-- | The start of the time period that the report instance covers. The
--   value is inclusive.
rStartTime :: Lens' Report (Maybe UTCTime)

-- | The URL from which the report can be downloaded (max. 1000
--   characters).
rDownloadURL :: Lens' Report (Maybe Text)

-- | The end of the time period that the report instance covers. The value
--   is exclusive.
rEndTime :: Lens' Report (Maybe UTCTime)

-- | The server-generated ID of the report.
rId :: Lens' Report (Maybe Text)

-- | The date/time when this report was created.
rCreateTime :: Lens' Report (Maybe UTCTime)

-- | The date/time when the job this report belongs to will expire/expired.
rJobExpireTime :: Lens' Report (Maybe UTCTime)

-- | Response message for ReportingService.ListReportTypes.
--   
--   <i>See:</i> <a>listReportTypesResponse</a> smart constructor.
data ListReportTypesResponse

-- | Creates a value of <a>ListReportTypesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrtrNextPageToken</a></li>
--   <li><a>lrtrReportTypes</a></li>
--   </ul>
listReportTypesResponse :: ListReportTypesResponse

-- | A token to retrieve next page of results. Pass this value in the
--   ListReportTypesRequest.page_token field in the subsequent call to
--   `ListReportTypes` method to retrieve the next page of results.
lrtrNextPageToken :: Lens' ListReportTypesResponse (Maybe Text)

-- | The list of report types.
lrtrReportTypes :: Lens' ListReportTypesResponse [ReportType]

-- | Media resource.
--   
--   <i>See:</i> <a>media</a> smart constructor.
data Media

-- | Creates a value of <a>Media</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mResourceName</a></li>
--   </ul>
media :: Media

-- | Name of the media resource.
mResourceName :: Lens' Media (Maybe Text)

-- | A job creating reports of a specific type.
--   
--   <i>See:</i> <a>job</a> smart constructor.
data Job

-- | Creates a value of <a>Job</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jName</a></li>
--   <li><a>jId</a></li>
--   <li><a>jSystemManaged</a></li>
--   <li><a>jReportTypeId</a></li>
--   <li><a>jExpireTime</a></li>
--   <li><a>jCreateTime</a></li>
--   </ul>
job :: Job

-- | The name of the job (max. 100 characters).
jName :: Lens' Job (Maybe Text)

-- | The server-generated ID of the job (max. 40 characters).
jId :: Lens' Job (Maybe Text)

-- | True if this a system-managed job that cannot be modified by the user;
--   otherwise false.
jSystemManaged :: Lens' Job (Maybe Bool)

-- | The type of reports this job creates. Corresponds to the ID of a
--   ReportType.
jReportTypeId :: Lens' Job (Maybe Text)

-- | The date/time when this job will expire/expired. After a job expired,
--   no new reports are generated.
jExpireTime :: Lens' Job (Maybe UTCTime)

-- | The creation date/time of the job.
jCreateTime :: Lens' Job (Maybe UTCTime)

-- | V1 error format.
data Xgafv

-- | <tt>1</tt> v1 error format
X1 :: Xgafv

-- | <tt>2</tt> v2 error format
X2 :: Xgafv

-- | Response message for ReportingService.ListJobs.
--   
--   <i>See:</i> <a>listJobsResponse</a> smart constructor.
data ListJobsResponse

-- | Creates a value of <a>ListJobsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ljrNextPageToken</a></li>
--   <li><a>ljrJobs</a></li>
--   </ul>
listJobsResponse :: ListJobsResponse

-- | A token to retrieve next page of results. Pass this value in the
--   ListJobsRequest.page_token field in the subsequent call to `ListJobs`
--   method to retrieve the next page of results.
ljrNextPageToken :: Lens' ListJobsResponse (Maybe Text)

-- | The list of jobs.
ljrJobs :: Lens' ListJobsResponse [Job]

-- | A report type.
--   
--   <i>See:</i> <a>reportType</a> smart constructor.
data ReportType

-- | Creates a value of <a>ReportType</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtName</a></li>
--   <li><a>rtId</a></li>
--   <li><a>rtDeprecateTime</a></li>
--   <li><a>rtSystemManaged</a></li>
--   </ul>
reportType :: ReportType

-- | The name of the report type (max. 100 characters).
rtName :: Lens' ReportType (Maybe Text)

-- | The ID of the report type (max. 100 characters).
rtId :: Lens' ReportType (Maybe Text)

-- | The date/time when this report type was/will be deprecated.
rtDeprecateTime :: Lens' ReportType (Maybe UTCTime)

-- | True if this a system-managed report type; otherwise false. Reporting
--   jobs for system-managed report types are created automatically and can
--   thus not be used in the `CreateJob` method.
rtSystemManaged :: Lens' ReportType (Maybe Bool)
