diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.3.0`
+`0.5.0`
 
 
 ## Description
diff --git a/gen/Network/Google/Classroom.hs b/gen/Network/Google/Classroom.hs
--- a/gen/Network/Google/Classroom.hs
+++ b/gen/Network/Google/Classroom.hs
@@ -26,6 +26,7 @@
     , classroomCoursesScope
     , classroomPushNotificationsScope
     , classroomCourseworkStudentsReadOnlyScope
+    , classroomTopicsReadOnlyScope
     , classroomProFileEmailsScope
     , classroomProFilePhotosScope
     , classroomCourseworkMeScope
@@ -36,6 +37,7 @@
     , classroomRostersScope
     , classroomCoursesReadOnlyScope
     , classroomCourseworkStudentsScope
+    , classroomTopicsScope
     , classroomAnnouncementsScope
     , classroomCourseworkMeReadOnlyScope
     , classroomStudentSubmissionsMeReadOnlyScope
@@ -151,6 +153,21 @@
     -- ** classroom.courses.teachers.list
     , module Network.Google.Resource.Classroom.Courses.Teachers.List
 
+    -- ** classroom.courses.topics.create
+    , module Network.Google.Resource.Classroom.Courses.Topics.Create
+
+    -- ** classroom.courses.topics.delete
+    , module Network.Google.Resource.Classroom.Courses.Topics.Delete
+
+    -- ** classroom.courses.topics.get
+    , module Network.Google.Resource.Classroom.Courses.Topics.Get
+
+    -- ** classroom.courses.topics.list
+    , module Network.Google.Resource.Classroom.Courses.Topics.List
+
+    -- ** classroom.courses.topics.patch
+    , module Network.Google.Resource.Classroom.Courses.Topics.Patch
+
     -- ** classroom.courses.update
     , module Network.Google.Resource.Classroom.Courses.Update
 
@@ -222,6 +239,7 @@
     , cwDueTime
     , cwAssociatedWithDeveloper
     , cwUpdateTime
+    , cwTopicId
     , cwMultipleChoiceQuestion
     , cwId
     , cwSubmissionModificationMode
@@ -326,6 +344,12 @@
     , globalPermission
     , gpPermission
 
+    -- ** ListTopicResponse
+    , ListTopicResponse
+    , listTopicResponse
+    , ltrNextPageToken
+    , ltrTopic
+
     -- ** Link
     , Link
     , link
@@ -431,6 +455,14 @@
     , aYouTubeVideo
     , aForm
 
+    -- ** Topic
+    , Topic
+    , topic
+    , tCourseId
+    , tUpdateTime
+    , tTopicId
+    , tName
+
     -- ** Announcement
     , Announcement
     , announcement
@@ -492,9 +524,9 @@
     -- ** Teacher
     , Teacher
     , teacher
-    , tCourseId
-    , tProFile
-    , tUserId
+    , teaCourseId
+    , teaProFile
+    , teaUserId
 
     -- ** CourseMaterialSet
     , CourseMaterialSet
@@ -657,8 +689,8 @@
     -- ** ListTeachersResponse
     , ListTeachersResponse
     , listTeachersResponse
-    , ltrNextPageToken
-    , ltrTeachers
+    , lNextPageToken
+    , lTeachers
 
     -- ** Student
     , Student
@@ -717,6 +749,11 @@
 import           Network.Google.Resource.Classroom.Courses.Teachers.Delete
 import           Network.Google.Resource.Classroom.Courses.Teachers.Get
 import           Network.Google.Resource.Classroom.Courses.Teachers.List
+import           Network.Google.Resource.Classroom.Courses.Topics.Create
+import           Network.Google.Resource.Classroom.Courses.Topics.Delete
+import           Network.Google.Resource.Classroom.Courses.Topics.Get
+import           Network.Google.Resource.Classroom.Courses.Topics.List
+import           Network.Google.Resource.Classroom.Courses.Topics.Patch
 import           Network.Google.Resource.Classroom.Courses.Update
 import           Network.Google.Resource.Classroom.Invitations.Accept
 import           Network.Google.Resource.Classroom.Invitations.Create
@@ -772,6 +809,11 @@
        :<|> CoursesAnnouncementsCreateResource
        :<|> CoursesAnnouncementsModifyAssigneesResource
        :<|> CoursesAnnouncementsDeleteResource
+       :<|> CoursesTopicsListResource
+       :<|> CoursesTopicsPatchResource
+       :<|> CoursesTopicsGetResource
+       :<|> CoursesTopicsCreateResource
+       :<|> CoursesTopicsDeleteResource
        :<|> CoursesAliasesListResource
        :<|> CoursesAliasesCreateResource
        :<|> CoursesAliasesDeleteResource
diff --git a/gen/Network/Google/Classroom/Types.hs b/gen/Network/Google/Classroom/Types.hs
--- a/gen/Network/Google/Classroom/Types.hs
+++ b/gen/Network/Google/Classroom/Types.hs
@@ -24,6 +24,7 @@
     , classroomCoursesScope
     , classroomPushNotificationsScope
     , classroomCourseworkStudentsReadOnlyScope
+    , classroomTopicsReadOnlyScope
     , classroomProFileEmailsScope
     , classroomProFilePhotosScope
     , classroomCourseworkMeScope
@@ -34,6 +35,7 @@
     , classroomRostersScope
     , classroomCoursesReadOnlyScope
     , classroomCourseworkStudentsScope
+    , classroomTopicsScope
     , classroomAnnouncementsScope
     , classroomCourseworkMeReadOnlyScope
     , classroomStudentSubmissionsMeReadOnlyScope
@@ -60,6 +62,7 @@
     , cwDueTime
     , cwAssociatedWithDeveloper
     , cwUpdateTime
+    , cwTopicId
     , cwMultipleChoiceQuestion
     , cwId
     , cwSubmissionModificationMode
@@ -164,6 +167,12 @@
     , globalPermission
     , gpPermission
 
+    -- * ListTopicResponse
+    , ListTopicResponse
+    , listTopicResponse
+    , ltrNextPageToken
+    , ltrTopic
+
     -- * Link
     , Link
     , link
@@ -269,6 +278,14 @@
     , aYouTubeVideo
     , aForm
 
+    -- * Topic
+    , Topic
+    , topic
+    , tCourseId
+    , tUpdateTime
+    , tTopicId
+    , tName
+
     -- * Announcement
     , Announcement
     , announcement
@@ -330,9 +347,9 @@
     -- * Teacher
     , Teacher
     , teacher
-    , tCourseId
-    , tProFile
-    , tUserId
+    , teaCourseId
+    , teaProFile
+    , teaUserId
 
     -- * CourseMaterialSet
     , CourseMaterialSet
@@ -495,8 +512,8 @@
     -- * ListTeachersResponse
     , ListTeachersResponse
     , listTeachersResponse
-    , ltrNextPageToken
-    , ltrTeachers
+    , lNextPageToken
+    , lTeachers
 
     -- * Student
     , Student
@@ -530,76 +547,84 @@
 
 -- | View your Google Classroom class rosters
 classroomRostersReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.rosters.readonly"]
-classroomRostersReadOnlyScope = Proxy;
+classroomRostersReadOnlyScope = Proxy
 
 -- | Manage your Google Classroom classes
 classroomCoursesScope :: Proxy '["https://www.googleapis.com/auth/classroom.courses"]
-classroomCoursesScope = Proxy;
+classroomCoursesScope = Proxy
 
 -- | Receive notifications about your Google Classroom data
 classroomPushNotificationsScope :: Proxy '["https://www.googleapis.com/auth/classroom.push-notifications"]
-classroomPushNotificationsScope = Proxy;
+classroomPushNotificationsScope = Proxy
 
 -- | View course work and grades for students in the Google Classroom classes
 -- you teach or administer
 classroomCourseworkStudentsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.coursework.students.readonly"]
-classroomCourseworkStudentsReadOnlyScope = Proxy;
+classroomCourseworkStudentsReadOnlyScope = Proxy
 
+-- | View topics in Google Classroom
+classroomTopicsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.topics.readonly"]
+classroomTopicsReadOnlyScope = Proxy
+
 -- | View the email addresses of people in your classes
 classroomProFileEmailsScope :: Proxy '["https://www.googleapis.com/auth/classroom.profile.emails"]
-classroomProFileEmailsScope = Proxy;
+classroomProFileEmailsScope = Proxy
 
 -- | View the profile photos of people in your classes
 classroomProFilePhotosScope :: Proxy '["https://www.googleapis.com/auth/classroom.profile.photos"]
-classroomProFilePhotosScope = Proxy;
+classroomProFilePhotosScope = Proxy
 
 -- | Manage your course work and view your grades in Google Classroom
 classroomCourseworkMeScope :: Proxy '["https://www.googleapis.com/auth/classroom.coursework.me"]
-classroomCourseworkMeScope = Proxy;
+classroomCourseworkMeScope = Proxy
 
 -- | View announcements in Google Classroom
 classroomAnnouncementsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.announcements.readonly"]
-classroomAnnouncementsReadOnlyScope = Proxy;
+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;
+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;
+classroomStudentSubmissionsStudentsReadOnlyScope = Proxy
 
 -- | View your Google Classroom guardians
 classroomGuardianlinksMeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly"]
-classroomGuardianlinksMeReadOnlyScope = Proxy;
+classroomGuardianlinksMeReadOnlyScope = Proxy
 
 -- | Manage your Google Classroom class rosters
 classroomRostersScope :: Proxy '["https://www.googleapis.com/auth/classroom.rosters"]
-classroomRostersScope = Proxy;
+classroomRostersScope = Proxy
 
 -- | View your Google Classroom classes
 classroomCoursesReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.courses.readonly"]
-classroomCoursesReadOnlyScope = Proxy;
+classroomCoursesReadOnlyScope = Proxy
 
 -- | Manage course work and grades for students in the Google Classroom
 -- classes you teach and view the course work and grades for classes you
 -- administer
 classroomCourseworkStudentsScope :: Proxy '["https://www.googleapis.com/auth/classroom.coursework.students"]
-classroomCourseworkStudentsScope = Proxy;
+classroomCourseworkStudentsScope = Proxy
 
+-- | See, create, and edit topics in Google Classroom
+classroomTopicsScope :: Proxy '["https://www.googleapis.com/auth/classroom.topics"]
+classroomTopicsScope = Proxy
+
 -- | View and manage announcements in Google Classroom
 classroomAnnouncementsScope :: Proxy '["https://www.googleapis.com/auth/classroom.announcements"]
-classroomAnnouncementsScope = Proxy;
+classroomAnnouncementsScope = Proxy
 
 -- | View your course work and grades in Google Classroom
 classroomCourseworkMeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.coursework.me.readonly"]
-classroomCourseworkMeReadOnlyScope = Proxy;
+classroomCourseworkMeReadOnlyScope = Proxy
 
 -- | View your course work and grades in Google Classroom
 classroomStudentSubmissionsMeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.student-submissions.me.readonly"]
-classroomStudentSubmissionsMeReadOnlyScope = Proxy;
+classroomStudentSubmissionsMeReadOnlyScope = Proxy
 
 -- | View guardians for students in your Google Classroom classes
 classroomGuardianlinksStudentsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"]
-classroomGuardianlinksStudentsReadOnlyScope = Proxy;
+classroomGuardianlinksStudentsReadOnlyScope = Proxy
diff --git a/gen/Network/Google/Classroom/Types/Product.hs b/gen/Network/Google/Classroom/Types/Product.hs
--- a/gen/Network/Google/Classroom/Types/Product.hs
+++ b/gen/Network/Google/Classroom/Types/Product.hs
@@ -23,11 +23,14 @@
 -- | Response when listing course aliases.
 --
 -- /See:/ 'listCourseAliasesResponse' smart constructor.
-data ListCourseAliasesResponse = ListCourseAliasesResponse'
+data ListCourseAliasesResponse =
+  ListCourseAliasesResponse'
     { _lcarNextPageToken :: !(Maybe Text)
     , _lcarAliases       :: !(Maybe [CourseAlias])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListCourseAliasesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -38,11 +41,10 @@
 listCourseAliasesResponse
     :: ListCourseAliasesResponse
 listCourseAliasesResponse =
-    ListCourseAliasesResponse'
-    { _lcarNextPageToken = Nothing
-    , _lcarAliases = Nothing
-    }
+  ListCourseAliasesResponse'
+    {_lcarNextPageToken = Nothing, _lcarAliases = Nothing}
 
+
 -- | Token identifying the next page of results to return. If empty, no
 -- further results are available.
 lcarNextPageToken :: Lens' ListCourseAliasesResponse (Maybe Text)
@@ -75,7 +77,8 @@
 -- | Course work created by a teacher for students of the course.
 --
 -- /See:/ 'courseWork' smart constructor.
-data CourseWork = CourseWork'
+data CourseWork =
+  CourseWork'
     { _cwCreationTime               :: !(Maybe DateTime')
     , _cwScheduledTime              :: !(Maybe DateTime')
     , _cwState                      :: !(Maybe CourseWorkState)
@@ -88,6 +91,7 @@
     , _cwDueTime                    :: !(Maybe TimeOfDay')
     , _cwAssociatedWithDeveloper    :: !(Maybe Bool)
     , _cwUpdateTime                 :: !(Maybe DateTime')
+    , _cwTopicId                    :: !(Maybe Text)
     , _cwMultipleChoiceQuestion     :: !(Maybe MultipleChoiceQuestion)
     , _cwId                         :: !(Maybe Text)
     , _cwSubmissionModificationMode :: !(Maybe CourseWorkSubmissionModificationMode)
@@ -97,8 +101,10 @@
     , _cwAlternateLink              :: !(Maybe Text)
     , _cwAssignment                 :: !(Maybe Assignment)
     , _cwDescription                :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -127,6 +133,8 @@
 --
 -- * 'cwUpdateTime'
 --
+-- * 'cwTopicId'
+--
 -- * 'cwMultipleChoiceQuestion'
 --
 -- * 'cwId'
@@ -147,7 +155,7 @@
 courseWork
     :: CourseWork
 courseWork =
-    CourseWork'
+  CourseWork'
     { _cwCreationTime = Nothing
     , _cwScheduledTime = Nothing
     , _cwState = Nothing
@@ -160,6 +168,7 @@
     , _cwDueTime = Nothing
     , _cwAssociatedWithDeveloper = Nothing
     , _cwUpdateTime = Nothing
+    , _cwTopicId = Nothing
     , _cwMultipleChoiceQuestion = Nothing
     , _cwId = Nothing
     , _cwSubmissionModificationMode = Nothing
@@ -171,6 +180,7 @@
     , _cwDescription = Nothing
     }
 
+
 -- | Timestamp when this course work was created. Read-only.
 cwCreationTime :: Lens' CourseWork (Maybe UTCTime)
 cwCreationTime
@@ -253,6 +263,12 @@
   = lens _cwUpdateTime (\ s a -> s{_cwUpdateTime = a})
       . mapping _DateTime
 
+-- | Identifier for the topic that this coursework is associated with. Must
+-- match an existing topic in the course.
+cwTopicId :: Lens' CourseWork (Maybe Text)
+cwTopicId
+  = lens _cwTopicId (\ s a -> s{_cwTopicId = a})
+
 -- | Multiple choice question details. For read operations, this field is
 -- populated only when \`work_type\` is \`MULTIPLE_CHOICE_QUESTION\`. For
 -- write operations, this field must be specified when creating course work
@@ -328,6 +344,7 @@
                      <*> (o .:? "dueTime")
                      <*> (o .:? "associatedWithDeveloper")
                      <*> (o .:? "updateTime")
+                     <*> (o .:? "topicId")
                      <*> (o .:? "multipleChoiceQuestion")
                      <*> (o .:? "id")
                      <*> (o .:? "submissionModificationMode")
@@ -356,6 +373,7 @@
                   ("associatedWithDeveloper" .=) <$>
                     _cwAssociatedWithDeveloper,
                   ("updateTime" .=) <$> _cwUpdateTime,
+                  ("topicId" .=) <$> _cwTopicId,
                   ("multipleChoiceQuestion" .=) <$>
                     _cwMultipleChoiceQuestion,
                   ("id" .=) <$> _cwId,
@@ -371,14 +389,17 @@
 -- | The history of each grade on this submission.
 --
 -- /See:/ 'gradeHistory' smart constructor.
-data GradeHistory = GradeHistory'
+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)
+    }
+  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:
@@ -395,7 +416,7 @@
 gradeHistory
     :: GradeHistory
 gradeHistory =
-    GradeHistory'
+  GradeHistory'
     { _ghGradeTimestamp = Nothing
     , _ghMaxPoints = Nothing
     , _ghPointsEarned = Nothing
@@ -403,6 +424,7 @@
     , _ghGradeChangeType = Nothing
     }
 
+
 -- | When the grade of the submission was changed.
 ghGradeTimestamp :: Lens' GradeHistory (Maybe UTCTime)
 ghGradeTimestamp
@@ -460,10 +482,13 @@
 -- \`COURSE_WORK_CHANGES\`.
 --
 -- /See:/ 'courseWorkChangesInfo' smart constructor.
-newtype CourseWorkChangesInfo = CourseWorkChangesInfo'
+newtype CourseWorkChangesInfo =
+  CourseWorkChangesInfo'
     { _cwciCourseId :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -471,11 +496,9 @@
 -- * 'cwciCourseId'
 courseWorkChangesInfo
     :: CourseWorkChangesInfo
-courseWorkChangesInfo =
-    CourseWorkChangesInfo'
-    { _cwciCourseId = Nothing
-    }
+courseWorkChangesInfo = CourseWorkChangesInfo' {_cwciCourseId = Nothing}
 
+
 -- | The \`course_id\` of the course to subscribe to work changes for.
 cwciCourseId :: Lens' CourseWorkChangesInfo (Maybe Text)
 cwciCourseId
@@ -495,11 +518,14 @@
 -- | Request to modify assignee mode and options of a coursework.
 --
 -- /See:/ 'modifyCourseWorkAssigneesRequest' smart constructor.
-data ModifyCourseWorkAssigneesRequest = ModifyCourseWorkAssigneesRequest'
+data ModifyCourseWorkAssigneesRequest =
+  ModifyCourseWorkAssigneesRequest'
     { _mcwarAssigneeMode                    :: !(Maybe ModifyCourseWorkAssigneesRequestAssigneeMode)
     , _mcwarModifyIndividualStudentsOptions :: !(Maybe ModifyIndividualStudentsOptions)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -510,11 +536,12 @@
 modifyCourseWorkAssigneesRequest
     :: 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)
@@ -551,13 +578,16 @@
 -- | Representation of a Google Drive file.
 --
 -- /See:/ 'driveFile' smart constructor.
-data DriveFile = DriveFile'
+data DriveFile =
+  DriveFile'
     { _dfThumbnailURL  :: !(Maybe Text)
     , _dfId            :: !(Maybe Text)
     , _dfTitle         :: !(Maybe Text)
     , _dfAlternateLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -572,13 +602,14 @@
 driveFile
     :: 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
@@ -620,14 +651,17 @@
 -- specified email address.
 --
 -- /See:/ 'guardianInvitation' smart constructor.
-data GuardianInvitation = GuardianInvitation'
+data GuardianInvitation =
+  GuardianInvitation'
     { _giCreationTime        :: !(Maybe DateTime')
     , _giStudentId           :: !(Maybe Text)
     , _giState               :: !(Maybe GuardianInvitationState)
     , _giInvitationId        :: !(Maybe Text)
     , _giInvitedEmailAddress :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -644,7 +678,7 @@
 guardianInvitation
     :: GuardianInvitation
 guardianInvitation =
-    GuardianInvitation'
+  GuardianInvitation'
     { _giCreationTime = Nothing
     , _giStudentId = Nothing
     , _giState = Nothing
@@ -652,6 +686,7 @@
     , _giInvitedEmailAddress = Nothing
     }
 
+
 -- | The time that this invitation was created. Read-only.
 giCreationTime :: Lens' GuardianInvitation (Maybe UTCTime)
 giCreationTime
@@ -706,12 +741,15 @@
 -- For example: \"all roster changes for a domain\".
 --
 -- /See:/ 'feed' smart constructor.
-data Feed = Feed'
+data Feed =
+  Feed'
     { _fCourseWorkChangesInfo   :: !(Maybe CourseWorkChangesInfo)
     , _fFeedType                :: !(Maybe FeedFeedType)
     , _fCourseRosterChangesInfo :: !(Maybe CourseRosterChangesInfo)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -724,12 +762,13 @@
 feed
     :: 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\`.
@@ -773,11 +812,14 @@
 -- | Request to modify assignee mode and options of an announcement.
 --
 -- /See:/ 'modifyAnnouncementAssigneesRequest' smart constructor.
-data ModifyAnnouncementAssigneesRequest = ModifyAnnouncementAssigneesRequest'
+data ModifyAnnouncementAssigneesRequest =
+  ModifyAnnouncementAssigneesRequest'
     { _maarAssigneeMode                    :: !(Maybe ModifyAnnouncementAssigneesRequestAssigneeMode)
     , _maarModifyIndividualStudentsOptions :: !(Maybe ModifyIndividualStudentsOptions)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -788,11 +830,12 @@
 modifyAnnouncementAssigneesRequest
     :: 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)
@@ -830,15 +873,17 @@
 --
 -- /See:/ 'returnStudentSubmissionRequest' smart constructor.
 data ReturnStudentSubmissionRequest =
-    ReturnStudentSubmissionRequest'
-    deriving (Eq,Show,Data,Typeable,Generic)
+  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
@@ -852,15 +897,17 @@
 --
 -- /See:/ 'reclaimStudentSubmissionRequest' smart constructor.
 data ReclaimStudentSubmissionRequest =
-    ReclaimStudentSubmissionRequest'
-    deriving (Eq,Show,Data,Typeable,Generic)
+  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
@@ -873,11 +920,14 @@
 -- | Response when listing course work.
 --
 -- /See:/ 'listCourseWorkResponse' smart constructor.
-data ListCourseWorkResponse = ListCourseWorkResponse'
+data ListCourseWorkResponse =
+  ListCourseWorkResponse'
     { _lcwrCourseWork    :: !(Maybe [CourseWork])
     , _lcwrNextPageToken :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -888,11 +938,10 @@
 listCourseWorkResponse
     :: ListCourseWorkResponse
 listCourseWorkResponse =
-    ListCourseWorkResponse'
-    { _lcwrCourseWork = Nothing
-    , _lcwrNextPageToken = Nothing
-    }
+  ListCourseWorkResponse'
+    {_lcwrCourseWork = Nothing, _lcwrNextPageToken = Nothing}
 
+
 -- | Course work items that match the request.
 lcwrCourseWork :: Lens' ListCourseWorkResponse [CourseWork]
 lcwrCourseWork
@@ -931,15 +980,17 @@
 --
 -- /See:/ 'empty' smart constructor.
 data Empty =
-    Empty'
-    deriving (Eq,Show,Data,Typeable,Generic)
+  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')
 
@@ -949,10 +1000,13 @@
 -- | Global user permission description.
 --
 -- /See:/ 'globalPermission' smart constructor.
-newtype GlobalPermission = GlobalPermission'
+newtype GlobalPermission =
+  GlobalPermission'
     { _gpPermission :: Maybe GlobalPermissionPermission
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -960,11 +1014,9 @@
 -- * 'gpPermission'
 globalPermission
     :: GlobalPermission
-globalPermission =
-    GlobalPermission'
-    { _gpPermission = Nothing
-    }
+globalPermission = GlobalPermission' {_gpPermission = Nothing}
 
+
 -- | Permission value.
 gpPermission :: Lens' GlobalPermission (Maybe GlobalPermissionPermission)
 gpPermission
@@ -980,15 +1032,71 @@
           = object
               (catMaybes [("permission" .=) <$> _gpPermission])
 
+-- | Response when listing topics.
+--
+-- /See:/ 'listTopicResponse' smart constructor.
+data ListTopicResponse =
+  ListTopicResponse'
+    { _ltrNextPageToken :: !(Maybe Text)
+    , _ltrTopic         :: !(Maybe [Topic])
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListTopicResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltrNextPageToken'
+--
+-- * 'ltrTopic'
+listTopicResponse
+    :: ListTopicResponse
+listTopicResponse =
+  ListTopicResponse' {_ltrNextPageToken = Nothing, _ltrTopic = Nothing}
+
+
+-- | Token identifying the next page of results to return. If empty, no
+-- further results are available.
+ltrNextPageToken :: Lens' ListTopicResponse (Maybe Text)
+ltrNextPageToken
+  = lens _ltrNextPageToken
+      (\ s a -> s{_ltrNextPageToken = a})
+
+-- | Topic items that match the request.
+ltrTopic :: Lens' ListTopicResponse [Topic]
+ltrTopic
+  = lens _ltrTopic (\ s a -> s{_ltrTopic = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListTopicResponse where
+        parseJSON
+          = withObject "ListTopicResponse"
+              (\ o ->
+                 ListTopicResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "topic" .!= mempty))
+
+instance ToJSON ListTopicResponse where
+        toJSON ListTopicResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _ltrNextPageToken,
+                  ("topic" .=) <$> _ltrTopic])
+
 -- | URL item.
 --
 -- /See:/ 'link' smart constructor.
-data Link = Link'
+data Link =
+  Link'
     { _lThumbnailURL :: !(Maybe Text)
     , _lURL          :: !(Maybe Text)
     , _lTitle        :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1000,13 +1108,9 @@
 -- * 'lTitle'
 link
     :: Link
-link =
-    Link'
-    { _lThumbnailURL = Nothing
-    , _lURL = Nothing
-    , _lTitle = Nothing
-    }
+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
@@ -1041,10 +1145,13 @@
 -- and only if \`assigneeMode\` is \`INDIVIDUAL_STUDENTS\`.
 --
 -- /See:/ 'individualStudentsOptions' smart constructor.
-newtype IndividualStudentsOptions = IndividualStudentsOptions'
+newtype IndividualStudentsOptions =
+  IndividualStudentsOptions'
     { _isoStudentIds :: Maybe [Text]
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1053,10 +1160,9 @@
 individualStudentsOptions
     :: IndividualStudentsOptions
 individualStudentsOptions =
-    IndividualStudentsOptions'
-    { _isoStudentIds = Nothing
-    }
+  IndividualStudentsOptions' {_isoStudentIds = Nothing}
 
+
 -- | Identifiers for the students that have access to the
 -- coursework\/announcement.
 isoStudentIds :: Lens' IndividualStudentsOptions [Text]
@@ -1081,10 +1187,13 @@
 -- | Student work for an assignment.
 --
 -- /See:/ 'assignmentSubmission' smart constructor.
-newtype AssignmentSubmission = AssignmentSubmission'
+newtype AssignmentSubmission =
+  AssignmentSubmission'
     { _asAttachments :: Maybe [Attachment]
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1092,11 +1201,9 @@
 -- * 'asAttachments'
 assignmentSubmission
     :: AssignmentSubmission
-assignmentSubmission =
-    AssignmentSubmission'
-    { _asAttachments = Nothing
-    }
+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
@@ -1125,10 +1232,13 @@
 -- | Request to modify the attachments of a student submission.
 --
 -- /See:/ 'modifyAttachmentsRequest' smart constructor.
-newtype ModifyAttachmentsRequest = ModifyAttachmentsRequest'
+newtype ModifyAttachmentsRequest =
+  ModifyAttachmentsRequest'
     { _marAddAttachments :: Maybe [Attachment]
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1137,10 +1247,9 @@
 modifyAttachmentsRequest
     :: ModifyAttachmentsRequest
 modifyAttachmentsRequest =
-    ModifyAttachmentsRequest'
-    { _marAddAttachments = Nothing
-    }
+  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]
@@ -1166,11 +1275,14 @@
 -- | Response when listing course work.
 --
 -- /See:/ 'listAnnouncementsResponse' smart constructor.
-data ListAnnouncementsResponse = ListAnnouncementsResponse'
+data ListAnnouncementsResponse =
+  ListAnnouncementsResponse'
     { _larNextPageToken :: !(Maybe Text)
     , _larAnnouncements :: !(Maybe [Announcement])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1181,11 +1293,10 @@
 listAnnouncementsResponse
     :: ListAnnouncementsResponse
 listAnnouncementsResponse =
-    ListAnnouncementsResponse'
-    { _larNextPageToken = Nothing
-    , _larAnnouncements = Nothing
-    }
+  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)
@@ -1219,11 +1330,14 @@
 -- | Response when listing student submissions.
 --
 -- /See:/ 'listStudentSubmissionsResponse' smart constructor.
-data ListStudentSubmissionsResponse = ListStudentSubmissionsResponse'
+data ListStudentSubmissionsResponse =
+  ListStudentSubmissionsResponse'
     { _lssrNextPageToken      :: !(Maybe Text)
     , _lssrStudentSubmissions :: !(Maybe [StudentSubmission])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1234,11 +1348,10 @@
 listStudentSubmissionsResponse
     :: ListStudentSubmissionsResponse
 listStudentSubmissionsResponse =
-    ListStudentSubmissionsResponse'
-    { _lssrNextPageToken = Nothing
-    , _lssrStudentSubmissions = Nothing
-    }
+  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)
@@ -1275,13 +1388,16 @@
 -- \`form\` field is not supported.
 --
 -- /See:/ 'material' smart constructor.
-data Material = Material'
+data Material =
+  Material'
     { _mDriveFile    :: !(Maybe SharedDriveFile)
     , _mLink         :: !(Maybe Link)
     , _mYouTubeVideo :: !(Maybe YouTubeVideo)
     , _mForm         :: !(Maybe Form)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1296,13 +1412,14 @@
 material
     :: Material
 material =
-    Material'
+  Material'
     { _mDriveFile = Nothing
     , _mLink = Nothing
     , _mYouTubeVideo = Nothing
     , _mForm = Nothing
     }
 
+
 -- | Google Drive file material.
 mDriveFile :: Lens' Material (Maybe SharedDriveFile)
 mDriveFile
@@ -1344,10 +1461,13 @@
 -- | Student work for a multiple-choice question.
 --
 -- /See:/ 'multipleChoiceSubmission' smart constructor.
-newtype MultipleChoiceSubmission = MultipleChoiceSubmission'
+newtype MultipleChoiceSubmission =
+  MultipleChoiceSubmission'
     { _mcsAnswer :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1355,11 +1475,9 @@
 -- * 'mcsAnswer'
 multipleChoiceSubmission
     :: MultipleChoiceSubmission
-multipleChoiceSubmission =
-    MultipleChoiceSubmission'
-    { _mcsAnswer = Nothing
-    }
+multipleChoiceSubmission = MultipleChoiceSubmission' {_mcsAnswer = Nothing}
 
+
 -- | Student\'s select choice.
 mcsAnswer :: Lens' MultipleChoiceSubmission (Maybe Text)
 mcsAnswer
@@ -1378,11 +1496,14 @@
 -- | Response when listing invitations.
 --
 -- /See:/ 'listInvitationsResponse' smart constructor.
-data ListInvitationsResponse = ListInvitationsResponse'
+data ListInvitationsResponse =
+  ListInvitationsResponse'
     { _lirNextPageToken :: !(Maybe Text)
     , _lirInvitations   :: !(Maybe [Invitation])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1393,11 +1514,10 @@
 listInvitationsResponse
     :: ListInvitationsResponse
 listInvitationsResponse =
-    ListInvitationsResponse'
-    { _lirNextPageToken = Nothing
-    , _lirInvitations = Nothing
-    }
+  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)
@@ -1432,13 +1552,16 @@
 -- guardian may receive information about the student\'s course work.
 --
 -- /See:/ 'guardian' smart constructor.
-data Guardian = Guardian'
+data Guardian =
+  Guardian'
     { _gStudentId           :: !(Maybe Text)
     , _gGuardianId          :: !(Maybe Text)
     , _gInvitedEmailAddress :: !(Maybe Text)
     , _gGuardianProFile     :: !(Maybe UserProFile)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1453,13 +1576,14 @@
 guardian
     :: 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
@@ -1504,13 +1628,16 @@
 -- | A material attached to a course as part of a material set.
 --
 -- /See:/ 'courseMaterial' smart constructor.
-data CourseMaterial = CourseMaterial'
+data CourseMaterial =
+  CourseMaterial'
     { _cmDriveFile    :: !(Maybe DriveFile)
     , _cmLink         :: !(Maybe Link)
     , _cmYouTubeVideo :: !(Maybe YouTubeVideo)
     , _cmForm         :: !(Maybe Form)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1525,13 +1652,14 @@
 courseMaterial
     :: CourseMaterial
 courseMaterial =
-    CourseMaterial'
+  CourseMaterial'
     { _cmDriveFile = Nothing
     , _cmLink = Nothing
     , _cmYouTubeVideo = Nothing
     , _cmForm = Nothing
     }
 
+
 -- | Google Drive file attachment.
 cmDriveFile :: Lens' CourseMaterial (Maybe DriveFile)
 cmDriveFile
@@ -1572,10 +1700,13 @@
 -- | Student work for a short answer question.
 --
 -- /See:/ 'shortAnswerSubmission' smart constructor.
-newtype ShortAnswerSubmission = ShortAnswerSubmission'
+newtype ShortAnswerSubmission =
+  ShortAnswerSubmission'
     { _sasAnswer :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1583,11 +1714,9 @@
 -- * 'sasAnswer'
 shortAnswerSubmission
     :: ShortAnswerSubmission
-shortAnswerSubmission =
-    ShortAnswerSubmission'
-    { _sasAnswer = Nothing
-    }
+shortAnswerSubmission = ShortAnswerSubmission' {_sasAnswer = Nothing}
 
+
 -- | Student response to a short-answer question.
 sasAnswer :: Lens' ShortAnswerSubmission (Maybe Text)
 sasAnswer
@@ -1605,13 +1734,16 @@
 -- | An invitation to join a course.
 --
 -- /See:/ 'invitation' smart constructor.
-data Invitation = Invitation'
+data Invitation =
+  Invitation'
     { _iCourseId :: !(Maybe Text)
     , _iUserId   :: !(Maybe Text)
     , _iRole     :: !(Maybe InvitationRole)
     , _iId       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1626,13 +1758,10 @@
 invitation
     :: Invitation
 invitation =
-    Invitation'
-    { _iCourseId = Nothing
-    , _iUserId = Nothing
-    , _iRole = Nothing
-    , _iId = Nothing
-    }
+  Invitation'
+    {_iCourseId = Nothing, _iUserId = Nothing, _iRole = Nothing, _iId = Nothing}
 
+
 -- | Identifier of the course to invite the user to.
 iCourseId :: Lens' Invitation (Maybe Text)
 iCourseId
@@ -1675,13 +1804,16 @@
 -- setting the \`form\` field is not supported.
 --
 -- /See:/ 'attachment' smart constructor.
-data Attachment = Attachment'
+data Attachment =
+  Attachment'
     { _aDriveFile    :: !(Maybe DriveFile)
     , _aLink         :: !(Maybe Link)
     , _aYouTubeVideo :: !(Maybe YouTubeVideo)
     , _aForm         :: !(Maybe Form)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1696,13 +1828,14 @@
 attachment
     :: Attachment
 attachment =
-    Attachment'
+  Attachment'
     { _aDriveFile = Nothing
     , _aLink = Nothing
     , _aYouTubeVideo = Nothing
     , _aForm = Nothing
     }
 
+
 -- | Google Drive file attachment.
 aDriveFile :: Lens' Attachment (Maybe DriveFile)
 aDriveFile
@@ -1740,10 +1873,87 @@
                   ("youTubeVideo" .=) <$> _aYouTubeVideo,
                   ("form" .=) <$> _aForm])
 
+-- | Topic created by a teacher for the course
+--
+-- /See:/ 'topic' smart constructor.
+data Topic =
+  Topic'
+    { _tCourseId   :: !(Maybe Text)
+    , _tUpdateTime :: !(Maybe DateTime')
+    , _tTopicId    :: !(Maybe Text)
+    , _tName       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Topic' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tCourseId'
+--
+-- * 'tUpdateTime'
+--
+-- * 'tTopicId'
+--
+-- * 'tName'
+topic
+    :: Topic
+topic =
+  Topic'
+    { _tCourseId = Nothing
+    , _tUpdateTime = Nothing
+    , _tTopicId = Nothing
+    , _tName = Nothing
+    }
+
+
+-- | Identifier of the course. Read-only.
+tCourseId :: Lens' Topic (Maybe Text)
+tCourseId
+  = lens _tCourseId (\ s a -> s{_tCourseId = a})
+
+-- | The time the topic was last updated by the system. Read-only.
+tUpdateTime :: Lens' Topic (Maybe UTCTime)
+tUpdateTime
+  = lens _tUpdateTime (\ s a -> s{_tUpdateTime = a}) .
+      mapping _DateTime
+
+-- | Unique identifier for the topic. Read-only.
+tTopicId :: Lens' Topic (Maybe Text)
+tTopicId = lens _tTopicId (\ s a -> s{_tTopicId = a})
+
+-- | The name of the topic, generated by the user. Leading and trailing
+-- whitespaces, if any, will be trimmed. Also, multiple consecutive
+-- whitespaces will be collapsed into one inside the name. The result must
+-- be a non-empty string. Topic names are case sensitive, and must be no
+-- longer than 100 characters.
+tName :: Lens' Topic (Maybe Text)
+tName = lens _tName (\ s a -> s{_tName = a})
+
+instance FromJSON Topic where
+        parseJSON
+          = withObject "Topic"
+              (\ o ->
+                 Topic' <$>
+                   (o .:? "courseId") <*> (o .:? "updateTime") <*>
+                     (o .:? "topicId")
+                     <*> (o .:? "name"))
+
+instance ToJSON Topic where
+        toJSON Topic'{..}
+          = object
+              (catMaybes
+                 [("courseId" .=) <$> _tCourseId,
+                  ("updateTime" .=) <$> _tUpdateTime,
+                  ("topicId" .=) <$> _tTopicId,
+                  ("name" .=) <$> _tName])
+
 -- | Announcement created by a teacher for students of the course
 --
 -- /See:/ 'announcement' smart constructor.
-data Announcement = Announcement'
+data Announcement =
+  Announcement'
     { _aCreationTime              :: !(Maybe DateTime')
     , _aScheduledTime             :: !(Maybe DateTime')
     , _aState                     :: !(Maybe AnnouncementState)
@@ -1756,8 +1966,10 @@
     , _aId                        :: !(Maybe Text)
     , _aCreatorUserId             :: !(Maybe Text)
     , _aAlternateLink             :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1788,7 +2000,7 @@
 announcement
     :: Announcement
 announcement =
-    Announcement'
+  Announcement'
     { _aCreationTime = Nothing
     , _aScheduledTime = Nothing
     , _aState = Nothing
@@ -1803,6 +2015,7 @@
     , _aAlternateLink = Nothing
     }
 
+
 -- | Timestamp when this announcement was created. Read-only.
 aCreationTime :: Lens' Announcement (Maybe UTCTime)
 aCreationTime
@@ -1921,7 +2134,8 @@
 -- creation time or update time.
 --
 -- /See:/ 'studentSubmission' smart constructor.
-data StudentSubmission = StudentSubmission'
+data StudentSubmission =
+  StudentSubmission'
     { _ssCreationTime             :: !(Maybe DateTime')
     , _ssLate                     :: !(Maybe Bool)
     , _ssState                    :: !(Maybe StudentSubmissionState)
@@ -1939,8 +2153,10 @@
     , _ssDraftGrade               :: !(Maybe (Textual Double))
     , _ssAlternateLink            :: !(Maybe Text)
     , _ssCourseWorkId             :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -1981,7 +2197,7 @@
 studentSubmission
     :: StudentSubmission
 studentSubmission =
-    StudentSubmission'
+  StudentSubmission'
     { _ssCreationTime = Nothing
     , _ssLate = Nothing
     , _ssState = Nothing
@@ -2001,6 +2217,7 @@
     , _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)
@@ -2161,11 +2378,14 @@
 -- | Response when listing guardians.
 --
 -- /See:/ 'listGuardiansResponse' smart constructor.
-data ListGuardiansResponse = ListGuardiansResponse'
+data ListGuardiansResponse =
+  ListGuardiansResponse'
     { _lgrNextPageToken :: !(Maybe Text)
     , _lgrGuardians     :: !(Maybe [Guardian])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2176,11 +2396,9 @@
 listGuardiansResponse
     :: ListGuardiansResponse
 listGuardiansResponse =
-    ListGuardiansResponse'
-    { _lgrNextPageToken = Nothing
-    , _lgrGuardians = Nothing
-    }
+  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)
@@ -2221,12 +2439,15 @@
 -- are google.type.TimeOfDay and \`google.protobuf.Timestamp\`.
 --
 -- /See:/ 'date' smart constructor.
-data Date = Date'
+data Date =
+  Date'
     { _dDay   :: !(Maybe (Textual Int32))
     , _dYear  :: !(Maybe (Textual Int32))
     , _dMonth :: !(Maybe (Textual Int32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2238,13 +2459,9 @@
 -- * 'dMonth'
 date
     :: Date
-date =
-    Date'
-    { _dDay = Nothing
-    , _dYear = Nothing
-    , _dMonth = Nothing
-    }
+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.
@@ -2284,13 +2501,16 @@
 -- | YouTube video item.
 --
 -- /See:/ 'youTubeVideo' smart constructor.
-data YouTubeVideo = YouTubeVideo'
+data YouTubeVideo =
+  YouTubeVideo'
     { _ytvThumbnailURL  :: !(Maybe Text)
     , _ytvId            :: !(Maybe Text)
     , _ytvTitle         :: !(Maybe Text)
     , _ytvAlternateLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2305,13 +2525,14 @@
 youTubeVideo
     :: 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
@@ -2352,45 +2573,47 @@
 -- | 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)
+data Teacher =
+  Teacher'
+    { _teaCourseId :: !(Maybe Text)
+    , _teaProFile  :: !(Maybe UserProFile)
+    , _teaUserId   :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Teacher' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'tCourseId'
+-- * 'teaCourseId'
 --
--- * 'tProFile'
+-- * 'teaProFile'
 --
--- * 'tUserId'
+-- * 'teaUserId'
 teacher
     :: Teacher
 teacher =
-    Teacher'
-    { _tCourseId = Nothing
-    , _tProFile = Nothing
-    , _tUserId = Nothing
-    }
+  Teacher' {_teaCourseId = Nothing, _teaProFile = Nothing, _teaUserId = Nothing}
 
+
 -- | Identifier of the course. Read-only.
-tCourseId :: Lens' Teacher (Maybe Text)
-tCourseId
-  = lens _tCourseId (\ s a -> s{_tCourseId = a})
+teaCourseId :: Lens' Teacher (Maybe Text)
+teaCourseId
+  = lens _teaCourseId (\ s a -> s{_teaCourseId = a})
 
 -- | Global user information for the teacher. Read-only.
-tProFile :: Lens' Teacher (Maybe UserProFile)
-tProFile = lens _tProFile (\ s a -> s{_tProFile = a})
+teaProFile :: Lens' Teacher (Maybe UserProFile)
+teaProFile
+  = lens _teaProFile (\ s a -> s{_teaProFile = a})
 
 -- | Identifier of the user. When specified as a parameter of a request, this
 -- identifier can be one of the following: * the numeric identifier for the
 -- user * the email address of the user * the string literal \`\"me\"\`,
 -- indicating the requesting user
-tUserId :: Lens' Teacher (Maybe Text)
-tUserId = lens _tUserId (\ s a -> s{_tUserId = a})
+teaUserId :: Lens' Teacher (Maybe Text)
+teaUserId
+  = lens _teaUserId (\ s a -> s{_teaUserId = a})
 
 instance FromJSON Teacher where
         parseJSON
@@ -2404,20 +2627,23 @@
         toJSON Teacher'{..}
           = object
               (catMaybes
-                 [("courseId" .=) <$> _tCourseId,
-                  ("profile" .=) <$> _tProFile,
-                  ("userId" .=) <$> _tUserId])
+                 [("courseId" .=) <$> _teaCourseId,
+                  ("profile" .=) <$> _teaProFile,
+                  ("userId" .=) <$> _teaUserId])
 
 -- | A set of materials that appears on the \"About\" page of the course.
 -- These materials might include a syllabus, schedule, or other background
 -- information relating to the course as a whole.
 --
 -- /See:/ 'courseMaterialSet' smart constructor.
-data CourseMaterialSet = CourseMaterialSet'
+data CourseMaterialSet =
+  CourseMaterialSet'
     { _cmsMaterials :: !(Maybe [CourseMaterial])
     , _cmsTitle     :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2428,11 +2654,9 @@
 courseMaterialSet
     :: CourseMaterialSet
 courseMaterialSet =
-    CourseMaterialSet'
-    { _cmsMaterials = Nothing
-    , _cmsTitle = Nothing
-    }
+  CourseMaterialSet' {_cmsMaterials = Nothing, _cmsTitle = Nothing}
 
+
 -- | Materials attached to this set.
 cmsMaterials :: Lens' CourseMaterialSet [CourseMaterial]
 cmsMaterials
@@ -2461,12 +2685,15 @@
 -- | Details of the user\'s name.
 --
 -- /See:/ 'name' smart constructor.
-data Name = Name'
+data Name =
+  Name'
     { _nGivenName  :: !(Maybe Text)
     , _nFullName   :: !(Maybe Text)
     , _nFamilyName :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2479,12 +2706,9 @@
 name
     :: Name
 name =
-    Name'
-    { _nGivenName = Nothing
-    , _nFullName = Nothing
-    , _nFamilyName = Nothing
-    }
+  Name' {_nGivenName = Nothing, _nFullName = Nothing, _nFamilyName = Nothing}
 
+
 -- | The user\'s first name. Read-only.
 nGivenName :: Lens' Name (Maybe Text)
 nGivenName
@@ -2520,11 +2744,14 @@
 -- | Response when listing courses.
 --
 -- /See:/ 'listCoursesResponse' smart constructor.
-data ListCoursesResponse = ListCoursesResponse'
+data ListCoursesResponse =
+  ListCoursesResponse'
     { _lcrNextPageToken :: !(Maybe Text)
     , _lcrCourses       :: !(Maybe [Course])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2535,11 +2762,9 @@
 listCoursesResponse
     :: ListCoursesResponse
 listCoursesResponse =
-    ListCoursesResponse'
-    { _lcrNextPageToken = Nothing
-    , _lcrCourses = Nothing
-    }
+  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)
@@ -2573,15 +2798,17 @@
 --
 -- /See:/ 'turnInStudentSubmissionRequest' smart constructor.
 data TurnInStudentSubmissionRequest =
-    TurnInStudentSubmissionRequest'
-    deriving (Eq,Show,Data,Typeable,Generic)
+  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
@@ -2594,15 +2821,18 @@
 -- | Global information for a user.
 --
 -- /See:/ 'userProFile' smart constructor.
-data UserProFile = UserProFile'
+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)
+    }
+  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:
@@ -2621,7 +2851,7 @@
 userProFile
     :: UserProFile
 userProFile =
-    UserProFile'
+  UserProFile'
     { _upfPhotoURL = Nothing
     , _upfVerifiedTeacher = Nothing
     , _upfName = Nothing
@@ -2630,6 +2860,7 @@
     , _upfPermissions = Nothing
     }
 
+
 -- | URL of user\'s profile photo. Read-only.
 upfPhotoURL :: Lens' UserProFile (Maybe Text)
 upfPhotoURL
@@ -2691,12 +2922,15 @@
 -- | Representation of a Google Drive folder.
 --
 -- /See:/ 'driveFolder' smart constructor.
-data DriveFolder = DriveFolder'
+data DriveFolder =
+  DriveFolder'
     { _dId            :: !(Maybe Text)
     , _dTitle         :: !(Maybe Text)
     , _dAlternateLink :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2709,12 +2943,9 @@
 driveFolder
     :: DriveFolder
 driveFolder =
-    DriveFolder'
-    { _dId = Nothing
-    , _dTitle = Nothing
-    , _dAlternateLink = Nothing
-    }
+  DriveFolder' {_dId = Nothing, _dTitle = Nothing, _dAlternateLink = Nothing}
 
+
 -- | Drive API resource ID.
 dId :: Lens' DriveFolder (Maybe Text)
 dId = lens _dId (\ s a -> s{_dId = a})
@@ -2748,11 +2979,14 @@
 -- histories.
 --
 -- /See:/ 'submissionHistory' smart constructor.
-data SubmissionHistory = SubmissionHistory'
+data SubmissionHistory =
+  SubmissionHistory'
     { _shGradeHistory :: !(Maybe GradeHistory)
     , _shStateHistory :: !(Maybe StateHistory)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2763,11 +2997,9 @@
 submissionHistory
     :: SubmissionHistory
 submissionHistory =
-    SubmissionHistory'
-    { _shGradeHistory = Nothing
-    , _shStateHistory = Nothing
-    }
+  SubmissionHistory' {_shGradeHistory = Nothing, _shStateHistory = Nothing}
 
+
 -- | The grade history information of the submission, if present.
 shGradeHistory :: Lens' SubmissionHistory (Maybe GradeHistory)
 shGradeHistory
@@ -2797,12 +3029,15 @@
 -- | The history of each state this submission has been in.
 --
 -- /See:/ 'stateHistory' smart constructor.
-data StateHistory = StateHistory'
+data StateHistory =
+  StateHistory'
     { _shState          :: !(Maybe StateHistoryState)
     , _shActorUserId    :: !(Maybe Text)
     , _shStateTimestamp :: !(Maybe DateTime')
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2815,12 +3050,10 @@
 stateHistory
     :: StateHistory
 stateHistory =
-    StateHistory'
-    { _shState = Nothing
-    , _shActorUserId = Nothing
-    , _shStateTimestamp = Nothing
-    }
+  StateHistory'
+    {_shState = Nothing, _shActorUserId = Nothing, _shStateTimestamp = Nothing}
 
+
 -- | The workflow pipeline stage.
 shState :: Lens' StateHistory (Maybe StateHistoryState)
 shState = lens _shState (\ s a -> s{_shState = a})
@@ -2857,10 +3090,13 @@
 -- | Additional details for multiple-choice questions.
 --
 -- /See:/ 'multipleChoiceQuestion' smart constructor.
-newtype MultipleChoiceQuestion = MultipleChoiceQuestion'
+newtype MultipleChoiceQuestion =
+  MultipleChoiceQuestion'
     { _mcqChoices :: Maybe [Text]
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2868,11 +3104,9 @@
 -- * 'mcqChoices'
 multipleChoiceQuestion
     :: MultipleChoiceQuestion
-multipleChoiceQuestion =
-    MultipleChoiceQuestion'
-    { _mcqChoices = Nothing
-    }
+multipleChoiceQuestion = MultipleChoiceQuestion' {_mcqChoices = Nothing}
 
+
 -- | Possible choices.
 mcqChoices :: Lens' MultipleChoiceQuestion [Text]
 mcqChoices
@@ -2894,7 +3128,8 @@
 -- | A Course in Classroom.
 --
 -- /See:/ 'course' smart constructor.
-data Course = Course'
+data Course =
+  Course'
     { _couCreationTime       :: !(Maybe DateTime')
     , _couRoom               :: !(Maybe Text)
     , _couCourseMaterialSets :: !(Maybe [CourseMaterialSet])
@@ -2913,8 +3148,10 @@
     , _couDescription        :: !(Maybe Text)
     , _couDescriptionHeading :: !(Maybe Text)
     , _couSection            :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -2957,7 +3194,7 @@
 course
     :: Course
 course =
-    Course'
+  Course'
     { _couCreationTime = Nothing
     , _couRoom = Nothing
     , _couCourseMaterialSets = Nothing
@@ -2978,6 +3215,7 @@
     , _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)
@@ -3166,13 +3404,16 @@
 -- \`google.protobuf.Timestamp\`.
 --
 -- /See:/ 'timeOfDay' smart constructor.
-data TimeOfDay' = TimeOfDay''
+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)
+    }
+  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:
@@ -3187,13 +3428,14 @@
 timeOfDay
     :: 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
@@ -3242,11 +3484,14 @@
 -- | Response when listing guardian invitations.
 --
 -- /See:/ 'listGuardianInvitationsResponse' smart constructor.
-data ListGuardianInvitationsResponse = ListGuardianInvitationsResponse'
+data ListGuardianInvitationsResponse =
+  ListGuardianInvitationsResponse'
     { _lgirNextPageToken       :: !(Maybe Text)
     , _lgirGuardianInvitations :: !(Maybe [GuardianInvitation])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3257,11 +3502,10 @@
 listGuardianInvitationsResponse
     :: ListGuardianInvitationsResponse
 listGuardianInvitationsResponse =
-    ListGuardianInvitationsResponse'
-    { _lgirNextPageToken = Nothing
-    , _lgirGuardianInvitations = Nothing
-    }
+  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)
@@ -3297,10 +3541,13 @@
 -- | Additional details for assignments.
 --
 -- /See:/ 'assignment' smart constructor.
-newtype Assignment = Assignment'
+newtype Assignment =
+  Assignment'
     { _aStudentWorkFolder :: Maybe DriveFolder
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3308,11 +3555,9 @@
 -- * 'aStudentWorkFolder'
 assignment
     :: Assignment
-assignment =
-    Assignment'
-    { _aStudentWorkFolder = Nothing
-    }
+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)
@@ -3334,11 +3579,14 @@
 -- | Response when listing students.
 --
 -- /See:/ 'listStudentsResponse' smart constructor.
-data ListStudentsResponse = ListStudentsResponse'
+data ListStudentsResponse =
+  ListStudentsResponse'
     { _lsrNextPageToken :: !(Maybe Text)
     , _lsrStudents      :: !(Maybe [Student])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3349,11 +3597,9 @@
 listStudentsResponse
     :: ListStudentsResponse
 listStudentsResponse =
-    ListStudentsResponse'
-    { _lsrNextPageToken = Nothing
-    , _lsrStudents = Nothing
-    }
+  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)
@@ -3386,11 +3632,14 @@
 -- | Drive file that is used as material for course work.
 --
 -- /See:/ 'sharedDriveFile' smart constructor.
-data SharedDriveFile = SharedDriveFile'
+data SharedDriveFile =
+  SharedDriveFile'
     { _sdfDriveFile :: !(Maybe DriveFile)
     , _sdfShareMode :: !(Maybe SharedDriveFileShareMode)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3401,11 +3650,9 @@
 sharedDriveFile
     :: SharedDriveFile
 sharedDriveFile =
-    SharedDriveFile'
-    { _sdfDriveFile = Nothing
-    , _sdfShareMode = Nothing
-    }
+  SharedDriveFile' {_sdfDriveFile = Nothing, _sdfShareMode = Nothing}
 
+
 -- | Drive file details.
 sdfDriveFile :: Lens' SharedDriveFile (Maybe DriveFile)
 sdfDriveFile
@@ -3444,10 +3691,13 @@
 -- \`ALREADY_EXISTS\` if a previous one has succeeded.
 --
 -- /See:/ 'courseAlias' smart constructor.
-newtype CourseAlias = CourseAlias'
+newtype CourseAlias =
+  CourseAlias'
     { _caAlias :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3455,11 +3705,9 @@
 -- * 'caAlias'
 courseAlias
     :: CourseAlias
-courseAlias =
-    CourseAlias'
-    { _caAlias = Nothing
-    }
+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:
@@ -3480,10 +3728,13 @@
 -- \`COURSE_ROSTER_CHANGES\`.
 --
 -- /See:/ 'courseRosterChangesInfo' smart constructor.
-newtype CourseRosterChangesInfo = CourseRosterChangesInfo'
+newtype CourseRosterChangesInfo =
+  CourseRosterChangesInfo'
     { _crciCourseId :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3491,11 +3742,9 @@
 -- * 'crciCourseId'
 courseRosterChangesInfo
     :: CourseRosterChangesInfo
-courseRosterChangesInfo =
-    CourseRosterChangesInfo'
-    { _crciCourseId = Nothing
-    }
+courseRosterChangesInfo = CourseRosterChangesInfo' {_crciCourseId = Nothing}
 
+
 -- | The \`course_id\` of the course to subscribe to roster changes for.
 crciCourseId :: Lens' CourseRosterChangesInfo (Maybe Text)
 crciCourseId
@@ -3517,11 +3766,14 @@
 -- \`INDIVIDUAL_STUDENTS\`.
 --
 -- /See:/ 'modifyIndividualStudentsOptions' smart constructor.
-data ModifyIndividualStudentsOptions = ModifyIndividualStudentsOptions'
+data ModifyIndividualStudentsOptions =
+  ModifyIndividualStudentsOptions'
     { _misoAddStudentIds    :: !(Maybe [Text])
     , _misoRemoveStudentIds :: !(Maybe [Text])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3532,11 +3784,10 @@
 modifyIndividualStudentsOptions
     :: ModifyIndividualStudentsOptions
 modifyIndividualStudentsOptions =
-    ModifyIndividualStudentsOptions'
-    { _misoAddStudentIds = Nothing
-    , _misoRemoveStudentIds = Nothing
-    }
+  ModifyIndividualStudentsOptions'
+    {_misoAddStudentIds = Nothing, _misoRemoveStudentIds = Nothing}
 
+
 -- | Ids of students to be added as having access to this
 -- coursework\/announcement.
 misoAddStudentIds :: Lens' ModifyIndividualStudentsOptions [Text]
@@ -3577,10 +3828,13 @@
 -- \`projects.topics.publish\` permission.
 --
 -- /See:/ 'cloudPubsubTopic' smart constructor.
-newtype CloudPubsubTopic = CloudPubsubTopic'
+newtype CloudPubsubTopic =
+  CloudPubsubTopic'
     { _cptTopicName :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3588,11 +3842,9 @@
 -- * 'cptTopicName'
 cloudPubsubTopic
     :: CloudPubsubTopic
-cloudPubsubTopic =
-    CloudPubsubTopic'
-    { _cptTopicName = Nothing
-    }
+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)
@@ -3612,13 +3864,16 @@
 -- | Google Forms item.
 --
 -- /See:/ 'form' smart constructor.
-data Form = Form'
+data Form =
+  Form'
     { _fThumbnailURL :: !(Maybe Text)
     , _fFormURL      :: !(Maybe Text)
     , _fTitle        :: !(Maybe Text)
     , _fResponseURL  :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3633,13 +3888,14 @@
 form
     :: 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
@@ -3682,37 +3938,38 @@
 -- | Response when listing teachers.
 --
 -- /See:/ 'listTeachersResponse' smart constructor.
-data ListTeachersResponse = ListTeachersResponse'
-    { _ltrNextPageToken :: !(Maybe Text)
-    , _ltrTeachers      :: !(Maybe [Teacher])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+data ListTeachersResponse =
+  ListTeachersResponse'
+    { _lNextPageToken :: !(Maybe Text)
+    , _lTeachers      :: !(Maybe [Teacher])
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListTeachersResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ltrNextPageToken'
+-- * 'lNextPageToken'
 --
--- * 'ltrTeachers'
+-- * 'lTeachers'
 listTeachersResponse
     :: ListTeachersResponse
 listTeachersResponse =
-    ListTeachersResponse'
-    { _ltrNextPageToken = Nothing
-    , _ltrTeachers = Nothing
-    }
+  ListTeachersResponse' {_lNextPageToken = Nothing, _lTeachers = 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})
+lNextPageToken :: Lens' ListTeachersResponse (Maybe Text)
+lNextPageToken
+  = lens _lNextPageToken
+      (\ s a -> s{_lNextPageToken = a})
 
 -- | Teachers who match the list request.
-ltrTeachers :: Lens' ListTeachersResponse [Teacher]
-ltrTeachers
-  = lens _ltrTeachers (\ s a -> s{_ltrTeachers = a}) .
+lTeachers :: Lens' ListTeachersResponse [Teacher]
+lTeachers
+  = lens _lTeachers (\ s a -> s{_lTeachers = a}) .
       _Default
       . _Coerce
 
@@ -3728,19 +3985,22 @@
         toJSON ListTeachersResponse'{..}
           = object
               (catMaybes
-                 [("nextPageToken" .=) <$> _ltrNextPageToken,
-                  ("teachers" .=) <$> _ltrTeachers])
+                 [("nextPageToken" .=) <$> _lNextPageToken,
+                  ("teachers" .=) <$> _lTeachers])
 
 -- | Student in a course.
 --
 -- /See:/ 'student' smart constructor.
-data Student = Student'
+data Student =
+  Student'
     { _sCourseId          :: !(Maybe Text)
     , _sProFile           :: !(Maybe UserProFile)
     , _sStudentWorkFolder :: !(Maybe DriveFolder)
     , _sUserId            :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3755,13 +4015,14 @@
 student
     :: Student
 student =
-    Student'
+  Student'
     { _sCourseId = Nothing
     , _sProFile = Nothing
     , _sStudentWorkFolder = Nothing
     , _sUserId = Nothing
     }
 
+
 -- | Identifier of the course. Read-only.
 sCourseId :: Lens' Student (Maybe Text)
 sCourseId
@@ -3808,13 +4069,16 @@
 -- the provided destination.
 --
 -- /See:/ 'registration' smart constructor.
-data Registration = Registration'
+data Registration =
+  Registration'
     { _rRegistrationId   :: !(Maybe Text)
     , _rExpiryTime       :: !(Maybe DateTime')
     , _rFeed             :: !(Maybe Feed)
     , _rCloudPubsubTopic :: !(Maybe CloudPubsubTopic)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -3829,12 +4093,13 @@
 registration
     :: Registration
 registration =
-    Registration'
+  Registration'
     { _rRegistrationId = Nothing
     , _rExpiryTime = Nothing
     , _rFeed = Nothing
     , _rCloudPubsubTopic = Nothing
     }
+
 
 -- | A server-generated unique identifier for this \`Registration\`.
 -- Read-only.
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Aliases/Create.hs b/gen/Network/Google/Resource/Classroom/Courses/Aliases/Create.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Aliases/Create.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Aliases/Create.hs
@@ -76,7 +76,8 @@
 -- attempts to access a domain-scoped alias).
 --
 -- /See:/ 'coursesAliasesCreate' smart constructor.
-data CoursesAliasesCreate = CoursesAliasesCreate'
+data CoursesAliasesCreate =
+  CoursesAliasesCreate'
     { _cacXgafv          :: !(Maybe Xgafv)
     , _cacUploadProtocol :: !(Maybe Text)
     , _cacCourseId       :: !Text
@@ -84,8 +85,10 @@
     , _cacUploadType     :: !(Maybe Text)
     , _cacPayload        :: !CourseAlias
     , _cacCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesAliasesCreate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -108,7 +111,7 @@
     -> CourseAlias -- ^ 'cacPayload'
     -> CoursesAliasesCreate
 coursesAliasesCreate pCacCourseId_ pCacPayload_ =
-    CoursesAliasesCreate'
+  CoursesAliasesCreate'
     { _cacXgafv = Nothing
     , _cacUploadProtocol = Nothing
     , _cacCourseId = pCacCourseId_
@@ -117,6 +120,7 @@
     , _cacPayload = pCacPayload_
     , _cacCallback = Nothing
     }
+
 
 -- | V1 error format.
 cacXgafv :: Lens' CoursesAliasesCreate (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Aliases/Delete.hs b/gen/Network/Google/Resource/Classroom/Courses/Aliases/Delete.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Aliases/Delete.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Aliases/Delete.hs
@@ -73,7 +73,8 @@
 -- not in a domain attempts to delete a domain-scoped alias).
 --
 -- /See:/ 'coursesAliasesDelete' smart constructor.
-data CoursesAliasesDelete = CoursesAliasesDelete'
+data CoursesAliasesDelete =
+  CoursesAliasesDelete'
     { _cadXgafv          :: !(Maybe Xgafv)
     , _cadUploadProtocol :: !(Maybe Text)
     , _cadCourseId       :: !Text
@@ -81,8 +82,10 @@
     , _cadUploadType     :: !(Maybe Text)
     , _cadAlias          :: !Text
     , _cadCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesAliasesDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -105,7 +108,7 @@
     -> Text -- ^ 'cadAlias'
     -> CoursesAliasesDelete
 coursesAliasesDelete pCadCourseId_ pCadAlias_ =
-    CoursesAliasesDelete'
+  CoursesAliasesDelete'
     { _cadXgafv = Nothing
     , _cadUploadProtocol = Nothing
     , _cadCourseId = pCadCourseId_
@@ -114,6 +117,7 @@
     , _cadAlias = pCadAlias_
     , _cadCallback = Nothing
     }
+
 
 -- | V1 error format.
 cadXgafv :: Lens' CoursesAliasesDelete (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Aliases/List.hs b/gen/Network/Google/Resource/Classroom/Courses/Aliases/List.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Aliases/List.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Aliases/List.hs
@@ -72,7 +72,8 @@
 -- if the course does not exist.
 --
 -- /See:/ 'coursesAliasesList' smart constructor.
-data CoursesAliasesList = CoursesAliasesList'
+data CoursesAliasesList =
+  CoursesAliasesList'
     { _calaXgafv          :: !(Maybe Xgafv)
     , _calaUploadProtocol :: !(Maybe Text)
     , _calaCourseId       :: !Text
@@ -81,8 +82,10 @@
     , _calaPageToken      :: !(Maybe Text)
     , _calaPageSize       :: !(Maybe (Textual Int32))
     , _calaCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -106,7 +109,7 @@
     :: Text -- ^ 'calaCourseId'
     -> CoursesAliasesList
 coursesAliasesList pCalaCourseId_ =
-    CoursesAliasesList'
+  CoursesAliasesList'
     { _calaXgafv = Nothing
     , _calaUploadProtocol = Nothing
     , _calaCourseId = pCalaCourseId_
@@ -116,6 +119,7 @@
     , _calaPageSize = Nothing
     , _calaCallback = Nothing
     }
+
 
 -- | V1 error format.
 calaXgafv :: Lens' CoursesAliasesList (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Announcements/Create.hs b/gen/Network/Google/Resource/Classroom/Courses/Announcements/Create.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Announcements/Create.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Announcements/Create.hs
@@ -76,7 +76,8 @@
 -- following request error: * AttachmentNotVisible
 --
 -- /See:/ 'coursesAnnouncementsCreate' smart constructor.
-data CoursesAnnouncementsCreate = CoursesAnnouncementsCreate'
+data CoursesAnnouncementsCreate =
+  CoursesAnnouncementsCreate'
     { _couXgafv          :: !(Maybe Xgafv)
     , _couUploadProtocol :: !(Maybe Text)
     , _couCourseId       :: !Text
@@ -84,8 +85,10 @@
     , _couUploadType     :: !(Maybe Text)
     , _couPayload        :: !Announcement
     , _couCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -108,7 +111,7 @@
     -> Announcement -- ^ 'couPayload'
     -> CoursesAnnouncementsCreate
 coursesAnnouncementsCreate pCouCourseId_ pCouPayload_ =
-    CoursesAnnouncementsCreate'
+  CoursesAnnouncementsCreate'
     { _couXgafv = Nothing
     , _couUploadProtocol = Nothing
     , _couCourseId = pCouCourseId_
@@ -117,6 +120,7 @@
     , _couPayload = pCouPayload_
     , _couCallback = Nothing
     }
+
 
 -- | V1 error format.
 couXgafv :: Lens' CoursesAnnouncementsCreate (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Announcements/Delete.hs b/gen/Network/Google/Resource/Classroom/Courses/Announcements/Delete.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Announcements/Delete.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Announcements/Delete.hs
@@ -79,7 +79,8 @@
 -- deleted. * \`NOT_FOUND\` if no course exists with the requested ID.
 --
 -- /See:/ 'coursesAnnouncementsDelete' smart constructor.
-data CoursesAnnouncementsDelete = CoursesAnnouncementsDelete'
+data CoursesAnnouncementsDelete =
+  CoursesAnnouncementsDelete'
     { _cXgafv          :: !(Maybe Xgafv)
     , _cUploadProtocol :: !(Maybe Text)
     , _cCourseId       :: !Text
@@ -87,8 +88,10 @@
     , _cUploadType     :: !(Maybe Text)
     , _cId             :: !Text
     , _cCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -111,7 +114,7 @@
     -> Text -- ^ 'cId'
     -> CoursesAnnouncementsDelete
 coursesAnnouncementsDelete pCCourseId_ pCId_ =
-    CoursesAnnouncementsDelete'
+  CoursesAnnouncementsDelete'
     { _cXgafv = Nothing
     , _cUploadProtocol = Nothing
     , _cCourseId = pCCourseId_
@@ -120,6 +123,7 @@
     , _cId = pCId_
     , _cCallback = Nothing
     }
+
 
 -- | V1 error format.
 cXgafv :: Lens' CoursesAnnouncementsDelete (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Announcements/Get.hs b/gen/Network/Google/Resource/Classroom/Courses/Announcements/Get.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Announcements/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Announcements/Get.hs
@@ -71,7 +71,8 @@
 -- requested course or announcement does not exist.
 --
 -- /See:/ 'coursesAnnouncementsGet' smart constructor.
-data CoursesAnnouncementsGet = CoursesAnnouncementsGet'
+data CoursesAnnouncementsGet =
+  CoursesAnnouncementsGet'
     { _cagXgafv          :: !(Maybe Xgafv)
     , _cagUploadProtocol :: !(Maybe Text)
     , _cagCourseId       :: !Text
@@ -79,8 +80,10 @@
     , _cagUploadType     :: !(Maybe Text)
     , _cagId             :: !Text
     , _cagCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -103,7 +106,7 @@
     -> Text -- ^ 'cagId'
     -> CoursesAnnouncementsGet
 coursesAnnouncementsGet pCagCourseId_ pCagId_ =
-    CoursesAnnouncementsGet'
+  CoursesAnnouncementsGet'
     { _cagXgafv = Nothing
     , _cagUploadProtocol = Nothing
     , _cagCourseId = pCagCourseId_
@@ -112,6 +115,7 @@
     , _cagId = pCagId_
     , _cagCallback = Nothing
     }
+
 
 -- | V1 error format.
 cagXgafv :: Lens' CoursesAnnouncementsGet (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Announcements/List.hs b/gen/Network/Google/Resource/Classroom/Courses/Announcements/List.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Announcements/List.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Announcements/List.hs
@@ -82,7 +82,8 @@
 -- \`NOT_FOUND\` if the requested course does not exist.
 --
 -- /See:/ 'coursesAnnouncementsList' smart constructor.
-data CoursesAnnouncementsList = CoursesAnnouncementsList'
+data CoursesAnnouncementsList =
+  CoursesAnnouncementsList'
     { _calXgafv              :: !(Maybe Xgafv)
     , _calUploadProtocol     :: !(Maybe Text)
     , _calOrderBy            :: !(Maybe Text)
@@ -93,8 +94,10 @@
     , _calPageToken          :: !(Maybe Text)
     , _calPageSize           :: !(Maybe (Textual Int32))
     , _calCallback           :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -122,7 +125,7 @@
     :: Text -- ^ 'calCourseId'
     -> CoursesAnnouncementsList
 coursesAnnouncementsList pCalCourseId_ =
-    CoursesAnnouncementsList'
+  CoursesAnnouncementsList'
     { _calXgafv = Nothing
     , _calUploadProtocol = Nothing
     , _calOrderBy = Nothing
@@ -134,6 +137,7 @@
     , _calPageSize = Nothing
     , _calCallback = Nothing
     }
+
 
 -- | V1 error format.
 calXgafv :: Lens' CoursesAnnouncementsList (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Announcements/ModifyAssignees.hs b/gen/Network/Google/Resource/Classroom/Courses/Announcements/ModifyAssignees.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Announcements/ModifyAssignees.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Announcements/ModifyAssignees.hs
@@ -78,7 +78,8 @@
 -- does not exist.
 --
 -- /See:/ 'coursesAnnouncementsModifyAssignees' smart constructor.
-data CoursesAnnouncementsModifyAssignees = CoursesAnnouncementsModifyAssignees'
+data CoursesAnnouncementsModifyAssignees =
+  CoursesAnnouncementsModifyAssignees'
     { _camaXgafv          :: !(Maybe Xgafv)
     , _camaUploadProtocol :: !(Maybe Text)
     , _camaCourseId       :: !Text
@@ -87,8 +88,10 @@
     , _camaPayload        :: !ModifyAnnouncementAssigneesRequest
     , _camaId             :: !Text
     , _camaCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -114,7 +117,7 @@
     -> Text -- ^ 'camaId'
     -> CoursesAnnouncementsModifyAssignees
 coursesAnnouncementsModifyAssignees pCamaCourseId_ pCamaPayload_ pCamaId_ =
-    CoursesAnnouncementsModifyAssignees'
+  CoursesAnnouncementsModifyAssignees'
     { _camaXgafv = Nothing
     , _camaUploadProtocol = Nothing
     , _camaCourseId = pCamaCourseId_
@@ -125,6 +128,7 @@
     , _camaCallback = Nothing
     }
 
+
 -- | V1 error format.
 camaXgafv :: Lens' CoursesAnnouncementsModifyAssignees (Maybe Xgafv)
 camaXgafv
@@ -169,7 +173,8 @@
   = lens _camaCallback (\ s a -> s{_camaCallback = a})
 
 instance GoogleRequest
-         CoursesAnnouncementsModifyAssignees where
+           CoursesAnnouncementsModifyAssignees
+         where
         type Rs CoursesAnnouncementsModifyAssignees =
              Announcement
         type Scopes CoursesAnnouncementsModifyAssignees =
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Announcements/Patch.hs b/gen/Network/Google/Resource/Classroom/Courses/Announcements/Patch.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Announcements/Patch.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Announcements/Patch.hs
@@ -80,7 +80,8 @@
 -- not exist
 --
 -- /See:/ 'coursesAnnouncementsPatch' smart constructor.
-data CoursesAnnouncementsPatch = CoursesAnnouncementsPatch'
+data CoursesAnnouncementsPatch =
+  CoursesAnnouncementsPatch'
     { _capXgafv          :: !(Maybe Xgafv)
     , _capUploadProtocol :: !(Maybe Text)
     , _capUpdateMask     :: !(Maybe GFieldMask)
@@ -90,8 +91,10 @@
     , _capPayload        :: !Announcement
     , _capId             :: !Text
     , _capCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -119,7 +122,7 @@
     -> Text -- ^ 'capId'
     -> CoursesAnnouncementsPatch
 coursesAnnouncementsPatch pCapCourseId_ pCapPayload_ pCapId_ =
-    CoursesAnnouncementsPatch'
+  CoursesAnnouncementsPatch'
     { _capXgafv = Nothing
     , _capUploadProtocol = Nothing
     , _capUpdateMask = Nothing
@@ -130,6 +133,7 @@
     , _capId = pCapId_
     , _capCallback = Nothing
     }
+
 
 -- | V1 error format.
 capXgafv :: Lens' CoursesAnnouncementsPatch (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Create.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Create.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Create.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Create.hs
@@ -87,7 +87,8 @@
 -- following request error: * AttachmentNotVisible
 --
 -- /See:/ 'coursesCourseWorkCreate' smart constructor.
-data CoursesCourseWorkCreate = CoursesCourseWorkCreate'
+data CoursesCourseWorkCreate =
+  CoursesCourseWorkCreate'
     { _ccwcXgafv          :: !(Maybe Xgafv)
     , _ccwcUploadProtocol :: !(Maybe Text)
     , _ccwcCourseId       :: !Text
@@ -95,8 +96,10 @@
     , _ccwcUploadType     :: !(Maybe Text)
     , _ccwcPayload        :: !CourseWork
     , _ccwcCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkCreate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -119,7 +122,7 @@
     -> CourseWork -- ^ 'ccwcPayload'
     -> CoursesCourseWorkCreate
 coursesCourseWorkCreate pCcwcCourseId_ pCcwcPayload_ =
-    CoursesCourseWorkCreate'
+  CoursesCourseWorkCreate'
     { _ccwcXgafv = Nothing
     , _ccwcUploadProtocol = Nothing
     , _ccwcCourseId = pCcwcCourseId_
@@ -128,6 +131,7 @@
     , _ccwcPayload = pCcwcPayload_
     , _ccwcCallback = Nothing
     }
+
 
 -- | V1 error format.
 ccwcXgafv :: Lens' CoursesCourseWorkCreate (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Delete.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Delete.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Delete.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Delete.hs
@@ -79,7 +79,8 @@
 -- deleted. * \`NOT_FOUND\` if no course exists with the requested ID.
 --
 -- /See:/ 'coursesCourseWorkDelete' smart constructor.
-data CoursesCourseWorkDelete = CoursesCourseWorkDelete'
+data CoursesCourseWorkDelete =
+  CoursesCourseWorkDelete'
     { _ccwdXgafv          :: !(Maybe Xgafv)
     , _ccwdUploadProtocol :: !(Maybe Text)
     , _ccwdCourseId       :: !Text
@@ -87,8 +88,10 @@
     , _ccwdUploadType     :: !(Maybe Text)
     , _ccwdId             :: !Text
     , _ccwdCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -111,7 +114,7 @@
     -> Text -- ^ 'ccwdId'
     -> CoursesCourseWorkDelete
 coursesCourseWorkDelete pCcwdCourseId_ pCcwdId_ =
-    CoursesCourseWorkDelete'
+  CoursesCourseWorkDelete'
     { _ccwdXgafv = Nothing
     , _ccwdUploadProtocol = Nothing
     , _ccwdCourseId = pCcwdCourseId_
@@ -120,6 +123,7 @@
     , _ccwdId = pCcwdId_
     , _ccwdCallback = Nothing
     }
+
 
 -- | V1 error format.
 ccwdXgafv :: Lens' CoursesCourseWorkDelete (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Get.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Get.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Get.hs
@@ -71,7 +71,8 @@
 -- requested course or course work does not exist.
 --
 -- /See:/ 'coursesCourseWorkGet' smart constructor.
-data CoursesCourseWorkGet = CoursesCourseWorkGet'
+data CoursesCourseWorkGet =
+  CoursesCourseWorkGet'
     { _ccwgXgafv          :: !(Maybe Xgafv)
     , _ccwgUploadProtocol :: !(Maybe Text)
     , _ccwgCourseId       :: !Text
@@ -79,8 +80,10 @@
     , _ccwgUploadType     :: !(Maybe Text)
     , _ccwgId             :: !Text
     , _ccwgCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -103,7 +106,7 @@
     -> Text -- ^ 'ccwgId'
     -> CoursesCourseWorkGet
 coursesCourseWorkGet pCcwgCourseId_ pCcwgId_ =
-    CoursesCourseWorkGet'
+  CoursesCourseWorkGet'
     { _ccwgXgafv = Nothing
     , _ccwgUploadProtocol = Nothing
     , _ccwgCourseId = pCcwgCourseId_
@@ -112,6 +115,7 @@
     , _ccwgId = pCcwgId_
     , _ccwgCallback = Nothing
     }
+
 
 -- | V1 error format.
 ccwgXgafv :: Lens' CoursesCourseWorkGet (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/List.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/List.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/List.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/List.hs
@@ -82,7 +82,8 @@
 -- \`NOT_FOUND\` if the requested course does not exist.
 --
 -- /See:/ 'coursesCourseWorkList' smart constructor.
-data CoursesCourseWorkList = CoursesCourseWorkList'
+data CoursesCourseWorkList =
+  CoursesCourseWorkList'
     { _ccwlXgafv            :: !(Maybe Xgafv)
     , _ccwlUploadProtocol   :: !(Maybe Text)
     , _ccwlOrderBy          :: !(Maybe Text)
@@ -93,8 +94,10 @@
     , _ccwlPageToken        :: !(Maybe Text)
     , _ccwlPageSize         :: !(Maybe (Textual Int32))
     , _ccwlCallback         :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -122,7 +125,7 @@
     :: Text -- ^ 'ccwlCourseId'
     -> CoursesCourseWorkList
 coursesCourseWorkList pCcwlCourseId_ =
-    CoursesCourseWorkList'
+  CoursesCourseWorkList'
     { _ccwlXgafv = Nothing
     , _ccwlUploadProtocol = Nothing
     , _ccwlOrderBy = Nothing
@@ -134,6 +137,7 @@
     , _ccwlPageSize = Nothing
     , _ccwlCallback = Nothing
     }
+
 
 -- | V1 error format.
 ccwlXgafv :: Lens' CoursesCourseWorkList (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/ModifyAssignees.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/ModifyAssignees.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/ModifyAssignees.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/ModifyAssignees.hs
@@ -78,7 +78,8 @@
 -- does not exist.
 --
 -- /See:/ 'coursesCourseWorkModifyAssignees' smart constructor.
-data CoursesCourseWorkModifyAssignees = CoursesCourseWorkModifyAssignees'
+data CoursesCourseWorkModifyAssignees =
+  CoursesCourseWorkModifyAssignees'
     { _ccwmaXgafv          :: !(Maybe Xgafv)
     , _ccwmaUploadProtocol :: !(Maybe Text)
     , _ccwmaCourseId       :: !Text
@@ -87,8 +88,10 @@
     , _ccwmaPayload        :: !ModifyCourseWorkAssigneesRequest
     , _ccwmaId             :: !Text
     , _ccwmaCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -114,7 +117,7 @@
     -> Text -- ^ 'ccwmaId'
     -> CoursesCourseWorkModifyAssignees
 coursesCourseWorkModifyAssignees pCcwmaCourseId_ pCcwmaPayload_ pCcwmaId_ =
-    CoursesCourseWorkModifyAssignees'
+  CoursesCourseWorkModifyAssignees'
     { _ccwmaXgafv = Nothing
     , _ccwmaUploadProtocol = Nothing
     , _ccwmaCourseId = pCcwmaCourseId_
@@ -125,6 +128,7 @@
     , _ccwmaCallback = Nothing
     }
 
+
 -- | V1 error format.
 ccwmaXgafv :: Lens' CoursesCourseWorkModifyAssignees (Maybe Xgafv)
 ccwmaXgafv
@@ -171,7 +175,8 @@
       (\ s a -> s{_ccwmaCallback = a})
 
 instance GoogleRequest
-         CoursesCourseWorkModifyAssignees where
+           CoursesCourseWorkModifyAssignees
+         where
         type Rs CoursesCourseWorkModifyAssignees = CourseWork
         type Scopes CoursesCourseWorkModifyAssignees =
              '["https://www.googleapis.com/auth/classroom.coursework.students"]
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Patch.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Patch.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Patch.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Patch.hs
@@ -92,7 +92,8 @@
 -- work, or student submission does not exist.
 --
 -- /See:/ 'coursesCourseWorkPatch' smart constructor.
-data CoursesCourseWorkPatch = CoursesCourseWorkPatch'
+data CoursesCourseWorkPatch =
+  CoursesCourseWorkPatch'
     { _ccwpXgafv          :: !(Maybe Xgafv)
     , _ccwpUploadProtocol :: !(Maybe Text)
     , _ccwpUpdateMask     :: !(Maybe GFieldMask)
@@ -102,8 +103,10 @@
     , _ccwpPayload        :: !CourseWork
     , _ccwpId             :: !Text
     , _ccwpCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -131,7 +134,7 @@
     -> Text -- ^ 'ccwpId'
     -> CoursesCourseWorkPatch
 coursesCourseWorkPatch pCcwpCourseId_ pCcwpPayload_ pCcwpId_ =
-    CoursesCourseWorkPatch'
+  CoursesCourseWorkPatch'
     { _ccwpXgafv = Nothing
     , _ccwpUploadProtocol = Nothing
     , _ccwpUpdateMask = Nothing
@@ -142,6 +145,7 @@
     , _ccwpId = pCcwpId_
     , _ccwpCallback = Nothing
     }
+
 
 -- | V1 error format.
 ccwpXgafv :: Lens' CoursesCourseWorkPatch (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Get.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Get.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Get.hs
@@ -75,7 +75,8 @@
 -- work, or student submission does not exist.
 --
 -- /See:/ 'coursesCourseWorkStudentSubmissionsGet' smart constructor.
-data CoursesCourseWorkStudentSubmissionsGet = CoursesCourseWorkStudentSubmissionsGet'
+data CoursesCourseWorkStudentSubmissionsGet =
+  CoursesCourseWorkStudentSubmissionsGet'
     { _ccwssgXgafv          :: !(Maybe Xgafv)
     , _ccwssgUploadProtocol :: !(Maybe Text)
     , _ccwssgCourseId       :: !Text
@@ -84,8 +85,10 @@
     , _ccwssgId             :: !Text
     , _ccwssgCallback       :: !(Maybe Text)
     , _ccwssgCourseWorkId   :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkStudentSubmissionsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -111,7 +114,7 @@
     -> Text -- ^ 'ccwssgCourseWorkId'
     -> CoursesCourseWorkStudentSubmissionsGet
 coursesCourseWorkStudentSubmissionsGet pCcwssgCourseId_ pCcwssgId_ pCcwssgCourseWorkId_ =
-    CoursesCourseWorkStudentSubmissionsGet'
+  CoursesCourseWorkStudentSubmissionsGet'
     { _ccwssgXgafv = Nothing
     , _ccwssgUploadProtocol = Nothing
     , _ccwssgCourseId = pCcwssgCourseId_
@@ -122,6 +125,7 @@
     , _ccwssgCourseWorkId = pCcwssgCourseWorkId_
     }
 
+
 -- | V1 error format.
 ccwssgXgafv :: Lens' CoursesCourseWorkStudentSubmissionsGet (Maybe Xgafv)
 ccwssgXgafv
@@ -169,7 +173,8 @@
       (\ s a -> s{_ccwssgCourseWorkId = a})
 
 instance GoogleRequest
-         CoursesCourseWorkStudentSubmissionsGet where
+           CoursesCourseWorkStudentSubmissionsGet
+         where
         type Rs CoursesCourseWorkStudentSubmissionsGet =
              StudentSubmission
         type Scopes CoursesCourseWorkStudentSubmissionsGet =
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/List.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/List.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/List.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/List.hs
@@ -95,7 +95,8 @@
 -- requested course does not exist.
 --
 -- /See:/ 'coursesCourseWorkStudentSubmissionsList' smart constructor.
-data CoursesCourseWorkStudentSubmissionsList = CoursesCourseWorkStudentSubmissionsList'
+data CoursesCourseWorkStudentSubmissionsList =
+  CoursesCourseWorkStudentSubmissionsList'
     { _ccwsslStates         :: !(Maybe [Text])
     , _ccwsslXgafv          :: !(Maybe Xgafv)
     , _ccwsslLate           :: !(Maybe Text)
@@ -108,8 +109,10 @@
     , _ccwsslPageSize       :: !(Maybe (Textual Int32))
     , _ccwsslCallback       :: !(Maybe Text)
     , _ccwsslCourseWorkId   :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkStudentSubmissionsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -142,7 +145,7 @@
     -> Text -- ^ 'ccwsslCourseWorkId'
     -> CoursesCourseWorkStudentSubmissionsList
 coursesCourseWorkStudentSubmissionsList pCcwsslCourseId_ pCcwsslCourseWorkId_ =
-    CoursesCourseWorkStudentSubmissionsList'
+  CoursesCourseWorkStudentSubmissionsList'
     { _ccwsslStates = Nothing
     , _ccwsslXgafv = Nothing
     , _ccwsslLate = Nothing
@@ -157,6 +160,7 @@
     , _ccwsslCourseWorkId = pCcwsslCourseWorkId_
     }
 
+
 -- | Requested submission states. If specified, returned student submissions
 -- match one of the specified submission states.
 ccwsslStates :: Lens' CoursesCourseWorkStudentSubmissionsList [Text]
@@ -243,7 +247,8 @@
       (\ s a -> s{_ccwsslCourseWorkId = a})
 
 instance GoogleRequest
-         CoursesCourseWorkStudentSubmissionsList where
+           CoursesCourseWorkStudentSubmissionsList
+         where
         type Rs CoursesCourseWorkStudentSubmissionsList =
              ListStudentSubmissionsResponse
         type Scopes CoursesCourseWorkStudentSubmissionsList =
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs
@@ -92,7 +92,8 @@
 -- student submission does not exist.
 --
 -- /See:/ 'coursesCourseWorkStudentSubmissionsModifyAttachments' smart constructor.
-data CoursesCourseWorkStudentSubmissionsModifyAttachments = CoursesCourseWorkStudentSubmissionsModifyAttachments'
+data CoursesCourseWorkStudentSubmissionsModifyAttachments =
+  CoursesCourseWorkStudentSubmissionsModifyAttachments'
     { _ccwssmaXgafv          :: !(Maybe Xgafv)
     , _ccwssmaUploadProtocol :: !(Maybe Text)
     , _ccwssmaCourseId       :: !Text
@@ -102,8 +103,10 @@
     , _ccwssmaId             :: !Text
     , _ccwssmaCallback       :: !(Maybe Text)
     , _ccwssmaCourseWorkId   :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkStudentSubmissionsModifyAttachments' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -132,7 +135,7 @@
     -> Text -- ^ 'ccwssmaCourseWorkId'
     -> CoursesCourseWorkStudentSubmissionsModifyAttachments
 coursesCourseWorkStudentSubmissionsModifyAttachments pCcwssmaCourseId_ pCcwssmaPayload_ pCcwssmaId_ pCcwssmaCourseWorkId_ =
-    CoursesCourseWorkStudentSubmissionsModifyAttachments'
+  CoursesCourseWorkStudentSubmissionsModifyAttachments'
     { _ccwssmaXgafv = Nothing
     , _ccwssmaUploadProtocol = Nothing
     , _ccwssmaCourseId = pCcwssmaCourseId_
@@ -144,6 +147,7 @@
     , _ccwssmaCourseWorkId = pCcwssmaCourseWorkId_
     }
 
+
 -- | V1 error format.
 ccwssmaXgafv :: Lens' CoursesCourseWorkStudentSubmissionsModifyAttachments (Maybe Xgafv)
 ccwssmaXgafv
@@ -198,7 +202,7 @@
       (\ s a -> s{_ccwssmaCourseWorkId = a})
 
 instance GoogleRequest
-         CoursesCourseWorkStudentSubmissionsModifyAttachments
+           CoursesCourseWorkStudentSubmissionsModifyAttachments
          where
         type Rs
                CoursesCourseWorkStudentSubmissionsModifyAttachments
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Patch.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Patch.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Patch.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Patch.hs
@@ -94,7 +94,8 @@
 -- student submission does not exist.
 --
 -- /See:/ 'coursesCourseWorkStudentSubmissionsPatch' smart constructor.
-data CoursesCourseWorkStudentSubmissionsPatch = CoursesCourseWorkStudentSubmissionsPatch'
+data CoursesCourseWorkStudentSubmissionsPatch =
+  CoursesCourseWorkStudentSubmissionsPatch'
     { _ccwsspXgafv          :: !(Maybe Xgafv)
     , _ccwsspUploadProtocol :: !(Maybe Text)
     , _ccwsspUpdateMask     :: !(Maybe GFieldMask)
@@ -105,8 +106,10 @@
     , _ccwsspId             :: !Text
     , _ccwsspCallback       :: !(Maybe Text)
     , _ccwsspCourseWorkId   :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkStudentSubmissionsPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -137,7 +140,7 @@
     -> Text -- ^ 'ccwsspCourseWorkId'
     -> CoursesCourseWorkStudentSubmissionsPatch
 coursesCourseWorkStudentSubmissionsPatch pCcwsspCourseId_ pCcwsspPayload_ pCcwsspId_ pCcwsspCourseWorkId_ =
-    CoursesCourseWorkStudentSubmissionsPatch'
+  CoursesCourseWorkStudentSubmissionsPatch'
     { _ccwsspXgafv = Nothing
     , _ccwsspUploadProtocol = Nothing
     , _ccwsspUpdateMask = Nothing
@@ -150,6 +153,7 @@
     , _ccwsspCourseWorkId = pCcwsspCourseWorkId_
     }
 
+
 -- | V1 error format.
 ccwsspXgafv :: Lens' CoursesCourseWorkStudentSubmissionsPatch (Maybe Xgafv)
 ccwsspXgafv
@@ -212,7 +216,8 @@
       (\ s a -> s{_ccwsspCourseWorkId = a})
 
 instance GoogleRequest
-         CoursesCourseWorkStudentSubmissionsPatch where
+           CoursesCourseWorkStudentSubmissionsPatch
+         where
         type Rs CoursesCourseWorkStudentSubmissionsPatch =
              StudentSubmission
         type Scopes CoursesCourseWorkStudentSubmissionsPatch
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs
@@ -98,7 +98,8 @@
 -- exist.
 --
 -- /See:/ 'coursesCourseWorkStudentSubmissionsReclaim' smart constructor.
-data CoursesCourseWorkStudentSubmissionsReclaim = CoursesCourseWorkStudentSubmissionsReclaim'
+data CoursesCourseWorkStudentSubmissionsReclaim =
+  CoursesCourseWorkStudentSubmissionsReclaim'
     { _ccwssrcXgafv          :: !(Maybe Xgafv)
     , _ccwssrcUploadProtocol :: !(Maybe Text)
     , _ccwssrcCourseId       :: !Text
@@ -108,8 +109,10 @@
     , _ccwssrcId             :: !Text
     , _ccwssrcCallback       :: !(Maybe Text)
     , _ccwssrcCourseWorkId   :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  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:
@@ -138,7 +141,7 @@
     -> Text -- ^ 'ccwssrcCourseWorkId'
     -> CoursesCourseWorkStudentSubmissionsReclaim
 coursesCourseWorkStudentSubmissionsReclaim pCcwssrcCourseId_ pCcwssrcPayload_ pCcwssrcId_ pCcwssrcCourseWorkId_ =
-    CoursesCourseWorkStudentSubmissionsReclaim'
+  CoursesCourseWorkStudentSubmissionsReclaim'
     { _ccwssrcXgafv = Nothing
     , _ccwssrcUploadProtocol = Nothing
     , _ccwssrcCourseId = pCcwssrcCourseId_
@@ -150,6 +153,7 @@
     , _ccwssrcCourseWorkId = pCcwssrcCourseWorkId_
     }
 
+
 -- | V1 error format.
 ccwssrcXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReclaim (Maybe Xgafv)
 ccwssrcXgafv
@@ -204,7 +208,8 @@
       (\ s a -> s{_ccwssrcCourseWorkId = a})
 
 instance GoogleRequest
-         CoursesCourseWorkStudentSubmissionsReclaim where
+           CoursesCourseWorkStudentSubmissionsReclaim
+         where
         type Rs CoursesCourseWorkStudentSubmissionsReclaim =
              Empty
         type Scopes
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Return.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Return.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Return.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Return.hs
@@ -96,7 +96,8 @@
 -- requested course, course work, or student submission does not exist.
 --
 -- /See:/ 'coursesCourseWorkStudentSubmissionsReturn' smart constructor.
-data CoursesCourseWorkStudentSubmissionsReturn = CoursesCourseWorkStudentSubmissionsReturn'
+data CoursesCourseWorkStudentSubmissionsReturn =
+  CoursesCourseWorkStudentSubmissionsReturn'
     { _ccwssrXgafv          :: !(Maybe Xgafv)
     , _ccwssrUploadProtocol :: !(Maybe Text)
     , _ccwssrCourseId       :: !Text
@@ -106,8 +107,10 @@
     , _ccwssrId             :: !Text
     , _ccwssrCallback       :: !(Maybe Text)
     , _ccwssrCourseWorkId   :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkStudentSubmissionsReturn' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -136,7 +139,7 @@
     -> Text -- ^ 'ccwssrCourseWorkId'
     -> CoursesCourseWorkStudentSubmissionsReturn
 coursesCourseWorkStudentSubmissionsReturn pCcwssrCourseId_ pCcwssrPayload_ pCcwssrId_ pCcwssrCourseWorkId_ =
-    CoursesCourseWorkStudentSubmissionsReturn'
+  CoursesCourseWorkStudentSubmissionsReturn'
     { _ccwssrXgafv = Nothing
     , _ccwssrUploadProtocol = Nothing
     , _ccwssrCourseId = pCcwssrCourseId_
@@ -148,6 +151,7 @@
     , _ccwssrCourseWorkId = pCcwssrCourseWorkId_
     }
 
+
 -- | V1 error format.
 ccwssrXgafv :: Lens' CoursesCourseWorkStudentSubmissionsReturn (Maybe Xgafv)
 ccwssrXgafv
@@ -201,7 +205,8 @@
       (\ s a -> s{_ccwssrCourseWorkId = a})
 
 instance GoogleRequest
-         CoursesCourseWorkStudentSubmissionsReturn where
+           CoursesCourseWorkStudentSubmissionsReturn
+         where
         type Rs CoursesCourseWorkStudentSubmissionsReturn =
              Empty
         type Scopes CoursesCourseWorkStudentSubmissionsReturn
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/TurnIn.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/TurnIn.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/TurnIn.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/TurnIn.hs
@@ -92,7 +92,8 @@
 -- requested course, course work, or student submission does not exist.
 --
 -- /See:/ 'coursesCourseWorkStudentSubmissionsTurnIn' smart constructor.
-data CoursesCourseWorkStudentSubmissionsTurnIn = CoursesCourseWorkStudentSubmissionsTurnIn'
+data CoursesCourseWorkStudentSubmissionsTurnIn =
+  CoursesCourseWorkStudentSubmissionsTurnIn'
     { _ccwsstiXgafv          :: !(Maybe Xgafv)
     , _ccwsstiUploadProtocol :: !(Maybe Text)
     , _ccwsstiCourseId       :: !Text
@@ -102,8 +103,10 @@
     , _ccwsstiId             :: !Text
     , _ccwsstiCallback       :: !(Maybe Text)
     , _ccwsstiCourseWorkId   :: !Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCourseWorkStudentSubmissionsTurnIn' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -132,7 +135,7 @@
     -> Text -- ^ 'ccwsstiCourseWorkId'
     -> CoursesCourseWorkStudentSubmissionsTurnIn
 coursesCourseWorkStudentSubmissionsTurnIn pCcwsstiCourseId_ pCcwsstiPayload_ pCcwsstiId_ pCcwsstiCourseWorkId_ =
-    CoursesCourseWorkStudentSubmissionsTurnIn'
+  CoursesCourseWorkStudentSubmissionsTurnIn'
     { _ccwsstiXgafv = Nothing
     , _ccwsstiUploadProtocol = Nothing
     , _ccwsstiCourseId = pCcwsstiCourseId_
@@ -144,6 +147,7 @@
     , _ccwsstiCourseWorkId = pCcwsstiCourseWorkId_
     }
 
+
 -- | V1 error format.
 ccwsstiXgafv :: Lens' CoursesCourseWorkStudentSubmissionsTurnIn (Maybe Xgafv)
 ccwsstiXgafv
@@ -198,7 +202,8 @@
       (\ s a -> s{_ccwsstiCourseWorkId = a})
 
 instance GoogleRequest
-         CoursesCourseWorkStudentSubmissionsTurnIn where
+           CoursesCourseWorkStudentSubmissionsTurnIn
+         where
         type Rs CoursesCourseWorkStudentSubmissionsTurnIn =
              Empty
         type Scopes CoursesCourseWorkStudentSubmissionsTurnIn
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Create.hs b/gen/Network/Google/Resource/Classroom/Courses/Create.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Create.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Create.hs
@@ -74,15 +74,18 @@
 -- specified in the \`id\` and already exists.
 --
 -- /See:/ 'coursesCreate' smart constructor.
-data CoursesCreate = CoursesCreate'
+data CoursesCreate =
+  CoursesCreate'
     { _ccXgafv          :: !(Maybe Xgafv)
     , _ccUploadProtocol :: !(Maybe Text)
     , _ccAccessToken    :: !(Maybe Text)
     , _ccUploadType     :: !(Maybe Text)
     , _ccPayload        :: !Course
     , _ccCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesCreate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -102,7 +105,7 @@
     :: Course -- ^ 'ccPayload'
     -> CoursesCreate
 coursesCreate pCcPayload_ =
-    CoursesCreate'
+  CoursesCreate'
     { _ccXgafv = Nothing
     , _ccUploadProtocol = Nothing
     , _ccAccessToken = Nothing
@@ -110,6 +113,7 @@
     , _ccPayload = pCcPayload_
     , _ccCallback = Nothing
     }
+
 
 -- | V1 error format.
 ccXgafv :: Lens' CoursesCreate (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Delete.hs b/gen/Network/Google/Resource/Classroom/Courses/Delete.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Delete.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Delete.hs
@@ -66,15 +66,18 @@
 -- exists with the requested ID.
 --
 -- /See:/ 'coursesDelete' smart constructor.
-data CoursesDelete = CoursesDelete'
+data CoursesDelete =
+  CoursesDelete'
     { _cdXgafv          :: !(Maybe Xgafv)
     , _cdUploadProtocol :: !(Maybe Text)
     , _cdAccessToken    :: !(Maybe Text)
     , _cdUploadType     :: !(Maybe Text)
     , _cdId             :: !Text
     , _cdCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -94,7 +97,7 @@
     :: Text -- ^ 'cdId'
     -> CoursesDelete
 coursesDelete pCdId_ =
-    CoursesDelete'
+  CoursesDelete'
     { _cdXgafv = Nothing
     , _cdUploadProtocol = Nothing
     , _cdAccessToken = Nothing
@@ -102,6 +105,7 @@
     , _cdId = pCdId_
     , _cdCallback = Nothing
     }
+
 
 -- | V1 error format.
 cdXgafv :: Lens' CoursesDelete (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Get.hs b/gen/Network/Google/Resource/Classroom/Courses/Get.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Get.hs
@@ -66,15 +66,18 @@
 -- exists with the requested ID.
 --
 -- /See:/ 'coursesGet' smart constructor.
-data CoursesGet = CoursesGet'
+data CoursesGet =
+  CoursesGet'
     { _cgXgafv          :: !(Maybe Xgafv)
     , _cgUploadProtocol :: !(Maybe Text)
     , _cgAccessToken    :: !(Maybe Text)
     , _cgUploadType     :: !(Maybe Text)
     , _cgId             :: !Text
     , _cgCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -94,7 +97,7 @@
     :: Text -- ^ 'cgId'
     -> CoursesGet
 coursesGet pCgId_ =
-    CoursesGet'
+  CoursesGet'
     { _cgXgafv = Nothing
     , _cgUploadProtocol = Nothing
     , _cgAccessToken = Nothing
@@ -102,6 +105,7 @@
     , _cgId = pCgId_
     , _cgCallback = Nothing
     }
+
 
 -- | V1 error format.
 cgXgafv :: Lens' CoursesGet (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/List.hs b/gen/Network/Google/Resource/Classroom/Courses/List.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/List.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/List.hs
@@ -81,7 +81,8 @@
 -- do not exist.
 --
 -- /See:/ 'coursesList' smart constructor.
-data CoursesList = CoursesList'
+data CoursesList =
+  CoursesList'
     { _clStudentId      :: !(Maybe Text)
     , _clXgafv          :: !(Maybe Xgafv)
     , _clUploadProtocol :: !(Maybe Text)
@@ -92,8 +93,10 @@
     , _clPageSize       :: !(Maybe (Textual Int32))
     , _clCourseStates   :: !(Maybe [Text])
     , _clCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -120,7 +123,7 @@
 coursesList
     :: CoursesList
 coursesList =
-    CoursesList'
+  CoursesList'
     { _clStudentId = Nothing
     , _clXgafv = Nothing
     , _clUploadProtocol = Nothing
@@ -132,6 +135,7 @@
     , _clCourseStates = Nothing
     , _clCallback = Nothing
     }
+
 
 -- | Restricts returned courses to those having a student with the specified
 -- identifier. The identifier can be one of the following: * the numeric
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Patch.hs b/gen/Network/Google/Resource/Classroom/Courses/Patch.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Patch.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Patch.hs
@@ -76,7 +76,8 @@
 -- following request errors: * CourseNotModifiable
 --
 -- /See:/ 'coursesPatch' smart constructor.
-data CoursesPatch = CoursesPatch'
+data CoursesPatch =
+  CoursesPatch'
     { _cpXgafv          :: !(Maybe Xgafv)
     , _cpUploadProtocol :: !(Maybe Text)
     , _cpUpdateMask     :: !(Maybe GFieldMask)
@@ -85,8 +86,10 @@
     , _cpPayload        :: !Course
     , _cpId             :: !Text
     , _cpCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -111,7 +114,7 @@
     -> Text -- ^ 'cpId'
     -> CoursesPatch
 coursesPatch pCpPayload_ pCpId_ =
-    CoursesPatch'
+  CoursesPatch'
     { _cpXgafv = Nothing
     , _cpUploadProtocol = Nothing
     , _cpUpdateMask = Nothing
@@ -121,6 +124,7 @@
     , _cpId = pCpId_
     , _cpCallback = Nothing
     }
+
 
 -- | V1 error format.
 cpXgafv :: Lens' CoursesPatch (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Students/Create.hs b/gen/Network/Google/Resource/Classroom/Courses/Students/Create.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Students/Create.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Students/Create.hs
@@ -81,7 +81,8 @@
 -- course.
 --
 -- /See:/ 'coursesStudentsCreate' smart constructor.
-data CoursesStudentsCreate = CoursesStudentsCreate'
+data CoursesStudentsCreate =
+  CoursesStudentsCreate'
     { _cscXgafv          :: !(Maybe Xgafv)
     , _cscUploadProtocol :: !(Maybe Text)
     , _cscCourseId       :: !Text
@@ -90,8 +91,10 @@
     , _cscPayload        :: !Student
     , _cscEnrollmentCode :: !(Maybe Text)
     , _cscCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesStudentsCreate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -116,7 +119,7 @@
     -> Student -- ^ 'cscPayload'
     -> CoursesStudentsCreate
 coursesStudentsCreate pCscCourseId_ pCscPayload_ =
-    CoursesStudentsCreate'
+  CoursesStudentsCreate'
     { _cscXgafv = Nothing
     , _cscUploadProtocol = Nothing
     , _cscCourseId = pCscCourseId_
@@ -126,6 +129,7 @@
     , _cscEnrollmentCode = Nothing
     , _cscCallback = Nothing
     }
+
 
 -- | V1 error format.
 cscXgafv :: Lens' CoursesStudentsCreate (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Students/Delete.hs b/gen/Network/Google/Resource/Classroom/Courses/Students/Delete.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Students/Delete.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Students/Delete.hs
@@ -71,7 +71,8 @@
 -- not exist.
 --
 -- /See:/ 'coursesStudentsDelete' smart constructor.
-data CoursesStudentsDelete = CoursesStudentsDelete'
+data CoursesStudentsDelete =
+  CoursesStudentsDelete'
     { _csdXgafv          :: !(Maybe Xgafv)
     , _csdUploadProtocol :: !(Maybe Text)
     , _csdCourseId       :: !Text
@@ -79,8 +80,10 @@
     , _csdUploadType     :: !(Maybe Text)
     , _csdUserId         :: !Text
     , _csdCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesStudentsDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -103,7 +106,7 @@
     -> Text -- ^ 'csdUserId'
     -> CoursesStudentsDelete
 coursesStudentsDelete pCsdCourseId_ pCsdUserId_ =
-    CoursesStudentsDelete'
+  CoursesStudentsDelete'
     { _csdXgafv = Nothing
     , _csdUploadProtocol = Nothing
     , _csdCourseId = pCsdCourseId_
@@ -112,6 +115,7 @@
     , _csdUserId = pCsdUserId_
     , _csdCallback = Nothing
     }
+
 
 -- | V1 error format.
 csdXgafv :: Lens' CoursesStudentsDelete (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Students/Get.hs b/gen/Network/Google/Resource/Classroom/Courses/Students/Get.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Students/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Students/Get.hs
@@ -71,7 +71,8 @@
 -- exist.
 --
 -- /See:/ 'coursesStudentsGet' smart constructor.
-data CoursesStudentsGet = CoursesStudentsGet'
+data CoursesStudentsGet =
+  CoursesStudentsGet'
     { _csgXgafv          :: !(Maybe Xgafv)
     , _csgUploadProtocol :: !(Maybe Text)
     , _csgCourseId       :: !Text
@@ -79,8 +80,10 @@
     , _csgUploadType     :: !(Maybe Text)
     , _csgUserId         :: !Text
     , _csgCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesStudentsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -103,7 +106,7 @@
     -> Text -- ^ 'csgUserId'
     -> CoursesStudentsGet
 coursesStudentsGet pCsgCourseId_ pCsgUserId_ =
-    CoursesStudentsGet'
+  CoursesStudentsGet'
     { _csgXgafv = Nothing
     , _csgUploadProtocol = Nothing
     , _csgCourseId = pCsgCourseId_
@@ -112,6 +115,7 @@
     , _csgUserId = pCsgUserId_
     , _csgCallback = Nothing
     }
+
 
 -- | V1 error format.
 csgXgafv :: Lens' CoursesStudentsGet (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Students/List.hs b/gen/Network/Google/Resource/Classroom/Courses/Students/List.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Students/List.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Students/List.hs
@@ -72,7 +72,8 @@
 -- access errors.
 --
 -- /See:/ 'coursesStudentsList' smart constructor.
-data CoursesStudentsList = CoursesStudentsList'
+data CoursesStudentsList =
+  CoursesStudentsList'
     { _cslXgafv          :: !(Maybe Xgafv)
     , _cslUploadProtocol :: !(Maybe Text)
     , _cslCourseId       :: !Text
@@ -81,8 +82,10 @@
     , _cslPageToken      :: !(Maybe Text)
     , _cslPageSize       :: !(Maybe (Textual Int32))
     , _cslCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesStudentsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -106,7 +109,7 @@
     :: Text -- ^ 'cslCourseId'
     -> CoursesStudentsList
 coursesStudentsList pCslCourseId_ =
-    CoursesStudentsList'
+  CoursesStudentsList'
     { _cslXgafv = Nothing
     , _cslUploadProtocol = Nothing
     , _cslCourseId = pCslCourseId_
@@ -116,6 +119,7 @@
     , _cslPageSize = Nothing
     , _cslCallback = Nothing
     }
+
 
 -- | V1 error format.
 cslXgafv :: Lens' CoursesStudentsList (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Teachers/Create.hs b/gen/Network/Google/Resource/Classroom/Courses/Teachers/Create.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Teachers/Create.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Teachers/Create.hs
@@ -79,7 +79,8 @@
 -- course.
 --
 -- /See:/ 'coursesTeachersCreate' smart constructor.
-data CoursesTeachersCreate = CoursesTeachersCreate'
+data CoursesTeachersCreate =
+  CoursesTeachersCreate'
     { _ctcXgafv          :: !(Maybe Xgafv)
     , _ctcUploadProtocol :: !(Maybe Text)
     , _ctcCourseId       :: !Text
@@ -87,8 +88,10 @@
     , _ctcUploadType     :: !(Maybe Text)
     , _ctcPayload        :: !Teacher
     , _ctcCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesTeachersCreate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -111,7 +114,7 @@
     -> Teacher -- ^ 'ctcPayload'
     -> CoursesTeachersCreate
 coursesTeachersCreate pCtcCourseId_ pCtcPayload_ =
-    CoursesTeachersCreate'
+  CoursesTeachersCreate'
     { _ctcXgafv = Nothing
     , _ctcUploadProtocol = Nothing
     , _ctcCourseId = pCtcCourseId_
@@ -120,6 +123,7 @@
     , _ctcPayload = pCtcPayload_
     , _ctcCallback = Nothing
     }
+
 
 -- | V1 error format.
 ctcXgafv :: Lens' CoursesTeachersCreate (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Teachers/Delete.hs b/gen/Network/Google/Resource/Classroom/Courses/Teachers/Delete.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Teachers/Delete.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Teachers/Delete.hs
@@ -38,13 +38,13 @@
     , CoursesTeachersDelete
 
     -- * Request Lenses
-    , ctdXgafv
-    , ctdUploadProtocol
-    , ctdCourseId
-    , ctdAccessToken
-    , ctdUploadType
-    , ctdUserId
-    , ctdCallback
+    , ctdtXgafv
+    , ctdtUploadProtocol
+    , ctdtCourseId
+    , ctdtAccessToken
+    , ctdtUploadType
+    , ctdtUserId
+    , ctdtCallback
     ) where
 
 import           Network.Google.Classroom.Types
@@ -73,98 +73,103 @@
 -- primary teacher of this course.
 --
 -- /See:/ 'coursesTeachersDelete' smart constructor.
-data CoursesTeachersDelete = CoursesTeachersDelete'
-    { _ctdXgafv          :: !(Maybe Xgafv)
-    , _ctdUploadProtocol :: !(Maybe Text)
-    , _ctdCourseId       :: !Text
-    , _ctdAccessToken    :: !(Maybe Text)
-    , _ctdUploadType     :: !(Maybe Text)
-    , _ctdUserId         :: !Text
-    , _ctdCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+data CoursesTeachersDelete =
+  CoursesTeachersDelete'
+    { _ctdtXgafv          :: !(Maybe Xgafv)
+    , _ctdtUploadProtocol :: !(Maybe Text)
+    , _ctdtCourseId       :: !Text
+    , _ctdtAccessToken    :: !(Maybe Text)
+    , _ctdtUploadType     :: !(Maybe Text)
+    , _ctdtUserId         :: !Text
+    , _ctdtCallback       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesTeachersDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ctdXgafv'
+-- * 'ctdtXgafv'
 --
--- * 'ctdUploadProtocol'
+-- * 'ctdtUploadProtocol'
 --
--- * 'ctdCourseId'
+-- * 'ctdtCourseId'
 --
--- * 'ctdAccessToken'
+-- * 'ctdtAccessToken'
 --
--- * 'ctdUploadType'
+-- * 'ctdtUploadType'
 --
--- * 'ctdUserId'
+-- * 'ctdtUserId'
 --
--- * 'ctdCallback'
+-- * 'ctdtCallback'
 coursesTeachersDelete
-    :: Text -- ^ 'ctdCourseId'
-    -> Text -- ^ 'ctdUserId'
+    :: Text -- ^ 'ctdtCourseId'
+    -> Text -- ^ 'ctdtUserId'
     -> CoursesTeachersDelete
-coursesTeachersDelete pCtdCourseId_ pCtdUserId_ =
-    CoursesTeachersDelete'
-    { _ctdXgafv = Nothing
-    , _ctdUploadProtocol = Nothing
-    , _ctdCourseId = pCtdCourseId_
-    , _ctdAccessToken = Nothing
-    , _ctdUploadType = Nothing
-    , _ctdUserId = pCtdUserId_
-    , _ctdCallback = Nothing
+coursesTeachersDelete pCtdtCourseId_ pCtdtUserId_ =
+  CoursesTeachersDelete'
+    { _ctdtXgafv = Nothing
+    , _ctdtUploadProtocol = Nothing
+    , _ctdtCourseId = pCtdtCourseId_
+    , _ctdtAccessToken = Nothing
+    , _ctdtUploadType = Nothing
+    , _ctdtUserId = pCtdtUserId_
+    , _ctdtCallback = Nothing
     }
 
+
 -- | V1 error format.
-ctdXgafv :: Lens' CoursesTeachersDelete (Maybe Xgafv)
-ctdXgafv = lens _ctdXgafv (\ s a -> s{_ctdXgafv = a})
+ctdtXgafv :: Lens' CoursesTeachersDelete (Maybe Xgafv)
+ctdtXgafv
+  = lens _ctdtXgafv (\ s a -> s{_ctdtXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-ctdUploadProtocol :: Lens' CoursesTeachersDelete (Maybe Text)
-ctdUploadProtocol
-  = lens _ctdUploadProtocol
-      (\ s a -> s{_ctdUploadProtocol = a})
+ctdtUploadProtocol :: Lens' CoursesTeachersDelete (Maybe Text)
+ctdtUploadProtocol
+  = lens _ctdtUploadProtocol
+      (\ s a -> s{_ctdtUploadProtocol = a})
 
 -- | Identifier of the course. This identifier can be either the
 -- Classroom-assigned identifier or an alias.
-ctdCourseId :: Lens' CoursesTeachersDelete Text
-ctdCourseId
-  = lens _ctdCourseId (\ s a -> s{_ctdCourseId = a})
+ctdtCourseId :: Lens' CoursesTeachersDelete Text
+ctdtCourseId
+  = lens _ctdtCourseId (\ s a -> s{_ctdtCourseId = a})
 
 -- | OAuth access token.
-ctdAccessToken :: Lens' CoursesTeachersDelete (Maybe Text)
-ctdAccessToken
-  = lens _ctdAccessToken
-      (\ s a -> s{_ctdAccessToken = a})
+ctdtAccessToken :: Lens' CoursesTeachersDelete (Maybe Text)
+ctdtAccessToken
+  = lens _ctdtAccessToken
+      (\ s a -> s{_ctdtAccessToken = a})
 
 -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-ctdUploadType :: Lens' CoursesTeachersDelete (Maybe Text)
-ctdUploadType
-  = lens _ctdUploadType
-      (\ s a -> s{_ctdUploadType = a})
+ctdtUploadType :: Lens' CoursesTeachersDelete (Maybe Text)
+ctdtUploadType
+  = lens _ctdtUploadType
+      (\ s a -> s{_ctdtUploadType = a})
 
 -- | Identifier of the teacher to delete. The identifier can be one of the
 -- following: * the numeric identifier for the user * the email address of
 -- the user * the string literal \`\"me\"\`, indicating the requesting user
-ctdUserId :: Lens' CoursesTeachersDelete Text
-ctdUserId
-  = lens _ctdUserId (\ s a -> s{_ctdUserId = a})
+ctdtUserId :: Lens' CoursesTeachersDelete Text
+ctdtUserId
+  = lens _ctdtUserId (\ s a -> s{_ctdtUserId = a})
 
 -- | JSONP
-ctdCallback :: Lens' CoursesTeachersDelete (Maybe Text)
-ctdCallback
-  = lens _ctdCallback (\ s a -> s{_ctdCallback = a})
+ctdtCallback :: Lens' CoursesTeachersDelete (Maybe Text)
+ctdtCallback
+  = lens _ctdtCallback (\ s a -> s{_ctdtCallback = a})
 
 instance GoogleRequest CoursesTeachersDelete where
         type Rs CoursesTeachersDelete = Empty
         type Scopes CoursesTeachersDelete =
              '["https://www.googleapis.com/auth/classroom.rosters"]
         requestClient CoursesTeachersDelete'{..}
-          = go _ctdCourseId _ctdUserId _ctdXgafv
-              _ctdUploadProtocol
-              _ctdAccessToken
-              _ctdUploadType
-              _ctdCallback
+          = go _ctdtCourseId _ctdtUserId _ctdtXgafv
+              _ctdtUploadProtocol
+              _ctdtAccessToken
+              _ctdtUploadType
+              _ctdtCallback
               (Just AltJSON)
               classroomService
           where go
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Teachers/Get.hs b/gen/Network/Google/Resource/Classroom/Courses/Teachers/Get.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Teachers/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Teachers/Get.hs
@@ -37,13 +37,13 @@
     , CoursesTeachersGet
 
     -- * Request Lenses
-    , ctgXgafv
-    , ctgUploadProtocol
-    , ctgCourseId
-    , ctgAccessToken
-    , ctgUploadType
-    , ctgUserId
-    , ctgCallback
+    , ctgtXgafv
+    , ctgtUploadProtocol
+    , ctgtCourseId
+    , ctgtAccessToken
+    , ctgtUploadType
+    , ctgtUserId
+    , ctgtCallback
     ) where
 
 import           Network.Google.Classroom.Types
@@ -71,87 +71,92 @@
 -- exist.
 --
 -- /See:/ 'coursesTeachersGet' smart constructor.
-data CoursesTeachersGet = CoursesTeachersGet'
-    { _ctgXgafv          :: !(Maybe Xgafv)
-    , _ctgUploadProtocol :: !(Maybe Text)
-    , _ctgCourseId       :: !Text
-    , _ctgAccessToken    :: !(Maybe Text)
-    , _ctgUploadType     :: !(Maybe Text)
-    , _ctgUserId         :: !Text
-    , _ctgCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+data CoursesTeachersGet =
+  CoursesTeachersGet'
+    { _ctgtXgafv          :: !(Maybe Xgafv)
+    , _ctgtUploadProtocol :: !(Maybe Text)
+    , _ctgtCourseId       :: !Text
+    , _ctgtAccessToken    :: !(Maybe Text)
+    , _ctgtUploadType     :: !(Maybe Text)
+    , _ctgtUserId         :: !Text
+    , _ctgtCallback       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesTeachersGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ctgXgafv'
+-- * 'ctgtXgafv'
 --
--- * 'ctgUploadProtocol'
+-- * 'ctgtUploadProtocol'
 --
--- * 'ctgCourseId'
+-- * 'ctgtCourseId'
 --
--- * 'ctgAccessToken'
+-- * 'ctgtAccessToken'
 --
--- * 'ctgUploadType'
+-- * 'ctgtUploadType'
 --
--- * 'ctgUserId'
+-- * 'ctgtUserId'
 --
--- * 'ctgCallback'
+-- * 'ctgtCallback'
 coursesTeachersGet
-    :: Text -- ^ 'ctgCourseId'
-    -> Text -- ^ 'ctgUserId'
+    :: Text -- ^ 'ctgtCourseId'
+    -> Text -- ^ 'ctgtUserId'
     -> CoursesTeachersGet
-coursesTeachersGet pCtgCourseId_ pCtgUserId_ =
-    CoursesTeachersGet'
-    { _ctgXgafv = Nothing
-    , _ctgUploadProtocol = Nothing
-    , _ctgCourseId = pCtgCourseId_
-    , _ctgAccessToken = Nothing
-    , _ctgUploadType = Nothing
-    , _ctgUserId = pCtgUserId_
-    , _ctgCallback = Nothing
+coursesTeachersGet pCtgtCourseId_ pCtgtUserId_ =
+  CoursesTeachersGet'
+    { _ctgtXgafv = Nothing
+    , _ctgtUploadProtocol = Nothing
+    , _ctgtCourseId = pCtgtCourseId_
+    , _ctgtAccessToken = Nothing
+    , _ctgtUploadType = Nothing
+    , _ctgtUserId = pCtgtUserId_
+    , _ctgtCallback = Nothing
     }
 
+
 -- | V1 error format.
-ctgXgafv :: Lens' CoursesTeachersGet (Maybe Xgafv)
-ctgXgafv = lens _ctgXgafv (\ s a -> s{_ctgXgafv = a})
+ctgtXgafv :: Lens' CoursesTeachersGet (Maybe Xgafv)
+ctgtXgafv
+  = lens _ctgtXgafv (\ s a -> s{_ctgtXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-ctgUploadProtocol :: Lens' CoursesTeachersGet (Maybe Text)
-ctgUploadProtocol
-  = lens _ctgUploadProtocol
-      (\ s a -> s{_ctgUploadProtocol = a})
+ctgtUploadProtocol :: Lens' CoursesTeachersGet (Maybe Text)
+ctgtUploadProtocol
+  = lens _ctgtUploadProtocol
+      (\ s a -> s{_ctgtUploadProtocol = a})
 
 -- | Identifier of the course. This identifier can be either the
 -- Classroom-assigned identifier or an alias.
-ctgCourseId :: Lens' CoursesTeachersGet Text
-ctgCourseId
-  = lens _ctgCourseId (\ s a -> s{_ctgCourseId = a})
+ctgtCourseId :: Lens' CoursesTeachersGet Text
+ctgtCourseId
+  = lens _ctgtCourseId (\ s a -> s{_ctgtCourseId = a})
 
 -- | OAuth access token.
-ctgAccessToken :: Lens' CoursesTeachersGet (Maybe Text)
-ctgAccessToken
-  = lens _ctgAccessToken
-      (\ s a -> s{_ctgAccessToken = a})
+ctgtAccessToken :: Lens' CoursesTeachersGet (Maybe Text)
+ctgtAccessToken
+  = lens _ctgtAccessToken
+      (\ s a -> s{_ctgtAccessToken = a})
 
 -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-ctgUploadType :: Lens' CoursesTeachersGet (Maybe Text)
-ctgUploadType
-  = lens _ctgUploadType
-      (\ s a -> s{_ctgUploadType = a})
+ctgtUploadType :: Lens' CoursesTeachersGet (Maybe Text)
+ctgtUploadType
+  = lens _ctgtUploadType
+      (\ s a -> s{_ctgtUploadType = a})
 
 -- | Identifier of the teacher to return. The identifier can be one of the
 -- following: * the numeric identifier for the user * the email address of
 -- the user * the string literal \`\"me\"\`, indicating the requesting user
-ctgUserId :: Lens' CoursesTeachersGet Text
-ctgUserId
-  = lens _ctgUserId (\ s a -> s{_ctgUserId = a})
+ctgtUserId :: Lens' CoursesTeachersGet Text
+ctgtUserId
+  = lens _ctgtUserId (\ s a -> s{_ctgtUserId = a})
 
 -- | JSONP
-ctgCallback :: Lens' CoursesTeachersGet (Maybe Text)
-ctgCallback
-  = lens _ctgCallback (\ s a -> s{_ctgCallback = a})
+ctgtCallback :: Lens' CoursesTeachersGet (Maybe Text)
+ctgtCallback
+  = lens _ctgtCallback (\ s a -> s{_ctgtCallback = a})
 
 instance GoogleRequest CoursesTeachersGet where
         type Rs CoursesTeachersGet = Teacher
@@ -161,11 +166,11 @@
                "https://www.googleapis.com/auth/classroom.rosters",
                "https://www.googleapis.com/auth/classroom.rosters.readonly"]
         requestClient CoursesTeachersGet'{..}
-          = go _ctgCourseId _ctgUserId _ctgXgafv
-              _ctgUploadProtocol
-              _ctgAccessToken
-              _ctgUploadType
-              _ctgCallback
+          = go _ctgtCourseId _ctgtUserId _ctgtXgafv
+              _ctgtUploadProtocol
+              _ctgtAccessToken
+              _ctgtUploadType
+              _ctgtCallback
               (Just AltJSON)
               classroomService
           where go
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Teachers/List.hs b/gen/Network/Google/Resource/Classroom/Courses/Teachers/List.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Teachers/List.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Teachers/List.hs
@@ -36,14 +36,14 @@
     , CoursesTeachersList
 
     -- * Request Lenses
-    , ctlXgafv
-    , ctlUploadProtocol
-    , ctlCourseId
-    , ctlAccessToken
-    , ctlUploadType
-    , ctlPageToken
-    , ctlPageSize
-    , ctlCallback
+    , ctltXgafv
+    , ctltUploadProtocol
+    , ctltCourseId
+    , ctltAccessToken
+    , ctltUploadType
+    , ctltPageToken
+    , ctltPageSize
+    , ctltCallback
     ) where
 
 import           Network.Google.Classroom.Types
@@ -72,97 +72,103 @@
 -- access errors.
 --
 -- /See:/ 'coursesTeachersList' smart constructor.
-data CoursesTeachersList = CoursesTeachersList'
-    { _ctlXgafv          :: !(Maybe Xgafv)
-    , _ctlUploadProtocol :: !(Maybe Text)
-    , _ctlCourseId       :: !Text
-    , _ctlAccessToken    :: !(Maybe Text)
-    , _ctlUploadType     :: !(Maybe Text)
-    , _ctlPageToken      :: !(Maybe Text)
-    , _ctlPageSize       :: !(Maybe (Textual Int32))
-    , _ctlCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+data CoursesTeachersList =
+  CoursesTeachersList'
+    { _ctltXgafv          :: !(Maybe Xgafv)
+    , _ctltUploadProtocol :: !(Maybe Text)
+    , _ctltCourseId       :: !Text
+    , _ctltAccessToken    :: !(Maybe Text)
+    , _ctltUploadType     :: !(Maybe Text)
+    , _ctltPageToken      :: !(Maybe Text)
+    , _ctltPageSize       :: !(Maybe (Textual Int32))
+    , _ctltCallback       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesTeachersList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ctlXgafv'
+-- * 'ctltXgafv'
 --
--- * 'ctlUploadProtocol'
+-- * 'ctltUploadProtocol'
 --
--- * 'ctlCourseId'
+-- * 'ctltCourseId'
 --
--- * 'ctlAccessToken'
+-- * 'ctltAccessToken'
 --
--- * 'ctlUploadType'
+-- * 'ctltUploadType'
 --
--- * 'ctlPageToken'
+-- * 'ctltPageToken'
 --
--- * 'ctlPageSize'
+-- * 'ctltPageSize'
 --
--- * 'ctlCallback'
+-- * 'ctltCallback'
 coursesTeachersList
-    :: Text -- ^ 'ctlCourseId'
+    :: Text -- ^ 'ctltCourseId'
     -> CoursesTeachersList
-coursesTeachersList pCtlCourseId_ =
-    CoursesTeachersList'
-    { _ctlXgafv = Nothing
-    , _ctlUploadProtocol = Nothing
-    , _ctlCourseId = pCtlCourseId_
-    , _ctlAccessToken = Nothing
-    , _ctlUploadType = Nothing
-    , _ctlPageToken = Nothing
-    , _ctlPageSize = Nothing
-    , _ctlCallback = Nothing
+coursesTeachersList pCtltCourseId_ =
+  CoursesTeachersList'
+    { _ctltXgafv = Nothing
+    , _ctltUploadProtocol = Nothing
+    , _ctltCourseId = pCtltCourseId_
+    , _ctltAccessToken = Nothing
+    , _ctltUploadType = Nothing
+    , _ctltPageToken = Nothing
+    , _ctltPageSize = Nothing
+    , _ctltCallback = Nothing
     }
 
+
 -- | V1 error format.
-ctlXgafv :: Lens' CoursesTeachersList (Maybe Xgafv)
-ctlXgafv = lens _ctlXgafv (\ s a -> s{_ctlXgafv = a})
+ctltXgafv :: Lens' CoursesTeachersList (Maybe Xgafv)
+ctltXgafv
+  = lens _ctltXgafv (\ s a -> s{_ctltXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-ctlUploadProtocol :: Lens' CoursesTeachersList (Maybe Text)
-ctlUploadProtocol
-  = lens _ctlUploadProtocol
-      (\ s a -> s{_ctlUploadProtocol = a})
+ctltUploadProtocol :: Lens' CoursesTeachersList (Maybe Text)
+ctltUploadProtocol
+  = lens _ctltUploadProtocol
+      (\ s a -> s{_ctltUploadProtocol = a})
 
 -- | Identifier of the course. This identifier can be either the
 -- Classroom-assigned identifier or an alias.
-ctlCourseId :: Lens' CoursesTeachersList Text
-ctlCourseId
-  = lens _ctlCourseId (\ s a -> s{_ctlCourseId = a})
+ctltCourseId :: Lens' CoursesTeachersList Text
+ctltCourseId
+  = lens _ctltCourseId (\ s a -> s{_ctltCourseId = a})
 
 -- | OAuth access token.
-ctlAccessToken :: Lens' CoursesTeachersList (Maybe Text)
-ctlAccessToken
-  = lens _ctlAccessToken
-      (\ s a -> s{_ctlAccessToken = a})
+ctltAccessToken :: Lens' CoursesTeachersList (Maybe Text)
+ctltAccessToken
+  = lens _ctltAccessToken
+      (\ s a -> s{_ctltAccessToken = a})
 
 -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-ctlUploadType :: Lens' CoursesTeachersList (Maybe Text)
-ctlUploadType
-  = lens _ctlUploadType
-      (\ s a -> s{_ctlUploadType = a})
+ctltUploadType :: Lens' CoursesTeachersList (Maybe Text)
+ctltUploadType
+  = lens _ctltUploadType
+      (\ s a -> s{_ctltUploadType = a})
 
 -- | nextPageToken value returned from a previous list call, indicating that
 -- the subsequent page of results should be returned. The list request must
 -- be otherwise identical to the one that resulted in this token.
-ctlPageToken :: Lens' CoursesTeachersList (Maybe Text)
-ctlPageToken
-  = lens _ctlPageToken (\ s a -> s{_ctlPageToken = a})
+ctltPageToken :: Lens' CoursesTeachersList (Maybe Text)
+ctltPageToken
+  = lens _ctltPageToken
+      (\ s a -> s{_ctltPageToken = a})
 
 -- | Maximum number of items to return. Zero means no maximum. The server may
 -- return fewer than the specified number of results.
-ctlPageSize :: Lens' CoursesTeachersList (Maybe Int32)
-ctlPageSize
-  = lens _ctlPageSize (\ s a -> s{_ctlPageSize = a}) .
-      mapping _Coerce
+ctltPageSize :: Lens' CoursesTeachersList (Maybe Int32)
+ctltPageSize
+  = lens _ctltPageSize (\ s a -> s{_ctltPageSize = a})
+      . mapping _Coerce
 
 -- | JSONP
-ctlCallback :: Lens' CoursesTeachersList (Maybe Text)
-ctlCallback
-  = lens _ctlCallback (\ s a -> s{_ctlCallback = a})
+ctltCallback :: Lens' CoursesTeachersList (Maybe Text)
+ctltCallback
+  = lens _ctltCallback (\ s a -> s{_ctltCallback = a})
 
 instance GoogleRequest CoursesTeachersList where
         type Rs CoursesTeachersList = ListTeachersResponse
@@ -172,12 +178,12 @@
                "https://www.googleapis.com/auth/classroom.rosters",
                "https://www.googleapis.com/auth/classroom.rosters.readonly"]
         requestClient CoursesTeachersList'{..}
-          = go _ctlCourseId _ctlXgafv _ctlUploadProtocol
-              _ctlAccessToken
-              _ctlUploadType
-              _ctlPageToken
-              _ctlPageSize
-              _ctlCallback
+          = go _ctltCourseId _ctltXgafv _ctltUploadProtocol
+              _ctltAccessToken
+              _ctltUploadType
+              _ctltPageToken
+              _ctltPageSize
+              _ctltCallback
               (Just AltJSON)
               classroomService
           where go
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Topics/Create.hs b/gen/Network/Google/Resource/Classroom/Courses/Topics/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/Courses/Topics/Create.hs
@@ -0,0 +1,174 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.Courses.Topics.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a topic. This method returns the following error codes: *
+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to access
+-- the requested course, create a topic in the requested course, or for
+-- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *
+-- \`NOT_FOUND\` if the requested course does not exist.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.create@.
+module Network.Google.Resource.Classroom.Courses.Topics.Create
+    (
+    -- * REST Resource
+      CoursesTopicsCreateResource
+
+    -- * Creating a Request
+    , coursesTopicsCreate
+    , CoursesTopicsCreate
+
+    -- * Request Lenses
+    , ctctXgafv
+    , ctctUploadProtocol
+    , ctctCourseId
+    , ctctAccessToken
+    , ctctUploadType
+    , ctctPayload
+    , ctctCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.courses.topics.create@ method which the
+-- 'CoursesTopicsCreate' request conforms to.
+type CoursesTopicsCreateResource =
+     "v1" :>
+       "courses" :>
+         Capture "courseId" Text :>
+           "topics" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] Topic :> Post '[JSON] Topic
+
+-- | Creates a topic. This method returns the following error codes: *
+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to access
+-- the requested course, create a topic in the requested course, or for
+-- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *
+-- \`NOT_FOUND\` if the requested course does not exist.
+--
+-- /See:/ 'coursesTopicsCreate' smart constructor.
+data CoursesTopicsCreate =
+  CoursesTopicsCreate'
+    { _ctctXgafv          :: !(Maybe Xgafv)
+    , _ctctUploadProtocol :: !(Maybe Text)
+    , _ctctCourseId       :: !Text
+    , _ctctAccessToken    :: !(Maybe Text)
+    , _ctctUploadType     :: !(Maybe Text)
+    , _ctctPayload        :: !Topic
+    , _ctctCallback       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CoursesTopicsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctctXgafv'
+--
+-- * 'ctctUploadProtocol'
+--
+-- * 'ctctCourseId'
+--
+-- * 'ctctAccessToken'
+--
+-- * 'ctctUploadType'
+--
+-- * 'ctctPayload'
+--
+-- * 'ctctCallback'
+coursesTopicsCreate
+    :: Text -- ^ 'ctctCourseId'
+    -> Topic -- ^ 'ctctPayload'
+    -> CoursesTopicsCreate
+coursesTopicsCreate pCtctCourseId_ pCtctPayload_ =
+  CoursesTopicsCreate'
+    { _ctctXgafv = Nothing
+    , _ctctUploadProtocol = Nothing
+    , _ctctCourseId = pCtctCourseId_
+    , _ctctAccessToken = Nothing
+    , _ctctUploadType = Nothing
+    , _ctctPayload = pCtctPayload_
+    , _ctctCallback = Nothing
+    }
+
+
+-- | V1 error format.
+ctctXgafv :: Lens' CoursesTopicsCreate (Maybe Xgafv)
+ctctXgafv
+  = lens _ctctXgafv (\ s a -> s{_ctctXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ctctUploadProtocol :: Lens' CoursesTopicsCreate (Maybe Text)
+ctctUploadProtocol
+  = lens _ctctUploadProtocol
+      (\ s a -> s{_ctctUploadProtocol = a})
+
+-- | Identifier of the course. This identifier can be either the
+-- Classroom-assigned identifier or an alias.
+ctctCourseId :: Lens' CoursesTopicsCreate Text
+ctctCourseId
+  = lens _ctctCourseId (\ s a -> s{_ctctCourseId = a})
+
+-- | OAuth access token.
+ctctAccessToken :: Lens' CoursesTopicsCreate (Maybe Text)
+ctctAccessToken
+  = lens _ctctAccessToken
+      (\ s a -> s{_ctctAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ctctUploadType :: Lens' CoursesTopicsCreate (Maybe Text)
+ctctUploadType
+  = lens _ctctUploadType
+      (\ s a -> s{_ctctUploadType = a})
+
+-- | Multipart request metadata.
+ctctPayload :: Lens' CoursesTopicsCreate Topic
+ctctPayload
+  = lens _ctctPayload (\ s a -> s{_ctctPayload = a})
+
+-- | JSONP
+ctctCallback :: Lens' CoursesTopicsCreate (Maybe Text)
+ctctCallback
+  = lens _ctctCallback (\ s a -> s{_ctctCallback = a})
+
+instance GoogleRequest CoursesTopicsCreate where
+        type Rs CoursesTopicsCreate = Topic
+        type Scopes CoursesTopicsCreate =
+             '["https://www.googleapis.com/auth/classroom.topics"]
+        requestClient CoursesTopicsCreate'{..}
+          = go _ctctCourseId _ctctXgafv _ctctUploadProtocol
+              _ctctAccessToken
+              _ctctUploadType
+              _ctctCallback
+              (Just AltJSON)
+              _ctctPayload
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CoursesTopicsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Topics/Delete.hs b/gen/Network/Google/Resource/Classroom/Courses/Topics/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/Courses/Topics/Delete.hs
@@ -0,0 +1,171 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.Courses.Topics.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a topic. This method returns the following error codes: *
+-- \`PERMISSION_DENIED\` if the requesting user is not allowed to delete
+-- the requested topic or for access errors. * \`FAILED_PRECONDITION\` if
+-- the requested topic has already been deleted. * \`NOT_FOUND\` if no
+-- course or topic exists with the requested ID.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.delete@.
+module Network.Google.Resource.Classroom.Courses.Topics.Delete
+    (
+    -- * REST Resource
+      CoursesTopicsDeleteResource
+
+    -- * Creating a Request
+    , coursesTopicsDelete
+    , CoursesTopicsDelete
+
+    -- * Request Lenses
+    , ctdXgafv
+    , ctdUploadProtocol
+    , ctdCourseId
+    , ctdAccessToken
+    , ctdUploadType
+    , ctdId
+    , ctdCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.courses.topics.delete@ method which the
+-- 'CoursesTopicsDelete' request conforms to.
+type CoursesTopicsDeleteResource =
+     "v1" :>
+       "courses" :>
+         Capture "courseId" Text :>
+           "topics" :>
+             Capture "id" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes a topic. This method returns the following error codes: *
+-- \`PERMISSION_DENIED\` if the requesting user is not allowed to delete
+-- the requested topic or for access errors. * \`FAILED_PRECONDITION\` if
+-- the requested topic has already been deleted. * \`NOT_FOUND\` if no
+-- course or topic exists with the requested ID.
+--
+-- /See:/ 'coursesTopicsDelete' smart constructor.
+data CoursesTopicsDelete =
+  CoursesTopicsDelete'
+    { _ctdXgafv          :: !(Maybe Xgafv)
+    , _ctdUploadProtocol :: !(Maybe Text)
+    , _ctdCourseId       :: !Text
+    , _ctdAccessToken    :: !(Maybe Text)
+    , _ctdUploadType     :: !(Maybe Text)
+    , _ctdId             :: !Text
+    , _ctdCallback       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CoursesTopicsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctdXgafv'
+--
+-- * 'ctdUploadProtocol'
+--
+-- * 'ctdCourseId'
+--
+-- * 'ctdAccessToken'
+--
+-- * 'ctdUploadType'
+--
+-- * 'ctdId'
+--
+-- * 'ctdCallback'
+coursesTopicsDelete
+    :: Text -- ^ 'ctdCourseId'
+    -> Text -- ^ 'ctdId'
+    -> CoursesTopicsDelete
+coursesTopicsDelete pCtdCourseId_ pCtdId_ =
+  CoursesTopicsDelete'
+    { _ctdXgafv = Nothing
+    , _ctdUploadProtocol = Nothing
+    , _ctdCourseId = pCtdCourseId_
+    , _ctdAccessToken = Nothing
+    , _ctdUploadType = Nothing
+    , _ctdId = pCtdId_
+    , _ctdCallback = Nothing
+    }
+
+
+-- | V1 error format.
+ctdXgafv :: Lens' CoursesTopicsDelete (Maybe Xgafv)
+ctdXgafv = lens _ctdXgafv (\ s a -> s{_ctdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ctdUploadProtocol :: Lens' CoursesTopicsDelete (Maybe Text)
+ctdUploadProtocol
+  = lens _ctdUploadProtocol
+      (\ s a -> s{_ctdUploadProtocol = a})
+
+-- | Identifier of the course. This identifier can be either the
+-- Classroom-assigned identifier or an alias.
+ctdCourseId :: Lens' CoursesTopicsDelete Text
+ctdCourseId
+  = lens _ctdCourseId (\ s a -> s{_ctdCourseId = a})
+
+-- | OAuth access token.
+ctdAccessToken :: Lens' CoursesTopicsDelete (Maybe Text)
+ctdAccessToken
+  = lens _ctdAccessToken
+      (\ s a -> s{_ctdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ctdUploadType :: Lens' CoursesTopicsDelete (Maybe Text)
+ctdUploadType
+  = lens _ctdUploadType
+      (\ s a -> s{_ctdUploadType = a})
+
+-- | Identifier of the topic to delete.
+ctdId :: Lens' CoursesTopicsDelete Text
+ctdId = lens _ctdId (\ s a -> s{_ctdId = a})
+
+-- | JSONP
+ctdCallback :: Lens' CoursesTopicsDelete (Maybe Text)
+ctdCallback
+  = lens _ctdCallback (\ s a -> s{_ctdCallback = a})
+
+instance GoogleRequest CoursesTopicsDelete where
+        type Rs CoursesTopicsDelete = Empty
+        type Scopes CoursesTopicsDelete =
+             '["https://www.googleapis.com/auth/classroom.topics"]
+        requestClient CoursesTopicsDelete'{..}
+          = go _ctdCourseId _ctdId _ctdXgafv _ctdUploadProtocol
+              _ctdAccessToken
+              _ctdUploadType
+              _ctdCallback
+              (Just AltJSON)
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CoursesTopicsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Topics/Get.hs b/gen/Network/Google/Resource/Classroom/Courses/Topics/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/Courses/Topics/Get.hs
@@ -0,0 +1,171 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.Courses.Topics.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a topic. This method returns the following error codes: *
+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to access
+-- the requested course or topic, or for access errors. *
+-- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the
+-- requested course or topic does not exist.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.get@.
+module Network.Google.Resource.Classroom.Courses.Topics.Get
+    (
+    -- * REST Resource
+      CoursesTopicsGetResource
+
+    -- * Creating a Request
+    , coursesTopicsGet
+    , CoursesTopicsGet
+
+    -- * Request Lenses
+    , ctgXgafv
+    , ctgUploadProtocol
+    , ctgCourseId
+    , ctgAccessToken
+    , ctgUploadType
+    , ctgId
+    , ctgCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.courses.topics.get@ method which the
+-- 'CoursesTopicsGet' request conforms to.
+type CoursesTopicsGetResource =
+     "v1" :>
+       "courses" :>
+         Capture "courseId" Text :>
+           "topics" :>
+             Capture "id" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] Topic
+
+-- | Returns a topic. This method returns the following error codes: *
+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to access
+-- the requested course or topic, or for access errors. *
+-- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the
+-- requested course or topic does not exist.
+--
+-- /See:/ 'coursesTopicsGet' smart constructor.
+data CoursesTopicsGet =
+  CoursesTopicsGet'
+    { _ctgXgafv          :: !(Maybe Xgafv)
+    , _ctgUploadProtocol :: !(Maybe Text)
+    , _ctgCourseId       :: !Text
+    , _ctgAccessToken    :: !(Maybe Text)
+    , _ctgUploadType     :: !(Maybe Text)
+    , _ctgId             :: !Text
+    , _ctgCallback       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CoursesTopicsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctgXgafv'
+--
+-- * 'ctgUploadProtocol'
+--
+-- * 'ctgCourseId'
+--
+-- * 'ctgAccessToken'
+--
+-- * 'ctgUploadType'
+--
+-- * 'ctgId'
+--
+-- * 'ctgCallback'
+coursesTopicsGet
+    :: Text -- ^ 'ctgCourseId'
+    -> Text -- ^ 'ctgId'
+    -> CoursesTopicsGet
+coursesTopicsGet pCtgCourseId_ pCtgId_ =
+  CoursesTopicsGet'
+    { _ctgXgafv = Nothing
+    , _ctgUploadProtocol = Nothing
+    , _ctgCourseId = pCtgCourseId_
+    , _ctgAccessToken = Nothing
+    , _ctgUploadType = Nothing
+    , _ctgId = pCtgId_
+    , _ctgCallback = Nothing
+    }
+
+
+-- | V1 error format.
+ctgXgafv :: Lens' CoursesTopicsGet (Maybe Xgafv)
+ctgXgafv = lens _ctgXgafv (\ s a -> s{_ctgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ctgUploadProtocol :: Lens' CoursesTopicsGet (Maybe Text)
+ctgUploadProtocol
+  = lens _ctgUploadProtocol
+      (\ s a -> s{_ctgUploadProtocol = a})
+
+-- | Identifier of the course.
+ctgCourseId :: Lens' CoursesTopicsGet Text
+ctgCourseId
+  = lens _ctgCourseId (\ s a -> s{_ctgCourseId = a})
+
+-- | OAuth access token.
+ctgAccessToken :: Lens' CoursesTopicsGet (Maybe Text)
+ctgAccessToken
+  = lens _ctgAccessToken
+      (\ s a -> s{_ctgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ctgUploadType :: Lens' CoursesTopicsGet (Maybe Text)
+ctgUploadType
+  = lens _ctgUploadType
+      (\ s a -> s{_ctgUploadType = a})
+
+-- | Identifier of the topic.
+ctgId :: Lens' CoursesTopicsGet Text
+ctgId = lens _ctgId (\ s a -> s{_ctgId = a})
+
+-- | JSONP
+ctgCallback :: Lens' CoursesTopicsGet (Maybe Text)
+ctgCallback
+  = lens _ctgCallback (\ s a -> s{_ctgCallback = a})
+
+instance GoogleRequest CoursesTopicsGet where
+        type Rs CoursesTopicsGet = Topic
+        type Scopes CoursesTopicsGet =
+             '["https://www.googleapis.com/auth/classroom.topics",
+               "https://www.googleapis.com/auth/classroom.topics.readonly"]
+        requestClient CoursesTopicsGet'{..}
+          = go _ctgCourseId _ctgId _ctgXgafv _ctgUploadProtocol
+              _ctgAccessToken
+              _ctgUploadType
+              _ctgCallback
+              (Just AltJSON)
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CoursesTopicsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Topics/List.hs b/gen/Network/Google/Resource/Classroom/Courses/Topics/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/Courses/Topics/List.hs
@@ -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.Topics.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the list of topics that the requester is permitted to view. This
+-- method returns the following error codes: * \`PERMISSION_DENIED\` if the
+-- requesting user is not permitted to access the requested course or for
+-- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *
+-- \`NOT_FOUND\` if the requested course does not exist.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.list@.
+module Network.Google.Resource.Classroom.Courses.Topics.List
+    (
+    -- * REST Resource
+      CoursesTopicsListResource
+
+    -- * Creating a Request
+    , coursesTopicsList
+    , CoursesTopicsList
+
+    -- * Request Lenses
+    , ctlXgafv
+    , ctlUploadProtocol
+    , ctlCourseId
+    , ctlAccessToken
+    , ctlUploadType
+    , ctlPageToken
+    , ctlPageSize
+    , ctlCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.courses.topics.list@ method which the
+-- 'CoursesTopicsList' request conforms to.
+type CoursesTopicsListResource =
+     "v1" :>
+       "courses" :>
+         Capture "courseId" Text :>
+           "topics" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListTopicResponse
+
+-- | Returns the list of topics that the requester is permitted to view. This
+-- method returns the following error codes: * \`PERMISSION_DENIED\` if the
+-- requesting user is not permitted to access the requested course or for
+-- access errors. * \`INVALID_ARGUMENT\` if the request is malformed. *
+-- \`NOT_FOUND\` if the requested course does not exist.
+--
+-- /See:/ 'coursesTopicsList' smart constructor.
+data CoursesTopicsList =
+  CoursesTopicsList'
+    { _ctlXgafv          :: !(Maybe Xgafv)
+    , _ctlUploadProtocol :: !(Maybe Text)
+    , _ctlCourseId       :: !Text
+    , _ctlAccessToken    :: !(Maybe Text)
+    , _ctlUploadType     :: !(Maybe Text)
+    , _ctlPageToken      :: !(Maybe Text)
+    , _ctlPageSize       :: !(Maybe (Textual Int32))
+    , _ctlCallback       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CoursesTopicsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctlXgafv'
+--
+-- * 'ctlUploadProtocol'
+--
+-- * 'ctlCourseId'
+--
+-- * 'ctlAccessToken'
+--
+-- * 'ctlUploadType'
+--
+-- * 'ctlPageToken'
+--
+-- * 'ctlPageSize'
+--
+-- * 'ctlCallback'
+coursesTopicsList
+    :: Text -- ^ 'ctlCourseId'
+    -> CoursesTopicsList
+coursesTopicsList pCtlCourseId_ =
+  CoursesTopicsList'
+    { _ctlXgafv = Nothing
+    , _ctlUploadProtocol = Nothing
+    , _ctlCourseId = pCtlCourseId_
+    , _ctlAccessToken = Nothing
+    , _ctlUploadType = Nothing
+    , _ctlPageToken = Nothing
+    , _ctlPageSize = Nothing
+    , _ctlCallback = Nothing
+    }
+
+
+-- | V1 error format.
+ctlXgafv :: Lens' CoursesTopicsList (Maybe Xgafv)
+ctlXgafv = lens _ctlXgafv (\ s a -> s{_ctlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ctlUploadProtocol :: Lens' CoursesTopicsList (Maybe Text)
+ctlUploadProtocol
+  = lens _ctlUploadProtocol
+      (\ s a -> s{_ctlUploadProtocol = a})
+
+-- | Identifier of the course. This identifier can be either the
+-- Classroom-assigned identifier or an alias.
+ctlCourseId :: Lens' CoursesTopicsList Text
+ctlCourseId
+  = lens _ctlCourseId (\ s a -> s{_ctlCourseId = a})
+
+-- | OAuth access token.
+ctlAccessToken :: Lens' CoursesTopicsList (Maybe Text)
+ctlAccessToken
+  = lens _ctlAccessToken
+      (\ s a -> s{_ctlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ctlUploadType :: Lens' CoursesTopicsList (Maybe Text)
+ctlUploadType
+  = lens _ctlUploadType
+      (\ s a -> s{_ctlUploadType = a})
+
+-- | nextPageToken value returned from a previous list call, indicating that
+-- the subsequent page of results should be returned. The list request must
+-- be otherwise identical to the one that resulted in this token.
+ctlPageToken :: Lens' CoursesTopicsList (Maybe Text)
+ctlPageToken
+  = lens _ctlPageToken (\ s a -> s{_ctlPageToken = a})
+
+-- | Maximum number of items to return. Zero or unspecified indicates that
+-- the server may assign a maximum. The server may return fewer than the
+-- specified number of results.
+ctlPageSize :: Lens' CoursesTopicsList (Maybe Int32)
+ctlPageSize
+  = lens _ctlPageSize (\ s a -> s{_ctlPageSize = a}) .
+      mapping _Coerce
+
+-- | JSONP
+ctlCallback :: Lens' CoursesTopicsList (Maybe Text)
+ctlCallback
+  = lens _ctlCallback (\ s a -> s{_ctlCallback = a})
+
+instance GoogleRequest CoursesTopicsList where
+        type Rs CoursesTopicsList = ListTopicResponse
+        type Scopes CoursesTopicsList =
+             '["https://www.googleapis.com/auth/classroom.topics",
+               "https://www.googleapis.com/auth/classroom.topics.readonly"]
+        requestClient CoursesTopicsList'{..}
+          = go _ctlCourseId _ctlXgafv _ctlUploadProtocol
+              _ctlAccessToken
+              _ctlUploadType
+              _ctlPageToken
+              _ctlPageSize
+              _ctlCallback
+              (Just AltJSON)
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CoursesTopicsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Topics/Patch.hs b/gen/Network/Google/Resource/Classroom/Courses/Topics/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/Courses/Topics/Patch.hs
@@ -0,0 +1,203 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.Courses.Topics.Patch
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates one or more fields of a topic. This method returns the following
+-- error codes: * \`PERMISSION_DENIED\` if the requesting developer project
+-- did not create the corresponding topic or for access errors. *
+-- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the
+-- requested course or topic does not exist
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.topics.patch@.
+module Network.Google.Resource.Classroom.Courses.Topics.Patch
+    (
+    -- * REST Resource
+      CoursesTopicsPatchResource
+
+    -- * Creating a Request
+    , coursesTopicsPatch
+    , CoursesTopicsPatch
+
+    -- * Request Lenses
+    , ctpXgafv
+    , ctpUploadProtocol
+    , ctpUpdateMask
+    , ctpCourseId
+    , ctpAccessToken
+    , ctpUploadType
+    , ctpPayload
+    , ctpId
+    , ctpCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.courses.topics.patch@ method which the
+-- 'CoursesTopicsPatch' request conforms to.
+type CoursesTopicsPatchResource =
+     "v1" :>
+       "courses" :>
+         Capture "courseId" Text :>
+           "topics" :>
+             Capture "id" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "updateMask" GFieldMask :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] Topic :> Patch '[JSON] Topic
+
+-- | Updates one or more fields of a topic. This method returns the following
+-- error codes: * \`PERMISSION_DENIED\` if the requesting developer project
+-- did not create the corresponding topic or for access errors. *
+-- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the
+-- requested course or topic does not exist
+--
+-- /See:/ 'coursesTopicsPatch' smart constructor.
+data CoursesTopicsPatch =
+  CoursesTopicsPatch'
+    { _ctpXgafv          :: !(Maybe Xgafv)
+    , _ctpUploadProtocol :: !(Maybe Text)
+    , _ctpUpdateMask     :: !(Maybe GFieldMask)
+    , _ctpCourseId       :: !Text
+    , _ctpAccessToken    :: !(Maybe Text)
+    , _ctpUploadType     :: !(Maybe Text)
+    , _ctpPayload        :: !Topic
+    , _ctpId             :: !Text
+    , _ctpCallback       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CoursesTopicsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctpXgafv'
+--
+-- * 'ctpUploadProtocol'
+--
+-- * 'ctpUpdateMask'
+--
+-- * 'ctpCourseId'
+--
+-- * 'ctpAccessToken'
+--
+-- * 'ctpUploadType'
+--
+-- * 'ctpPayload'
+--
+-- * 'ctpId'
+--
+-- * 'ctpCallback'
+coursesTopicsPatch
+    :: Text -- ^ 'ctpCourseId'
+    -> Topic -- ^ 'ctpPayload'
+    -> Text -- ^ 'ctpId'
+    -> CoursesTopicsPatch
+coursesTopicsPatch pCtpCourseId_ pCtpPayload_ pCtpId_ =
+  CoursesTopicsPatch'
+    { _ctpXgafv = Nothing
+    , _ctpUploadProtocol = Nothing
+    , _ctpUpdateMask = Nothing
+    , _ctpCourseId = pCtpCourseId_
+    , _ctpAccessToken = Nothing
+    , _ctpUploadType = Nothing
+    , _ctpPayload = pCtpPayload_
+    , _ctpId = pCtpId_
+    , _ctpCallback = Nothing
+    }
+
+
+-- | V1 error format.
+ctpXgafv :: Lens' CoursesTopicsPatch (Maybe Xgafv)
+ctpXgafv = lens _ctpXgafv (\ s a -> s{_ctpXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ctpUploadProtocol :: Lens' CoursesTopicsPatch (Maybe Text)
+ctpUploadProtocol
+  = lens _ctpUploadProtocol
+      (\ s a -> s{_ctpUploadProtocol = a})
+
+-- | Mask that identifies which fields on the topic to update. This field is
+-- required to do an update. The update fails if invalid fields are
+-- specified. If a field supports empty values, it can be cleared by
+-- specifying it in the update mask and not in the Topic object. If a field
+-- that does not support empty values is included in the update mask and
+-- not set in the Topic object, an \`INVALID_ARGUMENT\` error will be
+-- returned. The following fields may be specified: * \`name\`
+ctpUpdateMask :: Lens' CoursesTopicsPatch (Maybe GFieldMask)
+ctpUpdateMask
+  = lens _ctpUpdateMask
+      (\ s a -> s{_ctpUpdateMask = a})
+
+-- | Identifier of the course. This identifier can be either the
+-- Classroom-assigned identifier or an alias.
+ctpCourseId :: Lens' CoursesTopicsPatch Text
+ctpCourseId
+  = lens _ctpCourseId (\ s a -> s{_ctpCourseId = a})
+
+-- | OAuth access token.
+ctpAccessToken :: Lens' CoursesTopicsPatch (Maybe Text)
+ctpAccessToken
+  = lens _ctpAccessToken
+      (\ s a -> s{_ctpAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ctpUploadType :: Lens' CoursesTopicsPatch (Maybe Text)
+ctpUploadType
+  = lens _ctpUploadType
+      (\ s a -> s{_ctpUploadType = a})
+
+-- | Multipart request metadata.
+ctpPayload :: Lens' CoursesTopicsPatch Topic
+ctpPayload
+  = lens _ctpPayload (\ s a -> s{_ctpPayload = a})
+
+-- | Identifier of the topic.
+ctpId :: Lens' CoursesTopicsPatch Text
+ctpId = lens _ctpId (\ s a -> s{_ctpId = a})
+
+-- | JSONP
+ctpCallback :: Lens' CoursesTopicsPatch (Maybe Text)
+ctpCallback
+  = lens _ctpCallback (\ s a -> s{_ctpCallback = a})
+
+instance GoogleRequest CoursesTopicsPatch where
+        type Rs CoursesTopicsPatch = Topic
+        type Scopes CoursesTopicsPatch =
+             '["https://www.googleapis.com/auth/classroom.topics"]
+        requestClient CoursesTopicsPatch'{..}
+          = go _ctpCourseId _ctpId _ctpXgafv _ctpUploadProtocol
+              _ctpUpdateMask
+              _ctpAccessToken
+              _ctpUploadType
+              _ctpCallback
+              (Just AltJSON)
+              _ctpPayload
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CoursesTopicsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/Courses/Update.hs b/gen/Network/Google/Resource/Classroom/Courses/Update.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/Update.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/Update.hs
@@ -70,7 +70,8 @@
 -- following request errors: * CourseNotModifiable
 --
 -- /See:/ 'coursesUpdate' smart constructor.
-data CoursesUpdate = CoursesUpdate'
+data CoursesUpdate =
+  CoursesUpdate'
     { _cuXgafv          :: !(Maybe Xgafv)
     , _cuUploadProtocol :: !(Maybe Text)
     , _cuAccessToken    :: !(Maybe Text)
@@ -78,8 +79,10 @@
     , _cuPayload        :: !Course
     , _cuId             :: !Text
     , _cuCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CoursesUpdate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -102,7 +105,7 @@
     -> Text -- ^ 'cuId'
     -> CoursesUpdate
 coursesUpdate pCuPayload_ pCuId_ =
-    CoursesUpdate'
+  CoursesUpdate'
     { _cuXgafv = Nothing
     , _cuUploadProtocol = Nothing
     , _cuAccessToken = Nothing
@@ -111,6 +114,7 @@
     , _cuId = pCuId_
     , _cuCallback = Nothing
     }
+
 
 -- | V1 error format.
 cuXgafv :: Lens' CoursesUpdate (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Invitations/Accept.hs b/gen/Network/Google/Resource/Classroom/Invitations/Accept.hs
--- a/gen/Network/Google/Resource/Classroom/Invitations/Accept.hs
+++ b/gen/Network/Google/Resource/Classroom/Invitations/Accept.hs
@@ -76,15 +76,18 @@
 -- \`NOT_FOUND\` if no invitation exists with the requested ID.
 --
 -- /See:/ 'invitationsAccept' smart constructor.
-data InvitationsAccept = InvitationsAccept'
+data InvitationsAccept =
+  InvitationsAccept'
     { _iaXgafv          :: !(Maybe Xgafv)
     , _iaUploadProtocol :: !(Maybe Text)
     , _iaAccessToken    :: !(Maybe Text)
     , _iaUploadType     :: !(Maybe Text)
     , _iaId             :: !Text
     , _iaCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'InvitationsAccept' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -104,7 +107,7 @@
     :: Text -- ^ 'iaId'
     -> InvitationsAccept
 invitationsAccept pIaId_ =
-    InvitationsAccept'
+  InvitationsAccept'
     { _iaXgafv = Nothing
     , _iaUploadProtocol = Nothing
     , _iaAccessToken = Nothing
@@ -112,6 +115,7 @@
     , _iaId = pIaId_
     , _iaCallback = Nothing
     }
+
 
 -- | V1 error format.
 iaXgafv :: Lens' InvitationsAccept (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Invitations/Create.hs b/gen/Network/Google/Resource/Classroom/Invitations/Create.hs
--- a/gen/Network/Google/Resource/Classroom/Invitations/Create.hs
+++ b/gen/Network/Google/Resource/Classroom/Invitations/Create.hs
@@ -76,15 +76,18 @@
 -- specified user and course already exists.
 --
 -- /See:/ 'invitationsCreate' smart constructor.
-data InvitationsCreate = InvitationsCreate'
+data InvitationsCreate =
+  InvitationsCreate'
     { _icXgafv          :: !(Maybe Xgafv)
     , _icUploadProtocol :: !(Maybe Text)
     , _icAccessToken    :: !(Maybe Text)
     , _icUploadType     :: !(Maybe Text)
     , _icPayload        :: !Invitation
     , _icCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'InvitationsCreate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -104,7 +107,7 @@
     :: Invitation -- ^ 'icPayload'
     -> InvitationsCreate
 invitationsCreate pIcPayload_ =
-    InvitationsCreate'
+  InvitationsCreate'
     { _icXgafv = Nothing
     , _icUploadProtocol = Nothing
     , _icAccessToken = Nothing
@@ -112,6 +115,7 @@
     , _icPayload = pIcPayload_
     , _icCallback = Nothing
     }
+
 
 -- | V1 error format.
 icXgafv :: Lens' InvitationsCreate (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Invitations/Delete.hs b/gen/Network/Google/Resource/Classroom/Invitations/Delete.hs
--- a/gen/Network/Google/Resource/Classroom/Invitations/Delete.hs
+++ b/gen/Network/Google/Resource/Classroom/Invitations/Delete.hs
@@ -66,15 +66,18 @@
 -- invitation exists with the requested ID.
 --
 -- /See:/ 'invitationsDelete' smart constructor.
-data InvitationsDelete = InvitationsDelete'
+data InvitationsDelete =
+  InvitationsDelete'
     { _idXgafv          :: !(Maybe Xgafv)
     , _idUploadProtocol :: !(Maybe Text)
     , _idAccessToken    :: !(Maybe Text)
     , _idUploadType     :: !(Maybe Text)
     , _idId             :: !Text
     , _idCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'InvitationsDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -94,7 +97,7 @@
     :: Text -- ^ 'idId'
     -> InvitationsDelete
 invitationsDelete pIdId_ =
-    InvitationsDelete'
+  InvitationsDelete'
     { _idXgafv = Nothing
     , _idUploadProtocol = Nothing
     , _idAccessToken = Nothing
@@ -102,6 +105,7 @@
     , _idId = pIdId_
     , _idCallback = Nothing
     }
+
 
 -- | V1 error format.
 idXgafv :: Lens' InvitationsDelete (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Invitations/Get.hs b/gen/Network/Google/Resource/Classroom/Invitations/Get.hs
--- a/gen/Network/Google/Resource/Classroom/Invitations/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/Invitations/Get.hs
@@ -66,15 +66,18 @@
 -- invitation exists with the requested ID.
 --
 -- /See:/ 'invitationsGet' smart constructor.
-data InvitationsGet = InvitationsGet'
+data InvitationsGet =
+  InvitationsGet'
     { _igXgafv          :: !(Maybe Xgafv)
     , _igUploadProtocol :: !(Maybe Text)
     , _igAccessToken    :: !(Maybe Text)
     , _igUploadType     :: !(Maybe Text)
     , _igId             :: !Text
     , _igCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'InvitationsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -94,7 +97,7 @@
     :: Text -- ^ 'igId'
     -> InvitationsGet
 invitationsGet pIgId_ =
-    InvitationsGet'
+  InvitationsGet'
     { _igXgafv = Nothing
     , _igUploadProtocol = Nothing
     , _igAccessToken = Nothing
@@ -102,6 +105,7 @@
     , _igId = pIgId_
     , _igCallback = Nothing
     }
+
 
 -- | V1 error format.
 igXgafv :: Lens' InvitationsGet (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Invitations/List.hs b/gen/Network/Google/Resource/Classroom/Invitations/List.hs
--- a/gen/Network/Google/Resource/Classroom/Invitations/List.hs
+++ b/gen/Network/Google/Resource/Classroom/Invitations/List.hs
@@ -75,7 +75,8 @@
 -- \`PERMISSION_DENIED\` for access errors.
 --
 -- /See:/ 'invitationsList' smart constructor.
-data InvitationsList = InvitationsList'
+data InvitationsList =
+  InvitationsList'
     { _ilXgafv          :: !(Maybe Xgafv)
     , _ilUploadProtocol :: !(Maybe Text)
     , _ilCourseId       :: !(Maybe Text)
@@ -85,8 +86,10 @@
     , _ilPageToken      :: !(Maybe Text)
     , _ilPageSize       :: !(Maybe (Textual Int32))
     , _ilCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'InvitationsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -111,7 +114,7 @@
 invitationsList
     :: InvitationsList
 invitationsList =
-    InvitationsList'
+  InvitationsList'
     { _ilXgafv = Nothing
     , _ilUploadProtocol = Nothing
     , _ilCourseId = Nothing
@@ -122,6 +125,7 @@
     , _ilPageSize = Nothing
     , _ilCallback = Nothing
     }
+
 
 -- | V1 error format.
 ilXgafv :: Lens' InvitationsList (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Registrations/Create.hs b/gen/Network/Google/Resource/Classroom/Registrations/Create.hs
--- a/gen/Network/Google/Resource/Classroom/Registrations/Create.hs
+++ b/gen/Network/Google/Resource/Classroom/Registrations/Create.hs
@@ -101,15 +101,18 @@
 -- it.
 --
 -- /See:/ 'registrationsCreate' smart constructor.
-data RegistrationsCreate = RegistrationsCreate'
+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)
+    }
+  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:
@@ -129,7 +132,7 @@
     :: Registration -- ^ 'rcPayload'
     -> RegistrationsCreate
 registrationsCreate pRcPayload_ =
-    RegistrationsCreate'
+  RegistrationsCreate'
     { _rcXgafv = Nothing
     , _rcUploadProtocol = Nothing
     , _rcAccessToken = Nothing
@@ -137,6 +140,7 @@
     , _rcPayload = pRcPayload_
     , _rcCallback = Nothing
     }
+
 
 -- | V1 error format.
 rcXgafv :: Lens' RegistrationsCreate (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/Registrations/Delete.hs b/gen/Network/Google/Resource/Classroom/Registrations/Delete.hs
--- a/gen/Network/Google/Resource/Classroom/Registrations/Delete.hs
+++ b/gen/Network/Google/Resource/Classroom/Registrations/Delete.hs
@@ -62,15 +62,18 @@
 -- notifications for that \`Registration\`.
 --
 -- /See:/ 'registrationsDelete' smart constructor.
-data RegistrationsDelete = RegistrationsDelete'
+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)
+    }
+  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:
@@ -90,7 +93,7 @@
     :: Text -- ^ 'rdRegistrationId'
     -> RegistrationsDelete
 registrationsDelete pRdRegistrationId_ =
-    RegistrationsDelete'
+  RegistrationsDelete'
     { _rdRegistrationId = pRdRegistrationId_
     , _rdXgafv = Nothing
     , _rdUploadProtocol = Nothing
@@ -98,6 +101,7 @@
     , _rdUploadType = Nothing
     , _rdCallback = Nothing
     }
+
 
 -- | The \`registration_id\` of the \`Registration\` to be deleted.
 rdRegistrationId :: Lens' RegistrationsDelete Text
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/Get.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/Get.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/Get.hs
@@ -66,15 +66,18 @@
 -- access errors.
 --
 -- /See:/ 'userProFilesGet' smart constructor.
-data UserProFilesGet = UserProFilesGet'
+data UserProFilesGet =
+  UserProFilesGet'
     { _upfgXgafv          :: !(Maybe Xgafv)
     , _upfgUploadProtocol :: !(Maybe Text)
     , _upfgAccessToken    :: !(Maybe Text)
     , _upfgUploadType     :: !(Maybe Text)
     , _upfgUserId         :: !Text
     , _upfgCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UserProFilesGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -94,7 +97,7 @@
     :: Text -- ^ 'upfgUserId'
     -> UserProFilesGet
 userProFilesGet pUpfgUserId_ =
-    UserProFilesGet'
+  UserProFilesGet'
     { _upfgXgafv = Nothing
     , _upfgUploadProtocol = Nothing
     , _upfgAccessToken = Nothing
@@ -102,6 +105,7 @@
     , _upfgUserId = pUpfgUserId_
     , _upfgCallback = Nothing
     }
+
 
 -- | V1 error format.
 upfgXgafv :: Lens' UserProFilesGet (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Create.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Create.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Create.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Create.hs
@@ -110,7 +110,8 @@
 -- existing \`Guardian\` for this user.
 --
 -- /See:/ 'userProFilesGuardianInvitationsCreate' smart constructor.
-data UserProFilesGuardianInvitationsCreate = UserProFilesGuardianInvitationsCreate'
+data UserProFilesGuardianInvitationsCreate =
+  UserProFilesGuardianInvitationsCreate'
     { _upfgicStudentId      :: !Text
     , _upfgicXgafv          :: !(Maybe Xgafv)
     , _upfgicUploadProtocol :: !(Maybe Text)
@@ -118,8 +119,10 @@
     , _upfgicUploadType     :: !(Maybe Text)
     , _upfgicPayload        :: !GuardianInvitation
     , _upfgicCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UserProFilesGuardianInvitationsCreate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -142,7 +145,7 @@
     -> GuardianInvitation -- ^ 'upfgicPayload'
     -> UserProFilesGuardianInvitationsCreate
 userProFilesGuardianInvitationsCreate pUpfgicStudentId_ pUpfgicPayload_ =
-    UserProFilesGuardianInvitationsCreate'
+  UserProFilesGuardianInvitationsCreate'
     { _upfgicStudentId = pUpfgicStudentId_
     , _upfgicXgafv = Nothing
     , _upfgicUploadProtocol = Nothing
@@ -152,6 +155,7 @@
     , _upfgicCallback = Nothing
     }
 
+
 -- | ID of the student (in standard format)
 upfgicStudentId :: Lens' UserProFilesGuardianInvitationsCreate Text
 upfgicStudentId
@@ -194,7 +198,8 @@
       (\ s a -> s{_upfgicCallback = a})
 
 instance GoogleRequest
-         UserProFilesGuardianInvitationsCreate where
+           UserProFilesGuardianInvitationsCreate
+         where
         type Rs UserProFilesGuardianInvitationsCreate =
              GuardianInvitation
         type Scopes UserProFilesGuardianInvitationsCreate =
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Get.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Get.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Get.hs
@@ -84,7 +84,8 @@
 -- student.
 --
 -- /See:/ 'userProFilesGuardianInvitationsGet' smart constructor.
-data UserProFilesGuardianInvitationsGet = UserProFilesGuardianInvitationsGet'
+data UserProFilesGuardianInvitationsGet =
+  UserProFilesGuardianInvitationsGet'
     { _upfgigStudentId      :: !Text
     , _upfgigXgafv          :: !(Maybe Xgafv)
     , _upfgigUploadProtocol :: !(Maybe Text)
@@ -92,8 +93,10 @@
     , _upfgigUploadType     :: !(Maybe Text)
     , _upfgigInvitationId   :: !Text
     , _upfgigCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UserProFilesGuardianInvitationsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -116,7 +119,7 @@
     -> Text -- ^ 'upfgigInvitationId'
     -> UserProFilesGuardianInvitationsGet
 userProFilesGuardianInvitationsGet pUpfgigStudentId_ pUpfgigInvitationId_ =
-    UserProFilesGuardianInvitationsGet'
+  UserProFilesGuardianInvitationsGet'
     { _upfgigStudentId = pUpfgigStudentId_
     , _upfgigXgafv = Nothing
     , _upfgigUploadProtocol = Nothing
@@ -126,6 +129,7 @@
     , _upfgigCallback = Nothing
     }
 
+
 -- | The ID of the student whose guardian invitation is being requested.
 upfgigStudentId :: Lens' UserProFilesGuardianInvitationsGet Text
 upfgigStudentId
@@ -168,7 +172,8 @@
       (\ s a -> s{_upfgigCallback = a})
 
 instance GoogleRequest
-         UserProFilesGuardianInvitationsGet where
+           UserProFilesGuardianInvitationsGet
+         where
         type Rs UserProFilesGuardianInvitationsGet =
              GuardianInvitation
         type Scopes UserProFilesGuardianInvitationsGet =
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/List.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/List.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/List.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/List.hs
@@ -94,7 +94,8 @@
 -- recognized, but Classroom has no record of that student.
 --
 -- /See:/ 'userProFilesGuardianInvitationsList' smart constructor.
-data UserProFilesGuardianInvitationsList = UserProFilesGuardianInvitationsList'
+data UserProFilesGuardianInvitationsList =
+  UserProFilesGuardianInvitationsList'
     { _upfgilStudentId           :: !Text
     , _upfgilStates              :: !(Maybe [Text])
     , _upfgilXgafv               :: !(Maybe Xgafv)
@@ -105,8 +106,10 @@
     , _upfgilPageToken           :: !(Maybe Text)
     , _upfgilPageSize            :: !(Maybe (Textual Int32))
     , _upfgilCallback            :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UserProFilesGuardianInvitationsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -134,7 +137,7 @@
     :: Text -- ^ 'upfgilStudentId'
     -> UserProFilesGuardianInvitationsList
 userProFilesGuardianInvitationsList pUpfgilStudentId_ =
-    UserProFilesGuardianInvitationsList'
+  UserProFilesGuardianInvitationsList'
     { _upfgilStudentId = pUpfgilStudentId_
     , _upfgilStates = Nothing
     , _upfgilXgafv = Nothing
@@ -147,6 +150,7 @@
     , _upfgilCallback = Nothing
     }
 
+
 -- | The ID of the student whose guardian invitations are to be returned. The
 -- identifier can be one of the following: * the numeric identifier for the
 -- user * the email address of the user * the string literal \`\"me\"\`,
@@ -221,7 +225,8 @@
       (\ s a -> s{_upfgilCallback = a})
 
 instance GoogleRequest
-         UserProFilesGuardianInvitationsList where
+           UserProFilesGuardianInvitationsList
+         where
         type Rs UserProFilesGuardianInvitationsList =
              ListGuardianInvitationsResponse
         type Scopes UserProFilesGuardianInvitationsList =
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Patch.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Patch.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Patch.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Patch.hs
@@ -94,7 +94,8 @@
 -- refer to a guardian invitation known to Classroom.
 --
 -- /See:/ 'userProFilesGuardianInvitationsPatch' smart constructor.
-data UserProFilesGuardianInvitationsPatch = UserProFilesGuardianInvitationsPatch'
+data UserProFilesGuardianInvitationsPatch =
+  UserProFilesGuardianInvitationsPatch'
     { _upfgipStudentId      :: !Text
     , _upfgipXgafv          :: !(Maybe Xgafv)
     , _upfgipUploadProtocol :: !(Maybe Text)
@@ -104,8 +105,10 @@
     , _upfgipPayload        :: !GuardianInvitation
     , _upfgipInvitationId   :: !Text
     , _upfgipCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UserProFilesGuardianInvitationsPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -133,7 +136,7 @@
     -> Text -- ^ 'upfgipInvitationId'
     -> UserProFilesGuardianInvitationsPatch
 userProFilesGuardianInvitationsPatch pUpfgipStudentId_ pUpfgipPayload_ pUpfgipInvitationId_ =
-    UserProFilesGuardianInvitationsPatch'
+  UserProFilesGuardianInvitationsPatch'
     { _upfgipStudentId = pUpfgipStudentId_
     , _upfgipXgafv = Nothing
     , _upfgipUploadProtocol = Nothing
@@ -145,6 +148,7 @@
     , _upfgipCallback = Nothing
     }
 
+
 -- | The ID of the student whose guardian invitation is to be modified.
 upfgipStudentId :: Lens' UserProFilesGuardianInvitationsPatch Text
 upfgipStudentId
@@ -202,7 +206,8 @@
       (\ s a -> s{_upfgipCallback = a})
 
 instance GoogleRequest
-         UserProFilesGuardianInvitationsPatch where
+           UserProFilesGuardianInvitationsPatch
+         where
         type Rs UserProFilesGuardianInvitationsPatch =
              GuardianInvitation
         type Scopes UserProFilesGuardianInvitationsPatch =
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs
@@ -85,7 +85,8 @@
 -- record exists for that student with the provided \`guardian_id\`.
 --
 -- /See:/ 'userProFilesGuardiansDelete' smart constructor.
-data UserProFilesGuardiansDelete = UserProFilesGuardiansDelete'
+data UserProFilesGuardiansDelete =
+  UserProFilesGuardiansDelete'
     { _upfgdStudentId      :: !Text
     , _upfgdXgafv          :: !(Maybe Xgafv)
     , _upfgdUploadProtocol :: !(Maybe Text)
@@ -93,8 +94,10 @@
     , _upfgdUploadType     :: !(Maybe Text)
     , _upfgdGuardianId     :: !Text
     , _upfgdCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UserProFilesGuardiansDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -117,7 +120,7 @@
     -> Text -- ^ 'upfgdGuardianId'
     -> UserProFilesGuardiansDelete
 userProFilesGuardiansDelete pUpfgdStudentId_ pUpfgdGuardianId_ =
-    UserProFilesGuardiansDelete'
+  UserProFilesGuardiansDelete'
     { _upfgdStudentId = pUpfgdStudentId_
     , _upfgdXgafv = Nothing
     , _upfgdUploadProtocol = Nothing
@@ -126,6 +129,7 @@
     , _upfgdGuardianId = pUpfgdGuardianId_
     , _upfgdCallback = Nothing
     }
+
 
 -- | The student whose guardian is to be deleted. One of the following: * the
 -- numeric identifier for the user * the email address of the user * the
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs
@@ -85,7 +85,8 @@
 -- \`guardian_id\`.
 --
 -- /See:/ 'userProFilesGuardiansGet' smart constructor.
-data UserProFilesGuardiansGet = UserProFilesGuardiansGet'
+data UserProFilesGuardiansGet =
+  UserProFilesGuardiansGet'
     { _upfggStudentId      :: !Text
     , _upfggXgafv          :: !(Maybe Xgafv)
     , _upfggUploadProtocol :: !(Maybe Text)
@@ -93,8 +94,10 @@
     , _upfggUploadType     :: !(Maybe Text)
     , _upfggGuardianId     :: !Text
     , _upfggCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UserProFilesGuardiansGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -117,7 +120,7 @@
     -> Text -- ^ 'upfggGuardianId'
     -> UserProFilesGuardiansGet
 userProFilesGuardiansGet pUpfggStudentId_ pUpfggGuardianId_ =
-    UserProFilesGuardiansGet'
+  UserProFilesGuardiansGet'
     { _upfggStudentId = pUpfggStudentId_
     , _upfggXgafv = Nothing
     , _upfggUploadProtocol = Nothing
@@ -126,6 +129,7 @@
     , _upfggGuardianId = pUpfggGuardianId_
     , _upfggCallback = Nothing
     }
+
 
 -- | The student whose guardian is being requested. One of the following: *
 -- the numeric identifier for the user * the email address of the user *
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/List.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/List.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/List.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/List.hs
@@ -98,7 +98,8 @@
 -- format can be recognized, but Classroom has no record of that student.
 --
 -- /See:/ 'userProFilesGuardiansList' smart constructor.
-data UserProFilesGuardiansList = UserProFilesGuardiansList'
+data UserProFilesGuardiansList =
+  UserProFilesGuardiansList'
     { _upfglStudentId           :: !Text
     , _upfglXgafv               :: !(Maybe Xgafv)
     , _upfglUploadProtocol      :: !(Maybe Text)
@@ -108,8 +109,10 @@
     , _upfglPageToken           :: !(Maybe Text)
     , _upfglPageSize            :: !(Maybe (Textual Int32))
     , _upfglCallback            :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UserProFilesGuardiansList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -135,7 +138,7 @@
     :: Text -- ^ 'upfglStudentId'
     -> UserProFilesGuardiansList
 userProFilesGuardiansList pUpfglStudentId_ =
-    UserProFilesGuardiansList'
+  UserProFilesGuardiansList'
     { _upfglStudentId = pUpfglStudentId_
     , _upfglXgafv = Nothing
     , _upfglUploadProtocol = Nothing
@@ -146,6 +149,7 @@
     , _upfglPageSize = Nothing
     , _upfglCallback = Nothing
     }
+
 
 -- | Filter results by the student who the guardian is linked to. The
 -- identifier can be one of the following: * the numeric identifier for the
diff --git a/gogol-classroom.cabal b/gogol-classroom.cabal
--- a/gogol-classroom.cabal
+++ b/gogol-classroom.cabal
@@ -1,5 +1,5 @@
 name:                  gogol-classroom
-version:               0.4.0
+version:               0.5.0
 synopsis:              Google Classroom SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -70,6 +70,11 @@
         , Network.Google.Resource.Classroom.Courses.Teachers.Delete
         , Network.Google.Resource.Classroom.Courses.Teachers.Get
         , Network.Google.Resource.Classroom.Courses.Teachers.List
+        , Network.Google.Resource.Classroom.Courses.Topics.Create
+        , Network.Google.Resource.Classroom.Courses.Topics.Delete
+        , Network.Google.Resource.Classroom.Courses.Topics.Get
+        , Network.Google.Resource.Classroom.Courses.Topics.List
+        , Network.Google.Resource.Classroom.Courses.Topics.Patch
         , Network.Google.Resource.Classroom.Courses.Update
         , Network.Google.Resource.Classroom.Invitations.Accept
         , Network.Google.Resource.Classroom.Invitations.Create
@@ -92,5 +97,5 @@
         , Network.Google.Classroom.Types.Sum
 
     build-depends:
-          gogol-core == 0.4.0.*
+          gogol-core == 0.5.0.*
         , base       >= 4.7 && < 5
