diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.1.0`
+`0.1.1`
 
 
 ## 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
@@ -140,6 +140,27 @@
     -- ** classroom.userProfiles.get
     , module Network.Google.Resource.Classroom.UserProFiles.Get
 
+    -- ** classroom.userProfiles.guardianInvitations.create
+    , module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create
+
+    -- ** classroom.userProfiles.guardianInvitations.get
+    , module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get
+
+    -- ** classroom.userProfiles.guardianInvitations.list
+    , module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List
+
+    -- ** classroom.userProfiles.guardianInvitations.patch
+    , module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch
+
+    -- ** classroom.userProfiles.guardians.delete
+    , module Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete
+
+    -- ** classroom.userProfiles.guardians.get
+    , module Network.Google.Resource.Classroom.UserProFiles.Guardians.Get
+
+    -- ** classroom.userProfiles.guardians.list
+    , module Network.Google.Resource.Classroom.UserProFiles.Guardians.List
+
     -- * Types
 
     -- ** ListCourseAliasesResponse
@@ -177,6 +198,15 @@
     , dfTitle
     , dfAlternateLink
 
+    -- ** GuardianInvitation
+    , GuardianInvitation
+    , guardianInvitation
+    , giCreationTime
+    , giStudentId
+    , giState
+    , giInvitationId
+    , giInvitedEmailAddress
+
     -- ** ReturnStudentSubmissionRequest
     , ReturnStudentSubmissionRequest
     , returnStudentSubmissionRequest
@@ -242,6 +272,14 @@
     , lirNextPageToken
     , lirInvitations
 
+    -- ** Guardian
+    , Guardian
+    , guardian
+    , gStudentId
+    , gGuardianId
+    , gInvitedEmailAddress
+    , gGuardianProFile
+
     -- ** CourseMaterial
     , CourseMaterial
     , courseMaterial
@@ -291,6 +329,12 @@
     , ssAlternateLink
     , ssCourseWorkId
 
+    -- ** ListGuardiansResponse
+    , ListGuardiansResponse
+    , listGuardiansResponse
+    , lgrNextPageToken
+    , lgrGuardians
+
     -- ** Date
     , Date
     , date
@@ -366,6 +410,7 @@
     , cTeacherGroupEmail
     , cTeacherFolder
     , cCourseState
+    , cGuardiansEnabled
     , cEnrollmentCode
     , cUpdateTime
     , cOwnerId
@@ -385,6 +430,12 @@
     , todMinutes
     , todSeconds
 
+    -- ** ListGuardianInvitationsResponse
+    , ListGuardianInvitationsResponse
+    , listGuardianInvitationsResponse
+    , lgirNextPageToken
+    , lgirGuardianInvitations
+
     -- ** Assignment
     , Assignment
     , assignment
@@ -465,6 +516,13 @@
 import           Network.Google.Resource.Classroom.Invitations.Get
 import           Network.Google.Resource.Classroom.Invitations.List
 import           Network.Google.Resource.Classroom.UserProFiles.Get
+import           Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create
+import           Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get
+import           Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List
+import           Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch
+import           Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete
+import           Network.Google.Resource.Classroom.UserProFiles.Guardians.Get
+import           Network.Google.Resource.Classroom.UserProFiles.Guardians.List
 
 {- $resources
 TODO
@@ -508,4 +566,11 @@
        :<|> CoursesCreateResource
        :<|> CoursesDeleteResource
        :<|> CoursesUpdateResource
+       :<|> UserProFilesGuardiansListResource
+       :<|> UserProFilesGuardiansGetResource
+       :<|> UserProFilesGuardiansDeleteResource
+       :<|> UserProFilesGuardianInvitationsListResource
+       :<|> UserProFilesGuardianInvitationsPatchResource
+       :<|> UserProFilesGuardianInvitationsGetResource
+       :<|> UserProFilesGuardianInvitationsCreateResource
        :<|> UserProFilesGetResource
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
@@ -69,6 +69,15 @@
     , dfTitle
     , dfAlternateLink
 
+    -- * GuardianInvitation
+    , GuardianInvitation
+    , guardianInvitation
+    , giCreationTime
+    , giStudentId
+    , giState
+    , giInvitationId
+    , giInvitedEmailAddress
+
     -- * ReturnStudentSubmissionRequest
     , ReturnStudentSubmissionRequest
     , returnStudentSubmissionRequest
@@ -134,6 +143,14 @@
     , lirNextPageToken
     , lirInvitations
 
+    -- * Guardian
+    , Guardian
+    , guardian
+    , gStudentId
+    , gGuardianId
+    , gInvitedEmailAddress
+    , gGuardianProFile
+
     -- * CourseMaterial
     , CourseMaterial
     , courseMaterial
@@ -183,6 +200,12 @@
     , ssAlternateLink
     , ssCourseWorkId
 
+    -- * ListGuardiansResponse
+    , ListGuardiansResponse
+    , listGuardiansResponse
+    , lgrNextPageToken
+    , lgrGuardians
+
     -- * Date
     , Date
     , date
@@ -258,6 +281,7 @@
     , cTeacherGroupEmail
     , cTeacherFolder
     , cCourseState
+    , cGuardiansEnabled
     , cEnrollmentCode
     , cUpdateTime
     , cOwnerId
@@ -276,6 +300,12 @@
     , todHours
     , todMinutes
     , todSeconds
+
+    -- * ListGuardianInvitationsResponse
+    , ListGuardianInvitationsResponse
+    , listGuardianInvitationsResponse
+    , lgirNextPageToken
+    , lgirGuardianInvitations
 
     -- * Assignment
     , Assignment
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
@@ -161,12 +161,13 @@
   = lens _cwCreationTime
       (\ s a -> s{_cwCreationTime = a})
 
--- | Status of this course work.. If unspecified, the default state is
+-- | Status of this course work. If unspecified, the default state is
 -- \`DRAFT\`.
 cwState :: Lens' CourseWork (Maybe Text)
 cwState = lens _cwState (\ s a -> s{_cwState = a})
 
--- | Additional materials.
+-- | Additional materials. CourseWork must have no more than 20 material
+-- items.
 cwMaterials :: Lens' CourseWork [Material]
 cwMaterials
   = lens _cwMaterials (\ s a -> s{_cwMaterials = a}) .
@@ -179,7 +180,8 @@
   = lens _cwCourseId (\ s a -> s{_cwCourseId = a})
 
 -- | Maximum grade for this course work. If zero or unspecified, this
--- assignment is considered ungraded. This must be an integer value.
+-- assignment is considered ungraded. This must be a non-negative integer
+-- value.
 cwMaxPoints :: Lens' CourseWork (Maybe Double)
 cwMaxPoints
   = lens _cwMaxPoints (\ s a -> s{_cwMaxPoints = a}) .
@@ -376,6 +378,91 @@
                   ("id" .=) <$> _dfId, ("title" .=) <$> _dfTitle,
                   ("alternateLink" .=) <$> _dfAlternateLink])
 
+-- | An invitation to become the guardian of a specified user, sent to a
+-- specified email address.
+--
+-- /See:/ 'guardianInvitation' smart constructor.
+data GuardianInvitation = GuardianInvitation'
+    { _giCreationTime        :: !(Maybe Text)
+    , _giStudentId           :: !(Maybe Text)
+    , _giState               :: !(Maybe Text)
+    , _giInvitationId        :: !(Maybe Text)
+    , _giInvitedEmailAddress :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GuardianInvitation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'giCreationTime'
+--
+-- * 'giStudentId'
+--
+-- * 'giState'
+--
+-- * 'giInvitationId'
+--
+-- * 'giInvitedEmailAddress'
+guardianInvitation
+    :: GuardianInvitation
+guardianInvitation =
+    GuardianInvitation'
+    { _giCreationTime = Nothing
+    , _giStudentId = Nothing
+    , _giState = Nothing
+    , _giInvitationId = Nothing
+    , _giInvitedEmailAddress = Nothing
+    }
+
+-- | The time that this invitation was created. Read-only.
+giCreationTime :: Lens' GuardianInvitation (Maybe Text)
+giCreationTime
+  = lens _giCreationTime
+      (\ s a -> s{_giCreationTime = a})
+
+-- | ID of the student (in standard format)
+giStudentId :: Lens' GuardianInvitation (Maybe Text)
+giStudentId
+  = lens _giStudentId (\ s a -> s{_giStudentId = a})
+
+-- | The state that this invitation is in.
+giState :: Lens' GuardianInvitation (Maybe Text)
+giState = lens _giState (\ s a -> s{_giState = a})
+
+-- | Unique identifier for this invitation. Read-only.
+giInvitationId :: Lens' GuardianInvitation (Maybe Text)
+giInvitationId
+  = lens _giInvitationId
+      (\ s a -> s{_giInvitationId = a})
+
+-- | Email address that the invitation was sent to. This field is only
+-- visible to domain administrators.
+giInvitedEmailAddress :: Lens' GuardianInvitation (Maybe Text)
+giInvitedEmailAddress
+  = lens _giInvitedEmailAddress
+      (\ s a -> s{_giInvitedEmailAddress = a})
+
+instance FromJSON GuardianInvitation where
+        parseJSON
+          = withObject "GuardianInvitation"
+              (\ o ->
+                 GuardianInvitation' <$>
+                   (o .:? "creationTime") <*> (o .:? "studentId") <*>
+                     (o .:? "state")
+                     <*> (o .:? "invitationId")
+                     <*> (o .:? "invitedEmailAddress"))
+
+instance ToJSON GuardianInvitation where
+        toJSON GuardianInvitation'{..}
+          = object
+              (catMaybes
+                 [("creationTime" .=) <$> _giCreationTime,
+                  ("studentId" .=) <$> _giStudentId,
+                  ("state" .=) <$> _giState,
+                  ("invitationId" .=) <$> _giInvitationId,
+                  ("invitedEmailAddress" .=) <$>
+                    _giInvitedEmailAddress])
+
 -- | Request to return a student submission.
 --
 -- /See:/ 'returnStudentSubmissionRequest' smart constructor.
@@ -650,7 +737,8 @@
     { _marAddAttachments = Nothing
     }
 
--- | Attachments to add. This may only contain link attachments.
+-- | Attachments to add. A student submission may not have more than 20
+-- attachments. This may only contain link attachments.
 marAddAttachments :: Lens' ModifyAttachmentsRequest [Attachment]
 marAddAttachments
   = lens _marAddAttachments
@@ -882,6 +970,79 @@
                  [("nextPageToken" .=) <$> _lirNextPageToken,
                   ("invitations" .=) <$> _lirInvitations])
 
+-- | Association between a student and a guardian of that student. The
+-- guardian may receive information about the student\'s course work.
+--
+-- /See:/ 'guardian' smart constructor.
+data Guardian = Guardian'
+    { _gStudentId           :: !(Maybe Text)
+    , _gGuardianId          :: !(Maybe Text)
+    , _gInvitedEmailAddress :: !(Maybe Text)
+    , _gGuardianProFile     :: !(Maybe UserProFile)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Guardian' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gStudentId'
+--
+-- * 'gGuardianId'
+--
+-- * 'gInvitedEmailAddress'
+--
+-- * 'gGuardianProFile'
+guardian
+    :: Guardian
+guardian =
+    Guardian'
+    { _gStudentId = Nothing
+    , _gGuardianId = Nothing
+    , _gInvitedEmailAddress = Nothing
+    , _gGuardianProFile = Nothing
+    }
+
+-- | Identifier for the student to whom the guardian relationship applies.
+gStudentId :: Lens' Guardian (Maybe Text)
+gStudentId
+  = lens _gStudentId (\ s a -> s{_gStudentId = a})
+
+-- | Identifier for the guardian.
+gGuardianId :: Lens' Guardian (Maybe Text)
+gGuardianId
+  = lens _gGuardianId (\ s a -> s{_gGuardianId = a})
+
+-- | The email address to which the initial guardian invitation was sent.
+-- This field is only visible to domain administrators.
+gInvitedEmailAddress :: Lens' Guardian (Maybe Text)
+gInvitedEmailAddress
+  = lens _gInvitedEmailAddress
+      (\ s a -> s{_gInvitedEmailAddress = a})
+
+-- | User profile for the guardian.
+gGuardianProFile :: Lens' Guardian (Maybe UserProFile)
+gGuardianProFile
+  = lens _gGuardianProFile
+      (\ s a -> s{_gGuardianProFile = a})
+
+instance FromJSON Guardian where
+        parseJSON
+          = withObject "Guardian"
+              (\ o ->
+                 Guardian' <$>
+                   (o .:? "studentId") <*> (o .:? "guardianId") <*>
+                     (o .:? "invitedEmailAddress")
+                     <*> (o .:? "guardianProfile"))
+
+instance ToJSON Guardian where
+        toJSON Guardian'{..}
+          = object
+              (catMaybes
+                 [("studentId" .=) <$> _gStudentId,
+                  ("guardianId" .=) <$> _gGuardianId,
+                  ("invitedEmailAddress" .=) <$> _gInvitedEmailAddress,
+                  ("guardianProfile" .=) <$> _gGuardianProFile])
+
 -- | A material attached to a course as part of a material set.
 --
 -- /See:/ 'courseMaterial' smart constructor.
@@ -1203,7 +1364,7 @@
     , _ssCourseWorkId = Nothing
     }
 
--- | Creation time of this submission.. This may be unset if the student has
+-- | Creation time of this submission. This may be unset if the student has
 -- not accessed this item. Read-only.
 ssCreationTime :: Lens' StudentSubmission (Maybe Text)
 ssCreationTime
@@ -1223,7 +1384,7 @@
 ssCourseId
   = lens _ssCourseId (\ s a -> s{_ssCourseId = a})
 
--- | Submission content when course_work_type is MUTIPLE_CHOICE_QUESTION.
+-- | Submission content when course_work_type is MULTIPLE_CHOICE_QUESTION.
 ssMultipleChoiceSubmission :: Lens' StudentSubmission (Maybe MultipleChoiceSubmission)
 ssMultipleChoiceSubmission
   = lens _ssMultipleChoiceSubmission
@@ -1265,8 +1426,8 @@
   = lens _ssCourseWorkType
       (\ s a -> s{_ssCourseWorkType = a})
 
--- | Optional grade. If unset, no grade was set. This must be an integer
--- value. This may be modified only by course teachers.
+-- | Optional grade. If unset, no grade was set. This must be a non-negative
+-- integer value. This may be modified only by course teachers.
 ssAssignedGrade :: Lens' StudentSubmission (Maybe Double)
 ssAssignedGrade
   = lens _ssAssignedGrade
@@ -1278,9 +1439,9 @@
 ssId :: Lens' StudentSubmission (Maybe Text)
 ssId = lens _ssId (\ s a -> s{_ssId = a})
 
--- | Optional pending grade. If unset, no grade was set. This must be an
--- integer value. This is only visible to and modifiable by course
--- teachers.
+-- | Optional pending grade. If unset, no grade was set. This must be a
+-- non-negative integer value. This is only visible to and modifiable by
+-- course teachers.
 ssDraftGrade :: Lens' StudentSubmission (Maybe Double)
 ssDraftGrade
   = lens _ssDraftGrade (\ s a -> s{_ssDraftGrade = a})
@@ -1343,6 +1504,59 @@
                   ("alternateLink" .=) <$> _ssAlternateLink,
                   ("courseWorkId" .=) <$> _ssCourseWorkId])
 
+-- | Response when listing guardians.
+--
+-- /See:/ 'listGuardiansResponse' smart constructor.
+data ListGuardiansResponse = ListGuardiansResponse'
+    { _lgrNextPageToken :: !(Maybe Text)
+    , _lgrGuardians     :: !(Maybe [Guardian])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListGuardiansResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lgrNextPageToken'
+--
+-- * 'lgrGuardians'
+listGuardiansResponse
+    :: ListGuardiansResponse
+listGuardiansResponse =
+    ListGuardiansResponse'
+    { _lgrNextPageToken = Nothing
+    , _lgrGuardians = Nothing
+    }
+
+-- | Token identifying the next page of results to return. If empty, no
+-- further results are available.
+lgrNextPageToken :: Lens' ListGuardiansResponse (Maybe Text)
+lgrNextPageToken
+  = lens _lgrNextPageToken
+      (\ s a -> s{_lgrNextPageToken = a})
+
+-- | Guardians on this page of results that met the criteria specified in the
+-- request.
+lgrGuardians :: Lens' ListGuardiansResponse [Guardian]
+lgrGuardians
+  = lens _lgrGuardians (\ s a -> s{_lgrGuardians = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListGuardiansResponse where
+        parseJSON
+          = withObject "ListGuardiansResponse"
+              (\ o ->
+                 ListGuardiansResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "guardians" .!= mempty))
+
+instance ToJSON ListGuardiansResponse where
+        toJSON ListGuardiansResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lgrNextPageToken,
+                  ("guardians" .=) <$> _lgrGuardians])
+
 -- | Represents a whole calendar date, e.g. date of birth. The time of day
 -- and time zone are either specified elsewhere or are not significant. The
 -- date is relative to the Proleptic Gregorian Calendar. The day may be 0
@@ -1905,6 +2119,7 @@
     , _cTeacherGroupEmail  :: !(Maybe Text)
     , _cTeacherFolder      :: !(Maybe DriveFolder)
     , _cCourseState        :: !(Maybe Text)
+    , _cGuardiansEnabled   :: !(Maybe Bool)
     , _cEnrollmentCode     :: !(Maybe Text)
     , _cUpdateTime         :: !(Maybe Text)
     , _cOwnerId            :: !(Maybe Text)
@@ -1933,6 +2148,8 @@
 --
 -- * 'cCourseState'
 --
+-- * 'cGuardiansEnabled'
+--
 -- * 'cEnrollmentCode'
 --
 -- * 'cUpdateTime'
@@ -1962,6 +2179,7 @@
     , _cTeacherGroupEmail = Nothing
     , _cTeacherFolder = Nothing
     , _cCourseState = Nothing
+    , _cGuardiansEnabled = Nothing
     , _cEnrollmentCode = Nothing
     , _cUpdateTime = Nothing
     , _cOwnerId = Nothing
@@ -2017,6 +2235,13 @@
 cCourseState
   = lens _cCourseState (\ s a -> s{_cCourseState = a})
 
+-- | Whether or not guardian notifications are enabled for this course.
+-- Read-only.
+cGuardiansEnabled :: Lens' Course (Maybe Bool)
+cGuardiansEnabled
+  = lens _cGuardiansEnabled
+      (\ s a -> s{_cGuardiansEnabled = a})
+
 -- | Enrollment code to use when joining this course. Specifying this field
 -- in a course update mask results in an error. Read-only.
 cEnrollmentCode :: Lens' Course (Maybe Text)
@@ -2099,6 +2324,7 @@
                      <*> (o .:? "teacherGroupEmail")
                      <*> (o .:? "teacherFolder")
                      <*> (o .:? "courseState")
+                     <*> (o .:? "guardiansEnabled")
                      <*> (o .:? "enrollmentCode")
                      <*> (o .:? "updateTime")
                      <*> (o .:? "ownerId")
@@ -2120,6 +2346,7 @@
                   ("teacherGroupEmail" .=) <$> _cTeacherGroupEmail,
                   ("teacherFolder" .=) <$> _cTeacherFolder,
                   ("courseState" .=) <$> _cCourseState,
+                  ("guardiansEnabled" .=) <$> _cGuardiansEnabled,
                   ("enrollmentCode" .=) <$> _cEnrollmentCode,
                   ("updateTime" .=) <$> _cUpdateTime,
                   ("ownerId" .=) <$> _cOwnerId, ("name" .=) <$> _cName,
@@ -2208,6 +2435,61 @@
                   ("hours" .=) <$> _todHours,
                   ("minutes" .=) <$> _todMinutes,
                   ("seconds" .=) <$> _todSeconds])
+
+-- | Response when listing guardian invitations.
+--
+-- /See:/ 'listGuardianInvitationsResponse' smart constructor.
+data ListGuardianInvitationsResponse = ListGuardianInvitationsResponse'
+    { _lgirNextPageToken       :: !(Maybe Text)
+    , _lgirGuardianInvitations :: !(Maybe [GuardianInvitation])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListGuardianInvitationsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lgirNextPageToken'
+--
+-- * 'lgirGuardianInvitations'
+listGuardianInvitationsResponse
+    :: ListGuardianInvitationsResponse
+listGuardianInvitationsResponse =
+    ListGuardianInvitationsResponse'
+    { _lgirNextPageToken = Nothing
+    , _lgirGuardianInvitations = Nothing
+    }
+
+-- | Token identifying the next page of results to return. If empty, no
+-- further results are available.
+lgirNextPageToken :: Lens' ListGuardianInvitationsResponse (Maybe Text)
+lgirNextPageToken
+  = lens _lgirNextPageToken
+      (\ s a -> s{_lgirNextPageToken = a})
+
+-- | Guardian invitations that matched the list request.
+lgirGuardianInvitations :: Lens' ListGuardianInvitationsResponse [GuardianInvitation]
+lgirGuardianInvitations
+  = lens _lgirGuardianInvitations
+      (\ s a -> s{_lgirGuardianInvitations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListGuardianInvitationsResponse
+         where
+        parseJSON
+          = withObject "ListGuardianInvitationsResponse"
+              (\ o ->
+                 ListGuardianInvitationsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "guardianInvitations" .!= mempty))
+
+instance ToJSON ListGuardianInvitationsResponse where
+        toJSON ListGuardianInvitationsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lgirNextPageToken,
+                  ("guardianInvitations" .=) <$>
+                    _lgirGuardianInvitations])
 
 -- | Additional details for assignments.
 --
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
@@ -256,9 +256,9 @@
   = lens _ccwsslCallback
       (\ s a -> s{_ccwsslCallback = a})
 
--- | Identifer of the student work to request. If \`user_id\` is specified,
--- this may be set to the string literal \`\"-\"\` to request student work
--- for all course work in the specified course.
+-- | Identifer of the student work to request. This may be set to the string
+-- literal \`\"-\"\` to request student work for all course work in the
+-- specified course.
 ccwsslCourseWorkId :: Lens' CoursesCourseWorkStudentSubmissionsList Text
 ccwsslCourseWorkId
   = lens _ccwsslCourseWorkId
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
@@ -47,6 +47,7 @@
     , clBearerToken
     , clPageToken
     , clPageSize
+    , clCourseStates
     , clCallback
     ) where
 
@@ -68,9 +69,10 @@
                        QueryParam "bearer_token" Text :>
                          QueryParam "pageToken" Text :>
                            QueryParam "pageSize" (Textual Int32) :>
-                             QueryParam "callback" Text :>
-                               QueryParam "alt" AltJSON :>
-                                 Get '[JSON] ListCoursesResponse
+                             QueryParams "courseStates" Text :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] ListCoursesResponse
 
 -- | Returns a list of courses that the requesting user is permitted to view,
 -- restricted to those that match the request. This method returns the
@@ -90,6 +92,7 @@
     , _clBearerToken    :: !(Maybe Text)
     , _clPageToken      :: !(Maybe Text)
     , _clPageSize       :: !(Maybe (Textual Int32))
+    , _clCourseStates   :: !(Maybe [Text])
     , _clCallback       :: !(Maybe Text)
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -117,6 +120,8 @@
 --
 -- * 'clPageSize'
 --
+-- * 'clCourseStates'
+--
 -- * 'clCallback'
 coursesList
     :: CoursesList
@@ -132,6 +137,7 @@
     , _clBearerToken = Nothing
     , _clPageToken = Nothing
     , _clPageSize = Nothing
+    , _clCourseStates = Nothing
     , _clCallback = Nothing
     }
 
@@ -197,6 +203,14 @@
   = lens _clPageSize (\ s a -> s{_clPageSize = a}) .
       mapping _Coerce
 
+-- | Restricts returned courses to those in one of the specified states
+clCourseStates :: Lens' CoursesList [Text]
+clCourseStates
+  = lens _clCourseStates
+      (\ s a -> s{_clCourseStates = a})
+      . _Default
+      . _Coerce
+
 -- | JSONP
 clCallback :: Lens' CoursesList (Maybe Text)
 clCallback
@@ -216,6 +230,7 @@
               _clBearerToken
               _clPageToken
               _clPageSize
+              (_clCourseStates ^. _Default)
               _clCallback
               (Just AltJSON)
               classroomService
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Create.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Create.hs
@@ -0,0 +1,240 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a guardian invitation, and sends an email to the guardian asking
+-- them to confirm that they are the student\'s guardian. Once the guardian
+-- accepts the invitation, their \`state\` will change to \`COMPLETED\` and
+-- they will start receiving guardian notifications. A \`Guardian\`
+-- resource will also be created to represent the active guardian. The
+-- request object must have the \`student_id\` and
+-- \`invited_email_address\` fields set. Failing to set these fields, or
+-- setting any other fields in the request, will result in an error. This
+-- method returns the following error codes: * \`PERMISSION_DENIED\` if the
+-- current user does not have permission to manage guardians, if the
+-- guardian in question has already rejected too many requests for that
+-- student, if guardians are not enabled for the domain in question, or for
+-- other access errors. * \`RESOURCE_EXHAUSTED\` if the student or guardian
+-- has exceeded the guardian link limit. * \`INVALID_ARGUMENT\` if the
+-- guardian email address is not valid (for example, if it is too long), or
+-- if the format of the student ID provided cannot be recognized (it is not
+-- an email address, nor a \`user_id\` from this API). This error will also
+-- be returned if read-only fields are set, or if the \`state\` field is
+-- set to to a value other than \`PENDING\`. * \`NOT_FOUND\` if the student
+-- ID provided is a valid student ID, but Classroom has no record of that
+-- student. * \`ALREADY_EXISTS\` if there is already a pending guardian
+-- invitation for the student and \`invited_email_address\` provided, or if
+-- the provided \`invited_email_address\` matches the Google account of an
+-- existing \`Guardian\` for this user.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.create@.
+module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create
+    (
+    -- * REST Resource
+      UserProFilesGuardianInvitationsCreateResource
+
+    -- * Creating a Request
+    , userProFilesGuardianInvitationsCreate
+    , UserProFilesGuardianInvitationsCreate
+
+    -- * Request Lenses
+    , upfgicStudentId
+    , upfgicXgafv
+    , upfgicUploadProtocol
+    , upfgicPp
+    , upfgicAccessToken
+    , upfgicUploadType
+    , upfgicPayload
+    , upfgicBearerToken
+    , upfgicCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.userProfiles.guardianInvitations.create@ method which the
+-- 'UserProFilesGuardianInvitationsCreate' request conforms to.
+type UserProFilesGuardianInvitationsCreateResource =
+     "v1" :>
+       "userProfiles" :>
+         Capture "studentId" Text :>
+           "guardianInvitations" :>
+             QueryParam "$.xgafv" Text :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] GuardianInvitation :>
+                               Post '[JSON] GuardianInvitation
+
+-- | Creates a guardian invitation, and sends an email to the guardian asking
+-- them to confirm that they are the student\'s guardian. Once the guardian
+-- accepts the invitation, their \`state\` will change to \`COMPLETED\` and
+-- they will start receiving guardian notifications. A \`Guardian\`
+-- resource will also be created to represent the active guardian. The
+-- request object must have the \`student_id\` and
+-- \`invited_email_address\` fields set. Failing to set these fields, or
+-- setting any other fields in the request, will result in an error. This
+-- method returns the following error codes: * \`PERMISSION_DENIED\` if the
+-- current user does not have permission to manage guardians, if the
+-- guardian in question has already rejected too many requests for that
+-- student, if guardians are not enabled for the domain in question, or for
+-- other access errors. * \`RESOURCE_EXHAUSTED\` if the student or guardian
+-- has exceeded the guardian link limit. * \`INVALID_ARGUMENT\` if the
+-- guardian email address is not valid (for example, if it is too long), or
+-- if the format of the student ID provided cannot be recognized (it is not
+-- an email address, nor a \`user_id\` from this API). This error will also
+-- be returned if read-only fields are set, or if the \`state\` field is
+-- set to to a value other than \`PENDING\`. * \`NOT_FOUND\` if the student
+-- ID provided is a valid student ID, but Classroom has no record of that
+-- student. * \`ALREADY_EXISTS\` if there is already a pending guardian
+-- invitation for the student and \`invited_email_address\` provided, or if
+-- the provided \`invited_email_address\` matches the Google account of an
+-- existing \`Guardian\` for this user.
+--
+-- /See:/ 'userProFilesGuardianInvitationsCreate' smart constructor.
+data UserProFilesGuardianInvitationsCreate = UserProFilesGuardianInvitationsCreate'
+    { _upfgicStudentId      :: !Text
+    , _upfgicXgafv          :: !(Maybe Text)
+    , _upfgicUploadProtocol :: !(Maybe Text)
+    , _upfgicPp             :: !Bool
+    , _upfgicAccessToken    :: !(Maybe Text)
+    , _upfgicUploadType     :: !(Maybe Text)
+    , _upfgicPayload        :: !GuardianInvitation
+    , _upfgicBearerToken    :: !(Maybe Text)
+    , _upfgicCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFilesGuardianInvitationsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upfgicStudentId'
+--
+-- * 'upfgicXgafv'
+--
+-- * 'upfgicUploadProtocol'
+--
+-- * 'upfgicPp'
+--
+-- * 'upfgicAccessToken'
+--
+-- * 'upfgicUploadType'
+--
+-- * 'upfgicPayload'
+--
+-- * 'upfgicBearerToken'
+--
+-- * 'upfgicCallback'
+userProFilesGuardianInvitationsCreate
+    :: Text -- ^ 'upfgicStudentId'
+    -> GuardianInvitation -- ^ 'upfgicPayload'
+    -> UserProFilesGuardianInvitationsCreate
+userProFilesGuardianInvitationsCreate pUpfgicStudentId_ pUpfgicPayload_ =
+    UserProFilesGuardianInvitationsCreate'
+    { _upfgicStudentId = pUpfgicStudentId_
+    , _upfgicXgafv = Nothing
+    , _upfgicUploadProtocol = Nothing
+    , _upfgicPp = True
+    , _upfgicAccessToken = Nothing
+    , _upfgicUploadType = Nothing
+    , _upfgicPayload = pUpfgicPayload_
+    , _upfgicBearerToken = Nothing
+    , _upfgicCallback = Nothing
+    }
+
+-- | ID of the student (in standard format)
+upfgicStudentId :: Lens' UserProFilesGuardianInvitationsCreate Text
+upfgicStudentId
+  = lens _upfgicStudentId
+      (\ s a -> s{_upfgicStudentId = a})
+
+-- | V1 error format.
+upfgicXgafv :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)
+upfgicXgafv
+  = lens _upfgicXgafv (\ s a -> s{_upfgicXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+upfgicUploadProtocol :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)
+upfgicUploadProtocol
+  = lens _upfgicUploadProtocol
+      (\ s a -> s{_upfgicUploadProtocol = a})
+
+-- | Pretty-print response.
+upfgicPp :: Lens' UserProFilesGuardianInvitationsCreate Bool
+upfgicPp = lens _upfgicPp (\ s a -> s{_upfgicPp = a})
+
+-- | OAuth access token.
+upfgicAccessToken :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)
+upfgicAccessToken
+  = lens _upfgicAccessToken
+      (\ s a -> s{_upfgicAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+upfgicUploadType :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)
+upfgicUploadType
+  = lens _upfgicUploadType
+      (\ s a -> s{_upfgicUploadType = a})
+
+-- | Multipart request metadata.
+upfgicPayload :: Lens' UserProFilesGuardianInvitationsCreate GuardianInvitation
+upfgicPayload
+  = lens _upfgicPayload
+      (\ s a -> s{_upfgicPayload = a})
+
+-- | OAuth bearer token.
+upfgicBearerToken :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)
+upfgicBearerToken
+  = lens _upfgicBearerToken
+      (\ s a -> s{_upfgicBearerToken = a})
+
+-- | JSONP
+upfgicCallback :: Lens' UserProFilesGuardianInvitationsCreate (Maybe Text)
+upfgicCallback
+  = lens _upfgicCallback
+      (\ s a -> s{_upfgicCallback = a})
+
+instance GoogleRequest
+         UserProFilesGuardianInvitationsCreate where
+        type Rs UserProFilesGuardianInvitationsCreate =
+             GuardianInvitation
+        type Scopes UserProFilesGuardianInvitationsCreate =
+             '[]
+        requestClient
+          UserProFilesGuardianInvitationsCreate'{..}
+          = go _upfgicStudentId _upfgicXgafv
+              _upfgicUploadProtocol
+              (Just _upfgicPp)
+              _upfgicAccessToken
+              _upfgicUploadType
+              _upfgicBearerToken
+              _upfgicCallback
+              (Just AltJSON)
+              _upfgicPayload
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy UserProFilesGuardianInvitationsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Get.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Get.hs
@@ -0,0 +1,212 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a specific guardian invitation. This method returns the
+-- following error codes: * \`PERMISSION_DENIED\` if the requesting user is
+-- not permitted to view guardian invitations for the student identified by
+-- the \`student_id\`, if guardians are not enabled for the domain in
+-- question, or for other access errors. * \`INVALID_ARGUMENT\` if a
+-- \`student_id\` is specified, but its format cannot be recognized (it is
+-- not an email address, nor a \`student_id\` from the API, nor the literal
+-- string \`me\`). * \`NOT_FOUND\` if Classroom cannot find any record of
+-- the given student or \`invitation_id\`. May also be returned if the
+-- student exists, but the requesting user does not have access to see that
+-- student.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.get@.
+module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get
+    (
+    -- * REST Resource
+      UserProFilesGuardianInvitationsGetResource
+
+    -- * Creating a Request
+    , userProFilesGuardianInvitationsGet
+    , UserProFilesGuardianInvitationsGet
+
+    -- * Request Lenses
+    , upfgigStudentId
+    , upfgigXgafv
+    , upfgigUploadProtocol
+    , upfgigPp
+    , upfgigAccessToken
+    , upfgigUploadType
+    , upfgigInvitationId
+    , upfgigBearerToken
+    , upfgigCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.userProfiles.guardianInvitations.get@ method which the
+-- 'UserProFilesGuardianInvitationsGet' request conforms to.
+type UserProFilesGuardianInvitationsGetResource =
+     "v1" :>
+       "userProfiles" :>
+         Capture "studentId" Text :>
+           "guardianInvitations" :>
+             Capture "invitationId" Text :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] GuardianInvitation
+
+-- | Returns a specific guardian invitation. This method returns the
+-- following error codes: * \`PERMISSION_DENIED\` if the requesting user is
+-- not permitted to view guardian invitations for the student identified by
+-- the \`student_id\`, if guardians are not enabled for the domain in
+-- question, or for other access errors. * \`INVALID_ARGUMENT\` if a
+-- \`student_id\` is specified, but its format cannot be recognized (it is
+-- not an email address, nor a \`student_id\` from the API, nor the literal
+-- string \`me\`). * \`NOT_FOUND\` if Classroom cannot find any record of
+-- the given student or \`invitation_id\`. May also be returned if the
+-- student exists, but the requesting user does not have access to see that
+-- student.
+--
+-- /See:/ 'userProFilesGuardianInvitationsGet' smart constructor.
+data UserProFilesGuardianInvitationsGet = UserProFilesGuardianInvitationsGet'
+    { _upfgigStudentId      :: !Text
+    , _upfgigXgafv          :: !(Maybe Text)
+    , _upfgigUploadProtocol :: !(Maybe Text)
+    , _upfgigPp             :: !Bool
+    , _upfgigAccessToken    :: !(Maybe Text)
+    , _upfgigUploadType     :: !(Maybe Text)
+    , _upfgigInvitationId   :: !Text
+    , _upfgigBearerToken    :: !(Maybe Text)
+    , _upfgigCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFilesGuardianInvitationsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upfgigStudentId'
+--
+-- * 'upfgigXgafv'
+--
+-- * 'upfgigUploadProtocol'
+--
+-- * 'upfgigPp'
+--
+-- * 'upfgigAccessToken'
+--
+-- * 'upfgigUploadType'
+--
+-- * 'upfgigInvitationId'
+--
+-- * 'upfgigBearerToken'
+--
+-- * 'upfgigCallback'
+userProFilesGuardianInvitationsGet
+    :: Text -- ^ 'upfgigStudentId'
+    -> Text -- ^ 'upfgigInvitationId'
+    -> UserProFilesGuardianInvitationsGet
+userProFilesGuardianInvitationsGet pUpfgigStudentId_ pUpfgigInvitationId_ =
+    UserProFilesGuardianInvitationsGet'
+    { _upfgigStudentId = pUpfgigStudentId_
+    , _upfgigXgafv = Nothing
+    , _upfgigUploadProtocol = Nothing
+    , _upfgigPp = True
+    , _upfgigAccessToken = Nothing
+    , _upfgigUploadType = Nothing
+    , _upfgigInvitationId = pUpfgigInvitationId_
+    , _upfgigBearerToken = Nothing
+    , _upfgigCallback = Nothing
+    }
+
+-- | The ID of the student whose guardian invitation is being requested.
+upfgigStudentId :: Lens' UserProFilesGuardianInvitationsGet Text
+upfgigStudentId
+  = lens _upfgigStudentId
+      (\ s a -> s{_upfgigStudentId = a})
+
+-- | V1 error format.
+upfgigXgafv :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)
+upfgigXgafv
+  = lens _upfgigXgafv (\ s a -> s{_upfgigXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+upfgigUploadProtocol :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)
+upfgigUploadProtocol
+  = lens _upfgigUploadProtocol
+      (\ s a -> s{_upfgigUploadProtocol = a})
+
+-- | Pretty-print response.
+upfgigPp :: Lens' UserProFilesGuardianInvitationsGet Bool
+upfgigPp = lens _upfgigPp (\ s a -> s{_upfgigPp = a})
+
+-- | OAuth access token.
+upfgigAccessToken :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)
+upfgigAccessToken
+  = lens _upfgigAccessToken
+      (\ s a -> s{_upfgigAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+upfgigUploadType :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)
+upfgigUploadType
+  = lens _upfgigUploadType
+      (\ s a -> s{_upfgigUploadType = a})
+
+-- | The \`id\` field of the \`GuardianInvitation\` being requested.
+upfgigInvitationId :: Lens' UserProFilesGuardianInvitationsGet Text
+upfgigInvitationId
+  = lens _upfgigInvitationId
+      (\ s a -> s{_upfgigInvitationId = a})
+
+-- | OAuth bearer token.
+upfgigBearerToken :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)
+upfgigBearerToken
+  = lens _upfgigBearerToken
+      (\ s a -> s{_upfgigBearerToken = a})
+
+-- | JSONP
+upfgigCallback :: Lens' UserProFilesGuardianInvitationsGet (Maybe Text)
+upfgigCallback
+  = lens _upfgigCallback
+      (\ s a -> s{_upfgigCallback = a})
+
+instance GoogleRequest
+         UserProFilesGuardianInvitationsGet where
+        type Rs UserProFilesGuardianInvitationsGet =
+             GuardianInvitation
+        type Scopes UserProFilesGuardianInvitationsGet = '[]
+        requestClient UserProFilesGuardianInvitationsGet'{..}
+          = go _upfgigStudentId _upfgigInvitationId
+              _upfgigXgafv
+              _upfgigUploadProtocol
+              (Just _upfgigPp)
+              _upfgigAccessToken
+              _upfgigUploadType
+              _upfgigBearerToken
+              _upfgigCallback
+              (Just AltJSON)
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy UserProFilesGuardianInvitationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/List.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/List.hs
@@ -0,0 +1,269 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a list of guardian invitations that the requesting user is
+-- permitted to view, filtered by the parameters provided. This method
+-- returns the following error codes: * \`PERMISSION_DENIED\` if a
+-- \`student_id\` is specified, and the requesting user is not permitted to
+-- view guardian invitations for that student, if \`\"-\"\` is specified as
+-- the \`student_id\` and the user is not a domain administrator, if
+-- guardians are not enabled for the domain in question, or for other
+-- access errors. * \`INVALID_ARGUMENT\` if a \`student_id\` is specified,
+-- but its format cannot be recognized (it is not an email address, nor a
+-- \`student_id\` from the API, nor the literal string \`me\`). May also be
+-- returned if an invalid \`page_token\` or \`state\` is provided. *
+-- \`NOT_FOUND\` if a \`student_id\` is specified, and its format can be
+-- recognized, but Classroom has no record of that student.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.list@.
+module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List
+    (
+    -- * REST Resource
+      UserProFilesGuardianInvitationsListResource
+
+    -- * Creating a Request
+    , userProFilesGuardianInvitationsList
+    , UserProFilesGuardianInvitationsList
+
+    -- * Request Lenses
+    , upfgilStudentId
+    , upfgilStates
+    , upfgilXgafv
+    , upfgilUploadProtocol
+    , upfgilPp
+    , upfgilAccessToken
+    , upfgilUploadType
+    , upfgilBearerToken
+    , upfgilInvitedEmailAddress
+    , upfgilPageToken
+    , upfgilPageSize
+    , upfgilCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.userProfiles.guardianInvitations.list@ method which the
+-- 'UserProFilesGuardianInvitationsList' request conforms to.
+type UserProFilesGuardianInvitationsListResource =
+     "v1" :>
+       "userProfiles" :>
+         Capture "studentId" Text :>
+           "guardianInvitations" :>
+             QueryParams "states" Text :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "invitedEmailAddress" Text :>
+                             QueryParam "pageToken" Text :>
+                               QueryParam "pageSize" (Textual Int32) :>
+                                 QueryParam "callback" Text :>
+                                   QueryParam "alt" AltJSON :>
+                                     Get '[JSON] ListGuardianInvitationsResponse
+
+-- | Returns a list of guardian invitations that the requesting user is
+-- permitted to view, filtered by the parameters provided. This method
+-- returns the following error codes: * \`PERMISSION_DENIED\` if a
+-- \`student_id\` is specified, and the requesting user is not permitted to
+-- view guardian invitations for that student, if \`\"-\"\` is specified as
+-- the \`student_id\` and the user is not a domain administrator, if
+-- guardians are not enabled for the domain in question, or for other
+-- access errors. * \`INVALID_ARGUMENT\` if a \`student_id\` is specified,
+-- but its format cannot be recognized (it is not an email address, nor a
+-- \`student_id\` from the API, nor the literal string \`me\`). May also be
+-- returned if an invalid \`page_token\` or \`state\` is provided. *
+-- \`NOT_FOUND\` if a \`student_id\` is specified, and its format can be
+-- recognized, but Classroom has no record of that student.
+--
+-- /See:/ 'userProFilesGuardianInvitationsList' smart constructor.
+data UserProFilesGuardianInvitationsList = UserProFilesGuardianInvitationsList'
+    { _upfgilStudentId           :: !Text
+    , _upfgilStates              :: !(Maybe [Text])
+    , _upfgilXgafv               :: !(Maybe Text)
+    , _upfgilUploadProtocol      :: !(Maybe Text)
+    , _upfgilPp                  :: !Bool
+    , _upfgilAccessToken         :: !(Maybe Text)
+    , _upfgilUploadType          :: !(Maybe Text)
+    , _upfgilBearerToken         :: !(Maybe Text)
+    , _upfgilInvitedEmailAddress :: !(Maybe Text)
+    , _upfgilPageToken           :: !(Maybe Text)
+    , _upfgilPageSize            :: !(Maybe (Textual Int32))
+    , _upfgilCallback            :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFilesGuardianInvitationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upfgilStudentId'
+--
+-- * 'upfgilStates'
+--
+-- * 'upfgilXgafv'
+--
+-- * 'upfgilUploadProtocol'
+--
+-- * 'upfgilPp'
+--
+-- * 'upfgilAccessToken'
+--
+-- * 'upfgilUploadType'
+--
+-- * 'upfgilBearerToken'
+--
+-- * 'upfgilInvitedEmailAddress'
+--
+-- * 'upfgilPageToken'
+--
+-- * 'upfgilPageSize'
+--
+-- * 'upfgilCallback'
+userProFilesGuardianInvitationsList
+    :: Text -- ^ 'upfgilStudentId'
+    -> UserProFilesGuardianInvitationsList
+userProFilesGuardianInvitationsList pUpfgilStudentId_ =
+    UserProFilesGuardianInvitationsList'
+    { _upfgilStudentId = pUpfgilStudentId_
+    , _upfgilStates = Nothing
+    , _upfgilXgafv = Nothing
+    , _upfgilUploadProtocol = Nothing
+    , _upfgilPp = True
+    , _upfgilAccessToken = Nothing
+    , _upfgilUploadType = Nothing
+    , _upfgilBearerToken = Nothing
+    , _upfgilInvitedEmailAddress = Nothing
+    , _upfgilPageToken = Nothing
+    , _upfgilPageSize = Nothing
+    , _upfgilCallback = Nothing
+    }
+
+-- | The ID of the student whose guardian invitations are to be returned. The
+-- identifier can be one of the following: * the numeric identifier for the
+-- user * the email address of the user * the string literal \`\"me\"\`,
+-- indicating the requesting user * the string literal \`\"-\"\`,
+-- indicating that results should be returned for all students that the
+-- requesting user is permitted to view guardian invitations.
+upfgilStudentId :: Lens' UserProFilesGuardianInvitationsList Text
+upfgilStudentId
+  = lens _upfgilStudentId
+      (\ s a -> s{_upfgilStudentId = a})
+
+-- | If specified, only results with the specified \`state\` values will be
+-- returned. Otherwise, results with a \`state\` of \`PENDING\` will be
+-- returned.
+upfgilStates :: Lens' UserProFilesGuardianInvitationsList [Text]
+upfgilStates
+  = lens _upfgilStates (\ s a -> s{_upfgilStates = a})
+      . _Default
+      . _Coerce
+
+-- | V1 error format.
+upfgilXgafv :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)
+upfgilXgafv
+  = lens _upfgilXgafv (\ s a -> s{_upfgilXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+upfgilUploadProtocol :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)
+upfgilUploadProtocol
+  = lens _upfgilUploadProtocol
+      (\ s a -> s{_upfgilUploadProtocol = a})
+
+-- | Pretty-print response.
+upfgilPp :: Lens' UserProFilesGuardianInvitationsList Bool
+upfgilPp = lens _upfgilPp (\ s a -> s{_upfgilPp = a})
+
+-- | OAuth access token.
+upfgilAccessToken :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)
+upfgilAccessToken
+  = lens _upfgilAccessToken
+      (\ s a -> s{_upfgilAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+upfgilUploadType :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)
+upfgilUploadType
+  = lens _upfgilUploadType
+      (\ s a -> s{_upfgilUploadType = a})
+
+-- | OAuth bearer token.
+upfgilBearerToken :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)
+upfgilBearerToken
+  = lens _upfgilBearerToken
+      (\ s a -> s{_upfgilBearerToken = a})
+
+-- | If specified, only results with the specified \`invited_email_address\`
+-- will be returned.
+upfgilInvitedEmailAddress :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)
+upfgilInvitedEmailAddress
+  = lens _upfgilInvitedEmailAddress
+      (\ s a -> s{_upfgilInvitedEmailAddress = a})
+
+-- | nextPageToken value returned from a previous list call, indicating that
+-- the subsequent page of results should be returned. The list request must
+-- be otherwise identical to the one that resulted in this token.
+upfgilPageToken :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)
+upfgilPageToken
+  = lens _upfgilPageToken
+      (\ s a -> s{_upfgilPageToken = a})
+
+-- | Maximum number of items to return. Zero or unspecified indicates that
+-- the server may assign a maximum. The server may return fewer than the
+-- specified number of results.
+upfgilPageSize :: Lens' UserProFilesGuardianInvitationsList (Maybe Int32)
+upfgilPageSize
+  = lens _upfgilPageSize
+      (\ s a -> s{_upfgilPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+upfgilCallback :: Lens' UserProFilesGuardianInvitationsList (Maybe Text)
+upfgilCallback
+  = lens _upfgilCallback
+      (\ s a -> s{_upfgilCallback = a})
+
+instance GoogleRequest
+         UserProFilesGuardianInvitationsList where
+        type Rs UserProFilesGuardianInvitationsList =
+             ListGuardianInvitationsResponse
+        type Scopes UserProFilesGuardianInvitationsList = '[]
+        requestClient
+          UserProFilesGuardianInvitationsList'{..}
+          = go _upfgilStudentId (_upfgilStates ^. _Default)
+              _upfgilXgafv
+              _upfgilUploadProtocol
+              (Just _upfgilPp)
+              _upfgilAccessToken
+              _upfgilUploadType
+              _upfgilBearerToken
+              _upfgilInvitedEmailAddress
+              _upfgilPageToken
+              _upfgilPageSize
+              _upfgilCallback
+              (Just AltJSON)
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy UserProFilesGuardianInvitationsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Patch.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/GuardianInvitations/Patch.hs
@@ -0,0 +1,250 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Modifies a guardian invitation. Currently, the only valid modification
+-- is to change the \`state\` from \`PENDING\` to \`COMPLETE\`. This has
+-- the effect of withdrawing the invitation. This method returns the
+-- following error codes: * \`PERMISSION_DENIED\` if the current user does
+-- not have permission to manage guardians, if guardians are not enabled
+-- for the domain in question or for other access errors. *
+-- \`FAILED_PRECONDITION\` if the guardian link is not in the \`PENDING\`
+-- state. * \`INVALID_ARGUMENT\` if the format of the student ID provided
+-- cannot be recognized (it is not an email address, nor a \`user_id\` from
+-- this API), or if the passed \`GuardianInvitation\` has a \`state\` other
+-- than \`COMPLETE\`, or if it modifies fields other than \`state\`. *
+-- \`NOT_FOUND\` if the student ID provided is a valid student ID, but
+-- Classroom has no record of that student, or if the \`id\` field does not
+-- refer to a guardian invitation known to Classroom.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardianInvitations.patch@.
+module Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch
+    (
+    -- * REST Resource
+      UserProFilesGuardianInvitationsPatchResource
+
+    -- * Creating a Request
+    , userProFilesGuardianInvitationsPatch
+    , UserProFilesGuardianInvitationsPatch
+
+    -- * Request Lenses
+    , upfgipStudentId
+    , upfgipXgafv
+    , upfgipUploadProtocol
+    , upfgipUpdateMask
+    , upfgipPp
+    , upfgipAccessToken
+    , upfgipUploadType
+    , upfgipPayload
+    , upfgipInvitationId
+    , upfgipBearerToken
+    , upfgipCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.userProfiles.guardianInvitations.patch@ method which the
+-- 'UserProFilesGuardianInvitationsPatch' request conforms to.
+type UserProFilesGuardianInvitationsPatchResource =
+     "v1" :>
+       "userProfiles" :>
+         Capture "studentId" Text :>
+           "guardianInvitations" :>
+             Capture "invitationId" Text :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "updateMask" Text :>
+                     QueryParam "pp" Bool :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "bearer_token" Text :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 ReqBody '[JSON] GuardianInvitation :>
+                                   Patch '[JSON] GuardianInvitation
+
+-- | Modifies a guardian invitation. Currently, the only valid modification
+-- is to change the \`state\` from \`PENDING\` to \`COMPLETE\`. This has
+-- the effect of withdrawing the invitation. This method returns the
+-- following error codes: * \`PERMISSION_DENIED\` if the current user does
+-- not have permission to manage guardians, if guardians are not enabled
+-- for the domain in question or for other access errors. *
+-- \`FAILED_PRECONDITION\` if the guardian link is not in the \`PENDING\`
+-- state. * \`INVALID_ARGUMENT\` if the format of the student ID provided
+-- cannot be recognized (it is not an email address, nor a \`user_id\` from
+-- this API), or if the passed \`GuardianInvitation\` has a \`state\` other
+-- than \`COMPLETE\`, or if it modifies fields other than \`state\`. *
+-- \`NOT_FOUND\` if the student ID provided is a valid student ID, but
+-- Classroom has no record of that student, or if the \`id\` field does not
+-- refer to a guardian invitation known to Classroom.
+--
+-- /See:/ 'userProFilesGuardianInvitationsPatch' smart constructor.
+data UserProFilesGuardianInvitationsPatch = UserProFilesGuardianInvitationsPatch'
+    { _upfgipStudentId      :: !Text
+    , _upfgipXgafv          :: !(Maybe Text)
+    , _upfgipUploadProtocol :: !(Maybe Text)
+    , _upfgipUpdateMask     :: !(Maybe Text)
+    , _upfgipPp             :: !Bool
+    , _upfgipAccessToken    :: !(Maybe Text)
+    , _upfgipUploadType     :: !(Maybe Text)
+    , _upfgipPayload        :: !GuardianInvitation
+    , _upfgipInvitationId   :: !Text
+    , _upfgipBearerToken    :: !(Maybe Text)
+    , _upfgipCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFilesGuardianInvitationsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upfgipStudentId'
+--
+-- * 'upfgipXgafv'
+--
+-- * 'upfgipUploadProtocol'
+--
+-- * 'upfgipUpdateMask'
+--
+-- * 'upfgipPp'
+--
+-- * 'upfgipAccessToken'
+--
+-- * 'upfgipUploadType'
+--
+-- * 'upfgipPayload'
+--
+-- * 'upfgipInvitationId'
+--
+-- * 'upfgipBearerToken'
+--
+-- * 'upfgipCallback'
+userProFilesGuardianInvitationsPatch
+    :: Text -- ^ 'upfgipStudentId'
+    -> GuardianInvitation -- ^ 'upfgipPayload'
+    -> Text -- ^ 'upfgipInvitationId'
+    -> UserProFilesGuardianInvitationsPatch
+userProFilesGuardianInvitationsPatch pUpfgipStudentId_ pUpfgipPayload_ pUpfgipInvitationId_ =
+    UserProFilesGuardianInvitationsPatch'
+    { _upfgipStudentId = pUpfgipStudentId_
+    , _upfgipXgafv = Nothing
+    , _upfgipUploadProtocol = Nothing
+    , _upfgipUpdateMask = Nothing
+    , _upfgipPp = True
+    , _upfgipAccessToken = Nothing
+    , _upfgipUploadType = Nothing
+    , _upfgipPayload = pUpfgipPayload_
+    , _upfgipInvitationId = pUpfgipInvitationId_
+    , _upfgipBearerToken = Nothing
+    , _upfgipCallback = Nothing
+    }
+
+-- | The ID of the student whose guardian invitation is to be modified.
+upfgipStudentId :: Lens' UserProFilesGuardianInvitationsPatch Text
+upfgipStudentId
+  = lens _upfgipStudentId
+      (\ s a -> s{_upfgipStudentId = a})
+
+-- | V1 error format.
+upfgipXgafv :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)
+upfgipXgafv
+  = lens _upfgipXgafv (\ s a -> s{_upfgipXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+upfgipUploadProtocol :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)
+upfgipUploadProtocol
+  = lens _upfgipUploadProtocol
+      (\ s a -> s{_upfgipUploadProtocol = a})
+
+-- | Mask that identifies which fields on the course to update. This field is
+-- required to do an update. The update will fail if invalid fields are
+-- specified. The following fields are valid: * \`state\` When set in a
+-- query parameter, this field should be specified as \`updateMask=,,...\`
+upfgipUpdateMask :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)
+upfgipUpdateMask
+  = lens _upfgipUpdateMask
+      (\ s a -> s{_upfgipUpdateMask = a})
+
+-- | Pretty-print response.
+upfgipPp :: Lens' UserProFilesGuardianInvitationsPatch Bool
+upfgipPp = lens _upfgipPp (\ s a -> s{_upfgipPp = a})
+
+-- | OAuth access token.
+upfgipAccessToken :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)
+upfgipAccessToken
+  = lens _upfgipAccessToken
+      (\ s a -> s{_upfgipAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+upfgipUploadType :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)
+upfgipUploadType
+  = lens _upfgipUploadType
+      (\ s a -> s{_upfgipUploadType = a})
+
+-- | Multipart request metadata.
+upfgipPayload :: Lens' UserProFilesGuardianInvitationsPatch GuardianInvitation
+upfgipPayload
+  = lens _upfgipPayload
+      (\ s a -> s{_upfgipPayload = a})
+
+-- | The \`id\` field of the \`GuardianInvitation\` to be modified.
+upfgipInvitationId :: Lens' UserProFilesGuardianInvitationsPatch Text
+upfgipInvitationId
+  = lens _upfgipInvitationId
+      (\ s a -> s{_upfgipInvitationId = a})
+
+-- | OAuth bearer token.
+upfgipBearerToken :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)
+upfgipBearerToken
+  = lens _upfgipBearerToken
+      (\ s a -> s{_upfgipBearerToken = a})
+
+-- | JSONP
+upfgipCallback :: Lens' UserProFilesGuardianInvitationsPatch (Maybe Text)
+upfgipCallback
+  = lens _upfgipCallback
+      (\ s a -> s{_upfgipCallback = a})
+
+instance GoogleRequest
+         UserProFilesGuardianInvitationsPatch where
+        type Rs UserProFilesGuardianInvitationsPatch =
+             GuardianInvitation
+        type Scopes UserProFilesGuardianInvitationsPatch =
+             '[]
+        requestClient
+          UserProFilesGuardianInvitationsPatch'{..}
+          = go _upfgipStudentId _upfgipInvitationId
+              _upfgipXgafv
+              _upfgipUploadProtocol
+              _upfgipUpdateMask
+              (Just _upfgipPp)
+              _upfgipAccessToken
+              _upfgipUploadType
+              _upfgipBearerToken
+              _upfgipCallback
+              (Just AltJSON)
+              _upfgipPayload
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy UserProFilesGuardianInvitationsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs
@@ -0,0 +1,210 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a guardian. The guardian will no longer receive guardian
+-- notifications and the guardian will no longer be accessible via the API.
+-- This method returns the following error codes: * \`PERMISSION_DENIED\`
+-- if the requesting user is not permitted to manage guardians for the
+-- student identified by the \`student_id\`, if guardians are not enabled
+-- for the domain in question, or for other access errors. *
+-- \`INVALID_ARGUMENT\` if a \`student_id\` is specified, but its format
+-- cannot be recognized (it is not an email address, nor a \`student_id\`
+-- from the API). * \`NOT_FOUND\` if Classroom cannot find any record of
+-- the given \`student_id\` or \`guardian_id\`, or if the guardian has
+-- already been disabled.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.delete@.
+module Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete
+    (
+    -- * REST Resource
+      UserProFilesGuardiansDeleteResource
+
+    -- * Creating a Request
+    , userProFilesGuardiansDelete
+    , UserProFilesGuardiansDelete
+
+    -- * Request Lenses
+    , upfgdStudentId
+    , upfgdXgafv
+    , upfgdUploadProtocol
+    , upfgdPp
+    , upfgdAccessToken
+    , upfgdUploadType
+    , upfgdGuardianId
+    , upfgdBearerToken
+    , upfgdCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.userProfiles.guardians.delete@ method which the
+-- 'UserProFilesGuardiansDelete' request conforms to.
+type UserProFilesGuardiansDeleteResource =
+     "v1" :>
+       "userProfiles" :>
+         Capture "studentId" Text :>
+           "guardians" :>
+             Capture "guardianId" Text :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes a guardian. The guardian will no longer receive guardian
+-- notifications and the guardian will no longer be accessible via the API.
+-- This method returns the following error codes: * \`PERMISSION_DENIED\`
+-- if the requesting user is not permitted to manage guardians for the
+-- student identified by the \`student_id\`, if guardians are not enabled
+-- for the domain in question, or for other access errors. *
+-- \`INVALID_ARGUMENT\` if a \`student_id\` is specified, but its format
+-- cannot be recognized (it is not an email address, nor a \`student_id\`
+-- from the API). * \`NOT_FOUND\` if Classroom cannot find any record of
+-- the given \`student_id\` or \`guardian_id\`, or if the guardian has
+-- already been disabled.
+--
+-- /See:/ 'userProFilesGuardiansDelete' smart constructor.
+data UserProFilesGuardiansDelete = UserProFilesGuardiansDelete'
+    { _upfgdStudentId      :: !Text
+    , _upfgdXgafv          :: !(Maybe Text)
+    , _upfgdUploadProtocol :: !(Maybe Text)
+    , _upfgdPp             :: !Bool
+    , _upfgdAccessToken    :: !(Maybe Text)
+    , _upfgdUploadType     :: !(Maybe Text)
+    , _upfgdGuardianId     :: !Text
+    , _upfgdBearerToken    :: !(Maybe Text)
+    , _upfgdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFilesGuardiansDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upfgdStudentId'
+--
+-- * 'upfgdXgafv'
+--
+-- * 'upfgdUploadProtocol'
+--
+-- * 'upfgdPp'
+--
+-- * 'upfgdAccessToken'
+--
+-- * 'upfgdUploadType'
+--
+-- * 'upfgdGuardianId'
+--
+-- * 'upfgdBearerToken'
+--
+-- * 'upfgdCallback'
+userProFilesGuardiansDelete
+    :: Text -- ^ 'upfgdStudentId'
+    -> Text -- ^ 'upfgdGuardianId'
+    -> UserProFilesGuardiansDelete
+userProFilesGuardiansDelete pUpfgdStudentId_ pUpfgdGuardianId_ =
+    UserProFilesGuardiansDelete'
+    { _upfgdStudentId = pUpfgdStudentId_
+    , _upfgdXgafv = Nothing
+    , _upfgdUploadProtocol = Nothing
+    , _upfgdPp = True
+    , _upfgdAccessToken = Nothing
+    , _upfgdUploadType = Nothing
+    , _upfgdGuardianId = pUpfgdGuardianId_
+    , _upfgdBearerToken = Nothing
+    , _upfgdCallback = Nothing
+    }
+
+-- | The student whose guardian is to be deleted. One of the following: * the
+-- numeric identifier for the user * the email address of the user * the
+-- string literal \`\"me\"\`, indicating the requesting user
+upfgdStudentId :: Lens' UserProFilesGuardiansDelete Text
+upfgdStudentId
+  = lens _upfgdStudentId
+      (\ s a -> s{_upfgdStudentId = a})
+
+-- | V1 error format.
+upfgdXgafv :: Lens' UserProFilesGuardiansDelete (Maybe Text)
+upfgdXgafv
+  = lens _upfgdXgafv (\ s a -> s{_upfgdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+upfgdUploadProtocol :: Lens' UserProFilesGuardiansDelete (Maybe Text)
+upfgdUploadProtocol
+  = lens _upfgdUploadProtocol
+      (\ s a -> s{_upfgdUploadProtocol = a})
+
+-- | Pretty-print response.
+upfgdPp :: Lens' UserProFilesGuardiansDelete Bool
+upfgdPp = lens _upfgdPp (\ s a -> s{_upfgdPp = a})
+
+-- | OAuth access token.
+upfgdAccessToken :: Lens' UserProFilesGuardiansDelete (Maybe Text)
+upfgdAccessToken
+  = lens _upfgdAccessToken
+      (\ s a -> s{_upfgdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+upfgdUploadType :: Lens' UserProFilesGuardiansDelete (Maybe Text)
+upfgdUploadType
+  = lens _upfgdUploadType
+      (\ s a -> s{_upfgdUploadType = a})
+
+-- | The \`id\` field from a \`Guardian\`.
+upfgdGuardianId :: Lens' UserProFilesGuardiansDelete Text
+upfgdGuardianId
+  = lens _upfgdGuardianId
+      (\ s a -> s{_upfgdGuardianId = a})
+
+-- | OAuth bearer token.
+upfgdBearerToken :: Lens' UserProFilesGuardiansDelete (Maybe Text)
+upfgdBearerToken
+  = lens _upfgdBearerToken
+      (\ s a -> s{_upfgdBearerToken = a})
+
+-- | JSONP
+upfgdCallback :: Lens' UserProFilesGuardiansDelete (Maybe Text)
+upfgdCallback
+  = lens _upfgdCallback
+      (\ s a -> s{_upfgdCallback = a})
+
+instance GoogleRequest UserProFilesGuardiansDelete
+         where
+        type Rs UserProFilesGuardiansDelete = Empty
+        type Scopes UserProFilesGuardiansDelete = '[]
+        requestClient UserProFilesGuardiansDelete'{..}
+          = go _upfgdStudentId _upfgdGuardianId _upfgdXgafv
+              _upfgdUploadProtocol
+              (Just _upfgdPp)
+              _upfgdAccessToken
+              _upfgdUploadType
+              _upfgdBearerToken
+              _upfgdCallback
+              (Just AltJSON)
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserProFilesGuardiansDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs
@@ -0,0 +1,205 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.UserProFiles.Guardians.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a specific guardian. This method returns the following error
+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted
+-- to view guardian information for the student identified by the
+-- \`student_id\`, if guardians are not enabled for the domain in question,
+-- or for other access errors. * \`INVALID_ARGUMENT\` if a \`student_id\`
+-- is specified, but its format cannot be recognized (it is not an email
+-- address, nor a \`student_id\` from the API, nor the literal string
+-- \`me\`). * \`NOT_FOUND\` if Classroom cannot find any record of the
+-- given student or \`guardian_id\`, or if the guardian has been disabled.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.get@.
+module Network.Google.Resource.Classroom.UserProFiles.Guardians.Get
+    (
+    -- * REST Resource
+      UserProFilesGuardiansGetResource
+
+    -- * Creating a Request
+    , userProFilesGuardiansGet
+    , UserProFilesGuardiansGet
+
+    -- * Request Lenses
+    , upfggStudentId
+    , upfggXgafv
+    , upfggUploadProtocol
+    , upfggPp
+    , upfggAccessToken
+    , upfggUploadType
+    , upfggGuardianId
+    , upfggBearerToken
+    , upfggCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.userProfiles.guardians.get@ method which the
+-- 'UserProFilesGuardiansGet' request conforms to.
+type UserProFilesGuardiansGetResource =
+     "v1" :>
+       "userProfiles" :>
+         Capture "studentId" Text :>
+           "guardians" :>
+             Capture "guardianId" Text :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :> Get '[JSON] Guardian
+
+-- | Returns a specific guardian. This method returns the following error
+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted
+-- to view guardian information for the student identified by the
+-- \`student_id\`, if guardians are not enabled for the domain in question,
+-- or for other access errors. * \`INVALID_ARGUMENT\` if a \`student_id\`
+-- is specified, but its format cannot be recognized (it is not an email
+-- address, nor a \`student_id\` from the API, nor the literal string
+-- \`me\`). * \`NOT_FOUND\` if Classroom cannot find any record of the
+-- given student or \`guardian_id\`, or if the guardian has been disabled.
+--
+-- /See:/ 'userProFilesGuardiansGet' smart constructor.
+data UserProFilesGuardiansGet = UserProFilesGuardiansGet'
+    { _upfggStudentId      :: !Text
+    , _upfggXgafv          :: !(Maybe Text)
+    , _upfggUploadProtocol :: !(Maybe Text)
+    , _upfggPp             :: !Bool
+    , _upfggAccessToken    :: !(Maybe Text)
+    , _upfggUploadType     :: !(Maybe Text)
+    , _upfggGuardianId     :: !Text
+    , _upfggBearerToken    :: !(Maybe Text)
+    , _upfggCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFilesGuardiansGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upfggStudentId'
+--
+-- * 'upfggXgafv'
+--
+-- * 'upfggUploadProtocol'
+--
+-- * 'upfggPp'
+--
+-- * 'upfggAccessToken'
+--
+-- * 'upfggUploadType'
+--
+-- * 'upfggGuardianId'
+--
+-- * 'upfggBearerToken'
+--
+-- * 'upfggCallback'
+userProFilesGuardiansGet
+    :: Text -- ^ 'upfggStudentId'
+    -> Text -- ^ 'upfggGuardianId'
+    -> UserProFilesGuardiansGet
+userProFilesGuardiansGet pUpfggStudentId_ pUpfggGuardianId_ =
+    UserProFilesGuardiansGet'
+    { _upfggStudentId = pUpfggStudentId_
+    , _upfggXgafv = Nothing
+    , _upfggUploadProtocol = Nothing
+    , _upfggPp = True
+    , _upfggAccessToken = Nothing
+    , _upfggUploadType = Nothing
+    , _upfggGuardianId = pUpfggGuardianId_
+    , _upfggBearerToken = Nothing
+    , _upfggCallback = Nothing
+    }
+
+-- | The student whose guardian is being requested. One of the following: *
+-- the numeric identifier for the user * the email address of the user *
+-- the string literal \`\"me\"\`, indicating the requesting user
+upfggStudentId :: Lens' UserProFilesGuardiansGet Text
+upfggStudentId
+  = lens _upfggStudentId
+      (\ s a -> s{_upfggStudentId = a})
+
+-- | V1 error format.
+upfggXgafv :: Lens' UserProFilesGuardiansGet (Maybe Text)
+upfggXgafv
+  = lens _upfggXgafv (\ s a -> s{_upfggXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+upfggUploadProtocol :: Lens' UserProFilesGuardiansGet (Maybe Text)
+upfggUploadProtocol
+  = lens _upfggUploadProtocol
+      (\ s a -> s{_upfggUploadProtocol = a})
+
+-- | Pretty-print response.
+upfggPp :: Lens' UserProFilesGuardiansGet Bool
+upfggPp = lens _upfggPp (\ s a -> s{_upfggPp = a})
+
+-- | OAuth access token.
+upfggAccessToken :: Lens' UserProFilesGuardiansGet (Maybe Text)
+upfggAccessToken
+  = lens _upfggAccessToken
+      (\ s a -> s{_upfggAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+upfggUploadType :: Lens' UserProFilesGuardiansGet (Maybe Text)
+upfggUploadType
+  = lens _upfggUploadType
+      (\ s a -> s{_upfggUploadType = a})
+
+-- | The \`id\` field from a \`Guardian\`.
+upfggGuardianId :: Lens' UserProFilesGuardiansGet Text
+upfggGuardianId
+  = lens _upfggGuardianId
+      (\ s a -> s{_upfggGuardianId = a})
+
+-- | OAuth bearer token.
+upfggBearerToken :: Lens' UserProFilesGuardiansGet (Maybe Text)
+upfggBearerToken
+  = lens _upfggBearerToken
+      (\ s a -> s{_upfggBearerToken = a})
+
+-- | JSONP
+upfggCallback :: Lens' UserProFilesGuardiansGet (Maybe Text)
+upfggCallback
+  = lens _upfggCallback
+      (\ s a -> s{_upfggCallback = a})
+
+instance GoogleRequest UserProFilesGuardiansGet where
+        type Rs UserProFilesGuardiansGet = Guardian
+        type Scopes UserProFilesGuardiansGet = '[]
+        requestClient UserProFilesGuardiansGet'{..}
+          = go _upfggStudentId _upfggGuardianId _upfggXgafv
+              _upfggUploadProtocol
+              (Just _upfggPp)
+              _upfggAccessToken
+              _upfggUploadType
+              _upfggBearerToken
+              _upfggCallback
+              (Just AltJSON)
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserProFilesGuardiansGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/List.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/List.hs
@@ -0,0 +1,257 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.UserProFiles.Guardians.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a list of guardians that the requesting user is permitted to
+-- view, restricted to those that match the request. To list guardians for
+-- any student that the requesting user may view guardians for, use the
+-- literal character \`-\` for the student ID. This method returns the
+-- following error codes: * \`PERMISSION_DENIED\` if a \`student_id\` is
+-- specified, and the requesting user is not permitted to view guardian
+-- information for that student, if \`\"-\"\` is specified as the
+-- \`student_id\` and the user is not a domain administrator, if guardians
+-- are not enabled for the domain in question, if the
+-- \`invited_email_address\` filter is set by a user who is not a domain
+-- administrator, or for other access errors. * \`INVALID_ARGUMENT\` if a
+-- \`student_id\` is specified, but its format cannot be recognized (it is
+-- not an email address, nor a \`student_id\` from the API, nor the literal
+-- string \`me\`). May also be returned if an invalid \`page_token\` is
+-- provided. * \`NOT_FOUND\` if a \`student_id\` is specified, and its
+-- format can be recognized, but Classroom has no record of that student.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.list@.
+module Network.Google.Resource.Classroom.UserProFiles.Guardians.List
+    (
+    -- * REST Resource
+      UserProFilesGuardiansListResource
+
+    -- * Creating a Request
+    , userProFilesGuardiansList
+    , UserProFilesGuardiansList
+
+    -- * Request Lenses
+    , upfglStudentId
+    , upfglXgafv
+    , upfglUploadProtocol
+    , upfglPp
+    , upfglAccessToken
+    , upfglUploadType
+    , upfglBearerToken
+    , upfglInvitedEmailAddress
+    , upfglPageToken
+    , upfglPageSize
+    , upfglCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.userProfiles.guardians.list@ method which the
+-- 'UserProFilesGuardiansList' request conforms to.
+type UserProFilesGuardiansListResource =
+     "v1" :>
+       "userProfiles" :>
+         Capture "studentId" Text :>
+           "guardians" :>
+             QueryParam "$.xgafv" Text :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "invitedEmailAddress" Text :>
+                           QueryParam "pageToken" Text :>
+                             QueryParam "pageSize" (Textual Int32) :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] ListGuardiansResponse
+
+-- | Returns a list of guardians that the requesting user is permitted to
+-- view, restricted to those that match the request. To list guardians for
+-- any student that the requesting user may view guardians for, use the
+-- literal character \`-\` for the student ID. This method returns the
+-- following error codes: * \`PERMISSION_DENIED\` if a \`student_id\` is
+-- specified, and the requesting user is not permitted to view guardian
+-- information for that student, if \`\"-\"\` is specified as the
+-- \`student_id\` and the user is not a domain administrator, if guardians
+-- are not enabled for the domain in question, if the
+-- \`invited_email_address\` filter is set by a user who is not a domain
+-- administrator, or for other access errors. * \`INVALID_ARGUMENT\` if a
+-- \`student_id\` is specified, but its format cannot be recognized (it is
+-- not an email address, nor a \`student_id\` from the API, nor the literal
+-- string \`me\`). May also be returned if an invalid \`page_token\` is
+-- provided. * \`NOT_FOUND\` if a \`student_id\` is specified, and its
+-- format can be recognized, but Classroom has no record of that student.
+--
+-- /See:/ 'userProFilesGuardiansList' smart constructor.
+data UserProFilesGuardiansList = UserProFilesGuardiansList'
+    { _upfglStudentId           :: !Text
+    , _upfglXgafv               :: !(Maybe Text)
+    , _upfglUploadProtocol      :: !(Maybe Text)
+    , _upfglPp                  :: !Bool
+    , _upfglAccessToken         :: !(Maybe Text)
+    , _upfglUploadType          :: !(Maybe Text)
+    , _upfglBearerToken         :: !(Maybe Text)
+    , _upfglInvitedEmailAddress :: !(Maybe Text)
+    , _upfglPageToken           :: !(Maybe Text)
+    , _upfglPageSize            :: !(Maybe (Textual Int32))
+    , _upfglCallback            :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UserProFilesGuardiansList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'upfglStudentId'
+--
+-- * 'upfglXgafv'
+--
+-- * 'upfglUploadProtocol'
+--
+-- * 'upfglPp'
+--
+-- * 'upfglAccessToken'
+--
+-- * 'upfglUploadType'
+--
+-- * 'upfglBearerToken'
+--
+-- * 'upfglInvitedEmailAddress'
+--
+-- * 'upfglPageToken'
+--
+-- * 'upfglPageSize'
+--
+-- * 'upfglCallback'
+userProFilesGuardiansList
+    :: Text -- ^ 'upfglStudentId'
+    -> UserProFilesGuardiansList
+userProFilesGuardiansList pUpfglStudentId_ =
+    UserProFilesGuardiansList'
+    { _upfglStudentId = pUpfglStudentId_
+    , _upfglXgafv = Nothing
+    , _upfglUploadProtocol = Nothing
+    , _upfglPp = True
+    , _upfglAccessToken = Nothing
+    , _upfglUploadType = Nothing
+    , _upfglBearerToken = Nothing
+    , _upfglInvitedEmailAddress = Nothing
+    , _upfglPageToken = Nothing
+    , _upfglPageSize = Nothing
+    , _upfglCallback = Nothing
+    }
+
+-- | Filter results by the student who the guardian is linked to. The
+-- identifier can be one of the following: * the numeric identifier for the
+-- user * the email address of the user * the string literal \`\"me\"\`,
+-- indicating the requesting user * the string literal \`\"-\"\`,
+-- indicating that results should be returned for all students that the
+-- requesting user has access to view.
+upfglStudentId :: Lens' UserProFilesGuardiansList Text
+upfglStudentId
+  = lens _upfglStudentId
+      (\ s a -> s{_upfglStudentId = a})
+
+-- | V1 error format.
+upfglXgafv :: Lens' UserProFilesGuardiansList (Maybe Text)
+upfglXgafv
+  = lens _upfglXgafv (\ s a -> s{_upfglXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+upfglUploadProtocol :: Lens' UserProFilesGuardiansList (Maybe Text)
+upfglUploadProtocol
+  = lens _upfglUploadProtocol
+      (\ s a -> s{_upfglUploadProtocol = a})
+
+-- | Pretty-print response.
+upfglPp :: Lens' UserProFilesGuardiansList Bool
+upfglPp = lens _upfglPp (\ s a -> s{_upfglPp = a})
+
+-- | OAuth access token.
+upfglAccessToken :: Lens' UserProFilesGuardiansList (Maybe Text)
+upfglAccessToken
+  = lens _upfglAccessToken
+      (\ s a -> s{_upfglAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+upfglUploadType :: Lens' UserProFilesGuardiansList (Maybe Text)
+upfglUploadType
+  = lens _upfglUploadType
+      (\ s a -> s{_upfglUploadType = a})
+
+-- | OAuth bearer token.
+upfglBearerToken :: Lens' UserProFilesGuardiansList (Maybe Text)
+upfglBearerToken
+  = lens _upfglBearerToken
+      (\ s a -> s{_upfglBearerToken = a})
+
+-- | Filter results by the email address that the original invitation was
+-- sent to, resulting in this guardian link. This filter can only be used
+-- by domain administrators.
+upfglInvitedEmailAddress :: Lens' UserProFilesGuardiansList (Maybe Text)
+upfglInvitedEmailAddress
+  = lens _upfglInvitedEmailAddress
+      (\ s a -> s{_upfglInvitedEmailAddress = a})
+
+-- | nextPageToken value returned from a previous list call, indicating that
+-- the subsequent page of results should be returned. The list request must
+-- be otherwise identical to the one that resulted in this token.
+upfglPageToken :: Lens' UserProFilesGuardiansList (Maybe Text)
+upfglPageToken
+  = lens _upfglPageToken
+      (\ s a -> s{_upfglPageToken = a})
+
+-- | Maximum number of items to return. Zero or unspecified indicates that
+-- the server may assign a maximum. The server may return fewer than the
+-- specified number of results.
+upfglPageSize :: Lens' UserProFilesGuardiansList (Maybe Int32)
+upfglPageSize
+  = lens _upfglPageSize
+      (\ s a -> s{_upfglPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+upfglCallback :: Lens' UserProFilesGuardiansList (Maybe Text)
+upfglCallback
+  = lens _upfglCallback
+      (\ s a -> s{_upfglCallback = a})
+
+instance GoogleRequest UserProFilesGuardiansList
+         where
+        type Rs UserProFilesGuardiansList =
+             ListGuardiansResponse
+        type Scopes UserProFilesGuardiansList = '[]
+        requestClient UserProFilesGuardiansList'{..}
+          = go _upfglStudentId _upfglXgafv _upfglUploadProtocol
+              (Just _upfglPp)
+              _upfglAccessToken
+              _upfglUploadType
+              _upfglBearerToken
+              _upfglInvitedEmailAddress
+              _upfglPageToken
+              _upfglPageSize
+              _upfglCallback
+              (Just AltJSON)
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UserProFilesGuardiansListResource)
+                      mempty
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.1.0
+version:               0.1.1
 synopsis:              Google Classroom SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -11,7 +11,7 @@
 category:              Network, Google, Cloud
 build-type:            Simple
 cabal-version:         >= 1.10
-extra-source-files:    README.md
+extra-source-files:    README.md src/.gitkeep
 
 description:
     Manages classes, rosters, and invitations in Google Classroom.
@@ -68,11 +68,18 @@
         , Network.Google.Resource.Classroom.Invitations.Get
         , Network.Google.Resource.Classroom.Invitations.List
         , Network.Google.Resource.Classroom.UserProFiles.Get
+        , Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Create
+        , Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Get
+        , Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.List
+        , Network.Google.Resource.Classroom.UserProFiles.GuardianInvitations.Patch
+        , Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete
+        , Network.Google.Resource.Classroom.UserProFiles.Guardians.Get
+        , Network.Google.Resource.Classroom.UserProFiles.Guardians.List
 
     other-modules:
           Network.Google.Classroom.Types.Product
         , Network.Google.Classroom.Types.Sum
 
     build-depends:
-          gogol-core == 0.1.0.*
+          gogol-core == 0.1.1.*
         , base       >= 4.7 && < 5
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
