packages feed

gogol-classroom 0.3.0 → 0.4.0

raw patch · 56 files changed

+7266/−4400 lines, 56 filesdep ~gogol-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: gogol-core

API changes (from Hackage documentation)

- Network.Google.Classroom: cAlternateLink :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cCourseGroupEmail :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cCourseMaterialSets :: Lens' Course [CourseMaterialSet]
- Network.Google.Classroom: cCourseState :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cCreationTime :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cDescription :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cDescriptionHeading :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cEnrollmentCode :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cGuardiansEnabled :: Lens' Course (Maybe Bool)
- Network.Google.Classroom: cId :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cName :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cOwnerId :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cRoom :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cSection :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cTeacherFolder :: Lens' Course (Maybe DriveFolder)
- Network.Google.Classroom: cTeacherGroupEmail :: Lens' Course (Maybe Text)
- Network.Google.Classroom: cUpdateTime :: Lens' Course (Maybe Text)
- Network.Google.Classroom: classroomCourseWorkReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.course-work.readonly"]
- Network.Google.Classroom.Types: cAlternateLink :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cCourseGroupEmail :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cCourseMaterialSets :: Lens' Course [CourseMaterialSet]
- Network.Google.Classroom.Types: cCourseState :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cCreationTime :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cDescription :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cDescriptionHeading :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cEnrollmentCode :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cGuardiansEnabled :: Lens' Course (Maybe Bool)
- Network.Google.Classroom.Types: cId :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cName :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cOwnerId :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cRoom :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cSection :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cTeacherFolder :: Lens' Course (Maybe DriveFolder)
- Network.Google.Classroom.Types: cTeacherGroupEmail :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: cUpdateTime :: Lens' Course (Maybe Text)
- Network.Google.Classroom.Types: classroomCourseWorkReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.course-work.readonly"]
- Network.Google.Resource.Classroom.Courses.Aliases.Create: cacBearerToken :: Lens' CoursesAliasesCreate (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Aliases.Create: cacPp :: Lens' CoursesAliasesCreate Bool
- Network.Google.Resource.Classroom.Courses.Aliases.Delete: cadBearerToken :: Lens' CoursesAliasesDelete (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Aliases.Delete: cadPp :: Lens' CoursesAliasesDelete Bool
- Network.Google.Resource.Classroom.Courses.Aliases.List: calAccessToken :: Lens' CoursesAliasesList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Aliases.List: calBearerToken :: Lens' CoursesAliasesList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Aliases.List: calCallback :: Lens' CoursesAliasesList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Aliases.List: calCourseId :: Lens' CoursesAliasesList Text
- Network.Google.Resource.Classroom.Courses.Aliases.List: calPageSize :: Lens' CoursesAliasesList (Maybe Int32)
- Network.Google.Resource.Classroom.Courses.Aliases.List: calPageToken :: Lens' CoursesAliasesList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Aliases.List: calPp :: Lens' CoursesAliasesList Bool
- Network.Google.Resource.Classroom.Courses.Aliases.List: calUploadProtocol :: Lens' CoursesAliasesList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Aliases.List: calUploadType :: Lens' CoursesAliasesList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Aliases.List: calXgafv :: Lens' CoursesAliasesList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.Create: ccwcBearerToken :: Lens' CoursesCourseWorkCreate (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.Create: ccwcPp :: Lens' CoursesCourseWorkCreate Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.Delete: ccwdBearerToken :: Lens' CoursesCourseWorkDelete (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.Delete: ccwdPp :: Lens' CoursesCourseWorkDelete Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.Get: ccwgBearerToken :: Lens' CoursesCourseWorkGet (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.Get: ccwgPp :: Lens' CoursesCourseWorkGet Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.List: ccwlBearerToken :: Lens' CoursesCourseWorkList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.List: ccwlPp :: Lens' CoursesCourseWorkList Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.Patch: ccwpBearerToken :: Lens' CoursesCourseWorkPatch (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.Patch: ccwpPp :: Lens' CoursesCourseWorkPatch Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get: ccwssgBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get: ccwssgPp :: Lens' CoursesCourseWorkStudentSubmissionsGet Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List: ccwsslBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List: ccwsslPp :: Lens' CoursesCourseWorkStudentSubmissionsList Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments: ccwssmaBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments: ccwssmaPp :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch: ccwsspBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch: ccwsspPp :: Lens' CoursesCourseWorkStudentSubmissionsPatch Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couCallback :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couCourseId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couPayload :: Lens' CoursesCourseWorkStudentSubmissionsReclaim ReclaimStudentSubmissionRequest
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couPp :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couUploadProtocol :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couUploadType :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: couXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Return: ccwssrBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Return: ccwssrPp :: Lens' CoursesCourseWorkStudentSubmissionsReturn Bool
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn: ccwsstiBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Text)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn: ccwsstiPp :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn Bool
- Network.Google.Resource.Classroom.Courses.Create: ccBearerToken :: Lens' CoursesCreate (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Create: ccPp :: Lens' CoursesCreate Bool
- Network.Google.Resource.Classroom.Courses.Delete: cdBearerToken :: Lens' CoursesDelete (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Delete: cdPp :: Lens' CoursesDelete Bool
- Network.Google.Resource.Classroom.Courses.Get: cgBearerToken :: Lens' CoursesGet (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Get: cgPp :: Lens' CoursesGet Bool
- Network.Google.Resource.Classroom.Courses.List: clBearerToken :: Lens' CoursesList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.List: clPp :: Lens' CoursesList Bool
- Network.Google.Resource.Classroom.Courses.Patch: cpBearerToken :: Lens' CoursesPatch (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Patch: cpPp :: Lens' CoursesPatch Bool
- Network.Google.Resource.Classroom.Courses.Students.Create: cscBearerToken :: Lens' CoursesStudentsCreate (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Students.Create: cscPp :: Lens' CoursesStudentsCreate Bool
- Network.Google.Resource.Classroom.Courses.Students.Delete: csdBearerToken :: Lens' CoursesStudentsDelete (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Students.Delete: csdPp :: Lens' CoursesStudentsDelete Bool
- Network.Google.Resource.Classroom.Courses.Students.Get: csgBearerToken :: Lens' CoursesStudentsGet (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Students.Get: csgPp :: Lens' CoursesStudentsGet Bool
- Network.Google.Resource.Classroom.Courses.Students.List: cslBearerToken :: Lens' CoursesStudentsList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Students.List: cslPp :: Lens' CoursesStudentsList Bool
- Network.Google.Resource.Classroom.Courses.Teachers.Create: ctcBearerToken :: Lens' CoursesTeachersCreate (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Teachers.Create: ctcPp :: Lens' CoursesTeachersCreate Bool
- Network.Google.Resource.Classroom.Courses.Teachers.Delete: ctdBearerToken :: Lens' CoursesTeachersDelete (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Teachers.Delete: ctdPp :: Lens' CoursesTeachersDelete Bool
- Network.Google.Resource.Classroom.Courses.Teachers.Get: ctgBearerToken :: Lens' CoursesTeachersGet (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Teachers.Get: ctgPp :: Lens' CoursesTeachersGet Bool
- Network.Google.Resource.Classroom.Courses.Teachers.List: ctlBearerToken :: Lens' CoursesTeachersList (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Teachers.List: ctlPp :: Lens' CoursesTeachersList Bool
- Network.Google.Resource.Classroom.Courses.Update: cuBearerToken :: Lens' CoursesUpdate (Maybe Text)
- Network.Google.Resource.Classroom.Courses.Update: cuPp :: Lens' CoursesUpdate Bool
- Network.Google.Resource.Classroom.Invitations.Accept: iaBearerToken :: Lens' InvitationsAccept (Maybe Text)
- Network.Google.Resource.Classroom.Invitations.Accept: iaPp :: Lens' InvitationsAccept Bool
- Network.Google.Resource.Classroom.Invitations.Create: icBearerToken :: Lens' InvitationsCreate (Maybe Text)
- Network.Google.Resource.Classroom.Invitations.Create: icPp :: Lens' InvitationsCreate Bool
- Network.Google.Resource.Classroom.Invitations.Delete: idBearerToken :: Lens' InvitationsDelete (Maybe Text)
- Network.Google.Resource.Classroom.Invitations.Delete: idPp :: Lens' InvitationsDelete Bool
- Network.Google.Resource.Classroom.Invitations.Get: igBearerToken :: Lens' InvitationsGet (Maybe Text)
- Network.Google.Resource.Classroom.Invitations.Get: igPp :: Lens' InvitationsGet Bool
- Network.Google.Resource.Classroom.Invitations.List: ilBearerToken :: Lens' InvitationsList (Maybe Text)
- Network.Google.Resource.Classroom.Invitations.List: ilPp :: Lens' InvitationsList Bool
- Network.Google.Resource.Classroom.UserProFiles.Get: upfgBearerToken :: Lens' UserProFilesGet (Maybe Text)
- Network.Google.Resource.Classroom.UserProFiles.Get: upfgPp :: Lens' UserProFilesGet Bool
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create: upfgicBearerToken :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create: upfgicPp :: Lens' UserProFilesGuardianInvitationsCreate Bool
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get: upfgigBearerToken :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get: upfgigPp :: Lens' UserProFilesGuardianInvitationsGet Bool
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List: upfgilBearerToken :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List: upfgilPp :: Lens' UserProFilesGuardianInvitationsList Bool
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch: upfgipBearerToken :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch: upfgipPp :: Lens' UserProFilesGuardianInvitationsPatch Bool
- Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete: upfgdBearerToken :: Lens' UserProFilesGuardiansDelete (Maybe Text)
- Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete: upfgdPp :: Lens' UserProFilesGuardiansDelete Bool
- Network.Google.Resource.Classroom.UserProFiles.Guardians.Get: upfggBearerToken :: Lens' UserProFilesGuardiansGet (Maybe Text)
- Network.Google.Resource.Classroom.UserProFiles.Guardians.Get: upfggPp :: Lens' UserProFilesGuardiansGet Bool
- Network.Google.Resource.Classroom.UserProFiles.Guardians.List: upfglBearerToken :: Lens' UserProFilesGuardiansList (Maybe Text)
- Network.Google.Resource.Classroom.UserProFiles.Guardians.List: upfglPp :: Lens' UserProFilesGuardiansList Bool
+ Network.Google.Classroom: AAMAllStudents :: AnnouncementAssigneeMode
+ Network.Google.Classroom: AAMAssigneeModeUnspecified :: AnnouncementAssigneeMode
+ Network.Google.Classroom: AAMIndividualStudents :: AnnouncementAssigneeMode
+ Network.Google.Classroom: ASAnnouncementStateUnspecified :: AnnouncementState
+ Network.Google.Classroom: ASDeleted :: AnnouncementState
+ Network.Google.Classroom: ASDraft :: AnnouncementState
+ Network.Google.Classroom: ASPublished :: AnnouncementState
+ Network.Google.Classroom: Active :: CourseCourseState
+ Network.Google.Classroom: AllStudents :: ModifyCourseWorkAssigneesRequestAssigneeMode
+ Network.Google.Classroom: Archived :: CourseCourseState
+ Network.Google.Classroom: AssignedGradePointsEarnedChange :: GradeHistoryGradeChangeType
+ Network.Google.Classroom: AssigneeModeUnspecified :: ModifyCourseWorkAssigneesRequestAssigneeMode
+ Network.Google.Classroom: CWAMAllStudents :: CourseWorkAssigneeMode
+ Network.Google.Classroom: CWAMAssigneeModeUnspecified :: CourseWorkAssigneeMode
+ Network.Google.Classroom: CWAMIndividualStudents :: CourseWorkAssigneeMode
+ Network.Google.Classroom: CWWTAssignment :: CourseWorkWorkType
+ Network.Google.Classroom: CWWTCourseWorkTypeUnspecified :: CourseWorkWorkType
+ Network.Google.Classroom: CWWTMultipleChoiceQuestion :: CourseWorkWorkType
+ Network.Google.Classroom: CWWTShortAnswerQuestion :: CourseWorkWorkType
+ Network.Google.Classroom: Complete :: GuardianInvitationState
+ Network.Google.Classroom: CourseRosterChanges :: FeedFeedType
+ Network.Google.Classroom: CourseStateUnspecified :: CourseCourseState
+ Network.Google.Classroom: CourseWorkChanges :: FeedFeedType
+ Network.Google.Classroom: CourseWorkStateUnspecified :: CourseWorkState
+ Network.Google.Classroom: CreateCourse :: GlobalPermissionPermission
+ Network.Google.Classroom: Created :: StateHistoryState
+ Network.Google.Classroom: Declined :: CourseCourseState
+ Network.Google.Classroom: Deleted :: CourseWorkState
+ Network.Google.Classroom: DomainRosterChanges :: FeedFeedType
+ Network.Google.Classroom: Draft :: CourseWorkState
+ Network.Google.Classroom: DraftGradePointsEarnedChange :: GradeHistoryGradeChangeType
+ Network.Google.Classroom: Edit :: SharedDriveFileShareMode
+ Network.Google.Classroom: FeedTypeUnspecified :: FeedFeedType
+ Network.Google.Classroom: GuardianInvitationStateUnspecified :: GuardianInvitationState
+ Network.Google.Classroom: IRCourseRoleUnspecified :: InvitationRole
+ Network.Google.Classroom: IROwner :: InvitationRole
+ Network.Google.Classroom: IRStudent :: InvitationRole
+ Network.Google.Classroom: IRTeacher :: InvitationRole
+ Network.Google.Classroom: IndividualStudents :: ModifyCourseWorkAssigneesRequestAssigneeMode
+ Network.Google.Classroom: MAARAMAllStudents :: ModifyAnnouncementAssigneesRequestAssigneeMode
+ Network.Google.Classroom: MAARAMAssigneeModeUnspecified :: ModifyAnnouncementAssigneesRequestAssigneeMode
+ Network.Google.Classroom: MAARAMIndividualStudents :: ModifyAnnouncementAssigneesRequestAssigneeMode
+ Network.Google.Classroom: MaxPointsChange :: GradeHistoryGradeChangeType
+ Network.Google.Classroom: Modifiable :: CourseWorkSubmissionModificationMode
+ Network.Google.Classroom: ModifiableUntilTurnedIn :: CourseWorkSubmissionModificationMode
+ Network.Google.Classroom: Pending :: GuardianInvitationState
+ Network.Google.Classroom: PermissionUnspecified :: GlobalPermissionPermission
+ Network.Google.Classroom: Provisioned :: CourseCourseState
+ Network.Google.Classroom: Published :: CourseWorkState
+ Network.Google.Classroom: ReclaimedByStudent :: StateHistoryState
+ Network.Google.Classroom: Returned :: StateHistoryState
+ Network.Google.Classroom: SSCWTAssignment :: StudentSubmissionCourseWorkType
+ Network.Google.Classroom: SSCWTCourseWorkTypeUnspecified :: StudentSubmissionCourseWorkType
+ Network.Google.Classroom: SSCWTMultipleChoiceQuestion :: StudentSubmissionCourseWorkType
+ Network.Google.Classroom: SSCWTShortAnswerQuestion :: StudentSubmissionCourseWorkType
+ Network.Google.Classroom: SSSCreated :: StudentSubmissionState
+ Network.Google.Classroom: SSSNew :: StudentSubmissionState
+ Network.Google.Classroom: SSSReclaimedByStudent :: StudentSubmissionState
+ Network.Google.Classroom: SSSReturned :: StudentSubmissionState
+ Network.Google.Classroom: SSSSubmissionStateUnspecified :: StudentSubmissionState
+ Network.Google.Classroom: SSSTurnedIn :: StudentSubmissionState
+ Network.Google.Classroom: StateUnspecified :: StateHistoryState
+ Network.Google.Classroom: StudentCopy :: SharedDriveFileShareMode
+ Network.Google.Classroom: StudentEditedAfterTurnIn :: StateHistoryState
+ Network.Google.Classroom: SubmissionModificationModeUnspecified :: CourseWorkSubmissionModificationMode
+ Network.Google.Classroom: Suspended :: CourseCourseState
+ Network.Google.Classroom: TurnedIn :: StateHistoryState
+ Network.Google.Classroom: UnknownGradeChangeType :: GradeHistoryGradeChangeType
+ Network.Google.Classroom: UnknownShareMode :: SharedDriveFileShareMode
+ Network.Google.Classroom: View :: SharedDriveFileShareMode
+ Network.Google.Classroom: X1 :: Xgafv
+ Network.Google.Classroom: X2 :: Xgafv
+ Network.Google.Classroom: aAlternateLink :: Lens' Announcement (Maybe Text)
+ Network.Google.Classroom: aAssigneeMode :: Lens' Announcement (Maybe AnnouncementAssigneeMode)
+ Network.Google.Classroom: aCourseId :: Lens' Announcement (Maybe Text)
+ Network.Google.Classroom: aCreationTime :: Lens' Announcement (Maybe UTCTime)
+ Network.Google.Classroom: aCreatorUserId :: Lens' Announcement (Maybe Text)
+ Network.Google.Classroom: aId :: Lens' Announcement (Maybe Text)
+ Network.Google.Classroom: aIndividualStudentsOptions :: Lens' Announcement (Maybe IndividualStudentsOptions)
+ Network.Google.Classroom: aMaterials :: Lens' Announcement [Material]
+ Network.Google.Classroom: aScheduledTime :: Lens' Announcement (Maybe UTCTime)
+ Network.Google.Classroom: aState :: Lens' Announcement (Maybe AnnouncementState)
+ Network.Google.Classroom: aText :: Lens' Announcement (Maybe Text)
+ Network.Google.Classroom: aUpdateTime :: Lens' Announcement (Maybe UTCTime)
+ Network.Google.Classroom: announcement :: Announcement
+ Network.Google.Classroom: classroomAnnouncementsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.announcements.readonly"]
+ Network.Google.Classroom: classroomAnnouncementsScope :: Proxy '["https://www.googleapis.com/auth/classroom.announcements"]
+ Network.Google.Classroom: classroomGuardianlinksMeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly"]
+ Network.Google.Classroom: classroomGuardianlinksStudentsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"]
+ Network.Google.Classroom: classroomGuardianlinksStudentsScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.students"]
+ Network.Google.Classroom: classroomPushNotificationsScope :: Proxy '["https://www.googleapis.com/auth/classroom.push-notifications"]
+ Network.Google.Classroom: cloudPubsubTopic :: CloudPubsubTopic
+ Network.Google.Classroom: couAlternateLink :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couCalendarId :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couCourseGroupEmail :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couCourseMaterialSets :: Lens' Course [CourseMaterialSet]
+ Network.Google.Classroom: couCourseState :: Lens' Course (Maybe CourseCourseState)
+ Network.Google.Classroom: couCreationTime :: Lens' Course (Maybe UTCTime)
+ Network.Google.Classroom: couDescription :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couDescriptionHeading :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couEnrollmentCode :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couGuardiansEnabled :: Lens' Course (Maybe Bool)
+ Network.Google.Classroom: couId :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couName :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couOwnerId :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couRoom :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couSection :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couTeacherFolder :: Lens' Course (Maybe DriveFolder)
+ Network.Google.Classroom: couTeacherGroupEmail :: Lens' Course (Maybe Text)
+ Network.Google.Classroom: couUpdateTime :: Lens' Course (Maybe UTCTime)
+ Network.Google.Classroom: courseRosterChangesInfo :: CourseRosterChangesInfo
+ Network.Google.Classroom: courseWorkChangesInfo :: CourseWorkChangesInfo
+ Network.Google.Classroom: cptTopicName :: Lens' CloudPubsubTopic (Maybe Text)
+ Network.Google.Classroom: crciCourseId :: Lens' CourseRosterChangesInfo (Maybe Text)
+ Network.Google.Classroom: cwAssigneeMode :: Lens' CourseWork (Maybe CourseWorkAssigneeMode)
+ Network.Google.Classroom: cwCreatorUserId :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom: cwIndividualStudentsOptions :: Lens' CourseWork (Maybe IndividualStudentsOptions)
+ Network.Google.Classroom: cwScheduledTime :: Lens' CourseWork (Maybe UTCTime)
+ Network.Google.Classroom: cwciCourseId :: Lens' CourseWorkChangesInfo (Maybe Text)
+ Network.Google.Classroom: data Announcement
+ Network.Google.Classroom: data AnnouncementAssigneeMode
+ Network.Google.Classroom: data AnnouncementState
+ Network.Google.Classroom: data CloudPubsubTopic
+ Network.Google.Classroom: data CourseCourseState
+ Network.Google.Classroom: data CourseRosterChangesInfo
+ Network.Google.Classroom: data CourseWorkAssigneeMode
+ Network.Google.Classroom: data CourseWorkChangesInfo
+ Network.Google.Classroom: data CourseWorkState
+ Network.Google.Classroom: data CourseWorkSubmissionModificationMode
+ Network.Google.Classroom: data CourseWorkWorkType
+ Network.Google.Classroom: data Feed
+ Network.Google.Classroom: data FeedFeedType
+ Network.Google.Classroom: data GlobalPermissionPermission
+ Network.Google.Classroom: data GradeHistory
+ Network.Google.Classroom: data GradeHistoryGradeChangeType
+ Network.Google.Classroom: data GuardianInvitationState
+ Network.Google.Classroom: data IndividualStudentsOptions
+ Network.Google.Classroom: data InvitationRole
+ Network.Google.Classroom: data ListAnnouncementsResponse
+ Network.Google.Classroom: data ModifyAnnouncementAssigneesRequest
+ Network.Google.Classroom: data ModifyAnnouncementAssigneesRequestAssigneeMode
+ Network.Google.Classroom: data ModifyCourseWorkAssigneesRequest
+ Network.Google.Classroom: data ModifyCourseWorkAssigneesRequestAssigneeMode
+ Network.Google.Classroom: data ModifyIndividualStudentsOptions
+ Network.Google.Classroom: data Registration
+ Network.Google.Classroom: data SharedDriveFileShareMode
+ Network.Google.Classroom: data StateHistory
+ Network.Google.Classroom: data StateHistoryState
+ Network.Google.Classroom: data StudentSubmissionCourseWorkType
+ Network.Google.Classroom: data StudentSubmissionState
+ Network.Google.Classroom: data SubmissionHistory
+ Network.Google.Classroom: data Xgafv
+ Network.Google.Classroom: fCourseRosterChangesInfo :: Lens' Feed (Maybe CourseRosterChangesInfo)
+ Network.Google.Classroom: fCourseWorkChangesInfo :: Lens' Feed (Maybe CourseWorkChangesInfo)
+ Network.Google.Classroom: fFeedType :: Lens' Feed (Maybe FeedFeedType)
+ Network.Google.Classroom: feed :: Feed
+ Network.Google.Classroom: ghActorUserId :: Lens' GradeHistory (Maybe Text)
+ Network.Google.Classroom: ghGradeChangeType :: Lens' GradeHistory (Maybe GradeHistoryGradeChangeType)
+ Network.Google.Classroom: ghGradeTimestamp :: Lens' GradeHistory (Maybe UTCTime)
+ Network.Google.Classroom: ghMaxPoints :: Lens' GradeHistory (Maybe Double)
+ Network.Google.Classroom: ghPointsEarned :: Lens' GradeHistory (Maybe Double)
+ Network.Google.Classroom: gradeHistory :: GradeHistory
+ Network.Google.Classroom: individualStudentsOptions :: IndividualStudentsOptions
+ Network.Google.Classroom: isoStudentIds :: Lens' IndividualStudentsOptions [Text]
+ Network.Google.Classroom: larAnnouncements :: Lens' ListAnnouncementsResponse [Announcement]
+ Network.Google.Classroom: larNextPageToken :: Lens' ListAnnouncementsResponse (Maybe Text)
+ Network.Google.Classroom: listAnnouncementsResponse :: ListAnnouncementsResponse
+ Network.Google.Classroom: maarAssigneeMode :: Lens' ModifyAnnouncementAssigneesRequest (Maybe ModifyAnnouncementAssigneesRequestAssigneeMode)
+ Network.Google.Classroom: maarModifyIndividualStudentsOptions :: Lens' ModifyAnnouncementAssigneesRequest (Maybe ModifyIndividualStudentsOptions)
+ Network.Google.Classroom: mcwarAssigneeMode :: Lens' ModifyCourseWorkAssigneesRequest (Maybe ModifyCourseWorkAssigneesRequestAssigneeMode)
+ Network.Google.Classroom: mcwarModifyIndividualStudentsOptions :: Lens' ModifyCourseWorkAssigneesRequest (Maybe ModifyIndividualStudentsOptions)
+ Network.Google.Classroom: misoAddStudentIds :: Lens' ModifyIndividualStudentsOptions [Text]
+ Network.Google.Classroom: misoRemoveStudentIds :: Lens' ModifyIndividualStudentsOptions [Text]
+ Network.Google.Classroom: modifyAnnouncementAssigneesRequest :: ModifyAnnouncementAssigneesRequest
+ Network.Google.Classroom: modifyCourseWorkAssigneesRequest :: ModifyCourseWorkAssigneesRequest
+ Network.Google.Classroom: modifyIndividualStudentsOptions :: ModifyIndividualStudentsOptions
+ Network.Google.Classroom: rCloudPubsubTopic :: Lens' Registration (Maybe CloudPubsubTopic)
+ Network.Google.Classroom: rExpiryTime :: Lens' Registration (Maybe UTCTime)
+ Network.Google.Classroom: rFeed :: Lens' Registration (Maybe Feed)
+ Network.Google.Classroom: rRegistrationId :: Lens' Registration (Maybe Text)
+ Network.Google.Classroom: registration :: Registration
+ Network.Google.Classroom: shActorUserId :: Lens' StateHistory (Maybe Text)
+ Network.Google.Classroom: shGradeHistory :: Lens' SubmissionHistory (Maybe GradeHistory)
+ Network.Google.Classroom: shState :: Lens' StateHistory (Maybe StateHistoryState)
+ Network.Google.Classroom: shStateHistory :: Lens' SubmissionHistory (Maybe StateHistory)
+ Network.Google.Classroom: shStateTimestamp :: Lens' StateHistory (Maybe UTCTime)
+ Network.Google.Classroom: ssSubmissionHistory :: Lens' StudentSubmission [SubmissionHistory]
+ Network.Google.Classroom: stateHistory :: StateHistory
+ Network.Google.Classroom: submissionHistory :: SubmissionHistory
+ Network.Google.Classroom: upfVerifiedTeacher :: Lens' UserProFile (Maybe Bool)
+ Network.Google.Classroom.Types: AAMAllStudents :: AnnouncementAssigneeMode
+ Network.Google.Classroom.Types: AAMAssigneeModeUnspecified :: AnnouncementAssigneeMode
+ Network.Google.Classroom.Types: AAMIndividualStudents :: AnnouncementAssigneeMode
+ Network.Google.Classroom.Types: ASAnnouncementStateUnspecified :: AnnouncementState
+ Network.Google.Classroom.Types: ASDeleted :: AnnouncementState
+ Network.Google.Classroom.Types: ASDraft :: AnnouncementState
+ Network.Google.Classroom.Types: ASPublished :: AnnouncementState
+ Network.Google.Classroom.Types: Active :: CourseCourseState
+ Network.Google.Classroom.Types: AllStudents :: ModifyCourseWorkAssigneesRequestAssigneeMode
+ Network.Google.Classroom.Types: Archived :: CourseCourseState
+ Network.Google.Classroom.Types: AssignedGradePointsEarnedChange :: GradeHistoryGradeChangeType
+ Network.Google.Classroom.Types: AssigneeModeUnspecified :: ModifyCourseWorkAssigneesRequestAssigneeMode
+ Network.Google.Classroom.Types: CWAMAllStudents :: CourseWorkAssigneeMode
+ Network.Google.Classroom.Types: CWAMAssigneeModeUnspecified :: CourseWorkAssigneeMode
+ Network.Google.Classroom.Types: CWAMIndividualStudents :: CourseWorkAssigneeMode
+ Network.Google.Classroom.Types: CWWTAssignment :: CourseWorkWorkType
+ Network.Google.Classroom.Types: CWWTCourseWorkTypeUnspecified :: CourseWorkWorkType
+ Network.Google.Classroom.Types: CWWTMultipleChoiceQuestion :: CourseWorkWorkType
+ Network.Google.Classroom.Types: CWWTShortAnswerQuestion :: CourseWorkWorkType
+ Network.Google.Classroom.Types: Complete :: GuardianInvitationState
+ Network.Google.Classroom.Types: CourseRosterChanges :: FeedFeedType
+ Network.Google.Classroom.Types: CourseStateUnspecified :: CourseCourseState
+ Network.Google.Classroom.Types: CourseWorkChanges :: FeedFeedType
+ Network.Google.Classroom.Types: CourseWorkStateUnspecified :: CourseWorkState
+ Network.Google.Classroom.Types: CreateCourse :: GlobalPermissionPermission
+ Network.Google.Classroom.Types: Created :: StateHistoryState
+ Network.Google.Classroom.Types: Declined :: CourseCourseState
+ Network.Google.Classroom.Types: Deleted :: CourseWorkState
+ Network.Google.Classroom.Types: DomainRosterChanges :: FeedFeedType
+ Network.Google.Classroom.Types: Draft :: CourseWorkState
+ Network.Google.Classroom.Types: DraftGradePointsEarnedChange :: GradeHistoryGradeChangeType
+ Network.Google.Classroom.Types: Edit :: SharedDriveFileShareMode
+ Network.Google.Classroom.Types: FeedTypeUnspecified :: FeedFeedType
+ Network.Google.Classroom.Types: GuardianInvitationStateUnspecified :: GuardianInvitationState
+ Network.Google.Classroom.Types: IRCourseRoleUnspecified :: InvitationRole
+ Network.Google.Classroom.Types: IROwner :: InvitationRole
+ Network.Google.Classroom.Types: IRStudent :: InvitationRole
+ Network.Google.Classroom.Types: IRTeacher :: InvitationRole
+ Network.Google.Classroom.Types: IndividualStudents :: ModifyCourseWorkAssigneesRequestAssigneeMode
+ Network.Google.Classroom.Types: MAARAMAllStudents :: ModifyAnnouncementAssigneesRequestAssigneeMode
+ Network.Google.Classroom.Types: MAARAMAssigneeModeUnspecified :: ModifyAnnouncementAssigneesRequestAssigneeMode
+ Network.Google.Classroom.Types: MAARAMIndividualStudents :: ModifyAnnouncementAssigneesRequestAssigneeMode
+ Network.Google.Classroom.Types: MaxPointsChange :: GradeHistoryGradeChangeType
+ Network.Google.Classroom.Types: Modifiable :: CourseWorkSubmissionModificationMode
+ Network.Google.Classroom.Types: ModifiableUntilTurnedIn :: CourseWorkSubmissionModificationMode
+ Network.Google.Classroom.Types: Pending :: GuardianInvitationState
+ Network.Google.Classroom.Types: PermissionUnspecified :: GlobalPermissionPermission
+ Network.Google.Classroom.Types: Provisioned :: CourseCourseState
+ Network.Google.Classroom.Types: Published :: CourseWorkState
+ Network.Google.Classroom.Types: ReclaimedByStudent :: StateHistoryState
+ Network.Google.Classroom.Types: Returned :: StateHistoryState
+ Network.Google.Classroom.Types: SSCWTAssignment :: StudentSubmissionCourseWorkType
+ Network.Google.Classroom.Types: SSCWTCourseWorkTypeUnspecified :: StudentSubmissionCourseWorkType
+ Network.Google.Classroom.Types: SSCWTMultipleChoiceQuestion :: StudentSubmissionCourseWorkType
+ Network.Google.Classroom.Types: SSCWTShortAnswerQuestion :: StudentSubmissionCourseWorkType
+ Network.Google.Classroom.Types: SSSCreated :: StudentSubmissionState
+ Network.Google.Classroom.Types: SSSNew :: StudentSubmissionState
+ Network.Google.Classroom.Types: SSSReclaimedByStudent :: StudentSubmissionState
+ Network.Google.Classroom.Types: SSSReturned :: StudentSubmissionState
+ Network.Google.Classroom.Types: SSSSubmissionStateUnspecified :: StudentSubmissionState
+ Network.Google.Classroom.Types: SSSTurnedIn :: StudentSubmissionState
+ Network.Google.Classroom.Types: StateUnspecified :: StateHistoryState
+ Network.Google.Classroom.Types: StudentCopy :: SharedDriveFileShareMode
+ Network.Google.Classroom.Types: StudentEditedAfterTurnIn :: StateHistoryState
+ Network.Google.Classroom.Types: SubmissionModificationModeUnspecified :: CourseWorkSubmissionModificationMode
+ Network.Google.Classroom.Types: Suspended :: CourseCourseState
+ Network.Google.Classroom.Types: TurnedIn :: StateHistoryState
+ Network.Google.Classroom.Types: UnknownGradeChangeType :: GradeHistoryGradeChangeType
+ Network.Google.Classroom.Types: UnknownShareMode :: SharedDriveFileShareMode
+ Network.Google.Classroom.Types: View :: SharedDriveFileShareMode
+ Network.Google.Classroom.Types: X1 :: Xgafv
+ Network.Google.Classroom.Types: X2 :: Xgafv
+ Network.Google.Classroom.Types: aAlternateLink :: Lens' Announcement (Maybe Text)
+ Network.Google.Classroom.Types: aAssigneeMode :: Lens' Announcement (Maybe AnnouncementAssigneeMode)
+ Network.Google.Classroom.Types: aCourseId :: Lens' Announcement (Maybe Text)
+ Network.Google.Classroom.Types: aCreationTime :: Lens' Announcement (Maybe UTCTime)
+ Network.Google.Classroom.Types: aCreatorUserId :: Lens' Announcement (Maybe Text)
+ Network.Google.Classroom.Types: aId :: Lens' Announcement (Maybe Text)
+ Network.Google.Classroom.Types: aIndividualStudentsOptions :: Lens' Announcement (Maybe IndividualStudentsOptions)
+ Network.Google.Classroom.Types: aMaterials :: Lens' Announcement [Material]
+ Network.Google.Classroom.Types: aScheduledTime :: Lens' Announcement (Maybe UTCTime)
+ Network.Google.Classroom.Types: aState :: Lens' Announcement (Maybe AnnouncementState)
+ Network.Google.Classroom.Types: aText :: Lens' Announcement (Maybe Text)
+ Network.Google.Classroom.Types: aUpdateTime :: Lens' Announcement (Maybe UTCTime)
+ Network.Google.Classroom.Types: announcement :: Announcement
+ Network.Google.Classroom.Types: classroomAnnouncementsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.announcements.readonly"]
+ Network.Google.Classroom.Types: classroomAnnouncementsScope :: Proxy '["https://www.googleapis.com/auth/classroom.announcements"]
+ Network.Google.Classroom.Types: classroomGuardianlinksMeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly"]
+ Network.Google.Classroom.Types: classroomGuardianlinksStudentsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"]
+ Network.Google.Classroom.Types: classroomGuardianlinksStudentsScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.students"]
+ Network.Google.Classroom.Types: classroomPushNotificationsScope :: Proxy '["https://www.googleapis.com/auth/classroom.push-notifications"]
+ Network.Google.Classroom.Types: cloudPubsubTopic :: CloudPubsubTopic
+ Network.Google.Classroom.Types: couAlternateLink :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couCalendarId :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couCourseGroupEmail :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couCourseMaterialSets :: Lens' Course [CourseMaterialSet]
+ Network.Google.Classroom.Types: couCourseState :: Lens' Course (Maybe CourseCourseState)
+ Network.Google.Classroom.Types: couCreationTime :: Lens' Course (Maybe UTCTime)
+ Network.Google.Classroom.Types: couDescription :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couDescriptionHeading :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couEnrollmentCode :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couGuardiansEnabled :: Lens' Course (Maybe Bool)
+ Network.Google.Classroom.Types: couId :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couName :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couOwnerId :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couRoom :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couSection :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couTeacherFolder :: Lens' Course (Maybe DriveFolder)
+ Network.Google.Classroom.Types: couTeacherGroupEmail :: Lens' Course (Maybe Text)
+ Network.Google.Classroom.Types: couUpdateTime :: Lens' Course (Maybe UTCTime)
+ Network.Google.Classroom.Types: courseRosterChangesInfo :: CourseRosterChangesInfo
+ Network.Google.Classroom.Types: courseWorkChangesInfo :: CourseWorkChangesInfo
+ Network.Google.Classroom.Types: cptTopicName :: Lens' CloudPubsubTopic (Maybe Text)
+ Network.Google.Classroom.Types: crciCourseId :: Lens' CourseRosterChangesInfo (Maybe Text)
+ Network.Google.Classroom.Types: cwAssigneeMode :: Lens' CourseWork (Maybe CourseWorkAssigneeMode)
+ Network.Google.Classroom.Types: cwCreatorUserId :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom.Types: cwIndividualStudentsOptions :: Lens' CourseWork (Maybe IndividualStudentsOptions)
+ Network.Google.Classroom.Types: cwScheduledTime :: Lens' CourseWork (Maybe UTCTime)
+ Network.Google.Classroom.Types: cwciCourseId :: Lens' CourseWorkChangesInfo (Maybe Text)
+ Network.Google.Classroom.Types: data Announcement
+ Network.Google.Classroom.Types: data AnnouncementAssigneeMode
+ Network.Google.Classroom.Types: data AnnouncementState
+ Network.Google.Classroom.Types: data CloudPubsubTopic
+ Network.Google.Classroom.Types: data CourseCourseState
+ Network.Google.Classroom.Types: data CourseRosterChangesInfo
+ Network.Google.Classroom.Types: data CourseWorkAssigneeMode
+ Network.Google.Classroom.Types: data CourseWorkChangesInfo
+ Network.Google.Classroom.Types: data CourseWorkState
+ Network.Google.Classroom.Types: data CourseWorkSubmissionModificationMode
+ Network.Google.Classroom.Types: data CourseWorkWorkType
+ Network.Google.Classroom.Types: data Feed
+ Network.Google.Classroom.Types: data FeedFeedType
+ Network.Google.Classroom.Types: data GlobalPermissionPermission
+ Network.Google.Classroom.Types: data GradeHistory
+ Network.Google.Classroom.Types: data GradeHistoryGradeChangeType
+ Network.Google.Classroom.Types: data GuardianInvitationState
+ Network.Google.Classroom.Types: data IndividualStudentsOptions
+ Network.Google.Classroom.Types: data InvitationRole
+ Network.Google.Classroom.Types: data ListAnnouncementsResponse
+ Network.Google.Classroom.Types: data ModifyAnnouncementAssigneesRequest
+ Network.Google.Classroom.Types: data ModifyAnnouncementAssigneesRequestAssigneeMode
+ Network.Google.Classroom.Types: data ModifyCourseWorkAssigneesRequest
+ Network.Google.Classroom.Types: data ModifyCourseWorkAssigneesRequestAssigneeMode
+ Network.Google.Classroom.Types: data ModifyIndividualStudentsOptions
+ Network.Google.Classroom.Types: data Registration
+ Network.Google.Classroom.Types: data SharedDriveFileShareMode
+ Network.Google.Classroom.Types: data StateHistory
+ Network.Google.Classroom.Types: data StateHistoryState
+ Network.Google.Classroom.Types: data StudentSubmissionCourseWorkType
+ Network.Google.Classroom.Types: data StudentSubmissionState
+ Network.Google.Classroom.Types: data SubmissionHistory
+ Network.Google.Classroom.Types: data Xgafv
+ Network.Google.Classroom.Types: fCourseRosterChangesInfo :: Lens' Feed (Maybe CourseRosterChangesInfo)
+ Network.Google.Classroom.Types: fCourseWorkChangesInfo :: Lens' Feed (Maybe CourseWorkChangesInfo)
+ Network.Google.Classroom.Types: fFeedType :: Lens' Feed (Maybe FeedFeedType)
+ Network.Google.Classroom.Types: feed :: Feed
+ Network.Google.Classroom.Types: ghActorUserId :: Lens' GradeHistory (Maybe Text)
+ Network.Google.Classroom.Types: ghGradeChangeType :: Lens' GradeHistory (Maybe GradeHistoryGradeChangeType)
+ Network.Google.Classroom.Types: ghGradeTimestamp :: Lens' GradeHistory (Maybe UTCTime)
+ Network.Google.Classroom.Types: ghMaxPoints :: Lens' GradeHistory (Maybe Double)
+ Network.Google.Classroom.Types: ghPointsEarned :: Lens' GradeHistory (Maybe Double)
+ Network.Google.Classroom.Types: gradeHistory :: GradeHistory
+ Network.Google.Classroom.Types: individualStudentsOptions :: IndividualStudentsOptions
+ Network.Google.Classroom.Types: isoStudentIds :: Lens' IndividualStudentsOptions [Text]
+ Network.Google.Classroom.Types: larAnnouncements :: Lens' ListAnnouncementsResponse [Announcement]
+ Network.Google.Classroom.Types: larNextPageToken :: Lens' ListAnnouncementsResponse (Maybe Text)
+ Network.Google.Classroom.Types: listAnnouncementsResponse :: ListAnnouncementsResponse
+ Network.Google.Classroom.Types: maarAssigneeMode :: Lens' ModifyAnnouncementAssigneesRequest (Maybe ModifyAnnouncementAssigneesRequestAssigneeMode)
+ Network.Google.Classroom.Types: maarModifyIndividualStudentsOptions :: Lens' ModifyAnnouncementAssigneesRequest (Maybe ModifyIndividualStudentsOptions)
+ Network.Google.Classroom.Types: mcwarAssigneeMode :: Lens' ModifyCourseWorkAssigneesRequest (Maybe ModifyCourseWorkAssigneesRequestAssigneeMode)
+ Network.Google.Classroom.Types: mcwarModifyIndividualStudentsOptions :: Lens' ModifyCourseWorkAssigneesRequest (Maybe ModifyIndividualStudentsOptions)
+ Network.Google.Classroom.Types: misoAddStudentIds :: Lens' ModifyIndividualStudentsOptions [Text]
+ Network.Google.Classroom.Types: misoRemoveStudentIds :: Lens' ModifyIndividualStudentsOptions [Text]
+ Network.Google.Classroom.Types: modifyAnnouncementAssigneesRequest :: ModifyAnnouncementAssigneesRequest
+ Network.Google.Classroom.Types: modifyCourseWorkAssigneesRequest :: ModifyCourseWorkAssigneesRequest
+ Network.Google.Classroom.Types: modifyIndividualStudentsOptions :: ModifyIndividualStudentsOptions
+ Network.Google.Classroom.Types: rCloudPubsubTopic :: Lens' Registration (Maybe CloudPubsubTopic)
+ Network.Google.Classroom.Types: rExpiryTime :: Lens' Registration (Maybe UTCTime)
+ Network.Google.Classroom.Types: rFeed :: Lens' Registration (Maybe Feed)
+ Network.Google.Classroom.Types: rRegistrationId :: Lens' Registration (Maybe Text)
+ Network.Google.Classroom.Types: registration :: Registration
+ Network.Google.Classroom.Types: shActorUserId :: Lens' StateHistory (Maybe Text)
+ Network.Google.Classroom.Types: shGradeHistory :: Lens' SubmissionHistory (Maybe GradeHistory)
+ Network.Google.Classroom.Types: shState :: Lens' StateHistory (Maybe StateHistoryState)
+ Network.Google.Classroom.Types: shStateHistory :: Lens' SubmissionHistory (Maybe StateHistory)
+ Network.Google.Classroom.Types: shStateTimestamp :: Lens' StateHistory (Maybe UTCTime)
+ Network.Google.Classroom.Types: ssSubmissionHistory :: Lens' StudentSubmission [SubmissionHistory]
+ Network.Google.Classroom.Types: stateHistory :: StateHistory
+ Network.Google.Classroom.Types: submissionHistory :: SubmissionHistory
+ Network.Google.Classroom.Types: upfVerifiedTeacher :: Lens' UserProFile (Maybe Bool)
+ Network.Google.Resource.Classroom.Courses.Aliases.List: calaAccessToken :: Lens' CoursesAliasesList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Aliases.List: calaCallback :: Lens' CoursesAliasesList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Aliases.List: calaCourseId :: Lens' CoursesAliasesList Text
+ Network.Google.Resource.Classroom.Courses.Aliases.List: calaPageSize :: Lens' CoursesAliasesList (Maybe Int32)
+ Network.Google.Resource.Classroom.Courses.Aliases.List: calaPageToken :: Lens' CoursesAliasesList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Aliases.List: calaUploadProtocol :: Lens' CoursesAliasesList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Aliases.List: calaUploadType :: Lens' CoursesAliasesList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Aliases.List: calaXgafv :: Lens' CoursesAliasesList (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: couAccessToken :: Lens' CoursesAnnouncementsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: couCallback :: Lens' CoursesAnnouncementsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: couCourseId :: Lens' CoursesAnnouncementsCreate Text
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: couPayload :: Lens' CoursesAnnouncementsCreate Announcement
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: couUploadProtocol :: Lens' CoursesAnnouncementsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: couUploadType :: Lens' CoursesAnnouncementsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: couXgafv :: Lens' CoursesAnnouncementsCreate (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: coursesAnnouncementsCreate :: Text -> Announcement -> CoursesAnnouncementsCreate
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: data CoursesAnnouncementsCreate
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: instance Data.Data.Data Network.Google.Resource.Classroom.Courses.Announcements.Create.CoursesAnnouncementsCreate
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: instance GHC.Classes.Eq Network.Google.Resource.Classroom.Courses.Announcements.Create.CoursesAnnouncementsCreate
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: instance GHC.Generics.Generic Network.Google.Resource.Classroom.Courses.Announcements.Create.CoursesAnnouncementsCreate
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: instance GHC.Show.Show Network.Google.Resource.Classroom.Courses.Announcements.Create.CoursesAnnouncementsCreate
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Classroom.Courses.Announcements.Create.CoursesAnnouncementsCreate
+ Network.Google.Resource.Classroom.Courses.Announcements.Create: 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
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: cAccessToken :: Lens' CoursesAnnouncementsDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: cCallback :: Lens' CoursesAnnouncementsDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: cCourseId :: Lens' CoursesAnnouncementsDelete Text
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: cId :: Lens' CoursesAnnouncementsDelete Text
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: cUploadProtocol :: Lens' CoursesAnnouncementsDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: cUploadType :: Lens' CoursesAnnouncementsDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: cXgafv :: Lens' CoursesAnnouncementsDelete (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: coursesAnnouncementsDelete :: Text -> Text -> CoursesAnnouncementsDelete
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: data CoursesAnnouncementsDelete
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: instance Data.Data.Data Network.Google.Resource.Classroom.Courses.Announcements.Delete.CoursesAnnouncementsDelete
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: instance GHC.Classes.Eq Network.Google.Resource.Classroom.Courses.Announcements.Delete.CoursesAnnouncementsDelete
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: instance GHC.Generics.Generic Network.Google.Resource.Classroom.Courses.Announcements.Delete.CoursesAnnouncementsDelete
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: instance GHC.Show.Show Network.Google.Resource.Classroom.Courses.Announcements.Delete.CoursesAnnouncementsDelete
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Classroom.Courses.Announcements.Delete.CoursesAnnouncementsDelete
+ Network.Google.Resource.Classroom.Courses.Announcements.Delete: 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
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: cagAccessToken :: Lens' CoursesAnnouncementsGet (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: cagCallback :: Lens' CoursesAnnouncementsGet (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: cagCourseId :: Lens' CoursesAnnouncementsGet Text
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: cagId :: Lens' CoursesAnnouncementsGet Text
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: cagUploadProtocol :: Lens' CoursesAnnouncementsGet (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: cagUploadType :: Lens' CoursesAnnouncementsGet (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: cagXgafv :: Lens' CoursesAnnouncementsGet (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: coursesAnnouncementsGet :: Text -> Text -> CoursesAnnouncementsGet
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: data CoursesAnnouncementsGet
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: instance Data.Data.Data Network.Google.Resource.Classroom.Courses.Announcements.Get.CoursesAnnouncementsGet
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: instance GHC.Classes.Eq Network.Google.Resource.Classroom.Courses.Announcements.Get.CoursesAnnouncementsGet
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: instance GHC.Generics.Generic Network.Google.Resource.Classroom.Courses.Announcements.Get.CoursesAnnouncementsGet
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: instance GHC.Show.Show Network.Google.Resource.Classroom.Courses.Announcements.Get.CoursesAnnouncementsGet
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Classroom.Courses.Announcements.Get.CoursesAnnouncementsGet
+ Network.Google.Resource.Classroom.Courses.Announcements.Get: 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
+ Network.Google.Resource.Classroom.Courses.Announcements.List: calAccessToken :: Lens' CoursesAnnouncementsList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.List: calAnnouncementStates :: Lens' CoursesAnnouncementsList [Text]
+ Network.Google.Resource.Classroom.Courses.Announcements.List: calCallback :: Lens' CoursesAnnouncementsList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.List: calCourseId :: Lens' CoursesAnnouncementsList Text
+ Network.Google.Resource.Classroom.Courses.Announcements.List: calOrderBy :: Lens' CoursesAnnouncementsList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.List: calPageSize :: Lens' CoursesAnnouncementsList (Maybe Int32)
+ Network.Google.Resource.Classroom.Courses.Announcements.List: calPageToken :: Lens' CoursesAnnouncementsList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.List: calUploadProtocol :: Lens' CoursesAnnouncementsList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.List: calUploadType :: Lens' CoursesAnnouncementsList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.List: calXgafv :: Lens' CoursesAnnouncementsList (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Courses.Announcements.List: coursesAnnouncementsList :: Text -> CoursesAnnouncementsList
+ Network.Google.Resource.Classroom.Courses.Announcements.List: data CoursesAnnouncementsList
+ Network.Google.Resource.Classroom.Courses.Announcements.List: instance Data.Data.Data Network.Google.Resource.Classroom.Courses.Announcements.List.CoursesAnnouncementsList
+ Network.Google.Resource.Classroom.Courses.Announcements.List: instance GHC.Classes.Eq Network.Google.Resource.Classroom.Courses.Announcements.List.CoursesAnnouncementsList
+ Network.Google.Resource.Classroom.Courses.Announcements.List: instance GHC.Generics.Generic Network.Google.Resource.Classroom.Courses.Announcements.List.CoursesAnnouncementsList
+ Network.Google.Resource.Classroom.Courses.Announcements.List: instance GHC.Show.Show Network.Google.Resource.Classroom.Courses.Announcements.List.CoursesAnnouncementsList
+ Network.Google.Resource.Classroom.Courses.Announcements.List: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Classroom.Courses.Announcements.List.CoursesAnnouncementsList
+ Network.Google.Resource.Classroom.Courses.Announcements.List: 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
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: camaAccessToken :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: camaCallback :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: camaCourseId :: Lens' CoursesAnnouncementsModifyAssignees Text
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: camaId :: Lens' CoursesAnnouncementsModifyAssignees Text
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: camaPayload :: Lens' CoursesAnnouncementsModifyAssignees ModifyAnnouncementAssigneesRequest
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: camaUploadProtocol :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: camaUploadType :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: camaXgafv :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: coursesAnnouncementsModifyAssignees :: Text -> ModifyAnnouncementAssigneesRequest -> Text -> CoursesAnnouncementsModifyAssignees
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: data CoursesAnnouncementsModifyAssignees
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: instance Data.Data.Data Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees.CoursesAnnouncementsModifyAssignees
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: instance GHC.Classes.Eq Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees.CoursesAnnouncementsModifyAssignees
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: instance GHC.Generics.Generic Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees.CoursesAnnouncementsModifyAssignees
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: instance GHC.Show.Show Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees.CoursesAnnouncementsModifyAssignees
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees.CoursesAnnouncementsModifyAssignees
+ Network.Google.Resource.Classroom.Courses.Announcements.ModifyAssignees: 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
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: capAccessToken :: Lens' CoursesAnnouncementsPatch (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: capCallback :: Lens' CoursesAnnouncementsPatch (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: capCourseId :: Lens' CoursesAnnouncementsPatch Text
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: capId :: Lens' CoursesAnnouncementsPatch Text
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: capPayload :: Lens' CoursesAnnouncementsPatch Announcement
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: capUpdateMask :: Lens' CoursesAnnouncementsPatch (Maybe GFieldMask)
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: capUploadProtocol :: Lens' CoursesAnnouncementsPatch (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: capUploadType :: Lens' CoursesAnnouncementsPatch (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: capXgafv :: Lens' CoursesAnnouncementsPatch (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: coursesAnnouncementsPatch :: Text -> Announcement -> Text -> CoursesAnnouncementsPatch
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: data CoursesAnnouncementsPatch
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: instance Data.Data.Data Network.Google.Resource.Classroom.Courses.Announcements.Patch.CoursesAnnouncementsPatch
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: instance GHC.Classes.Eq Network.Google.Resource.Classroom.Courses.Announcements.Patch.CoursesAnnouncementsPatch
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: instance GHC.Generics.Generic Network.Google.Resource.Classroom.Courses.Announcements.Patch.CoursesAnnouncementsPatch
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: instance GHC.Show.Show Network.Google.Resource.Classroom.Courses.Announcements.Patch.CoursesAnnouncementsPatch
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Classroom.Courses.Announcements.Patch.CoursesAnnouncementsPatch
+ Network.Google.Resource.Classroom.Courses.Announcements.Patch: 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
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: ccwmaAccessToken :: Lens' CoursesCourseWorkModifyAssignees (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: ccwmaCallback :: Lens' CoursesCourseWorkModifyAssignees (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: ccwmaCourseId :: Lens' CoursesCourseWorkModifyAssignees Text
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: ccwmaId :: Lens' CoursesCourseWorkModifyAssignees Text
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: ccwmaPayload :: Lens' CoursesCourseWorkModifyAssignees ModifyCourseWorkAssigneesRequest
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: ccwmaUploadProtocol :: Lens' CoursesCourseWorkModifyAssignees (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: ccwmaUploadType :: Lens' CoursesCourseWorkModifyAssignees (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: ccwmaXgafv :: Lens' CoursesCourseWorkModifyAssignees (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: coursesCourseWorkModifyAssignees :: Text -> ModifyCourseWorkAssigneesRequest -> Text -> CoursesCourseWorkModifyAssignees
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: data CoursesCourseWorkModifyAssignees
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: instance Data.Data.Data Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees.CoursesCourseWorkModifyAssignees
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: instance GHC.Classes.Eq Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees.CoursesCourseWorkModifyAssignees
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: instance GHC.Generics.Generic Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees.CoursesCourseWorkModifyAssignees
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: instance GHC.Show.Show Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees.CoursesCourseWorkModifyAssignees
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees.CoursesCourseWorkModifyAssignees
+ Network.Google.Resource.Classroom.Courses.CourseWork.ModifyAssignees: 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
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: ccwssrcAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: ccwssrcCallback :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: ccwssrcCourseId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: ccwssrcCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: ccwssrcId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: ccwssrcPayload :: Lens' CoursesCourseWorkStudentSubmissionsReclaim ReclaimStudentSubmissionRequest
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: ccwssrcUploadProtocol :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: ccwssrcUploadType :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: ccwssrcXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Registrations.Create: data RegistrationsCreate
+ Network.Google.Resource.Classroom.Registrations.Create: instance Data.Data.Data Network.Google.Resource.Classroom.Registrations.Create.RegistrationsCreate
+ Network.Google.Resource.Classroom.Registrations.Create: instance GHC.Classes.Eq Network.Google.Resource.Classroom.Registrations.Create.RegistrationsCreate
+ Network.Google.Resource.Classroom.Registrations.Create: instance GHC.Generics.Generic Network.Google.Resource.Classroom.Registrations.Create.RegistrationsCreate
+ Network.Google.Resource.Classroom.Registrations.Create: instance GHC.Show.Show Network.Google.Resource.Classroom.Registrations.Create.RegistrationsCreate
+ Network.Google.Resource.Classroom.Registrations.Create: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Classroom.Registrations.Create.RegistrationsCreate
+ Network.Google.Resource.Classroom.Registrations.Create: rcAccessToken :: Lens' RegistrationsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Registrations.Create: rcCallback :: Lens' RegistrationsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Registrations.Create: rcPayload :: Lens' RegistrationsCreate Registration
+ Network.Google.Resource.Classroom.Registrations.Create: rcUploadProtocol :: Lens' RegistrationsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Registrations.Create: rcUploadType :: Lens' RegistrationsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Registrations.Create: rcXgafv :: Lens' RegistrationsCreate (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Registrations.Create: registrationsCreate :: Registration -> RegistrationsCreate
+ Network.Google.Resource.Classroom.Registrations.Create: 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
+ Network.Google.Resource.Classroom.Registrations.Delete: data RegistrationsDelete
+ Network.Google.Resource.Classroom.Registrations.Delete: instance Data.Data.Data Network.Google.Resource.Classroom.Registrations.Delete.RegistrationsDelete
+ Network.Google.Resource.Classroom.Registrations.Delete: instance GHC.Classes.Eq Network.Google.Resource.Classroom.Registrations.Delete.RegistrationsDelete
+ Network.Google.Resource.Classroom.Registrations.Delete: instance GHC.Generics.Generic Network.Google.Resource.Classroom.Registrations.Delete.RegistrationsDelete
+ Network.Google.Resource.Classroom.Registrations.Delete: instance GHC.Show.Show Network.Google.Resource.Classroom.Registrations.Delete.RegistrationsDelete
+ Network.Google.Resource.Classroom.Registrations.Delete: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Classroom.Registrations.Delete.RegistrationsDelete
+ Network.Google.Resource.Classroom.Registrations.Delete: rdAccessToken :: Lens' RegistrationsDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Registrations.Delete: rdCallback :: Lens' RegistrationsDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Registrations.Delete: rdRegistrationId :: Lens' RegistrationsDelete Text
+ Network.Google.Resource.Classroom.Registrations.Delete: rdUploadProtocol :: Lens' RegistrationsDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Registrations.Delete: rdUploadType :: Lens' RegistrationsDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Registrations.Delete: rdXgafv :: Lens' RegistrationsDelete (Maybe Xgafv)
+ Network.Google.Resource.Classroom.Registrations.Delete: registrationsDelete :: Text -> RegistrationsDelete
+ Network.Google.Resource.Classroom.Registrations.Delete: 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
- Network.Google.Classroom: cwCreationTime :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom: cwCreationTime :: Lens' CourseWork (Maybe UTCTime)
- Network.Google.Classroom: cwState :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom: cwState :: Lens' CourseWork (Maybe CourseWorkState)
- Network.Google.Classroom: cwSubmissionModificationMode :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom: cwSubmissionModificationMode :: Lens' CourseWork (Maybe CourseWorkSubmissionModificationMode)
- Network.Google.Classroom: cwUpdateTime :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom: cwUpdateTime :: Lens' CourseWork (Maybe UTCTime)
- Network.Google.Classroom: cwWorkType :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom: cwWorkType :: Lens' CourseWork (Maybe CourseWorkWorkType)
- Network.Google.Classroom: giCreationTime :: Lens' GuardianInvitation (Maybe Text)
+ Network.Google.Classroom: giCreationTime :: Lens' GuardianInvitation (Maybe UTCTime)
- Network.Google.Classroom: giState :: Lens' GuardianInvitation (Maybe Text)
+ Network.Google.Classroom: giState :: Lens' GuardianInvitation (Maybe GuardianInvitationState)
- Network.Google.Classroom: gpPermission :: Lens' GlobalPermission (Maybe Text)
+ Network.Google.Classroom: gpPermission :: Lens' GlobalPermission (Maybe GlobalPermissionPermission)
- Network.Google.Classroom: iRole :: Lens' Invitation (Maybe Text)
+ Network.Google.Classroom: iRole :: Lens' Invitation (Maybe InvitationRole)
- Network.Google.Classroom: sdfShareMode :: Lens' SharedDriveFile (Maybe Text)
+ Network.Google.Classroom: sdfShareMode :: Lens' SharedDriveFile (Maybe SharedDriveFileShareMode)
- Network.Google.Classroom: ssCourseWorkType :: Lens' StudentSubmission (Maybe Text)
+ Network.Google.Classroom: ssCourseWorkType :: Lens' StudentSubmission (Maybe StudentSubmissionCourseWorkType)
- Network.Google.Classroom: ssCreationTime :: Lens' StudentSubmission (Maybe Text)
+ Network.Google.Classroom: ssCreationTime :: Lens' StudentSubmission (Maybe UTCTime)
- Network.Google.Classroom: ssState :: Lens' StudentSubmission (Maybe Text)
+ Network.Google.Classroom: ssState :: Lens' StudentSubmission (Maybe StudentSubmissionState)
- Network.Google.Classroom: ssUpdateTime :: Lens' StudentSubmission (Maybe Text)
+ Network.Google.Classroom: ssUpdateTime :: Lens' StudentSubmission (Maybe UTCTime)
- Network.Google.Classroom: type ClassroomAPI = InvitationsListResource :<|> (InvitationsAcceptResource :<|> (InvitationsGetResource :<|> (InvitationsCreateResource :<|> (InvitationsDeleteResource :<|> (CoursesCourseWorkStudentSubmissionsReturnResource :<|> (CoursesCourseWorkStudentSubmissionsListResource :<|> (CoursesCourseWorkStudentSubmissionsReclaimResource :<|> (CoursesCourseWorkStudentSubmissionsPatchResource :<|> (CoursesCourseWorkStudentSubmissionsGetResource :<|> (CoursesCourseWorkStudentSubmissionsTurnInResource :<|> (CoursesCourseWorkStudentSubmissionsModifyAttachmentsResource :<|> (CoursesCourseWorkListResource :<|> (CoursesCourseWorkPatchResource :<|> (CoursesCourseWorkGetResource :<|> (CoursesCourseWorkCreateResource :<|> (CoursesCourseWorkDeleteResource :<|> (CoursesTeachersListResource :<|> (CoursesTeachersGetResource :<|> (CoursesTeachersCreateResource :<|> (CoursesTeachersDeleteResource :<|> (CoursesAliasesListResource :<|> (CoursesAliasesCreateResource :<|> (CoursesAliasesDeleteResource :<|> (CoursesStudentsListResource :<|> (CoursesStudentsGetResource :<|> (CoursesStudentsCreateResource :<|> (CoursesStudentsDeleteResource :<|> (CoursesListResource :<|> (CoursesPatchResource :<|> (CoursesGetResource :<|> (CoursesCreateResource :<|> (CoursesDeleteResource :<|> (CoursesUpdateResource :<|> (UserProFilesGuardiansListResource :<|> (UserProFilesGuardiansGetResource :<|> (UserProFilesGuardiansDeleteResource :<|> (UserProFilesGuardianInvitationsListResource :<|> (UserProFilesGuardianInvitationsPatchResource :<|> (UserProFilesGuardianInvitationsGetResource :<|> (UserProFilesGuardianInvitationsCreateResource :<|> UserProFilesGetResource))))))))))))))))))))))))))))))))))))))))
+ Network.Google.Classroom: 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 :<|> CoursesAliasesListResource :<|> CoursesAliasesCreateResource :<|> CoursesAliasesDeleteResource :<|> CoursesStudentsListResource :<|> CoursesStudentsGetResource :<|> CoursesStudentsCreateResource :<|> CoursesStudentsDeleteResource :<|> CoursesListResource :<|> CoursesPatchResource :<|> CoursesGetResource :<|> CoursesCreateResource :<|> CoursesDeleteResource :<|> CoursesUpdateResource :<|> UserProFilesGuardiansListResource :<|> UserProFilesGuardiansGetResource :<|> UserProFilesGuardiansDeleteResource :<|> UserProFilesGuardianInvitationsListResource :<|> UserProFilesGuardianInvitationsPatchResource :<|> UserProFilesGuardianInvitationsGetResource :<|> UserProFilesGuardianInvitationsCreateResource :<|> UserProFilesGetResource :<|> RegistrationsCreateResource :<|> RegistrationsDeleteResource
- Network.Google.Classroom.Types: cwCreationTime :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom.Types: cwCreationTime :: Lens' CourseWork (Maybe UTCTime)
- Network.Google.Classroom.Types: cwState :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom.Types: cwState :: Lens' CourseWork (Maybe CourseWorkState)
- Network.Google.Classroom.Types: cwSubmissionModificationMode :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom.Types: cwSubmissionModificationMode :: Lens' CourseWork (Maybe CourseWorkSubmissionModificationMode)
- Network.Google.Classroom.Types: cwUpdateTime :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom.Types: cwUpdateTime :: Lens' CourseWork (Maybe UTCTime)
- Network.Google.Classroom.Types: cwWorkType :: Lens' CourseWork (Maybe Text)
+ Network.Google.Classroom.Types: cwWorkType :: Lens' CourseWork (Maybe CourseWorkWorkType)
- Network.Google.Classroom.Types: giCreationTime :: Lens' GuardianInvitation (Maybe Text)
+ Network.Google.Classroom.Types: giCreationTime :: Lens' GuardianInvitation (Maybe UTCTime)
- Network.Google.Classroom.Types: giState :: Lens' GuardianInvitation (Maybe Text)
+ Network.Google.Classroom.Types: giState :: Lens' GuardianInvitation (Maybe GuardianInvitationState)
- Network.Google.Classroom.Types: gpPermission :: Lens' GlobalPermission (Maybe Text)
+ Network.Google.Classroom.Types: gpPermission :: Lens' GlobalPermission (Maybe GlobalPermissionPermission)
- Network.Google.Classroom.Types: iRole :: Lens' Invitation (Maybe Text)
+ Network.Google.Classroom.Types: iRole :: Lens' Invitation (Maybe InvitationRole)
- Network.Google.Classroom.Types: sdfShareMode :: Lens' SharedDriveFile (Maybe Text)
+ Network.Google.Classroom.Types: sdfShareMode :: Lens' SharedDriveFile (Maybe SharedDriveFileShareMode)
- Network.Google.Classroom.Types: ssCourseWorkType :: Lens' StudentSubmission (Maybe Text)
+ Network.Google.Classroom.Types: ssCourseWorkType :: Lens' StudentSubmission (Maybe StudentSubmissionCourseWorkType)
- Network.Google.Classroom.Types: ssCreationTime :: Lens' StudentSubmission (Maybe Text)
+ Network.Google.Classroom.Types: ssCreationTime :: Lens' StudentSubmission (Maybe UTCTime)
- Network.Google.Classroom.Types: ssState :: Lens' StudentSubmission (Maybe Text)
+ Network.Google.Classroom.Types: ssState :: Lens' StudentSubmission (Maybe StudentSubmissionState)
- Network.Google.Classroom.Types: ssUpdateTime :: Lens' StudentSubmission (Maybe Text)
+ Network.Google.Classroom.Types: ssUpdateTime :: Lens' StudentSubmission (Maybe UTCTime)
- Network.Google.Resource.Classroom.Courses.Aliases.Create: cacXgafv :: Lens' CoursesAliasesCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Aliases.Create: cacXgafv :: Lens' CoursesAliasesCreate (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Aliases.Create: type CoursesAliasesCreateResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("aliases" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CourseAlias :> Post '[JSON] CourseAlias))))))))))))
+ Network.Google.Resource.Classroom.Courses.Aliases.Create: 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
- Network.Google.Resource.Classroom.Courses.Aliases.Delete: cadXgafv :: Lens' CoursesAliasesDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Aliases.Delete: cadXgafv :: Lens' CoursesAliasesDelete (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Aliases.Delete: type CoursesAliasesDeleteResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("aliases" :> (Capture "alias" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty))))))))))))
+ Network.Google.Resource.Classroom.Courses.Aliases.Delete: 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
- Network.Google.Resource.Classroom.Courses.Aliases.List: type CoursesAliasesListResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("aliases" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListCourseAliasesResponse)))))))))))))
+ Network.Google.Resource.Classroom.Courses.Aliases.List: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.Create: ccwcXgafv :: Lens' CoursesCourseWorkCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.Create: ccwcXgafv :: Lens' CoursesCourseWorkCreate (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.Create: type CoursesCourseWorkCreateResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CourseWork :> Post '[JSON] CourseWork))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.Create: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.Delete: ccwdXgafv :: Lens' CoursesCourseWorkDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.Delete: ccwdXgafv :: Lens' CoursesCourseWorkDelete (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.Delete: type CoursesCourseWorkDeleteResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.Delete: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.Get: ccwgXgafv :: Lens' CoursesCourseWorkGet (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.Get: ccwgXgafv :: Lens' CoursesCourseWorkGet (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.Get: type CoursesCourseWorkGetResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] CourseWork))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.Get: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.List: ccwlXgafv :: Lens' CoursesCourseWorkList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.List: ccwlXgafv :: Lens' CoursesCourseWorkList (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.List: type CoursesCourseWorkListResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "orderBy" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParams "courseWorkStates" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListCourseWorkResponse)))))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.List: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.Patch: ccwpUpdateMask :: Lens' CoursesCourseWorkPatch (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.Patch: ccwpUpdateMask :: Lens' CoursesCourseWorkPatch (Maybe GFieldMask)
- Network.Google.Resource.Classroom.Courses.CourseWork.Patch: ccwpXgafv :: Lens' CoursesCourseWorkPatch (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.Patch: ccwpXgafv :: Lens' CoursesCourseWorkPatch (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.Patch: type CoursesCourseWorkPatchResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "updateMask" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CourseWork :> Patch '[JSON] CourseWork))))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.Patch: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get: ccwssgXgafv :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get: ccwssgXgafv :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get: type CoursesCourseWorkStudentSubmissionsGetResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (Capture "courseWorkId" Text :> ("studentSubmissions" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] StudentSubmission))))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List: ccwsslXgafv :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List: ccwsslXgafv :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List: type CoursesCourseWorkStudentSubmissionsListResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (Capture "courseWorkId" Text :> ("studentSubmissions" :> (QueryParams "states" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "late" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "userId" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListStudentSubmissionsResponse))))))))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments: ccwssmaXgafv :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments: ccwssmaXgafv :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments: type CoursesCourseWorkStudentSubmissionsModifyAttachmentsResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (Capture "courseWorkId" Text :> ("studentSubmissions" :> (CaptureMode "id" "modifyAttachments" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ModifyAttachmentsRequest :> Post '[JSON] StudentSubmission)))))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch: ccwsspUpdateMask :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch: ccwsspUpdateMask :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe GFieldMask)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch: ccwsspXgafv :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch: ccwsspXgafv :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch: type CoursesCourseWorkStudentSubmissionsPatchResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (Capture "courseWorkId" Text :> ("studentSubmissions" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "updateMask" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StudentSubmission :> Patch '[JSON] StudentSubmission))))))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Patch: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: type CoursesCourseWorkStudentSubmissionsReclaimResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (Capture "courseWorkId" Text :> ("studentSubmissions" :> (CaptureMode "id" "reclaim" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ReclaimStudentSubmissionRequest :> Post '[JSON] Empty)))))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Reclaim: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Return: ccwssrXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Return: ccwssrXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Return: type CoursesCourseWorkStudentSubmissionsReturnResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (Capture "courseWorkId" Text :> ("studentSubmissions" :> (CaptureMode "id" "return" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ReturnStudentSubmissionRequest :> Post '[JSON] Empty)))))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Return: 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
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn: ccwsstiXgafv :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn: ccwsstiXgafv :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn: type CoursesCourseWorkStudentSubmissionsTurnInResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("courseWork" :> (Capture "courseWorkId" Text :> ("studentSubmissions" :> (CaptureMode "id" "turnIn" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] TurnInStudentSubmissionRequest :> Post '[JSON] Empty)))))))))))))))
+ Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.TurnIn: 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
- Network.Google.Resource.Classroom.Courses.Create: ccXgafv :: Lens' CoursesCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Create: ccXgafv :: Lens' CoursesCreate (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Create: type CoursesCreateResource = "v1" :> ("courses" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Course :> Post '[JSON] Course))))))))))
+ Network.Google.Resource.Classroom.Courses.Create: 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
- Network.Google.Resource.Classroom.Courses.Delete: cdXgafv :: Lens' CoursesDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Delete: cdXgafv :: Lens' CoursesDelete (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Delete: type CoursesDeleteResource = "v1" :> ("courses" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty))))))))))
+ Network.Google.Resource.Classroom.Courses.Delete: 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
- Network.Google.Resource.Classroom.Courses.Get: cgXgafv :: Lens' CoursesGet (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Get: cgXgafv :: Lens' CoursesGet (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Get: type CoursesGetResource = "v1" :> ("courses" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Course))))))))))
+ Network.Google.Resource.Classroom.Courses.Get: 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
- Network.Google.Resource.Classroom.Courses.List: clXgafv :: Lens' CoursesList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.List: clXgafv :: Lens' CoursesList (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.List: type CoursesListResource = "v1" :> ("courses" :> (QueryParam "studentId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "teacherId" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParams "courseStates" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListCoursesResponse))))))))))))))
+ Network.Google.Resource.Classroom.Courses.List: 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
- Network.Google.Resource.Classroom.Courses.Patch: cpUpdateMask :: Lens' CoursesPatch (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Patch: cpUpdateMask :: Lens' CoursesPatch (Maybe GFieldMask)
- Network.Google.Resource.Classroom.Courses.Patch: cpXgafv :: Lens' CoursesPatch (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Patch: cpXgafv :: Lens' CoursesPatch (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Patch: type CoursesPatchResource = "v1" :> ("courses" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "updateMask" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Course :> Patch '[JSON] Course))))))))))))
+ Network.Google.Resource.Classroom.Courses.Patch: 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
- Network.Google.Resource.Classroom.Courses.Students.Create: cscXgafv :: Lens' CoursesStudentsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Students.Create: cscXgafv :: Lens' CoursesStudentsCreate (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Students.Create: type CoursesStudentsCreateResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("students" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "enrollmentCode" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Student :> Post '[JSON] Student)))))))))))))
+ Network.Google.Resource.Classroom.Courses.Students.Create: 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
- Network.Google.Resource.Classroom.Courses.Students.Delete: csdXgafv :: Lens' CoursesStudentsDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Students.Delete: csdXgafv :: Lens' CoursesStudentsDelete (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Students.Delete: type CoursesStudentsDeleteResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("students" :> (Capture "userId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty))))))))))))
+ Network.Google.Resource.Classroom.Courses.Students.Delete: 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
- Network.Google.Resource.Classroom.Courses.Students.Get: csgXgafv :: Lens' CoursesStudentsGet (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Students.Get: csgXgafv :: Lens' CoursesStudentsGet (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Students.Get: type CoursesStudentsGetResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("students" :> (Capture "userId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Student))))))))))))
+ Network.Google.Resource.Classroom.Courses.Students.Get: 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
- Network.Google.Resource.Classroom.Courses.Students.List: cslXgafv :: Lens' CoursesStudentsList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Students.List: cslXgafv :: Lens' CoursesStudentsList (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Students.List: type CoursesStudentsListResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("students" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListStudentsResponse)))))))))))))
+ Network.Google.Resource.Classroom.Courses.Students.List: 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
- Network.Google.Resource.Classroom.Courses.Teachers.Create: ctcXgafv :: Lens' CoursesTeachersCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Teachers.Create: ctcXgafv :: Lens' CoursesTeachersCreate (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Teachers.Create: type CoursesTeachersCreateResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("teachers" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Teacher :> Post '[JSON] Teacher))))))))))))
+ Network.Google.Resource.Classroom.Courses.Teachers.Create: 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
- Network.Google.Resource.Classroom.Courses.Teachers.Delete: ctdXgafv :: Lens' CoursesTeachersDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Teachers.Delete: ctdXgafv :: Lens' CoursesTeachersDelete (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Teachers.Delete: type CoursesTeachersDeleteResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("teachers" :> (Capture "userId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty))))))))))))
+ Network.Google.Resource.Classroom.Courses.Teachers.Delete: 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
- Network.Google.Resource.Classroom.Courses.Teachers.Get: ctgXgafv :: Lens' CoursesTeachersGet (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Teachers.Get: ctgXgafv :: Lens' CoursesTeachersGet (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Teachers.Get: type CoursesTeachersGetResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("teachers" :> (Capture "userId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Teacher))))))))))))
+ Network.Google.Resource.Classroom.Courses.Teachers.Get: 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
- Network.Google.Resource.Classroom.Courses.Teachers.List: ctlXgafv :: Lens' CoursesTeachersList (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Teachers.List: ctlXgafv :: Lens' CoursesTeachersList (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Teachers.List: type CoursesTeachersListResource = "v1" :> ("courses" :> (Capture "courseId" Text :> ("teachers" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListTeachersResponse)))))))))))))
+ Network.Google.Resource.Classroom.Courses.Teachers.List: 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
- Network.Google.Resource.Classroom.Courses.Update: cuXgafv :: Lens' CoursesUpdate (Maybe Text)
+ Network.Google.Resource.Classroom.Courses.Update: cuXgafv :: Lens' CoursesUpdate (Maybe Xgafv)
- Network.Google.Resource.Classroom.Courses.Update: type CoursesUpdateResource = "v1" :> ("courses" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Course :> Put '[JSON] Course)))))))))))
+ Network.Google.Resource.Classroom.Courses.Update: 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
- Network.Google.Resource.Classroom.Invitations.Accept: iaXgafv :: Lens' InvitationsAccept (Maybe Text)
+ Network.Google.Resource.Classroom.Invitations.Accept: iaXgafv :: Lens' InvitationsAccept (Maybe Xgafv)
- Network.Google.Resource.Classroom.Invitations.Accept: type InvitationsAcceptResource = "v1" :> ("invitations" :> (CaptureMode "id" "accept" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] Empty))))))))))
+ Network.Google.Resource.Classroom.Invitations.Accept: 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
- Network.Google.Resource.Classroom.Invitations.Create: icXgafv :: Lens' InvitationsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.Invitations.Create: icXgafv :: Lens' InvitationsCreate (Maybe Xgafv)
- Network.Google.Resource.Classroom.Invitations.Create: type InvitationsCreateResource = "v1" :> ("invitations" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Invitation :> Post '[JSON] Invitation))))))))))
+ Network.Google.Resource.Classroom.Invitations.Create: 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
- Network.Google.Resource.Classroom.Invitations.Delete: idXgafv :: Lens' InvitationsDelete (Maybe Text)
+ Network.Google.Resource.Classroom.Invitations.Delete: idXgafv :: Lens' InvitationsDelete (Maybe Xgafv)
- Network.Google.Resource.Classroom.Invitations.Delete: type InvitationsDeleteResource = "v1" :> ("invitations" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty))))))))))
+ Network.Google.Resource.Classroom.Invitations.Delete: 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
- Network.Google.Resource.Classroom.Invitations.Get: igXgafv :: Lens' InvitationsGet (Maybe Text)
+ Network.Google.Resource.Classroom.Invitations.Get: igXgafv :: Lens' InvitationsGet (Maybe Xgafv)
- Network.Google.Resource.Classroom.Invitations.Get: type InvitationsGetResource = "v1" :> ("invitations" :> (Capture "id" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Invitation))))))))))
+ Network.Google.Resource.Classroom.Invitations.Get: 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
- Network.Google.Resource.Classroom.Invitations.List: ilXgafv :: Lens' InvitationsList (Maybe Text)
+ Network.Google.Resource.Classroom.Invitations.List: ilXgafv :: Lens' InvitationsList (Maybe Xgafv)
- Network.Google.Resource.Classroom.Invitations.List: type InvitationsListResource = "v1" :> ("invitations" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "courseId" Text :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "userId" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListInvitationsResponse)))))))))))))
+ Network.Google.Resource.Classroom.Invitations.List: 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
- Network.Google.Resource.Classroom.UserProFiles.Get: type UserProFilesGetResource = "v1" :> ("userProfiles" :> (Capture "userId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] UserProFile))))))))))
+ Network.Google.Resource.Classroom.UserProFiles.Get: 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
- Network.Google.Resource.Classroom.UserProFiles.Get: upfgXgafv :: Lens' UserProFilesGet (Maybe Text)
+ Network.Google.Resource.Classroom.UserProFiles.Get: upfgXgafv :: Lens' UserProFilesGet (Maybe Xgafv)
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create: type UserProFilesGuardianInvitationsCreateResource = "v1" :> ("userProfiles" :> (Capture "studentId" Text :> ("guardianInvitations" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] GuardianInvitation :> Post '[JSON] GuardianInvitation))))))))))))
+ Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create: 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
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create: upfgicXgafv :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)
+ Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create: upfgicXgafv :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Xgafv)
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get: type UserProFilesGuardianInvitationsGetResource = "v1" :> ("userProfiles" :> (Capture "studentId" Text :> ("guardianInvitations" :> (Capture "invitationId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] GuardianInvitation))))))))))))
+ Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get: 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
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get: upfgigXgafv :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)
+ Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get: upfgigXgafv :: Lens' UserProFilesGuardianInvitationsGet (Maybe Xgafv)
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List: type UserProFilesGuardianInvitationsListResource = "v1" :> ("userProfiles" :> (Capture "studentId" Text :> ("guardianInvitations" :> (QueryParams "states" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "invitedEmailAddress" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListGuardianInvitationsResponse)))))))))))))))
+ Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List: 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
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List: upfgilXgafv :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)
+ Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List: upfgilXgafv :: Lens' UserProFilesGuardianInvitationsList (Maybe Xgafv)
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch: type UserProFilesGuardianInvitationsPatchResource = "v1" :> ("userProfiles" :> (Capture "studentId" Text :> ("guardianInvitations" :> (Capture "invitationId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "updateMask" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] GuardianInvitation :> Patch '[JSON] GuardianInvitation))))))))))))))
+ Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch: 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
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch: upfgipUpdateMask :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)
+ Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch: upfgipUpdateMask :: Lens' UserProFilesGuardianInvitationsPatch (Maybe GFieldMask)
- Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch: upfgipXgafv :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)
+ Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch: upfgipXgafv :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Xgafv)
- Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete: type UserProFilesGuardiansDeleteResource = "v1" :> ("userProfiles" :> (Capture "studentId" Text :> ("guardians" :> (Capture "guardianId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty))))))))))))
+ Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete: 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
- Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete: upfgdXgafv :: Lens' UserProFilesGuardiansDelete (Maybe Text)
+ Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete: upfgdXgafv :: Lens' UserProFilesGuardiansDelete (Maybe Xgafv)
- Network.Google.Resource.Classroom.UserProFiles.Guardians.Get: type UserProFilesGuardiansGetResource = "v1" :> ("userProfiles" :> (Capture "studentId" Text :> ("guardians" :> (Capture "guardianId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Guardian))))))))))))
+ Network.Google.Resource.Classroom.UserProFiles.Guardians.Get: 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
- Network.Google.Resource.Classroom.UserProFiles.Guardians.Get: upfggXgafv :: Lens' UserProFilesGuardiansGet (Maybe Text)
+ Network.Google.Resource.Classroom.UserProFiles.Guardians.Get: upfggXgafv :: Lens' UserProFilesGuardiansGet (Maybe Xgafv)
- Network.Google.Resource.Classroom.UserProFiles.Guardians.List: type UserProFilesGuardiansListResource = "v1" :> ("userProfiles" :> (Capture "studentId" Text :> ("guardians" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "invitedEmailAddress" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListGuardiansResponse))))))))))))))
+ Network.Google.Resource.Classroom.UserProFiles.Guardians.List: 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
- Network.Google.Resource.Classroom.UserProFiles.Guardians.List: upfglXgafv :: Lens' UserProFilesGuardiansList (Maybe Text)
+ Network.Google.Resource.Classroom.UserProFiles.Guardians.List: upfglXgafv :: Lens' UserProFilesGuardiansList (Maybe Xgafv)

