packages feed

gogol-classroom 0.5.0 → 1.0.0

raw patch · 162 files changed

+19619/−17357 lines, 162 filesdep −basedep ~gogol-coresetup-changed

Dependencies removed: base

Dependency ranges changed: gogol-core

Files

README.md view
@@ -8,7 +8,7 @@  ## Version -`0.5.0`+`1.0.0`   ## Description
Setup.hs view
@@ -1,2 +1,3 @@-import           Distribution.Simple+import Distribution.Simple+ main = defaultMain
+ gen/Gogol/Classroom.hs view
@@ -0,0 +1,1041 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Manages classes, rosters, and invitations in Google Classroom.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference>+module Gogol.Classroom+  ( -- * Configuration+    classroomService,++    -- * OAuth Scopes+    Classroom'Addons'Student,+    Classroom'Addons'Teacher,+    Classroom'Announcements,+    Classroom'Announcements'Readonly,+    Classroom'Courses,+    Classroom'Courses'Readonly,+    Classroom'Coursework'Me,+    Classroom'Coursework'Me'Readonly,+    Classroom'Coursework'Students,+    Classroom'Coursework'Students'Readonly,+    Classroom'Courseworkmaterials,+    Classroom'Courseworkmaterials'Readonly,+    Classroom'Guardianlinks'Me'Readonly,+    Classroom'Guardianlinks'Students,+    Classroom'Guardianlinks'Students'Readonly,+    Classroom'Profile'Emails,+    Classroom'Profile'Photos,+    Classroom'PushNotifications,+    Classroom'Rosters,+    Classroom'Rosters'Readonly,+    Classroom'StudentSubmissions'Me'Readonly,+    Classroom'StudentSubmissions'Students'Readonly,+    Classroom'Topics,+    Classroom'Topics'Readonly,++    -- * Resources++    -- ** classroom.courses.aliases.create+    ClassroomCoursesAliasesCreateResource,+    ClassroomCoursesAliasesCreate (..),+    newClassroomCoursesAliasesCreate,++    -- ** classroom.courses.aliases.delete+    ClassroomCoursesAliasesDeleteResource,+    ClassroomCoursesAliasesDelete (..),+    newClassroomCoursesAliasesDelete,++    -- ** classroom.courses.aliases.list+    ClassroomCoursesAliasesListResource,+    ClassroomCoursesAliasesList (..),+    newClassroomCoursesAliasesList,++    -- ** classroom.courses.announcements.addOnAttachments.create+    ClassroomCoursesAnnouncementsAddOnAttachmentsCreateResource,+    ClassroomCoursesAnnouncementsAddOnAttachmentsCreate (..),+    newClassroomCoursesAnnouncementsAddOnAttachmentsCreate,++    -- ** classroom.courses.announcements.addOnAttachments.delete+    ClassroomCoursesAnnouncementsAddOnAttachmentsDeleteResource,+    ClassroomCoursesAnnouncementsAddOnAttachmentsDelete (..),+    newClassroomCoursesAnnouncementsAddOnAttachmentsDelete,++    -- ** classroom.courses.announcements.addOnAttachments.get+    ClassroomCoursesAnnouncementsAddOnAttachmentsGetResource,+    ClassroomCoursesAnnouncementsAddOnAttachmentsGet (..),+    newClassroomCoursesAnnouncementsAddOnAttachmentsGet,++    -- ** classroom.courses.announcements.addOnAttachments.list+    ClassroomCoursesAnnouncementsAddOnAttachmentsListResource,+    ClassroomCoursesAnnouncementsAddOnAttachmentsList (..),+    newClassroomCoursesAnnouncementsAddOnAttachmentsList,++    -- ** classroom.courses.announcements.addOnAttachments.patch+    ClassroomCoursesAnnouncementsAddOnAttachmentsPatchResource,+    ClassroomCoursesAnnouncementsAddOnAttachmentsPatch (..),+    newClassroomCoursesAnnouncementsAddOnAttachmentsPatch,++    -- ** classroom.courses.announcements.create+    ClassroomCoursesAnnouncementsCreateResource,+    ClassroomCoursesAnnouncementsCreate (..),+    newClassroomCoursesAnnouncementsCreate,++    -- ** classroom.courses.announcements.delete+    ClassroomCoursesAnnouncementsDeleteResource,+    ClassroomCoursesAnnouncementsDelete (..),+    newClassroomCoursesAnnouncementsDelete,++    -- ** classroom.courses.announcements.get+    ClassroomCoursesAnnouncementsGetResource,+    ClassroomCoursesAnnouncementsGet (..),+    newClassroomCoursesAnnouncementsGet,++    -- ** classroom.courses.announcements.getAddOnContext+    ClassroomCoursesAnnouncementsGetAddOnContextResource,+    ClassroomCoursesAnnouncementsGetAddOnContext (..),+    newClassroomCoursesAnnouncementsGetAddOnContext,++    -- ** classroom.courses.announcements.list+    ClassroomCoursesAnnouncementsListResource,+    ClassroomCoursesAnnouncementsList (..),+    newClassroomCoursesAnnouncementsList,++    -- ** classroom.courses.announcements.modifyAssignees+    ClassroomCoursesAnnouncementsModifyAssigneesResource,+    ClassroomCoursesAnnouncementsModifyAssignees (..),+    newClassroomCoursesAnnouncementsModifyAssignees,++    -- ** classroom.courses.announcements.patch+    ClassroomCoursesAnnouncementsPatchResource,+    ClassroomCoursesAnnouncementsPatch (..),+    newClassroomCoursesAnnouncementsPatch,++    -- ** classroom.courses.courseWork.addOnAttachments.create+    ClassroomCoursesCourseWorkAddOnAttachmentsCreateResource,+    ClassroomCoursesCourseWorkAddOnAttachmentsCreate (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsCreate,++    -- ** classroom.courses.courseWork.addOnAttachments.delete+    ClassroomCoursesCourseWorkAddOnAttachmentsDeleteResource,+    ClassroomCoursesCourseWorkAddOnAttachmentsDelete (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsDelete,++    -- ** classroom.courses.courseWork.addOnAttachments.get+    ClassroomCoursesCourseWorkAddOnAttachmentsGetResource,+    ClassroomCoursesCourseWorkAddOnAttachmentsGet (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsGet,++    -- ** classroom.courses.courseWork.addOnAttachments.list+    ClassroomCoursesCourseWorkAddOnAttachmentsListResource,+    ClassroomCoursesCourseWorkAddOnAttachmentsList (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsList,++    -- ** classroom.courses.courseWork.addOnAttachments.patch+    ClassroomCoursesCourseWorkAddOnAttachmentsPatchResource,+    ClassroomCoursesCourseWorkAddOnAttachmentsPatch (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsPatch,++    -- ** classroom.courses.courseWork.addOnAttachments.studentSubmissions.get+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGetResource,+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet,++    -- ** classroom.courses.courseWork.addOnAttachments.studentSubmissions.patch+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatchResource,+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch,++    -- ** classroom.courses.courseWork.create+    ClassroomCoursesCourseWorkCreateResource,+    ClassroomCoursesCourseWorkCreate (..),+    newClassroomCoursesCourseWorkCreate,++    -- ** classroom.courses.courseWork.delete+    ClassroomCoursesCourseWorkDeleteResource,+    ClassroomCoursesCourseWorkDelete (..),+    newClassroomCoursesCourseWorkDelete,++    -- ** classroom.courses.courseWork.get+    ClassroomCoursesCourseWorkGetResource,+    ClassroomCoursesCourseWorkGet (..),+    newClassroomCoursesCourseWorkGet,++    -- ** classroom.courses.courseWork.getAddOnContext+    ClassroomCoursesCourseWorkGetAddOnContextResource,+    ClassroomCoursesCourseWorkGetAddOnContext (..),+    newClassroomCoursesCourseWorkGetAddOnContext,++    -- ** classroom.courses.courseWork.list+    ClassroomCoursesCourseWorkListResource,+    ClassroomCoursesCourseWorkList (..),+    newClassroomCoursesCourseWorkList,++    -- ** classroom.courses.courseWork.modifyAssignees+    ClassroomCoursesCourseWorkModifyAssigneesResource,+    ClassroomCoursesCourseWorkModifyAssignees (..),+    newClassroomCoursesCourseWorkModifyAssignees,++    -- ** classroom.courses.courseWork.patch+    ClassroomCoursesCourseWorkPatchResource,+    ClassroomCoursesCourseWorkPatch (..),+    newClassroomCoursesCourseWorkPatch,++    -- ** classroom.courses.courseWork.rubrics.create+    ClassroomCoursesCourseWorkRubricsCreateResource,+    ClassroomCoursesCourseWorkRubricsCreate (..),+    newClassroomCoursesCourseWorkRubricsCreate,++    -- ** classroom.courses.courseWork.rubrics.delete+    ClassroomCoursesCourseWorkRubricsDeleteResource,+    ClassroomCoursesCourseWorkRubricsDelete (..),+    newClassroomCoursesCourseWorkRubricsDelete,++    -- ** classroom.courses.courseWork.rubrics.get+    ClassroomCoursesCourseWorkRubricsGetResource,+    ClassroomCoursesCourseWorkRubricsGet (..),+    newClassroomCoursesCourseWorkRubricsGet,++    -- ** classroom.courses.courseWork.rubrics.list+    ClassroomCoursesCourseWorkRubricsListResource,+    ClassroomCoursesCourseWorkRubricsList (..),+    newClassroomCoursesCourseWorkRubricsList,++    -- ** classroom.courses.courseWork.rubrics.patch+    ClassroomCoursesCourseWorkRubricsPatchResource,+    ClassroomCoursesCourseWorkRubricsPatch (..),+    newClassroomCoursesCourseWorkRubricsPatch,++    -- ** classroom.courses.courseWork.studentSubmissions.get+    ClassroomCoursesCourseWorkStudentSubmissionsGetResource,+    ClassroomCoursesCourseWorkStudentSubmissionsGet (..),+    newClassroomCoursesCourseWorkStudentSubmissionsGet,++    -- ** classroom.courses.courseWork.studentSubmissions.list+    ClassroomCoursesCourseWorkStudentSubmissionsListResource,+    ClassroomCoursesCourseWorkStudentSubmissionsList (..),+    newClassroomCoursesCourseWorkStudentSubmissionsList,++    -- ** classroom.courses.courseWork.studentSubmissions.modifyAttachments+    ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachmentsResource,+    ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments (..),+    newClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments,++    -- ** classroom.courses.courseWork.studentSubmissions.patch+    ClassroomCoursesCourseWorkStudentSubmissionsPatchResource,+    ClassroomCoursesCourseWorkStudentSubmissionsPatch (..),+    newClassroomCoursesCourseWorkStudentSubmissionsPatch,++    -- ** classroom.courses.courseWork.studentSubmissions.reclaim+    ClassroomCoursesCourseWorkStudentSubmissionsReclaimResource,+    ClassroomCoursesCourseWorkStudentSubmissionsReclaim (..),+    newClassroomCoursesCourseWorkStudentSubmissionsReclaim,++    -- ** classroom.courses.courseWork.studentSubmissions.return+    ClassroomCoursesCourseWorkStudentSubmissionsReturnResource,+    ClassroomCoursesCourseWorkStudentSubmissionsReturn (..),+    newClassroomCoursesCourseWorkStudentSubmissionsReturn,++    -- ** classroom.courses.courseWork.studentSubmissions.turnIn+    ClassroomCoursesCourseWorkStudentSubmissionsTurnInResource,+    ClassroomCoursesCourseWorkStudentSubmissionsTurnIn (..),+    newClassroomCoursesCourseWorkStudentSubmissionsTurnIn,++    -- ** classroom.courses.courseWork.updateRubric+    ClassroomCoursesCourseWorkUpdateRubricResource,+    ClassroomCoursesCourseWorkUpdateRubric (..),+    newClassroomCoursesCourseWorkUpdateRubric,++    -- ** classroom.courses.courseWorkMaterials.addOnAttachments.create+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreateResource,+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate (..),+    newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate,++    -- ** classroom.courses.courseWorkMaterials.addOnAttachments.delete+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDeleteResource,+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete (..),+    newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete,++    -- ** classroom.courses.courseWorkMaterials.addOnAttachments.get+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGetResource,+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet (..),+    newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet,++    -- ** classroom.courses.courseWorkMaterials.addOnAttachments.list+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsListResource,+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList (..),+    newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList,++    -- ** classroom.courses.courseWorkMaterials.addOnAttachments.patch+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatchResource,+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch (..),+    newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch,++    -- ** classroom.courses.courseWorkMaterials.create+    ClassroomCoursesCourseWorkMaterialsCreateResource,+    ClassroomCoursesCourseWorkMaterialsCreate (..),+    newClassroomCoursesCourseWorkMaterialsCreate,++    -- ** classroom.courses.courseWorkMaterials.delete+    ClassroomCoursesCourseWorkMaterialsDeleteResource,+    ClassroomCoursesCourseWorkMaterialsDelete (..),+    newClassroomCoursesCourseWorkMaterialsDelete,++    -- ** classroom.courses.courseWorkMaterials.get+    ClassroomCoursesCourseWorkMaterialsGetResource,+    ClassroomCoursesCourseWorkMaterialsGet (..),+    newClassroomCoursesCourseWorkMaterialsGet,++    -- ** classroom.courses.courseWorkMaterials.getAddOnContext+    ClassroomCoursesCourseWorkMaterialsGetAddOnContextResource,+    ClassroomCoursesCourseWorkMaterialsGetAddOnContext (..),+    newClassroomCoursesCourseWorkMaterialsGetAddOnContext,++    -- ** classroom.courses.courseWorkMaterials.list+    ClassroomCoursesCourseWorkMaterialsListResource,+    ClassroomCoursesCourseWorkMaterialsList (..),+    newClassroomCoursesCourseWorkMaterialsList,++    -- ** classroom.courses.courseWorkMaterials.patch+    ClassroomCoursesCourseWorkMaterialsPatchResource,+    ClassroomCoursesCourseWorkMaterialsPatch (..),+    newClassroomCoursesCourseWorkMaterialsPatch,++    -- ** classroom.courses.create+    ClassroomCoursesCreateResource,+    ClassroomCoursesCreate (..),+    newClassroomCoursesCreate,++    -- ** classroom.courses.delete+    ClassroomCoursesDeleteResource,+    ClassroomCoursesDelete (..),+    newClassroomCoursesDelete,++    -- ** classroom.courses.get+    ClassroomCoursesGetResource,+    ClassroomCoursesGet (..),+    newClassroomCoursesGet,++    -- ** classroom.courses.list+    ClassroomCoursesListResource,+    ClassroomCoursesList (..),+    newClassroomCoursesList,++    -- ** classroom.courses.patch+    ClassroomCoursesPatchResource,+    ClassroomCoursesPatch (..),+    newClassroomCoursesPatch,++    -- ** classroom.courses.posts.addOnAttachments.create+    ClassroomCoursesPostsAddOnAttachmentsCreateResource,+    ClassroomCoursesPostsAddOnAttachmentsCreate (..),+    newClassroomCoursesPostsAddOnAttachmentsCreate,++    -- ** classroom.courses.posts.addOnAttachments.delete+    ClassroomCoursesPostsAddOnAttachmentsDeleteResource,+    ClassroomCoursesPostsAddOnAttachmentsDelete (..),+    newClassroomCoursesPostsAddOnAttachmentsDelete,++    -- ** classroom.courses.posts.addOnAttachments.get+    ClassroomCoursesPostsAddOnAttachmentsGetResource,+    ClassroomCoursesPostsAddOnAttachmentsGet (..),+    newClassroomCoursesPostsAddOnAttachmentsGet,++    -- ** classroom.courses.posts.addOnAttachments.list+    ClassroomCoursesPostsAddOnAttachmentsListResource,+    ClassroomCoursesPostsAddOnAttachmentsList (..),+    newClassroomCoursesPostsAddOnAttachmentsList,++    -- ** classroom.courses.posts.addOnAttachments.patch+    ClassroomCoursesPostsAddOnAttachmentsPatchResource,+    ClassroomCoursesPostsAddOnAttachmentsPatch (..),+    newClassroomCoursesPostsAddOnAttachmentsPatch,++    -- ** classroom.courses.posts.addOnAttachments.studentSubmissions.get+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGetResource,+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet (..),+    newClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet,++    -- ** classroom.courses.posts.addOnAttachments.studentSubmissions.patch+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatchResource,+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch (..),+    newClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch,++    -- ** classroom.courses.posts.getAddOnContext+    ClassroomCoursesPostsGetAddOnContextResource,+    ClassroomCoursesPostsGetAddOnContext (..),+    newClassroomCoursesPostsGetAddOnContext,++    -- ** classroom.courses.students.create+    ClassroomCoursesStudentsCreateResource,+    ClassroomCoursesStudentsCreate (..),+    newClassroomCoursesStudentsCreate,++    -- ** classroom.courses.students.delete+    ClassroomCoursesStudentsDeleteResource,+    ClassroomCoursesStudentsDelete (..),+    newClassroomCoursesStudentsDelete,++    -- ** classroom.courses.students.get+    ClassroomCoursesStudentsGetResource,+    ClassroomCoursesStudentsGet (..),+    newClassroomCoursesStudentsGet,++    -- ** classroom.courses.students.list+    ClassroomCoursesStudentsListResource,+    ClassroomCoursesStudentsList (..),+    newClassroomCoursesStudentsList,++    -- ** classroom.courses.teachers.create+    ClassroomCoursesTeachersCreateResource,+    ClassroomCoursesTeachersCreate (..),+    newClassroomCoursesTeachersCreate,++    -- ** classroom.courses.teachers.delete+    ClassroomCoursesTeachersDeleteResource,+    ClassroomCoursesTeachersDelete (..),+    newClassroomCoursesTeachersDelete,++    -- ** classroom.courses.teachers.get+    ClassroomCoursesTeachersGetResource,+    ClassroomCoursesTeachersGet (..),+    newClassroomCoursesTeachersGet,++    -- ** classroom.courses.teachers.list+    ClassroomCoursesTeachersListResource,+    ClassroomCoursesTeachersList (..),+    newClassroomCoursesTeachersList,++    -- ** classroom.courses.topics.create+    ClassroomCoursesTopicsCreateResource,+    ClassroomCoursesTopicsCreate (..),+    newClassroomCoursesTopicsCreate,++    -- ** classroom.courses.topics.delete+    ClassroomCoursesTopicsDeleteResource,+    ClassroomCoursesTopicsDelete (..),+    newClassroomCoursesTopicsDelete,++    -- ** classroom.courses.topics.get+    ClassroomCoursesTopicsGetResource,+    ClassroomCoursesTopicsGet (..),+    newClassroomCoursesTopicsGet,++    -- ** classroom.courses.topics.list+    ClassroomCoursesTopicsListResource,+    ClassroomCoursesTopicsList (..),+    newClassroomCoursesTopicsList,++    -- ** classroom.courses.topics.patch+    ClassroomCoursesTopicsPatchResource,+    ClassroomCoursesTopicsPatch (..),+    newClassroomCoursesTopicsPatch,++    -- ** classroom.courses.update+    ClassroomCoursesUpdateResource,+    ClassroomCoursesUpdate (..),+    newClassroomCoursesUpdate,++    -- ** classroom.invitations.accept+    ClassroomInvitationsAcceptResource,+    ClassroomInvitationsAccept (..),+    newClassroomInvitationsAccept,++    -- ** classroom.invitations.create+    ClassroomInvitationsCreateResource,+    ClassroomInvitationsCreate (..),+    newClassroomInvitationsCreate,++    -- ** classroom.invitations.delete+    ClassroomInvitationsDeleteResource,+    ClassroomInvitationsDelete (..),+    newClassroomInvitationsDelete,++    -- ** classroom.invitations.get+    ClassroomInvitationsGetResource,+    ClassroomInvitationsGet (..),+    newClassroomInvitationsGet,++    -- ** classroom.invitations.list+    ClassroomInvitationsListResource,+    ClassroomInvitationsList (..),+    newClassroomInvitationsList,++    -- ** classroom.registrations.create+    ClassroomRegistrationsCreateResource,+    ClassroomRegistrationsCreate (..),+    newClassroomRegistrationsCreate,++    -- ** classroom.registrations.delete+    ClassroomRegistrationsDeleteResource,+    ClassroomRegistrationsDelete (..),+    newClassroomRegistrationsDelete,++    -- ** classroom.userProfiles.get+    ClassroomUserProfilesGetResource,+    ClassroomUserProfilesGet (..),+    newClassroomUserProfilesGet,++    -- ** classroom.userProfiles.guardianInvitations.create+    ClassroomUserProfilesGuardianInvitationsCreateResource,+    ClassroomUserProfilesGuardianInvitationsCreate (..),+    newClassroomUserProfilesGuardianInvitationsCreate,++    -- ** classroom.userProfiles.guardianInvitations.get+    ClassroomUserProfilesGuardianInvitationsGetResource,+    ClassroomUserProfilesGuardianInvitationsGet (..),+    newClassroomUserProfilesGuardianInvitationsGet,++    -- ** classroom.userProfiles.guardianInvitations.list+    ClassroomUserProfilesGuardianInvitationsListResource,+    ClassroomUserProfilesGuardianInvitationsList (..),+    newClassroomUserProfilesGuardianInvitationsList,++    -- ** classroom.userProfiles.guardianInvitations.patch+    ClassroomUserProfilesGuardianInvitationsPatchResource,+    ClassroomUserProfilesGuardianInvitationsPatch (..),+    newClassroomUserProfilesGuardianInvitationsPatch,++    -- ** classroom.userProfiles.guardians.delete+    ClassroomUserProfilesGuardiansDeleteResource,+    ClassroomUserProfilesGuardiansDelete (..),+    newClassroomUserProfilesGuardiansDelete,++    -- ** classroom.userProfiles.guardians.get+    ClassroomUserProfilesGuardiansGetResource,+    ClassroomUserProfilesGuardiansGet (..),+    newClassroomUserProfilesGuardiansGet,++    -- ** classroom.userProfiles.guardians.list+    ClassroomUserProfilesGuardiansListResource,+    ClassroomUserProfilesGuardiansList (..),+    newClassroomUserProfilesGuardiansList,++    -- * Types++    -- ** Xgafv+    Xgafv (..),++    -- ** AddOnAttachment+    AddOnAttachment (..),+    newAddOnAttachment,++    -- ** AddOnAttachmentStudentSubmission+    AddOnAttachmentStudentSubmission (..),+    newAddOnAttachmentStudentSubmission,++    -- ** AddOnAttachmentStudentSubmission_PostSubmissionState+    AddOnAttachmentStudentSubmission_PostSubmissionState (..),++    -- ** AddOnContext+    AddOnContext (..),+    newAddOnContext,++    -- ** Announcement+    Announcement (..),+    newAnnouncement,++    -- ** Announcement_AssigneeMode+    Announcement_AssigneeMode (..),++    -- ** Announcement_State+    Announcement_State (..),++    -- ** Assignment+    Assignment (..),+    newAssignment,++    -- ** AssignmentSubmission+    AssignmentSubmission (..),+    newAssignmentSubmission,++    -- ** Attachment+    Attachment (..),+    newAttachment,++    -- ** CloudPubsubTopic+    CloudPubsubTopic (..),+    newCloudPubsubTopic,++    -- ** CopyHistory+    CopyHistory (..),+    newCopyHistory,++    -- ** Course+    Course (..),+    newCourse,++    -- ** Course_CourseState+    Course_CourseState (..),++    -- ** CourseAlias+    CourseAlias (..),+    newCourseAlias,++    -- ** CourseMaterial+    CourseMaterial (..),+    newCourseMaterial,++    -- ** CourseMaterialSet+    CourseMaterialSet (..),+    newCourseMaterialSet,++    -- ** CourseRosterChangesInfo+    CourseRosterChangesInfo (..),+    newCourseRosterChangesInfo,++    -- ** CourseWork+    CourseWork (..),+    newCourseWork,++    -- ** CourseWork_AssigneeMode+    CourseWork_AssigneeMode (..),++    -- ** CourseWork_State+    CourseWork_State (..),++    -- ** CourseWork_SubmissionModificationMode+    CourseWork_SubmissionModificationMode (..),++    -- ** CourseWork_WorkType+    CourseWork_WorkType (..),++    -- ** CourseWorkChangesInfo+    CourseWorkChangesInfo (..),+    newCourseWorkChangesInfo,++    -- ** CourseWorkMaterial+    CourseWorkMaterial (..),+    newCourseWorkMaterial,++    -- ** CourseWorkMaterial_AssigneeMode+    CourseWorkMaterial_AssigneeMode (..),++    -- ** CourseWorkMaterial_State+    CourseWorkMaterial_State (..),++    -- ** Criterion+    Criterion (..),+    newCriterion,++    -- ** Date+    Date (..),+    newDate,++    -- ** DriveFile+    DriveFile (..),+    newDriveFile,++    -- ** DriveFolder+    DriveFolder (..),+    newDriveFolder,++    -- ** EmbedUri+    EmbedUri (..),+    newEmbedUri,++    -- ** Empty+    Empty (..),+    newEmpty,++    -- ** Feed+    Feed (..),+    newFeed,++    -- ** Feed_FeedType+    Feed_FeedType (..),++    -- ** Form+    Form (..),+    newForm,++    -- ** GlobalPermission+    GlobalPermission (..),+    newGlobalPermission,++    -- ** GlobalPermission_Permission+    GlobalPermission_Permission (..),++    -- ** GradeCategory+    GradeCategory (..),+    newGradeCategory,++    -- ** GradeHistory+    GradeHistory (..),+    newGradeHistory,++    -- ** GradeHistory_GradeChangeType+    GradeHistory_GradeChangeType (..),++    -- ** GradebookSettings+    GradebookSettings (..),+    newGradebookSettings,++    -- ** GradebookSettings_CalculationType+    GradebookSettings_CalculationType (..),++    -- ** GradebookSettings_DisplaySetting+    GradebookSettings_DisplaySetting (..),++    -- ** Guardian+    Guardian (..),+    newGuardian,++    -- ** GuardianInvitation+    GuardianInvitation (..),+    newGuardianInvitation,++    -- ** GuardianInvitation_State+    GuardianInvitation_State (..),++    -- ** IndividualStudentsOptions+    IndividualStudentsOptions (..),+    newIndividualStudentsOptions,++    -- ** Invitation+    Invitation (..),+    newInvitation,++    -- ** Invitation_Role+    Invitation_Role (..),++    -- ** Level+    Level (..),+    newLevel,++    -- ** Link+    Link (..),+    newLink,++    -- ** ListAddOnAttachmentsResponse+    ListAddOnAttachmentsResponse (..),+    newListAddOnAttachmentsResponse,++    -- ** ListAnnouncementsResponse+    ListAnnouncementsResponse (..),+    newListAnnouncementsResponse,++    -- ** ListCourseAliasesResponse+    ListCourseAliasesResponse (..),+    newListCourseAliasesResponse,++    -- ** ListCourseWorkMaterialResponse+    ListCourseWorkMaterialResponse (..),+    newListCourseWorkMaterialResponse,++    -- ** ListCourseWorkResponse+    ListCourseWorkResponse (..),+    newListCourseWorkResponse,++    -- ** ListCoursesResponse+    ListCoursesResponse (..),+    newListCoursesResponse,++    -- ** ListGuardianInvitationsResponse+    ListGuardianInvitationsResponse (..),+    newListGuardianInvitationsResponse,++    -- ** ListGuardiansResponse+    ListGuardiansResponse (..),+    newListGuardiansResponse,++    -- ** ListInvitationsResponse+    ListInvitationsResponse (..),+    newListInvitationsResponse,++    -- ** ListRubricsResponse+    ListRubricsResponse (..),+    newListRubricsResponse,++    -- ** ListStudentSubmissionsResponse+    ListStudentSubmissionsResponse (..),+    newListStudentSubmissionsResponse,++    -- ** ListStudentsResponse+    ListStudentsResponse (..),+    newListStudentsResponse,++    -- ** ListTeachersResponse+    ListTeachersResponse (..),+    newListTeachersResponse,++    -- ** ListTopicResponse+    ListTopicResponse (..),+    newListTopicResponse,++    -- ** Material+    Material (..),+    newMaterial,++    -- ** ModifyAnnouncementAssigneesRequest+    ModifyAnnouncementAssigneesRequest (..),+    newModifyAnnouncementAssigneesRequest,++    -- ** ModifyAnnouncementAssigneesRequest_AssigneeMode+    ModifyAnnouncementAssigneesRequest_AssigneeMode (..),++    -- ** ModifyAttachmentsRequest+    ModifyAttachmentsRequest (..),+    newModifyAttachmentsRequest,++    -- ** ModifyCourseWorkAssigneesRequest+    ModifyCourseWorkAssigneesRequest (..),+    newModifyCourseWorkAssigneesRequest,++    -- ** ModifyCourseWorkAssigneesRequest_AssigneeMode+    ModifyCourseWorkAssigneesRequest_AssigneeMode (..),++    -- ** ModifyIndividualStudentsOptions+    ModifyIndividualStudentsOptions (..),+    newModifyIndividualStudentsOptions,++    -- ** MultipleChoiceQuestion+    MultipleChoiceQuestion (..),+    newMultipleChoiceQuestion,++    -- ** MultipleChoiceSubmission+    MultipleChoiceSubmission (..),+    newMultipleChoiceSubmission,++    -- ** Name+    Name (..),+    newName,++    -- ** ReclaimStudentSubmissionRequest+    ReclaimStudentSubmissionRequest (..),+    newReclaimStudentSubmissionRequest,++    -- ** Registration+    Registration (..),+    newRegistration,++    -- ** ReturnStudentSubmissionRequest+    ReturnStudentSubmissionRequest (..),+    newReturnStudentSubmissionRequest,++    -- ** Rubric+    Rubric (..),+    newRubric,++    -- ** RubricGrade+    RubricGrade (..),+    newRubricGrade,++    -- ** SharedDriveFile+    SharedDriveFile (..),+    newSharedDriveFile,++    -- ** SharedDriveFile_ShareMode+    SharedDriveFile_ShareMode (..),++    -- ** ShortAnswerSubmission+    ShortAnswerSubmission (..),+    newShortAnswerSubmission,++    -- ** StateHistory+    StateHistory (..),+    newStateHistory,++    -- ** StateHistory_State+    StateHistory_State (..),++    -- ** Student+    Student (..),+    newStudent,++    -- ** StudentContext+    StudentContext (..),+    newStudentContext,++    -- ** StudentSubmission+    StudentSubmission (..),+    newStudentSubmission,++    -- ** StudentSubmission_AssignedRubricGrades+    StudentSubmission_AssignedRubricGrades (..),+    newStudentSubmission_AssignedRubricGrades,++    -- ** StudentSubmission_CourseWorkType+    StudentSubmission_CourseWorkType (..),++    -- ** StudentSubmission_DraftRubricGrades+    StudentSubmission_DraftRubricGrades (..),+    newStudentSubmission_DraftRubricGrades,++    -- ** StudentSubmission_State+    StudentSubmission_State (..),++    -- ** SubmissionHistory+    SubmissionHistory (..),+    newSubmissionHistory,++    -- ** Teacher+    Teacher (..),+    newTeacher,++    -- ** TeacherContext+    TeacherContext (..),+    newTeacherContext,++    -- ** TimeOfDay'+    TimeOfDay' (..),+    newTimeOfDay,++    -- ** Topic+    Topic (..),+    newTopic,++    -- ** TurnInStudentSubmissionRequest+    TurnInStudentSubmissionRequest (..),+    newTurnInStudentSubmissionRequest,++    -- ** UserProfile+    UserProfile (..),+    newUserProfile,++    -- ** YouTubeVideo+    YouTubeVideo (..),+    newYouTubeVideo,++    -- ** CoursesAnnouncementsListAnnouncementStates+    CoursesAnnouncementsListAnnouncementStates (..),++    -- ** CoursesCourseWorkListCourseWorkStates+    CoursesCourseWorkListCourseWorkStates (..),++    -- ** CoursesCourseWorkStudentSubmissionsListLate+    CoursesCourseWorkStudentSubmissionsListLate (..),++    -- ** CoursesCourseWorkStudentSubmissionsListStates+    CoursesCourseWorkStudentSubmissionsListStates (..),++    -- ** CoursesCourseWorkMaterialsListCourseWorkMaterialStates+    CoursesCourseWorkMaterialsListCourseWorkMaterialStates (..),++    -- ** CoursesListCourseStates+    CoursesListCourseStates (..),++    -- ** UserProfilesGuardianInvitationsListStates+    UserProfilesGuardianInvitationsListStates (..),+  )+where++import Gogol.Classroom.Courses.Aliases.Create+import Gogol.Classroom.Courses.Aliases.Delete+import Gogol.Classroom.Courses.Aliases.List+import Gogol.Classroom.Courses.Announcements.AddOnAttachments.Create+import Gogol.Classroom.Courses.Announcements.AddOnAttachments.Delete+import Gogol.Classroom.Courses.Announcements.AddOnAttachments.Get+import Gogol.Classroom.Courses.Announcements.AddOnAttachments.List+import Gogol.Classroom.Courses.Announcements.AddOnAttachments.Patch+import Gogol.Classroom.Courses.Announcements.Create+import Gogol.Classroom.Courses.Announcements.Delete+import Gogol.Classroom.Courses.Announcements.Get+import Gogol.Classroom.Courses.Announcements.GetAddOnContext+import Gogol.Classroom.Courses.Announcements.List+import Gogol.Classroom.Courses.Announcements.ModifyAssignees+import Gogol.Classroom.Courses.Announcements.Patch+import Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Create+import Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Delete+import Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Get+import Gogol.Classroom.Courses.CourseWork.AddOnAttachments.List+import Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Patch+import Gogol.Classroom.Courses.CourseWork.AddOnAttachments.StudentSubmissions.Get+import Gogol.Classroom.Courses.CourseWork.AddOnAttachments.StudentSubmissions.Patch+import Gogol.Classroom.Courses.CourseWork.Create+import Gogol.Classroom.Courses.CourseWork.Delete+import Gogol.Classroom.Courses.CourseWork.Get+import Gogol.Classroom.Courses.CourseWork.GetAddOnContext+import Gogol.Classroom.Courses.CourseWork.List+import Gogol.Classroom.Courses.CourseWork.ModifyAssignees+import Gogol.Classroom.Courses.CourseWork.Patch+import Gogol.Classroom.Courses.CourseWork.Rubrics.Create+import Gogol.Classroom.Courses.CourseWork.Rubrics.Delete+import Gogol.Classroom.Courses.CourseWork.Rubrics.Get+import Gogol.Classroom.Courses.CourseWork.Rubrics.List+import Gogol.Classroom.Courses.CourseWork.Rubrics.Patch+import Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Get+import Gogol.Classroom.Courses.CourseWork.StudentSubmissions.List+import Gogol.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments+import Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Patch+import Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim+import Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Return+import Gogol.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn+import Gogol.Classroom.Courses.CourseWork.UpdateRubric+import Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Create+import Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Delete+import Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Get+import Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.List+import Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Patch+import Gogol.Classroom.Courses.CourseWorkMaterials.Create+import Gogol.Classroom.Courses.CourseWorkMaterials.Delete+import Gogol.Classroom.Courses.CourseWorkMaterials.Get+import Gogol.Classroom.Courses.CourseWorkMaterials.GetAddOnContext+import Gogol.Classroom.Courses.CourseWorkMaterials.List+import Gogol.Classroom.Courses.CourseWorkMaterials.Patch+import Gogol.Classroom.Courses.Create+import Gogol.Classroom.Courses.Delete+import Gogol.Classroom.Courses.Get+import Gogol.Classroom.Courses.List+import Gogol.Classroom.Courses.Patch+import Gogol.Classroom.Courses.Posts.AddOnAttachments.Create+import Gogol.Classroom.Courses.Posts.AddOnAttachments.Delete+import Gogol.Classroom.Courses.Posts.AddOnAttachments.Get+import Gogol.Classroom.Courses.Posts.AddOnAttachments.List+import Gogol.Classroom.Courses.Posts.AddOnAttachments.Patch+import Gogol.Classroom.Courses.Posts.AddOnAttachments.StudentSubmissions.Get+import Gogol.Classroom.Courses.Posts.AddOnAttachments.StudentSubmissions.Patch+import Gogol.Classroom.Courses.Posts.GetAddOnContext+import Gogol.Classroom.Courses.Students.Create+import Gogol.Classroom.Courses.Students.Delete+import Gogol.Classroom.Courses.Students.Get+import Gogol.Classroom.Courses.Students.List+import Gogol.Classroom.Courses.Teachers.Create+import Gogol.Classroom.Courses.Teachers.Delete+import Gogol.Classroom.Courses.Teachers.Get+import Gogol.Classroom.Courses.Teachers.List+import Gogol.Classroom.Courses.Topics.Create+import Gogol.Classroom.Courses.Topics.Delete+import Gogol.Classroom.Courses.Topics.Get+import Gogol.Classroom.Courses.Topics.List+import Gogol.Classroom.Courses.Topics.Patch+import Gogol.Classroom.Courses.Update+import Gogol.Classroom.Invitations.Accept+import Gogol.Classroom.Invitations.Create+import Gogol.Classroom.Invitations.Delete+import Gogol.Classroom.Invitations.Get+import Gogol.Classroom.Invitations.List+import Gogol.Classroom.Registrations.Create+import Gogol.Classroom.Registrations.Delete+import Gogol.Classroom.Types+import Gogol.Classroom.UserProfiles.Get+import Gogol.Classroom.UserProfiles.GuardianInvitations.Create+import Gogol.Classroom.UserProfiles.GuardianInvitations.Get+import Gogol.Classroom.UserProfiles.GuardianInvitations.List+import Gogol.Classroom.UserProfiles.GuardianInvitations.Patch+import Gogol.Classroom.UserProfiles.Guardians.Delete+import Gogol.Classroom.UserProfiles.Guardians.Get+import Gogol.Classroom.UserProfiles.Guardians.List
+ gen/Gogol/Classroom/Courses/Aliases/Create.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Aliases.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an alias for a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to create the alias or for access errors. * @NOT_FOUND@ if the course does not exist. * @ALREADY_EXISTS@ if the alias already exists. * @FAILED_PRECONDITION@ if the alias requested does not make sense for the requesting user or course (for example, if a user not in a domain attempts to access a domain-scoped alias).+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.aliases.create@.+module Gogol.Classroom.Courses.Aliases.Create+  ( -- * Resource+    ClassroomCoursesAliasesCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesAliasesCreate (..),+    newClassroomCoursesAliasesCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.aliases.create@ method which the+-- 'ClassroomCoursesAliasesCreate' request conforms to.+type ClassroomCoursesAliasesCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "aliases"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] CourseAlias+    Core.:> Core.Post '[Core.JSON] CourseAlias++-- | Creates an alias for a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to create the alias or for access errors. * @NOT_FOUND@ if the course does not exist. * @ALREADY_EXISTS@ if the alias already exists. * @FAILED_PRECONDITION@ if the alias requested does not make sense for the requesting user or course (for example, if a user not in a domain attempts to access a domain-scoped alias).+--+-- /See:/ 'newClassroomCoursesAliasesCreate' smart constructor.+data ClassroomCoursesAliasesCreate = ClassroomCoursesAliasesCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course to alias. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Multipart request metadata.+    payload :: CourseAlias,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAliasesCreate' with the minimum fields required to make a request.+newClassroomCoursesAliasesCreate ::+  -- |  Identifier of the course to alias. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  CourseAlias ->+  ClassroomCoursesAliasesCreate+newClassroomCoursesAliasesCreate courseId payload =+  ClassroomCoursesAliasesCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesAliasesCreate where+  type Rs ClassroomCoursesAliasesCreate = CourseAlias+  type Scopes ClassroomCoursesAliasesCreate = '[Classroom'Courses]+  requestClient ClassroomCoursesAliasesCreate {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesAliasesCreateResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Aliases/Delete.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Aliases.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an alias of a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to remove the alias or for access errors. * @NOT_FOUND@ if the alias does not exist. * @FAILED_PRECONDITION@ if the alias requested does not make sense for the requesting user or course (for example, if a user not in a domain attempts to delete a domain-scoped alias).+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.aliases.delete@.+module Gogol.Classroom.Courses.Aliases.Delete+  ( -- * Resource+    ClassroomCoursesAliasesDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesAliasesDelete (..),+    newClassroomCoursesAliasesDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.aliases.delete@ method which the+-- 'ClassroomCoursesAliasesDelete' request conforms to.+type ClassroomCoursesAliasesDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "aliases"+    Core.:> Core.Capture "alias" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes an alias of a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to remove the alias or for access errors. * @NOT_FOUND@ if the alias does not exist. * @FAILED_PRECONDITION@ if the alias requested does not make sense for the requesting user or course (for example, if a user not in a domain attempts to delete a domain-scoped alias).+--+-- /See:/ 'newClassroomCoursesAliasesDelete' smart constructor.+data ClassroomCoursesAliasesDelete = ClassroomCoursesAliasesDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Alias to delete. This may not be the Classroom-assigned identifier.+    alias :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course whose alias should be deleted. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAliasesDelete' with the minimum fields required to make a request.+newClassroomCoursesAliasesDelete ::+  -- |  Alias to delete. This may not be the Classroom-assigned identifier. See 'alias'.+  Core.Text ->+  -- |  Identifier of the course whose alias should be deleted. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  ClassroomCoursesAliasesDelete+newClassroomCoursesAliasesDelete alias courseId =+  ClassroomCoursesAliasesDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      alias = alias,+      callback = Core.Nothing,+      courseId = courseId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesAliasesDelete where+  type Rs ClassroomCoursesAliasesDelete = Empty+  type Scopes ClassroomCoursesAliasesDelete = '[Classroom'Courses]+  requestClient ClassroomCoursesAliasesDelete {..} =+    go+      courseId+      alias+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesAliasesDeleteResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Aliases/List.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Aliases.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of aliases for a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the course or for access errors. * @NOT_FOUND@ if the course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.aliases.list@.+module Gogol.Classroom.Courses.Aliases.List+  ( -- * Resource+    ClassroomCoursesAliasesListResource,++    -- ** Constructing a Request+    ClassroomCoursesAliasesList (..),+    newClassroomCoursesAliasesList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.aliases.list@ method which the+-- 'ClassroomCoursesAliasesList' request conforms to.+type ClassroomCoursesAliasesListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "aliases"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListCourseAliasesResponse++-- | Returns a list of aliases for a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the course or for access errors. * @NOT_FOUND@ if the course does not exist.+--+-- /See:/ 'newClassroomCoursesAliasesList' smart constructor.+data ClassroomCoursesAliasesList = ClassroomCoursesAliasesList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | The identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAliasesList' with the minimum fields required to make a request.+newClassroomCoursesAliasesList ::+  -- |  The identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  ClassroomCoursesAliasesList+newClassroomCoursesAliasesList courseId =+  ClassroomCoursesAliasesList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesAliasesList where+  type Rs ClassroomCoursesAliasesList = ListCourseAliasesResponse+  type+    Scopes ClassroomCoursesAliasesList =+      '[Classroom'Courses, Classroom'Courses'Readonly]+  requestClient ClassroomCoursesAliasesList {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesAliasesListResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/AddOnAttachments/Create.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.AddOnAttachments.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.addOnAttachments.create@.+module Gogol.Classroom.Courses.Announcements.AddOnAttachments.Create+  ( -- * Resource+    ClassroomCoursesAnnouncementsAddOnAttachmentsCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsAddOnAttachmentsCreate (..),+    newClassroomCoursesAnnouncementsAddOnAttachmentsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.addOnAttachments.create@ method which the+-- 'ClassroomCoursesAnnouncementsAddOnAttachmentsCreate' request conforms to.+type ClassroomCoursesAnnouncementsAddOnAttachmentsCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "addOnToken" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] AddOnAttachment+    Core.:> Core.Post '[Core.JSON] AddOnAttachment++-- | Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesAnnouncementsAddOnAttachmentsCreate' smart constructor.+data ClassroomCoursesAnnouncementsAddOnAttachmentsCreate = ClassroomCoursesAnnouncementsAddOnAttachmentsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Optional. Token that authorizes the request. The token is passed as a query parameter when the user is redirected from Classroom to the add-on\'s URL. This authorization token is required for in-Classroom attachment creation but optional for partner-first attachment creation. Returns an error if not provided for partner-first attachment creation and the developer projects that created the attachment and its parent stream item do not match.+    addOnToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which to create the attachment. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Multipart request metadata.+    payload :: AddOnAttachment,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsAddOnAttachmentsCreate' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsAddOnAttachmentsCreate ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which to create the attachment. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  AddOnAttachment ->+  ClassroomCoursesAnnouncementsAddOnAttachmentsCreate+newClassroomCoursesAnnouncementsAddOnAttachmentsCreate+  courseId+  itemId+  payload =+    ClassroomCoursesAnnouncementsAddOnAttachmentsCreate+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        addOnToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        payload = payload,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesAnnouncementsAddOnAttachmentsCreate+  where+  type+    Rs ClassroomCoursesAnnouncementsAddOnAttachmentsCreate =+      AddOnAttachment+  type+    Scopes ClassroomCoursesAnnouncementsAddOnAttachmentsCreate =+      '[Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesAnnouncementsAddOnAttachmentsCreate {..} =+      go+        courseId+        itemId+        xgafv+        accessToken+        addOnToken+        callback+        postId+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesAnnouncementsAddOnAttachmentsCreateResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/AddOnAttachments/Delete.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.AddOnAttachments.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.addOnAttachments.delete@.+module Gogol.Classroom.Courses.Announcements.AddOnAttachments.Delete+  ( -- * Resource+    ClassroomCoursesAnnouncementsAddOnAttachmentsDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsAddOnAttachmentsDelete (..),+    newClassroomCoursesAnnouncementsAddOnAttachmentsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.addOnAttachments.delete@ method which the+-- 'ClassroomCoursesAnnouncementsAddOnAttachmentsDelete' request conforms to.+type ClassroomCoursesAnnouncementsAddOnAttachmentsDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesAnnouncementsAddOnAttachmentsDelete' smart constructor.+data ClassroomCoursesAnnouncementsAddOnAttachmentsDelete = ClassroomCoursesAnnouncementsAddOnAttachmentsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsAddOnAttachmentsDelete' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsAddOnAttachmentsDelete ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesAnnouncementsAddOnAttachmentsDelete+newClassroomCoursesAnnouncementsAddOnAttachmentsDelete+  attachmentId+  courseId+  itemId =+    ClassroomCoursesAnnouncementsAddOnAttachmentsDelete+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesAnnouncementsAddOnAttachmentsDelete+  where+  type Rs ClassroomCoursesAnnouncementsAddOnAttachmentsDelete = Empty+  type+    Scopes ClassroomCoursesAnnouncementsAddOnAttachmentsDelete =+      '[Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesAnnouncementsAddOnAttachmentsDelete {..} =+      go+        courseId+        itemId+        attachmentId+        xgafv+        accessToken+        callback+        postId+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesAnnouncementsAddOnAttachmentsDeleteResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/AddOnAttachments/Get.hs view
@@ -0,0 +1,143 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.AddOnAttachments.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.addOnAttachments.get@.+module Gogol.Classroom.Courses.Announcements.AddOnAttachments.Get+  ( -- * Resource+    ClassroomCoursesAnnouncementsAddOnAttachmentsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsAddOnAttachmentsGet (..),+    newClassroomCoursesAnnouncementsAddOnAttachmentsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.addOnAttachments.get@ method which the+-- 'ClassroomCoursesAnnouncementsAddOnAttachmentsGet' request conforms to.+type ClassroomCoursesAnnouncementsAddOnAttachmentsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] AddOnAttachment++-- | Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesAnnouncementsAddOnAttachmentsGet' smart constructor.+data ClassroomCoursesAnnouncementsAddOnAttachmentsGet = ClassroomCoursesAnnouncementsAddOnAttachmentsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsAddOnAttachmentsGet' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsAddOnAttachmentsGet ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesAnnouncementsAddOnAttachmentsGet+newClassroomCoursesAnnouncementsAddOnAttachmentsGet+  attachmentId+  courseId+  itemId =+    ClassroomCoursesAnnouncementsAddOnAttachmentsGet+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesAnnouncementsAddOnAttachmentsGet+  where+  type+    Rs ClassroomCoursesAnnouncementsAddOnAttachmentsGet =+      AddOnAttachment+  type+    Scopes ClassroomCoursesAnnouncementsAddOnAttachmentsGet =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient ClassroomCoursesAnnouncementsAddOnAttachmentsGet {..} =+    go+      courseId+      itemId+      attachmentId+      xgafv+      accessToken+      callback+      postId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy+                ClassroomCoursesAnnouncementsAddOnAttachmentsGetResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/AddOnAttachments/List.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.AddOnAttachments.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.addOnAttachments.list@.+module Gogol.Classroom.Courses.Announcements.AddOnAttachments.List+  ( -- * Resource+    ClassroomCoursesAnnouncementsAddOnAttachmentsListResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsAddOnAttachmentsList (..),+    newClassroomCoursesAnnouncementsAddOnAttachmentsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.addOnAttachments.list@ method which the+-- 'ClassroomCoursesAnnouncementsAddOnAttachmentsList' request conforms to.+type ClassroomCoursesAnnouncementsAddOnAttachmentsListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListAddOnAttachmentsResponse++-- | Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesAnnouncementsAddOnAttachmentsList' smart constructor.+data ClassroomCoursesAnnouncementsAddOnAttachmentsList = ClassroomCoursesAnnouncementsAddOnAttachmentsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ whose attachments should be enumerated. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | The maximum number of attachments to return. The service may return fewer than this value. If unspecified, at most 20 attachments will be returned. The maximum value is 20; values above 20 will be coerced to 20.+    pageSize :: (Core.Maybe Core.Int32),+    -- | A page token, received from a previous @ListAddOnAttachments@ call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to @ListAddOnAttachments@ must match the call that provided the page token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Optional. Identifier of the post under the course whose attachments to enumerate. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsAddOnAttachmentsList' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsAddOnAttachmentsList ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ whose attachments should be enumerated. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesAnnouncementsAddOnAttachmentsList+newClassroomCoursesAnnouncementsAddOnAttachmentsList+  courseId+  itemId =+    ClassroomCoursesAnnouncementsAddOnAttachmentsList+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        pageSize = Core.Nothing,+        pageToken = Core.Nothing,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesAnnouncementsAddOnAttachmentsList+  where+  type+    Rs ClassroomCoursesAnnouncementsAddOnAttachmentsList =+      ListAddOnAttachmentsResponse+  type+    Scopes ClassroomCoursesAnnouncementsAddOnAttachmentsList =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient ClassroomCoursesAnnouncementsAddOnAttachmentsList {..} =+    go+      courseId+      itemId+      xgafv+      accessToken+      callback+      pageSize+      pageToken+      postId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy+                ClassroomCoursesAnnouncementsAddOnAttachmentsListResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/AddOnAttachments/Patch.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.AddOnAttachments.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.addOnAttachments.patch@.+module Gogol.Classroom.Courses.Announcements.AddOnAttachments.Patch+  ( -- * Resource+    ClassroomCoursesAnnouncementsAddOnAttachmentsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsAddOnAttachmentsPatch (..),+    newClassroomCoursesAnnouncementsAddOnAttachmentsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.addOnAttachments.patch@ method which the+-- 'ClassroomCoursesAnnouncementsAddOnAttachmentsPatch' request conforms to.+type ClassroomCoursesAnnouncementsAddOnAttachmentsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] AddOnAttachment+    Core.:> Core.Patch '[Core.JSON] AddOnAttachment++-- | Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesAnnouncementsAddOnAttachmentsPatch' smart constructor.+data ClassroomCoursesAnnouncementsAddOnAttachmentsPatch = ClassroomCoursesAnnouncementsAddOnAttachmentsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the post under which the attachment is attached.+    itemId :: Core.Text,+    -- | Multipart request metadata.+    payload :: AddOnAttachment,+    -- | Required. Identifier of the post under which the attachment is attached.+    postId :: (Core.Maybe Core.Text),+    -- | Required. Mask that identifies which fields on the attachment to 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 @AddOnAttachment@ object. If a field that does not support empty values is included in the update mask and not set in the @AddOnAttachment@ object, an @INVALID_ARGUMENT@ error is returned. The following fields may be specified by teachers: * @title@ * @teacher_view_uri@ * @student_view_uri@ * @student_work_review_uri@ * @due_date@ * @due_time@ * @max_points@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsAddOnAttachmentsPatch' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsAddOnAttachmentsPatch ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the post under which the attachment is attached. See 'itemId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  AddOnAttachment ->+  ClassroomCoursesAnnouncementsAddOnAttachmentsPatch+newClassroomCoursesAnnouncementsAddOnAttachmentsPatch+  attachmentId+  courseId+  itemId+  payload =+    ClassroomCoursesAnnouncementsAddOnAttachmentsPatch+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        payload = payload,+        postId = Core.Nothing,+        updateMask = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesAnnouncementsAddOnAttachmentsPatch+  where+  type+    Rs ClassroomCoursesAnnouncementsAddOnAttachmentsPatch =+      AddOnAttachment+  type+    Scopes ClassroomCoursesAnnouncementsAddOnAttachmentsPatch =+      '[Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesAnnouncementsAddOnAttachmentsPatch {..} =+      go+        courseId+        itemId+        attachmentId+        xgafv+        accessToken+        callback+        postId+        updateMask+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesAnnouncementsAddOnAttachmentsPatchResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/Create.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an announcement. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course, create announcements in the requested course, share a Drive attachment, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist. * @FAILED_PRECONDITION@ for the following request error: * AttachmentNotVisible+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.create@.+module Gogol.Classroom.Courses.Announcements.Create+  ( -- * Resource+    ClassroomCoursesAnnouncementsCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsCreate (..),+    newClassroomCoursesAnnouncementsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.create@ method which the+-- 'ClassroomCoursesAnnouncementsCreate' request conforms to.+type ClassroomCoursesAnnouncementsCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Announcement+    Core.:> Core.Post '[Core.JSON] Announcement++-- | Creates an announcement. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course, create announcements in the requested course, share a Drive attachment, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist. * @FAILED_PRECONDITION@ for the following request error: * AttachmentNotVisible+--+-- /See:/ 'newClassroomCoursesAnnouncementsCreate' smart constructor.+data ClassroomCoursesAnnouncementsCreate = ClassroomCoursesAnnouncementsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Multipart request metadata.+    payload :: Announcement,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsCreate' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsCreate ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Announcement ->+  ClassroomCoursesAnnouncementsCreate+newClassroomCoursesAnnouncementsCreate courseId payload =+  ClassroomCoursesAnnouncementsCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesAnnouncementsCreate where+  type Rs ClassroomCoursesAnnouncementsCreate = Announcement+  type+    Scopes ClassroomCoursesAnnouncementsCreate =+      '[Classroom'Announcements]+  requestClient ClassroomCoursesAnnouncementsCreate {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesAnnouncementsCreateResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/Delete.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an announcement. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding announcement item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding announcement, if the requesting user is not permitted to delete the requested course or for access errors. * @FAILED_PRECONDITION@ if the requested announcement has already been deleted. * @NOT_FOUND@ if no course exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.delete@.+module Gogol.Classroom.Courses.Announcements.Delete+  ( -- * Resource+    ClassroomCoursesAnnouncementsDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsDelete (..),+    newClassroomCoursesAnnouncementsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.delete@ method which the+-- 'ClassroomCoursesAnnouncementsDelete' request conforms to.+type ClassroomCoursesAnnouncementsDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes an announcement. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding announcement item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding announcement, if the requesting user is not permitted to delete the requested course or for access errors. * @FAILED_PRECONDITION@ if the requested announcement has already been deleted. * @NOT_FOUND@ if no course exists with the requested ID.+--+-- /See:/ 'newClassroomCoursesAnnouncementsDelete' smart constructor.+data ClassroomCoursesAnnouncementsDelete = ClassroomCoursesAnnouncementsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the announcement to delete. This identifier is a Classroom-assigned identifier.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsDelete' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsDelete ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the announcement to delete. This identifier is a Classroom-assigned identifier. See 'id'.+  Core.Text ->+  ClassroomCoursesAnnouncementsDelete+newClassroomCoursesAnnouncementsDelete courseId id =+  ClassroomCoursesAnnouncementsDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesAnnouncementsDelete where+  type Rs ClassroomCoursesAnnouncementsDelete = Empty+  type+    Scopes ClassroomCoursesAnnouncementsDelete =+      '[Classroom'Announcements]+  requestClient ClassroomCoursesAnnouncementsDelete {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesAnnouncementsDeleteResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/Get.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an announcement. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or announcement, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @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.get@.+module Gogol.Classroom.Courses.Announcements.Get+  ( -- * Resource+    ClassroomCoursesAnnouncementsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsGet (..),+    newClassroomCoursesAnnouncementsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.get@ method which the+-- 'ClassroomCoursesAnnouncementsGet' request conforms to.+type ClassroomCoursesAnnouncementsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Announcement++-- | Returns an announcement. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or announcement, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or announcement does not exist.+--+-- /See:/ 'newClassroomCoursesAnnouncementsGet' smart constructor.+data ClassroomCoursesAnnouncementsGet = ClassroomCoursesAnnouncementsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the announcement.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsGet' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsGet ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the announcement. See 'id'.+  Core.Text ->+  ClassroomCoursesAnnouncementsGet+newClassroomCoursesAnnouncementsGet courseId id =+  ClassroomCoursesAnnouncementsGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesAnnouncementsGet where+  type Rs ClassroomCoursesAnnouncementsGet = Announcement+  type+    Scopes ClassroomCoursesAnnouncementsGet =+      '[Classroom'Announcements, Classroom'Announcements'Readonly]+  requestClient ClassroomCoursesAnnouncementsGet {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesAnnouncementsGetResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/GetAddOnContext.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.GetAddOnContext+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call this to validate query parameters and the requesting user\'s role whenever the add-on is opened in an <https://developers.google.com/classroom/add-ons/get-started/iframes/iframes-overview iframe>. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.getAddOnContext@.+module Gogol.Classroom.Courses.Announcements.GetAddOnContext+  ( -- * Resource+    ClassroomCoursesAnnouncementsGetAddOnContextResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsGetAddOnContext (..),+    newClassroomCoursesAnnouncementsGetAddOnContext,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.getAddOnContext@ method which the+-- 'ClassroomCoursesAnnouncementsGetAddOnContext' request conforms to.+type ClassroomCoursesAnnouncementsGetAddOnContextResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnContext"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "addOnToken" Core.Text+    Core.:> Core.QueryParam "attachmentId" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] AddOnContext++-- | Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call this to validate query parameters and the requesting user\'s role whenever the add-on is opened in an <https://developers.google.com/classroom/add-ons/get-started/iframes/iframes-overview iframe>. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesAnnouncementsGetAddOnContext' smart constructor.+data ClassroomCoursesAnnouncementsGetAddOnContext = ClassroomCoursesAnnouncementsGetAddOnContext+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Optional. Token that authorizes the request. The token is passed as a query parameter when the user is redirected from Classroom to the add-on\'s URL. The authorization token is required when neither of the following is true: * The add-on has attachments on the post. * The developer project issuing the request is the same project that created the post.+    addOnToken :: (Core.Maybe Core.Text),+    -- | Optional. The identifier of the attachment. This field is required for all requests except when the user is in the <https://developers.google.com/classroom/add-ons/get-started/iframes/attachment-discovery-iframe Attachment Discovery iframe>.+    attachmentId :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsGetAddOnContext' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsGetAddOnContext ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesAnnouncementsGetAddOnContext+newClassroomCoursesAnnouncementsGetAddOnContext courseId itemId =+  ClassroomCoursesAnnouncementsGetAddOnContext+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      addOnToken = Core.Nothing,+      attachmentId = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      itemId = itemId,+      postId = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomCoursesAnnouncementsGetAddOnContext+  where+  type Rs ClassroomCoursesAnnouncementsGetAddOnContext = AddOnContext+  type+    Scopes ClassroomCoursesAnnouncementsGetAddOnContext =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient ClassroomCoursesAnnouncementsGetAddOnContext {..} =+    go+      courseId+      itemId+      xgafv+      accessToken+      addOnToken+      attachmentId+      callback+      postId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesAnnouncementsGetAddOnContextResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/List.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of announcements that the requester is permitted to view. Course students may only view @PUBLISHED@ announcements. Course teachers and domain administrators may view all announcements. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.list@.+module Gogol.Classroom.Courses.Announcements.List+  ( -- * Resource+    ClassroomCoursesAnnouncementsListResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsList (..),+    newClassroomCoursesAnnouncementsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.list@ method which the+-- 'ClassroomCoursesAnnouncementsList' request conforms to.+type ClassroomCoursesAnnouncementsListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParams+              "announcementStates"+              CoursesAnnouncementsListAnnouncementStates+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "orderBy" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListAnnouncementsResponse++-- | Returns a list of announcements that the requester is permitted to view. Course students may only view @PUBLISHED@ announcements. Course teachers and domain administrators may view all announcements. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ 'newClassroomCoursesAnnouncementsList' smart constructor.+data ClassroomCoursesAnnouncementsList = ClassroomCoursesAnnouncementsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Restriction on the @state@ of announcements returned. If this argument is left unspecified, the default value is @PUBLISHED@.+    announcementStates :: (Core.Maybe [CoursesAnnouncementsListAnnouncementStates]),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Optional sort ordering for results. A comma-separated list of fields with an optional sort direction keyword. Supported field is @updateTime@. Supported direction keywords are @asc@ and @desc@. If not specified, @updateTime desc@ is the default behavior. Examples: @updateTime asc@, @updateTime@+    orderBy :: (Core.Maybe Core.Text),+    -- | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsList' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsList ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  ClassroomCoursesAnnouncementsList+newClassroomCoursesAnnouncementsList courseId =+  ClassroomCoursesAnnouncementsList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      announcementStates = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      orderBy = Core.Nothing,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesAnnouncementsList where+  type+    Rs ClassroomCoursesAnnouncementsList =+      ListAnnouncementsResponse+  type+    Scopes ClassroomCoursesAnnouncementsList =+      '[Classroom'Announcements, Classroom'Announcements'Readonly]+  requestClient ClassroomCoursesAnnouncementsList {..} =+    go+      courseId+      xgafv+      accessToken+      (announcementStates Core.^. Core._Default)+      callback+      orderBy+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesAnnouncementsListResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/ModifyAssignees.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.ModifyAssignees+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies assignee mode and options of an announcement. Only a teacher of the course that contains the announcement may call this method. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or course work does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.modifyAssignees@.+module Gogol.Classroom.Courses.Announcements.ModifyAssignees+  ( -- * Resource+    ClassroomCoursesAnnouncementsModifyAssigneesResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsModifyAssignees (..),+    newClassroomCoursesAnnouncementsModifyAssignees,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.modifyAssignees@ method which the+-- 'ClassroomCoursesAnnouncementsModifyAssignees' request conforms to.+type ClassroomCoursesAnnouncementsModifyAssigneesResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.CaptureMode "id" "modifyAssignees" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] ModifyAnnouncementAssigneesRequest+    Core.:> Core.Post '[Core.JSON] Announcement++-- | Modifies assignee mode and options of an announcement. Only a teacher of the course that contains the announcement may call this method. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or course work does not exist.+--+-- /See:/ 'newClassroomCoursesAnnouncementsModifyAssignees' smart constructor.+data ClassroomCoursesAnnouncementsModifyAssignees = ClassroomCoursesAnnouncementsModifyAssignees+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the announcement.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: ModifyAnnouncementAssigneesRequest,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsModifyAssignees' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsModifyAssignees ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the announcement. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  ModifyAnnouncementAssigneesRequest ->+  ClassroomCoursesAnnouncementsModifyAssignees+newClassroomCoursesAnnouncementsModifyAssignees courseId id payload =+  ClassroomCoursesAnnouncementsModifyAssignees+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomCoursesAnnouncementsModifyAssignees+  where+  type Rs ClassroomCoursesAnnouncementsModifyAssignees = Announcement+  type+    Scopes ClassroomCoursesAnnouncementsModifyAssignees =+      '[Classroom'Announcements]+  requestClient ClassroomCoursesAnnouncementsModifyAssignees {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesAnnouncementsModifyAssigneesResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Announcements/Patch.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Announcements.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.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 Gogol.Classroom.Courses.Announcements.Patch+  ( -- * Resource+    ClassroomCoursesAnnouncementsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesAnnouncementsPatch (..),+    newClassroomCoursesAnnouncementsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.announcements.patch@ method which the+-- 'ClassroomCoursesAnnouncementsPatch' request conforms to.+type ClassroomCoursesAnnouncementsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "announcements"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Announcement+    Core.:> Core.Patch '[Core.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:/ 'newClassroomCoursesAnnouncementsPatch' smart constructor.+data ClassroomCoursesAnnouncementsPatch = ClassroomCoursesAnnouncementsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the announcement.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: Announcement,+    -- | 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 is returned. The following fields may be specified by teachers: * @text@ * @state@ * @scheduled_time@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesAnnouncementsPatch' with the minimum fields required to make a request.+newClassroomCoursesAnnouncementsPatch ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the announcement. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Announcement ->+  ClassroomCoursesAnnouncementsPatch+newClassroomCoursesAnnouncementsPatch courseId id payload =+  ClassroomCoursesAnnouncementsPatch+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      payload = payload,+      updateMask = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesAnnouncementsPatch where+  type Rs ClassroomCoursesAnnouncementsPatch = Announcement+  type+    Scopes ClassroomCoursesAnnouncementsPatch =+      '[Classroom'Announcements]+  requestClient ClassroomCoursesAnnouncementsPatch {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesAnnouncementsPatchResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/AddOnAttachments/Create.hs view
@@ -0,0 +1,148 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.addOnAttachments.create@.+module Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Create+  ( -- * Resource+    ClassroomCoursesCourseWorkAddOnAttachmentsCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkAddOnAttachmentsCreate (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.addOnAttachments.create@ method which the+-- 'ClassroomCoursesCourseWorkAddOnAttachmentsCreate' request conforms to.+type ClassroomCoursesCourseWorkAddOnAttachmentsCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "addOnToken" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] AddOnAttachment+    Core.:> Core.Post '[Core.JSON] AddOnAttachment++-- | Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkAddOnAttachmentsCreate' smart constructor.+data ClassroomCoursesCourseWorkAddOnAttachmentsCreate = ClassroomCoursesCourseWorkAddOnAttachmentsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Optional. Token that authorizes the request. The token is passed as a query parameter when the user is redirected from Classroom to the add-on\'s URL. This authorization token is required for in-Classroom attachment creation but optional for partner-first attachment creation. Returns an error if not provided for partner-first attachment creation and the developer projects that created the attachment and its parent stream item do not match.+    addOnToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which to create the attachment. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Multipart request metadata.+    payload :: AddOnAttachment,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkAddOnAttachmentsCreate' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkAddOnAttachmentsCreate ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which to create the attachment. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  AddOnAttachment ->+  ClassroomCoursesCourseWorkAddOnAttachmentsCreate+newClassroomCoursesCourseWorkAddOnAttachmentsCreate+  courseId+  itemId+  payload =+    ClassroomCoursesCourseWorkAddOnAttachmentsCreate+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        addOnToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        payload = payload,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkAddOnAttachmentsCreate+  where+  type+    Rs ClassroomCoursesCourseWorkAddOnAttachmentsCreate =+      AddOnAttachment+  type+    Scopes ClassroomCoursesCourseWorkAddOnAttachmentsCreate =+      '[Classroom'Addons'Teacher]+  requestClient ClassroomCoursesCourseWorkAddOnAttachmentsCreate {..} =+    go+      courseId+      itemId+      xgafv+      accessToken+      addOnToken+      callback+      postId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy+                ClassroomCoursesCourseWorkAddOnAttachmentsCreateResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/AddOnAttachments/Delete.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.addOnAttachments.delete@.+module Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Delete+  ( -- * Resource+    ClassroomCoursesCourseWorkAddOnAttachmentsDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkAddOnAttachmentsDelete (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.addOnAttachments.delete@ method which the+-- 'ClassroomCoursesCourseWorkAddOnAttachmentsDelete' request conforms to.+type ClassroomCoursesCourseWorkAddOnAttachmentsDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkAddOnAttachmentsDelete' smart constructor.+data ClassroomCoursesCourseWorkAddOnAttachmentsDelete = ClassroomCoursesCourseWorkAddOnAttachmentsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkAddOnAttachmentsDelete' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkAddOnAttachmentsDelete ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesCourseWorkAddOnAttachmentsDelete+newClassroomCoursesCourseWorkAddOnAttachmentsDelete+  attachmentId+  courseId+  itemId =+    ClassroomCoursesCourseWorkAddOnAttachmentsDelete+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkAddOnAttachmentsDelete+  where+  type Rs ClassroomCoursesCourseWorkAddOnAttachmentsDelete = Empty+  type+    Scopes ClassroomCoursesCourseWorkAddOnAttachmentsDelete =+      '[Classroom'Addons'Teacher]+  requestClient ClassroomCoursesCourseWorkAddOnAttachmentsDelete {..} =+    go+      courseId+      itemId+      attachmentId+      xgafv+      accessToken+      callback+      postId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy+                ClassroomCoursesCourseWorkAddOnAttachmentsDeleteResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/AddOnAttachments/Get.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.addOnAttachments.get@.+module Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Get+  ( -- * Resource+    ClassroomCoursesCourseWorkAddOnAttachmentsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkAddOnAttachmentsGet (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.addOnAttachments.get@ method which the+-- 'ClassroomCoursesCourseWorkAddOnAttachmentsGet' request conforms to.+type ClassroomCoursesCourseWorkAddOnAttachmentsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] AddOnAttachment++-- | Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkAddOnAttachmentsGet' smart constructor.+data ClassroomCoursesCourseWorkAddOnAttachmentsGet = ClassroomCoursesCourseWorkAddOnAttachmentsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkAddOnAttachmentsGet' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkAddOnAttachmentsGet ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesCourseWorkAddOnAttachmentsGet+newClassroomCoursesCourseWorkAddOnAttachmentsGet+  attachmentId+  courseId+  itemId =+    ClassroomCoursesCourseWorkAddOnAttachmentsGet+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkAddOnAttachmentsGet+  where+  type+    Rs ClassroomCoursesCourseWorkAddOnAttachmentsGet =+      AddOnAttachment+  type+    Scopes ClassroomCoursesCourseWorkAddOnAttachmentsGet =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient ClassroomCoursesCourseWorkAddOnAttachmentsGet {..} =+    go+      courseId+      itemId+      attachmentId+      xgafv+      accessToken+      callback+      postId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkAddOnAttachmentsGetResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/AddOnAttachments/List.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.AddOnAttachments.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.addOnAttachments.list@.+module Gogol.Classroom.Courses.CourseWork.AddOnAttachments.List+  ( -- * Resource+    ClassroomCoursesCourseWorkAddOnAttachmentsListResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkAddOnAttachmentsList (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.addOnAttachments.list@ method which the+-- 'ClassroomCoursesCourseWorkAddOnAttachmentsList' request conforms to.+type ClassroomCoursesCourseWorkAddOnAttachmentsListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListAddOnAttachmentsResponse++-- | Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkAddOnAttachmentsList' smart constructor.+data ClassroomCoursesCourseWorkAddOnAttachmentsList = ClassroomCoursesCourseWorkAddOnAttachmentsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ whose attachments should be enumerated. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | The maximum number of attachments to return. The service may return fewer than this value. If unspecified, at most 20 attachments will be returned. The maximum value is 20; values above 20 will be coerced to 20.+    pageSize :: (Core.Maybe Core.Int32),+    -- | A page token, received from a previous @ListAddOnAttachments@ call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to @ListAddOnAttachments@ must match the call that provided the page token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Optional. Identifier of the post under the course whose attachments to enumerate. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkAddOnAttachmentsList' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkAddOnAttachmentsList ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ whose attachments should be enumerated. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesCourseWorkAddOnAttachmentsList+newClassroomCoursesCourseWorkAddOnAttachmentsList courseId itemId =+  ClassroomCoursesCourseWorkAddOnAttachmentsList+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      itemId = itemId,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      postId = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkAddOnAttachmentsList+  where+  type+    Rs ClassroomCoursesCourseWorkAddOnAttachmentsList =+      ListAddOnAttachmentsResponse+  type+    Scopes ClassroomCoursesCourseWorkAddOnAttachmentsList =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient ClassroomCoursesCourseWorkAddOnAttachmentsList {..} =+    go+      courseId+      itemId+      xgafv+      accessToken+      callback+      pageSize+      pageToken+      postId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkAddOnAttachmentsListResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/AddOnAttachments/Patch.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.addOnAttachments.patch@.+module Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Patch+  ( -- * Resource+    ClassroomCoursesCourseWorkAddOnAttachmentsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkAddOnAttachmentsPatch (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.addOnAttachments.patch@ method which the+-- 'ClassroomCoursesCourseWorkAddOnAttachmentsPatch' request conforms to.+type ClassroomCoursesCourseWorkAddOnAttachmentsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] AddOnAttachment+    Core.:> Core.Patch '[Core.JSON] AddOnAttachment++-- | Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkAddOnAttachmentsPatch' smart constructor.+data ClassroomCoursesCourseWorkAddOnAttachmentsPatch = ClassroomCoursesCourseWorkAddOnAttachmentsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the post under which the attachment is attached.+    itemId :: Core.Text,+    -- | Multipart request metadata.+    payload :: AddOnAttachment,+    -- | Required. Identifier of the post under which the attachment is attached.+    postId :: (Core.Maybe Core.Text),+    -- | Required. Mask that identifies which fields on the attachment to 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 @AddOnAttachment@ object. If a field that does not support empty values is included in the update mask and not set in the @AddOnAttachment@ object, an @INVALID_ARGUMENT@ error is returned. The following fields may be specified by teachers: * @title@ * @teacher_view_uri@ * @student_view_uri@ * @student_work_review_uri@ * @due_date@ * @due_time@ * @max_points@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkAddOnAttachmentsPatch' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkAddOnAttachmentsPatch ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the post under which the attachment is attached. See 'itemId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  AddOnAttachment ->+  ClassroomCoursesCourseWorkAddOnAttachmentsPatch+newClassroomCoursesCourseWorkAddOnAttachmentsPatch+  attachmentId+  courseId+  itemId+  payload =+    ClassroomCoursesCourseWorkAddOnAttachmentsPatch+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        payload = payload,+        postId = Core.Nothing,+        updateMask = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkAddOnAttachmentsPatch+  where+  type+    Rs ClassroomCoursesCourseWorkAddOnAttachmentsPatch =+      AddOnAttachment+  type+    Scopes ClassroomCoursesCourseWorkAddOnAttachmentsPatch =+      '[Classroom'Addons'Teacher]+  requestClient ClassroomCoursesCourseWorkAddOnAttachmentsPatch {..} =+    go+      courseId+      itemId+      attachmentId+      xgafv+      accessToken+      callback+      postId+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkAddOnAttachmentsPatchResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/AddOnAttachments/StudentSubmissions/Get.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.AddOnAttachments.StudentSubmissions.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a student submission for an add-on attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.addOnAttachments.studentSubmissions.get@.+module Gogol.Classroom.Courses.CourseWork.AddOnAttachments.StudentSubmissions.Get+  ( -- * Resource+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.addOnAttachments.studentSubmissions.get@ method which the+-- 'ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet' request conforms to.+type ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.Capture "submissionId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] AddOnAttachmentStudentSubmission++-- | Returns a student submission for an add-on attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet' smart constructor.+data ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet = ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the student’s submission.+    submissionId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  -- |  Required. Identifier of the student’s submission. See 'submissionId'.+  Core.Text ->+  ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet+newClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet+  attachmentId+  courseId+  itemId+  submissionId =+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        postId = Core.Nothing,+        submissionId = submissionId,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet+  where+  type+    Rs+      ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet =+      AddOnAttachmentStudentSubmission+  type+    Scopes+      ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet =+      '[ Classroom'Addons'Student,+         Classroom'Addons'Teacher,+         Classroom'StudentSubmissions'Students'Readonly+       ]+  requestClient+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGet {..} =+      go+        courseId+        itemId+        attachmentId+        submissionId+        xgafv+        accessToken+        callback+        postId+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsGetResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/AddOnAttachments/StudentSubmissions/Patch.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.AddOnAttachments.StudentSubmissions.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates data associated with an add-on attachment submission. Requires the add-on to have been the original creator of the attachment and the attachment to have a positive @max_points@ value set. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.addOnAttachments.studentSubmissions.patch@.+module Gogol.Classroom.Courses.CourseWork.AddOnAttachments.StudentSubmissions.Patch+  ( -- * Resource+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch (..),+    newClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.addOnAttachments.studentSubmissions.patch@ method which the+-- 'ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch' request conforms to.+type ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.Capture "submissionId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] AddOnAttachmentStudentSubmission+    Core.:> Core.Patch '[Core.JSON] AddOnAttachmentStudentSubmission++-- | Updates data associated with an add-on attachment submission. Requires the add-on to have been the original creator of the attachment and the attachment to have a positive @max_points@ value set. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch' smart constructor.+data ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch = ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Multipart request metadata.+    payload :: AddOnAttachmentStudentSubmission,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the student\'s submission.+    submissionId :: Core.Text,+    -- | Required. Mask that identifies which fields on the attachment to 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 @AddOnAttachmentStudentSubmission@ object. The following fields may be specified by teachers: * @points_earned@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  AddOnAttachmentStudentSubmission ->+  -- |  Required. Identifier of the student\'s submission. See 'submissionId'.+  Core.Text ->+  ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch+newClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch+  attachmentId+  courseId+  itemId+  payload+  submissionId =+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        payload = payload,+        postId = Core.Nothing,+        submissionId = submissionId,+        updateMask = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch+  where+  type+    Rs+      ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch =+      AddOnAttachmentStudentSubmission+  type+    Scopes+      ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch =+      '[Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatch {..} =+      go+        courseId+        itemId+        attachmentId+        submissionId+        xgafv+        accessToken+        callback+        postId+        updateMask+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkAddOnAttachmentsStudentSubmissionsPatchResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/Create.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates course work. The resulting course work (and corresponding student submissions) are associated with the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to make the request. Classroom API requests to modify course work and student submissions must be made with an OAuth client ID from the associated Developer Console project. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course, create course work in the requested course, share a Drive attachment, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist. * @FAILED_PRECONDITION@ for the following request error: * AttachmentNotVisible+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.create@.+module Gogol.Classroom.Courses.CourseWork.Create+  ( -- * Resource+    ClassroomCoursesCourseWorkCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkCreate (..),+    newClassroomCoursesCourseWorkCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.create@ method which the+-- 'ClassroomCoursesCourseWorkCreate' request conforms to.+type ClassroomCoursesCourseWorkCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] CourseWork+    Core.:> Core.Post '[Core.JSON] CourseWork++-- | Creates course work. The resulting course work (and corresponding student submissions) are associated with the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to make the request. Classroom API requests to modify course work and student submissions must be made with an OAuth client ID from the associated Developer Console project. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course, create course work in the requested course, share a Drive attachment, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist. * @FAILED_PRECONDITION@ for the following request error: * AttachmentNotVisible+--+-- /See:/ 'newClassroomCoursesCourseWorkCreate' smart constructor.+data ClassroomCoursesCourseWorkCreate = ClassroomCoursesCourseWorkCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Multipart request metadata.+    payload :: CourseWork,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkCreate' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkCreate ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  CourseWork ->+  ClassroomCoursesCourseWorkCreate+newClassroomCoursesCourseWorkCreate courseId payload =+  ClassroomCoursesCourseWorkCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCourseWorkCreate where+  type Rs ClassroomCoursesCourseWorkCreate = CourseWork+  type+    Scopes ClassroomCoursesCourseWorkCreate =+      '[Classroom'Coursework'Students]+  requestClient ClassroomCoursesCourseWorkCreate {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesCourseWorkCreateResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/Delete.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a course work. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding course work, if the requesting user is not permitted to delete the requested course or for access errors. * @FAILED_PRECONDITION@ if the requested course work has already been deleted. * @NOT_FOUND@ if no course exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.delete@.+module Gogol.Classroom.Courses.CourseWork.Delete+  ( -- * Resource+    ClassroomCoursesCourseWorkDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkDelete (..),+    newClassroomCoursesCourseWorkDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.delete@ method which the+-- 'ClassroomCoursesCourseWorkDelete' request conforms to.+type ClassroomCoursesCourseWorkDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a course work. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding course work, if the requesting user is not permitted to delete the requested course or for access errors. * @FAILED_PRECONDITION@ if the requested course work has already been deleted. * @NOT_FOUND@ if no course exists with the requested ID.+--+-- /See:/ 'newClassroomCoursesCourseWorkDelete' smart constructor.+data ClassroomCoursesCourseWorkDelete = ClassroomCoursesCourseWorkDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work to delete. This identifier is a Classroom-assigned identifier.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkDelete' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkDelete ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work to delete. This identifier is a Classroom-assigned identifier. See 'id'.+  Core.Text ->+  ClassroomCoursesCourseWorkDelete+newClassroomCoursesCourseWorkDelete courseId id =+  ClassroomCoursesCourseWorkDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCourseWorkDelete where+  type Rs ClassroomCoursesCourseWorkDelete = Empty+  type+    Scopes ClassroomCoursesCourseWorkDelete =+      '[Classroom'Coursework'Students]+  requestClient ClassroomCoursesCourseWorkDelete {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesCourseWorkDeleteResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/Get.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns course work. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or course work does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.get@.+module Gogol.Classroom.Courses.CourseWork.Get+  ( -- * Resource+    ClassroomCoursesCourseWorkGetResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkGet (..),+    newClassroomCoursesCourseWorkGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.get@ method which the+-- 'ClassroomCoursesCourseWorkGet' request conforms to.+type ClassroomCoursesCourseWorkGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] CourseWork++-- | Returns course work. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or course work does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkGet' smart constructor.+data ClassroomCoursesCourseWorkGet = ClassroomCoursesCourseWorkGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkGet' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkGet ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work. See 'id'.+  Core.Text ->+  ClassroomCoursesCourseWorkGet+newClassroomCoursesCourseWorkGet courseId id =+  ClassroomCoursesCourseWorkGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCourseWorkGet where+  type Rs ClassroomCoursesCourseWorkGet = CourseWork+  type+    Scopes ClassroomCoursesCourseWorkGet =+      '[ Classroom'Coursework'Me,+         Classroom'Coursework'Me'Readonly,+         Classroom'Coursework'Students,+         Classroom'Coursework'Students'Readonly+       ]+  requestClient ClassroomCoursesCourseWorkGet {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesCourseWorkGetResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/GetAddOnContext.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.GetAddOnContext+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call this to validate query parameters and the requesting user\'s role whenever the add-on is opened in an <https://developers.google.com/classroom/add-ons/get-started/iframes/iframes-overview iframe>. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.getAddOnContext@.+module Gogol.Classroom.Courses.CourseWork.GetAddOnContext+  ( -- * Resource+    ClassroomCoursesCourseWorkGetAddOnContextResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkGetAddOnContext (..),+    newClassroomCoursesCourseWorkGetAddOnContext,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.getAddOnContext@ method which the+-- 'ClassroomCoursesCourseWorkGetAddOnContext' request conforms to.+type ClassroomCoursesCourseWorkGetAddOnContextResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnContext"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "addOnToken" Core.Text+    Core.:> Core.QueryParam "attachmentId" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] AddOnContext++-- | Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call this to validate query parameters and the requesting user\'s role whenever the add-on is opened in an <https://developers.google.com/classroom/add-ons/get-started/iframes/iframes-overview iframe>. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkGetAddOnContext' smart constructor.+data ClassroomCoursesCourseWorkGetAddOnContext = ClassroomCoursesCourseWorkGetAddOnContext+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Optional. Token that authorizes the request. The token is passed as a query parameter when the user is redirected from Classroom to the add-on\'s URL. The authorization token is required when neither of the following is true: * The add-on has attachments on the post. * The developer project issuing the request is the same project that created the post.+    addOnToken :: (Core.Maybe Core.Text),+    -- | Optional. The identifier of the attachment. This field is required for all requests except when the user is in the <https://developers.google.com/classroom/add-ons/get-started/iframes/attachment-discovery-iframe Attachment Discovery iframe>.+    attachmentId :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkGetAddOnContext' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkGetAddOnContext ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesCourseWorkGetAddOnContext+newClassroomCoursesCourseWorkGetAddOnContext courseId itemId =+  ClassroomCoursesCourseWorkGetAddOnContext+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      addOnToken = Core.Nothing,+      attachmentId = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      itemId = itemId,+      postId = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkGetAddOnContext+  where+  type Rs ClassroomCoursesCourseWorkGetAddOnContext = AddOnContext+  type+    Scopes ClassroomCoursesCourseWorkGetAddOnContext =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient ClassroomCoursesCourseWorkGetAddOnContext {..} =+    go+      courseId+      itemId+      xgafv+      accessToken+      addOnToken+      attachmentId+      callback+      postId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkGetAddOnContextResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/List.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of course work that the requester is permitted to view. Course students may only view @PUBLISHED@ course work. Course teachers and domain administrators may view all course work. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.list@.+module Gogol.Classroom.Courses.CourseWork.List+  ( -- * Resource+    ClassroomCoursesCourseWorkListResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkList (..),+    newClassroomCoursesCourseWorkList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.list@ method which the+-- 'ClassroomCoursesCourseWorkList' request conforms to.+type ClassroomCoursesCourseWorkListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParams+              "courseWorkStates"+              CoursesCourseWorkListCourseWorkStates+    Core.:> Core.QueryParam "orderBy" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListCourseWorkResponse++-- | Returns a list of course work that the requester is permitted to view. Course students may only view @PUBLISHED@ course work. Course teachers and domain administrators may view all course work. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkList' smart constructor.+data ClassroomCoursesCourseWorkList = ClassroomCoursesCourseWorkList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Restriction on the work status to return. Only courseWork that matches is returned. If unspecified, items with a work status of @PUBLISHED@ is returned.+    courseWorkStates :: (Core.Maybe [CoursesCourseWorkListCourseWorkStates]),+    -- | Optional sort ordering for results. A comma-separated list of fields with an optional sort direction keyword. Supported fields are @updateTime@ and @dueDate@. Supported direction keywords are @asc@ and @desc@. If not specified, @updateTime desc@ is the default behavior. Examples: @dueDate asc,updateTime desc@, @updateTime,dueDate desc@+    orderBy :: (Core.Maybe Core.Text),+    -- | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkList' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkList ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  ClassroomCoursesCourseWorkList+newClassroomCoursesCourseWorkList courseId =+  ClassroomCoursesCourseWorkList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      courseWorkStates = Core.Nothing,+      orderBy = Core.Nothing,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCourseWorkList where+  type Rs ClassroomCoursesCourseWorkList = ListCourseWorkResponse+  type+    Scopes ClassroomCoursesCourseWorkList =+      '[ Classroom'Coursework'Me,+         Classroom'Coursework'Me'Readonly,+         Classroom'Coursework'Students,+         Classroom'Coursework'Students'Readonly+       ]+  requestClient ClassroomCoursesCourseWorkList {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      (courseWorkStates Core.^. Core._Default)+      orderBy+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesCourseWorkListResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/ModifyAssignees.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.ModifyAssignees+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies assignee mode and options of a coursework. Only a teacher of the course that contains the coursework may call this method. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or course work does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.modifyAssignees@.+module Gogol.Classroom.Courses.CourseWork.ModifyAssignees+  ( -- * Resource+    ClassroomCoursesCourseWorkModifyAssigneesResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkModifyAssignees (..),+    newClassroomCoursesCourseWorkModifyAssignees,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.modifyAssignees@ method which the+-- 'ClassroomCoursesCourseWorkModifyAssignees' request conforms to.+type ClassroomCoursesCourseWorkModifyAssigneesResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.CaptureMode "id" "modifyAssignees" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] ModifyCourseWorkAssigneesRequest+    Core.:> Core.Post '[Core.JSON] CourseWork++-- | Modifies assignee mode and options of a coursework. Only a teacher of the course that contains the coursework may call this method. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or course work does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkModifyAssignees' smart constructor.+data ClassroomCoursesCourseWorkModifyAssignees = ClassroomCoursesCourseWorkModifyAssignees+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the coursework.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: ModifyCourseWorkAssigneesRequest,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkModifyAssignees' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkModifyAssignees ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the coursework. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  ModifyCourseWorkAssigneesRequest ->+  ClassroomCoursesCourseWorkModifyAssignees+newClassroomCoursesCourseWorkModifyAssignees courseId id payload =+  ClassroomCoursesCourseWorkModifyAssignees+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkModifyAssignees+  where+  type Rs ClassroomCoursesCourseWorkModifyAssignees = CourseWork+  type+    Scopes ClassroomCoursesCourseWorkModifyAssignees =+      '[Classroom'Coursework'Students]+  requestClient ClassroomCoursesCourseWorkModifyAssignees {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkModifyAssigneesResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/Patch.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates one or more fields of a course work. See google.classroom.v1.CourseWork for details of which fields may be updated and who may change them. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding course work, if the user is not permitted to make the requested modification to the student submission, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @FAILED_PRECONDITION@ if the requested course work has already been deleted. * @NOT_FOUND@ if the requested course or course work does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.patch@.+module Gogol.Classroom.Courses.CourseWork.Patch+  ( -- * Resource+    ClassroomCoursesCourseWorkPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkPatch (..),+    newClassroomCoursesCourseWorkPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.patch@ method which the+-- 'ClassroomCoursesCourseWorkPatch' request conforms to.+type ClassroomCoursesCourseWorkPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] CourseWork+    Core.:> Core.Patch '[Core.JSON] CourseWork++-- | Updates one or more fields of a course work. See google.classroom.v1.CourseWork for details of which fields may be updated and who may change them. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding course work, if the user is not permitted to make the requested modification to the student submission, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @FAILED_PRECONDITION@ if the requested course work has already been deleted. * @NOT_FOUND@ if the requested course or course work does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkPatch' smart constructor.+data ClassroomCoursesCourseWorkPatch = ClassroomCoursesCourseWorkPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: CourseWork,+    -- | Mask that identifies which fields on the course work 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 @CourseWork@ object. If a field that does not support empty values is included in the update mask and not set in the @CourseWork@ object, an @INVALID_ARGUMENT@ error is returned. The following fields may be specified by teachers: * @title@ * @description@ * @state@ * @due_date@ * @due_time@ * @max_points@ * @scheduled_time@ * @submission_modification_mode@ * @topic_id@ * @grading_period_id@ Available in <https://developers.google.com/classroom/reference/preview V120240401PREVIEW> and later.+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkPatch' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkPatch ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  CourseWork ->+  ClassroomCoursesCourseWorkPatch+newClassroomCoursesCourseWorkPatch courseId id payload =+  ClassroomCoursesCourseWorkPatch+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      payload = payload,+      updateMask = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCourseWorkPatch where+  type Rs ClassroomCoursesCourseWorkPatch = CourseWork+  type+    Scopes ClassroomCoursesCourseWorkPatch =+      '[Classroom'Coursework'Students]+  requestClient ClassroomCoursesCourseWorkPatch {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesCourseWorkPatchResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/Rubrics/Create.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.Rubrics.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a rubric. The requesting user and course owner must have rubrics creation capabilities. For details, see <https://developers.google.com/classroom/rubrics/limitations#license-requirements licensing requirements>. For further details, see </classroom/rubrics/limitations Rubrics structure and known limitations>. This request must be made by the Google Cloud console of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the parent course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user isn\'t permitted to create rubrics for course work in the requested course. * @INTERNAL@ if the request has insufficient OAuth scopes. * @INVALID_ARGUMENT@ if the request is malformed and for the following request error: * @RubricCriteriaInvalidFormat@ * @NOT_FOUND@ if the requested course or course work don\'t exist or the user doesn\'t have access to the course or course work. * @FAILED_PRECONDITION@ for the following request error: *+-- @AttachmentNotVisible@+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.rubrics.create@.+module Gogol.Classroom.Courses.CourseWork.Rubrics.Create+  ( -- * Resource+    ClassroomCoursesCourseWorkRubricsCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkRubricsCreate (..),+    newClassroomCoursesCourseWorkRubricsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.rubrics.create@ method which the+-- 'ClassroomCoursesCourseWorkRubricsCreate' request conforms to.+type ClassroomCoursesCourseWorkRubricsCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "rubrics"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Rubric+    Core.:> Core.Post '[Core.JSON] Rubric++-- | Creates a rubric. The requesting user and course owner must have rubrics creation capabilities. For details, see <https://developers.google.com/classroom/rubrics/limitations#license-requirements licensing requirements>. For further details, see </classroom/rubrics/limitations Rubrics structure and known limitations>. This request must be made by the Google Cloud console of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the parent course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user isn\'t permitted to create rubrics for course work in the requested course. * @INTERNAL@ if the request has insufficient OAuth scopes. * @INVALID_ARGUMENT@ if the request is malformed and for the following request error: * @RubricCriteriaInvalidFormat@ * @NOT_FOUND@ if the requested course or course work don\'t exist or the user doesn\'t have access to the course or course work. * @FAILED_PRECONDITION@ for the following request error: *+-- @AttachmentNotVisible@+--+-- /See:/ 'newClassroomCoursesCourseWorkRubricsCreate' smart constructor.+data ClassroomCoursesCourseWorkRubricsCreate = ClassroomCoursesCourseWorkRubricsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Required. Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Multipart request metadata.+    payload :: Rubric,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkRubricsCreate' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkRubricsCreate ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Required. Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Rubric ->+  ClassroomCoursesCourseWorkRubricsCreate+newClassroomCoursesCourseWorkRubricsCreate+  courseId+  courseWorkId+  payload =+    ClassroomCoursesCourseWorkRubricsCreate+      { xgafv = Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        courseWorkId = courseWorkId,+        payload = payload,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance Core.GoogleRequest ClassroomCoursesCourseWorkRubricsCreate where+  type Rs ClassroomCoursesCourseWorkRubricsCreate = Rubric+  type+    Scopes ClassroomCoursesCourseWorkRubricsCreate =+      '[Classroom'Coursework'Students]+  requestClient ClassroomCoursesCourseWorkRubricsCreate {..} =+    go+      courseId+      courseWorkId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkRubricsCreateResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/Rubrics/Delete.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.Rubrics.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a rubric. The requesting user and course owner must have rubrics creation capabilities. For details, see <https://developers.google.com/classroom/rubrics/limitations#license-requirements licensing requirements>. This request must be made by the Google Cloud console of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding rubric. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project didn\'t create the corresponding rubric, or if the requesting user isn\'t permitted to delete the requested rubric. * @NOT_FOUND@ if no rubric exists with the requested ID or the user does not have access to the course, course work, or rubric. * @INVALID_ARGUMENT@ if grading has already started on the rubric.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.rubrics.delete@.+module Gogol.Classroom.Courses.CourseWork.Rubrics.Delete+  ( -- * Resource+    ClassroomCoursesCourseWorkRubricsDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkRubricsDelete (..),+    newClassroomCoursesCourseWorkRubricsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.rubrics.delete@ method which the+-- 'ClassroomCoursesCourseWorkRubricsDelete' request conforms to.+type ClassroomCoursesCourseWorkRubricsDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "rubrics"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a rubric. The requesting user and course owner must have rubrics creation capabilities. For details, see <https://developers.google.com/classroom/rubrics/limitations#license-requirements licensing requirements>. This request must be made by the Google Cloud console of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding rubric. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project didn\'t create the corresponding rubric, or if the requesting user isn\'t permitted to delete the requested rubric. * @NOT_FOUND@ if no rubric exists with the requested ID or the user does not have access to the course, course work, or rubric. * @INVALID_ARGUMENT@ if grading has already started on the rubric.+--+-- /See:/ 'newClassroomCoursesCourseWorkRubricsDelete' smart constructor.+data ClassroomCoursesCourseWorkRubricsDelete = ClassroomCoursesCourseWorkRubricsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Required. Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Required. Identifier of the rubric.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkRubricsDelete' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkRubricsDelete ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Required. Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Required. Identifier of the rubric. See 'id'.+  Core.Text ->+  ClassroomCoursesCourseWorkRubricsDelete+newClassroomCoursesCourseWorkRubricsDelete courseId courseWorkId id =+  ClassroomCoursesCourseWorkRubricsDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      courseWorkId = courseWorkId,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCourseWorkRubricsDelete where+  type Rs ClassroomCoursesCourseWorkRubricsDelete = Empty+  type+    Scopes ClassroomCoursesCourseWorkRubricsDelete =+      '[Classroom'Coursework'Students]+  requestClient ClassroomCoursesCourseWorkRubricsDelete {..} =+    go+      courseId+      courseWorkId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkRubricsDeleteResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/Rubrics/Get.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.Rubrics.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a rubric. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or rubric doesn\'t exist or if the user doesn\'t have access to the corresponding course work.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.rubrics.get@.+module Gogol.Classroom.Courses.CourseWork.Rubrics.Get+  ( -- * Resource+    ClassroomCoursesCourseWorkRubricsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkRubricsGet (..),+    newClassroomCoursesCourseWorkRubricsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.rubrics.get@ method which the+-- 'ClassroomCoursesCourseWorkRubricsGet' request conforms to.+type ClassroomCoursesCourseWorkRubricsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "rubrics"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Rubric++-- | Returns a rubric. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or rubric doesn\'t exist or if the user doesn\'t have access to the corresponding course work.+--+-- /See:/ 'newClassroomCoursesCourseWorkRubricsGet' smart constructor.+data ClassroomCoursesCourseWorkRubricsGet = ClassroomCoursesCourseWorkRubricsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Required. Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Required. Identifier of the rubric.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkRubricsGet' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkRubricsGet ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Required. Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Required. Identifier of the rubric. See 'id'.+  Core.Text ->+  ClassroomCoursesCourseWorkRubricsGet+newClassroomCoursesCourseWorkRubricsGet courseId courseWorkId id =+  ClassroomCoursesCourseWorkRubricsGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      courseWorkId = courseWorkId,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCourseWorkRubricsGet where+  type Rs ClassroomCoursesCourseWorkRubricsGet = Rubric+  type+    Scopes ClassroomCoursesCourseWorkRubricsGet =+      '[ Classroom'Coursework'Me,+         Classroom'Coursework'Me'Readonly,+         Classroom'Coursework'Students,+         Classroom'Coursework'Students'Readonly+       ]+  requestClient ClassroomCoursesCourseWorkRubricsGet {..} =+    go+      courseId+      courseWorkId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkRubricsGetResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/Rubrics/List.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.Rubrics.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of rubrics that the requester is permitted to view. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or course work doesn\'t exist or if the user doesn\'t have access to the corresponding course work.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.rubrics.list@.+module Gogol.Classroom.Courses.CourseWork.Rubrics.List+  ( -- * Resource+    ClassroomCoursesCourseWorkRubricsListResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkRubricsList (..),+    newClassroomCoursesCourseWorkRubricsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.rubrics.list@ method which the+-- 'ClassroomCoursesCourseWorkRubricsList' request conforms to.+type ClassroomCoursesCourseWorkRubricsListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "rubrics"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListRubricsResponse++-- | Returns a list of rubrics that the requester is permitted to view. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or course work doesn\'t exist or if the user doesn\'t have access to the corresponding course work.+--+-- /See:/ 'newClassroomCoursesCourseWorkRubricsList' smart constructor.+data ClassroomCoursesCourseWorkRubricsList = ClassroomCoursesCourseWorkRubricsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Required. Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | The maximum number of rubrics to return. If unspecified, at most 1 rubric is returned. The maximum value is 1; values above 1 are coerced to 1.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkRubricsList' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkRubricsList ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Required. Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  ClassroomCoursesCourseWorkRubricsList+newClassroomCoursesCourseWorkRubricsList courseId courseWorkId =+  ClassroomCoursesCourseWorkRubricsList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      courseWorkId = courseWorkId,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCourseWorkRubricsList where+  type Rs ClassroomCoursesCourseWorkRubricsList = ListRubricsResponse+  type+    Scopes ClassroomCoursesCourseWorkRubricsList =+      '[ Classroom'Coursework'Me,+         Classroom'Coursework'Me'Readonly,+         Classroom'Coursework'Students,+         Classroom'Coursework'Students'Readonly+       ]+  requestClient ClassroomCoursesCourseWorkRubricsList {..} =+    go+      courseId+      courseWorkId+      xgafv+      accessToken+      callback+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkRubricsListResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/Rubrics/Patch.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.Rubrics.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a rubric. See google.classroom.v1.Rubric for details of which fields can be updated. Rubric update capabilities are </classroom/rubrics/limitations limited> once grading has started. The requesting user and course owner must have rubrics creation capabilities. For details, see <https://developers.google.com/classroom/rubrics/limitations#license-requirements licensing requirements>. This request must be made by the Google Cloud console of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the parent course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project didn\'t create the corresponding course work, if the user isn\'t permitted to make the requested modification to the rubric, or for access errors. This error code is also returned if grading has already started on the rubric. * @INVALID_ARGUMENT@ if the request is malformed and for the following request error: * @RubricCriteriaInvalidFormat@ *+-- @NOT_FOUND@ if the requested course, course work, or rubric doesn\'t exist or if the user doesn\'t have access to the corresponding course work. * @INTERNAL@ if grading has already started on the rubric.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.rubrics.patch@.+module Gogol.Classroom.Courses.CourseWork.Rubrics.Patch+  ( -- * Resource+    ClassroomCoursesCourseWorkRubricsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkRubricsPatch (..),+    newClassroomCoursesCourseWorkRubricsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.rubrics.patch@ method which the+-- 'ClassroomCoursesCourseWorkRubricsPatch' request conforms to.+type ClassroomCoursesCourseWorkRubricsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "rubrics"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Rubric+    Core.:> Core.Patch '[Core.JSON] Rubric++-- | Updates a rubric. See google.classroom.v1.Rubric for details of which fields can be updated. Rubric update capabilities are </classroom/rubrics/limitations limited> once grading has started. The requesting user and course owner must have rubrics creation capabilities. For details, see <https://developers.google.com/classroom/rubrics/limitations#license-requirements licensing requirements>. This request must be made by the Google Cloud console of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the parent course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project didn\'t create the corresponding course work, if the user isn\'t permitted to make the requested modification to the rubric, or for access errors. This error code is also returned if grading has already started on the rubric. * @INVALID_ARGUMENT@ if the request is malformed and for the following request error: * @RubricCriteriaInvalidFormat@ *+-- @NOT_FOUND@ if the requested course, course work, or rubric doesn\'t exist or if the user doesn\'t have access to the corresponding course work. * @INTERNAL@ if grading has already started on the rubric.+--+-- /See:/ 'newClassroomCoursesCourseWorkRubricsPatch' smart constructor.+data ClassroomCoursesCourseWorkRubricsPatch = ClassroomCoursesCourseWorkRubricsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Required. Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Optional. Identifier of the rubric.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: Rubric,+    -- | Optional. Mask that identifies which fields on the rubric to update. This field is required to do an update. The update fails if invalid fields are specified. There are multiple options to define the criteria of a rubric: the @source_spreadsheet_id@ and the @criteria@ list. Only one of these can be used at a time to define a rubric. The rubric @criteria@ list is fully replaced by the rubric criteria specified in the update request. For example, if a criterion or level is missing from the request, it is deleted. New criteria and levels are added and an ID is assigned. Existing criteria and levels retain the previously assigned ID if the ID is specified in the request. The following fields can be specified by teachers: * @criteria@ * @source_spreadsheet_id@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkRubricsPatch' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkRubricsPatch ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Required. Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Optional. Identifier of the rubric. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Rubric ->+  ClassroomCoursesCourseWorkRubricsPatch+newClassroomCoursesCourseWorkRubricsPatch+  courseId+  courseWorkId+  id+  payload =+    ClassroomCoursesCourseWorkRubricsPatch+      { xgafv = Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        courseWorkId = courseWorkId,+        id = id,+        payload = payload,+        updateMask = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance Core.GoogleRequest ClassroomCoursesCourseWorkRubricsPatch where+  type Rs ClassroomCoursesCourseWorkRubricsPatch = Rubric+  type+    Scopes ClassroomCoursesCourseWorkRubricsPatch =+      '[Classroom'Coursework'Students]+  requestClient ClassroomCoursesCourseWorkRubricsPatch {..} =+    go+      courseId+      courseWorkId+      id+      xgafv+      accessToken+      callback+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkRubricsPatchResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/StudentSubmissions/Get.hs view
@@ -0,0 +1,143 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a student submission. * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course, course work, or student submission or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.get@.+module Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Get+  ( -- * Resource+    ClassroomCoursesCourseWorkStudentSubmissionsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkStudentSubmissionsGet (..),+    newClassroomCoursesCourseWorkStudentSubmissionsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.studentSubmissions.get@ method which the+-- 'ClassroomCoursesCourseWorkStudentSubmissionsGet' request conforms to.+type ClassroomCoursesCourseWorkStudentSubmissionsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] StudentSubmission++-- | Returns a student submission. * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course, course work, or student submission or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkStudentSubmissionsGet' smart constructor.+data ClassroomCoursesCourseWorkStudentSubmissionsGet = ClassroomCoursesCourseWorkStudentSubmissionsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Identifier of the student submission.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkStudentSubmissionsGet' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkStudentSubmissionsGet ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Identifier of the student submission. See 'id'.+  Core.Text ->+  ClassroomCoursesCourseWorkStudentSubmissionsGet+newClassroomCoursesCourseWorkStudentSubmissionsGet+  courseId+  courseWorkId+  id =+    ClassroomCoursesCourseWorkStudentSubmissionsGet+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        courseWorkId = courseWorkId,+        id = id,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkStudentSubmissionsGet+  where+  type+    Rs ClassroomCoursesCourseWorkStudentSubmissionsGet =+      StudentSubmission+  type+    Scopes ClassroomCoursesCourseWorkStudentSubmissionsGet =+      '[ Classroom'Coursework'Me,+         Classroom'Coursework'Me'Readonly,+         Classroom'Coursework'Students,+         Classroom'Coursework'Students'Readonly,+         Classroom'StudentSubmissions'Me'Readonly,+         Classroom'StudentSubmissions'Students'Readonly+       ]+  requestClient ClassroomCoursesCourseWorkStudentSubmissionsGet {..} =+    go+      courseId+      courseWorkId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkStudentSubmissionsGetResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/StudentSubmissions/List.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.StudentSubmissions.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of student submissions that the requester is permitted to view, factoring in the OAuth scopes of the request. @-@ may be specified as the @course_work_id@ to include student submissions for multiple course work items. Course students may only view their own work. Course teachers and domain administrators may view all student submissions. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.list@.+module Gogol.Classroom.Courses.CourseWork.StudentSubmissions.List+  ( -- * Resource+    ClassroomCoursesCourseWorkStudentSubmissionsListResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkStudentSubmissionsList (..),+    newClassroomCoursesCourseWorkStudentSubmissionsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.studentSubmissions.list@ method which the+-- 'ClassroomCoursesCourseWorkStudentSubmissionsList' request conforms to.+type ClassroomCoursesCourseWorkStudentSubmissionsListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "late" CoursesCourseWorkStudentSubmissionsListLate+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParams+              "states"+              CoursesCourseWorkStudentSubmissionsListStates+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "userId" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListStudentSubmissionsResponse++-- | Returns a list of student submissions that the requester is permitted to view, factoring in the OAuth scopes of the request. @-@ may be specified as the @course_work_id@ to include student submissions for multiple course work items. Course students may only view their own work. Course teachers and domain administrators may view all student submissions. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkStudentSubmissionsList' smart constructor.+data ClassroomCoursesCourseWorkStudentSubmissionsList = ClassroomCoursesCourseWorkStudentSubmissionsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the student work to request. This may be set to the string literal @\"-\"@ to request student work for all course work in the specified course.+    courseWorkId :: Core.Text,+    -- | Requested lateness value. If specified, returned student submissions are restricted by the requested value. If unspecified, submissions are returned regardless of @late@ value.+    late :: (Core.Maybe CoursesCourseWorkStudentSubmissionsListLate),+    -- | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Requested submission states. If specified, returned student submissions match one of the specified submission states.+    states :: (Core.Maybe [CoursesCourseWorkStudentSubmissionsListStates]),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text),+    -- | Optional argument to restrict returned student work to those owned by the student with the specified identifier. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    userId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkStudentSubmissionsList' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkStudentSubmissionsList ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the student work to request. This may be set to the string literal @\"-\"@ to request student work for all course work in the specified course. See 'courseWorkId'.+  Core.Text ->+  ClassroomCoursesCourseWorkStudentSubmissionsList+newClassroomCoursesCourseWorkStudentSubmissionsList+  courseId+  courseWorkId =+    ClassroomCoursesCourseWorkStudentSubmissionsList+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        courseWorkId = courseWorkId,+        late = Core.Nothing,+        pageSize = Core.Nothing,+        pageToken = Core.Nothing,+        states = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing,+        userId = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkStudentSubmissionsList+  where+  type+    Rs ClassroomCoursesCourseWorkStudentSubmissionsList =+      ListStudentSubmissionsResponse+  type+    Scopes ClassroomCoursesCourseWorkStudentSubmissionsList =+      '[ Classroom'Coursework'Me,+         Classroom'Coursework'Me'Readonly,+         Classroom'Coursework'Students,+         Classroom'Coursework'Students'Readonly,+         Classroom'StudentSubmissions'Me'Readonly,+         Classroom'StudentSubmissions'Students'Readonly+       ]+  requestClient ClassroomCoursesCourseWorkStudentSubmissionsList {..} =+    go+      courseId+      courseWorkId+      xgafv+      accessToken+      callback+      late+      pageSize+      pageToken+      (states Core.^. Core._Default)+      uploadType+      uploadProtocol+      userId+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy+                ClassroomCoursesCourseWorkStudentSubmissionsListResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies attachments of student submission. Attachments may only be added to student submissions belonging to course work objects with a @workType@ of @ASSIGNMENT@. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, if the user is not permitted to modify attachments on the requested student submission, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.modifyAttachments@.+module Gogol.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments+  ( -- * Resource+    ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachmentsResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments (..),+    newClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.studentSubmissions.modifyAttachments@ method which the+-- 'ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments' request conforms to.+type ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachmentsResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.CaptureMode "id" "modifyAttachments" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] ModifyAttachmentsRequest+    Core.:> Core.Post '[Core.JSON] StudentSubmission++-- | Modifies attachments of student submission. Attachments may only be added to student submissions belonging to course work objects with a @workType@ of @ASSIGNMENT@. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, if the user is not permitted to modify attachments on the requested student submission, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments' smart constructor.+data ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments = ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Identifier of the student submission.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: ModifyAttachmentsRequest,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Identifier of the student submission. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  ModifyAttachmentsRequest ->+  ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments+newClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments+  courseId+  courseWorkId+  id+  payload =+    ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        courseWorkId = courseWorkId,+        id = id,+        payload = payload,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments+  where+  type+    Rs+      ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments =+      StudentSubmission+  type+    Scopes+      ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments =+      '[Classroom'Coursework'Me, Classroom'Coursework'Students]+  requestClient+    ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachments {..} =+      go+        courseId+        courseWorkId+        id+        xgafv+        accessToken+        callback+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkStudentSubmissionsModifyAttachmentsResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/StudentSubmissions/Patch.hs view
@@ -0,0 +1,151 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates one or more fields of a student submission. See google.classroom.v1.StudentSubmission for details of which fields may be updated and who may change them. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding course work, if the user is not permitted to make the requested modification to the student submission, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.patch@.+module Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Patch+  ( -- * Resource+    ClassroomCoursesCourseWorkStudentSubmissionsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkStudentSubmissionsPatch (..),+    newClassroomCoursesCourseWorkStudentSubmissionsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.studentSubmissions.patch@ method which the+-- 'ClassroomCoursesCourseWorkStudentSubmissionsPatch' request conforms to.+type ClassroomCoursesCourseWorkStudentSubmissionsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] StudentSubmission+    Core.:> Core.Patch '[Core.JSON] StudentSubmission++-- | Updates one or more fields of a student submission. See google.classroom.v1.StudentSubmission for details of which fields may be updated and who may change them. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding course work, if the user is not permitted to make the requested modification to the student submission, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkStudentSubmissionsPatch' smart constructor.+data ClassroomCoursesCourseWorkStudentSubmissionsPatch = ClassroomCoursesCourseWorkStudentSubmissionsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Identifier of the student submission.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: StudentSubmission,+    -- | Mask that identifies which fields on the student submission to update. This field is required to do an update. The update fails if invalid fields are specified. The following fields may be specified by teachers: * @draft_grade@ * @assigned_grade@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkStudentSubmissionsPatch' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkStudentSubmissionsPatch ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Identifier of the student submission. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  StudentSubmission ->+  ClassroomCoursesCourseWorkStudentSubmissionsPatch+newClassroomCoursesCourseWorkStudentSubmissionsPatch+  courseId+  courseWorkId+  id+  payload =+    ClassroomCoursesCourseWorkStudentSubmissionsPatch+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        courseWorkId = courseWorkId,+        id = id,+        payload = payload,+        updateMask = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkStudentSubmissionsPatch+  where+  type+    Rs ClassroomCoursesCourseWorkStudentSubmissionsPatch =+      StudentSubmission+  type+    Scopes ClassroomCoursesCourseWorkStudentSubmissionsPatch =+      '[Classroom'Coursework'Me, Classroom'Coursework'Students]+  requestClient ClassroomCoursesCourseWorkStudentSubmissionsPatch {..} =+    go+      courseId+      courseWorkId+      id+      xgafv+      accessToken+      callback+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy+                ClassroomCoursesCourseWorkStudentSubmissionsPatchResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Reclaims a student submission on behalf of the student that owns it. Reclaiming a student submission transfers ownership of attached Drive files to the student and updates the submission state. Only the student that owns the requested student submission may call this method, and only for a student submission that has been turned in. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, unsubmit the requested student submission, or for access errors. * @FAILED_PRECONDITION@ if the student submission has not been turned in. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.reclaim@.+module Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim+  ( -- * Resource+    ClassroomCoursesCourseWorkStudentSubmissionsReclaimResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkStudentSubmissionsReclaim (..),+    newClassroomCoursesCourseWorkStudentSubmissionsReclaim,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.studentSubmissions.reclaim@ method which the+-- 'ClassroomCoursesCourseWorkStudentSubmissionsReclaim' request conforms to.+type ClassroomCoursesCourseWorkStudentSubmissionsReclaimResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.CaptureMode "id" "reclaim" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] ReclaimStudentSubmissionRequest+    Core.:> Core.Post '[Core.JSON] Empty++-- | Reclaims a student submission on behalf of the student that owns it. Reclaiming a student submission transfers ownership of attached Drive files to the student and updates the submission state. Only the student that owns the requested student submission may call this method, and only for a student submission that has been turned in. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, unsubmit the requested student submission, or for access errors. * @FAILED_PRECONDITION@ if the student submission has not been turned in. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkStudentSubmissionsReclaim' smart constructor.+data ClassroomCoursesCourseWorkStudentSubmissionsReclaim = ClassroomCoursesCourseWorkStudentSubmissionsReclaim+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Identifier of the student submission.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: ReclaimStudentSubmissionRequest,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkStudentSubmissionsReclaim' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkStudentSubmissionsReclaim ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Identifier of the student submission. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  ReclaimStudentSubmissionRequest ->+  ClassroomCoursesCourseWorkStudentSubmissionsReclaim+newClassroomCoursesCourseWorkStudentSubmissionsReclaim+  courseId+  courseWorkId+  id+  payload =+    ClassroomCoursesCourseWorkStudentSubmissionsReclaim+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        courseWorkId = courseWorkId,+        id = id,+        payload = payload,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkStudentSubmissionsReclaim+  where+  type Rs ClassroomCoursesCourseWorkStudentSubmissionsReclaim = Empty+  type+    Scopes ClassroomCoursesCourseWorkStudentSubmissionsReclaim =+      '[Classroom'Coursework'Me]+  requestClient+    ClassroomCoursesCourseWorkStudentSubmissionsReclaim {..} =+      go+        courseId+        courseWorkId+        id+        xgafv+        accessToken+        callback+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkStudentSubmissionsReclaimResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/StudentSubmissions/Return.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Return+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a student submission. Returning a student submission transfers ownership of attached Drive files to the student and may also update the submission state. Unlike the Classroom application, returning a student submission does not set assignedGrade to the draftGrade value. Only a teacher of the course that contains the requested student submission may call this method. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, return the requested student submission, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.return@.+module Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Return+  ( -- * Resource+    ClassroomCoursesCourseWorkStudentSubmissionsReturnResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkStudentSubmissionsReturn (..),+    newClassroomCoursesCourseWorkStudentSubmissionsReturn,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.studentSubmissions.return@ method which the+-- 'ClassroomCoursesCourseWorkStudentSubmissionsReturn' request conforms to.+type ClassroomCoursesCourseWorkStudentSubmissionsReturnResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.CaptureMode "id" "return" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] ReturnStudentSubmissionRequest+    Core.:> Core.Post '[Core.JSON] Empty++-- | Returns a student submission. Returning a student submission transfers ownership of attached Drive files to the student and may also update the submission state. Unlike the Classroom application, returning a student submission does not set assignedGrade to the draftGrade value. Only a teacher of the course that contains the requested student submission may call this method. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, return the requested student submission, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkStudentSubmissionsReturn' smart constructor.+data ClassroomCoursesCourseWorkStudentSubmissionsReturn = ClassroomCoursesCourseWorkStudentSubmissionsReturn+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Identifier of the student submission.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: ReturnStudentSubmissionRequest,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkStudentSubmissionsReturn' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkStudentSubmissionsReturn ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Identifier of the student submission. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  ReturnStudentSubmissionRequest ->+  ClassroomCoursesCourseWorkStudentSubmissionsReturn+newClassroomCoursesCourseWorkStudentSubmissionsReturn+  courseId+  courseWorkId+  id+  payload =+    ClassroomCoursesCourseWorkStudentSubmissionsReturn+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        courseWorkId = courseWorkId,+        id = id,+        payload = payload,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkStudentSubmissionsReturn+  where+  type Rs ClassroomCoursesCourseWorkStudentSubmissionsReturn = Empty+  type+    Scopes ClassroomCoursesCourseWorkStudentSubmissionsReturn =+      '[Classroom'Coursework'Students]+  requestClient+    ClassroomCoursesCourseWorkStudentSubmissionsReturn {..} =+      go+        courseId+        courseWorkId+        id+        xgafv+        accessToken+        callback+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkStudentSubmissionsReturnResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/StudentSubmissions/TurnIn.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Turns in a student submission. Turning in a student submission transfers ownership of attached Drive files to the teacher and may also update the submission state. This may only be called by the student that owns the specified student submission. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, turn in the requested student submission, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.turnIn@.+module Gogol.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn+  ( -- * Resource+    ClassroomCoursesCourseWorkStudentSubmissionsTurnInResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkStudentSubmissionsTurnIn (..),+    newClassroomCoursesCourseWorkStudentSubmissionsTurnIn,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.studentSubmissions.turnIn@ method which the+-- 'ClassroomCoursesCourseWorkStudentSubmissionsTurnIn' request conforms to.+type ClassroomCoursesCourseWorkStudentSubmissionsTurnInResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.CaptureMode "id" "turnIn" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] TurnInStudentSubmissionRequest+    Core.:> Core.Post '[Core.JSON] Empty++-- | Turns in a student submission. Turning in a student submission transfers ownership of attached Drive files to the teacher and may also update the submission state. This may only be called by the student that owns the specified student submission. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work, turn in the requested student submission, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course, course work, or student submission does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkStudentSubmissionsTurnIn' smart constructor.+data ClassroomCoursesCourseWorkStudentSubmissionsTurnIn = ClassroomCoursesCourseWorkStudentSubmissionsTurnIn+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Identifier of the student submission.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: TurnInStudentSubmissionRequest,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkStudentSubmissionsTurnIn' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkStudentSubmissionsTurnIn ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Identifier of the student submission. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  TurnInStudentSubmissionRequest ->+  ClassroomCoursesCourseWorkStudentSubmissionsTurnIn+newClassroomCoursesCourseWorkStudentSubmissionsTurnIn+  courseId+  courseWorkId+  id+  payload =+    ClassroomCoursesCourseWorkStudentSubmissionsTurnIn+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        courseWorkId = courseWorkId,+        id = id,+        payload = payload,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkStudentSubmissionsTurnIn+  where+  type Rs ClassroomCoursesCourseWorkStudentSubmissionsTurnIn = Empty+  type+    Scopes ClassroomCoursesCourseWorkStudentSubmissionsTurnIn =+      '[Classroom'Coursework'Me]+  requestClient+    ClassroomCoursesCourseWorkStudentSubmissionsTurnIn {..} =+      go+        courseId+        courseWorkId+        id+        xgafv+        accessToken+        callback+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkStudentSubmissionsTurnInResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWork/UpdateRubric.hs view
@@ -0,0 +1,143 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWork.UpdateRubric+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a rubric. See google.classroom.v1.Rubric for details of which fields can be updated. Rubric update capabilities are </classroom/rubrics/limitations limited> once grading has started. The requesting user and course owner must have rubrics creation capabilities. For details, see <https://developers.google.com/classroom/rubrics/limitations#license-requirements licensing requirements>. This request must be made by the Google Cloud console of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the parent course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project didn\'t create the corresponding course work, if the user isn\'t permitted to make the requested modification to the rubric, or for access errors. This error code is also returned if grading has already started on the rubric. * @INVALID_ARGUMENT@ if the request is malformed and for the following request error: * @RubricCriteriaInvalidFormat@ *+-- @NOT_FOUND@ if the requested course, course work, or rubric doesn\'t exist or if the user doesn\'t have access to the corresponding course work. * @INTERNAL@ if grading has already started on the rubric.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.updateRubric@.+module Gogol.Classroom.Courses.CourseWork.UpdateRubric+  ( -- * Resource+    ClassroomCoursesCourseWorkUpdateRubricResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkUpdateRubric (..),+    newClassroomCoursesCourseWorkUpdateRubric,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWork.updateRubric@ method which the+-- 'ClassroomCoursesCourseWorkUpdateRubric' request conforms to.+type ClassroomCoursesCourseWorkUpdateRubricResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWork"+    Core.:> Core.Capture "courseWorkId" Core.Text+    Core.:> "rubric"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "id" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Rubric+    Core.:> Core.Patch '[Core.JSON] Rubric++-- | Updates a rubric. See google.classroom.v1.Rubric for details of which fields can be updated. Rubric update capabilities are </classroom/rubrics/limitations limited> once grading has started. The requesting user and course owner must have rubrics creation capabilities. For details, see <https://developers.google.com/classroom/rubrics/limitations#license-requirements licensing requirements>. This request must be made by the Google Cloud console of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the parent course work item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project didn\'t create the corresponding course work, if the user isn\'t permitted to make the requested modification to the rubric, or for access errors. This error code is also returned if grading has already started on the rubric. * @INVALID_ARGUMENT@ if the request is malformed and for the following request error: * @RubricCriteriaInvalidFormat@ *+-- @NOT_FOUND@ if the requested course, course work, or rubric doesn\'t exist or if the user doesn\'t have access to the corresponding course work. * @INTERNAL@ if grading has already started on the rubric.+--+-- /See:/ 'newClassroomCoursesCourseWorkUpdateRubric' smart constructor.+data ClassroomCoursesCourseWorkUpdateRubric = ClassroomCoursesCourseWorkUpdateRubric+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Required. Identifier of the course work.+    courseWorkId :: Core.Text,+    -- | Optional. Identifier of the rubric.+    id :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: Rubric,+    -- | Optional. Mask that identifies which fields on the rubric to update. This field is required to do an update. The update fails if invalid fields are specified. There are multiple options to define the criteria of a rubric: the @source_spreadsheet_id@ and the @criteria@ list. Only one of these can be used at a time to define a rubric. The rubric @criteria@ list is fully replaced by the rubric criteria specified in the update request. For example, if a criterion or level is missing from the request, it is deleted. New criteria and levels are added and an ID is assigned. Existing criteria and levels retain the previously assigned ID if the ID is specified in the request. The following fields can be specified by teachers: * @criteria@ * @source_spreadsheet_id@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkUpdateRubric' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkUpdateRubric ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Required. Identifier of the course work. See 'courseWorkId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Rubric ->+  ClassroomCoursesCourseWorkUpdateRubric+newClassroomCoursesCourseWorkUpdateRubric+  courseId+  courseWorkId+  payload =+    ClassroomCoursesCourseWorkUpdateRubric+      { xgafv = Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        courseWorkId = courseWorkId,+        id = Core.Nothing,+        payload = payload,+        updateMask = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance Core.GoogleRequest ClassroomCoursesCourseWorkUpdateRubric where+  type Rs ClassroomCoursesCourseWorkUpdateRubric = Rubric+  type+    Scopes ClassroomCoursesCourseWorkUpdateRubric =+      '[Classroom'Coursework'Students]+  requestClient ClassroomCoursesCourseWorkUpdateRubric {..} =+    go+      courseId+      courseWorkId+      xgafv+      accessToken+      callback+      id+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkUpdateRubricResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/AddOnAttachments/Create.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.addOnAttachments.create@.+module Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Create+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate (..),+    newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.addOnAttachments.create@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate' request conforms to.+type ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "addOnToken" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] AddOnAttachment+    Core.:> Core.Post '[Core.JSON] AddOnAttachment++-- | Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate' smart constructor.+data ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate = ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Optional. Token that authorizes the request. The token is passed as a query parameter when the user is redirected from Classroom to the add-on\'s URL. This authorization token is required for in-Classroom attachment creation but optional for partner-first attachment creation. Returns an error if not provided for partner-first attachment creation and the developer projects that created the attachment and its parent stream item do not match.+    addOnToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which to create the attachment. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Multipart request metadata.+    payload :: AddOnAttachment,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which to create the attachment. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  AddOnAttachment ->+  ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate+newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate+  courseId+  itemId+  payload =+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        addOnToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        payload = payload,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate+  where+  type+    Rs ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate =+      AddOnAttachment+  type+    Scopes+      ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate =+      '[Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreate {..} =+      go+        courseId+        itemId+        xgafv+        accessToken+        addOnToken+        callback+        postId+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsCreateResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/AddOnAttachments/Delete.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.addOnAttachments.delete@.+module Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Delete+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete (..),+    newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.addOnAttachments.delete@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete' request conforms to.+type ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete' smart constructor.+data ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete = ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete+newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete+  attachmentId+  courseId+  itemId =+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete+  where+  type+    Rs ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete =+      Empty+  type+    Scopes+      ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete =+      '[Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDelete {..} =+      go+        courseId+        itemId+        attachmentId+        xgafv+        accessToken+        callback+        postId+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsDeleteResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/AddOnAttachments/Get.hs view
@@ -0,0 +1,144 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.addOnAttachments.get@.+module Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Get+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet (..),+    newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.addOnAttachments.get@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet' request conforms to.+type ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] AddOnAttachment++-- | Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet' smart constructor.+data ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet = ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet+newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet+  attachmentId+  courseId+  itemId =+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet+  where+  type+    Rs ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet =+      AddOnAttachment+  type+    Scopes ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGet {..} =+      go+        courseId+        itemId+        attachmentId+        xgafv+        accessToken+        callback+        postId+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsGetResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/AddOnAttachments/List.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.addOnAttachments.list@.+module Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.List+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsListResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList (..),+    newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.addOnAttachments.list@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList' request conforms to.+type ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListAddOnAttachmentsResponse++-- | Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList' smart constructor.+data ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList = ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ whose attachments should be enumerated. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | The maximum number of attachments to return. The service may return fewer than this value. If unspecified, at most 20 attachments will be returned. The maximum value is 20; values above 20 will be coerced to 20.+    pageSize :: (Core.Maybe Core.Int32),+    -- | A page token, received from a previous @ListAddOnAttachments@ call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to @ListAddOnAttachments@ must match the call that provided the page token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Optional. Identifier of the post under the course whose attachments to enumerate. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ whose attachments should be enumerated. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList+newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList+  courseId+  itemId =+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        pageSize = Core.Nothing,+        pageToken = Core.Nothing,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList+  where+  type+    Rs ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList =+      ListAddOnAttachmentsResponse+  type+    Scopes ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsList {..} =+      go+        courseId+        itemId+        xgafv+        accessToken+        callback+        pageSize+        pageToken+        postId+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsListResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/AddOnAttachments/Patch.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.addOnAttachments.patch@.+module Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Patch+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch (..),+    newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.addOnAttachments.patch@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch' request conforms to.+type ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] AddOnAttachment+    Core.:> Core.Patch '[Core.JSON] AddOnAttachment++-- | Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch' smart constructor.+data ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch = ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the post under which the attachment is attached.+    itemId :: Core.Text,+    -- | Multipart request metadata.+    payload :: AddOnAttachment,+    -- | Required. Identifier of the post under which the attachment is attached.+    postId :: (Core.Maybe Core.Text),+    -- | Required. Mask that identifies which fields on the attachment to 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 @AddOnAttachment@ object. If a field that does not support empty values is included in the update mask and not set in the @AddOnAttachment@ object, an @INVALID_ARGUMENT@ error is returned. The following fields may be specified by teachers: * @title@ * @teacher_view_uri@ * @student_view_uri@ * @student_work_review_uri@ * @due_date@ * @due_time@ * @max_points@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the post under which the attachment is attached. See 'itemId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  AddOnAttachment ->+  ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch+newClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch+  attachmentId+  courseId+  itemId+  payload =+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        payload = payload,+        postId = Core.Nothing,+        updateMask = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch+  where+  type+    Rs ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch =+      AddOnAttachment+  type+    Scopes+      ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch =+      '[Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatch {..} =+      go+        courseId+        itemId+        attachmentId+        xgafv+        accessToken+        callback+        postId+        updateMask+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkMaterialsAddOnAttachmentsPatchResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/Create.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a course work material. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course, create course work material in the requested course, share a Drive attachment, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed or if more than 20 * materials are provided. * @NOT_FOUND@ if the requested course does not exist. * @FAILED_PRECONDITION@ for the following request error: * AttachmentNotVisible+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.create@.+module Gogol.Classroom.Courses.CourseWorkMaterials.Create+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsCreate (..),+    newClassroomCoursesCourseWorkMaterialsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.create@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsCreate' request conforms to.+type ClassroomCoursesCourseWorkMaterialsCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] CourseWorkMaterial+    Core.:> Core.Post '[Core.JSON] CourseWorkMaterial++-- | Creates a course work material. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course, create course work material in the requested course, share a Drive attachment, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed or if more than 20 * materials are provided. * @NOT_FOUND@ if the requested course does not exist. * @FAILED_PRECONDITION@ for the following request error: * AttachmentNotVisible+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsCreate' smart constructor.+data ClassroomCoursesCourseWorkMaterialsCreate = ClassroomCoursesCourseWorkMaterialsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Multipart request metadata.+    payload :: CourseWorkMaterial,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsCreate' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsCreate ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  CourseWorkMaterial ->+  ClassroomCoursesCourseWorkMaterialsCreate+newClassroomCoursesCourseWorkMaterialsCreate courseId payload =+  ClassroomCoursesCourseWorkMaterialsCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkMaterialsCreate+  where+  type+    Rs ClassroomCoursesCourseWorkMaterialsCreate =+      CourseWorkMaterial+  type+    Scopes ClassroomCoursesCourseWorkMaterialsCreate =+      '[Classroom'Courseworkmaterials]+  requestClient ClassroomCoursesCourseWorkMaterialsCreate {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkMaterialsCreateResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/Delete.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a course work material. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work material item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding course work material, if the requesting user is not permitted to delete the requested course or for access errors. * @FAILED_PRECONDITION@ if the requested course work material has already been deleted. * @NOT_FOUND@ if no course exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.delete@.+module Gogol.Classroom.Courses.CourseWorkMaterials.Delete+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsDelete (..),+    newClassroomCoursesCourseWorkMaterialsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.delete@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsDelete' request conforms to.+type ClassroomCoursesCourseWorkMaterialsDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a course work material. This request must be made by the Developer Console project of the <https://support.google.com/cloud/answer/6158849 OAuth client ID> used to create the corresponding course work material item. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding course work material, if the requesting user is not permitted to delete the requested course or for access errors. * @FAILED_PRECONDITION@ if the requested course work material has already been deleted. * @NOT_FOUND@ if no course exists with the requested ID.+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsDelete' smart constructor.+data ClassroomCoursesCourseWorkMaterialsDelete = ClassroomCoursesCourseWorkMaterialsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work material to delete. This identifier is a Classroom-assigned identifier.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsDelete' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsDelete ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work material to delete. This identifier is a Classroom-assigned identifier. See 'id'.+  Core.Text ->+  ClassroomCoursesCourseWorkMaterialsDelete+newClassroomCoursesCourseWorkMaterialsDelete courseId id =+  ClassroomCoursesCourseWorkMaterialsDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkMaterialsDelete+  where+  type Rs ClassroomCoursesCourseWorkMaterialsDelete = Empty+  type+    Scopes ClassroomCoursesCourseWorkMaterialsDelete =+      '[Classroom'Courseworkmaterials]+  requestClient ClassroomCoursesCourseWorkMaterialsDelete {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkMaterialsDeleteResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/Get.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a course work material. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work material, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or course work material does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.get@.+module Gogol.Classroom.Courses.CourseWorkMaterials.Get+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsGet (..),+    newClassroomCoursesCourseWorkMaterialsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.get@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsGet' request conforms to.+type ClassroomCoursesCourseWorkMaterialsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] CourseWorkMaterial++-- | Returns a course work material. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or course work material, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or course work material does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsGet' smart constructor.+data ClassroomCoursesCourseWorkMaterialsGet = ClassroomCoursesCourseWorkMaterialsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work material.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsGet' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsGet ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work material. See 'id'.+  Core.Text ->+  ClassroomCoursesCourseWorkMaterialsGet+newClassroomCoursesCourseWorkMaterialsGet courseId id =+  ClassroomCoursesCourseWorkMaterialsGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCourseWorkMaterialsGet where+  type Rs ClassroomCoursesCourseWorkMaterialsGet = CourseWorkMaterial+  type+    Scopes ClassroomCoursesCourseWorkMaterialsGet =+      '[ Classroom'Courseworkmaterials,+         Classroom'Courseworkmaterials'Readonly+       ]+  requestClient ClassroomCoursesCourseWorkMaterialsGet {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkMaterialsGetResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/GetAddOnContext.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.GetAddOnContext+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call this to validate query parameters and the requesting user\'s role whenever the add-on is opened in an <https://developers.google.com/classroom/add-ons/get-started/iframes/iframes-overview iframe>. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.getAddOnContext@.+module Gogol.Classroom.Courses.CourseWorkMaterials.GetAddOnContext+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsGetAddOnContextResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsGetAddOnContext (..),+    newClassroomCoursesCourseWorkMaterialsGetAddOnContext,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.getAddOnContext@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsGetAddOnContext' request conforms to.+type ClassroomCoursesCourseWorkMaterialsGetAddOnContextResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.Capture "itemId" Core.Text+    Core.:> "addOnContext"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "addOnToken" Core.Text+    Core.:> Core.QueryParam "attachmentId" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "postId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] AddOnContext++-- | Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call this to validate query parameters and the requesting user\'s role whenever the add-on is opened in an <https://developers.google.com/classroom/add-ons/get-started/iframes/iframes-overview iframe>. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsGetAddOnContext' smart constructor.+data ClassroomCoursesCourseWorkMaterialsGetAddOnContext = ClassroomCoursesCourseWorkMaterialsGetAddOnContext+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Optional. Token that authorizes the request. The token is passed as a query parameter when the user is redirected from Classroom to the add-on\'s URL. The authorization token is required when neither of the following is true: * The add-on has attachments on the post. * The developer project issuing the request is the same project that created the post.+    addOnToken :: (Core.Maybe Core.Text),+    -- | Optional. The identifier of the attachment. This field is required for all requests except when the user is in the <https://developers.google.com/classroom/add-ons/get-started/iframes/attachment-discovery-iframe Attachment Discovery iframe>.+    attachmentId :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: Core.Text,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsGetAddOnContext' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsGetAddOnContext ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. See 'itemId'.+  Core.Text ->+  ClassroomCoursesCourseWorkMaterialsGetAddOnContext+newClassroomCoursesCourseWorkMaterialsGetAddOnContext+  courseId+  itemId =+    ClassroomCoursesCourseWorkMaterialsGetAddOnContext+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        addOnToken = Core.Nothing,+        attachmentId = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = itemId,+        postId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkMaterialsGetAddOnContext+  where+  type+    Rs ClassroomCoursesCourseWorkMaterialsGetAddOnContext =+      AddOnContext+  type+    Scopes ClassroomCoursesCourseWorkMaterialsGetAddOnContext =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesCourseWorkMaterialsGetAddOnContext {..} =+      go+        courseId+        itemId+        xgafv+        accessToken+        addOnToken+        attachmentId+        callback+        postId+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesCourseWorkMaterialsGetAddOnContextResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/List.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of course work material that the requester is permitted to view. Course students may only view @PUBLISHED@ course work material. Course teachers and domain administrators may view all course work material. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.list@.+module Gogol.Classroom.Courses.CourseWorkMaterials.List+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsListResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsList (..),+    newClassroomCoursesCourseWorkMaterialsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.list@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsList' request conforms to.+type ClassroomCoursesCourseWorkMaterialsListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParams+              "courseWorkMaterialStates"+              CoursesCourseWorkMaterialsListCourseWorkMaterialStates+    Core.:> Core.QueryParam "materialDriveId" Core.Text+    Core.:> Core.QueryParam "materialLink" Core.Text+    Core.:> Core.QueryParam "orderBy" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListCourseWorkMaterialResponse++-- | Returns a list of course work material that the requester is permitted to view. Course students may only view @PUBLISHED@ course work material. Course teachers and domain administrators may view all course work material. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsList' smart constructor.+data ClassroomCoursesCourseWorkMaterialsList = ClassroomCoursesCourseWorkMaterialsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Restriction on the work status to return. Only course work material that matches is returned. If unspecified, items with a work status of @PUBLISHED@ is returned.+    courseWorkMaterialStates ::+      ( Core.Maybe+          [CoursesCourseWorkMaterialsListCourseWorkMaterialStates]+      ),+    -- | Optional filtering for course work material with at least one Drive material whose ID matches the provided string. If @material_link@ is also specified, course work material must have materials matching both filters.+    materialDriveId :: (Core.Maybe Core.Text),+    -- | Optional filtering for course work material with at least one link material whose URL partially matches the provided string.+    materialLink :: (Core.Maybe Core.Text),+    -- | Optional sort ordering for results. A comma-separated list of fields with an optional sort direction keyword. Supported field is @updateTime@. Supported direction keywords are @asc@ and @desc@. If not specified, @updateTime desc@ is the default behavior. Examples: @updateTime asc@, @updateTime@+    orderBy :: (Core.Maybe Core.Text),+    -- | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsList' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsList ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  ClassroomCoursesCourseWorkMaterialsList+newClassroomCoursesCourseWorkMaterialsList courseId =+  ClassroomCoursesCourseWorkMaterialsList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      courseWorkMaterialStates = Core.Nothing,+      materialDriveId = Core.Nothing,+      materialLink = Core.Nothing,+      orderBy = Core.Nothing,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCourseWorkMaterialsList where+  type+    Rs ClassroomCoursesCourseWorkMaterialsList =+      ListCourseWorkMaterialResponse+  type+    Scopes ClassroomCoursesCourseWorkMaterialsList =+      '[ Classroom'Courseworkmaterials,+         Classroom'Courseworkmaterials'Readonly+       ]+  requestClient ClassroomCoursesCourseWorkMaterialsList {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      (courseWorkMaterialStates Core.^. Core._Default)+      materialDriveId+      materialLink+      orderBy+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkMaterialsListResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/CourseWorkMaterials/Patch.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.CourseWorkMaterials.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates one or more fields of a course work material. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @FAILED_PRECONDITION@ if the requested course work material has already been deleted. * @NOT_FOUND@ if the requested course or course work material does not exist+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWorkMaterials.patch@.+module Gogol.Classroom.Courses.CourseWorkMaterials.Patch+  ( -- * Resource+    ClassroomCoursesCourseWorkMaterialsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesCourseWorkMaterialsPatch (..),+    newClassroomCoursesCourseWorkMaterialsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.courseWorkMaterials.patch@ method which the+-- 'ClassroomCoursesCourseWorkMaterialsPatch' request conforms to.+type ClassroomCoursesCourseWorkMaterialsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "courseWorkMaterials"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] CourseWorkMaterial+    Core.:> Core.Patch '[Core.JSON] CourseWorkMaterial++-- | Updates one or more fields of a course work material. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @FAILED_PRECONDITION@ if the requested course work material has already been deleted. * @NOT_FOUND@ if the requested course or course work material does not exist+--+-- /See:/ 'newClassroomCoursesCourseWorkMaterialsPatch' smart constructor.+data ClassroomCoursesCourseWorkMaterialsPatch = ClassroomCoursesCourseWorkMaterialsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the course work material.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: CourseWorkMaterial,+    -- | Mask that identifies which fields on the course work material 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 course work material object. If a field that does not support empty values is included in the update mask and not set in the course work material object, an @INVALID_ARGUMENT@ error is returned. The following fields may be specified by teachers: * @title@ * @description@ * @state@ * @scheduled_time@ * @topic_id@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCourseWorkMaterialsPatch' with the minimum fields required to make a request.+newClassroomCoursesCourseWorkMaterialsPatch ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the course work material. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  CourseWorkMaterial ->+  ClassroomCoursesCourseWorkMaterialsPatch+newClassroomCoursesCourseWorkMaterialsPatch courseId id payload =+  ClassroomCoursesCourseWorkMaterialsPatch+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      payload = payload,+      updateMask = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomCoursesCourseWorkMaterialsPatch+  where+  type+    Rs ClassroomCoursesCourseWorkMaterialsPatch =+      CourseWorkMaterial+  type+    Scopes ClassroomCoursesCourseWorkMaterialsPatch =+      '[Classroom'Courseworkmaterials]+  requestClient ClassroomCoursesCourseWorkMaterialsPatch {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesCourseWorkMaterialsPatchResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Create.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a course. The user specified in @ownerId@ is the owner of the created course and added as a teacher. A non-admin requesting user can only create a course with themselves as the owner. Domain admins can create courses owned by any user within their domain. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to create courses or for access errors. * @NOT_FOUND@ if the primary teacher is not a valid user. * @FAILED_PRECONDITION@ if the course owner\'s account is disabled or for the following request errors: * UserCannotOwnCourse * UserGroupsMembershipLimitReached * @ALREADY_EXISTS@ if an alias was specified in the @id@ and already exists.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.create@.+module Gogol.Classroom.Courses.Create+  ( -- * Resource+    ClassroomCoursesCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesCreate (..),+    newClassroomCoursesCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.create@ method which the+-- 'ClassroomCoursesCreate' request conforms to.+type ClassroomCoursesCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Course+    Core.:> Core.Post '[Core.JSON] Course++-- | Creates a course. The user specified in @ownerId@ is the owner of the created course and added as a teacher. A non-admin requesting user can only create a course with themselves as the owner. Domain admins can create courses owned by any user within their domain. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to create courses or for access errors. * @NOT_FOUND@ if the primary teacher is not a valid user. * @FAILED_PRECONDITION@ if the course owner\'s account is disabled or for the following request errors: * UserCannotOwnCourse * UserGroupsMembershipLimitReached * @ALREADY_EXISTS@ if an alias was specified in the @id@ and already exists.+--+-- /See:/ 'newClassroomCoursesCreate' smart constructor.+data ClassroomCoursesCreate = ClassroomCoursesCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: Course,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesCreate' with the minimum fields required to make a request.+newClassroomCoursesCreate ::+  -- |  Multipart request metadata. See 'payload'.+  Course ->+  ClassroomCoursesCreate+newClassroomCoursesCreate payload =+  ClassroomCoursesCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesCreate where+  type Rs ClassroomCoursesCreate = Course+  type Scopes ClassroomCoursesCreate = '[Classroom'Courses]+  requestClient ClassroomCoursesCreate {..} =+    go+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesCreateResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Delete.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to delete the requested course or for access errors. * @NOT_FOUND@ if no course exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.delete@.+module Gogol.Classroom.Courses.Delete+  ( -- * Resource+    ClassroomCoursesDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesDelete (..),+    newClassroomCoursesDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.delete@ method which the+-- 'ClassroomCoursesDelete' request conforms to.+type ClassroomCoursesDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to delete the requested course or for access errors. * @NOT_FOUND@ if no course exists with the requested ID.+--+-- /See:/ 'newClassroomCoursesDelete' smart constructor.+data ClassroomCoursesDelete = ClassroomCoursesDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course to delete. This identifier can be either the Classroom-assigned identifier or an alias.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesDelete' with the minimum fields required to make a request.+newClassroomCoursesDelete ::+  -- |  Identifier of the course to delete. This identifier can be either the Classroom-assigned identifier or an alias. See 'id'.+  Core.Text ->+  ClassroomCoursesDelete+newClassroomCoursesDelete id =+  ClassroomCoursesDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesDelete where+  type Rs ClassroomCoursesDelete = Empty+  type Scopes ClassroomCoursesDelete = '[Classroom'Courses]+  requestClient ClassroomCoursesDelete {..} =+    go+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesDeleteResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Get.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or for access errors. * @NOT_FOUND@ if no course exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.get@.+module Gogol.Classroom.Courses.Get+  ( -- * Resource+    ClassroomCoursesGetResource,++    -- ** Constructing a Request+    ClassroomCoursesGet (..),+    newClassroomCoursesGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.get@ method which the+-- 'ClassroomCoursesGet' request conforms to.+type ClassroomCoursesGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Course++-- | Returns a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or for access errors. * @NOT_FOUND@ if no course exists with the requested ID.+--+-- /See:/ 'newClassroomCoursesGet' smart constructor.+data ClassroomCoursesGet = ClassroomCoursesGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course to return. This identifier can be either the Classroom-assigned identifier or an alias.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesGet' with the minimum fields required to make a request.+newClassroomCoursesGet ::+  -- |  Identifier of the course to return. This identifier can be either the Classroom-assigned identifier or an alias. See 'id'.+  Core.Text ->+  ClassroomCoursesGet+newClassroomCoursesGet id =+  ClassroomCoursesGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesGet where+  type Rs ClassroomCoursesGet = Course+  type+    Scopes ClassroomCoursesGet =+      '[Classroom'Courses, Classroom'Courses'Readonly]+  requestClient ClassroomCoursesGet {..} =+    go+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesGetResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/List.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of courses that the requesting user is permitted to view, restricted to those that match the request. Returned courses are ordered by creation time, with the most recently created coming first. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the query argument is malformed. * @NOT_FOUND@ if any users specified in the query arguments do not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.list@.+module Gogol.Classroom.Courses.List+  ( -- * Resource+    ClassroomCoursesListResource,++    -- ** Constructing a Request+    ClassroomCoursesList (..),+    newClassroomCoursesList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.list@ method which the+-- 'ClassroomCoursesList' request conforms to.+type ClassroomCoursesListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParams "courseStates" CoursesListCourseStates+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "studentId" Core.Text+    Core.:> Core.QueryParam "teacherId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListCoursesResponse++-- | Returns a list of courses that the requesting user is permitted to view, restricted to those that match the request. Returned courses are ordered by creation time, with the most recently created coming first. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the query argument is malformed. * @NOT_FOUND@ if any users specified in the query arguments do not exist.+--+-- /See:/ 'newClassroomCoursesList' smart constructor.+data ClassroomCoursesList = ClassroomCoursesList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Restricts returned courses to those in one of the specified states The default value is ACTIVE, ARCHIVED, PROVISIONED, DECLINED.+    courseStates :: (Core.Maybe [CoursesListCourseStates]),+    -- | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Restricts returned courses to those having a student with the specified identifier. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    studentId :: (Core.Maybe Core.Text),+    -- | Restricts returned courses to those having a teacher with the specified identifier. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    teacherId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesList' with the minimum fields required to make a request.+newClassroomCoursesList ::+  ClassroomCoursesList+newClassroomCoursesList =+  ClassroomCoursesList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseStates = Core.Nothing,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      studentId = Core.Nothing,+      teacherId = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesList where+  type Rs ClassroomCoursesList = ListCoursesResponse+  type+    Scopes ClassroomCoursesList =+      '[Classroom'Courses, Classroom'Courses'Readonly]+  requestClient ClassroomCoursesList {..} =+    go+      xgafv+      accessToken+      callback+      (courseStates Core.^. Core._Default)+      pageSize+      pageToken+      studentId+      teacherId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesListResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Patch.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates one or more fields in a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to modify the requested course or for access errors. * @NOT_FOUND@ if no course exists with the requested ID. * @INVALID_ARGUMENT@ if invalid fields are specified in the update mask or if no update mask is supplied. * @FAILED_PRECONDITION@ for the following request errors: * CourseNotModifiable * InactiveCourseOwner * IneligibleOwner+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.patch@.+module Gogol.Classroom.Courses.Patch+  ( -- * Resource+    ClassroomCoursesPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesPatch (..),+    newClassroomCoursesPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.patch@ method which the+-- 'ClassroomCoursesPatch' request conforms to.+type ClassroomCoursesPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Course+    Core.:> Core.Patch '[Core.JSON] Course++-- | Updates one or more fields in a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to modify the requested course or for access errors. * @NOT_FOUND@ if no course exists with the requested ID. * @INVALID_ARGUMENT@ if invalid fields are specified in the update mask or if no update mask is supplied. * @FAILED_PRECONDITION@ for the following request errors: * CourseNotModifiable * InactiveCourseOwner * IneligibleOwner+--+-- /See:/ 'newClassroomCoursesPatch' smart constructor.+data ClassroomCoursesPatch = ClassroomCoursesPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course to update. This identifier can be either the Classroom-assigned identifier or an alias.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: Course,+    -- | Mask that identifies which fields on the course to update. This field is required to do an update. The update will fail if invalid fields are specified. The following fields are valid: * @name@ * @section@ * @descriptionHeading@ * @description@ * @room@ * @courseState@ * @ownerId@ Note: patches to ownerId are treated as being effective immediately, but in practice it may take some time for the ownership transfer of all affected resources to complete. When set in a query parameter, this field should be specified as @updateMask=,,...@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesPatch' with the minimum fields required to make a request.+newClassroomCoursesPatch ::+  -- |  Identifier of the course to update. This identifier can be either the Classroom-assigned identifier or an alias. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Course ->+  ClassroomCoursesPatch+newClassroomCoursesPatch id payload =+  ClassroomCoursesPatch+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      id = id,+      payload = payload,+      updateMask = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesPatch where+  type Rs ClassroomCoursesPatch = Course+  type Scopes ClassroomCoursesPatch = '[Classroom'Courses]+  requestClient ClassroomCoursesPatch {..} =+    go+      id+      xgafv+      accessToken+      callback+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesPatchResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Posts/AddOnAttachments/Create.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Posts.AddOnAttachments.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.posts.addOnAttachments.create@.+module Gogol.Classroom.Courses.Posts.AddOnAttachments.Create+  ( -- * Resource+    ClassroomCoursesPostsAddOnAttachmentsCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesPostsAddOnAttachmentsCreate (..),+    newClassroomCoursesPostsAddOnAttachmentsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.posts.addOnAttachments.create@ method which the+-- 'ClassroomCoursesPostsAddOnAttachmentsCreate' request conforms to.+type ClassroomCoursesPostsAddOnAttachmentsCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "posts"+    Core.:> Core.Capture "postId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "addOnToken" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "itemId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] AddOnAttachment+    Core.:> Core.Post '[Core.JSON] AddOnAttachment++-- | Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesPostsAddOnAttachmentsCreate' smart constructor.+data ClassroomCoursesPostsAddOnAttachmentsCreate = ClassroomCoursesPostsAddOnAttachmentsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Optional. Token that authorizes the request. The token is passed as a query parameter when the user is redirected from Classroom to the add-on\'s URL. This authorization token is required for in-Classroom attachment creation but optional for partner-first attachment creation. Returns an error if not provided for partner-first attachment creation and the developer projects that created the attachment and its parent stream item do not match.+    addOnToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which to create the attachment. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: AddOnAttachment,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesPostsAddOnAttachmentsCreate' with the minimum fields required to make a request.+newClassroomCoursesPostsAddOnAttachmentsCreate ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  AddOnAttachment ->+  -- |  Optional. Deprecated, use @item_id@ instead. See 'postId'.+  Core.Text ->+  ClassroomCoursesPostsAddOnAttachmentsCreate+newClassroomCoursesPostsAddOnAttachmentsCreate+  courseId+  payload+  postId =+    ClassroomCoursesPostsAddOnAttachmentsCreate+      { xgafv = Core.Nothing,+        accessToken = Core.Nothing,+        addOnToken = Core.Nothing,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = Core.Nothing,+        payload = payload,+        postId = postId,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesPostsAddOnAttachmentsCreate+  where+  type+    Rs ClassroomCoursesPostsAddOnAttachmentsCreate =+      AddOnAttachment+  type+    Scopes ClassroomCoursesPostsAddOnAttachmentsCreate =+      '[Classroom'Addons'Teacher]+  requestClient ClassroomCoursesPostsAddOnAttachmentsCreate {..} =+    go+      courseId+      postId+      xgafv+      accessToken+      addOnToken+      callback+      itemId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesPostsAddOnAttachmentsCreateResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Posts/AddOnAttachments/Delete.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Posts.AddOnAttachments.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.posts.addOnAttachments.delete@.+module Gogol.Classroom.Courses.Posts.AddOnAttachments.Delete+  ( -- * Resource+    ClassroomCoursesPostsAddOnAttachmentsDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesPostsAddOnAttachmentsDelete (..),+    newClassroomCoursesPostsAddOnAttachmentsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.posts.addOnAttachments.delete@ method which the+-- 'ClassroomCoursesPostsAddOnAttachmentsDelete' request conforms to.+type ClassroomCoursesPostsAddOnAttachmentsDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "posts"+    Core.:> Core.Capture "postId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "itemId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesPostsAddOnAttachmentsDelete' smart constructor.+data ClassroomCoursesPostsAddOnAttachmentsDelete = ClassroomCoursesPostsAddOnAttachmentsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: (Core.Maybe Core.Text),+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesPostsAddOnAttachmentsDelete' with the minimum fields required to make a request.+newClassroomCoursesPostsAddOnAttachmentsDelete ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Optional. Deprecated, use @item_id@ instead. See 'postId'.+  Core.Text ->+  ClassroomCoursesPostsAddOnAttachmentsDelete+newClassroomCoursesPostsAddOnAttachmentsDelete+  attachmentId+  courseId+  postId =+    ClassroomCoursesPostsAddOnAttachmentsDelete+      { xgafv = Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = Core.Nothing,+        postId = postId,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesPostsAddOnAttachmentsDelete+  where+  type Rs ClassroomCoursesPostsAddOnAttachmentsDelete = Empty+  type+    Scopes ClassroomCoursesPostsAddOnAttachmentsDelete =+      '[Classroom'Addons'Teacher]+  requestClient ClassroomCoursesPostsAddOnAttachmentsDelete {..} =+    go+      courseId+      postId+      attachmentId+      xgafv+      accessToken+      callback+      itemId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesPostsAddOnAttachmentsDeleteResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Posts/AddOnAttachments/Get.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Posts.AddOnAttachments.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.posts.addOnAttachments.get@.+module Gogol.Classroom.Courses.Posts.AddOnAttachments.Get+  ( -- * Resource+    ClassroomCoursesPostsAddOnAttachmentsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesPostsAddOnAttachmentsGet (..),+    newClassroomCoursesPostsAddOnAttachmentsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.posts.addOnAttachments.get@ method which the+-- 'ClassroomCoursesPostsAddOnAttachmentsGet' request conforms to.+type ClassroomCoursesPostsAddOnAttachmentsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "posts"+    Core.:> Core.Capture "postId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "itemId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] AddOnAttachment++-- | Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesPostsAddOnAttachmentsGet' smart constructor.+data ClassroomCoursesPostsAddOnAttachmentsGet = ClassroomCoursesPostsAddOnAttachmentsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: (Core.Maybe Core.Text),+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesPostsAddOnAttachmentsGet' with the minimum fields required to make a request.+newClassroomCoursesPostsAddOnAttachmentsGet ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Optional. Deprecated, use @item_id@ instead. See 'postId'.+  Core.Text ->+  ClassroomCoursesPostsAddOnAttachmentsGet+newClassroomCoursesPostsAddOnAttachmentsGet+  attachmentId+  courseId+  postId =+    ClassroomCoursesPostsAddOnAttachmentsGet+      { xgafv = Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = Core.Nothing,+        postId = postId,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesPostsAddOnAttachmentsGet+  where+  type Rs ClassroomCoursesPostsAddOnAttachmentsGet = AddOnAttachment+  type+    Scopes ClassroomCoursesPostsAddOnAttachmentsGet =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient ClassroomCoursesPostsAddOnAttachmentsGet {..} =+    go+      courseId+      postId+      attachmentId+      xgafv+      accessToken+      callback+      itemId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesPostsAddOnAttachmentsGetResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Posts/AddOnAttachments/List.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Posts.AddOnAttachments.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.posts.addOnAttachments.list@.+module Gogol.Classroom.Courses.Posts.AddOnAttachments.List+  ( -- * Resource+    ClassroomCoursesPostsAddOnAttachmentsListResource,++    -- ** Constructing a Request+    ClassroomCoursesPostsAddOnAttachmentsList (..),+    newClassroomCoursesPostsAddOnAttachmentsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.posts.addOnAttachments.list@ method which the+-- 'ClassroomCoursesPostsAddOnAttachmentsList' request conforms to.+type ClassroomCoursesPostsAddOnAttachmentsListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "posts"+    Core.:> Core.Capture "postId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "itemId" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListAddOnAttachmentsResponse++-- | Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachments on the post. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesPostsAddOnAttachmentsList' smart constructor.+data ClassroomCoursesPostsAddOnAttachmentsList = ClassroomCoursesPostsAddOnAttachmentsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ whose attachments should be enumerated. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: (Core.Maybe Core.Text),+    -- | The maximum number of attachments to return. The service may return fewer than this value. If unspecified, at most 20 attachments will be returned. The maximum value is 20; values above 20 will be coerced to 20.+    pageSize :: (Core.Maybe Core.Int32),+    -- | A page token, received from a previous @ListAddOnAttachments@ call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to @ListAddOnAttachments@ must match the call that provided the page token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Optional. Identifier of the post under the course whose attachments to enumerate. Deprecated, use @item_id@ instead.+    postId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesPostsAddOnAttachmentsList' with the minimum fields required to make a request.+newClassroomCoursesPostsAddOnAttachmentsList ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Optional. Identifier of the post under the course whose attachments to enumerate. Deprecated, use @item_id@ instead. See 'postId'.+  Core.Text ->+  ClassroomCoursesPostsAddOnAttachmentsList+newClassroomCoursesPostsAddOnAttachmentsList courseId postId =+  ClassroomCoursesPostsAddOnAttachmentsList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      itemId = Core.Nothing,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      postId = postId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomCoursesPostsAddOnAttachmentsList+  where+  type+    Rs ClassroomCoursesPostsAddOnAttachmentsList =+      ListAddOnAttachmentsResponse+  type+    Scopes ClassroomCoursesPostsAddOnAttachmentsList =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient ClassroomCoursesPostsAddOnAttachmentsList {..} =+    go+      courseId+      postId+      xgafv+      accessToken+      callback+      itemId+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesPostsAddOnAttachmentsListResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Posts/AddOnAttachments/Patch.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Posts.AddOnAttachments.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.posts.addOnAttachments.patch@.+module Gogol.Classroom.Courses.Posts.AddOnAttachments.Patch+  ( -- * Resource+    ClassroomCoursesPostsAddOnAttachmentsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesPostsAddOnAttachmentsPatch (..),+    newClassroomCoursesPostsAddOnAttachmentsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.posts.addOnAttachments.patch@ method which the+-- 'ClassroomCoursesPostsAddOnAttachmentsPatch' request conforms to.+type ClassroomCoursesPostsAddOnAttachmentsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "posts"+    Core.:> Core.Capture "postId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "itemId" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] AddOnAttachment+    Core.:> Core.Patch '[Core.JSON] AddOnAttachment++-- | Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesPostsAddOnAttachmentsPatch' smart constructor.+data ClassroomCoursesPostsAddOnAttachmentsPatch = ClassroomCoursesPostsAddOnAttachmentsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the post under which the attachment is attached.+    itemId :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: AddOnAttachment,+    -- | Required. Identifier of the post under which the attachment is attached.+    postId :: Core.Text,+    -- | Required. Mask that identifies which fields on the attachment to 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 @AddOnAttachment@ object. If a field that does not support empty values is included in the update mask and not set in the @AddOnAttachment@ object, an @INVALID_ARGUMENT@ error is returned. The following fields may be specified by teachers: * @title@ * @teacher_view_uri@ * @student_view_uri@ * @student_work_review_uri@ * @due_date@ * @due_time@ * @max_points@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesPostsAddOnAttachmentsPatch' with the minimum fields required to make a request.+newClassroomCoursesPostsAddOnAttachmentsPatch ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  AddOnAttachment ->+  -- |  Required. Identifier of the post under which the attachment is attached. See 'postId'.+  Core.Text ->+  ClassroomCoursesPostsAddOnAttachmentsPatch+newClassroomCoursesPostsAddOnAttachmentsPatch+  attachmentId+  courseId+  payload+  postId =+    ClassroomCoursesPostsAddOnAttachmentsPatch+      { xgafv = Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = Core.Nothing,+        payload = payload,+        postId = postId,+        updateMask = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesPostsAddOnAttachmentsPatch+  where+  type+    Rs ClassroomCoursesPostsAddOnAttachmentsPatch =+      AddOnAttachment+  type+    Scopes ClassroomCoursesPostsAddOnAttachmentsPatch =+      '[Classroom'Addons'Teacher]+  requestClient ClassroomCoursesPostsAddOnAttachmentsPatch {..} =+    go+      courseId+      postId+      attachmentId+      xgafv+      accessToken+      callback+      itemId+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesPostsAddOnAttachmentsPatchResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Posts/AddOnAttachments/StudentSubmissions/Get.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Posts.AddOnAttachments.StudentSubmissions.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a student submission for an add-on attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.posts.addOnAttachments.studentSubmissions.get@.+module Gogol.Classroom.Courses.Posts.AddOnAttachments.StudentSubmissions.Get+  ( -- * Resource+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet (..),+    newClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.posts.addOnAttachments.studentSubmissions.get@ method which the+-- 'ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet' request conforms to.+type ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "posts"+    Core.:> Core.Capture "postId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.Capture "submissionId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "itemId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] AddOnAttachmentStudentSubmission++-- | Returns a student submission for an add-on attachment. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet' smart constructor.+data ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet = ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: (Core.Maybe Core.Text),+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: Core.Text,+    -- | Required. Identifier of the student’s submission.+    submissionId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet' with the minimum fields required to make a request.+newClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Optional. Deprecated, use @item_id@ instead. See 'postId'.+  Core.Text ->+  -- |  Required. Identifier of the student’s submission. See 'submissionId'.+  Core.Text ->+  ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet+newClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet+  attachmentId+  courseId+  postId+  submissionId =+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = Core.Nothing,+        postId = postId,+        submissionId = submissionId,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet+  where+  type+    Rs ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet =+      AddOnAttachmentStudentSubmission+  type+    Scopes+      ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet =+      '[ Classroom'Addons'Student,+         Classroom'Addons'Teacher,+         Classroom'StudentSubmissions'Students'Readonly+       ]+  requestClient+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGet {..} =+      go+        courseId+        postId+        attachmentId+        submissionId+        xgafv+        accessToken+        callback+        itemId+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsGetResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/Posts/AddOnAttachments/StudentSubmissions/Patch.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Posts.AddOnAttachments.StudentSubmissions.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates data associated with an add-on attachment submission. Requires the add-on to have been the original creator of the attachment and the attachment to have a positive @max_points@ value set. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.posts.addOnAttachments.studentSubmissions.patch@.+module Gogol.Classroom.Courses.Posts.AddOnAttachments.StudentSubmissions.Patch+  ( -- * Resource+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch (..),+    newClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.posts.addOnAttachments.studentSubmissions.patch@ method which the+-- 'ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch' request conforms to.+type ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "posts"+    Core.:> Core.Capture "postId" Core.Text+    Core.:> "addOnAttachments"+    Core.:> Core.Capture "attachmentId" Core.Text+    Core.:> "studentSubmissions"+    Core.:> Core.Capture "submissionId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "itemId" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] AddOnAttachmentStudentSubmission+    Core.:> Core.Patch '[Core.JSON] AddOnAttachmentStudentSubmission++-- | Updates data associated with an add-on attachment submission. Requires the add-on to have been the original creator of the attachment and the attachment to have a positive @max_points@ value set. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch' smart constructor.+data ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch = ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the attachment.+    attachmentId :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: AddOnAttachmentStudentSubmission,+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: Core.Text,+    -- | Required. Identifier of the student\'s submission.+    submissionId :: Core.Text,+    -- | Required. Mask that identifies which fields on the attachment to 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 @AddOnAttachmentStudentSubmission@ object. The following fields may be specified by teachers: * @points_earned@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch' with the minimum fields required to make a request.+newClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch ::+  -- |  Required. Identifier of the attachment. See 'attachmentId'.+  Core.Text ->+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  AddOnAttachmentStudentSubmission ->+  -- |  Optional. Deprecated, use @item_id@ instead. See 'postId'.+  Core.Text ->+  -- |  Required. Identifier of the student\'s submission. See 'submissionId'.+  Core.Text ->+  ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch+newClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch+  attachmentId+  courseId+  payload+  postId+  submissionId =+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attachmentId = attachmentId,+        callback = Core.Nothing,+        courseId = courseId,+        itemId = Core.Nothing,+        payload = payload,+        postId = postId,+        submissionId = submissionId,+        updateMask = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch+  where+  type+    Rs+      ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch =+      AddOnAttachmentStudentSubmission+  type+    Scopes+      ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch =+      '[Classroom'Addons'Teacher]+  requestClient+    ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatch {..} =+      go+        courseId+        postId+        attachmentId+        submissionId+        xgafv+        accessToken+        callback+        itemId+        updateMask+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        classroomService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  ClassroomCoursesPostsAddOnAttachmentsStudentSubmissionsPatchResource+            )+            Core.mempty
+ gen/Gogol/Classroom/Courses/Posts/GetAddOnContext.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Posts.GetAddOnContext+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call this to validate query parameters and the requesting user\'s role whenever the add-on is opened in an <https://developers.google.com/classroom/add-ons/get-started/iframes/iframes-overview iframe>. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.posts.getAddOnContext@.+module Gogol.Classroom.Courses.Posts.GetAddOnContext+  ( -- * Resource+    ClassroomCoursesPostsGetAddOnContextResource,++    -- ** Constructing a Request+    ClassroomCoursesPostsGetAddOnContext (..),+    newClassroomCoursesPostsGetAddOnContext,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.posts.getAddOnContext@ method which the+-- 'ClassroomCoursesPostsGetAddOnContext' request conforms to.+type ClassroomCoursesPostsGetAddOnContextResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "posts"+    Core.:> Core.Capture "postId" Core.Text+    Core.:> "addOnContext"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "addOnToken" Core.Text+    Core.:> Core.QueryParam "attachmentId" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "itemId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] AddOnContext++-- | Gets metadata for Classroom add-ons in the context of a specific post. To maintain the integrity of its own data and permissions model, an add-on should call this to validate query parameters and the requesting user\'s role whenever the add-on is opened in an <https://developers.google.com/classroom/add-ons/get-started/iframes/iframes-overview iframe>. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if one of the identified resources does not exist.+--+-- /See:/ 'newClassroomCoursesPostsGetAddOnContext' smart constructor.+data ClassroomCoursesPostsGetAddOnContext = ClassroomCoursesPostsGetAddOnContext+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Optional. Token that authorizes the request. The token is passed as a query parameter when the user is redirected from Classroom to the add-on\'s URL. The authorization token is required when neither of the following is true: * The add-on has attachments on the post. * The developer project issuing the request is the same project that created the post.+    addOnToken :: (Core.Maybe Core.Text),+    -- | Optional. The identifier of the attachment. This field is required for all requests except when the user is in the <https://developers.google.com/classroom/add-ons/get-started/iframes/attachment-discovery-iframe Attachment Discovery iframe>.+    attachmentId :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id.+    itemId :: (Core.Maybe Core.Text),+    -- | Optional. Deprecated, use @item_id@ instead.+    postId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesPostsGetAddOnContext' with the minimum fields required to make a request.+newClassroomCoursesPostsGetAddOnContext ::+  -- |  Required. Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Optional. Deprecated, use @item_id@ instead. See 'postId'.+  Core.Text ->+  ClassroomCoursesPostsGetAddOnContext+newClassroomCoursesPostsGetAddOnContext courseId postId =+  ClassroomCoursesPostsGetAddOnContext+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      addOnToken = Core.Nothing,+      attachmentId = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      itemId = Core.Nothing,+      postId = postId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesPostsGetAddOnContext where+  type Rs ClassroomCoursesPostsGetAddOnContext = AddOnContext+  type+    Scopes ClassroomCoursesPostsGetAddOnContext =+      '[Classroom'Addons'Student, Classroom'Addons'Teacher]+  requestClient ClassroomCoursesPostsGetAddOnContext {..} =+    go+      courseId+      postId+      xgafv+      accessToken+      addOnToken+      attachmentId+      callback+      itemId+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomCoursesPostsGetAddOnContextResource+          )+          Core.mempty
+ gen/Gogol/Classroom/Courses/Students/Create.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Students.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a user as a student of a course. Domain administrators are permitted to <https://developers.google.com/classroom/guides/manage-users directly add> users within their domain as students to courses within their domain. Students are permitted to add themselves to a course using an enrollment code. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to create students in this course or for access errors. * @NOT_FOUND@ if the requested course ID does not exist. * @FAILED_PRECONDITION@ if the requested user\'s account is disabled, for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * UserGroupsMembershipLimitReached * InactiveCourseOwner * @ALREADY_EXISTS@ if the user is already a student or teacher in the course.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.create@.+module Gogol.Classroom.Courses.Students.Create+  ( -- * Resource+    ClassroomCoursesStudentsCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesStudentsCreate (..),+    newClassroomCoursesStudentsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.students.create@ method which the+-- 'ClassroomCoursesStudentsCreate' request conforms to.+type ClassroomCoursesStudentsCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "students"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "enrollmentCode" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Student+    Core.:> Core.Post '[Core.JSON] Student++-- | Adds a user as a student of a course. Domain administrators are permitted to <https://developers.google.com/classroom/guides/manage-users directly add> users within their domain as students to courses within their domain. Students are permitted to add themselves to a course using an enrollment code. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to create students in this course or for access errors. * @NOT_FOUND@ if the requested course ID does not exist. * @FAILED_PRECONDITION@ if the requested user\'s account is disabled, for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * UserGroupsMembershipLimitReached * InactiveCourseOwner * @ALREADY_EXISTS@ if the user is already a student or teacher in the course.+--+-- /See:/ 'newClassroomCoursesStudentsCreate' smart constructor.+data ClassroomCoursesStudentsCreate = ClassroomCoursesStudentsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course to create the student in. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Enrollment code of the course to create the student in. This code is required if userId corresponds to the requesting user; it may be omitted if the requesting user has administrative permissions to create students for any user.+    enrollmentCode :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: Student,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesStudentsCreate' with the minimum fields required to make a request.+newClassroomCoursesStudentsCreate ::+  -- |  Identifier of the course to create the student in. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Student ->+  ClassroomCoursesStudentsCreate+newClassroomCoursesStudentsCreate courseId payload =+  ClassroomCoursesStudentsCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      enrollmentCode = Core.Nothing,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesStudentsCreate where+  type Rs ClassroomCoursesStudentsCreate = Student+  type+    Scopes ClassroomCoursesStudentsCreate =+      '[ Classroom'Profile'Emails,+         Classroom'Profile'Photos,+         Classroom'Rosters+       ]+  requestClient ClassroomCoursesStudentsCreate {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      enrollmentCode+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesStudentsCreateResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Students/Delete.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Students.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a student of a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to delete students of this course or for access errors. * @NOT_FOUND@ if no student of this course has the requested ID or if the course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.delete@.+module Gogol.Classroom.Courses.Students.Delete+  ( -- * Resource+    ClassroomCoursesStudentsDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesStudentsDelete (..),+    newClassroomCoursesStudentsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.students.delete@ method which the+-- 'ClassroomCoursesStudentsDelete' request conforms to.+type ClassroomCoursesStudentsDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "students"+    Core.:> Core.Capture "userId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a student of a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to delete students of this course or for access errors. * @NOT_FOUND@ if no student of this course has the requested ID or if the course does not exist.+--+-- /See:/ 'newClassroomCoursesStudentsDelete' smart constructor.+data ClassroomCoursesStudentsDelete = ClassroomCoursesStudentsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text),+    -- | Identifier of the student to delete. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    userId :: Core.Text+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesStudentsDelete' with the minimum fields required to make a request.+newClassroomCoursesStudentsDelete ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the student to delete. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user See 'userId'.+  Core.Text ->+  ClassroomCoursesStudentsDelete+newClassroomCoursesStudentsDelete courseId userId =+  ClassroomCoursesStudentsDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing,+      userId = userId+    }++instance Core.GoogleRequest ClassroomCoursesStudentsDelete where+  type Rs ClassroomCoursesStudentsDelete = Empty+  type Scopes ClassroomCoursesStudentsDelete = '[Classroom'Rosters]+  requestClient ClassroomCoursesStudentsDelete {..} =+    go+      courseId+      userId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesStudentsDeleteResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Students/Get.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Students.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a student of a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to view students of this course or for access errors. * @NOT_FOUND@ if no student of this course has the requested ID or if the course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.get@.+module Gogol.Classroom.Courses.Students.Get+  ( -- * Resource+    ClassroomCoursesStudentsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesStudentsGet (..),+    newClassroomCoursesStudentsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.students.get@ method which the+-- 'ClassroomCoursesStudentsGet' request conforms to.+type ClassroomCoursesStudentsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "students"+    Core.:> Core.Capture "userId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Student++-- | Returns a student of a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to view students of this course or for access errors. * @NOT_FOUND@ if no student of this course has the requested ID or if the course does not exist.+--+-- /See:/ 'newClassroomCoursesStudentsGet' smart constructor.+data ClassroomCoursesStudentsGet = ClassroomCoursesStudentsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text),+    -- | Identifier of the student to return. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    userId :: Core.Text+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesStudentsGet' with the minimum fields required to make a request.+newClassroomCoursesStudentsGet ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the student to return. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user See 'userId'.+  Core.Text ->+  ClassroomCoursesStudentsGet+newClassroomCoursesStudentsGet courseId userId =+  ClassroomCoursesStudentsGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing,+      userId = userId+    }++instance Core.GoogleRequest ClassroomCoursesStudentsGet where+  type Rs ClassroomCoursesStudentsGet = Student+  type+    Scopes ClassroomCoursesStudentsGet =+      '[ Classroom'Profile'Emails,+         Classroom'Profile'Photos,+         Classroom'Rosters,+         Classroom'Rosters'Readonly+       ]+  requestClient ClassroomCoursesStudentsGet {..} =+    go+      courseId+      userId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesStudentsGetResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Students/List.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Students.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of students of this course that the requester is permitted to view. This method returns the following error codes: * @NOT_FOUND@ if the course does not exist. * @PERMISSION_DENIED@ for access errors.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.list@.+module Gogol.Classroom.Courses.Students.List+  ( -- * Resource+    ClassroomCoursesStudentsListResource,++    -- ** Constructing a Request+    ClassroomCoursesStudentsList (..),+    newClassroomCoursesStudentsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.students.list@ method which the+-- 'ClassroomCoursesStudentsList' request conforms to.+type ClassroomCoursesStudentsListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "students"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListStudentsResponse++-- | Returns a list of students of this course that the requester is permitted to view. This method returns the following error codes: * @NOT_FOUND@ if the course does not exist. * @PERMISSION_DENIED@ for access errors.+--+-- /See:/ 'newClassroomCoursesStudentsList' smart constructor.+data ClassroomCoursesStudentsList = ClassroomCoursesStudentsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Maximum number of items to return. The default is 30 if unspecified or @0@. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesStudentsList' with the minimum fields required to make a request.+newClassroomCoursesStudentsList ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  ClassroomCoursesStudentsList+newClassroomCoursesStudentsList courseId =+  ClassroomCoursesStudentsList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesStudentsList where+  type Rs ClassroomCoursesStudentsList = ListStudentsResponse+  type+    Scopes ClassroomCoursesStudentsList =+      '[ Classroom'Profile'Emails,+         Classroom'Profile'Photos,+         Classroom'Rosters,+         Classroom'Rosters'Readonly+       ]+  requestClient ClassroomCoursesStudentsList {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesStudentsListResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Teachers/Create.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Teachers.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a teacher of a course. Domain administrators are permitted to <https://developers.google.com/classroom/guides/manage-users directly add> users within their domain as teachers to courses within their domain. Non-admin users should send an Invitation instead. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to create teachers in this course or for access errors. * @NOT_FOUND@ if the requested course ID does not exist. * @FAILED_PRECONDITION@ if the requested user\'s account is disabled, for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * CourseTeacherLimitReached * UserGroupsMembershipLimitReached * InactiveCourseOwner * @ALREADY_EXISTS@ if the user is already a teacher or student in the course.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.create@.+module Gogol.Classroom.Courses.Teachers.Create+  ( -- * Resource+    ClassroomCoursesTeachersCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesTeachersCreate (..),+    newClassroomCoursesTeachersCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.teachers.create@ method which the+-- 'ClassroomCoursesTeachersCreate' request conforms to.+type ClassroomCoursesTeachersCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "teachers"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Teacher+    Core.:> Core.Post '[Core.JSON] Teacher++-- | Creates a teacher of a course. Domain administrators are permitted to <https://developers.google.com/classroom/guides/manage-users directly add> users within their domain as teachers to courses within their domain. Non-admin users should send an Invitation instead. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to create teachers in this course or for access errors. * @NOT_FOUND@ if the requested course ID does not exist. * @FAILED_PRECONDITION@ if the requested user\'s account is disabled, for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * CourseTeacherLimitReached * UserGroupsMembershipLimitReached * InactiveCourseOwner * @ALREADY_EXISTS@ if the user is already a teacher or student in the course.+--+-- /See:/ 'newClassroomCoursesTeachersCreate' smart constructor.+data ClassroomCoursesTeachersCreate = ClassroomCoursesTeachersCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Multipart request metadata.+    payload :: Teacher,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesTeachersCreate' with the minimum fields required to make a request.+newClassroomCoursesTeachersCreate ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Teacher ->+  ClassroomCoursesTeachersCreate+newClassroomCoursesTeachersCreate courseId payload =+  ClassroomCoursesTeachersCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesTeachersCreate where+  type Rs ClassroomCoursesTeachersCreate = Teacher+  type+    Scopes ClassroomCoursesTeachersCreate =+      '[ Classroom'Profile'Emails,+         Classroom'Profile'Photos,+         Classroom'Rosters+       ]+  requestClient ClassroomCoursesTeachersCreate {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesTeachersCreateResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Teachers/Delete.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Teachers.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes the specified teacher from the specified course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to delete teachers of this course or for access errors. * @NOT_FOUND@ if no teacher of this course has the requested ID or if the course does not exist. * @FAILED_PRECONDITION@ if the requested ID belongs to the primary teacher of this course. * @FAILED_PRECONDITION@ if the requested ID belongs to the owner of the course Drive folder. * @FAILED_PRECONDITION@ if the course no longer has an active owner.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.delete@.+module Gogol.Classroom.Courses.Teachers.Delete+  ( -- * Resource+    ClassroomCoursesTeachersDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesTeachersDelete (..),+    newClassroomCoursesTeachersDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.teachers.delete@ method which the+-- 'ClassroomCoursesTeachersDelete' request conforms to.+type ClassroomCoursesTeachersDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "teachers"+    Core.:> Core.Capture "userId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Removes the specified teacher from the specified course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to delete teachers of this course or for access errors. * @NOT_FOUND@ if no teacher of this course has the requested ID or if the course does not exist. * @FAILED_PRECONDITION@ if the requested ID belongs to the primary teacher of this course. * @FAILED_PRECONDITION@ if the requested ID belongs to the owner of the course Drive folder. * @FAILED_PRECONDITION@ if the course no longer has an active owner.+--+-- /See:/ 'newClassroomCoursesTeachersDelete' smart constructor.+data ClassroomCoursesTeachersDelete = ClassroomCoursesTeachersDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text),+    -- | Identifier of the teacher to delete. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    userId :: Core.Text+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesTeachersDelete' with the minimum fields required to make a request.+newClassroomCoursesTeachersDelete ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the teacher to delete. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user See 'userId'.+  Core.Text ->+  ClassroomCoursesTeachersDelete+newClassroomCoursesTeachersDelete courseId userId =+  ClassroomCoursesTeachersDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing,+      userId = userId+    }++instance Core.GoogleRequest ClassroomCoursesTeachersDelete where+  type Rs ClassroomCoursesTeachersDelete = Empty+  type Scopes ClassroomCoursesTeachersDelete = '[Classroom'Rosters]+  requestClient ClassroomCoursesTeachersDelete {..} =+    go+      courseId+      userId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesTeachersDeleteResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Teachers/Get.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Teachers.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a teacher of a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to view teachers of this course or for access errors. * @NOT_FOUND@ if no teacher of this course has the requested ID or if the course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.get@.+module Gogol.Classroom.Courses.Teachers.Get+  ( -- * Resource+    ClassroomCoursesTeachersGetResource,++    -- ** Constructing a Request+    ClassroomCoursesTeachersGet (..),+    newClassroomCoursesTeachersGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.teachers.get@ method which the+-- 'ClassroomCoursesTeachersGet' request conforms to.+type ClassroomCoursesTeachersGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "teachers"+    Core.:> Core.Capture "userId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Teacher++-- | Returns a teacher of a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to view teachers of this course or for access errors. * @NOT_FOUND@ if no teacher of this course has the requested ID or if the course does not exist.+--+-- /See:/ 'newClassroomCoursesTeachersGet' smart constructor.+data ClassroomCoursesTeachersGet = ClassroomCoursesTeachersGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text),+    -- | Identifier of the teacher to return. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    userId :: Core.Text+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesTeachersGet' with the minimum fields required to make a request.+newClassroomCoursesTeachersGet ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the teacher to return. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user See 'userId'.+  Core.Text ->+  ClassroomCoursesTeachersGet+newClassroomCoursesTeachersGet courseId userId =+  ClassroomCoursesTeachersGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing,+      userId = userId+    }++instance Core.GoogleRequest ClassroomCoursesTeachersGet where+  type Rs ClassroomCoursesTeachersGet = Teacher+  type+    Scopes ClassroomCoursesTeachersGet =+      '[ Classroom'Profile'Emails,+         Classroom'Profile'Photos,+         Classroom'Rosters,+         Classroom'Rosters'Readonly+       ]+  requestClient ClassroomCoursesTeachersGet {..} =+    go+      courseId+      userId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesTeachersGetResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Teachers/List.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Teachers.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of teachers of this course that the requester is permitted to view. This method returns the following error codes: * @NOT_FOUND@ if the course does not exist. * @PERMISSION_DENIED@ for access errors.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.list@.+module Gogol.Classroom.Courses.Teachers.List+  ( -- * Resource+    ClassroomCoursesTeachersListResource,++    -- ** Constructing a Request+    ClassroomCoursesTeachersList (..),+    newClassroomCoursesTeachersList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.teachers.list@ method which the+-- 'ClassroomCoursesTeachersList' request conforms to.+type ClassroomCoursesTeachersListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "teachers"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListTeachersResponse++-- | Returns a list of teachers of this course that the requester is permitted to view. This method returns the following error codes: * @NOT_FOUND@ if the course does not exist. * @PERMISSION_DENIED@ for access errors.+--+-- /See:/ 'newClassroomCoursesTeachersList' smart constructor.+data ClassroomCoursesTeachersList = ClassroomCoursesTeachersList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Maximum number of items to return. The default is 30 if unspecified or @0@. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesTeachersList' with the minimum fields required to make a request.+newClassroomCoursesTeachersList ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  ClassroomCoursesTeachersList+newClassroomCoursesTeachersList courseId =+  ClassroomCoursesTeachersList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesTeachersList where+  type Rs ClassroomCoursesTeachersList = ListTeachersResponse+  type+    Scopes ClassroomCoursesTeachersList =+      '[ Classroom'Profile'Emails,+         Classroom'Profile'Photos,+         Classroom'Rosters,+         Classroom'Rosters'Readonly+       ]+  requestClient ClassroomCoursesTeachersList {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesTeachersListResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Topics/Create.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Topics.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a topic. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course, create a topic in the requested course, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @ALREADY_EXISTS@ if there exists a topic in the course with the same name. * @FAILED_PRECONDITION@ for the following request error: * CourseTopicLimitReached * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.create@.+module Gogol.Classroom.Courses.Topics.Create+  ( -- * Resource+    ClassroomCoursesTopicsCreateResource,++    -- ** Constructing a Request+    ClassroomCoursesTopicsCreate (..),+    newClassroomCoursesTopicsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.topics.create@ method which the+-- 'ClassroomCoursesTopicsCreate' request conforms to.+type ClassroomCoursesTopicsCreateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "topics"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Topic+    Core.:> Core.Post '[Core.JSON] Topic++-- | Creates a topic. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course, create a topic in the requested course, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @ALREADY_EXISTS@ if there exists a topic in the course with the same name. * @FAILED_PRECONDITION@ for the following request error: * CourseTopicLimitReached * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ 'newClassroomCoursesTopicsCreate' smart constructor.+data ClassroomCoursesTopicsCreate = ClassroomCoursesTopicsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Multipart request metadata.+    payload :: Topic,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesTopicsCreate' with the minimum fields required to make a request.+newClassroomCoursesTopicsCreate ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Topic ->+  ClassroomCoursesTopicsCreate+newClassroomCoursesTopicsCreate courseId payload =+  ClassroomCoursesTopicsCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesTopicsCreate where+  type Rs ClassroomCoursesTopicsCreate = Topic+  type Scopes ClassroomCoursesTopicsCreate = '[Classroom'Topics]+  requestClient ClassroomCoursesTopicsCreate {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesTopicsCreateResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Topics/Delete.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Topics.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a topic. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not allowed to delete the requested topic or for access errors. * @FAILED_PRECONDITION@ if the requested topic has already been deleted. * @NOT_FOUND@ if no course or topic exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.delete@.+module Gogol.Classroom.Courses.Topics.Delete+  ( -- * Resource+    ClassroomCoursesTopicsDeleteResource,++    -- ** Constructing a Request+    ClassroomCoursesTopicsDelete (..),+    newClassroomCoursesTopicsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.topics.delete@ method which the+-- 'ClassroomCoursesTopicsDelete' request conforms to.+type ClassroomCoursesTopicsDeleteResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "topics"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a topic. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not allowed to delete the requested topic or for access errors. * @FAILED_PRECONDITION@ if the requested topic has already been deleted. * @NOT_FOUND@ if no course or topic exists with the requested ID.+--+-- /See:/ 'newClassroomCoursesTopicsDelete' smart constructor.+data ClassroomCoursesTopicsDelete = ClassroomCoursesTopicsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the topic to delete.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesTopicsDelete' with the minimum fields required to make a request.+newClassroomCoursesTopicsDelete ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the topic to delete. See 'id'.+  Core.Text ->+  ClassroomCoursesTopicsDelete+newClassroomCoursesTopicsDelete courseId id =+  ClassroomCoursesTopicsDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesTopicsDelete where+  type Rs ClassroomCoursesTopicsDelete = Empty+  type Scopes ClassroomCoursesTopicsDelete = '[Classroom'Topics]+  requestClient ClassroomCoursesTopicsDelete {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesTopicsDeleteResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Topics/Get.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Topics.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a topic. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or topic, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or topic does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.get@.+module Gogol.Classroom.Courses.Topics.Get+  ( -- * Resource+    ClassroomCoursesTopicsGetResource,++    -- ** Constructing a Request+    ClassroomCoursesTopicsGet (..),+    newClassroomCoursesTopicsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.topics.get@ method which the+-- 'ClassroomCoursesTopicsGet' request conforms to.+type ClassroomCoursesTopicsGetResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "topics"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Topic++-- | Returns a topic. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or topic, or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course or topic does not exist.+--+-- /See:/ 'newClassroomCoursesTopicsGet' smart constructor.+data ClassroomCoursesTopicsGet = ClassroomCoursesTopicsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course.+    courseId :: Core.Text,+    -- | Identifier of the topic.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesTopicsGet' with the minimum fields required to make a request.+newClassroomCoursesTopicsGet ::+  -- |  Identifier of the course. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the topic. See 'id'.+  Core.Text ->+  ClassroomCoursesTopicsGet+newClassroomCoursesTopicsGet courseId id =+  ClassroomCoursesTopicsGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesTopicsGet where+  type Rs ClassroomCoursesTopicsGet = Topic+  type+    Scopes ClassroomCoursesTopicsGet =+      '[Classroom'Topics, Classroom'Topics'Readonly]+  requestClient ClassroomCoursesTopicsGet {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesTopicsGetResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Topics/List.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Topics.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of topics that the requester is permitted to view. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.list@.+module Gogol.Classroom.Courses.Topics.List+  ( -- * Resource+    ClassroomCoursesTopicsListResource,++    -- ** Constructing a Request+    ClassroomCoursesTopicsList (..),+    newClassroomCoursesTopicsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.topics.list@ method which the+-- 'ClassroomCoursesTopicsList' request conforms to.+type ClassroomCoursesTopicsListResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "topics"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListTopicResponse++-- | Returns the list of topics that the requester is permitted to view. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access the requested course or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @NOT_FOUND@ if the requested course does not exist.+--+-- /See:/ 'newClassroomCoursesTopicsList' smart constructor.+data ClassroomCoursesTopicsList = ClassroomCoursesTopicsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesTopicsList' with the minimum fields required to make a request.+newClassroomCoursesTopicsList ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  ClassroomCoursesTopicsList+newClassroomCoursesTopicsList courseId =+  ClassroomCoursesTopicsList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesTopicsList where+  type Rs ClassroomCoursesTopicsList = ListTopicResponse+  type+    Scopes ClassroomCoursesTopicsList =+      '[Classroom'Topics, Classroom'Topics'Readonly]+  requestClient ClassroomCoursesTopicsList {..} =+    go+      courseId+      xgafv+      accessToken+      callback+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesTopicsListResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Topics/Patch.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Topics.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates one or more fields of a topic. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding topic or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @FAILED_PRECONDITION@ if there exists a topic in the course with the same name. * @NOT_FOUND@ if the requested course or topic does not exist+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.patch@.+module Gogol.Classroom.Courses.Topics.Patch+  ( -- * Resource+    ClassroomCoursesTopicsPatchResource,++    -- ** Constructing a Request+    ClassroomCoursesTopicsPatch (..),+    newClassroomCoursesTopicsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.topics.patch@ method which the+-- 'ClassroomCoursesTopicsPatch' request conforms to.+type ClassroomCoursesTopicsPatchResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "courseId" Core.Text+    Core.:> "topics"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Topic+    Core.:> Core.Patch '[Core.JSON] Topic++-- | Updates one or more fields of a topic. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting developer project did not create the corresponding topic or for access errors. * @INVALID_ARGUMENT@ if the request is malformed. * @FAILED_PRECONDITION@ if there exists a topic in the course with the same name. * @NOT_FOUND@ if the requested course or topic does not exist+--+-- /See:/ 'newClassroomCoursesTopicsPatch' smart constructor.+data ClassroomCoursesTopicsPatch = ClassroomCoursesTopicsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.+    courseId :: Core.Text,+    -- | Identifier of the topic.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: Topic,+    -- | Mask that identifies which fields on the topic 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 Topic object. If a field that does not support empty values is included in the update mask and not set in the Topic object, an @INVALID_ARGUMENT@ error is returned. The following fields may be specified: * @name@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesTopicsPatch' with the minimum fields required to make a request.+newClassroomCoursesTopicsPatch ::+  -- |  Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. See 'courseId'.+  Core.Text ->+  -- |  Identifier of the topic. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Topic ->+  ClassroomCoursesTopicsPatch+newClassroomCoursesTopicsPatch courseId id payload =+  ClassroomCoursesTopicsPatch+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = courseId,+      id = id,+      payload = payload,+      updateMask = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesTopicsPatch where+  type Rs ClassroomCoursesTopicsPatch = Topic+  type Scopes ClassroomCoursesTopicsPatch = '[Classroom'Topics]+  requestClient ClassroomCoursesTopicsPatch {..} =+    go+      courseId+      id+      xgafv+      accessToken+      callback+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesTopicsPatchResource)+          Core.mempty
+ gen/Gogol/Classroom/Courses/Update.hs view
@@ -0,0 +1,115 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Courses.Update+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to modify the requested course or for access errors. * @NOT_FOUND@ if no course exists with the requested ID. * @FAILED_PRECONDITION@ for the following request errors: * CourseNotModifiable+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.update@.+module Gogol.Classroom.Courses.Update+  ( -- * Resource+    ClassroomCoursesUpdateResource,++    -- ** Constructing a Request+    ClassroomCoursesUpdate (..),+    newClassroomCoursesUpdate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.courses.update@ method which the+-- 'ClassroomCoursesUpdate' request conforms to.+type ClassroomCoursesUpdateResource =+  "v1"+    Core.:> "courses"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Course+    Core.:> Core.Put '[Core.JSON] Course++-- | Updates a course. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to modify the requested course or for access errors. * @NOT_FOUND@ if no course exists with the requested ID. * @FAILED_PRECONDITION@ for the following request errors: * CourseNotModifiable+--+-- /See:/ 'newClassroomCoursesUpdate' smart constructor.+data ClassroomCoursesUpdate = ClassroomCoursesUpdate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the course to update. This identifier can be either the Classroom-assigned identifier or an alias.+    id :: Core.Text,+    -- | Multipart request metadata.+    payload :: Course,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomCoursesUpdate' with the minimum fields required to make a request.+newClassroomCoursesUpdate ::+  -- |  Identifier of the course to update. This identifier can be either the Classroom-assigned identifier or an alias. See 'id'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Course ->+  ClassroomCoursesUpdate+newClassroomCoursesUpdate id payload =+  ClassroomCoursesUpdate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      id = id,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomCoursesUpdate where+  type Rs ClassroomCoursesUpdate = Course+  type Scopes ClassroomCoursesUpdate = '[Classroom'Courses]+  requestClient ClassroomCoursesUpdate {..} =+    go+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomCoursesUpdateResource)+          Core.mempty
+ gen/Gogol/Classroom/Internal/Product.hs view
@@ -0,0 +1,3827 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Internal.Product+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Gogol.Classroom.Internal.Product+  ( -- * AddOnAttachment+    AddOnAttachment (..),+    newAddOnAttachment,++    -- * AddOnAttachmentStudentSubmission+    AddOnAttachmentStudentSubmission (..),+    newAddOnAttachmentStudentSubmission,++    -- * AddOnContext+    AddOnContext (..),+    newAddOnContext,++    -- * Announcement+    Announcement (..),+    newAnnouncement,++    -- * Assignment+    Assignment (..),+    newAssignment,++    -- * AssignmentSubmission+    AssignmentSubmission (..),+    newAssignmentSubmission,++    -- * Attachment+    Attachment (..),+    newAttachment,++    -- * CloudPubsubTopic+    CloudPubsubTopic (..),+    newCloudPubsubTopic,++    -- * CopyHistory+    CopyHistory (..),+    newCopyHistory,++    -- * Course+    Course (..),+    newCourse,++    -- * CourseAlias+    CourseAlias (..),+    newCourseAlias,++    -- * CourseMaterial+    CourseMaterial (..),+    newCourseMaterial,++    -- * CourseMaterialSet+    CourseMaterialSet (..),+    newCourseMaterialSet,++    -- * CourseRosterChangesInfo+    CourseRosterChangesInfo (..),+    newCourseRosterChangesInfo,++    -- * CourseWork+    CourseWork (..),+    newCourseWork,++    -- * CourseWorkChangesInfo+    CourseWorkChangesInfo (..),+    newCourseWorkChangesInfo,++    -- * CourseWorkMaterial+    CourseWorkMaterial (..),+    newCourseWorkMaterial,++    -- * Criterion+    Criterion (..),+    newCriterion,++    -- * Date+    Date (..),+    newDate,++    -- * DriveFile+    DriveFile (..),+    newDriveFile,++    -- * DriveFolder+    DriveFolder (..),+    newDriveFolder,++    -- * EmbedUri+    EmbedUri (..),+    newEmbedUri,++    -- * Empty+    Empty (..),+    newEmpty,++    -- * Feed+    Feed (..),+    newFeed,++    -- * Form+    Form (..),+    newForm,++    -- * GlobalPermission+    GlobalPermission (..),+    newGlobalPermission,++    -- * GradeCategory+    GradeCategory (..),+    newGradeCategory,++    -- * GradeHistory+    GradeHistory (..),+    newGradeHistory,++    -- * GradebookSettings+    GradebookSettings (..),+    newGradebookSettings,++    -- * Guardian+    Guardian (..),+    newGuardian,++    -- * GuardianInvitation+    GuardianInvitation (..),+    newGuardianInvitation,++    -- * IndividualStudentsOptions+    IndividualStudentsOptions (..),+    newIndividualStudentsOptions,++    -- * Invitation+    Invitation (..),+    newInvitation,++    -- * Level+    Level (..),+    newLevel,++    -- * Link+    Link (..),+    newLink,++    -- * ListAddOnAttachmentsResponse+    ListAddOnAttachmentsResponse (..),+    newListAddOnAttachmentsResponse,++    -- * ListAnnouncementsResponse+    ListAnnouncementsResponse (..),+    newListAnnouncementsResponse,++    -- * ListCourseAliasesResponse+    ListCourseAliasesResponse (..),+    newListCourseAliasesResponse,++    -- * ListCourseWorkMaterialResponse+    ListCourseWorkMaterialResponse (..),+    newListCourseWorkMaterialResponse,++    -- * ListCourseWorkResponse+    ListCourseWorkResponse (..),+    newListCourseWorkResponse,++    -- * ListCoursesResponse+    ListCoursesResponse (..),+    newListCoursesResponse,++    -- * ListGuardianInvitationsResponse+    ListGuardianInvitationsResponse (..),+    newListGuardianInvitationsResponse,++    -- * ListGuardiansResponse+    ListGuardiansResponse (..),+    newListGuardiansResponse,++    -- * ListInvitationsResponse+    ListInvitationsResponse (..),+    newListInvitationsResponse,++    -- * ListRubricsResponse+    ListRubricsResponse (..),+    newListRubricsResponse,++    -- * ListStudentSubmissionsResponse+    ListStudentSubmissionsResponse (..),+    newListStudentSubmissionsResponse,++    -- * ListStudentsResponse+    ListStudentsResponse (..),+    newListStudentsResponse,++    -- * ListTeachersResponse+    ListTeachersResponse (..),+    newListTeachersResponse,++    -- * ListTopicResponse+    ListTopicResponse (..),+    newListTopicResponse,++    -- * Material+    Material (..),+    newMaterial,++    -- * ModifyAnnouncementAssigneesRequest+    ModifyAnnouncementAssigneesRequest (..),+    newModifyAnnouncementAssigneesRequest,++    -- * ModifyAttachmentsRequest+    ModifyAttachmentsRequest (..),+    newModifyAttachmentsRequest,++    -- * ModifyCourseWorkAssigneesRequest+    ModifyCourseWorkAssigneesRequest (..),+    newModifyCourseWorkAssigneesRequest,++    -- * ModifyIndividualStudentsOptions+    ModifyIndividualStudentsOptions (..),+    newModifyIndividualStudentsOptions,++    -- * MultipleChoiceQuestion+    MultipleChoiceQuestion (..),+    newMultipleChoiceQuestion,++    -- * MultipleChoiceSubmission+    MultipleChoiceSubmission (..),+    newMultipleChoiceSubmission,++    -- * Name+    Name (..),+    newName,++    -- * ReclaimStudentSubmissionRequest+    ReclaimStudentSubmissionRequest (..),+    newReclaimStudentSubmissionRequest,++    -- * Registration+    Registration (..),+    newRegistration,++    -- * ReturnStudentSubmissionRequest+    ReturnStudentSubmissionRequest (..),+    newReturnStudentSubmissionRequest,++    -- * Rubric+    Rubric (..),+    newRubric,++    -- * RubricGrade+    RubricGrade (..),+    newRubricGrade,++    -- * SharedDriveFile+    SharedDriveFile (..),+    newSharedDriveFile,++    -- * ShortAnswerSubmission+    ShortAnswerSubmission (..),+    newShortAnswerSubmission,++    -- * StateHistory+    StateHistory (..),+    newStateHistory,++    -- * Student+    Student (..),+    newStudent,++    -- * StudentContext+    StudentContext (..),+    newStudentContext,++    -- * StudentSubmission+    StudentSubmission (..),+    newStudentSubmission,++    -- * StudentSubmission_AssignedRubricGrades+    StudentSubmission_AssignedRubricGrades (..),+    newStudentSubmission_AssignedRubricGrades,++    -- * StudentSubmission_DraftRubricGrades+    StudentSubmission_DraftRubricGrades (..),+    newStudentSubmission_DraftRubricGrades,++    -- * SubmissionHistory+    SubmissionHistory (..),+    newSubmissionHistory,++    -- * Teacher+    Teacher (..),+    newTeacher,++    -- * TeacherContext+    TeacherContext (..),+    newTeacherContext,++    -- * TimeOfDay'+    TimeOfDay' (..),+    newTimeOfDay,++    -- * Topic+    Topic (..),+    newTopic,++    -- * TurnInStudentSubmissionRequest+    TurnInStudentSubmissionRequest (..),+    newTurnInStudentSubmissionRequest,++    -- * UserProfile+    UserProfile (..),+    newUserProfile,++    -- * YouTubeVideo+    YouTubeVideo (..),+    newYouTubeVideo,+  )+where++import Gogol.Classroom.Internal.Sum+import Gogol.Prelude qualified as Core++-- | An add-on attachment on a post.+--+-- /See:/ 'newAddOnAttachment' smart constructor.+data AddOnAttachment = AddOnAttachment+  { -- | Output only. Identifiers of attachments that were previous copies of this attachment. If the attachment was previously copied by virtue of its parent post being copied, this enumerates the identifiers of attachments that were its previous copies in ascending chronological order of copy.+    copyHistory :: (Core.Maybe [CopyHistory]),+    -- | Immutable. Identifier of the course.+    courseId :: (Core.Maybe Core.Text),+    -- | Date, in UTC, that work on this attachment is due. This must be specified if @due_time@ is specified.+    dueDate :: (Core.Maybe Date),+    -- | Time of day, in UTC, that work on this attachment is due. This must be specified if @due_date@ is specified.+    dueTime :: (Core.Maybe TimeOfDay'),+    -- | Immutable. Classroom-assigned identifier for this attachment, unique per post.+    id :: (Core.Maybe Core.Text),+    -- | Immutable. Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached. Unique per course.+    itemId :: (Core.Maybe Core.Text),+    -- | Maximum grade for this attachment. Can only be set if @studentWorkReviewUri@ is set. Set to a non-zero value to indicate that the attachment supports grade passback. If set, this must be a non-negative integer value. When set to zero, the attachment will not support grade passback.+    maxPoints :: (Core.Maybe Core.Double),+    -- | Immutable. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Required. URI to show the student view of the attachment. The URI will be opened in an iframe with the @courseId@, @itemId@, @itemType@, and @attachmentId@ query parameters set.+    studentViewUri :: (Core.Maybe EmbedUri),+    -- | URI for the teacher to see student work on the attachment, if applicable. The URI will be opened in an iframe with the @courseId@, @itemId@, @itemType@, @attachmentId@, and @submissionId@ query parameters set. This is the same @submissionId@ returned in the <//devsite.google.com/classroom/reference/rest/v1/AddOnContext#StudentContext AddOnContext.studentContext> field when a student views the attachment. If the URI is omitted or removed, @max_points@ will also be discarded.+    studentWorkReviewUri :: (Core.Maybe EmbedUri),+    -- | Required. URI to show the teacher view of the attachment. The URI will be opened in an iframe with the @courseId@, @itemId@, @itemType@, and @attachmentId@ query parameters set.+    teacherViewUri :: (Core.Maybe EmbedUri),+    -- | Required. Title of this attachment. The title must be between 1 and 1000 characters.+    title :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AddOnAttachment' with the minimum fields required to make a request.+newAddOnAttachment ::+  AddOnAttachment+newAddOnAttachment =+  AddOnAttachment+    { copyHistory = Core.Nothing,+      courseId = Core.Nothing,+      dueDate = Core.Nothing,+      dueTime = Core.Nothing,+      id = Core.Nothing,+      itemId = Core.Nothing,+      maxPoints = Core.Nothing,+      postId = Core.Nothing,+      studentViewUri = Core.Nothing,+      studentWorkReviewUri = Core.Nothing,+      teacherViewUri = Core.Nothing,+      title = Core.Nothing+    }++instance Core.FromJSON AddOnAttachment where+  parseJSON =+    Core.withObject+      "AddOnAttachment"+      ( \o ->+          AddOnAttachment+            Core.<$> (o Core..:? "copyHistory")+            Core.<*> (o Core..:? "courseId")+            Core.<*> (o Core..:? "dueDate")+            Core.<*> (o Core..:? "dueTime")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "itemId")+            Core.<*> (o Core..:? "maxPoints")+            Core.<*> (o Core..:? "postId")+            Core.<*> (o Core..:? "studentViewUri")+            Core.<*> (o Core..:? "studentWorkReviewUri")+            Core.<*> (o Core..:? "teacherViewUri")+            Core.<*> (o Core..:? "title")+      )++instance Core.ToJSON AddOnAttachment where+  toJSON AddOnAttachment {..} =+    Core.object+      ( Core.catMaybes+          [ ("copyHistory" Core..=) Core.<$> copyHistory,+            ("courseId" Core..=) Core.<$> courseId,+            ("dueDate" Core..=) Core.<$> dueDate,+            ("dueTime" Core..=) Core.<$> dueTime,+            ("id" Core..=) Core.<$> id,+            ("itemId" Core..=) Core.<$> itemId,+            ("maxPoints" Core..=) Core.<$> maxPoints,+            ("postId" Core..=) Core.<$> postId,+            ("studentViewUri" Core..=) Core.<$> studentViewUri,+            ("studentWorkReviewUri" Core..=) Core.<$> studentWorkReviewUri,+            ("teacherViewUri" Core..=) Core.<$> teacherViewUri,+            ("title" Core..=) Core.<$> title+          ]+      )++-- | Payload for grade update requests.+--+-- /See:/ 'newAddOnAttachmentStudentSubmission' smart constructor.+data AddOnAttachmentStudentSubmission = AddOnAttachmentStudentSubmission+  { -- | Student grade on this attachment. If unset, no grade was set.+    pointsEarned :: (Core.Maybe Core.Double),+    -- | Submission state of add-on attachment\'s parent post (i.e. assignment).+    postSubmissionState :: (Core.Maybe AddOnAttachmentStudentSubmission_PostSubmissionState)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AddOnAttachmentStudentSubmission' with the minimum fields required to make a request.+newAddOnAttachmentStudentSubmission ::+  AddOnAttachmentStudentSubmission+newAddOnAttachmentStudentSubmission =+  AddOnAttachmentStudentSubmission+    { pointsEarned = Core.Nothing,+      postSubmissionState = Core.Nothing+    }++instance Core.FromJSON AddOnAttachmentStudentSubmission where+  parseJSON =+    Core.withObject+      "AddOnAttachmentStudentSubmission"+      ( \o ->+          AddOnAttachmentStudentSubmission+            Core.<$> (o Core..:? "pointsEarned")+            Core.<*> (o Core..:? "postSubmissionState")+      )++instance Core.ToJSON AddOnAttachmentStudentSubmission where+  toJSON AddOnAttachmentStudentSubmission {..} =+    Core.object+      ( Core.catMaybes+          [ ("pointsEarned" Core..=) Core.<$> pointsEarned,+            ("postSubmissionState" Core..=) Core.<$> postSubmissionState+          ]+      )++-- | Attachment-relevant metadata for Classroom add-ons in the context of a specific post.+--+-- /See:/ 'newAddOnContext' smart constructor.+data AddOnContext = AddOnContext+  { -- | Immutable. Identifier of the course.+    courseId :: (Core.Maybe Core.Text),+    -- | Immutable. Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached.+    itemId :: (Core.Maybe Core.Text),+    -- | Immutable. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text),+    -- | Add-on context corresponding to the requesting user\'s role as a student. Its presence implies that the requesting user is a student in the course.+    studentContext :: (Core.Maybe StudentContext),+    -- | Optional. Whether the post allows the teacher to see student work and passback grades.+    supportsStudentWork :: (Core.Maybe Core.Bool),+    -- | Add-on context corresponding to the requesting user\'s role as a teacher. Its presence implies that the requesting user is a teacher in the course.+    teacherContext :: (Core.Maybe TeacherContext)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AddOnContext' with the minimum fields required to make a request.+newAddOnContext ::+  AddOnContext+newAddOnContext =+  AddOnContext+    { courseId = Core.Nothing,+      itemId = Core.Nothing,+      postId = Core.Nothing,+      studentContext = Core.Nothing,+      supportsStudentWork = Core.Nothing,+      teacherContext = Core.Nothing+    }++instance Core.FromJSON AddOnContext where+  parseJSON =+    Core.withObject+      "AddOnContext"+      ( \o ->+          AddOnContext+            Core.<$> (o Core..:? "courseId")+            Core.<*> (o Core..:? "itemId")+            Core.<*> (o Core..:? "postId")+            Core.<*> (o Core..:? "studentContext")+            Core.<*> (o Core..:? "supportsStudentWork")+            Core.<*> (o Core..:? "teacherContext")+      )++instance Core.ToJSON AddOnContext where+  toJSON AddOnContext {..} =+    Core.object+      ( Core.catMaybes+          [ ("courseId" Core..=) Core.<$> courseId,+            ("itemId" Core..=) Core.<$> itemId,+            ("postId" Core..=) Core.<$> postId,+            ("studentContext" Core..=) Core.<$> studentContext,+            ("supportsStudentWork" Core..=) Core.<$> supportsStudentWork,+            ("teacherContext" Core..=) Core.<$> teacherContext+          ]+      )++-- | Announcement created by a teacher for students of the course+--+-- /See:/ 'newAnnouncement' smart constructor.+data Announcement = Announcement+  { -- | Absolute link to this announcement in the Classroom web UI. This is only populated if @state@ is @PUBLISHED@. Read-only.+    alternateLink :: (Core.Maybe Core.Text),+    -- | Assignee mode of the announcement. If unspecified, the default value is @ALL_STUDENTS@.+    assigneeMode :: (Core.Maybe Announcement_AssigneeMode),+    -- | Identifier of the course. Read-only.+    courseId :: (Core.Maybe Core.Text),+    -- | Timestamp when this announcement was created. Read-only.+    creationTime :: (Core.Maybe Core.DateTime),+    -- | Identifier for the user that created the announcement. Read-only.+    creatorUserId :: (Core.Maybe Core.Text),+    -- | Classroom-assigned identifier of this announcement, unique per course. Read-only.+    id :: (Core.Maybe Core.Text),+    -- | Identifiers of students with access to the announcement. This field is set only if @assigneeMode@ is @INDIVIDUAL_STUDENTS@. If the @assigneeMode@ is @INDIVIDUAL_STUDENTS@, then only students specified in this field can see the announcement.+    individualStudentsOptions :: (Core.Maybe IndividualStudentsOptions),+    -- | Additional materials. Announcements must have no more than 20 material items.+    materials :: (Core.Maybe [Material]),+    -- | Optional timestamp when this announcement is scheduled to be published.+    scheduledTime :: (Core.Maybe Core.DateTime),+    -- | Status of this announcement. If unspecified, the default state is @DRAFT@.+    state :: (Core.Maybe Announcement_State),+    -- | Description of this announcement. The text must be a valid UTF-8 string containing no more than 30,000 characters.+    text :: (Core.Maybe Core.Text),+    -- | Timestamp of the most recent change to this announcement. Read-only.+    updateTime :: (Core.Maybe Core.DateTime)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Announcement' with the minimum fields required to make a request.+newAnnouncement ::+  Announcement+newAnnouncement =+  Announcement+    { alternateLink = Core.Nothing,+      assigneeMode = Core.Nothing,+      courseId = Core.Nothing,+      creationTime = Core.Nothing,+      creatorUserId = Core.Nothing,+      id = Core.Nothing,+      individualStudentsOptions = Core.Nothing,+      materials = Core.Nothing,+      scheduledTime = Core.Nothing,+      state = Core.Nothing,+      text = Core.Nothing,+      updateTime = Core.Nothing+    }++instance Core.FromJSON Announcement where+  parseJSON =+    Core.withObject+      "Announcement"+      ( \o ->+          Announcement+            Core.<$> (o Core..:? "alternateLink")+            Core.<*> (o Core..:? "assigneeMode")+            Core.<*> (o Core..:? "courseId")+            Core.<*> (o Core..:? "creationTime")+            Core.<*> (o Core..:? "creatorUserId")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "individualStudentsOptions")+            Core.<*> (o Core..:? "materials")+            Core.<*> (o Core..:? "scheduledTime")+            Core.<*> (o Core..:? "state")+            Core.<*> (o Core..:? "text")+            Core.<*> (o Core..:? "updateTime")+      )++instance Core.ToJSON Announcement where+  toJSON Announcement {..} =+    Core.object+      ( Core.catMaybes+          [ ("alternateLink" Core..=) Core.<$> alternateLink,+            ("assigneeMode" Core..=) Core.<$> assigneeMode,+            ("courseId" Core..=) Core.<$> courseId,+            ("creationTime" Core..=) Core.<$> creationTime,+            ("creatorUserId" Core..=) Core.<$> creatorUserId,+            ("id" Core..=) Core.<$> id,+            ("individualStudentsOptions" Core..=)+              Core.<$> individualStudentsOptions,+            ("materials" Core..=) Core.<$> materials,+            ("scheduledTime" Core..=) Core.<$> scheduledTime,+            ("state" Core..=) Core.<$> state,+            ("text" Core..=) Core.<$> text,+            ("updateTime" Core..=) Core.<$> updateTime+          ]+      )++-- | Additional details for assignments.+--+-- /See:/ 'newAssignment' smart constructor.+newtype Assignment = Assignment+  { -- | Drive folder where attachments from student submissions are placed. This is only populated for course teachers and administrators.+    studentWorkFolder :: (Core.Maybe DriveFolder)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Assignment' with the minimum fields required to make a request.+newAssignment ::+  Assignment+newAssignment = Assignment {studentWorkFolder = Core.Nothing}++instance Core.FromJSON Assignment where+  parseJSON =+    Core.withObject+      "Assignment"+      (\o -> Assignment Core.<$> (o Core..:? "studentWorkFolder"))++instance Core.ToJSON Assignment where+  toJSON Assignment {..} =+    Core.object+      ( Core.catMaybes+          [("studentWorkFolder" Core..=) Core.<$> studentWorkFolder]+      )++-- | Student work for an assignment.+--+-- /See:/ 'newAssignmentSubmission' smart constructor.+newtype AssignmentSubmission = AssignmentSubmission+  { -- | Attachments added by the student. Drive files that correspond to materials with a share mode of STUDENT/COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate/link fields are always available, but others (for example, title) may not be.+    attachments :: (Core.Maybe [Attachment])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AssignmentSubmission' with the minimum fields required to make a request.+newAssignmentSubmission ::+  AssignmentSubmission+newAssignmentSubmission =+  AssignmentSubmission {attachments = Core.Nothing}++instance Core.FromJSON AssignmentSubmission where+  parseJSON =+    Core.withObject+      "AssignmentSubmission"+      (\o -> AssignmentSubmission Core.<$> (o Core..:? "attachments"))++instance Core.ToJSON AssignmentSubmission where+  toJSON AssignmentSubmission {..} =+    Core.object+      (Core.catMaybes [("attachments" Core..=) Core.<$> attachments])++-- | Attachment added to student assignment work. When creating attachments, setting the @form@ field is not supported.+--+-- /See:/ 'newAttachment' smart constructor.+data Attachment = Attachment+  { -- | Google Drive file attachment.+    driveFile :: (Core.Maybe DriveFile),+    -- | Google Forms attachment.+    form :: (Core.Maybe Form),+    -- | Link attachment.+    link :: (Core.Maybe Link),+    -- | Youtube video attachment.+    youTubeVideo :: (Core.Maybe YouTubeVideo)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Attachment' with the minimum fields required to make a request.+newAttachment ::+  Attachment+newAttachment =+  Attachment+    { driveFile = Core.Nothing,+      form = Core.Nothing,+      link = Core.Nothing,+      youTubeVideo = Core.Nothing+    }++instance Core.FromJSON Attachment where+  parseJSON =+    Core.withObject+      "Attachment"+      ( \o ->+          Attachment+            Core.<$> (o Core..:? "driveFile")+            Core.<*> (o Core..:? "form")+            Core.<*> (o Core..:? "link")+            Core.<*> (o Core..:? "youTubeVideo")+      )++instance Core.ToJSON Attachment where+  toJSON Attachment {..} =+    Core.object+      ( Core.catMaybes+          [ ("driveFile" Core..=) Core.<$> driveFile,+            ("form" Core..=) Core.<$> form,+            ("link" Core..=) Core.<$> link,+            ("youTubeVideo" Core..=) Core.<$> youTubeVideo+          ]+      )++-- | A reference to a Cloud Pub\/Sub topic. To register for notifications, the owner of the topic must grant @classroom-notifications\@system.gserviceaccount.com@ the @projects.topics.publish@ permission.+--+-- /See:/ 'newCloudPubsubTopic' smart constructor.+newtype CloudPubsubTopic = CloudPubsubTopic+  { -- | The @name@ field of a Cloud Pub\/Sub <https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#Topic Topic>.+    topicName :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CloudPubsubTopic' with the minimum fields required to make a request.+newCloudPubsubTopic ::+  CloudPubsubTopic+newCloudPubsubTopic = CloudPubsubTopic {topicName = Core.Nothing}++instance Core.FromJSON CloudPubsubTopic where+  parseJSON =+    Core.withObject+      "CloudPubsubTopic"+      (\o -> CloudPubsubTopic Core.<$> (o Core..:? "topicName"))++instance Core.ToJSON CloudPubsubTopic where+  toJSON CloudPubsubTopic {..} =+    Core.object+      (Core.catMaybes [("topicName" Core..=) Core.<$> topicName])++-- | Identifier of a previous copy of a given attachment.+--+-- /See:/ 'newCopyHistory' smart constructor.+data CopyHistory = CopyHistory+  { -- | Immutable. Identifier of the attachment.+    attachmentId :: (Core.Maybe Core.Text),+    -- | Immutable. Identifier of the course.+    courseId :: (Core.Maybe Core.Text),+    -- | Immutable. Identifier of the @Announcement@, @CourseWork@, or @CourseWorkMaterial@ under which the attachment is attached.+    itemId :: (Core.Maybe Core.Text),+    -- | Immutable. Deprecated, use @item_id@ instead.+    postId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CopyHistory' with the minimum fields required to make a request.+newCopyHistory ::+  CopyHistory+newCopyHistory =+  CopyHistory+    { attachmentId = Core.Nothing,+      courseId = Core.Nothing,+      itemId = Core.Nothing,+      postId = Core.Nothing+    }++instance Core.FromJSON CopyHistory where+  parseJSON =+    Core.withObject+      "CopyHistory"+      ( \o ->+          CopyHistory+            Core.<$> (o Core..:? "attachmentId")+            Core.<*> (o Core..:? "courseId")+            Core.<*> (o Core..:? "itemId")+            Core.<*> (o Core..:? "postId")+      )++instance Core.ToJSON CopyHistory where+  toJSON CopyHistory {..} =+    Core.object+      ( Core.catMaybes+          [ ("attachmentId" Core..=) Core.<$> attachmentId,+            ("courseId" Core..=) Core.<$> courseId,+            ("itemId" Core..=) Core.<$> itemId,+            ("postId" Core..=) Core.<$> postId+          ]+      )++-- | A Course in Classroom.+--+-- /See:/ 'newCourse' smart constructor.+data Course = Course+  { -- | Absolute link to this course in the Classroom web UI. Read-only.+    alternateLink :: (Core.Maybe Core.Text),+    -- | The Calendar ID for a calendar that all course members can see, to which Classroom adds events for course work and announcements in the course. The Calendar for a course is created asynchronously when the course is set to @CourseState.ACTIVE@ for the first time (at creation time or when it is updated to @ACTIVE@ through the UI or the API). The Calendar ID will not be populated until the creation process is completed. Read-only.+    calendarId :: (Core.Maybe Core.Text),+    -- | The email address of a Google group containing all members of the course. This group does not accept email and can only be used for permissions. Read-only.+    courseGroupEmail :: (Core.Maybe Core.Text),+    -- | Sets of materials that appear on the \"about\" page of this course. Read-only.+    courseMaterialSets :: (Core.Maybe [CourseMaterialSet]),+    -- | State of the course. If unspecified, the default state is @PROVISIONED@.+    courseState :: (Core.Maybe Course_CourseState),+    -- | Creation time of the course. Specifying this field in a course update mask results in an error. Read-only.+    creationTime :: (Core.Maybe Core.DateTime),+    -- | Optional description. For example, \"We\'ll be learning about the structure of living creatures from a combination of textbooks, guest lectures, and lab work. Expect to be excited!\" If set, this field must be a valid UTF-8 string and no longer than 30,000 characters.+    description :: (Core.Maybe Core.Text),+    -- | Optional heading for the description. For example, \"Welcome to 10th Grade Biology.\" If set, this field must be a valid UTF-8 string and no longer than 3600 characters.+    descriptionHeading :: (Core.Maybe Core.Text),+    -- | Enrollment code to use when joining this course. Specifying this field in a course update mask results in an error. Read-only.+    enrollmentCode :: (Core.Maybe Core.Text),+    -- | The gradebook settings that specify how a student\'s overall grade for the course will be calculated and who it will be displayed to. Read-only+    gradebookSettings :: (Core.Maybe GradebookSettings),+    -- | Whether or not guardian notifications are enabled for this course. Read-only.+    guardiansEnabled :: (Core.Maybe Core.Bool),+    -- | Identifier for this course assigned by Classroom. When creating a course, you may optionally set this identifier to an alias string in the request to create a corresponding alias. The @id@ is still assigned by Classroom and cannot be updated after the course is created. Specifying this field in a course update mask results in an error.+    id :: (Core.Maybe Core.Text),+    -- | Name of the course. For example, \"10th Grade Biology\". The name is required. It must be between 1 and 750 characters and a valid UTF-8 string.+    name :: (Core.Maybe Core.Text),+    -- | The identifier of the owner of a course. When specified as a parameter of a create course request, this field is required. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user This must be set in a create request. Admins can also specify this field in a patch course request to transfer ownership. In other contexts, it is read-only.+    ownerId :: (Core.Maybe Core.Text),+    -- | Optional room location. For example, \"301\". If set, this field must be a valid UTF-8 string and no longer than 650 characters.+    room :: (Core.Maybe Core.Text),+    -- | Section of the course. For example, \"Period 2\". If set, this field must be a valid UTF-8 string and no longer than 2800 characters.+    section :: (Core.Maybe Core.Text),+    -- | Information about a Drive Folder that is shared with all teachers of the course. This field will only be set for teachers of the course and domain administrators. Read-only.+    teacherFolder :: (Core.Maybe DriveFolder),+    -- | The email address of a Google group containing all teachers of the course. This group does not accept email and can only be used for permissions. Read-only.+    teacherGroupEmail :: (Core.Maybe Core.Text),+    -- | Time of the most recent update to this course. Specifying this field in a course update mask results in an error. Read-only.+    updateTime :: (Core.Maybe Core.DateTime)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Course' with the minimum fields required to make a request.+newCourse ::+  Course+newCourse =+  Course+    { alternateLink = Core.Nothing,+      calendarId = Core.Nothing,+      courseGroupEmail = Core.Nothing,+      courseMaterialSets = Core.Nothing,+      courseState = Core.Nothing,+      creationTime = Core.Nothing,+      description = Core.Nothing,+      descriptionHeading = Core.Nothing,+      enrollmentCode = Core.Nothing,+      gradebookSettings = Core.Nothing,+      guardiansEnabled = Core.Nothing,+      id = Core.Nothing,+      name = Core.Nothing,+      ownerId = Core.Nothing,+      room = Core.Nothing,+      section = Core.Nothing,+      teacherFolder = Core.Nothing,+      teacherGroupEmail = Core.Nothing,+      updateTime = Core.Nothing+    }++instance Core.FromJSON Course where+  parseJSON =+    Core.withObject+      "Course"+      ( \o ->+          Course+            Core.<$> (o Core..:? "alternateLink")+            Core.<*> (o Core..:? "calendarId")+            Core.<*> (o Core..:? "courseGroupEmail")+            Core.<*> (o Core..:? "courseMaterialSets")+            Core.<*> (o Core..:? "courseState")+            Core.<*> (o Core..:? "creationTime")+            Core.<*> (o Core..:? "description")+            Core.<*> (o Core..:? "descriptionHeading")+            Core.<*> (o Core..:? "enrollmentCode")+            Core.<*> (o Core..:? "gradebookSettings")+            Core.<*> (o Core..:? "guardiansEnabled")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "name")+            Core.<*> (o Core..:? "ownerId")+            Core.<*> (o Core..:? "room")+            Core.<*> (o Core..:? "section")+            Core.<*> (o Core..:? "teacherFolder")+            Core.<*> (o Core..:? "teacherGroupEmail")+            Core.<*> (o Core..:? "updateTime")+      )++instance Core.ToJSON Course where+  toJSON Course {..} =+    Core.object+      ( Core.catMaybes+          [ ("alternateLink" Core..=) Core.<$> alternateLink,+            ("calendarId" Core..=) Core.<$> calendarId,+            ("courseGroupEmail" Core..=) Core.<$> courseGroupEmail,+            ("courseMaterialSets" Core..=) Core.<$> courseMaterialSets,+            ("courseState" Core..=) Core.<$> courseState,+            ("creationTime" Core..=) Core.<$> creationTime,+            ("description" Core..=) Core.<$> description,+            ("descriptionHeading" Core..=) Core.<$> descriptionHeading,+            ("enrollmentCode" Core..=) Core.<$> enrollmentCode,+            ("gradebookSettings" Core..=) Core.<$> gradebookSettings,+            ("guardiansEnabled" Core..=) Core.<$> guardiansEnabled,+            ("id" Core..=) Core.<$> id,+            ("name" Core..=) Core.<$> name,+            ("ownerId" Core..=) Core.<$> ownerId,+            ("room" Core..=) Core.<$> room,+            ("section" Core..=) Core.<$> section,+            ("teacherFolder" Core..=) Core.<$> teacherFolder,+            ("teacherGroupEmail" Core..=) Core.<$> teacherGroupEmail,+            ("updateTime" Core..=) Core.<$> updateTime+          ]+      )++-- | Alternative identifier for a course. An alias uniquely identifies a course. It must be unique within one of the following scopes: * domain: A domain-scoped alias is visible to all users within the alias creator\'s domain and can be created only by a domain admin. A domain-scoped alias is often used when a course has an identifier external to Classroom. * project: A project-scoped alias is visible to any request from an application using the Developer Console project ID that created the alias and can be created by any project. A project-scoped alias is often used when an application has alternative identifiers. A random value can also be used to avoid duplicate courses in the event of transmission failures, as retrying a request will return @ALREADY_EXISTS@ if a previous one has succeeded.+--+-- /See:/ 'newCourseAlias' smart constructor.+newtype CourseAlias = CourseAlias+  { -- | Alias string. The format of the string indicates the desired alias scoping. * @d:@ indicates a domain-scoped alias. Example: @d:math_101@ * @p:@ indicates a project-scoped alias. Example: @p:abc123@ This field has a maximum length of 256 characters.+    alias :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CourseAlias' with the minimum fields required to make a request.+newCourseAlias ::+  CourseAlias+newCourseAlias = CourseAlias {alias = Core.Nothing}++instance Core.FromJSON CourseAlias where+  parseJSON =+    Core.withObject+      "CourseAlias"+      (\o -> CourseAlias Core.<$> (o Core..:? "alias"))++instance Core.ToJSON CourseAlias where+  toJSON CourseAlias {..} =+    Core.object (Core.catMaybes [("alias" Core..=) Core.<$> alias])++-- | A material attached to a course as part of a material set.+--+-- /See:/ 'newCourseMaterial' smart constructor.+data CourseMaterial = CourseMaterial+  { -- | Google Drive file attachment.+    driveFile :: (Core.Maybe DriveFile),+    -- | Google Forms attachment.+    form :: (Core.Maybe Form),+    -- | Link atatchment.+    link :: (Core.Maybe Link),+    -- | Youtube video attachment.+    youTubeVideo :: (Core.Maybe YouTubeVideo)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CourseMaterial' with the minimum fields required to make a request.+newCourseMaterial ::+  CourseMaterial+newCourseMaterial =+  CourseMaterial+    { driveFile = Core.Nothing,+      form = Core.Nothing,+      link = Core.Nothing,+      youTubeVideo = Core.Nothing+    }++instance Core.FromJSON CourseMaterial where+  parseJSON =+    Core.withObject+      "CourseMaterial"+      ( \o ->+          CourseMaterial+            Core.<$> (o Core..:? "driveFile")+            Core.<*> (o Core..:? "form")+            Core.<*> (o Core..:? "link")+            Core.<*> (o Core..:? "youTubeVideo")+      )++instance Core.ToJSON CourseMaterial where+  toJSON CourseMaterial {..} =+    Core.object+      ( Core.catMaybes+          [ ("driveFile" Core..=) Core.<$> driveFile,+            ("form" Core..=) Core.<$> form,+            ("link" Core..=) Core.<$> link,+            ("youTubeVideo" Core..=) Core.<$> youTubeVideo+          ]+      )++-- | A set of materials that appears on the \"About\" page of the course. These materials might include a syllabus, schedule, or other background information relating to the course as a whole.+--+-- /See:/ 'newCourseMaterialSet' smart constructor.+data CourseMaterialSet = CourseMaterialSet+  { -- | Materials attached to this set.+    materials :: (Core.Maybe [CourseMaterial]),+    -- | Title for this set.+    title :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CourseMaterialSet' with the minimum fields required to make a request.+newCourseMaterialSet ::+  CourseMaterialSet+newCourseMaterialSet =+  CourseMaterialSet {materials = Core.Nothing, title = Core.Nothing}++instance Core.FromJSON CourseMaterialSet where+  parseJSON =+    Core.withObject+      "CourseMaterialSet"+      ( \o ->+          CourseMaterialSet+            Core.<$> (o Core..:? "materials")+            Core.<*> (o Core..:? "title")+      )++instance Core.ToJSON CourseMaterialSet where+  toJSON CourseMaterialSet {..} =+    Core.object+      ( Core.catMaybes+          [ ("materials" Core..=) Core.<$> materials,+            ("title" Core..=) Core.<$> title+          ]+      )++-- | Information about a @Feed@ with a @feed_type@ of @COURSE_ROSTER_CHANGES@.+--+-- /See:/ 'newCourseRosterChangesInfo' smart constructor.+newtype CourseRosterChangesInfo = CourseRosterChangesInfo+  { -- | The @course_id@ of the course to subscribe to roster changes for.+    courseId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CourseRosterChangesInfo' with the minimum fields required to make a request.+newCourseRosterChangesInfo ::+  CourseRosterChangesInfo+newCourseRosterChangesInfo =+  CourseRosterChangesInfo {courseId = Core.Nothing}++instance Core.FromJSON CourseRosterChangesInfo where+  parseJSON =+    Core.withObject+      "CourseRosterChangesInfo"+      (\o -> CourseRosterChangesInfo Core.<$> (o Core..:? "courseId"))++instance Core.ToJSON CourseRosterChangesInfo where+  toJSON CourseRosterChangesInfo {..} =+    Core.object+      (Core.catMaybes [("courseId" Core..=) Core.<$> courseId])++-- | Course work created by a teacher for students of the course.+--+-- /See:/ 'newCourseWork' smart constructor.+data CourseWork = CourseWork+  { -- | Absolute link to this course work in the Classroom web UI. This is only populated if @state@ is @PUBLISHED@. Read-only.+    alternateLink :: (Core.Maybe Core.Text),+    -- | Assignee mode of the coursework. If unspecified, the default value is @ALL_STUDENTS@.+    assigneeMode :: (Core.Maybe CourseWork_AssigneeMode),+    -- | Assignment details. This is populated only when @work_type@ is @ASSIGNMENT@. Read-only.+    assignment :: (Core.Maybe Assignment),+    -- | Whether this course work item is associated with the Developer Console project making the request. See CreateCourseWork for more details. Read-only.+    associatedWithDeveloper :: (Core.Maybe Core.Bool),+    -- | Identifier of the course. Read-only.+    courseId :: (Core.Maybe Core.Text),+    -- | Timestamp when this course work was created. Read-only.+    creationTime :: (Core.Maybe Core.DateTime),+    -- | Identifier for the user that created the coursework. Read-only.+    creatorUserId :: (Core.Maybe Core.Text),+    -- | Optional description of this course work. If set, the description must be a valid UTF-8 string containing no more than 30,000 characters.+    description :: (Core.Maybe Core.Text),+    -- | Optional date, in UTC, that submissions for this course work are due. This must be specified if @due_time@ is specified.+    dueDate :: (Core.Maybe Date),+    -- | Optional time of day, in UTC, that submissions for this course work are due. This must be specified if @due_date@ is specified.+    dueTime :: (Core.Maybe TimeOfDay'),+    -- | The category that this coursework\'s grade contributes to. Present only when a category has been chosen for the coursework. May be used in calculating the overall grade. Read-only.+    gradeCategory :: (Core.Maybe GradeCategory),+    -- | Classroom-assigned identifier of this course work, unique per course. Read-only.+    id :: (Core.Maybe Core.Text),+    -- | Identifiers of students with access to the coursework. This field is set only if @assigneeMode@ is @INDIVIDUAL_STUDENTS@. If the @assigneeMode@ is @INDIVIDUAL_STUDENTS@, then only students specified in this field are assigned the coursework.+    individualStudentsOptions :: (Core.Maybe IndividualStudentsOptions),+    -- | Additional materials. CourseWork must have no more than 20 material items.+    materials :: (Core.Maybe [Material]),+    -- | Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be a non-negative integer value.+    maxPoints :: (Core.Maybe Core.Double),+    -- | Multiple choice question details. For read operations, this field is populated only when @work_type@ is @MULTIPLE_CHOICE_QUESTION@. For write operations, this field must be specified when creating course work with a @work_type@ of @MULTIPLE_CHOICE_QUESTION@, and it must not be set otherwise.+    multipleChoiceQuestion :: (Core.Maybe MultipleChoiceQuestion),+    -- | Optional timestamp when this course work is scheduled to be published.+    scheduledTime :: (Core.Maybe Core.DateTime),+    -- | Status of this course work. If unspecified, the default state is @DRAFT@.+    state :: (Core.Maybe CourseWork_State),+    -- | Setting to determine when students are allowed to modify submissions. If unspecified, the default value is @MODIFIABLE_UNTIL_TURNED_IN@.+    submissionModificationMode :: (Core.Maybe CourseWork_SubmissionModificationMode),+    -- | Title of this course work. The title must be a valid UTF-8 string containing between 1 and 3000 characters.+    title :: (Core.Maybe Core.Text),+    -- | Identifier for the topic that this coursework is associated with. Must match an existing topic in the course.+    topicId :: (Core.Maybe Core.Text),+    -- | Timestamp of the most recent change to this course work. Read-only.+    updateTime :: (Core.Maybe Core.DateTime),+    -- | Type of this course work. The type is set when the course work is created and cannot be changed.+    workType :: (Core.Maybe CourseWork_WorkType)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CourseWork' with the minimum fields required to make a request.+newCourseWork ::+  CourseWork+newCourseWork =+  CourseWork+    { alternateLink = Core.Nothing,+      assigneeMode = Core.Nothing,+      assignment = Core.Nothing,+      associatedWithDeveloper = Core.Nothing,+      courseId = Core.Nothing,+      creationTime = Core.Nothing,+      creatorUserId = Core.Nothing,+      description = Core.Nothing,+      dueDate = Core.Nothing,+      dueTime = Core.Nothing,+      gradeCategory = Core.Nothing,+      id = Core.Nothing,+      individualStudentsOptions = Core.Nothing,+      materials = Core.Nothing,+      maxPoints = Core.Nothing,+      multipleChoiceQuestion = Core.Nothing,+      scheduledTime = Core.Nothing,+      state = Core.Nothing,+      submissionModificationMode = Core.Nothing,+      title = Core.Nothing,+      topicId = Core.Nothing,+      updateTime = Core.Nothing,+      workType = Core.Nothing+    }++instance Core.FromJSON CourseWork where+  parseJSON =+    Core.withObject+      "CourseWork"+      ( \o ->+          CourseWork+            Core.<$> (o Core..:? "alternateLink")+            Core.<*> (o Core..:? "assigneeMode")+            Core.<*> (o Core..:? "assignment")+            Core.<*> (o Core..:? "associatedWithDeveloper")+            Core.<*> (o Core..:? "courseId")+            Core.<*> (o Core..:? "creationTime")+            Core.<*> (o Core..:? "creatorUserId")+            Core.<*> (o Core..:? "description")+            Core.<*> (o Core..:? "dueDate")+            Core.<*> (o Core..:? "dueTime")+            Core.<*> (o Core..:? "gradeCategory")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "individualStudentsOptions")+            Core.<*> (o Core..:? "materials")+            Core.<*> (o Core..:? "maxPoints")+            Core.<*> (o Core..:? "multipleChoiceQuestion")+            Core.<*> (o Core..:? "scheduledTime")+            Core.<*> (o Core..:? "state")+            Core.<*> (o Core..:? "submissionModificationMode")+            Core.<*> (o Core..:? "title")+            Core.<*> (o Core..:? "topicId")+            Core.<*> (o Core..:? "updateTime")+            Core.<*> (o Core..:? "workType")+      )++instance Core.ToJSON CourseWork where+  toJSON CourseWork {..} =+    Core.object+      ( Core.catMaybes+          [ ("alternateLink" Core..=) Core.<$> alternateLink,+            ("assigneeMode" Core..=) Core.<$> assigneeMode,+            ("assignment" Core..=) Core.<$> assignment,+            ("associatedWithDeveloper" Core..=)+              Core.<$> associatedWithDeveloper,+            ("courseId" Core..=) Core.<$> courseId,+            ("creationTime" Core..=) Core.<$> creationTime,+            ("creatorUserId" Core..=) Core.<$> creatorUserId,+            ("description" Core..=) Core.<$> description,+            ("dueDate" Core..=) Core.<$> dueDate,+            ("dueTime" Core..=) Core.<$> dueTime,+            ("gradeCategory" Core..=) Core.<$> gradeCategory,+            ("id" Core..=) Core.<$> id,+            ("individualStudentsOptions" Core..=)+              Core.<$> individualStudentsOptions,+            ("materials" Core..=) Core.<$> materials,+            ("maxPoints" Core..=) Core.<$> maxPoints,+            ("multipleChoiceQuestion" Core..=) Core.<$> multipleChoiceQuestion,+            ("scheduledTime" Core..=) Core.<$> scheduledTime,+            ("state" Core..=) Core.<$> state,+            ("submissionModificationMode" Core..=)+              Core.<$> submissionModificationMode,+            ("title" Core..=) Core.<$> title,+            ("topicId" Core..=) Core.<$> topicId,+            ("updateTime" Core..=) Core.<$> updateTime,+            ("workType" Core..=) Core.<$> workType+          ]+      )++-- | Information about a @Feed@ with a @feed_type@ of @COURSE_WORK_CHANGES@.+--+-- /See:/ 'newCourseWorkChangesInfo' smart constructor.+newtype CourseWorkChangesInfo = CourseWorkChangesInfo+  { -- | The @course_id@ of the course to subscribe to work changes for.+    courseId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CourseWorkChangesInfo' with the minimum fields required to make a request.+newCourseWorkChangesInfo ::+  CourseWorkChangesInfo+newCourseWorkChangesInfo =+  CourseWorkChangesInfo {courseId = Core.Nothing}++instance Core.FromJSON CourseWorkChangesInfo where+  parseJSON =+    Core.withObject+      "CourseWorkChangesInfo"+      (\o -> CourseWorkChangesInfo Core.<$> (o Core..:? "courseId"))++instance Core.ToJSON CourseWorkChangesInfo where+  toJSON CourseWorkChangesInfo {..} =+    Core.object+      (Core.catMaybes [("courseId" Core..=) Core.<$> courseId])++-- | Course work material created by a teacher for students of the course+--+-- /See:/ 'newCourseWorkMaterial' smart constructor.+data CourseWorkMaterial = CourseWorkMaterial+  { -- | Absolute link to this course work material in the Classroom web UI. This is only populated if @state@ is @PUBLISHED@. Read-only.+    alternateLink :: (Core.Maybe Core.Text),+    -- | Assignee mode of the course work material. If unspecified, the default value is @ALL_STUDENTS@.+    assigneeMode :: (Core.Maybe CourseWorkMaterial_AssigneeMode),+    -- | Identifier of the course. Read-only.+    courseId :: (Core.Maybe Core.Text),+    -- | Timestamp when this course work material was created. Read-only.+    creationTime :: (Core.Maybe Core.DateTime),+    -- | Identifier for the user that created the course work material. Read-only.+    creatorUserId :: (Core.Maybe Core.Text),+    -- | Optional description of this course work material. The text must be a valid UTF-8 string containing no more than 30,000 characters.+    description :: (Core.Maybe Core.Text),+    -- | Classroom-assigned identifier of this course work material, unique per course. Read-only.+    id :: (Core.Maybe Core.Text),+    -- | Identifiers of students with access to the course work material. This field is set only if @assigneeMode@ is @INDIVIDUAL_STUDENTS@. If the @assigneeMode@ is @INDIVIDUAL_STUDENTS@, then only students specified in this field can see the course work material.+    individualStudentsOptions :: (Core.Maybe IndividualStudentsOptions),+    -- | Additional materials. A course work material must have no more than 20 material items.+    materials :: (Core.Maybe [Material]),+    -- | Optional timestamp when this course work material is scheduled to be published.+    scheduledTime :: (Core.Maybe Core.DateTime),+    -- | Status of this course work material. If unspecified, the default state is @DRAFT@.+    state :: (Core.Maybe CourseWorkMaterial_State),+    -- | Title of this course work material. The title must be a valid UTF-8 string containing between 1 and 3000 characters.+    title :: (Core.Maybe Core.Text),+    -- | Identifier for the topic that this course work material is associated with. Must match an existing topic in the course.+    topicId :: (Core.Maybe Core.Text),+    -- | Timestamp of the most recent change to this course work material. Read-only.+    updateTime :: (Core.Maybe Core.DateTime)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CourseWorkMaterial' with the minimum fields required to make a request.+newCourseWorkMaterial ::+  CourseWorkMaterial+newCourseWorkMaterial =+  CourseWorkMaterial+    { alternateLink = Core.Nothing,+      assigneeMode = Core.Nothing,+      courseId = Core.Nothing,+      creationTime = Core.Nothing,+      creatorUserId = Core.Nothing,+      description = Core.Nothing,+      id = Core.Nothing,+      individualStudentsOptions = Core.Nothing,+      materials = Core.Nothing,+      scheduledTime = Core.Nothing,+      state = Core.Nothing,+      title = Core.Nothing,+      topicId = Core.Nothing,+      updateTime = Core.Nothing+    }++instance Core.FromJSON CourseWorkMaterial where+  parseJSON =+    Core.withObject+      "CourseWorkMaterial"+      ( \o ->+          CourseWorkMaterial+            Core.<$> (o Core..:? "alternateLink")+            Core.<*> (o Core..:? "assigneeMode")+            Core.<*> (o Core..:? "courseId")+            Core.<*> (o Core..:? "creationTime")+            Core.<*> (o Core..:? "creatorUserId")+            Core.<*> (o Core..:? "description")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "individualStudentsOptions")+            Core.<*> (o Core..:? "materials")+            Core.<*> (o Core..:? "scheduledTime")+            Core.<*> (o Core..:? "state")+            Core.<*> (o Core..:? "title")+            Core.<*> (o Core..:? "topicId")+            Core.<*> (o Core..:? "updateTime")+      )++instance Core.ToJSON CourseWorkMaterial where+  toJSON CourseWorkMaterial {..} =+    Core.object+      ( Core.catMaybes+          [ ("alternateLink" Core..=) Core.<$> alternateLink,+            ("assigneeMode" Core..=) Core.<$> assigneeMode,+            ("courseId" Core..=) Core.<$> courseId,+            ("creationTime" Core..=) Core.<$> creationTime,+            ("creatorUserId" Core..=) Core.<$> creatorUserId,+            ("description" Core..=) Core.<$> description,+            ("id" Core..=) Core.<$> id,+            ("individualStudentsOptions" Core..=)+              Core.<$> individualStudentsOptions,+            ("materials" Core..=) Core.<$> materials,+            ("scheduledTime" Core..=) Core.<$> scheduledTime,+            ("state" Core..=) Core.<$> state,+            ("title" Core..=) Core.<$> title,+            ("topicId" Core..=) Core.<$> topicId,+            ("updateTime" Core..=) Core.<$> updateTime+          ]+      )++-- | A rubric criterion. Each criterion is a dimension on which performance is rated.+--+-- /See:/ 'newCriterion' smart constructor.+data Criterion = Criterion+  { -- | The description of the criterion.+    description :: (Core.Maybe Core.Text),+    -- | The criterion ID. On creation, an ID is assigned.+    id :: (Core.Maybe Core.Text),+    -- | The list of levels within this criterion.+    levels :: (Core.Maybe [Level]),+    -- | The title of the criterion.+    title :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Criterion' with the minimum fields required to make a request.+newCriterion ::+  Criterion+newCriterion =+  Criterion+    { description = Core.Nothing,+      id = Core.Nothing,+      levels = Core.Nothing,+      title = Core.Nothing+    }++instance Core.FromJSON Criterion where+  parseJSON =+    Core.withObject+      "Criterion"+      ( \o ->+          Criterion+            Core.<$> (o Core..:? "description")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "levels")+            Core.<*> (o Core..:? "title")+      )++instance Core.ToJSON Criterion where+  toJSON Criterion {..} =+    Core.object+      ( Core.catMaybes+          [ ("description" Core..=) Core.<$> description,+            ("id" Core..=) Core.<$> id,+            ("levels" Core..=) Core.<$> levels,+            ("title" Core..=) Core.<$> title+          ]+      )++-- | Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp+--+-- /See:/ 'newDate' smart constructor.+data Date = Date+  { -- | Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn\'t significant.+    day :: (Core.Maybe Core.Int32),+    -- | Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.+    month :: (Core.Maybe Core.Int32),+    -- | Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.+    year :: (Core.Maybe Core.Int32)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Date' with the minimum fields required to make a request.+newDate ::+  Date+newDate =+  Date+    { day = Core.Nothing,+      month = Core.Nothing,+      year = Core.Nothing+    }++instance Core.FromJSON Date where+  parseJSON =+    Core.withObject+      "Date"+      ( \o ->+          Date+            Core.<$> (o Core..:? "day")+            Core.<*> (o Core..:? "month")+            Core.<*> (o Core..:? "year")+      )++instance Core.ToJSON Date where+  toJSON Date {..} =+    Core.object+      ( Core.catMaybes+          [ ("day" Core..=) Core.<$> day,+            ("month" Core..=) Core.<$> month,+            ("year" Core..=) Core.<$> year+          ]+      )++-- | Representation of a Google Drive file.+--+-- /See:/ 'newDriveFile' smart constructor.+data DriveFile = DriveFile+  { -- | URL that can be used to access the Drive item. Read-only.+    alternateLink :: (Core.Maybe Core.Text),+    -- | Drive API resource ID.+    id :: (Core.Maybe Core.Text),+    -- | URL of a thumbnail image of the Drive item. Read-only.+    thumbnailUrl :: (Core.Maybe Core.Text),+    -- | Title of the Drive item. Read-only.+    title :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'DriveFile' with the minimum fields required to make a request.+newDriveFile ::+  DriveFile+newDriveFile =+  DriveFile+    { alternateLink = Core.Nothing,+      id = Core.Nothing,+      thumbnailUrl = Core.Nothing,+      title = Core.Nothing+    }++instance Core.FromJSON DriveFile where+  parseJSON =+    Core.withObject+      "DriveFile"+      ( \o ->+          DriveFile+            Core.<$> (o Core..:? "alternateLink")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "thumbnailUrl")+            Core.<*> (o Core..:? "title")+      )++instance Core.ToJSON DriveFile where+  toJSON DriveFile {..} =+    Core.object+      ( Core.catMaybes+          [ ("alternateLink" Core..=) Core.<$> alternateLink,+            ("id" Core..=) Core.<$> id,+            ("thumbnailUrl" Core..=) Core.<$> thumbnailUrl,+            ("title" Core..=) Core.<$> title+          ]+      )++-- | Representation of a Google Drive folder.+--+-- /See:/ 'newDriveFolder' smart constructor.+data DriveFolder = DriveFolder+  { -- | URL that can be used to access the Drive folder. Read-only.+    alternateLink :: (Core.Maybe Core.Text),+    -- | Drive API resource ID.+    id :: (Core.Maybe Core.Text),+    -- | Title of the Drive folder. Read-only.+    title :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'DriveFolder' with the minimum fields required to make a request.+newDriveFolder ::+  DriveFolder+newDriveFolder =+  DriveFolder+    { alternateLink = Core.Nothing,+      id = Core.Nothing,+      title = Core.Nothing+    }++instance Core.FromJSON DriveFolder where+  parseJSON =+    Core.withObject+      "DriveFolder"+      ( \o ->+          DriveFolder+            Core.<$> (o Core..:? "alternateLink")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "title")+      )++instance Core.ToJSON DriveFolder where+  toJSON DriveFolder {..} =+    Core.object+      ( Core.catMaybes+          [ ("alternateLink" Core..=) Core.<$> alternateLink,+            ("id" Core..=) Core.<$> id,+            ("title" Core..=) Core.<$> title+          ]+      )++-- | URI to be iframed after being populated with query parameters.+--+-- /See:/ 'newEmbedUri' smart constructor.+newtype EmbedUri = EmbedUri+  { -- | Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.+    uri :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'EmbedUri' with the minimum fields required to make a request.+newEmbedUri ::+  EmbedUri+newEmbedUri = EmbedUri {uri = Core.Nothing}++instance Core.FromJSON EmbedUri where+  parseJSON =+    Core.withObject+      "EmbedUri"+      (\o -> EmbedUri Core.<$> (o Core..:? "uri"))++instance Core.ToJSON EmbedUri where+  toJSON EmbedUri {..} =+    Core.object (Core.catMaybes [("uri" Core..=) Core.<$> uri])++-- | 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); }+--+-- /See:/ 'newEmpty' smart constructor.+data Empty = Empty+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Empty' with the minimum fields required to make a request.+newEmpty ::+  Empty+newEmpty = Empty++instance Core.FromJSON Empty where+  parseJSON = Core.withObject "Empty" (\o -> Core.pure Empty)++instance Core.ToJSON Empty where+  toJSON = Core.const Core.emptyObject++-- | A class of notifications that an application can register to receive. For example: \"all roster changes for a domain\".+--+-- /See:/ 'newFeed' smart constructor.+data Feed = Feed+  { -- | Information about a @Feed@ with a @feed_type@ of @COURSE_ROSTER_CHANGES@. This field must be specified if @feed_type@ is @COURSE_ROSTER_CHANGES@.+    courseRosterChangesInfo :: (Core.Maybe CourseRosterChangesInfo),+    -- | Information about a @Feed@ with a @feed_type@ of @COURSE_WORK_CHANGES@. This field must be specified if @feed_type@ is @COURSE_WORK_CHANGES@.+    courseWorkChangesInfo :: (Core.Maybe CourseWorkChangesInfo),+    -- | The type of feed.+    feedType :: (Core.Maybe Feed_FeedType)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Feed' with the minimum fields required to make a request.+newFeed ::+  Feed+newFeed =+  Feed+    { courseRosterChangesInfo = Core.Nothing,+      courseWorkChangesInfo = Core.Nothing,+      feedType = Core.Nothing+    }++instance Core.FromJSON Feed where+  parseJSON =+    Core.withObject+      "Feed"+      ( \o ->+          Feed+            Core.<$> (o Core..:? "courseRosterChangesInfo")+            Core.<*> (o Core..:? "courseWorkChangesInfo")+            Core.<*> (o Core..:? "feedType")+      )++instance Core.ToJSON Feed where+  toJSON Feed {..} =+    Core.object+      ( Core.catMaybes+          [ ("courseRosterChangesInfo" Core..=)+              Core.<$> courseRosterChangesInfo,+            ("courseWorkChangesInfo" Core..=) Core.<$> courseWorkChangesInfo,+            ("feedType" Core..=) Core.<$> feedType+          ]+      )++-- | Google Forms item.+--+-- /See:/ 'newForm' smart constructor.+data Form = Form+  { -- | URL of the form.+    formUrl :: (Core.Maybe Core.Text),+    -- | URL of the form responses document. Only set if responses have been recorded and only when the requesting user is an editor of the form. Read-only.+    responseUrl :: (Core.Maybe Core.Text),+    -- | URL of a thumbnail image of the Form. Read-only.+    thumbnailUrl :: (Core.Maybe Core.Text),+    -- | Title of the Form. Read-only.+    title :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Form' with the minimum fields required to make a request.+newForm ::+  Form+newForm =+  Form+    { formUrl = Core.Nothing,+      responseUrl = Core.Nothing,+      thumbnailUrl = Core.Nothing,+      title = Core.Nothing+    }++instance Core.FromJSON Form where+  parseJSON =+    Core.withObject+      "Form"+      ( \o ->+          Form+            Core.<$> (o Core..:? "formUrl")+            Core.<*> (o Core..:? "responseUrl")+            Core.<*> (o Core..:? "thumbnailUrl")+            Core.<*> (o Core..:? "title")+      )++instance Core.ToJSON Form where+  toJSON Form {..} =+    Core.object+      ( Core.catMaybes+          [ ("formUrl" Core..=) Core.<$> formUrl,+            ("responseUrl" Core..=) Core.<$> responseUrl,+            ("thumbnailUrl" Core..=) Core.<$> thumbnailUrl,+            ("title" Core..=) Core.<$> title+          ]+      )++-- | Global user permission description.+--+-- /See:/ 'newGlobalPermission' smart constructor.+newtype GlobalPermission = GlobalPermission+  { -- | Permission value.+    permission :: (Core.Maybe GlobalPermission_Permission)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GlobalPermission' with the minimum fields required to make a request.+newGlobalPermission ::+  GlobalPermission+newGlobalPermission = GlobalPermission {permission = Core.Nothing}++instance Core.FromJSON GlobalPermission where+  parseJSON =+    Core.withObject+      "GlobalPermission"+      (\o -> GlobalPermission Core.<$> (o Core..:? "permission"))++instance Core.ToJSON GlobalPermission where+  toJSON GlobalPermission {..} =+    Core.object+      (Core.catMaybes [("permission" Core..=) Core.<$> permission])++-- | Details for a grade category in a course. Coursework may have zero or one grade category, and the category may be used in computing the overall grade. See the <https://support.google.com/edu/classroom/answer/9184995 help center article> for details.+--+-- /See:/ 'newGradeCategory' smart constructor.+data GradeCategory = GradeCategory+  { -- | Default value of denominator. Only applicable when grade calculation type is TOTAL_POINTS.+    defaultGradeDenominator :: (Core.Maybe Core.Int32),+    -- | ID of the grade category.+    id :: (Core.Maybe Core.Text),+    -- | Name of the grade category.+    name :: (Core.Maybe Core.Text),+    -- | The weight of the category average as part of overall average. A weight of 12.34% is represented as 123400 (100% is 1,000,000). The last two digits should always be zero since we use two decimal precision. Only applicable when grade calculation type is WEIGHTED_CATEGORIES.+    weight :: (Core.Maybe Core.Int32)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GradeCategory' with the minimum fields required to make a request.+newGradeCategory ::+  GradeCategory+newGradeCategory =+  GradeCategory+    { defaultGradeDenominator = Core.Nothing,+      id = Core.Nothing,+      name = Core.Nothing,+      weight = Core.Nothing+    }++instance Core.FromJSON GradeCategory where+  parseJSON =+    Core.withObject+      "GradeCategory"+      ( \o ->+          GradeCategory+            Core.<$> (o Core..:? "defaultGradeDenominator")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "name")+            Core.<*> (o Core..:? "weight")+      )++instance Core.ToJSON GradeCategory where+  toJSON GradeCategory {..} =+    Core.object+      ( Core.catMaybes+          [ ("defaultGradeDenominator" Core..=)+              Core.<$> defaultGradeDenominator,+            ("id" Core..=) Core.<$> id,+            ("name" Core..=) Core.<$> name,+            ("weight" Core..=) Core.<$> weight+          ]+      )++-- | The history of each grade on this submission.+--+-- /See:/ 'newGradeHistory' smart constructor.+data GradeHistory = GradeHistory+  { -- | The teacher who made the grade change.+    actorUserId :: (Core.Maybe Core.Text),+    -- | The type of grade change at this time in the submission grade history.+    gradeChangeType :: (Core.Maybe GradeHistory_GradeChangeType),+    -- | When the grade of the submission was changed.+    gradeTimestamp :: (Core.Maybe Core.DateTime),+    -- | The denominator of the grade at this time in the submission grade history.+    maxPoints :: (Core.Maybe Core.Double),+    -- | The numerator of the grade at this time in the submission grade history.+    pointsEarned :: (Core.Maybe Core.Double)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GradeHistory' with the minimum fields required to make a request.+newGradeHistory ::+  GradeHistory+newGradeHistory =+  GradeHistory+    { actorUserId = Core.Nothing,+      gradeChangeType = Core.Nothing,+      gradeTimestamp = Core.Nothing,+      maxPoints = Core.Nothing,+      pointsEarned = Core.Nothing+    }++instance Core.FromJSON GradeHistory where+  parseJSON =+    Core.withObject+      "GradeHistory"+      ( \o ->+          GradeHistory+            Core.<$> (o Core..:? "actorUserId")+            Core.<*> (o Core..:? "gradeChangeType")+            Core.<*> (o Core..:? "gradeTimestamp")+            Core.<*> (o Core..:? "maxPoints")+            Core.<*> (o Core..:? "pointsEarned")+      )++instance Core.ToJSON GradeHistory where+  toJSON GradeHistory {..} =+    Core.object+      ( Core.catMaybes+          [ ("actorUserId" Core..=) Core.<$> actorUserId,+            ("gradeChangeType" Core..=) Core.<$> gradeChangeType,+            ("gradeTimestamp" Core..=) Core.<$> gradeTimestamp,+            ("maxPoints" Core..=) Core.<$> maxPoints,+            ("pointsEarned" Core..=) Core.<$> pointsEarned+          ]+      )++-- | The gradebook settings for a course. See the <https://support.google.com/edu/classroom/answer/9184995 help center article> for details.+--+-- /See:/ 'newGradebookSettings' smart constructor.+data GradebookSettings = GradebookSettings+  { -- | Indicates how the overall grade is calculated.+    calculationType :: (Core.Maybe GradebookSettings_CalculationType),+    -- | Indicates who can see the overall grade..+    displaySetting :: (Core.Maybe GradebookSettings_DisplaySetting),+    -- | Grade categories that are available for coursework in the course.+    gradeCategories :: (Core.Maybe [GradeCategory])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GradebookSettings' with the minimum fields required to make a request.+newGradebookSettings ::+  GradebookSettings+newGradebookSettings =+  GradebookSettings+    { calculationType = Core.Nothing,+      displaySetting = Core.Nothing,+      gradeCategories = Core.Nothing+    }++instance Core.FromJSON GradebookSettings where+  parseJSON =+    Core.withObject+      "GradebookSettings"+      ( \o ->+          GradebookSettings+            Core.<$> (o Core..:? "calculationType")+            Core.<*> (o Core..:? "displaySetting")+            Core.<*> (o Core..:? "gradeCategories")+      )++instance Core.ToJSON GradebookSettings where+  toJSON GradebookSettings {..} =+    Core.object+      ( Core.catMaybes+          [ ("calculationType" Core..=) Core.<$> calculationType,+            ("displaySetting" Core..=) Core.<$> displaySetting,+            ("gradeCategories" Core..=) Core.<$> gradeCategories+          ]+      )++-- | Association between a student and a guardian of that student. The guardian may receive information about the student\'s course work.+--+-- /See:/ 'newGuardian' smart constructor.+data Guardian = Guardian+  { -- | Identifier for the guardian.+    guardianId :: (Core.Maybe Core.Text),+    -- | User profile for the guardian.+    guardianProfile :: (Core.Maybe UserProfile),+    -- | The email address to which the initial guardian invitation was sent. This field is only visible to domain administrators.+    invitedEmailAddress :: (Core.Maybe Core.Text),+    -- | Identifier for the student to whom the guardian relationship applies.+    studentId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Guardian' with the minimum fields required to make a request.+newGuardian ::+  Guardian+newGuardian =+  Guardian+    { guardianId = Core.Nothing,+      guardianProfile = Core.Nothing,+      invitedEmailAddress = Core.Nothing,+      studentId = Core.Nothing+    }++instance Core.FromJSON Guardian where+  parseJSON =+    Core.withObject+      "Guardian"+      ( \o ->+          Guardian+            Core.<$> (o Core..:? "guardianId")+            Core.<*> (o Core..:? "guardianProfile")+            Core.<*> (o Core..:? "invitedEmailAddress")+            Core.<*> (o Core..:? "studentId")+      )++instance Core.ToJSON Guardian where+  toJSON Guardian {..} =+    Core.object+      ( Core.catMaybes+          [ ("guardianId" Core..=) Core.<$> guardianId,+            ("guardianProfile" Core..=) Core.<$> guardianProfile,+            ("invitedEmailAddress" Core..=) Core.<$> invitedEmailAddress,+            ("studentId" Core..=) Core.<$> studentId+          ]+      )++-- | An invitation to become the guardian of a specified user, sent to a specified email address.+--+-- /See:/ 'newGuardianInvitation' smart constructor.+data GuardianInvitation = GuardianInvitation+  { -- | The time that this invitation was created. Read-only.+    creationTime :: (Core.Maybe Core.DateTime),+    -- | Unique identifier for this invitation. Read-only.+    invitationId :: (Core.Maybe Core.Text),+    -- | Email address that the invitation was sent to. This field is only visible to domain administrators.+    invitedEmailAddress :: (Core.Maybe Core.Text),+    -- | The state that this invitation is in.+    state :: (Core.Maybe GuardianInvitation_State),+    -- | ID of the student (in standard format)+    studentId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GuardianInvitation' with the minimum fields required to make a request.+newGuardianInvitation ::+  GuardianInvitation+newGuardianInvitation =+  GuardianInvitation+    { creationTime = Core.Nothing,+      invitationId = Core.Nothing,+      invitedEmailAddress = Core.Nothing,+      state = Core.Nothing,+      studentId = Core.Nothing+    }++instance Core.FromJSON GuardianInvitation where+  parseJSON =+    Core.withObject+      "GuardianInvitation"+      ( \o ->+          GuardianInvitation+            Core.<$> (o Core..:? "creationTime")+            Core.<*> (o Core..:? "invitationId")+            Core.<*> (o Core..:? "invitedEmailAddress")+            Core.<*> (o Core..:? "state")+            Core.<*> (o Core..:? "studentId")+      )++instance Core.ToJSON GuardianInvitation where+  toJSON GuardianInvitation {..} =+    Core.object+      ( Core.catMaybes+          [ ("creationTime" Core..=) Core.<$> creationTime,+            ("invitationId" Core..=) Core.<$> invitationId,+            ("invitedEmailAddress" Core..=) Core.<$> invitedEmailAddress,+            ("state" Core..=) Core.<$> state,+            ("studentId" Core..=) Core.<$> studentId+          ]+      )++-- | Assignee details about a coursework\/announcement. This field is set if and only if @assigneeMode@ is @INDIVIDUAL_STUDENTS@.+--+-- /See:/ 'newIndividualStudentsOptions' smart constructor.+newtype IndividualStudentsOptions = IndividualStudentsOptions+  { -- | Identifiers for the students that have access to the coursework\/announcement.+    studentIds :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'IndividualStudentsOptions' with the minimum fields required to make a request.+newIndividualStudentsOptions ::+  IndividualStudentsOptions+newIndividualStudentsOptions =+  IndividualStudentsOptions {studentIds = Core.Nothing}++instance Core.FromJSON IndividualStudentsOptions where+  parseJSON =+    Core.withObject+      "IndividualStudentsOptions"+      ( \o ->+          IndividualStudentsOptions Core.<$> (o Core..:? "studentIds")+      )++instance Core.ToJSON IndividualStudentsOptions where+  toJSON IndividualStudentsOptions {..} =+    Core.object+      (Core.catMaybes [("studentIds" Core..=) Core.<$> studentIds])++-- | An invitation to join a course.+--+-- /See:/ 'newInvitation' smart constructor.+data Invitation = Invitation+  { -- | Identifier of the course to invite the user to.+    courseId :: (Core.Maybe Core.Text),+    -- | Identifier assigned by Classroom. Read-only.+    id :: (Core.Maybe Core.Text),+    -- | Role to invite the user to have. Must not be @COURSE_ROLE_UNSPECIFIED@.+    role' :: (Core.Maybe Invitation_Role),+    -- | Identifier of the invited user. When specified as a parameter of a request, this identifier can be set to one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    userId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Invitation' with the minimum fields required to make a request.+newInvitation ::+  Invitation+newInvitation =+  Invitation+    { courseId = Core.Nothing,+      id = Core.Nothing,+      role' = Core.Nothing,+      userId = Core.Nothing+    }++instance Core.FromJSON Invitation where+  parseJSON =+    Core.withObject+      "Invitation"+      ( \o ->+          Invitation+            Core.<$> (o Core..:? "courseId")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "role")+            Core.<*> (o Core..:? "userId")+      )++instance Core.ToJSON Invitation where+  toJSON Invitation {..} =+    Core.object+      ( Core.catMaybes+          [ ("courseId" Core..=) Core.<$> courseId,+            ("id" Core..=) Core.<$> id,+            ("role" Core..=) Core.<$> role',+            ("userId" Core..=) Core.<$> userId+          ]+      )++-- | A level of the criterion.+--+-- /See:/ 'newLevel' smart constructor.+data Level = Level+  { -- | The description of the level.+    description :: (Core.Maybe Core.Text),+    -- | The level ID. On creation, an ID is assigned.+    id :: (Core.Maybe Core.Text),+    -- | Optional points associated with this level. If set, all levels within the rubric must specify points and the value must be distinct across all levels within a single criterion. 0 is distinct from no points.+    points :: (Core.Maybe Core.Double),+    -- | The title of the level. If the level has no points set, title must be set.+    title :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Level' with the minimum fields required to make a request.+newLevel ::+  Level+newLevel =+  Level+    { description = Core.Nothing,+      id = Core.Nothing,+      points = Core.Nothing,+      title = Core.Nothing+    }++instance Core.FromJSON Level where+  parseJSON =+    Core.withObject+      "Level"+      ( \o ->+          Level+            Core.<$> (o Core..:? "description")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "points")+            Core.<*> (o Core..:? "title")+      )++instance Core.ToJSON Level where+  toJSON Level {..} =+    Core.object+      ( Core.catMaybes+          [ ("description" Core..=) Core.<$> description,+            ("id" Core..=) Core.<$> id,+            ("points" Core..=) Core.<$> points,+            ("title" Core..=) Core.<$> title+          ]+      )++-- | URL item.+--+-- /See:/ 'newLink' smart constructor.+data Link = Link+  { -- | URL of a thumbnail image of the target URL. Read-only.+    thumbnailUrl :: (Core.Maybe Core.Text),+    -- | Title of the target of the URL. Read-only.+    title :: (Core.Maybe Core.Text),+    -- | URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.+    url :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Link' with the minimum fields required to make a request.+newLink ::+  Link+newLink =+  Link+    { thumbnailUrl = Core.Nothing,+      title = Core.Nothing,+      url = Core.Nothing+    }++instance Core.FromJSON Link where+  parseJSON =+    Core.withObject+      "Link"+      ( \o ->+          Link+            Core.<$> (o Core..:? "thumbnailUrl")+            Core.<*> (o Core..:? "title")+            Core.<*> (o Core..:? "url")+      )++instance Core.ToJSON Link where+  toJSON Link {..} =+    Core.object+      ( Core.catMaybes+          [ ("thumbnailUrl" Core..=) Core.<$> thumbnailUrl,+            ("title" Core..=) Core.<$> title,+            ("url" Core..=) Core.<$> url+          ]+      )++-- | Response when listing add-on attachments.+--+-- /See:/ 'newListAddOnAttachmentsResponse' smart constructor.+data ListAddOnAttachmentsResponse = ListAddOnAttachmentsResponse+  { -- | Attachments under the given post.+    addOnAttachments :: (Core.Maybe [AddOnAttachment]),+    -- | A token, which can be sent as @pageToken@ to retrieve the next page. If this field is omitted, there are no subsequent pages.+    nextPageToken :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListAddOnAttachmentsResponse' with the minimum fields required to make a request.+newListAddOnAttachmentsResponse ::+  ListAddOnAttachmentsResponse+newListAddOnAttachmentsResponse =+  ListAddOnAttachmentsResponse+    { addOnAttachments = Core.Nothing,+      nextPageToken = Core.Nothing+    }++instance Core.FromJSON ListAddOnAttachmentsResponse where+  parseJSON =+    Core.withObject+      "ListAddOnAttachmentsResponse"+      ( \o ->+          ListAddOnAttachmentsResponse+            Core.<$> (o Core..:? "addOnAttachments")+            Core.<*> (o Core..:? "nextPageToken")+      )++instance Core.ToJSON ListAddOnAttachmentsResponse where+  toJSON ListAddOnAttachmentsResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("addOnAttachments" Core..=) Core.<$> addOnAttachments,+            ("nextPageToken" Core..=) Core.<$> nextPageToken+          ]+      )++-- | Response when listing course work.+--+-- /See:/ 'newListAnnouncementsResponse' smart constructor.+data ListAnnouncementsResponse = ListAnnouncementsResponse+  { -- | Announcement items that match the request.+    announcements :: (Core.Maybe [Announcement]),+    -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListAnnouncementsResponse' with the minimum fields required to make a request.+newListAnnouncementsResponse ::+  ListAnnouncementsResponse+newListAnnouncementsResponse =+  ListAnnouncementsResponse+    { announcements = Core.Nothing,+      nextPageToken = Core.Nothing+    }++instance Core.FromJSON ListAnnouncementsResponse where+  parseJSON =+    Core.withObject+      "ListAnnouncementsResponse"+      ( \o ->+          ListAnnouncementsResponse+            Core.<$> (o Core..:? "announcements")+            Core.<*> (o Core..:? "nextPageToken")+      )++instance Core.ToJSON ListAnnouncementsResponse where+  toJSON ListAnnouncementsResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("announcements" Core..=) Core.<$> announcements,+            ("nextPageToken" Core..=) Core.<$> nextPageToken+          ]+      )++-- | Response when listing course aliases.+--+-- /See:/ 'newListCourseAliasesResponse' smart constructor.+data ListCourseAliasesResponse = ListCourseAliasesResponse+  { -- | The course aliases.+    aliases :: (Core.Maybe [CourseAlias]),+    -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListCourseAliasesResponse' with the minimum fields required to make a request.+newListCourseAliasesResponse ::+  ListCourseAliasesResponse+newListCourseAliasesResponse =+  ListCourseAliasesResponse+    { aliases = Core.Nothing,+      nextPageToken = Core.Nothing+    }++instance Core.FromJSON ListCourseAliasesResponse where+  parseJSON =+    Core.withObject+      "ListCourseAliasesResponse"+      ( \o ->+          ListCourseAliasesResponse+            Core.<$> (o Core..:? "aliases")+            Core.<*> (o Core..:? "nextPageToken")+      )++instance Core.ToJSON ListCourseAliasesResponse where+  toJSON ListCourseAliasesResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("aliases" Core..=) Core.<$> aliases,+            ("nextPageToken" Core..=) Core.<$> nextPageToken+          ]+      )++-- | Response when listing course work material.+--+-- /See:/ 'newListCourseWorkMaterialResponse' smart constructor.+data ListCourseWorkMaterialResponse = ListCourseWorkMaterialResponse+  { -- | Course work material items that match the request.+    courseWorkMaterial :: (Core.Maybe [CourseWorkMaterial]),+    -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListCourseWorkMaterialResponse' with the minimum fields required to make a request.+newListCourseWorkMaterialResponse ::+  ListCourseWorkMaterialResponse+newListCourseWorkMaterialResponse =+  ListCourseWorkMaterialResponse+    { courseWorkMaterial = Core.Nothing,+      nextPageToken = Core.Nothing+    }++instance Core.FromJSON ListCourseWorkMaterialResponse where+  parseJSON =+    Core.withObject+      "ListCourseWorkMaterialResponse"+      ( \o ->+          ListCourseWorkMaterialResponse+            Core.<$> (o Core..:? "courseWorkMaterial")+            Core.<*> (o Core..:? "nextPageToken")+      )++instance Core.ToJSON ListCourseWorkMaterialResponse where+  toJSON ListCourseWorkMaterialResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("courseWorkMaterial" Core..=) Core.<$> courseWorkMaterial,+            ("nextPageToken" Core..=) Core.<$> nextPageToken+          ]+      )++-- | Response when listing course work.+--+-- /See:/ 'newListCourseWorkResponse' smart constructor.+data ListCourseWorkResponse = ListCourseWorkResponse+  { -- | Course work items that match the request.+    courseWork :: (Core.Maybe [CourseWork]),+    -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListCourseWorkResponse' with the minimum fields required to make a request.+newListCourseWorkResponse ::+  ListCourseWorkResponse+newListCourseWorkResponse =+  ListCourseWorkResponse+    { courseWork = Core.Nothing,+      nextPageToken = Core.Nothing+    }++instance Core.FromJSON ListCourseWorkResponse where+  parseJSON =+    Core.withObject+      "ListCourseWorkResponse"+      ( \o ->+          ListCourseWorkResponse+            Core.<$> (o Core..:? "courseWork")+            Core.<*> (o Core..:? "nextPageToken")+      )++instance Core.ToJSON ListCourseWorkResponse where+  toJSON ListCourseWorkResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("courseWork" Core..=) Core.<$> courseWork,+            ("nextPageToken" Core..=) Core.<$> nextPageToken+          ]+      )++-- | Response when listing courses.+--+-- /See:/ 'newListCoursesResponse' smart constructor.+data ListCoursesResponse = ListCoursesResponse+  { -- | Courses that match the list request.+    courses :: (Core.Maybe [Course]),+    -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListCoursesResponse' with the minimum fields required to make a request.+newListCoursesResponse ::+  ListCoursesResponse+newListCoursesResponse =+  ListCoursesResponse+    { courses = Core.Nothing,+      nextPageToken = Core.Nothing+    }++instance Core.FromJSON ListCoursesResponse where+  parseJSON =+    Core.withObject+      "ListCoursesResponse"+      ( \o ->+          ListCoursesResponse+            Core.<$> (o Core..:? "courses")+            Core.<*> (o Core..:? "nextPageToken")+      )++instance Core.ToJSON ListCoursesResponse where+  toJSON ListCoursesResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("courses" Core..=) Core.<$> courses,+            ("nextPageToken" Core..=) Core.<$> nextPageToken+          ]+      )++-- | Response when listing guardian invitations.+--+-- /See:/ 'newListGuardianInvitationsResponse' smart constructor.+data ListGuardianInvitationsResponse = ListGuardianInvitationsResponse+  { -- | Guardian invitations that matched the list request.+    guardianInvitations :: (Core.Maybe [GuardianInvitation]),+    -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListGuardianInvitationsResponse' with the minimum fields required to make a request.+newListGuardianInvitationsResponse ::+  ListGuardianInvitationsResponse+newListGuardianInvitationsResponse =+  ListGuardianInvitationsResponse+    { guardianInvitations =+        Core.Nothing,+      nextPageToken = Core.Nothing+    }++instance Core.FromJSON ListGuardianInvitationsResponse where+  parseJSON =+    Core.withObject+      "ListGuardianInvitationsResponse"+      ( \o ->+          ListGuardianInvitationsResponse+            Core.<$> (o Core..:? "guardianInvitations")+            Core.<*> (o Core..:? "nextPageToken")+      )++instance Core.ToJSON ListGuardianInvitationsResponse where+  toJSON ListGuardianInvitationsResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("guardianInvitations" Core..=) Core.<$> guardianInvitations,+            ("nextPageToken" Core..=) Core.<$> nextPageToken+          ]+      )++-- | Response when listing guardians.+--+-- /See:/ 'newListGuardiansResponse' smart constructor.+data ListGuardiansResponse = ListGuardiansResponse+  { -- | Guardians on this page of results that met the criteria specified in the request.+    guardians :: (Core.Maybe [Guardian]),+    -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListGuardiansResponse' with the minimum fields required to make a request.+newListGuardiansResponse ::+  ListGuardiansResponse+newListGuardiansResponse =+  ListGuardiansResponse+    { guardians = Core.Nothing,+      nextPageToken = Core.Nothing+    }++instance Core.FromJSON ListGuardiansResponse where+  parseJSON =+    Core.withObject+      "ListGuardiansResponse"+      ( \o ->+          ListGuardiansResponse+            Core.<$> (o Core..:? "guardians")+            Core.<*> (o Core..:? "nextPageToken")+      )++instance Core.ToJSON ListGuardiansResponse where+  toJSON ListGuardiansResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("guardians" Core..=) Core.<$> guardians,+            ("nextPageToken" Core..=) Core.<$> nextPageToken+          ]+      )++-- | Response when listing invitations.+--+-- /See:/ 'newListInvitationsResponse' smart constructor.+data ListInvitationsResponse = ListInvitationsResponse+  { -- | Invitations that match the list request.+    invitations :: (Core.Maybe [Invitation]),+    -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListInvitationsResponse' with the minimum fields required to make a request.+newListInvitationsResponse ::+  ListInvitationsResponse+newListInvitationsResponse =+  ListInvitationsResponse+    { invitations = Core.Nothing,+      nextPageToken = Core.Nothing+    }++instance Core.FromJSON ListInvitationsResponse where+  parseJSON =+    Core.withObject+      "ListInvitationsResponse"+      ( \o ->+          ListInvitationsResponse+            Core.<$> (o Core..:? "invitations")+            Core.<*> (o Core..:? "nextPageToken")+      )++instance Core.ToJSON ListInvitationsResponse where+  toJSON ListInvitationsResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("invitations" Core..=) Core.<$> invitations,+            ("nextPageToken" Core..=) Core.<$> nextPageToken+          ]+      )++-- | Response when listing rubrics.+--+-- /See:/ 'newListRubricsResponse' smart constructor.+data ListRubricsResponse = ListRubricsResponse+  { -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text),+    -- | Rubrics that match the request.+    rubrics :: (Core.Maybe [Rubric])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListRubricsResponse' with the minimum fields required to make a request.+newListRubricsResponse ::+  ListRubricsResponse+newListRubricsResponse =+  ListRubricsResponse+    { nextPageToken = Core.Nothing,+      rubrics = Core.Nothing+    }++instance Core.FromJSON ListRubricsResponse where+  parseJSON =+    Core.withObject+      "ListRubricsResponse"+      ( \o ->+          ListRubricsResponse+            Core.<$> (o Core..:? "nextPageToken")+            Core.<*> (o Core..:? "rubrics")+      )++instance Core.ToJSON ListRubricsResponse where+  toJSON ListRubricsResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("nextPageToken" Core..=) Core.<$> nextPageToken,+            ("rubrics" Core..=) Core.<$> rubrics+          ]+      )++-- | Response when listing student submissions.+--+-- /See:/ 'newListStudentSubmissionsResponse' smart constructor.+data ListStudentSubmissionsResponse = ListStudentSubmissionsResponse+  { -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text),+    -- | Student work that matches the request.+    studentSubmissions :: (Core.Maybe [StudentSubmission])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListStudentSubmissionsResponse' with the minimum fields required to make a request.+newListStudentSubmissionsResponse ::+  ListStudentSubmissionsResponse+newListStudentSubmissionsResponse =+  ListStudentSubmissionsResponse+    { nextPageToken = Core.Nothing,+      studentSubmissions = Core.Nothing+    }++instance Core.FromJSON ListStudentSubmissionsResponse where+  parseJSON =+    Core.withObject+      "ListStudentSubmissionsResponse"+      ( \o ->+          ListStudentSubmissionsResponse+            Core.<$> (o Core..:? "nextPageToken")+            Core.<*> (o Core..:? "studentSubmissions")+      )++instance Core.ToJSON ListStudentSubmissionsResponse where+  toJSON ListStudentSubmissionsResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("nextPageToken" Core..=) Core.<$> nextPageToken,+            ("studentSubmissions" Core..=) Core.<$> studentSubmissions+          ]+      )++-- | Response when listing students.+--+-- /See:/ 'newListStudentsResponse' smart constructor.+data ListStudentsResponse = ListStudentsResponse+  { -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text),+    -- | Students who match the list request.+    students :: (Core.Maybe [Student])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListStudentsResponse' with the minimum fields required to make a request.+newListStudentsResponse ::+  ListStudentsResponse+newListStudentsResponse =+  ListStudentsResponse+    { nextPageToken = Core.Nothing,+      students = Core.Nothing+    }++instance Core.FromJSON ListStudentsResponse where+  parseJSON =+    Core.withObject+      "ListStudentsResponse"+      ( \o ->+          ListStudentsResponse+            Core.<$> (o Core..:? "nextPageToken")+            Core.<*> (o Core..:? "students")+      )++instance Core.ToJSON ListStudentsResponse where+  toJSON ListStudentsResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("nextPageToken" Core..=) Core.<$> nextPageToken,+            ("students" Core..=) Core.<$> students+          ]+      )++-- | Response when listing teachers.+--+-- /See:/ 'newListTeachersResponse' smart constructor.+data ListTeachersResponse = ListTeachersResponse+  { -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text),+    -- | Teachers who match the list request.+    teachers :: (Core.Maybe [Teacher])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListTeachersResponse' with the minimum fields required to make a request.+newListTeachersResponse ::+  ListTeachersResponse+newListTeachersResponse =+  ListTeachersResponse+    { nextPageToken = Core.Nothing,+      teachers = Core.Nothing+    }++instance Core.FromJSON ListTeachersResponse where+  parseJSON =+    Core.withObject+      "ListTeachersResponse"+      ( \o ->+          ListTeachersResponse+            Core.<$> (o Core..:? "nextPageToken")+            Core.<*> (o Core..:? "teachers")+      )++instance Core.ToJSON ListTeachersResponse where+  toJSON ListTeachersResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("nextPageToken" Core..=) Core.<$> nextPageToken,+            ("teachers" Core..=) Core.<$> teachers+          ]+      )++-- | Response when listing topics.+--+-- /See:/ 'newListTopicResponse' smart constructor.+data ListTopicResponse = ListTopicResponse+  { -- | Token identifying the next page of results to return. If empty, no further results are available.+    nextPageToken :: (Core.Maybe Core.Text),+    -- | Topic items that match the request.+    topic :: (Core.Maybe [Topic])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListTopicResponse' with the minimum fields required to make a request.+newListTopicResponse ::+  ListTopicResponse+newListTopicResponse =+  ListTopicResponse+    { nextPageToken = Core.Nothing,+      topic = Core.Nothing+    }++instance Core.FromJSON ListTopicResponse where+  parseJSON =+    Core.withObject+      "ListTopicResponse"+      ( \o ->+          ListTopicResponse+            Core.<$> (o Core..:? "nextPageToken")+            Core.<*> (o Core..:? "topic")+      )++instance Core.ToJSON ListTopicResponse where+  toJSON ListTopicResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("nextPageToken" Core..=) Core.<$> nextPageToken,+            ("topic" Core..=) Core.<$> topic+          ]+      )++-- | Material attached to course work. When creating attachments, setting the @form@ field is not supported.+--+-- /See:/ 'newMaterial' smart constructor.+data Material = Material+  { -- | Google Drive file material.+    driveFile :: (Core.Maybe SharedDriveFile),+    -- | Google Forms material.+    form :: (Core.Maybe Form),+    -- | Link material. On creation, this is upgraded to a more appropriate type if possible, and this is reflected in the response.+    link :: (Core.Maybe Link),+    -- | YouTube video material.+    youtubeVideo :: (Core.Maybe YouTubeVideo)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Material' with the minimum fields required to make a request.+newMaterial ::+  Material+newMaterial =+  Material+    { driveFile = Core.Nothing,+      form = Core.Nothing,+      link = Core.Nothing,+      youtubeVideo = Core.Nothing+    }++instance Core.FromJSON Material where+  parseJSON =+    Core.withObject+      "Material"+      ( \o ->+          Material+            Core.<$> (o Core..:? "driveFile")+            Core.<*> (o Core..:? "form")+            Core.<*> (o Core..:? "link")+            Core.<*> (o Core..:? "youtubeVideo")+      )++instance Core.ToJSON Material where+  toJSON Material {..} =+    Core.object+      ( Core.catMaybes+          [ ("driveFile" Core..=) Core.<$> driveFile,+            ("form" Core..=) Core.<$> form,+            ("link" Core..=) Core.<$> link,+            ("youtubeVideo" Core..=) Core.<$> youtubeVideo+          ]+      )++-- | Request to modify assignee mode and options of an announcement.+--+-- /See:/ 'newModifyAnnouncementAssigneesRequest' smart constructor.+data ModifyAnnouncementAssigneesRequest = ModifyAnnouncementAssigneesRequest+  { -- | Mode of the announcement describing whether it is accessible by all students or specified individual students.+    assigneeMode :: (Core.Maybe ModifyAnnouncementAssigneesRequest_AssigneeMode),+    -- | Set which students can view or cannot view the announcement. Must be specified only when @assigneeMode@ is @INDIVIDUAL_STUDENTS@.+    modifyIndividualStudentsOptions :: (Core.Maybe ModifyIndividualStudentsOptions)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ModifyAnnouncementAssigneesRequest' with the minimum fields required to make a request.+newModifyAnnouncementAssigneesRequest ::+  ModifyAnnouncementAssigneesRequest+newModifyAnnouncementAssigneesRequest =+  ModifyAnnouncementAssigneesRequest+    { assigneeMode = Core.Nothing,+      modifyIndividualStudentsOptions = Core.Nothing+    }++instance Core.FromJSON ModifyAnnouncementAssigneesRequest where+  parseJSON =+    Core.withObject+      "ModifyAnnouncementAssigneesRequest"+      ( \o ->+          ModifyAnnouncementAssigneesRequest+            Core.<$> (o Core..:? "assigneeMode")+            Core.<*> (o Core..:? "modifyIndividualStudentsOptions")+      )++instance Core.ToJSON ModifyAnnouncementAssigneesRequest where+  toJSON ModifyAnnouncementAssigneesRequest {..} =+    Core.object+      ( Core.catMaybes+          [ ("assigneeMode" Core..=) Core.<$> assigneeMode,+            ("modifyIndividualStudentsOptions" Core..=)+              Core.<$> modifyIndividualStudentsOptions+          ]+      )++-- | Request to modify the attachments of a student submission.+--+-- /See:/ 'newModifyAttachmentsRequest' smart constructor.+newtype ModifyAttachmentsRequest = ModifyAttachmentsRequest+  { -- | Attachments to add. A student submission may not have more than 20 attachments. Form attachments are not supported.+    addAttachments :: (Core.Maybe [Attachment])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ModifyAttachmentsRequest' with the minimum fields required to make a request.+newModifyAttachmentsRequest ::+  ModifyAttachmentsRequest+newModifyAttachmentsRequest =+  ModifyAttachmentsRequest {addAttachments = Core.Nothing}++instance Core.FromJSON ModifyAttachmentsRequest where+  parseJSON =+    Core.withObject+      "ModifyAttachmentsRequest"+      ( \o ->+          ModifyAttachmentsRequest Core.<$> (o Core..:? "addAttachments")+      )++instance Core.ToJSON ModifyAttachmentsRequest where+  toJSON ModifyAttachmentsRequest {..} =+    Core.object+      ( Core.catMaybes+          [("addAttachments" Core..=) Core.<$> addAttachments]+      )++-- | Request to modify assignee mode and options of a coursework.+--+-- /See:/ 'newModifyCourseWorkAssigneesRequest' smart constructor.+data ModifyCourseWorkAssigneesRequest = ModifyCourseWorkAssigneesRequest+  { -- | Mode of the coursework describing whether it will be assigned to all students or specified individual students.+    assigneeMode :: (Core.Maybe ModifyCourseWorkAssigneesRequest_AssigneeMode),+    -- | Set which students are assigned or not assigned to the coursework. Must be specified only when @assigneeMode@ is @INDIVIDUAL_STUDENTS@.+    modifyIndividualStudentsOptions :: (Core.Maybe ModifyIndividualStudentsOptions)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ModifyCourseWorkAssigneesRequest' with the minimum fields required to make a request.+newModifyCourseWorkAssigneesRequest ::+  ModifyCourseWorkAssigneesRequest+newModifyCourseWorkAssigneesRequest =+  ModifyCourseWorkAssigneesRequest+    { assigneeMode = Core.Nothing,+      modifyIndividualStudentsOptions = Core.Nothing+    }++instance Core.FromJSON ModifyCourseWorkAssigneesRequest where+  parseJSON =+    Core.withObject+      "ModifyCourseWorkAssigneesRequest"+      ( \o ->+          ModifyCourseWorkAssigneesRequest+            Core.<$> (o Core..:? "assigneeMode")+            Core.<*> (o Core..:? "modifyIndividualStudentsOptions")+      )++instance Core.ToJSON ModifyCourseWorkAssigneesRequest where+  toJSON ModifyCourseWorkAssigneesRequest {..} =+    Core.object+      ( Core.catMaybes+          [ ("assigneeMode" Core..=) Core.<$> assigneeMode,+            ("modifyIndividualStudentsOptions" Core..=)+              Core.<$> modifyIndividualStudentsOptions+          ]+      )++-- | Contains fields to add or remove students from a course work or announcement where the @assigneeMode@ is set to @INDIVIDUAL_STUDENTS@.+--+-- /See:/ 'newModifyIndividualStudentsOptions' smart constructor.+data ModifyIndividualStudentsOptions = ModifyIndividualStudentsOptions+  { -- | IDs of students to be added as having access to this coursework\/announcement.+    addStudentIds :: (Core.Maybe [Core.Text]),+    -- | IDs of students to be removed from having access to this coursework\/announcement.+    removeStudentIds :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ModifyIndividualStudentsOptions' with the minimum fields required to make a request.+newModifyIndividualStudentsOptions ::+  ModifyIndividualStudentsOptions+newModifyIndividualStudentsOptions =+  ModifyIndividualStudentsOptions+    { addStudentIds = Core.Nothing,+      removeStudentIds = Core.Nothing+    }++instance Core.FromJSON ModifyIndividualStudentsOptions where+  parseJSON =+    Core.withObject+      "ModifyIndividualStudentsOptions"+      ( \o ->+          ModifyIndividualStudentsOptions+            Core.<$> (o Core..:? "addStudentIds")+            Core.<*> (o Core..:? "removeStudentIds")+      )++instance Core.ToJSON ModifyIndividualStudentsOptions where+  toJSON ModifyIndividualStudentsOptions {..} =+    Core.object+      ( Core.catMaybes+          [ ("addStudentIds" Core..=) Core.<$> addStudentIds,+            ("removeStudentIds" Core..=) Core.<$> removeStudentIds+          ]+      )++-- | Additional details for multiple-choice questions.+--+-- /See:/ 'newMultipleChoiceQuestion' smart constructor.+newtype MultipleChoiceQuestion = MultipleChoiceQuestion+  { -- | Possible choices.+    choices :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MultipleChoiceQuestion' with the minimum fields required to make a request.+newMultipleChoiceQuestion ::+  MultipleChoiceQuestion+newMultipleChoiceQuestion =+  MultipleChoiceQuestion {choices = Core.Nothing}++instance Core.FromJSON MultipleChoiceQuestion where+  parseJSON =+    Core.withObject+      "MultipleChoiceQuestion"+      (\o -> MultipleChoiceQuestion Core.<$> (o Core..:? "choices"))++instance Core.ToJSON MultipleChoiceQuestion where+  toJSON MultipleChoiceQuestion {..} =+    Core.object+      (Core.catMaybes [("choices" Core..=) Core.<$> choices])++-- | Student work for a multiple-choice question.+--+-- /See:/ 'newMultipleChoiceSubmission' smart constructor.+newtype MultipleChoiceSubmission = MultipleChoiceSubmission+  { -- | Student\'s select choice.+    answer :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MultipleChoiceSubmission' with the minimum fields required to make a request.+newMultipleChoiceSubmission ::+  MultipleChoiceSubmission+newMultipleChoiceSubmission =+  MultipleChoiceSubmission {answer = Core.Nothing}++instance Core.FromJSON MultipleChoiceSubmission where+  parseJSON =+    Core.withObject+      "MultipleChoiceSubmission"+      (\o -> MultipleChoiceSubmission Core.<$> (o Core..:? "answer"))++instance Core.ToJSON MultipleChoiceSubmission where+  toJSON MultipleChoiceSubmission {..} =+    Core.object (Core.catMaybes [("answer" Core..=) Core.<$> answer])++-- | Details of the user\'s name.+--+-- /See:/ 'newName' smart constructor.+data Name = Name+  { -- | The user\'s last name. Read-only.+    familyName :: (Core.Maybe Core.Text),+    -- | The user\'s full name formed by concatenating the first and last name values. Read-only.+    fullName :: (Core.Maybe Core.Text),+    -- | The user\'s first name. Read-only.+    givenName :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Name' with the minimum fields required to make a request.+newName ::+  Name+newName =+  Name+    { familyName = Core.Nothing,+      fullName = Core.Nothing,+      givenName = Core.Nothing+    }++instance Core.FromJSON Name where+  parseJSON =+    Core.withObject+      "Name"+      ( \o ->+          Name+            Core.<$> (o Core..:? "familyName")+            Core.<*> (o Core..:? "fullName")+            Core.<*> (o Core..:? "givenName")+      )++instance Core.ToJSON Name where+  toJSON Name {..} =+    Core.object+      ( Core.catMaybes+          [ ("familyName" Core..=) Core.<$> familyName,+            ("fullName" Core..=) Core.<$> fullName,+            ("givenName" Core..=) Core.<$> givenName+          ]+      )++-- | Request to reclaim a student submission.+--+-- /See:/ 'newReclaimStudentSubmissionRequest' smart constructor.+data ReclaimStudentSubmissionRequest = ReclaimStudentSubmissionRequest+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ReclaimStudentSubmissionRequest' with the minimum fields required to make a request.+newReclaimStudentSubmissionRequest ::+  ReclaimStudentSubmissionRequest+newReclaimStudentSubmissionRequest =+  ReclaimStudentSubmissionRequest++instance Core.FromJSON ReclaimStudentSubmissionRequest where+  parseJSON =+    Core.withObject+      "ReclaimStudentSubmissionRequest"+      (\o -> Core.pure ReclaimStudentSubmissionRequest)++instance Core.ToJSON ReclaimStudentSubmissionRequest where+  toJSON = Core.const Core.emptyObject++-- | An instruction to Classroom to send notifications from the @feed@ to the provided destination.+--+-- /See:/ 'newRegistration' smart constructor.+data Registration = Registration+  { -- | The Cloud Pub\/Sub topic that notifications are to be sent to.+    cloudPubsubTopic :: (Core.Maybe CloudPubsubTopic),+    -- | The time until which the @Registration@ is effective. This is a read-only field assigned by the server.+    expiryTime :: (Core.Maybe Core.DateTime),+    -- | Specification for the class of notifications that Classroom should deliver to the destination.+    feed :: (Core.Maybe Feed),+    -- | A server-generated unique identifier for this @Registration@. Read-only.+    registrationId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Registration' with the minimum fields required to make a request.+newRegistration ::+  Registration+newRegistration =+  Registration+    { cloudPubsubTopic = Core.Nothing,+      expiryTime = Core.Nothing,+      feed = Core.Nothing,+      registrationId = Core.Nothing+    }++instance Core.FromJSON Registration where+  parseJSON =+    Core.withObject+      "Registration"+      ( \o ->+          Registration+            Core.<$> (o Core..:? "cloudPubsubTopic")+            Core.<*> (o Core..:? "expiryTime")+            Core.<*> (o Core..:? "feed")+            Core.<*> (o Core..:? "registrationId")+      )++instance Core.ToJSON Registration where+  toJSON Registration {..} =+    Core.object+      ( Core.catMaybes+          [ ("cloudPubsubTopic" Core..=) Core.<$> cloudPubsubTopic,+            ("expiryTime" Core..=) Core.<$> expiryTime,+            ("feed" Core..=) Core.<$> feed,+            ("registrationId" Core..=) Core.<$> registrationId+          ]+      )++-- | Request to return a student submission.+--+-- /See:/ 'newReturnStudentSubmissionRequest' smart constructor.+data ReturnStudentSubmissionRequest = ReturnStudentSubmissionRequest+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ReturnStudentSubmissionRequest' with the minimum fields required to make a request.+newReturnStudentSubmissionRequest ::+  ReturnStudentSubmissionRequest+newReturnStudentSubmissionRequest = ReturnStudentSubmissionRequest++instance Core.FromJSON ReturnStudentSubmissionRequest where+  parseJSON =+    Core.withObject+      "ReturnStudentSubmissionRequest"+      (\o -> Core.pure ReturnStudentSubmissionRequest)++instance Core.ToJSON ReturnStudentSubmissionRequest where+  toJSON = Core.const Core.emptyObject++-- | The rubric of the course work. A rubric is a scoring guide used to evaluate student work and give feedback. For further details, see </classroom/rubrics/limitations Rubrics structure and known limitations>.+--+-- /See:/ 'newRubric' smart constructor.+data Rubric = Rubric+  { -- | Identifier of the course. Read-only.+    courseId :: (Core.Maybe Core.Text),+    -- | Identifier for the course work this corresponds to. Read-only.+    courseWorkId :: (Core.Maybe Core.Text),+    -- | Output only. Timestamp when this rubric was created. Read-only.+    creationTime :: (Core.Maybe Core.DateTime),+    -- | List of criteria. Each criterion is a dimension on which performance is rated.+    criteria :: (Core.Maybe [Criterion]),+    -- | Classroom-assigned identifier for the rubric. This is unique among rubrics for the relevant course work. Read-only.+    id :: (Core.Maybe Core.Text),+    -- | Input only. Immutable. Google Sheets ID of the spreadsheet. This spreadsheet must contain formatted rubric settings. See <https://support.google.com/edu/classroom/answer/9335069 Create or reuse a rubric for an assignment>. Use of this field requires the @https:\/\/www.googleapis.com\/auth\/spreadsheets.readonly@ or @https:\/\/www.googleapis.com\/auth\/spreadsheets@ scope.+    sourceSpreadsheetId :: (Core.Maybe Core.Text),+    -- | Output only. Timestamp of the most recent change to this rubric. Read-only.+    updateTime :: (Core.Maybe Core.DateTime)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Rubric' with the minimum fields required to make a request.+newRubric ::+  Rubric+newRubric =+  Rubric+    { courseId = Core.Nothing,+      courseWorkId = Core.Nothing,+      creationTime = Core.Nothing,+      criteria = Core.Nothing,+      id = Core.Nothing,+      sourceSpreadsheetId = Core.Nothing,+      updateTime = Core.Nothing+    }++instance Core.FromJSON Rubric where+  parseJSON =+    Core.withObject+      "Rubric"+      ( \o ->+          Rubric+            Core.<$> (o Core..:? "courseId")+            Core.<*> (o Core..:? "courseWorkId")+            Core.<*> (o Core..:? "creationTime")+            Core.<*> (o Core..:? "criteria")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "sourceSpreadsheetId")+            Core.<*> (o Core..:? "updateTime")+      )++instance Core.ToJSON Rubric where+  toJSON Rubric {..} =+    Core.object+      ( Core.catMaybes+          [ ("courseId" Core..=) Core.<$> courseId,+            ("courseWorkId" Core..=) Core.<$> courseWorkId,+            ("creationTime" Core..=) Core.<$> creationTime,+            ("criteria" Core..=) Core.<$> criteria,+            ("id" Core..=) Core.<$> id,+            ("sourceSpreadsheetId" Core..=) Core.<$> sourceSpreadsheetId,+            ("updateTime" Core..=) Core.<$> updateTime+          ]+      )++-- | A rubric grade set for the student submission. There is at most one entry per rubric criterion.+--+-- /See:/ 'newRubricGrade' smart constructor.+data RubricGrade = RubricGrade+  { -- | Optional. Criterion ID.+    criterionId :: (Core.Maybe Core.Text),+    -- | Optional. Optional level ID of the selected level. If empty, no level was selected.+    levelId :: (Core.Maybe Core.Text),+    -- | Optional. Optional points assigned for this criterion, typically based on the level. Levels might or might not have points. If unset, no points were set for this criterion.+    points :: (Core.Maybe Core.Double)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'RubricGrade' with the minimum fields required to make a request.+newRubricGrade ::+  RubricGrade+newRubricGrade =+  RubricGrade+    { criterionId = Core.Nothing,+      levelId = Core.Nothing,+      points = Core.Nothing+    }++instance Core.FromJSON RubricGrade where+  parseJSON =+    Core.withObject+      "RubricGrade"+      ( \o ->+          RubricGrade+            Core.<$> (o Core..:? "criterionId")+            Core.<*> (o Core..:? "levelId")+            Core.<*> (o Core..:? "points")+      )++instance Core.ToJSON RubricGrade where+  toJSON RubricGrade {..} =+    Core.object+      ( Core.catMaybes+          [ ("criterionId" Core..=) Core.<$> criterionId,+            ("levelId" Core..=) Core.<$> levelId,+            ("points" Core..=) Core.<$> points+          ]+      )++-- | Drive file that is used as material for course work.+--+-- /See:/ 'newSharedDriveFile' smart constructor.+data SharedDriveFile = SharedDriveFile+  { -- | Drive file details.+    driveFile :: (Core.Maybe DriveFile),+    -- | Mechanism by which students access the Drive item.+    shareMode :: (Core.Maybe SharedDriveFile_ShareMode)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SharedDriveFile' with the minimum fields required to make a request.+newSharedDriveFile ::+  SharedDriveFile+newSharedDriveFile =+  SharedDriveFile+    { driveFile = Core.Nothing,+      shareMode = Core.Nothing+    }++instance Core.FromJSON SharedDriveFile where+  parseJSON =+    Core.withObject+      "SharedDriveFile"+      ( \o ->+          SharedDriveFile+            Core.<$> (o Core..:? "driveFile")+            Core.<*> (o Core..:? "shareMode")+      )++instance Core.ToJSON SharedDriveFile where+  toJSON SharedDriveFile {..} =+    Core.object+      ( Core.catMaybes+          [ ("driveFile" Core..=) Core.<$> driveFile,+            ("shareMode" Core..=) Core.<$> shareMode+          ]+      )++-- | Student work for a short answer question.+--+-- /See:/ 'newShortAnswerSubmission' smart constructor.+newtype ShortAnswerSubmission = ShortAnswerSubmission+  { -- | Student response to a short-answer question.+    answer :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ShortAnswerSubmission' with the minimum fields required to make a request.+newShortAnswerSubmission ::+  ShortAnswerSubmission+newShortAnswerSubmission =+  ShortAnswerSubmission {answer = Core.Nothing}++instance Core.FromJSON ShortAnswerSubmission where+  parseJSON =+    Core.withObject+      "ShortAnswerSubmission"+      (\o -> ShortAnswerSubmission Core.<$> (o Core..:? "answer"))++instance Core.ToJSON ShortAnswerSubmission where+  toJSON ShortAnswerSubmission {..} =+    Core.object (Core.catMaybes [("answer" Core..=) Core.<$> answer])++-- | The history of each state this submission has been in.+--+-- /See:/ 'newStateHistory' smart constructor.+data StateHistory = StateHistory+  { -- | The teacher or student who made the change.+    actorUserId :: (Core.Maybe Core.Text),+    -- | The workflow pipeline stage.+    state :: (Core.Maybe StateHistory_State),+    -- | When the submission entered this state.+    stateTimestamp :: (Core.Maybe Core.DateTime)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'StateHistory' with the minimum fields required to make a request.+newStateHistory ::+  StateHistory+newStateHistory =+  StateHistory+    { actorUserId = Core.Nothing,+      state = Core.Nothing,+      stateTimestamp = Core.Nothing+    }++instance Core.FromJSON StateHistory where+  parseJSON =+    Core.withObject+      "StateHistory"+      ( \o ->+          StateHistory+            Core.<$> (o Core..:? "actorUserId")+            Core.<*> (o Core..:? "state")+            Core.<*> (o Core..:? "stateTimestamp")+      )++instance Core.ToJSON StateHistory where+  toJSON StateHistory {..} =+    Core.object+      ( Core.catMaybes+          [ ("actorUserId" Core..=) Core.<$> actorUserId,+            ("state" Core..=) Core.<$> state,+            ("stateTimestamp" Core..=) Core.<$> stateTimestamp+          ]+      )++-- | Student in a course.+--+-- /See:/ 'newStudent' smart constructor.+data Student = Student+  { -- | Identifier of the course. Read-only.+    courseId :: (Core.Maybe Core.Text),+    -- | Global user information for the student. Read-only.+    profile :: (Core.Maybe UserProfile),+    -- | Information about a Drive Folder for this student\'s work in this course. Only visible to the student and domain administrators. Read-only.+    studentWorkFolder :: (Core.Maybe DriveFolder),+    -- | Identifier of the user. When specified as a parameter of a request, this identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    userId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Student' with the minimum fields required to make a request.+newStudent ::+  Student+newStudent =+  Student+    { courseId = Core.Nothing,+      profile = Core.Nothing,+      studentWorkFolder = Core.Nothing,+      userId = Core.Nothing+    }++instance Core.FromJSON Student where+  parseJSON =+    Core.withObject+      "Student"+      ( \o ->+          Student+            Core.<$> (o Core..:? "courseId")+            Core.<*> (o Core..:? "profile")+            Core.<*> (o Core..:? "studentWorkFolder")+            Core.<*> (o Core..:? "userId")+      )++instance Core.ToJSON Student where+  toJSON Student {..} =+    Core.object+      ( Core.catMaybes+          [ ("courseId" Core..=) Core.<$> courseId,+            ("profile" Core..=) Core.<$> profile,+            ("studentWorkFolder" Core..=) Core.<$> studentWorkFolder,+            ("userId" Core..=) Core.<$> userId+          ]+      )++-- | Role-specific context if the requesting user is a student.+--+-- /See:/ 'newStudentContext' smart constructor.+newtype StudentContext = StudentContext+  { -- | Requesting user\'s submission id to be used for grade passback and to identify the student when showing student work to the teacher. This is set exactly when @supportsStudentWork@ is @true@.+    submissionId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'StudentContext' with the minimum fields required to make a request.+newStudentContext ::+  StudentContext+newStudentContext = StudentContext {submissionId = Core.Nothing}++instance Core.FromJSON StudentContext where+  parseJSON =+    Core.withObject+      "StudentContext"+      (\o -> StudentContext Core.<$> (o Core..:? "submissionId"))++instance Core.ToJSON StudentContext where+  toJSON StudentContext {..} =+    Core.object+      (Core.catMaybes [("submissionId" Core..=) Core.<$> submissionId])++-- | Student submission for course work. @StudentSubmission@ items are generated when a @CourseWork@ item is created. Student submissions that have never been accessed (i.e. with @state@ = NEW) may not have a creation time or update time.+--+-- /See:/ 'newStudentSubmission' smart constructor.+data StudentSubmission = StudentSubmission+  { -- | Absolute link to the submission in the Classroom web UI. Read-only.+    alternateLink :: (Core.Maybe Core.Text),+    -- | Optional grade. If unset, no grade was set. This value must be non-negative. Decimal (that is, non-integer) values are allowed, but are rounded to two decimal places. This may be modified only by course teachers.+    assignedGrade :: (Core.Maybe Core.Double),+    -- | Assigned rubric grades based on the rubric\'s Criteria. This map is empty if there is no rubric attached to this course work or if a rubric is attached, but no grades have been set on any Criteria. Entries are only populated for grades that have been set. Key: The rubric\'s criterion ID. Read-only.+    assignedRubricGrades :: (Core.Maybe StudentSubmission_AssignedRubricGrades),+    -- | Submission content when course/work/type is ASSIGNMENT. Students can modify this content using ModifyAttachments.+    assignmentSubmission :: (Core.Maybe AssignmentSubmission),+    -- | Whether this student submission is associated with the Developer Console project making the request. See CreateCourseWork for more details. Read-only.+    associatedWithDeveloper :: (Core.Maybe Core.Bool),+    -- | Identifier of the course. Read-only.+    courseId :: (Core.Maybe Core.Text),+    -- | Identifier for the course work this corresponds to. Read-only.+    courseWorkId :: (Core.Maybe Core.Text),+    -- | Type of course work this submission is for. Read-only.+    courseWorkType :: (Core.Maybe StudentSubmission_CourseWorkType),+    -- | Creation time of this submission. This may be unset if the student has not accessed this item. Read-only.+    creationTime :: (Core.Maybe Core.DateTime),+    -- | Optional pending grade. If unset, no grade was set. This value must be non-negative. Decimal (that is, non-integer) values are allowed, but are rounded to two decimal places. This is only visible to and modifiable by course teachers.+    draftGrade :: (Core.Maybe Core.Double),+    -- | Pending rubric grades based on the rubric\'s criteria. This map is empty if there is no rubric attached to this course work or if a rubric is attached, but no grades have been set on any criteria. Entries are only populated for grades that have been set. Key: The rubric\'s criterion ID. Read-only.+    draftRubricGrades :: (Core.Maybe StudentSubmission_DraftRubricGrades),+    -- | Classroom-assigned Identifier for the student submission. This is unique among submissions for the relevant course work. Read-only.+    id :: (Core.Maybe Core.Text),+    -- | Whether this submission is late. Read-only.+    late :: (Core.Maybe Core.Bool),+    -- | Submission content when course/work/type is MULTIPLE/CHOICE/QUESTION.+    multipleChoiceSubmission :: (Core.Maybe MultipleChoiceSubmission),+    -- | Submission content when course/work/type is SHORT/ANSWER/QUESTION.+    shortAnswerSubmission :: (Core.Maybe ShortAnswerSubmission),+    -- | State of this submission. Read-only.+    state :: (Core.Maybe StudentSubmission_State),+    -- | The history of the submission (includes state and grade histories). Read-only.+    submissionHistory :: (Core.Maybe [SubmissionHistory]),+    -- | Last update time of this submission. This may be unset if the student has not accessed this item. Read-only.+    updateTime :: (Core.Maybe Core.DateTime),+    -- | Identifier for the student that owns this submission. Read-only.+    userId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'StudentSubmission' with the minimum fields required to make a request.+newStudentSubmission ::+  StudentSubmission+newStudentSubmission =+  StudentSubmission+    { alternateLink = Core.Nothing,+      assignedGrade = Core.Nothing,+      assignedRubricGrades = Core.Nothing,+      assignmentSubmission = Core.Nothing,+      associatedWithDeveloper = Core.Nothing,+      courseId = Core.Nothing,+      courseWorkId = Core.Nothing,+      courseWorkType = Core.Nothing,+      creationTime = Core.Nothing,+      draftGrade = Core.Nothing,+      draftRubricGrades = Core.Nothing,+      id = Core.Nothing,+      late = Core.Nothing,+      multipleChoiceSubmission = Core.Nothing,+      shortAnswerSubmission = Core.Nothing,+      state = Core.Nothing,+      submissionHistory = Core.Nothing,+      updateTime = Core.Nothing,+      userId = Core.Nothing+    }++instance Core.FromJSON StudentSubmission where+  parseJSON =+    Core.withObject+      "StudentSubmission"+      ( \o ->+          StudentSubmission+            Core.<$> (o Core..:? "alternateLink")+            Core.<*> (o Core..:? "assignedGrade")+            Core.<*> (o Core..:? "assignedRubricGrades")+            Core.<*> (o Core..:? "assignmentSubmission")+            Core.<*> (o Core..:? "associatedWithDeveloper")+            Core.<*> (o Core..:? "courseId")+            Core.<*> (o Core..:? "courseWorkId")+            Core.<*> (o Core..:? "courseWorkType")+            Core.<*> (o Core..:? "creationTime")+            Core.<*> (o Core..:? "draftGrade")+            Core.<*> (o Core..:? "draftRubricGrades")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "late")+            Core.<*> (o Core..:? "multipleChoiceSubmission")+            Core.<*> (o Core..:? "shortAnswerSubmission")+            Core.<*> (o Core..:? "state")+            Core.<*> (o Core..:? "submissionHistory")+            Core.<*> (o Core..:? "updateTime")+            Core.<*> (o Core..:? "userId")+      )++instance Core.ToJSON StudentSubmission where+  toJSON StudentSubmission {..} =+    Core.object+      ( Core.catMaybes+          [ ("alternateLink" Core..=) Core.<$> alternateLink,+            ("assignedGrade" Core..=) Core.<$> assignedGrade,+            ("assignedRubricGrades" Core..=) Core.<$> assignedRubricGrades,+            ("assignmentSubmission" Core..=) Core.<$> assignmentSubmission,+            ("associatedWithDeveloper" Core..=)+              Core.<$> associatedWithDeveloper,+            ("courseId" Core..=) Core.<$> courseId,+            ("courseWorkId" Core..=) Core.<$> courseWorkId,+            ("courseWorkType" Core..=) Core.<$> courseWorkType,+            ("creationTime" Core..=) Core.<$> creationTime,+            ("draftGrade" Core..=) Core.<$> draftGrade,+            ("draftRubricGrades" Core..=) Core.<$> draftRubricGrades,+            ("id" Core..=) Core.<$> id,+            ("late" Core..=) Core.<$> late,+            ("multipleChoiceSubmission" Core..=)+              Core.<$> multipleChoiceSubmission,+            ("shortAnswerSubmission" Core..=) Core.<$> shortAnswerSubmission,+            ("state" Core..=) Core.<$> state,+            ("submissionHistory" Core..=) Core.<$> submissionHistory,+            ("updateTime" Core..=) Core.<$> updateTime,+            ("userId" Core..=) Core.<$> userId+          ]+      )++-- | Assigned rubric grades based on the rubric\'s Criteria. This map is empty if there is no rubric attached to this course work or if a rubric is attached, but no grades have been set on any Criteria. Entries are only populated for grades that have been set. Key: The rubric\'s criterion ID. Read-only.+--+-- /See:/ 'newStudentSubmission_AssignedRubricGrades' smart constructor.+newtype StudentSubmission_AssignedRubricGrades = StudentSubmission_AssignedRubricGrades+  { additional :: (Core.HashMap Core.Text RubricGrade)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'StudentSubmission_AssignedRubricGrades' with the minimum fields required to make a request.+newStudentSubmission_AssignedRubricGrades ::+  -- |  See 'additional'.+  Core.HashMap Core.Text RubricGrade ->+  StudentSubmission_AssignedRubricGrades+newStudentSubmission_AssignedRubricGrades additional =+  StudentSubmission_AssignedRubricGrades {additional = additional}++instance Core.FromJSON StudentSubmission_AssignedRubricGrades where+  parseJSON =+    Core.withObject+      "StudentSubmission_AssignedRubricGrades"+      ( \o ->+          StudentSubmission_AssignedRubricGrades+            Core.<$> (Core.parseJSONObject o)+      )++instance Core.ToJSON StudentSubmission_AssignedRubricGrades where+  toJSON StudentSubmission_AssignedRubricGrades {..} =+    Core.toJSON additional++-- | Pending rubric grades based on the rubric\'s criteria. This map is empty if there is no rubric attached to this course work or if a rubric is attached, but no grades have been set on any criteria. Entries are only populated for grades that have been set. Key: The rubric\'s criterion ID. Read-only.+--+-- /See:/ 'newStudentSubmission_DraftRubricGrades' smart constructor.+newtype StudentSubmission_DraftRubricGrades = StudentSubmission_DraftRubricGrades+  { additional :: (Core.HashMap Core.Text RubricGrade)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'StudentSubmission_DraftRubricGrades' with the minimum fields required to make a request.+newStudentSubmission_DraftRubricGrades ::+  -- |  See 'additional'.+  Core.HashMap Core.Text RubricGrade ->+  StudentSubmission_DraftRubricGrades+newStudentSubmission_DraftRubricGrades additional =+  StudentSubmission_DraftRubricGrades {additional = additional}++instance Core.FromJSON StudentSubmission_DraftRubricGrades where+  parseJSON =+    Core.withObject+      "StudentSubmission_DraftRubricGrades"+      ( \o ->+          StudentSubmission_DraftRubricGrades+            Core.<$> (Core.parseJSONObject o)+      )++instance Core.ToJSON StudentSubmission_DraftRubricGrades where+  toJSON StudentSubmission_DraftRubricGrades {..} =+    Core.toJSON additional++-- | The history of the submission. This currently includes state and grade histories.+--+-- /See:/ 'newSubmissionHistory' smart constructor.+data SubmissionHistory = SubmissionHistory+  { -- | The grade history information of the submission, if present.+    gradeHistory :: (Core.Maybe GradeHistory),+    -- | The state history information of the submission, if present.+    stateHistory :: (Core.Maybe StateHistory)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SubmissionHistory' with the minimum fields required to make a request.+newSubmissionHistory ::+  SubmissionHistory+newSubmissionHistory =+  SubmissionHistory+    { gradeHistory = Core.Nothing,+      stateHistory = Core.Nothing+    }++instance Core.FromJSON SubmissionHistory where+  parseJSON =+    Core.withObject+      "SubmissionHistory"+      ( \o ->+          SubmissionHistory+            Core.<$> (o Core..:? "gradeHistory")+            Core.<*> (o Core..:? "stateHistory")+      )++instance Core.ToJSON SubmissionHistory where+  toJSON SubmissionHistory {..} =+    Core.object+      ( Core.catMaybes+          [ ("gradeHistory" Core..=) Core.<$> gradeHistory,+            ("stateHistory" Core..=) Core.<$> stateHistory+          ]+      )++-- | Teacher of a course.+--+-- /See:/ 'newTeacher' smart constructor.+data Teacher = Teacher+  { -- | Identifier of the course. Read-only.+    courseId :: (Core.Maybe Core.Text),+    -- | Global user information for the teacher. Read-only.+    profile :: (Core.Maybe UserProfile),+    -- | Identifier of the user. When specified as a parameter of a request, this identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    userId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Teacher' with the minimum fields required to make a request.+newTeacher ::+  Teacher+newTeacher =+  Teacher+    { courseId = Core.Nothing,+      profile = Core.Nothing,+      userId = Core.Nothing+    }++instance Core.FromJSON Teacher where+  parseJSON =+    Core.withObject+      "Teacher"+      ( \o ->+          Teacher+            Core.<$> (o Core..:? "courseId")+            Core.<*> (o Core..:? "profile")+            Core.<*> (o Core..:? "userId")+      )++instance Core.ToJSON Teacher where+  toJSON Teacher {..} =+    Core.object+      ( Core.catMaybes+          [ ("courseId" Core..=) Core.<$> courseId,+            ("profile" Core..=) Core.<$> profile,+            ("userId" Core..=) Core.<$> userId+          ]+      )++-- | Role-specific context if the requesting user is a teacher.+--+-- /See:/ 'newTeacherContext' smart constructor.+data TeacherContext = TeacherContext+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'TeacherContext' with the minimum fields required to make a request.+newTeacherContext ::+  TeacherContext+newTeacherContext = TeacherContext++instance Core.FromJSON TeacherContext where+  parseJSON =+    Core.withObject+      "TeacherContext"+      (\o -> Core.pure TeacherContext)++instance Core.ToJSON TeacherContext where+  toJSON = Core.const Core.emptyObject++-- | Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and @google.protobuf.Timestamp@.+--+-- /See:/ 'newTimeOfDay' smart constructor.+data TimeOfDay' = TimeOfDay'+  { -- | Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.+    hours :: (Core.Maybe Core.Int32),+    -- | Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.+    minutes :: (Core.Maybe Core.Int32),+    -- | Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.+    nanos :: (Core.Maybe Core.Int32),+    -- | Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.+    seconds :: (Core.Maybe Core.Int32)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'TimeOfDay' with the minimum fields required to make a request.+newTimeOfDay ::+  TimeOfDay'+newTimeOfDay =+  TimeOfDay'+    { hours = Core.Nothing,+      minutes = Core.Nothing,+      nanos = Core.Nothing,+      seconds = Core.Nothing+    }++instance Core.FromJSON TimeOfDay' where+  parseJSON =+    Core.withObject+      "TimeOfDay'"+      ( \o ->+          TimeOfDay'+            Core.<$> (o Core..:? "hours")+            Core.<*> (o Core..:? "minutes")+            Core.<*> (o Core..:? "nanos")+            Core.<*> (o Core..:? "seconds")+      )++instance Core.ToJSON TimeOfDay' where+  toJSON TimeOfDay' {..} =+    Core.object+      ( Core.catMaybes+          [ ("hours" Core..=) Core.<$> hours,+            ("minutes" Core..=) Core.<$> minutes,+            ("nanos" Core..=) Core.<$> nanos,+            ("seconds" Core..=) Core.<$> seconds+          ]+      )++-- | Topic created by a teacher for the course+--+-- /See:/ 'newTopic' smart constructor.+data Topic = Topic+  { -- | Identifier of the course. Read-only.+    courseId :: (Core.Maybe Core.Text),+    -- | The name of the topic, generated by the user. Leading and trailing whitespaces, if any, are trimmed. Also, multiple consecutive whitespaces are collapsed into one inside the name. The result must be a non-empty string. Topic names are case sensitive, and must be no longer than 100 characters.+    name :: (Core.Maybe Core.Text),+    -- | Unique identifier for the topic. Read-only.+    topicId :: (Core.Maybe Core.Text),+    -- | The time the topic was last updated by the system. Read-only.+    updateTime :: (Core.Maybe Core.DateTime)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Topic' with the minimum fields required to make a request.+newTopic ::+  Topic+newTopic =+  Topic+    { courseId = Core.Nothing,+      name = Core.Nothing,+      topicId = Core.Nothing,+      updateTime = Core.Nothing+    }++instance Core.FromJSON Topic where+  parseJSON =+    Core.withObject+      "Topic"+      ( \o ->+          Topic+            Core.<$> (o Core..:? "courseId")+            Core.<*> (o Core..:? "name")+            Core.<*> (o Core..:? "topicId")+            Core.<*> (o Core..:? "updateTime")+      )++instance Core.ToJSON Topic where+  toJSON Topic {..} =+    Core.object+      ( Core.catMaybes+          [ ("courseId" Core..=) Core.<$> courseId,+            ("name" Core..=) Core.<$> name,+            ("topicId" Core..=) Core.<$> topicId,+            ("updateTime" Core..=) Core.<$> updateTime+          ]+      )++-- | Request to turn in a student submission.+--+-- /See:/ 'newTurnInStudentSubmissionRequest' smart constructor.+data TurnInStudentSubmissionRequest = TurnInStudentSubmissionRequest+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'TurnInStudentSubmissionRequest' with the minimum fields required to make a request.+newTurnInStudentSubmissionRequest ::+  TurnInStudentSubmissionRequest+newTurnInStudentSubmissionRequest = TurnInStudentSubmissionRequest++instance Core.FromJSON TurnInStudentSubmissionRequest where+  parseJSON =+    Core.withObject+      "TurnInStudentSubmissionRequest"+      (\o -> Core.pure TurnInStudentSubmissionRequest)++instance Core.ToJSON TurnInStudentSubmissionRequest where+  toJSON = Core.const Core.emptyObject++-- | Global information for a user.+--+-- /See:/ 'newUserProfile' smart constructor.+data UserProfile = UserProfile+  { -- | Email address of the user. Must request @https:\/\/www.googleapis.com\/auth\/classroom.profile.emails@ scope for this field to be populated in a response body. Read-only.+    emailAddress :: (Core.Maybe Core.Text),+    -- | Identifier of the user. Read-only.+    id :: (Core.Maybe Core.Text),+    -- | Name of the user. Read-only.+    name :: (Core.Maybe Name),+    -- | Global permissions of the user. Read-only.+    permissions :: (Core.Maybe [GlobalPermission]),+    -- | URL of user\'s profile photo. Must request @https:\/\/www.googleapis.com\/auth\/classroom.profile.photos@ scope for this field to be populated in a response body. Read-only.+    photoUrl :: (Core.Maybe Core.Text),+    -- | Represents whether a Google Workspace for Education user\'s domain administrator has explicitly verified them as being a teacher. This field is always false if the user is not a member of a Google Workspace for Education domain. Read-only+    verifiedTeacher :: (Core.Maybe Core.Bool)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'UserProfile' with the minimum fields required to make a request.+newUserProfile ::+  UserProfile+newUserProfile =+  UserProfile+    { emailAddress = Core.Nothing,+      id = Core.Nothing,+      name = Core.Nothing,+      permissions = Core.Nothing,+      photoUrl = Core.Nothing,+      verifiedTeacher = Core.Nothing+    }++instance Core.FromJSON UserProfile where+  parseJSON =+    Core.withObject+      "UserProfile"+      ( \o ->+          UserProfile+            Core.<$> (o Core..:? "emailAddress")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "name")+            Core.<*> (o Core..:? "permissions")+            Core.<*> (o Core..:? "photoUrl")+            Core.<*> (o Core..:? "verifiedTeacher")+      )++instance Core.ToJSON UserProfile where+  toJSON UserProfile {..} =+    Core.object+      ( Core.catMaybes+          [ ("emailAddress" Core..=) Core.<$> emailAddress,+            ("id" Core..=) Core.<$> id,+            ("name" Core..=) Core.<$> name,+            ("permissions" Core..=) Core.<$> permissions,+            ("photoUrl" Core..=) Core.<$> photoUrl,+            ("verifiedTeacher" Core..=) Core.<$> verifiedTeacher+          ]+      )++-- | YouTube video item.+--+-- /See:/ 'newYouTubeVideo' smart constructor.+data YouTubeVideo = YouTubeVideo+  { -- | URL that can be used to view the YouTube video. Read-only.+    alternateLink :: (Core.Maybe Core.Text),+    -- | YouTube API resource ID.+    id :: (Core.Maybe Core.Text),+    -- | URL of a thumbnail image of the YouTube video. Read-only.+    thumbnailUrl :: (Core.Maybe Core.Text),+    -- | Title of the YouTube video. Read-only.+    title :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'YouTubeVideo' with the minimum fields required to make a request.+newYouTubeVideo ::+  YouTubeVideo+newYouTubeVideo =+  YouTubeVideo+    { alternateLink = Core.Nothing,+      id = Core.Nothing,+      thumbnailUrl = Core.Nothing,+      title = Core.Nothing+    }++instance Core.FromJSON YouTubeVideo where+  parseJSON =+    Core.withObject+      "YouTubeVideo"+      ( \o ->+          YouTubeVideo+            Core.<$> (o Core..:? "alternateLink")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "thumbnailUrl")+            Core.<*> (o Core..:? "title")+      )++instance Core.ToJSON YouTubeVideo where+  toJSON YouTubeVideo {..} =+    Core.object+      ( Core.catMaybes+          [ ("alternateLink" Core..=) Core.<$> alternateLink,+            ("id" Core..=) Core.<$> id,+            ("thumbnailUrl" Core..=) Core.<$> thumbnailUrl,+            ("title" Core..=) Core.<$> title+          ]+      )
+ gen/Gogol/Classroom/Internal/Sum.hs view
@@ -0,0 +1,1443 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Internal.Sum+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Gogol.Classroom.Internal.Sum+  ( -- * Xgafv+    Xgafv+      ( Xgafv_1,+        Xgafv_2,+        ..+      ),++    -- * AddOnAttachmentStudentSubmission_PostSubmissionState+    AddOnAttachmentStudentSubmission_PostSubmissionState+      ( AddOnAttachmentStudentSubmission_PostSubmissionState_SUBMISSIONSTATEUNSPECIFIED,+        AddOnAttachmentStudentSubmission_PostSubmissionState_New,+        AddOnAttachmentStudentSubmission_PostSubmissionState_Created,+        AddOnAttachmentStudentSubmission_PostSubmissionState_TURNEDIN,+        AddOnAttachmentStudentSubmission_PostSubmissionState_Returned,+        AddOnAttachmentStudentSubmission_PostSubmissionState_RECLAIMEDBYSTUDENT,+        ..+      ),++    -- * Announcement_AssigneeMode+    Announcement_AssigneeMode+      ( Announcement_AssigneeMode_ASSIGNEEMODEUNSPECIFIED,+        Announcement_AssigneeMode_ALLSTUDENTS,+        Announcement_AssigneeMode_INDIVIDUALSTUDENTS,+        ..+      ),++    -- * Announcement_State+    Announcement_State+      ( Announcement_State_ANNOUNCEMENTSTATEUNSPECIFIED,+        Announcement_State_Published,+        Announcement_State_Draft,+        Announcement_State_Deleted,+        ..+      ),++    -- * Course_CourseState+    Course_CourseState+      ( Course_CourseState_COURSESTATEUNSPECIFIED,+        Course_CourseState_Active,+        Course_CourseState_Archived,+        Course_CourseState_Provisioned,+        Course_CourseState_Declined,+        Course_CourseState_Suspended,+        ..+      ),++    -- * CourseWork_AssigneeMode+    CourseWork_AssigneeMode+      ( CourseWork_AssigneeMode_ASSIGNEEMODEUNSPECIFIED,+        CourseWork_AssigneeMode_ALLSTUDENTS,+        CourseWork_AssigneeMode_INDIVIDUALSTUDENTS,+        ..+      ),++    -- * CourseWork_State+    CourseWork_State+      ( CourseWork_State_COURSEWORKSTATEUNSPECIFIED,+        CourseWork_State_Published,+        CourseWork_State_Draft,+        CourseWork_State_Deleted,+        ..+      ),++    -- * CourseWork_SubmissionModificationMode+    CourseWork_SubmissionModificationMode+      ( CourseWork_SubmissionModificationMode_SUBMISSIONMODIFICATIONMODEUNSPECIFIED,+        CourseWork_SubmissionModificationMode_MODIFIABLEUNTILTURNEDIN,+        CourseWork_SubmissionModificationMode_Modifiable,+        ..+      ),++    -- * CourseWork_WorkType+    CourseWork_WorkType+      ( CourseWork_WorkType_COURSEWORKTYPEUNSPECIFIED,+        CourseWork_WorkType_Assignment,+        CourseWork_WorkType_SHORTANSWERQUESTION,+        CourseWork_WorkType_MULTIPLECHOICEQUESTION,+        ..+      ),++    -- * CourseWorkMaterial_AssigneeMode+    CourseWorkMaterial_AssigneeMode+      ( CourseWorkMaterial_AssigneeMode_ASSIGNEEMODEUNSPECIFIED,+        CourseWorkMaterial_AssigneeMode_ALLSTUDENTS,+        CourseWorkMaterial_AssigneeMode_INDIVIDUALSTUDENTS,+        ..+      ),++    -- * CourseWorkMaterial_State+    CourseWorkMaterial_State+      ( CourseWorkMaterial_State_COURSEWORKMATERIALSTATEUNSPECIFIED,+        CourseWorkMaterial_State_Published,+        CourseWorkMaterial_State_Draft,+        CourseWorkMaterial_State_Deleted,+        ..+      ),++    -- * Feed_FeedType+    Feed_FeedType+      ( Feed_FeedType_FEEDTYPEUNSPECIFIED,+        Feed_FeedType_DOMAINROSTERCHANGES,+        Feed_FeedType_COURSEROSTERCHANGES,+        Feed_FeedType_COURSEWORKCHANGES,+        ..+      ),++    -- * GlobalPermission_Permission+    GlobalPermission_Permission+      ( GlobalPermission_Permission_PERMISSIONUNSPECIFIED,+        GlobalPermission_Permission_CREATECOURSE,+        ..+      ),++    -- * GradeHistory_GradeChangeType+    GradeHistory_GradeChangeType+      ( GradeHistory_GradeChangeType_UNKNOWNGRADECHANGETYPE,+        GradeHistory_GradeChangeType_DRAFTGRADEPOINTSEARNEDCHANGE,+        GradeHistory_GradeChangeType_ASSIGNEDGRADEPOINTSEARNEDCHANGE,+        GradeHistory_GradeChangeType_MAXPOINTSCHANGE,+        ..+      ),++    -- * GradebookSettings_CalculationType+    GradebookSettings_CalculationType+      ( GradebookSettings_CalculationType_CALCULATIONTYPEUNSPECIFIED,+        GradebookSettings_CalculationType_TOTALPOINTS,+        GradebookSettings_CalculationType_WEIGHTEDCATEGORIES,+        ..+      ),++    -- * GradebookSettings_DisplaySetting+    GradebookSettings_DisplaySetting+      ( GradebookSettings_DisplaySetting_DISPLAYSETTINGUNSPECIFIED,+        GradebookSettings_DisplaySetting_SHOWOVERALLGRADE,+        GradebookSettings_DisplaySetting_HIDEOVERALLGRADE,+        GradebookSettings_DisplaySetting_SHOWTEACHERSONLY,+        ..+      ),++    -- * GuardianInvitation_State+    GuardianInvitation_State+      ( GuardianInvitation_State_GUARDIANINVITATIONSTATEUNSPECIFIED,+        GuardianInvitation_State_Pending,+        GuardianInvitation_State_Complete,+        ..+      ),++    -- * Invitation_Role+    Invitation_Role+      ( Invitation_Role_COURSEROLEUNSPECIFIED,+        Invitation_Role_Student,+        Invitation_Role_Teacher,+        Invitation_Role_Owner,+        ..+      ),++    -- * ModifyAnnouncementAssigneesRequest_AssigneeMode+    ModifyAnnouncementAssigneesRequest_AssigneeMode+      ( ModifyAnnouncementAssigneesRequest_AssigneeMode_ASSIGNEEMODEUNSPECIFIED,+        ModifyAnnouncementAssigneesRequest_AssigneeMode_ALLSTUDENTS,+        ModifyAnnouncementAssigneesRequest_AssigneeMode_INDIVIDUALSTUDENTS,+        ..+      ),++    -- * ModifyCourseWorkAssigneesRequest_AssigneeMode+    ModifyCourseWorkAssigneesRequest_AssigneeMode+      ( ModifyCourseWorkAssigneesRequest_AssigneeMode_ASSIGNEEMODEUNSPECIFIED,+        ModifyCourseWorkAssigneesRequest_AssigneeMode_ALLSTUDENTS,+        ModifyCourseWorkAssigneesRequest_AssigneeMode_INDIVIDUALSTUDENTS,+        ..+      ),++    -- * SharedDriveFile_ShareMode+    SharedDriveFile_ShareMode+      ( SharedDriveFile_ShareMode_UNKNOWNSHAREMODE,+        SharedDriveFile_ShareMode_View,+        SharedDriveFile_ShareMode_Edit,+        SharedDriveFile_ShareMode_STUDENTCOPY,+        ..+      ),++    -- * StateHistory_State+    StateHistory_State+      ( StateHistory_State_STATEUNSPECIFIED,+        StateHistory_State_Created,+        StateHistory_State_TURNEDIN,+        StateHistory_State_Returned,+        StateHistory_State_RECLAIMEDBYSTUDENT,+        StateHistory_State_STUDENTEDITEDAFTERTURNIN,+        ..+      ),++    -- * StudentSubmission_CourseWorkType+    StudentSubmission_CourseWorkType+      ( StudentSubmission_CourseWorkType_COURSEWORKTYPEUNSPECIFIED,+        StudentSubmission_CourseWorkType_Assignment,+        StudentSubmission_CourseWorkType_SHORTANSWERQUESTION,+        StudentSubmission_CourseWorkType_MULTIPLECHOICEQUESTION,+        ..+      ),++    -- * StudentSubmission_State+    StudentSubmission_State+      ( StudentSubmission_State_SUBMISSIONSTATEUNSPECIFIED,+        StudentSubmission_State_New,+        StudentSubmission_State_Created,+        StudentSubmission_State_TURNEDIN,+        StudentSubmission_State_Returned,+        StudentSubmission_State_RECLAIMEDBYSTUDENT,+        ..+      ),++    -- * CoursesAnnouncementsListAnnouncementStates+    CoursesAnnouncementsListAnnouncementStates+      ( CoursesAnnouncementsListAnnouncementStates_ANNOUNCEMENTSTATEUNSPECIFIED,+        CoursesAnnouncementsListAnnouncementStates_Published,+        CoursesAnnouncementsListAnnouncementStates_Draft,+        CoursesAnnouncementsListAnnouncementStates_Deleted,+        ..+      ),++    -- * CoursesCourseWorkListCourseWorkStates+    CoursesCourseWorkListCourseWorkStates+      ( CoursesCourseWorkListCourseWorkStates_COURSEWORKSTATEUNSPECIFIED,+        CoursesCourseWorkListCourseWorkStates_Published,+        CoursesCourseWorkListCourseWorkStates_Draft,+        CoursesCourseWorkListCourseWorkStates_Deleted,+        ..+      ),++    -- * CoursesCourseWorkStudentSubmissionsListLate+    CoursesCourseWorkStudentSubmissionsListLate+      ( CoursesCourseWorkStudentSubmissionsListLate_LATEVALUESUNSPECIFIED,+        CoursesCourseWorkStudentSubmissionsListLate_LATEONLY,+        CoursesCourseWorkStudentSubmissionsListLate_NOTLATEONLY,+        ..+      ),++    -- * CoursesCourseWorkStudentSubmissionsListStates+    CoursesCourseWorkStudentSubmissionsListStates+      ( CoursesCourseWorkStudentSubmissionsListStates_SUBMISSIONSTATEUNSPECIFIED,+        CoursesCourseWorkStudentSubmissionsListStates_New,+        CoursesCourseWorkStudentSubmissionsListStates_Created,+        CoursesCourseWorkStudentSubmissionsListStates_TURNEDIN,+        CoursesCourseWorkStudentSubmissionsListStates_Returned,+        CoursesCourseWorkStudentSubmissionsListStates_RECLAIMEDBYSTUDENT,+        ..+      ),++    -- * CoursesCourseWorkMaterialsListCourseWorkMaterialStates+    CoursesCourseWorkMaterialsListCourseWorkMaterialStates+      ( CoursesCourseWorkMaterialsListCourseWorkMaterialStates_COURSEWORKMATERIALSTATEUNSPECIFIED,+        CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Published,+        CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Draft,+        CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Deleted,+        ..+      ),++    -- * CoursesListCourseStates+    CoursesListCourseStates+      ( CoursesListCourseStates_COURSESTATEUNSPECIFIED,+        CoursesListCourseStates_Active,+        CoursesListCourseStates_Archived,+        CoursesListCourseStates_Provisioned,+        CoursesListCourseStates_Declined,+        CoursesListCourseStates_Suspended,+        ..+      ),++    -- * UserProfilesGuardianInvitationsListStates+    UserProfilesGuardianInvitationsListStates+      ( UserProfilesGuardianInvitationsListStates_GUARDIANINVITATIONSTATEUNSPECIFIED,+        UserProfilesGuardianInvitationsListStates_Pending,+        UserProfilesGuardianInvitationsListStates_Complete,+        ..+      ),+  )+where++import Gogol.Prelude qualified as Core++-- | V1 error format.+newtype Xgafv = Xgafv {fromXgafv :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | v1 error format+pattern Xgafv_1 :: Xgafv+pattern Xgafv_1 = Xgafv "1"++-- | v2 error format+pattern Xgafv_2 :: Xgafv+pattern Xgafv_2 = Xgafv "2"++{-# COMPLETE+  Xgafv_1,+  Xgafv_2,+  Xgafv+  #-}++-- | Submission state of add-on attachment\'s parent post (i.e. assignment).+newtype AddOnAttachmentStudentSubmission_PostSubmissionState = AddOnAttachmentStudentSubmission_PostSubmissionState {fromAddOnAttachmentStudentSubmission_PostSubmissionState :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No state specified. This should never be returned.+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_SUBMISSIONSTATEUNSPECIFIED :: AddOnAttachmentStudentSubmission_PostSubmissionState+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_SUBMISSIONSTATEUNSPECIFIED = AddOnAttachmentStudentSubmission_PostSubmissionState "SUBMISSION_STATE_UNSPECIFIED"++-- | The student has never accessed this submission. Attachments are not returned and timestamps is not set.+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_New :: AddOnAttachmentStudentSubmission_PostSubmissionState+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_New = AddOnAttachmentStudentSubmission_PostSubmissionState "NEW"++-- | Has been created.+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_Created :: AddOnAttachmentStudentSubmission_PostSubmissionState+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_Created = AddOnAttachmentStudentSubmission_PostSubmissionState "CREATED"++-- | Has been turned in to the teacher.+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_TURNEDIN :: AddOnAttachmentStudentSubmission_PostSubmissionState+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_TURNEDIN = AddOnAttachmentStudentSubmission_PostSubmissionState "TURNED_IN"++-- | Has been returned to the student.+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_Returned :: AddOnAttachmentStudentSubmission_PostSubmissionState+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_Returned = AddOnAttachmentStudentSubmission_PostSubmissionState "RETURNED"++-- | Student chose to \"unsubmit\" the assignment.+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_RECLAIMEDBYSTUDENT :: AddOnAttachmentStudentSubmission_PostSubmissionState+pattern AddOnAttachmentStudentSubmission_PostSubmissionState_RECLAIMEDBYSTUDENT = AddOnAttachmentStudentSubmission_PostSubmissionState "RECLAIMED_BY_STUDENT"++{-# COMPLETE+  AddOnAttachmentStudentSubmission_PostSubmissionState_SUBMISSIONSTATEUNSPECIFIED,+  AddOnAttachmentStudentSubmission_PostSubmissionState_New,+  AddOnAttachmentStudentSubmission_PostSubmissionState_Created,+  AddOnAttachmentStudentSubmission_PostSubmissionState_TURNEDIN,+  AddOnAttachmentStudentSubmission_PostSubmissionState_Returned,+  AddOnAttachmentStudentSubmission_PostSubmissionState_RECLAIMEDBYSTUDENT,+  AddOnAttachmentStudentSubmission_PostSubmissionState+  #-}++-- | Assignee mode of the announcement. If unspecified, the default value is @ALL_STUDENTS@.+newtype Announcement_AssigneeMode = Announcement_AssigneeMode {fromAnnouncement_AssigneeMode :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No mode specified. This is never returned.+pattern Announcement_AssigneeMode_ASSIGNEEMODEUNSPECIFIED :: Announcement_AssigneeMode+pattern Announcement_AssigneeMode_ASSIGNEEMODEUNSPECIFIED = Announcement_AssigneeMode "ASSIGNEE_MODE_UNSPECIFIED"++-- | All students can see the item. This is the default state.+pattern Announcement_AssigneeMode_ALLSTUDENTS :: Announcement_AssigneeMode+pattern Announcement_AssigneeMode_ALLSTUDENTS = Announcement_AssigneeMode "ALL_STUDENTS"++-- | A subset of the students can see the item.+pattern Announcement_AssigneeMode_INDIVIDUALSTUDENTS :: Announcement_AssigneeMode+pattern Announcement_AssigneeMode_INDIVIDUALSTUDENTS = Announcement_AssigneeMode "INDIVIDUAL_STUDENTS"++{-# COMPLETE+  Announcement_AssigneeMode_ASSIGNEEMODEUNSPECIFIED,+  Announcement_AssigneeMode_ALLSTUDENTS,+  Announcement_AssigneeMode_INDIVIDUALSTUDENTS,+  Announcement_AssigneeMode+  #-}++-- | Status of this announcement. If unspecified, the default state is @DRAFT@.+newtype Announcement_State = Announcement_State {fromAnnouncement_State :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No state specified. This is never returned.+pattern Announcement_State_ANNOUNCEMENTSTATEUNSPECIFIED :: Announcement_State+pattern Announcement_State_ANNOUNCEMENTSTATEUNSPECIFIED = Announcement_State "ANNOUNCEMENT_STATE_UNSPECIFIED"++-- | Status for announcement that has been published. This is the default state.+pattern Announcement_State_Published :: Announcement_State+pattern Announcement_State_Published = Announcement_State "PUBLISHED"++-- | Status for an announcement that is not yet published. Announcement in this state is visible only to course teachers and domain administrators.+pattern Announcement_State_Draft :: Announcement_State+pattern Announcement_State_Draft = Announcement_State "DRAFT"++-- | Status for announcement that was published but is now deleted. Announcement in this state is visible only to course teachers and domain administrators. Announcement in this state is deleted after some time.+pattern Announcement_State_Deleted :: Announcement_State+pattern Announcement_State_Deleted = Announcement_State "DELETED"++{-# COMPLETE+  Announcement_State_ANNOUNCEMENTSTATEUNSPECIFIED,+  Announcement_State_Published,+  Announcement_State_Draft,+  Announcement_State_Deleted,+  Announcement_State+  #-}++-- | State of the course. If unspecified, the default state is @PROVISIONED@.+newtype Course_CourseState = Course_CourseState {fromCourse_CourseState :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No course state. No returned Course message will use this value.+pattern Course_CourseState_COURSESTATEUNSPECIFIED :: Course_CourseState+pattern Course_CourseState_COURSESTATEUNSPECIFIED = Course_CourseState "COURSE_STATE_UNSPECIFIED"++-- | The course is active.+pattern Course_CourseState_Active :: Course_CourseState+pattern Course_CourseState_Active = Course_CourseState "ACTIVE"++-- | The course has been archived. You cannot modify it except to change it to a different state.+pattern Course_CourseState_Archived :: Course_CourseState+pattern Course_CourseState_Archived = Course_CourseState "ARCHIVED"++-- | The course has been created, but not yet activated. It is accessible by the primary teacher and domain administrators, who may modify it or change it to the @ACTIVE@ or @DECLINED@ states. A course may only be changed to @PROVISIONED@ if it is in the @DECLINED@ state.+pattern Course_CourseState_Provisioned :: Course_CourseState+pattern Course_CourseState_Provisioned = Course_CourseState "PROVISIONED"++-- | The course has been created, but declined. It is accessible by the course owner and domain administrators, though it will not be displayed in the web UI. You cannot modify the course except to change it to the @PROVISIONED@ state. A course may only be changed to @DECLINED@ if it is in the @PROVISIONED@ state.+pattern Course_CourseState_Declined :: Course_CourseState+pattern Course_CourseState_Declined = Course_CourseState "DECLINED"++-- | The course has been suspended. You cannot modify the course, and only the user identified by the @owner_id@ can view the course. A course may be placed in this state if it potentially violates the Terms of Service.+pattern Course_CourseState_Suspended :: Course_CourseState+pattern Course_CourseState_Suspended = Course_CourseState "SUSPENDED"++{-# COMPLETE+  Course_CourseState_COURSESTATEUNSPECIFIED,+  Course_CourseState_Active,+  Course_CourseState_Archived,+  Course_CourseState_Provisioned,+  Course_CourseState_Declined,+  Course_CourseState_Suspended,+  Course_CourseState+  #-}++-- | Assignee mode of the coursework. If unspecified, the default value is @ALL_STUDENTS@.+newtype CourseWork_AssigneeMode = CourseWork_AssigneeMode {fromCourseWork_AssigneeMode :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No mode specified. This is never returned.+pattern CourseWork_AssigneeMode_ASSIGNEEMODEUNSPECIFIED :: CourseWork_AssigneeMode+pattern CourseWork_AssigneeMode_ASSIGNEEMODEUNSPECIFIED = CourseWork_AssigneeMode "ASSIGNEE_MODE_UNSPECIFIED"++-- | All students can see the item. This is the default state.+pattern CourseWork_AssigneeMode_ALLSTUDENTS :: CourseWork_AssigneeMode+pattern CourseWork_AssigneeMode_ALLSTUDENTS = CourseWork_AssigneeMode "ALL_STUDENTS"++-- | A subset of the students can see the item.+pattern CourseWork_AssigneeMode_INDIVIDUALSTUDENTS :: CourseWork_AssigneeMode+pattern CourseWork_AssigneeMode_INDIVIDUALSTUDENTS = CourseWork_AssigneeMode "INDIVIDUAL_STUDENTS"++{-# COMPLETE+  CourseWork_AssigneeMode_ASSIGNEEMODEUNSPECIFIED,+  CourseWork_AssigneeMode_ALLSTUDENTS,+  CourseWork_AssigneeMode_INDIVIDUALSTUDENTS,+  CourseWork_AssigneeMode+  #-}++-- | Status of this course work. If unspecified, the default state is @DRAFT@.+newtype CourseWork_State = CourseWork_State {fromCourseWork_State :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No state specified. This is never returned.+pattern CourseWork_State_COURSEWORKSTATEUNSPECIFIED :: CourseWork_State+pattern CourseWork_State_COURSEWORKSTATEUNSPECIFIED = CourseWork_State "COURSE_WORK_STATE_UNSPECIFIED"++-- | Status for work that has been published. This is the default state.+pattern CourseWork_State_Published :: CourseWork_State+pattern CourseWork_State_Published = CourseWork_State "PUBLISHED"++-- | Status for work that is not yet published. Work in this state is visible only to course teachers and domain administrators.+pattern CourseWork_State_Draft :: CourseWork_State+pattern CourseWork_State_Draft = CourseWork_State "DRAFT"++-- | Status for work that was published but is now deleted. Work in this state is visible only to course teachers and domain administrators. Work in this state is deleted after some time.+pattern CourseWork_State_Deleted :: CourseWork_State+pattern CourseWork_State_Deleted = CourseWork_State "DELETED"++{-# COMPLETE+  CourseWork_State_COURSEWORKSTATEUNSPECIFIED,+  CourseWork_State_Published,+  CourseWork_State_Draft,+  CourseWork_State_Deleted,+  CourseWork_State+  #-}++-- | Setting to determine when students are allowed to modify submissions. If unspecified, the default value is @MODIFIABLE_UNTIL_TURNED_IN@.+newtype CourseWork_SubmissionModificationMode = CourseWork_SubmissionModificationMode {fromCourseWork_SubmissionModificationMode :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No modification mode specified. This is never returned.+pattern CourseWork_SubmissionModificationMode_SUBMISSIONMODIFICATIONMODEUNSPECIFIED :: CourseWork_SubmissionModificationMode+pattern CourseWork_SubmissionModificationMode_SUBMISSIONMODIFICATIONMODEUNSPECIFIED = CourseWork_SubmissionModificationMode "SUBMISSION_MODIFICATION_MODE_UNSPECIFIED"++-- | Submissions can be modified before being turned in.+pattern CourseWork_SubmissionModificationMode_MODIFIABLEUNTILTURNEDIN :: CourseWork_SubmissionModificationMode+pattern CourseWork_SubmissionModificationMode_MODIFIABLEUNTILTURNEDIN = CourseWork_SubmissionModificationMode "MODIFIABLE_UNTIL_TURNED_IN"++-- | Submissions can be modified at any time.+pattern CourseWork_SubmissionModificationMode_Modifiable :: CourseWork_SubmissionModificationMode+pattern CourseWork_SubmissionModificationMode_Modifiable = CourseWork_SubmissionModificationMode "MODIFIABLE"++{-# COMPLETE+  CourseWork_SubmissionModificationMode_SUBMISSIONMODIFICATIONMODEUNSPECIFIED,+  CourseWork_SubmissionModificationMode_MODIFIABLEUNTILTURNEDIN,+  CourseWork_SubmissionModificationMode_Modifiable,+  CourseWork_SubmissionModificationMode+  #-}++-- | Type of this course work. The type is set when the course work is created and cannot be changed.+newtype CourseWork_WorkType = CourseWork_WorkType {fromCourseWork_WorkType :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No work type specified. This is never returned.+pattern CourseWork_WorkType_COURSEWORKTYPEUNSPECIFIED :: CourseWork_WorkType+pattern CourseWork_WorkType_COURSEWORKTYPEUNSPECIFIED = CourseWork_WorkType "COURSE_WORK_TYPE_UNSPECIFIED"++-- | An assignment.+pattern CourseWork_WorkType_Assignment :: CourseWork_WorkType+pattern CourseWork_WorkType_Assignment = CourseWork_WorkType "ASSIGNMENT"++-- | A short answer question.+pattern CourseWork_WorkType_SHORTANSWERQUESTION :: CourseWork_WorkType+pattern CourseWork_WorkType_SHORTANSWERQUESTION = CourseWork_WorkType "SHORT_ANSWER_QUESTION"++-- | A multiple-choice question.+pattern CourseWork_WorkType_MULTIPLECHOICEQUESTION :: CourseWork_WorkType+pattern CourseWork_WorkType_MULTIPLECHOICEQUESTION = CourseWork_WorkType "MULTIPLE_CHOICE_QUESTION"++{-# COMPLETE+  CourseWork_WorkType_COURSEWORKTYPEUNSPECIFIED,+  CourseWork_WorkType_Assignment,+  CourseWork_WorkType_SHORTANSWERQUESTION,+  CourseWork_WorkType_MULTIPLECHOICEQUESTION,+  CourseWork_WorkType+  #-}++-- | Assignee mode of the course work material. If unspecified, the default value is @ALL_STUDENTS@.+newtype CourseWorkMaterial_AssigneeMode = CourseWorkMaterial_AssigneeMode {fromCourseWorkMaterial_AssigneeMode :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No mode specified. This is never returned.+pattern CourseWorkMaterial_AssigneeMode_ASSIGNEEMODEUNSPECIFIED :: CourseWorkMaterial_AssigneeMode+pattern CourseWorkMaterial_AssigneeMode_ASSIGNEEMODEUNSPECIFIED = CourseWorkMaterial_AssigneeMode "ASSIGNEE_MODE_UNSPECIFIED"++-- | All students can see the item. This is the default state.+pattern CourseWorkMaterial_AssigneeMode_ALLSTUDENTS :: CourseWorkMaterial_AssigneeMode+pattern CourseWorkMaterial_AssigneeMode_ALLSTUDENTS = CourseWorkMaterial_AssigneeMode "ALL_STUDENTS"++-- | A subset of the students can see the item.+pattern CourseWorkMaterial_AssigneeMode_INDIVIDUALSTUDENTS :: CourseWorkMaterial_AssigneeMode+pattern CourseWorkMaterial_AssigneeMode_INDIVIDUALSTUDENTS = CourseWorkMaterial_AssigneeMode "INDIVIDUAL_STUDENTS"++{-# COMPLETE+  CourseWorkMaterial_AssigneeMode_ASSIGNEEMODEUNSPECIFIED,+  CourseWorkMaterial_AssigneeMode_ALLSTUDENTS,+  CourseWorkMaterial_AssigneeMode_INDIVIDUALSTUDENTS,+  CourseWorkMaterial_AssigneeMode+  #-}++-- | Status of this course work material. If unspecified, the default state is @DRAFT@.+newtype CourseWorkMaterial_State = CourseWorkMaterial_State {fromCourseWorkMaterial_State :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No state specified. This is never returned.+pattern CourseWorkMaterial_State_COURSEWORKMATERIALSTATEUNSPECIFIED :: CourseWorkMaterial_State+pattern CourseWorkMaterial_State_COURSEWORKMATERIALSTATEUNSPECIFIED = CourseWorkMaterial_State "COURSEWORK_MATERIAL_STATE_UNSPECIFIED"++-- | Status for course work material that has been published. This is the default state.+pattern CourseWorkMaterial_State_Published :: CourseWorkMaterial_State+pattern CourseWorkMaterial_State_Published = CourseWorkMaterial_State "PUBLISHED"++-- | Status for a course work material that is not yet published. Course work material in this state is visible only to course teachers and domain administrators.+pattern CourseWorkMaterial_State_Draft :: CourseWorkMaterial_State+pattern CourseWorkMaterial_State_Draft = CourseWorkMaterial_State "DRAFT"++-- | Status for course work material that was published but is now deleted. Course work material in this state is visible only to course teachers and domain administrators. Course work material in this state is deleted after some time.+pattern CourseWorkMaterial_State_Deleted :: CourseWorkMaterial_State+pattern CourseWorkMaterial_State_Deleted = CourseWorkMaterial_State "DELETED"++{-# COMPLETE+  CourseWorkMaterial_State_COURSEWORKMATERIALSTATEUNSPECIFIED,+  CourseWorkMaterial_State_Published,+  CourseWorkMaterial_State_Draft,+  CourseWorkMaterial_State_Deleted,+  CourseWorkMaterial_State+  #-}++-- | The type of feed.+newtype Feed_FeedType = Feed_FeedType {fromFeed_FeedType :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Should never be returned or provided.+pattern Feed_FeedType_FEEDTYPEUNSPECIFIED :: Feed_FeedType+pattern Feed_FeedType_FEEDTYPEUNSPECIFIED = Feed_FeedType "FEED_TYPE_UNSPECIFIED"++-- | All roster changes for a particular domain. Notifications will be generated whenever a user joins or leaves a course. No notifications will be generated when an invitation is created or deleted, but notifications will be generated when a user joins a course by accepting an invitation.+pattern Feed_FeedType_DOMAINROSTERCHANGES :: Feed_FeedType+pattern Feed_FeedType_DOMAINROSTERCHANGES = Feed_FeedType "DOMAIN_ROSTER_CHANGES"++-- | All roster changes for a particular course. Notifications will be generated whenever a user joins or leaves a course. No notifications will be generated when an invitation is created or deleted, but notifications will be generated when a user joins a course by accepting an invitation.+pattern Feed_FeedType_COURSEROSTERCHANGES :: Feed_FeedType+pattern Feed_FeedType_COURSEROSTERCHANGES = Feed_FeedType "COURSE_ROSTER_CHANGES"++-- | All course work activity for a particular course. Notifications will be generated when a CourseWork or StudentSubmission object is created or modified. No notification will be generated when a StudentSubmission object is created in connection with the creation or modification of its parent CourseWork object (but a notification will be generated for that CourseWork object\'s creation or modification).+pattern Feed_FeedType_COURSEWORKCHANGES :: Feed_FeedType+pattern Feed_FeedType_COURSEWORKCHANGES = Feed_FeedType "COURSE_WORK_CHANGES"++{-# COMPLETE+  Feed_FeedType_FEEDTYPEUNSPECIFIED,+  Feed_FeedType_DOMAINROSTERCHANGES,+  Feed_FeedType_COURSEROSTERCHANGES,+  Feed_FeedType_COURSEWORKCHANGES,+  Feed_FeedType+  #-}++-- | Permission value.+newtype GlobalPermission_Permission = GlobalPermission_Permission {fromGlobalPermission_Permission :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No permission is specified. This is not returned and is not a valid value.+pattern GlobalPermission_Permission_PERMISSIONUNSPECIFIED :: GlobalPermission_Permission+pattern GlobalPermission_Permission_PERMISSIONUNSPECIFIED = GlobalPermission_Permission "PERMISSION_UNSPECIFIED"++-- | User is permitted to create a course.+pattern GlobalPermission_Permission_CREATECOURSE :: GlobalPermission_Permission+pattern GlobalPermission_Permission_CREATECOURSE = GlobalPermission_Permission "CREATE_COURSE"++{-# COMPLETE+  GlobalPermission_Permission_PERMISSIONUNSPECIFIED,+  GlobalPermission_Permission_CREATECOURSE,+  GlobalPermission_Permission+  #-}++-- | The type of grade change at this time in the submission grade history.+newtype GradeHistory_GradeChangeType = GradeHistory_GradeChangeType {fromGradeHistory_GradeChangeType :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No grade change type specified. This should never be returned.+pattern GradeHistory_GradeChangeType_UNKNOWNGRADECHANGETYPE :: GradeHistory_GradeChangeType+pattern GradeHistory_GradeChangeType_UNKNOWNGRADECHANGETYPE = GradeHistory_GradeChangeType "UNKNOWN_GRADE_CHANGE_TYPE"++-- | A change in the numerator of the draft grade.+pattern GradeHistory_GradeChangeType_DRAFTGRADEPOINTSEARNEDCHANGE :: GradeHistory_GradeChangeType+pattern GradeHistory_GradeChangeType_DRAFTGRADEPOINTSEARNEDCHANGE = GradeHistory_GradeChangeType "DRAFT_GRADE_POINTS_EARNED_CHANGE"++-- | A change in the numerator of the assigned grade.+pattern GradeHistory_GradeChangeType_ASSIGNEDGRADEPOINTSEARNEDCHANGE :: GradeHistory_GradeChangeType+pattern GradeHistory_GradeChangeType_ASSIGNEDGRADEPOINTSEARNEDCHANGE = GradeHistory_GradeChangeType "ASSIGNED_GRADE_POINTS_EARNED_CHANGE"++-- | A change in the denominator of the grade.+pattern GradeHistory_GradeChangeType_MAXPOINTSCHANGE :: GradeHistory_GradeChangeType+pattern GradeHistory_GradeChangeType_MAXPOINTSCHANGE = GradeHistory_GradeChangeType "MAX_POINTS_CHANGE"++{-# COMPLETE+  GradeHistory_GradeChangeType_UNKNOWNGRADECHANGETYPE,+  GradeHistory_GradeChangeType_DRAFTGRADEPOINTSEARNEDCHANGE,+  GradeHistory_GradeChangeType_ASSIGNEDGRADEPOINTSEARNEDCHANGE,+  GradeHistory_GradeChangeType_MAXPOINTSCHANGE,+  GradeHistory_GradeChangeType+  #-}++-- | Indicates how the overall grade is calculated.+newtype GradebookSettings_CalculationType = GradebookSettings_CalculationType {fromGradebookSettings_CalculationType :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No method specified. This is never returned.+pattern GradebookSettings_CalculationType_CALCULATIONTYPEUNSPECIFIED :: GradebookSettings_CalculationType+pattern GradebookSettings_CalculationType_CALCULATIONTYPEUNSPECIFIED = GradebookSettings_CalculationType "CALCULATION_TYPE_UNSPECIFIED"++-- | Overall grade is the sum of grades divided by the sum of total points regardless of category.+pattern GradebookSettings_CalculationType_TOTALPOINTS :: GradebookSettings_CalculationType+pattern GradebookSettings_CalculationType_TOTALPOINTS = GradebookSettings_CalculationType "TOTAL_POINTS"++-- | Overall grade is the weighted average by category.+pattern GradebookSettings_CalculationType_WEIGHTEDCATEGORIES :: GradebookSettings_CalculationType+pattern GradebookSettings_CalculationType_WEIGHTEDCATEGORIES = GradebookSettings_CalculationType "WEIGHTED_CATEGORIES"++{-# COMPLETE+  GradebookSettings_CalculationType_CALCULATIONTYPEUNSPECIFIED,+  GradebookSettings_CalculationType_TOTALPOINTS,+  GradebookSettings_CalculationType_WEIGHTEDCATEGORIES,+  GradebookSettings_CalculationType+  #-}++-- | Indicates who can see the overall grade..+newtype GradebookSettings_DisplaySetting = GradebookSettings_DisplaySetting {fromGradebookSettings_DisplaySetting :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No setting specified. This is never returned.+pattern GradebookSettings_DisplaySetting_DISPLAYSETTINGUNSPECIFIED :: GradebookSettings_DisplaySetting+pattern GradebookSettings_DisplaySetting_DISPLAYSETTINGUNSPECIFIED = GradebookSettings_DisplaySetting "DISPLAY_SETTING_UNSPECIFIED"++-- | Shows overall grade in the gradebook and student profile to both teachers and students.+pattern GradebookSettings_DisplaySetting_SHOWOVERALLGRADE :: GradebookSettings_DisplaySetting+pattern GradebookSettings_DisplaySetting_SHOWOVERALLGRADE = GradebookSettings_DisplaySetting "SHOW_OVERALL_GRADE"++-- | Does not show overall grade in the gradebook or student profile.+pattern GradebookSettings_DisplaySetting_HIDEOVERALLGRADE :: GradebookSettings_DisplaySetting+pattern GradebookSettings_DisplaySetting_HIDEOVERALLGRADE = GradebookSettings_DisplaySetting "HIDE_OVERALL_GRADE"++-- | Shows the overall grade to teachers in the gradebook and student profile. Hides from students in their student profile.+pattern GradebookSettings_DisplaySetting_SHOWTEACHERSONLY :: GradebookSettings_DisplaySetting+pattern GradebookSettings_DisplaySetting_SHOWTEACHERSONLY = GradebookSettings_DisplaySetting "SHOW_TEACHERS_ONLY"++{-# COMPLETE+  GradebookSettings_DisplaySetting_DISPLAYSETTINGUNSPECIFIED,+  GradebookSettings_DisplaySetting_SHOWOVERALLGRADE,+  GradebookSettings_DisplaySetting_HIDEOVERALLGRADE,+  GradebookSettings_DisplaySetting_SHOWTEACHERSONLY,+  GradebookSettings_DisplaySetting+  #-}++-- | The state that this invitation is in.+newtype GuardianInvitation_State = GuardianInvitation_State {fromGuardianInvitation_State :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Should never be returned.+pattern GuardianInvitation_State_GUARDIANINVITATIONSTATEUNSPECIFIED :: GuardianInvitation_State+pattern GuardianInvitation_State_GUARDIANINVITATIONSTATEUNSPECIFIED = GuardianInvitation_State "GUARDIAN_INVITATION_STATE_UNSPECIFIED"++-- | The invitation is active and awaiting a response.+pattern GuardianInvitation_State_Pending :: GuardianInvitation_State+pattern GuardianInvitation_State_Pending = GuardianInvitation_State "PENDING"++-- | The invitation is no longer active. It may have been accepted, declined, withdrawn or it may have expired.+pattern GuardianInvitation_State_Complete :: GuardianInvitation_State+pattern GuardianInvitation_State_Complete = GuardianInvitation_State "COMPLETE"++{-# COMPLETE+  GuardianInvitation_State_GUARDIANINVITATIONSTATEUNSPECIFIED,+  GuardianInvitation_State_Pending,+  GuardianInvitation_State_Complete,+  GuardianInvitation_State+  #-}++-- | Role to invite the user to have. Must not be @COURSE_ROLE_UNSPECIFIED@.+newtype Invitation_Role = Invitation_Role {fromInvitation_Role :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No course role.+pattern Invitation_Role_COURSEROLEUNSPECIFIED :: Invitation_Role+pattern Invitation_Role_COURSEROLEUNSPECIFIED = Invitation_Role "COURSE_ROLE_UNSPECIFIED"++-- | Student in the course.+pattern Invitation_Role_Student :: Invitation_Role+pattern Invitation_Role_Student = Invitation_Role "STUDENT"++-- | Teacher of the course.+pattern Invitation_Role_Teacher :: Invitation_Role+pattern Invitation_Role_Teacher = Invitation_Role "TEACHER"++-- | Owner of the course.+pattern Invitation_Role_Owner :: Invitation_Role+pattern Invitation_Role_Owner = Invitation_Role "OWNER"++{-# COMPLETE+  Invitation_Role_COURSEROLEUNSPECIFIED,+  Invitation_Role_Student,+  Invitation_Role_Teacher,+  Invitation_Role_Owner,+  Invitation_Role+  #-}++-- | Mode of the announcement describing whether it is accessible by all students or specified individual students.+newtype ModifyAnnouncementAssigneesRequest_AssigneeMode = ModifyAnnouncementAssigneesRequest_AssigneeMode {fromModifyAnnouncementAssigneesRequest_AssigneeMode :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No mode specified. This is never returned.+pattern ModifyAnnouncementAssigneesRequest_AssigneeMode_ASSIGNEEMODEUNSPECIFIED :: ModifyAnnouncementAssigneesRequest_AssigneeMode+pattern ModifyAnnouncementAssigneesRequest_AssigneeMode_ASSIGNEEMODEUNSPECIFIED = ModifyAnnouncementAssigneesRequest_AssigneeMode "ASSIGNEE_MODE_UNSPECIFIED"++-- | All students can see the item. This is the default state.+pattern ModifyAnnouncementAssigneesRequest_AssigneeMode_ALLSTUDENTS :: ModifyAnnouncementAssigneesRequest_AssigneeMode+pattern ModifyAnnouncementAssigneesRequest_AssigneeMode_ALLSTUDENTS = ModifyAnnouncementAssigneesRequest_AssigneeMode "ALL_STUDENTS"++-- | A subset of the students can see the item.+pattern ModifyAnnouncementAssigneesRequest_AssigneeMode_INDIVIDUALSTUDENTS :: ModifyAnnouncementAssigneesRequest_AssigneeMode+pattern ModifyAnnouncementAssigneesRequest_AssigneeMode_INDIVIDUALSTUDENTS = ModifyAnnouncementAssigneesRequest_AssigneeMode "INDIVIDUAL_STUDENTS"++{-# COMPLETE+  ModifyAnnouncementAssigneesRequest_AssigneeMode_ASSIGNEEMODEUNSPECIFIED,+  ModifyAnnouncementAssigneesRequest_AssigneeMode_ALLSTUDENTS,+  ModifyAnnouncementAssigneesRequest_AssigneeMode_INDIVIDUALSTUDENTS,+  ModifyAnnouncementAssigneesRequest_AssigneeMode+  #-}++-- | Mode of the coursework describing whether it will be assigned to all students or specified individual students.+newtype ModifyCourseWorkAssigneesRequest_AssigneeMode = ModifyCourseWorkAssigneesRequest_AssigneeMode {fromModifyCourseWorkAssigneesRequest_AssigneeMode :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No mode specified. This is never returned.+pattern ModifyCourseWorkAssigneesRequest_AssigneeMode_ASSIGNEEMODEUNSPECIFIED :: ModifyCourseWorkAssigneesRequest_AssigneeMode+pattern ModifyCourseWorkAssigneesRequest_AssigneeMode_ASSIGNEEMODEUNSPECIFIED = ModifyCourseWorkAssigneesRequest_AssigneeMode "ASSIGNEE_MODE_UNSPECIFIED"++-- | All students can see the item. This is the default state.+pattern ModifyCourseWorkAssigneesRequest_AssigneeMode_ALLSTUDENTS :: ModifyCourseWorkAssigneesRequest_AssigneeMode+pattern ModifyCourseWorkAssigneesRequest_AssigneeMode_ALLSTUDENTS = ModifyCourseWorkAssigneesRequest_AssigneeMode "ALL_STUDENTS"++-- | A subset of the students can see the item.+pattern ModifyCourseWorkAssigneesRequest_AssigneeMode_INDIVIDUALSTUDENTS :: ModifyCourseWorkAssigneesRequest_AssigneeMode+pattern ModifyCourseWorkAssigneesRequest_AssigneeMode_INDIVIDUALSTUDENTS = ModifyCourseWorkAssigneesRequest_AssigneeMode "INDIVIDUAL_STUDENTS"++{-# COMPLETE+  ModifyCourseWorkAssigneesRequest_AssigneeMode_ASSIGNEEMODEUNSPECIFIED,+  ModifyCourseWorkAssigneesRequest_AssigneeMode_ALLSTUDENTS,+  ModifyCourseWorkAssigneesRequest_AssigneeMode_INDIVIDUALSTUDENTS,+  ModifyCourseWorkAssigneesRequest_AssigneeMode+  #-}++-- | Mechanism by which students access the Drive item.+newtype SharedDriveFile_ShareMode = SharedDriveFile_ShareMode {fromSharedDriveFile_ShareMode :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No sharing mode specified. This should never be returned.+pattern SharedDriveFile_ShareMode_UNKNOWNSHAREMODE :: SharedDriveFile_ShareMode+pattern SharedDriveFile_ShareMode_UNKNOWNSHAREMODE = SharedDriveFile_ShareMode "UNKNOWN_SHARE_MODE"++-- | Students can view the shared file.+pattern SharedDriveFile_ShareMode_View :: SharedDriveFile_ShareMode+pattern SharedDriveFile_ShareMode_View = SharedDriveFile_ShareMode "VIEW"++-- | Students can edit the shared file.+pattern SharedDriveFile_ShareMode_Edit :: SharedDriveFile_ShareMode+pattern SharedDriveFile_ShareMode_Edit = SharedDriveFile_ShareMode "EDIT"++-- | Students have a personal copy of the shared file.+pattern SharedDriveFile_ShareMode_STUDENTCOPY :: SharedDriveFile_ShareMode+pattern SharedDriveFile_ShareMode_STUDENTCOPY = SharedDriveFile_ShareMode "STUDENT_COPY"++{-# COMPLETE+  SharedDriveFile_ShareMode_UNKNOWNSHAREMODE,+  SharedDriveFile_ShareMode_View,+  SharedDriveFile_ShareMode_Edit,+  SharedDriveFile_ShareMode_STUDENTCOPY,+  SharedDriveFile_ShareMode+  #-}++-- | The workflow pipeline stage.+newtype StateHistory_State = StateHistory_State {fromStateHistory_State :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No state specified. This should never be returned.+pattern StateHistory_State_STATEUNSPECIFIED :: StateHistory_State+pattern StateHistory_State_STATEUNSPECIFIED = StateHistory_State "STATE_UNSPECIFIED"++-- | The Submission has been created.+pattern StateHistory_State_Created :: StateHistory_State+pattern StateHistory_State_Created = StateHistory_State "CREATED"++-- | The student has turned in an assigned document, which may or may not be a template.+pattern StateHistory_State_TURNEDIN :: StateHistory_State+pattern StateHistory_State_TURNEDIN = StateHistory_State "TURNED_IN"++-- | The teacher has returned the assigned document to the student.+pattern StateHistory_State_Returned :: StateHistory_State+pattern StateHistory_State_Returned = StateHistory_State "RETURNED"++-- | The student turned in the assigned document, and then chose to \"unsubmit\" the assignment, giving the student control again as the owner.+pattern StateHistory_State_RECLAIMEDBYSTUDENT :: StateHistory_State+pattern StateHistory_State_RECLAIMEDBYSTUDENT = StateHistory_State "RECLAIMED_BY_STUDENT"++-- | The student edited their submission after turning it in. Currently, only used by Questions, when the student edits their answer.+pattern StateHistory_State_STUDENTEDITEDAFTERTURNIN :: StateHistory_State+pattern StateHistory_State_STUDENTEDITEDAFTERTURNIN = StateHistory_State "STUDENT_EDITED_AFTER_TURN_IN"++{-# COMPLETE+  StateHistory_State_STATEUNSPECIFIED,+  StateHistory_State_Created,+  StateHistory_State_TURNEDIN,+  StateHistory_State_Returned,+  StateHistory_State_RECLAIMEDBYSTUDENT,+  StateHistory_State_STUDENTEDITEDAFTERTURNIN,+  StateHistory_State+  #-}++-- | Type of course work this submission is for. Read-only.+newtype StudentSubmission_CourseWorkType = StudentSubmission_CourseWorkType {fromStudentSubmission_CourseWorkType :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No work type specified. This is never returned.+pattern StudentSubmission_CourseWorkType_COURSEWORKTYPEUNSPECIFIED :: StudentSubmission_CourseWorkType+pattern StudentSubmission_CourseWorkType_COURSEWORKTYPEUNSPECIFIED = StudentSubmission_CourseWorkType "COURSE_WORK_TYPE_UNSPECIFIED"++-- | An assignment.+pattern StudentSubmission_CourseWorkType_Assignment :: StudentSubmission_CourseWorkType+pattern StudentSubmission_CourseWorkType_Assignment = StudentSubmission_CourseWorkType "ASSIGNMENT"++-- | A short answer question.+pattern StudentSubmission_CourseWorkType_SHORTANSWERQUESTION :: StudentSubmission_CourseWorkType+pattern StudentSubmission_CourseWorkType_SHORTANSWERQUESTION = StudentSubmission_CourseWorkType "SHORT_ANSWER_QUESTION"++-- | A multiple-choice question.+pattern StudentSubmission_CourseWorkType_MULTIPLECHOICEQUESTION :: StudentSubmission_CourseWorkType+pattern StudentSubmission_CourseWorkType_MULTIPLECHOICEQUESTION = StudentSubmission_CourseWorkType "MULTIPLE_CHOICE_QUESTION"++{-# COMPLETE+  StudentSubmission_CourseWorkType_COURSEWORKTYPEUNSPECIFIED,+  StudentSubmission_CourseWorkType_Assignment,+  StudentSubmission_CourseWorkType_SHORTANSWERQUESTION,+  StudentSubmission_CourseWorkType_MULTIPLECHOICEQUESTION,+  StudentSubmission_CourseWorkType+  #-}++-- | State of this submission. Read-only.+newtype StudentSubmission_State = StudentSubmission_State {fromStudentSubmission_State :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No state specified. This should never be returned.+pattern StudentSubmission_State_SUBMISSIONSTATEUNSPECIFIED :: StudentSubmission_State+pattern StudentSubmission_State_SUBMISSIONSTATEUNSPECIFIED = StudentSubmission_State "SUBMISSION_STATE_UNSPECIFIED"++-- | The student has never accessed this submission. Attachments are not returned and timestamps is not set.+pattern StudentSubmission_State_New :: StudentSubmission_State+pattern StudentSubmission_State_New = StudentSubmission_State "NEW"++-- | Has been created.+pattern StudentSubmission_State_Created :: StudentSubmission_State+pattern StudentSubmission_State_Created = StudentSubmission_State "CREATED"++-- | Has been turned in to the teacher.+pattern StudentSubmission_State_TURNEDIN :: StudentSubmission_State+pattern StudentSubmission_State_TURNEDIN = StudentSubmission_State "TURNED_IN"++-- | Has been returned to the student.+pattern StudentSubmission_State_Returned :: StudentSubmission_State+pattern StudentSubmission_State_Returned = StudentSubmission_State "RETURNED"++-- | Student chose to \"unsubmit\" the assignment.+pattern StudentSubmission_State_RECLAIMEDBYSTUDENT :: StudentSubmission_State+pattern StudentSubmission_State_RECLAIMEDBYSTUDENT = StudentSubmission_State "RECLAIMED_BY_STUDENT"++{-# COMPLETE+  StudentSubmission_State_SUBMISSIONSTATEUNSPECIFIED,+  StudentSubmission_State_New,+  StudentSubmission_State_Created,+  StudentSubmission_State_TURNEDIN,+  StudentSubmission_State_Returned,+  StudentSubmission_State_RECLAIMEDBYSTUDENT,+  StudentSubmission_State+  #-}++-- | Restriction on the @state@ of announcements returned. If this argument is left unspecified, the default value is @PUBLISHED@.+newtype CoursesAnnouncementsListAnnouncementStates = CoursesAnnouncementsListAnnouncementStates {fromCoursesAnnouncementsListAnnouncementStates :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No state specified. This is never returned.+pattern CoursesAnnouncementsListAnnouncementStates_ANNOUNCEMENTSTATEUNSPECIFIED :: CoursesAnnouncementsListAnnouncementStates+pattern CoursesAnnouncementsListAnnouncementStates_ANNOUNCEMENTSTATEUNSPECIFIED = CoursesAnnouncementsListAnnouncementStates "ANNOUNCEMENT_STATE_UNSPECIFIED"++-- | Status for announcement that has been published. This is the default state.+pattern CoursesAnnouncementsListAnnouncementStates_Published :: CoursesAnnouncementsListAnnouncementStates+pattern CoursesAnnouncementsListAnnouncementStates_Published = CoursesAnnouncementsListAnnouncementStates "PUBLISHED"++-- | Status for an announcement that is not yet published. Announcement in this state is visible only to course teachers and domain administrators.+pattern CoursesAnnouncementsListAnnouncementStates_Draft :: CoursesAnnouncementsListAnnouncementStates+pattern CoursesAnnouncementsListAnnouncementStates_Draft = CoursesAnnouncementsListAnnouncementStates "DRAFT"++-- | Status for announcement that was published but is now deleted. Announcement in this state is visible only to course teachers and domain administrators. Announcement in this state is deleted after some time.+pattern CoursesAnnouncementsListAnnouncementStates_Deleted :: CoursesAnnouncementsListAnnouncementStates+pattern CoursesAnnouncementsListAnnouncementStates_Deleted = CoursesAnnouncementsListAnnouncementStates "DELETED"++{-# COMPLETE+  CoursesAnnouncementsListAnnouncementStates_ANNOUNCEMENTSTATEUNSPECIFIED,+  CoursesAnnouncementsListAnnouncementStates_Published,+  CoursesAnnouncementsListAnnouncementStates_Draft,+  CoursesAnnouncementsListAnnouncementStates_Deleted,+  CoursesAnnouncementsListAnnouncementStates+  #-}++-- | Restriction on the work status to return. Only courseWork that matches is returned. If unspecified, items with a work status of @PUBLISHED@ is returned.+newtype CoursesCourseWorkListCourseWorkStates = CoursesCourseWorkListCourseWorkStates {fromCoursesCourseWorkListCourseWorkStates :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No state specified. This is never returned.+pattern CoursesCourseWorkListCourseWorkStates_COURSEWORKSTATEUNSPECIFIED :: CoursesCourseWorkListCourseWorkStates+pattern CoursesCourseWorkListCourseWorkStates_COURSEWORKSTATEUNSPECIFIED = CoursesCourseWorkListCourseWorkStates "COURSE_WORK_STATE_UNSPECIFIED"++-- | Status for work that has been published. This is the default state.+pattern CoursesCourseWorkListCourseWorkStates_Published :: CoursesCourseWorkListCourseWorkStates+pattern CoursesCourseWorkListCourseWorkStates_Published = CoursesCourseWorkListCourseWorkStates "PUBLISHED"++-- | Status for work that is not yet published. Work in this state is visible only to course teachers and domain administrators.+pattern CoursesCourseWorkListCourseWorkStates_Draft :: CoursesCourseWorkListCourseWorkStates+pattern CoursesCourseWorkListCourseWorkStates_Draft = CoursesCourseWorkListCourseWorkStates "DRAFT"++-- | Status for work that was published but is now deleted. Work in this state is visible only to course teachers and domain administrators. Work in this state is deleted after some time.+pattern CoursesCourseWorkListCourseWorkStates_Deleted :: CoursesCourseWorkListCourseWorkStates+pattern CoursesCourseWorkListCourseWorkStates_Deleted = CoursesCourseWorkListCourseWorkStates "DELETED"++{-# COMPLETE+  CoursesCourseWorkListCourseWorkStates_COURSEWORKSTATEUNSPECIFIED,+  CoursesCourseWorkListCourseWorkStates_Published,+  CoursesCourseWorkListCourseWorkStates_Draft,+  CoursesCourseWorkListCourseWorkStates_Deleted,+  CoursesCourseWorkListCourseWorkStates+  #-}++-- | Requested lateness value. If specified, returned student submissions are restricted by the requested value. If unspecified, submissions are returned regardless of @late@ value.+newtype CoursesCourseWorkStudentSubmissionsListLate = CoursesCourseWorkStudentSubmissionsListLate {fromCoursesCourseWorkStudentSubmissionsListLate :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No restriction on submission late values specified.+pattern CoursesCourseWorkStudentSubmissionsListLate_LATEVALUESUNSPECIFIED :: CoursesCourseWorkStudentSubmissionsListLate+pattern CoursesCourseWorkStudentSubmissionsListLate_LATEVALUESUNSPECIFIED = CoursesCourseWorkStudentSubmissionsListLate "LATE_VALUES_UNSPECIFIED"++-- | Return StudentSubmissions where late is true.+pattern CoursesCourseWorkStudentSubmissionsListLate_LATEONLY :: CoursesCourseWorkStudentSubmissionsListLate+pattern CoursesCourseWorkStudentSubmissionsListLate_LATEONLY = CoursesCourseWorkStudentSubmissionsListLate "LATE_ONLY"++-- | Return StudentSubmissions where late is false.+pattern CoursesCourseWorkStudentSubmissionsListLate_NOTLATEONLY :: CoursesCourseWorkStudentSubmissionsListLate+pattern CoursesCourseWorkStudentSubmissionsListLate_NOTLATEONLY = CoursesCourseWorkStudentSubmissionsListLate "NOT_LATE_ONLY"++{-# COMPLETE+  CoursesCourseWorkStudentSubmissionsListLate_LATEVALUESUNSPECIFIED,+  CoursesCourseWorkStudentSubmissionsListLate_LATEONLY,+  CoursesCourseWorkStudentSubmissionsListLate_NOTLATEONLY,+  CoursesCourseWorkStudentSubmissionsListLate+  #-}++-- | Requested submission states. If specified, returned student submissions match one of the specified submission states.+newtype CoursesCourseWorkStudentSubmissionsListStates = CoursesCourseWorkStudentSubmissionsListStates {fromCoursesCourseWorkStudentSubmissionsListStates :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No state specified. This should never be returned.+pattern CoursesCourseWorkStudentSubmissionsListStates_SUBMISSIONSTATEUNSPECIFIED :: CoursesCourseWorkStudentSubmissionsListStates+pattern CoursesCourseWorkStudentSubmissionsListStates_SUBMISSIONSTATEUNSPECIFIED = CoursesCourseWorkStudentSubmissionsListStates "SUBMISSION_STATE_UNSPECIFIED"++-- | The student has never accessed this submission. Attachments are not returned and timestamps is not set.+pattern CoursesCourseWorkStudentSubmissionsListStates_New :: CoursesCourseWorkStudentSubmissionsListStates+pattern CoursesCourseWorkStudentSubmissionsListStates_New = CoursesCourseWorkStudentSubmissionsListStates "NEW"++-- | Has been created.+pattern CoursesCourseWorkStudentSubmissionsListStates_Created :: CoursesCourseWorkStudentSubmissionsListStates+pattern CoursesCourseWorkStudentSubmissionsListStates_Created = CoursesCourseWorkStudentSubmissionsListStates "CREATED"++-- | Has been turned in to the teacher.+pattern CoursesCourseWorkStudentSubmissionsListStates_TURNEDIN :: CoursesCourseWorkStudentSubmissionsListStates+pattern CoursesCourseWorkStudentSubmissionsListStates_TURNEDIN = CoursesCourseWorkStudentSubmissionsListStates "TURNED_IN"++-- | Has been returned to the student.+pattern CoursesCourseWorkStudentSubmissionsListStates_Returned :: CoursesCourseWorkStudentSubmissionsListStates+pattern CoursesCourseWorkStudentSubmissionsListStates_Returned = CoursesCourseWorkStudentSubmissionsListStates "RETURNED"++-- | Student chose to \"unsubmit\" the assignment.+pattern CoursesCourseWorkStudentSubmissionsListStates_RECLAIMEDBYSTUDENT :: CoursesCourseWorkStudentSubmissionsListStates+pattern CoursesCourseWorkStudentSubmissionsListStates_RECLAIMEDBYSTUDENT = CoursesCourseWorkStudentSubmissionsListStates "RECLAIMED_BY_STUDENT"++{-# COMPLETE+  CoursesCourseWorkStudentSubmissionsListStates_SUBMISSIONSTATEUNSPECIFIED,+  CoursesCourseWorkStudentSubmissionsListStates_New,+  CoursesCourseWorkStudentSubmissionsListStates_Created,+  CoursesCourseWorkStudentSubmissionsListStates_TURNEDIN,+  CoursesCourseWorkStudentSubmissionsListStates_Returned,+  CoursesCourseWorkStudentSubmissionsListStates_RECLAIMEDBYSTUDENT,+  CoursesCourseWorkStudentSubmissionsListStates+  #-}++-- | Restriction on the work status to return. Only course work material that matches is returned. If unspecified, items with a work status of @PUBLISHED@ is returned.+newtype CoursesCourseWorkMaterialsListCourseWorkMaterialStates = CoursesCourseWorkMaterialsListCourseWorkMaterialStates {fromCoursesCourseWorkMaterialsListCourseWorkMaterialStates :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No state specified. This is never returned.+pattern CoursesCourseWorkMaterialsListCourseWorkMaterialStates_COURSEWORKMATERIALSTATEUNSPECIFIED :: CoursesCourseWorkMaterialsListCourseWorkMaterialStates+pattern CoursesCourseWorkMaterialsListCourseWorkMaterialStates_COURSEWORKMATERIALSTATEUNSPECIFIED = CoursesCourseWorkMaterialsListCourseWorkMaterialStates "COURSEWORK_MATERIAL_STATE_UNSPECIFIED"++-- | Status for course work material that has been published. This is the default state.+pattern CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Published :: CoursesCourseWorkMaterialsListCourseWorkMaterialStates+pattern CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Published = CoursesCourseWorkMaterialsListCourseWorkMaterialStates "PUBLISHED"++-- | Status for a course work material that is not yet published. Course work material in this state is visible only to course teachers and domain administrators.+pattern CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Draft :: CoursesCourseWorkMaterialsListCourseWorkMaterialStates+pattern CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Draft = CoursesCourseWorkMaterialsListCourseWorkMaterialStates "DRAFT"++-- | Status for course work material that was published but is now deleted. Course work material in this state is visible only to course teachers and domain administrators. Course work material in this state is deleted after some time.+pattern CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Deleted :: CoursesCourseWorkMaterialsListCourseWorkMaterialStates+pattern CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Deleted = CoursesCourseWorkMaterialsListCourseWorkMaterialStates "DELETED"++{-# COMPLETE+  CoursesCourseWorkMaterialsListCourseWorkMaterialStates_COURSEWORKMATERIALSTATEUNSPECIFIED,+  CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Published,+  CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Draft,+  CoursesCourseWorkMaterialsListCourseWorkMaterialStates_Deleted,+  CoursesCourseWorkMaterialsListCourseWorkMaterialStates+  #-}++-- | Restricts returned courses to those in one of the specified states The default value is ACTIVE, ARCHIVED, PROVISIONED, DECLINED.+newtype CoursesListCourseStates = CoursesListCourseStates {fromCoursesListCourseStates :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | No course state. No returned Course message will use this value.+pattern CoursesListCourseStates_COURSESTATEUNSPECIFIED :: CoursesListCourseStates+pattern CoursesListCourseStates_COURSESTATEUNSPECIFIED = CoursesListCourseStates "COURSE_STATE_UNSPECIFIED"++-- | The course is active.+pattern CoursesListCourseStates_Active :: CoursesListCourseStates+pattern CoursesListCourseStates_Active = CoursesListCourseStates "ACTIVE"++-- | The course has been archived. You cannot modify it except to change it to a different state.+pattern CoursesListCourseStates_Archived :: CoursesListCourseStates+pattern CoursesListCourseStates_Archived = CoursesListCourseStates "ARCHIVED"++-- | The course has been created, but not yet activated. It is accessible by the primary teacher and domain administrators, who may modify it or change it to the @ACTIVE@ or @DECLINED@ states. A course may only be changed to @PROVISIONED@ if it is in the @DECLINED@ state.+pattern CoursesListCourseStates_Provisioned :: CoursesListCourseStates+pattern CoursesListCourseStates_Provisioned = CoursesListCourseStates "PROVISIONED"++-- | The course has been created, but declined. It is accessible by the course owner and domain administrators, though it will not be displayed in the web UI. You cannot modify the course except to change it to the @PROVISIONED@ state. A course may only be changed to @DECLINED@ if it is in the @PROVISIONED@ state.+pattern CoursesListCourseStates_Declined :: CoursesListCourseStates+pattern CoursesListCourseStates_Declined = CoursesListCourseStates "DECLINED"++-- | The course has been suspended. You cannot modify the course, and only the user identified by the @owner_id@ can view the course. A course may be placed in this state if it potentially violates the Terms of Service.+pattern CoursesListCourseStates_Suspended :: CoursesListCourseStates+pattern CoursesListCourseStates_Suspended = CoursesListCourseStates "SUSPENDED"++{-# COMPLETE+  CoursesListCourseStates_COURSESTATEUNSPECIFIED,+  CoursesListCourseStates_Active,+  CoursesListCourseStates_Archived,+  CoursesListCourseStates_Provisioned,+  CoursesListCourseStates_Declined,+  CoursesListCourseStates_Suspended,+  CoursesListCourseStates+  #-}++-- | If specified, only results with the specified @state@ values are returned. Otherwise, results with a @state@ of @PENDING@ are returned.+newtype UserProfilesGuardianInvitationsListStates = UserProfilesGuardianInvitationsListStates {fromUserProfilesGuardianInvitationsListStates :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Should never be returned.+pattern UserProfilesGuardianInvitationsListStates_GUARDIANINVITATIONSTATEUNSPECIFIED :: UserProfilesGuardianInvitationsListStates+pattern UserProfilesGuardianInvitationsListStates_GUARDIANINVITATIONSTATEUNSPECIFIED = UserProfilesGuardianInvitationsListStates "GUARDIAN_INVITATION_STATE_UNSPECIFIED"++-- | The invitation is active and awaiting a response.+pattern UserProfilesGuardianInvitationsListStates_Pending :: UserProfilesGuardianInvitationsListStates+pattern UserProfilesGuardianInvitationsListStates_Pending = UserProfilesGuardianInvitationsListStates "PENDING"++-- | The invitation is no longer active. It may have been accepted, declined, withdrawn or it may have expired.+pattern UserProfilesGuardianInvitationsListStates_Complete :: UserProfilesGuardianInvitationsListStates+pattern UserProfilesGuardianInvitationsListStates_Complete = UserProfilesGuardianInvitationsListStates "COMPLETE"++{-# COMPLETE+  UserProfilesGuardianInvitationsListStates_GUARDIANINVITATIONSTATEUNSPECIFIED,+  UserProfilesGuardianInvitationsListStates_Pending,+  UserProfilesGuardianInvitationsListStates_Complete,+  UserProfilesGuardianInvitationsListStates+  #-}
+ gen/Gogol/Classroom/Invitations/Accept.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Invitations.Accept+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Accepts an invitation, removing it and adding the invited user to the teachers or students (as appropriate) of the specified course. Only the invited user may accept an invitation. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to accept the requested invitation or for access errors. * @FAILED_PRECONDITION@ for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * CourseTeacherLimitReached * UserGroupsMembershipLimitReached * @NOT_FOUND@ if no invitation exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.accept@.+module Gogol.Classroom.Invitations.Accept+  ( -- * Resource+    ClassroomInvitationsAcceptResource,++    -- ** Constructing a Request+    ClassroomInvitationsAccept (..),+    newClassroomInvitationsAccept,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.invitations.accept@ method which the+-- 'ClassroomInvitationsAccept' request conforms to.+type ClassroomInvitationsAcceptResource =+  "v1"+    Core.:> "invitations"+    Core.:> Core.CaptureMode "id" "accept" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Post '[Core.JSON] Empty++-- | Accepts an invitation, removing it and adding the invited user to the teachers or students (as appropriate) of the specified course. Only the invited user may accept an invitation. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to accept the requested invitation or for access errors. * @FAILED_PRECONDITION@ for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * CourseTeacherLimitReached * UserGroupsMembershipLimitReached * @NOT_FOUND@ if no invitation exists with the requested ID.+--+-- /See:/ 'newClassroomInvitationsAccept' smart constructor.+data ClassroomInvitationsAccept = ClassroomInvitationsAccept+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the invitation to accept.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomInvitationsAccept' with the minimum fields required to make a request.+newClassroomInvitationsAccept ::+  -- |  Identifier of the invitation to accept. See 'id'.+  Core.Text ->+  ClassroomInvitationsAccept+newClassroomInvitationsAccept id =+  ClassroomInvitationsAccept+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomInvitationsAccept where+  type Rs ClassroomInvitationsAccept = Empty+  type Scopes ClassroomInvitationsAccept = '[Classroom'Rosters]+  requestClient ClassroomInvitationsAccept {..} =+    go+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomInvitationsAcceptResource)+          Core.mempty
+ gen/Gogol/Classroom/Invitations/Create.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Invitations.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an invitation. Only one invitation for a user and course may exist at a time. Delete and re-create an invitation to make changes. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to create invitations for this course or for access errors. * @NOT_FOUND@ if the course or the user does not exist. * @FAILED_PRECONDITION@: * if the requested user\'s account is disabled. * if the user already has this role or a role with greater permissions. * for the following request errors: * IneligibleOwner * @ALREADY_EXISTS@ if an invitation for the specified user and course already exists.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.create@.+module Gogol.Classroom.Invitations.Create+  ( -- * Resource+    ClassroomInvitationsCreateResource,++    -- ** Constructing a Request+    ClassroomInvitationsCreate (..),+    newClassroomInvitationsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.invitations.create@ method which the+-- 'ClassroomInvitationsCreate' request conforms to.+type ClassroomInvitationsCreateResource =+  "v1"+    Core.:> "invitations"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Invitation+    Core.:> Core.Post '[Core.JSON] Invitation++-- | Creates an invitation. Only one invitation for a user and course may exist at a time. Delete and re-create an invitation to make changes. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to create invitations for this course or for access errors. * @NOT_FOUND@ if the course or the user does not exist. * @FAILED_PRECONDITION@: * if the requested user\'s account is disabled. * if the user already has this role or a role with greater permissions. * for the following request errors: * IneligibleOwner * @ALREADY_EXISTS@ if an invitation for the specified user and course already exists.+--+-- /See:/ 'newClassroomInvitationsCreate' smart constructor.+data ClassroomInvitationsCreate = ClassroomInvitationsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: Invitation,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomInvitationsCreate' with the minimum fields required to make a request.+newClassroomInvitationsCreate ::+  -- |  Multipart request metadata. See 'payload'.+  Invitation ->+  ClassroomInvitationsCreate+newClassroomInvitationsCreate payload =+  ClassroomInvitationsCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomInvitationsCreate where+  type Rs ClassroomInvitationsCreate = Invitation+  type Scopes ClassroomInvitationsCreate = '[Classroom'Rosters]+  requestClient ClassroomInvitationsCreate {..} =+    go+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomInvitationsCreateResource)+          Core.mempty
+ gen/Gogol/Classroom/Invitations/Delete.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Invitations.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an invitation. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to delete the requested invitation or for access errors. * @NOT_FOUND@ if no invitation exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.delete@.+module Gogol.Classroom.Invitations.Delete+  ( -- * Resource+    ClassroomInvitationsDeleteResource,++    -- ** Constructing a Request+    ClassroomInvitationsDelete (..),+    newClassroomInvitationsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.invitations.delete@ method which the+-- 'ClassroomInvitationsDelete' request conforms to.+type ClassroomInvitationsDeleteResource =+  "v1"+    Core.:> "invitations"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes an invitation. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to delete the requested invitation or for access errors. * @NOT_FOUND@ if no invitation exists with the requested ID.+--+-- /See:/ 'newClassroomInvitationsDelete' smart constructor.+data ClassroomInvitationsDelete = ClassroomInvitationsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the invitation to delete.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomInvitationsDelete' with the minimum fields required to make a request.+newClassroomInvitationsDelete ::+  -- |  Identifier of the invitation to delete. See 'id'.+  Core.Text ->+  ClassroomInvitationsDelete+newClassroomInvitationsDelete id =+  ClassroomInvitationsDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomInvitationsDelete where+  type Rs ClassroomInvitationsDelete = Empty+  type Scopes ClassroomInvitationsDelete = '[Classroom'Rosters]+  requestClient ClassroomInvitationsDelete {..} =+    go+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomInvitationsDeleteResource)+          Core.mempty
+ gen/Gogol/Classroom/Invitations/Get.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Invitations.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an invitation. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to view the requested invitation or for access errors. * @NOT_FOUND@ if no invitation exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.get@.+module Gogol.Classroom.Invitations.Get+  ( -- * Resource+    ClassroomInvitationsGetResource,++    -- ** Constructing a Request+    ClassroomInvitationsGet (..),+    newClassroomInvitationsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.invitations.get@ method which the+-- 'ClassroomInvitationsGet' request conforms to.+type ClassroomInvitationsGetResource =+  "v1"+    Core.:> "invitations"+    Core.:> Core.Capture "id" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Invitation++-- | Returns an invitation. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to view the requested invitation or for access errors. * @NOT_FOUND@ if no invitation exists with the requested ID.+--+-- /See:/ 'newClassroomInvitationsGet' smart constructor.+data ClassroomInvitationsGet = ClassroomInvitationsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Identifier of the invitation to return.+    id :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomInvitationsGet' with the minimum fields required to make a request.+newClassroomInvitationsGet ::+  -- |  Identifier of the invitation to return. See 'id'.+  Core.Text ->+  ClassroomInvitationsGet+newClassroomInvitationsGet id =+  ClassroomInvitationsGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      id = id,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomInvitationsGet where+  type Rs ClassroomInvitationsGet = Invitation+  type+    Scopes ClassroomInvitationsGet =+      '[Classroom'Rosters, Classroom'Rosters'Readonly]+  requestClient ClassroomInvitationsGet {..} =+    go+      id+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomInvitationsGetResource)+          Core.mempty
+ gen/Gogol/Classroom/Invitations/List.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Invitations.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of invitations that the requesting user is permitted to view, restricted to those that match the list request. /Note:/ At least one of @user_id@ or @course_id@ must be supplied. Both fields can be supplied. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.list@.+module Gogol.Classroom.Invitations.List+  ( -- * Resource+    ClassroomInvitationsListResource,++    -- ** Constructing a Request+    ClassroomInvitationsList (..),+    newClassroomInvitationsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.invitations.list@ method which the+-- 'ClassroomInvitationsList' request conforms to.+type ClassroomInvitationsListResource =+  "v1"+    Core.:> "invitations"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "courseId" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "userId" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListInvitationsResponse++-- | Returns a list of invitations that the requesting user is permitted to view, restricted to those that match the list request. /Note:/ At least one of @user_id@ or @course_id@ must be supplied. Both fields can be supplied. This method returns the following error codes: * @PERMISSION_DENIED@ for access errors.+--+-- /See:/ 'newClassroomInvitationsList' smart constructor.+data ClassroomInvitationsList = ClassroomInvitationsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Restricts returned invitations to those for a course with the specified identifier.+    courseId :: (Core.Maybe Core.Text),+    -- | Maximum number of items to return. The default is 500 if unspecified or @0@. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text),+    -- | Restricts returned invitations to those for a specific user. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    userId :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomInvitationsList' with the minimum fields required to make a request.+newClassroomInvitationsList ::+  ClassroomInvitationsList+newClassroomInvitationsList =+  ClassroomInvitationsList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      courseId = Core.Nothing,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing,+      userId = Core.Nothing+    }++instance Core.GoogleRequest ClassroomInvitationsList where+  type Rs ClassroomInvitationsList = ListInvitationsResponse+  type+    Scopes ClassroomInvitationsList =+      '[Classroom'Rosters, Classroom'Rosters'Readonly]+  requestClient ClassroomInvitationsList {..} =+    go+      xgafv+      accessToken+      callback+      courseId+      pageSize+      pageToken+      uploadType+      uploadProtocol+      userId+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomInvitationsListResource)+          Core.mempty
+ gen/Gogol/Classroom/Registrations/Create.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Registrations.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a @Registration@, causing Classroom to start sending notifications from the provided @feed@ to the destination provided in @cloudPubSubTopic@. Returns the created @Registration@. Currently, this will be the same as the argument, but with server-assigned fields such as @expiry_time@ and @id@ filled in. Note that any value specified for the @expiry_time@ or @id@ fields will be ignored. While Classroom may validate the @cloudPubSubTopic@ and return errors on a best effort basis, it is the caller\'s responsibility to ensure that it exists and that Classroom has permission to publish to it. This method may return the following error codes: * @PERMISSION_DENIED@ if: * the authenticated user does not have permission to receive notifications from the requested field; or * the current user has not granted access to the current Cloud project with the appropriate scope for the requested feed. Note that domain-wide delegation of authority is not currently supported for this purpose. If the request has the+-- appropriate scope, but no grant exists, a Request Errors is returned. * another access error is encountered. * @INVALID_ARGUMENT@ if: * no @cloudPubsubTopic@ is specified, or the specified @cloudPubsubTopic@ is not valid; or * no @feed@ is specified, or the specified @feed@ is not valid. * @NOT_FOUND@ if: * the specified @feed@ cannot be located, or the requesting user does not have permission to determine whether or not it exists; or * the specified @cloudPubsubTopic@ cannot be located, or Classroom has not been granted permission to publish to it.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.registrations.create@.+module Gogol.Classroom.Registrations.Create+  ( -- * Resource+    ClassroomRegistrationsCreateResource,++    -- ** Constructing a Request+    ClassroomRegistrationsCreate (..),+    newClassroomRegistrationsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.registrations.create@ method which the+-- 'ClassroomRegistrationsCreate' request conforms to.+type ClassroomRegistrationsCreateResource =+  "v1"+    Core.:> "registrations"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Registration+    Core.:> Core.Post '[Core.JSON] Registration++-- | Creates a @Registration@, causing Classroom to start sending notifications from the provided @feed@ to the destination provided in @cloudPubSubTopic@. Returns the created @Registration@. Currently, this will be the same as the argument, but with server-assigned fields such as @expiry_time@ and @id@ filled in. Note that any value specified for the @expiry_time@ or @id@ fields will be ignored. While Classroom may validate the @cloudPubSubTopic@ and return errors on a best effort basis, it is the caller\'s responsibility to ensure that it exists and that Classroom has permission to publish to it. This method may return the following error codes: * @PERMISSION_DENIED@ if: * the authenticated user does not have permission to receive notifications from the requested field; or * the current user has not granted access to the current Cloud project with the appropriate scope for the requested feed. Note that domain-wide delegation of authority is not currently supported for this purpose. If the request has the+-- appropriate scope, but no grant exists, a Request Errors is returned. * another access error is encountered. * @INVALID_ARGUMENT@ if: * no @cloudPubsubTopic@ is specified, or the specified @cloudPubsubTopic@ is not valid; or * no @feed@ is specified, or the specified @feed@ is not valid. * @NOT_FOUND@ if: * the specified @feed@ cannot be located, or the requesting user does not have permission to determine whether or not it exists; or * the specified @cloudPubsubTopic@ cannot be located, or Classroom has not been granted permission to publish to it.+--+-- /See:/ 'newClassroomRegistrationsCreate' smart constructor.+data ClassroomRegistrationsCreate = ClassroomRegistrationsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: Registration,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomRegistrationsCreate' with the minimum fields required to make a request.+newClassroomRegistrationsCreate ::+  -- |  Multipart request metadata. See 'payload'.+  Registration ->+  ClassroomRegistrationsCreate+newClassroomRegistrationsCreate payload =+  ClassroomRegistrationsCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomRegistrationsCreate where+  type Rs ClassroomRegistrationsCreate = Registration+  type+    Scopes ClassroomRegistrationsCreate =+      '[Classroom'PushNotifications]+  requestClient ClassroomRegistrationsCreate {..} =+    go+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomRegistrationsCreateResource)+          Core.mempty
+ gen/Gogol/Classroom/Registrations/Delete.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Registrations.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a @Registration@, causing Classroom to stop sending notifications for that @Registration@.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.registrations.delete@.+module Gogol.Classroom.Registrations.Delete+  ( -- * Resource+    ClassroomRegistrationsDeleteResource,++    -- ** Constructing a Request+    ClassroomRegistrationsDelete (..),+    newClassroomRegistrationsDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.registrations.delete@ method which the+-- 'ClassroomRegistrationsDelete' request conforms to.+type ClassroomRegistrationsDeleteResource =+  "v1"+    Core.:> "registrations"+    Core.:> Core.Capture "registrationId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a @Registration@, causing Classroom to stop sending notifications for that @Registration@.+--+-- /See:/ 'newClassroomRegistrationsDelete' smart constructor.+data ClassroomRegistrationsDelete = ClassroomRegistrationsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | The @registration_id@ of the @Registration@ to be deleted.+    registrationId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomRegistrationsDelete' with the minimum fields required to make a request.+newClassroomRegistrationsDelete ::+  -- |  The @registration_id@ of the @Registration@ to be deleted. See 'registrationId'.+  Core.Text ->+  ClassroomRegistrationsDelete+newClassroomRegistrationsDelete registrationId =+  ClassroomRegistrationsDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      registrationId = registrationId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomRegistrationsDelete where+  type Rs ClassroomRegistrationsDelete = Empty+  type+    Scopes ClassroomRegistrationsDelete =+      '[Classroom'PushNotifications]+  requestClient ClassroomRegistrationsDelete {..} =+    go+      registrationId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomRegistrationsDeleteResource)+          Core.mempty
+ gen/Gogol/Classroom/Types.hs view
@@ -0,0 +1,570 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.Types+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Gogol.Classroom.Types+  ( -- * Configuration+    classroomService,++    -- * OAuth Scopes+    Classroom'Addons'Student,+    Classroom'Addons'Teacher,+    Classroom'Announcements,+    Classroom'Announcements'Readonly,+    Classroom'Courses,+    Classroom'Courses'Readonly,+    Classroom'Coursework'Me,+    Classroom'Coursework'Me'Readonly,+    Classroom'Coursework'Students,+    Classroom'Coursework'Students'Readonly,+    Classroom'Courseworkmaterials,+    Classroom'Courseworkmaterials'Readonly,+    Classroom'Guardianlinks'Me'Readonly,+    Classroom'Guardianlinks'Students,+    Classroom'Guardianlinks'Students'Readonly,+    Classroom'Profile'Emails,+    Classroom'Profile'Photos,+    Classroom'PushNotifications,+    Classroom'Rosters,+    Classroom'Rosters'Readonly,+    Classroom'StudentSubmissions'Me'Readonly,+    Classroom'StudentSubmissions'Students'Readonly,+    Classroom'Topics,+    Classroom'Topics'Readonly,++    -- * Types++    -- ** Xgafv+    Xgafv (..),++    -- ** AddOnAttachment+    AddOnAttachment (..),+    newAddOnAttachment,++    -- ** AddOnAttachmentStudentSubmission+    AddOnAttachmentStudentSubmission (..),+    newAddOnAttachmentStudentSubmission,++    -- ** AddOnAttachmentStudentSubmission_PostSubmissionState+    AddOnAttachmentStudentSubmission_PostSubmissionState (..),++    -- ** AddOnContext+    AddOnContext (..),+    newAddOnContext,++    -- ** Announcement+    Announcement (..),+    newAnnouncement,++    -- ** Announcement_AssigneeMode+    Announcement_AssigneeMode (..),++    -- ** Announcement_State+    Announcement_State (..),++    -- ** Assignment+    Assignment (..),+    newAssignment,++    -- ** AssignmentSubmission+    AssignmentSubmission (..),+    newAssignmentSubmission,++    -- ** Attachment+    Attachment (..),+    newAttachment,++    -- ** CloudPubsubTopic+    CloudPubsubTopic (..),+    newCloudPubsubTopic,++    -- ** CopyHistory+    CopyHistory (..),+    newCopyHistory,++    -- ** Course+    Course (..),+    newCourse,++    -- ** Course_CourseState+    Course_CourseState (..),++    -- ** CourseAlias+    CourseAlias (..),+    newCourseAlias,++    -- ** CourseMaterial+    CourseMaterial (..),+    newCourseMaterial,++    -- ** CourseMaterialSet+    CourseMaterialSet (..),+    newCourseMaterialSet,++    -- ** CourseRosterChangesInfo+    CourseRosterChangesInfo (..),+    newCourseRosterChangesInfo,++    -- ** CourseWork+    CourseWork (..),+    newCourseWork,++    -- ** CourseWork_AssigneeMode+    CourseWork_AssigneeMode (..),++    -- ** CourseWork_State+    CourseWork_State (..),++    -- ** CourseWork_SubmissionModificationMode+    CourseWork_SubmissionModificationMode (..),++    -- ** CourseWork_WorkType+    CourseWork_WorkType (..),++    -- ** CourseWorkChangesInfo+    CourseWorkChangesInfo (..),+    newCourseWorkChangesInfo,++    -- ** CourseWorkMaterial+    CourseWorkMaterial (..),+    newCourseWorkMaterial,++    -- ** CourseWorkMaterial_AssigneeMode+    CourseWorkMaterial_AssigneeMode (..),++    -- ** CourseWorkMaterial_State+    CourseWorkMaterial_State (..),++    -- ** Criterion+    Criterion (..),+    newCriterion,++    -- ** Date+    Date (..),+    newDate,++    -- ** DriveFile+    DriveFile (..),+    newDriveFile,++    -- ** DriveFolder+    DriveFolder (..),+    newDriveFolder,++    -- ** EmbedUri+    EmbedUri (..),+    newEmbedUri,++    -- ** Empty+    Empty (..),+    newEmpty,++    -- ** Feed+    Feed (..),+    newFeed,++    -- ** Feed_FeedType+    Feed_FeedType (..),++    -- ** Form+    Form (..),+    newForm,++    -- ** GlobalPermission+    GlobalPermission (..),+    newGlobalPermission,++    -- ** GlobalPermission_Permission+    GlobalPermission_Permission (..),++    -- ** GradeCategory+    GradeCategory (..),+    newGradeCategory,++    -- ** GradeHistory+    GradeHistory (..),+    newGradeHistory,++    -- ** GradeHistory_GradeChangeType+    GradeHistory_GradeChangeType (..),++    -- ** GradebookSettings+    GradebookSettings (..),+    newGradebookSettings,++    -- ** GradebookSettings_CalculationType+    GradebookSettings_CalculationType (..),++    -- ** GradebookSettings_DisplaySetting+    GradebookSettings_DisplaySetting (..),++    -- ** Guardian+    Guardian (..),+    newGuardian,++    -- ** GuardianInvitation+    GuardianInvitation (..),+    newGuardianInvitation,++    -- ** GuardianInvitation_State+    GuardianInvitation_State (..),++    -- ** IndividualStudentsOptions+    IndividualStudentsOptions (..),+    newIndividualStudentsOptions,++    -- ** Invitation+    Invitation (..),+    newInvitation,++    -- ** Invitation_Role+    Invitation_Role (..),++    -- ** Level+    Level (..),+    newLevel,++    -- ** Link+    Link (..),+    newLink,++    -- ** ListAddOnAttachmentsResponse+    ListAddOnAttachmentsResponse (..),+    newListAddOnAttachmentsResponse,++    -- ** ListAnnouncementsResponse+    ListAnnouncementsResponse (..),+    newListAnnouncementsResponse,++    -- ** ListCourseAliasesResponse+    ListCourseAliasesResponse (..),+    newListCourseAliasesResponse,++    -- ** ListCourseWorkMaterialResponse+    ListCourseWorkMaterialResponse (..),+    newListCourseWorkMaterialResponse,++    -- ** ListCourseWorkResponse+    ListCourseWorkResponse (..),+    newListCourseWorkResponse,++    -- ** ListCoursesResponse+    ListCoursesResponse (..),+    newListCoursesResponse,++    -- ** ListGuardianInvitationsResponse+    ListGuardianInvitationsResponse (..),+    newListGuardianInvitationsResponse,++    -- ** ListGuardiansResponse+    ListGuardiansResponse (..),+    newListGuardiansResponse,++    -- ** ListInvitationsResponse+    ListInvitationsResponse (..),+    newListInvitationsResponse,++    -- ** ListRubricsResponse+    ListRubricsResponse (..),+    newListRubricsResponse,++    -- ** ListStudentSubmissionsResponse+    ListStudentSubmissionsResponse (..),+    newListStudentSubmissionsResponse,++    -- ** ListStudentsResponse+    ListStudentsResponse (..),+    newListStudentsResponse,++    -- ** ListTeachersResponse+    ListTeachersResponse (..),+    newListTeachersResponse,++    -- ** ListTopicResponse+    ListTopicResponse (..),+    newListTopicResponse,++    -- ** Material+    Material (..),+    newMaterial,++    -- ** ModifyAnnouncementAssigneesRequest+    ModifyAnnouncementAssigneesRequest (..),+    newModifyAnnouncementAssigneesRequest,++    -- ** ModifyAnnouncementAssigneesRequest_AssigneeMode+    ModifyAnnouncementAssigneesRequest_AssigneeMode (..),++    -- ** ModifyAttachmentsRequest+    ModifyAttachmentsRequest (..),+    newModifyAttachmentsRequest,++    -- ** ModifyCourseWorkAssigneesRequest+    ModifyCourseWorkAssigneesRequest (..),+    newModifyCourseWorkAssigneesRequest,++    -- ** ModifyCourseWorkAssigneesRequest_AssigneeMode+    ModifyCourseWorkAssigneesRequest_AssigneeMode (..),++    -- ** ModifyIndividualStudentsOptions+    ModifyIndividualStudentsOptions (..),+    newModifyIndividualStudentsOptions,++    -- ** MultipleChoiceQuestion+    MultipleChoiceQuestion (..),+    newMultipleChoiceQuestion,++    -- ** MultipleChoiceSubmission+    MultipleChoiceSubmission (..),+    newMultipleChoiceSubmission,++    -- ** Name+    Name (..),+    newName,++    -- ** ReclaimStudentSubmissionRequest+    ReclaimStudentSubmissionRequest (..),+    newReclaimStudentSubmissionRequest,++    -- ** Registration+    Registration (..),+    newRegistration,++    -- ** ReturnStudentSubmissionRequest+    ReturnStudentSubmissionRequest (..),+    newReturnStudentSubmissionRequest,++    -- ** Rubric+    Rubric (..),+    newRubric,++    -- ** RubricGrade+    RubricGrade (..),+    newRubricGrade,++    -- ** SharedDriveFile+    SharedDriveFile (..),+    newSharedDriveFile,++    -- ** SharedDriveFile_ShareMode+    SharedDriveFile_ShareMode (..),++    -- ** ShortAnswerSubmission+    ShortAnswerSubmission (..),+    newShortAnswerSubmission,++    -- ** StateHistory+    StateHistory (..),+    newStateHistory,++    -- ** StateHistory_State+    StateHistory_State (..),++    -- ** Student+    Student (..),+    newStudent,++    -- ** StudentContext+    StudentContext (..),+    newStudentContext,++    -- ** StudentSubmission+    StudentSubmission (..),+    newStudentSubmission,++    -- ** StudentSubmission_AssignedRubricGrades+    StudentSubmission_AssignedRubricGrades (..),+    newStudentSubmission_AssignedRubricGrades,++    -- ** StudentSubmission_CourseWorkType+    StudentSubmission_CourseWorkType (..),++    -- ** StudentSubmission_DraftRubricGrades+    StudentSubmission_DraftRubricGrades (..),+    newStudentSubmission_DraftRubricGrades,++    -- ** StudentSubmission_State+    StudentSubmission_State (..),++    -- ** SubmissionHistory+    SubmissionHistory (..),+    newSubmissionHistory,++    -- ** Teacher+    Teacher (..),+    newTeacher,++    -- ** TeacherContext+    TeacherContext (..),+    newTeacherContext,++    -- ** TimeOfDay'+    TimeOfDay' (..),+    newTimeOfDay,++    -- ** Topic+    Topic (..),+    newTopic,++    -- ** TurnInStudentSubmissionRequest+    TurnInStudentSubmissionRequest (..),+    newTurnInStudentSubmissionRequest,++    -- ** UserProfile+    UserProfile (..),+    newUserProfile,++    -- ** YouTubeVideo+    YouTubeVideo (..),+    newYouTubeVideo,++    -- ** CoursesAnnouncementsListAnnouncementStates+    CoursesAnnouncementsListAnnouncementStates (..),++    -- ** CoursesCourseWorkListCourseWorkStates+    CoursesCourseWorkListCourseWorkStates (..),++    -- ** CoursesCourseWorkStudentSubmissionsListLate+    CoursesCourseWorkStudentSubmissionsListLate (..),++    -- ** CoursesCourseWorkStudentSubmissionsListStates+    CoursesCourseWorkStudentSubmissionsListStates (..),++    -- ** CoursesCourseWorkMaterialsListCourseWorkMaterialStates+    CoursesCourseWorkMaterialsListCourseWorkMaterialStates (..),++    -- ** CoursesListCourseStates+    CoursesListCourseStates (..),++    -- ** UserProfilesGuardianInvitationsListStates+    UserProfilesGuardianInvitationsListStates (..),+  )+where++import Gogol.Classroom.Internal.Product+import Gogol.Classroom.Internal.Sum+import Gogol.Prelude qualified as Core++-- | Default request referring to version @v1@ of the Google Classroom API. This contains the host and root path used as a starting point for constructing service requests.+classroomService :: Core.ServiceConfig+classroomService =+  Core.defaultService+    (Core.ServiceId "classroom:v1")+    "classroom.googleapis.com"++-- | See and update its own attachments to posts in Google Classroom+type Classroom'Addons'Student =+  "https://www.googleapis.com/auth/classroom.addons.student"++-- | See, create, and update its own attachments to posts in classes you teach in Google Classroom+type Classroom'Addons'Teacher =+  "https://www.googleapis.com/auth/classroom.addons.teacher"++-- | View and manage announcements in Google Classroom+type Classroom'Announcements =+  "https://www.googleapis.com/auth/classroom.announcements"++-- | View announcements in Google Classroom+type Classroom'Announcements'Readonly =+  "https://www.googleapis.com/auth/classroom.announcements.readonly"++-- | See, edit, create, and permanently delete your Google Classroom classes+type Classroom'Courses =+  "https://www.googleapis.com/auth/classroom.courses"++-- | View your Google Classroom classes+type Classroom'Courses'Readonly =+  "https://www.googleapis.com/auth/classroom.courses.readonly"++-- | See, create and edit coursework items including assignments, questions, and grades+type Classroom'Coursework'Me =+  "https://www.googleapis.com/auth/classroom.coursework.me"++-- | View your course work and grades in Google Classroom+type Classroom'Coursework'Me'Readonly =+  "https://www.googleapis.com/auth/classroom.coursework.me.readonly"++-- | Manage course work and grades for students in the Google Classroom classes you teach and view the course work and grades for classes you administer+type Classroom'Coursework'Students =+  "https://www.googleapis.com/auth/classroom.coursework.students"++-- | View course work and grades for students in the Google Classroom classes you teach or administer+type Classroom'Coursework'Students'Readonly =+  "https://www.googleapis.com/auth/classroom.coursework.students.readonly"++-- | See, edit, and create classwork materials in Google Classroom+type Classroom'Courseworkmaterials =+  "https://www.googleapis.com/auth/classroom.courseworkmaterials"++-- | See all classwork materials for your Google Classroom classes+type Classroom'Courseworkmaterials'Readonly =+  "https://www.googleapis.com/auth/classroom.courseworkmaterials.readonly"++-- | View your Google Classroom guardians+type Classroom'Guardianlinks'Me'Readonly =+  "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly"++-- | View and manage guardians for students in your Google Classroom classes+type Classroom'Guardianlinks'Students =+  "https://www.googleapis.com/auth/classroom.guardianlinks.students"++-- | View guardians for students in your Google Classroom classes+type Classroom'Guardianlinks'Students'Readonly =+  "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"++-- | View the email addresses of people in your classes+type Classroom'Profile'Emails =+  "https://www.googleapis.com/auth/classroom.profile.emails"++-- | View the profile photos of people in your classes+type Classroom'Profile'Photos =+  "https://www.googleapis.com/auth/classroom.profile.photos"++-- | Receive notifications about your Google Classroom data+type Classroom'PushNotifications =+  "https://www.googleapis.com/auth/classroom.push-notifications"++-- | Manage your Google Classroom class rosters+type Classroom'Rosters =+  "https://www.googleapis.com/auth/classroom.rosters"++-- | View your Google Classroom class rosters+type Classroom'Rosters'Readonly =+  "https://www.googleapis.com/auth/classroom.rosters.readonly"++-- | View your course work and grades in Google Classroom+type Classroom'StudentSubmissions'Me'Readonly =+  "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly"++-- | View course work and grades for students in the Google Classroom classes you teach or administer+type Classroom'StudentSubmissions'Students'Readonly =+  "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly"++-- | See, create, and edit topics in Google Classroom+type Classroom'Topics =+  "https://www.googleapis.com/auth/classroom.topics"++-- | View topics in Google Classroom+type Classroom'Topics'Readonly =+  "https://www.googleapis.com/auth/classroom.topics.readonly"
+ gen/Gogol/Classroom/UserProfiles/Get.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.UserProfiles.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a user profile. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access this user profile, if no profile exists with the requested ID, or for access errors.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.get@.+module Gogol.Classroom.UserProfiles.Get+  ( -- * Resource+    ClassroomUserProfilesGetResource,++    -- ** Constructing a Request+    ClassroomUserProfilesGet (..),+    newClassroomUserProfilesGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.userProfiles.get@ method which the+-- 'ClassroomUserProfilesGet' request conforms to.+type ClassroomUserProfilesGetResource =+  "v1"+    Core.:> "userProfiles"+    Core.:> Core.Capture "userId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] UserProfile++-- | Returns a user profile. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to access this user profile, if no profile exists with the requested ID, or for access errors.+--+-- /See:/ 'newClassroomUserProfilesGet' smart constructor.+data ClassroomUserProfilesGet = ClassroomUserProfilesGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text),+    -- | Identifier of the profile to return. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    userId :: Core.Text+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomUserProfilesGet' with the minimum fields required to make a request.+newClassroomUserProfilesGet ::+  -- |  Identifier of the profile to return. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user See 'userId'.+  Core.Text ->+  ClassroomUserProfilesGet+newClassroomUserProfilesGet userId =+  ClassroomUserProfilesGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing,+      userId = userId+    }++instance Core.GoogleRequest ClassroomUserProfilesGet where+  type Rs ClassroomUserProfilesGet = UserProfile+  type+    Scopes ClassroomUserProfilesGet =+      '[ Classroom'Profile'Emails,+         Classroom'Profile'Photos,+         Classroom'Rosters,+         Classroom'Rosters'Readonly+       ]+  requestClient ClassroomUserProfilesGet {..} =+    go+      userId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          (Core.Proxy :: Core.Proxy ClassroomUserProfilesGetResource)+          Core.mempty
+ gen/Gogol/Classroom/UserProfiles/GuardianInvitations/Create.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.UserProfiles.GuardianInvitations.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a guardian invitation, and sends an email to the guardian asking them to confirm that they are the student\'s guardian. Once the guardian accepts the invitation, their @state@ will change to @COMPLETED@ and they will start receiving guardian notifications. A @Guardian@ resource will also be created to represent the active guardian. The request object must have the @student_id@ and @invited_email_address@ fields set. Failing to set these fields, or setting any other fields in the request, will result in an error. This method returns the following error codes: * @PERMISSION_DENIED@ if the current user does not have permission to manage guardians, if the guardian in question has already rejected too many requests for that student, if guardians are not enabled for the domain in question, or for other access errors. * @RESOURCE_EXHAUSTED@ if the student or guardian has exceeded the guardian link limit. * @INVALID_ARGUMENT@ if the guardian email address is not valid (for example, if it is too long), or if+-- the format of the student ID provided cannot be recognized (it is not an email address, nor a @user_id@ from this API). This error will also be returned if read-only fields are set, or if the @state@ field is set to to a value other than @PENDING@. * @NOT_FOUND@ if the student ID provided is a valid student ID, but Classroom has no record of that student. * @ALREADY_EXISTS@ if there is already a pending guardian invitation for the student and @invited_email_address@ provided, or if the provided @invited_email_address@ matches the Google account of an existing @Guardian@ for this user.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.create@.+module Gogol.Classroom.UserProfiles.GuardianInvitations.Create+  ( -- * Resource+    ClassroomUserProfilesGuardianInvitationsCreateResource,++    -- ** Constructing a Request+    ClassroomUserProfilesGuardianInvitationsCreate (..),+    newClassroomUserProfilesGuardianInvitationsCreate,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.userProfiles.guardianInvitations.create@ method which the+-- 'ClassroomUserProfilesGuardianInvitationsCreate' request conforms to.+type ClassroomUserProfilesGuardianInvitationsCreateResource =+  "v1"+    Core.:> "userProfiles"+    Core.:> Core.Capture "studentId" Core.Text+    Core.:> "guardianInvitations"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] GuardianInvitation+    Core.:> Core.Post '[Core.JSON] GuardianInvitation++-- | Creates a guardian invitation, and sends an email to the guardian asking them to confirm that they are the student\'s guardian. Once the guardian accepts the invitation, their @state@ will change to @COMPLETED@ and they will start receiving guardian notifications. A @Guardian@ resource will also be created to represent the active guardian. The request object must have the @student_id@ and @invited_email_address@ fields set. Failing to set these fields, or setting any other fields in the request, will result in an error. This method returns the following error codes: * @PERMISSION_DENIED@ if the current user does not have permission to manage guardians, if the guardian in question has already rejected too many requests for that student, if guardians are not enabled for the domain in question, or for other access errors. * @RESOURCE_EXHAUSTED@ if the student or guardian has exceeded the guardian link limit. * @INVALID_ARGUMENT@ if the guardian email address is not valid (for example, if it is too long), or if+-- the format of the student ID provided cannot be recognized (it is not an email address, nor a @user_id@ from this API). This error will also be returned if read-only fields are set, or if the @state@ field is set to to a value other than @PENDING@. * @NOT_FOUND@ if the student ID provided is a valid student ID, but Classroom has no record of that student. * @ALREADY_EXISTS@ if there is already a pending guardian invitation for the student and @invited_email_address@ provided, or if the provided @invited_email_address@ matches the Google account of an existing @Guardian@ for this user.+--+-- /See:/ 'newClassroomUserProfilesGuardianInvitationsCreate' smart constructor.+data ClassroomUserProfilesGuardianInvitationsCreate = ClassroomUserProfilesGuardianInvitationsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: GuardianInvitation,+    -- | ID of the student (in standard format)+    studentId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomUserProfilesGuardianInvitationsCreate' with the minimum fields required to make a request.+newClassroomUserProfilesGuardianInvitationsCreate ::+  -- |  Multipart request metadata. See 'payload'.+  GuardianInvitation ->+  -- |  ID of the student (in standard format) See 'studentId'.+  Core.Text ->+  ClassroomUserProfilesGuardianInvitationsCreate+newClassroomUserProfilesGuardianInvitationsCreate payload studentId =+  ClassroomUserProfilesGuardianInvitationsCreate+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      payload = payload,+      studentId = studentId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomUserProfilesGuardianInvitationsCreate+  where+  type+    Rs ClassroomUserProfilesGuardianInvitationsCreate =+      GuardianInvitation+  type+    Scopes ClassroomUserProfilesGuardianInvitationsCreate =+      '[Classroom'Guardianlinks'Students]+  requestClient ClassroomUserProfilesGuardianInvitationsCreate {..} =+    go+      studentId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomUserProfilesGuardianInvitationsCreateResource+          )+          Core.mempty
+ gen/Gogol/Classroom/UserProfiles/GuardianInvitations/Get.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.UserProfiles.GuardianInvitations.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a specific guardian invitation. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to view guardian invitations for the student identified by the @student_id@, if guardians are not enabled for the domain in question, or for other access errors. * @INVALID_ARGUMENT@ if a @student_id@ is specified, but its format cannot be recognized (it is not an email address, nor a @student_id@ from the API, nor the literal string @me@). * @NOT_FOUND@ if Classroom cannot find any record of the given student or @invitation_id@. May also be returned if the student exists, but the requesting user does not have access to see that student.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.get@.+module Gogol.Classroom.UserProfiles.GuardianInvitations.Get+  ( -- * Resource+    ClassroomUserProfilesGuardianInvitationsGetResource,++    -- ** Constructing a Request+    ClassroomUserProfilesGuardianInvitationsGet (..),+    newClassroomUserProfilesGuardianInvitationsGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.userProfiles.guardianInvitations.get@ method which the+-- 'ClassroomUserProfilesGuardianInvitationsGet' request conforms to.+type ClassroomUserProfilesGuardianInvitationsGetResource =+  "v1"+    Core.:> "userProfiles"+    Core.:> Core.Capture "studentId" Core.Text+    Core.:> "guardianInvitations"+    Core.:> Core.Capture "invitationId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] GuardianInvitation++-- | Returns a specific guardian invitation. This method returns the following error codes: * @PERMISSION_DENIED@ if the requesting user is not permitted to view guardian invitations for the student identified by the @student_id@, if guardians are not enabled for the domain in question, or for other access errors. * @INVALID_ARGUMENT@ if a @student_id@ is specified, but its format cannot be recognized (it is not an email address, nor a @student_id@ from the API, nor the literal string @me@). * @NOT_FOUND@ if Classroom cannot find any record of the given student or @invitation_id@. May also be returned if the student exists, but the requesting user does not have access to see that student.+--+-- /See:/ 'newClassroomUserProfilesGuardianInvitationsGet' smart constructor.+data ClassroomUserProfilesGuardianInvitationsGet = ClassroomUserProfilesGuardianInvitationsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | The @id@ field of the @GuardianInvitation@ being requested.+    invitationId :: Core.Text,+    -- | The ID of the student whose guardian invitation is being requested.+    studentId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomUserProfilesGuardianInvitationsGet' with the minimum fields required to make a request.+newClassroomUserProfilesGuardianInvitationsGet ::+  -- |  The @id@ field of the @GuardianInvitation@ being requested. See 'invitationId'.+  Core.Text ->+  -- |  The ID of the student whose guardian invitation is being requested. See 'studentId'.+  Core.Text ->+  ClassroomUserProfilesGuardianInvitationsGet+newClassroomUserProfilesGuardianInvitationsGet+  invitationId+  studentId =+    ClassroomUserProfilesGuardianInvitationsGet+      { xgafv = Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        invitationId = invitationId,+        studentId = studentId,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomUserProfilesGuardianInvitationsGet+  where+  type+    Rs ClassroomUserProfilesGuardianInvitationsGet =+      GuardianInvitation+  type+    Scopes ClassroomUserProfilesGuardianInvitationsGet =+      '[ Classroom'Guardianlinks'Students,+         Classroom'Guardianlinks'Students'Readonly+       ]+  requestClient ClassroomUserProfilesGuardianInvitationsGet {..} =+    go+      studentId+      invitationId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomUserProfilesGuardianInvitationsGetResource+          )+          Core.mempty
+ gen/Gogol/Classroom/UserProfiles/GuardianInvitations/List.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.UserProfiles.GuardianInvitations.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of guardian invitations that the requesting user is permitted to view, filtered by the parameters provided. This method returns the following error codes: * @PERMISSION_DENIED@ if a @student_id@ is specified, and the requesting user is not permitted to view guardian invitations for that student, if @\"-\"@ is specified as the @student_id@ and the user is not a domain administrator, if guardians are not enabled for the domain in question, or for other access errors. * @INVALID_ARGUMENT@ if a @student_id@ is specified, but its format cannot be recognized (it is not an email address, nor a @student_id@ from the API, nor the literal string @me@). May also be returned if an invalid @page_token@ or @state@ is provided. * @NOT_FOUND@ if a @student_id@ is specified, and its format can be recognized, but Classroom has no record of that student.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.list@.+module Gogol.Classroom.UserProfiles.GuardianInvitations.List+  ( -- * Resource+    ClassroomUserProfilesGuardianInvitationsListResource,++    -- ** Constructing a Request+    ClassroomUserProfilesGuardianInvitationsList (..),+    newClassroomUserProfilesGuardianInvitationsList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.userProfiles.guardianInvitations.list@ method which the+-- 'ClassroomUserProfilesGuardianInvitationsList' request conforms to.+type ClassroomUserProfilesGuardianInvitationsListResource =+  "v1"+    Core.:> "userProfiles"+    Core.:> Core.Capture "studentId" Core.Text+    Core.:> "guardianInvitations"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "invitedEmailAddress" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParams "states" UserProfilesGuardianInvitationsListStates+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListGuardianInvitationsResponse++-- | Returns a list of guardian invitations that the requesting user is permitted to view, filtered by the parameters provided. This method returns the following error codes: * @PERMISSION_DENIED@ if a @student_id@ is specified, and the requesting user is not permitted to view guardian invitations for that student, if @\"-\"@ is specified as the @student_id@ and the user is not a domain administrator, if guardians are not enabled for the domain in question, or for other access errors. * @INVALID_ARGUMENT@ if a @student_id@ is specified, but its format cannot be recognized (it is not an email address, nor a @student_id@ from the API, nor the literal string @me@). May also be returned if an invalid @page_token@ or @state@ is provided. * @NOT_FOUND@ if a @student_id@ is specified, and its format can be recognized, but Classroom has no record of that student.+--+-- /See:/ 'newClassroomUserProfilesGuardianInvitationsList' smart constructor.+data ClassroomUserProfilesGuardianInvitationsList = ClassroomUserProfilesGuardianInvitationsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | If specified, only results with the specified @invited_email_address@ are returned.+    invitedEmailAddress :: (Core.Maybe Core.Text),+    -- | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | If specified, only results with the specified @state@ values are returned. Otherwise, results with a @state@ of @PENDING@ are returned.+    states :: (Core.Maybe [UserProfilesGuardianInvitationsListStates]),+    -- | The ID of the student whose guardian invitations are to be returned. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user * the string literal @\"-\"@, indicating that results should be returned for all students that the requesting user is permitted to view guardian invitations.+    studentId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomUserProfilesGuardianInvitationsList' with the minimum fields required to make a request.+newClassroomUserProfilesGuardianInvitationsList ::+  -- |  The ID of the student whose guardian invitations are to be returned. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user * the string literal @\"-\"@, indicating that results should be returned for all students that the requesting user is permitted to view guardian invitations. See 'studentId'.+  Core.Text ->+  ClassroomUserProfilesGuardianInvitationsList+newClassroomUserProfilesGuardianInvitationsList studentId =+  ClassroomUserProfilesGuardianInvitationsList+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      invitedEmailAddress = Core.Nothing,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      states = Core.Nothing,+      studentId = studentId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    ClassroomUserProfilesGuardianInvitationsList+  where+  type+    Rs ClassroomUserProfilesGuardianInvitationsList =+      ListGuardianInvitationsResponse+  type+    Scopes ClassroomUserProfilesGuardianInvitationsList =+      '[ Classroom'Guardianlinks'Students,+         Classroom'Guardianlinks'Students'Readonly+       ]+  requestClient ClassroomUserProfilesGuardianInvitationsList {..} =+    go+      studentId+      xgafv+      accessToken+      callback+      invitedEmailAddress+      pageSize+      pageToken+      (states Core.^. Core._Default)+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomUserProfilesGuardianInvitationsListResource+          )+          Core.mempty
+ gen/Gogol/Classroom/UserProfiles/GuardianInvitations/Patch.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.UserProfiles.GuardianInvitations.Patch+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies a guardian invitation. Currently, the only valid modification is to change the @state@ from @PENDING@ to @COMPLETE@. This has the effect of withdrawing the invitation. This method returns the following error codes: * @PERMISSION_DENIED@ if the current user does not have permission to manage guardians, if guardians are not enabled for the domain in question or for other access errors. * @FAILED_PRECONDITION@ if the guardian link is not in the @PENDING@ state. * @INVALID_ARGUMENT@ if the format of the student ID provided cannot be recognized (it is not an email address, nor a @user_id@ from this API), or if the passed @GuardianInvitation@ has a @state@ other than @COMPLETE@, or if it modifies fields other than @state@. * @NOT_FOUND@ if the student ID provided is a valid student ID, but Classroom has no record of that student, or if the @id@ field does not refer to a guardian invitation known to Classroom.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.patch@.+module Gogol.Classroom.UserProfiles.GuardianInvitations.Patch+  ( -- * Resource+    ClassroomUserProfilesGuardianInvitationsPatchResource,++    -- ** Constructing a Request+    ClassroomUserProfilesGuardianInvitationsPatch (..),+    newClassroomUserProfilesGuardianInvitationsPatch,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.userProfiles.guardianInvitations.patch@ method which the+-- 'ClassroomUserProfilesGuardianInvitationsPatch' request conforms to.+type ClassroomUserProfilesGuardianInvitationsPatchResource =+  "v1"+    Core.:> "userProfiles"+    Core.:> Core.Capture "studentId" Core.Text+    Core.:> "guardianInvitations"+    Core.:> Core.Capture "invitationId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "updateMask" Core.FieldMask+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] GuardianInvitation+    Core.:> Core.Patch '[Core.JSON] GuardianInvitation++-- | Modifies a guardian invitation. Currently, the only valid modification is to change the @state@ from @PENDING@ to @COMPLETE@. This has the effect of withdrawing the invitation. This method returns the following error codes: * @PERMISSION_DENIED@ if the current user does not have permission to manage guardians, if guardians are not enabled for the domain in question or for other access errors. * @FAILED_PRECONDITION@ if the guardian link is not in the @PENDING@ state. * @INVALID_ARGUMENT@ if the format of the student ID provided cannot be recognized (it is not an email address, nor a @user_id@ from this API), or if the passed @GuardianInvitation@ has a @state@ other than @COMPLETE@, or if it modifies fields other than @state@. * @NOT_FOUND@ if the student ID provided is a valid student ID, but Classroom has no record of that student, or if the @id@ field does not refer to a guardian invitation known to Classroom.+--+-- /See:/ 'newClassroomUserProfilesGuardianInvitationsPatch' smart constructor.+data ClassroomUserProfilesGuardianInvitationsPatch = ClassroomUserProfilesGuardianInvitationsPatch+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | The @id@ field of the @GuardianInvitation@ to be modified.+    invitationId :: Core.Text,+    -- | Multipart request metadata.+    payload :: GuardianInvitation,+    -- | The ID of the student whose guardian invitation is to be modified.+    studentId :: Core.Text,+    -- | Mask that identifies which fields on the course to update. This field is required to do an update. The update fails if invalid fields are specified. The following fields are valid: * @state@ When set in a query parameter, this field should be specified as @updateMask=,,...@+    updateMask :: (Core.Maybe Core.FieldMask),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomUserProfilesGuardianInvitationsPatch' with the minimum fields required to make a request.+newClassroomUserProfilesGuardianInvitationsPatch ::+  -- |  The @id@ field of the @GuardianInvitation@ to be modified. See 'invitationId'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  GuardianInvitation ->+  -- |  The ID of the student whose guardian invitation is to be modified. See 'studentId'.+  Core.Text ->+  ClassroomUserProfilesGuardianInvitationsPatch+newClassroomUserProfilesGuardianInvitationsPatch+  invitationId+  payload+  studentId =+    ClassroomUserProfilesGuardianInvitationsPatch+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        invitationId = invitationId,+        payload = payload,+        studentId = studentId,+        updateMask = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    ClassroomUserProfilesGuardianInvitationsPatch+  where+  type+    Rs ClassroomUserProfilesGuardianInvitationsPatch =+      GuardianInvitation+  type+    Scopes ClassroomUserProfilesGuardianInvitationsPatch =+      '[Classroom'Guardianlinks'Students]+  requestClient ClassroomUserProfilesGuardianInvitationsPatch {..} =+    go+      studentId+      invitationId+      xgafv+      accessToken+      callback+      updateMask+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomUserProfilesGuardianInvitationsPatchResource+          )+          Core.mempty
+ gen/Gogol/Classroom/UserProfiles/Guardians/Delete.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.UserProfiles.Guardians.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a guardian. The guardian will no longer receive guardian notifications and the guardian will no longer be accessible via the API. This method returns the following error codes: * @PERMISSION_DENIED@ if no user that matches the provided @student_id@ is visible to the requesting user, if the requesting user is not permitted to manage guardians for the student identified by the @student_id@, if guardians are not enabled for the domain in question, or for other access errors. * @INVALID_ARGUMENT@ if a @student_id@ is specified, but its format cannot be recognized (it is not an email address, nor a @student_id@ from the API). * @NOT_FOUND@ if the requesting user is permitted to modify guardians for the requested @student_id@, but no @Guardian@ record exists for that student with the provided @guardian_id@.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.delete@.+module Gogol.Classroom.UserProfiles.Guardians.Delete+  ( -- * Resource+    ClassroomUserProfilesGuardiansDeleteResource,++    -- ** Constructing a Request+    ClassroomUserProfilesGuardiansDelete (..),+    newClassroomUserProfilesGuardiansDelete,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.userProfiles.guardians.delete@ method which the+-- 'ClassroomUserProfilesGuardiansDelete' request conforms to.+type ClassroomUserProfilesGuardiansDeleteResource =+  "v1"+    Core.:> "userProfiles"+    Core.:> Core.Capture "studentId" Core.Text+    Core.:> "guardians"+    Core.:> Core.Capture "guardianId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a guardian. The guardian will no longer receive guardian notifications and the guardian will no longer be accessible via the API. This method returns the following error codes: * @PERMISSION_DENIED@ if no user that matches the provided @student_id@ is visible to the requesting user, if the requesting user is not permitted to manage guardians for the student identified by the @student_id@, if guardians are not enabled for the domain in question, or for other access errors. * @INVALID_ARGUMENT@ if a @student_id@ is specified, but its format cannot be recognized (it is not an email address, nor a @student_id@ from the API). * @NOT_FOUND@ if the requesting user is permitted to modify guardians for the requested @student_id@, but no @Guardian@ record exists for that student with the provided @guardian_id@.+--+-- /See:/ 'newClassroomUserProfilesGuardiansDelete' smart constructor.+data ClassroomUserProfilesGuardiansDelete = ClassroomUserProfilesGuardiansDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | The @id@ field from a @Guardian@.+    guardianId :: Core.Text,+    -- | The student whose guardian is to be deleted. One of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    studentId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomUserProfilesGuardiansDelete' with the minimum fields required to make a request.+newClassroomUserProfilesGuardiansDelete ::+  -- |  The @id@ field from a @Guardian@. See 'guardianId'.+  Core.Text ->+  -- |  The student whose guardian is to be deleted. One of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user See 'studentId'.+  Core.Text ->+  ClassroomUserProfilesGuardiansDelete+newClassroomUserProfilesGuardiansDelete guardianId studentId =+  ClassroomUserProfilesGuardiansDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      guardianId = guardianId,+      studentId = studentId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomUserProfilesGuardiansDelete where+  type Rs ClassroomUserProfilesGuardiansDelete = Empty+  type+    Scopes ClassroomUserProfilesGuardiansDelete =+      '[Classroom'Guardianlinks'Students]+  requestClient ClassroomUserProfilesGuardiansDelete {..} =+    go+      studentId+      guardianId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomUserProfilesGuardiansDeleteResource+          )+          Core.mempty
+ gen/Gogol/Classroom/UserProfiles/Guardians/Get.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.UserProfiles.Guardians.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a specific guardian. This method returns the following error codes: * @PERMISSION_DENIED@ if no user that matches the provided @student_id@ is visible to the requesting user, if the requesting user is not permitted to view guardian information for the student identified by the @student_id@, if guardians are not enabled for the domain in question, or for other access errors. * @INVALID_ARGUMENT@ if a @student_id@ is specified, but its format cannot be recognized (it is not an email address, nor a @student_id@ from the API, nor the literal string @me@). * @NOT_FOUND@ if the requesting user is permitted to view guardians for the requested @student_id@, but no @Guardian@ record exists for that student that matches the provided @guardian_id@.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.get@.+module Gogol.Classroom.UserProfiles.Guardians.Get+  ( -- * Resource+    ClassroomUserProfilesGuardiansGetResource,++    -- ** Constructing a Request+    ClassroomUserProfilesGuardiansGet (..),+    newClassroomUserProfilesGuardiansGet,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.userProfiles.guardians.get@ method which the+-- 'ClassroomUserProfilesGuardiansGet' request conforms to.+type ClassroomUserProfilesGuardiansGetResource =+  "v1"+    Core.:> "userProfiles"+    Core.:> Core.Capture "studentId" Core.Text+    Core.:> "guardians"+    Core.:> Core.Capture "guardianId" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Guardian++-- | Returns a specific guardian. This method returns the following error codes: * @PERMISSION_DENIED@ if no user that matches the provided @student_id@ is visible to the requesting user, if the requesting user is not permitted to view guardian information for the student identified by the @student_id@, if guardians are not enabled for the domain in question, or for other access errors. * @INVALID_ARGUMENT@ if a @student_id@ is specified, but its format cannot be recognized (it is not an email address, nor a @student_id@ from the API, nor the literal string @me@). * @NOT_FOUND@ if the requesting user is permitted to view guardians for the requested @student_id@, but no @Guardian@ record exists for that student that matches the provided @guardian_id@.+--+-- /See:/ 'newClassroomUserProfilesGuardiansGet' smart constructor.+data ClassroomUserProfilesGuardiansGet = ClassroomUserProfilesGuardiansGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | The @id@ field from a @Guardian@.+    guardianId :: Core.Text,+    -- | The student whose guardian is being requested. One of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user+    studentId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomUserProfilesGuardiansGet' with the minimum fields required to make a request.+newClassroomUserProfilesGuardiansGet ::+  -- |  The @id@ field from a @Guardian@. See 'guardianId'.+  Core.Text ->+  -- |  The student whose guardian is being requested. One of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user See 'studentId'.+  Core.Text ->+  ClassroomUserProfilesGuardiansGet+newClassroomUserProfilesGuardiansGet guardianId studentId =+  ClassroomUserProfilesGuardiansGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      guardianId = guardianId,+      studentId = studentId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomUserProfilesGuardiansGet where+  type Rs ClassroomUserProfilesGuardiansGet = Guardian+  type+    Scopes ClassroomUserProfilesGuardiansGet =+      '[ Classroom'Guardianlinks'Me'Readonly,+         Classroom'Guardianlinks'Students,+         Classroom'Guardianlinks'Students'Readonly+       ]+  requestClient ClassroomUserProfilesGuardiansGet {..} =+    go+      studentId+      guardianId+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomUserProfilesGuardiansGetResource+          )+          Core.mempty
+ gen/Gogol/Classroom/UserProfiles/Guardians/List.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.Classroom.UserProfiles.Guardians.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of guardians that the requesting user is permitted to view, restricted to those that match the request. To list guardians for any student that the requesting user may view guardians for, use the literal character @-@ for the student ID. This method returns the following error codes: * @PERMISSION_DENIED@ if a @student_id@ is specified, and the requesting user is not permitted to view guardian information for that student, if @\"-\"@ is specified as the @student_id@ and the user is not a domain administrator, if guardians are not enabled for the domain in question, if the @invited_email_address@ filter is set by a user who is not a domain administrator, or for other access errors. * @INVALID_ARGUMENT@ if a @student_id@ is specified, but its format cannot be recognized (it is not an email address, nor a @student_id@ from the API, nor the literal string @me@). May also be returned if an invalid @page_token@ is provided. * @NOT_FOUND@ if a @student_id@ is specified, and its format can be+-- recognized, but Classroom has no record of that student.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.list@.+module Gogol.Classroom.UserProfiles.Guardians.List+  ( -- * Resource+    ClassroomUserProfilesGuardiansListResource,++    -- ** Constructing a Request+    ClassroomUserProfilesGuardiansList (..),+    newClassroomUserProfilesGuardiansList,+  )+where++import Gogol.Classroom.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @classroom.userProfiles.guardians.list@ method which the+-- 'ClassroomUserProfilesGuardiansList' request conforms to.+type ClassroomUserProfilesGuardiansListResource =+  "v1"+    Core.:> "userProfiles"+    Core.:> Core.Capture "studentId" Core.Text+    Core.:> "guardians"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "invitedEmailAddress" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListGuardiansResponse++-- | Returns a list of guardians that the requesting user is permitted to view, restricted to those that match the request. To list guardians for any student that the requesting user may view guardians for, use the literal character @-@ for the student ID. This method returns the following error codes: * @PERMISSION_DENIED@ if a @student_id@ is specified, and the requesting user is not permitted to view guardian information for that student, if @\"-\"@ is specified as the @student_id@ and the user is not a domain administrator, if guardians are not enabled for the domain in question, if the @invited_email_address@ filter is set by a user who is not a domain administrator, or for other access errors. * @INVALID_ARGUMENT@ if a @student_id@ is specified, but its format cannot be recognized (it is not an email address, nor a @student_id@ from the API, nor the literal string @me@). May also be returned if an invalid @page_token@ is provided. * @NOT_FOUND@ if a @student_id@ is specified, and its format can be+-- recognized, but Classroom has no record of that student.+--+-- /See:/ 'newClassroomUserProfilesGuardiansList' smart constructor.+data ClassroomUserProfilesGuardiansList = ClassroomUserProfilesGuardiansList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Filter results by the email address that the original invitation was sent to, resulting in this guardian link. This filter can only be used by domain administrators.+    invitedEmailAddress :: (Core.Maybe Core.Text),+    -- | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.+    pageSize :: (Core.Maybe Core.Int32),+    -- | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.+    pageToken :: (Core.Maybe Core.Text),+    -- | Filter results by the student who the guardian is linked to. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user * the string literal @\"-\"@, indicating that results should be returned for all students that the requesting user has access to view.+    studentId :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ClassroomUserProfilesGuardiansList' with the minimum fields required to make a request.+newClassroomUserProfilesGuardiansList ::+  -- |  Filter results by the student who the guardian is linked to. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal @\"me\"@, indicating the requesting user * the string literal @\"-\"@, indicating that results should be returned for all students that the requesting user has access to view. See 'studentId'.+  Core.Text ->+  ClassroomUserProfilesGuardiansList+newClassroomUserProfilesGuardiansList studentId =+  ClassroomUserProfilesGuardiansList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      invitedEmailAddress = Core.Nothing,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      studentId = studentId,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest ClassroomUserProfilesGuardiansList where+  type Rs ClassroomUserProfilesGuardiansList = ListGuardiansResponse+  type+    Scopes ClassroomUserProfilesGuardiansList =+      '[ Classroom'Guardianlinks'Me'Readonly,+         Classroom'Guardianlinks'Students,+         Classroom'Guardianlinks'Students'Readonly+       ]+  requestClient ClassroomUserProfilesGuardiansList {..} =+    go+      studentId+      xgafv+      accessToken+      callback+      invitedEmailAddress+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      classroomService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy ClassroomUserProfilesGuardiansListResource+          )+          Core.mempty
− gen/Network/Google/Classroom.hs
@@ -1,839 +0,0 @@-{-# LANGUAGE DataKinds         #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE TypeOperators     #-}--{-# OPTIONS_GHC -fno-warn-unused-imports    #-}-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}---- |--- Module      : Network.Google.Classroom--- 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)------ Manages classes, rosters, and invitations in Google Classroom.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference>-module Network.Google.Classroom-    (-    -- * Service Configuration-      classroomService--    -- * OAuth Scopes-    , classroomRostersReadOnlyScope-    , classroomCoursesScope-    , classroomPushNotificationsScope-    , classroomCourseworkStudentsReadOnlyScope-    , classroomTopicsReadOnlyScope-    , classroomProFileEmailsScope-    , classroomProFilePhotosScope-    , classroomCourseworkMeScope-    , classroomAnnouncementsReadOnlyScope-    , classroomGuardianlinksStudentsScope-    , classroomStudentSubmissionsStudentsReadOnlyScope-    , classroomGuardianlinksMeReadOnlyScope-    , classroomRostersScope-    , classroomCoursesReadOnlyScope-    , classroomCourseworkStudentsScope-    , classroomTopicsScope-    , classroomAnnouncementsScope-    , classroomCourseworkMeReadOnlyScope-    , classroomStudentSubmissionsMeReadOnlyScope-    , classroomGuardianlinksStudentsReadOnlyScope--    -- * API Declaration-    , ClassroomAPI--    -- * Resources--    -- ** classroom.courses.aliases.create-    , module Network.Google.Resource.Classroom.Courses.Aliases.Create--    -- ** classroom.courses.aliases.delete-    , module Network.Google.Resource.Classroom.Courses.Aliases.Delete--    -- ** classroom.courses.aliases.list-    , module Network.Google.Resource.Classroom.Courses.Aliases.List--    -- ** classroom.courses.announcements.create-    , module Network.Google.Resource.Classroom.Courses.Announcements.Create--    -- ** classroom.courses.announcements.delete-    , module Network.Google.Resource.Classroom.Courses.Announcements.Delete--    -- ** classroom.courses.announcements.get-    , module Network.Google.Resource.Classroom.Courses.Announcements.Get--    -- ** classroom.courses.announcements.list-    , module Network.Google.Resource.Classroom.Courses.Announcements.List--    -- ** classroom.courses.announcements.modifyAssignees-    , module Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees--    -- ** classroom.courses.announcements.patch-    , module Network.Google.Resource.Classroom.Courses.Announcements.Patch--    -- ** classroom.courses.courseWork.create-    , module Network.Google.Resource.Classroom.Courses.CourseWork.Create--    -- ** classroom.courses.courseWork.delete-    , module Network.Google.Resource.Classroom.Courses.CourseWork.Delete--    -- ** classroom.courses.courseWork.get-    , module Network.Google.Resource.Classroom.Courses.CourseWork.Get--    -- ** classroom.courses.courseWork.list-    , module Network.Google.Resource.Classroom.Courses.CourseWork.List--    -- ** classroom.courses.courseWork.modifyAssignees-    , module Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees--    -- ** classroom.courses.courseWork.patch-    , module Network.Google.Resource.Classroom.Courses.CourseWork.Patch--    -- ** classroom.courses.courseWork.studentSubmissions.get-    , module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get--    -- ** classroom.courses.courseWork.studentSubmissions.list-    , module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List--    -- ** classroom.courses.courseWork.studentSubmissions.modifyAttachments-    , module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments--    -- ** classroom.courses.courseWork.studentSubmissions.patch-    , module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch--    -- ** classroom.courses.courseWork.studentSubmissions.reclaim-    , module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim--    -- ** classroom.courses.courseWork.studentSubmissions.return-    , module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Return--    -- ** classroom.courses.courseWork.studentSubmissions.turnIn-    , module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn--    -- ** classroom.courses.create-    , module Network.Google.Resource.Classroom.Courses.Create--    -- ** classroom.courses.delete-    , module Network.Google.Resource.Classroom.Courses.Delete--    -- ** classroom.courses.get-    , module Network.Google.Resource.Classroom.Courses.Get--    -- ** classroom.courses.list-    , module Network.Google.Resource.Classroom.Courses.List--    -- ** classroom.courses.patch-    , module Network.Google.Resource.Classroom.Courses.Patch--    -- ** classroom.courses.students.create-    , module Network.Google.Resource.Classroom.Courses.Students.Create--    -- ** classroom.courses.students.delete-    , module Network.Google.Resource.Classroom.Courses.Students.Delete--    -- ** classroom.courses.students.get-    , module Network.Google.Resource.Classroom.Courses.Students.Get--    -- ** classroom.courses.students.list-    , module Network.Google.Resource.Classroom.Courses.Students.List--    -- ** classroom.courses.teachers.create-    , module Network.Google.Resource.Classroom.Courses.Teachers.Create--    -- ** classroom.courses.teachers.delete-    , module Network.Google.Resource.Classroom.Courses.Teachers.Delete--    -- ** classroom.courses.teachers.get-    , module Network.Google.Resource.Classroom.Courses.Teachers.Get--    -- ** classroom.courses.teachers.list-    , module Network.Google.Resource.Classroom.Courses.Teachers.List--    -- ** classroom.courses.topics.create-    , module Network.Google.Resource.Classroom.Courses.Topics.Create--    -- ** classroom.courses.topics.delete-    , module Network.Google.Resource.Classroom.Courses.Topics.Delete--    -- ** classroom.courses.topics.get-    , module Network.Google.Resource.Classroom.Courses.Topics.Get--    -- ** classroom.courses.topics.list-    , module Network.Google.Resource.Classroom.Courses.Topics.List--    -- ** classroom.courses.topics.patch-    , module Network.Google.Resource.Classroom.Courses.Topics.Patch--    -- ** classroom.courses.update-    , module Network.Google.Resource.Classroom.Courses.Update--    -- ** classroom.invitations.accept-    , module Network.Google.Resource.Classroom.Invitations.Accept--    -- ** classroom.invitations.create-    , module Network.Google.Resource.Classroom.Invitations.Create--    -- ** classroom.invitations.delete-    , module Network.Google.Resource.Classroom.Invitations.Delete--    -- ** classroom.invitations.get-    , module Network.Google.Resource.Classroom.Invitations.Get--    -- ** classroom.invitations.list-    , module Network.Google.Resource.Classroom.Invitations.List--    -- ** classroom.registrations.create-    , module Network.Google.Resource.Classroom.Registrations.Create--    -- ** classroom.registrations.delete-    , module Network.Google.Resource.Classroom.Registrations.Delete--    -- ** classroom.userProfiles.get-    , module Network.Google.Resource.Classroom.UserProFiles.Get--    -- ** classroom.userProfiles.guardianInvitations.create-    , module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create--    -- ** classroom.userProfiles.guardianInvitations.get-    , module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get--    -- ** classroom.userProfiles.guardianInvitations.list-    , module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List--    -- ** classroom.userProfiles.guardianInvitations.patch-    , module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch--    -- ** classroom.userProfiles.guardians.delete-    , module Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete--    -- ** classroom.userProfiles.guardians.get-    , module Network.Google.Resource.Classroom.UserProFiles.Guardians.Get--    -- ** classroom.userProfiles.guardians.list-    , module Network.Google.Resource.Classroom.UserProFiles.Guardians.List--    -- * Types--    -- ** ListCourseAliasesResponse-    , ListCourseAliasesResponse-    , listCourseAliasesResponse-    , lcarNextPageToken-    , lcarAliases--    -- ** CourseWork-    , CourseWork-    , courseWork-    , cwCreationTime-    , cwScheduledTime-    , cwState-    , cwAssigneeMode-    , cwMaterials-    , cwCourseId-    , cwIndividualStudentsOptions-    , cwMaxPoints-    , cwWorkType-    , cwDueTime-    , cwAssociatedWithDeveloper-    , cwUpdateTime-    , cwTopicId-    , cwMultipleChoiceQuestion-    , cwId-    , cwSubmissionModificationMode-    , cwDueDate-    , cwCreatorUserId-    , cwTitle-    , cwAlternateLink-    , cwAssignment-    , cwDescription--    -- ** GradeHistoryGradeChangeType-    , GradeHistoryGradeChangeType (..)--    -- ** GradeHistory-    , GradeHistory-    , gradeHistory-    , ghGradeTimestamp-    , ghMaxPoints-    , ghPointsEarned-    , ghActorUserId-    , ghGradeChangeType--    -- ** CourseWorkChangesInfo-    , CourseWorkChangesInfo-    , courseWorkChangesInfo-    , cwciCourseId--    -- ** ModifyCourseWorkAssigneesRequest-    , ModifyCourseWorkAssigneesRequest-    , modifyCourseWorkAssigneesRequest-    , mcwarAssigneeMode-    , mcwarModifyIndividualStudentsOptions--    -- ** CourseCourseState-    , CourseCourseState (..)--    -- ** DriveFile-    , DriveFile-    , driveFile-    , dfThumbnailURL-    , dfId-    , dfTitle-    , dfAlternateLink--    -- ** GuardianInvitation-    , GuardianInvitation-    , guardianInvitation-    , giCreationTime-    , giStudentId-    , giState-    , giInvitationId-    , giInvitedEmailAddress--    -- ** Feed-    , Feed-    , feed-    , fCourseWorkChangesInfo-    , fFeedType-    , fCourseRosterChangesInfo--    -- ** ModifyAnnouncementAssigneesRequest-    , ModifyAnnouncementAssigneesRequest-    , modifyAnnouncementAssigneesRequest-    , maarAssigneeMode-    , maarModifyIndividualStudentsOptions--    -- ** ReturnStudentSubmissionRequest-    , ReturnStudentSubmissionRequest-    , returnStudentSubmissionRequest--    -- ** StateHistoryState-    , StateHistoryState (..)--    -- ** ReclaimStudentSubmissionRequest-    , ReclaimStudentSubmissionRequest-    , reclaimStudentSubmissionRequest--    -- ** CourseWorkWorkType-    , CourseWorkWorkType (..)--    -- ** ListCourseWorkResponse-    , ListCourseWorkResponse-    , listCourseWorkResponse-    , lcwrCourseWork-    , lcwrNextPageToken--    -- ** Empty-    , Empty-    , empty--    -- ** ModifyCourseWorkAssigneesRequestAssigneeMode-    , ModifyCourseWorkAssigneesRequestAssigneeMode (..)--    -- ** GuardianInvitationState-    , GuardianInvitationState (..)--    -- ** SharedDriveFileShareMode-    , SharedDriveFileShareMode (..)--    -- ** GlobalPermission-    , GlobalPermission-    , globalPermission-    , gpPermission--    -- ** ListTopicResponse-    , ListTopicResponse-    , listTopicResponse-    , ltrNextPageToken-    , ltrTopic--    -- ** Link-    , Link-    , link-    , lThumbnailURL-    , lURL-    , lTitle--    -- ** ModifyAnnouncementAssigneesRequestAssigneeMode-    , ModifyAnnouncementAssigneesRequestAssigneeMode (..)--    -- ** IndividualStudentsOptions-    , IndividualStudentsOptions-    , individualStudentsOptions-    , isoStudentIds--    -- ** AssignmentSubmission-    , AssignmentSubmission-    , assignmentSubmission-    , asAttachments--    -- ** ModifyAttachmentsRequest-    , ModifyAttachmentsRequest-    , modifyAttachmentsRequest-    , marAddAttachments--    -- ** ListAnnouncementsResponse-    , ListAnnouncementsResponse-    , listAnnouncementsResponse-    , larNextPageToken-    , larAnnouncements--    -- ** AnnouncementAssigneeMode-    , AnnouncementAssigneeMode (..)--    -- ** CourseWorkState-    , CourseWorkState (..)--    -- ** ListStudentSubmissionsResponse-    , ListStudentSubmissionsResponse-    , listStudentSubmissionsResponse-    , lssrNextPageToken-    , lssrStudentSubmissions--    -- ** Material-    , Material-    , material-    , mDriveFile-    , mLink-    , mYouTubeVideo-    , mForm--    -- ** MultipleChoiceSubmission-    , MultipleChoiceSubmission-    , multipleChoiceSubmission-    , mcsAnswer--    -- ** ListInvitationsResponse-    , ListInvitationsResponse-    , listInvitationsResponse-    , lirNextPageToken-    , lirInvitations--    -- ** Guardian-    , Guardian-    , guardian-    , gStudentId-    , gGuardianId-    , gInvitedEmailAddress-    , gGuardianProFile--    -- ** CourseMaterial-    , CourseMaterial-    , courseMaterial-    , cmDriveFile-    , cmLink-    , cmYouTubeVideo-    , cmForm--    -- ** StudentSubmissionState-    , StudentSubmissionState (..)--    -- ** ShortAnswerSubmission-    , ShortAnswerSubmission-    , shortAnswerSubmission-    , sasAnswer--    -- ** AnnouncementState-    , AnnouncementState (..)--    -- ** Invitation-    , Invitation-    , invitation-    , iCourseId-    , iUserId-    , iRole-    , iId--    -- ** Attachment-    , Attachment-    , attachment-    , aDriveFile-    , aLink-    , aYouTubeVideo-    , aForm--    -- ** Topic-    , Topic-    , topic-    , tCourseId-    , tUpdateTime-    , tTopicId-    , tName--    -- ** Announcement-    , Announcement-    , announcement-    , aCreationTime-    , aScheduledTime-    , aState-    , aAssigneeMode-    , aText-    , aMaterials-    , aCourseId-    , aIndividualStudentsOptions-    , aUpdateTime-    , aId-    , aCreatorUserId-    , aAlternateLink--    -- ** StudentSubmission-    , StudentSubmission-    , studentSubmission-    , ssCreationTime-    , ssLate-    , ssState-    , ssCourseId-    , ssMultipleChoiceSubmission-    , ssAssignmentSubmission-    , ssShortAnswerSubmission-    , ssAssociatedWithDeveloper-    , ssUserId-    , ssUpdateTime-    , ssCourseWorkType-    , ssSubmissionHistory-    , ssAssignedGrade-    , ssId-    , ssDraftGrade-    , ssAlternateLink-    , ssCourseWorkId--    -- ** ListGuardiansResponse-    , ListGuardiansResponse-    , listGuardiansResponse-    , lgrNextPageToken-    , lgrGuardians--    -- ** Date-    , Date-    , date-    , dDay-    , dYear-    , dMonth--    -- ** YouTubeVideo-    , YouTubeVideo-    , youTubeVideo-    , ytvThumbnailURL-    , ytvId-    , ytvTitle-    , ytvAlternateLink--    -- ** Teacher-    , Teacher-    , teacher-    , teaCourseId-    , teaProFile-    , teaUserId--    -- ** CourseMaterialSet-    , CourseMaterialSet-    , courseMaterialSet-    , cmsMaterials-    , cmsTitle--    -- ** Name-    , Name-    , name-    , nGivenName-    , nFullName-    , nFamilyName--    -- ** ListCoursesResponse-    , ListCoursesResponse-    , listCoursesResponse-    , lcrNextPageToken-    , lcrCourses--    -- ** TurnInStudentSubmissionRequest-    , TurnInStudentSubmissionRequest-    , turnInStudentSubmissionRequest--    -- ** Xgafv-    , Xgafv (..)--    -- ** UserProFile-    , UserProFile-    , userProFile-    , upfPhotoURL-    , upfVerifiedTeacher-    , upfName-    , upfEmailAddress-    , upfId-    , upfPermissions--    -- ** DriveFolder-    , DriveFolder-    , driveFolder-    , dId-    , dTitle-    , dAlternateLink--    -- ** SubmissionHistory-    , SubmissionHistory-    , submissionHistory-    , shGradeHistory-    , shStateHistory--    -- ** StateHistory-    , StateHistory-    , stateHistory-    , shState-    , shActorUserId-    , shStateTimestamp--    -- ** MultipleChoiceQuestion-    , MultipleChoiceQuestion-    , multipleChoiceQuestion-    , mcqChoices--    -- ** Course-    , Course-    , course-    , couCreationTime-    , couRoom-    , couCourseMaterialSets-    , couCalendarId-    , couTeacherGroupEmail-    , couTeacherFolder-    , couCourseState-    , couGuardiansEnabled-    , couEnrollmentCode-    , couUpdateTime-    , couOwnerId-    , couName-    , couId-    , couAlternateLink-    , couCourseGroupEmail-    , couDescription-    , couDescriptionHeading-    , couSection--    -- ** InvitationRole-    , InvitationRole (..)--    -- ** StudentSubmissionCourseWorkType-    , StudentSubmissionCourseWorkType (..)--    -- ** TimeOfDay'-    , TimeOfDay'-    , timeOfDay-    , todNanos-    , todHours-    , todMinutes-    , todSeconds--    -- ** FeedFeedType-    , FeedFeedType (..)--    -- ** ListGuardianInvitationsResponse-    , ListGuardianInvitationsResponse-    , listGuardianInvitationsResponse-    , lgirNextPageToken-    , lgirGuardianInvitations--    -- ** Assignment-    , Assignment-    , assignment-    , aStudentWorkFolder--    -- ** ListStudentsResponse-    , ListStudentsResponse-    , listStudentsResponse-    , lsrNextPageToken-    , lsrStudents--    -- ** SharedDriveFile-    , SharedDriveFile-    , sharedDriveFile-    , sdfDriveFile-    , sdfShareMode--    -- ** CourseAlias-    , CourseAlias-    , courseAlias-    , caAlias--    -- ** CourseRosterChangesInfo-    , CourseRosterChangesInfo-    , courseRosterChangesInfo-    , crciCourseId--    -- ** ModifyIndividualStudentsOptions-    , ModifyIndividualStudentsOptions-    , modifyIndividualStudentsOptions-    , misoAddStudentIds-    , misoRemoveStudentIds--    -- ** CloudPubsubTopic-    , CloudPubsubTopic-    , cloudPubsubTopic-    , cptTopicName--    -- ** GlobalPermissionPermission-    , GlobalPermissionPermission (..)--    -- ** CourseWorkAssigneeMode-    , CourseWorkAssigneeMode (..)--    -- ** Form-    , Form-    , form-    , fThumbnailURL-    , fFormURL-    , fTitle-    , fResponseURL--    -- ** ListTeachersResponse-    , ListTeachersResponse-    , listTeachersResponse-    , lNextPageToken-    , lTeachers--    -- ** Student-    , Student-    , student-    , sCourseId-    , sProFile-    , sStudentWorkFolder-    , sUserId--    -- ** CourseWorkSubmissionModificationMode-    , CourseWorkSubmissionModificationMode (..)--    -- ** Registration-    , Registration-    , registration-    , rRegistrationId-    , rExpiryTime-    , rFeed-    , rCloudPubsubTopic-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude-import           Network.Google.Resource.Classroom.Courses.Aliases.Create-import           Network.Google.Resource.Classroom.Courses.Aliases.Delete-import           Network.Google.Resource.Classroom.Courses.Aliases.List-import           Network.Google.Resource.Classroom.Courses.Announcements.Create-import           Network.Google.Resource.Classroom.Courses.Announcements.Delete-import           Network.Google.Resource.Classroom.Courses.Announcements.Get-import           Network.Google.Resource.Classroom.Courses.Announcements.List-import           Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees-import           Network.Google.Resource.Classroom.Courses.Announcements.Patch-import           Network.Google.Resource.Classroom.Courses.CourseWork.Create-import           Network.Google.Resource.Classroom.Courses.CourseWork.Delete-import           Network.Google.Resource.Classroom.Courses.CourseWork.Get-import           Network.Google.Resource.Classroom.Courses.CourseWork.List-import           Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees-import           Network.Google.Resource.Classroom.Courses.CourseWork.Patch-import           Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get-import           Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List-import           Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments-import           Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch-import           Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim-import           Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Return-import           Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn-import           Network.Google.Resource.Classroom.Courses.Create-import           Network.Google.Resource.Classroom.Courses.Delete-import           Network.Google.Resource.Classroom.Courses.Get-import           Network.Google.Resource.Classroom.Courses.List-import           Network.Google.Resource.Classroom.Courses.Patch-import           Network.Google.Resource.Classroom.Courses.Students.Create-import           Network.Google.Resource.Classroom.Courses.Students.Delete-import           Network.Google.Resource.Classroom.Courses.Students.Get-import           Network.Google.Resource.Classroom.Courses.Students.List-import           Network.Google.Resource.Classroom.Courses.Teachers.Create-import           Network.Google.Resource.Classroom.Courses.Teachers.Delete-import           Network.Google.Resource.Classroom.Courses.Teachers.Get-import           Network.Google.Resource.Classroom.Courses.Teachers.List-import           Network.Google.Resource.Classroom.Courses.Topics.Create-import           Network.Google.Resource.Classroom.Courses.Topics.Delete-import           Network.Google.Resource.Classroom.Courses.Topics.Get-import           Network.Google.Resource.Classroom.Courses.Topics.List-import           Network.Google.Resource.Classroom.Courses.Topics.Patch-import           Network.Google.Resource.Classroom.Courses.Update-import           Network.Google.Resource.Classroom.Invitations.Accept-import           Network.Google.Resource.Classroom.Invitations.Create-import           Network.Google.Resource.Classroom.Invitations.Delete-import           Network.Google.Resource.Classroom.Invitations.Get-import           Network.Google.Resource.Classroom.Invitations.List-import           Network.Google.Resource.Classroom.Registrations.Create-import           Network.Google.Resource.Classroom.Registrations.Delete-import           Network.Google.Resource.Classroom.UserProFiles.Get-import           Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create-import           Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get-import           Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List-import           Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch-import           Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete-import           Network.Google.Resource.Classroom.UserProFiles.Guardians.Get-import           Network.Google.Resource.Classroom.UserProFiles.Guardians.List--{- $resources-TODO--}---- | Represents the entirety of the methods and resources available for the Google Classroom API service.-type ClassroomAPI =-     InvitationsListResource :<|>-       InvitationsAcceptResource-       :<|> InvitationsGetResource-       :<|> InvitationsCreateResource-       :<|> InvitationsDeleteResource-       :<|>-       CoursesCourseWorkStudentSubmissionsReturnResource-       :<|> CoursesCourseWorkStudentSubmissionsListResource-       :<|>-       CoursesCourseWorkStudentSubmissionsReclaimResource-       :<|> CoursesCourseWorkStudentSubmissionsPatchResource-       :<|> CoursesCourseWorkStudentSubmissionsGetResource-       :<|>-       CoursesCourseWorkStudentSubmissionsTurnInResource-       :<|>-       CoursesCourseWorkStudentSubmissionsModifyAttachmentsResource-       :<|> CoursesCourseWorkListResource-       :<|> CoursesCourseWorkPatchResource-       :<|> CoursesCourseWorkGetResource-       :<|> CoursesCourseWorkCreateResource-       :<|> CoursesCourseWorkModifyAssigneesResource-       :<|> CoursesCourseWorkDeleteResource-       :<|> CoursesTeachersListResource-       :<|> CoursesTeachersGetResource-       :<|> CoursesTeachersCreateResource-       :<|> CoursesTeachersDeleteResource-       :<|> CoursesAnnouncementsListResource-       :<|> CoursesAnnouncementsPatchResource-       :<|> CoursesAnnouncementsGetResource-       :<|> CoursesAnnouncementsCreateResource-       :<|> CoursesAnnouncementsModifyAssigneesResource-       :<|> CoursesAnnouncementsDeleteResource-       :<|> CoursesTopicsListResource-       :<|> CoursesTopicsPatchResource-       :<|> CoursesTopicsGetResource-       :<|> CoursesTopicsCreateResource-       :<|> CoursesTopicsDeleteResource-       :<|> CoursesAliasesListResource-       :<|> CoursesAliasesCreateResource-       :<|> CoursesAliasesDeleteResource-       :<|> CoursesStudentsListResource-       :<|> CoursesStudentsGetResource-       :<|> CoursesStudentsCreateResource-       :<|> CoursesStudentsDeleteResource-       :<|> CoursesListResource-       :<|> CoursesPatchResource-       :<|> CoursesGetResource-       :<|> CoursesCreateResource-       :<|> CoursesDeleteResource-       :<|> CoursesUpdateResource-       :<|> UserProFilesGuardiansListResource-       :<|> UserProFilesGuardiansGetResource-       :<|> UserProFilesGuardiansDeleteResource-       :<|> UserProFilesGuardianInvitationsListResource-       :<|> UserProFilesGuardianInvitationsPatchResource-       :<|> UserProFilesGuardianInvitationsGetResource-       :<|> UserProFilesGuardianInvitationsCreateResource-       :<|> UserProFilesGetResource-       :<|> RegistrationsCreateResource-       :<|> RegistrationsDeleteResource
− gen/Network/Google/Classroom/Types.hs
@@ -1,630 +0,0 @@-{-# LANGUAGE DataKinds          #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE NoImplicitPrelude  #-}-{-# LANGUAGE OverloadedStrings  #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module      : Network.Google.Classroom.Types--- 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)----module Network.Google.Classroom.Types-    (-    -- * Service Configuration-      classroomService--    -- * OAuth Scopes-    , classroomRostersReadOnlyScope-    , classroomCoursesScope-    , classroomPushNotificationsScope-    , classroomCourseworkStudentsReadOnlyScope-    , classroomTopicsReadOnlyScope-    , classroomProFileEmailsScope-    , classroomProFilePhotosScope-    , classroomCourseworkMeScope-    , classroomAnnouncementsReadOnlyScope-    , classroomGuardianlinksStudentsScope-    , classroomStudentSubmissionsStudentsReadOnlyScope-    , classroomGuardianlinksMeReadOnlyScope-    , classroomRostersScope-    , classroomCoursesReadOnlyScope-    , classroomCourseworkStudentsScope-    , classroomTopicsScope-    , classroomAnnouncementsScope-    , classroomCourseworkMeReadOnlyScope-    , classroomStudentSubmissionsMeReadOnlyScope-    , classroomGuardianlinksStudentsReadOnlyScope--    -- * ListCourseAliasesResponse-    , ListCourseAliasesResponse-    , listCourseAliasesResponse-    , lcarNextPageToken-    , lcarAliases--    -- * CourseWork-    , CourseWork-    , courseWork-    , cwCreationTime-    , cwScheduledTime-    , cwState-    , cwAssigneeMode-    , cwMaterials-    , cwCourseId-    , cwIndividualStudentsOptions-    , cwMaxPoints-    , cwWorkType-    , cwDueTime-    , cwAssociatedWithDeveloper-    , cwUpdateTime-    , cwTopicId-    , cwMultipleChoiceQuestion-    , cwId-    , cwSubmissionModificationMode-    , cwDueDate-    , cwCreatorUserId-    , cwTitle-    , cwAlternateLink-    , cwAssignment-    , cwDescription--    -- * GradeHistoryGradeChangeType-    , GradeHistoryGradeChangeType (..)--    -- * GradeHistory-    , GradeHistory-    , gradeHistory-    , ghGradeTimestamp-    , ghMaxPoints-    , ghPointsEarned-    , ghActorUserId-    , ghGradeChangeType--    -- * CourseWorkChangesInfo-    , CourseWorkChangesInfo-    , courseWorkChangesInfo-    , cwciCourseId--    -- * ModifyCourseWorkAssigneesRequest-    , ModifyCourseWorkAssigneesRequest-    , modifyCourseWorkAssigneesRequest-    , mcwarAssigneeMode-    , mcwarModifyIndividualStudentsOptions--    -- * CourseCourseState-    , CourseCourseState (..)--    -- * DriveFile-    , DriveFile-    , driveFile-    , dfThumbnailURL-    , dfId-    , dfTitle-    , dfAlternateLink--    -- * GuardianInvitation-    , GuardianInvitation-    , guardianInvitation-    , giCreationTime-    , giStudentId-    , giState-    , giInvitationId-    , giInvitedEmailAddress--    -- * Feed-    , Feed-    , feed-    , fCourseWorkChangesInfo-    , fFeedType-    , fCourseRosterChangesInfo--    -- * ModifyAnnouncementAssigneesRequest-    , ModifyAnnouncementAssigneesRequest-    , modifyAnnouncementAssigneesRequest-    , maarAssigneeMode-    , maarModifyIndividualStudentsOptions--    -- * ReturnStudentSubmissionRequest-    , ReturnStudentSubmissionRequest-    , returnStudentSubmissionRequest--    -- * StateHistoryState-    , StateHistoryState (..)--    -- * ReclaimStudentSubmissionRequest-    , ReclaimStudentSubmissionRequest-    , reclaimStudentSubmissionRequest--    -- * CourseWorkWorkType-    , CourseWorkWorkType (..)--    -- * ListCourseWorkResponse-    , ListCourseWorkResponse-    , listCourseWorkResponse-    , lcwrCourseWork-    , lcwrNextPageToken--    -- * Empty-    , Empty-    , empty--    -- * ModifyCourseWorkAssigneesRequestAssigneeMode-    , ModifyCourseWorkAssigneesRequestAssigneeMode (..)--    -- * GuardianInvitationState-    , GuardianInvitationState (..)--    -- * SharedDriveFileShareMode-    , SharedDriveFileShareMode (..)--    -- * GlobalPermission-    , GlobalPermission-    , globalPermission-    , gpPermission--    -- * ListTopicResponse-    , ListTopicResponse-    , listTopicResponse-    , ltrNextPageToken-    , ltrTopic--    -- * Link-    , Link-    , link-    , lThumbnailURL-    , lURL-    , lTitle--    -- * ModifyAnnouncementAssigneesRequestAssigneeMode-    , ModifyAnnouncementAssigneesRequestAssigneeMode (..)--    -- * IndividualStudentsOptions-    , IndividualStudentsOptions-    , individualStudentsOptions-    , isoStudentIds--    -- * AssignmentSubmission-    , AssignmentSubmission-    , assignmentSubmission-    , asAttachments--    -- * ModifyAttachmentsRequest-    , ModifyAttachmentsRequest-    , modifyAttachmentsRequest-    , marAddAttachments--    -- * ListAnnouncementsResponse-    , ListAnnouncementsResponse-    , listAnnouncementsResponse-    , larNextPageToken-    , larAnnouncements--    -- * AnnouncementAssigneeMode-    , AnnouncementAssigneeMode (..)--    -- * CourseWorkState-    , CourseWorkState (..)--    -- * ListStudentSubmissionsResponse-    , ListStudentSubmissionsResponse-    , listStudentSubmissionsResponse-    , lssrNextPageToken-    , lssrStudentSubmissions--    -- * Material-    , Material-    , material-    , mDriveFile-    , mLink-    , mYouTubeVideo-    , mForm--    -- * MultipleChoiceSubmission-    , MultipleChoiceSubmission-    , multipleChoiceSubmission-    , mcsAnswer--    -- * ListInvitationsResponse-    , ListInvitationsResponse-    , listInvitationsResponse-    , lirNextPageToken-    , lirInvitations--    -- * Guardian-    , Guardian-    , guardian-    , gStudentId-    , gGuardianId-    , gInvitedEmailAddress-    , gGuardianProFile--    -- * CourseMaterial-    , CourseMaterial-    , courseMaterial-    , cmDriveFile-    , cmLink-    , cmYouTubeVideo-    , cmForm--    -- * StudentSubmissionState-    , StudentSubmissionState (..)--    -- * ShortAnswerSubmission-    , ShortAnswerSubmission-    , shortAnswerSubmission-    , sasAnswer--    -- * AnnouncementState-    , AnnouncementState (..)--    -- * Invitation-    , Invitation-    , invitation-    , iCourseId-    , iUserId-    , iRole-    , iId--    -- * Attachment-    , Attachment-    , attachment-    , aDriveFile-    , aLink-    , aYouTubeVideo-    , aForm--    -- * Topic-    , Topic-    , topic-    , tCourseId-    , tUpdateTime-    , tTopicId-    , tName--    -- * Announcement-    , Announcement-    , announcement-    , aCreationTime-    , aScheduledTime-    , aState-    , aAssigneeMode-    , aText-    , aMaterials-    , aCourseId-    , aIndividualStudentsOptions-    , aUpdateTime-    , aId-    , aCreatorUserId-    , aAlternateLink--    -- * StudentSubmission-    , StudentSubmission-    , studentSubmission-    , ssCreationTime-    , ssLate-    , ssState-    , ssCourseId-    , ssMultipleChoiceSubmission-    , ssAssignmentSubmission-    , ssShortAnswerSubmission-    , ssAssociatedWithDeveloper-    , ssUserId-    , ssUpdateTime-    , ssCourseWorkType-    , ssSubmissionHistory-    , ssAssignedGrade-    , ssId-    , ssDraftGrade-    , ssAlternateLink-    , ssCourseWorkId--    -- * ListGuardiansResponse-    , ListGuardiansResponse-    , listGuardiansResponse-    , lgrNextPageToken-    , lgrGuardians--    -- * Date-    , Date-    , date-    , dDay-    , dYear-    , dMonth--    -- * YouTubeVideo-    , YouTubeVideo-    , youTubeVideo-    , ytvThumbnailURL-    , ytvId-    , ytvTitle-    , ytvAlternateLink--    -- * Teacher-    , Teacher-    , teacher-    , teaCourseId-    , teaProFile-    , teaUserId--    -- * CourseMaterialSet-    , CourseMaterialSet-    , courseMaterialSet-    , cmsMaterials-    , cmsTitle--    -- * Name-    , Name-    , name-    , nGivenName-    , nFullName-    , nFamilyName--    -- * ListCoursesResponse-    , ListCoursesResponse-    , listCoursesResponse-    , lcrNextPageToken-    , lcrCourses--    -- * TurnInStudentSubmissionRequest-    , TurnInStudentSubmissionRequest-    , turnInStudentSubmissionRequest--    -- * Xgafv-    , Xgafv (..)--    -- * UserProFile-    , UserProFile-    , userProFile-    , upfPhotoURL-    , upfVerifiedTeacher-    , upfName-    , upfEmailAddress-    , upfId-    , upfPermissions--    -- * DriveFolder-    , DriveFolder-    , driveFolder-    , dId-    , dTitle-    , dAlternateLink--    -- * SubmissionHistory-    , SubmissionHistory-    , submissionHistory-    , shGradeHistory-    , shStateHistory--    -- * StateHistory-    , StateHistory-    , stateHistory-    , shState-    , shActorUserId-    , shStateTimestamp--    -- * MultipleChoiceQuestion-    , MultipleChoiceQuestion-    , multipleChoiceQuestion-    , mcqChoices--    -- * Course-    , Course-    , course-    , couCreationTime-    , couRoom-    , couCourseMaterialSets-    , couCalendarId-    , couTeacherGroupEmail-    , couTeacherFolder-    , couCourseState-    , couGuardiansEnabled-    , couEnrollmentCode-    , couUpdateTime-    , couOwnerId-    , couName-    , couId-    , couAlternateLink-    , couCourseGroupEmail-    , couDescription-    , couDescriptionHeading-    , couSection--    -- * InvitationRole-    , InvitationRole (..)--    -- * StudentSubmissionCourseWorkType-    , StudentSubmissionCourseWorkType (..)--    -- * TimeOfDay'-    , TimeOfDay'-    , timeOfDay-    , todNanos-    , todHours-    , todMinutes-    , todSeconds--    -- * FeedFeedType-    , FeedFeedType (..)--    -- * ListGuardianInvitationsResponse-    , ListGuardianInvitationsResponse-    , listGuardianInvitationsResponse-    , lgirNextPageToken-    , lgirGuardianInvitations--    -- * Assignment-    , Assignment-    , assignment-    , aStudentWorkFolder--    -- * ListStudentsResponse-    , ListStudentsResponse-    , listStudentsResponse-    , lsrNextPageToken-    , lsrStudents--    -- * SharedDriveFile-    , SharedDriveFile-    , sharedDriveFile-    , sdfDriveFile-    , sdfShareMode--    -- * CourseAlias-    , CourseAlias-    , courseAlias-    , caAlias--    -- * CourseRosterChangesInfo-    , CourseRosterChangesInfo-    , courseRosterChangesInfo-    , crciCourseId--    -- * ModifyIndividualStudentsOptions-    , ModifyIndividualStudentsOptions-    , modifyIndividualStudentsOptions-    , misoAddStudentIds-    , misoRemoveStudentIds--    -- * CloudPubsubTopic-    , CloudPubsubTopic-    , cloudPubsubTopic-    , cptTopicName--    -- * GlobalPermissionPermission-    , GlobalPermissionPermission (..)--    -- * CourseWorkAssigneeMode-    , CourseWorkAssigneeMode (..)--    -- * Form-    , Form-    , form-    , fThumbnailURL-    , fFormURL-    , fTitle-    , fResponseURL--    -- * ListTeachersResponse-    , ListTeachersResponse-    , listTeachersResponse-    , lNextPageToken-    , lTeachers--    -- * Student-    , Student-    , student-    , sCourseId-    , sProFile-    , sStudentWorkFolder-    , sUserId--    -- * CourseWorkSubmissionModificationMode-    , CourseWorkSubmissionModificationMode (..)--    -- * Registration-    , Registration-    , registration-    , rRegistrationId-    , rExpiryTime-    , rFeed-    , rCloudPubsubTopic-    ) where--import           Network.Google.Classroom.Types.Product-import           Network.Google.Classroom.Types.Sum-import           Network.Google.Prelude---- | Default request referring to version 'v1' of the Google Classroom API. This contains the host and root path used as a starting point for constructing service requests.-classroomService :: ServiceConfig-classroomService-  = defaultService (ServiceId "classroom:v1")-      "classroom.googleapis.com"---- | View your Google Classroom class rosters-classroomRostersReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.rosters.readonly"]-classroomRostersReadOnlyScope = Proxy---- | Manage your Google Classroom classes-classroomCoursesScope :: Proxy '["https://www.googleapis.com/auth/classroom.courses"]-classroomCoursesScope = Proxy---- | Receive notifications about your Google Classroom data-classroomPushNotificationsScope :: Proxy '["https://www.googleapis.com/auth/classroom.push-notifications"]-classroomPushNotificationsScope = Proxy---- | View course work and grades for students in the Google Classroom classes--- you teach or administer-classroomCourseworkStudentsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.coursework.students.readonly"]-classroomCourseworkStudentsReadOnlyScope = Proxy---- | View topics in Google Classroom-classroomTopicsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.topics.readonly"]-classroomTopicsReadOnlyScope = Proxy---- | View the email addresses of people in your classes-classroomProFileEmailsScope :: Proxy '["https://www.googleapis.com/auth/classroom.profile.emails"]-classroomProFileEmailsScope = Proxy---- | View the profile photos of people in your classes-classroomProFilePhotosScope :: Proxy '["https://www.googleapis.com/auth/classroom.profile.photos"]-classroomProFilePhotosScope = Proxy---- | Manage your course work and view your grades in Google Classroom-classroomCourseworkMeScope :: Proxy '["https://www.googleapis.com/auth/classroom.coursework.me"]-classroomCourseworkMeScope = Proxy---- | View announcements in Google Classroom-classroomAnnouncementsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.announcements.readonly"]-classroomAnnouncementsReadOnlyScope = Proxy---- | View and manage guardians for students in your Google Classroom classes-classroomGuardianlinksStudentsScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.students"]-classroomGuardianlinksStudentsScope = Proxy---- | View course work and grades for students in the Google Classroom classes--- you teach or administer-classroomStudentSubmissionsStudentsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.student-submissions.students.readonly"]-classroomStudentSubmissionsStudentsReadOnlyScope = Proxy---- | View your Google Classroom guardians-classroomGuardianlinksMeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly"]-classroomGuardianlinksMeReadOnlyScope = Proxy---- | Manage your Google Classroom class rosters-classroomRostersScope :: Proxy '["https://www.googleapis.com/auth/classroom.rosters"]-classroomRostersScope = Proxy---- | View your Google Classroom classes-classroomCoursesReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.courses.readonly"]-classroomCoursesReadOnlyScope = Proxy---- | Manage course work and grades for students in the Google Classroom--- classes you teach and view the course work and grades for classes you--- administer-classroomCourseworkStudentsScope :: Proxy '["https://www.googleapis.com/auth/classroom.coursework.students"]-classroomCourseworkStudentsScope = Proxy---- | See, create, and edit topics in Google Classroom-classroomTopicsScope :: Proxy '["https://www.googleapis.com/auth/classroom.topics"]-classroomTopicsScope = Proxy---- | View and manage announcements in Google Classroom-classroomAnnouncementsScope :: Proxy '["https://www.googleapis.com/auth/classroom.announcements"]-classroomAnnouncementsScope = Proxy---- | View your course work and grades in Google Classroom-classroomCourseworkMeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.coursework.me.readonly"]-classroomCourseworkMeReadOnlyScope = Proxy---- | View your course work and grades in Google Classroom-classroomStudentSubmissionsMeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.student-submissions.me.readonly"]-classroomStudentSubmissionsMeReadOnlyScope = Proxy---- | View guardians for students in your Google Classroom classes-classroomGuardianlinksStudentsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"]-classroomGuardianlinksStudentsReadOnlyScope = Proxy
− gen/Network/Google/Classroom/Types/Product.hs
@@ -1,4145 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE NoImplicitPrelude  #-}-{-# LANGUAGE OverloadedStrings  #-}-{-# LANGUAGE RecordWildCards    #-}--{-# OPTIONS_GHC -fno-warn-unused-binds   #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module      : Network.Google.Classroom.Types.Product--- 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)----module Network.Google.Classroom.Types.Product where--import           Network.Google.Classroom.Types.Sum-import           Network.Google.Prelude---- | Response when listing course aliases.------ /See:/ 'listCourseAliasesResponse' smart constructor.-data ListCourseAliasesResponse =-  ListCourseAliasesResponse'-    { _lcarNextPageToken :: !(Maybe Text)-    , _lcarAliases       :: !(Maybe [CourseAlias])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListCourseAliasesResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lcarNextPageToken'------ * 'lcarAliases'-listCourseAliasesResponse-    :: ListCourseAliasesResponse-listCourseAliasesResponse =-  ListCourseAliasesResponse'-    {_lcarNextPageToken = Nothing, _lcarAliases = Nothing}----- | Token identifying the next page of results to return. If empty, no--- further results are available.-lcarNextPageToken :: Lens' ListCourseAliasesResponse (Maybe Text)-lcarNextPageToken-  = lens _lcarNextPageToken-      (\ s a -> s{_lcarNextPageToken = a})---- | The course aliases.-lcarAliases :: Lens' ListCourseAliasesResponse [CourseAlias]-lcarAliases-  = lens _lcarAliases (\ s a -> s{_lcarAliases = a}) .-      _Default-      . _Coerce--instance FromJSON ListCourseAliasesResponse where-        parseJSON-          = withObject "ListCourseAliasesResponse"-              (\ o ->-                 ListCourseAliasesResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "aliases" .!= mempty))--instance ToJSON ListCourseAliasesResponse where-        toJSON ListCourseAliasesResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _lcarNextPageToken,-                  ("aliases" .=) <$> _lcarAliases])---- | Course work created by a teacher for students of the course.------ /See:/ 'courseWork' smart constructor.-data CourseWork =-  CourseWork'-    { _cwCreationTime               :: !(Maybe DateTime')-    , _cwScheduledTime              :: !(Maybe DateTime')-    , _cwState                      :: !(Maybe CourseWorkState)-    , _cwAssigneeMode               :: !(Maybe CourseWorkAssigneeMode)-    , _cwMaterials                  :: !(Maybe [Material])-    , _cwCourseId                   :: !(Maybe Text)-    , _cwIndividualStudentsOptions  :: !(Maybe IndividualStudentsOptions)-    , _cwMaxPoints                  :: !(Maybe (Textual Double))-    , _cwWorkType                   :: !(Maybe CourseWorkWorkType)-    , _cwDueTime                    :: !(Maybe TimeOfDay')-    , _cwAssociatedWithDeveloper    :: !(Maybe Bool)-    , _cwUpdateTime                 :: !(Maybe DateTime')-    , _cwTopicId                    :: !(Maybe Text)-    , _cwMultipleChoiceQuestion     :: !(Maybe MultipleChoiceQuestion)-    , _cwId                         :: !(Maybe Text)-    , _cwSubmissionModificationMode :: !(Maybe CourseWorkSubmissionModificationMode)-    , _cwDueDate                    :: !(Maybe Date)-    , _cwCreatorUserId              :: !(Maybe Text)-    , _cwTitle                      :: !(Maybe Text)-    , _cwAlternateLink              :: !(Maybe Text)-    , _cwAssignment                 :: !(Maybe Assignment)-    , _cwDescription                :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CourseWork' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cwCreationTime'------ * 'cwScheduledTime'------ * 'cwState'------ * 'cwAssigneeMode'------ * 'cwMaterials'------ * 'cwCourseId'------ * 'cwIndividualStudentsOptions'------ * 'cwMaxPoints'------ * 'cwWorkType'------ * 'cwDueTime'------ * 'cwAssociatedWithDeveloper'------ * 'cwUpdateTime'------ * 'cwTopicId'------ * 'cwMultipleChoiceQuestion'------ * 'cwId'------ * 'cwSubmissionModificationMode'------ * 'cwDueDate'------ * 'cwCreatorUserId'------ * 'cwTitle'------ * 'cwAlternateLink'------ * 'cwAssignment'------ * 'cwDescription'-courseWork-    :: CourseWork-courseWork =-  CourseWork'-    { _cwCreationTime = Nothing-    , _cwScheduledTime = Nothing-    , _cwState = Nothing-    , _cwAssigneeMode = Nothing-    , _cwMaterials = Nothing-    , _cwCourseId = Nothing-    , _cwIndividualStudentsOptions = Nothing-    , _cwMaxPoints = Nothing-    , _cwWorkType = Nothing-    , _cwDueTime = Nothing-    , _cwAssociatedWithDeveloper = Nothing-    , _cwUpdateTime = Nothing-    , _cwTopicId = Nothing-    , _cwMultipleChoiceQuestion = Nothing-    , _cwId = Nothing-    , _cwSubmissionModificationMode = Nothing-    , _cwDueDate = Nothing-    , _cwCreatorUserId = Nothing-    , _cwTitle = Nothing-    , _cwAlternateLink = Nothing-    , _cwAssignment = Nothing-    , _cwDescription = Nothing-    }----- | Timestamp when this course work was created. Read-only.-cwCreationTime :: Lens' CourseWork (Maybe UTCTime)-cwCreationTime-  = lens _cwCreationTime-      (\ s a -> s{_cwCreationTime = a})-      . mapping _DateTime---- | Optional timestamp when this course work is scheduled to be published.-cwScheduledTime :: Lens' CourseWork (Maybe UTCTime)-cwScheduledTime-  = lens _cwScheduledTime-      (\ s a -> s{_cwScheduledTime = a})-      . mapping _DateTime---- | Status of this course work. If unspecified, the default state is--- \`DRAFT\`.-cwState :: Lens' CourseWork (Maybe CourseWorkState)-cwState = lens _cwState (\ s a -> s{_cwState = a})---- | Assignee mode of the coursework. If unspecified, the default value is--- \`ALL_STUDENTS\`.-cwAssigneeMode :: Lens' CourseWork (Maybe CourseWorkAssigneeMode)-cwAssigneeMode-  = lens _cwAssigneeMode-      (\ s a -> s{_cwAssigneeMode = a})---- | Additional materials. CourseWork must have no more than 20 material--- items.-cwMaterials :: Lens' CourseWork [Material]-cwMaterials-  = lens _cwMaterials (\ s a -> s{_cwMaterials = a}) .-      _Default-      . _Coerce---- | Identifier of the course. Read-only.-cwCourseId :: Lens' CourseWork (Maybe Text)-cwCourseId-  = lens _cwCourseId (\ s a -> s{_cwCourseId = a})---- | Identifiers of students with access to the coursework. This field is set--- only if \`assigneeMode\` is \`INDIVIDUAL_STUDENTS\`. If the--- \`assigneeMode\` is \`INDIVIDUAL_STUDENTS\`, then only students--- specified in this field will be assigned the coursework.-cwIndividualStudentsOptions :: Lens' CourseWork (Maybe IndividualStudentsOptions)-cwIndividualStudentsOptions-  = lens _cwIndividualStudentsOptions-      (\ s a -> s{_cwIndividualStudentsOptions = a})---- | Maximum grade for this course work. If zero or unspecified, this--- assignment is considered ungraded. This must be a non-negative integer--- value.-cwMaxPoints :: Lens' CourseWork (Maybe Double)-cwMaxPoints-  = lens _cwMaxPoints (\ s a -> s{_cwMaxPoints = a}) .-      mapping _Coerce---- | Type of this course work. The type is set when the course work is--- created and cannot be changed.-cwWorkType :: Lens' CourseWork (Maybe CourseWorkWorkType)-cwWorkType-  = lens _cwWorkType (\ s a -> s{_cwWorkType = a})---- | Optional time of day, in UTC, that submissions for this course work are--- due. This must be specified if \`due_date\` is specified.-cwDueTime :: Lens' CourseWork (Maybe TimeOfDay')-cwDueTime-  = lens _cwDueTime (\ s a -> s{_cwDueTime = a})---- | Whether this course work item is associated with the Developer Console--- project making the request. See google.classroom.Work.CreateCourseWork--- for more details. Read-only.-cwAssociatedWithDeveloper :: Lens' CourseWork (Maybe Bool)-cwAssociatedWithDeveloper-  = lens _cwAssociatedWithDeveloper-      (\ s a -> s{_cwAssociatedWithDeveloper = a})---- | Timestamp of the most recent change to this course work. Read-only.-cwUpdateTime :: Lens' CourseWork (Maybe UTCTime)-cwUpdateTime-  = lens _cwUpdateTime (\ s a -> s{_cwUpdateTime = a})-      . mapping _DateTime---- | Identifier for the topic that this coursework is associated with. Must--- match an existing topic in the course.-cwTopicId :: Lens' CourseWork (Maybe Text)-cwTopicId-  = lens _cwTopicId (\ s a -> s{_cwTopicId = a})---- | Multiple choice question details. For read operations, this field is--- populated only when \`work_type\` is \`MULTIPLE_CHOICE_QUESTION\`. For--- write operations, this field must be specified when creating course work--- with a \`work_type\` of \`MULTIPLE_CHOICE_QUESTION\`, and it must not be--- set otherwise.-cwMultipleChoiceQuestion :: Lens' CourseWork (Maybe MultipleChoiceQuestion)-cwMultipleChoiceQuestion-  = lens _cwMultipleChoiceQuestion-      (\ s a -> s{_cwMultipleChoiceQuestion = a})---- | Classroom-assigned identifier of this course work, unique per course.--- Read-only.-cwId :: Lens' CourseWork (Maybe Text)-cwId = lens _cwId (\ s a -> s{_cwId = a})---- | Setting to determine when students are allowed to modify submissions. If--- unspecified, the default value is \`MODIFIABLE_UNTIL_TURNED_IN\`.-cwSubmissionModificationMode :: Lens' CourseWork (Maybe CourseWorkSubmissionModificationMode)-cwSubmissionModificationMode-  = lens _cwSubmissionModificationMode-      (\ s a -> s{_cwSubmissionModificationMode = a})---- | Optional date, in UTC, that submissions for this course work are due.--- This must be specified if \`due_time\` is specified.-cwDueDate :: Lens' CourseWork (Maybe Date)-cwDueDate-  = lens _cwDueDate (\ s a -> s{_cwDueDate = a})---- | Identifier for the user that created the coursework. Read-only.-cwCreatorUserId :: Lens' CourseWork (Maybe Text)-cwCreatorUserId-  = lens _cwCreatorUserId-      (\ s a -> s{_cwCreatorUserId = a})---- | Title of this course work. The title must be a valid UTF-8 string--- containing between 1 and 3000 characters.-cwTitle :: Lens' CourseWork (Maybe Text)-cwTitle = lens _cwTitle (\ s a -> s{_cwTitle = a})---- | Absolute link to this course work in the Classroom web UI. This is only--- populated if \`state\` is \`PUBLISHED\`. Read-only.-cwAlternateLink :: Lens' CourseWork (Maybe Text)-cwAlternateLink-  = lens _cwAlternateLink-      (\ s a -> s{_cwAlternateLink = a})---- | Assignment details. This is populated only when \`work_type\` is--- \`ASSIGNMENT\`. Read-only.-cwAssignment :: Lens' CourseWork (Maybe Assignment)-cwAssignment-  = lens _cwAssignment (\ s a -> s{_cwAssignment = a})---- | Optional description of this course work. If set, the description must--- be a valid UTF-8 string containing no more than 30,000 characters.-cwDescription :: Lens' CourseWork (Maybe Text)-cwDescription-  = lens _cwDescription-      (\ s a -> s{_cwDescription = a})--instance FromJSON CourseWork where-        parseJSON-          = withObject "CourseWork"-              (\ o ->-                 CourseWork' <$>-                   (o .:? "creationTime") <*> (o .:? "scheduledTime")-                     <*> (o .:? "state")-                     <*> (o .:? "assigneeMode")-                     <*> (o .:? "materials" .!= mempty)-                     <*> (o .:? "courseId")-                     <*> (o .:? "individualStudentsOptions")-                     <*> (o .:? "maxPoints")-                     <*> (o .:? "workType")-                     <*> (o .:? "dueTime")-                     <*> (o .:? "associatedWithDeveloper")-                     <*> (o .:? "updateTime")-                     <*> (o .:? "topicId")-                     <*> (o .:? "multipleChoiceQuestion")-                     <*> (o .:? "id")-                     <*> (o .:? "submissionModificationMode")-                     <*> (o .:? "dueDate")-                     <*> (o .:? "creatorUserId")-                     <*> (o .:? "title")-                     <*> (o .:? "alternateLink")-                     <*> (o .:? "assignment")-                     <*> (o .:? "description"))--instance ToJSON CourseWork where-        toJSON CourseWork'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _cwCreationTime,-                  ("scheduledTime" .=) <$> _cwScheduledTime,-                  ("state" .=) <$> _cwState,-                  ("assigneeMode" .=) <$> _cwAssigneeMode,-                  ("materials" .=) <$> _cwMaterials,-                  ("courseId" .=) <$> _cwCourseId,-                  ("individualStudentsOptions" .=) <$>-                    _cwIndividualStudentsOptions,-                  ("maxPoints" .=) <$> _cwMaxPoints,-                  ("workType" .=) <$> _cwWorkType,-                  ("dueTime" .=) <$> _cwDueTime,-                  ("associatedWithDeveloper" .=) <$>-                    _cwAssociatedWithDeveloper,-                  ("updateTime" .=) <$> _cwUpdateTime,-                  ("topicId" .=) <$> _cwTopicId,-                  ("multipleChoiceQuestion" .=) <$>-                    _cwMultipleChoiceQuestion,-                  ("id" .=) <$> _cwId,-                  ("submissionModificationMode" .=) <$>-                    _cwSubmissionModificationMode,-                  ("dueDate" .=) <$> _cwDueDate,-                  ("creatorUserId" .=) <$> _cwCreatorUserId,-                  ("title" .=) <$> _cwTitle,-                  ("alternateLink" .=) <$> _cwAlternateLink,-                  ("assignment" .=) <$> _cwAssignment,-                  ("description" .=) <$> _cwDescription])---- | The history of each grade on this submission.------ /See:/ 'gradeHistory' smart constructor.-data GradeHistory =-  GradeHistory'-    { _ghGradeTimestamp  :: !(Maybe DateTime')-    , _ghMaxPoints       :: !(Maybe (Textual Double))-    , _ghPointsEarned    :: !(Maybe (Textual Double))-    , _ghActorUserId     :: !(Maybe Text)-    , _ghGradeChangeType :: !(Maybe GradeHistoryGradeChangeType)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'GradeHistory' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ghGradeTimestamp'------ * 'ghMaxPoints'------ * 'ghPointsEarned'------ * 'ghActorUserId'------ * 'ghGradeChangeType'-gradeHistory-    :: GradeHistory-gradeHistory =-  GradeHistory'-    { _ghGradeTimestamp = Nothing-    , _ghMaxPoints = Nothing-    , _ghPointsEarned = Nothing-    , _ghActorUserId = Nothing-    , _ghGradeChangeType = Nothing-    }----- | When the grade of the submission was changed.-ghGradeTimestamp :: Lens' GradeHistory (Maybe UTCTime)-ghGradeTimestamp-  = lens _ghGradeTimestamp-      (\ s a -> s{_ghGradeTimestamp = a})-      . mapping _DateTime---- | The denominator of the grade at this time in the submission grade--- history.-ghMaxPoints :: Lens' GradeHistory (Maybe Double)-ghMaxPoints-  = lens _ghMaxPoints (\ s a -> s{_ghMaxPoints = a}) .-      mapping _Coerce---- | The numerator of the grade at this time in the submission grade history.-ghPointsEarned :: Lens' GradeHistory (Maybe Double)-ghPointsEarned-  = lens _ghPointsEarned-      (\ s a -> s{_ghPointsEarned = a})-      . mapping _Coerce---- | The teacher who made the grade change.-ghActorUserId :: Lens' GradeHistory (Maybe Text)-ghActorUserId-  = lens _ghActorUserId-      (\ s a -> s{_ghActorUserId = a})---- | The type of grade change at this time in the submission grade history.-ghGradeChangeType :: Lens' GradeHistory (Maybe GradeHistoryGradeChangeType)-ghGradeChangeType-  = lens _ghGradeChangeType-      (\ s a -> s{_ghGradeChangeType = a})--instance FromJSON GradeHistory where-        parseJSON-          = withObject "GradeHistory"-              (\ o ->-                 GradeHistory' <$>-                   (o .:? "gradeTimestamp") <*> (o .:? "maxPoints") <*>-                     (o .:? "pointsEarned")-                     <*> (o .:? "actorUserId")-                     <*> (o .:? "gradeChangeType"))--instance ToJSON GradeHistory where-        toJSON GradeHistory'{..}-          = object-              (catMaybes-                 [("gradeTimestamp" .=) <$> _ghGradeTimestamp,-                  ("maxPoints" .=) <$> _ghMaxPoints,-                  ("pointsEarned" .=) <$> _ghPointsEarned,-                  ("actorUserId" .=) <$> _ghActorUserId,-                  ("gradeChangeType" .=) <$> _ghGradeChangeType])---- | Information about a \`Feed\` with a \`feed_type\` of--- \`COURSE_WORK_CHANGES\`.------ /See:/ 'courseWorkChangesInfo' smart constructor.-newtype CourseWorkChangesInfo =-  CourseWorkChangesInfo'-    { _cwciCourseId :: Maybe Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CourseWorkChangesInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cwciCourseId'-courseWorkChangesInfo-    :: CourseWorkChangesInfo-courseWorkChangesInfo = CourseWorkChangesInfo' {_cwciCourseId = Nothing}----- | The \`course_id\` of the course to subscribe to work changes for.-cwciCourseId :: Lens' CourseWorkChangesInfo (Maybe Text)-cwciCourseId-  = lens _cwciCourseId (\ s a -> s{_cwciCourseId = a})--instance FromJSON CourseWorkChangesInfo where-        parseJSON-          = withObject "CourseWorkChangesInfo"-              (\ o ->-                 CourseWorkChangesInfo' <$> (o .:? "courseId"))--instance ToJSON CourseWorkChangesInfo where-        toJSON CourseWorkChangesInfo'{..}-          = object-              (catMaybes [("courseId" .=) <$> _cwciCourseId])---- | Request to modify assignee mode and options of a coursework.------ /See:/ 'modifyCourseWorkAssigneesRequest' smart constructor.-data ModifyCourseWorkAssigneesRequest =-  ModifyCourseWorkAssigneesRequest'-    { _mcwarAssigneeMode                    :: !(Maybe ModifyCourseWorkAssigneesRequestAssigneeMode)-    , _mcwarModifyIndividualStudentsOptions :: !(Maybe ModifyIndividualStudentsOptions)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ModifyCourseWorkAssigneesRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mcwarAssigneeMode'------ * 'mcwarModifyIndividualStudentsOptions'-modifyCourseWorkAssigneesRequest-    :: ModifyCourseWorkAssigneesRequest-modifyCourseWorkAssigneesRequest =-  ModifyCourseWorkAssigneesRequest'-    { _mcwarAssigneeMode = Nothing-    , _mcwarModifyIndividualStudentsOptions = Nothing-    }----- | Mode of the coursework describing whether it will be assigned to all--- students or specified individual students.-mcwarAssigneeMode :: Lens' ModifyCourseWorkAssigneesRequest (Maybe ModifyCourseWorkAssigneesRequestAssigneeMode)-mcwarAssigneeMode-  = lens _mcwarAssigneeMode-      (\ s a -> s{_mcwarAssigneeMode = a})---- | Set which students are assigned or not assigned to the coursework. Must--- be specified only when \`assigneeMode\` is \`INDIVIDUAL_STUDENTS\`.-mcwarModifyIndividualStudentsOptions :: Lens' ModifyCourseWorkAssigneesRequest (Maybe ModifyIndividualStudentsOptions)-mcwarModifyIndividualStudentsOptions-  = lens _mcwarModifyIndividualStudentsOptions-      (\ s a ->-         s{_mcwarModifyIndividualStudentsOptions = a})--instance FromJSON ModifyCourseWorkAssigneesRequest-         where-        parseJSON-          = withObject "ModifyCourseWorkAssigneesRequest"-              (\ o ->-                 ModifyCourseWorkAssigneesRequest' <$>-                   (o .:? "assigneeMode") <*>-                     (o .:? "modifyIndividualStudentsOptions"))--instance ToJSON ModifyCourseWorkAssigneesRequest-         where-        toJSON ModifyCourseWorkAssigneesRequest'{..}-          = object-              (catMaybes-                 [("assigneeMode" .=) <$> _mcwarAssigneeMode,-                  ("modifyIndividualStudentsOptions" .=) <$>-                    _mcwarModifyIndividualStudentsOptions])---- | Representation of a Google Drive file.------ /See:/ 'driveFile' smart constructor.-data DriveFile =-  DriveFile'-    { _dfThumbnailURL  :: !(Maybe Text)-    , _dfId            :: !(Maybe Text)-    , _dfTitle         :: !(Maybe Text)-    , _dfAlternateLink :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'DriveFile' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dfThumbnailURL'------ * 'dfId'------ * 'dfTitle'------ * 'dfAlternateLink'-driveFile-    :: DriveFile-driveFile =-  DriveFile'-    { _dfThumbnailURL = Nothing-    , _dfId = Nothing-    , _dfTitle = Nothing-    , _dfAlternateLink = Nothing-    }----- | URL of a thumbnail image of the Drive item. Read-only.-dfThumbnailURL :: Lens' DriveFile (Maybe Text)-dfThumbnailURL-  = lens _dfThumbnailURL-      (\ s a -> s{_dfThumbnailURL = a})---- | Drive API resource ID.-dfId :: Lens' DriveFile (Maybe Text)-dfId = lens _dfId (\ s a -> s{_dfId = a})---- | Title of the Drive item. Read-only.-dfTitle :: Lens' DriveFile (Maybe Text)-dfTitle = lens _dfTitle (\ s a -> s{_dfTitle = a})---- | URL that can be used to access the Drive item. Read-only.-dfAlternateLink :: Lens' DriveFile (Maybe Text)-dfAlternateLink-  = lens _dfAlternateLink-      (\ s a -> s{_dfAlternateLink = a})--instance FromJSON DriveFile where-        parseJSON-          = withObject "DriveFile"-              (\ o ->-                 DriveFile' <$>-                   (o .:? "thumbnailUrl") <*> (o .:? "id") <*>-                     (o .:? "title")-                     <*> (o .:? "alternateLink"))--instance ToJSON DriveFile where-        toJSON DriveFile'{..}-          = object-              (catMaybes-                 [("thumbnailUrl" .=) <$> _dfThumbnailURL,-                  ("id" .=) <$> _dfId, ("title" .=) <$> _dfTitle,-                  ("alternateLink" .=) <$> _dfAlternateLink])---- | An invitation to become the guardian of a specified user, sent to a--- specified email address.------ /See:/ 'guardianInvitation' smart constructor.-data GuardianInvitation =-  GuardianInvitation'-    { _giCreationTime        :: !(Maybe DateTime')-    , _giStudentId           :: !(Maybe Text)-    , _giState               :: !(Maybe GuardianInvitationState)-    , _giInvitationId        :: !(Maybe Text)-    , _giInvitedEmailAddress :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'GuardianInvitation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'giCreationTime'------ * 'giStudentId'------ * 'giState'------ * 'giInvitationId'------ * 'giInvitedEmailAddress'-guardianInvitation-    :: GuardianInvitation-guardianInvitation =-  GuardianInvitation'-    { _giCreationTime = Nothing-    , _giStudentId = Nothing-    , _giState = Nothing-    , _giInvitationId = Nothing-    , _giInvitedEmailAddress = Nothing-    }----- | The time that this invitation was created. Read-only.-giCreationTime :: Lens' GuardianInvitation (Maybe UTCTime)-giCreationTime-  = lens _giCreationTime-      (\ s a -> s{_giCreationTime = a})-      . mapping _DateTime---- | ID of the student (in standard format)-giStudentId :: Lens' GuardianInvitation (Maybe Text)-giStudentId-  = lens _giStudentId (\ s a -> s{_giStudentId = a})---- | The state that this invitation is in.-giState :: Lens' GuardianInvitation (Maybe GuardianInvitationState)-giState = lens _giState (\ s a -> s{_giState = a})---- | Unique identifier for this invitation. Read-only.-giInvitationId :: Lens' GuardianInvitation (Maybe Text)-giInvitationId-  = lens _giInvitationId-      (\ s a -> s{_giInvitationId = a})---- | Email address that the invitation was sent to. This field is only--- visible to domain administrators.-giInvitedEmailAddress :: Lens' GuardianInvitation (Maybe Text)-giInvitedEmailAddress-  = lens _giInvitedEmailAddress-      (\ s a -> s{_giInvitedEmailAddress = a})--instance FromJSON GuardianInvitation where-        parseJSON-          = withObject "GuardianInvitation"-              (\ o ->-                 GuardianInvitation' <$>-                   (o .:? "creationTime") <*> (o .:? "studentId") <*>-                     (o .:? "state")-                     <*> (o .:? "invitationId")-                     <*> (o .:? "invitedEmailAddress"))--instance ToJSON GuardianInvitation where-        toJSON GuardianInvitation'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _giCreationTime,-                  ("studentId" .=) <$> _giStudentId,-                  ("state" .=) <$> _giState,-                  ("invitationId" .=) <$> _giInvitationId,-                  ("invitedEmailAddress" .=) <$>-                    _giInvitedEmailAddress])---- | A class of notifications that an application can register to receive.--- For example: \"all roster changes for a domain\".------ /See:/ 'feed' smart constructor.-data Feed =-  Feed'-    { _fCourseWorkChangesInfo   :: !(Maybe CourseWorkChangesInfo)-    , _fFeedType                :: !(Maybe FeedFeedType)-    , _fCourseRosterChangesInfo :: !(Maybe CourseRosterChangesInfo)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Feed' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'fCourseWorkChangesInfo'------ * 'fFeedType'------ * 'fCourseRosterChangesInfo'-feed-    :: Feed-feed =-  Feed'-    { _fCourseWorkChangesInfo = Nothing-    , _fFeedType = Nothing-    , _fCourseRosterChangesInfo = Nothing-    }----- | Information about a \`Feed\` with a \`feed_type\` of--- \`COURSE_WORK_CHANGES\`. This field must be specified if \`feed_type\`--- is \`COURSE_WORK_CHANGES\`.-fCourseWorkChangesInfo :: Lens' Feed (Maybe CourseWorkChangesInfo)-fCourseWorkChangesInfo-  = lens _fCourseWorkChangesInfo-      (\ s a -> s{_fCourseWorkChangesInfo = a})---- | The type of feed.-fFeedType :: Lens' Feed (Maybe FeedFeedType)-fFeedType-  = lens _fFeedType (\ s a -> s{_fFeedType = a})---- | Information about a \`Feed\` with a \`feed_type\` of--- \`COURSE_ROSTER_CHANGES\`. This field must be specified if \`feed_type\`--- is \`COURSE_ROSTER_CHANGES\`.-fCourseRosterChangesInfo :: Lens' Feed (Maybe CourseRosterChangesInfo)-fCourseRosterChangesInfo-  = lens _fCourseRosterChangesInfo-      (\ s a -> s{_fCourseRosterChangesInfo = a})--instance FromJSON Feed where-        parseJSON-          = withObject "Feed"-              (\ o ->-                 Feed' <$>-                   (o .:? "courseWorkChangesInfo") <*>-                     (o .:? "feedType")-                     <*> (o .:? "courseRosterChangesInfo"))--instance ToJSON Feed where-        toJSON Feed'{..}-          = object-              (catMaybes-                 [("courseWorkChangesInfo" .=) <$>-                    _fCourseWorkChangesInfo,-                  ("feedType" .=) <$> _fFeedType,-                  ("courseRosterChangesInfo" .=) <$>-                    _fCourseRosterChangesInfo])---- | Request to modify assignee mode and options of an announcement.------ /See:/ 'modifyAnnouncementAssigneesRequest' smart constructor.-data ModifyAnnouncementAssigneesRequest =-  ModifyAnnouncementAssigneesRequest'-    { _maarAssigneeMode                    :: !(Maybe ModifyAnnouncementAssigneesRequestAssigneeMode)-    , _maarModifyIndividualStudentsOptions :: !(Maybe ModifyIndividualStudentsOptions)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ModifyAnnouncementAssigneesRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'maarAssigneeMode'------ * 'maarModifyIndividualStudentsOptions'-modifyAnnouncementAssigneesRequest-    :: ModifyAnnouncementAssigneesRequest-modifyAnnouncementAssigneesRequest =-  ModifyAnnouncementAssigneesRequest'-    { _maarAssigneeMode = Nothing-    , _maarModifyIndividualStudentsOptions = Nothing-    }----- | Mode of the announcement describing whether it will be accessible by all--- students or specified individual students.-maarAssigneeMode :: Lens' ModifyAnnouncementAssigneesRequest (Maybe ModifyAnnouncementAssigneesRequestAssigneeMode)-maarAssigneeMode-  = lens _maarAssigneeMode-      (\ s a -> s{_maarAssigneeMode = a})---- | Set which students can view or cannot view the announcement. Must be--- specified only when \`assigneeMode\` is \`INDIVIDUAL_STUDENTS\`.-maarModifyIndividualStudentsOptions :: Lens' ModifyAnnouncementAssigneesRequest (Maybe ModifyIndividualStudentsOptions)-maarModifyIndividualStudentsOptions-  = lens _maarModifyIndividualStudentsOptions-      (\ s a ->-         s{_maarModifyIndividualStudentsOptions = a})--instance FromJSON ModifyAnnouncementAssigneesRequest-         where-        parseJSON-          = withObject "ModifyAnnouncementAssigneesRequest"-              (\ o ->-                 ModifyAnnouncementAssigneesRequest' <$>-                   (o .:? "assigneeMode") <*>-                     (o .:? "modifyIndividualStudentsOptions"))--instance ToJSON ModifyAnnouncementAssigneesRequest-         where-        toJSON ModifyAnnouncementAssigneesRequest'{..}-          = object-              (catMaybes-                 [("assigneeMode" .=) <$> _maarAssigneeMode,-                  ("modifyIndividualStudentsOptions" .=) <$>-                    _maarModifyIndividualStudentsOptions])---- | Request to return a student submission.------ /See:/ 'returnStudentSubmissionRequest' smart constructor.-data ReturnStudentSubmissionRequest =-  ReturnStudentSubmissionRequest'-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ReturnStudentSubmissionRequest' with the minimum fields required to make a request.----returnStudentSubmissionRequest-    :: ReturnStudentSubmissionRequest-returnStudentSubmissionRequest = ReturnStudentSubmissionRequest'---instance FromJSON ReturnStudentSubmissionRequest-         where-        parseJSON-          = withObject "ReturnStudentSubmissionRequest"-              (\ o -> pure ReturnStudentSubmissionRequest')--instance ToJSON ReturnStudentSubmissionRequest where-        toJSON = const emptyObject---- | Request to reclaim a student submission.------ /See:/ 'reclaimStudentSubmissionRequest' smart constructor.-data ReclaimStudentSubmissionRequest =-  ReclaimStudentSubmissionRequest'-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ReclaimStudentSubmissionRequest' with the minimum fields required to make a request.----reclaimStudentSubmissionRequest-    :: ReclaimStudentSubmissionRequest-reclaimStudentSubmissionRequest = ReclaimStudentSubmissionRequest'---instance FromJSON ReclaimStudentSubmissionRequest-         where-        parseJSON-          = withObject "ReclaimStudentSubmissionRequest"-              (\ o -> pure ReclaimStudentSubmissionRequest')--instance ToJSON ReclaimStudentSubmissionRequest where-        toJSON = const emptyObject---- | Response when listing course work.------ /See:/ 'listCourseWorkResponse' smart constructor.-data ListCourseWorkResponse =-  ListCourseWorkResponse'-    { _lcwrCourseWork    :: !(Maybe [CourseWork])-    , _lcwrNextPageToken :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListCourseWorkResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lcwrCourseWork'------ * 'lcwrNextPageToken'-listCourseWorkResponse-    :: ListCourseWorkResponse-listCourseWorkResponse =-  ListCourseWorkResponse'-    {_lcwrCourseWork = Nothing, _lcwrNextPageToken = Nothing}----- | Course work items that match the request.-lcwrCourseWork :: Lens' ListCourseWorkResponse [CourseWork]-lcwrCourseWork-  = lens _lcwrCourseWork-      (\ s a -> s{_lcwrCourseWork = a})-      . _Default-      . _Coerce---- | Token identifying the next page of results to return. If empty, no--- further results are available.-lcwrNextPageToken :: Lens' ListCourseWorkResponse (Maybe Text)-lcwrNextPageToken-  = lens _lcwrNextPageToken-      (\ s a -> s{_lcwrNextPageToken = a})--instance FromJSON ListCourseWorkResponse where-        parseJSON-          = withObject "ListCourseWorkResponse"-              (\ o ->-                 ListCourseWorkResponse' <$>-                   (o .:? "courseWork" .!= mempty) <*>-                     (o .:? "nextPageToken"))--instance ToJSON ListCourseWorkResponse where-        toJSON ListCourseWorkResponse'{..}-          = object-              (catMaybes-                 [("courseWork" .=) <$> _lcwrCourseWork,-                  ("nextPageToken" .=) <$> _lcwrNextPageToken])---- | 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 \`{}\`.------ /See:/ 'empty' smart constructor.-data Empty =-  Empty'-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Empty' with the minimum fields required to make a request.----empty-    :: Empty-empty = Empty'---instance FromJSON Empty where-        parseJSON = withObject "Empty" (\ o -> pure Empty')--instance ToJSON Empty where-        toJSON = const emptyObject---- | Global user permission description.------ /See:/ 'globalPermission' smart constructor.-newtype GlobalPermission =-  GlobalPermission'-    { _gpPermission :: Maybe GlobalPermissionPermission-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'GlobalPermission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gpPermission'-globalPermission-    :: GlobalPermission-globalPermission = GlobalPermission' {_gpPermission = Nothing}----- | Permission value.-gpPermission :: Lens' GlobalPermission (Maybe GlobalPermissionPermission)-gpPermission-  = lens _gpPermission (\ s a -> s{_gpPermission = a})--instance FromJSON GlobalPermission where-        parseJSON-          = withObject "GlobalPermission"-              (\ o -> GlobalPermission' <$> (o .:? "permission"))--instance ToJSON GlobalPermission where-        toJSON GlobalPermission'{..}-          = object-              (catMaybes [("permission" .=) <$> _gpPermission])---- | Response when listing topics.------ /See:/ 'listTopicResponse' smart constructor.-data ListTopicResponse =-  ListTopicResponse'-    { _ltrNextPageToken :: !(Maybe Text)-    , _ltrTopic         :: !(Maybe [Topic])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListTopicResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ltrNextPageToken'------ * 'ltrTopic'-listTopicResponse-    :: ListTopicResponse-listTopicResponse =-  ListTopicResponse' {_ltrNextPageToken = Nothing, _ltrTopic = Nothing}----- | Token identifying the next page of results to return. If empty, no--- further results are available.-ltrNextPageToken :: Lens' ListTopicResponse (Maybe Text)-ltrNextPageToken-  = lens _ltrNextPageToken-      (\ s a -> s{_ltrNextPageToken = a})---- | Topic items that match the request.-ltrTopic :: Lens' ListTopicResponse [Topic]-ltrTopic-  = lens _ltrTopic (\ s a -> s{_ltrTopic = a}) .-      _Default-      . _Coerce--instance FromJSON ListTopicResponse where-        parseJSON-          = withObject "ListTopicResponse"-              (\ o ->-                 ListTopicResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "topic" .!= mempty))--instance ToJSON ListTopicResponse where-        toJSON ListTopicResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _ltrNextPageToken,-                  ("topic" .=) <$> _ltrTopic])---- | URL item.------ /See:/ 'link' smart constructor.-data Link =-  Link'-    { _lThumbnailURL :: !(Maybe Text)-    , _lURL          :: !(Maybe Text)-    , _lTitle        :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Link' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lThumbnailURL'------ * 'lURL'------ * 'lTitle'-link-    :: Link-link = Link' {_lThumbnailURL = Nothing, _lURL = Nothing, _lTitle = Nothing}----- | URL of a thumbnail image of the target URL. Read-only.-lThumbnailURL :: Lens' Link (Maybe Text)-lThumbnailURL-  = lens _lThumbnailURL-      (\ s a -> s{_lThumbnailURL = a})---- | URL to link to. This must be a valid UTF-8 string containing between 1--- and 2024 characters.-lURL :: Lens' Link (Maybe Text)-lURL = lens _lURL (\ s a -> s{_lURL = a})---- | Title of the target of the URL. Read-only.-lTitle :: Lens' Link (Maybe Text)-lTitle = lens _lTitle (\ s a -> s{_lTitle = a})--instance FromJSON Link where-        parseJSON-          = withObject "Link"-              (\ o ->-                 Link' <$>-                   (o .:? "thumbnailUrl") <*> (o .:? "url") <*>-                     (o .:? "title"))--instance ToJSON Link where-        toJSON Link'{..}-          = object-              (catMaybes-                 [("thumbnailUrl" .=) <$> _lThumbnailURL,-                  ("url" .=) <$> _lURL, ("title" .=) <$> _lTitle])---- | Assignee details about a coursework\/announcement. This field is set if--- and only if \`assigneeMode\` is \`INDIVIDUAL_STUDENTS\`.------ /See:/ 'individualStudentsOptions' smart constructor.-newtype IndividualStudentsOptions =-  IndividualStudentsOptions'-    { _isoStudentIds :: Maybe [Text]-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'IndividualStudentsOptions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'isoStudentIds'-individualStudentsOptions-    :: IndividualStudentsOptions-individualStudentsOptions =-  IndividualStudentsOptions' {_isoStudentIds = Nothing}----- | Identifiers for the students that have access to the--- coursework\/announcement.-isoStudentIds :: Lens' IndividualStudentsOptions [Text]-isoStudentIds-  = lens _isoStudentIds-      (\ s a -> s{_isoStudentIds = a})-      . _Default-      . _Coerce--instance FromJSON IndividualStudentsOptions where-        parseJSON-          = withObject "IndividualStudentsOptions"-              (\ o ->-                 IndividualStudentsOptions' <$>-                   (o .:? "studentIds" .!= mempty))--instance ToJSON IndividualStudentsOptions where-        toJSON IndividualStudentsOptions'{..}-          = object-              (catMaybes [("studentIds" .=) <$> _isoStudentIds])---- | Student work for an assignment.------ /See:/ 'assignmentSubmission' smart constructor.-newtype AssignmentSubmission =-  AssignmentSubmission'-    { _asAttachments :: Maybe [Attachment]-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'AssignmentSubmission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'asAttachments'-assignmentSubmission-    :: AssignmentSubmission-assignmentSubmission = AssignmentSubmission' {_asAttachments = Nothing}----- | Attachments added by the student. Drive files that correspond to--- materials with a share mode of STUDENT_COPY may not exist yet if the--- student has not accessed the assignment in Classroom. Some attachment--- metadata is only populated if the requesting user has permission to--- access it. Identifier and alternate_link fields are always available,--- but others (e.g. title) may not be.-asAttachments :: Lens' AssignmentSubmission [Attachment]-asAttachments-  = lens _asAttachments-      (\ s a -> s{_asAttachments = a})-      . _Default-      . _Coerce--instance FromJSON AssignmentSubmission where-        parseJSON-          = withObject "AssignmentSubmission"-              (\ o ->-                 AssignmentSubmission' <$>-                   (o .:? "attachments" .!= mempty))--instance ToJSON AssignmentSubmission where-        toJSON AssignmentSubmission'{..}-          = object-              (catMaybes [("attachments" .=) <$> _asAttachments])---- | Request to modify the attachments of a student submission.------ /See:/ 'modifyAttachmentsRequest' smart constructor.-newtype ModifyAttachmentsRequest =-  ModifyAttachmentsRequest'-    { _marAddAttachments :: Maybe [Attachment]-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ModifyAttachmentsRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'marAddAttachments'-modifyAttachmentsRequest-    :: ModifyAttachmentsRequest-modifyAttachmentsRequest =-  ModifyAttachmentsRequest' {_marAddAttachments = Nothing}----- | Attachments to add. A student submission may not have more than 20--- attachments. Form attachments are not supported.-marAddAttachments :: Lens' ModifyAttachmentsRequest [Attachment]-marAddAttachments-  = lens _marAddAttachments-      (\ s a -> s{_marAddAttachments = a})-      . _Default-      . _Coerce--instance FromJSON ModifyAttachmentsRequest where-        parseJSON-          = withObject "ModifyAttachmentsRequest"-              (\ o ->-                 ModifyAttachmentsRequest' <$>-                   (o .:? "addAttachments" .!= mempty))--instance ToJSON ModifyAttachmentsRequest where-        toJSON ModifyAttachmentsRequest'{..}-          = object-              (catMaybes-                 [("addAttachments" .=) <$> _marAddAttachments])---- | Response when listing course work.------ /See:/ 'listAnnouncementsResponse' smart constructor.-data ListAnnouncementsResponse =-  ListAnnouncementsResponse'-    { _larNextPageToken :: !(Maybe Text)-    , _larAnnouncements :: !(Maybe [Announcement])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListAnnouncementsResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'larNextPageToken'------ * 'larAnnouncements'-listAnnouncementsResponse-    :: ListAnnouncementsResponse-listAnnouncementsResponse =-  ListAnnouncementsResponse'-    {_larNextPageToken = Nothing, _larAnnouncements = Nothing}----- | Token identifying the next page of results to return. If empty, no--- further results are available.-larNextPageToken :: Lens' ListAnnouncementsResponse (Maybe Text)-larNextPageToken-  = lens _larNextPageToken-      (\ s a -> s{_larNextPageToken = a})---- | Announcement items that match the request.-larAnnouncements :: Lens' ListAnnouncementsResponse [Announcement]-larAnnouncements-  = lens _larAnnouncements-      (\ s a -> s{_larAnnouncements = a})-      . _Default-      . _Coerce--instance FromJSON ListAnnouncementsResponse where-        parseJSON-          = withObject "ListAnnouncementsResponse"-              (\ o ->-                 ListAnnouncementsResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "announcements" .!= mempty))--instance ToJSON ListAnnouncementsResponse where-        toJSON ListAnnouncementsResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _larNextPageToken,-                  ("announcements" .=) <$> _larAnnouncements])---- | Response when listing student submissions.------ /See:/ 'listStudentSubmissionsResponse' smart constructor.-data ListStudentSubmissionsResponse =-  ListStudentSubmissionsResponse'-    { _lssrNextPageToken      :: !(Maybe Text)-    , _lssrStudentSubmissions :: !(Maybe [StudentSubmission])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListStudentSubmissionsResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lssrNextPageToken'------ * 'lssrStudentSubmissions'-listStudentSubmissionsResponse-    :: ListStudentSubmissionsResponse-listStudentSubmissionsResponse =-  ListStudentSubmissionsResponse'-    {_lssrNextPageToken = Nothing, _lssrStudentSubmissions = Nothing}----- | Token identifying the next page of results to return. If empty, no--- further results are available.-lssrNextPageToken :: Lens' ListStudentSubmissionsResponse (Maybe Text)-lssrNextPageToken-  = lens _lssrNextPageToken-      (\ s a -> s{_lssrNextPageToken = a})---- | Student work that matches the request.-lssrStudentSubmissions :: Lens' ListStudentSubmissionsResponse [StudentSubmission]-lssrStudentSubmissions-  = lens _lssrStudentSubmissions-      (\ s a -> s{_lssrStudentSubmissions = a})-      . _Default-      . _Coerce--instance FromJSON ListStudentSubmissionsResponse-         where-        parseJSON-          = withObject "ListStudentSubmissionsResponse"-              (\ o ->-                 ListStudentSubmissionsResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "studentSubmissions" .!= mempty))--instance ToJSON ListStudentSubmissionsResponse where-        toJSON ListStudentSubmissionsResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _lssrNextPageToken,-                  ("studentSubmissions" .=) <$>-                    _lssrStudentSubmissions])---- | Material attached to course work. When creating attachments, setting the--- \`form\` field is not supported.------ /See:/ 'material' smart constructor.-data Material =-  Material'-    { _mDriveFile    :: !(Maybe SharedDriveFile)-    , _mLink         :: !(Maybe Link)-    , _mYouTubeVideo :: !(Maybe YouTubeVideo)-    , _mForm         :: !(Maybe Form)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Material' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mDriveFile'------ * 'mLink'------ * 'mYouTubeVideo'------ * 'mForm'-material-    :: Material-material =-  Material'-    { _mDriveFile = Nothing-    , _mLink = Nothing-    , _mYouTubeVideo = Nothing-    , _mForm = Nothing-    }----- | Google Drive file material.-mDriveFile :: Lens' Material (Maybe SharedDriveFile)-mDriveFile-  = lens _mDriveFile (\ s a -> s{_mDriveFile = a})---- | Link material. On creation, will be upgraded to a more appropriate type--- if possible, and this will be reflected in the response.-mLink :: Lens' Material (Maybe Link)-mLink = lens _mLink (\ s a -> s{_mLink = a})---- | YouTube video material.-mYouTubeVideo :: Lens' Material (Maybe YouTubeVideo)-mYouTubeVideo-  = lens _mYouTubeVideo-      (\ s a -> s{_mYouTubeVideo = a})---- | Google Forms material.-mForm :: Lens' Material (Maybe Form)-mForm = lens _mForm (\ s a -> s{_mForm = a})--instance FromJSON Material where-        parseJSON-          = withObject "Material"-              (\ o ->-                 Material' <$>-                   (o .:? "driveFile") <*> (o .:? "link") <*>-                     (o .:? "youtubeVideo")-                     <*> (o .:? "form"))--instance ToJSON Material where-        toJSON Material'{..}-          = object-              (catMaybes-                 [("driveFile" .=) <$> _mDriveFile,-                  ("link" .=) <$> _mLink,-                  ("youtubeVideo" .=) <$> _mYouTubeVideo,-                  ("form" .=) <$> _mForm])---- | Student work for a multiple-choice question.------ /See:/ 'multipleChoiceSubmission' smart constructor.-newtype MultipleChoiceSubmission =-  MultipleChoiceSubmission'-    { _mcsAnswer :: Maybe Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'MultipleChoiceSubmission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mcsAnswer'-multipleChoiceSubmission-    :: MultipleChoiceSubmission-multipleChoiceSubmission = MultipleChoiceSubmission' {_mcsAnswer = Nothing}----- | Student\'s select choice.-mcsAnswer :: Lens' MultipleChoiceSubmission (Maybe Text)-mcsAnswer-  = lens _mcsAnswer (\ s a -> s{_mcsAnswer = a})--instance FromJSON MultipleChoiceSubmission where-        parseJSON-          = withObject "MultipleChoiceSubmission"-              (\ o ->-                 MultipleChoiceSubmission' <$> (o .:? "answer"))--instance ToJSON MultipleChoiceSubmission where-        toJSON MultipleChoiceSubmission'{..}-          = object (catMaybes [("answer" .=) <$> _mcsAnswer])---- | Response when listing invitations.------ /See:/ 'listInvitationsResponse' smart constructor.-data ListInvitationsResponse =-  ListInvitationsResponse'-    { _lirNextPageToken :: !(Maybe Text)-    , _lirInvitations   :: !(Maybe [Invitation])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListInvitationsResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lirNextPageToken'------ * 'lirInvitations'-listInvitationsResponse-    :: ListInvitationsResponse-listInvitationsResponse =-  ListInvitationsResponse'-    {_lirNextPageToken = Nothing, _lirInvitations = Nothing}----- | Token identifying the next page of results to return. If empty, no--- further results are available.-lirNextPageToken :: Lens' ListInvitationsResponse (Maybe Text)-lirNextPageToken-  = lens _lirNextPageToken-      (\ s a -> s{_lirNextPageToken = a})---- | Invitations that match the list request.-lirInvitations :: Lens' ListInvitationsResponse [Invitation]-lirInvitations-  = lens _lirInvitations-      (\ s a -> s{_lirInvitations = a})-      . _Default-      . _Coerce--instance FromJSON ListInvitationsResponse where-        parseJSON-          = withObject "ListInvitationsResponse"-              (\ o ->-                 ListInvitationsResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "invitations" .!= mempty))--instance ToJSON ListInvitationsResponse where-        toJSON ListInvitationsResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _lirNextPageToken,-                  ("invitations" .=) <$> _lirInvitations])---- | Association between a student and a guardian of that student. The--- guardian may receive information about the student\'s course work.------ /See:/ 'guardian' smart constructor.-data Guardian =-  Guardian'-    { _gStudentId           :: !(Maybe Text)-    , _gGuardianId          :: !(Maybe Text)-    , _gInvitedEmailAddress :: !(Maybe Text)-    , _gGuardianProFile     :: !(Maybe UserProFile)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Guardian' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gStudentId'------ * 'gGuardianId'------ * 'gInvitedEmailAddress'------ * 'gGuardianProFile'-guardian-    :: Guardian-guardian =-  Guardian'-    { _gStudentId = Nothing-    , _gGuardianId = Nothing-    , _gInvitedEmailAddress = Nothing-    , _gGuardianProFile = Nothing-    }----- | Identifier for the student to whom the guardian relationship applies.-gStudentId :: Lens' Guardian (Maybe Text)-gStudentId-  = lens _gStudentId (\ s a -> s{_gStudentId = a})---- | Identifier for the guardian.-gGuardianId :: Lens' Guardian (Maybe Text)-gGuardianId-  = lens _gGuardianId (\ s a -> s{_gGuardianId = a})---- | The email address to which the initial guardian invitation was sent.--- This field is only visible to domain administrators.-gInvitedEmailAddress :: Lens' Guardian (Maybe Text)-gInvitedEmailAddress-  = lens _gInvitedEmailAddress-      (\ s a -> s{_gInvitedEmailAddress = a})---- | User profile for the guardian.-gGuardianProFile :: Lens' Guardian (Maybe UserProFile)-gGuardianProFile-  = lens _gGuardianProFile-      (\ s a -> s{_gGuardianProFile = a})--instance FromJSON Guardian where-        parseJSON-          = withObject "Guardian"-              (\ o ->-                 Guardian' <$>-                   (o .:? "studentId") <*> (o .:? "guardianId") <*>-                     (o .:? "invitedEmailAddress")-                     <*> (o .:? "guardianProfile"))--instance ToJSON Guardian where-        toJSON Guardian'{..}-          = object-              (catMaybes-                 [("studentId" .=) <$> _gStudentId,-                  ("guardianId" .=) <$> _gGuardianId,-                  ("invitedEmailAddress" .=) <$> _gInvitedEmailAddress,-                  ("guardianProfile" .=) <$> _gGuardianProFile])---- | A material attached to a course as part of a material set.------ /See:/ 'courseMaterial' smart constructor.-data CourseMaterial =-  CourseMaterial'-    { _cmDriveFile    :: !(Maybe DriveFile)-    , _cmLink         :: !(Maybe Link)-    , _cmYouTubeVideo :: !(Maybe YouTubeVideo)-    , _cmForm         :: !(Maybe Form)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CourseMaterial' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cmDriveFile'------ * 'cmLink'------ * 'cmYouTubeVideo'------ * 'cmForm'-courseMaterial-    :: CourseMaterial-courseMaterial =-  CourseMaterial'-    { _cmDriveFile = Nothing-    , _cmLink = Nothing-    , _cmYouTubeVideo = Nothing-    , _cmForm = Nothing-    }----- | Google Drive file attachment.-cmDriveFile :: Lens' CourseMaterial (Maybe DriveFile)-cmDriveFile-  = lens _cmDriveFile (\ s a -> s{_cmDriveFile = a})---- | Link atatchment.-cmLink :: Lens' CourseMaterial (Maybe Link)-cmLink = lens _cmLink (\ s a -> s{_cmLink = a})---- | Youtube video attachment.-cmYouTubeVideo :: Lens' CourseMaterial (Maybe YouTubeVideo)-cmYouTubeVideo-  = lens _cmYouTubeVideo-      (\ s a -> s{_cmYouTubeVideo = a})---- | Google Forms attachment.-cmForm :: Lens' CourseMaterial (Maybe Form)-cmForm = lens _cmForm (\ s a -> s{_cmForm = a})--instance FromJSON CourseMaterial where-        parseJSON-          = withObject "CourseMaterial"-              (\ o ->-                 CourseMaterial' <$>-                   (o .:? "driveFile") <*> (o .:? "link") <*>-                     (o .:? "youTubeVideo")-                     <*> (o .:? "form"))--instance ToJSON CourseMaterial where-        toJSON CourseMaterial'{..}-          = object-              (catMaybes-                 [("driveFile" .=) <$> _cmDriveFile,-                  ("link" .=) <$> _cmLink,-                  ("youTubeVideo" .=) <$> _cmYouTubeVideo,-                  ("form" .=) <$> _cmForm])---- | Student work for a short answer question.------ /See:/ 'shortAnswerSubmission' smart constructor.-newtype ShortAnswerSubmission =-  ShortAnswerSubmission'-    { _sasAnswer :: Maybe Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ShortAnswerSubmission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sasAnswer'-shortAnswerSubmission-    :: ShortAnswerSubmission-shortAnswerSubmission = ShortAnswerSubmission' {_sasAnswer = Nothing}----- | Student response to a short-answer question.-sasAnswer :: Lens' ShortAnswerSubmission (Maybe Text)-sasAnswer-  = lens _sasAnswer (\ s a -> s{_sasAnswer = a})--instance FromJSON ShortAnswerSubmission where-        parseJSON-          = withObject "ShortAnswerSubmission"-              (\ o -> ShortAnswerSubmission' <$> (o .:? "answer"))--instance ToJSON ShortAnswerSubmission where-        toJSON ShortAnswerSubmission'{..}-          = object (catMaybes [("answer" .=) <$> _sasAnswer])---- | An invitation to join a course.------ /See:/ 'invitation' smart constructor.-data Invitation =-  Invitation'-    { _iCourseId :: !(Maybe Text)-    , _iUserId   :: !(Maybe Text)-    , _iRole     :: !(Maybe InvitationRole)-    , _iId       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Invitation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iCourseId'------ * 'iUserId'------ * 'iRole'------ * 'iId'-invitation-    :: Invitation-invitation =-  Invitation'-    {_iCourseId = Nothing, _iUserId = Nothing, _iRole = Nothing, _iId = Nothing}----- | Identifier of the course to invite the user to.-iCourseId :: Lens' Invitation (Maybe Text)-iCourseId-  = lens _iCourseId (\ s a -> s{_iCourseId = a})---- | Identifier of the invited user. When specified as a parameter of a--- request, this identifier can be set to one of the following: * the--- numeric identifier for the user * the email address of the user * the--- string literal \`\"me\"\`, indicating the requesting user-iUserId :: Lens' Invitation (Maybe Text)-iUserId = lens _iUserId (\ s a -> s{_iUserId = a})---- | Role to invite the user to have. Must not be--- \`COURSE_ROLE_UNSPECIFIED\`.-iRole :: Lens' Invitation (Maybe InvitationRole)-iRole = lens _iRole (\ s a -> s{_iRole = a})---- | Identifier assigned by Classroom. Read-only.-iId :: Lens' Invitation (Maybe Text)-iId = lens _iId (\ s a -> s{_iId = a})--instance FromJSON Invitation where-        parseJSON-          = withObject "Invitation"-              (\ o ->-                 Invitation' <$>-                   (o .:? "courseId") <*> (o .:? "userId") <*>-                     (o .:? "role")-                     <*> (o .:? "id"))--instance ToJSON Invitation where-        toJSON Invitation'{..}-          = object-              (catMaybes-                 [("courseId" .=) <$> _iCourseId,-                  ("userId" .=) <$> _iUserId, ("role" .=) <$> _iRole,-                  ("id" .=) <$> _iId])---- | Attachment added to student assignment work. When creating attachments,--- setting the \`form\` field is not supported.------ /See:/ 'attachment' smart constructor.-data Attachment =-  Attachment'-    { _aDriveFile    :: !(Maybe DriveFile)-    , _aLink         :: !(Maybe Link)-    , _aYouTubeVideo :: !(Maybe YouTubeVideo)-    , _aForm         :: !(Maybe Form)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Attachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aDriveFile'------ * 'aLink'------ * 'aYouTubeVideo'------ * 'aForm'-attachment-    :: Attachment-attachment =-  Attachment'-    { _aDriveFile = Nothing-    , _aLink = Nothing-    , _aYouTubeVideo = Nothing-    , _aForm = Nothing-    }----- | Google Drive file attachment.-aDriveFile :: Lens' Attachment (Maybe DriveFile)-aDriveFile-  = lens _aDriveFile (\ s a -> s{_aDriveFile = a})---- | Link attachment.-aLink :: Lens' Attachment (Maybe Link)-aLink = lens _aLink (\ s a -> s{_aLink = a})---- | Youtube video attachment.-aYouTubeVideo :: Lens' Attachment (Maybe YouTubeVideo)-aYouTubeVideo-  = lens _aYouTubeVideo-      (\ s a -> s{_aYouTubeVideo = a})---- | Google Forms attachment.-aForm :: Lens' Attachment (Maybe Form)-aForm = lens _aForm (\ s a -> s{_aForm = a})--instance FromJSON Attachment where-        parseJSON-          = withObject "Attachment"-              (\ o ->-                 Attachment' <$>-                   (o .:? "driveFile") <*> (o .:? "link") <*>-                     (o .:? "youTubeVideo")-                     <*> (o .:? "form"))--instance ToJSON Attachment where-        toJSON Attachment'{..}-          = object-              (catMaybes-                 [("driveFile" .=) <$> _aDriveFile,-                  ("link" .=) <$> _aLink,-                  ("youTubeVideo" .=) <$> _aYouTubeVideo,-                  ("form" .=) <$> _aForm])---- | Topic created by a teacher for the course------ /See:/ 'topic' smart constructor.-data Topic =-  Topic'-    { _tCourseId   :: !(Maybe Text)-    , _tUpdateTime :: !(Maybe DateTime')-    , _tTopicId    :: !(Maybe Text)-    , _tName       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Topic' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tCourseId'------ * 'tUpdateTime'------ * 'tTopicId'------ * 'tName'-topic-    :: Topic-topic =-  Topic'-    { _tCourseId = Nothing-    , _tUpdateTime = Nothing-    , _tTopicId = Nothing-    , _tName = Nothing-    }----- | Identifier of the course. Read-only.-tCourseId :: Lens' Topic (Maybe Text)-tCourseId-  = lens _tCourseId (\ s a -> s{_tCourseId = a})---- | The time the topic was last updated by the system. Read-only.-tUpdateTime :: Lens' Topic (Maybe UTCTime)-tUpdateTime-  = lens _tUpdateTime (\ s a -> s{_tUpdateTime = a}) .-      mapping _DateTime---- | Unique identifier for the topic. Read-only.-tTopicId :: Lens' Topic (Maybe Text)-tTopicId = lens _tTopicId (\ s a -> s{_tTopicId = a})---- | The name of the topic, generated by the user. Leading and trailing--- whitespaces, if any, will be trimmed. Also, multiple consecutive--- whitespaces will be collapsed into one inside the name. The result must--- be a non-empty string. Topic names are case sensitive, and must be no--- longer than 100 characters.-tName :: Lens' Topic (Maybe Text)-tName = lens _tName (\ s a -> s{_tName = a})--instance FromJSON Topic where-        parseJSON-          = withObject "Topic"-              (\ o ->-                 Topic' <$>-                   (o .:? "courseId") <*> (o .:? "updateTime") <*>-                     (o .:? "topicId")-                     <*> (o .:? "name"))--instance ToJSON Topic where-        toJSON Topic'{..}-          = object-              (catMaybes-                 [("courseId" .=) <$> _tCourseId,-                  ("updateTime" .=) <$> _tUpdateTime,-                  ("topicId" .=) <$> _tTopicId,-                  ("name" .=) <$> _tName])---- | Announcement created by a teacher for students of the course------ /See:/ 'announcement' smart constructor.-data Announcement =-  Announcement'-    { _aCreationTime              :: !(Maybe DateTime')-    , _aScheduledTime             :: !(Maybe DateTime')-    , _aState                     :: !(Maybe AnnouncementState)-    , _aAssigneeMode              :: !(Maybe AnnouncementAssigneeMode)-    , _aText                      :: !(Maybe Text)-    , _aMaterials                 :: !(Maybe [Material])-    , _aCourseId                  :: !(Maybe Text)-    , _aIndividualStudentsOptions :: !(Maybe IndividualStudentsOptions)-    , _aUpdateTime                :: !(Maybe DateTime')-    , _aId                        :: !(Maybe Text)-    , _aCreatorUserId             :: !(Maybe Text)-    , _aAlternateLink             :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Announcement' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aCreationTime'------ * 'aScheduledTime'------ * 'aState'------ * 'aAssigneeMode'------ * 'aText'------ * 'aMaterials'------ * 'aCourseId'------ * 'aIndividualStudentsOptions'------ * 'aUpdateTime'------ * 'aId'------ * 'aCreatorUserId'------ * 'aAlternateLink'-announcement-    :: Announcement-announcement =-  Announcement'-    { _aCreationTime = Nothing-    , _aScheduledTime = Nothing-    , _aState = Nothing-    , _aAssigneeMode = Nothing-    , _aText = Nothing-    , _aMaterials = Nothing-    , _aCourseId = Nothing-    , _aIndividualStudentsOptions = Nothing-    , _aUpdateTime = Nothing-    , _aId = Nothing-    , _aCreatorUserId = Nothing-    , _aAlternateLink = Nothing-    }----- | Timestamp when this announcement was created. Read-only.-aCreationTime :: Lens' Announcement (Maybe UTCTime)-aCreationTime-  = lens _aCreationTime-      (\ s a -> s{_aCreationTime = a})-      . mapping _DateTime---- | Optional timestamp when this announcement is scheduled to be published.-aScheduledTime :: Lens' Announcement (Maybe UTCTime)-aScheduledTime-  = lens _aScheduledTime-      (\ s a -> s{_aScheduledTime = a})-      . mapping _DateTime---- | Status of this announcement. If unspecified, the default state is--- \`DRAFT\`.-aState :: Lens' Announcement (Maybe AnnouncementState)-aState = lens _aState (\ s a -> s{_aState = a})---- | Assignee mode of the announcement. If unspecified, the default value is--- \`ALL_STUDENTS\`.-aAssigneeMode :: Lens' Announcement (Maybe AnnouncementAssigneeMode)-aAssigneeMode-  = lens _aAssigneeMode-      (\ s a -> s{_aAssigneeMode = a})---- | Description of this announcement. The text must be a valid UTF-8 string--- containing no more than 30,000 characters.-aText :: Lens' Announcement (Maybe Text)-aText = lens _aText (\ s a -> s{_aText = a})---- | Additional materials. Announcements must have no more than 20 material--- items.-aMaterials :: Lens' Announcement [Material]-aMaterials-  = lens _aMaterials (\ s a -> s{_aMaterials = a}) .-      _Default-      . _Coerce---- | Identifier of the course. Read-only.-aCourseId :: Lens' Announcement (Maybe Text)-aCourseId-  = lens _aCourseId (\ s a -> s{_aCourseId = a})---- | Identifiers of students with access to the announcement. This field is--- set only if \`assigneeMode\` is \`INDIVIDUAL_STUDENTS\`. If the--- \`assigneeMode\` is \`INDIVIDUAL_STUDENTS\`, then only students--- specified in this field will be able to see the announcement.-aIndividualStudentsOptions :: Lens' Announcement (Maybe IndividualStudentsOptions)-aIndividualStudentsOptions-  = lens _aIndividualStudentsOptions-      (\ s a -> s{_aIndividualStudentsOptions = a})---- | Timestamp of the most recent change to this announcement. Read-only.-aUpdateTime :: Lens' Announcement (Maybe UTCTime)-aUpdateTime-  = lens _aUpdateTime (\ s a -> s{_aUpdateTime = a}) .-      mapping _DateTime---- | Classroom-assigned identifier of this announcement, unique per course.--- Read-only.-aId :: Lens' Announcement (Maybe Text)-aId = lens _aId (\ s a -> s{_aId = a})---- | Identifier for the user that created the announcement. Read-only.-aCreatorUserId :: Lens' Announcement (Maybe Text)-aCreatorUserId-  = lens _aCreatorUserId-      (\ s a -> s{_aCreatorUserId = a})---- | Absolute link to this announcement in the Classroom web UI. This is only--- populated if \`state\` is \`PUBLISHED\`. Read-only.-aAlternateLink :: Lens' Announcement (Maybe Text)-aAlternateLink-  = lens _aAlternateLink-      (\ s a -> s{_aAlternateLink = a})--instance FromJSON Announcement where-        parseJSON-          = withObject "Announcement"-              (\ o ->-                 Announcement' <$>-                   (o .:? "creationTime") <*> (o .:? "scheduledTime")-                     <*> (o .:? "state")-                     <*> (o .:? "assigneeMode")-                     <*> (o .:? "text")-                     <*> (o .:? "materials" .!= mempty)-                     <*> (o .:? "courseId")-                     <*> (o .:? "individualStudentsOptions")-                     <*> (o .:? "updateTime")-                     <*> (o .:? "id")-                     <*> (o .:? "creatorUserId")-                     <*> (o .:? "alternateLink"))--instance ToJSON Announcement where-        toJSON Announcement'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _aCreationTime,-                  ("scheduledTime" .=) <$> _aScheduledTime,-                  ("state" .=) <$> _aState,-                  ("assigneeMode" .=) <$> _aAssigneeMode,-                  ("text" .=) <$> _aText,-                  ("materials" .=) <$> _aMaterials,-                  ("courseId" .=) <$> _aCourseId,-                  ("individualStudentsOptions" .=) <$>-                    _aIndividualStudentsOptions,-                  ("updateTime" .=) <$> _aUpdateTime,-                  ("id" .=) <$> _aId,-                  ("creatorUserId" .=) <$> _aCreatorUserId,-                  ("alternateLink" .=) <$> _aAlternateLink])---- | Student submission for course work. StudentSubmission items are--- generated when a CourseWork item is created. StudentSubmissions that--- have never been accessed (i.e. with \`state\` = NEW) may not have a--- creation time or update time.------ /See:/ 'studentSubmission' smart constructor.-data StudentSubmission =-  StudentSubmission'-    { _ssCreationTime             :: !(Maybe DateTime')-    , _ssLate                     :: !(Maybe Bool)-    , _ssState                    :: !(Maybe StudentSubmissionState)-    , _ssCourseId                 :: !(Maybe Text)-    , _ssMultipleChoiceSubmission :: !(Maybe MultipleChoiceSubmission)-    , _ssAssignmentSubmission     :: !(Maybe AssignmentSubmission)-    , _ssShortAnswerSubmission    :: !(Maybe ShortAnswerSubmission)-    , _ssAssociatedWithDeveloper  :: !(Maybe Bool)-    , _ssUserId                   :: !(Maybe Text)-    , _ssUpdateTime               :: !(Maybe DateTime')-    , _ssCourseWorkType           :: !(Maybe StudentSubmissionCourseWorkType)-    , _ssSubmissionHistory        :: !(Maybe [SubmissionHistory])-    , _ssAssignedGrade            :: !(Maybe (Textual Double))-    , _ssId                       :: !(Maybe Text)-    , _ssDraftGrade               :: !(Maybe (Textual Double))-    , _ssAlternateLink            :: !(Maybe Text)-    , _ssCourseWorkId             :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'StudentSubmission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ssCreationTime'------ * 'ssLate'------ * 'ssState'------ * 'ssCourseId'------ * 'ssMultipleChoiceSubmission'------ * 'ssAssignmentSubmission'------ * 'ssShortAnswerSubmission'------ * 'ssAssociatedWithDeveloper'------ * 'ssUserId'------ * 'ssUpdateTime'------ * 'ssCourseWorkType'------ * 'ssSubmissionHistory'------ * 'ssAssignedGrade'------ * 'ssId'------ * 'ssDraftGrade'------ * 'ssAlternateLink'------ * 'ssCourseWorkId'-studentSubmission-    :: StudentSubmission-studentSubmission =-  StudentSubmission'-    { _ssCreationTime = Nothing-    , _ssLate = Nothing-    , _ssState = Nothing-    , _ssCourseId = Nothing-    , _ssMultipleChoiceSubmission = Nothing-    , _ssAssignmentSubmission = Nothing-    , _ssShortAnswerSubmission = Nothing-    , _ssAssociatedWithDeveloper = Nothing-    , _ssUserId = Nothing-    , _ssUpdateTime = Nothing-    , _ssCourseWorkType = Nothing-    , _ssSubmissionHistory = Nothing-    , _ssAssignedGrade = Nothing-    , _ssId = Nothing-    , _ssDraftGrade = Nothing-    , _ssAlternateLink = Nothing-    , _ssCourseWorkId = Nothing-    }----- | Creation time of this submission. This may be unset if the student has--- not accessed this item. Read-only.-ssCreationTime :: Lens' StudentSubmission (Maybe UTCTime)-ssCreationTime-  = lens _ssCreationTime-      (\ s a -> s{_ssCreationTime = a})-      . mapping _DateTime---- | Whether this submission is late. Read-only.-ssLate :: Lens' StudentSubmission (Maybe Bool)-ssLate = lens _ssLate (\ s a -> s{_ssLate = a})---- | State of this submission. Read-only.-ssState :: Lens' StudentSubmission (Maybe StudentSubmissionState)-ssState = lens _ssState (\ s a -> s{_ssState = a})---- | Identifier of the course. Read-only.-ssCourseId :: Lens' StudentSubmission (Maybe Text)-ssCourseId-  = lens _ssCourseId (\ s a -> s{_ssCourseId = a})---- | Submission content when course_work_type is MULTIPLE_CHOICE_QUESTION.-ssMultipleChoiceSubmission :: Lens' StudentSubmission (Maybe MultipleChoiceSubmission)-ssMultipleChoiceSubmission-  = lens _ssMultipleChoiceSubmission-      (\ s a -> s{_ssMultipleChoiceSubmission = a})---- | Submission content when course_work_type is ASSIGNMENT. Students can--- modify this content using google.classroom.Work.ModifyAttachments.-ssAssignmentSubmission :: Lens' StudentSubmission (Maybe AssignmentSubmission)-ssAssignmentSubmission-  = lens _ssAssignmentSubmission-      (\ s a -> s{_ssAssignmentSubmission = a})---- | Submission content when course_work_type is SHORT_ANSWER_QUESTION.-ssShortAnswerSubmission :: Lens' StudentSubmission (Maybe ShortAnswerSubmission)-ssShortAnswerSubmission-  = lens _ssShortAnswerSubmission-      (\ s a -> s{_ssShortAnswerSubmission = a})---- | Whether this student submission is associated with the Developer Console--- project making the request. See google.classroom.Work.CreateCourseWork--- for more details. Read-only.-ssAssociatedWithDeveloper :: Lens' StudentSubmission (Maybe Bool)-ssAssociatedWithDeveloper-  = lens _ssAssociatedWithDeveloper-      (\ s a -> s{_ssAssociatedWithDeveloper = a})---- | Identifier for the student that owns this submission. Read-only.-ssUserId :: Lens' StudentSubmission (Maybe Text)-ssUserId = lens _ssUserId (\ s a -> s{_ssUserId = a})---- | Last update time of this submission. This may be unset if the student--- has not accessed this item. Read-only.-ssUpdateTime :: Lens' StudentSubmission (Maybe UTCTime)-ssUpdateTime-  = lens _ssUpdateTime (\ s a -> s{_ssUpdateTime = a})-      . mapping _DateTime---- | Type of course work this submission is for. Read-only.-ssCourseWorkType :: Lens' StudentSubmission (Maybe StudentSubmissionCourseWorkType)-ssCourseWorkType-  = lens _ssCourseWorkType-      (\ s a -> s{_ssCourseWorkType = a})---- | The history of the submission (includes state and grade histories).--- Read-only.-ssSubmissionHistory :: Lens' StudentSubmission [SubmissionHistory]-ssSubmissionHistory-  = lens _ssSubmissionHistory-      (\ s a -> s{_ssSubmissionHistory = a})-      . _Default-      . _Coerce---- | Optional grade. If unset, no grade was set. This value must be--- non-negative. Decimal (i.e. non-integer) values are allowed, but will be--- rounded to two decimal places. This may be modified only by course--- teachers.-ssAssignedGrade :: Lens' StudentSubmission (Maybe Double)-ssAssignedGrade-  = lens _ssAssignedGrade-      (\ s a -> s{_ssAssignedGrade = a})-      . mapping _Coerce---- | Classroom-assigned Identifier for the student submission. This is unique--- among submissions for the relevant course work. Read-only.-ssId :: Lens' StudentSubmission (Maybe Text)-ssId = lens _ssId (\ s a -> s{_ssId = a})---- | Optional pending grade. If unset, no grade was set. This value must be--- non-negative. Decimal (i.e. non-integer) values are allowed, but will be--- rounded to two decimal places. This is only visible to and modifiable by--- course teachers.-ssDraftGrade :: Lens' StudentSubmission (Maybe Double)-ssDraftGrade-  = lens _ssDraftGrade (\ s a -> s{_ssDraftGrade = a})-      . mapping _Coerce---- | Absolute link to the submission in the Classroom web UI. Read-only.-ssAlternateLink :: Lens' StudentSubmission (Maybe Text)-ssAlternateLink-  = lens _ssAlternateLink-      (\ s a -> s{_ssAlternateLink = a})---- | Identifier for the course work this corresponds to. Read-only.-ssCourseWorkId :: Lens' StudentSubmission (Maybe Text)-ssCourseWorkId-  = lens _ssCourseWorkId-      (\ s a -> s{_ssCourseWorkId = a})--instance FromJSON StudentSubmission where-        parseJSON-          = withObject "StudentSubmission"-              (\ o ->-                 StudentSubmission' <$>-                   (o .:? "creationTime") <*> (o .:? "late") <*>-                     (o .:? "state")-                     <*> (o .:? "courseId")-                     <*> (o .:? "multipleChoiceSubmission")-                     <*> (o .:? "assignmentSubmission")-                     <*> (o .:? "shortAnswerSubmission")-                     <*> (o .:? "associatedWithDeveloper")-                     <*> (o .:? "userId")-                     <*> (o .:? "updateTime")-                     <*> (o .:? "courseWorkType")-                     <*> (o .:? "submissionHistory" .!= mempty)-                     <*> (o .:? "assignedGrade")-                     <*> (o .:? "id")-                     <*> (o .:? "draftGrade")-                     <*> (o .:? "alternateLink")-                     <*> (o .:? "courseWorkId"))--instance ToJSON StudentSubmission where-        toJSON StudentSubmission'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _ssCreationTime,-                  ("late" .=) <$> _ssLate, ("state" .=) <$> _ssState,-                  ("courseId" .=) <$> _ssCourseId,-                  ("multipleChoiceSubmission" .=) <$>-                    _ssMultipleChoiceSubmission,-                  ("assignmentSubmission" .=) <$>-                    _ssAssignmentSubmission,-                  ("shortAnswerSubmission" .=) <$>-                    _ssShortAnswerSubmission,-                  ("associatedWithDeveloper" .=) <$>-                    _ssAssociatedWithDeveloper,-                  ("userId" .=) <$> _ssUserId,-                  ("updateTime" .=) <$> _ssUpdateTime,-                  ("courseWorkType" .=) <$> _ssCourseWorkType,-                  ("submissionHistory" .=) <$> _ssSubmissionHistory,-                  ("assignedGrade" .=) <$> _ssAssignedGrade,-                  ("id" .=) <$> _ssId,-                  ("draftGrade" .=) <$> _ssDraftGrade,-                  ("alternateLink" .=) <$> _ssAlternateLink,-                  ("courseWorkId" .=) <$> _ssCourseWorkId])---- | Response when listing guardians.------ /See:/ 'listGuardiansResponse' smart constructor.-data ListGuardiansResponse =-  ListGuardiansResponse'-    { _lgrNextPageToken :: !(Maybe Text)-    , _lgrGuardians     :: !(Maybe [Guardian])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListGuardiansResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lgrNextPageToken'------ * 'lgrGuardians'-listGuardiansResponse-    :: ListGuardiansResponse-listGuardiansResponse =-  ListGuardiansResponse' {_lgrNextPageToken = Nothing, _lgrGuardians = Nothing}----- | Token identifying the next page of results to return. If empty, no--- further results are available.-lgrNextPageToken :: Lens' ListGuardiansResponse (Maybe Text)-lgrNextPageToken-  = lens _lgrNextPageToken-      (\ s a -> s{_lgrNextPageToken = a})---- | Guardians on this page of results that met the criteria specified in the--- request.-lgrGuardians :: Lens' ListGuardiansResponse [Guardian]-lgrGuardians-  = lens _lgrGuardians (\ s a -> s{_lgrGuardians = a})-      . _Default-      . _Coerce--instance FromJSON ListGuardiansResponse where-        parseJSON-          = withObject "ListGuardiansResponse"-              (\ o ->-                 ListGuardiansResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "guardians" .!= mempty))--instance ToJSON ListGuardiansResponse where-        toJSON ListGuardiansResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _lgrNextPageToken,-                  ("guardians" .=) <$> _lgrGuardians])---- | Represents a whole or partial calendar date, e.g. a birthday. The time--- of day and time zone are either specified elsewhere or are not--- significant. The date is relative to the Proleptic Gregorian Calendar.--- This can represent: * A full date, with non-zero year, month and day--- values * A month and day value, with a zero year, e.g. an anniversary *--- A year on its own, with zero month and day values * A year and month--- value, with a zero day, e.g. a credit card expiration date Related types--- are google.type.TimeOfDay and \`google.protobuf.Timestamp\`.------ /See:/ 'date' smart constructor.-data Date =-  Date'-    { _dDay   :: !(Maybe (Textual Int32))-    , _dYear  :: !(Maybe (Textual Int32))-    , _dMonth :: !(Maybe (Textual Int32))-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Date' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dDay'------ * 'dYear'------ * 'dMonth'-date-    :: Date-date = Date' {_dDay = Nothing, _dYear = Nothing, _dMonth = Nothing}----- | Day of month. Must be from 1 to 31 and valid for the year and month, or--- 0 if specifying a year by itself or a year and month where the day is--- not significant.-dDay :: Lens' Date (Maybe Int32)-dDay-  = lens _dDay (\ s a -> s{_dDay = a}) .-      mapping _Coerce---- | Year of date. Must be from 1 to 9999, or 0 if specifying a date without--- a year.-dYear :: Lens' Date (Maybe Int32)-dYear-  = lens _dYear (\ s a -> s{_dYear = a}) .-      mapping _Coerce---- | Month of year. Must be from 1 to 12, or 0 if specifying a year without a--- month and day.-dMonth :: Lens' Date (Maybe Int32)-dMonth-  = lens _dMonth (\ s a -> s{_dMonth = a}) .-      mapping _Coerce--instance FromJSON Date where-        parseJSON-          = withObject "Date"-              (\ o ->-                 Date' <$>-                   (o .:? "day") <*> (o .:? "year") <*> (o .:? "month"))--instance ToJSON Date where-        toJSON Date'{..}-          = object-              (catMaybes-                 [("day" .=) <$> _dDay, ("year" .=) <$> _dYear,-                  ("month" .=) <$> _dMonth])---- | YouTube video item.------ /See:/ 'youTubeVideo' smart constructor.-data YouTubeVideo =-  YouTubeVideo'-    { _ytvThumbnailURL  :: !(Maybe Text)-    , _ytvId            :: !(Maybe Text)-    , _ytvTitle         :: !(Maybe Text)-    , _ytvAlternateLink :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'YouTubeVideo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ytvThumbnailURL'------ * 'ytvId'------ * 'ytvTitle'------ * 'ytvAlternateLink'-youTubeVideo-    :: YouTubeVideo-youTubeVideo =-  YouTubeVideo'-    { _ytvThumbnailURL = Nothing-    , _ytvId = Nothing-    , _ytvTitle = Nothing-    , _ytvAlternateLink = Nothing-    }----- | URL of a thumbnail image of the YouTube video. Read-only.-ytvThumbnailURL :: Lens' YouTubeVideo (Maybe Text)-ytvThumbnailURL-  = lens _ytvThumbnailURL-      (\ s a -> s{_ytvThumbnailURL = a})---- | YouTube API resource ID.-ytvId :: Lens' YouTubeVideo (Maybe Text)-ytvId = lens _ytvId (\ s a -> s{_ytvId = a})---- | Title of the YouTube video. Read-only.-ytvTitle :: Lens' YouTubeVideo (Maybe Text)-ytvTitle = lens _ytvTitle (\ s a -> s{_ytvTitle = a})---- | URL that can be used to view the YouTube video. Read-only.-ytvAlternateLink :: Lens' YouTubeVideo (Maybe Text)-ytvAlternateLink-  = lens _ytvAlternateLink-      (\ s a -> s{_ytvAlternateLink = a})--instance FromJSON YouTubeVideo where-        parseJSON-          = withObject "YouTubeVideo"-              (\ o ->-                 YouTubeVideo' <$>-                   (o .:? "thumbnailUrl") <*> (o .:? "id") <*>-                     (o .:? "title")-                     <*> (o .:? "alternateLink"))--instance ToJSON YouTubeVideo where-        toJSON YouTubeVideo'{..}-          = object-              (catMaybes-                 [("thumbnailUrl" .=) <$> _ytvThumbnailURL,-                  ("id" .=) <$> _ytvId, ("title" .=) <$> _ytvTitle,-                  ("alternateLink" .=) <$> _ytvAlternateLink])---- | Teacher of a course.------ /See:/ 'teacher' smart constructor.-data Teacher =-  Teacher'-    { _teaCourseId :: !(Maybe Text)-    , _teaProFile  :: !(Maybe UserProFile)-    , _teaUserId   :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Teacher' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'teaCourseId'------ * 'teaProFile'------ * 'teaUserId'-teacher-    :: Teacher-teacher =-  Teacher' {_teaCourseId = Nothing, _teaProFile = Nothing, _teaUserId = Nothing}----- | Identifier of the course. Read-only.-teaCourseId :: Lens' Teacher (Maybe Text)-teaCourseId-  = lens _teaCourseId (\ s a -> s{_teaCourseId = a})---- | Global user information for the teacher. Read-only.-teaProFile :: Lens' Teacher (Maybe UserProFile)-teaProFile-  = lens _teaProFile (\ s a -> s{_teaProFile = a})---- | Identifier of the user. When specified as a parameter of a request, this--- identifier can be one of the following: * the numeric identifier for the--- user * the email address of the user * the string literal \`\"me\"\`,--- indicating the requesting user-teaUserId :: Lens' Teacher (Maybe Text)-teaUserId-  = lens _teaUserId (\ s a -> s{_teaUserId = a})--instance FromJSON Teacher where-        parseJSON-          = withObject "Teacher"-              (\ o ->-                 Teacher' <$>-                   (o .:? "courseId") <*> (o .:? "profile") <*>-                     (o .:? "userId"))--instance ToJSON Teacher where-        toJSON Teacher'{..}-          = object-              (catMaybes-                 [("courseId" .=) <$> _teaCourseId,-                  ("profile" .=) <$> _teaProFile,-                  ("userId" .=) <$> _teaUserId])---- | A set of materials that appears on the \"About\" page of the course.--- These materials might include a syllabus, schedule, or other background--- information relating to the course as a whole.------ /See:/ 'courseMaterialSet' smart constructor.-data CourseMaterialSet =-  CourseMaterialSet'-    { _cmsMaterials :: !(Maybe [CourseMaterial])-    , _cmsTitle     :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CourseMaterialSet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cmsMaterials'------ * 'cmsTitle'-courseMaterialSet-    :: CourseMaterialSet-courseMaterialSet =-  CourseMaterialSet' {_cmsMaterials = Nothing, _cmsTitle = Nothing}----- | Materials attached to this set.-cmsMaterials :: Lens' CourseMaterialSet [CourseMaterial]-cmsMaterials-  = lens _cmsMaterials (\ s a -> s{_cmsMaterials = a})-      . _Default-      . _Coerce---- | Title for this set.-cmsTitle :: Lens' CourseMaterialSet (Maybe Text)-cmsTitle = lens _cmsTitle (\ s a -> s{_cmsTitle = a})--instance FromJSON CourseMaterialSet where-        parseJSON-          = withObject "CourseMaterialSet"-              (\ o ->-                 CourseMaterialSet' <$>-                   (o .:? "materials" .!= mempty) <*> (o .:? "title"))--instance ToJSON CourseMaterialSet where-        toJSON CourseMaterialSet'{..}-          = object-              (catMaybes-                 [("materials" .=) <$> _cmsMaterials,-                  ("title" .=) <$> _cmsTitle])---- | Details of the user\'s name.------ /See:/ 'name' smart constructor.-data Name =-  Name'-    { _nGivenName  :: !(Maybe Text)-    , _nFullName   :: !(Maybe Text)-    , _nFamilyName :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Name' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'nGivenName'------ * 'nFullName'------ * 'nFamilyName'-name-    :: Name-name =-  Name' {_nGivenName = Nothing, _nFullName = Nothing, _nFamilyName = Nothing}----- | The user\'s first name. Read-only.-nGivenName :: Lens' Name (Maybe Text)-nGivenName-  = lens _nGivenName (\ s a -> s{_nGivenName = a})---- | The user\'s full name formed by concatenating the first and last name--- values. Read-only.-nFullName :: Lens' Name (Maybe Text)-nFullName-  = lens _nFullName (\ s a -> s{_nFullName = a})---- | The user\'s last name. Read-only.-nFamilyName :: Lens' Name (Maybe Text)-nFamilyName-  = lens _nFamilyName (\ s a -> s{_nFamilyName = a})--instance FromJSON Name where-        parseJSON-          = withObject "Name"-              (\ o ->-                 Name' <$>-                   (o .:? "givenName") <*> (o .:? "fullName") <*>-                     (o .:? "familyName"))--instance ToJSON Name where-        toJSON Name'{..}-          = object-              (catMaybes-                 [("givenName" .=) <$> _nGivenName,-                  ("fullName" .=) <$> _nFullName,-                  ("familyName" .=) <$> _nFamilyName])---- | Response when listing courses.------ /See:/ 'listCoursesResponse' smart constructor.-data ListCoursesResponse =-  ListCoursesResponse'-    { _lcrNextPageToken :: !(Maybe Text)-    , _lcrCourses       :: !(Maybe [Course])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListCoursesResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lcrNextPageToken'------ * 'lcrCourses'-listCoursesResponse-    :: ListCoursesResponse-listCoursesResponse =-  ListCoursesResponse' {_lcrNextPageToken = Nothing, _lcrCourses = Nothing}----- | Token identifying the next page of results to return. If empty, no--- further results are available.-lcrNextPageToken :: Lens' ListCoursesResponse (Maybe Text)-lcrNextPageToken-  = lens _lcrNextPageToken-      (\ s a -> s{_lcrNextPageToken = a})---- | Courses that match the list request.-lcrCourses :: Lens' ListCoursesResponse [Course]-lcrCourses-  = lens _lcrCourses (\ s a -> s{_lcrCourses = a}) .-      _Default-      . _Coerce--instance FromJSON ListCoursesResponse where-        parseJSON-          = withObject "ListCoursesResponse"-              (\ o ->-                 ListCoursesResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "courses" .!= mempty))--instance ToJSON ListCoursesResponse where-        toJSON ListCoursesResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _lcrNextPageToken,-                  ("courses" .=) <$> _lcrCourses])---- | Request to turn in a student submission.------ /See:/ 'turnInStudentSubmissionRequest' smart constructor.-data TurnInStudentSubmissionRequest =-  TurnInStudentSubmissionRequest'-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'TurnInStudentSubmissionRequest' with the minimum fields required to make a request.----turnInStudentSubmissionRequest-    :: TurnInStudentSubmissionRequest-turnInStudentSubmissionRequest = TurnInStudentSubmissionRequest'---instance FromJSON TurnInStudentSubmissionRequest-         where-        parseJSON-          = withObject "TurnInStudentSubmissionRequest"-              (\ o -> pure TurnInStudentSubmissionRequest')--instance ToJSON TurnInStudentSubmissionRequest where-        toJSON = const emptyObject---- | Global information for a user.------ /See:/ 'userProFile' smart constructor.-data UserProFile =-  UserProFile'-    { _upfPhotoURL        :: !(Maybe Text)-    , _upfVerifiedTeacher :: !(Maybe Bool)-    , _upfName            :: !(Maybe Name)-    , _upfEmailAddress    :: !(Maybe Text)-    , _upfId              :: !(Maybe Text)-    , _upfPermissions     :: !(Maybe [GlobalPermission])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserProFile' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upfPhotoURL'------ * 'upfVerifiedTeacher'------ * 'upfName'------ * 'upfEmailAddress'------ * 'upfId'------ * 'upfPermissions'-userProFile-    :: UserProFile-userProFile =-  UserProFile'-    { _upfPhotoURL = Nothing-    , _upfVerifiedTeacher = Nothing-    , _upfName = Nothing-    , _upfEmailAddress = Nothing-    , _upfId = Nothing-    , _upfPermissions = Nothing-    }----- | URL of user\'s profile photo. Read-only.-upfPhotoURL :: Lens' UserProFile (Maybe Text)-upfPhotoURL-  = lens _upfPhotoURL (\ s a -> s{_upfPhotoURL = a})---- | Represents whether a G Suite for Education user\'s domain administrator--- has explicitly verified them as being a teacher. If the user is not a--- member of a G Suite for Education domain, than this field will always be--- false. Read-only-upfVerifiedTeacher :: Lens' UserProFile (Maybe Bool)-upfVerifiedTeacher-  = lens _upfVerifiedTeacher-      (\ s a -> s{_upfVerifiedTeacher = a})---- | Name of the user. Read-only.-upfName :: Lens' UserProFile (Maybe Name)-upfName = lens _upfName (\ s a -> s{_upfName = a})---- | Email address of the user. Read-only.-upfEmailAddress :: Lens' UserProFile (Maybe Text)-upfEmailAddress-  = lens _upfEmailAddress-      (\ s a -> s{_upfEmailAddress = a})---- | Identifier of the user. Read-only.-upfId :: Lens' UserProFile (Maybe Text)-upfId = lens _upfId (\ s a -> s{_upfId = a})---- | Global permissions of the user. Read-only.-upfPermissions :: Lens' UserProFile [GlobalPermission]-upfPermissions-  = lens _upfPermissions-      (\ s a -> s{_upfPermissions = a})-      . _Default-      . _Coerce--instance FromJSON UserProFile where-        parseJSON-          = withObject "UserProFile"-              (\ o ->-                 UserProFile' <$>-                   (o .:? "photoUrl") <*> (o .:? "verifiedTeacher") <*>-                     (o .:? "name")-                     <*> (o .:? "emailAddress")-                     <*> (o .:? "id")-                     <*> (o .:? "permissions" .!= mempty))--instance ToJSON UserProFile where-        toJSON UserProFile'{..}-          = object-              (catMaybes-                 [("photoUrl" .=) <$> _upfPhotoURL,-                  ("verifiedTeacher" .=) <$> _upfVerifiedTeacher,-                  ("name" .=) <$> _upfName,-                  ("emailAddress" .=) <$> _upfEmailAddress,-                  ("id" .=) <$> _upfId,-                  ("permissions" .=) <$> _upfPermissions])---- | Representation of a Google Drive folder.------ /See:/ 'driveFolder' smart constructor.-data DriveFolder =-  DriveFolder'-    { _dId            :: !(Maybe Text)-    , _dTitle         :: !(Maybe Text)-    , _dAlternateLink :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'DriveFolder' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dId'------ * 'dTitle'------ * 'dAlternateLink'-driveFolder-    :: DriveFolder-driveFolder =-  DriveFolder' {_dId = Nothing, _dTitle = Nothing, _dAlternateLink = Nothing}----- | Drive API resource ID.-dId :: Lens' DriveFolder (Maybe Text)-dId = lens _dId (\ s a -> s{_dId = a})---- | Title of the Drive folder. Read-only.-dTitle :: Lens' DriveFolder (Maybe Text)-dTitle = lens _dTitle (\ s a -> s{_dTitle = a})---- | URL that can be used to access the Drive folder. Read-only.-dAlternateLink :: Lens' DriveFolder (Maybe Text)-dAlternateLink-  = lens _dAlternateLink-      (\ s a -> s{_dAlternateLink = a})--instance FromJSON DriveFolder where-        parseJSON-          = withObject "DriveFolder"-              (\ o ->-                 DriveFolder' <$>-                   (o .:? "id") <*> (o .:? "title") <*>-                     (o .:? "alternateLink"))--instance ToJSON DriveFolder where-        toJSON DriveFolder'{..}-          = object-              (catMaybes-                 [("id" .=) <$> _dId, ("title" .=) <$> _dTitle,-                  ("alternateLink" .=) <$> _dAlternateLink])---- | The history of the submission. This currently includes state and grade--- histories.------ /See:/ 'submissionHistory' smart constructor.-data SubmissionHistory =-  SubmissionHistory'-    { _shGradeHistory :: !(Maybe GradeHistory)-    , _shStateHistory :: !(Maybe StateHistory)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'SubmissionHistory' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'shGradeHistory'------ * 'shStateHistory'-submissionHistory-    :: SubmissionHistory-submissionHistory =-  SubmissionHistory' {_shGradeHistory = Nothing, _shStateHistory = Nothing}----- | The grade history information of the submission, if present.-shGradeHistory :: Lens' SubmissionHistory (Maybe GradeHistory)-shGradeHistory-  = lens _shGradeHistory-      (\ s a -> s{_shGradeHistory = a})---- | The state history information of the submission, if present.-shStateHistory :: Lens' SubmissionHistory (Maybe StateHistory)-shStateHistory-  = lens _shStateHistory-      (\ s a -> s{_shStateHistory = a})--instance FromJSON SubmissionHistory where-        parseJSON-          = withObject "SubmissionHistory"-              (\ o ->-                 SubmissionHistory' <$>-                   (o .:? "gradeHistory") <*> (o .:? "stateHistory"))--instance ToJSON SubmissionHistory where-        toJSON SubmissionHistory'{..}-          = object-              (catMaybes-                 [("gradeHistory" .=) <$> _shGradeHistory,-                  ("stateHistory" .=) <$> _shStateHistory])---- | The history of each state this submission has been in.------ /See:/ 'stateHistory' smart constructor.-data StateHistory =-  StateHistory'-    { _shState          :: !(Maybe StateHistoryState)-    , _shActorUserId    :: !(Maybe Text)-    , _shStateTimestamp :: !(Maybe DateTime')-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'StateHistory' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'shState'------ * 'shActorUserId'------ * 'shStateTimestamp'-stateHistory-    :: StateHistory-stateHistory =-  StateHistory'-    {_shState = Nothing, _shActorUserId = Nothing, _shStateTimestamp = Nothing}----- | The workflow pipeline stage.-shState :: Lens' StateHistory (Maybe StateHistoryState)-shState = lens _shState (\ s a -> s{_shState = a})---- | The teacher or student who made the change-shActorUserId :: Lens' StateHistory (Maybe Text)-shActorUserId-  = lens _shActorUserId-      (\ s a -> s{_shActorUserId = a})---- | When the submission entered this state.-shStateTimestamp :: Lens' StateHistory (Maybe UTCTime)-shStateTimestamp-  = lens _shStateTimestamp-      (\ s a -> s{_shStateTimestamp = a})-      . mapping _DateTime--instance FromJSON StateHistory where-        parseJSON-          = withObject "StateHistory"-              (\ o ->-                 StateHistory' <$>-                   (o .:? "state") <*> (o .:? "actorUserId") <*>-                     (o .:? "stateTimestamp"))--instance ToJSON StateHistory where-        toJSON StateHistory'{..}-          = object-              (catMaybes-                 [("state" .=) <$> _shState,-                  ("actorUserId" .=) <$> _shActorUserId,-                  ("stateTimestamp" .=) <$> _shStateTimestamp])---- | Additional details for multiple-choice questions.------ /See:/ 'multipleChoiceQuestion' smart constructor.-newtype MultipleChoiceQuestion =-  MultipleChoiceQuestion'-    { _mcqChoices :: Maybe [Text]-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'MultipleChoiceQuestion' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mcqChoices'-multipleChoiceQuestion-    :: MultipleChoiceQuestion-multipleChoiceQuestion = MultipleChoiceQuestion' {_mcqChoices = Nothing}----- | Possible choices.-mcqChoices :: Lens' MultipleChoiceQuestion [Text]-mcqChoices-  = lens _mcqChoices (\ s a -> s{_mcqChoices = a}) .-      _Default-      . _Coerce--instance FromJSON MultipleChoiceQuestion where-        parseJSON-          = withObject "MultipleChoiceQuestion"-              (\ o ->-                 MultipleChoiceQuestion' <$>-                   (o .:? "choices" .!= mempty))--instance ToJSON MultipleChoiceQuestion where-        toJSON MultipleChoiceQuestion'{..}-          = object (catMaybes [("choices" .=) <$> _mcqChoices])---- | A Course in Classroom.------ /See:/ 'course' smart constructor.-data Course =-  Course'-    { _couCreationTime       :: !(Maybe DateTime')-    , _couRoom               :: !(Maybe Text)-    , _couCourseMaterialSets :: !(Maybe [CourseMaterialSet])-    , _couCalendarId         :: !(Maybe Text)-    , _couTeacherGroupEmail  :: !(Maybe Text)-    , _couTeacherFolder      :: !(Maybe DriveFolder)-    , _couCourseState        :: !(Maybe CourseCourseState)-    , _couGuardiansEnabled   :: !(Maybe Bool)-    , _couEnrollmentCode     :: !(Maybe Text)-    , _couUpdateTime         :: !(Maybe DateTime')-    , _couOwnerId            :: !(Maybe Text)-    , _couName               :: !(Maybe Text)-    , _couId                 :: !(Maybe Text)-    , _couAlternateLink      :: !(Maybe Text)-    , _couCourseGroupEmail   :: !(Maybe Text)-    , _couDescription        :: !(Maybe Text)-    , _couDescriptionHeading :: !(Maybe Text)-    , _couSection            :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Course' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'couCreationTime'------ * 'couRoom'------ * 'couCourseMaterialSets'------ * 'couCalendarId'------ * 'couTeacherGroupEmail'------ * 'couTeacherFolder'------ * 'couCourseState'------ * 'couGuardiansEnabled'------ * 'couEnrollmentCode'------ * 'couUpdateTime'------ * 'couOwnerId'------ * 'couName'------ * 'couId'------ * 'couAlternateLink'------ * 'couCourseGroupEmail'------ * 'couDescription'------ * 'couDescriptionHeading'------ * 'couSection'-course-    :: Course-course =-  Course'-    { _couCreationTime = Nothing-    , _couRoom = Nothing-    , _couCourseMaterialSets = Nothing-    , _couCalendarId = Nothing-    , _couTeacherGroupEmail = Nothing-    , _couTeacherFolder = Nothing-    , _couCourseState = Nothing-    , _couGuardiansEnabled = Nothing-    , _couEnrollmentCode = Nothing-    , _couUpdateTime = Nothing-    , _couOwnerId = Nothing-    , _couName = Nothing-    , _couId = Nothing-    , _couAlternateLink = Nothing-    , _couCourseGroupEmail = Nothing-    , _couDescription = Nothing-    , _couDescriptionHeading = Nothing-    , _couSection = Nothing-    }----- | Creation time of the course. Specifying this field in a course update--- mask results in an error. Read-only.-couCreationTime :: Lens' Course (Maybe UTCTime)-couCreationTime-  = lens _couCreationTime-      (\ s a -> s{_couCreationTime = a})-      . mapping _DateTime---- | Optional room location. For example, \"301\". If set, this field must be--- a valid UTF-8 string and no longer than 650 characters.-couRoom :: Lens' Course (Maybe Text)-couRoom = lens _couRoom (\ s a -> s{_couRoom = a})---- | Sets of materials that appear on the \"about\" page of this course.--- Read-only.-couCourseMaterialSets :: Lens' Course [CourseMaterialSet]-couCourseMaterialSets-  = lens _couCourseMaterialSets-      (\ s a -> s{_couCourseMaterialSets = a})-      . _Default-      . _Coerce---- | The Calendar ID for a calendar that all course members can see, to which--- Classroom adds events for course work and announcements in the course.--- Read-only.-couCalendarId :: Lens' Course (Maybe Text)-couCalendarId-  = lens _couCalendarId-      (\ s a -> s{_couCalendarId = a})---- | The email address of a Google group containing all teachers of the--- course. This group does not accept email and can only be used for--- permissions. Read-only.-couTeacherGroupEmail :: Lens' Course (Maybe Text)-couTeacherGroupEmail-  = lens _couTeacherGroupEmail-      (\ s a -> s{_couTeacherGroupEmail = a})---- | Information about a Drive Folder that is shared with all teachers of the--- course. This field will only be set for teachers of the course and--- domain administrators. Read-only.-couTeacherFolder :: Lens' Course (Maybe DriveFolder)-couTeacherFolder-  = lens _couTeacherFolder-      (\ s a -> s{_couTeacherFolder = a})---- | State of the course. If unspecified, the default state is--- \`PROVISIONED\`.-couCourseState :: Lens' Course (Maybe CourseCourseState)-couCourseState-  = lens _couCourseState-      (\ s a -> s{_couCourseState = a})---- | Whether or not guardian notifications are enabled for this course.--- Read-only.-couGuardiansEnabled :: Lens' Course (Maybe Bool)-couGuardiansEnabled-  = lens _couGuardiansEnabled-      (\ s a -> s{_couGuardiansEnabled = a})---- | Enrollment code to use when joining this course. Specifying this field--- in a course update mask results in an error. Read-only.-couEnrollmentCode :: Lens' Course (Maybe Text)-couEnrollmentCode-  = lens _couEnrollmentCode-      (\ s a -> s{_couEnrollmentCode = a})---- | Time of the most recent update to this course. Specifying this field in--- a course update mask results in an error. Read-only.-couUpdateTime :: Lens' Course (Maybe UTCTime)-couUpdateTime-  = lens _couUpdateTime-      (\ s a -> s{_couUpdateTime = a})-      . mapping _DateTime---- | The identifier of the owner of a course. When specified as a parameter--- of a create course request, this field is required. The identifier can--- be one of the following: * the numeric identifier for the user * the--- email address of the user * the string literal \`\"me\"\`, indicating--- the requesting user This must be set in a create request. Admins can--- also specify this field in a patch course request to transfer ownership.--- In other contexts, it is read-only.-couOwnerId :: Lens' Course (Maybe Text)-couOwnerId-  = lens _couOwnerId (\ s a -> s{_couOwnerId = a})---- | Name of the course. For example, \"10th Grade Biology\". The name is--- required. It must be between 1 and 750 characters and a valid UTF-8--- string.-couName :: Lens' Course (Maybe Text)-couName = lens _couName (\ s a -> s{_couName = a})---- | Identifier for this course assigned by Classroom. When creating a--- course, you may optionally set this identifier to an alias string in the--- request to create a corresponding alias. The \`id\` is still assigned by--- Classroom and cannot be updated after the course is created. Specifying--- this field in a course update mask results in an error.-couId :: Lens' Course (Maybe Text)-couId = lens _couId (\ s a -> s{_couId = a})---- | Absolute link to this course in the Classroom web UI. Read-only.-couAlternateLink :: Lens' Course (Maybe Text)-couAlternateLink-  = lens _couAlternateLink-      (\ s a -> s{_couAlternateLink = a})---- | The email address of a Google group containing all members of the--- course. This group does not accept email and can only be used for--- permissions. Read-only.-couCourseGroupEmail :: Lens' Course (Maybe Text)-couCourseGroupEmail-  = lens _couCourseGroupEmail-      (\ s a -> s{_couCourseGroupEmail = a})---- | Optional description. For example, \"We\'ll be learning about the--- structure of living creatures from a combination of textbooks, guest--- lectures, and lab work. Expect to be excited!\" If set, this field must--- be a valid UTF-8 string and no longer than 30,000 characters.-couDescription :: Lens' Course (Maybe Text)-couDescription-  = lens _couDescription-      (\ s a -> s{_couDescription = a})---- | Optional heading for the description. For example, \"Welcome to 10th--- Grade Biology.\" If set, this field must be a valid UTF-8 string and no--- longer than 3600 characters.-couDescriptionHeading :: Lens' Course (Maybe Text)-couDescriptionHeading-  = lens _couDescriptionHeading-      (\ s a -> s{_couDescriptionHeading = a})---- | Section of the course. For example, \"Period 2\". If set, this field--- must be a valid UTF-8 string and no longer than 2800 characters.-couSection :: Lens' Course (Maybe Text)-couSection-  = lens _couSection (\ s a -> s{_couSection = a})--instance FromJSON Course where-        parseJSON-          = withObject "Course"-              (\ o ->-                 Course' <$>-                   (o .:? "creationTime") <*> (o .:? "room") <*>-                     (o .:? "courseMaterialSets" .!= mempty)-                     <*> (o .:? "calendarId")-                     <*> (o .:? "teacherGroupEmail")-                     <*> (o .:? "teacherFolder")-                     <*> (o .:? "courseState")-                     <*> (o .:? "guardiansEnabled")-                     <*> (o .:? "enrollmentCode")-                     <*> (o .:? "updateTime")-                     <*> (o .:? "ownerId")-                     <*> (o .:? "name")-                     <*> (o .:? "id")-                     <*> (o .:? "alternateLink")-                     <*> (o .:? "courseGroupEmail")-                     <*> (o .:? "description")-                     <*> (o .:? "descriptionHeading")-                     <*> (o .:? "section"))--instance ToJSON Course where-        toJSON Course'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _couCreationTime,-                  ("room" .=) <$> _couRoom,-                  ("courseMaterialSets" .=) <$> _couCourseMaterialSets,-                  ("calendarId" .=) <$> _couCalendarId,-                  ("teacherGroupEmail" .=) <$> _couTeacherGroupEmail,-                  ("teacherFolder" .=) <$> _couTeacherFolder,-                  ("courseState" .=) <$> _couCourseState,-                  ("guardiansEnabled" .=) <$> _couGuardiansEnabled,-                  ("enrollmentCode" .=) <$> _couEnrollmentCode,-                  ("updateTime" .=) <$> _couUpdateTime,-                  ("ownerId" .=) <$> _couOwnerId,-                  ("name" .=) <$> _couName, ("id" .=) <$> _couId,-                  ("alternateLink" .=) <$> _couAlternateLink,-                  ("courseGroupEmail" .=) <$> _couCourseGroupEmail,-                  ("description" .=) <$> _couDescription,-                  ("descriptionHeading" .=) <$> _couDescriptionHeading,-                  ("section" .=) <$> _couSection])---- | Represents a time of day. The date and time zone are either not--- significant or are specified elsewhere. An API may choose to allow leap--- seconds. Related types are google.type.Date and--- \`google.protobuf.Timestamp\`.------ /See:/ 'timeOfDay' smart constructor.-data TimeOfDay' =-  TimeOfDay''-    { _todNanos   :: !(Maybe (Textual Int32))-    , _todHours   :: !(Maybe (Textual Int32))-    , _todMinutes :: !(Maybe (Textual Int32))-    , _todSeconds :: !(Maybe (Textual Int32))-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'TimeOfDay' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'todNanos'------ * 'todHours'------ * 'todMinutes'------ * 'todSeconds'-timeOfDay-    :: TimeOfDay'-timeOfDay =-  TimeOfDay''-    { _todNanos = Nothing-    , _todHours = Nothing-    , _todMinutes = Nothing-    , _todSeconds = Nothing-    }----- | Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.-todNanos :: Lens' TimeOfDay' (Maybe Int32)-todNanos-  = lens _todNanos (\ s a -> s{_todNanos = a}) .-      mapping _Coerce---- | Hours of day in 24 hour format. Should be from 0 to 23. An API may--- choose to allow the value \"24:00:00\" for scenarios like business--- closing time.-todHours :: Lens' TimeOfDay' (Maybe Int32)-todHours-  = lens _todHours (\ s a -> s{_todHours = a}) .-      mapping _Coerce---- | Minutes of hour of day. Must be from 0 to 59.-todMinutes :: Lens' TimeOfDay' (Maybe Int32)-todMinutes-  = lens _todMinutes (\ s a -> s{_todMinutes = a}) .-      mapping _Coerce---- | Seconds of minutes of the time. Must normally be from 0 to 59. An API--- may allow the value 60 if it allows leap-seconds.-todSeconds :: Lens' TimeOfDay' (Maybe Int32)-todSeconds-  = lens _todSeconds (\ s a -> s{_todSeconds = a}) .-      mapping _Coerce--instance FromJSON TimeOfDay' where-        parseJSON-          = withObject "TimeOfDay"-              (\ o ->-                 TimeOfDay'' <$>-                   (o .:? "nanos") <*> (o .:? "hours") <*>-                     (o .:? "minutes")-                     <*> (o .:? "seconds"))--instance ToJSON TimeOfDay' where-        toJSON TimeOfDay''{..}-          = object-              (catMaybes-                 [("nanos" .=) <$> _todNanos,-                  ("hours" .=) <$> _todHours,-                  ("minutes" .=) <$> _todMinutes,-                  ("seconds" .=) <$> _todSeconds])---- | Response when listing guardian invitations.------ /See:/ 'listGuardianInvitationsResponse' smart constructor.-data ListGuardianInvitationsResponse =-  ListGuardianInvitationsResponse'-    { _lgirNextPageToken       :: !(Maybe Text)-    , _lgirGuardianInvitations :: !(Maybe [GuardianInvitation])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListGuardianInvitationsResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lgirNextPageToken'------ * 'lgirGuardianInvitations'-listGuardianInvitationsResponse-    :: ListGuardianInvitationsResponse-listGuardianInvitationsResponse =-  ListGuardianInvitationsResponse'-    {_lgirNextPageToken = Nothing, _lgirGuardianInvitations = Nothing}----- | Token identifying the next page of results to return. If empty, no--- further results are available.-lgirNextPageToken :: Lens' ListGuardianInvitationsResponse (Maybe Text)-lgirNextPageToken-  = lens _lgirNextPageToken-      (\ s a -> s{_lgirNextPageToken = a})---- | Guardian invitations that matched the list request.-lgirGuardianInvitations :: Lens' ListGuardianInvitationsResponse [GuardianInvitation]-lgirGuardianInvitations-  = lens _lgirGuardianInvitations-      (\ s a -> s{_lgirGuardianInvitations = a})-      . _Default-      . _Coerce--instance FromJSON ListGuardianInvitationsResponse-         where-        parseJSON-          = withObject "ListGuardianInvitationsResponse"-              (\ o ->-                 ListGuardianInvitationsResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "guardianInvitations" .!= mempty))--instance ToJSON ListGuardianInvitationsResponse where-        toJSON ListGuardianInvitationsResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _lgirNextPageToken,-                  ("guardianInvitations" .=) <$>-                    _lgirGuardianInvitations])---- | Additional details for assignments.------ /See:/ 'assignment' smart constructor.-newtype Assignment =-  Assignment'-    { _aStudentWorkFolder :: Maybe DriveFolder-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Assignment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aStudentWorkFolder'-assignment-    :: Assignment-assignment = Assignment' {_aStudentWorkFolder = Nothing}----- | Drive folder where attachments from student submissions are placed. This--- is only populated for course teachers and administrators.-aStudentWorkFolder :: Lens' Assignment (Maybe DriveFolder)-aStudentWorkFolder-  = lens _aStudentWorkFolder-      (\ s a -> s{_aStudentWorkFolder = a})--instance FromJSON Assignment where-        parseJSON-          = withObject "Assignment"-              (\ o -> Assignment' <$> (o .:? "studentWorkFolder"))--instance ToJSON Assignment where-        toJSON Assignment'{..}-          = object-              (catMaybes-                 [("studentWorkFolder" .=) <$> _aStudentWorkFolder])---- | Response when listing students.------ /See:/ 'listStudentsResponse' smart constructor.-data ListStudentsResponse =-  ListStudentsResponse'-    { _lsrNextPageToken :: !(Maybe Text)-    , _lsrStudents      :: !(Maybe [Student])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListStudentsResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lsrNextPageToken'------ * 'lsrStudents'-listStudentsResponse-    :: ListStudentsResponse-listStudentsResponse =-  ListStudentsResponse' {_lsrNextPageToken = Nothing, _lsrStudents = Nothing}----- | Token identifying the next page of results to return. If empty, no--- further results are available.-lsrNextPageToken :: Lens' ListStudentsResponse (Maybe Text)-lsrNextPageToken-  = lens _lsrNextPageToken-      (\ s a -> s{_lsrNextPageToken = a})---- | Students who match the list request.-lsrStudents :: Lens' ListStudentsResponse [Student]-lsrStudents-  = lens _lsrStudents (\ s a -> s{_lsrStudents = a}) .-      _Default-      . _Coerce--instance FromJSON ListStudentsResponse where-        parseJSON-          = withObject "ListStudentsResponse"-              (\ o ->-                 ListStudentsResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "students" .!= mempty))--instance ToJSON ListStudentsResponse where-        toJSON ListStudentsResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _lsrNextPageToken,-                  ("students" .=) <$> _lsrStudents])---- | Drive file that is used as material for course work.------ /See:/ 'sharedDriveFile' smart constructor.-data SharedDriveFile =-  SharedDriveFile'-    { _sdfDriveFile :: !(Maybe DriveFile)-    , _sdfShareMode :: !(Maybe SharedDriveFileShareMode)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'SharedDriveFile' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sdfDriveFile'------ * 'sdfShareMode'-sharedDriveFile-    :: SharedDriveFile-sharedDriveFile =-  SharedDriveFile' {_sdfDriveFile = Nothing, _sdfShareMode = Nothing}----- | Drive file details.-sdfDriveFile :: Lens' SharedDriveFile (Maybe DriveFile)-sdfDriveFile-  = lens _sdfDriveFile (\ s a -> s{_sdfDriveFile = a})---- | Mechanism by which students access the Drive item.-sdfShareMode :: Lens' SharedDriveFile (Maybe SharedDriveFileShareMode)-sdfShareMode-  = lens _sdfShareMode (\ s a -> s{_sdfShareMode = a})--instance FromJSON SharedDriveFile where-        parseJSON-          = withObject "SharedDriveFile"-              (\ o ->-                 SharedDriveFile' <$>-                   (o .:? "driveFile") <*> (o .:? "shareMode"))--instance ToJSON SharedDriveFile where-        toJSON SharedDriveFile'{..}-          = object-              (catMaybes-                 [("driveFile" .=) <$> _sdfDriveFile,-                  ("shareMode" .=) <$> _sdfShareMode])---- | Alternative identifier for a course. An alias uniquely identifies a--- course. It must be unique within one of the following scopes: * domain:--- A domain-scoped alias is visible to all users within the alias--- creator\'s domain and can be created only by a domain admin. A--- domain-scoped alias is often used when a course has an identifier--- external to Classroom. * project: A project-scoped alias is visible to--- any request from an application using the Developer Console project ID--- that created the alias and can be created by any project. A--- project-scoped alias is often used when an application has alternative--- identifiers. A random value can also be used to avoid duplicate courses--- in the event of transmission failures, as retrying a request will return--- \`ALREADY_EXISTS\` if a previous one has succeeded.------ /See:/ 'courseAlias' smart constructor.-newtype CourseAlias =-  CourseAlias'-    { _caAlias :: Maybe Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CourseAlias' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'caAlias'-courseAlias-    :: CourseAlias-courseAlias = CourseAlias' {_caAlias = Nothing}----- | Alias string. The format of the string indicates the desired alias--- scoping. * \`d:\` indicates a domain-scoped alias. Example:--- \`d:math_101\` * \`p:\` indicates a project-scoped alias. Example:--- \`p:abc123\` This field has a maximum length of 256 characters.-caAlias :: Lens' CourseAlias (Maybe Text)-caAlias = lens _caAlias (\ s a -> s{_caAlias = a})--instance FromJSON CourseAlias where-        parseJSON-          = withObject "CourseAlias"-              (\ o -> CourseAlias' <$> (o .:? "alias"))--instance ToJSON CourseAlias where-        toJSON CourseAlias'{..}-          = object (catMaybes [("alias" .=) <$> _caAlias])---- | Information about a \`Feed\` with a \`feed_type\` of--- \`COURSE_ROSTER_CHANGES\`.------ /See:/ 'courseRosterChangesInfo' smart constructor.-newtype CourseRosterChangesInfo =-  CourseRosterChangesInfo'-    { _crciCourseId :: Maybe Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CourseRosterChangesInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'crciCourseId'-courseRosterChangesInfo-    :: CourseRosterChangesInfo-courseRosterChangesInfo = CourseRosterChangesInfo' {_crciCourseId = Nothing}----- | The \`course_id\` of the course to subscribe to roster changes for.-crciCourseId :: Lens' CourseRosterChangesInfo (Maybe Text)-crciCourseId-  = lens _crciCourseId (\ s a -> s{_crciCourseId = a})--instance FromJSON CourseRosterChangesInfo where-        parseJSON-          = withObject "CourseRosterChangesInfo"-              (\ o ->-                 CourseRosterChangesInfo' <$> (o .:? "courseId"))--instance ToJSON CourseRosterChangesInfo where-        toJSON CourseRosterChangesInfo'{..}-          = object-              (catMaybes [("courseId" .=) <$> _crciCourseId])---- | Contains fields to add or remove students from a course work or--- announcement where the \`assigneeMode\` is set to--- \`INDIVIDUAL_STUDENTS\`.------ /See:/ 'modifyIndividualStudentsOptions' smart constructor.-data ModifyIndividualStudentsOptions =-  ModifyIndividualStudentsOptions'-    { _misoAddStudentIds    :: !(Maybe [Text])-    , _misoRemoveStudentIds :: !(Maybe [Text])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ModifyIndividualStudentsOptions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'misoAddStudentIds'------ * 'misoRemoveStudentIds'-modifyIndividualStudentsOptions-    :: ModifyIndividualStudentsOptions-modifyIndividualStudentsOptions =-  ModifyIndividualStudentsOptions'-    {_misoAddStudentIds = Nothing, _misoRemoveStudentIds = Nothing}----- | Ids of students to be added as having access to this--- coursework\/announcement.-misoAddStudentIds :: Lens' ModifyIndividualStudentsOptions [Text]-misoAddStudentIds-  = lens _misoAddStudentIds-      (\ s a -> s{_misoAddStudentIds = a})-      . _Default-      . _Coerce---- | Ids of students to be removed from having access to this--- coursework\/announcement.-misoRemoveStudentIds :: Lens' ModifyIndividualStudentsOptions [Text]-misoRemoveStudentIds-  = lens _misoRemoveStudentIds-      (\ s a -> s{_misoRemoveStudentIds = a})-      . _Default-      . _Coerce--instance FromJSON ModifyIndividualStudentsOptions-         where-        parseJSON-          = withObject "ModifyIndividualStudentsOptions"-              (\ o ->-                 ModifyIndividualStudentsOptions' <$>-                   (o .:? "addStudentIds" .!= mempty) <*>-                     (o .:? "removeStudentIds" .!= mempty))--instance ToJSON ModifyIndividualStudentsOptions where-        toJSON ModifyIndividualStudentsOptions'{..}-          = object-              (catMaybes-                 [("addStudentIds" .=) <$> _misoAddStudentIds,-                  ("removeStudentIds" .=) <$> _misoRemoveStudentIds])---- | A reference to a Cloud Pub\/Sub topic. To register for notifications,--- the owner of the topic must grant--- \`classroom-notifications\'system.gserviceaccount.com\` the--- \`projects.topics.publish\` permission.------ /See:/ 'cloudPubsubTopic' smart constructor.-newtype CloudPubsubTopic =-  CloudPubsubTopic'-    { _cptTopicName :: Maybe Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CloudPubsubTopic' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cptTopicName'-cloudPubsubTopic-    :: CloudPubsubTopic-cloudPubsubTopic = CloudPubsubTopic' {_cptTopicName = Nothing}----- | The \`name\` field of a Cloud Pub\/Sub--- [Topic](https:\/\/cloud.google.com\/pubsub\/docs\/reference\/rest\/v1\/projects.topics#Topic).-cptTopicName :: Lens' CloudPubsubTopic (Maybe Text)-cptTopicName-  = lens _cptTopicName (\ s a -> s{_cptTopicName = a})--instance FromJSON CloudPubsubTopic where-        parseJSON-          = withObject "CloudPubsubTopic"-              (\ o -> CloudPubsubTopic' <$> (o .:? "topicName"))--instance ToJSON CloudPubsubTopic where-        toJSON CloudPubsubTopic'{..}-          = object-              (catMaybes [("topicName" .=) <$> _cptTopicName])---- | Google Forms item.------ /See:/ 'form' smart constructor.-data Form =-  Form'-    { _fThumbnailURL :: !(Maybe Text)-    , _fFormURL      :: !(Maybe Text)-    , _fTitle        :: !(Maybe Text)-    , _fResponseURL  :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Form' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'fThumbnailURL'------ * 'fFormURL'------ * 'fTitle'------ * 'fResponseURL'-form-    :: Form-form =-  Form'-    { _fThumbnailURL = Nothing-    , _fFormURL = Nothing-    , _fTitle = Nothing-    , _fResponseURL = Nothing-    }----- | URL of a thumbnail image of the Form. Read-only.-fThumbnailURL :: Lens' Form (Maybe Text)-fThumbnailURL-  = lens _fThumbnailURL-      (\ s a -> s{_fThumbnailURL = a})---- | URL of the form.-fFormURL :: Lens' Form (Maybe Text)-fFormURL = lens _fFormURL (\ s a -> s{_fFormURL = a})---- | Title of the Form. Read-only.-fTitle :: Lens' Form (Maybe Text)-fTitle = lens _fTitle (\ s a -> s{_fTitle = a})---- | URL of the form responses document. Only set if respsonses have been--- recorded and only when the requesting user is an editor of the form.--- Read-only.-fResponseURL :: Lens' Form (Maybe Text)-fResponseURL-  = lens _fResponseURL (\ s a -> s{_fResponseURL = a})--instance FromJSON Form where-        parseJSON-          = withObject "Form"-              (\ o ->-                 Form' <$>-                   (o .:? "thumbnailUrl") <*> (o .:? "formUrl") <*>-                     (o .:? "title")-                     <*> (o .:? "responseUrl"))--instance ToJSON Form where-        toJSON Form'{..}-          = object-              (catMaybes-                 [("thumbnailUrl" .=) <$> _fThumbnailURL,-                  ("formUrl" .=) <$> _fFormURL,-                  ("title" .=) <$> _fTitle,-                  ("responseUrl" .=) <$> _fResponseURL])---- | Response when listing teachers.------ /See:/ 'listTeachersResponse' smart constructor.-data ListTeachersResponse =-  ListTeachersResponse'-    { _lNextPageToken :: !(Maybe Text)-    , _lTeachers      :: !(Maybe [Teacher])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListTeachersResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lNextPageToken'------ * 'lTeachers'-listTeachersResponse-    :: ListTeachersResponse-listTeachersResponse =-  ListTeachersResponse' {_lNextPageToken = Nothing, _lTeachers = Nothing}----- | Token identifying the next page of results to return. If empty, no--- further results are available.-lNextPageToken :: Lens' ListTeachersResponse (Maybe Text)-lNextPageToken-  = lens _lNextPageToken-      (\ s a -> s{_lNextPageToken = a})---- | Teachers who match the list request.-lTeachers :: Lens' ListTeachersResponse [Teacher]-lTeachers-  = lens _lTeachers (\ s a -> s{_lTeachers = a}) .-      _Default-      . _Coerce--instance FromJSON ListTeachersResponse where-        parseJSON-          = withObject "ListTeachersResponse"-              (\ o ->-                 ListTeachersResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "teachers" .!= mempty))--instance ToJSON ListTeachersResponse where-        toJSON ListTeachersResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _lNextPageToken,-                  ("teachers" .=) <$> _lTeachers])---- | Student in a course.------ /See:/ 'student' smart constructor.-data Student =-  Student'-    { _sCourseId          :: !(Maybe Text)-    , _sProFile           :: !(Maybe UserProFile)-    , _sStudentWorkFolder :: !(Maybe DriveFolder)-    , _sUserId            :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Student' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sCourseId'------ * 'sProFile'------ * 'sStudentWorkFolder'------ * 'sUserId'-student-    :: Student-student =-  Student'-    { _sCourseId = Nothing-    , _sProFile = Nothing-    , _sStudentWorkFolder = Nothing-    , _sUserId = Nothing-    }----- | Identifier of the course. Read-only.-sCourseId :: Lens' Student (Maybe Text)-sCourseId-  = lens _sCourseId (\ s a -> s{_sCourseId = a})---- | Global user information for the student. Read-only.-sProFile :: Lens' Student (Maybe UserProFile)-sProFile = lens _sProFile (\ s a -> s{_sProFile = a})---- | Information about a Drive Folder for this student\'s work in this--- course. Only visible to the student and domain administrators.--- Read-only.-sStudentWorkFolder :: Lens' Student (Maybe DriveFolder)-sStudentWorkFolder-  = lens _sStudentWorkFolder-      (\ s a -> s{_sStudentWorkFolder = a})---- | Identifier of the user. When specified as a parameter of a request, this--- identifier can be one of the following: * the numeric identifier for the--- user * the email address of the user * the string literal \`\"me\"\`,--- indicating the requesting user-sUserId :: Lens' Student (Maybe Text)-sUserId = lens _sUserId (\ s a -> s{_sUserId = a})--instance FromJSON Student where-        parseJSON-          = withObject "Student"-              (\ o ->-                 Student' <$>-                   (o .:? "courseId") <*> (o .:? "profile") <*>-                     (o .:? "studentWorkFolder")-                     <*> (o .:? "userId"))--instance ToJSON Student where-        toJSON Student'{..}-          = object-              (catMaybes-                 [("courseId" .=) <$> _sCourseId,-                  ("profile" .=) <$> _sProFile,-                  ("studentWorkFolder" .=) <$> _sStudentWorkFolder,-                  ("userId" .=) <$> _sUserId])---- | An instruction to Classroom to send notifications from the \`feed\` to--- the provided destination.------ /See:/ 'registration' smart constructor.-data Registration =-  Registration'-    { _rRegistrationId   :: !(Maybe Text)-    , _rExpiryTime       :: !(Maybe DateTime')-    , _rFeed             :: !(Maybe Feed)-    , _rCloudPubsubTopic :: !(Maybe CloudPubsubTopic)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Registration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rRegistrationId'------ * 'rExpiryTime'------ * 'rFeed'------ * 'rCloudPubsubTopic'-registration-    :: Registration-registration =-  Registration'-    { _rRegistrationId = Nothing-    , _rExpiryTime = Nothing-    , _rFeed = Nothing-    , _rCloudPubsubTopic = Nothing-    }----- | A server-generated unique identifier for this \`Registration\`.--- Read-only.-rRegistrationId :: Lens' Registration (Maybe Text)-rRegistrationId-  = lens _rRegistrationId-      (\ s a -> s{_rRegistrationId = a})---- | The time until which the \`Registration\` is effective. This is a--- read-only field assigned by the server.-rExpiryTime :: Lens' Registration (Maybe UTCTime)-rExpiryTime-  = lens _rExpiryTime (\ s a -> s{_rExpiryTime = a}) .-      mapping _DateTime---- | Specification for the class of notifications that Classroom should--- deliver to the destination.-rFeed :: Lens' Registration (Maybe Feed)-rFeed = lens _rFeed (\ s a -> s{_rFeed = a})---- | The Cloud Pub\/Sub topic that notifications are to be sent to.-rCloudPubsubTopic :: Lens' Registration (Maybe CloudPubsubTopic)-rCloudPubsubTopic-  = lens _rCloudPubsubTopic-      (\ s a -> s{_rCloudPubsubTopic = a})--instance FromJSON Registration where-        parseJSON-          = withObject "Registration"-              (\ o ->-                 Registration' <$>-                   (o .:? "registrationId") <*> (o .:? "expiryTime") <*>-                     (o .:? "feed")-                     <*> (o .:? "cloudPubsubTopic"))--instance ToJSON Registration where-        toJSON Registration'{..}-          = object-              (catMaybes-                 [("registrationId" .=) <$> _rRegistrationId,-                  ("expiryTime" .=) <$> _rExpiryTime,-                  ("feed" .=) <$> _rFeed,-                  ("cloudPubsubTopic" .=) <$> _rCloudPubsubTopic])
− gen/Network/Google/Classroom/Types/Sum.hs
@@ -1,788 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE LambdaCase         #-}-{-# LANGUAGE NoImplicitPrelude  #-}-{-# LANGUAGE OverloadedStrings  #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module      : Network.Google.Classroom.Types.Sum--- 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)----module Network.Google.Classroom.Types.Sum where--import           Network.Google.Prelude hiding (Bytes)---- | The type of grade change at this time in the submission grade history.-data GradeHistoryGradeChangeType-    = UnknownGradeChangeType-      -- ^ @UNKNOWN_GRADE_CHANGE_TYPE@-      -- No grade change type specified. This should never be returned.-    | DraftGradePointsEarnedChange-      -- ^ @DRAFT_GRADE_POINTS_EARNED_CHANGE@-      -- A change in the numerator of the draft grade.-    | AssignedGradePointsEarnedChange-      -- ^ @ASSIGNED_GRADE_POINTS_EARNED_CHANGE@-      -- A change in the numerator of the assigned grade.-    | MaxPointsChange-      -- ^ @MAX_POINTS_CHANGE@-      -- A change in the denominator of the grade.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable GradeHistoryGradeChangeType--instance FromHttpApiData GradeHistoryGradeChangeType where-    parseQueryParam = \case-        "UNKNOWN_GRADE_CHANGE_TYPE" -> Right UnknownGradeChangeType-        "DRAFT_GRADE_POINTS_EARNED_CHANGE" -> Right DraftGradePointsEarnedChange-        "ASSIGNED_GRADE_POINTS_EARNED_CHANGE" -> Right AssignedGradePointsEarnedChange-        "MAX_POINTS_CHANGE" -> Right MaxPointsChange-        x -> Left ("Unable to parse GradeHistoryGradeChangeType from: " <> x)--instance ToHttpApiData GradeHistoryGradeChangeType where-    toQueryParam = \case-        UnknownGradeChangeType -> "UNKNOWN_GRADE_CHANGE_TYPE"-        DraftGradePointsEarnedChange -> "DRAFT_GRADE_POINTS_EARNED_CHANGE"-        AssignedGradePointsEarnedChange -> "ASSIGNED_GRADE_POINTS_EARNED_CHANGE"-        MaxPointsChange -> "MAX_POINTS_CHANGE"--instance FromJSON GradeHistoryGradeChangeType where-    parseJSON = parseJSONText "GradeHistoryGradeChangeType"--instance ToJSON GradeHistoryGradeChangeType where-    toJSON = toJSONText---- | State of the course. If unspecified, the default state is--- \`PROVISIONED\`.-data CourseCourseState-    = CourseStateUnspecified-      -- ^ @COURSE_STATE_UNSPECIFIED@-      -- No course state. No returned Course message will use this value.-    | Active-      -- ^ @ACTIVE@-      -- The course is active.-    | Archived-      -- ^ @ARCHIVED@-      -- The course has been archived. You cannot modify it except to change it-      -- to a different state.-    | Provisioned-      -- ^ @PROVISIONED@-      -- The course has been created, but not yet activated. It is accessible by-      -- the primary teacher and domain administrators, who may modify it or-      -- change it to the \`ACTIVE\` or \`DECLINED\` states. A course may only be-      -- changed to \`PROVISIONED\` if it is in the \`DECLINED\` state.-    | Declined-      -- ^ @DECLINED@-      -- The course has been created, but declined. It is accessible by the-      -- course owner and domain administrators, though it will not be displayed-      -- in the web UI. You cannot modify the course except to change it to the-      -- \`PROVISIONED\` state. A course may only be changed to \`DECLINED\` if-      -- it is in the \`PROVISIONED\` state.-    | Suspended-      -- ^ @SUSPENDED@-      -- The course has been suspended. You cannot modify the course, and only-      -- the user identified by the \`owner_id\` can view the course. A course-      -- may be placed in this state if it potentially violates the Terms of-      -- Service.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable CourseCourseState--instance FromHttpApiData CourseCourseState where-    parseQueryParam = \case-        "COURSE_STATE_UNSPECIFIED" -> Right CourseStateUnspecified-        "ACTIVE" -> Right Active-        "ARCHIVED" -> Right Archived-        "PROVISIONED" -> Right Provisioned-        "DECLINED" -> Right Declined-        "SUSPENDED" -> Right Suspended-        x -> Left ("Unable to parse CourseCourseState from: " <> x)--instance ToHttpApiData CourseCourseState where-    toQueryParam = \case-        CourseStateUnspecified -> "COURSE_STATE_UNSPECIFIED"-        Active -> "ACTIVE"-        Archived -> "ARCHIVED"-        Provisioned -> "PROVISIONED"-        Declined -> "DECLINED"-        Suspended -> "SUSPENDED"--instance FromJSON CourseCourseState where-    parseJSON = parseJSONText "CourseCourseState"--instance ToJSON CourseCourseState where-    toJSON = toJSONText---- | The workflow pipeline stage.-data StateHistoryState-    = StateUnspecified-      -- ^ @STATE_UNSPECIFIED@-      -- No state specified. This should never be returned.-    | Created-      -- ^ @CREATED@-      -- The Submission has been created.-    | TurnedIn-      -- ^ @TURNED_IN@-      -- The student has turned in an assigned document, which may or may not be-      -- a template.-    | Returned-      -- ^ @RETURNED@-      -- The teacher has returned the assigned document to the student.-    | ReclaimedByStudent-      -- ^ @RECLAIMED_BY_STUDENT@-      -- The student turned in the assigned document, and then chose to-      -- \"unsubmit\" the assignment, giving the student control again as the-      -- owner.-    | StudentEditedAfterTurnIn-      -- ^ @STUDENT_EDITED_AFTER_TURN_IN@-      -- The student edited their submission after turning it in. Currently, only-      -- used by Questions, when the student edits their answer.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable StateHistoryState--instance FromHttpApiData StateHistoryState where-    parseQueryParam = \case-        "STATE_UNSPECIFIED" -> Right StateUnspecified-        "CREATED" -> Right Created-        "TURNED_IN" -> Right TurnedIn-        "RETURNED" -> Right Returned-        "RECLAIMED_BY_STUDENT" -> Right ReclaimedByStudent-        "STUDENT_EDITED_AFTER_TURN_IN" -> Right StudentEditedAfterTurnIn-        x -> Left ("Unable to parse StateHistoryState from: " <> x)--instance ToHttpApiData StateHistoryState where-    toQueryParam = \case-        StateUnspecified -> "STATE_UNSPECIFIED"-        Created -> "CREATED"-        TurnedIn -> "TURNED_IN"-        Returned -> "RETURNED"-        ReclaimedByStudent -> "RECLAIMED_BY_STUDENT"-        StudentEditedAfterTurnIn -> "STUDENT_EDITED_AFTER_TURN_IN"--instance FromJSON StateHistoryState where-    parseJSON = parseJSONText "StateHistoryState"--instance ToJSON StateHistoryState where-    toJSON = toJSONText---- | Type of this course work. The type is set when the course work is--- created and cannot be changed.-data CourseWorkWorkType-    = CWWTCourseWorkTypeUnspecified-      -- ^ @COURSE_WORK_TYPE_UNSPECIFIED@-      -- No work type specified. This is never returned.-    | CWWTAssignment-      -- ^ @ASSIGNMENT@-      -- An assignment.-    | CWWTShortAnswerQuestion-      -- ^ @SHORT_ANSWER_QUESTION@-      -- A short answer question.-    | CWWTMultipleChoiceQuestion-      -- ^ @MULTIPLE_CHOICE_QUESTION@-      -- A multiple-choice question.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable CourseWorkWorkType--instance FromHttpApiData CourseWorkWorkType where-    parseQueryParam = \case-        "COURSE_WORK_TYPE_UNSPECIFIED" -> Right CWWTCourseWorkTypeUnspecified-        "ASSIGNMENT" -> Right CWWTAssignment-        "SHORT_ANSWER_QUESTION" -> Right CWWTShortAnswerQuestion-        "MULTIPLE_CHOICE_QUESTION" -> Right CWWTMultipleChoiceQuestion-        x -> Left ("Unable to parse CourseWorkWorkType from: " <> x)--instance ToHttpApiData CourseWorkWorkType where-    toQueryParam = \case-        CWWTCourseWorkTypeUnspecified -> "COURSE_WORK_TYPE_UNSPECIFIED"-        CWWTAssignment -> "ASSIGNMENT"-        CWWTShortAnswerQuestion -> "SHORT_ANSWER_QUESTION"-        CWWTMultipleChoiceQuestion -> "MULTIPLE_CHOICE_QUESTION"--instance FromJSON CourseWorkWorkType where-    parseJSON = parseJSONText "CourseWorkWorkType"--instance ToJSON CourseWorkWorkType where-    toJSON = toJSONText---- | Mode of the coursework describing whether it will be assigned to all--- students or specified individual students.-data ModifyCourseWorkAssigneesRequestAssigneeMode-    = AssigneeModeUnspecified-      -- ^ @ASSIGNEE_MODE_UNSPECIFIED@-      -- No mode specified. This is never returned.-    | AllStudents-      -- ^ @ALL_STUDENTS@-      -- All students can see the item. This is the default state.-    | IndividualStudents-      -- ^ @INDIVIDUAL_STUDENTS@-      -- A subset of the students can see the item.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable ModifyCourseWorkAssigneesRequestAssigneeMode--instance FromHttpApiData ModifyCourseWorkAssigneesRequestAssigneeMode where-    parseQueryParam = \case-        "ASSIGNEE_MODE_UNSPECIFIED" -> Right AssigneeModeUnspecified-        "ALL_STUDENTS" -> Right AllStudents-        "INDIVIDUAL_STUDENTS" -> Right IndividualStudents-        x -> Left ("Unable to parse ModifyCourseWorkAssigneesRequestAssigneeMode from: " <> x)--instance ToHttpApiData ModifyCourseWorkAssigneesRequestAssigneeMode where-    toQueryParam = \case-        AssigneeModeUnspecified -> "ASSIGNEE_MODE_UNSPECIFIED"-        AllStudents -> "ALL_STUDENTS"-        IndividualStudents -> "INDIVIDUAL_STUDENTS"--instance FromJSON ModifyCourseWorkAssigneesRequestAssigneeMode where-    parseJSON = parseJSONText "ModifyCourseWorkAssigneesRequestAssigneeMode"--instance ToJSON ModifyCourseWorkAssigneesRequestAssigneeMode where-    toJSON = toJSONText---- | The state that this invitation is in.-data GuardianInvitationState-    = GuardianInvitationStateUnspecified-      -- ^ @GUARDIAN_INVITATION_STATE_UNSPECIFIED@-      -- Should never be returned.-    | Pending-      -- ^ @PENDING@-      -- The invitation is active and awaiting a response.-    | Complete-      -- ^ @COMPLETE@-      -- The invitation is no longer active. It may have been accepted, declined,-      -- withdrawn or it may have expired.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable GuardianInvitationState--instance FromHttpApiData GuardianInvitationState where-    parseQueryParam = \case-        "GUARDIAN_INVITATION_STATE_UNSPECIFIED" -> Right GuardianInvitationStateUnspecified-        "PENDING" -> Right Pending-        "COMPLETE" -> Right Complete-        x -> Left ("Unable to parse GuardianInvitationState from: " <> x)--instance ToHttpApiData GuardianInvitationState where-    toQueryParam = \case-        GuardianInvitationStateUnspecified -> "GUARDIAN_INVITATION_STATE_UNSPECIFIED"-        Pending -> "PENDING"-        Complete -> "COMPLETE"--instance FromJSON GuardianInvitationState where-    parseJSON = parseJSONText "GuardianInvitationState"--instance ToJSON GuardianInvitationState where-    toJSON = toJSONText---- | Mechanism by which students access the Drive item.-data SharedDriveFileShareMode-    = UnknownShareMode-      -- ^ @UNKNOWN_SHARE_MODE@-      -- No sharing mode specified. This should never be returned.-    | View-      -- ^ @VIEW@-      -- Students can view the shared file.-    | Edit-      -- ^ @EDIT@-      -- Students can edit the shared file.-    | StudentCopy-      -- ^ @STUDENT_COPY@-      -- Students have a personal copy of the shared file.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable SharedDriveFileShareMode--instance FromHttpApiData SharedDriveFileShareMode where-    parseQueryParam = \case-        "UNKNOWN_SHARE_MODE" -> Right UnknownShareMode-        "VIEW" -> Right View-        "EDIT" -> Right Edit-        "STUDENT_COPY" -> Right StudentCopy-        x -> Left ("Unable to parse SharedDriveFileShareMode from: " <> x)--instance ToHttpApiData SharedDriveFileShareMode where-    toQueryParam = \case-        UnknownShareMode -> "UNKNOWN_SHARE_MODE"-        View -> "VIEW"-        Edit -> "EDIT"-        StudentCopy -> "STUDENT_COPY"--instance FromJSON SharedDriveFileShareMode where-    parseJSON = parseJSONText "SharedDriveFileShareMode"--instance ToJSON SharedDriveFileShareMode where-    toJSON = toJSONText---- | Mode of the announcement describing whether it will be accessible by all--- students or specified individual students.-data ModifyAnnouncementAssigneesRequestAssigneeMode-    = MAARAMAssigneeModeUnspecified-      -- ^ @ASSIGNEE_MODE_UNSPECIFIED@-      -- No mode specified. This is never returned.-    | MAARAMAllStudents-      -- ^ @ALL_STUDENTS@-      -- All students can see the item. This is the default state.-    | MAARAMIndividualStudents-      -- ^ @INDIVIDUAL_STUDENTS@-      -- A subset of the students can see the item.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable ModifyAnnouncementAssigneesRequestAssigneeMode--instance FromHttpApiData ModifyAnnouncementAssigneesRequestAssigneeMode where-    parseQueryParam = \case-        "ASSIGNEE_MODE_UNSPECIFIED" -> Right MAARAMAssigneeModeUnspecified-        "ALL_STUDENTS" -> Right MAARAMAllStudents-        "INDIVIDUAL_STUDENTS" -> Right MAARAMIndividualStudents-        x -> Left ("Unable to parse ModifyAnnouncementAssigneesRequestAssigneeMode from: " <> x)--instance ToHttpApiData ModifyAnnouncementAssigneesRequestAssigneeMode where-    toQueryParam = \case-        MAARAMAssigneeModeUnspecified -> "ASSIGNEE_MODE_UNSPECIFIED"-        MAARAMAllStudents -> "ALL_STUDENTS"-        MAARAMIndividualStudents -> "INDIVIDUAL_STUDENTS"--instance FromJSON ModifyAnnouncementAssigneesRequestAssigneeMode where-    parseJSON = parseJSONText "ModifyAnnouncementAssigneesRequestAssigneeMode"--instance ToJSON ModifyAnnouncementAssigneesRequestAssigneeMode where-    toJSON = toJSONText---- | Assignee mode of the announcement. If unspecified, the default value is--- \`ALL_STUDENTS\`.-data AnnouncementAssigneeMode-    = AAMAssigneeModeUnspecified-      -- ^ @ASSIGNEE_MODE_UNSPECIFIED@-      -- No mode specified. This is never returned.-    | AAMAllStudents-      -- ^ @ALL_STUDENTS@-      -- All students can see the item. This is the default state.-    | AAMIndividualStudents-      -- ^ @INDIVIDUAL_STUDENTS@-      -- A subset of the students can see the item.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable AnnouncementAssigneeMode--instance FromHttpApiData AnnouncementAssigneeMode where-    parseQueryParam = \case-        "ASSIGNEE_MODE_UNSPECIFIED" -> Right AAMAssigneeModeUnspecified-        "ALL_STUDENTS" -> Right AAMAllStudents-        "INDIVIDUAL_STUDENTS" -> Right AAMIndividualStudents-        x -> Left ("Unable to parse AnnouncementAssigneeMode from: " <> x)--instance ToHttpApiData AnnouncementAssigneeMode where-    toQueryParam = \case-        AAMAssigneeModeUnspecified -> "ASSIGNEE_MODE_UNSPECIFIED"-        AAMAllStudents -> "ALL_STUDENTS"-        AAMIndividualStudents -> "INDIVIDUAL_STUDENTS"--instance FromJSON AnnouncementAssigneeMode where-    parseJSON = parseJSONText "AnnouncementAssigneeMode"--instance ToJSON AnnouncementAssigneeMode where-    toJSON = toJSONText---- | Status of this course work. If unspecified, the default state is--- \`DRAFT\`.-data CourseWorkState-    = CourseWorkStateUnspecified-      -- ^ @COURSE_WORK_STATE_UNSPECIFIED@-      -- No state specified. This is never returned.-    | Published-      -- ^ @PUBLISHED@-      -- Status for work that has been published. This is the default state.-    | Draft-      -- ^ @DRAFT@-      -- Status for work that is not yet published. Work in this state is visible-      -- only to course teachers and domain administrators.-    | Deleted-      -- ^ @DELETED@-      -- Status for work that was published but is now deleted. Work in this-      -- state is visible only to course teachers and domain administrators. Work-      -- in this state is deleted after some time.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable CourseWorkState--instance FromHttpApiData CourseWorkState where-    parseQueryParam = \case-        "COURSE_WORK_STATE_UNSPECIFIED" -> Right CourseWorkStateUnspecified-        "PUBLISHED" -> Right Published-        "DRAFT" -> Right Draft-        "DELETED" -> Right Deleted-        x -> Left ("Unable to parse CourseWorkState from: " <> x)--instance ToHttpApiData CourseWorkState where-    toQueryParam = \case-        CourseWorkStateUnspecified -> "COURSE_WORK_STATE_UNSPECIFIED"-        Published -> "PUBLISHED"-        Draft -> "DRAFT"-        Deleted -> "DELETED"--instance FromJSON CourseWorkState where-    parseJSON = parseJSONText "CourseWorkState"--instance ToJSON CourseWorkState where-    toJSON = toJSONText---- | State of this submission. Read-only.-data StudentSubmissionState-    = SSSSubmissionStateUnspecified-      -- ^ @SUBMISSION_STATE_UNSPECIFIED@-      -- No state specified. This should never be returned.-    | SSSNew-      -- ^ @NEW@-      -- The student has never accessed this submission. Attachments are not-      -- returned and timestamps is not set.-    | SSSCreated-      -- ^ @CREATED@-      -- Has been created.-    | SSSTurnedIn-      -- ^ @TURNED_IN@-      -- Has been turned in to the teacher.-    | SSSReturned-      -- ^ @RETURNED@-      -- Has been returned to the student.-    | SSSReclaimedByStudent-      -- ^ @RECLAIMED_BY_STUDENT@-      -- Student chose to \"unsubmit\" the assignment.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable StudentSubmissionState--instance FromHttpApiData StudentSubmissionState where-    parseQueryParam = \case-        "SUBMISSION_STATE_UNSPECIFIED" -> Right SSSSubmissionStateUnspecified-        "NEW" -> Right SSSNew-        "CREATED" -> Right SSSCreated-        "TURNED_IN" -> Right SSSTurnedIn-        "RETURNED" -> Right SSSReturned-        "RECLAIMED_BY_STUDENT" -> Right SSSReclaimedByStudent-        x -> Left ("Unable to parse StudentSubmissionState from: " <> x)--instance ToHttpApiData StudentSubmissionState where-    toQueryParam = \case-        SSSSubmissionStateUnspecified -> "SUBMISSION_STATE_UNSPECIFIED"-        SSSNew -> "NEW"-        SSSCreated -> "CREATED"-        SSSTurnedIn -> "TURNED_IN"-        SSSReturned -> "RETURNED"-        SSSReclaimedByStudent -> "RECLAIMED_BY_STUDENT"--instance FromJSON StudentSubmissionState where-    parseJSON = parseJSONText "StudentSubmissionState"--instance ToJSON StudentSubmissionState where-    toJSON = toJSONText---- | Status of this announcement. If unspecified, the default state is--- \`DRAFT\`.-data AnnouncementState-    = ASAnnouncementStateUnspecified-      -- ^ @ANNOUNCEMENT_STATE_UNSPECIFIED@-      -- No state specified. This is never returned.-    | ASPublished-      -- ^ @PUBLISHED@-      -- Status for announcement that has been published. This is the default-      -- state.-    | ASDraft-      -- ^ @DRAFT@-      -- Status for an announcement that is not yet published. Announcement in-      -- this state is visible only to course teachers and domain administrators.-    | ASDeleted-      -- ^ @DELETED@-      -- Status for announcement that was published but is now deleted.-      -- Announcement in this state is visible only to course teachers and domain-      -- administrators. Announcement in this state is deleted after some time.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable AnnouncementState--instance FromHttpApiData AnnouncementState where-    parseQueryParam = \case-        "ANNOUNCEMENT_STATE_UNSPECIFIED" -> Right ASAnnouncementStateUnspecified-        "PUBLISHED" -> Right ASPublished-        "DRAFT" -> Right ASDraft-        "DELETED" -> Right ASDeleted-        x -> Left ("Unable to parse AnnouncementState from: " <> x)--instance ToHttpApiData AnnouncementState where-    toQueryParam = \case-        ASAnnouncementStateUnspecified -> "ANNOUNCEMENT_STATE_UNSPECIFIED"-        ASPublished -> "PUBLISHED"-        ASDraft -> "DRAFT"-        ASDeleted -> "DELETED"--instance FromJSON AnnouncementState where-    parseJSON = parseJSONText "AnnouncementState"--instance ToJSON AnnouncementState where-    toJSON = toJSONText---- | V1 error format.-data Xgafv-    = X1-      -- ^ @1@-      -- v1 error format-    | X2-      -- ^ @2@-      -- v2 error format-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable Xgafv--instance FromHttpApiData Xgafv where-    parseQueryParam = \case-        "1" -> Right X1-        "2" -> Right X2-        x -> Left ("Unable to parse Xgafv from: " <> x)--instance ToHttpApiData Xgafv where-    toQueryParam = \case-        X1 -> "1"-        X2 -> "2"--instance FromJSON Xgafv where-    parseJSON = parseJSONText "Xgafv"--instance ToJSON Xgafv where-    toJSON = toJSONText---- | Role to invite the user to have. Must not be--- \`COURSE_ROLE_UNSPECIFIED\`.-data InvitationRole-    = IRCourseRoleUnspecified-      -- ^ @COURSE_ROLE_UNSPECIFIED@-      -- No course role.-    | IRStudent-      -- ^ @STUDENT@-      -- Student in the course.-    | IRTeacher-      -- ^ @TEACHER@-      -- Teacher of the course.-    | IROwner-      -- ^ @OWNER@-      -- Owner of the course.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable InvitationRole--instance FromHttpApiData InvitationRole where-    parseQueryParam = \case-        "COURSE_ROLE_UNSPECIFIED" -> Right IRCourseRoleUnspecified-        "STUDENT" -> Right IRStudent-        "TEACHER" -> Right IRTeacher-        "OWNER" -> Right IROwner-        x -> Left ("Unable to parse InvitationRole from: " <> x)--instance ToHttpApiData InvitationRole where-    toQueryParam = \case-        IRCourseRoleUnspecified -> "COURSE_ROLE_UNSPECIFIED"-        IRStudent -> "STUDENT"-        IRTeacher -> "TEACHER"-        IROwner -> "OWNER"--instance FromJSON InvitationRole where-    parseJSON = parseJSONText "InvitationRole"--instance ToJSON InvitationRole where-    toJSON = toJSONText---- | Type of course work this submission is for. Read-only.-data StudentSubmissionCourseWorkType-    = SSCWTCourseWorkTypeUnspecified-      -- ^ @COURSE_WORK_TYPE_UNSPECIFIED@-      -- No work type specified. This is never returned.-    | SSCWTAssignment-      -- ^ @ASSIGNMENT@-      -- An assignment.-    | SSCWTShortAnswerQuestion-      -- ^ @SHORT_ANSWER_QUESTION@-      -- A short answer question.-    | SSCWTMultipleChoiceQuestion-      -- ^ @MULTIPLE_CHOICE_QUESTION@-      -- A multiple-choice question.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable StudentSubmissionCourseWorkType--instance FromHttpApiData StudentSubmissionCourseWorkType where-    parseQueryParam = \case-        "COURSE_WORK_TYPE_UNSPECIFIED" -> Right SSCWTCourseWorkTypeUnspecified-        "ASSIGNMENT" -> Right SSCWTAssignment-        "SHORT_ANSWER_QUESTION" -> Right SSCWTShortAnswerQuestion-        "MULTIPLE_CHOICE_QUESTION" -> Right SSCWTMultipleChoiceQuestion-        x -> Left ("Unable to parse StudentSubmissionCourseWorkType from: " <> x)--instance ToHttpApiData StudentSubmissionCourseWorkType where-    toQueryParam = \case-        SSCWTCourseWorkTypeUnspecified -> "COURSE_WORK_TYPE_UNSPECIFIED"-        SSCWTAssignment -> "ASSIGNMENT"-        SSCWTShortAnswerQuestion -> "SHORT_ANSWER_QUESTION"-        SSCWTMultipleChoiceQuestion -> "MULTIPLE_CHOICE_QUESTION"--instance FromJSON StudentSubmissionCourseWorkType where-    parseJSON = parseJSONText "StudentSubmissionCourseWorkType"--instance ToJSON StudentSubmissionCourseWorkType where-    toJSON = toJSONText---- | The type of feed.-data FeedFeedType-    = FeedTypeUnspecified-      -- ^ @FEED_TYPE_UNSPECIFIED@-      -- Should never be returned or provided.-    | DomainRosterChanges-      -- ^ @DOMAIN_ROSTER_CHANGES@-      -- All roster changes for a particular domain. Notifications will be-      -- generated whenever a user joins or leaves a course. No notifications-      -- will be generated when an invitation is created or deleted, but-      -- notifications will be generated when a user joins a course by accepting-      -- an invitation.-    | CourseRosterChanges-      -- ^ @COURSE_ROSTER_CHANGES@-      -- All roster changes for a particular course. Notifications will be-      -- generated whenever a user joins or leaves a course. No notifications-      -- will be generated when an invitation is created or deleted, but-      -- notifications will be generated when a user joins a course by accepting-      -- an invitation.-    | CourseWorkChanges-      -- ^ @COURSE_WORK_CHANGES@-      -- All course work activity for a particular course. Notifications will be-      -- generated when a CourseWork or StudentSubmission object is created or-      -- modified. No notification will be generated when a StudentSubmission-      -- object is created in connection with the creation or modification of its-      -- parent CourseWork object (but a notification will be generated for that-      -- CourseWork object\'s creation or modification).-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable FeedFeedType--instance FromHttpApiData FeedFeedType where-    parseQueryParam = \case-        "FEED_TYPE_UNSPECIFIED" -> Right FeedTypeUnspecified-        "DOMAIN_ROSTER_CHANGES" -> Right DomainRosterChanges-        "COURSE_ROSTER_CHANGES" -> Right CourseRosterChanges-        "COURSE_WORK_CHANGES" -> Right CourseWorkChanges-        x -> Left ("Unable to parse FeedFeedType from: " <> x)--instance ToHttpApiData FeedFeedType where-    toQueryParam = \case-        FeedTypeUnspecified -> "FEED_TYPE_UNSPECIFIED"-        DomainRosterChanges -> "DOMAIN_ROSTER_CHANGES"-        CourseRosterChanges -> "COURSE_ROSTER_CHANGES"-        CourseWorkChanges -> "COURSE_WORK_CHANGES"--instance FromJSON FeedFeedType where-    parseJSON = parseJSONText "FeedFeedType"--instance ToJSON FeedFeedType where-    toJSON = toJSONText---- | Permission value.-data GlobalPermissionPermission-    = PermissionUnspecified-      -- ^ @PERMISSION_UNSPECIFIED@-      -- No permission is specified. This is not returned and is not a valid-      -- value.-    | CreateCourse-      -- ^ @CREATE_COURSE@-      -- User is permitted to create a course.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable GlobalPermissionPermission--instance FromHttpApiData GlobalPermissionPermission where-    parseQueryParam = \case-        "PERMISSION_UNSPECIFIED" -> Right PermissionUnspecified-        "CREATE_COURSE" -> Right CreateCourse-        x -> Left ("Unable to parse GlobalPermissionPermission from: " <> x)--instance ToHttpApiData GlobalPermissionPermission where-    toQueryParam = \case-        PermissionUnspecified -> "PERMISSION_UNSPECIFIED"-        CreateCourse -> "CREATE_COURSE"--instance FromJSON GlobalPermissionPermission where-    parseJSON = parseJSONText "GlobalPermissionPermission"--instance ToJSON GlobalPermissionPermission where-    toJSON = toJSONText---- | Assignee mode of the coursework. If unspecified, the default value is--- \`ALL_STUDENTS\`.-data CourseWorkAssigneeMode-    = CWAMAssigneeModeUnspecified-      -- ^ @ASSIGNEE_MODE_UNSPECIFIED@-      -- No mode specified. This is never returned.-    | CWAMAllStudents-      -- ^ @ALL_STUDENTS@-      -- All students can see the item. This is the default state.-    | CWAMIndividualStudents-      -- ^ @INDIVIDUAL_STUDENTS@-      -- A subset of the students can see the item.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable CourseWorkAssigneeMode--instance FromHttpApiData CourseWorkAssigneeMode where-    parseQueryParam = \case-        "ASSIGNEE_MODE_UNSPECIFIED" -> Right CWAMAssigneeModeUnspecified-        "ALL_STUDENTS" -> Right CWAMAllStudents-        "INDIVIDUAL_STUDENTS" -> Right CWAMIndividualStudents-        x -> Left ("Unable to parse CourseWorkAssigneeMode from: " <> x)--instance ToHttpApiData CourseWorkAssigneeMode where-    toQueryParam = \case-        CWAMAssigneeModeUnspecified -> "ASSIGNEE_MODE_UNSPECIFIED"-        CWAMAllStudents -> "ALL_STUDENTS"-        CWAMIndividualStudents -> "INDIVIDUAL_STUDENTS"--instance FromJSON CourseWorkAssigneeMode where-    parseJSON = parseJSONText "CourseWorkAssigneeMode"--instance ToJSON CourseWorkAssigneeMode where-    toJSON = toJSONText---- | Setting to determine when students are allowed to modify submissions. If--- unspecified, the default value is \`MODIFIABLE_UNTIL_TURNED_IN\`.-data CourseWorkSubmissionModificationMode-    = SubmissionModificationModeUnspecified-      -- ^ @SUBMISSION_MODIFICATION_MODE_UNSPECIFIED@-      -- No modification mode specified. This is never returned.-    | ModifiableUntilTurnedIn-      -- ^ @MODIFIABLE_UNTIL_TURNED_IN@-      -- Submissions can be modified before being turned in.-    | Modifiable-      -- ^ @MODIFIABLE@-      -- Submissions can be modified at any time.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable CourseWorkSubmissionModificationMode--instance FromHttpApiData CourseWorkSubmissionModificationMode where-    parseQueryParam = \case-        "SUBMISSION_MODIFICATION_MODE_UNSPECIFIED" -> Right SubmissionModificationModeUnspecified-        "MODIFIABLE_UNTIL_TURNED_IN" -> Right ModifiableUntilTurnedIn-        "MODIFIABLE" -> Right Modifiable-        x -> Left ("Unable to parse CourseWorkSubmissionModificationMode from: " <> x)--instance ToHttpApiData CourseWorkSubmissionModificationMode where-    toQueryParam = \case-        SubmissionModificationModeUnspecified -> "SUBMISSION_MODIFICATION_MODE_UNSPECIFIED"-        ModifiableUntilTurnedIn -> "MODIFIABLE_UNTIL_TURNED_IN"-        Modifiable -> "MODIFIABLE"--instance FromJSON CourseWorkSubmissionModificationMode where-    parseJSON = parseJSONText "CourseWorkSubmissionModificationMode"--instance ToJSON CourseWorkSubmissionModificationMode where-    toJSON = toJSONText
− gen/Network/Google/Resource/Classroom/Courses/Aliases/Create.hs
@@ -1,178 +0,0 @@-{-# 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.Aliases.Create--- 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)------ Creates an alias for a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to create the alias or for access errors. * \`NOT_FOUND\` if the course--- does not exist. * \`ALREADY_EXISTS\` if the alias already exists. *--- \`FAILED_PRECONDITION\` if the alias requested does not make sense for--- the requesting user or course (for example, if a user not in a domain--- attempts to access a domain-scoped alias).------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.aliases.create@.-module Network.Google.Resource.Classroom.Courses.Aliases.Create-    (-    -- * REST Resource-      CoursesAliasesCreateResource--    -- * Creating a Request-    , coursesAliasesCreate-    , CoursesAliasesCreate--    -- * Request Lenses-    , cacXgafv-    , cacUploadProtocol-    , cacCourseId-    , cacAccessToken-    , cacUploadType-    , cacPayload-    , cacCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.aliases.create@ method which the--- 'CoursesAliasesCreate' request conforms to.-type CoursesAliasesCreateResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "aliases" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "callback" Text :>-                       QueryParam "alt" AltJSON :>-                         ReqBody '[JSON] CourseAlias :>-                           Post '[JSON] CourseAlias---- | Creates an alias for a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to create the alias or for access errors. * \`NOT_FOUND\` if the course--- does not exist. * \`ALREADY_EXISTS\` if the alias already exists. *--- \`FAILED_PRECONDITION\` if the alias requested does not make sense for--- the requesting user or course (for example, if a user not in a domain--- attempts to access a domain-scoped alias).------ /See:/ 'coursesAliasesCreate' smart constructor.-data CoursesAliasesCreate =-  CoursesAliasesCreate'-    { _cacXgafv          :: !(Maybe Xgafv)-    , _cacUploadProtocol :: !(Maybe Text)-    , _cacCourseId       :: !Text-    , _cacAccessToken    :: !(Maybe Text)-    , _cacUploadType     :: !(Maybe Text)-    , _cacPayload        :: !CourseAlias-    , _cacCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesAliasesCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cacXgafv'------ * 'cacUploadProtocol'------ * 'cacCourseId'------ * 'cacAccessToken'------ * 'cacUploadType'------ * 'cacPayload'------ * 'cacCallback'-coursesAliasesCreate-    :: Text -- ^ 'cacCourseId'-    -> CourseAlias -- ^ 'cacPayload'-    -> CoursesAliasesCreate-coursesAliasesCreate pCacCourseId_ pCacPayload_ =-  CoursesAliasesCreate'-    { _cacXgafv = Nothing-    , _cacUploadProtocol = Nothing-    , _cacCourseId = pCacCourseId_-    , _cacAccessToken = Nothing-    , _cacUploadType = Nothing-    , _cacPayload = pCacPayload_-    , _cacCallback = Nothing-    }----- | V1 error format.-cacXgafv :: Lens' CoursesAliasesCreate (Maybe Xgafv)-cacXgafv = lens _cacXgafv (\ s a -> s{_cacXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-cacUploadProtocol :: Lens' CoursesAliasesCreate (Maybe Text)-cacUploadProtocol-  = lens _cacUploadProtocol-      (\ s a -> s{_cacUploadProtocol = a})---- | Identifier of the course to alias. This identifier can be either the--- Classroom-assigned identifier or an alias.-cacCourseId :: Lens' CoursesAliasesCreate Text-cacCourseId-  = lens _cacCourseId (\ s a -> s{_cacCourseId = a})---- | OAuth access token.-cacAccessToken :: Lens' CoursesAliasesCreate (Maybe Text)-cacAccessToken-  = lens _cacAccessToken-      (\ s a -> s{_cacAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-cacUploadType :: Lens' CoursesAliasesCreate (Maybe Text)-cacUploadType-  = lens _cacUploadType-      (\ s a -> s{_cacUploadType = a})---- | Multipart request metadata.-cacPayload :: Lens' CoursesAliasesCreate CourseAlias-cacPayload-  = lens _cacPayload (\ s a -> s{_cacPayload = a})---- | JSONP-cacCallback :: Lens' CoursesAliasesCreate (Maybe Text)-cacCallback-  = lens _cacCallback (\ s a -> s{_cacCallback = a})--instance GoogleRequest CoursesAliasesCreate where-        type Rs CoursesAliasesCreate = CourseAlias-        type Scopes CoursesAliasesCreate =-             '["https://www.googleapis.com/auth/classroom.courses"]-        requestClient CoursesAliasesCreate'{..}-          = go _cacCourseId _cacXgafv _cacUploadProtocol-              _cacAccessToken-              _cacUploadType-              _cacCallback-              (Just AltJSON)-              _cacPayload-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesAliasesCreateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Aliases/Delete.hs
@@ -1,174 +0,0 @@-{-# 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.Aliases.Delete--- 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)------ Deletes an alias of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to remove the alias or for access errors. * \`NOT_FOUND\` if the alias--- does not exist. * \`FAILED_PRECONDITION\` if the alias requested does--- not make sense for the requesting user or course (for example, if a user--- not in a domain attempts to delete a domain-scoped alias).------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.aliases.delete@.-module Network.Google.Resource.Classroom.Courses.Aliases.Delete-    (-    -- * REST Resource-      CoursesAliasesDeleteResource--    -- * Creating a Request-    , coursesAliasesDelete-    , CoursesAliasesDelete--    -- * Request Lenses-    , cadXgafv-    , cadUploadProtocol-    , cadCourseId-    , cadAccessToken-    , cadUploadType-    , cadAlias-    , cadCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.aliases.delete@ method which the--- 'CoursesAliasesDelete' request conforms to.-type CoursesAliasesDeleteResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "aliases" :>-             Capture "alias" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes an alias of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to remove the alias or for access errors. * \`NOT_FOUND\` if the alias--- does not exist. * \`FAILED_PRECONDITION\` if the alias requested does--- not make sense for the requesting user or course (for example, if a user--- not in a domain attempts to delete a domain-scoped alias).------ /See:/ 'coursesAliasesDelete' smart constructor.-data CoursesAliasesDelete =-  CoursesAliasesDelete'-    { _cadXgafv          :: !(Maybe Xgafv)-    , _cadUploadProtocol :: !(Maybe Text)-    , _cadCourseId       :: !Text-    , _cadAccessToken    :: !(Maybe Text)-    , _cadUploadType     :: !(Maybe Text)-    , _cadAlias          :: !Text-    , _cadCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesAliasesDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cadXgafv'------ * 'cadUploadProtocol'------ * 'cadCourseId'------ * 'cadAccessToken'------ * 'cadUploadType'------ * 'cadAlias'------ * 'cadCallback'-coursesAliasesDelete-    :: Text -- ^ 'cadCourseId'-    -> Text -- ^ 'cadAlias'-    -> CoursesAliasesDelete-coursesAliasesDelete pCadCourseId_ pCadAlias_ =-  CoursesAliasesDelete'-    { _cadXgafv = Nothing-    , _cadUploadProtocol = Nothing-    , _cadCourseId = pCadCourseId_-    , _cadAccessToken = Nothing-    , _cadUploadType = Nothing-    , _cadAlias = pCadAlias_-    , _cadCallback = Nothing-    }----- | V1 error format.-cadXgafv :: Lens' CoursesAliasesDelete (Maybe Xgafv)-cadXgafv = lens _cadXgafv (\ s a -> s{_cadXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-cadUploadProtocol :: Lens' CoursesAliasesDelete (Maybe Text)-cadUploadProtocol-  = lens _cadUploadProtocol-      (\ s a -> s{_cadUploadProtocol = a})---- | Identifier of the course whose alias should be deleted. This identifier--- can be either the Classroom-assigned identifier or an alias.-cadCourseId :: Lens' CoursesAliasesDelete Text-cadCourseId-  = lens _cadCourseId (\ s a -> s{_cadCourseId = a})---- | OAuth access token.-cadAccessToken :: Lens' CoursesAliasesDelete (Maybe Text)-cadAccessToken-  = lens _cadAccessToken-      (\ s a -> s{_cadAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-cadUploadType :: Lens' CoursesAliasesDelete (Maybe Text)-cadUploadType-  = lens _cadUploadType-      (\ s a -> s{_cadUploadType = a})---- | Alias to delete. This may not be the Classroom-assigned identifier.-cadAlias :: Lens' CoursesAliasesDelete Text-cadAlias = lens _cadAlias (\ s a -> s{_cadAlias = a})---- | JSONP-cadCallback :: Lens' CoursesAliasesDelete (Maybe Text)-cadCallback-  = lens _cadCallback (\ s a -> s{_cadCallback = a})--instance GoogleRequest CoursesAliasesDelete where-        type Rs CoursesAliasesDelete = Empty-        type Scopes CoursesAliasesDelete =-             '["https://www.googleapis.com/auth/classroom.courses"]-        requestClient CoursesAliasesDelete'{..}-          = go _cadCourseId _cadAlias _cadXgafv-              _cadUploadProtocol-              _cadAccessToken-              _cadUploadType-              _cadCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesAliasesDeleteResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Aliases/List.hs
@@ -1,192 +0,0 @@-{-# 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.Aliases.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 aliases for a course. This method returns the--- following error codes: * \`PERMISSION_DENIED\` if the requesting user is--- not permitted to access the course or for access errors. * \`NOT_FOUND\`--- if the course does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.aliases.list@.-module Network.Google.Resource.Classroom.Courses.Aliases.List-    (-    -- * REST Resource-      CoursesAliasesListResource--    -- * Creating a Request-    , coursesAliasesList-    , CoursesAliasesList--    -- * Request Lenses-    , calaXgafv-    , calaUploadProtocol-    , calaCourseId-    , calaAccessToken-    , calaUploadType-    , calaPageToken-    , calaPageSize-    , calaCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.aliases.list@ method which the--- 'CoursesAliasesList' request conforms to.-type CoursesAliasesListResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "aliases" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "pageToken" Text :>-                       QueryParam "pageSize" (Textual Int32) :>-                         QueryParam "callback" Text :>-                           QueryParam "alt" AltJSON :>-                             Get '[JSON] ListCourseAliasesResponse---- | Returns a list of aliases for a course. This method returns the--- following error codes: * \`PERMISSION_DENIED\` if the requesting user is--- not permitted to access the course or for access errors. * \`NOT_FOUND\`--- if the course does not exist.------ /See:/ 'coursesAliasesList' smart constructor.-data CoursesAliasesList =-  CoursesAliasesList'-    { _calaXgafv          :: !(Maybe Xgafv)-    , _calaUploadProtocol :: !(Maybe Text)-    , _calaCourseId       :: !Text-    , _calaAccessToken    :: !(Maybe Text)-    , _calaUploadType     :: !(Maybe Text)-    , _calaPageToken      :: !(Maybe Text)-    , _calaPageSize       :: !(Maybe (Textual Int32))-    , _calaCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesAliasesList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'calaXgafv'------ * 'calaUploadProtocol'------ * 'calaCourseId'------ * 'calaAccessToken'------ * 'calaUploadType'------ * 'calaPageToken'------ * 'calaPageSize'------ * 'calaCallback'-coursesAliasesList-    :: Text -- ^ 'calaCourseId'-    -> CoursesAliasesList-coursesAliasesList pCalaCourseId_ =-  CoursesAliasesList'-    { _calaXgafv = Nothing-    , _calaUploadProtocol = Nothing-    , _calaCourseId = pCalaCourseId_-    , _calaAccessToken = Nothing-    , _calaUploadType = Nothing-    , _calaPageToken = Nothing-    , _calaPageSize = Nothing-    , _calaCallback = Nothing-    }----- | V1 error format.-calaXgafv :: Lens' CoursesAliasesList (Maybe Xgafv)-calaXgafv-  = lens _calaXgafv (\ s a -> s{_calaXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-calaUploadProtocol :: Lens' CoursesAliasesList (Maybe Text)-calaUploadProtocol-  = lens _calaUploadProtocol-      (\ s a -> s{_calaUploadProtocol = a})---- | The identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-calaCourseId :: Lens' CoursesAliasesList Text-calaCourseId-  = lens _calaCourseId (\ s a -> s{_calaCourseId = a})---- | OAuth access token.-calaAccessToken :: Lens' CoursesAliasesList (Maybe Text)-calaAccessToken-  = lens _calaAccessToken-      (\ s a -> s{_calaAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-calaUploadType :: Lens' CoursesAliasesList (Maybe Text)-calaUploadType-  = lens _calaUploadType-      (\ s a -> s{_calaUploadType = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-calaPageToken :: Lens' CoursesAliasesList (Maybe Text)-calaPageToken-  = lens _calaPageToken-      (\ s a -> s{_calaPageToken = a})---- | Maximum number of items to return. Zero or unspecified indicates that--- the server may assign a maximum. The server may return fewer than the--- specified number of results.-calaPageSize :: Lens' CoursesAliasesList (Maybe Int32)-calaPageSize-  = lens _calaPageSize (\ s a -> s{_calaPageSize = a})-      . mapping _Coerce---- | JSONP-calaCallback :: Lens' CoursesAliasesList (Maybe Text)-calaCallback-  = lens _calaCallback (\ s a -> s{_calaCallback = a})--instance GoogleRequest CoursesAliasesList where-        type Rs CoursesAliasesList =-             ListCourseAliasesResponse-        type Scopes CoursesAliasesList =-             '["https://www.googleapis.com/auth/classroom.courses",-               "https://www.googleapis.com/auth/classroom.courses.readonly"]-        requestClient CoursesAliasesList'{..}-          = go _calaCourseId _calaXgafv _calaUploadProtocol-              _calaAccessToken-              _calaUploadType-              _calaPageToken-              _calaPageSize-              _calaCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesAliasesListResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Announcements/Create.hs
@@ -1,179 +0,0 @@-{-# 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.Create--- 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)------ Creates an announcement. This method returns the following error codes:--- * \`PERMISSION_DENIED\` if the requesting user is not permitted to--- access the requested course, create announcements in the requested--- course, share a Drive attachment, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course does not exist. * \`FAILED_PRECONDITION\` for the--- following request error: * AttachmentNotVisible------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.create@.-module Network.Google.Resource.Classroom.Courses.Announcements.Create-    (-    -- * REST Resource-      CoursesAnnouncementsCreateResource--    -- * Creating a Request-    , coursesAnnouncementsCreate-    , CoursesAnnouncementsCreate--    -- * Request Lenses-    , couXgafv-    , couUploadProtocol-    , couCourseId-    , couAccessToken-    , couUploadType-    , couPayload-    , couCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.announcements.create@ method which the--- 'CoursesAnnouncementsCreate' request conforms to.-type CoursesAnnouncementsCreateResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "announcements" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "callback" Text :>-                       QueryParam "alt" AltJSON :>-                         ReqBody '[JSON] Announcement :>-                           Post '[JSON] Announcement---- | Creates an announcement. This method returns the following error codes:--- * \`PERMISSION_DENIED\` if the requesting user is not permitted to--- access the requested course, create announcements in the requested--- course, share a Drive attachment, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course does not exist. * \`FAILED_PRECONDITION\` for the--- following request error: * AttachmentNotVisible------ /See:/ 'coursesAnnouncementsCreate' smart constructor.-data CoursesAnnouncementsCreate =-  CoursesAnnouncementsCreate'-    { _couXgafv          :: !(Maybe Xgafv)-    , _couUploadProtocol :: !(Maybe Text)-    , _couCourseId       :: !Text-    , _couAccessToken    :: !(Maybe Text)-    , _couUploadType     :: !(Maybe Text)-    , _couPayload        :: !Announcement-    , _couCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesAnnouncementsCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'couXgafv'------ * 'couUploadProtocol'------ * 'couCourseId'------ * 'couAccessToken'------ * 'couUploadType'------ * 'couPayload'------ * 'couCallback'-coursesAnnouncementsCreate-    :: Text -- ^ 'couCourseId'-    -> Announcement -- ^ 'couPayload'-    -> CoursesAnnouncementsCreate-coursesAnnouncementsCreate pCouCourseId_ pCouPayload_ =-  CoursesAnnouncementsCreate'-    { _couXgafv = Nothing-    , _couUploadProtocol = Nothing-    , _couCourseId = pCouCourseId_-    , _couAccessToken = Nothing-    , _couUploadType = Nothing-    , _couPayload = pCouPayload_-    , _couCallback = Nothing-    }----- | V1 error format.-couXgafv :: Lens' CoursesAnnouncementsCreate (Maybe Xgafv)-couXgafv = lens _couXgafv (\ s a -> s{_couXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-couUploadProtocol :: Lens' CoursesAnnouncementsCreate (Maybe Text)-couUploadProtocol-  = lens _couUploadProtocol-      (\ s a -> s{_couUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-couCourseId :: Lens' CoursesAnnouncementsCreate Text-couCourseId-  = lens _couCourseId (\ s a -> s{_couCourseId = a})---- | OAuth access token.-couAccessToken :: Lens' CoursesAnnouncementsCreate (Maybe Text)-couAccessToken-  = lens _couAccessToken-      (\ s a -> s{_couAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-couUploadType :: Lens' CoursesAnnouncementsCreate (Maybe Text)-couUploadType-  = lens _couUploadType-      (\ s a -> s{_couUploadType = a})---- | Multipart request metadata.-couPayload :: Lens' CoursesAnnouncementsCreate Announcement-couPayload-  = lens _couPayload (\ s a -> s{_couPayload = a})---- | JSONP-couCallback :: Lens' CoursesAnnouncementsCreate (Maybe Text)-couCallback-  = lens _couCallback (\ s a -> s{_couCallback = a})--instance GoogleRequest CoursesAnnouncementsCreate-         where-        type Rs CoursesAnnouncementsCreate = Announcement-        type Scopes CoursesAnnouncementsCreate =-             '["https://www.googleapis.com/auth/classroom.announcements"]-        requestClient CoursesAnnouncementsCreate'{..}-          = go _couCourseId _couXgafv _couUploadProtocol-              _couAccessToken-              _couUploadType-              _couCallback-              (Just AltJSON)-              _couPayload-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesAnnouncementsCreateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Announcements/Delete.hs
@@ -1,179 +0,0 @@-{-# 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.Delete--- 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)------ Deletes an announcement. This request must be made by the Developer--- Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding announcement item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting developer project--- did not create the corresponding announcement, if the requesting user is--- not permitted to delete the requested course or for access errors. *--- \`FAILED_PRECONDITION\` if the requested announcement has already been--- deleted. * \`NOT_FOUND\` if no course exists with the requested ID.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.delete@.-module Network.Google.Resource.Classroom.Courses.Announcements.Delete-    (-    -- * REST Resource-      CoursesAnnouncementsDeleteResource--    -- * Creating a Request-    , coursesAnnouncementsDelete-    , CoursesAnnouncementsDelete--    -- * Request Lenses-    , cXgafv-    , cUploadProtocol-    , cCourseId-    , cAccessToken-    , cUploadType-    , cId-    , cCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.announcements.delete@ method which the--- 'CoursesAnnouncementsDelete' request conforms to.-type CoursesAnnouncementsDeleteResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "announcements" :>-             Capture "id" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes an announcement. This request must be made by the Developer--- Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding announcement item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting developer project--- did not create the corresponding announcement, if the requesting user is--- not permitted to delete the requested course or for access errors. *--- \`FAILED_PRECONDITION\` if the requested announcement has already been--- deleted. * \`NOT_FOUND\` if no course exists with the requested ID.------ /See:/ 'coursesAnnouncementsDelete' smart constructor.-data CoursesAnnouncementsDelete =-  CoursesAnnouncementsDelete'-    { _cXgafv          :: !(Maybe Xgafv)-    , _cUploadProtocol :: !(Maybe Text)-    , _cCourseId       :: !Text-    , _cAccessToken    :: !(Maybe Text)-    , _cUploadType     :: !(Maybe Text)-    , _cId             :: !Text-    , _cCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesAnnouncementsDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cXgafv'------ * 'cUploadProtocol'------ * 'cCourseId'------ * 'cAccessToken'------ * 'cUploadType'------ * 'cId'------ * 'cCallback'-coursesAnnouncementsDelete-    :: Text -- ^ 'cCourseId'-    -> Text -- ^ 'cId'-    -> CoursesAnnouncementsDelete-coursesAnnouncementsDelete pCCourseId_ pCId_ =-  CoursesAnnouncementsDelete'-    { _cXgafv = Nothing-    , _cUploadProtocol = Nothing-    , _cCourseId = pCCourseId_-    , _cAccessToken = Nothing-    , _cUploadType = Nothing-    , _cId = pCId_-    , _cCallback = Nothing-    }----- | V1 error format.-cXgafv :: Lens' CoursesAnnouncementsDelete (Maybe Xgafv)-cXgafv = lens _cXgafv (\ s a -> s{_cXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-cUploadProtocol :: Lens' CoursesAnnouncementsDelete (Maybe Text)-cUploadProtocol-  = lens _cUploadProtocol-      (\ s a -> s{_cUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-cCourseId :: Lens' CoursesAnnouncementsDelete Text-cCourseId-  = lens _cCourseId (\ s a -> s{_cCourseId = a})---- | OAuth access token.-cAccessToken :: Lens' CoursesAnnouncementsDelete (Maybe Text)-cAccessToken-  = lens _cAccessToken (\ s a -> s{_cAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-cUploadType :: Lens' CoursesAnnouncementsDelete (Maybe Text)-cUploadType-  = lens _cUploadType (\ s a -> s{_cUploadType = a})---- | Identifier of the announcement to delete. This identifier is a--- Classroom-assigned identifier.-cId :: Lens' CoursesAnnouncementsDelete Text-cId = lens _cId (\ s a -> s{_cId = a})---- | JSONP-cCallback :: Lens' CoursesAnnouncementsDelete (Maybe Text)-cCallback-  = lens _cCallback (\ s a -> s{_cCallback = a})--instance GoogleRequest CoursesAnnouncementsDelete-         where-        type Rs CoursesAnnouncementsDelete = Empty-        type Scopes CoursesAnnouncementsDelete =-             '["https://www.googleapis.com/auth/classroom.announcements"]-        requestClient CoursesAnnouncementsDelete'{..}-          = go _cCourseId _cId _cXgafv _cUploadProtocol-              _cAccessToken-              _cUploadType-              _cCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesAnnouncementsDeleteResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Announcements/Get.hs
@@ -1,172 +0,0 @@-{-# 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.Get--- 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 an announcement. This method returns the following error codes:--- * \`PERMISSION_DENIED\` if the requesting user is not permitted to--- access the requested course or announcement, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`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.get@.-module Network.Google.Resource.Classroom.Courses.Announcements.Get-    (-    -- * REST Resource-      CoursesAnnouncementsGetResource--    -- * Creating a Request-    , coursesAnnouncementsGet-    , CoursesAnnouncementsGet--    -- * Request Lenses-    , cagXgafv-    , cagUploadProtocol-    , cagCourseId-    , cagAccessToken-    , cagUploadType-    , cagId-    , cagCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.announcements.get@ method which the--- 'CoursesAnnouncementsGet' request conforms to.-type CoursesAnnouncementsGetResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "announcements" :>-             Capture "id" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Get '[JSON] Announcement---- | Returns an announcement. This method returns the following error codes:--- * \`PERMISSION_DENIED\` if the requesting user is not permitted to--- access the requested course or announcement, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course or announcement does not exist.------ /See:/ 'coursesAnnouncementsGet' smart constructor.-data CoursesAnnouncementsGet =-  CoursesAnnouncementsGet'-    { _cagXgafv          :: !(Maybe Xgafv)-    , _cagUploadProtocol :: !(Maybe Text)-    , _cagCourseId       :: !Text-    , _cagAccessToken    :: !(Maybe Text)-    , _cagUploadType     :: !(Maybe Text)-    , _cagId             :: !Text-    , _cagCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesAnnouncementsGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cagXgafv'------ * 'cagUploadProtocol'------ * 'cagCourseId'------ * 'cagAccessToken'------ * 'cagUploadType'------ * 'cagId'------ * 'cagCallback'-coursesAnnouncementsGet-    :: Text -- ^ 'cagCourseId'-    -> Text -- ^ 'cagId'-    -> CoursesAnnouncementsGet-coursesAnnouncementsGet pCagCourseId_ pCagId_ =-  CoursesAnnouncementsGet'-    { _cagXgafv = Nothing-    , _cagUploadProtocol = Nothing-    , _cagCourseId = pCagCourseId_-    , _cagAccessToken = Nothing-    , _cagUploadType = Nothing-    , _cagId = pCagId_-    , _cagCallback = Nothing-    }----- | V1 error format.-cagXgafv :: Lens' CoursesAnnouncementsGet (Maybe Xgafv)-cagXgafv = lens _cagXgafv (\ s a -> s{_cagXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-cagUploadProtocol :: Lens' CoursesAnnouncementsGet (Maybe Text)-cagUploadProtocol-  = lens _cagUploadProtocol-      (\ s a -> s{_cagUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-cagCourseId :: Lens' CoursesAnnouncementsGet Text-cagCourseId-  = lens _cagCourseId (\ s a -> s{_cagCourseId = a})---- | OAuth access token.-cagAccessToken :: Lens' CoursesAnnouncementsGet (Maybe Text)-cagAccessToken-  = lens _cagAccessToken-      (\ s a -> s{_cagAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-cagUploadType :: Lens' CoursesAnnouncementsGet (Maybe Text)-cagUploadType-  = lens _cagUploadType-      (\ s a -> s{_cagUploadType = a})---- | Identifier of the announcement.-cagId :: Lens' CoursesAnnouncementsGet Text-cagId = lens _cagId (\ s a -> s{_cagId = a})---- | JSONP-cagCallback :: Lens' CoursesAnnouncementsGet (Maybe Text)-cagCallback-  = lens _cagCallback (\ s a -> s{_cagCallback = a})--instance GoogleRequest CoursesAnnouncementsGet where-        type Rs CoursesAnnouncementsGet = Announcement-        type Scopes CoursesAnnouncementsGet =-             '["https://www.googleapis.com/auth/classroom.announcements",-               "https://www.googleapis.com/auth/classroom.announcements.readonly"]-        requestClient CoursesAnnouncementsGet'{..}-          = go _cagCourseId _cagId _cagXgafv _cagUploadProtocol-              _cagAccessToken-              _cagUploadType-              _cagCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesAnnouncementsGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Announcements/List.hs
@@ -1,228 +0,0 @@-{-# 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.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 announcements that the requester is permitted to view.--- Course students may only view \`PUBLISHED\` announcements. Course--- teachers and domain administrators may view all announcements. This--- method returns the following error codes: * \`PERMISSION_DENIED\` if the--- requesting user is not permitted to access the requested course or for--- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *--- \`NOT_FOUND\` if the requested course does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.list@.-module Network.Google.Resource.Classroom.Courses.Announcements.List-    (-    -- * REST Resource-      CoursesAnnouncementsListResource--    -- * Creating a Request-    , coursesAnnouncementsList-    , CoursesAnnouncementsList--    -- * Request Lenses-    , calXgafv-    , calUploadProtocol-    , calOrderBy-    , calAnnouncementStates-    , calCourseId-    , calAccessToken-    , calUploadType-    , calPageToken-    , calPageSize-    , calCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.announcements.list@ method which the--- 'CoursesAnnouncementsList' request conforms to.-type CoursesAnnouncementsListResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "announcements" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "orderBy" Text :>-                   QueryParams "announcementStates" Text :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "pageToken" Text :>-                           QueryParam "pageSize" (Textual Int32) :>-                             QueryParam "callback" Text :>-                               QueryParam "alt" AltJSON :>-                                 Get '[JSON] ListAnnouncementsResponse---- | Returns a list of announcements that the requester is permitted to view.--- Course students may only view \`PUBLISHED\` announcements. Course--- teachers and domain administrators may view all announcements. This--- method returns the following error codes: * \`PERMISSION_DENIED\` if the--- requesting user is not permitted to access the requested course or for--- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *--- \`NOT_FOUND\` if the requested course does not exist.------ /See:/ 'coursesAnnouncementsList' smart constructor.-data CoursesAnnouncementsList =-  CoursesAnnouncementsList'-    { _calXgafv              :: !(Maybe Xgafv)-    , _calUploadProtocol     :: !(Maybe Text)-    , _calOrderBy            :: !(Maybe Text)-    , _calAnnouncementStates :: !(Maybe [Text])-    , _calCourseId           :: !Text-    , _calAccessToken        :: !(Maybe Text)-    , _calUploadType         :: !(Maybe Text)-    , _calPageToken          :: !(Maybe Text)-    , _calPageSize           :: !(Maybe (Textual Int32))-    , _calCallback           :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesAnnouncementsList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'calXgafv'------ * 'calUploadProtocol'------ * 'calOrderBy'------ * 'calAnnouncementStates'------ * 'calCourseId'------ * 'calAccessToken'------ * 'calUploadType'------ * 'calPageToken'------ * 'calPageSize'------ * 'calCallback'-coursesAnnouncementsList-    :: Text -- ^ 'calCourseId'-    -> CoursesAnnouncementsList-coursesAnnouncementsList pCalCourseId_ =-  CoursesAnnouncementsList'-    { _calXgafv = Nothing-    , _calUploadProtocol = Nothing-    , _calOrderBy = Nothing-    , _calAnnouncementStates = Nothing-    , _calCourseId = pCalCourseId_-    , _calAccessToken = Nothing-    , _calUploadType = Nothing-    , _calPageToken = Nothing-    , _calPageSize = Nothing-    , _calCallback = Nothing-    }----- | V1 error format.-calXgafv :: Lens' CoursesAnnouncementsList (Maybe Xgafv)-calXgafv = lens _calXgafv (\ s a -> s{_calXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-calUploadProtocol :: Lens' CoursesAnnouncementsList (Maybe Text)-calUploadProtocol-  = lens _calUploadProtocol-      (\ s a -> s{_calUploadProtocol = a})---- | Optional sort ordering for results. A comma-separated list of fields--- with an optional sort direction keyword. Supported field is--- \`updateTime\`. Supported direction keywords are \`asc\` and \`desc\`.--- If not specified, \`updateTime desc\` is the default behavior. Examples:--- \`updateTime asc\`, \`updateTime\`-calOrderBy :: Lens' CoursesAnnouncementsList (Maybe Text)-calOrderBy-  = lens _calOrderBy (\ s a -> s{_calOrderBy = a})---- | Restriction on the \`state\` of announcements returned. If this argument--- is left unspecified, the default value is \`PUBLISHED\`.-calAnnouncementStates :: Lens' CoursesAnnouncementsList [Text]-calAnnouncementStates-  = lens _calAnnouncementStates-      (\ s a -> s{_calAnnouncementStates = a})-      . _Default-      . _Coerce---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-calCourseId :: Lens' CoursesAnnouncementsList Text-calCourseId-  = lens _calCourseId (\ s a -> s{_calCourseId = a})---- | OAuth access token.-calAccessToken :: Lens' CoursesAnnouncementsList (Maybe Text)-calAccessToken-  = lens _calAccessToken-      (\ s a -> s{_calAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-calUploadType :: Lens' CoursesAnnouncementsList (Maybe Text)-calUploadType-  = lens _calUploadType-      (\ s a -> s{_calUploadType = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-calPageToken :: Lens' CoursesAnnouncementsList (Maybe Text)-calPageToken-  = lens _calPageToken (\ s a -> s{_calPageToken = a})---- | Maximum number of items to return. Zero or unspecified indicates that--- the server may assign a maximum. The server may return fewer than the--- specified number of results.-calPageSize :: Lens' CoursesAnnouncementsList (Maybe Int32)-calPageSize-  = lens _calPageSize (\ s a -> s{_calPageSize = a}) .-      mapping _Coerce---- | JSONP-calCallback :: Lens' CoursesAnnouncementsList (Maybe Text)-calCallback-  = lens _calCallback (\ s a -> s{_calCallback = a})--instance GoogleRequest CoursesAnnouncementsList where-        type Rs CoursesAnnouncementsList =-             ListAnnouncementsResponse-        type Scopes CoursesAnnouncementsList =-             '["https://www.googleapis.com/auth/classroom.announcements",-               "https://www.googleapis.com/auth/classroom.announcements.readonly"]-        requestClient CoursesAnnouncementsList'{..}-          = go _calCourseId _calXgafv _calUploadProtocol-              _calOrderBy-              (_calAnnouncementStates ^. _Default)-              _calAccessToken-              _calUploadType-              _calPageToken-              _calPageSize-              _calCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesAnnouncementsListResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Announcements/ModifyAssignees.hs
@@ -1,196 +0,0 @@-{-# 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.ModifyAssignees--- 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)------ Modifies assignee mode and options of an announcement. Only a teacher of--- the course that contains the announcement may call this method. This--- method returns the following error codes: * \`PERMISSION_DENIED\` if the--- requesting user is not permitted to access the requested course or--- course work or for access errors. * \`INVALID_ARGUMENT\` if the request--- is malformed. * \`NOT_FOUND\` if the requested course or course work--- does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.announcements.modifyAssignees@.-module Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees-    (-    -- * REST Resource-      CoursesAnnouncementsModifyAssigneesResource--    -- * Creating a Request-    , coursesAnnouncementsModifyAssignees-    , CoursesAnnouncementsModifyAssignees--    -- * Request Lenses-    , camaXgafv-    , camaUploadProtocol-    , camaCourseId-    , camaAccessToken-    , camaUploadType-    , camaPayload-    , camaId-    , camaCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.announcements.modifyAssignees@ method which the--- 'CoursesAnnouncementsModifyAssignees' request conforms to.-type CoursesAnnouncementsModifyAssigneesResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "announcements" :>-             CaptureMode "id" "modifyAssignees" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :>-                           ReqBody '[JSON] ModifyAnnouncementAssigneesRequest :>-                             Post '[JSON] Announcement---- | Modifies assignee mode and options of an announcement. Only a teacher of--- the course that contains the announcement may call this method. This--- method returns the following error codes: * \`PERMISSION_DENIED\` if the--- requesting user is not permitted to access the requested course or--- course work or for access errors. * \`INVALID_ARGUMENT\` if the request--- is malformed. * \`NOT_FOUND\` if the requested course or course work--- does not exist.------ /See:/ 'coursesAnnouncementsModifyAssignees' smart constructor.-data CoursesAnnouncementsModifyAssignees =-  CoursesAnnouncementsModifyAssignees'-    { _camaXgafv          :: !(Maybe Xgafv)-    , _camaUploadProtocol :: !(Maybe Text)-    , _camaCourseId       :: !Text-    , _camaAccessToken    :: !(Maybe Text)-    , _camaUploadType     :: !(Maybe Text)-    , _camaPayload        :: !ModifyAnnouncementAssigneesRequest-    , _camaId             :: !Text-    , _camaCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesAnnouncementsModifyAssignees' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'camaXgafv'------ * 'camaUploadProtocol'------ * 'camaCourseId'------ * 'camaAccessToken'------ * 'camaUploadType'------ * 'camaPayload'------ * 'camaId'------ * 'camaCallback'-coursesAnnouncementsModifyAssignees-    :: Text -- ^ 'camaCourseId'-    -> ModifyAnnouncementAssigneesRequest -- ^ 'camaPayload'-    -> Text -- ^ 'camaId'-    -> CoursesAnnouncementsModifyAssignees-coursesAnnouncementsModifyAssignees pCamaCourseId_ pCamaPayload_ pCamaId_ =-  CoursesAnnouncementsModifyAssignees'-    { _camaXgafv = Nothing-    , _camaUploadProtocol = Nothing-    , _camaCourseId = pCamaCourseId_-    , _camaAccessToken = Nothing-    , _camaUploadType = Nothing-    , _camaPayload = pCamaPayload_-    , _camaId = pCamaId_-    , _camaCallback = Nothing-    }----- | V1 error format.-camaXgafv :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Xgafv)-camaXgafv-  = lens _camaXgafv (\ s a -> s{_camaXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-camaUploadProtocol :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Text)-camaUploadProtocol-  = lens _camaUploadProtocol-      (\ s a -> s{_camaUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-camaCourseId :: Lens' CoursesAnnouncementsModifyAssignees Text-camaCourseId-  = lens _camaCourseId (\ s a -> s{_camaCourseId = a})---- | OAuth access token.-camaAccessToken :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Text)-camaAccessToken-  = lens _camaAccessToken-      (\ s a -> s{_camaAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-camaUploadType :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Text)-camaUploadType-  = lens _camaUploadType-      (\ s a -> s{_camaUploadType = a})---- | Multipart request metadata.-camaPayload :: Lens' CoursesAnnouncementsModifyAssignees ModifyAnnouncementAssigneesRequest-camaPayload-  = lens _camaPayload (\ s a -> s{_camaPayload = a})---- | Identifier of the announcement.-camaId :: Lens' CoursesAnnouncementsModifyAssignees Text-camaId = lens _camaId (\ s a -> s{_camaId = a})---- | JSONP-camaCallback :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Text)-camaCallback-  = lens _camaCallback (\ s a -> s{_camaCallback = a})--instance GoogleRequest-           CoursesAnnouncementsModifyAssignees-         where-        type Rs CoursesAnnouncementsModifyAssignees =-             Announcement-        type Scopes CoursesAnnouncementsModifyAssignees =-             '["https://www.googleapis.com/auth/classroom.announcements"]-        requestClient-          CoursesAnnouncementsModifyAssignees'{..}-          = go _camaCourseId _camaId _camaXgafv-              _camaUploadProtocol-              _camaAccessToken-              _camaUploadType-              _camaCallback-              (Just AltJSON)-              _camaPayload-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy CoursesAnnouncementsModifyAssigneesResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Announcements/Patch.hs
@@ -1,210 +0,0 @@-{-# 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
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/Create.hs
@@ -1,190 +0,0 @@-{-# 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.CourseWork.Create--- 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)------ Creates course work. The resulting course work (and corresponding--- student submissions) are associated with the Developer Console project--- of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to make--- the request. Classroom API requests to modify course work and student--- submissions must be made with an OAuth client ID from the associated--- Developer Console project. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to access the requested course, create course work in the requested--- course, share a Drive attachment, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course does not exist. * \`FAILED_PRECONDITION\` for the--- following request error: * AttachmentNotVisible------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.create@.-module Network.Google.Resource.Classroom.Courses.CourseWork.Create-    (-    -- * REST Resource-      CoursesCourseWorkCreateResource--    -- * Creating a Request-    , coursesCourseWorkCreate-    , CoursesCourseWorkCreate--    -- * Request Lenses-    , ccwcXgafv-    , ccwcUploadProtocol-    , ccwcCourseId-    , ccwcAccessToken-    , ccwcUploadType-    , ccwcPayload-    , ccwcCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.create@ method which the--- 'CoursesCourseWorkCreate' request conforms to.-type CoursesCourseWorkCreateResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "callback" Text :>-                       QueryParam "alt" AltJSON :>-                         ReqBody '[JSON] CourseWork :> Post '[JSON] CourseWork---- | Creates course work. The resulting course work (and corresponding--- student submissions) are associated with the Developer Console project--- of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to make--- the request. Classroom API requests to modify course work and student--- submissions must be made with an OAuth client ID from the associated--- Developer Console project. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to access the requested course, create course work in the requested--- course, share a Drive attachment, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course does not exist. * \`FAILED_PRECONDITION\` for the--- following request error: * AttachmentNotVisible------ /See:/ 'coursesCourseWorkCreate' smart constructor.-data CoursesCourseWorkCreate =-  CoursesCourseWorkCreate'-    { _ccwcXgafv          :: !(Maybe Xgafv)-    , _ccwcUploadProtocol :: !(Maybe Text)-    , _ccwcCourseId       :: !Text-    , _ccwcAccessToken    :: !(Maybe Text)-    , _ccwcUploadType     :: !(Maybe Text)-    , _ccwcPayload        :: !CourseWork-    , _ccwcCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwcXgafv'------ * 'ccwcUploadProtocol'------ * 'ccwcCourseId'------ * 'ccwcAccessToken'------ * 'ccwcUploadType'------ * 'ccwcPayload'------ * 'ccwcCallback'-coursesCourseWorkCreate-    :: Text -- ^ 'ccwcCourseId'-    -> CourseWork -- ^ 'ccwcPayload'-    -> CoursesCourseWorkCreate-coursesCourseWorkCreate pCcwcCourseId_ pCcwcPayload_ =-  CoursesCourseWorkCreate'-    { _ccwcXgafv = Nothing-    , _ccwcUploadProtocol = Nothing-    , _ccwcCourseId = pCcwcCourseId_-    , _ccwcAccessToken = Nothing-    , _ccwcUploadType = Nothing-    , _ccwcPayload = pCcwcPayload_-    , _ccwcCallback = Nothing-    }----- | V1 error format.-ccwcXgafv :: Lens' CoursesCourseWorkCreate (Maybe Xgafv)-ccwcXgafv-  = lens _ccwcXgafv (\ s a -> s{_ccwcXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwcUploadProtocol :: Lens' CoursesCourseWorkCreate (Maybe Text)-ccwcUploadProtocol-  = lens _ccwcUploadProtocol-      (\ s a -> s{_ccwcUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwcCourseId :: Lens' CoursesCourseWorkCreate Text-ccwcCourseId-  = lens _ccwcCourseId (\ s a -> s{_ccwcCourseId = a})---- | OAuth access token.-ccwcAccessToken :: Lens' CoursesCourseWorkCreate (Maybe Text)-ccwcAccessToken-  = lens _ccwcAccessToken-      (\ s a -> s{_ccwcAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwcUploadType :: Lens' CoursesCourseWorkCreate (Maybe Text)-ccwcUploadType-  = lens _ccwcUploadType-      (\ s a -> s{_ccwcUploadType = a})---- | Multipart request metadata.-ccwcPayload :: Lens' CoursesCourseWorkCreate CourseWork-ccwcPayload-  = lens _ccwcPayload (\ s a -> s{_ccwcPayload = a})---- | JSONP-ccwcCallback :: Lens' CoursesCourseWorkCreate (Maybe Text)-ccwcCallback-  = lens _ccwcCallback (\ s a -> s{_ccwcCallback = a})--instance GoogleRequest CoursesCourseWorkCreate where-        type Rs CoursesCourseWorkCreate = CourseWork-        type Scopes CoursesCourseWorkCreate =-             '["https://www.googleapis.com/auth/classroom.coursework.students"]-        requestClient CoursesCourseWorkCreate'{..}-          = go _ccwcCourseId _ccwcXgafv _ccwcUploadProtocol-              _ccwcAccessToken-              _ccwcUploadType-              _ccwcCallback-              (Just AltJSON)-              _ccwcPayload-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesCourseWorkCreateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/Delete.hs
@@ -1,182 +0,0 @@-{-# 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.CourseWork.Delete--- 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)------ Deletes a course work. This request must be made by the Developer--- Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting developer project--- did not create the corresponding course work, if the requesting user is--- not permitted to delete the requested course or for access errors. *--- \`FAILED_PRECONDITION\` if the requested course work has already been--- deleted. * \`NOT_FOUND\` if no course exists with the requested ID.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.delete@.-module Network.Google.Resource.Classroom.Courses.CourseWork.Delete-    (-    -- * REST Resource-      CoursesCourseWorkDeleteResource--    -- * Creating a Request-    , coursesCourseWorkDelete-    , CoursesCourseWorkDelete--    -- * Request Lenses-    , ccwdXgafv-    , ccwdUploadProtocol-    , ccwdCourseId-    , ccwdAccessToken-    , ccwdUploadType-    , ccwdId-    , ccwdCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.delete@ method which the--- 'CoursesCourseWorkDelete' request conforms to.-type CoursesCourseWorkDeleteResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             Capture "id" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes a course work. This request must be made by the Developer--- Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting developer project--- did not create the corresponding course work, if the requesting user is--- not permitted to delete the requested course or for access errors. *--- \`FAILED_PRECONDITION\` if the requested course work has already been--- deleted. * \`NOT_FOUND\` if no course exists with the requested ID.------ /See:/ 'coursesCourseWorkDelete' smart constructor.-data CoursesCourseWorkDelete =-  CoursesCourseWorkDelete'-    { _ccwdXgafv          :: !(Maybe Xgafv)-    , _ccwdUploadProtocol :: !(Maybe Text)-    , _ccwdCourseId       :: !Text-    , _ccwdAccessToken    :: !(Maybe Text)-    , _ccwdUploadType     :: !(Maybe Text)-    , _ccwdId             :: !Text-    , _ccwdCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwdXgafv'------ * 'ccwdUploadProtocol'------ * 'ccwdCourseId'------ * 'ccwdAccessToken'------ * 'ccwdUploadType'------ * 'ccwdId'------ * 'ccwdCallback'-coursesCourseWorkDelete-    :: Text -- ^ 'ccwdCourseId'-    -> Text -- ^ 'ccwdId'-    -> CoursesCourseWorkDelete-coursesCourseWorkDelete pCcwdCourseId_ pCcwdId_ =-  CoursesCourseWorkDelete'-    { _ccwdXgafv = Nothing-    , _ccwdUploadProtocol = Nothing-    , _ccwdCourseId = pCcwdCourseId_-    , _ccwdAccessToken = Nothing-    , _ccwdUploadType = Nothing-    , _ccwdId = pCcwdId_-    , _ccwdCallback = Nothing-    }----- | V1 error format.-ccwdXgafv :: Lens' CoursesCourseWorkDelete (Maybe Xgafv)-ccwdXgafv-  = lens _ccwdXgafv (\ s a -> s{_ccwdXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwdUploadProtocol :: Lens' CoursesCourseWorkDelete (Maybe Text)-ccwdUploadProtocol-  = lens _ccwdUploadProtocol-      (\ s a -> s{_ccwdUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwdCourseId :: Lens' CoursesCourseWorkDelete Text-ccwdCourseId-  = lens _ccwdCourseId (\ s a -> s{_ccwdCourseId = a})---- | OAuth access token.-ccwdAccessToken :: Lens' CoursesCourseWorkDelete (Maybe Text)-ccwdAccessToken-  = lens _ccwdAccessToken-      (\ s a -> s{_ccwdAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwdUploadType :: Lens' CoursesCourseWorkDelete (Maybe Text)-ccwdUploadType-  = lens _ccwdUploadType-      (\ s a -> s{_ccwdUploadType = a})---- | Identifier of the course work to delete. This identifier is a--- Classroom-assigned identifier.-ccwdId :: Lens' CoursesCourseWorkDelete Text-ccwdId = lens _ccwdId (\ s a -> s{_ccwdId = a})---- | JSONP-ccwdCallback :: Lens' CoursesCourseWorkDelete (Maybe Text)-ccwdCallback-  = lens _ccwdCallback (\ s a -> s{_ccwdCallback = a})--instance GoogleRequest CoursesCourseWorkDelete where-        type Rs CoursesCourseWorkDelete = Empty-        type Scopes CoursesCourseWorkDelete =-             '["https://www.googleapis.com/auth/classroom.coursework.students"]-        requestClient CoursesCourseWorkDelete'{..}-          = go _ccwdCourseId _ccwdId _ccwdXgafv-              _ccwdUploadProtocol-              _ccwdAccessToken-              _ccwdUploadType-              _ccwdCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesCourseWorkDeleteResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/Get.hs
@@ -1,176 +0,0 @@-{-# 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.CourseWork.Get--- 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 course work. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- the requested course or course work, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course or course work does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.get@.-module Network.Google.Resource.Classroom.Courses.CourseWork.Get-    (-    -- * REST Resource-      CoursesCourseWorkGetResource--    -- * Creating a Request-    , coursesCourseWorkGet-    , CoursesCourseWorkGet--    -- * Request Lenses-    , ccwgXgafv-    , ccwgUploadProtocol-    , ccwgCourseId-    , ccwgAccessToken-    , ccwgUploadType-    , ccwgId-    , ccwgCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.get@ method which the--- 'CoursesCourseWorkGet' request conforms to.-type CoursesCourseWorkGetResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             Capture "id" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Get '[JSON] CourseWork---- | Returns course work. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- the requested course or course work, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course or course work does not exist.------ /See:/ 'coursesCourseWorkGet' smart constructor.-data CoursesCourseWorkGet =-  CoursesCourseWorkGet'-    { _ccwgXgafv          :: !(Maybe Xgafv)-    , _ccwgUploadProtocol :: !(Maybe Text)-    , _ccwgCourseId       :: !Text-    , _ccwgAccessToken    :: !(Maybe Text)-    , _ccwgUploadType     :: !(Maybe Text)-    , _ccwgId             :: !Text-    , _ccwgCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwgXgafv'------ * 'ccwgUploadProtocol'------ * 'ccwgCourseId'------ * 'ccwgAccessToken'------ * 'ccwgUploadType'------ * 'ccwgId'------ * 'ccwgCallback'-coursesCourseWorkGet-    :: Text -- ^ 'ccwgCourseId'-    -> Text -- ^ 'ccwgId'-    -> CoursesCourseWorkGet-coursesCourseWorkGet pCcwgCourseId_ pCcwgId_ =-  CoursesCourseWorkGet'-    { _ccwgXgafv = Nothing-    , _ccwgUploadProtocol = Nothing-    , _ccwgCourseId = pCcwgCourseId_-    , _ccwgAccessToken = Nothing-    , _ccwgUploadType = Nothing-    , _ccwgId = pCcwgId_-    , _ccwgCallback = Nothing-    }----- | V1 error format.-ccwgXgafv :: Lens' CoursesCourseWorkGet (Maybe Xgafv)-ccwgXgafv-  = lens _ccwgXgafv (\ s a -> s{_ccwgXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwgUploadProtocol :: Lens' CoursesCourseWorkGet (Maybe Text)-ccwgUploadProtocol-  = lens _ccwgUploadProtocol-      (\ s a -> s{_ccwgUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwgCourseId :: Lens' CoursesCourseWorkGet Text-ccwgCourseId-  = lens _ccwgCourseId (\ s a -> s{_ccwgCourseId = a})---- | OAuth access token.-ccwgAccessToken :: Lens' CoursesCourseWorkGet (Maybe Text)-ccwgAccessToken-  = lens _ccwgAccessToken-      (\ s a -> s{_ccwgAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwgUploadType :: Lens' CoursesCourseWorkGet (Maybe Text)-ccwgUploadType-  = lens _ccwgUploadType-      (\ s a -> s{_ccwgUploadType = a})---- | Identifier of the course work.-ccwgId :: Lens' CoursesCourseWorkGet Text-ccwgId = lens _ccwgId (\ s a -> s{_ccwgId = a})---- | JSONP-ccwgCallback :: Lens' CoursesCourseWorkGet (Maybe Text)-ccwgCallback-  = lens _ccwgCallback (\ s a -> s{_ccwgCallback = a})--instance GoogleRequest CoursesCourseWorkGet where-        type Rs CoursesCourseWorkGet = CourseWork-        type Scopes CoursesCourseWorkGet =-             '["https://www.googleapis.com/auth/classroom.coursework.me",-               "https://www.googleapis.com/auth/classroom.coursework.me.readonly",-               "https://www.googleapis.com/auth/classroom.coursework.students",-               "https://www.googleapis.com/auth/classroom.coursework.students.readonly"]-        requestClient CoursesCourseWorkGet'{..}-          = go _ccwgCourseId _ccwgId _ccwgXgafv-              _ccwgUploadProtocol-              _ccwgAccessToken-              _ccwgUploadType-              _ccwgCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesCourseWorkGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/List.hs
@@ -1,234 +0,0 @@-{-# 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.CourseWork.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 course work that the requester is permitted to view.--- Course students may only view \`PUBLISHED\` course work. Course teachers--- and domain administrators may view all course work. This method returns--- the following error codes: * \`PERMISSION_DENIED\` if the requesting--- user is not permitted to access the requested course or for access--- errors. * \`INVALID_ARGUMENT\` if the request is malformed. *--- \`NOT_FOUND\` if the requested course does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.list@.-module Network.Google.Resource.Classroom.Courses.CourseWork.List-    (-    -- * REST Resource-      CoursesCourseWorkListResource--    -- * Creating a Request-    , coursesCourseWorkList-    , CoursesCourseWorkList--    -- * Request Lenses-    , ccwlXgafv-    , ccwlUploadProtocol-    , ccwlOrderBy-    , ccwlCourseId-    , ccwlAccessToken-    , ccwlCourseWorkStates-    , ccwlUploadType-    , ccwlPageToken-    , ccwlPageSize-    , ccwlCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.list@ method which the--- 'CoursesCourseWorkList' request conforms to.-type CoursesCourseWorkListResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "orderBy" Text :>-                   QueryParam "access_token" Text :>-                     QueryParams "courseWorkStates" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "pageToken" Text :>-                           QueryParam "pageSize" (Textual Int32) :>-                             QueryParam "callback" Text :>-                               QueryParam "alt" AltJSON :>-                                 Get '[JSON] ListCourseWorkResponse---- | Returns a list of course work that the requester is permitted to view.--- Course students may only view \`PUBLISHED\` course work. Course teachers--- and domain administrators may view all course work. This method returns--- the following error codes: * \`PERMISSION_DENIED\` if the requesting--- user is not permitted to access the requested course or for access--- errors. * \`INVALID_ARGUMENT\` if the request is malformed. *--- \`NOT_FOUND\` if the requested course does not exist.------ /See:/ 'coursesCourseWorkList' smart constructor.-data CoursesCourseWorkList =-  CoursesCourseWorkList'-    { _ccwlXgafv            :: !(Maybe Xgafv)-    , _ccwlUploadProtocol   :: !(Maybe Text)-    , _ccwlOrderBy          :: !(Maybe Text)-    , _ccwlCourseId         :: !Text-    , _ccwlAccessToken      :: !(Maybe Text)-    , _ccwlCourseWorkStates :: !(Maybe [Text])-    , _ccwlUploadType       :: !(Maybe Text)-    , _ccwlPageToken        :: !(Maybe Text)-    , _ccwlPageSize         :: !(Maybe (Textual Int32))-    , _ccwlCallback         :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwlXgafv'------ * 'ccwlUploadProtocol'------ * 'ccwlOrderBy'------ * 'ccwlCourseId'------ * 'ccwlAccessToken'------ * 'ccwlCourseWorkStates'------ * 'ccwlUploadType'------ * 'ccwlPageToken'------ * 'ccwlPageSize'------ * 'ccwlCallback'-coursesCourseWorkList-    :: Text -- ^ 'ccwlCourseId'-    -> CoursesCourseWorkList-coursesCourseWorkList pCcwlCourseId_ =-  CoursesCourseWorkList'-    { _ccwlXgafv = Nothing-    , _ccwlUploadProtocol = Nothing-    , _ccwlOrderBy = Nothing-    , _ccwlCourseId = pCcwlCourseId_-    , _ccwlAccessToken = Nothing-    , _ccwlCourseWorkStates = Nothing-    , _ccwlUploadType = Nothing-    , _ccwlPageToken = Nothing-    , _ccwlPageSize = Nothing-    , _ccwlCallback = Nothing-    }----- | V1 error format.-ccwlXgafv :: Lens' CoursesCourseWorkList (Maybe Xgafv)-ccwlXgafv-  = lens _ccwlXgafv (\ s a -> s{_ccwlXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwlUploadProtocol :: Lens' CoursesCourseWorkList (Maybe Text)-ccwlUploadProtocol-  = lens _ccwlUploadProtocol-      (\ s a -> s{_ccwlUploadProtocol = a})---- | Optional sort ordering for results. A comma-separated list of fields--- with an optional sort direction keyword. Supported fields are--- \`updateTime\` and \`dueDate\`. Supported direction keywords are \`asc\`--- and \`desc\`. If not specified, \`updateTime desc\` is the default--- behavior. Examples: \`dueDate asc,updateTime desc\`,--- \`updateTime,dueDate desc\`-ccwlOrderBy :: Lens' CoursesCourseWorkList (Maybe Text)-ccwlOrderBy-  = lens _ccwlOrderBy (\ s a -> s{_ccwlOrderBy = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwlCourseId :: Lens' CoursesCourseWorkList Text-ccwlCourseId-  = lens _ccwlCourseId (\ s a -> s{_ccwlCourseId = a})---- | OAuth access token.-ccwlAccessToken :: Lens' CoursesCourseWorkList (Maybe Text)-ccwlAccessToken-  = lens _ccwlAccessToken-      (\ s a -> s{_ccwlAccessToken = a})---- | Restriction on the work status to return. Only courseWork that matches--- is returned. If unspecified, items with a work status of \`PUBLISHED\`--- is returned.-ccwlCourseWorkStates :: Lens' CoursesCourseWorkList [Text]-ccwlCourseWorkStates-  = lens _ccwlCourseWorkStates-      (\ s a -> s{_ccwlCourseWorkStates = a})-      . _Default-      . _Coerce---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwlUploadType :: Lens' CoursesCourseWorkList (Maybe Text)-ccwlUploadType-  = lens _ccwlUploadType-      (\ s a -> s{_ccwlUploadType = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-ccwlPageToken :: Lens' CoursesCourseWorkList (Maybe Text)-ccwlPageToken-  = lens _ccwlPageToken-      (\ s a -> s{_ccwlPageToken = a})---- | Maximum number of items to return. Zero or unspecified indicates that--- the server may assign a maximum. The server may return fewer than the--- specified number of results.-ccwlPageSize :: Lens' CoursesCourseWorkList (Maybe Int32)-ccwlPageSize-  = lens _ccwlPageSize (\ s a -> s{_ccwlPageSize = a})-      . mapping _Coerce---- | JSONP-ccwlCallback :: Lens' CoursesCourseWorkList (Maybe Text)-ccwlCallback-  = lens _ccwlCallback (\ s a -> s{_ccwlCallback = a})--instance GoogleRequest CoursesCourseWorkList where-        type Rs CoursesCourseWorkList =-             ListCourseWorkResponse-        type Scopes CoursesCourseWorkList =-             '["https://www.googleapis.com/auth/classroom.coursework.me",-               "https://www.googleapis.com/auth/classroom.coursework.me.readonly",-               "https://www.googleapis.com/auth/classroom.coursework.students",-               "https://www.googleapis.com/auth/classroom.coursework.students.readonly"]-        requestClient CoursesCourseWorkList'{..}-          = go _ccwlCourseId _ccwlXgafv _ccwlUploadProtocol-              _ccwlOrderBy-              _ccwlAccessToken-              (_ccwlCourseWorkStates ^. _Default)-              _ccwlUploadType-              _ccwlPageToken-              _ccwlPageSize-              _ccwlCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesCourseWorkListResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/ModifyAssignees.hs
@@ -1,196 +0,0 @@-{-# 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.CourseWork.ModifyAssignees--- 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)------ Modifies assignee mode and options of a coursework. Only a teacher of--- the course that contains the coursework may call this method. This--- method returns the following error codes: * \`PERMISSION_DENIED\` if the--- requesting user is not permitted to access the requested course or--- course work or for access errors. * \`INVALID_ARGUMENT\` if the request--- is malformed. * \`NOT_FOUND\` if the requested course or course work--- does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.modifyAssignees@.-module Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees-    (-    -- * REST Resource-      CoursesCourseWorkModifyAssigneesResource--    -- * Creating a Request-    , coursesCourseWorkModifyAssignees-    , CoursesCourseWorkModifyAssignees--    -- * Request Lenses-    , ccwmaXgafv-    , ccwmaUploadProtocol-    , ccwmaCourseId-    , ccwmaAccessToken-    , ccwmaUploadType-    , ccwmaPayload-    , ccwmaId-    , ccwmaCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.modifyAssignees@ method which the--- 'CoursesCourseWorkModifyAssignees' request conforms to.-type CoursesCourseWorkModifyAssigneesResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             CaptureMode "id" "modifyAssignees" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :>-                           ReqBody '[JSON] ModifyCourseWorkAssigneesRequest :>-                             Post '[JSON] CourseWork---- | Modifies assignee mode and options of a coursework. Only a teacher of--- the course that contains the coursework may call this method. This--- method returns the following error codes: * \`PERMISSION_DENIED\` if the--- requesting user is not permitted to access the requested course or--- course work or for access errors. * \`INVALID_ARGUMENT\` if the request--- is malformed. * \`NOT_FOUND\` if the requested course or course work--- does not exist.------ /See:/ 'coursesCourseWorkModifyAssignees' smart constructor.-data CoursesCourseWorkModifyAssignees =-  CoursesCourseWorkModifyAssignees'-    { _ccwmaXgafv          :: !(Maybe Xgafv)-    , _ccwmaUploadProtocol :: !(Maybe Text)-    , _ccwmaCourseId       :: !Text-    , _ccwmaAccessToken    :: !(Maybe Text)-    , _ccwmaUploadType     :: !(Maybe Text)-    , _ccwmaPayload        :: !ModifyCourseWorkAssigneesRequest-    , _ccwmaId             :: !Text-    , _ccwmaCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkModifyAssignees' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwmaXgafv'------ * 'ccwmaUploadProtocol'------ * 'ccwmaCourseId'------ * 'ccwmaAccessToken'------ * 'ccwmaUploadType'------ * 'ccwmaPayload'------ * 'ccwmaId'------ * 'ccwmaCallback'-coursesCourseWorkModifyAssignees-    :: Text -- ^ 'ccwmaCourseId'-    -> ModifyCourseWorkAssigneesRequest -- ^ 'ccwmaPayload'-    -> Text -- ^ 'ccwmaId'-    -> CoursesCourseWorkModifyAssignees-coursesCourseWorkModifyAssignees pCcwmaCourseId_ pCcwmaPayload_ pCcwmaId_ =-  CoursesCourseWorkModifyAssignees'-    { _ccwmaXgafv = Nothing-    , _ccwmaUploadProtocol = Nothing-    , _ccwmaCourseId = pCcwmaCourseId_-    , _ccwmaAccessToken = Nothing-    , _ccwmaUploadType = Nothing-    , _ccwmaPayload = pCcwmaPayload_-    , _ccwmaId = pCcwmaId_-    , _ccwmaCallback = Nothing-    }----- | V1 error format.-ccwmaXgafv :: Lens' CoursesCourseWorkModifyAssignees (Maybe Xgafv)-ccwmaXgafv-  = lens _ccwmaXgafv (\ s a -> s{_ccwmaXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwmaUploadProtocol :: Lens' CoursesCourseWorkModifyAssignees (Maybe Text)-ccwmaUploadProtocol-  = lens _ccwmaUploadProtocol-      (\ s a -> s{_ccwmaUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwmaCourseId :: Lens' CoursesCourseWorkModifyAssignees Text-ccwmaCourseId-  = lens _ccwmaCourseId-      (\ s a -> s{_ccwmaCourseId = a})---- | OAuth access token.-ccwmaAccessToken :: Lens' CoursesCourseWorkModifyAssignees (Maybe Text)-ccwmaAccessToken-  = lens _ccwmaAccessToken-      (\ s a -> s{_ccwmaAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwmaUploadType :: Lens' CoursesCourseWorkModifyAssignees (Maybe Text)-ccwmaUploadType-  = lens _ccwmaUploadType-      (\ s a -> s{_ccwmaUploadType = a})---- | Multipart request metadata.-ccwmaPayload :: Lens' CoursesCourseWorkModifyAssignees ModifyCourseWorkAssigneesRequest-ccwmaPayload-  = lens _ccwmaPayload (\ s a -> s{_ccwmaPayload = a})---- | Identifier of the coursework.-ccwmaId :: Lens' CoursesCourseWorkModifyAssignees Text-ccwmaId = lens _ccwmaId (\ s a -> s{_ccwmaId = a})---- | JSONP-ccwmaCallback :: Lens' CoursesCourseWorkModifyAssignees (Maybe Text)-ccwmaCallback-  = lens _ccwmaCallback-      (\ s a -> s{_ccwmaCallback = a})--instance GoogleRequest-           CoursesCourseWorkModifyAssignees-         where-        type Rs CoursesCourseWorkModifyAssignees = CourseWork-        type Scopes CoursesCourseWorkModifyAssignees =-             '["https://www.googleapis.com/auth/classroom.coursework.students"]-        requestClient CoursesCourseWorkModifyAssignees'{..}-          = go _ccwmaCourseId _ccwmaId _ccwmaXgafv-              _ccwmaUploadProtocol-              _ccwmaAccessToken-              _ccwmaUploadType-              _ccwmaCallback-              (Just AltJSON)-              _ccwmaPayload-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy CoursesCourseWorkModifyAssigneesResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/Patch.hs
@@ -1,224 +0,0 @@-{-# 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.CourseWork.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 a course work. See--- google.classroom.v1.CourseWork for details of which fields may be--- updated and who may change them. This request must be made by the--- Developer Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting developer project--- did not create the corresponding course work, if the user is not--- permitted to make the requested modification to the student submission,--- or for access errors. * \`INVALID_ARGUMENT\` if the request is--- malformed. * \`FAILED_PRECONDITION\` if the requested course work has--- already been deleted. * \`NOT_FOUND\` if the requested course, course--- work, or student submission does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.patch@.-module Network.Google.Resource.Classroom.Courses.CourseWork.Patch-    (-    -- * REST Resource-      CoursesCourseWorkPatchResource--    -- * Creating a Request-    , coursesCourseWorkPatch-    , CoursesCourseWorkPatch--    -- * Request Lenses-    , ccwpXgafv-    , ccwpUploadProtocol-    , ccwpUpdateMask-    , ccwpCourseId-    , ccwpAccessToken-    , ccwpUploadType-    , ccwpPayload-    , ccwpId-    , ccwpCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.patch@ method which the--- 'CoursesCourseWorkPatch' request conforms to.-type CoursesCourseWorkPatchResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             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] CourseWork :>-                               Patch '[JSON] CourseWork---- | Updates one or more fields of a course work. See--- google.classroom.v1.CourseWork for details of which fields may be--- updated and who may change them. This request must be made by the--- Developer Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting developer project--- did not create the corresponding course work, if the user is not--- permitted to make the requested modification to the student submission,--- or for access errors. * \`INVALID_ARGUMENT\` if the request is--- malformed. * \`FAILED_PRECONDITION\` if the requested course work has--- already been deleted. * \`NOT_FOUND\` if the requested course, course--- work, or student submission does not exist.------ /See:/ 'coursesCourseWorkPatch' smart constructor.-data CoursesCourseWorkPatch =-  CoursesCourseWorkPatch'-    { _ccwpXgafv          :: !(Maybe Xgafv)-    , _ccwpUploadProtocol :: !(Maybe Text)-    , _ccwpUpdateMask     :: !(Maybe GFieldMask)-    , _ccwpCourseId       :: !Text-    , _ccwpAccessToken    :: !(Maybe Text)-    , _ccwpUploadType     :: !(Maybe Text)-    , _ccwpPayload        :: !CourseWork-    , _ccwpId             :: !Text-    , _ccwpCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkPatch' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwpXgafv'------ * 'ccwpUploadProtocol'------ * 'ccwpUpdateMask'------ * 'ccwpCourseId'------ * 'ccwpAccessToken'------ * 'ccwpUploadType'------ * 'ccwpPayload'------ * 'ccwpId'------ * 'ccwpCallback'-coursesCourseWorkPatch-    :: Text -- ^ 'ccwpCourseId'-    -> CourseWork -- ^ 'ccwpPayload'-    -> Text -- ^ 'ccwpId'-    -> CoursesCourseWorkPatch-coursesCourseWorkPatch pCcwpCourseId_ pCcwpPayload_ pCcwpId_ =-  CoursesCourseWorkPatch'-    { _ccwpXgafv = Nothing-    , _ccwpUploadProtocol = Nothing-    , _ccwpUpdateMask = Nothing-    , _ccwpCourseId = pCcwpCourseId_-    , _ccwpAccessToken = Nothing-    , _ccwpUploadType = Nothing-    , _ccwpPayload = pCcwpPayload_-    , _ccwpId = pCcwpId_-    , _ccwpCallback = Nothing-    }----- | V1 error format.-ccwpXgafv :: Lens' CoursesCourseWorkPatch (Maybe Xgafv)-ccwpXgafv-  = lens _ccwpXgafv (\ s a -> s{_ccwpXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwpUploadProtocol :: Lens' CoursesCourseWorkPatch (Maybe Text)-ccwpUploadProtocol-  = lens _ccwpUploadProtocol-      (\ s a -> s{_ccwpUploadProtocol = a})---- | Mask that identifies which fields on the course work 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 CourseWork object. If a--- field that does not support empty values is included in the update mask--- and not set in the CourseWork object, an \`INVALID_ARGUMENT\` error will--- be returned. The following fields may be specified by teachers: *--- \`title\` * \`description\` * \`state\` * \`due_date\` * \`due_time\` *--- \`max_points\` * \`scheduled_time\` * \`submission_modification_mode\`-ccwpUpdateMask :: Lens' CoursesCourseWorkPatch (Maybe GFieldMask)-ccwpUpdateMask-  = lens _ccwpUpdateMask-      (\ s a -> s{_ccwpUpdateMask = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwpCourseId :: Lens' CoursesCourseWorkPatch Text-ccwpCourseId-  = lens _ccwpCourseId (\ s a -> s{_ccwpCourseId = a})---- | OAuth access token.-ccwpAccessToken :: Lens' CoursesCourseWorkPatch (Maybe Text)-ccwpAccessToken-  = lens _ccwpAccessToken-      (\ s a -> s{_ccwpAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwpUploadType :: Lens' CoursesCourseWorkPatch (Maybe Text)-ccwpUploadType-  = lens _ccwpUploadType-      (\ s a -> s{_ccwpUploadType = a})---- | Multipart request metadata.-ccwpPayload :: Lens' CoursesCourseWorkPatch CourseWork-ccwpPayload-  = lens _ccwpPayload (\ s a -> s{_ccwpPayload = a})---- | Identifier of the course work.-ccwpId :: Lens' CoursesCourseWorkPatch Text-ccwpId = lens _ccwpId (\ s a -> s{_ccwpId = a})---- | JSONP-ccwpCallback :: Lens' CoursesCourseWorkPatch (Maybe Text)-ccwpCallback-  = lens _ccwpCallback (\ s a -> s{_ccwpCallback = a})--instance GoogleRequest CoursesCourseWorkPatch where-        type Rs CoursesCourseWorkPatch = CourseWork-        type Scopes CoursesCourseWorkPatch =-             '["https://www.googleapis.com/auth/classroom.coursework.students"]-        requestClient CoursesCourseWorkPatch'{..}-          = go _ccwpCourseId _ccwpId _ccwpXgafv-              _ccwpUploadProtocol-              _ccwpUpdateMask-              _ccwpAccessToken-              _ccwpUploadType-              _ccwpCallback-              (Just AltJSON)-              _ccwpPayload-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesCourseWorkPatchResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Get.hs
@@ -1,201 +0,0 @@-{-# 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.CourseWork.StudentSubmissions.Get--- 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 student submission. * \`PERMISSION_DENIED\` if the requesting--- user is not permitted to access the requested course, course work, or--- student submission or for access errors. * \`INVALID_ARGUMENT\` if the--- request is malformed. * \`NOT_FOUND\` if the requested course, course--- work, or student submission does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.get@.-module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get-    (-    -- * REST Resource-      CoursesCourseWorkStudentSubmissionsGetResource--    -- * Creating a Request-    , coursesCourseWorkStudentSubmissionsGet-    , CoursesCourseWorkStudentSubmissionsGet--    -- * Request Lenses-    , ccwssgXgafv-    , ccwssgUploadProtocol-    , ccwssgCourseId-    , ccwssgAccessToken-    , ccwssgUploadType-    , ccwssgId-    , ccwssgCallback-    , ccwssgCourseWorkId-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.studentSubmissions.get@ method which the--- 'CoursesCourseWorkStudentSubmissionsGet' request conforms to.-type CoursesCourseWorkStudentSubmissionsGetResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             Capture "courseWorkId" Text :>-               "studentSubmissions" :>-                 Capture "id" Text :>-                   QueryParam "$.xgafv" Xgafv :>-                     QueryParam "upload_protocol" Text :>-                       QueryParam "access_token" Text :>-                         QueryParam "uploadType" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :>-                               Get '[JSON] StudentSubmission---- | Returns a student submission. * \`PERMISSION_DENIED\` if the requesting--- user is not permitted to access the requested course, course work, or--- student submission or for access errors. * \`INVALID_ARGUMENT\` if the--- request is malformed. * \`NOT_FOUND\` if the requested course, course--- work, or student submission does not exist.------ /See:/ 'coursesCourseWorkStudentSubmissionsGet' smart constructor.-data CoursesCourseWorkStudentSubmissionsGet =-  CoursesCourseWorkStudentSubmissionsGet'-    { _ccwssgXgafv          :: !(Maybe Xgafv)-    , _ccwssgUploadProtocol :: !(Maybe Text)-    , _ccwssgCourseId       :: !Text-    , _ccwssgAccessToken    :: !(Maybe Text)-    , _ccwssgUploadType     :: !(Maybe Text)-    , _ccwssgId             :: !Text-    , _ccwssgCallback       :: !(Maybe Text)-    , _ccwssgCourseWorkId   :: !Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkStudentSubmissionsGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwssgXgafv'------ * 'ccwssgUploadProtocol'------ * 'ccwssgCourseId'------ * 'ccwssgAccessToken'------ * 'ccwssgUploadType'------ * 'ccwssgId'------ * 'ccwssgCallback'------ * 'ccwssgCourseWorkId'-coursesCourseWorkStudentSubmissionsGet-    :: Text -- ^ 'ccwssgCourseId'-    -> Text -- ^ 'ccwssgId'-    -> Text -- ^ 'ccwssgCourseWorkId'-    -> CoursesCourseWorkStudentSubmissionsGet-coursesCourseWorkStudentSubmissionsGet pCcwssgCourseId_ pCcwssgId_ pCcwssgCourseWorkId_ =-  CoursesCourseWorkStudentSubmissionsGet'-    { _ccwssgXgafv = Nothing-    , _ccwssgUploadProtocol = Nothing-    , _ccwssgCourseId = pCcwssgCourseId_-    , _ccwssgAccessToken = Nothing-    , _ccwssgUploadType = Nothing-    , _ccwssgId = pCcwssgId_-    , _ccwssgCallback = Nothing-    , _ccwssgCourseWorkId = pCcwssgCourseWorkId_-    }----- | V1 error format.-ccwssgXgafv :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Xgafv)-ccwssgXgafv-  = lens _ccwssgXgafv (\ s a -> s{_ccwssgXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwssgUploadProtocol :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Text)-ccwssgUploadProtocol-  = lens _ccwssgUploadProtocol-      (\ s a -> s{_ccwssgUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwssgCourseId :: Lens' CoursesCourseWorkStudentSubmissionsGet Text-ccwssgCourseId-  = lens _ccwssgCourseId-      (\ s a -> s{_ccwssgCourseId = a})---- | OAuth access token.-ccwssgAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Text)-ccwssgAccessToken-  = lens _ccwssgAccessToken-      (\ s a -> s{_ccwssgAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwssgUploadType :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Text)-ccwssgUploadType-  = lens _ccwssgUploadType-      (\ s a -> s{_ccwssgUploadType = a})---- | Identifier of the student submission.-ccwssgId :: Lens' CoursesCourseWorkStudentSubmissionsGet Text-ccwssgId = lens _ccwssgId (\ s a -> s{_ccwssgId = a})---- | JSONP-ccwssgCallback :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Text)-ccwssgCallback-  = lens _ccwssgCallback-      (\ s a -> s{_ccwssgCallback = a})---- | Identifier of the course work.-ccwssgCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsGet Text-ccwssgCourseWorkId-  = lens _ccwssgCourseWorkId-      (\ s a -> s{_ccwssgCourseWorkId = a})--instance GoogleRequest-           CoursesCourseWorkStudentSubmissionsGet-         where-        type Rs CoursesCourseWorkStudentSubmissionsGet =-             StudentSubmission-        type Scopes CoursesCourseWorkStudentSubmissionsGet =-             '["https://www.googleapis.com/auth/classroom.coursework.me",-               "https://www.googleapis.com/auth/classroom.coursework.me.readonly",-               "https://www.googleapis.com/auth/classroom.coursework.students",-               "https://www.googleapis.com/auth/classroom.coursework.students.readonly",-               "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly",-               "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly"]-        requestClient-          CoursesCourseWorkStudentSubmissionsGet'{..}-          = go _ccwssgCourseId _ccwssgCourseWorkId _ccwssgId-              _ccwssgXgafv-              _ccwssgUploadProtocol-              _ccwssgAccessToken-              _ccwssgUploadType-              _ccwssgCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy CoursesCourseWorkStudentSubmissionsGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/List.hs
@@ -1,281 +0,0 @@-{-# 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.CourseWork.StudentSubmissions.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 student submissions that the requester is permitted to--- view, factoring in the OAuth scopes of the request. \`-\` may be--- specified as the \`course_work_id\` to include student submissions for--- multiple course work items. Course students may only view their own--- work. Course teachers and domain administrators may view all student--- submissions. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- the requested course or course work, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.list@.-module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List-    (-    -- * REST Resource-      CoursesCourseWorkStudentSubmissionsListResource--    -- * Creating a Request-    , coursesCourseWorkStudentSubmissionsList-    , CoursesCourseWorkStudentSubmissionsList--    -- * Request Lenses-    , ccwsslStates-    , ccwsslXgafv-    , ccwsslLate-    , ccwsslUploadProtocol-    , ccwsslCourseId-    , ccwsslAccessToken-    , ccwsslUploadType-    , ccwsslUserId-    , ccwsslPageToken-    , ccwsslPageSize-    , ccwsslCallback-    , ccwsslCourseWorkId-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.studentSubmissions.list@ method which the--- 'CoursesCourseWorkStudentSubmissionsList' request conforms to.-type CoursesCourseWorkStudentSubmissionsListResource-     =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             Capture "courseWorkId" Text :>-               "studentSubmissions" :>-                 QueryParams "states" Text :>-                   QueryParam "$.xgafv" Xgafv :>-                     QueryParam "late" Text :>-                       QueryParam "upload_protocol" Text :>-                         QueryParam "access_token" Text :>-                           QueryParam "uploadType" Text :>-                             QueryParam "userId" Text :>-                               QueryParam "pageToken" Text :>-                                 QueryParam "pageSize" (Textual Int32) :>-                                   QueryParam "callback" Text :>-                                     QueryParam "alt" AltJSON :>-                                       Get '[JSON]-                                         ListStudentSubmissionsResponse---- | Returns a list of student submissions that the requester is permitted to--- view, factoring in the OAuth scopes of the request. \`-\` may be--- specified as the \`course_work_id\` to include student submissions for--- multiple course work items. Course students may only view their own--- work. Course teachers and domain administrators may view all student--- submissions. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- the requested course or course work, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course does not exist.------ /See:/ 'coursesCourseWorkStudentSubmissionsList' smart constructor.-data CoursesCourseWorkStudentSubmissionsList =-  CoursesCourseWorkStudentSubmissionsList'-    { _ccwsslStates         :: !(Maybe [Text])-    , _ccwsslXgafv          :: !(Maybe Xgafv)-    , _ccwsslLate           :: !(Maybe Text)-    , _ccwsslUploadProtocol :: !(Maybe Text)-    , _ccwsslCourseId       :: !Text-    , _ccwsslAccessToken    :: !(Maybe Text)-    , _ccwsslUploadType     :: !(Maybe Text)-    , _ccwsslUserId         :: !(Maybe Text)-    , _ccwsslPageToken      :: !(Maybe Text)-    , _ccwsslPageSize       :: !(Maybe (Textual Int32))-    , _ccwsslCallback       :: !(Maybe Text)-    , _ccwsslCourseWorkId   :: !Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkStudentSubmissionsList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwsslStates'------ * 'ccwsslXgafv'------ * 'ccwsslLate'------ * 'ccwsslUploadProtocol'------ * 'ccwsslCourseId'------ * 'ccwsslAccessToken'------ * 'ccwsslUploadType'------ * 'ccwsslUserId'------ * 'ccwsslPageToken'------ * 'ccwsslPageSize'------ * 'ccwsslCallback'------ * 'ccwsslCourseWorkId'-coursesCourseWorkStudentSubmissionsList-    :: Text -- ^ 'ccwsslCourseId'-    -> Text -- ^ 'ccwsslCourseWorkId'-    -> CoursesCourseWorkStudentSubmissionsList-coursesCourseWorkStudentSubmissionsList pCcwsslCourseId_ pCcwsslCourseWorkId_ =-  CoursesCourseWorkStudentSubmissionsList'-    { _ccwsslStates = Nothing-    , _ccwsslXgafv = Nothing-    , _ccwsslLate = Nothing-    , _ccwsslUploadProtocol = Nothing-    , _ccwsslCourseId = pCcwsslCourseId_-    , _ccwsslAccessToken = Nothing-    , _ccwsslUploadType = Nothing-    , _ccwsslUserId = Nothing-    , _ccwsslPageToken = Nothing-    , _ccwsslPageSize = Nothing-    , _ccwsslCallback = Nothing-    , _ccwsslCourseWorkId = pCcwsslCourseWorkId_-    }----- | Requested submission states. If specified, returned student submissions--- match one of the specified submission states.-ccwsslStates :: Lens' CoursesCourseWorkStudentSubmissionsList [Text]-ccwsslStates-  = lens _ccwsslStates (\ s a -> s{_ccwsslStates = a})-      . _Default-      . _Coerce---- | V1 error format.-ccwsslXgafv :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Xgafv)-ccwsslXgafv-  = lens _ccwsslXgafv (\ s a -> s{_ccwsslXgafv = a})---- | Requested lateness value. If specified, returned student submissions are--- restricted by the requested value. If unspecified, submissions are--- returned regardless of \`late\` value.-ccwsslLate :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)-ccwsslLate-  = lens _ccwsslLate (\ s a -> s{_ccwsslLate = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwsslUploadProtocol :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)-ccwsslUploadProtocol-  = lens _ccwsslUploadProtocol-      (\ s a -> s{_ccwsslUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwsslCourseId :: Lens' CoursesCourseWorkStudentSubmissionsList Text-ccwsslCourseId-  = lens _ccwsslCourseId-      (\ s a -> s{_ccwsslCourseId = a})---- | OAuth access token.-ccwsslAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)-ccwsslAccessToken-  = lens _ccwsslAccessToken-      (\ s a -> s{_ccwsslAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwsslUploadType :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)-ccwsslUploadType-  = lens _ccwsslUploadType-      (\ s a -> s{_ccwsslUploadType = a})---- | Optional argument to restrict returned student work to those owned by--- the student with the specified identifier. The identifier can be one of--- the following: * the numeric identifier for the user * the email address--- of the user * the string literal \`\"me\"\`, indicating the requesting--- user-ccwsslUserId :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)-ccwsslUserId-  = lens _ccwsslUserId (\ s a -> s{_ccwsslUserId = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-ccwsslPageToken :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)-ccwsslPageToken-  = lens _ccwsslPageToken-      (\ s a -> s{_ccwsslPageToken = a})---- | Maximum number of items to return. Zero or unspecified indicates that--- the server may assign a maximum. The server may return fewer than the--- specified number of results.-ccwsslPageSize :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Int32)-ccwsslPageSize-  = lens _ccwsslPageSize-      (\ s a -> s{_ccwsslPageSize = a})-      . mapping _Coerce---- | JSONP-ccwsslCallback :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)-ccwsslCallback-  = lens _ccwsslCallback-      (\ s a -> s{_ccwsslCallback = a})---- | Identifier of the student work to request. This may be set to the string--- literal \`\"-\"\` to request student work for all course work in the--- specified course.-ccwsslCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsList Text-ccwsslCourseWorkId-  = lens _ccwsslCourseWorkId-      (\ s a -> s{_ccwsslCourseWorkId = a})--instance GoogleRequest-           CoursesCourseWorkStudentSubmissionsList-         where-        type Rs CoursesCourseWorkStudentSubmissionsList =-             ListStudentSubmissionsResponse-        type Scopes CoursesCourseWorkStudentSubmissionsList =-             '["https://www.googleapis.com/auth/classroom.coursework.me",-               "https://www.googleapis.com/auth/classroom.coursework.me.readonly",-               "https://www.googleapis.com/auth/classroom.coursework.students",-               "https://www.googleapis.com/auth/classroom.coursework.students.readonly",-               "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly",-               "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly"]-        requestClient-          CoursesCourseWorkStudentSubmissionsList'{..}-          = go _ccwsslCourseId _ccwsslCourseWorkId-              (_ccwsslStates ^. _Default)-              _ccwsslXgafv-              _ccwsslLate-              _ccwsslUploadProtocol-              _ccwsslAccessToken-              _ccwsslUploadType-              _ccwsslUserId-              _ccwsslPageToken-              _ccwsslPageSize-              _ccwsslCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy-                           CoursesCourseWorkStudentSubmissionsListResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs
@@ -1,231 +0,0 @@-{-# 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.CourseWork.StudentSubmissions.ModifyAttachments--- 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)------ Modifies attachments of student submission. Attachments may only be--- added to student submissions belonging to course work objects with a--- \`workType\` of \`ASSIGNMENT\`. This request must be made by the--- Developer Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to access the requested course or course work, if the user is--- not permitted to modify attachments on the requested student submission,--- or for access errors. * \`INVALID_ARGUMENT\` if the request is--- malformed. * \`NOT_FOUND\` if the requested course, course work, or--- student submission does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.modifyAttachments@.-module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments-    (-    -- * REST Resource-      CoursesCourseWorkStudentSubmissionsModifyAttachmentsResource--    -- * Creating a Request-    , coursesCourseWorkStudentSubmissionsModifyAttachments-    , CoursesCourseWorkStudentSubmissionsModifyAttachments--    -- * Request Lenses-    , ccwssmaXgafv-    , ccwssmaUploadProtocol-    , ccwssmaCourseId-    , ccwssmaAccessToken-    , ccwssmaUploadType-    , ccwssmaPayload-    , ccwssmaId-    , ccwssmaCallback-    , ccwssmaCourseWorkId-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.studentSubmissions.modifyAttachments@ method which the--- 'CoursesCourseWorkStudentSubmissionsModifyAttachments' request conforms to.-type CoursesCourseWorkStudentSubmissionsModifyAttachmentsResource-     =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             Capture "courseWorkId" Text :>-               "studentSubmissions" :>-                 CaptureMode "id" "modifyAttachments" Text :>-                   QueryParam "$.xgafv" Xgafv :>-                     QueryParam "upload_protocol" Text :>-                       QueryParam "access_token" Text :>-                         QueryParam "uploadType" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :>-                               ReqBody '[JSON] ModifyAttachmentsRequest :>-                                 Post '[JSON] StudentSubmission---- | Modifies attachments of student submission. Attachments may only be--- added to student submissions belonging to course work objects with a--- \`workType\` of \`ASSIGNMENT\`. This request must be made by the--- Developer Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to access the requested course or course work, if the user is--- not permitted to modify attachments on the requested student submission,--- or for access errors. * \`INVALID_ARGUMENT\` if the request is--- malformed. * \`NOT_FOUND\` if the requested course, course work, or--- student submission does not exist.------ /See:/ 'coursesCourseWorkStudentSubmissionsModifyAttachments' smart constructor.-data CoursesCourseWorkStudentSubmissionsModifyAttachments =-  CoursesCourseWorkStudentSubmissionsModifyAttachments'-    { _ccwssmaXgafv          :: !(Maybe Xgafv)-    , _ccwssmaUploadProtocol :: !(Maybe Text)-    , _ccwssmaCourseId       :: !Text-    , _ccwssmaAccessToken    :: !(Maybe Text)-    , _ccwssmaUploadType     :: !(Maybe Text)-    , _ccwssmaPayload        :: !ModifyAttachmentsRequest-    , _ccwssmaId             :: !Text-    , _ccwssmaCallback       :: !(Maybe Text)-    , _ccwssmaCourseWorkId   :: !Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkStudentSubmissionsModifyAttachments' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwssmaXgafv'------ * 'ccwssmaUploadProtocol'------ * 'ccwssmaCourseId'------ * 'ccwssmaAccessToken'------ * 'ccwssmaUploadType'------ * 'ccwssmaPayload'------ * 'ccwssmaId'------ * 'ccwssmaCallback'------ * 'ccwssmaCourseWorkId'-coursesCourseWorkStudentSubmissionsModifyAttachments-    :: Text -- ^ 'ccwssmaCourseId'-    -> ModifyAttachmentsRequest -- ^ 'ccwssmaPayload'-    -> Text -- ^ 'ccwssmaId'-    -> Text -- ^ 'ccwssmaCourseWorkId'-    -> CoursesCourseWorkStudentSubmissionsModifyAttachments-coursesCourseWorkStudentSubmissionsModifyAttachments pCcwssmaCourseId_ pCcwssmaPayload_ pCcwssmaId_ pCcwssmaCourseWorkId_ =-  CoursesCourseWorkStudentSubmissionsModifyAttachments'-    { _ccwssmaXgafv = Nothing-    , _ccwssmaUploadProtocol = Nothing-    , _ccwssmaCourseId = pCcwssmaCourseId_-    , _ccwssmaAccessToken = Nothing-    , _ccwssmaUploadType = Nothing-    , _ccwssmaPayload = pCcwssmaPayload_-    , _ccwssmaId = pCcwssmaId_-    , _ccwssmaCallback = Nothing-    , _ccwssmaCourseWorkId = pCcwssmaCourseWorkId_-    }----- | V1 error format.-ccwssmaXgafv :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Xgafv)-ccwssmaXgafv-  = lens _ccwssmaXgafv (\ s a -> s{_ccwssmaXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwssmaUploadProtocol :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Text)-ccwssmaUploadProtocol-  = lens _ccwssmaUploadProtocol-      (\ s a -> s{_ccwssmaUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwssmaCourseId :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments Text-ccwssmaCourseId-  = lens _ccwssmaCourseId-      (\ s a -> s{_ccwssmaCourseId = a})---- | OAuth access token.-ccwssmaAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Text)-ccwssmaAccessToken-  = lens _ccwssmaAccessToken-      (\ s a -> s{_ccwssmaAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwssmaUploadType :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Text)-ccwssmaUploadType-  = lens _ccwssmaUploadType-      (\ s a -> s{_ccwssmaUploadType = a})---- | Multipart request metadata.-ccwssmaPayload :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments ModifyAttachmentsRequest-ccwssmaPayload-  = lens _ccwssmaPayload-      (\ s a -> s{_ccwssmaPayload = a})---- | Identifier of the student submission.-ccwssmaId :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments Text-ccwssmaId-  = lens _ccwssmaId (\ s a -> s{_ccwssmaId = a})---- | JSONP-ccwssmaCallback :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Text)-ccwssmaCallback-  = lens _ccwssmaCallback-      (\ s a -> s{_ccwssmaCallback = a})---- | Identifier of the course work.-ccwssmaCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments Text-ccwssmaCourseWorkId-  = lens _ccwssmaCourseWorkId-      (\ s a -> s{_ccwssmaCourseWorkId = a})--instance GoogleRequest-           CoursesCourseWorkStudentSubmissionsModifyAttachments-         where-        type Rs-               CoursesCourseWorkStudentSubmissionsModifyAttachments-             = StudentSubmission-        type Scopes-               CoursesCourseWorkStudentSubmissionsModifyAttachments-             =-             '["https://www.googleapis.com/auth/classroom.coursework.me",-               "https://www.googleapis.com/auth/classroom.coursework.students"]-        requestClient-          CoursesCourseWorkStudentSubmissionsModifyAttachments'{..}-          = go _ccwssmaCourseId _ccwssmaCourseWorkId _ccwssmaId-              _ccwssmaXgafv-              _ccwssmaUploadProtocol-              _ccwssmaAccessToken-              _ccwssmaUploadType-              _ccwssmaCallback-              (Just AltJSON)-              _ccwssmaPayload-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy-                           CoursesCourseWorkStudentSubmissionsModifyAttachmentsResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Patch.hs
@@ -1,244 +0,0 @@-{-# 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.CourseWork.StudentSubmissions.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 a student submission. See--- google.classroom.v1.StudentSubmission for details of which fields may be--- updated and who may change them. This request must be made by the--- Developer Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting developer project--- did not create the corresponding course work, if the user is not--- permitted to make the requested modification to the student submission,--- or for access errors. * \`INVALID_ARGUMENT\` if the request is--- malformed. * \`NOT_FOUND\` if the requested course, course work, or--- student submission does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.patch@.-module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch-    (-    -- * REST Resource-      CoursesCourseWorkStudentSubmissionsPatchResource--    -- * Creating a Request-    , coursesCourseWorkStudentSubmissionsPatch-    , CoursesCourseWorkStudentSubmissionsPatch--    -- * Request Lenses-    , ccwsspXgafv-    , ccwsspUploadProtocol-    , ccwsspUpdateMask-    , ccwsspCourseId-    , ccwsspAccessToken-    , ccwsspUploadType-    , ccwsspPayload-    , ccwsspId-    , ccwsspCallback-    , ccwsspCourseWorkId-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.studentSubmissions.patch@ method which the--- 'CoursesCourseWorkStudentSubmissionsPatch' request conforms to.-type CoursesCourseWorkStudentSubmissionsPatchResource-     =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             Capture "courseWorkId" Text :>-               "studentSubmissions" :>-                 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] StudentSubmission :>-                                   Patch '[JSON] StudentSubmission---- | Updates one or more fields of a student submission. See--- google.classroom.v1.StudentSubmission for details of which fields may be--- updated and who may change them. This request must be made by the--- Developer Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting developer project--- did not create the corresponding course work, if the user is not--- permitted to make the requested modification to the student submission,--- or for access errors. * \`INVALID_ARGUMENT\` if the request is--- malformed. * \`NOT_FOUND\` if the requested course, course work, or--- student submission does not exist.------ /See:/ 'coursesCourseWorkStudentSubmissionsPatch' smart constructor.-data CoursesCourseWorkStudentSubmissionsPatch =-  CoursesCourseWorkStudentSubmissionsPatch'-    { _ccwsspXgafv          :: !(Maybe Xgafv)-    , _ccwsspUploadProtocol :: !(Maybe Text)-    , _ccwsspUpdateMask     :: !(Maybe GFieldMask)-    , _ccwsspCourseId       :: !Text-    , _ccwsspAccessToken    :: !(Maybe Text)-    , _ccwsspUploadType     :: !(Maybe Text)-    , _ccwsspPayload        :: !StudentSubmission-    , _ccwsspId             :: !Text-    , _ccwsspCallback       :: !(Maybe Text)-    , _ccwsspCourseWorkId   :: !Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkStudentSubmissionsPatch' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwsspXgafv'------ * 'ccwsspUploadProtocol'------ * 'ccwsspUpdateMask'------ * 'ccwsspCourseId'------ * 'ccwsspAccessToken'------ * 'ccwsspUploadType'------ * 'ccwsspPayload'------ * 'ccwsspId'------ * 'ccwsspCallback'------ * 'ccwsspCourseWorkId'-coursesCourseWorkStudentSubmissionsPatch-    :: Text -- ^ 'ccwsspCourseId'-    -> StudentSubmission -- ^ 'ccwsspPayload'-    -> Text -- ^ 'ccwsspId'-    -> Text -- ^ 'ccwsspCourseWorkId'-    -> CoursesCourseWorkStudentSubmissionsPatch-coursesCourseWorkStudentSubmissionsPatch pCcwsspCourseId_ pCcwsspPayload_ pCcwsspId_ pCcwsspCourseWorkId_ =-  CoursesCourseWorkStudentSubmissionsPatch'-    { _ccwsspXgafv = Nothing-    , _ccwsspUploadProtocol = Nothing-    , _ccwsspUpdateMask = Nothing-    , _ccwsspCourseId = pCcwsspCourseId_-    , _ccwsspAccessToken = Nothing-    , _ccwsspUploadType = Nothing-    , _ccwsspPayload = pCcwsspPayload_-    , _ccwsspId = pCcwsspId_-    , _ccwsspCallback = Nothing-    , _ccwsspCourseWorkId = pCcwsspCourseWorkId_-    }----- | V1 error format.-ccwsspXgafv :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Xgafv)-ccwsspXgafv-  = lens _ccwsspXgafv (\ s a -> s{_ccwsspXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwsspUploadProtocol :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Text)-ccwsspUploadProtocol-  = lens _ccwsspUploadProtocol-      (\ s a -> s{_ccwsspUploadProtocol = a})---- | Mask that identifies which fields on the student submission to update.--- This field is required to do an update. The update fails if invalid--- fields are specified. The following fields may be specified by teachers:--- * \`draft_grade\` * \`assigned_grade\`-ccwsspUpdateMask :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe GFieldMask)-ccwsspUpdateMask-  = lens _ccwsspUpdateMask-      (\ s a -> s{_ccwsspUpdateMask = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwsspCourseId :: Lens' CoursesCourseWorkStudentSubmissionsPatch Text-ccwsspCourseId-  = lens _ccwsspCourseId-      (\ s a -> s{_ccwsspCourseId = a})---- | OAuth access token.-ccwsspAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Text)-ccwsspAccessToken-  = lens _ccwsspAccessToken-      (\ s a -> s{_ccwsspAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwsspUploadType :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Text)-ccwsspUploadType-  = lens _ccwsspUploadType-      (\ s a -> s{_ccwsspUploadType = a})---- | Multipart request metadata.-ccwsspPayload :: Lens' CoursesCourseWorkStudentSubmissionsPatch StudentSubmission-ccwsspPayload-  = lens _ccwsspPayload-      (\ s a -> s{_ccwsspPayload = a})---- | Identifier of the student submission.-ccwsspId :: Lens' CoursesCourseWorkStudentSubmissionsPatch Text-ccwsspId = lens _ccwsspId (\ s a -> s{_ccwsspId = a})---- | JSONP-ccwsspCallback :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Text)-ccwsspCallback-  = lens _ccwsspCallback-      (\ s a -> s{_ccwsspCallback = a})---- | Identifier of the course work.-ccwsspCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsPatch Text-ccwsspCourseWorkId-  = lens _ccwsspCourseWorkId-      (\ s a -> s{_ccwsspCourseWorkId = a})--instance GoogleRequest-           CoursesCourseWorkStudentSubmissionsPatch-         where-        type Rs CoursesCourseWorkStudentSubmissionsPatch =-             StudentSubmission-        type Scopes CoursesCourseWorkStudentSubmissionsPatch-             =-             '["https://www.googleapis.com/auth/classroom.coursework.me",-               "https://www.googleapis.com/auth/classroom.coursework.students"]-        requestClient-          CoursesCourseWorkStudentSubmissionsPatch'{..}-          = go _ccwsspCourseId _ccwsspCourseWorkId _ccwsspId-              _ccwsspXgafv-              _ccwsspUploadProtocol-              _ccwsspUpdateMask-              _ccwsspAccessToken-              _ccwsspUploadType-              _ccwsspCallback-              (Just AltJSON)-              _ccwsspPayload-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy-                           CoursesCourseWorkStudentSubmissionsPatchResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs
@@ -1,235 +0,0 @@-{-# 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.CourseWork.StudentSubmissions.Reclaim--- 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)------ Reclaims a student submission on behalf of the student that owns it.--- Reclaiming a student submission transfers ownership of attached Drive--- files to the student and updates the submission state. Only the student--- that owns the requested student submission may call this method, and--- only for a student submission that has been turned in. This request must--- be made by the Developer Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to access the requested course or course work, unsubmit the--- requested student submission, or for access errors. *--- \`FAILED_PRECONDITION\` if the student submission has not been turned--- in. * \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\`--- if the requested course, course work, or student submission does not--- exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.reclaim@.-module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim-    (-    -- * REST Resource-      CoursesCourseWorkStudentSubmissionsReclaimResource--    -- * Creating a Request-    , coursesCourseWorkStudentSubmissionsReclaim-    , CoursesCourseWorkStudentSubmissionsReclaim--    -- * Request Lenses-    , ccwssrcXgafv-    , ccwssrcUploadProtocol-    , ccwssrcCourseId-    , ccwssrcAccessToken-    , ccwssrcUploadType-    , ccwssrcPayload-    , ccwssrcId-    , ccwssrcCallback-    , ccwssrcCourseWorkId-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.studentSubmissions.reclaim@ method which the--- 'CoursesCourseWorkStudentSubmissionsReclaim' request conforms to.-type CoursesCourseWorkStudentSubmissionsReclaimResource-     =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             Capture "courseWorkId" Text :>-               "studentSubmissions" :>-                 CaptureMode "id" "reclaim" Text :>-                   QueryParam "$.xgafv" Xgafv :>-                     QueryParam "upload_protocol" Text :>-                       QueryParam "access_token" Text :>-                         QueryParam "uploadType" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :>-                               ReqBody '[JSON] ReclaimStudentSubmissionRequest-                                 :> Post '[JSON] Empty---- | Reclaims a student submission on behalf of the student that owns it.--- Reclaiming a student submission transfers ownership of attached Drive--- files to the student and updates the submission state. Only the student--- that owns the requested student submission may call this method, and--- only for a student submission that has been turned in. This request must--- be made by the Developer Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to access the requested course or course work, unsubmit the--- requested student submission, or for access errors. *--- \`FAILED_PRECONDITION\` if the student submission has not been turned--- in. * \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\`--- if the requested course, course work, or student submission does not--- exist.------ /See:/ 'coursesCourseWorkStudentSubmissionsReclaim' smart constructor.-data CoursesCourseWorkStudentSubmissionsReclaim =-  CoursesCourseWorkStudentSubmissionsReclaim'-    { _ccwssrcXgafv          :: !(Maybe Xgafv)-    , _ccwssrcUploadProtocol :: !(Maybe Text)-    , _ccwssrcCourseId       :: !Text-    , _ccwssrcAccessToken    :: !(Maybe Text)-    , _ccwssrcUploadType     :: !(Maybe Text)-    , _ccwssrcPayload        :: !ReclaimStudentSubmissionRequest-    , _ccwssrcId             :: !Text-    , _ccwssrcCallback       :: !(Maybe Text)-    , _ccwssrcCourseWorkId   :: !Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkStudentSubmissionsReclaim' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwssrcXgafv'------ * 'ccwssrcUploadProtocol'------ * 'ccwssrcCourseId'------ * 'ccwssrcAccessToken'------ * 'ccwssrcUploadType'------ * 'ccwssrcPayload'------ * 'ccwssrcId'------ * 'ccwssrcCallback'------ * 'ccwssrcCourseWorkId'-coursesCourseWorkStudentSubmissionsReclaim-    :: Text -- ^ 'ccwssrcCourseId'-    -> ReclaimStudentSubmissionRequest -- ^ 'ccwssrcPayload'-    -> Text -- ^ 'ccwssrcId'-    -> Text -- ^ 'ccwssrcCourseWorkId'-    -> CoursesCourseWorkStudentSubmissionsReclaim-coursesCourseWorkStudentSubmissionsReclaim pCcwssrcCourseId_ pCcwssrcPayload_ pCcwssrcId_ pCcwssrcCourseWorkId_ =-  CoursesCourseWorkStudentSubmissionsReclaim'-    { _ccwssrcXgafv = Nothing-    , _ccwssrcUploadProtocol = Nothing-    , _ccwssrcCourseId = pCcwssrcCourseId_-    , _ccwssrcAccessToken = Nothing-    , _ccwssrcUploadType = Nothing-    , _ccwssrcPayload = pCcwssrcPayload_-    , _ccwssrcId = pCcwssrcId_-    , _ccwssrcCallback = Nothing-    , _ccwssrcCourseWorkId = pCcwssrcCourseWorkId_-    }----- | V1 error format.-ccwssrcXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Xgafv)-ccwssrcXgafv-  = lens _ccwssrcXgafv (\ s a -> s{_ccwssrcXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwssrcUploadProtocol :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)-ccwssrcUploadProtocol-  = lens _ccwssrcUploadProtocol-      (\ s a -> s{_ccwssrcUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwssrcCourseId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text-ccwssrcCourseId-  = lens _ccwssrcCourseId-      (\ s a -> s{_ccwssrcCourseId = a})---- | OAuth access token.-ccwssrcAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)-ccwssrcAccessToken-  = lens _ccwssrcAccessToken-      (\ s a -> s{_ccwssrcAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwssrcUploadType :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)-ccwssrcUploadType-  = lens _ccwssrcUploadType-      (\ s a -> s{_ccwssrcUploadType = a})---- | Multipart request metadata.-ccwssrcPayload :: Lens' CoursesCourseWorkStudentSubmissionsReclaim ReclaimStudentSubmissionRequest-ccwssrcPayload-  = lens _ccwssrcPayload-      (\ s a -> s{_ccwssrcPayload = a})---- | Identifier of the student submission.-ccwssrcId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text-ccwssrcId-  = lens _ccwssrcId (\ s a -> s{_ccwssrcId = a})---- | JSONP-ccwssrcCallback :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)-ccwssrcCallback-  = lens _ccwssrcCallback-      (\ s a -> s{_ccwssrcCallback = a})---- | Identifier of the course work.-ccwssrcCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text-ccwssrcCourseWorkId-  = lens _ccwssrcCourseWorkId-      (\ s a -> s{_ccwssrcCourseWorkId = a})--instance GoogleRequest-           CoursesCourseWorkStudentSubmissionsReclaim-         where-        type Rs CoursesCourseWorkStudentSubmissionsReclaim =-             Empty-        type Scopes-               CoursesCourseWorkStudentSubmissionsReclaim-             =-             '["https://www.googleapis.com/auth/classroom.coursework.me"]-        requestClient-          CoursesCourseWorkStudentSubmissionsReclaim'{..}-          = go _ccwssrcCourseId _ccwssrcCourseWorkId _ccwssrcId-              _ccwssrcXgafv-              _ccwssrcUploadProtocol-              _ccwssrcAccessToken-              _ccwssrcUploadType-              _ccwssrcCallback-              (Just AltJSON)-              _ccwssrcPayload-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy-                           CoursesCourseWorkStudentSubmissionsReclaimResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Return.hs
@@ -1,231 +0,0 @@-{-# 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.CourseWork.StudentSubmissions.Return--- 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 student submission. Returning a student submission transfers--- ownership of attached Drive files to the student and may also update the--- submission state. Unlike the Classroom application, returning a student--- submission does not set assignedGrade to the draftGrade value. Only a--- teacher of the course that contains the requested student submission may--- call this method. This request must be made by the Developer Console--- project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to access the requested course or course work, return the--- requested student submission, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course, course work, or student submission does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.return@.-module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Return-    (-    -- * REST Resource-      CoursesCourseWorkStudentSubmissionsReturnResource--    -- * Creating a Request-    , coursesCourseWorkStudentSubmissionsReturn-    , CoursesCourseWorkStudentSubmissionsReturn--    -- * Request Lenses-    , ccwssrXgafv-    , ccwssrUploadProtocol-    , ccwssrCourseId-    , ccwssrAccessToken-    , ccwssrUploadType-    , ccwssrPayload-    , ccwssrId-    , ccwssrCallback-    , ccwssrCourseWorkId-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.studentSubmissions.return@ method which the--- 'CoursesCourseWorkStudentSubmissionsReturn' request conforms to.-type CoursesCourseWorkStudentSubmissionsReturnResource-     =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             Capture "courseWorkId" Text :>-               "studentSubmissions" :>-                 CaptureMode "id" "return" Text :>-                   QueryParam "$.xgafv" Xgafv :>-                     QueryParam "upload_protocol" Text :>-                       QueryParam "access_token" Text :>-                         QueryParam "uploadType" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :>-                               ReqBody '[JSON] ReturnStudentSubmissionRequest :>-                                 Post '[JSON] Empty---- | Returns a student submission. Returning a student submission transfers--- ownership of attached Drive files to the student and may also update the--- submission state. Unlike the Classroom application, returning a student--- submission does not set assignedGrade to the draftGrade value. Only a--- teacher of the course that contains the requested student submission may--- call this method. This request must be made by the Developer Console--- project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to access the requested course or course work, return the--- requested student submission, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course, course work, or student submission does not exist.------ /See:/ 'coursesCourseWorkStudentSubmissionsReturn' smart constructor.-data CoursesCourseWorkStudentSubmissionsReturn =-  CoursesCourseWorkStudentSubmissionsReturn'-    { _ccwssrXgafv          :: !(Maybe Xgafv)-    , _ccwssrUploadProtocol :: !(Maybe Text)-    , _ccwssrCourseId       :: !Text-    , _ccwssrAccessToken    :: !(Maybe Text)-    , _ccwssrUploadType     :: !(Maybe Text)-    , _ccwssrPayload        :: !ReturnStudentSubmissionRequest-    , _ccwssrId             :: !Text-    , _ccwssrCallback       :: !(Maybe Text)-    , _ccwssrCourseWorkId   :: !Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkStudentSubmissionsReturn' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwssrXgafv'------ * 'ccwssrUploadProtocol'------ * 'ccwssrCourseId'------ * 'ccwssrAccessToken'------ * 'ccwssrUploadType'------ * 'ccwssrPayload'------ * 'ccwssrId'------ * 'ccwssrCallback'------ * 'ccwssrCourseWorkId'-coursesCourseWorkStudentSubmissionsReturn-    :: Text -- ^ 'ccwssrCourseId'-    -> ReturnStudentSubmissionRequest -- ^ 'ccwssrPayload'-    -> Text -- ^ 'ccwssrId'-    -> Text -- ^ 'ccwssrCourseWorkId'-    -> CoursesCourseWorkStudentSubmissionsReturn-coursesCourseWorkStudentSubmissionsReturn pCcwssrCourseId_ pCcwssrPayload_ pCcwssrId_ pCcwssrCourseWorkId_ =-  CoursesCourseWorkStudentSubmissionsReturn'-    { _ccwssrXgafv = Nothing-    , _ccwssrUploadProtocol = Nothing-    , _ccwssrCourseId = pCcwssrCourseId_-    , _ccwssrAccessToken = Nothing-    , _ccwssrUploadType = Nothing-    , _ccwssrPayload = pCcwssrPayload_-    , _ccwssrId = pCcwssrId_-    , _ccwssrCallback = Nothing-    , _ccwssrCourseWorkId = pCcwssrCourseWorkId_-    }----- | V1 error format.-ccwssrXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Xgafv)-ccwssrXgafv-  = lens _ccwssrXgafv (\ s a -> s{_ccwssrXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwssrUploadProtocol :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Text)-ccwssrUploadProtocol-  = lens _ccwssrUploadProtocol-      (\ s a -> s{_ccwssrUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwssrCourseId :: Lens' CoursesCourseWorkStudentSubmissionsReturn Text-ccwssrCourseId-  = lens _ccwssrCourseId-      (\ s a -> s{_ccwssrCourseId = a})---- | OAuth access token.-ccwssrAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Text)-ccwssrAccessToken-  = lens _ccwssrAccessToken-      (\ s a -> s{_ccwssrAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwssrUploadType :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Text)-ccwssrUploadType-  = lens _ccwssrUploadType-      (\ s a -> s{_ccwssrUploadType = a})---- | Multipart request metadata.-ccwssrPayload :: Lens' CoursesCourseWorkStudentSubmissionsReturn ReturnStudentSubmissionRequest-ccwssrPayload-  = lens _ccwssrPayload-      (\ s a -> s{_ccwssrPayload = a})---- | Identifier of the student submission.-ccwssrId :: Lens' CoursesCourseWorkStudentSubmissionsReturn Text-ccwssrId = lens _ccwssrId (\ s a -> s{_ccwssrId = a})---- | JSONP-ccwssrCallback :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Text)-ccwssrCallback-  = lens _ccwssrCallback-      (\ s a -> s{_ccwssrCallback = a})---- | Identifier of the course work.-ccwssrCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsReturn Text-ccwssrCourseWorkId-  = lens _ccwssrCourseWorkId-      (\ s a -> s{_ccwssrCourseWorkId = a})--instance GoogleRequest-           CoursesCourseWorkStudentSubmissionsReturn-         where-        type Rs CoursesCourseWorkStudentSubmissionsReturn =-             Empty-        type Scopes CoursesCourseWorkStudentSubmissionsReturn-             =-             '["https://www.googleapis.com/auth/classroom.coursework.students"]-        requestClient-          CoursesCourseWorkStudentSubmissionsReturn'{..}-          = go _ccwssrCourseId _ccwssrCourseWorkId _ccwssrId-              _ccwssrXgafv-              _ccwssrUploadProtocol-              _ccwssrAccessToken-              _ccwssrUploadType-              _ccwssrCallback-              (Just AltJSON)-              _ccwssrPayload-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy-                           CoursesCourseWorkStudentSubmissionsReturnResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/TurnIn.hs
@@ -1,228 +0,0 @@-{-# 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.CourseWork.StudentSubmissions.TurnIn--- 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)------ Turns in a student submission. Turning in a student submission transfers--- ownership of attached Drive files to the teacher and may also update the--- submission state. This may only be called by the student that owns the--- specified student submission. This request must be made by the Developer--- Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to access the requested course or course work, turn in the--- requested student submission, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course, course work, or student submission does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.studentSubmissions.turnIn@.-module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn-    (-    -- * REST Resource-      CoursesCourseWorkStudentSubmissionsTurnInResource--    -- * Creating a Request-    , coursesCourseWorkStudentSubmissionsTurnIn-    , CoursesCourseWorkStudentSubmissionsTurnIn--    -- * Request Lenses-    , ccwsstiXgafv-    , ccwsstiUploadProtocol-    , ccwsstiCourseId-    , ccwsstiAccessToken-    , ccwsstiUploadType-    , ccwsstiPayload-    , ccwsstiId-    , ccwsstiCallback-    , ccwsstiCourseWorkId-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.courseWork.studentSubmissions.turnIn@ method which the--- 'CoursesCourseWorkStudentSubmissionsTurnIn' request conforms to.-type CoursesCourseWorkStudentSubmissionsTurnInResource-     =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "courseWork" :>-             Capture "courseWorkId" Text :>-               "studentSubmissions" :>-                 CaptureMode "id" "turnIn" Text :>-                   QueryParam "$.xgafv" Xgafv :>-                     QueryParam "upload_protocol" Text :>-                       QueryParam "access_token" Text :>-                         QueryParam "uploadType" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :>-                               ReqBody '[JSON] TurnInStudentSubmissionRequest :>-                                 Post '[JSON] Empty---- | Turns in a student submission. Turning in a student submission transfers--- ownership of attached Drive files to the teacher and may also update the--- submission state. This may only be called by the student that owns the--- specified student submission. This request must be made by the Developer--- Console project of the [OAuth client--- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create--- the corresponding course work item. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to access the requested course or course work, turn in the--- requested student submission, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course, course work, or student submission does not exist.------ /See:/ 'coursesCourseWorkStudentSubmissionsTurnIn' smart constructor.-data CoursesCourseWorkStudentSubmissionsTurnIn =-  CoursesCourseWorkStudentSubmissionsTurnIn'-    { _ccwsstiXgafv          :: !(Maybe Xgafv)-    , _ccwsstiUploadProtocol :: !(Maybe Text)-    , _ccwsstiCourseId       :: !Text-    , _ccwsstiAccessToken    :: !(Maybe Text)-    , _ccwsstiUploadType     :: !(Maybe Text)-    , _ccwsstiPayload        :: !TurnInStudentSubmissionRequest-    , _ccwsstiId             :: !Text-    , _ccwsstiCallback       :: !(Maybe Text)-    , _ccwsstiCourseWorkId   :: !Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCourseWorkStudentSubmissionsTurnIn' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccwsstiXgafv'------ * 'ccwsstiUploadProtocol'------ * 'ccwsstiCourseId'------ * 'ccwsstiAccessToken'------ * 'ccwsstiUploadType'------ * 'ccwsstiPayload'------ * 'ccwsstiId'------ * 'ccwsstiCallback'------ * 'ccwsstiCourseWorkId'-coursesCourseWorkStudentSubmissionsTurnIn-    :: Text -- ^ 'ccwsstiCourseId'-    -> TurnInStudentSubmissionRequest -- ^ 'ccwsstiPayload'-    -> Text -- ^ 'ccwsstiId'-    -> Text -- ^ 'ccwsstiCourseWorkId'-    -> CoursesCourseWorkStudentSubmissionsTurnIn-coursesCourseWorkStudentSubmissionsTurnIn pCcwsstiCourseId_ pCcwsstiPayload_ pCcwsstiId_ pCcwsstiCourseWorkId_ =-  CoursesCourseWorkStudentSubmissionsTurnIn'-    { _ccwsstiXgafv = Nothing-    , _ccwsstiUploadProtocol = Nothing-    , _ccwsstiCourseId = pCcwsstiCourseId_-    , _ccwsstiAccessToken = Nothing-    , _ccwsstiUploadType = Nothing-    , _ccwsstiPayload = pCcwsstiPayload_-    , _ccwsstiId = pCcwsstiId_-    , _ccwsstiCallback = Nothing-    , _ccwsstiCourseWorkId = pCcwsstiCourseWorkId_-    }----- | V1 error format.-ccwsstiXgafv :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Xgafv)-ccwsstiXgafv-  = lens _ccwsstiXgafv (\ s a -> s{_ccwsstiXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccwsstiUploadProtocol :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Text)-ccwsstiUploadProtocol-  = lens _ccwsstiUploadProtocol-      (\ s a -> s{_ccwsstiUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ccwsstiCourseId :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn Text-ccwsstiCourseId-  = lens _ccwsstiCourseId-      (\ s a -> s{_ccwsstiCourseId = a})---- | OAuth access token.-ccwsstiAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Text)-ccwsstiAccessToken-  = lens _ccwsstiAccessToken-      (\ s a -> s{_ccwsstiAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccwsstiUploadType :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Text)-ccwsstiUploadType-  = lens _ccwsstiUploadType-      (\ s a -> s{_ccwsstiUploadType = a})---- | Multipart request metadata.-ccwsstiPayload :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn TurnInStudentSubmissionRequest-ccwsstiPayload-  = lens _ccwsstiPayload-      (\ s a -> s{_ccwsstiPayload = a})---- | Identifier of the student submission.-ccwsstiId :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn Text-ccwsstiId-  = lens _ccwsstiId (\ s a -> s{_ccwsstiId = a})---- | JSONP-ccwsstiCallback :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Text)-ccwsstiCallback-  = lens _ccwsstiCallback-      (\ s a -> s{_ccwsstiCallback = a})---- | Identifier of the course work.-ccwsstiCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn Text-ccwsstiCourseWorkId-  = lens _ccwsstiCourseWorkId-      (\ s a -> s{_ccwsstiCourseWorkId = a})--instance GoogleRequest-           CoursesCourseWorkStudentSubmissionsTurnIn-         where-        type Rs CoursesCourseWorkStudentSubmissionsTurnIn =-             Empty-        type Scopes CoursesCourseWorkStudentSubmissionsTurnIn-             =-             '["https://www.googleapis.com/auth/classroom.coursework.me"]-        requestClient-          CoursesCourseWorkStudentSubmissionsTurnIn'{..}-          = go _ccwsstiCourseId _ccwsstiCourseWorkId _ccwsstiId-              _ccwsstiXgafv-              _ccwsstiUploadProtocol-              _ccwsstiAccessToken-              _ccwsstiUploadType-              _ccwsstiCallback-              (Just AltJSON)-              _ccwsstiPayload-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy-                           CoursesCourseWorkStudentSubmissionsTurnInResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Create.hs
@@ -1,162 +0,0 @@-{-# 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.Create--- 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)------ Creates a course. The user specified in \`ownerId\` is the owner of the--- created course and added as a teacher. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to create courses or for access errors. * \`NOT_FOUND\` if the--- primary teacher is not a valid user. * \`FAILED_PRECONDITION\` if the--- course owner\'s account is disabled or for the following request errors:--- * UserGroupsMembershipLimitReached * \`ALREADY_EXISTS\` if an alias was--- specified in the \`id\` and already exists.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.create@.-module Network.Google.Resource.Classroom.Courses.Create-    (-    -- * REST Resource-      CoursesCreateResource--    -- * Creating a Request-    , coursesCreate-    , CoursesCreate--    -- * Request Lenses-    , ccXgafv-    , ccUploadProtocol-    , ccAccessToken-    , ccUploadType-    , ccPayload-    , ccCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.create@ method which the--- 'CoursesCreate' request conforms to.-type CoursesCreateResource =-     "v1" :>-       "courses" :>-         QueryParam "$.xgafv" Xgafv :>-           QueryParam "upload_protocol" Text :>-             QueryParam "access_token" Text :>-               QueryParam "uploadType" Text :>-                 QueryParam "callback" Text :>-                   QueryParam "alt" AltJSON :>-                     ReqBody '[JSON] Course :> Post '[JSON] Course---- | Creates a course. The user specified in \`ownerId\` is the owner of the--- created course and added as a teacher. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to create courses or for access errors. * \`NOT_FOUND\` if the--- primary teacher is not a valid user. * \`FAILED_PRECONDITION\` if the--- course owner\'s account is disabled or for the following request errors:--- * UserGroupsMembershipLimitReached * \`ALREADY_EXISTS\` if an alias was--- specified in the \`id\` and already exists.------ /See:/ 'coursesCreate' smart constructor.-data CoursesCreate =-  CoursesCreate'-    { _ccXgafv          :: !(Maybe Xgafv)-    , _ccUploadProtocol :: !(Maybe Text)-    , _ccAccessToken    :: !(Maybe Text)-    , _ccUploadType     :: !(Maybe Text)-    , _ccPayload        :: !Course-    , _ccCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccXgafv'------ * 'ccUploadProtocol'------ * 'ccAccessToken'------ * 'ccUploadType'------ * 'ccPayload'------ * 'ccCallback'-coursesCreate-    :: Course -- ^ 'ccPayload'-    -> CoursesCreate-coursesCreate pCcPayload_ =-  CoursesCreate'-    { _ccXgafv = Nothing-    , _ccUploadProtocol = Nothing-    , _ccAccessToken = Nothing-    , _ccUploadType = Nothing-    , _ccPayload = pCcPayload_-    , _ccCallback = Nothing-    }----- | V1 error format.-ccXgafv :: Lens' CoursesCreate (Maybe Xgafv)-ccXgafv = lens _ccXgafv (\ s a -> s{_ccXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ccUploadProtocol :: Lens' CoursesCreate (Maybe Text)-ccUploadProtocol-  = lens _ccUploadProtocol-      (\ s a -> s{_ccUploadProtocol = a})---- | OAuth access token.-ccAccessToken :: Lens' CoursesCreate (Maybe Text)-ccAccessToken-  = lens _ccAccessToken-      (\ s a -> s{_ccAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ccUploadType :: Lens' CoursesCreate (Maybe Text)-ccUploadType-  = lens _ccUploadType (\ s a -> s{_ccUploadType = a})---- | Multipart request metadata.-ccPayload :: Lens' CoursesCreate Course-ccPayload-  = lens _ccPayload (\ s a -> s{_ccPayload = a})---- | JSONP-ccCallback :: Lens' CoursesCreate (Maybe Text)-ccCallback-  = lens _ccCallback (\ s a -> s{_ccCallback = a})--instance GoogleRequest CoursesCreate where-        type Rs CoursesCreate = Course-        type Scopes CoursesCreate =-             '["https://www.googleapis.com/auth/classroom.courses"]-        requestClient CoursesCreate'{..}-          = go _ccXgafv _ccUploadProtocol _ccAccessToken-              _ccUploadType-              _ccCallback-              (Just AltJSON)-              _ccPayload-              classroomService-          where go-                  = buildClient (Proxy :: Proxy CoursesCreateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Delete.hs
@@ -1,153 +0,0 @@-{-# 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.Delete--- 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)------ Deletes a course. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to delete--- the requested course or for access errors. * \`NOT_FOUND\` if no course--- exists with the requested ID.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.delete@.-module Network.Google.Resource.Classroom.Courses.Delete-    (-    -- * REST Resource-      CoursesDeleteResource--    -- * Creating a Request-    , coursesDelete-    , CoursesDelete--    -- * Request Lenses-    , cdXgafv-    , cdUploadProtocol-    , cdAccessToken-    , cdUploadType-    , cdId-    , cdCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.delete@ method which the--- 'CoursesDelete' request conforms to.-type CoursesDeleteResource =-     "v1" :>-       "courses" :>-         Capture "id" Text :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "callback" Text :>-                     QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes a course. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to delete--- the requested course or for access errors. * \`NOT_FOUND\` if no course--- exists with the requested ID.------ /See:/ 'coursesDelete' smart constructor.-data CoursesDelete =-  CoursesDelete'-    { _cdXgafv          :: !(Maybe Xgafv)-    , _cdUploadProtocol :: !(Maybe Text)-    , _cdAccessToken    :: !(Maybe Text)-    , _cdUploadType     :: !(Maybe Text)-    , _cdId             :: !Text-    , _cdCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cdXgafv'------ * 'cdUploadProtocol'------ * 'cdAccessToken'------ * 'cdUploadType'------ * 'cdId'------ * 'cdCallback'-coursesDelete-    :: Text -- ^ 'cdId'-    -> CoursesDelete-coursesDelete pCdId_ =-  CoursesDelete'-    { _cdXgafv = Nothing-    , _cdUploadProtocol = Nothing-    , _cdAccessToken = Nothing-    , _cdUploadType = Nothing-    , _cdId = pCdId_-    , _cdCallback = Nothing-    }----- | V1 error format.-cdXgafv :: Lens' CoursesDelete (Maybe Xgafv)-cdXgafv = lens _cdXgafv (\ s a -> s{_cdXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-cdUploadProtocol :: Lens' CoursesDelete (Maybe Text)-cdUploadProtocol-  = lens _cdUploadProtocol-      (\ s a -> s{_cdUploadProtocol = a})---- | OAuth access token.-cdAccessToken :: Lens' CoursesDelete (Maybe Text)-cdAccessToken-  = lens _cdAccessToken-      (\ s a -> s{_cdAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-cdUploadType :: Lens' CoursesDelete (Maybe Text)-cdUploadType-  = lens _cdUploadType (\ s a -> s{_cdUploadType = a})---- | Identifier of the course to delete. This identifier can be either the--- Classroom-assigned identifier or an alias.-cdId :: Lens' CoursesDelete Text-cdId = lens _cdId (\ s a -> s{_cdId = a})---- | JSONP-cdCallback :: Lens' CoursesDelete (Maybe Text)-cdCallback-  = lens _cdCallback (\ s a -> s{_cdCallback = a})--instance GoogleRequest CoursesDelete where-        type Rs CoursesDelete = Empty-        type Scopes CoursesDelete =-             '["https://www.googleapis.com/auth/classroom.courses"]-        requestClient CoursesDelete'{..}-          = go _cdId _cdXgafv _cdUploadProtocol _cdAccessToken-              _cdUploadType-              _cdCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient (Proxy :: Proxy CoursesDeleteResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Get.hs
@@ -1,154 +0,0 @@-{-# 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.Get--- 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 course. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- the requested course or for access errors. * \`NOT_FOUND\` if no course--- exists with the requested ID.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.get@.-module Network.Google.Resource.Classroom.Courses.Get-    (-    -- * REST Resource-      CoursesGetResource--    -- * Creating a Request-    , coursesGet-    , CoursesGet--    -- * Request Lenses-    , cgXgafv-    , cgUploadProtocol-    , cgAccessToken-    , cgUploadType-    , cgId-    , cgCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.get@ method which the--- 'CoursesGet' request conforms to.-type CoursesGetResource =-     "v1" :>-       "courses" :>-         Capture "id" Text :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "callback" Text :>-                     QueryParam "alt" AltJSON :> Get '[JSON] Course---- | Returns a course. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- the requested course or for access errors. * \`NOT_FOUND\` if no course--- exists with the requested ID.------ /See:/ 'coursesGet' smart constructor.-data CoursesGet =-  CoursesGet'-    { _cgXgafv          :: !(Maybe Xgafv)-    , _cgUploadProtocol :: !(Maybe Text)-    , _cgAccessToken    :: !(Maybe Text)-    , _cgUploadType     :: !(Maybe Text)-    , _cgId             :: !Text-    , _cgCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cgXgafv'------ * 'cgUploadProtocol'------ * 'cgAccessToken'------ * 'cgUploadType'------ * 'cgId'------ * 'cgCallback'-coursesGet-    :: Text -- ^ 'cgId'-    -> CoursesGet-coursesGet pCgId_ =-  CoursesGet'-    { _cgXgafv = Nothing-    , _cgUploadProtocol = Nothing-    , _cgAccessToken = Nothing-    , _cgUploadType = Nothing-    , _cgId = pCgId_-    , _cgCallback = Nothing-    }----- | V1 error format.-cgXgafv :: Lens' CoursesGet (Maybe Xgafv)-cgXgafv = lens _cgXgafv (\ s a -> s{_cgXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-cgUploadProtocol :: Lens' CoursesGet (Maybe Text)-cgUploadProtocol-  = lens _cgUploadProtocol-      (\ s a -> s{_cgUploadProtocol = a})---- | OAuth access token.-cgAccessToken :: Lens' CoursesGet (Maybe Text)-cgAccessToken-  = lens _cgAccessToken-      (\ s a -> s{_cgAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-cgUploadType :: Lens' CoursesGet (Maybe Text)-cgUploadType-  = lens _cgUploadType (\ s a -> s{_cgUploadType = a})---- | Identifier of the course to return. This identifier can be either the--- Classroom-assigned identifier or an alias.-cgId :: Lens' CoursesGet Text-cgId = lens _cgId (\ s a -> s{_cgId = a})---- | JSONP-cgCallback :: Lens' CoursesGet (Maybe Text)-cgCallback-  = lens _cgCallback (\ s a -> s{_cgCallback = a})--instance GoogleRequest CoursesGet where-        type Rs CoursesGet = Course-        type Scopes CoursesGet =-             '["https://www.googleapis.com/auth/classroom.courses",-               "https://www.googleapis.com/auth/classroom.courses.readonly"]-        requestClient CoursesGet'{..}-          = go _cgId _cgXgafv _cgUploadProtocol _cgAccessToken-              _cgUploadType-              _cgCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient (Proxy :: Proxy CoursesGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/List.hs
@@ -1,224 +0,0 @@-{-# 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.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 courses that the requesting user is permitted to view,--- restricted to those that match the request. Returned courses are ordered--- by creation time, with the most recently created coming first. This--- method returns the following error codes: * \`PERMISSION_DENIED\` for--- access errors. * \`INVALID_ARGUMENT\` if the query argument is--- malformed. * \`NOT_FOUND\` if any users specified in the query arguments--- do not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.list@.-module Network.Google.Resource.Classroom.Courses.List-    (-    -- * REST Resource-      CoursesListResource--    -- * Creating a Request-    , coursesList-    , CoursesList--    -- * Request Lenses-    , clStudentId-    , clXgafv-    , clUploadProtocol-    , clAccessToken-    , clUploadType-    , clTeacherId-    , clPageToken-    , clPageSize-    , clCourseStates-    , clCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.list@ method which the--- 'CoursesList' request conforms to.-type CoursesListResource =-     "v1" :>-       "courses" :>-         QueryParam "studentId" Text :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "teacherId" Text :>-                     QueryParam "pageToken" Text :>-                       QueryParam "pageSize" (Textual Int32) :>-                         QueryParams "courseStates" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :>-                               Get '[JSON] ListCoursesResponse---- | Returns a list of courses that the requesting user is permitted to view,--- restricted to those that match the request. Returned courses are ordered--- by creation time, with the most recently created coming first. This--- method returns the following error codes: * \`PERMISSION_DENIED\` for--- access errors. * \`INVALID_ARGUMENT\` if the query argument is--- malformed. * \`NOT_FOUND\` if any users specified in the query arguments--- do not exist.------ /See:/ 'coursesList' smart constructor.-data CoursesList =-  CoursesList'-    { _clStudentId      :: !(Maybe Text)-    , _clXgafv          :: !(Maybe Xgafv)-    , _clUploadProtocol :: !(Maybe Text)-    , _clAccessToken    :: !(Maybe Text)-    , _clUploadType     :: !(Maybe Text)-    , _clTeacherId      :: !(Maybe Text)-    , _clPageToken      :: !(Maybe Text)-    , _clPageSize       :: !(Maybe (Textual Int32))-    , _clCourseStates   :: !(Maybe [Text])-    , _clCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'clStudentId'------ * 'clXgafv'------ * 'clUploadProtocol'------ * 'clAccessToken'------ * 'clUploadType'------ * 'clTeacherId'------ * 'clPageToken'------ * 'clPageSize'------ * 'clCourseStates'------ * 'clCallback'-coursesList-    :: CoursesList-coursesList =-  CoursesList'-    { _clStudentId = Nothing-    , _clXgafv = Nothing-    , _clUploadProtocol = Nothing-    , _clAccessToken = Nothing-    , _clUploadType = Nothing-    , _clTeacherId = Nothing-    , _clPageToken = Nothing-    , _clPageSize = Nothing-    , _clCourseStates = Nothing-    , _clCallback = Nothing-    }----- | Restricts returned courses to those having a student with the specified--- identifier. The identifier can be one of the following: * the numeric--- identifier for the user * the email address of the user * the string--- literal \`\"me\"\`, indicating the requesting user-clStudentId :: Lens' CoursesList (Maybe Text)-clStudentId-  = lens _clStudentId (\ s a -> s{_clStudentId = a})---- | V1 error format.-clXgafv :: Lens' CoursesList (Maybe Xgafv)-clXgafv = lens _clXgafv (\ s a -> s{_clXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-clUploadProtocol :: Lens' CoursesList (Maybe Text)-clUploadProtocol-  = lens _clUploadProtocol-      (\ s a -> s{_clUploadProtocol = a})---- | OAuth access token.-clAccessToken :: Lens' CoursesList (Maybe Text)-clAccessToken-  = lens _clAccessToken-      (\ s a -> s{_clAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-clUploadType :: Lens' CoursesList (Maybe Text)-clUploadType-  = lens _clUploadType (\ s a -> s{_clUploadType = a})---- | Restricts returned courses to those having a teacher with the specified--- identifier. The identifier can be one of the following: * the numeric--- identifier for the user * the email address of the user * the string--- literal \`\"me\"\`, indicating the requesting user-clTeacherId :: Lens' CoursesList (Maybe Text)-clTeacherId-  = lens _clTeacherId (\ s a -> s{_clTeacherId = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-clPageToken :: Lens' CoursesList (Maybe Text)-clPageToken-  = lens _clPageToken (\ s a -> s{_clPageToken = a})---- | Maximum number of items to return. Zero or unspecified indicates that--- the server may assign a maximum. The server may return fewer than the--- specified number of results.-clPageSize :: Lens' CoursesList (Maybe Int32)-clPageSize-  = lens _clPageSize (\ s a -> s{_clPageSize = a}) .-      mapping _Coerce---- | Restricts returned courses to those in one of the specified states The--- default value is ACTIVE, ARCHIVED, PROVISIONED, DECLINED.-clCourseStates :: Lens' CoursesList [Text]-clCourseStates-  = lens _clCourseStates-      (\ s a -> s{_clCourseStates = a})-      . _Default-      . _Coerce---- | JSONP-clCallback :: Lens' CoursesList (Maybe Text)-clCallback-  = lens _clCallback (\ s a -> s{_clCallback = a})--instance GoogleRequest CoursesList where-        type Rs CoursesList = ListCoursesResponse-        type Scopes CoursesList =-             '["https://www.googleapis.com/auth/classroom.courses",-               "https://www.googleapis.com/auth/classroom.courses.readonly"]-        requestClient CoursesList'{..}-          = go _clStudentId _clXgafv _clUploadProtocol-              _clAccessToken-              _clUploadType-              _clTeacherId-              _clPageToken-              _clPageSize-              (_clCourseStates ^. _Default)-              _clCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient (Proxy :: Proxy CoursesListResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Patch.hs
@@ -1,191 +0,0 @@-{-# 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.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 in a course. This method returns the--- following error codes: * \`PERMISSION_DENIED\` if the requesting user is--- not permitted to modify the requested course or for access errors. *--- \`NOT_FOUND\` if no course exists with the requested ID. *--- \`INVALID_ARGUMENT\` if invalid fields are specified in the update mask--- or if no update mask is supplied. * \`FAILED_PRECONDITION\` for the--- following request errors: * CourseNotModifiable------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.patch@.-module Network.Google.Resource.Classroom.Courses.Patch-    (-    -- * REST Resource-      CoursesPatchResource--    -- * Creating a Request-    , coursesPatch-    , CoursesPatch--    -- * Request Lenses-    , cpXgafv-    , cpUploadProtocol-    , cpUpdateMask-    , cpAccessToken-    , cpUploadType-    , cpPayload-    , cpId-    , cpCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.patch@ method which the--- 'CoursesPatch' request conforms to.-type CoursesPatchResource =-     "v1" :>-       "courses" :>-         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] Course :> Patch '[JSON] Course---- | Updates one or more fields in a course. This method returns the--- following error codes: * \`PERMISSION_DENIED\` if the requesting user is--- not permitted to modify the requested course or for access errors. *--- \`NOT_FOUND\` if no course exists with the requested ID. *--- \`INVALID_ARGUMENT\` if invalid fields are specified in the update mask--- or if no update mask is supplied. * \`FAILED_PRECONDITION\` for the--- following request errors: * CourseNotModifiable------ /See:/ 'coursesPatch' smart constructor.-data CoursesPatch =-  CoursesPatch'-    { _cpXgafv          :: !(Maybe Xgafv)-    , _cpUploadProtocol :: !(Maybe Text)-    , _cpUpdateMask     :: !(Maybe GFieldMask)-    , _cpAccessToken    :: !(Maybe Text)-    , _cpUploadType     :: !(Maybe Text)-    , _cpPayload        :: !Course-    , _cpId             :: !Text-    , _cpCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesPatch' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpXgafv'------ * 'cpUploadProtocol'------ * 'cpUpdateMask'------ * 'cpAccessToken'------ * 'cpUploadType'------ * 'cpPayload'------ * 'cpId'------ * 'cpCallback'-coursesPatch-    :: Course -- ^ 'cpPayload'-    -> Text -- ^ 'cpId'-    -> CoursesPatch-coursesPatch pCpPayload_ pCpId_ =-  CoursesPatch'-    { _cpXgafv = Nothing-    , _cpUploadProtocol = Nothing-    , _cpUpdateMask = Nothing-    , _cpAccessToken = Nothing-    , _cpUploadType = Nothing-    , _cpPayload = pCpPayload_-    , _cpId = pCpId_-    , _cpCallback = Nothing-    }----- | V1 error format.-cpXgafv :: Lens' CoursesPatch (Maybe Xgafv)-cpXgafv = lens _cpXgafv (\ s a -> s{_cpXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-cpUploadProtocol :: Lens' CoursesPatch (Maybe Text)-cpUploadProtocol-  = lens _cpUploadProtocol-      (\ s a -> s{_cpUploadProtocol = a})---- | Mask that identifies which fields on the course to update. This field is--- required to do an update. The update will fail if invalid fields are--- specified. The following fields are valid: * \`name\` * \`section\` *--- \`descriptionHeading\` * \`description\` * \`room\` * \`courseState\` *--- \`ownerId\` Note: patches to ownerId are treated as being effective--- immediately, but in practice it may take some time for the ownership--- transfer of all affected resources to complete. When set in a query--- parameter, this field should be specified as \`updateMask=,,...\`-cpUpdateMask :: Lens' CoursesPatch (Maybe GFieldMask)-cpUpdateMask-  = lens _cpUpdateMask (\ s a -> s{_cpUpdateMask = a})---- | OAuth access token.-cpAccessToken :: Lens' CoursesPatch (Maybe Text)-cpAccessToken-  = lens _cpAccessToken-      (\ s a -> s{_cpAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-cpUploadType :: Lens' CoursesPatch (Maybe Text)-cpUploadType-  = lens _cpUploadType (\ s a -> s{_cpUploadType = a})---- | Multipart request metadata.-cpPayload :: Lens' CoursesPatch Course-cpPayload-  = lens _cpPayload (\ s a -> s{_cpPayload = a})---- | Identifier of the course to update. This identifier can be either the--- Classroom-assigned identifier or an alias.-cpId :: Lens' CoursesPatch Text-cpId = lens _cpId (\ s a -> s{_cpId = a})---- | JSONP-cpCallback :: Lens' CoursesPatch (Maybe Text)-cpCallback-  = lens _cpCallback (\ s a -> s{_cpCallback = a})--instance GoogleRequest CoursesPatch where-        type Rs CoursesPatch = Course-        type Scopes CoursesPatch =-             '["https://www.googleapis.com/auth/classroom.courses"]-        requestClient CoursesPatch'{..}-          = go _cpId _cpXgafv _cpUploadProtocol _cpUpdateMask-              _cpAccessToken-              _cpUploadType-              _cpCallback-              (Just AltJSON)-              _cpPayload-              classroomService-          where go-                  = buildClient (Proxy :: Proxy CoursesPatchResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Students/Create.hs
@@ -1,199 +0,0 @@-{-# 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.Students.Create--- 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)------ Adds a user as a student of a course. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to create students in this course or for access errors. *--- \`NOT_FOUND\` if the requested course ID does not exist. *--- \`FAILED_PRECONDITION\` if the requested user\'s account is disabled,--- for the following request errors: * CourseMemberLimitReached *--- CourseNotModifiable * UserGroupsMembershipLimitReached *--- \`ALREADY_EXISTS\` if the user is already a student or teacher in the--- course.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.create@.-module Network.Google.Resource.Classroom.Courses.Students.Create-    (-    -- * REST Resource-      CoursesStudentsCreateResource--    -- * Creating a Request-    , coursesStudentsCreate-    , CoursesStudentsCreate--    -- * Request Lenses-    , cscXgafv-    , cscUploadProtocol-    , cscCourseId-    , cscAccessToken-    , cscUploadType-    , cscPayload-    , cscEnrollmentCode-    , cscCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.students.create@ method which the--- 'CoursesStudentsCreate' request conforms to.-type CoursesStudentsCreateResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "students" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "enrollmentCode" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :>-                           ReqBody '[JSON] Student :> Post '[JSON] Student---- | Adds a user as a student of a course. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to create students in this course or for access errors. *--- \`NOT_FOUND\` if the requested course ID does not exist. *--- \`FAILED_PRECONDITION\` if the requested user\'s account is disabled,--- for the following request errors: * CourseMemberLimitReached *--- CourseNotModifiable * UserGroupsMembershipLimitReached *--- \`ALREADY_EXISTS\` if the user is already a student or teacher in the--- course.------ /See:/ 'coursesStudentsCreate' smart constructor.-data CoursesStudentsCreate =-  CoursesStudentsCreate'-    { _cscXgafv          :: !(Maybe Xgafv)-    , _cscUploadProtocol :: !(Maybe Text)-    , _cscCourseId       :: !Text-    , _cscAccessToken    :: !(Maybe Text)-    , _cscUploadType     :: !(Maybe Text)-    , _cscPayload        :: !Student-    , _cscEnrollmentCode :: !(Maybe Text)-    , _cscCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesStudentsCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cscXgafv'------ * 'cscUploadProtocol'------ * 'cscCourseId'------ * 'cscAccessToken'------ * 'cscUploadType'------ * 'cscPayload'------ * 'cscEnrollmentCode'------ * 'cscCallback'-coursesStudentsCreate-    :: Text -- ^ 'cscCourseId'-    -> Student -- ^ 'cscPayload'-    -> CoursesStudentsCreate-coursesStudentsCreate pCscCourseId_ pCscPayload_ =-  CoursesStudentsCreate'-    { _cscXgafv = Nothing-    , _cscUploadProtocol = Nothing-    , _cscCourseId = pCscCourseId_-    , _cscAccessToken = Nothing-    , _cscUploadType = Nothing-    , _cscPayload = pCscPayload_-    , _cscEnrollmentCode = Nothing-    , _cscCallback = Nothing-    }----- | V1 error format.-cscXgafv :: Lens' CoursesStudentsCreate (Maybe Xgafv)-cscXgafv = lens _cscXgafv (\ s a -> s{_cscXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-cscUploadProtocol :: Lens' CoursesStudentsCreate (Maybe Text)-cscUploadProtocol-  = lens _cscUploadProtocol-      (\ s a -> s{_cscUploadProtocol = a})---- | Identifier of the course to create the student in. This identifier can--- be either the Classroom-assigned identifier or an alias.-cscCourseId :: Lens' CoursesStudentsCreate Text-cscCourseId-  = lens _cscCourseId (\ s a -> s{_cscCourseId = a})---- | OAuth access token.-cscAccessToken :: Lens' CoursesStudentsCreate (Maybe Text)-cscAccessToken-  = lens _cscAccessToken-      (\ s a -> s{_cscAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-cscUploadType :: Lens' CoursesStudentsCreate (Maybe Text)-cscUploadType-  = lens _cscUploadType-      (\ s a -> s{_cscUploadType = a})---- | Multipart request metadata.-cscPayload :: Lens' CoursesStudentsCreate Student-cscPayload-  = lens _cscPayload (\ s a -> s{_cscPayload = a})---- | Enrollment code of the course to create the student in. This code is--- required if userId corresponds to the requesting user; it may be omitted--- if the requesting user has administrative permissions to create students--- for any user.-cscEnrollmentCode :: Lens' CoursesStudentsCreate (Maybe Text)-cscEnrollmentCode-  = lens _cscEnrollmentCode-      (\ s a -> s{_cscEnrollmentCode = a})---- | JSONP-cscCallback :: Lens' CoursesStudentsCreate (Maybe Text)-cscCallback-  = lens _cscCallback (\ s a -> s{_cscCallback = a})--instance GoogleRequest CoursesStudentsCreate where-        type Rs CoursesStudentsCreate = Student-        type Scopes CoursesStudentsCreate =-             '["https://www.googleapis.com/auth/classroom.profile.emails",-               "https://www.googleapis.com/auth/classroom.profile.photos",-               "https://www.googleapis.com/auth/classroom.rosters"]-        requestClient CoursesStudentsCreate'{..}-          = go _cscCourseId _cscXgafv _cscUploadProtocol-              _cscAccessToken-              _cscUploadType-              _cscEnrollmentCode-              _cscCallback-              (Just AltJSON)-              _cscPayload-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesStudentsCreateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Students/Delete.hs
@@ -1,175 +0,0 @@-{-# 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.Students.Delete--- 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)------ Deletes a student of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to delete students of this course or for access errors. * \`NOT_FOUND\`--- if no student of this course has the requested ID or if the course does--- not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.delete@.-module Network.Google.Resource.Classroom.Courses.Students.Delete-    (-    -- * REST Resource-      CoursesStudentsDeleteResource--    -- * Creating a Request-    , coursesStudentsDelete-    , CoursesStudentsDelete--    -- * Request Lenses-    , csdXgafv-    , csdUploadProtocol-    , csdCourseId-    , csdAccessToken-    , csdUploadType-    , csdUserId-    , csdCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.students.delete@ method which the--- 'CoursesStudentsDelete' request conforms to.-type CoursesStudentsDeleteResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "students" :>-             Capture "userId" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes a student of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to delete students of this course or for access errors. * \`NOT_FOUND\`--- if no student of this course has the requested ID or if the course does--- not exist.------ /See:/ 'coursesStudentsDelete' smart constructor.-data CoursesStudentsDelete =-  CoursesStudentsDelete'-    { _csdXgafv          :: !(Maybe Xgafv)-    , _csdUploadProtocol :: !(Maybe Text)-    , _csdCourseId       :: !Text-    , _csdAccessToken    :: !(Maybe Text)-    , _csdUploadType     :: !(Maybe Text)-    , _csdUserId         :: !Text-    , _csdCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesStudentsDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csdXgafv'------ * 'csdUploadProtocol'------ * 'csdCourseId'------ * 'csdAccessToken'------ * 'csdUploadType'------ * 'csdUserId'------ * 'csdCallback'-coursesStudentsDelete-    :: Text -- ^ 'csdCourseId'-    -> Text -- ^ 'csdUserId'-    -> CoursesStudentsDelete-coursesStudentsDelete pCsdCourseId_ pCsdUserId_ =-  CoursesStudentsDelete'-    { _csdXgafv = Nothing-    , _csdUploadProtocol = Nothing-    , _csdCourseId = pCsdCourseId_-    , _csdAccessToken = Nothing-    , _csdUploadType = Nothing-    , _csdUserId = pCsdUserId_-    , _csdCallback = Nothing-    }----- | V1 error format.-csdXgafv :: Lens' CoursesStudentsDelete (Maybe Xgafv)-csdXgafv = lens _csdXgafv (\ s a -> s{_csdXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-csdUploadProtocol :: Lens' CoursesStudentsDelete (Maybe Text)-csdUploadProtocol-  = lens _csdUploadProtocol-      (\ s a -> s{_csdUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-csdCourseId :: Lens' CoursesStudentsDelete Text-csdCourseId-  = lens _csdCourseId (\ s a -> s{_csdCourseId = a})---- | OAuth access token.-csdAccessToken :: Lens' CoursesStudentsDelete (Maybe Text)-csdAccessToken-  = lens _csdAccessToken-      (\ s a -> s{_csdAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-csdUploadType :: Lens' CoursesStudentsDelete (Maybe Text)-csdUploadType-  = lens _csdUploadType-      (\ s a -> s{_csdUploadType = a})---- | Identifier of the student to delete. The identifier can be one of the--- following: * the numeric identifier for the user * the email address of--- the user * the string literal \`\"me\"\`, indicating the requesting user-csdUserId :: Lens' CoursesStudentsDelete Text-csdUserId-  = lens _csdUserId (\ s a -> s{_csdUserId = a})---- | JSONP-csdCallback :: Lens' CoursesStudentsDelete (Maybe Text)-csdCallback-  = lens _csdCallback (\ s a -> s{_csdCallback = a})--instance GoogleRequest CoursesStudentsDelete where-        type Rs CoursesStudentsDelete = Empty-        type Scopes CoursesStudentsDelete =-             '["https://www.googleapis.com/auth/classroom.rosters"]-        requestClient CoursesStudentsDelete'{..}-          = go _csdCourseId _csdUserId _csdXgafv-              _csdUploadProtocol-              _csdAccessToken-              _csdUploadType-              _csdCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesStudentsDeleteResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Students/Get.hs
@@ -1,178 +0,0 @@-{-# 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.Students.Get--- 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 student of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to view students of this course or for access errors. * \`NOT_FOUND\` if--- no student of this course has the requested ID or if the course does not--- exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.get@.-module Network.Google.Resource.Classroom.Courses.Students.Get-    (-    -- * REST Resource-      CoursesStudentsGetResource--    -- * Creating a Request-    , coursesStudentsGet-    , CoursesStudentsGet--    -- * Request Lenses-    , csgXgafv-    , csgUploadProtocol-    , csgCourseId-    , csgAccessToken-    , csgUploadType-    , csgUserId-    , csgCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.students.get@ method which the--- 'CoursesStudentsGet' request conforms to.-type CoursesStudentsGetResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "students" :>-             Capture "userId" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Get '[JSON] Student---- | Returns a student of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to view students of this course or for access errors. * \`NOT_FOUND\` if--- no student of this course has the requested ID or if the course does not--- exist.------ /See:/ 'coursesStudentsGet' smart constructor.-data CoursesStudentsGet =-  CoursesStudentsGet'-    { _csgXgafv          :: !(Maybe Xgafv)-    , _csgUploadProtocol :: !(Maybe Text)-    , _csgCourseId       :: !Text-    , _csgAccessToken    :: !(Maybe Text)-    , _csgUploadType     :: !(Maybe Text)-    , _csgUserId         :: !Text-    , _csgCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesStudentsGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csgXgafv'------ * 'csgUploadProtocol'------ * 'csgCourseId'------ * 'csgAccessToken'------ * 'csgUploadType'------ * 'csgUserId'------ * 'csgCallback'-coursesStudentsGet-    :: Text -- ^ 'csgCourseId'-    -> Text -- ^ 'csgUserId'-    -> CoursesStudentsGet-coursesStudentsGet pCsgCourseId_ pCsgUserId_ =-  CoursesStudentsGet'-    { _csgXgafv = Nothing-    , _csgUploadProtocol = Nothing-    , _csgCourseId = pCsgCourseId_-    , _csgAccessToken = Nothing-    , _csgUploadType = Nothing-    , _csgUserId = pCsgUserId_-    , _csgCallback = Nothing-    }----- | V1 error format.-csgXgafv :: Lens' CoursesStudentsGet (Maybe Xgafv)-csgXgafv = lens _csgXgafv (\ s a -> s{_csgXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-csgUploadProtocol :: Lens' CoursesStudentsGet (Maybe Text)-csgUploadProtocol-  = lens _csgUploadProtocol-      (\ s a -> s{_csgUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-csgCourseId :: Lens' CoursesStudentsGet Text-csgCourseId-  = lens _csgCourseId (\ s a -> s{_csgCourseId = a})---- | OAuth access token.-csgAccessToken :: Lens' CoursesStudentsGet (Maybe Text)-csgAccessToken-  = lens _csgAccessToken-      (\ s a -> s{_csgAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-csgUploadType :: Lens' CoursesStudentsGet (Maybe Text)-csgUploadType-  = lens _csgUploadType-      (\ s a -> s{_csgUploadType = a})---- | Identifier of the student to return. The identifier can be one of the--- following: * the numeric identifier for the user * the email address of--- the user * the string literal \`\"me\"\`, indicating the requesting user-csgUserId :: Lens' CoursesStudentsGet Text-csgUserId-  = lens _csgUserId (\ s a -> s{_csgUserId = a})---- | JSONP-csgCallback :: Lens' CoursesStudentsGet (Maybe Text)-csgCallback-  = lens _csgCallback (\ s a -> s{_csgCallback = a})--instance GoogleRequest CoursesStudentsGet where-        type Rs CoursesStudentsGet = Student-        type Scopes CoursesStudentsGet =-             '["https://www.googleapis.com/auth/classroom.profile.emails",-               "https://www.googleapis.com/auth/classroom.profile.photos",-               "https://www.googleapis.com/auth/classroom.rosters",-               "https://www.googleapis.com/auth/classroom.rosters.readonly"]-        requestClient CoursesStudentsGet'{..}-          = go _csgCourseId _csgUserId _csgXgafv-              _csgUploadProtocol-              _csgAccessToken-              _csgUploadType-              _csgCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesStudentsGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Students/List.hs
@@ -1,190 +0,0 @@-{-# 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.Students.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 students of this course that the requester is--- permitted to view. This method returns the following error codes: *--- \`NOT_FOUND\` if the course does not exist. * \`PERMISSION_DENIED\` for--- access errors.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.list@.-module Network.Google.Resource.Classroom.Courses.Students.List-    (-    -- * REST Resource-      CoursesStudentsListResource--    -- * Creating a Request-    , coursesStudentsList-    , CoursesStudentsList--    -- * Request Lenses-    , cslXgafv-    , cslUploadProtocol-    , cslCourseId-    , cslAccessToken-    , cslUploadType-    , cslPageToken-    , cslPageSize-    , cslCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.students.list@ method which the--- 'CoursesStudentsList' request conforms to.-type CoursesStudentsListResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "students" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "pageToken" Text :>-                       QueryParam "pageSize" (Textual Int32) :>-                         QueryParam "callback" Text :>-                           QueryParam "alt" AltJSON :>-                             Get '[JSON] ListStudentsResponse---- | Returns a list of students of this course that the requester is--- permitted to view. This method returns the following error codes: *--- \`NOT_FOUND\` if the course does not exist. * \`PERMISSION_DENIED\` for--- access errors.------ /See:/ 'coursesStudentsList' smart constructor.-data CoursesStudentsList =-  CoursesStudentsList'-    { _cslXgafv          :: !(Maybe Xgafv)-    , _cslUploadProtocol :: !(Maybe Text)-    , _cslCourseId       :: !Text-    , _cslAccessToken    :: !(Maybe Text)-    , _cslUploadType     :: !(Maybe Text)-    , _cslPageToken      :: !(Maybe Text)-    , _cslPageSize       :: !(Maybe (Textual Int32))-    , _cslCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesStudentsList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cslXgafv'------ * 'cslUploadProtocol'------ * 'cslCourseId'------ * 'cslAccessToken'------ * 'cslUploadType'------ * 'cslPageToken'------ * 'cslPageSize'------ * 'cslCallback'-coursesStudentsList-    :: Text -- ^ 'cslCourseId'-    -> CoursesStudentsList-coursesStudentsList pCslCourseId_ =-  CoursesStudentsList'-    { _cslXgafv = Nothing-    , _cslUploadProtocol = Nothing-    , _cslCourseId = pCslCourseId_-    , _cslAccessToken = Nothing-    , _cslUploadType = Nothing-    , _cslPageToken = Nothing-    , _cslPageSize = Nothing-    , _cslCallback = Nothing-    }----- | V1 error format.-cslXgafv :: Lens' CoursesStudentsList (Maybe Xgafv)-cslXgafv = lens _cslXgafv (\ s a -> s{_cslXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-cslUploadProtocol :: Lens' CoursesStudentsList (Maybe Text)-cslUploadProtocol-  = lens _cslUploadProtocol-      (\ s a -> s{_cslUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-cslCourseId :: Lens' CoursesStudentsList Text-cslCourseId-  = lens _cslCourseId (\ s a -> s{_cslCourseId = a})---- | OAuth access token.-cslAccessToken :: Lens' CoursesStudentsList (Maybe Text)-cslAccessToken-  = lens _cslAccessToken-      (\ s a -> s{_cslAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-cslUploadType :: Lens' CoursesStudentsList (Maybe Text)-cslUploadType-  = lens _cslUploadType-      (\ s a -> s{_cslUploadType = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-cslPageToken :: Lens' CoursesStudentsList (Maybe Text)-cslPageToken-  = lens _cslPageToken (\ s a -> s{_cslPageToken = a})---- | Maximum number of items to return. Zero means no maximum. The server may--- return fewer than the specified number of results.-cslPageSize :: Lens' CoursesStudentsList (Maybe Int32)-cslPageSize-  = lens _cslPageSize (\ s a -> s{_cslPageSize = a}) .-      mapping _Coerce---- | JSONP-cslCallback :: Lens' CoursesStudentsList (Maybe Text)-cslCallback-  = lens _cslCallback (\ s a -> s{_cslCallback = a})--instance GoogleRequest CoursesStudentsList where-        type Rs CoursesStudentsList = ListStudentsResponse-        type Scopes CoursesStudentsList =-             '["https://www.googleapis.com/auth/classroom.profile.emails",-               "https://www.googleapis.com/auth/classroom.profile.photos",-               "https://www.googleapis.com/auth/classroom.rosters",-               "https://www.googleapis.com/auth/classroom.rosters.readonly"]-        requestClient CoursesStudentsList'{..}-          = go _cslCourseId _cslXgafv _cslUploadProtocol-              _cslAccessToken-              _cslUploadType-              _cslPageToken-              _cslPageSize-              _cslCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesStudentsListResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Teachers/Create.hs
@@ -1,183 +0,0 @@-{-# 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.Teachers.Create--- 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)------ Creates a teacher of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to create teachers in this course or for access errors. * \`NOT_FOUND\`--- if the requested course ID does not exist. * \`FAILED_PRECONDITION\` if--- the requested user\'s account is disabled, for the following request--- errors: * CourseMemberLimitReached * CourseNotModifiable *--- CourseTeacherLimitReached * UserGroupsMembershipLimitReached *--- \`ALREADY_EXISTS\` if the user is already a teacher or student in the--- course.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.create@.-module Network.Google.Resource.Classroom.Courses.Teachers.Create-    (-    -- * REST Resource-      CoursesTeachersCreateResource--    -- * Creating a Request-    , coursesTeachersCreate-    , CoursesTeachersCreate--    -- * Request Lenses-    , ctcXgafv-    , ctcUploadProtocol-    , ctcCourseId-    , ctcAccessToken-    , ctcUploadType-    , ctcPayload-    , ctcCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.teachers.create@ method which the--- 'CoursesTeachersCreate' request conforms to.-type CoursesTeachersCreateResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "teachers" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "callback" Text :>-                       QueryParam "alt" AltJSON :>-                         ReqBody '[JSON] Teacher :> Post '[JSON] Teacher---- | Creates a teacher of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to create teachers in this course or for access errors. * \`NOT_FOUND\`--- if the requested course ID does not exist. * \`FAILED_PRECONDITION\` if--- the requested user\'s account is disabled, for the following request--- errors: * CourseMemberLimitReached * CourseNotModifiable *--- CourseTeacherLimitReached * UserGroupsMembershipLimitReached *--- \`ALREADY_EXISTS\` if the user is already a teacher or student in the--- course.------ /See:/ 'coursesTeachersCreate' smart constructor.-data CoursesTeachersCreate =-  CoursesTeachersCreate'-    { _ctcXgafv          :: !(Maybe Xgafv)-    , _ctcUploadProtocol :: !(Maybe Text)-    , _ctcCourseId       :: !Text-    , _ctcAccessToken    :: !(Maybe Text)-    , _ctcUploadType     :: !(Maybe Text)-    , _ctcPayload        :: !Teacher-    , _ctcCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesTeachersCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctcXgafv'------ * 'ctcUploadProtocol'------ * 'ctcCourseId'------ * 'ctcAccessToken'------ * 'ctcUploadType'------ * 'ctcPayload'------ * 'ctcCallback'-coursesTeachersCreate-    :: Text -- ^ 'ctcCourseId'-    -> Teacher -- ^ 'ctcPayload'-    -> CoursesTeachersCreate-coursesTeachersCreate pCtcCourseId_ pCtcPayload_ =-  CoursesTeachersCreate'-    { _ctcXgafv = Nothing-    , _ctcUploadProtocol = Nothing-    , _ctcCourseId = pCtcCourseId_-    , _ctcAccessToken = Nothing-    , _ctcUploadType = Nothing-    , _ctcPayload = pCtcPayload_-    , _ctcCallback = Nothing-    }----- | V1 error format.-ctcXgafv :: Lens' CoursesTeachersCreate (Maybe Xgafv)-ctcXgafv = lens _ctcXgafv (\ s a -> s{_ctcXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ctcUploadProtocol :: Lens' CoursesTeachersCreate (Maybe Text)-ctcUploadProtocol-  = lens _ctcUploadProtocol-      (\ s a -> s{_ctcUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ctcCourseId :: Lens' CoursesTeachersCreate Text-ctcCourseId-  = lens _ctcCourseId (\ s a -> s{_ctcCourseId = a})---- | OAuth access token.-ctcAccessToken :: Lens' CoursesTeachersCreate (Maybe Text)-ctcAccessToken-  = lens _ctcAccessToken-      (\ s a -> s{_ctcAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ctcUploadType :: Lens' CoursesTeachersCreate (Maybe Text)-ctcUploadType-  = lens _ctcUploadType-      (\ s a -> s{_ctcUploadType = a})---- | Multipart request metadata.-ctcPayload :: Lens' CoursesTeachersCreate Teacher-ctcPayload-  = lens _ctcPayload (\ s a -> s{_ctcPayload = a})---- | JSONP-ctcCallback :: Lens' CoursesTeachersCreate (Maybe Text)-ctcCallback-  = lens _ctcCallback (\ s a -> s{_ctcCallback = a})--instance GoogleRequest CoursesTeachersCreate where-        type Rs CoursesTeachersCreate = Teacher-        type Scopes CoursesTeachersCreate =-             '["https://www.googleapis.com/auth/classroom.profile.emails",-               "https://www.googleapis.com/auth/classroom.profile.photos",-               "https://www.googleapis.com/auth/classroom.rosters"]-        requestClient CoursesTeachersCreate'{..}-          = go _ctcCourseId _ctcXgafv _ctcUploadProtocol-              _ctcAccessToken-              _ctcUploadType-              _ctcCallback-              (Just AltJSON)-              _ctcPayload-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesTeachersCreateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Teachers/Delete.hs
@@ -1,178 +0,0 @@-{-# 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.Teachers.Delete--- 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)------ Deletes a teacher of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to delete teachers of this course or for access errors. * \`NOT_FOUND\`--- if no teacher of this course has the requested ID or if the course does--- not exist. * \`FAILED_PRECONDITION\` if the requested ID belongs to the--- primary teacher of this course.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.delete@.-module Network.Google.Resource.Classroom.Courses.Teachers.Delete-    (-    -- * REST Resource-      CoursesTeachersDeleteResource--    -- * Creating a Request-    , coursesTeachersDelete-    , CoursesTeachersDelete--    -- * Request Lenses-    , ctdtXgafv-    , ctdtUploadProtocol-    , ctdtCourseId-    , ctdtAccessToken-    , ctdtUploadType-    , ctdtUserId-    , ctdtCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.teachers.delete@ method which the--- 'CoursesTeachersDelete' request conforms to.-type CoursesTeachersDeleteResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "teachers" :>-             Capture "userId" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes a teacher of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to delete teachers of this course or for access errors. * \`NOT_FOUND\`--- if no teacher of this course has the requested ID or if the course does--- not exist. * \`FAILED_PRECONDITION\` if the requested ID belongs to the--- primary teacher of this course.------ /See:/ 'coursesTeachersDelete' smart constructor.-data CoursesTeachersDelete =-  CoursesTeachersDelete'-    { _ctdtXgafv          :: !(Maybe Xgafv)-    , _ctdtUploadProtocol :: !(Maybe Text)-    , _ctdtCourseId       :: !Text-    , _ctdtAccessToken    :: !(Maybe Text)-    , _ctdtUploadType     :: !(Maybe Text)-    , _ctdtUserId         :: !Text-    , _ctdtCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesTeachersDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctdtXgafv'------ * 'ctdtUploadProtocol'------ * 'ctdtCourseId'------ * 'ctdtAccessToken'------ * 'ctdtUploadType'------ * 'ctdtUserId'------ * 'ctdtCallback'-coursesTeachersDelete-    :: Text -- ^ 'ctdtCourseId'-    -> Text -- ^ 'ctdtUserId'-    -> CoursesTeachersDelete-coursesTeachersDelete pCtdtCourseId_ pCtdtUserId_ =-  CoursesTeachersDelete'-    { _ctdtXgafv = Nothing-    , _ctdtUploadProtocol = Nothing-    , _ctdtCourseId = pCtdtCourseId_-    , _ctdtAccessToken = Nothing-    , _ctdtUploadType = Nothing-    , _ctdtUserId = pCtdtUserId_-    , _ctdtCallback = Nothing-    }----- | V1 error format.-ctdtXgafv :: Lens' CoursesTeachersDelete (Maybe Xgafv)-ctdtXgafv-  = lens _ctdtXgafv (\ s a -> s{_ctdtXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ctdtUploadProtocol :: Lens' CoursesTeachersDelete (Maybe Text)-ctdtUploadProtocol-  = lens _ctdtUploadProtocol-      (\ s a -> s{_ctdtUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ctdtCourseId :: Lens' CoursesTeachersDelete Text-ctdtCourseId-  = lens _ctdtCourseId (\ s a -> s{_ctdtCourseId = a})---- | OAuth access token.-ctdtAccessToken :: Lens' CoursesTeachersDelete (Maybe Text)-ctdtAccessToken-  = lens _ctdtAccessToken-      (\ s a -> s{_ctdtAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ctdtUploadType :: Lens' CoursesTeachersDelete (Maybe Text)-ctdtUploadType-  = lens _ctdtUploadType-      (\ s a -> s{_ctdtUploadType = a})---- | Identifier of the teacher to delete. The identifier can be one of the--- following: * the numeric identifier for the user * the email address of--- the user * the string literal \`\"me\"\`, indicating the requesting user-ctdtUserId :: Lens' CoursesTeachersDelete Text-ctdtUserId-  = lens _ctdtUserId (\ s a -> s{_ctdtUserId = a})---- | JSONP-ctdtCallback :: Lens' CoursesTeachersDelete (Maybe Text)-ctdtCallback-  = lens _ctdtCallback (\ s a -> s{_ctdtCallback = a})--instance GoogleRequest CoursesTeachersDelete where-        type Rs CoursesTeachersDelete = Empty-        type Scopes CoursesTeachersDelete =-             '["https://www.googleapis.com/auth/classroom.rosters"]-        requestClient CoursesTeachersDelete'{..}-          = go _ctdtCourseId _ctdtUserId _ctdtXgafv-              _ctdtUploadProtocol-              _ctdtAccessToken-              _ctdtUploadType-              _ctdtCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesTeachersDeleteResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Teachers/Get.hs
@@ -1,179 +0,0 @@-{-# 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.Teachers.Get--- 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 teacher of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to view teachers of this course or for access errors. * \`NOT_FOUND\` if--- no teacher of this course has the requested ID or if the course does not--- exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.get@.-module Network.Google.Resource.Classroom.Courses.Teachers.Get-    (-    -- * REST Resource-      CoursesTeachersGetResource--    -- * Creating a Request-    , coursesTeachersGet-    , CoursesTeachersGet--    -- * Request Lenses-    , ctgtXgafv-    , ctgtUploadProtocol-    , ctgtCourseId-    , ctgtAccessToken-    , ctgtUploadType-    , ctgtUserId-    , ctgtCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.teachers.get@ method which the--- 'CoursesTeachersGet' request conforms to.-type CoursesTeachersGetResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "teachers" :>-             Capture "userId" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Get '[JSON] Teacher---- | Returns a teacher of a course. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted--- to view teachers of this course or for access errors. * \`NOT_FOUND\` if--- no teacher of this course has the requested ID or if the course does not--- exist.------ /See:/ 'coursesTeachersGet' smart constructor.-data CoursesTeachersGet =-  CoursesTeachersGet'-    { _ctgtXgafv          :: !(Maybe Xgafv)-    , _ctgtUploadProtocol :: !(Maybe Text)-    , _ctgtCourseId       :: !Text-    , _ctgtAccessToken    :: !(Maybe Text)-    , _ctgtUploadType     :: !(Maybe Text)-    , _ctgtUserId         :: !Text-    , _ctgtCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesTeachersGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctgtXgafv'------ * 'ctgtUploadProtocol'------ * 'ctgtCourseId'------ * 'ctgtAccessToken'------ * 'ctgtUploadType'------ * 'ctgtUserId'------ * 'ctgtCallback'-coursesTeachersGet-    :: Text -- ^ 'ctgtCourseId'-    -> Text -- ^ 'ctgtUserId'-    -> CoursesTeachersGet-coursesTeachersGet pCtgtCourseId_ pCtgtUserId_ =-  CoursesTeachersGet'-    { _ctgtXgafv = Nothing-    , _ctgtUploadProtocol = Nothing-    , _ctgtCourseId = pCtgtCourseId_-    , _ctgtAccessToken = Nothing-    , _ctgtUploadType = Nothing-    , _ctgtUserId = pCtgtUserId_-    , _ctgtCallback = Nothing-    }----- | V1 error format.-ctgtXgafv :: Lens' CoursesTeachersGet (Maybe Xgafv)-ctgtXgafv-  = lens _ctgtXgafv (\ s a -> s{_ctgtXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ctgtUploadProtocol :: Lens' CoursesTeachersGet (Maybe Text)-ctgtUploadProtocol-  = lens _ctgtUploadProtocol-      (\ s a -> s{_ctgtUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ctgtCourseId :: Lens' CoursesTeachersGet Text-ctgtCourseId-  = lens _ctgtCourseId (\ s a -> s{_ctgtCourseId = a})---- | OAuth access token.-ctgtAccessToken :: Lens' CoursesTeachersGet (Maybe Text)-ctgtAccessToken-  = lens _ctgtAccessToken-      (\ s a -> s{_ctgtAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ctgtUploadType :: Lens' CoursesTeachersGet (Maybe Text)-ctgtUploadType-  = lens _ctgtUploadType-      (\ s a -> s{_ctgtUploadType = a})---- | Identifier of the teacher to return. The identifier can be one of the--- following: * the numeric identifier for the user * the email address of--- the user * the string literal \`\"me\"\`, indicating the requesting user-ctgtUserId :: Lens' CoursesTeachersGet Text-ctgtUserId-  = lens _ctgtUserId (\ s a -> s{_ctgtUserId = a})---- | JSONP-ctgtCallback :: Lens' CoursesTeachersGet (Maybe Text)-ctgtCallback-  = lens _ctgtCallback (\ s a -> s{_ctgtCallback = a})--instance GoogleRequest CoursesTeachersGet where-        type Rs CoursesTeachersGet = Teacher-        type Scopes CoursesTeachersGet =-             '["https://www.googleapis.com/auth/classroom.profile.emails",-               "https://www.googleapis.com/auth/classroom.profile.photos",-               "https://www.googleapis.com/auth/classroom.rosters",-               "https://www.googleapis.com/auth/classroom.rosters.readonly"]-        requestClient CoursesTeachersGet'{..}-          = go _ctgtCourseId _ctgtUserId _ctgtXgafv-              _ctgtUploadProtocol-              _ctgtAccessToken-              _ctgtUploadType-              _ctgtCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesTeachersGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Teachers/List.hs
@@ -1,192 +0,0 @@-{-# 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.Teachers.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 teachers of this course that the requester is--- permitted to view. This method returns the following error codes: *--- \`NOT_FOUND\` if the course does not exist. * \`PERMISSION_DENIED\` for--- access errors.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.list@.-module Network.Google.Resource.Classroom.Courses.Teachers.List-    (-    -- * REST Resource-      CoursesTeachersListResource--    -- * Creating a Request-    , coursesTeachersList-    , CoursesTeachersList--    -- * Request Lenses-    , ctltXgafv-    , ctltUploadProtocol-    , ctltCourseId-    , ctltAccessToken-    , ctltUploadType-    , ctltPageToken-    , ctltPageSize-    , ctltCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.teachers.list@ method which the--- 'CoursesTeachersList' request conforms to.-type CoursesTeachersListResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "teachers" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "pageToken" Text :>-                       QueryParam "pageSize" (Textual Int32) :>-                         QueryParam "callback" Text :>-                           QueryParam "alt" AltJSON :>-                             Get '[JSON] ListTeachersResponse---- | Returns a list of teachers of this course that the requester is--- permitted to view. This method returns the following error codes: *--- \`NOT_FOUND\` if the course does not exist. * \`PERMISSION_DENIED\` for--- access errors.------ /See:/ 'coursesTeachersList' smart constructor.-data CoursesTeachersList =-  CoursesTeachersList'-    { _ctltXgafv          :: !(Maybe Xgafv)-    , _ctltUploadProtocol :: !(Maybe Text)-    , _ctltCourseId       :: !Text-    , _ctltAccessToken    :: !(Maybe Text)-    , _ctltUploadType     :: !(Maybe Text)-    , _ctltPageToken      :: !(Maybe Text)-    , _ctltPageSize       :: !(Maybe (Textual Int32))-    , _ctltCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesTeachersList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctltXgafv'------ * 'ctltUploadProtocol'------ * 'ctltCourseId'------ * 'ctltAccessToken'------ * 'ctltUploadType'------ * 'ctltPageToken'------ * 'ctltPageSize'------ * 'ctltCallback'-coursesTeachersList-    :: Text -- ^ 'ctltCourseId'-    -> CoursesTeachersList-coursesTeachersList pCtltCourseId_ =-  CoursesTeachersList'-    { _ctltXgafv = Nothing-    , _ctltUploadProtocol = Nothing-    , _ctltCourseId = pCtltCourseId_-    , _ctltAccessToken = Nothing-    , _ctltUploadType = Nothing-    , _ctltPageToken = Nothing-    , _ctltPageSize = Nothing-    , _ctltCallback = Nothing-    }----- | V1 error format.-ctltXgafv :: Lens' CoursesTeachersList (Maybe Xgafv)-ctltXgafv-  = lens _ctltXgafv (\ s a -> s{_ctltXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ctltUploadProtocol :: Lens' CoursesTeachersList (Maybe Text)-ctltUploadProtocol-  = lens _ctltUploadProtocol-      (\ s a -> s{_ctltUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ctltCourseId :: Lens' CoursesTeachersList Text-ctltCourseId-  = lens _ctltCourseId (\ s a -> s{_ctltCourseId = a})---- | OAuth access token.-ctltAccessToken :: Lens' CoursesTeachersList (Maybe Text)-ctltAccessToken-  = lens _ctltAccessToken-      (\ s a -> s{_ctltAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ctltUploadType :: Lens' CoursesTeachersList (Maybe Text)-ctltUploadType-  = lens _ctltUploadType-      (\ s a -> s{_ctltUploadType = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-ctltPageToken :: Lens' CoursesTeachersList (Maybe Text)-ctltPageToken-  = lens _ctltPageToken-      (\ s a -> s{_ctltPageToken = a})---- | Maximum number of items to return. Zero means no maximum. The server may--- return fewer than the specified number of results.-ctltPageSize :: Lens' CoursesTeachersList (Maybe Int32)-ctltPageSize-  = lens _ctltPageSize (\ s a -> s{_ctltPageSize = a})-      . mapping _Coerce---- | JSONP-ctltCallback :: Lens' CoursesTeachersList (Maybe Text)-ctltCallback-  = lens _ctltCallback (\ s a -> s{_ctltCallback = a})--instance GoogleRequest CoursesTeachersList where-        type Rs CoursesTeachersList = ListTeachersResponse-        type Scopes CoursesTeachersList =-             '["https://www.googleapis.com/auth/classroom.profile.emails",-               "https://www.googleapis.com/auth/classroom.profile.photos",-               "https://www.googleapis.com/auth/classroom.rosters",-               "https://www.googleapis.com/auth/classroom.rosters.readonly"]-        requestClient CoursesTeachersList'{..}-          = go _ctltCourseId _ctltXgafv _ctltUploadProtocol-              _ctltAccessToken-              _ctltUploadType-              _ctltPageToken-              _ctltPageSize-              _ctltCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesTeachersListResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Topics/Create.hs
@@ -1,174 +0,0 @@-{-# 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.Topics.Create--- 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)------ Creates a topic. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- the requested course, create a topic in the requested course, or for--- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *--- \`NOT_FOUND\` if the requested course does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.create@.-module Network.Google.Resource.Classroom.Courses.Topics.Create-    (-    -- * REST Resource-      CoursesTopicsCreateResource--    -- * Creating a Request-    , coursesTopicsCreate-    , CoursesTopicsCreate--    -- * Request Lenses-    , ctctXgafv-    , ctctUploadProtocol-    , ctctCourseId-    , ctctAccessToken-    , ctctUploadType-    , ctctPayload-    , ctctCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.topics.create@ method which the--- 'CoursesTopicsCreate' request conforms to.-type CoursesTopicsCreateResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "topics" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "callback" Text :>-                       QueryParam "alt" AltJSON :>-                         ReqBody '[JSON] Topic :> Post '[JSON] Topic---- | Creates a topic. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- the requested course, create a topic in the requested course, or for--- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *--- \`NOT_FOUND\` if the requested course does not exist.------ /See:/ 'coursesTopicsCreate' smart constructor.-data CoursesTopicsCreate =-  CoursesTopicsCreate'-    { _ctctXgafv          :: !(Maybe Xgafv)-    , _ctctUploadProtocol :: !(Maybe Text)-    , _ctctCourseId       :: !Text-    , _ctctAccessToken    :: !(Maybe Text)-    , _ctctUploadType     :: !(Maybe Text)-    , _ctctPayload        :: !Topic-    , _ctctCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesTopicsCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctctXgafv'------ * 'ctctUploadProtocol'------ * 'ctctCourseId'------ * 'ctctAccessToken'------ * 'ctctUploadType'------ * 'ctctPayload'------ * 'ctctCallback'-coursesTopicsCreate-    :: Text -- ^ 'ctctCourseId'-    -> Topic -- ^ 'ctctPayload'-    -> CoursesTopicsCreate-coursesTopicsCreate pCtctCourseId_ pCtctPayload_ =-  CoursesTopicsCreate'-    { _ctctXgafv = Nothing-    , _ctctUploadProtocol = Nothing-    , _ctctCourseId = pCtctCourseId_-    , _ctctAccessToken = Nothing-    , _ctctUploadType = Nothing-    , _ctctPayload = pCtctPayload_-    , _ctctCallback = Nothing-    }----- | V1 error format.-ctctXgafv :: Lens' CoursesTopicsCreate (Maybe Xgafv)-ctctXgafv-  = lens _ctctXgafv (\ s a -> s{_ctctXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ctctUploadProtocol :: Lens' CoursesTopicsCreate (Maybe Text)-ctctUploadProtocol-  = lens _ctctUploadProtocol-      (\ s a -> s{_ctctUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ctctCourseId :: Lens' CoursesTopicsCreate Text-ctctCourseId-  = lens _ctctCourseId (\ s a -> s{_ctctCourseId = a})---- | OAuth access token.-ctctAccessToken :: Lens' CoursesTopicsCreate (Maybe Text)-ctctAccessToken-  = lens _ctctAccessToken-      (\ s a -> s{_ctctAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ctctUploadType :: Lens' CoursesTopicsCreate (Maybe Text)-ctctUploadType-  = lens _ctctUploadType-      (\ s a -> s{_ctctUploadType = a})---- | Multipart request metadata.-ctctPayload :: Lens' CoursesTopicsCreate Topic-ctctPayload-  = lens _ctctPayload (\ s a -> s{_ctctPayload = a})---- | JSONP-ctctCallback :: Lens' CoursesTopicsCreate (Maybe Text)-ctctCallback-  = lens _ctctCallback (\ s a -> s{_ctctCallback = a})--instance GoogleRequest CoursesTopicsCreate where-        type Rs CoursesTopicsCreate = Topic-        type Scopes CoursesTopicsCreate =-             '["https://www.googleapis.com/auth/classroom.topics"]-        requestClient CoursesTopicsCreate'{..}-          = go _ctctCourseId _ctctXgafv _ctctUploadProtocol-              _ctctAccessToken-              _ctctUploadType-              _ctctCallback-              (Just AltJSON)-              _ctctPayload-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesTopicsCreateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Topics/Delete.hs
@@ -1,171 +0,0 @@-{-# 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.Topics.Delete--- 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)------ Deletes a topic. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not allowed to delete--- the requested topic or for access errors. * \`FAILED_PRECONDITION\` if--- the requested topic has already been deleted. * \`NOT_FOUND\` if no--- course or topic exists with the requested ID.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.delete@.-module Network.Google.Resource.Classroom.Courses.Topics.Delete-    (-    -- * REST Resource-      CoursesTopicsDeleteResource--    -- * Creating a Request-    , coursesTopicsDelete-    , CoursesTopicsDelete--    -- * Request Lenses-    , ctdXgafv-    , ctdUploadProtocol-    , ctdCourseId-    , ctdAccessToken-    , ctdUploadType-    , ctdId-    , ctdCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.topics.delete@ method which the--- 'CoursesTopicsDelete' request conforms to.-type CoursesTopicsDeleteResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "topics" :>-             Capture "id" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes a topic. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not allowed to delete--- the requested topic or for access errors. * \`FAILED_PRECONDITION\` if--- the requested topic has already been deleted. * \`NOT_FOUND\` if no--- course or topic exists with the requested ID.------ /See:/ 'coursesTopicsDelete' smart constructor.-data CoursesTopicsDelete =-  CoursesTopicsDelete'-    { _ctdXgafv          :: !(Maybe Xgafv)-    , _ctdUploadProtocol :: !(Maybe Text)-    , _ctdCourseId       :: !Text-    , _ctdAccessToken    :: !(Maybe Text)-    , _ctdUploadType     :: !(Maybe Text)-    , _ctdId             :: !Text-    , _ctdCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesTopicsDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctdXgafv'------ * 'ctdUploadProtocol'------ * 'ctdCourseId'------ * 'ctdAccessToken'------ * 'ctdUploadType'------ * 'ctdId'------ * 'ctdCallback'-coursesTopicsDelete-    :: Text -- ^ 'ctdCourseId'-    -> Text -- ^ 'ctdId'-    -> CoursesTopicsDelete-coursesTopicsDelete pCtdCourseId_ pCtdId_ =-  CoursesTopicsDelete'-    { _ctdXgafv = Nothing-    , _ctdUploadProtocol = Nothing-    , _ctdCourseId = pCtdCourseId_-    , _ctdAccessToken = Nothing-    , _ctdUploadType = Nothing-    , _ctdId = pCtdId_-    , _ctdCallback = Nothing-    }----- | V1 error format.-ctdXgafv :: Lens' CoursesTopicsDelete (Maybe Xgafv)-ctdXgafv = lens _ctdXgafv (\ s a -> s{_ctdXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ctdUploadProtocol :: Lens' CoursesTopicsDelete (Maybe Text)-ctdUploadProtocol-  = lens _ctdUploadProtocol-      (\ s a -> s{_ctdUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ctdCourseId :: Lens' CoursesTopicsDelete Text-ctdCourseId-  = lens _ctdCourseId (\ s a -> s{_ctdCourseId = a})---- | OAuth access token.-ctdAccessToken :: Lens' CoursesTopicsDelete (Maybe Text)-ctdAccessToken-  = lens _ctdAccessToken-      (\ s a -> s{_ctdAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ctdUploadType :: Lens' CoursesTopicsDelete (Maybe Text)-ctdUploadType-  = lens _ctdUploadType-      (\ s a -> s{_ctdUploadType = a})---- | Identifier of the topic to delete.-ctdId :: Lens' CoursesTopicsDelete Text-ctdId = lens _ctdId (\ s a -> s{_ctdId = a})---- | JSONP-ctdCallback :: Lens' CoursesTopicsDelete (Maybe Text)-ctdCallback-  = lens _ctdCallback (\ s a -> s{_ctdCallback = a})--instance GoogleRequest CoursesTopicsDelete where-        type Rs CoursesTopicsDelete = Empty-        type Scopes CoursesTopicsDelete =-             '["https://www.googleapis.com/auth/classroom.topics"]-        requestClient CoursesTopicsDelete'{..}-          = go _ctdCourseId _ctdId _ctdXgafv _ctdUploadProtocol-              _ctdAccessToken-              _ctdUploadType-              _ctdCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesTopicsDeleteResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Topics/Get.hs
@@ -1,171 +0,0 @@-{-# 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.Topics.Get--- 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 topic. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- the requested course or topic, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course or topic does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.get@.-module Network.Google.Resource.Classroom.Courses.Topics.Get-    (-    -- * REST Resource-      CoursesTopicsGetResource--    -- * Creating a Request-    , coursesTopicsGet-    , CoursesTopicsGet--    -- * Request Lenses-    , ctgXgafv-    , ctgUploadProtocol-    , ctgCourseId-    , ctgAccessToken-    , ctgUploadType-    , ctgId-    , ctgCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.topics.get@ method which the--- 'CoursesTopicsGet' request conforms to.-type CoursesTopicsGetResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "topics" :>-             Capture "id" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Get '[JSON] Topic---- | Returns a topic. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- the requested course or topic, or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course or topic does not exist.------ /See:/ 'coursesTopicsGet' smart constructor.-data CoursesTopicsGet =-  CoursesTopicsGet'-    { _ctgXgafv          :: !(Maybe Xgafv)-    , _ctgUploadProtocol :: !(Maybe Text)-    , _ctgCourseId       :: !Text-    , _ctgAccessToken    :: !(Maybe Text)-    , _ctgUploadType     :: !(Maybe Text)-    , _ctgId             :: !Text-    , _ctgCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesTopicsGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctgXgafv'------ * 'ctgUploadProtocol'------ * 'ctgCourseId'------ * 'ctgAccessToken'------ * 'ctgUploadType'------ * 'ctgId'------ * 'ctgCallback'-coursesTopicsGet-    :: Text -- ^ 'ctgCourseId'-    -> Text -- ^ 'ctgId'-    -> CoursesTopicsGet-coursesTopicsGet pCtgCourseId_ pCtgId_ =-  CoursesTopicsGet'-    { _ctgXgafv = Nothing-    , _ctgUploadProtocol = Nothing-    , _ctgCourseId = pCtgCourseId_-    , _ctgAccessToken = Nothing-    , _ctgUploadType = Nothing-    , _ctgId = pCtgId_-    , _ctgCallback = Nothing-    }----- | V1 error format.-ctgXgafv :: Lens' CoursesTopicsGet (Maybe Xgafv)-ctgXgafv = lens _ctgXgafv (\ s a -> s{_ctgXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ctgUploadProtocol :: Lens' CoursesTopicsGet (Maybe Text)-ctgUploadProtocol-  = lens _ctgUploadProtocol-      (\ s a -> s{_ctgUploadProtocol = a})---- | Identifier of the course.-ctgCourseId :: Lens' CoursesTopicsGet Text-ctgCourseId-  = lens _ctgCourseId (\ s a -> s{_ctgCourseId = a})---- | OAuth access token.-ctgAccessToken :: Lens' CoursesTopicsGet (Maybe Text)-ctgAccessToken-  = lens _ctgAccessToken-      (\ s a -> s{_ctgAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ctgUploadType :: Lens' CoursesTopicsGet (Maybe Text)-ctgUploadType-  = lens _ctgUploadType-      (\ s a -> s{_ctgUploadType = a})---- | Identifier of the topic.-ctgId :: Lens' CoursesTopicsGet Text-ctgId = lens _ctgId (\ s a -> s{_ctgId = a})---- | JSONP-ctgCallback :: Lens' CoursesTopicsGet (Maybe Text)-ctgCallback-  = lens _ctgCallback (\ s a -> s{_ctgCallback = a})--instance GoogleRequest CoursesTopicsGet where-        type Rs CoursesTopicsGet = Topic-        type Scopes CoursesTopicsGet =-             '["https://www.googleapis.com/auth/classroom.topics",-               "https://www.googleapis.com/auth/classroom.topics.readonly"]-        requestClient CoursesTopicsGet'{..}-          = go _ctgCourseId _ctgId _ctgXgafv _ctgUploadProtocol-              _ctgAccessToken-              _ctgUploadType-              _ctgCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesTopicsGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Topics/List.hs
@@ -1,191 +0,0 @@-{-# 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.Topics.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 the list of topics that the requester is permitted to view. This--- method returns the following error codes: * \`PERMISSION_DENIED\` if the--- requesting user is not permitted to access the requested course or for--- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *--- \`NOT_FOUND\` if the requested course does not exist.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.list@.-module Network.Google.Resource.Classroom.Courses.Topics.List-    (-    -- * REST Resource-      CoursesTopicsListResource--    -- * Creating a Request-    , coursesTopicsList-    , CoursesTopicsList--    -- * Request Lenses-    , ctlXgafv-    , ctlUploadProtocol-    , ctlCourseId-    , ctlAccessToken-    , ctlUploadType-    , ctlPageToken-    , ctlPageSize-    , ctlCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.topics.list@ method which the--- 'CoursesTopicsList' request conforms to.-type CoursesTopicsListResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "topics" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "pageToken" Text :>-                       QueryParam "pageSize" (Textual Int32) :>-                         QueryParam "callback" Text :>-                           QueryParam "alt" AltJSON :>-                             Get '[JSON] ListTopicResponse---- | Returns the list of topics that the requester is permitted to view. This--- method returns the following error codes: * \`PERMISSION_DENIED\` if the--- requesting user is not permitted to access the requested course or for--- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *--- \`NOT_FOUND\` if the requested course does not exist.------ /See:/ 'coursesTopicsList' smart constructor.-data CoursesTopicsList =-  CoursesTopicsList'-    { _ctlXgafv          :: !(Maybe Xgafv)-    , _ctlUploadProtocol :: !(Maybe Text)-    , _ctlCourseId       :: !Text-    , _ctlAccessToken    :: !(Maybe Text)-    , _ctlUploadType     :: !(Maybe Text)-    , _ctlPageToken      :: !(Maybe Text)-    , _ctlPageSize       :: !(Maybe (Textual Int32))-    , _ctlCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesTopicsList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctlXgafv'------ * 'ctlUploadProtocol'------ * 'ctlCourseId'------ * 'ctlAccessToken'------ * 'ctlUploadType'------ * 'ctlPageToken'------ * 'ctlPageSize'------ * 'ctlCallback'-coursesTopicsList-    :: Text -- ^ 'ctlCourseId'-    -> CoursesTopicsList-coursesTopicsList pCtlCourseId_ =-  CoursesTopicsList'-    { _ctlXgafv = Nothing-    , _ctlUploadProtocol = Nothing-    , _ctlCourseId = pCtlCourseId_-    , _ctlAccessToken = Nothing-    , _ctlUploadType = Nothing-    , _ctlPageToken = Nothing-    , _ctlPageSize = Nothing-    , _ctlCallback = Nothing-    }----- | V1 error format.-ctlXgafv :: Lens' CoursesTopicsList (Maybe Xgafv)-ctlXgafv = lens _ctlXgafv (\ s a -> s{_ctlXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ctlUploadProtocol :: Lens' CoursesTopicsList (Maybe Text)-ctlUploadProtocol-  = lens _ctlUploadProtocol-      (\ s a -> s{_ctlUploadProtocol = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ctlCourseId :: Lens' CoursesTopicsList Text-ctlCourseId-  = lens _ctlCourseId (\ s a -> s{_ctlCourseId = a})---- | OAuth access token.-ctlAccessToken :: Lens' CoursesTopicsList (Maybe Text)-ctlAccessToken-  = lens _ctlAccessToken-      (\ s a -> s{_ctlAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ctlUploadType :: Lens' CoursesTopicsList (Maybe Text)-ctlUploadType-  = lens _ctlUploadType-      (\ s a -> s{_ctlUploadType = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-ctlPageToken :: Lens' CoursesTopicsList (Maybe Text)-ctlPageToken-  = lens _ctlPageToken (\ s a -> s{_ctlPageToken = a})---- | Maximum number of items to return. Zero or unspecified indicates that--- the server may assign a maximum. The server may return fewer than the--- specified number of results.-ctlPageSize :: Lens' CoursesTopicsList (Maybe Int32)-ctlPageSize-  = lens _ctlPageSize (\ s a -> s{_ctlPageSize = a}) .-      mapping _Coerce---- | JSONP-ctlCallback :: Lens' CoursesTopicsList (Maybe Text)-ctlCallback-  = lens _ctlCallback (\ s a -> s{_ctlCallback = a})--instance GoogleRequest CoursesTopicsList where-        type Rs CoursesTopicsList = ListTopicResponse-        type Scopes CoursesTopicsList =-             '["https://www.googleapis.com/auth/classroom.topics",-               "https://www.googleapis.com/auth/classroom.topics.readonly"]-        requestClient CoursesTopicsList'{..}-          = go _ctlCourseId _ctlXgafv _ctlUploadProtocol-              _ctlAccessToken-              _ctlUploadType-              _ctlPageToken-              _ctlPageSize-              _ctlCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesTopicsListResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Topics/Patch.hs
@@ -1,203 +0,0 @@-{-# 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.Topics.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 a topic. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting developer project--- did not create the corresponding topic or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course or topic does not exist------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.patch@.-module Network.Google.Resource.Classroom.Courses.Topics.Patch-    (-    -- * REST Resource-      CoursesTopicsPatchResource--    -- * Creating a Request-    , coursesTopicsPatch-    , CoursesTopicsPatch--    -- * Request Lenses-    , ctpXgafv-    , ctpUploadProtocol-    , ctpUpdateMask-    , ctpCourseId-    , ctpAccessToken-    , ctpUploadType-    , ctpPayload-    , ctpId-    , ctpCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.topics.patch@ method which the--- 'CoursesTopicsPatch' request conforms to.-type CoursesTopicsPatchResource =-     "v1" :>-       "courses" :>-         Capture "courseId" Text :>-           "topics" :>-             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] Topic :> Patch '[JSON] Topic---- | Updates one or more fields of a topic. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting developer project--- did not create the corresponding topic or for access errors. *--- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the--- requested course or topic does not exist------ /See:/ 'coursesTopicsPatch' smart constructor.-data CoursesTopicsPatch =-  CoursesTopicsPatch'-    { _ctpXgafv          :: !(Maybe Xgafv)-    , _ctpUploadProtocol :: !(Maybe Text)-    , _ctpUpdateMask     :: !(Maybe GFieldMask)-    , _ctpCourseId       :: !Text-    , _ctpAccessToken    :: !(Maybe Text)-    , _ctpUploadType     :: !(Maybe Text)-    , _ctpPayload        :: !Topic-    , _ctpId             :: !Text-    , _ctpCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesTopicsPatch' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctpXgafv'------ * 'ctpUploadProtocol'------ * 'ctpUpdateMask'------ * 'ctpCourseId'------ * 'ctpAccessToken'------ * 'ctpUploadType'------ * 'ctpPayload'------ * 'ctpId'------ * 'ctpCallback'-coursesTopicsPatch-    :: Text -- ^ 'ctpCourseId'-    -> Topic -- ^ 'ctpPayload'-    -> Text -- ^ 'ctpId'-    -> CoursesTopicsPatch-coursesTopicsPatch pCtpCourseId_ pCtpPayload_ pCtpId_ =-  CoursesTopicsPatch'-    { _ctpXgafv = Nothing-    , _ctpUploadProtocol = Nothing-    , _ctpUpdateMask = Nothing-    , _ctpCourseId = pCtpCourseId_-    , _ctpAccessToken = Nothing-    , _ctpUploadType = Nothing-    , _ctpPayload = pCtpPayload_-    , _ctpId = pCtpId_-    , _ctpCallback = Nothing-    }----- | V1 error format.-ctpXgafv :: Lens' CoursesTopicsPatch (Maybe Xgafv)-ctpXgafv = lens _ctpXgafv (\ s a -> s{_ctpXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ctpUploadProtocol :: Lens' CoursesTopicsPatch (Maybe Text)-ctpUploadProtocol-  = lens _ctpUploadProtocol-      (\ s a -> s{_ctpUploadProtocol = a})---- | Mask that identifies which fields on the topic 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 Topic object. If a field--- that does not support empty values is included in the update mask and--- not set in the Topic object, an \`INVALID_ARGUMENT\` error will be--- returned. The following fields may be specified: * \`name\`-ctpUpdateMask :: Lens' CoursesTopicsPatch (Maybe GFieldMask)-ctpUpdateMask-  = lens _ctpUpdateMask-      (\ s a -> s{_ctpUpdateMask = a})---- | Identifier of the course. This identifier can be either the--- Classroom-assigned identifier or an alias.-ctpCourseId :: Lens' CoursesTopicsPatch Text-ctpCourseId-  = lens _ctpCourseId (\ s a -> s{_ctpCourseId = a})---- | OAuth access token.-ctpAccessToken :: Lens' CoursesTopicsPatch (Maybe Text)-ctpAccessToken-  = lens _ctpAccessToken-      (\ s a -> s{_ctpAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ctpUploadType :: Lens' CoursesTopicsPatch (Maybe Text)-ctpUploadType-  = lens _ctpUploadType-      (\ s a -> s{_ctpUploadType = a})---- | Multipart request metadata.-ctpPayload :: Lens' CoursesTopicsPatch Topic-ctpPayload-  = lens _ctpPayload (\ s a -> s{_ctpPayload = a})---- | Identifier of the topic.-ctpId :: Lens' CoursesTopicsPatch Text-ctpId = lens _ctpId (\ s a -> s{_ctpId = a})---- | JSONP-ctpCallback :: Lens' CoursesTopicsPatch (Maybe Text)-ctpCallback-  = lens _ctpCallback (\ s a -> s{_ctpCallback = a})--instance GoogleRequest CoursesTopicsPatch where-        type Rs CoursesTopicsPatch = Topic-        type Scopes CoursesTopicsPatch =-             '["https://www.googleapis.com/auth/classroom.topics"]-        requestClient CoursesTopicsPatch'{..}-          = go _ctpCourseId _ctpId _ctpXgafv _ctpUploadProtocol-              _ctpUpdateMask-              _ctpAccessToken-              _ctpUploadType-              _ctpCallback-              (Just AltJSON)-              _ctpPayload-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy CoursesTopicsPatchResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Courses/Update.hs
@@ -1,168 +0,0 @@-{-# 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.Update--- 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 a course. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to modify--- the requested course or for access errors. * \`NOT_FOUND\` if no course--- exists with the requested ID. * \`FAILED_PRECONDITION\` for the--- following request errors: * CourseNotModifiable------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.update@.-module Network.Google.Resource.Classroom.Courses.Update-    (-    -- * REST Resource-      CoursesUpdateResource--    -- * Creating a Request-    , coursesUpdate-    , CoursesUpdate--    -- * Request Lenses-    , cuXgafv-    , cuUploadProtocol-    , cuAccessToken-    , cuUploadType-    , cuPayload-    , cuId-    , cuCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.courses.update@ method which the--- 'CoursesUpdate' request conforms to.-type CoursesUpdateResource =-     "v1" :>-       "courses" :>-         Capture "id" Text :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "callback" Text :>-                     QueryParam "alt" AltJSON :>-                       ReqBody '[JSON] Course :> Put '[JSON] Course---- | Updates a course. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to modify--- the requested course or for access errors. * \`NOT_FOUND\` if no course--- exists with the requested ID. * \`FAILED_PRECONDITION\` for the--- following request errors: * CourseNotModifiable------ /See:/ 'coursesUpdate' smart constructor.-data CoursesUpdate =-  CoursesUpdate'-    { _cuXgafv          :: !(Maybe Xgafv)-    , _cuUploadProtocol :: !(Maybe Text)-    , _cuAccessToken    :: !(Maybe Text)-    , _cuUploadType     :: !(Maybe Text)-    , _cuPayload        :: !Course-    , _cuId             :: !Text-    , _cuCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CoursesUpdate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cuXgafv'------ * 'cuUploadProtocol'------ * 'cuAccessToken'------ * 'cuUploadType'------ * 'cuPayload'------ * 'cuId'------ * 'cuCallback'-coursesUpdate-    :: Course -- ^ 'cuPayload'-    -> Text -- ^ 'cuId'-    -> CoursesUpdate-coursesUpdate pCuPayload_ pCuId_ =-  CoursesUpdate'-    { _cuXgafv = Nothing-    , _cuUploadProtocol = Nothing-    , _cuAccessToken = Nothing-    , _cuUploadType = Nothing-    , _cuPayload = pCuPayload_-    , _cuId = pCuId_-    , _cuCallback = Nothing-    }----- | V1 error format.-cuXgafv :: Lens' CoursesUpdate (Maybe Xgafv)-cuXgafv = lens _cuXgafv (\ s a -> s{_cuXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-cuUploadProtocol :: Lens' CoursesUpdate (Maybe Text)-cuUploadProtocol-  = lens _cuUploadProtocol-      (\ s a -> s{_cuUploadProtocol = a})---- | OAuth access token.-cuAccessToken :: Lens' CoursesUpdate (Maybe Text)-cuAccessToken-  = lens _cuAccessToken-      (\ s a -> s{_cuAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-cuUploadType :: Lens' CoursesUpdate (Maybe Text)-cuUploadType-  = lens _cuUploadType (\ s a -> s{_cuUploadType = a})---- | Multipart request metadata.-cuPayload :: Lens' CoursesUpdate Course-cuPayload-  = lens _cuPayload (\ s a -> s{_cuPayload = a})---- | Identifier of the course to update. This identifier can be either the--- Classroom-assigned identifier or an alias.-cuId :: Lens' CoursesUpdate Text-cuId = lens _cuId (\ s a -> s{_cuId = a})---- | JSONP-cuCallback :: Lens' CoursesUpdate (Maybe Text)-cuCallback-  = lens _cuCallback (\ s a -> s{_cuCallback = a})--instance GoogleRequest CoursesUpdate where-        type Rs CoursesUpdate = Course-        type Scopes CoursesUpdate =-             '["https://www.googleapis.com/auth/classroom.courses"]-        requestClient CoursesUpdate'{..}-          = go _cuId _cuXgafv _cuUploadProtocol _cuAccessToken-              _cuUploadType-              _cuCallback-              (Just AltJSON)-              _cuPayload-              classroomService-          where go-                  = buildClient (Proxy :: Proxy CoursesUpdateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Invitations/Accept.hs
@@ -1,163 +0,0 @@-{-# 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.Invitations.Accept--- 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)------ Accepts an invitation, removing it and adding the invited user to the--- teachers or students (as appropriate) of the specified course. Only the--- invited user may accept an invitation. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to accept the requested invitation or for access errors. *--- \`FAILED_PRECONDITION\` for the following request errors: *--- CourseMemberLimitReached * CourseNotModifiable *--- CourseTeacherLimitReached * UserGroupsMembershipLimitReached *--- \`NOT_FOUND\` if no invitation exists with the requested ID.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.accept@.-module Network.Google.Resource.Classroom.Invitations.Accept-    (-    -- * REST Resource-      InvitationsAcceptResource--    -- * Creating a Request-    , invitationsAccept-    , InvitationsAccept--    -- * Request Lenses-    , iaXgafv-    , iaUploadProtocol-    , iaAccessToken-    , iaUploadType-    , iaId-    , iaCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.invitations.accept@ method which the--- 'InvitationsAccept' request conforms to.-type InvitationsAcceptResource =-     "v1" :>-       "invitations" :>-         CaptureMode "id" "accept" Text :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "callback" Text :>-                     QueryParam "alt" AltJSON :> Post '[JSON] Empty---- | Accepts an invitation, removing it and adding the invited user to the--- teachers or students (as appropriate) of the specified course. Only the--- invited user may accept an invitation. This method returns the following--- error codes: * \`PERMISSION_DENIED\` if the requesting user is not--- permitted to accept the requested invitation or for access errors. *--- \`FAILED_PRECONDITION\` for the following request errors: *--- CourseMemberLimitReached * CourseNotModifiable *--- CourseTeacherLimitReached * UserGroupsMembershipLimitReached *--- \`NOT_FOUND\` if no invitation exists with the requested ID.------ /See:/ 'invitationsAccept' smart constructor.-data InvitationsAccept =-  InvitationsAccept'-    { _iaXgafv          :: !(Maybe Xgafv)-    , _iaUploadProtocol :: !(Maybe Text)-    , _iaAccessToken    :: !(Maybe Text)-    , _iaUploadType     :: !(Maybe Text)-    , _iaId             :: !Text-    , _iaCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'InvitationsAccept' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iaXgafv'------ * 'iaUploadProtocol'------ * 'iaAccessToken'------ * 'iaUploadType'------ * 'iaId'------ * 'iaCallback'-invitationsAccept-    :: Text -- ^ 'iaId'-    -> InvitationsAccept-invitationsAccept pIaId_ =-  InvitationsAccept'-    { _iaXgafv = Nothing-    , _iaUploadProtocol = Nothing-    , _iaAccessToken = Nothing-    , _iaUploadType = Nothing-    , _iaId = pIaId_-    , _iaCallback = Nothing-    }----- | V1 error format.-iaXgafv :: Lens' InvitationsAccept (Maybe Xgafv)-iaXgafv = lens _iaXgafv (\ s a -> s{_iaXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-iaUploadProtocol :: Lens' InvitationsAccept (Maybe Text)-iaUploadProtocol-  = lens _iaUploadProtocol-      (\ s a -> s{_iaUploadProtocol = a})---- | OAuth access token.-iaAccessToken :: Lens' InvitationsAccept (Maybe Text)-iaAccessToken-  = lens _iaAccessToken-      (\ s a -> s{_iaAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-iaUploadType :: Lens' InvitationsAccept (Maybe Text)-iaUploadType-  = lens _iaUploadType (\ s a -> s{_iaUploadType = a})---- | Identifier of the invitation to accept.-iaId :: Lens' InvitationsAccept Text-iaId = lens _iaId (\ s a -> s{_iaId = a})---- | JSONP-iaCallback :: Lens' InvitationsAccept (Maybe Text)-iaCallback-  = lens _iaCallback (\ s a -> s{_iaCallback = a})--instance GoogleRequest InvitationsAccept where-        type Rs InvitationsAccept = Empty-        type Scopes InvitationsAccept =-             '["https://www.googleapis.com/auth/classroom.rosters"]-        requestClient InvitationsAccept'{..}-          = go _iaId _iaXgafv _iaUploadProtocol _iaAccessToken-              _iaUploadType-              _iaCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy InvitationsAcceptResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Invitations/Create.hs
@@ -1,165 +0,0 @@-{-# 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.Invitations.Create--- 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)------ Creates an invitation. Only one invitation for a user and course may--- exist at a time. Delete and re-create an invitation to make changes.--- This method returns the following error codes: * \`PERMISSION_DENIED\`--- if the requesting user is not permitted to create invitations for this--- course or for access errors. * \`NOT_FOUND\` if the course or the user--- does not exist. * \`FAILED_PRECONDITION\` if the requested user\'s--- account is disabled or if the user already has this role or a role with--- greater permissions. * \`ALREADY_EXISTS\` if an invitation for the--- specified user and course already exists.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.create@.-module Network.Google.Resource.Classroom.Invitations.Create-    (-    -- * REST Resource-      InvitationsCreateResource--    -- * Creating a Request-    , invitationsCreate-    , InvitationsCreate--    -- * Request Lenses-    , icXgafv-    , icUploadProtocol-    , icAccessToken-    , icUploadType-    , icPayload-    , icCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.invitations.create@ method which the--- 'InvitationsCreate' request conforms to.-type InvitationsCreateResource =-     "v1" :>-       "invitations" :>-         QueryParam "$.xgafv" Xgafv :>-           QueryParam "upload_protocol" Text :>-             QueryParam "access_token" Text :>-               QueryParam "uploadType" Text :>-                 QueryParam "callback" Text :>-                   QueryParam "alt" AltJSON :>-                     ReqBody '[JSON] Invitation :> Post '[JSON] Invitation---- | Creates an invitation. Only one invitation for a user and course may--- exist at a time. Delete and re-create an invitation to make changes.--- This method returns the following error codes: * \`PERMISSION_DENIED\`--- if the requesting user is not permitted to create invitations for this--- course or for access errors. * \`NOT_FOUND\` if the course or the user--- does not exist. * \`FAILED_PRECONDITION\` if the requested user\'s--- account is disabled or if the user already has this role or a role with--- greater permissions. * \`ALREADY_EXISTS\` if an invitation for the--- specified user and course already exists.------ /See:/ 'invitationsCreate' smart constructor.-data InvitationsCreate =-  InvitationsCreate'-    { _icXgafv          :: !(Maybe Xgafv)-    , _icUploadProtocol :: !(Maybe Text)-    , _icAccessToken    :: !(Maybe Text)-    , _icUploadType     :: !(Maybe Text)-    , _icPayload        :: !Invitation-    , _icCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'InvitationsCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'icXgafv'------ * 'icUploadProtocol'------ * 'icAccessToken'------ * 'icUploadType'------ * 'icPayload'------ * 'icCallback'-invitationsCreate-    :: Invitation -- ^ 'icPayload'-    -> InvitationsCreate-invitationsCreate pIcPayload_ =-  InvitationsCreate'-    { _icXgafv = Nothing-    , _icUploadProtocol = Nothing-    , _icAccessToken = Nothing-    , _icUploadType = Nothing-    , _icPayload = pIcPayload_-    , _icCallback = Nothing-    }----- | V1 error format.-icXgafv :: Lens' InvitationsCreate (Maybe Xgafv)-icXgafv = lens _icXgafv (\ s a -> s{_icXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-icUploadProtocol :: Lens' InvitationsCreate (Maybe Text)-icUploadProtocol-  = lens _icUploadProtocol-      (\ s a -> s{_icUploadProtocol = a})---- | OAuth access token.-icAccessToken :: Lens' InvitationsCreate (Maybe Text)-icAccessToken-  = lens _icAccessToken-      (\ s a -> s{_icAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-icUploadType :: Lens' InvitationsCreate (Maybe Text)-icUploadType-  = lens _icUploadType (\ s a -> s{_icUploadType = a})---- | Multipart request metadata.-icPayload :: Lens' InvitationsCreate Invitation-icPayload-  = lens _icPayload (\ s a -> s{_icPayload = a})---- | JSONP-icCallback :: Lens' InvitationsCreate (Maybe Text)-icCallback-  = lens _icCallback (\ s a -> s{_icCallback = a})--instance GoogleRequest InvitationsCreate where-        type Rs InvitationsCreate = Invitation-        type Scopes InvitationsCreate =-             '["https://www.googleapis.com/auth/classroom.rosters"]-        requestClient InvitationsCreate'{..}-          = go _icXgafv _icUploadProtocol _icAccessToken-              _icUploadType-              _icCallback-              (Just AltJSON)-              _icPayload-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy InvitationsCreateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Invitations/Delete.hs
@@ -1,153 +0,0 @@-{-# 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.Invitations.Delete--- 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)------ Deletes an invitation. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to delete--- the requested invitation or for access errors. * \`NOT_FOUND\` if no--- invitation exists with the requested ID.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.delete@.-module Network.Google.Resource.Classroom.Invitations.Delete-    (-    -- * REST Resource-      InvitationsDeleteResource--    -- * Creating a Request-    , invitationsDelete-    , InvitationsDelete--    -- * Request Lenses-    , idXgafv-    , idUploadProtocol-    , idAccessToken-    , idUploadType-    , idId-    , idCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.invitations.delete@ method which the--- 'InvitationsDelete' request conforms to.-type InvitationsDeleteResource =-     "v1" :>-       "invitations" :>-         Capture "id" Text :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "callback" Text :>-                     QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes an invitation. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to delete--- the requested invitation or for access errors. * \`NOT_FOUND\` if no--- invitation exists with the requested ID.------ /See:/ 'invitationsDelete' smart constructor.-data InvitationsDelete =-  InvitationsDelete'-    { _idXgafv          :: !(Maybe Xgafv)-    , _idUploadProtocol :: !(Maybe Text)-    , _idAccessToken    :: !(Maybe Text)-    , _idUploadType     :: !(Maybe Text)-    , _idId             :: !Text-    , _idCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'InvitationsDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'idXgafv'------ * 'idUploadProtocol'------ * 'idAccessToken'------ * 'idUploadType'------ * 'idId'------ * 'idCallback'-invitationsDelete-    :: Text -- ^ 'idId'-    -> InvitationsDelete-invitationsDelete pIdId_ =-  InvitationsDelete'-    { _idXgafv = Nothing-    , _idUploadProtocol = Nothing-    , _idAccessToken = Nothing-    , _idUploadType = Nothing-    , _idId = pIdId_-    , _idCallback = Nothing-    }----- | V1 error format.-idXgafv :: Lens' InvitationsDelete (Maybe Xgafv)-idXgafv = lens _idXgafv (\ s a -> s{_idXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-idUploadProtocol :: Lens' InvitationsDelete (Maybe Text)-idUploadProtocol-  = lens _idUploadProtocol-      (\ s a -> s{_idUploadProtocol = a})---- | OAuth access token.-idAccessToken :: Lens' InvitationsDelete (Maybe Text)-idAccessToken-  = lens _idAccessToken-      (\ s a -> s{_idAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-idUploadType :: Lens' InvitationsDelete (Maybe Text)-idUploadType-  = lens _idUploadType (\ s a -> s{_idUploadType = a})---- | Identifier of the invitation to delete.-idId :: Lens' InvitationsDelete Text-idId = lens _idId (\ s a -> s{_idId = a})---- | JSONP-idCallback :: Lens' InvitationsDelete (Maybe Text)-idCallback-  = lens _idCallback (\ s a -> s{_idCallback = a})--instance GoogleRequest InvitationsDelete where-        type Rs InvitationsDelete = Empty-        type Scopes InvitationsDelete =-             '["https://www.googleapis.com/auth/classroom.rosters"]-        requestClient InvitationsDelete'{..}-          = go _idId _idXgafv _idUploadProtocol _idAccessToken-              _idUploadType-              _idCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy InvitationsDeleteResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Invitations/Get.hs
@@ -1,153 +0,0 @@-{-# 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.Invitations.Get--- 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 an invitation. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to view--- the requested invitation or for access errors. * \`NOT_FOUND\` if no--- invitation exists with the requested ID.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.get@.-module Network.Google.Resource.Classroom.Invitations.Get-    (-    -- * REST Resource-      InvitationsGetResource--    -- * Creating a Request-    , invitationsGet-    , InvitationsGet--    -- * Request Lenses-    , igXgafv-    , igUploadProtocol-    , igAccessToken-    , igUploadType-    , igId-    , igCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.invitations.get@ method which the--- 'InvitationsGet' request conforms to.-type InvitationsGetResource =-     "v1" :>-       "invitations" :>-         Capture "id" Text :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "callback" Text :>-                     QueryParam "alt" AltJSON :> Get '[JSON] Invitation---- | Returns an invitation. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to view--- the requested invitation or for access errors. * \`NOT_FOUND\` if no--- invitation exists with the requested ID.------ /See:/ 'invitationsGet' smart constructor.-data InvitationsGet =-  InvitationsGet'-    { _igXgafv          :: !(Maybe Xgafv)-    , _igUploadProtocol :: !(Maybe Text)-    , _igAccessToken    :: !(Maybe Text)-    , _igUploadType     :: !(Maybe Text)-    , _igId             :: !Text-    , _igCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'InvitationsGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'igXgafv'------ * 'igUploadProtocol'------ * 'igAccessToken'------ * 'igUploadType'------ * 'igId'------ * 'igCallback'-invitationsGet-    :: Text -- ^ 'igId'-    -> InvitationsGet-invitationsGet pIgId_ =-  InvitationsGet'-    { _igXgafv = Nothing-    , _igUploadProtocol = Nothing-    , _igAccessToken = Nothing-    , _igUploadType = Nothing-    , _igId = pIgId_-    , _igCallback = Nothing-    }----- | V1 error format.-igXgafv :: Lens' InvitationsGet (Maybe Xgafv)-igXgafv = lens _igXgafv (\ s a -> s{_igXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-igUploadProtocol :: Lens' InvitationsGet (Maybe Text)-igUploadProtocol-  = lens _igUploadProtocol-      (\ s a -> s{_igUploadProtocol = a})---- | OAuth access token.-igAccessToken :: Lens' InvitationsGet (Maybe Text)-igAccessToken-  = lens _igAccessToken-      (\ s a -> s{_igAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-igUploadType :: Lens' InvitationsGet (Maybe Text)-igUploadType-  = lens _igUploadType (\ s a -> s{_igUploadType = a})---- | Identifier of the invitation to return.-igId :: Lens' InvitationsGet Text-igId = lens _igId (\ s a -> s{_igId = a})---- | JSONP-igCallback :: Lens' InvitationsGet (Maybe Text)-igCallback-  = lens _igCallback (\ s a -> s{_igCallback = a})--instance GoogleRequest InvitationsGet where-        type Rs InvitationsGet = Invitation-        type Scopes InvitationsGet =-             '["https://www.googleapis.com/auth/classroom.rosters",-               "https://www.googleapis.com/auth/classroom.rosters.readonly"]-        requestClient InvitationsGet'{..}-          = go _igId _igXgafv _igUploadProtocol _igAccessToken-              _igUploadType-              _igCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient (Proxy :: Proxy InvitationsGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Invitations/List.hs
@@ -1,201 +0,0 @@-{-# 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.Invitations.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 invitations that the requesting user is permitted to--- view, restricted to those that match the list request. *Note:* At least--- one of \`user_id\` or \`course_id\` must be supplied. Both fields can be--- supplied. This method returns the following error codes: *--- \`PERMISSION_DENIED\` for access errors.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.list@.-module Network.Google.Resource.Classroom.Invitations.List-    (-    -- * REST Resource-      InvitationsListResource--    -- * Creating a Request-    , invitationsList-    , InvitationsList--    -- * Request Lenses-    , ilXgafv-    , ilUploadProtocol-    , ilCourseId-    , ilAccessToken-    , ilUploadType-    , ilUserId-    , ilPageToken-    , ilPageSize-    , ilCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.invitations.list@ method which the--- 'InvitationsList' request conforms to.-type InvitationsListResource =-     "v1" :>-       "invitations" :>-         QueryParam "$.xgafv" Xgafv :>-           QueryParam "upload_protocol" Text :>-             QueryParam "courseId" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "userId" Text :>-                     QueryParam "pageToken" Text :>-                       QueryParam "pageSize" (Textual Int32) :>-                         QueryParam "callback" Text :>-                           QueryParam "alt" AltJSON :>-                             Get '[JSON] ListInvitationsResponse---- | Returns a list of invitations that the requesting user is permitted to--- view, restricted to those that match the list request. *Note:* At least--- one of \`user_id\` or \`course_id\` must be supplied. Both fields can be--- supplied. This method returns the following error codes: *--- \`PERMISSION_DENIED\` for access errors.------ /See:/ 'invitationsList' smart constructor.-data InvitationsList =-  InvitationsList'-    { _ilXgafv          :: !(Maybe Xgafv)-    , _ilUploadProtocol :: !(Maybe Text)-    , _ilCourseId       :: !(Maybe Text)-    , _ilAccessToken    :: !(Maybe Text)-    , _ilUploadType     :: !(Maybe Text)-    , _ilUserId         :: !(Maybe Text)-    , _ilPageToken      :: !(Maybe Text)-    , _ilPageSize       :: !(Maybe (Textual Int32))-    , _ilCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'InvitationsList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ilXgafv'------ * 'ilUploadProtocol'------ * 'ilCourseId'------ * 'ilAccessToken'------ * 'ilUploadType'------ * 'ilUserId'------ * 'ilPageToken'------ * 'ilPageSize'------ * 'ilCallback'-invitationsList-    :: InvitationsList-invitationsList =-  InvitationsList'-    { _ilXgafv = Nothing-    , _ilUploadProtocol = Nothing-    , _ilCourseId = Nothing-    , _ilAccessToken = Nothing-    , _ilUploadType = Nothing-    , _ilUserId = Nothing-    , _ilPageToken = Nothing-    , _ilPageSize = Nothing-    , _ilCallback = Nothing-    }----- | V1 error format.-ilXgafv :: Lens' InvitationsList (Maybe Xgafv)-ilXgafv = lens _ilXgafv (\ s a -> s{_ilXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ilUploadProtocol :: Lens' InvitationsList (Maybe Text)-ilUploadProtocol-  = lens _ilUploadProtocol-      (\ s a -> s{_ilUploadProtocol = a})---- | Restricts returned invitations to those for a course with the specified--- identifier.-ilCourseId :: Lens' InvitationsList (Maybe Text)-ilCourseId-  = lens _ilCourseId (\ s a -> s{_ilCourseId = a})---- | OAuth access token.-ilAccessToken :: Lens' InvitationsList (Maybe Text)-ilAccessToken-  = lens _ilAccessToken-      (\ s a -> s{_ilAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ilUploadType :: Lens' InvitationsList (Maybe Text)-ilUploadType-  = lens _ilUploadType (\ s a -> s{_ilUploadType = a})---- | Restricts returned invitations to those for a specific user. The--- identifier can be one of the following: * the numeric identifier for the--- user * the email address of the user * the string literal \`\"me\"\`,--- indicating the requesting user-ilUserId :: Lens' InvitationsList (Maybe Text)-ilUserId = lens _ilUserId (\ s a -> s{_ilUserId = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-ilPageToken :: Lens' InvitationsList (Maybe Text)-ilPageToken-  = lens _ilPageToken (\ s a -> s{_ilPageToken = a})---- | Maximum number of items to return. Zero means no maximum. The server may--- return fewer than the specified number of results.-ilPageSize :: Lens' InvitationsList (Maybe Int32)-ilPageSize-  = lens _ilPageSize (\ s a -> s{_ilPageSize = a}) .-      mapping _Coerce---- | JSONP-ilCallback :: Lens' InvitationsList (Maybe Text)-ilCallback-  = lens _ilCallback (\ s a -> s{_ilCallback = a})--instance GoogleRequest InvitationsList where-        type Rs InvitationsList = ListInvitationsResponse-        type Scopes InvitationsList =-             '["https://www.googleapis.com/auth/classroom.rosters",-               "https://www.googleapis.com/auth/classroom.rosters.readonly"]-        requestClient InvitationsList'{..}-          = go _ilXgafv _ilUploadProtocol _ilCourseId-              _ilAccessToken-              _ilUploadType-              _ilUserId-              _ilPageToken-              _ilPageSize-              _ilCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy InvitationsListResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Registrations/Create.hs
@@ -1,190 +0,0 @@-{-# 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.Registrations.Create--- 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)------ Creates a \`Registration\`, causing Classroom to start sending--- notifications from the provided \`feed\` to the destination provided in--- \`cloudPubSubTopic\`. Returns the created \`Registration\`. Currently,--- this will be the same as the argument, but with server-assigned fields--- such as \`expiry_time\` and \`id\` filled in. Note that any value--- specified for the \`expiry_time\` or \`id\` fields will be ignored.--- While Classroom may validate the \`cloudPubSubTopic\` and return errors--- on a best effort basis, it is the caller\'s responsibility to ensure--- that it exists and that Classroom has permission to publish to it. This--- method may return the following error codes: * \`PERMISSION_DENIED\` if:--- * the authenticated user does not have permission to receive--- notifications from the requested field; or * the credential provided--- does not include the appropriate scope for the requested feed. * another--- access error is encountered. * \`INVALID_ARGUMENT\` if: * no--- \`cloudPubsubTopic\` is specified, or the specified \`cloudPubsubTopic\`--- is not valid; or * no \`feed\` is specified, or the specified \`feed\`--- is not valid. * \`NOT_FOUND\` if: * the specified \`feed\` cannot be--- located, or the requesting user does not have permission to determine--- whether or not it exists; or * the specified \`cloudPubsubTopic\` cannot--- be located, or Classroom has not been granted permission to publish to--- it.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.registrations.create@.-module Network.Google.Resource.Classroom.Registrations.Create-    (-    -- * REST Resource-      RegistrationsCreateResource--    -- * Creating a Request-    , registrationsCreate-    , RegistrationsCreate--    -- * Request Lenses-    , rcXgafv-    , rcUploadProtocol-    , rcAccessToken-    , rcUploadType-    , rcPayload-    , rcCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.registrations.create@ method which the--- 'RegistrationsCreate' request conforms to.-type RegistrationsCreateResource =-     "v1" :>-       "registrations" :>-         QueryParam "$.xgafv" Xgafv :>-           QueryParam "upload_protocol" Text :>-             QueryParam "access_token" Text :>-               QueryParam "uploadType" Text :>-                 QueryParam "callback" Text :>-                   QueryParam "alt" AltJSON :>-                     ReqBody '[JSON] Registration :>-                       Post '[JSON] Registration---- | Creates a \`Registration\`, causing Classroom to start sending--- notifications from the provided \`feed\` to the destination provided in--- \`cloudPubSubTopic\`. Returns the created \`Registration\`. Currently,--- this will be the same as the argument, but with server-assigned fields--- such as \`expiry_time\` and \`id\` filled in. Note that any value--- specified for the \`expiry_time\` or \`id\` fields will be ignored.--- While Classroom may validate the \`cloudPubSubTopic\` and return errors--- on a best effort basis, it is the caller\'s responsibility to ensure--- that it exists and that Classroom has permission to publish to it. This--- method may return the following error codes: * \`PERMISSION_DENIED\` if:--- * the authenticated user does not have permission to receive--- notifications from the requested field; or * the credential provided--- does not include the appropriate scope for the requested feed. * another--- access error is encountered. * \`INVALID_ARGUMENT\` if: * no--- \`cloudPubsubTopic\` is specified, or the specified \`cloudPubsubTopic\`--- is not valid; or * no \`feed\` is specified, or the specified \`feed\`--- is not valid. * \`NOT_FOUND\` if: * the specified \`feed\` cannot be--- located, or the requesting user does not have permission to determine--- whether or not it exists; or * the specified \`cloudPubsubTopic\` cannot--- be located, or Classroom has not been granted permission to publish to--- it.------ /See:/ 'registrationsCreate' smart constructor.-data RegistrationsCreate =-  RegistrationsCreate'-    { _rcXgafv          :: !(Maybe Xgafv)-    , _rcUploadProtocol :: !(Maybe Text)-    , _rcAccessToken    :: !(Maybe Text)-    , _rcUploadType     :: !(Maybe Text)-    , _rcPayload        :: !Registration-    , _rcCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'RegistrationsCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rcXgafv'------ * 'rcUploadProtocol'------ * 'rcAccessToken'------ * 'rcUploadType'------ * 'rcPayload'------ * 'rcCallback'-registrationsCreate-    :: Registration -- ^ 'rcPayload'-    -> RegistrationsCreate-registrationsCreate pRcPayload_ =-  RegistrationsCreate'-    { _rcXgafv = Nothing-    , _rcUploadProtocol = Nothing-    , _rcAccessToken = Nothing-    , _rcUploadType = Nothing-    , _rcPayload = pRcPayload_-    , _rcCallback = Nothing-    }----- | V1 error format.-rcXgafv :: Lens' RegistrationsCreate (Maybe Xgafv)-rcXgafv = lens _rcXgafv (\ s a -> s{_rcXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-rcUploadProtocol :: Lens' RegistrationsCreate (Maybe Text)-rcUploadProtocol-  = lens _rcUploadProtocol-      (\ s a -> s{_rcUploadProtocol = a})---- | OAuth access token.-rcAccessToken :: Lens' RegistrationsCreate (Maybe Text)-rcAccessToken-  = lens _rcAccessToken-      (\ s a -> s{_rcAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-rcUploadType :: Lens' RegistrationsCreate (Maybe Text)-rcUploadType-  = lens _rcUploadType (\ s a -> s{_rcUploadType = a})---- | Multipart request metadata.-rcPayload :: Lens' RegistrationsCreate Registration-rcPayload-  = lens _rcPayload (\ s a -> s{_rcPayload = a})---- | JSONP-rcCallback :: Lens' RegistrationsCreate (Maybe Text)-rcCallback-  = lens _rcCallback (\ s a -> s{_rcCallback = a})--instance GoogleRequest RegistrationsCreate where-        type Rs RegistrationsCreate = Registration-        type Scopes RegistrationsCreate =-             '["https://www.googleapis.com/auth/classroom.push-notifications"]-        requestClient RegistrationsCreate'{..}-          = go _rcXgafv _rcUploadProtocol _rcAccessToken-              _rcUploadType-              _rcCallback-              (Just AltJSON)-              _rcPayload-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy RegistrationsCreateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/Registrations/Delete.hs
@@ -1,152 +0,0 @@-{-# 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.Registrations.Delete--- 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)------ Deletes a \`Registration\`, causing Classroom to stop sending--- notifications for that \`Registration\`.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.registrations.delete@.-module Network.Google.Resource.Classroom.Registrations.Delete-    (-    -- * REST Resource-      RegistrationsDeleteResource--    -- * Creating a Request-    , registrationsDelete-    , RegistrationsDelete--    -- * Request Lenses-    , rdRegistrationId-    , rdXgafv-    , rdUploadProtocol-    , rdAccessToken-    , rdUploadType-    , rdCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.registrations.delete@ method which the--- 'RegistrationsDelete' request conforms to.-type RegistrationsDeleteResource =-     "v1" :>-       "registrations" :>-         Capture "registrationId" Text :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "callback" Text :>-                     QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes a \`Registration\`, causing Classroom to stop sending--- notifications for that \`Registration\`.------ /See:/ 'registrationsDelete' smart constructor.-data RegistrationsDelete =-  RegistrationsDelete'-    { _rdRegistrationId :: !Text-    , _rdXgafv          :: !(Maybe Xgafv)-    , _rdUploadProtocol :: !(Maybe Text)-    , _rdAccessToken    :: !(Maybe Text)-    , _rdUploadType     :: !(Maybe Text)-    , _rdCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'RegistrationsDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rdRegistrationId'------ * 'rdXgafv'------ * 'rdUploadProtocol'------ * 'rdAccessToken'------ * 'rdUploadType'------ * 'rdCallback'-registrationsDelete-    :: Text -- ^ 'rdRegistrationId'-    -> RegistrationsDelete-registrationsDelete pRdRegistrationId_ =-  RegistrationsDelete'-    { _rdRegistrationId = pRdRegistrationId_-    , _rdXgafv = Nothing-    , _rdUploadProtocol = Nothing-    , _rdAccessToken = Nothing-    , _rdUploadType = Nothing-    , _rdCallback = Nothing-    }----- | The \`registration_id\` of the \`Registration\` to be deleted.-rdRegistrationId :: Lens' RegistrationsDelete Text-rdRegistrationId-  = lens _rdRegistrationId-      (\ s a -> s{_rdRegistrationId = a})---- | V1 error format.-rdXgafv :: Lens' RegistrationsDelete (Maybe Xgafv)-rdXgafv = lens _rdXgafv (\ s a -> s{_rdXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-rdUploadProtocol :: Lens' RegistrationsDelete (Maybe Text)-rdUploadProtocol-  = lens _rdUploadProtocol-      (\ s a -> s{_rdUploadProtocol = a})---- | OAuth access token.-rdAccessToken :: Lens' RegistrationsDelete (Maybe Text)-rdAccessToken-  = lens _rdAccessToken-      (\ s a -> s{_rdAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-rdUploadType :: Lens' RegistrationsDelete (Maybe Text)-rdUploadType-  = lens _rdUploadType (\ s a -> s{_rdUploadType = a})---- | JSONP-rdCallback :: Lens' RegistrationsDelete (Maybe Text)-rdCallback-  = lens _rdCallback (\ s a -> s{_rdCallback = a})--instance GoogleRequest RegistrationsDelete where-        type Rs RegistrationsDelete = Empty-        type Scopes RegistrationsDelete =-             '["https://www.googleapis.com/auth/classroom.push-notifications"]-        requestClient RegistrationsDelete'{..}-          = go _rdRegistrationId _rdXgafv _rdUploadProtocol-              _rdAccessToken-              _rdUploadType-              _rdCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy RegistrationsDeleteResource)-                      mempty
− gen/Network/Google/Resource/Classroom/UserProFiles/Get.hs
@@ -1,162 +0,0 @@-{-# 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.UserProFiles.Get--- 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 user profile. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- this user profile, if no profile exists with the requested ID, or for--- access errors.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.get@.-module Network.Google.Resource.Classroom.UserProFiles.Get-    (-    -- * REST Resource-      UserProFilesGetResource--    -- * Creating a Request-    , userProFilesGet-    , UserProFilesGet--    -- * Request Lenses-    , upfgXgafv-    , upfgUploadProtocol-    , upfgAccessToken-    , upfgUploadType-    , upfgUserId-    , upfgCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.userProfiles.get@ method which the--- 'UserProFilesGet' request conforms to.-type UserProFilesGetResource =-     "v1" :>-       "userProfiles" :>-         Capture "userId" Text :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "callback" Text :>-                     QueryParam "alt" AltJSON :> Get '[JSON] UserProFile---- | Returns a user profile. This method returns the following error codes: *--- \`PERMISSION_DENIED\` if the requesting user is not permitted to access--- this user profile, if no profile exists with the requested ID, or for--- access errors.------ /See:/ 'userProFilesGet' smart constructor.-data UserProFilesGet =-  UserProFilesGet'-    { _upfgXgafv          :: !(Maybe Xgafv)-    , _upfgUploadProtocol :: !(Maybe Text)-    , _upfgAccessToken    :: !(Maybe Text)-    , _upfgUploadType     :: !(Maybe Text)-    , _upfgUserId         :: !Text-    , _upfgCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserProFilesGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upfgXgafv'------ * 'upfgUploadProtocol'------ * 'upfgAccessToken'------ * 'upfgUploadType'------ * 'upfgUserId'------ * 'upfgCallback'-userProFilesGet-    :: Text -- ^ 'upfgUserId'-    -> UserProFilesGet-userProFilesGet pUpfgUserId_ =-  UserProFilesGet'-    { _upfgXgafv = Nothing-    , _upfgUploadProtocol = Nothing-    , _upfgAccessToken = Nothing-    , _upfgUploadType = Nothing-    , _upfgUserId = pUpfgUserId_-    , _upfgCallback = Nothing-    }----- | V1 error format.-upfgXgafv :: Lens' UserProFilesGet (Maybe Xgafv)-upfgXgafv-  = lens _upfgXgafv (\ s a -> s{_upfgXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-upfgUploadProtocol :: Lens' UserProFilesGet (Maybe Text)-upfgUploadProtocol-  = lens _upfgUploadProtocol-      (\ s a -> s{_upfgUploadProtocol = a})---- | OAuth access token.-upfgAccessToken :: Lens' UserProFilesGet (Maybe Text)-upfgAccessToken-  = lens _upfgAccessToken-      (\ s a -> s{_upfgAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-upfgUploadType :: Lens' UserProFilesGet (Maybe Text)-upfgUploadType-  = lens _upfgUploadType-      (\ s a -> s{_upfgUploadType = a})---- | Identifier of the profile to return. The identifier can be one of the--- following: * the numeric identifier for the user * the email address of--- the user * the string literal \`\"me\"\`, indicating the requesting user-upfgUserId :: Lens' UserProFilesGet Text-upfgUserId-  = lens _upfgUserId (\ s a -> s{_upfgUserId = a})---- | JSONP-upfgCallback :: Lens' UserProFilesGet (Maybe Text)-upfgCallback-  = lens _upfgCallback (\ s a -> s{_upfgCallback = a})--instance GoogleRequest UserProFilesGet where-        type Rs UserProFilesGet = UserProFile-        type Scopes UserProFilesGet =-             '["https://www.googleapis.com/auth/classroom.profile.emails",-               "https://www.googleapis.com/auth/classroom.profile.photos",-               "https://www.googleapis.com/auth/classroom.rosters",-               "https://www.googleapis.com/auth/classroom.rosters.readonly"]-        requestClient UserProFilesGet'{..}-          = go _upfgUserId _upfgXgafv _upfgUploadProtocol-              _upfgAccessToken-              _upfgUploadType-              _upfgCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy UserProFilesGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Create.hs
@@ -1,221 +0,0 @@-{-# 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.UserProFiles.GuardianInvitations.Create--- 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)------ Creates a guardian invitation, and sends an email to the guardian asking--- them to confirm that they are the student\'s guardian. Once the guardian--- accepts the invitation, their \`state\` will change to \`COMPLETED\` and--- they will start receiving guardian notifications. A \`Guardian\`--- resource will also be created to represent the active guardian. The--- request object must have the \`student_id\` and--- \`invited_email_address\` fields set. Failing to set these fields, or--- setting any other fields in the request, will result in an error. This--- method returns the following error codes: * \`PERMISSION_DENIED\` if the--- current user does not have permission to manage guardians, if the--- guardian in question has already rejected too many requests for that--- student, if guardians are not enabled for the domain in question, or for--- other access errors. * \`RESOURCE_EXHAUSTED\` if the student or guardian--- has exceeded the guardian link limit. * \`INVALID_ARGUMENT\` if the--- guardian email address is not valid (for example, if it is too long), or--- if the format of the student ID provided cannot be recognized (it is not--- an email address, nor a \`user_id\` from this API). This error will also--- be returned if read-only fields are set, or if the \`state\` field is--- set to to a value other than \`PENDING\`. * \`NOT_FOUND\` if the student--- ID provided is a valid student ID, but Classroom has no record of that--- student. * \`ALREADY_EXISTS\` if there is already a pending guardian--- invitation for the student and \`invited_email_address\` provided, or if--- the provided \`invited_email_address\` matches the Google account of an--- existing \`Guardian\` for this user.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.create@.-module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create-    (-    -- * REST Resource-      UserProFilesGuardianInvitationsCreateResource--    -- * Creating a Request-    , userProFilesGuardianInvitationsCreate-    , UserProFilesGuardianInvitationsCreate--    -- * Request Lenses-    , upfgicStudentId-    , upfgicXgafv-    , upfgicUploadProtocol-    , upfgicAccessToken-    , upfgicUploadType-    , upfgicPayload-    , upfgicCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.userProfiles.guardianInvitations.create@ method which the--- 'UserProFilesGuardianInvitationsCreate' request conforms to.-type UserProFilesGuardianInvitationsCreateResource =-     "v1" :>-       "userProfiles" :>-         Capture "studentId" Text :>-           "guardianInvitations" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "callback" Text :>-                       QueryParam "alt" AltJSON :>-                         ReqBody '[JSON] GuardianInvitation :>-                           Post '[JSON] GuardianInvitation---- | Creates a guardian invitation, and sends an email to the guardian asking--- them to confirm that they are the student\'s guardian. Once the guardian--- accepts the invitation, their \`state\` will change to \`COMPLETED\` and--- they will start receiving guardian notifications. A \`Guardian\`--- resource will also be created to represent the active guardian. The--- request object must have the \`student_id\` and--- \`invited_email_address\` fields set. Failing to set these fields, or--- setting any other fields in the request, will result in an error. This--- method returns the following error codes: * \`PERMISSION_DENIED\` if the--- current user does not have permission to manage guardians, if the--- guardian in question has already rejected too many requests for that--- student, if guardians are not enabled for the domain in question, or for--- other access errors. * \`RESOURCE_EXHAUSTED\` if the student or guardian--- has exceeded the guardian link limit. * \`INVALID_ARGUMENT\` if the--- guardian email address is not valid (for example, if it is too long), or--- if the format of the student ID provided cannot be recognized (it is not--- an email address, nor a \`user_id\` from this API). This error will also--- be returned if read-only fields are set, or if the \`state\` field is--- set to to a value other than \`PENDING\`. * \`NOT_FOUND\` if the student--- ID provided is a valid student ID, but Classroom has no record of that--- student. * \`ALREADY_EXISTS\` if there is already a pending guardian--- invitation for the student and \`invited_email_address\` provided, or if--- the provided \`invited_email_address\` matches the Google account of an--- existing \`Guardian\` for this user.------ /See:/ 'userProFilesGuardianInvitationsCreate' smart constructor.-data UserProFilesGuardianInvitationsCreate =-  UserProFilesGuardianInvitationsCreate'-    { _upfgicStudentId      :: !Text-    , _upfgicXgafv          :: !(Maybe Xgafv)-    , _upfgicUploadProtocol :: !(Maybe Text)-    , _upfgicAccessToken    :: !(Maybe Text)-    , _upfgicUploadType     :: !(Maybe Text)-    , _upfgicPayload        :: !GuardianInvitation-    , _upfgicCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserProFilesGuardianInvitationsCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upfgicStudentId'------ * 'upfgicXgafv'------ * 'upfgicUploadProtocol'------ * 'upfgicAccessToken'------ * 'upfgicUploadType'------ * 'upfgicPayload'------ * 'upfgicCallback'-userProFilesGuardianInvitationsCreate-    :: Text -- ^ 'upfgicStudentId'-    -> GuardianInvitation -- ^ 'upfgicPayload'-    -> UserProFilesGuardianInvitationsCreate-userProFilesGuardianInvitationsCreate pUpfgicStudentId_ pUpfgicPayload_ =-  UserProFilesGuardianInvitationsCreate'-    { _upfgicStudentId = pUpfgicStudentId_-    , _upfgicXgafv = Nothing-    , _upfgicUploadProtocol = Nothing-    , _upfgicAccessToken = Nothing-    , _upfgicUploadType = Nothing-    , _upfgicPayload = pUpfgicPayload_-    , _upfgicCallback = Nothing-    }----- | ID of the student (in standard format)-upfgicStudentId :: Lens' UserProFilesGuardianInvitationsCreate Text-upfgicStudentId-  = lens _upfgicStudentId-      (\ s a -> s{_upfgicStudentId = a})---- | V1 error format.-upfgicXgafv :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Xgafv)-upfgicXgafv-  = lens _upfgicXgafv (\ s a -> s{_upfgicXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-upfgicUploadProtocol :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)-upfgicUploadProtocol-  = lens _upfgicUploadProtocol-      (\ s a -> s{_upfgicUploadProtocol = a})---- | OAuth access token.-upfgicAccessToken :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)-upfgicAccessToken-  = lens _upfgicAccessToken-      (\ s a -> s{_upfgicAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-upfgicUploadType :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)-upfgicUploadType-  = lens _upfgicUploadType-      (\ s a -> s{_upfgicUploadType = a})---- | Multipart request metadata.-upfgicPayload :: Lens' UserProFilesGuardianInvitationsCreate GuardianInvitation-upfgicPayload-  = lens _upfgicPayload-      (\ s a -> s{_upfgicPayload = a})---- | JSONP-upfgicCallback :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)-upfgicCallback-  = lens _upfgicCallback-      (\ s a -> s{_upfgicCallback = a})--instance GoogleRequest-           UserProFilesGuardianInvitationsCreate-         where-        type Rs UserProFilesGuardianInvitationsCreate =-             GuardianInvitation-        type Scopes UserProFilesGuardianInvitationsCreate =-             '["https://www.googleapis.com/auth/classroom.guardianlinks.students"]-        requestClient-          UserProFilesGuardianInvitationsCreate'{..}-          = go _upfgicStudentId _upfgicXgafv-              _upfgicUploadProtocol-              _upfgicAccessToken-              _upfgicUploadType-              _upfgicCallback-              (Just AltJSON)-              _upfgicPayload-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy UserProFilesGuardianInvitationsCreateResource)-                      mempty
− gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Get.hs
@@ -1,195 +0,0 @@-{-# 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.UserProFiles.GuardianInvitations.Get--- 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 specific guardian invitation. This method returns the--- following error codes: * \`PERMISSION_DENIED\` if the requesting user is--- not permitted to view guardian invitations for the student identified by--- the \`student_id\`, if guardians are not enabled for the domain in--- question, or for other access errors. * \`INVALID_ARGUMENT\` if a--- \`student_id\` is specified, but its format cannot be recognized (it is--- not an email address, nor a \`student_id\` from the API, nor the literal--- string \`me\`). * \`NOT_FOUND\` if Classroom cannot find any record of--- the given student or \`invitation_id\`. May also be returned if the--- student exists, but the requesting user does not have access to see that--- student.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.get@.-module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get-    (-    -- * REST Resource-      UserProFilesGuardianInvitationsGetResource--    -- * Creating a Request-    , userProFilesGuardianInvitationsGet-    , UserProFilesGuardianInvitationsGet--    -- * Request Lenses-    , upfgigStudentId-    , upfgigXgafv-    , upfgigUploadProtocol-    , upfgigAccessToken-    , upfgigUploadType-    , upfgigInvitationId-    , upfgigCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.userProfiles.guardianInvitations.get@ method which the--- 'UserProFilesGuardianInvitationsGet' request conforms to.-type UserProFilesGuardianInvitationsGetResource =-     "v1" :>-       "userProfiles" :>-         Capture "studentId" Text :>-           "guardianInvitations" :>-             Capture "invitationId" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :>-                           Get '[JSON] GuardianInvitation---- | Returns a specific guardian invitation. This method returns the--- following error codes: * \`PERMISSION_DENIED\` if the requesting user is--- not permitted to view guardian invitations for the student identified by--- the \`student_id\`, if guardians are not enabled for the domain in--- question, or for other access errors. * \`INVALID_ARGUMENT\` if a--- \`student_id\` is specified, but its format cannot be recognized (it is--- not an email address, nor a \`student_id\` from the API, nor the literal--- string \`me\`). * \`NOT_FOUND\` if Classroom cannot find any record of--- the given student or \`invitation_id\`. May also be returned if the--- student exists, but the requesting user does not have access to see that--- student.------ /See:/ 'userProFilesGuardianInvitationsGet' smart constructor.-data UserProFilesGuardianInvitationsGet =-  UserProFilesGuardianInvitationsGet'-    { _upfgigStudentId      :: !Text-    , _upfgigXgafv          :: !(Maybe Xgafv)-    , _upfgigUploadProtocol :: !(Maybe Text)-    , _upfgigAccessToken    :: !(Maybe Text)-    , _upfgigUploadType     :: !(Maybe Text)-    , _upfgigInvitationId   :: !Text-    , _upfgigCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserProFilesGuardianInvitationsGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upfgigStudentId'------ * 'upfgigXgafv'------ * 'upfgigUploadProtocol'------ * 'upfgigAccessToken'------ * 'upfgigUploadType'------ * 'upfgigInvitationId'------ * 'upfgigCallback'-userProFilesGuardianInvitationsGet-    :: Text -- ^ 'upfgigStudentId'-    -> Text -- ^ 'upfgigInvitationId'-    -> UserProFilesGuardianInvitationsGet-userProFilesGuardianInvitationsGet pUpfgigStudentId_ pUpfgigInvitationId_ =-  UserProFilesGuardianInvitationsGet'-    { _upfgigStudentId = pUpfgigStudentId_-    , _upfgigXgafv = Nothing-    , _upfgigUploadProtocol = Nothing-    , _upfgigAccessToken = Nothing-    , _upfgigUploadType = Nothing-    , _upfgigInvitationId = pUpfgigInvitationId_-    , _upfgigCallback = Nothing-    }----- | The ID of the student whose guardian invitation is being requested.-upfgigStudentId :: Lens' UserProFilesGuardianInvitationsGet Text-upfgigStudentId-  = lens _upfgigStudentId-      (\ s a -> s{_upfgigStudentId = a})---- | V1 error format.-upfgigXgafv :: Lens' UserProFilesGuardianInvitationsGet (Maybe Xgafv)-upfgigXgafv-  = lens _upfgigXgafv (\ s a -> s{_upfgigXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-upfgigUploadProtocol :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)-upfgigUploadProtocol-  = lens _upfgigUploadProtocol-      (\ s a -> s{_upfgigUploadProtocol = a})---- | OAuth access token.-upfgigAccessToken :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)-upfgigAccessToken-  = lens _upfgigAccessToken-      (\ s a -> s{_upfgigAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-upfgigUploadType :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)-upfgigUploadType-  = lens _upfgigUploadType-      (\ s a -> s{_upfgigUploadType = a})---- | The \`id\` field of the \`GuardianInvitation\` being requested.-upfgigInvitationId :: Lens' UserProFilesGuardianInvitationsGet Text-upfgigInvitationId-  = lens _upfgigInvitationId-      (\ s a -> s{_upfgigInvitationId = a})---- | JSONP-upfgigCallback :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)-upfgigCallback-  = lens _upfgigCallback-      (\ s a -> s{_upfgigCallback = a})--instance GoogleRequest-           UserProFilesGuardianInvitationsGet-         where-        type Rs UserProFilesGuardianInvitationsGet =-             GuardianInvitation-        type Scopes UserProFilesGuardianInvitationsGet =-             '["https://www.googleapis.com/auth/classroom.guardianlinks.students",-               "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"]-        requestClient UserProFilesGuardianInvitationsGet'{..}-          = go _upfgigStudentId _upfgigInvitationId-              _upfgigXgafv-              _upfgigUploadProtocol-              _upfgigAccessToken-              _upfgigUploadType-              _upfgigCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy UserProFilesGuardianInvitationsGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/List.hs
@@ -1,252 +0,0 @@-{-# 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.UserProFiles.GuardianInvitations.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 guardian invitations that the requesting user is--- permitted to view, filtered by the parameters provided. This method--- returns the following error codes: * \`PERMISSION_DENIED\` if a--- \`student_id\` is specified, and the requesting user is not permitted to--- view guardian invitations for that student, if \`\"-\"\` is specified as--- the \`student_id\` and the user is not a domain administrator, if--- guardians are not enabled for the domain in question, or for other--- access errors. * \`INVALID_ARGUMENT\` if a \`student_id\` is specified,--- but its format cannot be recognized (it is not an email address, nor a--- \`student_id\` from the API, nor the literal string \`me\`). May also be--- returned if an invalid \`page_token\` or \`state\` is provided. *--- \`NOT_FOUND\` if a \`student_id\` is specified, and its format can be--- recognized, but Classroom has no record of that student.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.list@.-module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List-    (-    -- * REST Resource-      UserProFilesGuardianInvitationsListResource--    -- * Creating a Request-    , userProFilesGuardianInvitationsList-    , UserProFilesGuardianInvitationsList--    -- * Request Lenses-    , upfgilStudentId-    , upfgilStates-    , upfgilXgafv-    , upfgilUploadProtocol-    , upfgilAccessToken-    , upfgilUploadType-    , upfgilInvitedEmailAddress-    , upfgilPageToken-    , upfgilPageSize-    , upfgilCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.userProfiles.guardianInvitations.list@ method which the--- 'UserProFilesGuardianInvitationsList' request conforms to.-type UserProFilesGuardianInvitationsListResource =-     "v1" :>-       "userProfiles" :>-         Capture "studentId" Text :>-           "guardianInvitations" :>-             QueryParams "states" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "invitedEmailAddress" Text :>-                         QueryParam "pageToken" Text :>-                           QueryParam "pageSize" (Textual Int32) :>-                             QueryParam "callback" Text :>-                               QueryParam "alt" AltJSON :>-                                 Get '[JSON] ListGuardianInvitationsResponse---- | Returns a list of guardian invitations that the requesting user is--- permitted to view, filtered by the parameters provided. This method--- returns the following error codes: * \`PERMISSION_DENIED\` if a--- \`student_id\` is specified, and the requesting user is not permitted to--- view guardian invitations for that student, if \`\"-\"\` is specified as--- the \`student_id\` and the user is not a domain administrator, if--- guardians are not enabled for the domain in question, or for other--- access errors. * \`INVALID_ARGUMENT\` if a \`student_id\` is specified,--- but its format cannot be recognized (it is not an email address, nor a--- \`student_id\` from the API, nor the literal string \`me\`). May also be--- returned if an invalid \`page_token\` or \`state\` is provided. *--- \`NOT_FOUND\` if a \`student_id\` is specified, and its format can be--- recognized, but Classroom has no record of that student.------ /See:/ 'userProFilesGuardianInvitationsList' smart constructor.-data UserProFilesGuardianInvitationsList =-  UserProFilesGuardianInvitationsList'-    { _upfgilStudentId           :: !Text-    , _upfgilStates              :: !(Maybe [Text])-    , _upfgilXgafv               :: !(Maybe Xgafv)-    , _upfgilUploadProtocol      :: !(Maybe Text)-    , _upfgilAccessToken         :: !(Maybe Text)-    , _upfgilUploadType          :: !(Maybe Text)-    , _upfgilInvitedEmailAddress :: !(Maybe Text)-    , _upfgilPageToken           :: !(Maybe Text)-    , _upfgilPageSize            :: !(Maybe (Textual Int32))-    , _upfgilCallback            :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserProFilesGuardianInvitationsList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upfgilStudentId'------ * 'upfgilStates'------ * 'upfgilXgafv'------ * 'upfgilUploadProtocol'------ * 'upfgilAccessToken'------ * 'upfgilUploadType'------ * 'upfgilInvitedEmailAddress'------ * 'upfgilPageToken'------ * 'upfgilPageSize'------ * 'upfgilCallback'-userProFilesGuardianInvitationsList-    :: Text -- ^ 'upfgilStudentId'-    -> UserProFilesGuardianInvitationsList-userProFilesGuardianInvitationsList pUpfgilStudentId_ =-  UserProFilesGuardianInvitationsList'-    { _upfgilStudentId = pUpfgilStudentId_-    , _upfgilStates = Nothing-    , _upfgilXgafv = Nothing-    , _upfgilUploadProtocol = Nothing-    , _upfgilAccessToken = Nothing-    , _upfgilUploadType = Nothing-    , _upfgilInvitedEmailAddress = Nothing-    , _upfgilPageToken = Nothing-    , _upfgilPageSize = Nothing-    , _upfgilCallback = Nothing-    }----- | The ID of the student whose guardian invitations are to be returned. The--- identifier can be one of the following: * the numeric identifier for the--- user * the email address of the user * the string literal \`\"me\"\`,--- indicating the requesting user * the string literal \`\"-\"\`,--- indicating that results should be returned for all students that the--- requesting user is permitted to view guardian invitations.-upfgilStudentId :: Lens' UserProFilesGuardianInvitationsList Text-upfgilStudentId-  = lens _upfgilStudentId-      (\ s a -> s{_upfgilStudentId = a})---- | If specified, only results with the specified \`state\` values will be--- returned. Otherwise, results with a \`state\` of \`PENDING\` will be--- returned.-upfgilStates :: Lens' UserProFilesGuardianInvitationsList [Text]-upfgilStates-  = lens _upfgilStates (\ s a -> s{_upfgilStates = a})-      . _Default-      . _Coerce---- | V1 error format.-upfgilXgafv :: Lens' UserProFilesGuardianInvitationsList (Maybe Xgafv)-upfgilXgafv-  = lens _upfgilXgafv (\ s a -> s{_upfgilXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-upfgilUploadProtocol :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)-upfgilUploadProtocol-  = lens _upfgilUploadProtocol-      (\ s a -> s{_upfgilUploadProtocol = a})---- | OAuth access token.-upfgilAccessToken :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)-upfgilAccessToken-  = lens _upfgilAccessToken-      (\ s a -> s{_upfgilAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-upfgilUploadType :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)-upfgilUploadType-  = lens _upfgilUploadType-      (\ s a -> s{_upfgilUploadType = a})---- | If specified, only results with the specified \`invited_email_address\`--- will be returned.-upfgilInvitedEmailAddress :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)-upfgilInvitedEmailAddress-  = lens _upfgilInvitedEmailAddress-      (\ s a -> s{_upfgilInvitedEmailAddress = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-upfgilPageToken :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)-upfgilPageToken-  = lens _upfgilPageToken-      (\ s a -> s{_upfgilPageToken = a})---- | Maximum number of items to return. Zero or unspecified indicates that--- the server may assign a maximum. The server may return fewer than the--- specified number of results.-upfgilPageSize :: Lens' UserProFilesGuardianInvitationsList (Maybe Int32)-upfgilPageSize-  = lens _upfgilPageSize-      (\ s a -> s{_upfgilPageSize = a})-      . mapping _Coerce---- | JSONP-upfgilCallback :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)-upfgilCallback-  = lens _upfgilCallback-      (\ s a -> s{_upfgilCallback = a})--instance GoogleRequest-           UserProFilesGuardianInvitationsList-         where-        type Rs UserProFilesGuardianInvitationsList =-             ListGuardianInvitationsResponse-        type Scopes UserProFilesGuardianInvitationsList =-             '["https://www.googleapis.com/auth/classroom.guardianlinks.students",-               "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"]-        requestClient-          UserProFilesGuardianInvitationsList'{..}-          = go _upfgilStudentId (_upfgilStates ^. _Default)-              _upfgilXgafv-              _upfgilUploadProtocol-              _upfgilAccessToken-              _upfgilUploadType-              _upfgilInvitedEmailAddress-              _upfgilPageToken-              _upfgilPageSize-              _upfgilCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy UserProFilesGuardianInvitationsListResource)-                      mempty
− gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Patch.hs
@@ -1,231 +0,0 @@-{-# 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.UserProFiles.GuardianInvitations.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)------ Modifies a guardian invitation. Currently, the only valid modification--- is to change the \`state\` from \`PENDING\` to \`COMPLETE\`. This has--- the effect of withdrawing the invitation. This method returns the--- following error codes: * \`PERMISSION_DENIED\` if the current user does--- not have permission to manage guardians, if guardians are not enabled--- for the domain in question or for other access errors. *--- \`FAILED_PRECONDITION\` if the guardian link is not in the \`PENDING\`--- state. * \`INVALID_ARGUMENT\` if the format of the student ID provided--- cannot be recognized (it is not an email address, nor a \`user_id\` from--- this API), or if the passed \`GuardianInvitation\` has a \`state\` other--- than \`COMPLETE\`, or if it modifies fields other than \`state\`. *--- \`NOT_FOUND\` if the student ID provided is a valid student ID, but--- Classroom has no record of that student, or if the \`id\` field does not--- refer to a guardian invitation known to Classroom.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.patch@.-module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch-    (-    -- * REST Resource-      UserProFilesGuardianInvitationsPatchResource--    -- * Creating a Request-    , userProFilesGuardianInvitationsPatch-    , UserProFilesGuardianInvitationsPatch--    -- * Request Lenses-    , upfgipStudentId-    , upfgipXgafv-    , upfgipUploadProtocol-    , upfgipUpdateMask-    , upfgipAccessToken-    , upfgipUploadType-    , upfgipPayload-    , upfgipInvitationId-    , upfgipCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.userProfiles.guardianInvitations.patch@ method which the--- 'UserProFilesGuardianInvitationsPatch' request conforms to.-type UserProFilesGuardianInvitationsPatchResource =-     "v1" :>-       "userProfiles" :>-         Capture "studentId" Text :>-           "guardianInvitations" :>-             Capture "invitationId" 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] GuardianInvitation :>-                               Patch '[JSON] GuardianInvitation---- | Modifies a guardian invitation. Currently, the only valid modification--- is to change the \`state\` from \`PENDING\` to \`COMPLETE\`. This has--- the effect of withdrawing the invitation. This method returns the--- following error codes: * \`PERMISSION_DENIED\` if the current user does--- not have permission to manage guardians, if guardians are not enabled--- for the domain in question or for other access errors. *--- \`FAILED_PRECONDITION\` if the guardian link is not in the \`PENDING\`--- state. * \`INVALID_ARGUMENT\` if the format of the student ID provided--- cannot be recognized (it is not an email address, nor a \`user_id\` from--- this API), or if the passed \`GuardianInvitation\` has a \`state\` other--- than \`COMPLETE\`, or if it modifies fields other than \`state\`. *--- \`NOT_FOUND\` if the student ID provided is a valid student ID, but--- Classroom has no record of that student, or if the \`id\` field does not--- refer to a guardian invitation known to Classroom.------ /See:/ 'userProFilesGuardianInvitationsPatch' smart constructor.-data UserProFilesGuardianInvitationsPatch =-  UserProFilesGuardianInvitationsPatch'-    { _upfgipStudentId      :: !Text-    , _upfgipXgafv          :: !(Maybe Xgafv)-    , _upfgipUploadProtocol :: !(Maybe Text)-    , _upfgipUpdateMask     :: !(Maybe GFieldMask)-    , _upfgipAccessToken    :: !(Maybe Text)-    , _upfgipUploadType     :: !(Maybe Text)-    , _upfgipPayload        :: !GuardianInvitation-    , _upfgipInvitationId   :: !Text-    , _upfgipCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserProFilesGuardianInvitationsPatch' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upfgipStudentId'------ * 'upfgipXgafv'------ * 'upfgipUploadProtocol'------ * 'upfgipUpdateMask'------ * 'upfgipAccessToken'------ * 'upfgipUploadType'------ * 'upfgipPayload'------ * 'upfgipInvitationId'------ * 'upfgipCallback'-userProFilesGuardianInvitationsPatch-    :: Text -- ^ 'upfgipStudentId'-    -> GuardianInvitation -- ^ 'upfgipPayload'-    -> Text -- ^ 'upfgipInvitationId'-    -> UserProFilesGuardianInvitationsPatch-userProFilesGuardianInvitationsPatch pUpfgipStudentId_ pUpfgipPayload_ pUpfgipInvitationId_ =-  UserProFilesGuardianInvitationsPatch'-    { _upfgipStudentId = pUpfgipStudentId_-    , _upfgipXgafv = Nothing-    , _upfgipUploadProtocol = Nothing-    , _upfgipUpdateMask = Nothing-    , _upfgipAccessToken = Nothing-    , _upfgipUploadType = Nothing-    , _upfgipPayload = pUpfgipPayload_-    , _upfgipInvitationId = pUpfgipInvitationId_-    , _upfgipCallback = Nothing-    }----- | The ID of the student whose guardian invitation is to be modified.-upfgipStudentId :: Lens' UserProFilesGuardianInvitationsPatch Text-upfgipStudentId-  = lens _upfgipStudentId-      (\ s a -> s{_upfgipStudentId = a})---- | V1 error format.-upfgipXgafv :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Xgafv)-upfgipXgafv-  = lens _upfgipXgafv (\ s a -> s{_upfgipXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-upfgipUploadProtocol :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)-upfgipUploadProtocol-  = lens _upfgipUploadProtocol-      (\ s a -> s{_upfgipUploadProtocol = a})---- | Mask that identifies which fields on the course to update. This field is--- required to do an update. The update will fail if invalid fields are--- specified. The following fields are valid: * \`state\` When set in a--- query parameter, this field should be specified as \`updateMask=,,...\`-upfgipUpdateMask :: Lens' UserProFilesGuardianInvitationsPatch (Maybe GFieldMask)-upfgipUpdateMask-  = lens _upfgipUpdateMask-      (\ s a -> s{_upfgipUpdateMask = a})---- | OAuth access token.-upfgipAccessToken :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)-upfgipAccessToken-  = lens _upfgipAccessToken-      (\ s a -> s{_upfgipAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-upfgipUploadType :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)-upfgipUploadType-  = lens _upfgipUploadType-      (\ s a -> s{_upfgipUploadType = a})---- | Multipart request metadata.-upfgipPayload :: Lens' UserProFilesGuardianInvitationsPatch GuardianInvitation-upfgipPayload-  = lens _upfgipPayload-      (\ s a -> s{_upfgipPayload = a})---- | The \`id\` field of the \`GuardianInvitation\` to be modified.-upfgipInvitationId :: Lens' UserProFilesGuardianInvitationsPatch Text-upfgipInvitationId-  = lens _upfgipInvitationId-      (\ s a -> s{_upfgipInvitationId = a})---- | JSONP-upfgipCallback :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)-upfgipCallback-  = lens _upfgipCallback-      (\ s a -> s{_upfgipCallback = a})--instance GoogleRequest-           UserProFilesGuardianInvitationsPatch-         where-        type Rs UserProFilesGuardianInvitationsPatch =-             GuardianInvitation-        type Scopes UserProFilesGuardianInvitationsPatch =-             '["https://www.googleapis.com/auth/classroom.guardianlinks.students"]-        requestClient-          UserProFilesGuardianInvitationsPatch'{..}-          = go _upfgipStudentId _upfgipInvitationId-              _upfgipXgafv-              _upfgipUploadProtocol-              _upfgipUpdateMask-              _upfgipAccessToken-              _upfgipUploadType-              _upfgipCallback-              (Just AltJSON)-              _upfgipPayload-              classroomService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy UserProFilesGuardianInvitationsPatchResource)-                      mempty
− gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs
@@ -1,193 +0,0 @@-{-# 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.UserProFiles.Guardians.Delete--- 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)------ Deletes a guardian. The guardian will no longer receive guardian--- notifications and the guardian will no longer be accessible via the API.--- This method returns the following error codes: * \`PERMISSION_DENIED\`--- if no user that matches the provided \`student_id\` is visible to the--- requesting user, if the requesting user is not permitted to manage--- guardians for the student identified by the \`student_id\`, if guardians--- are not enabled for the domain in question, or for other access errors.--- * \`INVALID_ARGUMENT\` if a \`student_id\` is specified, but its format--- cannot be recognized (it is not an email address, nor a \`student_id\`--- from the API). * \`NOT_FOUND\` if the requesting user is permitted to--- modify guardians for the requested \`student_id\`, but no \`Guardian\`--- record exists for that student with the provided \`guardian_id\`.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.delete@.-module Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete-    (-    -- * REST Resource-      UserProFilesGuardiansDeleteResource--    -- * Creating a Request-    , userProFilesGuardiansDelete-    , UserProFilesGuardiansDelete--    -- * Request Lenses-    , upfgdStudentId-    , upfgdXgafv-    , upfgdUploadProtocol-    , upfgdAccessToken-    , upfgdUploadType-    , upfgdGuardianId-    , upfgdCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.userProfiles.guardians.delete@ method which the--- 'UserProFilesGuardiansDelete' request conforms to.-type UserProFilesGuardiansDeleteResource =-     "v1" :>-       "userProfiles" :>-         Capture "studentId" Text :>-           "guardians" :>-             Capture "guardianId" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes a guardian. The guardian will no longer receive guardian--- notifications and the guardian will no longer be accessible via the API.--- This method returns the following error codes: * \`PERMISSION_DENIED\`--- if no user that matches the provided \`student_id\` is visible to the--- requesting user, if the requesting user is not permitted to manage--- guardians for the student identified by the \`student_id\`, if guardians--- are not enabled for the domain in question, or for other access errors.--- * \`INVALID_ARGUMENT\` if a \`student_id\` is specified, but its format--- cannot be recognized (it is not an email address, nor a \`student_id\`--- from the API). * \`NOT_FOUND\` if the requesting user is permitted to--- modify guardians for the requested \`student_id\`, but no \`Guardian\`--- record exists for that student with the provided \`guardian_id\`.------ /See:/ 'userProFilesGuardiansDelete' smart constructor.-data UserProFilesGuardiansDelete =-  UserProFilesGuardiansDelete'-    { _upfgdStudentId      :: !Text-    , _upfgdXgafv          :: !(Maybe Xgafv)-    , _upfgdUploadProtocol :: !(Maybe Text)-    , _upfgdAccessToken    :: !(Maybe Text)-    , _upfgdUploadType     :: !(Maybe Text)-    , _upfgdGuardianId     :: !Text-    , _upfgdCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserProFilesGuardiansDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upfgdStudentId'------ * 'upfgdXgafv'------ * 'upfgdUploadProtocol'------ * 'upfgdAccessToken'------ * 'upfgdUploadType'------ * 'upfgdGuardianId'------ * 'upfgdCallback'-userProFilesGuardiansDelete-    :: Text -- ^ 'upfgdStudentId'-    -> Text -- ^ 'upfgdGuardianId'-    -> UserProFilesGuardiansDelete-userProFilesGuardiansDelete pUpfgdStudentId_ pUpfgdGuardianId_ =-  UserProFilesGuardiansDelete'-    { _upfgdStudentId = pUpfgdStudentId_-    , _upfgdXgafv = Nothing-    , _upfgdUploadProtocol = Nothing-    , _upfgdAccessToken = Nothing-    , _upfgdUploadType = Nothing-    , _upfgdGuardianId = pUpfgdGuardianId_-    , _upfgdCallback = Nothing-    }----- | The student whose guardian is to be deleted. One of the following: * the--- numeric identifier for the user * the email address of the user * the--- string literal \`\"me\"\`, indicating the requesting user-upfgdStudentId :: Lens' UserProFilesGuardiansDelete Text-upfgdStudentId-  = lens _upfgdStudentId-      (\ s a -> s{_upfgdStudentId = a})---- | V1 error format.-upfgdXgafv :: Lens' UserProFilesGuardiansDelete (Maybe Xgafv)-upfgdXgafv-  = lens _upfgdXgafv (\ s a -> s{_upfgdXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-upfgdUploadProtocol :: Lens' UserProFilesGuardiansDelete (Maybe Text)-upfgdUploadProtocol-  = lens _upfgdUploadProtocol-      (\ s a -> s{_upfgdUploadProtocol = a})---- | OAuth access token.-upfgdAccessToken :: Lens' UserProFilesGuardiansDelete (Maybe Text)-upfgdAccessToken-  = lens _upfgdAccessToken-      (\ s a -> s{_upfgdAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-upfgdUploadType :: Lens' UserProFilesGuardiansDelete (Maybe Text)-upfgdUploadType-  = lens _upfgdUploadType-      (\ s a -> s{_upfgdUploadType = a})---- | The \`id\` field from a \`Guardian\`.-upfgdGuardianId :: Lens' UserProFilesGuardiansDelete Text-upfgdGuardianId-  = lens _upfgdGuardianId-      (\ s a -> s{_upfgdGuardianId = a})---- | JSONP-upfgdCallback :: Lens' UserProFilesGuardiansDelete (Maybe Text)-upfgdCallback-  = lens _upfgdCallback-      (\ s a -> s{_upfgdCallback = a})--instance GoogleRequest UserProFilesGuardiansDelete-         where-        type Rs UserProFilesGuardiansDelete = Empty-        type Scopes UserProFilesGuardiansDelete =-             '["https://www.googleapis.com/auth/classroom.guardianlinks.students"]-        requestClient UserProFilesGuardiansDelete'{..}-          = go _upfgdStudentId _upfgdGuardianId _upfgdXgafv-              _upfgdUploadProtocol-              _upfgdAccessToken-              _upfgdUploadType-              _upfgdCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy UserProFilesGuardiansDeleteResource)-                      mempty
− gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs
@@ -1,194 +0,0 @@-{-# 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.UserProFiles.Guardians.Get--- 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 specific guardian. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if no user that matches the provided--- \`student_id\` is visible to the requesting user, if the requesting user--- is not permitted to view guardian information for the student identified--- by the \`student_id\`, if guardians are not enabled for the domain in--- question, or for other access errors. * \`INVALID_ARGUMENT\` if a--- \`student_id\` is specified, but its format cannot be recognized (it is--- not an email address, nor a \`student_id\` from the API, nor the literal--- string \`me\`). * \`NOT_FOUND\` if the requesting user is permitted to--- view guardians for the requested \`student_id\`, but no \`Guardian\`--- record exists for that student that matches the provided--- \`guardian_id\`.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.get@.-module Network.Google.Resource.Classroom.UserProFiles.Guardians.Get-    (-    -- * REST Resource-      UserProFilesGuardiansGetResource--    -- * Creating a Request-    , userProFilesGuardiansGet-    , UserProFilesGuardiansGet--    -- * Request Lenses-    , upfggStudentId-    , upfggXgafv-    , upfggUploadProtocol-    , upfggAccessToken-    , upfggUploadType-    , upfggGuardianId-    , upfggCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.userProfiles.guardians.get@ method which the--- 'UserProFilesGuardiansGet' request conforms to.-type UserProFilesGuardiansGetResource =-     "v1" :>-       "userProfiles" :>-         Capture "studentId" Text :>-           "guardians" :>-             Capture "guardianId" Text :>-               QueryParam "$.xgafv" Xgafv :>-                 QueryParam "upload_protocol" Text :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Get '[JSON] Guardian---- | Returns a specific guardian. This method returns the following error--- codes: * \`PERMISSION_DENIED\` if no user that matches the provided--- \`student_id\` is visible to the requesting user, if the requesting user--- is not permitted to view guardian information for the student identified--- by the \`student_id\`, if guardians are not enabled for the domain in--- question, or for other access errors. * \`INVALID_ARGUMENT\` if a--- \`student_id\` is specified, but its format cannot be recognized (it is--- not an email address, nor a \`student_id\` from the API, nor the literal--- string \`me\`). * \`NOT_FOUND\` if the requesting user is permitted to--- view guardians for the requested \`student_id\`, but no \`Guardian\`--- record exists for that student that matches the provided--- \`guardian_id\`.------ /See:/ 'userProFilesGuardiansGet' smart constructor.-data UserProFilesGuardiansGet =-  UserProFilesGuardiansGet'-    { _upfggStudentId      :: !Text-    , _upfggXgafv          :: !(Maybe Xgafv)-    , _upfggUploadProtocol :: !(Maybe Text)-    , _upfggAccessToken    :: !(Maybe Text)-    , _upfggUploadType     :: !(Maybe Text)-    , _upfggGuardianId     :: !Text-    , _upfggCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserProFilesGuardiansGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upfggStudentId'------ * 'upfggXgafv'------ * 'upfggUploadProtocol'------ * 'upfggAccessToken'------ * 'upfggUploadType'------ * 'upfggGuardianId'------ * 'upfggCallback'-userProFilesGuardiansGet-    :: Text -- ^ 'upfggStudentId'-    -> Text -- ^ 'upfggGuardianId'-    -> UserProFilesGuardiansGet-userProFilesGuardiansGet pUpfggStudentId_ pUpfggGuardianId_ =-  UserProFilesGuardiansGet'-    { _upfggStudentId = pUpfggStudentId_-    , _upfggXgafv = Nothing-    , _upfggUploadProtocol = Nothing-    , _upfggAccessToken = Nothing-    , _upfggUploadType = Nothing-    , _upfggGuardianId = pUpfggGuardianId_-    , _upfggCallback = Nothing-    }----- | The student whose guardian is being requested. One of the following: *--- the numeric identifier for the user * the email address of the user *--- the string literal \`\"me\"\`, indicating the requesting user-upfggStudentId :: Lens' UserProFilesGuardiansGet Text-upfggStudentId-  = lens _upfggStudentId-      (\ s a -> s{_upfggStudentId = a})---- | V1 error format.-upfggXgafv :: Lens' UserProFilesGuardiansGet (Maybe Xgafv)-upfggXgafv-  = lens _upfggXgafv (\ s a -> s{_upfggXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-upfggUploadProtocol :: Lens' UserProFilesGuardiansGet (Maybe Text)-upfggUploadProtocol-  = lens _upfggUploadProtocol-      (\ s a -> s{_upfggUploadProtocol = a})---- | OAuth access token.-upfggAccessToken :: Lens' UserProFilesGuardiansGet (Maybe Text)-upfggAccessToken-  = lens _upfggAccessToken-      (\ s a -> s{_upfggAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-upfggUploadType :: Lens' UserProFilesGuardiansGet (Maybe Text)-upfggUploadType-  = lens _upfggUploadType-      (\ s a -> s{_upfggUploadType = a})---- | The \`id\` field from a \`Guardian\`.-upfggGuardianId :: Lens' UserProFilesGuardiansGet Text-upfggGuardianId-  = lens _upfggGuardianId-      (\ s a -> s{_upfggGuardianId = a})---- | JSONP-upfggCallback :: Lens' UserProFilesGuardiansGet (Maybe Text)-upfggCallback-  = lens _upfggCallback-      (\ s a -> s{_upfggCallback = a})--instance GoogleRequest UserProFilesGuardiansGet where-        type Rs UserProFilesGuardiansGet = Guardian-        type Scopes UserProFilesGuardiansGet =-             '["https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly",-               "https://www.googleapis.com/auth/classroom.guardianlinks.students",-               "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"]-        requestClient UserProFilesGuardiansGet'{..}-          = go _upfggStudentId _upfggGuardianId _upfggXgafv-              _upfggUploadProtocol-              _upfggAccessToken-              _upfggUploadType-              _upfggCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy UserProFilesGuardiansGetResource)-                      mempty
− gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/List.hs
@@ -1,240 +0,0 @@-{-# 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.UserProFiles.Guardians.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 guardians that the requesting user is permitted to--- view, restricted to those that match the request. To list guardians for--- any student that the requesting user may view guardians for, use the--- literal character \`-\` for the student ID. This method returns the--- following error codes: * \`PERMISSION_DENIED\` if a \`student_id\` is--- specified, and the requesting user is not permitted to view guardian--- information for that student, if \`\"-\"\` is specified as the--- \`student_id\` and the user is not a domain administrator, if guardians--- are not enabled for the domain in question, if the--- \`invited_email_address\` filter is set by a user who is not a domain--- administrator, or for other access errors. * \`INVALID_ARGUMENT\` if a--- \`student_id\` is specified, but its format cannot be recognized (it is--- not an email address, nor a \`student_id\` from the API, nor the literal--- string \`me\`). May also be returned if an invalid \`page_token\` is--- provided. * \`NOT_FOUND\` if a \`student_id\` is specified, and its--- format can be recognized, but Classroom has no record of that student.------ /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.list@.-module Network.Google.Resource.Classroom.UserProFiles.Guardians.List-    (-    -- * REST Resource-      UserProFilesGuardiansListResource--    -- * Creating a Request-    , userProFilesGuardiansList-    , UserProFilesGuardiansList--    -- * Request Lenses-    , upfglStudentId-    , upfglXgafv-    , upfglUploadProtocol-    , upfglAccessToken-    , upfglUploadType-    , upfglInvitedEmailAddress-    , upfglPageToken-    , upfglPageSize-    , upfglCallback-    ) where--import           Network.Google.Classroom.Types-import           Network.Google.Prelude---- | A resource alias for @classroom.userProfiles.guardians.list@ method which the--- 'UserProFilesGuardiansList' request conforms to.-type UserProFilesGuardiansListResource =-     "v1" :>-       "userProfiles" :>-         Capture "studentId" Text :>-           "guardians" :>-             QueryParam "$.xgafv" Xgafv :>-               QueryParam "upload_protocol" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "invitedEmailAddress" Text :>-                       QueryParam "pageToken" Text :>-                         QueryParam "pageSize" (Textual Int32) :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :>-                               Get '[JSON] ListGuardiansResponse---- | Returns a list of guardians that the requesting user is permitted to--- view, restricted to those that match the request. To list guardians for--- any student that the requesting user may view guardians for, use the--- literal character \`-\` for the student ID. This method returns the--- following error codes: * \`PERMISSION_DENIED\` if a \`student_id\` is--- specified, and the requesting user is not permitted to view guardian--- information for that student, if \`\"-\"\` is specified as the--- \`student_id\` and the user is not a domain administrator, if guardians--- are not enabled for the domain in question, if the--- \`invited_email_address\` filter is set by a user who is not a domain--- administrator, or for other access errors. * \`INVALID_ARGUMENT\` if a--- \`student_id\` is specified, but its format cannot be recognized (it is--- not an email address, nor a \`student_id\` from the API, nor the literal--- string \`me\`). May also be returned if an invalid \`page_token\` is--- provided. * \`NOT_FOUND\` if a \`student_id\` is specified, and its--- format can be recognized, but Classroom has no record of that student.------ /See:/ 'userProFilesGuardiansList' smart constructor.-data UserProFilesGuardiansList =-  UserProFilesGuardiansList'-    { _upfglStudentId           :: !Text-    , _upfglXgafv               :: !(Maybe Xgafv)-    , _upfglUploadProtocol      :: !(Maybe Text)-    , _upfglAccessToken         :: !(Maybe Text)-    , _upfglUploadType          :: !(Maybe Text)-    , _upfglInvitedEmailAddress :: !(Maybe Text)-    , _upfglPageToken           :: !(Maybe Text)-    , _upfglPageSize            :: !(Maybe (Textual Int32))-    , _upfglCallback            :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserProFilesGuardiansList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upfglStudentId'------ * 'upfglXgafv'------ * 'upfglUploadProtocol'------ * 'upfglAccessToken'------ * 'upfglUploadType'------ * 'upfglInvitedEmailAddress'------ * 'upfglPageToken'------ * 'upfglPageSize'------ * 'upfglCallback'-userProFilesGuardiansList-    :: Text -- ^ 'upfglStudentId'-    -> UserProFilesGuardiansList-userProFilesGuardiansList pUpfglStudentId_ =-  UserProFilesGuardiansList'-    { _upfglStudentId = pUpfglStudentId_-    , _upfglXgafv = Nothing-    , _upfglUploadProtocol = Nothing-    , _upfglAccessToken = Nothing-    , _upfglUploadType = Nothing-    , _upfglInvitedEmailAddress = Nothing-    , _upfglPageToken = Nothing-    , _upfglPageSize = Nothing-    , _upfglCallback = Nothing-    }----- | Filter results by the student who the guardian is linked to. The--- identifier can be one of the following: * the numeric identifier for the--- user * the email address of the user * the string literal \`\"me\"\`,--- indicating the requesting user * the string literal \`\"-\"\`,--- indicating that results should be returned for all students that the--- requesting user has access to view.-upfglStudentId :: Lens' UserProFilesGuardiansList Text-upfglStudentId-  = lens _upfglStudentId-      (\ s a -> s{_upfglStudentId = a})---- | V1 error format.-upfglXgafv :: Lens' UserProFilesGuardiansList (Maybe Xgafv)-upfglXgafv-  = lens _upfglXgafv (\ s a -> s{_upfglXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-upfglUploadProtocol :: Lens' UserProFilesGuardiansList (Maybe Text)-upfglUploadProtocol-  = lens _upfglUploadProtocol-      (\ s a -> s{_upfglUploadProtocol = a})---- | OAuth access token.-upfglAccessToken :: Lens' UserProFilesGuardiansList (Maybe Text)-upfglAccessToken-  = lens _upfglAccessToken-      (\ s a -> s{_upfglAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-upfglUploadType :: Lens' UserProFilesGuardiansList (Maybe Text)-upfglUploadType-  = lens _upfglUploadType-      (\ s a -> s{_upfglUploadType = a})---- | Filter results by the email address that the original invitation was--- sent to, resulting in this guardian link. This filter can only be used--- by domain administrators.-upfglInvitedEmailAddress :: Lens' UserProFilesGuardiansList (Maybe Text)-upfglInvitedEmailAddress-  = lens _upfglInvitedEmailAddress-      (\ s a -> s{_upfglInvitedEmailAddress = a})---- | nextPageToken value returned from a previous list call, indicating that--- the subsequent page of results should be returned. The list request must--- be otherwise identical to the one that resulted in this token.-upfglPageToken :: Lens' UserProFilesGuardiansList (Maybe Text)-upfglPageToken-  = lens _upfglPageToken-      (\ s a -> s{_upfglPageToken = a})---- | Maximum number of items to return. Zero or unspecified indicates that--- the server may assign a maximum. The server may return fewer than the--- specified number of results.-upfglPageSize :: Lens' UserProFilesGuardiansList (Maybe Int32)-upfglPageSize-  = lens _upfglPageSize-      (\ s a -> s{_upfglPageSize = a})-      . mapping _Coerce---- | JSONP-upfglCallback :: Lens' UserProFilesGuardiansList (Maybe Text)-upfglCallback-  = lens _upfglCallback-      (\ s a -> s{_upfglCallback = a})--instance GoogleRequest UserProFilesGuardiansList-         where-        type Rs UserProFilesGuardiansList =-             ListGuardiansResponse-        type Scopes UserProFilesGuardiansList =-             '["https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly",-               "https://www.googleapis.com/auth/classroom.guardianlinks.students",-               "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"]-        requestClient UserProFilesGuardiansList'{..}-          = go _upfglStudentId _upfglXgafv _upfglUploadProtocol-              _upfglAccessToken-              _upfglUploadType-              _upfglInvitedEmailAddress-              _upfglPageToken-              _upfglPageSize-              _upfglCallback-              (Just AltJSON)-              classroomService-          where go-                  = buildClient-                      (Proxy :: Proxy UserProFilesGuardiansListResource)-                      mempty
gogol-classroom.cabal view
@@ -1,101 +1,155 @@-name:                  gogol-classroom-version:               0.5.0-synopsis:              Google Classroom SDK.-homepage:              https://github.com/brendanhay/gogol-bug-reports:           https://github.com/brendanhay/gogol/issues-license:               OtherLicense-license-file:          LICENSE-author:                Brendan Hay-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2015-2016 Brendan Hay-category:              Network, Google, Cloud-build-type:            Simple-cabal-version:         >= 1.10-extra-source-files:    README.md src/.gitkeep+cabal-version:      2.2+name:               gogol-classroom+version:            1.0.0+synopsis:           Google Classroom SDK.+homepage:           https://github.com/brendanhay/gogol+bug-reports:        https://github.com/brendanhay/gogol/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+gogol@gmail.com>, Toni Cebrián <toni@tonicebrian.com> +copyright:          Copyright (c) 2015-2025 Brendan Hay+category:           Google+build-type:         Simple+extra-source-files:+  README.md+  src/.gitkeep+ description:-    Manages classes, rosters, and invitations in Google Classroom.-    .-    /Warning:/ 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 @v1@-    of the API.+  Manages classes, rosters, and invitations in Google Classroom.+  .+  /Warning:/ 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 @v1@+  of the API.  source-repository head-    type:     git-    location: git://github.com/brendanhay/gogol.git+  type:     git+  location: git://github.com/brendanhay/gogol.git+  subdir:   gogol-classroom +flag field-selectors+  description:+    If record field selectors should be enabled. Disabling this requires GHC >=9.2 and the NoFieldSelectors extension.++  default:     False+  manual:      True+ library-    default-language:  Haskell2010-    hs-source-dirs:    src gen+  default-language: GHC2021+  hs-source-dirs:   src gen+  ghc-options:+    -Wall -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates -funbox-strict-fields+    -fwarn-unused-packages -    ghc-options:       -Wall+  if (!flag(field-selectors) && impl(ghc >=9.2))+    default-extensions: NoFieldSelectors -    exposed-modules:-          Network.Google.Classroom-        , Network.Google.Classroom.Types-        , Network.Google.Resource.Classroom.Courses.Aliases.Create-        , Network.Google.Resource.Classroom.Courses.Aliases.Delete-        , Network.Google.Resource.Classroom.Courses.Aliases.List-        , Network.Google.Resource.Classroom.Courses.Announcements.Create-        , Network.Google.Resource.Classroom.Courses.Announcements.Delete-        , Network.Google.Resource.Classroom.Courses.Announcements.Get-        , Network.Google.Resource.Classroom.Courses.Announcements.List-        , Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees-        , Network.Google.Resource.Classroom.Courses.Announcements.Patch-        , Network.Google.Resource.Classroom.Courses.CourseWork.Create-        , Network.Google.Resource.Classroom.Courses.CourseWork.Delete-        , Network.Google.Resource.Classroom.Courses.CourseWork.Get-        , Network.Google.Resource.Classroom.Courses.CourseWork.List-        , Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees-        , Network.Google.Resource.Classroom.Courses.CourseWork.Patch-        , Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get-        , Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List-        , Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments-        , Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch-        , Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim-        , Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Return-        , Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn-        , Network.Google.Resource.Classroom.Courses.Create-        , Network.Google.Resource.Classroom.Courses.Delete-        , Network.Google.Resource.Classroom.Courses.Get-        , Network.Google.Resource.Classroom.Courses.List-        , Network.Google.Resource.Classroom.Courses.Patch-        , Network.Google.Resource.Classroom.Courses.Students.Create-        , Network.Google.Resource.Classroom.Courses.Students.Delete-        , Network.Google.Resource.Classroom.Courses.Students.Get-        , Network.Google.Resource.Classroom.Courses.Students.List-        , Network.Google.Resource.Classroom.Courses.Teachers.Create-        , Network.Google.Resource.Classroom.Courses.Teachers.Delete-        , Network.Google.Resource.Classroom.Courses.Teachers.Get-        , Network.Google.Resource.Classroom.Courses.Teachers.List-        , Network.Google.Resource.Classroom.Courses.Topics.Create-        , Network.Google.Resource.Classroom.Courses.Topics.Delete-        , Network.Google.Resource.Classroom.Courses.Topics.Get-        , Network.Google.Resource.Classroom.Courses.Topics.List-        , Network.Google.Resource.Classroom.Courses.Topics.Patch-        , Network.Google.Resource.Classroom.Courses.Update-        , Network.Google.Resource.Classroom.Invitations.Accept-        , Network.Google.Resource.Classroom.Invitations.Create-        , Network.Google.Resource.Classroom.Invitations.Delete-        , Network.Google.Resource.Classroom.Invitations.Get-        , Network.Google.Resource.Classroom.Invitations.List-        , Network.Google.Resource.Classroom.Registrations.Create-        , Network.Google.Resource.Classroom.Registrations.Delete-        , Network.Google.Resource.Classroom.UserProFiles.Get-        , Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create-        , Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get-        , Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List-        , Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch-        , Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete-        , Network.Google.Resource.Classroom.UserProFiles.Guardians.Get-        , Network.Google.Resource.Classroom.UserProFiles.Guardians.List+  exposed-modules:+    Gogol.Classroom+    Gogol.Classroom.Courses.Aliases.Create+    Gogol.Classroom.Courses.Aliases.Delete+    Gogol.Classroom.Courses.Aliases.List+    Gogol.Classroom.Courses.Announcements.AddOnAttachments.Create+    Gogol.Classroom.Courses.Announcements.AddOnAttachments.Delete+    Gogol.Classroom.Courses.Announcements.AddOnAttachments.Get+    Gogol.Classroom.Courses.Announcements.AddOnAttachments.List+    Gogol.Classroom.Courses.Announcements.AddOnAttachments.Patch+    Gogol.Classroom.Courses.Announcements.Create+    Gogol.Classroom.Courses.Announcements.Delete+    Gogol.Classroom.Courses.Announcements.Get+    Gogol.Classroom.Courses.Announcements.GetAddOnContext+    Gogol.Classroom.Courses.Announcements.List+    Gogol.Classroom.Courses.Announcements.ModifyAssignees+    Gogol.Classroom.Courses.Announcements.Patch+    Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Create+    Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Delete+    Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Get+    Gogol.Classroom.Courses.CourseWork.AddOnAttachments.List+    Gogol.Classroom.Courses.CourseWork.AddOnAttachments.Patch+    Gogol.Classroom.Courses.CourseWork.AddOnAttachments.StudentSubmissions.Get+    Gogol.Classroom.Courses.CourseWork.AddOnAttachments.StudentSubmissions.Patch+    Gogol.Classroom.Courses.CourseWork.Create+    Gogol.Classroom.Courses.CourseWork.Delete+    Gogol.Classroom.Courses.CourseWork.Get+    Gogol.Classroom.Courses.CourseWork.GetAddOnContext+    Gogol.Classroom.Courses.CourseWork.List+    Gogol.Classroom.Courses.CourseWork.ModifyAssignees+    Gogol.Classroom.Courses.CourseWork.Patch+    Gogol.Classroom.Courses.CourseWork.Rubrics.Create+    Gogol.Classroom.Courses.CourseWork.Rubrics.Delete+    Gogol.Classroom.Courses.CourseWork.Rubrics.Get+    Gogol.Classroom.Courses.CourseWork.Rubrics.List+    Gogol.Classroom.Courses.CourseWork.Rubrics.Patch+    Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Get+    Gogol.Classroom.Courses.CourseWork.StudentSubmissions.List+    Gogol.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments+    Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Patch+    Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim+    Gogol.Classroom.Courses.CourseWork.StudentSubmissions.Return+    Gogol.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn+    Gogol.Classroom.Courses.CourseWork.UpdateRubric+    Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Create+    Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Delete+    Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Get+    Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.List+    Gogol.Classroom.Courses.CourseWorkMaterials.AddOnAttachments.Patch+    Gogol.Classroom.Courses.CourseWorkMaterials.Create+    Gogol.Classroom.Courses.CourseWorkMaterials.Delete+    Gogol.Classroom.Courses.CourseWorkMaterials.Get+    Gogol.Classroom.Courses.CourseWorkMaterials.GetAddOnContext+    Gogol.Classroom.Courses.CourseWorkMaterials.List+    Gogol.Classroom.Courses.CourseWorkMaterials.Patch+    Gogol.Classroom.Courses.Create+    Gogol.Classroom.Courses.Delete+    Gogol.Classroom.Courses.Get+    Gogol.Classroom.Courses.List+    Gogol.Classroom.Courses.Patch+    Gogol.Classroom.Courses.Posts.AddOnAttachments.Create+    Gogol.Classroom.Courses.Posts.AddOnAttachments.Delete+    Gogol.Classroom.Courses.Posts.AddOnAttachments.Get+    Gogol.Classroom.Courses.Posts.AddOnAttachments.List+    Gogol.Classroom.Courses.Posts.AddOnAttachments.Patch+    Gogol.Classroom.Courses.Posts.AddOnAttachments.StudentSubmissions.Get+    Gogol.Classroom.Courses.Posts.AddOnAttachments.StudentSubmissions.Patch+    Gogol.Classroom.Courses.Posts.GetAddOnContext+    Gogol.Classroom.Courses.Students.Create+    Gogol.Classroom.Courses.Students.Delete+    Gogol.Classroom.Courses.Students.Get+    Gogol.Classroom.Courses.Students.List+    Gogol.Classroom.Courses.Teachers.Create+    Gogol.Classroom.Courses.Teachers.Delete+    Gogol.Classroom.Courses.Teachers.Get+    Gogol.Classroom.Courses.Teachers.List+    Gogol.Classroom.Courses.Topics.Create+    Gogol.Classroom.Courses.Topics.Delete+    Gogol.Classroom.Courses.Topics.Get+    Gogol.Classroom.Courses.Topics.List+    Gogol.Classroom.Courses.Topics.Patch+    Gogol.Classroom.Courses.Update+    Gogol.Classroom.Invitations.Accept+    Gogol.Classroom.Invitations.Create+    Gogol.Classroom.Invitations.Delete+    Gogol.Classroom.Invitations.Get+    Gogol.Classroom.Invitations.List+    Gogol.Classroom.Registrations.Create+    Gogol.Classroom.Registrations.Delete+    Gogol.Classroom.Types+    Gogol.Classroom.UserProfiles.Get+    Gogol.Classroom.UserProfiles.GuardianInvitations.Create+    Gogol.Classroom.UserProfiles.GuardianInvitations.Get+    Gogol.Classroom.UserProfiles.GuardianInvitations.List+    Gogol.Classroom.UserProfiles.GuardianInvitations.Patch+    Gogol.Classroom.UserProfiles.Guardians.Delete+    Gogol.Classroom.UserProfiles.Guardians.Get+    Gogol.Classroom.UserProfiles.Guardians.List -    other-modules:-          Network.Google.Classroom.Types.Product-        , Network.Google.Classroom.Types.Sum+  other-modules:+    Gogol.Classroom.Internal.Product+    Gogol.Classroom.Internal.Sum -    build-depends:-          gogol-core == 0.5.0.*-        , base       >= 4.7 && < 5+  build-depends:    gogol-core ^>=1.0.0