{-# 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.YouTube.Videos.List -- Copyright : (c) 2015-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns a list of videos that match the API request parameters. -- -- /See:/ <https://developers.google.com/youtube/v3 YouTube Data API Reference> for @youtube.videos.list@. module Network.Google.Resource.YouTube.Videos.List ( -- * REST Resource VideosListResource -- * Creating a Request , videosList , VideosList -- * Request Lenses , vlChart , vlPart , vlRegionCode , vlLocale , vlMyRating , vlMaxHeight , vlHl , vlOnBehalfOfContentOwner , vlVideoCategoryId , vlMaxWidth , vlId , vlPageToken , vlMaxResults ) where import Network.Google.Prelude import Network.Google.YouTube.Types -- | A resource alias for @youtube.videos.list@ method which the -- 'VideosList' request conforms to. type VideosListResource = "youtube" :> "v3" :> "videos" :> QueryParam "part" Text :> QueryParam "chart" VideosListChart :> QueryParam "regionCode" Text :> QueryParam "locale" Text :> QueryParam "myRating" VideosListMyRating :> QueryParam "maxHeight" (Textual Word32) :> QueryParam "hl" Text :> QueryParam "onBehalfOfContentOwner" Text :> QueryParam "videoCategoryId" Text :> QueryParam "maxWidth" (Textual Word32) :> QueryParam "id" Text :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Word32) :> QueryParam "alt" AltJSON :> Get '[JSON] VideoListResponse -- | Returns a list of videos that match the API request parameters. -- -- /See:/ 'videosList' smart constructor. data VideosList = VideosList' { _vlChart :: !(Maybe VideosListChart) , _vlPart :: !Text , _vlRegionCode :: !(Maybe Text) , _vlLocale :: !(Maybe Text) , _vlMyRating :: !(Maybe VideosListMyRating) , _vlMaxHeight :: !(Maybe (Textual Word32)) , _vlHl :: !(Maybe Text) , _vlOnBehalfOfContentOwner :: !(Maybe Text) , _vlVideoCategoryId :: !Text , _vlMaxWidth :: !(Maybe (Textual Word32)) , _vlId :: !(Maybe Text) , _vlPageToken :: !(Maybe Text) , _vlMaxResults :: !(Textual Word32) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'VideosList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'vlChart' -- -- * 'vlPart' -- -- * 'vlRegionCode' -- -- * 'vlLocale' -- -- * 'vlMyRating' -- -- * 'vlMaxHeight' -- -- * 'vlHl' -- -- * 'vlOnBehalfOfContentOwner' -- -- * 'vlVideoCategoryId' -- -- * 'vlMaxWidth' -- -- * 'vlId' -- -- * 'vlPageToken' -- -- * 'vlMaxResults' videosList :: Text -- ^ 'vlPart' -> VideosList videosList pVlPart_ = VideosList' { _vlChart = Nothing , _vlPart = pVlPart_ , _vlRegionCode = Nothing , _vlLocale = Nothing , _vlMyRating = Nothing , _vlMaxHeight = Nothing , _vlHl = Nothing , _vlOnBehalfOfContentOwner = Nothing , _vlVideoCategoryId = "0" , _vlMaxWidth = Nothing , _vlId = Nothing , _vlPageToken = Nothing , _vlMaxResults = 5 } -- | The chart parameter identifies the chart that you want to retrieve. vlChart :: Lens' VideosList (Maybe VideosListChart) vlChart = lens _vlChart (\ s a -> s{_vlChart = a}) -- | The part parameter specifies a comma-separated list of one or more video -- resource properties that the API response will include. If the parameter -- identifies a property that contains child properties, the child -- properties will be included in the response. For example, in a video -- resource, the snippet property contains the channelId, title, -- description, tags, and categoryId properties. As such, if you set -- part=snippet, the API response will contain all of those properties. vlPart :: Lens' VideosList Text vlPart = lens _vlPart (\ s a -> s{_vlPart = a}) -- | The regionCode parameter instructs the API to select a video chart -- available in the specified region. This parameter can only be used in -- conjunction with the chart parameter. The parameter value is an ISO -- 3166-1 alpha-2 country code. vlRegionCode :: Lens' VideosList (Maybe Text) vlRegionCode = lens _vlRegionCode (\ s a -> s{_vlRegionCode = a}) -- | DEPRECATED vlLocale :: Lens' VideosList (Maybe Text) vlLocale = lens _vlLocale (\ s a -> s{_vlLocale = a}) -- | Set this parameter\'s value to like or dislike to instruct the API to -- only return videos liked or disliked by the authenticated user. vlMyRating :: Lens' VideosList (Maybe VideosListMyRating) vlMyRating = lens _vlMyRating (\ s a -> s{_vlMyRating = a}) -- | The maxHeight parameter specifies a maximum height of the embedded -- player. If maxWidth is provided, maxHeight may not be reached in order -- to not violate the width request. vlMaxHeight :: Lens' VideosList (Maybe Word32) vlMaxHeight = lens _vlMaxHeight (\ s a -> s{_vlMaxHeight = a}) . mapping _Coerce -- | The hl parameter instructs the API to retrieve localized resource -- metadata for a specific application language that the YouTube website -- supports. The parameter value must be a language code included in the -- list returned by the i18nLanguages.list method. If localized resource -- details are available in that language, the resource\'s -- snippet.localized object will contain the localized values. However, if -- localized details are not available, the snippet.localized object will -- contain resource details in the resource\'s default language. vlHl :: Lens' VideosList (Maybe Text) vlHl = lens _vlHl (\ s a -> s{_vlHl = a}) -- | Note: This parameter is intended exclusively for YouTube content -- partners. The onBehalfOfContentOwner parameter indicates that the -- request\'s authorization credentials identify a YouTube CMS user who is -- acting on behalf of the content owner specified in the parameter value. -- This parameter is intended for YouTube content partners that own and -- manage many different YouTube channels. It allows content owners to -- authenticate once and get access to all their video and channel data, -- without having to provide authentication credentials for each individual -- channel. The CMS account that the user authenticates with must be linked -- to the specified YouTube content owner. vlOnBehalfOfContentOwner :: Lens' VideosList (Maybe Text) vlOnBehalfOfContentOwner = lens _vlOnBehalfOfContentOwner (\ s a -> s{_vlOnBehalfOfContentOwner = a}) -- | The videoCategoryId parameter identifies the video category for which -- the chart should be retrieved. This parameter can only be used in -- conjunction with the chart parameter. By default, charts are not -- restricted to a particular category. vlVideoCategoryId :: Lens' VideosList Text vlVideoCategoryId = lens _vlVideoCategoryId (\ s a -> s{_vlVideoCategoryId = a}) -- | The maxWidth parameter specifies a maximum width of the embedded player. -- If maxHeight is provided, maxWidth may not be reached in order to not -- violate the height request. vlMaxWidth :: Lens' VideosList (Maybe Word32) vlMaxWidth = lens _vlMaxWidth (\ s a -> s{_vlMaxWidth = a}) . mapping _Coerce -- | The id parameter specifies a comma-separated list of the YouTube video -- ID(s) for the resource(s) that are being retrieved. In a video resource, -- the id property specifies the video\'s ID. vlId :: Lens' VideosList (Maybe Text) vlId = lens _vlId (\ s a -> s{_vlId = a}) -- | The pageToken parameter identifies a specific page in the result set -- that should be returned. In an API response, the nextPageToken and -- prevPageToken properties identify other pages that could be retrieved. -- Note: This parameter is supported for use in conjunction with the -- myRating and chart parameters, but it is not supported for use in -- conjunction with the id parameter. vlPageToken :: Lens' VideosList (Maybe Text) vlPageToken = lens _vlPageToken (\ s a -> s{_vlPageToken = a}) -- | The maxResults parameter specifies the maximum number of items that -- should be returned in the result set. Note: This parameter is supported -- for use in conjunction with the myRating and chart parameters, but it is -- not supported for use in conjunction with the id parameter. vlMaxResults :: Lens' VideosList Word32 vlMaxResults = lens _vlMaxResults (\ s a -> s{_vlMaxResults = a}) . _Coerce instance GoogleRequest VideosList where type Rs VideosList = VideoListResponse type Scopes VideosList = '["https://www.googleapis.com/auth/youtube", "https://www.googleapis.com/auth/youtube.force-ssl", "https://www.googleapis.com/auth/youtube.readonly", "https://www.googleapis.com/auth/youtubepartner"] requestClient VideosList'{..} = go (Just _vlPart) _vlChart _vlRegionCode _vlLocale _vlMyRating _vlMaxHeight _vlHl _vlOnBehalfOfContentOwner (Just _vlVideoCategoryId) _vlMaxWidth _vlId _vlPageToken (Just _vlMaxResults) (Just AltJSON) youTubeService where go = buildClient (Proxy :: Proxy VideosListResource) mempty