Files

gen/Network/Google/Classroom.hs view
@@ -24,17 +24,22 @@     -- * OAuth Scopes     , classroomRostersReadOnlyScope     , classroomCoursesScope+    , classroomPushNotificationsScope     , classroomCourseworkStudentsReadOnlyScope     , classroomProFileEmailsScope     , classroomProFilePhotosScope     , classroomCourseworkMeScope-    , classroomCourseWorkReadOnlyScope+    , classroomAnnouncementsReadOnlyScope+    , classroomGuardianlinksStudentsScope     , classroomStudentSubmissionsStudentsReadOnlyScope+    , classroomGuardianlinksMeReadOnlyScope     , classroomRostersScope     , classroomCoursesReadOnlyScope     , classroomCourseworkStudentsScope+    , classroomAnnouncementsScope     , classroomCourseworkMeReadOnlyScope     , classroomStudentSubmissionsMeReadOnlyScope+    , classroomGuardianlinksStudentsReadOnlyScope      -- * API Declaration     , ClassroomAPI@@ -50,6 +55,24 @@     -- ** 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 @@ -62,6 +85,9 @@     -- ** 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 @@ -143,6 +169,12 @@     -- ** 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 @@ -179,9 +211,12 @@     , CourseWork     , courseWork     , cwCreationTime+    , cwScheduledTime     , cwState+    , cwAssigneeMode     , cwMaterials     , cwCourseId+    , cwIndividualStudentsOptions     , cwMaxPoints     , cwWorkType     , cwDueTime@@ -191,11 +226,38 @@     , 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@@ -213,14 +275,33 @@     , 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@@ -231,6 +312,15 @@     , Empty     , empty +    -- ** ModifyCourseWorkAssigneesRequestAssigneeMode+    , ModifyCourseWorkAssigneesRequestAssigneeMode (..)++    -- ** GuardianInvitationState+    , GuardianInvitationState (..)++    -- ** SharedDriveFileShareMode+    , SharedDriveFileShareMode (..)+     -- ** GlobalPermission     , GlobalPermission     , globalPermission@@ -243,6 +333,14 @@     , lURL     , lTitle +    -- ** ModifyAnnouncementAssigneesRequestAssigneeMode+    , ModifyAnnouncementAssigneesRequestAssigneeMode (..)++    -- ** IndividualStudentsOptions+    , IndividualStudentsOptions+    , individualStudentsOptions+    , isoStudentIds+     -- ** AssignmentSubmission     , AssignmentSubmission     , assignmentSubmission@@ -253,6 +351,18 @@     , modifyAttachmentsRequest     , marAddAttachments +    -- ** ListAnnouncementsResponse+    , ListAnnouncementsResponse+    , listAnnouncementsResponse+    , larNextPageToken+    , larAnnouncements++    -- ** AnnouncementAssigneeMode+    , AnnouncementAssigneeMode (..)++    -- ** CourseWorkState+    , CourseWorkState (..)+     -- ** ListStudentSubmissionsResponse     , ListStudentSubmissionsResponse     , listStudentSubmissionsResponse@@ -294,11 +404,17 @@     , cmYouTubeVideo     , cmForm +    -- ** StudentSubmissionState+    , StudentSubmissionState (..)+     -- ** ShortAnswerSubmission     , ShortAnswerSubmission     , shortAnswerSubmission     , sasAnswer +    -- ** AnnouncementState+    , AnnouncementState (..)+     -- ** Invitation     , Invitation     , invitation@@ -315,6 +431,22 @@     , aYouTubeVideo     , aForm +    -- ** Announcement+    , Announcement+    , announcement+    , aCreationTime+    , aScheduledTime+    , aState+    , aAssigneeMode+    , aText+    , aMaterials+    , aCourseId+    , aIndividualStudentsOptions+    , aUpdateTime+    , aId+    , aCreatorUserId+    , aAlternateLink+     -- ** StudentSubmission     , StudentSubmission     , studentSubmission@@ -329,6 +461,7 @@     , ssUserId     , ssUpdateTime     , ssCourseWorkType+    , ssSubmissionHistory     , ssAssignedGrade     , ssId     , ssDraftGrade@@ -386,10 +519,14 @@     , TurnInStudentSubmissionRequest     , turnInStudentSubmissionRequest +    -- ** Xgafv+    , Xgafv (..)+     -- ** UserProFile     , UserProFile     , userProFile     , upfPhotoURL+    , upfVerifiedTeacher     , upfName     , upfEmailAddress     , upfId@@ -402,6 +539,19 @@     , dTitle     , dAlternateLink +    -- ** SubmissionHistory+    , SubmissionHistory+    , submissionHistory+    , shGradeHistory+    , shStateHistory++    -- ** StateHistory+    , StateHistory+    , stateHistory+    , shState+    , shActorUserId+    , shStateTimestamp+     -- ** MultipleChoiceQuestion     , MultipleChoiceQuestion     , multipleChoiceQuestion@@ -410,24 +560,31 @@     -- ** Course     , Course     , course-    , cCreationTime-    , cRoom-    , cCourseMaterialSets-    , cTeacherGroupEmail-    , cTeacherFolder-    , cCourseState-    , cGuardiansEnabled-    , cEnrollmentCode-    , cUpdateTime-    , cOwnerId-    , cName-    , cId-    , cAlternateLink-    , cCourseGroupEmail-    , cDescription-    , cDescriptionHeading-    , cSection+    , 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@@ -436,6 +593,9 @@     , todMinutes     , todSeconds +    -- ** FeedFeedType+    , FeedFeedType (..)+     -- ** ListGuardianInvitationsResponse     , ListGuardianInvitationsResponse     , listGuardianInvitationsResponse@@ -464,6 +624,28 @@     , courseAlias     , caAlias +    -- ** CourseRosterChangesInfo+    , CourseRosterChangesInfo+    , courseRosterChangesInfo+    , crciCourseId++    -- ** ModifyIndividualStudentsOptions+    , ModifyIndividualStudentsOptions+    , modifyIndividualStudentsOptions+    , misoAddStudentIds+    , misoRemoveStudentIds++    -- ** CloudPubsubTopic+    , CloudPubsubTopic+    , cloudPubsubTopic+    , cptTopicName++    -- ** GlobalPermissionPermission+    , GlobalPermissionPermission (..)++    -- ** CourseWorkAssigneeMode+    , CourseWorkAssigneeMode (..)+     -- ** Form     , Form     , form@@ -485,6 +667,17 @@     , sProFile     , sStudentWorkFolder     , sUserId++    -- ** CourseWorkSubmissionModificationMode+    , CourseWorkSubmissionModificationMode (..)++    -- ** Registration+    , Registration+    , registration+    , rRegistrationId+    , rExpiryTime+    , rFeed+    , rCloudPubsubTopic     ) where  import           Network.Google.Classroom.Types@@ -492,10 +685,17 @@ 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@@ -523,6 +723,8 @@ 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@@ -558,11 +760,18 @@        :<|> CoursesCourseWorkPatchResource        :<|> CoursesCourseWorkGetResource        :<|> CoursesCourseWorkCreateResource+       :<|> CoursesCourseWorkModifyAssigneesResource        :<|> CoursesCourseWorkDeleteResource        :<|> CoursesTeachersListResource        :<|> CoursesTeachersGetResource        :<|> CoursesTeachersCreateResource        :<|> CoursesTeachersDeleteResource+       :<|> CoursesAnnouncementsListResource+       :<|> CoursesAnnouncementsPatchResource+       :<|> CoursesAnnouncementsGetResource+       :<|> CoursesAnnouncementsCreateResource+       :<|> CoursesAnnouncementsModifyAssigneesResource+       :<|> CoursesAnnouncementsDeleteResource        :<|> CoursesAliasesListResource        :<|> CoursesAliasesCreateResource        :<|> CoursesAliasesDeleteResource@@ -584,3 +793,5 @@        :<|> UserProFilesGuardianInvitationsGetResource        :<|> UserProFilesGuardianInvitationsCreateResource        :<|> UserProFilesGetResource+       :<|> RegistrationsCreateResource+       :<|> RegistrationsDeleteResource
gen/Network/Google/Classroom/Types.hs view
@@ -22,17 +22,22 @@     -- * OAuth Scopes     , classroomRostersReadOnlyScope     , classroomCoursesScope+    , classroomPushNotificationsScope     , classroomCourseworkStudentsReadOnlyScope     , classroomProFileEmailsScope     , classroomProFilePhotosScope     , classroomCourseworkMeScope-    , classroomCourseWorkReadOnlyScope+    , classroomAnnouncementsReadOnlyScope+    , classroomGuardianlinksStudentsScope     , classroomStudentSubmissionsStudentsReadOnlyScope+    , classroomGuardianlinksMeReadOnlyScope     , classroomRostersScope     , classroomCoursesReadOnlyScope     , classroomCourseworkStudentsScope+    , classroomAnnouncementsScope     , classroomCourseworkMeReadOnlyScope     , classroomStudentSubmissionsMeReadOnlyScope+    , classroomGuardianlinksStudentsReadOnlyScope      -- * ListCourseAliasesResponse     , ListCourseAliasesResponse@@ -44,9 +49,12 @@     , CourseWork     , courseWork     , cwCreationTime+    , cwScheduledTime     , cwState+    , cwAssigneeMode     , cwMaterials     , cwCourseId+    , cwIndividualStudentsOptions     , cwMaxPoints     , cwWorkType     , cwDueTime@@ -56,11 +64,38 @@     , 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@@ -78,14 +113,33 @@     , 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@@ -96,6 +150,15 @@     , Empty     , empty +    -- * ModifyCourseWorkAssigneesRequestAssigneeMode+    , ModifyCourseWorkAssigneesRequestAssigneeMode (..)++    -- * GuardianInvitationState+    , GuardianInvitationState (..)++    -- * SharedDriveFileShareMode+    , SharedDriveFileShareMode (..)+     -- * GlobalPermission     , GlobalPermission     , globalPermission@@ -108,6 +171,14 @@     , lURL     , lTitle +    -- * ModifyAnnouncementAssigneesRequestAssigneeMode+    , ModifyAnnouncementAssigneesRequestAssigneeMode (..)++    -- * IndividualStudentsOptions+    , IndividualStudentsOptions+    , individualStudentsOptions+    , isoStudentIds+     -- * AssignmentSubmission     , AssignmentSubmission     , assignmentSubmission@@ -118,6 +189,18 @@     , modifyAttachmentsRequest     , marAddAttachments +    -- * ListAnnouncementsResponse+    , ListAnnouncementsResponse+    , listAnnouncementsResponse+    , larNextPageToken+    , larAnnouncements++    -- * AnnouncementAssigneeMode+    , AnnouncementAssigneeMode (..)++    -- * CourseWorkState+    , CourseWorkState (..)+     -- * ListStudentSubmissionsResponse     , ListStudentSubmissionsResponse     , listStudentSubmissionsResponse@@ -159,11 +242,17 @@     , cmYouTubeVideo     , cmForm +    -- * StudentSubmissionState+    , StudentSubmissionState (..)+     -- * ShortAnswerSubmission     , ShortAnswerSubmission     , shortAnswerSubmission     , sasAnswer +    -- * AnnouncementState+    , AnnouncementState (..)+     -- * Invitation     , Invitation     , invitation@@ -180,6 +269,22 @@     , aYouTubeVideo     , aForm +    -- * Announcement+    , Announcement+    , announcement+    , aCreationTime+    , aScheduledTime+    , aState+    , aAssigneeMode+    , aText+    , aMaterials+    , aCourseId+    , aIndividualStudentsOptions+    , aUpdateTime+    , aId+    , aCreatorUserId+    , aAlternateLink+     -- * StudentSubmission     , StudentSubmission     , studentSubmission@@ -194,6 +299,7 @@     , ssUserId     , ssUpdateTime     , ssCourseWorkType+    , ssSubmissionHistory     , ssAssignedGrade     , ssId     , ssDraftGrade@@ -251,10 +357,14 @@     , TurnInStudentSubmissionRequest     , turnInStudentSubmissionRequest +    -- * Xgafv+    , Xgafv (..)+     -- * UserProFile     , UserProFile     , userProFile     , upfPhotoURL+    , upfVerifiedTeacher     , upfName     , upfEmailAddress     , upfId@@ -267,6 +377,19 @@     , dTitle     , dAlternateLink +    -- * SubmissionHistory+    , SubmissionHistory+    , submissionHistory+    , shGradeHistory+    , shStateHistory++    -- * StateHistory+    , StateHistory+    , stateHistory+    , shState+    , shActorUserId+    , shStateTimestamp+     -- * MultipleChoiceQuestion     , MultipleChoiceQuestion     , multipleChoiceQuestion@@ -275,24 +398,31 @@     -- * Course     , Course     , course-    , cCreationTime-    , cRoom-    , cCourseMaterialSets-    , cTeacherGroupEmail-    , cTeacherFolder-    , cCourseState-    , cGuardiansEnabled-    , cEnrollmentCode-    , cUpdateTime-    , cOwnerId-    , cName-    , cId-    , cAlternateLink-    , cCourseGroupEmail-    , cDescription-    , cDescriptionHeading-    , cSection+    , 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@@ -301,6 +431,9 @@     , todMinutes     , todSeconds +    -- * FeedFeedType+    , FeedFeedType (..)+     -- * ListGuardianInvitationsResponse     , ListGuardianInvitationsResponse     , listGuardianInvitationsResponse@@ -329,6 +462,28 @@     , courseAlias     , caAlias +    -- * CourseRosterChangesInfo+    , CourseRosterChangesInfo+    , courseRosterChangesInfo+    , crciCourseId++    -- * ModifyIndividualStudentsOptions+    , ModifyIndividualStudentsOptions+    , modifyIndividualStudentsOptions+    , misoAddStudentIds+    , misoRemoveStudentIds++    -- * CloudPubsubTopic+    , CloudPubsubTopic+    , cloudPubsubTopic+    , cptTopicName++    -- * GlobalPermissionPermission+    , GlobalPermissionPermission (..)++    -- * CourseWorkAssigneeMode+    , CourseWorkAssigneeMode (..)+     -- * Form     , Form     , form@@ -350,6 +505,17 @@     , sProFile     , sStudentWorkFolder     , sUserId++    -- * CourseWorkSubmissionModificationMode+    , CourseWorkSubmissionModificationMode (..)++    -- * Registration+    , Registration+    , registration+    , rRegistrationId+    , rExpiryTime+    , rFeed+    , rCloudPubsubTopic     ) where  import           Network.Google.Classroom.Types.Product@@ -370,6 +536,10 @@ 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"]@@ -387,16 +557,23 @@ classroomCourseworkMeScope :: Proxy '["https://www.googleapis.com/auth/classroom.coursework.me"] classroomCourseworkMeScope = Proxy; --- | View instructions for teacher-assigned work in your Google Classroom--- classes-classroomCourseWorkReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.course-work.readonly"]-classroomCourseWorkReadOnlyScope = 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;@@ -411,6 +588,10 @@ classroomCourseworkStudentsScope :: Proxy '["https://www.googleapis.com/auth/classroom.coursework.students"] classroomCourseworkStudentsScope = 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;@@ -418,3 +599,7 @@ -- | 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 view
@@ -76,2797 +76,3805 @@ -- -- /See:/ 'courseWork' smart constructor. data CourseWork = CourseWork'-    { _cwCreationTime               :: !(Maybe Text)-    , _cwState                      :: !(Maybe Text)-    , _cwMaterials                  :: !(Maybe [Material])-    , _cwCourseId                   :: !(Maybe Text)-    , _cwMaxPoints                  :: !(Maybe (Textual Double))-    , _cwWorkType                   :: !(Maybe Text)-    , _cwDueTime                    :: !(Maybe TimeOfDay')-    , _cwAssociatedWithDeveloper    :: !(Maybe Bool)-    , _cwUpdateTime                 :: !(Maybe Text)-    , _cwMultipleChoiceQuestion     :: !(Maybe MultipleChoiceQuestion)-    , _cwId                         :: !(Maybe Text)-    , _cwSubmissionModificationMode :: !(Maybe Text)-    , _cwDueDate                    :: !(Maybe Date)-    , _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'------ * 'cwState'------ * 'cwMaterials'------ * 'cwCourseId'------ * 'cwMaxPoints'------ * 'cwWorkType'------ * 'cwDueTime'------ * 'cwAssociatedWithDeveloper'------ * 'cwUpdateTime'------ * 'cwMultipleChoiceQuestion'------ * 'cwId'------ * 'cwSubmissionModificationMode'------ * 'cwDueDate'------ * 'cwTitle'------ * 'cwAlternateLink'------ * 'cwAssignment'------ * 'cwDescription'-courseWork-    :: CourseWork-courseWork =-    CourseWork'-    { _cwCreationTime = Nothing-    , _cwState = Nothing-    , _cwMaterials = Nothing-    , _cwCourseId = Nothing-    , _cwMaxPoints = Nothing-    , _cwWorkType = Nothing-    , _cwDueTime = Nothing-    , _cwAssociatedWithDeveloper = Nothing-    , _cwUpdateTime = Nothing-    , _cwMultipleChoiceQuestion = Nothing-    , _cwId = Nothing-    , _cwSubmissionModificationMode = Nothing-    , _cwDueDate = Nothing-    , _cwTitle = Nothing-    , _cwAlternateLink = Nothing-    , _cwAssignment = Nothing-    , _cwDescription = Nothing-    }---- | Timestamp when this course work was created. Read-only.-cwCreationTime :: Lens' CourseWork (Maybe Text)-cwCreationTime-  = lens _cwCreationTime-      (\ s a -> s{_cwCreationTime = a})---- | Status of this course work. If unspecified, the default state is--- \`DRAFT\`.-cwState :: Lens' CourseWork (Maybe Text)-cwState = lens _cwState (\ s a -> s{_cwState = 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})---- | 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 Text)-cwWorkType-  = lens _cwWorkType (\ s a -> s{_cwWorkType = a})---- | Optional time of day, in UTC, that submissions for this 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 Text)-cwUpdateTime-  = lens _cwUpdateTime (\ s a -> s{_cwUpdateTime = 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 Text)-cwSubmissionModificationMode-  = lens _cwSubmissionModificationMode-      (\ s a -> s{_cwSubmissionModificationMode = a})---- | Optional date, in UTC, that submissions for this 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})---- | 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 .:? "state") <*>-                     (o .:? "materials" .!= mempty)-                     <*> (o .:? "courseId")-                     <*> (o .:? "maxPoints")-                     <*> (o .:? "workType")-                     <*> (o .:? "dueTime")-                     <*> (o .:? "associatedWithDeveloper")-                     <*> (o .:? "updateTime")-                     <*> (o .:? "multipleChoiceQuestion")-                     <*> (o .:? "id")-                     <*> (o .:? "submissionModificationMode")-                     <*> (o .:? "dueDate")-                     <*> (o .:? "title")-                     <*> (o .:? "alternateLink")-                     <*> (o .:? "assignment")-                     <*> (o .:? "description"))--instance ToJSON CourseWork where-        toJSON CourseWork'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _cwCreationTime,-                  ("state" .=) <$> _cwState,-                  ("materials" .=) <$> _cwMaterials,-                  ("courseId" .=) <$> _cwCourseId,-                  ("maxPoints" .=) <$> _cwMaxPoints,-                  ("workType" .=) <$> _cwWorkType,-                  ("dueTime" .=) <$> _cwDueTime,-                  ("associatedWithDeveloper" .=) <$>-                    _cwAssociatedWithDeveloper,-                  ("updateTime" .=) <$> _cwUpdateTime,-                  ("multipleChoiceQuestion" .=) <$>-                    _cwMultipleChoiceQuestion,-                  ("id" .=) <$> _cwId,-                  ("submissionModificationMode" .=) <$>-                    _cwSubmissionModificationMode,-                  ("dueDate" .=) <$> _cwDueDate,-                  ("title" .=) <$> _cwTitle,-                  ("alternateLink" .=) <$> _cwAlternateLink,-                  ("assignment" .=) <$> _cwAssignment,-                  ("description" .=) <$> _cwDescription])---- | 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 Text)-    , _giStudentId           :: !(Maybe Text)-    , _giState               :: !(Maybe Text)-    , _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 Text)-giCreationTime-  = lens _giCreationTime-      (\ s a -> s{_giCreationTime = a})---- | 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 Text)-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])---- | 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 Text-    } 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 Text)-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])---- | 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])---- | 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 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 Text)-    , _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 Text)-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])---- | 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 Text)-    , _ssLate                     :: !(Maybe Bool)-    , _ssState                    :: !(Maybe Text)-    , _ssCourseId                 :: !(Maybe Text)-    , _ssMultipleChoiceSubmission :: !(Maybe MultipleChoiceSubmission)-    , _ssAssignmentSubmission     :: !(Maybe AssignmentSubmission)-    , _ssShortAnswerSubmission    :: !(Maybe ShortAnswerSubmission)-    , _ssAssociatedWithDeveloper  :: !(Maybe Bool)-    , _ssUserId                   :: !(Maybe Text)-    , _ssUpdateTime               :: !(Maybe Text)-    , _ssCourseWorkType           :: !(Maybe Text)-    , _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'------ * '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-    , _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 Text)-ssCreationTime-  = lens _ssCreationTime-      (\ s a -> s{_ssCreationTime = a})---- | 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 Text)-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 .-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 Text)-ssUpdateTime-  = lens _ssUpdateTime (\ s a -> s{_ssUpdateTime = a})---- | Type of course work this submission is for. Read-only.-ssCourseWorkType :: Lens' StudentSubmission (Maybe Text)-ssCourseWorkType-  = lens _ssCourseWorkType-      (\ s a -> s{_ssCourseWorkType = a})---- | Optional grade. If unset, no grade was set. This must be a non-negative--- integer value. 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 must be a--- non-negative integer value. 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 .:? "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,-                  ("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 calendar date, e.g. date of birth. The time of day--- and time zone are either specified elsewhere or are not significant. The--- date is relative to the Proleptic Gregorian Calendar. The day may be 0--- to represent a year and month where the day is not significant, e.g.--- credit card expiration date. The year may be 0 to represent a month and--- day independent of year, e.g. anniversary 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\/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.-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'-    { _tCourseId :: !(Maybe Text)-    , _tProFile  :: !(Maybe UserProFile)-    , _tUserId   :: !(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:------ * 'tCourseId'------ * 'tProFile'------ * 'tUserId'-teacher-    :: Teacher-teacher =-    Teacher'-    { _tCourseId = Nothing-    , _tProFile = Nothing-    , _tUserId = Nothing-    }---- | Identifier of the course. Read-only.-tCourseId :: Lens' Teacher (Maybe Text)-tCourseId-  = lens _tCourseId (\ s a -> s{_tCourseId = a})---- | Global user information for the teacher. Read-only.-tProFile :: Lens' Teacher (Maybe UserProFile)-tProFile = lens _tProFile (\ s a -> s{_tProFile = 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-tUserId :: Lens' Teacher (Maybe Text)-tUserId = lens _tUserId (\ s a -> s{_tUserId = 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" .=) <$> _tCourseId,-                  ("profile" .=) <$> _tProFile,-                  ("userId" .=) <$> _tUserId])---- | 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)-    , _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'------ * 'upfName'------ * 'upfEmailAddress'------ * 'upfId'------ * 'upfPermissions'-userProFile-    :: UserProFile-userProFile =-    UserProFile'-    { _upfPhotoURL = 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})---- | 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 .:? "name") <*>-                     (o .:? "emailAddress")-                     <*> (o .:? "id")-                     <*> (o .:? "permissions" .!= mempty))--instance ToJSON UserProFile where-        toJSON UserProFile'{..}-          = object-              (catMaybes-                 [("photoUrl" .=) <$> _upfPhotoURL,-                  ("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])---- | 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'-    { _cCreationTime       :: !(Maybe Text)-    , _cRoom               :: !(Maybe Text)-    , _cCourseMaterialSets :: !(Maybe [CourseMaterialSet])-    , _cTeacherGroupEmail  :: !(Maybe Text)-    , _cTeacherFolder      :: !(Maybe DriveFolder)-    , _cCourseState        :: !(Maybe Text)-    , _cGuardiansEnabled   :: !(Maybe Bool)-    , _cEnrollmentCode     :: !(Maybe Text)-    , _cUpdateTime         :: !(Maybe Text)-    , _cOwnerId            :: !(Maybe Text)-    , _cName               :: !(Maybe Text)-    , _cId                 :: !(Maybe Text)-    , _cAlternateLink      :: !(Maybe Text)-    , _cCourseGroupEmail   :: !(Maybe Text)-    , _cDescription        :: !(Maybe Text)-    , _cDescriptionHeading :: !(Maybe Text)-    , _cSection            :: !(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:------ * 'cCreationTime'------ * 'cRoom'------ * 'cCourseMaterialSets'------ * 'cTeacherGroupEmail'------ * 'cTeacherFolder'------ * 'cCourseState'------ * 'cGuardiansEnabled'------ * 'cEnrollmentCode'------ * 'cUpdateTime'------ * 'cOwnerId'------ * 'cName'------ * 'cId'------ * 'cAlternateLink'------ * 'cCourseGroupEmail'------ * 'cDescription'------ * 'cDescriptionHeading'------ * 'cSection'-course-    :: Course-course =-    Course'-    { _cCreationTime = Nothing-    , _cRoom = Nothing-    , _cCourseMaterialSets = Nothing-    , _cTeacherGroupEmail = Nothing-    , _cTeacherFolder = Nothing-    , _cCourseState = Nothing-    , _cGuardiansEnabled = Nothing-    , _cEnrollmentCode = Nothing-    , _cUpdateTime = Nothing-    , _cOwnerId = Nothing-    , _cName = Nothing-    , _cId = Nothing-    , _cAlternateLink = Nothing-    , _cCourseGroupEmail = Nothing-    , _cDescription = Nothing-    , _cDescriptionHeading = Nothing-    , _cSection = Nothing-    }---- | Creation time of the course. Specifying this field in a course update--- mask results in an error. Read-only.-cCreationTime :: Lens' Course (Maybe Text)-cCreationTime-  = lens _cCreationTime-      (\ s a -> s{_cCreationTime = a})---- | Optional room location. For example, \"301\". If set, this field must be--- a valid UTF-8 string and no longer than 650 characters.-cRoom :: Lens' Course (Maybe Text)-cRoom = lens _cRoom (\ s a -> s{_cRoom = a})---- | Sets of materials that appear on the \"about\" page of this course.--- Read-only.-cCourseMaterialSets :: Lens' Course [CourseMaterialSet]-cCourseMaterialSets-  = lens _cCourseMaterialSets-      (\ s a -> s{_cCourseMaterialSets = a})-      . _Default-      . _Coerce---- | 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.-cTeacherGroupEmail :: Lens' Course (Maybe Text)-cTeacherGroupEmail-  = lens _cTeacherGroupEmail-      (\ s a -> s{_cTeacherGroupEmail = 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.-cTeacherFolder :: Lens' Course (Maybe DriveFolder)-cTeacherFolder-  = lens _cTeacherFolder-      (\ s a -> s{_cTeacherFolder = a})---- | State of the course. If unspecified, the default state is--- \`PROVISIONED\`.-cCourseState :: Lens' Course (Maybe Text)-cCourseState-  = lens _cCourseState (\ s a -> s{_cCourseState = a})---- | Whether or not guardian notifications are enabled for this course.--- Read-only.-cGuardiansEnabled :: Lens' Course (Maybe Bool)-cGuardiansEnabled-  = lens _cGuardiansEnabled-      (\ s a -> s{_cGuardiansEnabled = a})---- | Enrollment code to use when joining this course. Specifying this field--- in a course update mask results in an error. Read-only.-cEnrollmentCode :: Lens' Course (Maybe Text)-cEnrollmentCode-  = lens _cEnrollmentCode-      (\ s a -> s{_cEnrollmentCode = a})---- | Time of the most recent update to this course. Specifying this field in--- a course update mask results in an error. Read-only.-cUpdateTime :: Lens' Course (Maybe Text)-cUpdateTime-  = lens _cUpdateTime (\ s a -> s{_cUpdateTime = a})---- | 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. Specifying--- this field in a course update mask results in an \`INVALID_ARGUMENT\`--- error.-cOwnerId :: Lens' Course (Maybe Text)-cOwnerId = lens _cOwnerId (\ s a -> s{_cOwnerId = 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.-cName :: Lens' Course (Maybe Text)-cName = lens _cName (\ s a -> s{_cName = 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.-cId :: Lens' Course (Maybe Text)-cId = lens _cId (\ s a -> s{_cId = a})---- | Absolute link to this course in the Classroom web UI. Read-only.-cAlternateLink :: Lens' Course (Maybe Text)-cAlternateLink-  = lens _cAlternateLink-      (\ s a -> s{_cAlternateLink = 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.-cCourseGroupEmail :: Lens' Course (Maybe Text)-cCourseGroupEmail-  = lens _cCourseGroupEmail-      (\ s a -> s{_cCourseGroupEmail = 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.-cDescription :: Lens' Course (Maybe Text)-cDescription-  = lens _cDescription (\ s a -> s{_cDescription = 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.-cDescriptionHeading :: Lens' Course (Maybe Text)-cDescriptionHeading-  = lens _cDescriptionHeading-      (\ s a -> s{_cDescriptionHeading = 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.-cSection :: Lens' Course (Maybe Text)-cSection = lens _cSection (\ s a -> s{_cSection = a})--instance FromJSON Course where-        parseJSON-          = withObject "Course"-              (\ o ->-                 Course' <$>-                   (o .:? "creationTime") <*> (o .:? "room") <*>-                     (o .:? "courseMaterialSets" .!= mempty)-                     <*> (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" .=) <$> _cCreationTime,-                  ("room" .=) <$> _cRoom,-                  ("courseMaterialSets" .=) <$> _cCourseMaterialSets,-                  ("teacherGroupEmail" .=) <$> _cTeacherGroupEmail,-                  ("teacherFolder" .=) <$> _cTeacherFolder,-                  ("courseState" .=) <$> _cCourseState,-                  ("guardiansEnabled" .=) <$> _cGuardiansEnabled,-                  ("enrollmentCode" .=) <$> _cEnrollmentCode,-                  ("updateTime" .=) <$> _cUpdateTime,-                  ("ownerId" .=) <$> _cOwnerId, ("name" .=) <$> _cName,-                  ("id" .=) <$> _cId,-                  ("alternateLink" .=) <$> _cAlternateLink,-                  ("courseGroupEmail" .=) <$> _cCourseGroupEmail,-                  ("description" .=) <$> _cDescription,-                  ("descriptionHeading" .=) <$> _cDescriptionHeading,-                  ("section" .=) <$> _cSection])---- | Represents a time of day. The date and time zone are either not--- significant or are specified elsewhere. An API may chose 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.-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 Text)-    } 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 Text)-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])---- | 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'-    { _ltrNextPageToken :: !(Maybe Text)-    , _ltrTeachers      :: !(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:------ * 'ltrNextPageToken'------ * 'ltrTeachers'-listTeachersResponse-    :: ListTeachersResponse-listTeachersResponse =-    ListTeachersResponse'-    { _ltrNextPageToken = Nothing-    , _ltrTeachers = Nothing-    }---- | Token identifying the next page of results to return. If empty, no--- further results are available.-ltrNextPageToken :: Lens' ListTeachersResponse (Maybe Text)-ltrNextPageToken-  = lens _ltrNextPageToken-      (\ s a -> s{_ltrNextPageToken = a})---- | Teachers who match the list request.-ltrTeachers :: Lens' ListTeachersResponse [Teacher]-ltrTeachers-  = lens _ltrTeachers (\ s a -> s{_ltrTeachers = 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" .=) <$> _ltrNextPageToken,-                  ("teachers" .=) <$> _ltrTeachers])---- | 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])+    { _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')+    , _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'+--+-- * '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+    , _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++-- | 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 .:? "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,+                  ("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])++-- | 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])++-- | 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'+    { _tCourseId :: !(Maybe Text)+    , _tProFile  :: !(Maybe UserProFile)+    , _tUserId   :: !(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:+--+-- * 'tCourseId'+--+-- * 'tProFile'+--+-- * 'tUserId'+teacher+    :: Teacher+teacher =+    Teacher'+    { _tCourseId = Nothing+    , _tProFile = Nothing+    , _tUserId = Nothing+    }++-- | Identifier of the course. Read-only.+tCourseId :: Lens' Teacher (Maybe Text)+tCourseId+  = lens _tCourseId (\ s a -> s{_tCourseId = a})++-- | Global user information for the teacher. Read-only.+tProFile :: Lens' Teacher (Maybe UserProFile)+tProFile = lens _tProFile (\ s a -> s{_tProFile = 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+tUserId :: Lens' Teacher (Maybe Text)+tUserId = lens _tUserId (\ s a -> s{_tUserId = 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" .=) <$> _tCourseId,+                  ("profile" .=) <$> _tProFile,+                  ("userId" .=) <$> _tUserId])++-- | 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'+    { _ltrNextPageToken :: !(Maybe Text)+    , _ltrTeachers      :: !(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:+--+-- * 'ltrNextPageToken'+--+-- * 'ltrTeachers'+listTeachersResponse+    :: ListTeachersResponse+listTeachersResponse =+    ListTeachersResponse'+    { _ltrNextPageToken = Nothing+    , _ltrTeachers = Nothing+    }++-- | Token identifying the next page of results to return. If empty, no+-- further results are available.+ltrNextPageToken :: Lens' ListTeachersResponse (Maybe Text)+ltrNextPageToken+  = lens _ltrNextPageToken+      (\ s a -> s{_ltrNextPageToken = a})++-- | Teachers who match the list request.+ltrTeachers :: Lens' ListTeachersResponse [Teacher]+ltrTeachers+  = lens _ltrTeachers (\ s a -> s{_ltrTeachers = 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" .=) <$> _ltrNextPageToken,+                  ("teachers" .=) <$> _ltrTeachers])++-- | 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 view
@@ -16,4 +16,773 @@ -- module Network.Google.Classroom.Types.Sum where -import           Network.Google.Prelude+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 view
@@ -23,7 +23,10 @@ -- 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.+-- 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@@ -38,12 +41,10 @@     -- * Request Lenses     , cacXgafv     , cacUploadProtocol-    , cacPp     , cacCourseId     , cacAccessToken     , cacUploadType     , cacPayload-    , cacBearerToken     , cacCallback     ) where @@ -57,32 +58,31 @@        "courses" :>          Capture "courseId" Text :>            "aliases" :>-             QueryParam "$.xgafv" Text :>+             QueryParam "$.xgafv" Xgafv :>                QueryParam "upload_protocol" Text :>-                 QueryParam "pp" Bool :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "callback" Text :>-                           QueryParam "alt" AltJSON :>-                             ReqBody '[JSON] CourseAlias :>-                               Post '[JSON] CourseAlias+                 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.+-- 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 Text)+    { _cacXgafv          :: !(Maybe Xgafv)     , _cacUploadProtocol :: !(Maybe Text)-    , _cacPp             :: !Bool     , _cacCourseId       :: !Text     , _cacAccessToken    :: !(Maybe Text)     , _cacUploadType     :: !(Maybe Text)     , _cacPayload        :: !CourseAlias-    , _cacBearerToken    :: !(Maybe Text)     , _cacCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -94,8 +94,6 @@ -- -- * 'cacUploadProtocol' ----- * 'cacPp'--- -- * 'cacCourseId' -- -- * 'cacAccessToken'@@ -104,8 +102,6 @@ -- -- * 'cacPayload' ----- * 'cacBearerToken'--- -- * 'cacCallback' coursesAliasesCreate     :: Text -- ^ 'cacCourseId'@@ -115,17 +111,15 @@     CoursesAliasesCreate'     { _cacXgafv = Nothing     , _cacUploadProtocol = Nothing-    , _cacPp = True     , _cacCourseId = pCacCourseId_     , _cacAccessToken = Nothing     , _cacUploadType = Nothing     , _cacPayload = pCacPayload_-    , _cacBearerToken = Nothing     , _cacCallback = Nothing     }  -- | V1 error format.-cacXgafv :: Lens' CoursesAliasesCreate (Maybe Text)+cacXgafv :: Lens' CoursesAliasesCreate (Maybe Xgafv) cacXgafv = lens _cacXgafv (\ s a -> s{_cacXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -134,10 +128,6 @@   = lens _cacUploadProtocol       (\ s a -> s{_cacUploadProtocol = a}) --- | Pretty-print response.-cacPp :: Lens' CoursesAliasesCreate Bool-cacPp = lens _cacPp (\ s a -> s{_cacPp = a})- -- | Identifier of the course to alias. This identifier can be either the -- Classroom-assigned identifier or an alias. cacCourseId :: Lens' CoursesAliasesCreate Text@@ -161,12 +151,6 @@ cacPayload   = lens _cacPayload (\ s a -> s{_cacPayload = a}) --- | OAuth bearer token.-cacBearerToken :: Lens' CoursesAliasesCreate (Maybe Text)-cacBearerToken-  = lens _cacBearerToken-      (\ s a -> s{_cacBearerToken = a})- -- | JSONP cacCallback :: Lens' CoursesAliasesCreate (Maybe Text) cacCallback@@ -178,10 +162,8 @@              '["https://www.googleapis.com/auth/classroom.courses"]         requestClient CoursesAliasesCreate'{..}           = go _cacCourseId _cacXgafv _cacUploadProtocol-              (Just _cacPp)               _cacAccessToken               _cacUploadType-              _cacBearerToken               _cacCallback               (Just AltJSON)               _cacPayload
gen/Network/Google/Resource/Classroom/Courses/Aliases/Delete.hs view
@@ -23,7 +23,9 @@ -- 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.+-- 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@@ -38,12 +40,10 @@     -- * Request Lenses     , cadXgafv     , cadUploadProtocol-    , cadPp     , cadCourseId     , cadAccessToken     , cadUploadType     , cadAlias-    , cadBearerToken     , cadCallback     ) where @@ -58,30 +58,28 @@          Capture "courseId" Text :>            "aliases" :>              Capture "alias" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :> Delete '[JSON] Empty+                   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.+-- 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 Text)+    { _cadXgafv          :: !(Maybe Xgafv)     , _cadUploadProtocol :: !(Maybe Text)-    , _cadPp             :: !Bool     , _cadCourseId       :: !Text     , _cadAccessToken    :: !(Maybe Text)     , _cadUploadType     :: !(Maybe Text)     , _cadAlias          :: !Text-    , _cadBearerToken    :: !(Maybe Text)     , _cadCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -93,8 +91,6 @@ -- -- * 'cadUploadProtocol' ----- * 'cadPp'--- -- * 'cadCourseId' -- -- * 'cadAccessToken'@@ -103,8 +99,6 @@ -- -- * 'cadAlias' ----- * 'cadBearerToken'--- -- * 'cadCallback' coursesAliasesDelete     :: Text -- ^ 'cadCourseId'@@ -114,17 +108,15 @@     CoursesAliasesDelete'     { _cadXgafv = Nothing     , _cadUploadProtocol = Nothing-    , _cadPp = True     , _cadCourseId = pCadCourseId_     , _cadAccessToken = Nothing     , _cadUploadType = Nothing     , _cadAlias = pCadAlias_-    , _cadBearerToken = Nothing     , _cadCallback = Nothing     }  -- | V1 error format.-cadXgafv :: Lens' CoursesAliasesDelete (Maybe Text)+cadXgafv :: Lens' CoursesAliasesDelete (Maybe Xgafv) cadXgafv = lens _cadXgafv (\ s a -> s{_cadXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -133,10 +125,6 @@   = lens _cadUploadProtocol       (\ s a -> s{_cadUploadProtocol = a}) --- | Pretty-print response.-cadPp :: Lens' CoursesAliasesDelete Bool-cadPp = lens _cadPp (\ s a -> s{_cadPp = 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@@ -159,12 +147,6 @@ cadAlias :: Lens' CoursesAliasesDelete Text cadAlias = lens _cadAlias (\ s a -> s{_cadAlias = a}) --- | OAuth bearer token.-cadBearerToken :: Lens' CoursesAliasesDelete (Maybe Text)-cadBearerToken-  = lens _cadBearerToken-      (\ s a -> s{_cadBearerToken = a})- -- | JSONP cadCallback :: Lens' CoursesAliasesDelete (Maybe Text) cadCallback@@ -177,10 +159,8 @@         requestClient CoursesAliasesDelete'{..}           = go _cadCourseId _cadAlias _cadXgafv               _cadUploadProtocol-              (Just _cadPp)               _cadAccessToken               _cadUploadType-              _cadBearerToken               _cadCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Courses/Aliases/List.hs view
@@ -36,16 +36,14 @@     , CoursesAliasesList      -- * Request Lenses-    , calXgafv-    , calUploadProtocol-    , calPp-    , calCourseId-    , calAccessToken-    , calUploadType-    , calBearerToken-    , calPageToken-    , calPageSize-    , calCallback+    , calaXgafv+    , calaUploadProtocol+    , calaCourseId+    , calaAccessToken+    , calaUploadType+    , calaPageToken+    , calaPageSize+    , calaCallback     ) where  import           Network.Google.Classroom.Types@@ -58,17 +56,15 @@        "courses" :>          Capture "courseId" Text :>            "aliases" :>-             QueryParam "$.xgafv" Text :>+             QueryParam "$.xgafv" Xgafv :>                QueryParam "upload_protocol" Text :>-                 QueryParam "pp" Bool :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "pageToken" Text :>-                           QueryParam "pageSize" (Textual Int32) :>-                             QueryParam "callback" Text :>-                               QueryParam "alt" AltJSON :>-                                 Get '[JSON] ListCourseAliasesResponse+                 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@@ -77,115 +73,99 @@ -- -- /See:/ 'coursesAliasesList' smart constructor. data CoursesAliasesList = CoursesAliasesList'-    { _calXgafv          :: !(Maybe Text)-    , _calUploadProtocol :: !(Maybe Text)-    , _calPp             :: !Bool-    , _calCourseId       :: !Text-    , _calAccessToken    :: !(Maybe Text)-    , _calUploadType     :: !(Maybe Text)-    , _calBearerToken    :: !(Maybe Text)-    , _calPageToken      :: !(Maybe Text)-    , _calPageSize       :: !(Maybe (Textual Int32))-    , _calCallback       :: !(Maybe Text)+    { _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: ----- * 'calXgafv'------ * 'calUploadProtocol'------ * 'calPp'+-- * 'calaXgafv' ----- * 'calCourseId'+-- * 'calaUploadProtocol' ----- * 'calAccessToken'+-- * 'calaCourseId' ----- * 'calUploadType'+-- * 'calaAccessToken' ----- * 'calBearerToken'+-- * 'calaUploadType' ----- * 'calPageToken'+-- * 'calaPageToken' ----- * 'calPageSize'+-- * 'calaPageSize' ----- * 'calCallback'+-- * 'calaCallback' coursesAliasesList-    :: Text -- ^ 'calCourseId'+    :: Text -- ^ 'calaCourseId'     -> CoursesAliasesList-coursesAliasesList pCalCourseId_ =+coursesAliasesList pCalaCourseId_ =     CoursesAliasesList'-    { _calXgafv = Nothing-    , _calUploadProtocol = Nothing-    , _calPp = True-    , _calCourseId = pCalCourseId_-    , _calAccessToken = Nothing-    , _calUploadType = Nothing-    , _calBearerToken = Nothing-    , _calPageToken = Nothing-    , _calPageSize = Nothing-    , _calCallback = Nothing+    { _calaXgafv = Nothing+    , _calaUploadProtocol = Nothing+    , _calaCourseId = pCalaCourseId_+    , _calaAccessToken = Nothing+    , _calaUploadType = Nothing+    , _calaPageToken = Nothing+    , _calaPageSize = Nothing+    , _calaCallback = Nothing     }  -- | V1 error format.-calXgafv :: Lens' CoursesAliasesList (Maybe Text)-calXgafv = lens _calXgafv (\ s a -> s{_calXgafv = a})+calaXgafv :: Lens' CoursesAliasesList (Maybe Xgafv)+calaXgafv+  = lens _calaXgafv (\ s a -> s{_calaXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").-calUploadProtocol :: Lens' CoursesAliasesList (Maybe Text)-calUploadProtocol-  = lens _calUploadProtocol-      (\ s a -> s{_calUploadProtocol = a})---- | Pretty-print response.-calPp :: Lens' CoursesAliasesList Bool-calPp = lens _calPp (\ s a -> s{_calPp = a})+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.-calCourseId :: Lens' CoursesAliasesList Text-calCourseId-  = lens _calCourseId (\ s a -> s{_calCourseId = a})+calaCourseId :: Lens' CoursesAliasesList Text+calaCourseId+  = lens _calaCourseId (\ s a -> s{_calaCourseId = a})  -- | OAuth access token.-calAccessToken :: Lens' CoursesAliasesList (Maybe Text)-calAccessToken-  = lens _calAccessToken-      (\ s a -> s{_calAccessToken = a})+calaAccessToken :: Lens' CoursesAliasesList (Maybe Text)+calaAccessToken+  = lens _calaAccessToken+      (\ s a -> s{_calaAccessToken = a})  -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-calUploadType :: Lens' CoursesAliasesList (Maybe Text)-calUploadType-  = lens _calUploadType-      (\ s a -> s{_calUploadType = a})---- | OAuth bearer token.-calBearerToken :: Lens' CoursesAliasesList (Maybe Text)-calBearerToken-  = lens _calBearerToken-      (\ s a -> s{_calBearerToken = a})+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.-calPageToken :: Lens' CoursesAliasesList (Maybe Text)-calPageToken-  = lens _calPageToken (\ s a -> s{_calPageToken = a})+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.-calPageSize :: Lens' CoursesAliasesList (Maybe Int32)-calPageSize-  = lens _calPageSize (\ s a -> s{_calPageSize = a}) .-      mapping _Coerce+calaPageSize :: Lens' CoursesAliasesList (Maybe Int32)+calaPageSize+  = lens _calaPageSize (\ s a -> s{_calaPageSize = a})+      . mapping _Coerce  -- | JSONP-calCallback :: Lens' CoursesAliasesList (Maybe Text)-calCallback-  = lens _calCallback (\ s a -> s{_calCallback = a})+calaCallback :: Lens' CoursesAliasesList (Maybe Text)+calaCallback+  = lens _calaCallback (\ s a -> s{_calaCallback = a})  instance GoogleRequest CoursesAliasesList where         type Rs CoursesAliasesList =@@ -194,14 +174,12 @@              '["https://www.googleapis.com/auth/classroom.courses",                "https://www.googleapis.com/auth/classroom.courses.readonly"]         requestClient CoursesAliasesList'{..}-          = go _calCourseId _calXgafv _calUploadProtocol-              (Just _calPp)-              _calAccessToken-              _calUploadType-              _calBearerToken-              _calPageToken-              _calPageSize-              _calCallback+          = go _calaCourseId _calaXgafv _calaUploadProtocol+              _calaAccessToken+              _calaUploadType+              _calaPageToken+              _calaPageSize+              _calaCallback               (Just AltJSON)               classroomService           where go
+ gen/Network/Google/Resource/Classroom/Courses/Announcements/Create.hs view
@@ -0,0 +1,175 @@+{-# 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 view
@@ -0,0 +1,175 @@+{-# 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 view
@@ -0,0 +1,168 @@+{-# 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 view
@@ -0,0 +1,224 @@+{-# 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 view
@@ -0,0 +1,191 @@+{-# 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 view
@@ -0,0 +1,206 @@+{-# 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 view
@@ -47,12 +47,10 @@     -- * Request Lenses     , ccwcXgafv     , ccwcUploadProtocol-    , ccwcPp     , ccwcCourseId     , ccwcAccessToken     , ccwcUploadType     , ccwcPayload-    , ccwcBearerToken     , ccwcCallback     ) where @@ -66,16 +64,13 @@        "courses" :>          Capture "courseId" Text :>            "courseWork" :>-             QueryParam "$.xgafv" Text :>+             QueryParam "$.xgafv" Xgafv :>                QueryParam "upload_protocol" Text :>-                 QueryParam "pp" Bool :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "callback" Text :>-                           QueryParam "alt" AltJSON :>-                             ReqBody '[JSON] CourseWork :>-                               Post '[JSON] CourseWork+                 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@@ -93,14 +88,12 @@ -- -- /See:/ 'coursesCourseWorkCreate' smart constructor. data CoursesCourseWorkCreate = CoursesCourseWorkCreate'-    { _ccwcXgafv          :: !(Maybe Text)+    { _ccwcXgafv          :: !(Maybe Xgafv)     , _ccwcUploadProtocol :: !(Maybe Text)-    , _ccwcPp             :: !Bool     , _ccwcCourseId       :: !Text     , _ccwcAccessToken    :: !(Maybe Text)     , _ccwcUploadType     :: !(Maybe Text)     , _ccwcPayload        :: !CourseWork-    , _ccwcBearerToken    :: !(Maybe Text)     , _ccwcCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -112,8 +105,6 @@ -- -- * 'ccwcUploadProtocol' ----- * 'ccwcPp'--- -- * 'ccwcCourseId' -- -- * 'ccwcAccessToken'@@ -122,8 +113,6 @@ -- -- * 'ccwcPayload' ----- * 'ccwcBearerToken'--- -- * 'ccwcCallback' coursesCourseWorkCreate     :: Text -- ^ 'ccwcCourseId'@@ -133,17 +122,15 @@     CoursesCourseWorkCreate'     { _ccwcXgafv = Nothing     , _ccwcUploadProtocol = Nothing-    , _ccwcPp = True     , _ccwcCourseId = pCcwcCourseId_     , _ccwcAccessToken = Nothing     , _ccwcUploadType = Nothing     , _ccwcPayload = pCcwcPayload_-    , _ccwcBearerToken = Nothing     , _ccwcCallback = Nothing     }  -- | V1 error format.-ccwcXgafv :: Lens' CoursesCourseWorkCreate (Maybe Text)+ccwcXgafv :: Lens' CoursesCourseWorkCreate (Maybe Xgafv) ccwcXgafv   = lens _ccwcXgafv (\ s a -> s{_ccwcXgafv = a}) @@ -153,10 +140,6 @@   = lens _ccwcUploadProtocol       (\ s a -> s{_ccwcUploadProtocol = a}) --- | Pretty-print response.-ccwcPp :: Lens' CoursesCourseWorkCreate Bool-ccwcPp = lens _ccwcPp (\ s a -> s{_ccwcPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwcCourseId :: Lens' CoursesCourseWorkCreate Text@@ -180,12 +163,6 @@ ccwcPayload   = lens _ccwcPayload (\ s a -> s{_ccwcPayload = a}) --- | OAuth bearer token.-ccwcBearerToken :: Lens' CoursesCourseWorkCreate (Maybe Text)-ccwcBearerToken-  = lens _ccwcBearerToken-      (\ s a -> s{_ccwcBearerToken = a})- -- | JSONP ccwcCallback :: Lens' CoursesCourseWorkCreate (Maybe Text) ccwcCallback@@ -197,10 +174,8 @@              '["https://www.googleapis.com/auth/classroom.coursework.students"]         requestClient CoursesCourseWorkCreate'{..}           = go _ccwcCourseId _ccwcXgafv _ccwcUploadProtocol-              (Just _ccwcPp)               _ccwcAccessToken               _ccwcUploadType-              _ccwcBearerToken               _ccwcCallback               (Just AltJSON)               _ccwcPayload
gen/Network/Google/Resource/Classroom/Courses/CourseWork/Delete.hs view
@@ -43,11 +43,9 @@     -- * Request Lenses     , ccwdXgafv     , ccwdUploadProtocol-    , ccwdPp     , ccwdCourseId     , ccwdAccessToken     , ccwdUploadType-    , ccwdBearerToken     , ccwdId     , ccwdCallback     ) where@@ -63,14 +61,12 @@          Capture "courseId" Text :>            "courseWork" :>              Capture "id" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :> Delete '[JSON] Empty+                   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@@ -84,13 +80,11 @@ -- -- /See:/ 'coursesCourseWorkDelete' smart constructor. data CoursesCourseWorkDelete = CoursesCourseWorkDelete'-    { _ccwdXgafv          :: !(Maybe Text)+    { _ccwdXgafv          :: !(Maybe Xgafv)     , _ccwdUploadProtocol :: !(Maybe Text)-    , _ccwdPp             :: !Bool     , _ccwdCourseId       :: !Text     , _ccwdAccessToken    :: !(Maybe Text)     , _ccwdUploadType     :: !(Maybe Text)-    , _ccwdBearerToken    :: !(Maybe Text)     , _ccwdId             :: !Text     , _ccwdCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -103,16 +97,12 @@ -- -- * 'ccwdUploadProtocol' ----- * 'ccwdPp'--- -- * 'ccwdCourseId' -- -- * 'ccwdAccessToken' -- -- * 'ccwdUploadType' ----- * 'ccwdBearerToken'--- -- * 'ccwdId' -- -- * 'ccwdCallback'@@ -124,17 +114,15 @@     CoursesCourseWorkDelete'     { _ccwdXgafv = Nothing     , _ccwdUploadProtocol = Nothing-    , _ccwdPp = True     , _ccwdCourseId = pCcwdCourseId_     , _ccwdAccessToken = Nothing     , _ccwdUploadType = Nothing-    , _ccwdBearerToken = Nothing     , _ccwdId = pCcwdId_     , _ccwdCallback = Nothing     }  -- | V1 error format.-ccwdXgafv :: Lens' CoursesCourseWorkDelete (Maybe Text)+ccwdXgafv :: Lens' CoursesCourseWorkDelete (Maybe Xgafv) ccwdXgafv   = lens _ccwdXgafv (\ s a -> s{_ccwdXgafv = a}) @@ -144,10 +132,6 @@   = lens _ccwdUploadProtocol       (\ s a -> s{_ccwdUploadProtocol = a}) --- | Pretty-print response.-ccwdPp :: Lens' CoursesCourseWorkDelete Bool-ccwdPp = lens _ccwdPp (\ s a -> s{_ccwdPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwdCourseId :: Lens' CoursesCourseWorkDelete Text@@ -166,12 +150,6 @@   = lens _ccwdUploadType       (\ s a -> s{_ccwdUploadType = a}) --- | OAuth bearer token.-ccwdBearerToken :: Lens' CoursesCourseWorkDelete (Maybe Text)-ccwdBearerToken-  = lens _ccwdBearerToken-      (\ s a -> s{_ccwdBearerToken = a})- -- | Identifier of the course work to delete. This identifier is a -- Classroom-assigned identifier. ccwdId :: Lens' CoursesCourseWorkDelete Text@@ -189,10 +167,8 @@         requestClient CoursesCourseWorkDelete'{..}           = go _ccwdCourseId _ccwdId _ccwdXgafv               _ccwdUploadProtocol-              (Just _ccwdPp)               _ccwdAccessToken               _ccwdUploadType-              _ccwdBearerToken               _ccwdCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Courses/CourseWork/Get.hs view
@@ -39,11 +39,9 @@     -- * Request Lenses     , ccwgXgafv     , ccwgUploadProtocol-    , ccwgPp     , ccwgCourseId     , ccwgAccessToken     , ccwgUploadType-    , ccwgBearerToken     , ccwgId     , ccwgCallback     ) where@@ -59,14 +57,12 @@          Capture "courseId" Text :>            "courseWork" :>              Capture "id" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :> Get '[JSON] CourseWork+                   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@@ -76,13 +72,11 @@ -- -- /See:/ 'coursesCourseWorkGet' smart constructor. data CoursesCourseWorkGet = CoursesCourseWorkGet'-    { _ccwgXgafv          :: !(Maybe Text)+    { _ccwgXgafv          :: !(Maybe Xgafv)     , _ccwgUploadProtocol :: !(Maybe Text)-    , _ccwgPp             :: !Bool     , _ccwgCourseId       :: !Text     , _ccwgAccessToken    :: !(Maybe Text)     , _ccwgUploadType     :: !(Maybe Text)-    , _ccwgBearerToken    :: !(Maybe Text)     , _ccwgId             :: !Text     , _ccwgCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -95,16 +89,12 @@ -- -- * 'ccwgUploadProtocol' ----- * 'ccwgPp'--- -- * 'ccwgCourseId' -- -- * 'ccwgAccessToken' -- -- * 'ccwgUploadType' ----- * 'ccwgBearerToken'--- -- * 'ccwgId' -- -- * 'ccwgCallback'@@ -116,17 +106,15 @@     CoursesCourseWorkGet'     { _ccwgXgafv = Nothing     , _ccwgUploadProtocol = Nothing-    , _ccwgPp = True     , _ccwgCourseId = pCcwgCourseId_     , _ccwgAccessToken = Nothing     , _ccwgUploadType = Nothing-    , _ccwgBearerToken = Nothing     , _ccwgId = pCcwgId_     , _ccwgCallback = Nothing     }  -- | V1 error format.-ccwgXgafv :: Lens' CoursesCourseWorkGet (Maybe Text)+ccwgXgafv :: Lens' CoursesCourseWorkGet (Maybe Xgafv) ccwgXgafv   = lens _ccwgXgafv (\ s a -> s{_ccwgXgafv = a}) @@ -136,10 +124,6 @@   = lens _ccwgUploadProtocol       (\ s a -> s{_ccwgUploadProtocol = a}) --- | Pretty-print response.-ccwgPp :: Lens' CoursesCourseWorkGet Bool-ccwgPp = lens _ccwgPp (\ s a -> s{_ccwgPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwgCourseId :: Lens' CoursesCourseWorkGet Text@@ -158,12 +142,6 @@   = lens _ccwgUploadType       (\ s a -> s{_ccwgUploadType = a}) --- | OAuth bearer token.-ccwgBearerToken :: Lens' CoursesCourseWorkGet (Maybe Text)-ccwgBearerToken-  = lens _ccwgBearerToken-      (\ s a -> s{_ccwgBearerToken = a})- -- | Identifier of the course work. ccwgId :: Lens' CoursesCourseWorkGet Text ccwgId = lens _ccwgId (\ s a -> s{_ccwgId = a})@@ -176,18 +154,15 @@ instance GoogleRequest CoursesCourseWorkGet where         type Rs CoursesCourseWorkGet = CourseWork         type Scopes CoursesCourseWorkGet =-             '["https://www.googleapis.com/auth/classroom.course-work.readonly",-               "https://www.googleapis.com/auth/classroom.coursework.me",+             '["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-              (Just _ccwgPp)               _ccwgAccessToken               _ccwgUploadType-              _ccwgBearerToken               _ccwgCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Courses/CourseWork/List.hs view
@@ -42,12 +42,10 @@     , ccwlXgafv     , ccwlUploadProtocol     , ccwlOrderBy-    , ccwlPp     , ccwlCourseId     , ccwlAccessToken     , ccwlCourseWorkStates     , ccwlUploadType-    , ccwlBearerToken     , ccwlPageToken     , ccwlPageSize     , ccwlCallback@@ -63,19 +61,17 @@        "courses" :>          Capture "courseId" Text :>            "courseWork" :>-             QueryParam "$.xgafv" Text :>+             QueryParam "$.xgafv" Xgafv :>                QueryParam "upload_protocol" Text :>                  QueryParam "orderBy" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParams "courseWorkStates" Text :>-                         QueryParam "uploadType" Text :>-                           QueryParam "bearer_token" Text :>-                             QueryParam "pageToken" Text :>-                               QueryParam "pageSize" (Textual Int32) :>-                                 QueryParam "callback" Text :>-                                   QueryParam "alt" AltJSON :>-                                     Get '[JSON] ListCourseWorkResponse+                   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@@ -87,15 +83,13 @@ -- -- /See:/ 'coursesCourseWorkList' smart constructor. data CoursesCourseWorkList = CoursesCourseWorkList'-    { _ccwlXgafv            :: !(Maybe Text)+    { _ccwlXgafv            :: !(Maybe Xgafv)     , _ccwlUploadProtocol   :: !(Maybe Text)     , _ccwlOrderBy          :: !(Maybe Text)-    , _ccwlPp               :: !Bool     , _ccwlCourseId         :: !Text     , _ccwlAccessToken      :: !(Maybe Text)     , _ccwlCourseWorkStates :: !(Maybe [Text])     , _ccwlUploadType       :: !(Maybe Text)-    , _ccwlBearerToken      :: !(Maybe Text)     , _ccwlPageToken        :: !(Maybe Text)     , _ccwlPageSize         :: !(Maybe (Textual Int32))     , _ccwlCallback         :: !(Maybe Text)@@ -111,8 +105,6 @@ -- -- * 'ccwlOrderBy' ----- * 'ccwlPp'--- -- * 'ccwlCourseId' -- -- * 'ccwlAccessToken'@@ -121,8 +113,6 @@ -- -- * 'ccwlUploadType' ----- * 'ccwlBearerToken'--- -- * 'ccwlPageToken' -- -- * 'ccwlPageSize'@@ -136,19 +126,17 @@     { _ccwlXgafv = Nothing     , _ccwlUploadProtocol = Nothing     , _ccwlOrderBy = Nothing-    , _ccwlPp = True     , _ccwlCourseId = pCcwlCourseId_     , _ccwlAccessToken = Nothing     , _ccwlCourseWorkStates = Nothing     , _ccwlUploadType = Nothing-    , _ccwlBearerToken = Nothing     , _ccwlPageToken = Nothing     , _ccwlPageSize = Nothing     , _ccwlCallback = Nothing     }  -- | V1 error format.-ccwlXgafv :: Lens' CoursesCourseWorkList (Maybe Text)+ccwlXgafv :: Lens' CoursesCourseWorkList (Maybe Xgafv) ccwlXgafv   = lens _ccwlXgafv (\ s a -> s{_ccwlXgafv = a}) @@ -168,10 +156,6 @@ ccwlOrderBy   = lens _ccwlOrderBy (\ s a -> s{_ccwlOrderBy = a}) --- | Pretty-print response.-ccwlPp :: Lens' CoursesCourseWorkList Bool-ccwlPp = lens _ccwlPp (\ s a -> s{_ccwlPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwlCourseId :: Lens' CoursesCourseWorkList Text@@ -200,12 +184,6 @@   = lens _ccwlUploadType       (\ s a -> s{_ccwlUploadType = a}) --- | OAuth bearer token.-ccwlBearerToken :: Lens' CoursesCourseWorkList (Maybe Text)-ccwlBearerToken-  = lens _ccwlBearerToken-      (\ s a -> s{_ccwlBearerToken = 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.@@ -231,19 +209,16 @@         type Rs CoursesCourseWorkList =              ListCourseWorkResponse         type Scopes CoursesCourseWorkList =-             '["https://www.googleapis.com/auth/classroom.course-work.readonly",-               "https://www.googleapis.com/auth/classroom.coursework.me",+             '["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-              (Just _ccwlPp)               _ccwlAccessToken               (_ccwlCourseWorkStates ^. _Default)               _ccwlUploadType-              _ccwlBearerToken               _ccwlPageToken               _ccwlPageSize               _ccwlCallback
+ gen/Network/Google/Resource/Classroom/Courses/CourseWork/ModifyAssignees.hs view
@@ -0,0 +1,191 @@+{-# 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 view
@@ -48,12 +48,10 @@     , ccwpXgafv     , ccwpUploadProtocol     , ccwpUpdateMask-    , ccwpPp     , ccwpCourseId     , ccwpAccessToken     , ccwpUploadType     , ccwpPayload-    , ccwpBearerToken     , ccwpId     , ccwpCallback     ) where@@ -69,17 +67,15 @@          Capture "courseId" Text :>            "courseWork" :>              Capture "id" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "updateMask" Text :>-                     QueryParam "pp" Bool :>-                       QueryParam "access_token" Text :>-                         QueryParam "uploadType" Text :>-                           QueryParam "bearer_token" Text :>-                             QueryParam "callback" Text :>-                               QueryParam "alt" AltJSON :>-                                 ReqBody '[JSON] CourseWork :>-                                   Patch '[JSON] CourseWork+                   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@@ -97,15 +93,13 @@ -- -- /See:/ 'coursesCourseWorkPatch' smart constructor. data CoursesCourseWorkPatch = CoursesCourseWorkPatch'-    { _ccwpXgafv          :: !(Maybe Text)+    { _ccwpXgafv          :: !(Maybe Xgafv)     , _ccwpUploadProtocol :: !(Maybe Text)-    , _ccwpUpdateMask     :: !(Maybe Text)-    , _ccwpPp             :: !Bool+    , _ccwpUpdateMask     :: !(Maybe GFieldMask)     , _ccwpCourseId       :: !Text     , _ccwpAccessToken    :: !(Maybe Text)     , _ccwpUploadType     :: !(Maybe Text)     , _ccwpPayload        :: !CourseWork-    , _ccwpBearerToken    :: !(Maybe Text)     , _ccwpId             :: !Text     , _ccwpCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -120,8 +114,6 @@ -- -- * 'ccwpUpdateMask' ----- * 'ccwpPp'--- -- * 'ccwpCourseId' -- -- * 'ccwpAccessToken'@@ -130,8 +122,6 @@ -- -- * 'ccwpPayload' ----- * 'ccwpBearerToken'--- -- * 'ccwpId' -- -- * 'ccwpCallback'@@ -145,18 +135,16 @@     { _ccwpXgafv = Nothing     , _ccwpUploadProtocol = Nothing     , _ccwpUpdateMask = Nothing-    , _ccwpPp = True     , _ccwpCourseId = pCcwpCourseId_     , _ccwpAccessToken = Nothing     , _ccwpUploadType = Nothing     , _ccwpPayload = pCcwpPayload_-    , _ccwpBearerToken = Nothing     , _ccwpId = pCcwpId_     , _ccwpCallback = Nothing     }  -- | V1 error format.-ccwpXgafv :: Lens' CoursesCourseWorkPatch (Maybe Text)+ccwpXgafv :: Lens' CoursesCourseWorkPatch (Maybe Xgafv) ccwpXgafv   = lens _ccwpXgafv (\ s a -> s{_ccwpXgafv = a}) @@ -174,16 +162,12 @@ -- 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\` * \`submission_modification_mode\`-ccwpUpdateMask :: Lens' CoursesCourseWorkPatch (Maybe Text)+-- \`max_points\` * \`scheduled_time\` * \`submission_modification_mode\`+ccwpUpdateMask :: Lens' CoursesCourseWorkPatch (Maybe GFieldMask) ccwpUpdateMask   = lens _ccwpUpdateMask       (\ s a -> s{_ccwpUpdateMask = a}) --- | Pretty-print response.-ccwpPp :: Lens' CoursesCourseWorkPatch Bool-ccwpPp = lens _ccwpPp (\ s a -> s{_ccwpPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwpCourseId :: Lens' CoursesCourseWorkPatch Text@@ -207,12 +191,6 @@ ccwpPayload   = lens _ccwpPayload (\ s a -> s{_ccwpPayload = a}) --- | OAuth bearer token.-ccwpBearerToken :: Lens' CoursesCourseWorkPatch (Maybe Text)-ccwpBearerToken-  = lens _ccwpBearerToken-      (\ s a -> s{_ccwpBearerToken = a})- -- | Identifier of the course work. ccwpId :: Lens' CoursesCourseWorkPatch Text ccwpId = lens _ccwpId (\ s a -> s{_ccwpId = a})@@ -230,10 +208,8 @@           = go _ccwpCourseId _ccwpId _ccwpXgafv               _ccwpUploadProtocol               _ccwpUpdateMask-              (Just _ccwpPp)               _ccwpAccessToken               _ccwpUploadType-              _ccwpBearerToken               _ccwpCallback               (Just AltJSON)               _ccwpPayload
gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Get.hs view
@@ -39,11 +39,9 @@     -- * Request Lenses     , ccwssgXgafv     , ccwssgUploadProtocol-    , ccwssgPp     , ccwssgCourseId     , ccwssgAccessToken     , ccwssgUploadType-    , ccwssgBearerToken     , ccwssgId     , ccwssgCallback     , ccwssgCourseWorkId@@ -62,15 +60,13 @@              Capture "courseWorkId" Text :>                "studentSubmissions" :>                  Capture "id" Text :>-                   QueryParam "$.xgafv" Text :>+                   QueryParam "$.xgafv" Xgafv :>                      QueryParam "upload_protocol" Text :>-                       QueryParam "pp" Bool :>-                         QueryParam "access_token" Text :>-                           QueryParam "uploadType" Text :>-                             QueryParam "bearer_token" Text :>-                               QueryParam "callback" Text :>-                                 QueryParam "alt" AltJSON :>-                                   Get '[JSON] StudentSubmission+                       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@@ -80,13 +76,11 @@ -- -- /See:/ 'coursesCourseWorkStudentSubmissionsGet' smart constructor. data CoursesCourseWorkStudentSubmissionsGet = CoursesCourseWorkStudentSubmissionsGet'-    { _ccwssgXgafv          :: !(Maybe Text)+    { _ccwssgXgafv          :: !(Maybe Xgafv)     , _ccwssgUploadProtocol :: !(Maybe Text)-    , _ccwssgPp             :: !Bool     , _ccwssgCourseId       :: !Text     , _ccwssgAccessToken    :: !(Maybe Text)     , _ccwssgUploadType     :: !(Maybe Text)-    , _ccwssgBearerToken    :: !(Maybe Text)     , _ccwssgId             :: !Text     , _ccwssgCallback       :: !(Maybe Text)     , _ccwssgCourseWorkId   :: !Text@@ -100,16 +94,12 @@ -- -- * 'ccwssgUploadProtocol' ----- * 'ccwssgPp'--- -- * 'ccwssgCourseId' -- -- * 'ccwssgAccessToken' -- -- * 'ccwssgUploadType' ----- * 'ccwssgBearerToken'--- -- * 'ccwssgId' -- -- * 'ccwssgCallback'@@ -124,18 +114,16 @@     CoursesCourseWorkStudentSubmissionsGet'     { _ccwssgXgafv = Nothing     , _ccwssgUploadProtocol = Nothing-    , _ccwssgPp = True     , _ccwssgCourseId = pCcwssgCourseId_     , _ccwssgAccessToken = Nothing     , _ccwssgUploadType = Nothing-    , _ccwssgBearerToken = Nothing     , _ccwssgId = pCcwssgId_     , _ccwssgCallback = Nothing     , _ccwssgCourseWorkId = pCcwssgCourseWorkId_     }  -- | V1 error format.-ccwssgXgafv :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Text)+ccwssgXgafv :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Xgafv) ccwssgXgafv   = lens _ccwssgXgafv (\ s a -> s{_ccwssgXgafv = a}) @@ -145,10 +133,6 @@   = lens _ccwssgUploadProtocol       (\ s a -> s{_ccwssgUploadProtocol = a}) --- | Pretty-print response.-ccwssgPp :: Lens' CoursesCourseWorkStudentSubmissionsGet Bool-ccwssgPp = lens _ccwssgPp (\ s a -> s{_ccwssgPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwssgCourseId :: Lens' CoursesCourseWorkStudentSubmissionsGet Text@@ -168,12 +152,6 @@   = lens _ccwssgUploadType       (\ s a -> s{_ccwssgUploadType = a}) --- | OAuth bearer token.-ccwssgBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Text)-ccwssgBearerToken-  = lens _ccwssgBearerToken-      (\ s a -> s{_ccwssgBearerToken = a})- -- | Identifier of the student submission. ccwssgId :: Lens' CoursesCourseWorkStudentSubmissionsGet Text ccwssgId = lens _ccwssgId (\ s a -> s{_ccwssgId = a})@@ -206,10 +184,8 @@           = go _ccwssgCourseId _ccwssgCourseWorkId _ccwssgId               _ccwssgXgafv               _ccwssgUploadProtocol-              (Just _ccwssgPp)               _ccwssgAccessToken               _ccwssgUploadType-              _ccwssgBearerToken               _ccwssgCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/List.hs view
@@ -46,12 +46,10 @@     , ccwsslXgafv     , ccwsslLate     , ccwsslUploadProtocol-    , ccwsslPp     , ccwsslCourseId     , ccwsslAccessToken     , ccwsslUploadType     , ccwsslUserId-    , ccwsslBearerToken     , ccwsslPageToken     , ccwsslPageSize     , ccwsslCallback@@ -72,20 +70,18 @@              Capture "courseWorkId" Text :>                "studentSubmissions" :>                  QueryParams "states" Text :>-                   QueryParam "$.xgafv" Text :>+                   QueryParam "$.xgafv" Xgafv :>                      QueryParam "late" Text :>                        QueryParam "upload_protocol" Text :>-                         QueryParam "pp" Bool :>-                           QueryParam "access_token" Text :>-                             QueryParam "uploadType" Text :>-                               QueryParam "userId" Text :>-                                 QueryParam "bearer_token" Text :>-                                   QueryParam "pageToken" Text :>-                                     QueryParam "pageSize" (Textual Int32) :>-                                       QueryParam "callback" Text :>-                                         QueryParam "alt" AltJSON :>-                                           Get '[JSON]-                                             ListStudentSubmissionsResponse+                         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@@ -101,15 +97,13 @@ -- /See:/ 'coursesCourseWorkStudentSubmissionsList' smart constructor. data CoursesCourseWorkStudentSubmissionsList = CoursesCourseWorkStudentSubmissionsList'     { _ccwsslStates         :: !(Maybe [Text])-    , _ccwsslXgafv          :: !(Maybe Text)+    , _ccwsslXgafv          :: !(Maybe Xgafv)     , _ccwsslLate           :: !(Maybe Text)     , _ccwsslUploadProtocol :: !(Maybe Text)-    , _ccwsslPp             :: !Bool     , _ccwsslCourseId       :: !Text     , _ccwsslAccessToken    :: !(Maybe Text)     , _ccwsslUploadType     :: !(Maybe Text)     , _ccwsslUserId         :: !(Maybe Text)-    , _ccwsslBearerToken    :: !(Maybe Text)     , _ccwsslPageToken      :: !(Maybe Text)     , _ccwsslPageSize       :: !(Maybe (Textual Int32))     , _ccwsslCallback       :: !(Maybe Text)@@ -128,8 +122,6 @@ -- -- * 'ccwsslUploadProtocol' ----- * 'ccwsslPp'--- -- * 'ccwsslCourseId' -- -- * 'ccwsslAccessToken'@@ -138,8 +130,6 @@ -- -- * 'ccwsslUserId' ----- * 'ccwsslBearerToken'--- -- * 'ccwsslPageToken' -- -- * 'ccwsslPageSize'@@ -157,12 +147,10 @@     , _ccwsslXgafv = Nothing     , _ccwsslLate = Nothing     , _ccwsslUploadProtocol = Nothing-    , _ccwsslPp = True     , _ccwsslCourseId = pCcwsslCourseId_     , _ccwsslAccessToken = Nothing     , _ccwsslUploadType = Nothing     , _ccwsslUserId = Nothing-    , _ccwsslBearerToken = Nothing     , _ccwsslPageToken = Nothing     , _ccwsslPageSize = Nothing     , _ccwsslCallback = Nothing@@ -178,7 +166,7 @@       . _Coerce  -- | V1 error format.-ccwsslXgafv :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)+ccwsslXgafv :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Xgafv) ccwsslXgafv   = lens _ccwsslXgafv (\ s a -> s{_ccwsslXgafv = a}) @@ -195,10 +183,6 @@   = lens _ccwsslUploadProtocol       (\ s a -> s{_ccwsslUploadProtocol = a}) --- | Pretty-print response.-ccwsslPp :: Lens' CoursesCourseWorkStudentSubmissionsList Bool-ccwsslPp = lens _ccwsslPp (\ s a -> s{_ccwsslPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwsslCourseId :: Lens' CoursesCourseWorkStudentSubmissionsList Text@@ -227,12 +211,6 @@ ccwsslUserId   = lens _ccwsslUserId (\ s a -> s{_ccwsslUserId = a}) --- | OAuth bearer token.-ccwsslBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsList (Maybe Text)-ccwsslBearerToken-  = lens _ccwsslBearerToken-      (\ s a -> s{_ccwsslBearerToken = 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.@@ -256,7 +234,7 @@   = lens _ccwsslCallback       (\ s a -> s{_ccwsslCallback = a}) --- | Identifer of the student work to request. This may be set to the string+-- | 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@@ -282,11 +260,9 @@               _ccwsslXgafv               _ccwsslLate               _ccwsslUploadProtocol-              (Just _ccwsslPp)               _ccwsslAccessToken               _ccwsslUploadType               _ccwsslUserId-              _ccwsslBearerToken               _ccwsslPageToken               _ccwsslPageSize               _ccwsslCallback
gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs view
@@ -46,12 +46,10 @@     -- * Request Lenses     , ccwssmaXgafv     , ccwssmaUploadProtocol-    , ccwssmaPp     , ccwssmaCourseId     , ccwssmaAccessToken     , ccwssmaUploadType     , ccwssmaPayload-    , ccwssmaBearerToken     , ccwssmaId     , ccwssmaCallback     , ccwssmaCourseWorkId@@ -71,16 +69,14 @@              Capture "courseWorkId" Text :>                "studentSubmissions" :>                  CaptureMode "id" "modifyAttachments" Text :>-                   QueryParam "$.xgafv" Text :>+                   QueryParam "$.xgafv" Xgafv :>                      QueryParam "upload_protocol" Text :>-                       QueryParam "pp" Bool :>-                         QueryParam "access_token" Text :>-                           QueryParam "uploadType" Text :>-                             QueryParam "bearer_token" Text :>-                               QueryParam "callback" Text :>-                                 QueryParam "alt" AltJSON :>-                                   ReqBody '[JSON] ModifyAttachmentsRequest :>-                                     Post '[JSON] StudentSubmission+                       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@@ -97,14 +93,12 @@ -- -- /See:/ 'coursesCourseWorkStudentSubmissionsModifyAttachments' smart constructor. data CoursesCourseWorkStudentSubmissionsModifyAttachments = CoursesCourseWorkStudentSubmissionsModifyAttachments'-    { _ccwssmaXgafv          :: !(Maybe Text)+    { _ccwssmaXgafv          :: !(Maybe Xgafv)     , _ccwssmaUploadProtocol :: !(Maybe Text)-    , _ccwssmaPp             :: !Bool     , _ccwssmaCourseId       :: !Text     , _ccwssmaAccessToken    :: !(Maybe Text)     , _ccwssmaUploadType     :: !(Maybe Text)     , _ccwssmaPayload        :: !ModifyAttachmentsRequest-    , _ccwssmaBearerToken    :: !(Maybe Text)     , _ccwssmaId             :: !Text     , _ccwssmaCallback       :: !(Maybe Text)     , _ccwssmaCourseWorkId   :: !Text@@ -118,8 +112,6 @@ -- -- * 'ccwssmaUploadProtocol' ----- * 'ccwssmaPp'--- -- * 'ccwssmaCourseId' -- -- * 'ccwssmaAccessToken'@@ -128,8 +120,6 @@ -- -- * 'ccwssmaPayload' ----- * 'ccwssmaBearerToken'--- -- * 'ccwssmaId' -- -- * 'ccwssmaCallback'@@ -145,19 +135,17 @@     CoursesCourseWorkStudentSubmissionsModifyAttachments'     { _ccwssmaXgafv = Nothing     , _ccwssmaUploadProtocol = Nothing-    , _ccwssmaPp = True     , _ccwssmaCourseId = pCcwssmaCourseId_     , _ccwssmaAccessToken = Nothing     , _ccwssmaUploadType = Nothing     , _ccwssmaPayload = pCcwssmaPayload_-    , _ccwssmaBearerToken = Nothing     , _ccwssmaId = pCcwssmaId_     , _ccwssmaCallback = Nothing     , _ccwssmaCourseWorkId = pCcwssmaCourseWorkId_     }  -- | V1 error format.-ccwssmaXgafv :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Text)+ccwssmaXgafv :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Xgafv) ccwssmaXgafv   = lens _ccwssmaXgafv (\ s a -> s{_ccwssmaXgafv = a}) @@ -167,11 +155,6 @@   = lens _ccwssmaUploadProtocol       (\ s a -> s{_ccwssmaUploadProtocol = a}) --- | Pretty-print response.-ccwssmaPp :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments Bool-ccwssmaPp-  = lens _ccwssmaPp (\ s a -> s{_ccwssmaPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwssmaCourseId :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments Text@@ -197,12 +180,6 @@   = lens _ccwssmaPayload       (\ s a -> s{_ccwssmaPayload = a}) --- | OAuth bearer token.-ccwssmaBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Text)-ccwssmaBearerToken-  = lens _ccwssmaBearerToken-      (\ s a -> s{_ccwssmaBearerToken = a})- -- | Identifier of the student submission. ccwssmaId :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments Text ccwssmaId@@ -236,10 +213,8 @@           = go _ccwssmaCourseId _ccwssmaCourseWorkId _ccwssmaId               _ccwssmaXgafv               _ccwssmaUploadProtocol-              (Just _ccwssmaPp)               _ccwssmaAccessToken               _ccwssmaUploadType-              _ccwssmaBearerToken               _ccwssmaCallback               (Just AltJSON)               _ccwssmaPayload
gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Patch.hs view
@@ -47,12 +47,10 @@     , ccwsspXgafv     , ccwsspUploadProtocol     , ccwsspUpdateMask-    , ccwsspPp     , ccwsspCourseId     , ccwsspAccessToken     , ccwsspUploadType     , ccwsspPayload-    , ccwsspBearerToken     , ccwsspId     , ccwsspCallback     , ccwsspCourseWorkId@@ -72,17 +70,15 @@              Capture "courseWorkId" Text :>                "studentSubmissions" :>                  Capture "id" Text :>-                   QueryParam "$.xgafv" Text :>+                   QueryParam "$.xgafv" Xgafv :>                      QueryParam "upload_protocol" Text :>-                       QueryParam "updateMask" Text :>-                         QueryParam "pp" Bool :>-                           QueryParam "access_token" Text :>-                             QueryParam "uploadType" Text :>-                               QueryParam "bearer_token" Text :>-                                 QueryParam "callback" Text :>-                                   QueryParam "alt" AltJSON :>-                                     ReqBody '[JSON] StudentSubmission :>-                                       Patch '[JSON] StudentSubmission+                       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@@ -99,15 +95,13 @@ -- -- /See:/ 'coursesCourseWorkStudentSubmissionsPatch' smart constructor. data CoursesCourseWorkStudentSubmissionsPatch = CoursesCourseWorkStudentSubmissionsPatch'-    { _ccwsspXgafv          :: !(Maybe Text)+    { _ccwsspXgafv          :: !(Maybe Xgafv)     , _ccwsspUploadProtocol :: !(Maybe Text)-    , _ccwsspUpdateMask     :: !(Maybe Text)-    , _ccwsspPp             :: !Bool+    , _ccwsspUpdateMask     :: !(Maybe GFieldMask)     , _ccwsspCourseId       :: !Text     , _ccwsspAccessToken    :: !(Maybe Text)     , _ccwsspUploadType     :: !(Maybe Text)     , _ccwsspPayload        :: !StudentSubmission-    , _ccwsspBearerToken    :: !(Maybe Text)     , _ccwsspId             :: !Text     , _ccwsspCallback       :: !(Maybe Text)     , _ccwsspCourseWorkId   :: !Text@@ -123,8 +117,6 @@ -- -- * 'ccwsspUpdateMask' ----- * 'ccwsspPp'--- -- * 'ccwsspCourseId' -- -- * 'ccwsspAccessToken'@@ -133,8 +125,6 @@ -- -- * 'ccwsspPayload' ----- * 'ccwsspBearerToken'--- -- * 'ccwsspId' -- -- * 'ccwsspCallback'@@ -151,19 +141,17 @@     { _ccwsspXgafv = Nothing     , _ccwsspUploadProtocol = Nothing     , _ccwsspUpdateMask = Nothing-    , _ccwsspPp = True     , _ccwsspCourseId = pCcwsspCourseId_     , _ccwsspAccessToken = Nothing     , _ccwsspUploadType = Nothing     , _ccwsspPayload = pCcwsspPayload_-    , _ccwsspBearerToken = Nothing     , _ccwsspId = pCcwsspId_     , _ccwsspCallback = Nothing     , _ccwsspCourseWorkId = pCcwsspCourseWorkId_     }  -- | V1 error format.-ccwsspXgafv :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Text)+ccwsspXgafv :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Xgafv) ccwsspXgafv   = lens _ccwsspXgafv (\ s a -> s{_ccwsspXgafv = a}) @@ -177,15 +165,11 @@ -- 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 Text)+ccwsspUpdateMask :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe GFieldMask) ccwsspUpdateMask   = lens _ccwsspUpdateMask       (\ s a -> s{_ccwsspUpdateMask = a}) --- | Pretty-print response.-ccwsspPp :: Lens' CoursesCourseWorkStudentSubmissionsPatch Bool-ccwsspPp = lens _ccwsspPp (\ s a -> s{_ccwsspPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwsspCourseId :: Lens' CoursesCourseWorkStudentSubmissionsPatch Text@@ -211,12 +195,6 @@   = lens _ccwsspPayload       (\ s a -> s{_ccwsspPayload = a}) --- | OAuth bearer token.-ccwsspBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Text)-ccwsspBearerToken-  = lens _ccwsspBearerToken-      (\ s a -> s{_ccwsspBearerToken = a})- -- | Identifier of the student submission. ccwsspId :: Lens' CoursesCourseWorkStudentSubmissionsPatch Text ccwsspId = lens _ccwsspId (\ s a -> s{_ccwsspId = a})@@ -247,10 +225,8 @@               _ccwsspXgafv               _ccwsspUploadProtocol               _ccwsspUpdateMask-              (Just _ccwsspPp)               _ccwsspAccessToken               _ccwsspUploadType-              _ccwsspBearerToken               _ccwsspCallback               (Just AltJSON)               _ccwsspPayload
gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs view
@@ -22,7 +22,7 @@ -- -- 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 update the submission state. Only the student+-- 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@@ -47,17 +47,15 @@     , CoursesCourseWorkStudentSubmissionsReclaim      -- * Request Lenses-    , couXgafv-    , couUploadProtocol-    , couPp-    , couCourseId-    , couAccessToken-    , couUploadType-    , couPayload-    , couBearerToken-    , couId-    , couCallback-    , couCourseWorkId+    , ccwssrcXgafv+    , ccwssrcUploadProtocol+    , ccwssrcCourseId+    , ccwssrcAccessToken+    , ccwssrcUploadType+    , ccwssrcPayload+    , ccwssrcId+    , ccwssrcCallback+    , ccwssrcCourseWorkId     ) where  import           Network.Google.Classroom.Types@@ -74,21 +72,18 @@              Capture "courseWorkId" Text :>                "studentSubmissions" :>                  CaptureMode "id" "reclaim" Text :>-                   QueryParam "$.xgafv" Text :>+                   QueryParam "$.xgafv" Xgafv :>                      QueryParam "upload_protocol" Text :>-                       QueryParam "pp" Bool :>-                         QueryParam "access_token" Text :>-                           QueryParam "uploadType" Text :>-                             QueryParam "bearer_token" Text :>-                               QueryParam "callback" Text :>-                                 QueryParam "alt" AltJSON :>-                                   ReqBody '[JSON]-                                     ReclaimStudentSubmissionRequest-                                     :> Post '[JSON] Empty+                       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 update the submission state. Only the student+-- 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@@ -104,122 +99,109 @@ -- -- /See:/ 'coursesCourseWorkStudentSubmissionsReclaim' smart constructor. data CoursesCourseWorkStudentSubmissionsReclaim = CoursesCourseWorkStudentSubmissionsReclaim'-    { _couXgafv          :: !(Maybe Text)-    , _couUploadProtocol :: !(Maybe Text)-    , _couPp             :: !Bool-    , _couCourseId       :: !Text-    , _couAccessToken    :: !(Maybe Text)-    , _couUploadType     :: !(Maybe Text)-    , _couPayload        :: !ReclaimStudentSubmissionRequest-    , _couBearerToken    :: !(Maybe Text)-    , _couId             :: !Text-    , _couCallback       :: !(Maybe Text)-    , _couCourseWorkId   :: !Text+    { _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: ----- * 'couXgafv'------ * 'couUploadProtocol'------ * 'couPp'+-- * 'ccwssrcXgafv' ----- * 'couCourseId'+-- * 'ccwssrcUploadProtocol' ----- * 'couAccessToken'+-- * 'ccwssrcCourseId' ----- * 'couUploadType'+-- * 'ccwssrcAccessToken' ----- * 'couPayload'+-- * 'ccwssrcUploadType' ----- * 'couBearerToken'+-- * 'ccwssrcPayload' ----- * 'couId'+-- * 'ccwssrcId' ----- * 'couCallback'+-- * 'ccwssrcCallback' ----- * 'couCourseWorkId'+-- * 'ccwssrcCourseWorkId' coursesCourseWorkStudentSubmissionsReclaim-    :: Text -- ^ 'couCourseId'-    -> ReclaimStudentSubmissionRequest -- ^ 'couPayload'-    -> Text -- ^ 'couId'-    -> Text -- ^ 'couCourseWorkId'+    :: Text -- ^ 'ccwssrcCourseId'+    -> ReclaimStudentSubmissionRequest -- ^ 'ccwssrcPayload'+    -> Text -- ^ 'ccwssrcId'+    -> Text -- ^ 'ccwssrcCourseWorkId'     -> CoursesCourseWorkStudentSubmissionsReclaim-coursesCourseWorkStudentSubmissionsReclaim pCouCourseId_ pCouPayload_ pCouId_ pCouCourseWorkId_ =+coursesCourseWorkStudentSubmissionsReclaim pCcwssrcCourseId_ pCcwssrcPayload_ pCcwssrcId_ pCcwssrcCourseWorkId_ =     CoursesCourseWorkStudentSubmissionsReclaim'-    { _couXgafv = Nothing-    , _couUploadProtocol = Nothing-    , _couPp = True-    , _couCourseId = pCouCourseId_-    , _couAccessToken = Nothing-    , _couUploadType = Nothing-    , _couPayload = pCouPayload_-    , _couBearerToken = Nothing-    , _couId = pCouId_-    , _couCallback = Nothing-    , _couCourseWorkId = pCouCourseWorkId_+    { _ccwssrcXgafv = Nothing+    , _ccwssrcUploadProtocol = Nothing+    , _ccwssrcCourseId = pCcwssrcCourseId_+    , _ccwssrcAccessToken = Nothing+    , _ccwssrcUploadType = Nothing+    , _ccwssrcPayload = pCcwssrcPayload_+    , _ccwssrcId = pCcwssrcId_+    , _ccwssrcCallback = Nothing+    , _ccwssrcCourseWorkId = pCcwssrcCourseWorkId_     }  -- | V1 error format.-couXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)-couXgafv = lens _couXgafv (\ s a -> s{_couXgafv = a})+ccwssrcXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Xgafv)+ccwssrcXgafv+  = lens _ccwssrcXgafv (\ s a -> s{_ccwssrcXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").-couUploadProtocol :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)-couUploadProtocol-  = lens _couUploadProtocol-      (\ s a -> s{_couUploadProtocol = a})---- | Pretty-print response.-couPp :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Bool-couPp = lens _couPp (\ s a -> s{_couPp = a})+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.-couCourseId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text-couCourseId-  = lens _couCourseId (\ s a -> s{_couCourseId = a})+ccwssrcCourseId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text+ccwssrcCourseId+  = lens _ccwssrcCourseId+      (\ s a -> s{_ccwssrcCourseId = a})  -- | OAuth access token.-couAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)-couAccessToken-  = lens _couAccessToken-      (\ s a -> s{_couAccessToken = a})+ccwssrcAccessToken :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)+ccwssrcAccessToken+  = lens _ccwssrcAccessToken+      (\ s a -> s{_ccwssrcAccessToken = a})  -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-couUploadType :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)-couUploadType-  = lens _couUploadType-      (\ s a -> s{_couUploadType = a})+ccwssrcUploadType :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)+ccwssrcUploadType+  = lens _ccwssrcUploadType+      (\ s a -> s{_ccwssrcUploadType = a})  -- | Multipart request metadata.-couPayload :: Lens' CoursesCourseWorkStudentSubmissionsReclaim ReclaimStudentSubmissionRequest-couPayload-  = lens _couPayload (\ s a -> s{_couPayload = a})---- | OAuth bearer token.-couBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)-couBearerToken-  = lens _couBearerToken-      (\ s a -> s{_couBearerToken = a})+ccwssrcPayload :: Lens' CoursesCourseWorkStudentSubmissionsReclaim ReclaimStudentSubmissionRequest+ccwssrcPayload+  = lens _ccwssrcPayload+      (\ s a -> s{_ccwssrcPayload = a})  -- | Identifier of the student submission.-couId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text-couId = lens _couId (\ s a -> s{_couId = a})+ccwssrcId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text+ccwssrcId+  = lens _ccwssrcId (\ s a -> s{_ccwssrcId = a})  -- | JSONP-couCallback :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)-couCallback-  = lens _couCallback (\ s a -> s{_couCallback = a})+ccwssrcCallback :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Text)+ccwssrcCallback+  = lens _ccwssrcCallback+      (\ s a -> s{_ccwssrcCallback = a})  -- | Identifier of the course work.-couCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text-couCourseWorkId-  = lens _couCourseWorkId-      (\ s a -> s{_couCourseWorkId = a})+ccwssrcCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsReclaim Text+ccwssrcCourseWorkId+  = lens _ccwssrcCourseWorkId+      (\ s a -> s{_ccwssrcCourseWorkId = a})  instance GoogleRequest          CoursesCourseWorkStudentSubmissionsReclaim where@@ -231,15 +213,14 @@              '["https://www.googleapis.com/auth/classroom.coursework.me"]         requestClient           CoursesCourseWorkStudentSubmissionsReclaim'{..}-          = go _couCourseId _couCourseWorkId _couId _couXgafv-              _couUploadProtocol-              (Just _couPp)-              _couAccessToken-              _couUploadType-              _couBearerToken-              _couCallback+          = go _ccwssrcCourseId _ccwssrcCourseWorkId _ccwssrcId+              _ccwssrcXgafv+              _ccwssrcUploadProtocol+              _ccwssrcAccessToken+              _ccwssrcUploadType+              _ccwssrcCallback               (Just AltJSON)-              _couPayload+              _ccwssrcPayload               classroomService           where go                   = buildClient
gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Return.hs view
@@ -48,12 +48,10 @@     -- * Request Lenses     , ccwssrXgafv     , ccwssrUploadProtocol-    , ccwssrPp     , ccwssrCourseId     , ccwssrAccessToken     , ccwssrUploadType     , ccwssrPayload-    , ccwssrBearerToken     , ccwssrId     , ccwssrCallback     , ccwssrCourseWorkId@@ -73,17 +71,14 @@              Capture "courseWorkId" Text :>                "studentSubmissions" :>                  CaptureMode "id" "return" Text :>-                   QueryParam "$.xgafv" Text :>+                   QueryParam "$.xgafv" Xgafv :>                      QueryParam "upload_protocol" Text :>-                       QueryParam "pp" Bool :>-                         QueryParam "access_token" Text :>-                           QueryParam "uploadType" Text :>-                             QueryParam "bearer_token" Text :>-                               QueryParam "callback" Text :>-                                 QueryParam "alt" AltJSON :>-                                   ReqBody '[JSON]-                                     ReturnStudentSubmissionRequest-                                     :> Post '[JSON] Empty+                       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@@ -102,14 +97,12 @@ -- -- /See:/ 'coursesCourseWorkStudentSubmissionsReturn' smart constructor. data CoursesCourseWorkStudentSubmissionsReturn = CoursesCourseWorkStudentSubmissionsReturn'-    { _ccwssrXgafv          :: !(Maybe Text)+    { _ccwssrXgafv          :: !(Maybe Xgafv)     , _ccwssrUploadProtocol :: !(Maybe Text)-    , _ccwssrPp             :: !Bool     , _ccwssrCourseId       :: !Text     , _ccwssrAccessToken    :: !(Maybe Text)     , _ccwssrUploadType     :: !(Maybe Text)     , _ccwssrPayload        :: !ReturnStudentSubmissionRequest-    , _ccwssrBearerToken    :: !(Maybe Text)     , _ccwssrId             :: !Text     , _ccwssrCallback       :: !(Maybe Text)     , _ccwssrCourseWorkId   :: !Text@@ -123,8 +116,6 @@ -- -- * 'ccwssrUploadProtocol' ----- * 'ccwssrPp'--- -- * 'ccwssrCourseId' -- -- * 'ccwssrAccessToken'@@ -133,8 +124,6 @@ -- -- * 'ccwssrPayload' ----- * 'ccwssrBearerToken'--- -- * 'ccwssrId' -- -- * 'ccwssrCallback'@@ -150,19 +139,17 @@     CoursesCourseWorkStudentSubmissionsReturn'     { _ccwssrXgafv = Nothing     , _ccwssrUploadProtocol = Nothing-    , _ccwssrPp = True     , _ccwssrCourseId = pCcwssrCourseId_     , _ccwssrAccessToken = Nothing     , _ccwssrUploadType = Nothing     , _ccwssrPayload = pCcwssrPayload_-    , _ccwssrBearerToken = Nothing     , _ccwssrId = pCcwssrId_     , _ccwssrCallback = Nothing     , _ccwssrCourseWorkId = pCcwssrCourseWorkId_     }  -- | V1 error format.-ccwssrXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Text)+ccwssrXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Xgafv) ccwssrXgafv   = lens _ccwssrXgafv (\ s a -> s{_ccwssrXgafv = a}) @@ -172,10 +159,6 @@   = lens _ccwssrUploadProtocol       (\ s a -> s{_ccwssrUploadProtocol = a}) --- | Pretty-print response.-ccwssrPp :: Lens' CoursesCourseWorkStudentSubmissionsReturn Bool-ccwssrPp = lens _ccwssrPp (\ s a -> s{_ccwssrPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwssrCourseId :: Lens' CoursesCourseWorkStudentSubmissionsReturn Text@@ -201,12 +184,6 @@   = lens _ccwssrPayload       (\ s a -> s{_ccwssrPayload = a}) --- | OAuth bearer token.-ccwssrBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Text)-ccwssrBearerToken-  = lens _ccwssrBearerToken-      (\ s a -> s{_ccwssrBearerToken = a})- -- | Identifier of the student submission. ccwssrId :: Lens' CoursesCourseWorkStudentSubmissionsReturn Text ccwssrId = lens _ccwssrId (\ s a -> s{_ccwssrId = a})@@ -235,10 +212,8 @@           = go _ccwssrCourseId _ccwssrCourseWorkId _ccwssrId               _ccwssrXgafv               _ccwssrUploadProtocol-              (Just _ccwssrPp)               _ccwssrAccessToken               _ccwssrUploadType-              _ccwssrBearerToken               _ccwssrCallback               (Just AltJSON)               _ccwssrPayload
gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/TurnIn.hs view
@@ -46,12 +46,10 @@     -- * Request Lenses     , ccwsstiXgafv     , ccwsstiUploadProtocol-    , ccwsstiPp     , ccwsstiCourseId     , ccwsstiAccessToken     , ccwsstiUploadType     , ccwsstiPayload-    , ccwsstiBearerToken     , ccwsstiId     , ccwsstiCallback     , ccwsstiCourseWorkId@@ -71,17 +69,14 @@              Capture "courseWorkId" Text :>                "studentSubmissions" :>                  CaptureMode "id" "turnIn" Text :>-                   QueryParam "$.xgafv" Text :>+                   QueryParam "$.xgafv" Xgafv :>                      QueryParam "upload_protocol" Text :>-                       QueryParam "pp" Bool :>-                         QueryParam "access_token" Text :>-                           QueryParam "uploadType" Text :>-                             QueryParam "bearer_token" Text :>-                               QueryParam "callback" Text :>-                                 QueryParam "alt" AltJSON :>-                                   ReqBody '[JSON]-                                     TurnInStudentSubmissionRequest-                                     :> Post '[JSON] Empty+                       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@@ -98,14 +93,12 @@ -- -- /See:/ 'coursesCourseWorkStudentSubmissionsTurnIn' smart constructor. data CoursesCourseWorkStudentSubmissionsTurnIn = CoursesCourseWorkStudentSubmissionsTurnIn'-    { _ccwsstiXgafv          :: !(Maybe Text)+    { _ccwsstiXgafv          :: !(Maybe Xgafv)     , _ccwsstiUploadProtocol :: !(Maybe Text)-    , _ccwsstiPp             :: !Bool     , _ccwsstiCourseId       :: !Text     , _ccwsstiAccessToken    :: !(Maybe Text)     , _ccwsstiUploadType     :: !(Maybe Text)     , _ccwsstiPayload        :: !TurnInStudentSubmissionRequest-    , _ccwsstiBearerToken    :: !(Maybe Text)     , _ccwsstiId             :: !Text     , _ccwsstiCallback       :: !(Maybe Text)     , _ccwsstiCourseWorkId   :: !Text@@ -119,8 +112,6 @@ -- -- * 'ccwsstiUploadProtocol' ----- * 'ccwsstiPp'--- -- * 'ccwsstiCourseId' -- -- * 'ccwsstiAccessToken'@@ -129,8 +120,6 @@ -- -- * 'ccwsstiPayload' ----- * 'ccwsstiBearerToken'--- -- * 'ccwsstiId' -- -- * 'ccwsstiCallback'@@ -146,19 +135,17 @@     CoursesCourseWorkStudentSubmissionsTurnIn'     { _ccwsstiXgafv = Nothing     , _ccwsstiUploadProtocol = Nothing-    , _ccwsstiPp = True     , _ccwsstiCourseId = pCcwsstiCourseId_     , _ccwsstiAccessToken = Nothing     , _ccwsstiUploadType = Nothing     , _ccwsstiPayload = pCcwsstiPayload_-    , _ccwsstiBearerToken = Nothing     , _ccwsstiId = pCcwsstiId_     , _ccwsstiCallback = Nothing     , _ccwsstiCourseWorkId = pCcwsstiCourseWorkId_     }  -- | V1 error format.-ccwsstiXgafv :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Text)+ccwsstiXgafv :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Xgafv) ccwsstiXgafv   = lens _ccwsstiXgafv (\ s a -> s{_ccwsstiXgafv = a}) @@ -168,11 +155,6 @@   = lens _ccwsstiUploadProtocol       (\ s a -> s{_ccwsstiUploadProtocol = a}) --- | Pretty-print response.-ccwsstiPp :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn Bool-ccwsstiPp-  = lens _ccwsstiPp (\ s a -> s{_ccwsstiPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ccwsstiCourseId :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn Text@@ -198,12 +180,6 @@   = lens _ccwsstiPayload       (\ s a -> s{_ccwsstiPayload = a}) --- | OAuth bearer token.-ccwsstiBearerToken :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Text)-ccwsstiBearerToken-  = lens _ccwsstiBearerToken-      (\ s a -> s{_ccwsstiBearerToken = a})- -- | Identifier of the student submission. ccwsstiId :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn Text ccwsstiId@@ -233,10 +209,8 @@           = go _ccwsstiCourseId _ccwsstiCourseWorkId _ccwsstiId               _ccwsstiXgafv               _ccwsstiUploadProtocol-              (Just _ccwsstiPp)               _ccwsstiAccessToken               _ccwsstiUploadType-              _ccwsstiBearerToken               _ccwsstiCallback               (Just AltJSON)               _ccwsstiPayload
gen/Network/Google/Resource/Classroom/Courses/Create.hs view
@@ -42,11 +42,9 @@     -- * Request Lenses     , ccXgafv     , ccUploadProtocol-    , ccPp     , ccAccessToken     , ccUploadType     , ccPayload-    , ccBearerToken     , ccCallback     ) where @@ -58,15 +56,13 @@ type CoursesCreateResource =      "v1" :>        "courses" :>-         QueryParam "$.xgafv" Text :>+         QueryParam "$.xgafv" Xgafv :>            QueryParam "upload_protocol" Text :>-             QueryParam "pp" Bool :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "bearer_token" Text :>-                     QueryParam "callback" Text :>-                       QueryParam "alt" AltJSON :>-                         ReqBody '[JSON] Course :> Post '[JSON] Course+             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@@ -79,13 +75,11 @@ -- -- /See:/ 'coursesCreate' smart constructor. data CoursesCreate = CoursesCreate'-    { _ccXgafv          :: !(Maybe Text)+    { _ccXgafv          :: !(Maybe Xgafv)     , _ccUploadProtocol :: !(Maybe Text)-    , _ccPp             :: !Bool     , _ccAccessToken    :: !(Maybe Text)     , _ccUploadType     :: !(Maybe Text)     , _ccPayload        :: !Course-    , _ccBearerToken    :: !(Maybe Text)     , _ccCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -97,16 +91,12 @@ -- -- * 'ccUploadProtocol' ----- * 'ccPp'--- -- * 'ccAccessToken' -- -- * 'ccUploadType' -- -- * 'ccPayload' ----- * 'ccBearerToken'--- -- * 'ccCallback' coursesCreate     :: Course -- ^ 'ccPayload'@@ -115,16 +105,14 @@     CoursesCreate'     { _ccXgafv = Nothing     , _ccUploadProtocol = Nothing-    , _ccPp = True     , _ccAccessToken = Nothing     , _ccUploadType = Nothing     , _ccPayload = pCcPayload_-    , _ccBearerToken = Nothing     , _ccCallback = Nothing     }  -- | V1 error format.-ccXgafv :: Lens' CoursesCreate (Maybe Text)+ccXgafv :: Lens' CoursesCreate (Maybe Xgafv) ccXgafv = lens _ccXgafv (\ s a -> s{_ccXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -133,10 +121,6 @@   = lens _ccUploadProtocol       (\ s a -> s{_ccUploadProtocol = a}) --- | Pretty-print response.-ccPp :: Lens' CoursesCreate Bool-ccPp = lens _ccPp (\ s a -> s{_ccPp = a})- -- | OAuth access token. ccAccessToken :: Lens' CoursesCreate (Maybe Text) ccAccessToken@@ -153,12 +137,6 @@ ccPayload   = lens _ccPayload (\ s a -> s{_ccPayload = a}) --- | OAuth bearer token.-ccBearerToken :: Lens' CoursesCreate (Maybe Text)-ccBearerToken-  = lens _ccBearerToken-      (\ s a -> s{_ccBearerToken = a})- -- | JSONP ccCallback :: Lens' CoursesCreate (Maybe Text) ccCallback@@ -169,10 +147,8 @@         type Scopes CoursesCreate =              '["https://www.googleapis.com/auth/classroom.courses"]         requestClient CoursesCreate'{..}-          = go _ccXgafv _ccUploadProtocol (Just _ccPp)-              _ccAccessToken+          = go _ccXgafv _ccUploadProtocol _ccAccessToken               _ccUploadType-              _ccBearerToken               _ccCallback               (Just AltJSON)               _ccPayload
gen/Network/Google/Resource/Classroom/Courses/Delete.hs view
@@ -38,10 +38,8 @@     -- * Request Lenses     , cdXgafv     , cdUploadProtocol-    , cdPp     , cdAccessToken     , cdUploadType-    , cdBearerToken     , cdId     , cdCallback     ) where@@ -55,14 +53,12 @@      "v1" :>        "courses" :>          Capture "id" Text :>-           QueryParam "$.xgafv" Text :>+           QueryParam "$.xgafv" Xgafv :>              QueryParam "upload_protocol" Text :>-               QueryParam "pp" Bool :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "bearer_token" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty+               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@@ -71,12 +67,10 @@ -- -- /See:/ 'coursesDelete' smart constructor. data CoursesDelete = CoursesDelete'-    { _cdXgafv          :: !(Maybe Text)+    { _cdXgafv          :: !(Maybe Xgafv)     , _cdUploadProtocol :: !(Maybe Text)-    , _cdPp             :: !Bool     , _cdAccessToken    :: !(Maybe Text)     , _cdUploadType     :: !(Maybe Text)-    , _cdBearerToken    :: !(Maybe Text)     , _cdId             :: !Text     , _cdCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -89,14 +83,10 @@ -- -- * 'cdUploadProtocol' ----- * 'cdPp'--- -- * 'cdAccessToken' -- -- * 'cdUploadType' ----- * 'cdBearerToken'--- -- * 'cdId' -- -- * 'cdCallback'@@ -107,16 +97,14 @@     CoursesDelete'     { _cdXgafv = Nothing     , _cdUploadProtocol = Nothing-    , _cdPp = True     , _cdAccessToken = Nothing     , _cdUploadType = Nothing-    , _cdBearerToken = Nothing     , _cdId = pCdId_     , _cdCallback = Nothing     }  -- | V1 error format.-cdXgafv :: Lens' CoursesDelete (Maybe Text)+cdXgafv :: Lens' CoursesDelete (Maybe Xgafv) cdXgafv = lens _cdXgafv (\ s a -> s{_cdXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -125,10 +113,6 @@   = lens _cdUploadProtocol       (\ s a -> s{_cdUploadProtocol = a}) --- | Pretty-print response.-cdPp :: Lens' CoursesDelete Bool-cdPp = lens _cdPp (\ s a -> s{_cdPp = a})- -- | OAuth access token. cdAccessToken :: Lens' CoursesDelete (Maybe Text) cdAccessToken@@ -140,12 +124,6 @@ cdUploadType   = lens _cdUploadType (\ s a -> s{_cdUploadType = a}) --- | OAuth bearer token.-cdBearerToken :: Lens' CoursesDelete (Maybe Text)-cdBearerToken-  = lens _cdBearerToken-      (\ s a -> s{_cdBearerToken = a})- -- | Identifier of the course to delete. This identifier can be either the -- Classroom-assigned identifier or an alias. cdId :: Lens' CoursesDelete Text@@ -161,10 +139,8 @@         type Scopes CoursesDelete =              '["https://www.googleapis.com/auth/classroom.courses"]         requestClient CoursesDelete'{..}-          = go _cdId _cdXgafv _cdUploadProtocol (Just _cdPp)-              _cdAccessToken+          = go _cdId _cdXgafv _cdUploadProtocol _cdAccessToken               _cdUploadType-              _cdBearerToken               _cdCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Courses/Get.hs view
@@ -38,10 +38,8 @@     -- * Request Lenses     , cgXgafv     , cgUploadProtocol-    , cgPp     , cgAccessToken     , cgUploadType-    , cgBearerToken     , cgId     , cgCallback     ) where@@ -55,14 +53,12 @@      "v1" :>        "courses" :>          Capture "id" Text :>-           QueryParam "$.xgafv" Text :>+           QueryParam "$.xgafv" Xgafv :>              QueryParam "upload_protocol" Text :>-               QueryParam "pp" Bool :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "bearer_token" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Get '[JSON] Course+               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@@ -71,12 +67,10 @@ -- -- /See:/ 'coursesGet' smart constructor. data CoursesGet = CoursesGet'-    { _cgXgafv          :: !(Maybe Text)+    { _cgXgafv          :: !(Maybe Xgafv)     , _cgUploadProtocol :: !(Maybe Text)-    , _cgPp             :: !Bool     , _cgAccessToken    :: !(Maybe Text)     , _cgUploadType     :: !(Maybe Text)-    , _cgBearerToken    :: !(Maybe Text)     , _cgId             :: !Text     , _cgCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -89,14 +83,10 @@ -- -- * 'cgUploadProtocol' ----- * 'cgPp'--- -- * 'cgAccessToken' -- -- * 'cgUploadType' ----- * 'cgBearerToken'--- -- * 'cgId' -- -- * 'cgCallback'@@ -107,16 +97,14 @@     CoursesGet'     { _cgXgafv = Nothing     , _cgUploadProtocol = Nothing-    , _cgPp = True     , _cgAccessToken = Nothing     , _cgUploadType = Nothing-    , _cgBearerToken = Nothing     , _cgId = pCgId_     , _cgCallback = Nothing     }  -- | V1 error format.-cgXgafv :: Lens' CoursesGet (Maybe Text)+cgXgafv :: Lens' CoursesGet (Maybe Xgafv) cgXgafv = lens _cgXgafv (\ s a -> s{_cgXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -125,10 +113,6 @@   = lens _cgUploadProtocol       (\ s a -> s{_cgUploadProtocol = a}) --- | Pretty-print response.-cgPp :: Lens' CoursesGet Bool-cgPp = lens _cgPp (\ s a -> s{_cgPp = a})- -- | OAuth access token. cgAccessToken :: Lens' CoursesGet (Maybe Text) cgAccessToken@@ -140,12 +124,6 @@ cgUploadType   = lens _cgUploadType (\ s a -> s{_cgUploadType = a}) --- | OAuth bearer token.-cgBearerToken :: Lens' CoursesGet (Maybe Text)-cgBearerToken-  = lens _cgBearerToken-      (\ s a -> s{_cgBearerToken = a})- -- | Identifier of the course to return. This identifier can be either the -- Classroom-assigned identifier or an alias. cgId :: Lens' CoursesGet Text@@ -162,10 +140,8 @@              '["https://www.googleapis.com/auth/classroom.courses",                "https://www.googleapis.com/auth/classroom.courses.readonly"]         requestClient CoursesGet'{..}-          = go _cgId _cgXgafv _cgUploadProtocol (Just _cgPp)-              _cgAccessToken+          = go _cgId _cgXgafv _cgUploadProtocol _cgAccessToken               _cgUploadType-              _cgBearerToken               _cgCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Courses/List.hs view
@@ -21,10 +21,12 @@ -- 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. 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.+-- 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@@ -40,11 +42,9 @@     , clStudentId     , clXgafv     , clUploadProtocol-    , clPp     , clAccessToken     , clUploadType     , clTeacherId-    , clBearerToken     , clPageToken     , clPageSize     , clCourseStates@@ -60,36 +60,34 @@      "v1" :>        "courses" :>          QueryParam "studentId" Text :>-           QueryParam "$.xgafv" Text :>+           QueryParam "$.xgafv" Xgafv :>              QueryParam "upload_protocol" Text :>-               QueryParam "pp" Bool :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "teacherId" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "pageToken" Text :>-                           QueryParam "pageSize" (Textual Int32) :>-                             QueryParams "courseStates" Text :>-                               QueryParam "callback" Text :>-                                 QueryParam "alt" AltJSON :>-                                   Get '[JSON] ListCoursesResponse+               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. 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.+-- 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 Text)+    , _clXgafv          :: !(Maybe Xgafv)     , _clUploadProtocol :: !(Maybe Text)-    , _clPp             :: !Bool     , _clAccessToken    :: !(Maybe Text)     , _clUploadType     :: !(Maybe Text)     , _clTeacherId      :: !(Maybe Text)-    , _clBearerToken    :: !(Maybe Text)     , _clPageToken      :: !(Maybe Text)     , _clPageSize       :: !(Maybe (Textual Int32))     , _clCourseStates   :: !(Maybe [Text])@@ -106,16 +104,12 @@ -- -- * 'clUploadProtocol' ----- * 'clPp'--- -- * 'clAccessToken' -- -- * 'clUploadType' -- -- * 'clTeacherId' ----- * 'clBearerToken'--- -- * 'clPageToken' -- -- * 'clPageSize'@@ -130,11 +124,9 @@     { _clStudentId = Nothing     , _clXgafv = Nothing     , _clUploadProtocol = Nothing-    , _clPp = True     , _clAccessToken = Nothing     , _clUploadType = Nothing     , _clTeacherId = Nothing-    , _clBearerToken = Nothing     , _clPageToken = Nothing     , _clPageSize = Nothing     , _clCourseStates = Nothing@@ -150,7 +142,7 @@   = lens _clStudentId (\ s a -> s{_clStudentId = a})  -- | V1 error format.-clXgafv :: Lens' CoursesList (Maybe Text)+clXgafv :: Lens' CoursesList (Maybe Xgafv) clXgafv = lens _clXgafv (\ s a -> s{_clXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -159,10 +151,6 @@   = lens _clUploadProtocol       (\ s a -> s{_clUploadProtocol = a}) --- | Pretty-print response.-clPp :: Lens' CoursesList Bool-clPp = lens _clPp (\ s a -> s{_clPp = a})- -- | OAuth access token. clAccessToken :: Lens' CoursesList (Maybe Text) clAccessToken@@ -182,12 +170,6 @@ clTeacherId   = lens _clTeacherId (\ s a -> s{_clTeacherId = a}) --- | OAuth bearer token.-clBearerToken :: Lens' CoursesList (Maybe Text)-clBearerToken-  = lens _clBearerToken-      (\ s a -> s{_clBearerToken = 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.@@ -203,7 +185,8 @@   = lens _clPageSize (\ s a -> s{_clPageSize = a}) .       mapping _Coerce --- | Restricts returned courses to those in one of the specified states+-- | 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@@ -223,11 +206,9 @@                "https://www.googleapis.com/auth/classroom.courses.readonly"]         requestClient CoursesList'{..}           = go _clStudentId _clXgafv _clUploadProtocol-              (Just _clPp)               _clAccessToken               _clUploadType               _clTeacherId-              _clBearerToken               _clPageToken               _clPageSize               (_clCourseStates ^. _Default)
gen/Network/Google/Resource/Classroom/Courses/Patch.hs view
@@ -42,11 +42,9 @@     , cpXgafv     , cpUploadProtocol     , cpUpdateMask-    , cpPp     , cpAccessToken     , cpUploadType     , cpPayload-    , cpBearerToken     , cpId     , cpCallback     ) where@@ -60,16 +58,14 @@      "v1" :>        "courses" :>          Capture "id" Text :>-           QueryParam "$.xgafv" Text :>+           QueryParam "$.xgafv" Xgafv :>              QueryParam "upload_protocol" Text :>-               QueryParam "updateMask" Text :>-                 QueryParam "pp" Bool :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "callback" Text :>-                           QueryParam "alt" AltJSON :>-                             ReqBody '[JSON] Course :> Patch '[JSON] Course+               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@@ -81,14 +77,12 @@ -- -- /See:/ 'coursesPatch' smart constructor. data CoursesPatch = CoursesPatch'-    { _cpXgafv          :: !(Maybe Text)+    { _cpXgafv          :: !(Maybe Xgafv)     , _cpUploadProtocol :: !(Maybe Text)-    , _cpUpdateMask     :: !(Maybe Text)-    , _cpPp             :: !Bool+    , _cpUpdateMask     :: !(Maybe GFieldMask)     , _cpAccessToken    :: !(Maybe Text)     , _cpUploadType     :: !(Maybe Text)     , _cpPayload        :: !Course-    , _cpBearerToken    :: !(Maybe Text)     , _cpId             :: !Text     , _cpCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -103,16 +97,12 @@ -- -- * 'cpUpdateMask' ----- * 'cpPp'--- -- * 'cpAccessToken' -- -- * 'cpUploadType' -- -- * 'cpPayload' ----- * 'cpBearerToken'--- -- * 'cpId' -- -- * 'cpCallback'@@ -125,17 +115,15 @@     { _cpXgafv = Nothing     , _cpUploadProtocol = Nothing     , _cpUpdateMask = Nothing-    , _cpPp = True     , _cpAccessToken = Nothing     , _cpUploadType = Nothing     , _cpPayload = pCpPayload_-    , _cpBearerToken = Nothing     , _cpId = pCpId_     , _cpCallback = Nothing     }  -- | V1 error format.-cpXgafv :: Lens' CoursesPatch (Maybe Text)+cpXgafv :: Lens' CoursesPatch (Maybe Xgafv) cpXgafv = lens _cpXgafv (\ s a -> s{_cpXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -147,17 +135,15 @@ -- | 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\`--- When set in a query parameter, this field should be specified as--- \`updateMask=,,...\`-cpUpdateMask :: Lens' CoursesPatch (Maybe Text)+-- \`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}) --- | Pretty-print response.-cpPp :: Lens' CoursesPatch Bool-cpPp = lens _cpPp (\ s a -> s{_cpPp = a})- -- | OAuth access token. cpAccessToken :: Lens' CoursesPatch (Maybe Text) cpAccessToken@@ -174,12 +160,6 @@ cpPayload   = lens _cpPayload (\ s a -> s{_cpPayload = a}) --- | OAuth bearer token.-cpBearerToken :: Lens' CoursesPatch (Maybe Text)-cpBearerToken-  = lens _cpBearerToken-      (\ s a -> s{_cpBearerToken = a})- -- | Identifier of the course to update. This identifier can be either the -- Classroom-assigned identifier or an alias. cpId :: Lens' CoursesPatch Text@@ -196,10 +176,8 @@              '["https://www.googleapis.com/auth/classroom.courses"]         requestClient CoursesPatch'{..}           = go _cpId _cpXgafv _cpUploadProtocol _cpUpdateMask-              (Just _cpPp)               _cpAccessToken               _cpUploadType-              _cpBearerToken               _cpCallback               (Just AltJSON)               _cpPayload
gen/Network/Google/Resource/Classroom/Courses/Students/Create.hs view
@@ -43,13 +43,11 @@     -- * Request Lenses     , cscXgafv     , cscUploadProtocol-    , cscPp     , cscCourseId     , cscAccessToken     , cscUploadType     , cscPayload     , cscEnrollmentCode-    , cscBearerToken     , cscCallback     ) where @@ -63,16 +61,14 @@        "courses" :>          Capture "courseId" Text :>            "students" :>-             QueryParam "$.xgafv" Text :>+             QueryParam "$.xgafv" Xgafv :>                QueryParam "upload_protocol" Text :>-                 QueryParam "pp" Bool :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "enrollmentCode" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :>-                               ReqBody '[JSON] Student :> Post '[JSON] Student+                 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@@ -86,15 +82,13 @@ -- -- /See:/ 'coursesStudentsCreate' smart constructor. data CoursesStudentsCreate = CoursesStudentsCreate'-    { _cscXgafv          :: !(Maybe Text)+    { _cscXgafv          :: !(Maybe Xgafv)     , _cscUploadProtocol :: !(Maybe Text)-    , _cscPp             :: !Bool     , _cscCourseId       :: !Text     , _cscAccessToken    :: !(Maybe Text)     , _cscUploadType     :: !(Maybe Text)     , _cscPayload        :: !Student     , _cscEnrollmentCode :: !(Maybe Text)-    , _cscBearerToken    :: !(Maybe Text)     , _cscCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -106,8 +100,6 @@ -- -- * 'cscUploadProtocol' ----- * 'cscPp'--- -- * 'cscCourseId' -- -- * 'cscAccessToken'@@ -118,8 +110,6 @@ -- -- * 'cscEnrollmentCode' ----- * 'cscBearerToken'--- -- * 'cscCallback' coursesStudentsCreate     :: Text -- ^ 'cscCourseId'@@ -129,18 +119,16 @@     CoursesStudentsCreate'     { _cscXgafv = Nothing     , _cscUploadProtocol = Nothing-    , _cscPp = True     , _cscCourseId = pCscCourseId_     , _cscAccessToken = Nothing     , _cscUploadType = Nothing     , _cscPayload = pCscPayload_     , _cscEnrollmentCode = Nothing-    , _cscBearerToken = Nothing     , _cscCallback = Nothing     }  -- | V1 error format.-cscXgafv :: Lens' CoursesStudentsCreate (Maybe Text)+cscXgafv :: Lens' CoursesStudentsCreate (Maybe Xgafv) cscXgafv = lens _cscXgafv (\ s a -> s{_cscXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -149,10 +137,6 @@   = lens _cscUploadProtocol       (\ s a -> s{_cscUploadProtocol = a}) --- | Pretty-print response.-cscPp :: Lens' CoursesStudentsCreate Bool-cscPp = lens _cscPp (\ s a -> s{_cscPp = 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@@ -185,12 +169,6 @@   = lens _cscEnrollmentCode       (\ s a -> s{_cscEnrollmentCode = a}) --- | OAuth bearer token.-cscBearerToken :: Lens' CoursesStudentsCreate (Maybe Text)-cscBearerToken-  = lens _cscBearerToken-      (\ s a -> s{_cscBearerToken = a})- -- | JSONP cscCallback :: Lens' CoursesStudentsCreate (Maybe Text) cscCallback@@ -204,11 +182,9 @@                "https://www.googleapis.com/auth/classroom.rosters"]         requestClient CoursesStudentsCreate'{..}           = go _cscCourseId _cscXgafv _cscUploadProtocol-              (Just _cscPp)               _cscAccessToken               _cscUploadType               _cscEnrollmentCode-              _cscBearerToken               _cscCallback               (Just AltJSON)               _cscPayload
gen/Network/Google/Resource/Classroom/Courses/Students/Delete.hs view
@@ -39,12 +39,10 @@     -- * Request Lenses     , csdXgafv     , csdUploadProtocol-    , csdPp     , csdCourseId     , csdAccessToken     , csdUploadType     , csdUserId-    , csdBearerToken     , csdCallback     ) where @@ -59,14 +57,12 @@          Capture "courseId" Text :>            "students" :>              Capture "userId" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :> Delete '[JSON] Empty+                   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@@ -76,14 +72,12 @@ -- -- /See:/ 'coursesStudentsDelete' smart constructor. data CoursesStudentsDelete = CoursesStudentsDelete'-    { _csdXgafv          :: !(Maybe Text)+    { _csdXgafv          :: !(Maybe Xgafv)     , _csdUploadProtocol :: !(Maybe Text)-    , _csdPp             :: !Bool     , _csdCourseId       :: !Text     , _csdAccessToken    :: !(Maybe Text)     , _csdUploadType     :: !(Maybe Text)     , _csdUserId         :: !Text-    , _csdBearerToken    :: !(Maybe Text)     , _csdCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -95,8 +89,6 @@ -- -- * 'csdUploadProtocol' ----- * 'csdPp'--- -- * 'csdCourseId' -- -- * 'csdAccessToken'@@ -105,8 +97,6 @@ -- -- * 'csdUserId' ----- * 'csdBearerToken'--- -- * 'csdCallback' coursesStudentsDelete     :: Text -- ^ 'csdCourseId'@@ -116,17 +106,15 @@     CoursesStudentsDelete'     { _csdXgafv = Nothing     , _csdUploadProtocol = Nothing-    , _csdPp = True     , _csdCourseId = pCsdCourseId_     , _csdAccessToken = Nothing     , _csdUploadType = Nothing     , _csdUserId = pCsdUserId_-    , _csdBearerToken = Nothing     , _csdCallback = Nothing     }  -- | V1 error format.-csdXgafv :: Lens' CoursesStudentsDelete (Maybe Text)+csdXgafv :: Lens' CoursesStudentsDelete (Maybe Xgafv) csdXgafv = lens _csdXgafv (\ s a -> s{_csdXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -135,10 +123,6 @@   = lens _csdUploadProtocol       (\ s a -> s{_csdUploadProtocol = a}) --- | Pretty-print response.-csdPp :: Lens' CoursesStudentsDelete Bool-csdPp = lens _csdPp (\ s a -> s{_csdPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. csdCourseId :: Lens' CoursesStudentsDelete Text@@ -164,12 +148,6 @@ csdUserId   = lens _csdUserId (\ s a -> s{_csdUserId = a}) --- | OAuth bearer token.-csdBearerToken :: Lens' CoursesStudentsDelete (Maybe Text)-csdBearerToken-  = lens _csdBearerToken-      (\ s a -> s{_csdBearerToken = a})- -- | JSONP csdCallback :: Lens' CoursesStudentsDelete (Maybe Text) csdCallback@@ -182,10 +160,8 @@         requestClient CoursesStudentsDelete'{..}           = go _csdCourseId _csdUserId _csdXgafv               _csdUploadProtocol-              (Just _csdPp)               _csdAccessToken               _csdUploadType-              _csdBearerToken               _csdCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Courses/Students/Get.hs view
@@ -39,12 +39,10 @@     -- * Request Lenses     , csgXgafv     , csgUploadProtocol-    , csgPp     , csgCourseId     , csgAccessToken     , csgUploadType     , csgUserId-    , csgBearerToken     , csgCallback     ) where @@ -59,14 +57,12 @@          Capture "courseId" Text :>            "students" :>              Capture "userId" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :> Get '[JSON] Student+                   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@@ -76,14 +72,12 @@ -- -- /See:/ 'coursesStudentsGet' smart constructor. data CoursesStudentsGet = CoursesStudentsGet'-    { _csgXgafv          :: !(Maybe Text)+    { _csgXgafv          :: !(Maybe Xgafv)     , _csgUploadProtocol :: !(Maybe Text)-    , _csgPp             :: !Bool     , _csgCourseId       :: !Text     , _csgAccessToken    :: !(Maybe Text)     , _csgUploadType     :: !(Maybe Text)     , _csgUserId         :: !Text-    , _csgBearerToken    :: !(Maybe Text)     , _csgCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -95,8 +89,6 @@ -- -- * 'csgUploadProtocol' ----- * 'csgPp'--- -- * 'csgCourseId' -- -- * 'csgAccessToken'@@ -105,8 +97,6 @@ -- -- * 'csgUserId' ----- * 'csgBearerToken'--- -- * 'csgCallback' coursesStudentsGet     :: Text -- ^ 'csgCourseId'@@ -116,17 +106,15 @@     CoursesStudentsGet'     { _csgXgafv = Nothing     , _csgUploadProtocol = Nothing-    , _csgPp = True     , _csgCourseId = pCsgCourseId_     , _csgAccessToken = Nothing     , _csgUploadType = Nothing     , _csgUserId = pCsgUserId_-    , _csgBearerToken = Nothing     , _csgCallback = Nothing     }  -- | V1 error format.-csgXgafv :: Lens' CoursesStudentsGet (Maybe Text)+csgXgafv :: Lens' CoursesStudentsGet (Maybe Xgafv) csgXgafv = lens _csgXgafv (\ s a -> s{_csgXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -135,10 +123,6 @@   = lens _csgUploadProtocol       (\ s a -> s{_csgUploadProtocol = a}) --- | Pretty-print response.-csgPp :: Lens' CoursesStudentsGet Bool-csgPp = lens _csgPp (\ s a -> s{_csgPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. csgCourseId :: Lens' CoursesStudentsGet Text@@ -164,12 +148,6 @@ csgUserId   = lens _csgUserId (\ s a -> s{_csgUserId = a}) --- | OAuth bearer token.-csgBearerToken :: Lens' CoursesStudentsGet (Maybe Text)-csgBearerToken-  = lens _csgBearerToken-      (\ s a -> s{_csgBearerToken = a})- -- | JSONP csgCallback :: Lens' CoursesStudentsGet (Maybe Text) csgCallback@@ -185,10 +163,8 @@         requestClient CoursesStudentsGet'{..}           = go _csgCourseId _csgUserId _csgXgafv               _csgUploadProtocol-              (Just _csgPp)               _csgAccessToken               _csgUploadType-              _csgBearerToken               _csgCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Courses/Students/List.hs view
@@ -38,11 +38,9 @@     -- * Request Lenses     , cslXgafv     , cslUploadProtocol-    , cslPp     , cslCourseId     , cslAccessToken     , cslUploadType-    , cslBearerToken     , cslPageToken     , cslPageSize     , cslCallback@@ -58,17 +56,15 @@        "courses" :>          Capture "courseId" Text :>            "students" :>-             QueryParam "$.xgafv" Text :>+             QueryParam "$.xgafv" Xgafv :>                QueryParam "upload_protocol" Text :>-                 QueryParam "pp" Bool :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "pageToken" Text :>-                           QueryParam "pageSize" (Textual Int32) :>-                             QueryParam "callback" Text :>-                               QueryParam "alt" AltJSON :>-                                 Get '[JSON] ListStudentsResponse+                 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: *@@ -77,13 +73,11 @@ -- -- /See:/ 'coursesStudentsList' smart constructor. data CoursesStudentsList = CoursesStudentsList'-    { _cslXgafv          :: !(Maybe Text)+    { _cslXgafv          :: !(Maybe Xgafv)     , _cslUploadProtocol :: !(Maybe Text)-    , _cslPp             :: !Bool     , _cslCourseId       :: !Text     , _cslAccessToken    :: !(Maybe Text)     , _cslUploadType     :: !(Maybe Text)-    , _cslBearerToken    :: !(Maybe Text)     , _cslPageToken      :: !(Maybe Text)     , _cslPageSize       :: !(Maybe (Textual Int32))     , _cslCallback       :: !(Maybe Text)@@ -97,16 +91,12 @@ -- -- * 'cslUploadProtocol' ----- * 'cslPp'--- -- * 'cslCourseId' -- -- * 'cslAccessToken' -- -- * 'cslUploadType' ----- * 'cslBearerToken'--- -- * 'cslPageToken' -- -- * 'cslPageSize'@@ -119,18 +109,16 @@     CoursesStudentsList'     { _cslXgafv = Nothing     , _cslUploadProtocol = Nothing-    , _cslPp = True     , _cslCourseId = pCslCourseId_     , _cslAccessToken = Nothing     , _cslUploadType = Nothing-    , _cslBearerToken = Nothing     , _cslPageToken = Nothing     , _cslPageSize = Nothing     , _cslCallback = Nothing     }  -- | V1 error format.-cslXgafv :: Lens' CoursesStudentsList (Maybe Text)+cslXgafv :: Lens' CoursesStudentsList (Maybe Xgafv) cslXgafv = lens _cslXgafv (\ s a -> s{_cslXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -139,10 +127,6 @@   = lens _cslUploadProtocol       (\ s a -> s{_cslUploadProtocol = a}) --- | Pretty-print response.-cslPp :: Lens' CoursesStudentsList Bool-cslPp = lens _cslPp (\ s a -> s{_cslPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. cslCourseId :: Lens' CoursesStudentsList Text@@ -161,12 +145,6 @@   = lens _cslUploadType       (\ s a -> s{_cslUploadType = a}) --- | OAuth bearer token.-cslBearerToken :: Lens' CoursesStudentsList (Maybe Text)-cslBearerToken-  = lens _cslBearerToken-      (\ s a -> s{_cslBearerToken = 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.@@ -195,10 +173,8 @@                "https://www.googleapis.com/auth/classroom.rosters.readonly"]         requestClient CoursesStudentsList'{..}           = go _cslCourseId _cslXgafv _cslUploadProtocol-              (Just _cslPp)               _cslAccessToken               _cslUploadType-              _cslBearerToken               _cslPageToken               _cslPageSize               _cslCallback
gen/Network/Google/Resource/Classroom/Courses/Teachers/Create.hs view
@@ -43,12 +43,10 @@     -- * Request Lenses     , ctcXgafv     , ctcUploadProtocol-    , ctcPp     , ctcCourseId     , ctcAccessToken     , ctcUploadType     , ctcPayload-    , ctcBearerToken     , ctcCallback     ) where @@ -62,15 +60,13 @@        "courses" :>          Capture "courseId" Text :>            "teachers" :>-             QueryParam "$.xgafv" Text :>+             QueryParam "$.xgafv" Xgafv :>                QueryParam "upload_protocol" Text :>-                 QueryParam "pp" Bool :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "callback" Text :>-                           QueryParam "alt" AltJSON :>-                             ReqBody '[JSON] Teacher :> Post '[JSON] Teacher+                 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@@ -84,14 +80,12 @@ -- -- /See:/ 'coursesTeachersCreate' smart constructor. data CoursesTeachersCreate = CoursesTeachersCreate'-    { _ctcXgafv          :: !(Maybe Text)+    { _ctcXgafv          :: !(Maybe Xgafv)     , _ctcUploadProtocol :: !(Maybe Text)-    , _ctcPp             :: !Bool     , _ctcCourseId       :: !Text     , _ctcAccessToken    :: !(Maybe Text)     , _ctcUploadType     :: !(Maybe Text)     , _ctcPayload        :: !Teacher-    , _ctcBearerToken    :: !(Maybe Text)     , _ctcCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -103,8 +97,6 @@ -- -- * 'ctcUploadProtocol' ----- * 'ctcPp'--- -- * 'ctcCourseId' -- -- * 'ctcAccessToken'@@ -113,8 +105,6 @@ -- -- * 'ctcPayload' ----- * 'ctcBearerToken'--- -- * 'ctcCallback' coursesTeachersCreate     :: Text -- ^ 'ctcCourseId'@@ -124,17 +114,15 @@     CoursesTeachersCreate'     { _ctcXgafv = Nothing     , _ctcUploadProtocol = Nothing-    , _ctcPp = True     , _ctcCourseId = pCtcCourseId_     , _ctcAccessToken = Nothing     , _ctcUploadType = Nothing     , _ctcPayload = pCtcPayload_-    , _ctcBearerToken = Nothing     , _ctcCallback = Nothing     }  -- | V1 error format.-ctcXgafv :: Lens' CoursesTeachersCreate (Maybe Text)+ctcXgafv :: Lens' CoursesTeachersCreate (Maybe Xgafv) ctcXgafv = lens _ctcXgafv (\ s a -> s{_ctcXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -143,10 +131,6 @@   = lens _ctcUploadProtocol       (\ s a -> s{_ctcUploadProtocol = a}) --- | Pretty-print response.-ctcPp :: Lens' CoursesTeachersCreate Bool-ctcPp = lens _ctcPp (\ s a -> s{_ctcPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ctcCourseId :: Lens' CoursesTeachersCreate Text@@ -170,12 +154,6 @@ ctcPayload   = lens _ctcPayload (\ s a -> s{_ctcPayload = a}) --- | OAuth bearer token.-ctcBearerToken :: Lens' CoursesTeachersCreate (Maybe Text)-ctcBearerToken-  = lens _ctcBearerToken-      (\ s a -> s{_ctcBearerToken = a})- -- | JSONP ctcCallback :: Lens' CoursesTeachersCreate (Maybe Text) ctcCallback@@ -189,10 +167,8 @@                "https://www.googleapis.com/auth/classroom.rosters"]         requestClient CoursesTeachersCreate'{..}           = go _ctcCourseId _ctcXgafv _ctcUploadProtocol-              (Just _ctcPp)               _ctcAccessToken               _ctcUploadType-              _ctcBearerToken               _ctcCallback               (Just AltJSON)               _ctcPayload
gen/Network/Google/Resource/Classroom/Courses/Teachers/Delete.hs view
@@ -40,12 +40,10 @@     -- * Request Lenses     , ctdXgafv     , ctdUploadProtocol-    , ctdPp     , ctdCourseId     , ctdAccessToken     , ctdUploadType     , ctdUserId-    , ctdBearerToken     , ctdCallback     ) where @@ -60,14 +58,12 @@          Capture "courseId" Text :>            "teachers" :>              Capture "userId" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :> Delete '[JSON] Empty+                   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@@ -78,14 +74,12 @@ -- -- /See:/ 'coursesTeachersDelete' smart constructor. data CoursesTeachersDelete = CoursesTeachersDelete'-    { _ctdXgafv          :: !(Maybe Text)+    { _ctdXgafv          :: !(Maybe Xgafv)     , _ctdUploadProtocol :: !(Maybe Text)-    , _ctdPp             :: !Bool     , _ctdCourseId       :: !Text     , _ctdAccessToken    :: !(Maybe Text)     , _ctdUploadType     :: !(Maybe Text)     , _ctdUserId         :: !Text-    , _ctdBearerToken    :: !(Maybe Text)     , _ctdCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -97,8 +91,6 @@ -- -- * 'ctdUploadProtocol' ----- * 'ctdPp'--- -- * 'ctdCourseId' -- -- * 'ctdAccessToken'@@ -107,8 +99,6 @@ -- -- * 'ctdUserId' ----- * 'ctdBearerToken'--- -- * 'ctdCallback' coursesTeachersDelete     :: Text -- ^ 'ctdCourseId'@@ -118,17 +108,15 @@     CoursesTeachersDelete'     { _ctdXgafv = Nothing     , _ctdUploadProtocol = Nothing-    , _ctdPp = True     , _ctdCourseId = pCtdCourseId_     , _ctdAccessToken = Nothing     , _ctdUploadType = Nothing     , _ctdUserId = pCtdUserId_-    , _ctdBearerToken = Nothing     , _ctdCallback = Nothing     }  -- | V1 error format.-ctdXgafv :: Lens' CoursesTeachersDelete (Maybe Text)+ctdXgafv :: Lens' CoursesTeachersDelete (Maybe Xgafv) ctdXgafv = lens _ctdXgafv (\ s a -> s{_ctdXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -137,10 +125,6 @@   = lens _ctdUploadProtocol       (\ s a -> s{_ctdUploadProtocol = a}) --- | Pretty-print response.-ctdPp :: Lens' CoursesTeachersDelete Bool-ctdPp = lens _ctdPp (\ s a -> s{_ctdPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ctdCourseId :: Lens' CoursesTeachersDelete Text@@ -166,12 +150,6 @@ ctdUserId   = lens _ctdUserId (\ s a -> s{_ctdUserId = a}) --- | OAuth bearer token.-ctdBearerToken :: Lens' CoursesTeachersDelete (Maybe Text)-ctdBearerToken-  = lens _ctdBearerToken-      (\ s a -> s{_ctdBearerToken = a})- -- | JSONP ctdCallback :: Lens' CoursesTeachersDelete (Maybe Text) ctdCallback@@ -184,10 +162,8 @@         requestClient CoursesTeachersDelete'{..}           = go _ctdCourseId _ctdUserId _ctdXgafv               _ctdUploadProtocol-              (Just _ctdPp)               _ctdAccessToken               _ctdUploadType-              _ctdBearerToken               _ctdCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Courses/Teachers/Get.hs view
@@ -39,12 +39,10 @@     -- * Request Lenses     , ctgXgafv     , ctgUploadProtocol-    , ctgPp     , ctgCourseId     , ctgAccessToken     , ctgUploadType     , ctgUserId-    , ctgBearerToken     , ctgCallback     ) where @@ -59,14 +57,12 @@          Capture "courseId" Text :>            "teachers" :>              Capture "userId" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :> Get '[JSON] Teacher+                   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@@ -76,14 +72,12 @@ -- -- /See:/ 'coursesTeachersGet' smart constructor. data CoursesTeachersGet = CoursesTeachersGet'-    { _ctgXgafv          :: !(Maybe Text)+    { _ctgXgafv          :: !(Maybe Xgafv)     , _ctgUploadProtocol :: !(Maybe Text)-    , _ctgPp             :: !Bool     , _ctgCourseId       :: !Text     , _ctgAccessToken    :: !(Maybe Text)     , _ctgUploadType     :: !(Maybe Text)     , _ctgUserId         :: !Text-    , _ctgBearerToken    :: !(Maybe Text)     , _ctgCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -95,8 +89,6 @@ -- -- * 'ctgUploadProtocol' ----- * 'ctgPp'--- -- * 'ctgCourseId' -- -- * 'ctgAccessToken'@@ -105,8 +97,6 @@ -- -- * 'ctgUserId' ----- * 'ctgBearerToken'--- -- * 'ctgCallback' coursesTeachersGet     :: Text -- ^ 'ctgCourseId'@@ -116,17 +106,15 @@     CoursesTeachersGet'     { _ctgXgafv = Nothing     , _ctgUploadProtocol = Nothing-    , _ctgPp = True     , _ctgCourseId = pCtgCourseId_     , _ctgAccessToken = Nothing     , _ctgUploadType = Nothing     , _ctgUserId = pCtgUserId_-    , _ctgBearerToken = Nothing     , _ctgCallback = Nothing     }  -- | V1 error format.-ctgXgafv :: Lens' CoursesTeachersGet (Maybe Text)+ctgXgafv :: Lens' CoursesTeachersGet (Maybe Xgafv) ctgXgafv = lens _ctgXgafv (\ s a -> s{_ctgXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -135,10 +123,6 @@   = lens _ctgUploadProtocol       (\ s a -> s{_ctgUploadProtocol = a}) --- | Pretty-print response.-ctgPp :: Lens' CoursesTeachersGet Bool-ctgPp = lens _ctgPp (\ s a -> s{_ctgPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ctgCourseId :: Lens' CoursesTeachersGet Text@@ -164,12 +148,6 @@ ctgUserId   = lens _ctgUserId (\ s a -> s{_ctgUserId = a}) --- | OAuth bearer token.-ctgBearerToken :: Lens' CoursesTeachersGet (Maybe Text)-ctgBearerToken-  = lens _ctgBearerToken-      (\ s a -> s{_ctgBearerToken = a})- -- | JSONP ctgCallback :: Lens' CoursesTeachersGet (Maybe Text) ctgCallback@@ -185,10 +163,8 @@         requestClient CoursesTeachersGet'{..}           = go _ctgCourseId _ctgUserId _ctgXgafv               _ctgUploadProtocol-              (Just _ctgPp)               _ctgAccessToken               _ctgUploadType-              _ctgBearerToken               _ctgCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Courses/Teachers/List.hs view
@@ -38,11 +38,9 @@     -- * Request Lenses     , ctlXgafv     , ctlUploadProtocol-    , ctlPp     , ctlCourseId     , ctlAccessToken     , ctlUploadType-    , ctlBearerToken     , ctlPageToken     , ctlPageSize     , ctlCallback@@ -58,17 +56,15 @@        "courses" :>          Capture "courseId" Text :>            "teachers" :>-             QueryParam "$.xgafv" Text :>+             QueryParam "$.xgafv" Xgafv :>                QueryParam "upload_protocol" Text :>-                 QueryParam "pp" Bool :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "pageToken" Text :>-                           QueryParam "pageSize" (Textual Int32) :>-                             QueryParam "callback" Text :>-                               QueryParam "alt" AltJSON :>-                                 Get '[JSON] ListTeachersResponse+                 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: *@@ -77,13 +73,11 @@ -- -- /See:/ 'coursesTeachersList' smart constructor. data CoursesTeachersList = CoursesTeachersList'-    { _ctlXgafv          :: !(Maybe Text)+    { _ctlXgafv          :: !(Maybe Xgafv)     , _ctlUploadProtocol :: !(Maybe Text)-    , _ctlPp             :: !Bool     , _ctlCourseId       :: !Text     , _ctlAccessToken    :: !(Maybe Text)     , _ctlUploadType     :: !(Maybe Text)-    , _ctlBearerToken    :: !(Maybe Text)     , _ctlPageToken      :: !(Maybe Text)     , _ctlPageSize       :: !(Maybe (Textual Int32))     , _ctlCallback       :: !(Maybe Text)@@ -97,16 +91,12 @@ -- -- * 'ctlUploadProtocol' ----- * 'ctlPp'--- -- * 'ctlCourseId' -- -- * 'ctlAccessToken' -- -- * 'ctlUploadType' ----- * 'ctlBearerToken'--- -- * 'ctlPageToken' -- -- * 'ctlPageSize'@@ -119,18 +109,16 @@     CoursesTeachersList'     { _ctlXgafv = Nothing     , _ctlUploadProtocol = Nothing-    , _ctlPp = True     , _ctlCourseId = pCtlCourseId_     , _ctlAccessToken = Nothing     , _ctlUploadType = Nothing-    , _ctlBearerToken = Nothing     , _ctlPageToken = Nothing     , _ctlPageSize = Nothing     , _ctlCallback = Nothing     }  -- | V1 error format.-ctlXgafv :: Lens' CoursesTeachersList (Maybe Text)+ctlXgafv :: Lens' CoursesTeachersList (Maybe Xgafv) ctlXgafv = lens _ctlXgafv (\ s a -> s{_ctlXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -139,10 +127,6 @@   = lens _ctlUploadProtocol       (\ s a -> s{_ctlUploadProtocol = a}) --- | Pretty-print response.-ctlPp :: Lens' CoursesTeachersList Bool-ctlPp = lens _ctlPp (\ s a -> s{_ctlPp = a})- -- | Identifier of the course. This identifier can be either the -- Classroom-assigned identifier or an alias. ctlCourseId :: Lens' CoursesTeachersList Text@@ -161,12 +145,6 @@   = lens _ctlUploadType       (\ s a -> s{_ctlUploadType = a}) --- | OAuth bearer token.-ctlBearerToken :: Lens' CoursesTeachersList (Maybe Text)-ctlBearerToken-  = lens _ctlBearerToken-      (\ s a -> s{_ctlBearerToken = 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.@@ -195,10 +173,8 @@                "https://www.googleapis.com/auth/classroom.rosters.readonly"]         requestClient CoursesTeachersList'{..}           = go _ctlCourseId _ctlXgafv _ctlUploadProtocol-              (Just _ctlPp)               _ctlAccessToken               _ctlUploadType-              _ctlBearerToken               _ctlPageToken               _ctlPageSize               _ctlCallback
gen/Network/Google/Resource/Classroom/Courses/Update.hs view
@@ -39,11 +39,9 @@     -- * Request Lenses     , cuXgafv     , cuUploadProtocol-    , cuPp     , cuAccessToken     , cuUploadType     , cuPayload-    , cuBearerToken     , cuId     , cuCallback     ) where@@ -57,15 +55,13 @@      "v1" :>        "courses" :>          Capture "id" Text :>-           QueryParam "$.xgafv" Text :>+           QueryParam "$.xgafv" Xgafv :>              QueryParam "upload_protocol" Text :>-               QueryParam "pp" Bool :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "bearer_token" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :>-                           ReqBody '[JSON] Course :> Put '[JSON] Course+               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@@ -75,13 +71,11 @@ -- -- /See:/ 'coursesUpdate' smart constructor. data CoursesUpdate = CoursesUpdate'-    { _cuXgafv          :: !(Maybe Text)+    { _cuXgafv          :: !(Maybe Xgafv)     , _cuUploadProtocol :: !(Maybe Text)-    , _cuPp             :: !Bool     , _cuAccessToken    :: !(Maybe Text)     , _cuUploadType     :: !(Maybe Text)     , _cuPayload        :: !Course-    , _cuBearerToken    :: !(Maybe Text)     , _cuId             :: !Text     , _cuCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -94,16 +88,12 @@ -- -- * 'cuUploadProtocol' ----- * 'cuPp'--- -- * 'cuAccessToken' -- -- * 'cuUploadType' -- -- * 'cuPayload' ----- * 'cuBearerToken'--- -- * 'cuId' -- -- * 'cuCallback'@@ -115,17 +105,15 @@     CoursesUpdate'     { _cuXgafv = Nothing     , _cuUploadProtocol = Nothing-    , _cuPp = True     , _cuAccessToken = Nothing     , _cuUploadType = Nothing     , _cuPayload = pCuPayload_-    , _cuBearerToken = Nothing     , _cuId = pCuId_     , _cuCallback = Nothing     }  -- | V1 error format.-cuXgafv :: Lens' CoursesUpdate (Maybe Text)+cuXgafv :: Lens' CoursesUpdate (Maybe Xgafv) cuXgafv = lens _cuXgafv (\ s a -> s{_cuXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -134,10 +122,6 @@   = lens _cuUploadProtocol       (\ s a -> s{_cuUploadProtocol = a}) --- | Pretty-print response.-cuPp :: Lens' CoursesUpdate Bool-cuPp = lens _cuPp (\ s a -> s{_cuPp = a})- -- | OAuth access token. cuAccessToken :: Lens' CoursesUpdate (Maybe Text) cuAccessToken@@ -154,12 +138,6 @@ cuPayload   = lens _cuPayload (\ s a -> s{_cuPayload = a}) --- | OAuth bearer token.-cuBearerToken :: Lens' CoursesUpdate (Maybe Text)-cuBearerToken-  = lens _cuBearerToken-      (\ s a -> s{_cuBearerToken = a})- -- | Identifier of the course to update. This identifier can be either the -- Classroom-assigned identifier or an alias. cuId :: Lens' CoursesUpdate Text@@ -175,10 +153,8 @@         type Scopes CoursesUpdate =              '["https://www.googleapis.com/auth/classroom.courses"]         requestClient CoursesUpdate'{..}-          = go _cuId _cuXgafv _cuUploadProtocol (Just _cuPp)-              _cuAccessToken+          = go _cuId _cuXgafv _cuUploadProtocol _cuAccessToken               _cuUploadType-              _cuBearerToken               _cuCallback               (Just AltJSON)               _cuPayload
gen/Network/Google/Resource/Classroom/Invitations/Accept.hs view
@@ -43,10 +43,8 @@     -- * Request Lenses     , iaXgafv     , iaUploadProtocol-    , iaPp     , iaAccessToken     , iaUploadType-    , iaBearerToken     , iaId     , iaCallback     ) where@@ -60,14 +58,12 @@      "v1" :>        "invitations" :>          CaptureMode "id" "accept" Text :>-           QueryParam "$.xgafv" Text :>+           QueryParam "$.xgafv" Xgafv :>              QueryParam "upload_protocol" Text :>-               QueryParam "pp" Bool :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "bearer_token" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Post '[JSON] Empty+               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@@ -81,12 +77,10 @@ -- -- /See:/ 'invitationsAccept' smart constructor. data InvitationsAccept = InvitationsAccept'-    { _iaXgafv          :: !(Maybe Text)+    { _iaXgafv          :: !(Maybe Xgafv)     , _iaUploadProtocol :: !(Maybe Text)-    , _iaPp             :: !Bool     , _iaAccessToken    :: !(Maybe Text)     , _iaUploadType     :: !(Maybe Text)-    , _iaBearerToken    :: !(Maybe Text)     , _iaId             :: !Text     , _iaCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -99,14 +93,10 @@ -- -- * 'iaUploadProtocol' ----- * 'iaPp'--- -- * 'iaAccessToken' -- -- * 'iaUploadType' ----- * 'iaBearerToken'--- -- * 'iaId' -- -- * 'iaCallback'@@ -117,16 +107,14 @@     InvitationsAccept'     { _iaXgafv = Nothing     , _iaUploadProtocol = Nothing-    , _iaPp = True     , _iaAccessToken = Nothing     , _iaUploadType = Nothing-    , _iaBearerToken = Nothing     , _iaId = pIaId_     , _iaCallback = Nothing     }  -- | V1 error format.-iaXgafv :: Lens' InvitationsAccept (Maybe Text)+iaXgafv :: Lens' InvitationsAccept (Maybe Xgafv) iaXgafv = lens _iaXgafv (\ s a -> s{_iaXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -135,10 +123,6 @@   = lens _iaUploadProtocol       (\ s a -> s{_iaUploadProtocol = a}) --- | Pretty-print response.-iaPp :: Lens' InvitationsAccept Bool-iaPp = lens _iaPp (\ s a -> s{_iaPp = a})- -- | OAuth access token. iaAccessToken :: Lens' InvitationsAccept (Maybe Text) iaAccessToken@@ -150,12 +134,6 @@ iaUploadType   = lens _iaUploadType (\ s a -> s{_iaUploadType = a}) --- | OAuth bearer token.-iaBearerToken :: Lens' InvitationsAccept (Maybe Text)-iaBearerToken-  = lens _iaBearerToken-      (\ s a -> s{_iaBearerToken = a})- -- | Identifier of the invitation to accept. iaId :: Lens' InvitationsAccept Text iaId = lens _iaId (\ s a -> s{_iaId = a})@@ -170,10 +148,8 @@         type Scopes InvitationsAccept =              '["https://www.googleapis.com/auth/classroom.rosters"]         requestClient InvitationsAccept'{..}-          = go _iaId _iaXgafv _iaUploadProtocol (Just _iaPp)-              _iaAccessToken+          = go _iaId _iaXgafv _iaUploadProtocol _iaAccessToken               _iaUploadType-              _iaBearerToken               _iaCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Invitations/Create.hs view
@@ -43,11 +43,9 @@     -- * Request Lenses     , icXgafv     , icUploadProtocol-    , icPp     , icAccessToken     , icUploadType     , icPayload-    , icBearerToken     , icCallback     ) where @@ -59,15 +57,13 @@ type InvitationsCreateResource =      "v1" :>        "invitations" :>-         QueryParam "$.xgafv" Text :>+         QueryParam "$.xgafv" Xgafv :>            QueryParam "upload_protocol" Text :>-             QueryParam "pp" Bool :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "bearer_token" Text :>-                     QueryParam "callback" Text :>-                       QueryParam "alt" AltJSON :>-                         ReqBody '[JSON] Invitation :> Post '[JSON] Invitation+             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.@@ -81,13 +77,11 @@ -- -- /See:/ 'invitationsCreate' smart constructor. data InvitationsCreate = InvitationsCreate'-    { _icXgafv          :: !(Maybe Text)+    { _icXgafv          :: !(Maybe Xgafv)     , _icUploadProtocol :: !(Maybe Text)-    , _icPp             :: !Bool     , _icAccessToken    :: !(Maybe Text)     , _icUploadType     :: !(Maybe Text)     , _icPayload        :: !Invitation-    , _icBearerToken    :: !(Maybe Text)     , _icCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -99,16 +93,12 @@ -- -- * 'icUploadProtocol' ----- * 'icPp'--- -- * 'icAccessToken' -- -- * 'icUploadType' -- -- * 'icPayload' ----- * 'icBearerToken'--- -- * 'icCallback' invitationsCreate     :: Invitation -- ^ 'icPayload'@@ -117,16 +107,14 @@     InvitationsCreate'     { _icXgafv = Nothing     , _icUploadProtocol = Nothing-    , _icPp = True     , _icAccessToken = Nothing     , _icUploadType = Nothing     , _icPayload = pIcPayload_-    , _icBearerToken = Nothing     , _icCallback = Nothing     }  -- | V1 error format.-icXgafv :: Lens' InvitationsCreate (Maybe Text)+icXgafv :: Lens' InvitationsCreate (Maybe Xgafv) icXgafv = lens _icXgafv (\ s a -> s{_icXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -135,10 +123,6 @@   = lens _icUploadProtocol       (\ s a -> s{_icUploadProtocol = a}) --- | Pretty-print response.-icPp :: Lens' InvitationsCreate Bool-icPp = lens _icPp (\ s a -> s{_icPp = a})- -- | OAuth access token. icAccessToken :: Lens' InvitationsCreate (Maybe Text) icAccessToken@@ -155,12 +139,6 @@ icPayload   = lens _icPayload (\ s a -> s{_icPayload = a}) --- | OAuth bearer token.-icBearerToken :: Lens' InvitationsCreate (Maybe Text)-icBearerToken-  = lens _icBearerToken-      (\ s a -> s{_icBearerToken = a})- -- | JSONP icCallback :: Lens' InvitationsCreate (Maybe Text) icCallback@@ -171,10 +149,8 @@         type Scopes InvitationsCreate =              '["https://www.googleapis.com/auth/classroom.rosters"]         requestClient InvitationsCreate'{..}-          = go _icXgafv _icUploadProtocol (Just _icPp)-              _icAccessToken+          = go _icXgafv _icUploadProtocol _icAccessToken               _icUploadType-              _icBearerToken               _icCallback               (Just AltJSON)               _icPayload
gen/Network/Google/Resource/Classroom/Invitations/Delete.hs view
@@ -38,10 +38,8 @@     -- * Request Lenses     , idXgafv     , idUploadProtocol-    , idPp     , idAccessToken     , idUploadType-    , idBearerToken     , idId     , idCallback     ) where@@ -55,14 +53,12 @@      "v1" :>        "invitations" :>          Capture "id" Text :>-           QueryParam "$.xgafv" Text :>+           QueryParam "$.xgafv" Xgafv :>              QueryParam "upload_protocol" Text :>-               QueryParam "pp" Bool :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "bearer_token" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty+               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@@ -71,12 +67,10 @@ -- -- /See:/ 'invitationsDelete' smart constructor. data InvitationsDelete = InvitationsDelete'-    { _idXgafv          :: !(Maybe Text)+    { _idXgafv          :: !(Maybe Xgafv)     , _idUploadProtocol :: !(Maybe Text)-    , _idPp             :: !Bool     , _idAccessToken    :: !(Maybe Text)     , _idUploadType     :: !(Maybe Text)-    , _idBearerToken    :: !(Maybe Text)     , _idId             :: !Text     , _idCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -89,14 +83,10 @@ -- -- * 'idUploadProtocol' ----- * 'idPp'--- -- * 'idAccessToken' -- -- * 'idUploadType' ----- * 'idBearerToken'--- -- * 'idId' -- -- * 'idCallback'@@ -107,16 +97,14 @@     InvitationsDelete'     { _idXgafv = Nothing     , _idUploadProtocol = Nothing-    , _idPp = True     , _idAccessToken = Nothing     , _idUploadType = Nothing-    , _idBearerToken = Nothing     , _idId = pIdId_     , _idCallback = Nothing     }  -- | V1 error format.-idXgafv :: Lens' InvitationsDelete (Maybe Text)+idXgafv :: Lens' InvitationsDelete (Maybe Xgafv) idXgafv = lens _idXgafv (\ s a -> s{_idXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -125,10 +113,6 @@   = lens _idUploadProtocol       (\ s a -> s{_idUploadProtocol = a}) --- | Pretty-print response.-idPp :: Lens' InvitationsDelete Bool-idPp = lens _idPp (\ s a -> s{_idPp = a})- -- | OAuth access token. idAccessToken :: Lens' InvitationsDelete (Maybe Text) idAccessToken@@ -140,12 +124,6 @@ idUploadType   = lens _idUploadType (\ s a -> s{_idUploadType = a}) --- | OAuth bearer token.-idBearerToken :: Lens' InvitationsDelete (Maybe Text)-idBearerToken-  = lens _idBearerToken-      (\ s a -> s{_idBearerToken = a})- -- | Identifier of the invitation to delete. idId :: Lens' InvitationsDelete Text idId = lens _idId (\ s a -> s{_idId = a})@@ -160,10 +138,8 @@         type Scopes InvitationsDelete =              '["https://www.googleapis.com/auth/classroom.rosters"]         requestClient InvitationsDelete'{..}-          = go _idId _idXgafv _idUploadProtocol (Just _idPp)-              _idAccessToken+          = go _idId _idXgafv _idUploadProtocol _idAccessToken               _idUploadType-              _idBearerToken               _idCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Invitations/Get.hs view
@@ -38,10 +38,8 @@     -- * Request Lenses     , igXgafv     , igUploadProtocol-    , igPp     , igAccessToken     , igUploadType-    , igBearerToken     , igId     , igCallback     ) where@@ -55,14 +53,12 @@      "v1" :>        "invitations" :>          Capture "id" Text :>-           QueryParam "$.xgafv" Text :>+           QueryParam "$.xgafv" Xgafv :>              QueryParam "upload_protocol" Text :>-               QueryParam "pp" Bool :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "bearer_token" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Get '[JSON] Invitation+               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@@ -71,12 +67,10 @@ -- -- /See:/ 'invitationsGet' smart constructor. data InvitationsGet = InvitationsGet'-    { _igXgafv          :: !(Maybe Text)+    { _igXgafv          :: !(Maybe Xgafv)     , _igUploadProtocol :: !(Maybe Text)-    , _igPp             :: !Bool     , _igAccessToken    :: !(Maybe Text)     , _igUploadType     :: !(Maybe Text)-    , _igBearerToken    :: !(Maybe Text)     , _igId             :: !Text     , _igCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -89,14 +83,10 @@ -- -- * 'igUploadProtocol' ----- * 'igPp'--- -- * 'igAccessToken' -- -- * 'igUploadType' ----- * 'igBearerToken'--- -- * 'igId' -- -- * 'igCallback'@@ -107,16 +97,14 @@     InvitationsGet'     { _igXgafv = Nothing     , _igUploadProtocol = Nothing-    , _igPp = True     , _igAccessToken = Nothing     , _igUploadType = Nothing-    , _igBearerToken = Nothing     , _igId = pIgId_     , _igCallback = Nothing     }  -- | V1 error format.-igXgafv :: Lens' InvitationsGet (Maybe Text)+igXgafv :: Lens' InvitationsGet (Maybe Xgafv) igXgafv = lens _igXgafv (\ s a -> s{_igXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -125,10 +113,6 @@   = lens _igUploadProtocol       (\ s a -> s{_igUploadProtocol = a}) --- | Pretty-print response.-igPp :: Lens' InvitationsGet Bool-igPp = lens _igPp (\ s a -> s{_igPp = a})- -- | OAuth access token. igAccessToken :: Lens' InvitationsGet (Maybe Text) igAccessToken@@ -140,12 +124,6 @@ igUploadType   = lens _igUploadType (\ s a -> s{_igUploadType = a}) --- | OAuth bearer token.-igBearerToken :: Lens' InvitationsGet (Maybe Text)-igBearerToken-  = lens _igBearerToken-      (\ s a -> s{_igBearerToken = a})- -- | Identifier of the invitation to return. igId :: Lens' InvitationsGet Text igId = lens _igId (\ s a -> s{_igId = a})@@ -161,10 +139,8 @@              '["https://www.googleapis.com/auth/classroom.rosters",                "https://www.googleapis.com/auth/classroom.rosters.readonly"]         requestClient InvitationsGet'{..}-          = go _igId _igXgafv _igUploadProtocol (Just _igPp)-              _igAccessToken+          = go _igId _igXgafv _igUploadProtocol _igAccessToken               _igUploadType-              _igBearerToken               _igCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/Invitations/List.hs view
@@ -39,12 +39,10 @@     -- * Request Lenses     , ilXgafv     , ilUploadProtocol-    , ilPp     , ilCourseId     , ilAccessToken     , ilUploadType     , ilUserId-    , ilBearerToken     , ilPageToken     , ilPageSize     , ilCallback@@ -58,19 +56,17 @@ type InvitationsListResource =      "v1" :>        "invitations" :>-         QueryParam "$.xgafv" Text :>+         QueryParam "$.xgafv" Xgafv :>            QueryParam "upload_protocol" Text :>-             QueryParam "pp" Bool :>-               QueryParam "courseId" Text :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "userId" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "pageToken" Text :>-                           QueryParam "pageSize" (Textual Int32) :>-                             QueryParam "callback" Text :>-                               QueryParam "alt" AltJSON :>-                                 Get '[JSON] ListInvitationsResponse+             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@@ -80,14 +76,12 @@ -- -- /See:/ 'invitationsList' smart constructor. data InvitationsList = InvitationsList'-    { _ilXgafv          :: !(Maybe Text)+    { _ilXgafv          :: !(Maybe Xgafv)     , _ilUploadProtocol :: !(Maybe Text)-    , _ilPp             :: !Bool     , _ilCourseId       :: !(Maybe Text)     , _ilAccessToken    :: !(Maybe Text)     , _ilUploadType     :: !(Maybe Text)     , _ilUserId         :: !(Maybe Text)-    , _ilBearerToken    :: !(Maybe Text)     , _ilPageToken      :: !(Maybe Text)     , _ilPageSize       :: !(Maybe (Textual Int32))     , _ilCallback       :: !(Maybe Text)@@ -101,8 +95,6 @@ -- -- * 'ilUploadProtocol' ----- * 'ilPp'--- -- * 'ilCourseId' -- -- * 'ilAccessToken'@@ -111,8 +103,6 @@ -- -- * 'ilUserId' ----- * 'ilBearerToken'--- -- * 'ilPageToken' -- -- * 'ilPageSize'@@ -124,19 +114,17 @@     InvitationsList'     { _ilXgafv = Nothing     , _ilUploadProtocol = Nothing-    , _ilPp = True     , _ilCourseId = Nothing     , _ilAccessToken = Nothing     , _ilUploadType = Nothing     , _ilUserId = Nothing-    , _ilBearerToken = Nothing     , _ilPageToken = Nothing     , _ilPageSize = Nothing     , _ilCallback = Nothing     }  -- | V1 error format.-ilXgafv :: Lens' InvitationsList (Maybe Text)+ilXgafv :: Lens' InvitationsList (Maybe Xgafv) ilXgafv = lens _ilXgafv (\ s a -> s{_ilXgafv = a})  -- | Upload protocol for media (e.g. \"raw\", \"multipart\").@@ -145,10 +133,6 @@   = lens _ilUploadProtocol       (\ s a -> s{_ilUploadProtocol = a}) --- | Pretty-print response.-ilPp :: Lens' InvitationsList Bool-ilPp = lens _ilPp (\ s a -> s{_ilPp = a})- -- | Restricts returned invitations to those for a course with the specified -- identifier. ilCourseId :: Lens' InvitationsList (Maybe Text)@@ -173,12 +157,6 @@ ilUserId :: Lens' InvitationsList (Maybe Text) ilUserId = lens _ilUserId (\ s a -> s{_ilUserId = a}) --- | OAuth bearer token.-ilBearerToken :: Lens' InvitationsList (Maybe Text)-ilBearerToken-  = lens _ilBearerToken-      (\ s a -> s{_ilBearerToken = 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.@@ -204,12 +182,10 @@              '["https://www.googleapis.com/auth/classroom.rosters",                "https://www.googleapis.com/auth/classroom.rosters.readonly"]         requestClient InvitationsList'{..}-          = go _ilXgafv _ilUploadProtocol (Just _ilPp)-              _ilCourseId+          = go _ilXgafv _ilUploadProtocol _ilCourseId               _ilAccessToken               _ilUploadType               _ilUserId-              _ilBearerToken               _ilPageToken               _ilPageSize               _ilCallback
+ gen/Network/Google/Resource/Classroom/Registrations/Create.hs view
@@ -0,0 +1,186 @@+{-# 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 view
@@ -0,0 +1,148 @@+{-# 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 view
@@ -38,11 +38,9 @@     -- * Request Lenses     , upfgXgafv     , upfgUploadProtocol-    , upfgPp     , upfgAccessToken     , upfgUploadType     , upfgUserId-    , upfgBearerToken     , upfgCallback     ) where @@ -55,14 +53,12 @@      "v1" :>        "userProfiles" :>          Capture "userId" Text :>-           QueryParam "$.xgafv" Text :>+           QueryParam "$.xgafv" Xgafv :>              QueryParam "upload_protocol" Text :>-               QueryParam "pp" Bool :>-                 QueryParam "access_token" Text :>-                   QueryParam "uploadType" Text :>-                     QueryParam "bearer_token" Text :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :> Get '[JSON] UserProFile+               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@@ -71,13 +67,11 @@ -- -- /See:/ 'userProFilesGet' smart constructor. data UserProFilesGet = UserProFilesGet'-    { _upfgXgafv          :: !(Maybe Text)+    { _upfgXgafv          :: !(Maybe Xgafv)     , _upfgUploadProtocol :: !(Maybe Text)-    , _upfgPp             :: !Bool     , _upfgAccessToken    :: !(Maybe Text)     , _upfgUploadType     :: !(Maybe Text)     , _upfgUserId         :: !Text-    , _upfgBearerToken    :: !(Maybe Text)     , _upfgCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -89,16 +83,12 @@ -- -- * 'upfgUploadProtocol' ----- * 'upfgPp'--- -- * 'upfgAccessToken' -- -- * 'upfgUploadType' -- -- * 'upfgUserId' ----- * 'upfgBearerToken'--- -- * 'upfgCallback' userProFilesGet     :: Text -- ^ 'upfgUserId'@@ -107,16 +97,14 @@     UserProFilesGet'     { _upfgXgafv = Nothing     , _upfgUploadProtocol = Nothing-    , _upfgPp = True     , _upfgAccessToken = Nothing     , _upfgUploadType = Nothing     , _upfgUserId = pUpfgUserId_-    , _upfgBearerToken = Nothing     , _upfgCallback = Nothing     }  -- | V1 error format.-upfgXgafv :: Lens' UserProFilesGet (Maybe Text)+upfgXgafv :: Lens' UserProFilesGet (Maybe Xgafv) upfgXgafv   = lens _upfgXgafv (\ s a -> s{_upfgXgafv = a}) @@ -126,10 +114,6 @@   = lens _upfgUploadProtocol       (\ s a -> s{_upfgUploadProtocol = a}) --- | Pretty-print response.-upfgPp :: Lens' UserProFilesGet Bool-upfgPp = lens _upfgPp (\ s a -> s{_upfgPp = a})- -- | OAuth access token. upfgAccessToken :: Lens' UserProFilesGet (Maybe Text) upfgAccessToken@@ -149,12 +133,6 @@ upfgUserId   = lens _upfgUserId (\ s a -> s{_upfgUserId = a}) --- | OAuth bearer token.-upfgBearerToken :: Lens' UserProFilesGet (Maybe Text)-upfgBearerToken-  = lens _upfgBearerToken-      (\ s a -> s{_upfgBearerToken = a})- -- | JSONP upfgCallback :: Lens' UserProFilesGet (Maybe Text) upfgCallback@@ -169,10 +147,8 @@                "https://www.googleapis.com/auth/classroom.rosters.readonly"]         requestClient UserProFilesGet'{..}           = go _upfgUserId _upfgXgafv _upfgUploadProtocol-              (Just _upfgPp)               _upfgAccessToken               _upfgUploadType-              _upfgBearerToken               _upfgCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Create.hs view
@@ -59,11 +59,9 @@     , upfgicStudentId     , upfgicXgafv     , upfgicUploadProtocol-    , upfgicPp     , upfgicAccessToken     , upfgicUploadType     , upfgicPayload-    , upfgicBearerToken     , upfgicCallback     ) where @@ -77,16 +75,14 @@        "userProfiles" :>          Capture "studentId" Text :>            "guardianInvitations" :>-             QueryParam "$.xgafv" Text :>+             QueryParam "$.xgafv" Xgafv :>                QueryParam "upload_protocol" Text :>-                 QueryParam "pp" Bool :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "callback" Text :>-                           QueryParam "alt" AltJSON :>-                             ReqBody '[JSON] GuardianInvitation :>-                               Post '[JSON] GuardianInvitation+                 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@@ -116,13 +112,11 @@ -- /See:/ 'userProFilesGuardianInvitationsCreate' smart constructor. data UserProFilesGuardianInvitationsCreate = UserProFilesGuardianInvitationsCreate'     { _upfgicStudentId      :: !Text-    , _upfgicXgafv          :: !(Maybe Text)+    , _upfgicXgafv          :: !(Maybe Xgafv)     , _upfgicUploadProtocol :: !(Maybe Text)-    , _upfgicPp             :: !Bool     , _upfgicAccessToken    :: !(Maybe Text)     , _upfgicUploadType     :: !(Maybe Text)     , _upfgicPayload        :: !GuardianInvitation-    , _upfgicBearerToken    :: !(Maybe Text)     , _upfgicCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -136,16 +130,12 @@ -- -- * 'upfgicUploadProtocol' ----- * 'upfgicPp'--- -- * 'upfgicAccessToken' -- -- * 'upfgicUploadType' -- -- * 'upfgicPayload' ----- * 'upfgicBearerToken'--- -- * 'upfgicCallback' userProFilesGuardianInvitationsCreate     :: Text -- ^ 'upfgicStudentId'@@ -156,11 +146,9 @@     { _upfgicStudentId = pUpfgicStudentId_     , _upfgicXgafv = Nothing     , _upfgicUploadProtocol = Nothing-    , _upfgicPp = True     , _upfgicAccessToken = Nothing     , _upfgicUploadType = Nothing     , _upfgicPayload = pUpfgicPayload_-    , _upfgicBearerToken = Nothing     , _upfgicCallback = Nothing     } @@ -171,7 +159,7 @@       (\ s a -> s{_upfgicStudentId = a})  -- | V1 error format.-upfgicXgafv :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)+upfgicXgafv :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Xgafv) upfgicXgafv   = lens _upfgicXgafv (\ s a -> s{_upfgicXgafv = a}) @@ -181,10 +169,6 @@   = lens _upfgicUploadProtocol       (\ s a -> s{_upfgicUploadProtocol = a}) --- | Pretty-print response.-upfgicPp :: Lens' UserProFilesGuardianInvitationsCreate Bool-upfgicPp = lens _upfgicPp (\ s a -> s{_upfgicPp = a})- -- | OAuth access token. upfgicAccessToken :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text) upfgicAccessToken@@ -203,12 +187,6 @@   = lens _upfgicPayload       (\ s a -> s{_upfgicPayload = a}) --- | OAuth bearer token.-upfgicBearerToken :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)-upfgicBearerToken-  = lens _upfgicBearerToken-      (\ s a -> s{_upfgicBearerToken = a})- -- | JSONP upfgicCallback :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text) upfgicCallback@@ -220,15 +198,13 @@         type Rs UserProFilesGuardianInvitationsCreate =              GuardianInvitation         type Scopes UserProFilesGuardianInvitationsCreate =-             '[]+             '["https://www.googleapis.com/auth/classroom.guardianlinks.students"]         requestClient           UserProFilesGuardianInvitationsCreate'{..}           = go _upfgicStudentId _upfgicXgafv               _upfgicUploadProtocol-              (Just _upfgicPp)               _upfgicAccessToken               _upfgicUploadType-              _upfgicBearerToken               _upfgicCallback               (Just AltJSON)               _upfgicPayload
gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Get.hs view
@@ -46,11 +46,9 @@     , upfgigStudentId     , upfgigXgafv     , upfgigUploadProtocol-    , upfgigPp     , upfgigAccessToken     , upfgigUploadType     , upfgigInvitationId-    , upfgigBearerToken     , upfgigCallback     ) where @@ -65,15 +63,13 @@          Capture "studentId" Text :>            "guardianInvitations" :>              Capture "invitationId" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :>-                               Get '[JSON] GuardianInvitation+                   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@@ -90,13 +86,11 @@ -- /See:/ 'userProFilesGuardianInvitationsGet' smart constructor. data UserProFilesGuardianInvitationsGet = UserProFilesGuardianInvitationsGet'     { _upfgigStudentId      :: !Text-    , _upfgigXgafv          :: !(Maybe Text)+    , _upfgigXgafv          :: !(Maybe Xgafv)     , _upfgigUploadProtocol :: !(Maybe Text)-    , _upfgigPp             :: !Bool     , _upfgigAccessToken    :: !(Maybe Text)     , _upfgigUploadType     :: !(Maybe Text)     , _upfgigInvitationId   :: !Text-    , _upfgigBearerToken    :: !(Maybe Text)     , _upfgigCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -110,16 +104,12 @@ -- -- * 'upfgigUploadProtocol' ----- * 'upfgigPp'--- -- * 'upfgigAccessToken' -- -- * 'upfgigUploadType' -- -- * 'upfgigInvitationId' ----- * 'upfgigBearerToken'--- -- * 'upfgigCallback' userProFilesGuardianInvitationsGet     :: Text -- ^ 'upfgigStudentId'@@ -130,11 +120,9 @@     { _upfgigStudentId = pUpfgigStudentId_     , _upfgigXgafv = Nothing     , _upfgigUploadProtocol = Nothing-    , _upfgigPp = True     , _upfgigAccessToken = Nothing     , _upfgigUploadType = Nothing     , _upfgigInvitationId = pUpfgigInvitationId_-    , _upfgigBearerToken = Nothing     , _upfgigCallback = Nothing     } @@ -145,7 +133,7 @@       (\ s a -> s{_upfgigStudentId = a})  -- | V1 error format.-upfgigXgafv :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)+upfgigXgafv :: Lens' UserProFilesGuardianInvitationsGet (Maybe Xgafv) upfgigXgafv   = lens _upfgigXgafv (\ s a -> s{_upfgigXgafv = a}) @@ -155,10 +143,6 @@   = lens _upfgigUploadProtocol       (\ s a -> s{_upfgigUploadProtocol = a}) --- | Pretty-print response.-upfgigPp :: Lens' UserProFilesGuardianInvitationsGet Bool-upfgigPp = lens _upfgigPp (\ s a -> s{_upfgigPp = a})- -- | OAuth access token. upfgigAccessToken :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text) upfgigAccessToken@@ -177,12 +161,6 @@   = lens _upfgigInvitationId       (\ s a -> s{_upfgigInvitationId = a}) --- | OAuth bearer token.-upfgigBearerToken :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)-upfgigBearerToken-  = lens _upfgigBearerToken-      (\ s a -> s{_upfgigBearerToken = a})- -- | JSONP upfgigCallback :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text) upfgigCallback@@ -193,15 +171,15 @@          UserProFilesGuardianInvitationsGet where         type Rs UserProFilesGuardianInvitationsGet =              GuardianInvitation-        type Scopes UserProFilesGuardianInvitationsGet = '[]+        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-              (Just _upfgigPp)               _upfgigAccessToken               _upfgigUploadType-              _upfgigBearerToken               _upfgigCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/List.hs view
@@ -49,10 +49,8 @@     , upfgilStates     , upfgilXgafv     , upfgilUploadProtocol-    , upfgilPp     , upfgilAccessToken     , upfgilUploadType-    , upfgilBearerToken     , upfgilInvitedEmailAddress     , upfgilPageToken     , upfgilPageSize@@ -70,18 +68,16 @@          Capture "studentId" Text :>            "guardianInvitations" :>              QueryParams "states" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "invitedEmailAddress" Text :>-                             QueryParam "pageToken" Text :>-                               QueryParam "pageSize" (Textual Int32) :>-                                 QueryParam "callback" Text :>-                                   QueryParam "alt" AltJSON :>-                                     Get '[JSON] ListGuardianInvitationsResponse+                   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@@ -101,12 +97,10 @@ data UserProFilesGuardianInvitationsList = UserProFilesGuardianInvitationsList'     { _upfgilStudentId           :: !Text     , _upfgilStates              :: !(Maybe [Text])-    , _upfgilXgafv               :: !(Maybe Text)+    , _upfgilXgafv               :: !(Maybe Xgafv)     , _upfgilUploadProtocol      :: !(Maybe Text)-    , _upfgilPp                  :: !Bool     , _upfgilAccessToken         :: !(Maybe Text)     , _upfgilUploadType          :: !(Maybe Text)-    , _upfgilBearerToken         :: !(Maybe Text)     , _upfgilInvitedEmailAddress :: !(Maybe Text)     , _upfgilPageToken           :: !(Maybe Text)     , _upfgilPageSize            :: !(Maybe (Textual Int32))@@ -125,14 +119,10 @@ -- -- * 'upfgilUploadProtocol' ----- * 'upfgilPp'--- -- * 'upfgilAccessToken' -- -- * 'upfgilUploadType' ----- * 'upfgilBearerToken'--- -- * 'upfgilInvitedEmailAddress' -- -- * 'upfgilPageToken'@@ -149,10 +139,8 @@     , _upfgilStates = Nothing     , _upfgilXgafv = Nothing     , _upfgilUploadProtocol = Nothing-    , _upfgilPp = True     , _upfgilAccessToken = Nothing     , _upfgilUploadType = Nothing-    , _upfgilBearerToken = Nothing     , _upfgilInvitedEmailAddress = Nothing     , _upfgilPageToken = Nothing     , _upfgilPageSize = Nothing@@ -180,7 +168,7 @@       . _Coerce  -- | V1 error format.-upfgilXgafv :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)+upfgilXgafv :: Lens' UserProFilesGuardianInvitationsList (Maybe Xgafv) upfgilXgafv   = lens _upfgilXgafv (\ s a -> s{_upfgilXgafv = a}) @@ -190,10 +178,6 @@   = lens _upfgilUploadProtocol       (\ s a -> s{_upfgilUploadProtocol = a}) --- | Pretty-print response.-upfgilPp :: Lens' UserProFilesGuardianInvitationsList Bool-upfgilPp = lens _upfgilPp (\ s a -> s{_upfgilPp = a})- -- | OAuth access token. upfgilAccessToken :: Lens' UserProFilesGuardianInvitationsList (Maybe Text) upfgilAccessToken@@ -206,12 +190,6 @@   = lens _upfgilUploadType       (\ s a -> s{_upfgilUploadType = a}) --- | OAuth bearer token.-upfgilBearerToken :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)-upfgilBearerToken-  = lens _upfgilBearerToken-      (\ s a -> s{_upfgilBearerToken = a})- -- | If specified, only results with the specified \`invited_email_address\` -- will be returned. upfgilInvitedEmailAddress :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)@@ -246,16 +224,16 @@          UserProFilesGuardianInvitationsList where         type Rs UserProFilesGuardianInvitationsList =              ListGuardianInvitationsResponse-        type Scopes UserProFilesGuardianInvitationsList = '[]+        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-              (Just _upfgilPp)               _upfgilAccessToken               _upfgilUploadType-              _upfgilBearerToken               _upfgilInvitedEmailAddress               _upfgilPageToken               _upfgilPageSize
gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Patch.hs view
@@ -50,12 +50,10 @@     , upfgipXgafv     , upfgipUploadProtocol     , upfgipUpdateMask-    , upfgipPp     , upfgipAccessToken     , upfgipUploadType     , upfgipPayload     , upfgipInvitationId-    , upfgipBearerToken     , upfgipCallback     ) where @@ -70,17 +68,15 @@          Capture "studentId" Text :>            "guardianInvitations" :>              Capture "invitationId" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "updateMask" Text :>-                     QueryParam "pp" Bool :>-                       QueryParam "access_token" Text :>-                         QueryParam "uploadType" Text :>-                           QueryParam "bearer_token" Text :>-                             QueryParam "callback" Text :>-                               QueryParam "alt" AltJSON :>-                                 ReqBody '[JSON] GuardianInvitation :>-                                   Patch '[JSON] GuardianInvitation+                   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@@ -100,15 +96,13 @@ -- /See:/ 'userProFilesGuardianInvitationsPatch' smart constructor. data UserProFilesGuardianInvitationsPatch = UserProFilesGuardianInvitationsPatch'     { _upfgipStudentId      :: !Text-    , _upfgipXgafv          :: !(Maybe Text)+    , _upfgipXgafv          :: !(Maybe Xgafv)     , _upfgipUploadProtocol :: !(Maybe Text)-    , _upfgipUpdateMask     :: !(Maybe Text)-    , _upfgipPp             :: !Bool+    , _upfgipUpdateMask     :: !(Maybe GFieldMask)     , _upfgipAccessToken    :: !(Maybe Text)     , _upfgipUploadType     :: !(Maybe Text)     , _upfgipPayload        :: !GuardianInvitation     , _upfgipInvitationId   :: !Text-    , _upfgipBearerToken    :: !(Maybe Text)     , _upfgipCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -124,8 +118,6 @@ -- -- * 'upfgipUpdateMask' ----- * 'upfgipPp'--- -- * 'upfgipAccessToken' -- -- * 'upfgipUploadType'@@ -134,8 +126,6 @@ -- -- * 'upfgipInvitationId' ----- * 'upfgipBearerToken'--- -- * 'upfgipCallback' userProFilesGuardianInvitationsPatch     :: Text -- ^ 'upfgipStudentId'@@ -148,12 +138,10 @@     , _upfgipXgafv = Nothing     , _upfgipUploadProtocol = Nothing     , _upfgipUpdateMask = Nothing-    , _upfgipPp = True     , _upfgipAccessToken = Nothing     , _upfgipUploadType = Nothing     , _upfgipPayload = pUpfgipPayload_     , _upfgipInvitationId = pUpfgipInvitationId_-    , _upfgipBearerToken = Nothing     , _upfgipCallback = Nothing     } @@ -164,7 +152,7 @@       (\ s a -> s{_upfgipStudentId = a})  -- | V1 error format.-upfgipXgafv :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)+upfgipXgafv :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Xgafv) upfgipXgafv   = lens _upfgipXgafv (\ s a -> s{_upfgipXgafv = a}) @@ -178,15 +166,11 @@ -- 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 Text)+upfgipUpdateMask :: Lens' UserProFilesGuardianInvitationsPatch (Maybe GFieldMask) upfgipUpdateMask   = lens _upfgipUpdateMask       (\ s a -> s{_upfgipUpdateMask = a}) --- | Pretty-print response.-upfgipPp :: Lens' UserProFilesGuardianInvitationsPatch Bool-upfgipPp = lens _upfgipPp (\ s a -> s{_upfgipPp = a})- -- | OAuth access token. upfgipAccessToken :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text) upfgipAccessToken@@ -211,12 +195,6 @@   = lens _upfgipInvitationId       (\ s a -> s{_upfgipInvitationId = a}) --- | OAuth bearer token.-upfgipBearerToken :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)-upfgipBearerToken-  = lens _upfgipBearerToken-      (\ s a -> s{_upfgipBearerToken = a})- -- | JSONP upfgipCallback :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text) upfgipCallback@@ -228,17 +206,15 @@         type Rs UserProFilesGuardianInvitationsPatch =              GuardianInvitation         type Scopes UserProFilesGuardianInvitationsPatch =-             '[]+             '["https://www.googleapis.com/auth/classroom.guardianlinks.students"]         requestClient           UserProFilesGuardianInvitationsPatch'{..}           = go _upfgipStudentId _upfgipInvitationId               _upfgipXgafv               _upfgipUploadProtocol               _upfgipUpdateMask-              (Just _upfgipPp)               _upfgipAccessToken               _upfgipUploadType-              _upfgipBearerToken               _upfgipCallback               (Just AltJSON)               _upfgipPayload
gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs view
@@ -47,11 +47,9 @@     , upfgdStudentId     , upfgdXgafv     , upfgdUploadProtocol-    , upfgdPp     , upfgdAccessToken     , upfgdUploadType     , upfgdGuardianId-    , upfgdBearerToken     , upfgdCallback     ) where @@ -66,14 +64,12 @@          Capture "studentId" Text :>            "guardians" :>              Capture "guardianId" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :> Delete '[JSON] Empty+                   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.@@ -91,13 +87,11 @@ -- /See:/ 'userProFilesGuardiansDelete' smart constructor. data UserProFilesGuardiansDelete = UserProFilesGuardiansDelete'     { _upfgdStudentId      :: !Text-    , _upfgdXgafv          :: !(Maybe Text)+    , _upfgdXgafv          :: !(Maybe Xgafv)     , _upfgdUploadProtocol :: !(Maybe Text)-    , _upfgdPp             :: !Bool     , _upfgdAccessToken    :: !(Maybe Text)     , _upfgdUploadType     :: !(Maybe Text)     , _upfgdGuardianId     :: !Text-    , _upfgdBearerToken    :: !(Maybe Text)     , _upfgdCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -111,16 +105,12 @@ -- -- * 'upfgdUploadProtocol' ----- * 'upfgdPp'--- -- * 'upfgdAccessToken' -- -- * 'upfgdUploadType' -- -- * 'upfgdGuardianId' ----- * 'upfgdBearerToken'--- -- * 'upfgdCallback' userProFilesGuardiansDelete     :: Text -- ^ 'upfgdStudentId'@@ -131,11 +121,9 @@     { _upfgdStudentId = pUpfgdStudentId_     , _upfgdXgafv = Nothing     , _upfgdUploadProtocol = Nothing-    , _upfgdPp = True     , _upfgdAccessToken = Nothing     , _upfgdUploadType = Nothing     , _upfgdGuardianId = pUpfgdGuardianId_-    , _upfgdBearerToken = Nothing     , _upfgdCallback = Nothing     } @@ -148,7 +136,7 @@       (\ s a -> s{_upfgdStudentId = a})  -- | V1 error format.-upfgdXgafv :: Lens' UserProFilesGuardiansDelete (Maybe Text)+upfgdXgafv :: Lens' UserProFilesGuardiansDelete (Maybe Xgafv) upfgdXgafv   = lens _upfgdXgafv (\ s a -> s{_upfgdXgafv = a}) @@ -158,10 +146,6 @@   = lens _upfgdUploadProtocol       (\ s a -> s{_upfgdUploadProtocol = a}) --- | Pretty-print response.-upfgdPp :: Lens' UserProFilesGuardiansDelete Bool-upfgdPp = lens _upfgdPp (\ s a -> s{_upfgdPp = a})- -- | OAuth access token. upfgdAccessToken :: Lens' UserProFilesGuardiansDelete (Maybe Text) upfgdAccessToken@@ -180,12 +164,6 @@   = lens _upfgdGuardianId       (\ s a -> s{_upfgdGuardianId = a}) --- | OAuth bearer token.-upfgdBearerToken :: Lens' UserProFilesGuardiansDelete (Maybe Text)-upfgdBearerToken-  = lens _upfgdBearerToken-      (\ s a -> s{_upfgdBearerToken = a})- -- | JSONP upfgdCallback :: Lens' UserProFilesGuardiansDelete (Maybe Text) upfgdCallback@@ -195,14 +173,13 @@ instance GoogleRequest UserProFilesGuardiansDelete          where         type Rs UserProFilesGuardiansDelete = Empty-        type Scopes UserProFilesGuardiansDelete = '[]+        type Scopes UserProFilesGuardiansDelete =+             '["https://www.googleapis.com/auth/classroom.guardianlinks.students"]         requestClient UserProFilesGuardiansDelete'{..}           = go _upfgdStudentId _upfgdGuardianId _upfgdXgafv               _upfgdUploadProtocol-              (Just _upfgdPp)               _upfgdAccessToken               _upfgdUploadType-              _upfgdBearerToken               _upfgdCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs view
@@ -47,11 +47,9 @@     , upfggStudentId     , upfggXgafv     , upfggUploadProtocol-    , upfggPp     , upfggAccessToken     , upfggUploadType     , upfggGuardianId-    , upfggBearerToken     , upfggCallback     ) where @@ -66,14 +64,12 @@          Capture "studentId" Text :>            "guardians" :>              Capture "guardianId" Text :>-               QueryParam "$.xgafv" Text :>+               QueryParam "$.xgafv" Xgafv :>                  QueryParam "upload_protocol" Text :>-                   QueryParam "pp" Bool :>-                     QueryParam "access_token" Text :>-                       QueryParam "uploadType" Text :>-                         QueryParam "bearer_token" Text :>-                           QueryParam "callback" Text :>-                             QueryParam "alt" AltJSON :> Get '[JSON] Guardian+                   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@@ -91,13 +87,11 @@ -- /See:/ 'userProFilesGuardiansGet' smart constructor. data UserProFilesGuardiansGet = UserProFilesGuardiansGet'     { _upfggStudentId      :: !Text-    , _upfggXgafv          :: !(Maybe Text)+    , _upfggXgafv          :: !(Maybe Xgafv)     , _upfggUploadProtocol :: !(Maybe Text)-    , _upfggPp             :: !Bool     , _upfggAccessToken    :: !(Maybe Text)     , _upfggUploadType     :: !(Maybe Text)     , _upfggGuardianId     :: !Text-    , _upfggBearerToken    :: !(Maybe Text)     , _upfggCallback       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic) @@ -111,16 +105,12 @@ -- -- * 'upfggUploadProtocol' ----- * 'upfggPp'--- -- * 'upfggAccessToken' -- -- * 'upfggUploadType' -- -- * 'upfggGuardianId' ----- * 'upfggBearerToken'--- -- * 'upfggCallback' userProFilesGuardiansGet     :: Text -- ^ 'upfggStudentId'@@ -131,11 +121,9 @@     { _upfggStudentId = pUpfggStudentId_     , _upfggXgafv = Nothing     , _upfggUploadProtocol = Nothing-    , _upfggPp = True     , _upfggAccessToken = Nothing     , _upfggUploadType = Nothing     , _upfggGuardianId = pUpfggGuardianId_-    , _upfggBearerToken = Nothing     , _upfggCallback = Nothing     } @@ -148,7 +136,7 @@       (\ s a -> s{_upfggStudentId = a})  -- | V1 error format.-upfggXgafv :: Lens' UserProFilesGuardiansGet (Maybe Text)+upfggXgafv :: Lens' UserProFilesGuardiansGet (Maybe Xgafv) upfggXgafv   = lens _upfggXgafv (\ s a -> s{_upfggXgafv = a}) @@ -158,10 +146,6 @@   = lens _upfggUploadProtocol       (\ s a -> s{_upfggUploadProtocol = a}) --- | Pretty-print response.-upfggPp :: Lens' UserProFilesGuardiansGet Bool-upfggPp = lens _upfggPp (\ s a -> s{_upfggPp = a})- -- | OAuth access token. upfggAccessToken :: Lens' UserProFilesGuardiansGet (Maybe Text) upfggAccessToken@@ -180,12 +164,6 @@   = lens _upfggGuardianId       (\ s a -> s{_upfggGuardianId = a}) --- | OAuth bearer token.-upfggBearerToken :: Lens' UserProFilesGuardiansGet (Maybe Text)-upfggBearerToken-  = lens _upfggBearerToken-      (\ s a -> s{_upfggBearerToken = a})- -- | JSONP upfggCallback :: Lens' UserProFilesGuardiansGet (Maybe Text) upfggCallback@@ -194,14 +172,15 @@  instance GoogleRequest UserProFilesGuardiansGet where         type Rs UserProFilesGuardiansGet = Guardian-        type Scopes UserProFilesGuardiansGet = '[]+        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-              (Just _upfggPp)               _upfggAccessToken               _upfggUploadType-              _upfggBearerToken               _upfggCallback               (Just AltJSON)               classroomService
gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/List.hs view
@@ -51,10 +51,8 @@     , upfglStudentId     , upfglXgafv     , upfglUploadProtocol-    , upfglPp     , upfglAccessToken     , upfglUploadType-    , upfglBearerToken     , upfglInvitedEmailAddress     , upfglPageToken     , upfglPageSize@@ -71,18 +69,16 @@        "userProfiles" :>          Capture "studentId" Text :>            "guardians" :>-             QueryParam "$.xgafv" Text :>+             QueryParam "$.xgafv" Xgafv :>                QueryParam "upload_protocol" Text :>-                 QueryParam "pp" Bool :>-                   QueryParam "access_token" Text :>-                     QueryParam "uploadType" Text :>-                       QueryParam "bearer_token" Text :>-                         QueryParam "invitedEmailAddress" Text :>-                           QueryParam "pageToken" Text :>-                             QueryParam "pageSize" (Textual Int32) :>-                               QueryParam "callback" Text :>-                                 QueryParam "alt" AltJSON :>-                                   Get '[JSON] ListGuardiansResponse+                 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@@ -104,12 +100,10 @@ -- /See:/ 'userProFilesGuardiansList' smart constructor. data UserProFilesGuardiansList = UserProFilesGuardiansList'     { _upfglStudentId           :: !Text-    , _upfglXgafv               :: !(Maybe Text)+    , _upfglXgafv               :: !(Maybe Xgafv)     , _upfglUploadProtocol      :: !(Maybe Text)-    , _upfglPp                  :: !Bool     , _upfglAccessToken         :: !(Maybe Text)     , _upfglUploadType          :: !(Maybe Text)-    , _upfglBearerToken         :: !(Maybe Text)     , _upfglInvitedEmailAddress :: !(Maybe Text)     , _upfglPageToken           :: !(Maybe Text)     , _upfglPageSize            :: !(Maybe (Textual Int32))@@ -126,14 +120,10 @@ -- -- * 'upfglUploadProtocol' ----- * 'upfglPp'--- -- * 'upfglAccessToken' -- -- * 'upfglUploadType' ----- * 'upfglBearerToken'--- -- * 'upfglInvitedEmailAddress' -- -- * 'upfglPageToken'@@ -149,10 +139,8 @@     { _upfglStudentId = pUpfglStudentId_     , _upfglXgafv = Nothing     , _upfglUploadProtocol = Nothing-    , _upfglPp = True     , _upfglAccessToken = Nothing     , _upfglUploadType = Nothing-    , _upfglBearerToken = Nothing     , _upfglInvitedEmailAddress = Nothing     , _upfglPageToken = Nothing     , _upfglPageSize = Nothing@@ -171,7 +159,7 @@       (\ s a -> s{_upfglStudentId = a})  -- | V1 error format.-upfglXgafv :: Lens' UserProFilesGuardiansList (Maybe Text)+upfglXgafv :: Lens' UserProFilesGuardiansList (Maybe Xgafv) upfglXgafv   = lens _upfglXgafv (\ s a -> s{_upfglXgafv = a}) @@ -181,10 +169,6 @@   = lens _upfglUploadProtocol       (\ s a -> s{_upfglUploadProtocol = a}) --- | Pretty-print response.-upfglPp :: Lens' UserProFilesGuardiansList Bool-upfglPp = lens _upfglPp (\ s a -> s{_upfglPp = a})- -- | OAuth access token. upfglAccessToken :: Lens' UserProFilesGuardiansList (Maybe Text) upfglAccessToken@@ -197,12 +181,6 @@   = lens _upfglUploadType       (\ s a -> s{_upfglUploadType = a}) --- | OAuth bearer token.-upfglBearerToken :: Lens' UserProFilesGuardiansList (Maybe Text)-upfglBearerToken-  = lens _upfglBearerToken-      (\ s a -> s{_upfglBearerToken = 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.@@ -238,13 +216,14 @@          where         type Rs UserProFilesGuardiansList =              ListGuardiansResponse-        type Scopes UserProFilesGuardiansList = '[]+        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-              (Just _upfglPp)               _upfglAccessToken               _upfglUploadType-              _upfglBearerToken               _upfglInvitedEmailAddress               _upfglPageToken               _upfglPageSize
gogol-classroom.cabal view
@@ -1,5 +1,5 @@ name:                  gogol-classroom-version:               0.3.0+version:               0.4.0 synopsis:              Google Classroom SDK. homepage:              https://github.com/brendanhay/gogol bug-reports:           https://github.com/brendanhay/gogol/issues@@ -38,10 +38,17 @@         , 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@@ -69,6 +76,8 @@         , 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@@ -83,5 +92,5 @@         , Network.Google.Classroom.Types.Sum      build-depends:-          gogol-core == 0.3.0.*+          gogol-core == 0.4.0.*         , base       >= 4.7 && < 5