{-# 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.GroupItems.Insert
(
GroupItemsInsertResource
, groupItemsInsert
, GroupItemsInsert
, giiXgafv
, giiUploadProtocol
, giiAccessToken
, giiUploadType
, giiPayload
, giiOnBehalfOfContentOwner
, giiCallback
) where
import Network.Google.Prelude
import Network.Google.YouTubeAnalytics.Types
type GroupItemsInsertResource =
"v2" :>
"groupItems" :>
QueryParam "$.xgafv" Xgafv :>
QueryParam "upload_protocol" Text :>
QueryParam "access_token" Text :>
QueryParam "uploadType" Text :>
QueryParam "onBehalfOfContentOwner" Text :>
QueryParam "callback" Text :>
QueryParam "alt" AltJSON :>
ReqBody '[JSON] GroupItem :> Post '[JSON] GroupItem
data GroupItemsInsert = GroupItemsInsert'
{ _giiXgafv :: !(Maybe Xgafv)
, _giiUploadProtocol :: !(Maybe Text)
, _giiAccessToken :: !(Maybe Text)
, _giiUploadType :: !(Maybe Text)
, _giiPayload :: !GroupItem
, _giiOnBehalfOfContentOwner :: !(Maybe Text)
, _giiCallback :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
groupItemsInsert
:: GroupItem
-> GroupItemsInsert
groupItemsInsert pGiiPayload_ =
GroupItemsInsert'
{ _giiXgafv = Nothing
, _giiUploadProtocol = Nothing
, _giiAccessToken = Nothing
, _giiUploadType = Nothing
, _giiPayload = pGiiPayload_
, _giiOnBehalfOfContentOwner = Nothing
, _giiCallback = Nothing
}
giiXgafv :: Lens' GroupItemsInsert (Maybe Xgafv)
giiXgafv = lens _giiXgafv (\ s a -> s{_giiXgafv = a})
giiUploadProtocol :: Lens' GroupItemsInsert (Maybe Text)
giiUploadProtocol
= lens _giiUploadProtocol
(\ s a -> s{_giiUploadProtocol = a})
giiAccessToken :: Lens' GroupItemsInsert (Maybe Text)
giiAccessToken
= lens _giiAccessToken
(\ s a -> s{_giiAccessToken = a})
giiUploadType :: Lens' GroupItemsInsert (Maybe Text)
giiUploadType
= lens _giiUploadType
(\ s a -> s{_giiUploadType = a})
giiPayload :: Lens' GroupItemsInsert GroupItem
giiPayload
= lens _giiPayload (\ s a -> s{_giiPayload = a})
giiOnBehalfOfContentOwner :: Lens' GroupItemsInsert (Maybe Text)
giiOnBehalfOfContentOwner
= lens _giiOnBehalfOfContentOwner
(\ s a -> s{_giiOnBehalfOfContentOwner = a})
giiCallback :: Lens' GroupItemsInsert (Maybe Text)
giiCallback
= lens _giiCallback (\ s a -> s{_giiCallback = a})
instance GoogleRequest GroupItemsInsert where
type Rs GroupItemsInsert = GroupItem
type Scopes GroupItemsInsert =
'["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 GroupItemsInsert'{..}
= go _giiXgafv _giiUploadProtocol _giiAccessToken
_giiUploadType
_giiOnBehalfOfContentOwner
_giiCallback
(Just AltJSON)
_giiPayload
youTubeAnalyticsService
where go
= buildClient
(Proxy :: Proxy GroupItemsInsertResource)
mempty