gogol-classroom-0.4.0: gen/Network/Google/Resource/Classroom/Courses/Announcements/Patch.hs
{-# 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.Classroom.Courses.Announcements.Patch
-- 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)
--
-- Updates one or more fields of an announcement. This method returns the
-- following error codes: * \`PERMISSION_DENIED\` if the requesting
-- developer project did not create the corresponding announcement or for
-- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *
-- \`FAILED_PRECONDITION\` if the requested announcement has already been
-- deleted. * \`NOT_FOUND\` if the requested course or announcement does
-- not exist
--
-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.patch@.
module Network.Google.Resource.Classroom.Courses.Announcements.Patch
(
-- * REST Resource
CoursesAnnouncementsPatchResource
-- * Creating a Request
, coursesAnnouncementsPatch
, CoursesAnnouncementsPatch
-- * Request Lenses
, capXgafv
, capUploadProtocol
, capUpdateMask
, capCourseId
, capAccessToken
, capUploadType
, capPayload
, capId
, capCallback
) where
import Network.Google.Classroom.Types
import Network.Google.Prelude
-- | A resource alias for @classroom.courses.announcements.patch@ method which the
-- 'CoursesAnnouncementsPatch' request conforms to.
type CoursesAnnouncementsPatchResource =
"v1" :>
"courses" :>
Capture "courseId" Text :>
"announcements" :>
Capture "id" Text :>
QueryParam "$.xgafv" Xgafv :>
QueryParam "upload_protocol" Text :>
QueryParam "updateMask" GFieldMask :>
QueryParam "access_token" Text :>
QueryParam "uploadType" Text :>
QueryParam "callback" Text :>
QueryParam "alt" AltJSON :>
ReqBody '[JSON] Announcement :>
Patch '[JSON] Announcement
-- | Updates one or more fields of an announcement. This method returns the
-- following error codes: * \`PERMISSION_DENIED\` if the requesting
-- developer project did not create the corresponding announcement or for
-- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *
-- \`FAILED_PRECONDITION\` if the requested announcement has already been
-- deleted. * \`NOT_FOUND\` if the requested course or announcement does
-- not exist
--
-- /See:/ 'coursesAnnouncementsPatch' smart constructor.
data CoursesAnnouncementsPatch = CoursesAnnouncementsPatch'
{ _capXgafv :: !(Maybe Xgafv)
, _capUploadProtocol :: !(Maybe Text)
, _capUpdateMask :: !(Maybe GFieldMask)
, _capCourseId :: !Text
, _capAccessToken :: !(Maybe Text)
, _capUploadType :: !(Maybe Text)
, _capPayload :: !Announcement
, _capId :: !Text
, _capCallback :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
-- | Creates a value of 'CoursesAnnouncementsPatch' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'capXgafv'
--
-- * 'capUploadProtocol'
--
-- * 'capUpdateMask'
--
-- * 'capCourseId'
--
-- * 'capAccessToken'
--
-- * 'capUploadType'
--
-- * 'capPayload'
--
-- * 'capId'
--
-- * 'capCallback'
coursesAnnouncementsPatch
:: Text -- ^ 'capCourseId'
-> Announcement -- ^ 'capPayload'
-> Text -- ^ 'capId'
-> CoursesAnnouncementsPatch
coursesAnnouncementsPatch pCapCourseId_ pCapPayload_ pCapId_ =
CoursesAnnouncementsPatch'
{ _capXgafv = Nothing
, _capUploadProtocol = Nothing
, _capUpdateMask = Nothing
, _capCourseId = pCapCourseId_
, _capAccessToken = Nothing
, _capUploadType = Nothing
, _capPayload = pCapPayload_
, _capId = pCapId_
, _capCallback = Nothing
}
-- | V1 error format.
capXgafv :: Lens' CoursesAnnouncementsPatch (Maybe Xgafv)
capXgafv = lens _capXgafv (\ s a -> s{_capXgafv = a})
-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
capUploadProtocol :: Lens' CoursesAnnouncementsPatch (Maybe Text)
capUploadProtocol
= lens _capUploadProtocol
(\ s a -> s{_capUploadProtocol = a})
-- | Mask that identifies which fields on the announcement to update. This
-- field is required to do an update. The update fails if invalid fields
-- are specified. If a field supports empty values, it can be cleared by
-- specifying it in the update mask and not in the Announcement object. If
-- a field that does not support empty values is included in the update
-- mask and not set in the Announcement object, an \`INVALID_ARGUMENT\`
-- error will be returned. The following fields may be specified by
-- teachers: * \`text\` * \`state\` * \`scheduled_time\`
capUpdateMask :: Lens' CoursesAnnouncementsPatch (Maybe GFieldMask)
capUpdateMask
= lens _capUpdateMask
(\ s a -> s{_capUpdateMask = a})
-- | Identifier of the course. This identifier can be either the
-- Classroom-assigned identifier or an alias.
capCourseId :: Lens' CoursesAnnouncementsPatch Text
capCourseId
= lens _capCourseId (\ s a -> s{_capCourseId = a})
-- | OAuth access token.
capAccessToken :: Lens' CoursesAnnouncementsPatch (Maybe Text)
capAccessToken
= lens _capAccessToken
(\ s a -> s{_capAccessToken = a})
-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
capUploadType :: Lens' CoursesAnnouncementsPatch (Maybe Text)
capUploadType
= lens _capUploadType
(\ s a -> s{_capUploadType = a})
-- | Multipart request metadata.
capPayload :: Lens' CoursesAnnouncementsPatch Announcement
capPayload
= lens _capPayload (\ s a -> s{_capPayload = a})
-- | Identifier of the announcement.
capId :: Lens' CoursesAnnouncementsPatch Text
capId = lens _capId (\ s a -> s{_capId = a})
-- | JSONP
capCallback :: Lens' CoursesAnnouncementsPatch (Maybe Text)
capCallback
= lens _capCallback (\ s a -> s{_capCallback = a})
instance GoogleRequest CoursesAnnouncementsPatch
where
type Rs CoursesAnnouncementsPatch = Announcement
type Scopes CoursesAnnouncementsPatch =
'["https://www.googleapis.com/auth/classroom.announcements"]
requestClient CoursesAnnouncementsPatch'{..}
= go _capCourseId _capId _capXgafv _capUploadProtocol
_capUpdateMask
_capAccessToken
_capUploadType
_capCallback
(Just AltJSON)
_capPayload
classroomService
where go
= buildClient
(Proxy :: Proxy CoursesAnnouncementsPatchResource)
mempty