diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.1.1`
+`0.2.0`
 
 
 ## Description
diff --git a/gen/Network/Google/Classroom.hs b/gen/Network/Google/Classroom.hs
--- a/gen/Network/Google/Classroom.hs
+++ b/gen/Network/Google/Classroom.hs
@@ -53,12 +53,18 @@
     -- ** classroom.courses.courseWork.create
     , module Network.Google.Resource.Classroom.Courses.CourseWork.Create
 
+    -- ** classroom.courses.courseWork.delete
+    , module Network.Google.Resource.Classroom.Courses.CourseWork.Delete
+
     -- ** classroom.courses.courseWork.get
     , module Network.Google.Resource.Classroom.Courses.CourseWork.Get
 
     -- ** classroom.courses.courseWork.list
     , module Network.Google.Resource.Classroom.Courses.CourseWork.List
 
+    -- ** classroom.courses.courseWork.patch
+    , module Network.Google.Resource.Classroom.Courses.CourseWork.Patch
+
     -- ** classroom.courses.courseWork.studentSubmissions.get
     , module Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get
 
@@ -487,8 +493,10 @@
 import           Network.Google.Resource.Classroom.Courses.Aliases.Delete
 import           Network.Google.Resource.Classroom.Courses.Aliases.List
 import           Network.Google.Resource.Classroom.Courses.CourseWork.Create
+import           Network.Google.Resource.Classroom.Courses.CourseWork.Delete
 import           Network.Google.Resource.Classroom.Courses.CourseWork.Get
 import           Network.Google.Resource.Classroom.Courses.CourseWork.List
+import           Network.Google.Resource.Classroom.Courses.CourseWork.Patch
 import           Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get
 import           Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List
 import           Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments
@@ -547,8 +555,10 @@
        :<|>
        CoursesCourseWorkStudentSubmissionsModifyAttachmentsResource
        :<|> CoursesCourseWorkListResource
+       :<|> CoursesCourseWorkPatchResource
        :<|> CoursesCourseWorkGetResource
        :<|> CoursesCourseWorkCreateResource
+       :<|> CoursesCourseWorkDeleteResource
        :<|> CoursesTeachersListResource
        :<|> CoursesTeachersGetResource
        :<|> CoursesTeachersCreateResource
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
@@ -188,8 +188,7 @@
       mapping _Coerce
 
 -- | Type of this course work. The type is set when the course work is
--- created and cannot be changed. When creating course work, this must be
--- \`ASSIGNMENT\`.
+-- created and cannot be changed.
 cwWorkType :: Lens' CourseWork (Maybe Text)
 cwWorkType
   = lens _cwWorkType (\ s a -> s{_cwWorkType = a})
@@ -213,8 +212,11 @@
 cwUpdateTime
   = lens _cwUpdateTime (\ s a -> s{_cwUpdateTime = a})
 
--- | Multiple choice question details. This is populated only when
--- \`work_type\` is \`MULTIPLE_CHOICE_QUESTION\`.
+-- | Multiple choice question details. For read operations, this field is
+-- populated only when \`work_type\` is \`MULTIPLE_CHOICE_QUESTION\`. For
+-- write operations, this field must be specified when creating course work
+-- with a \`work_type\` of \`MULTIPLE_CHOICE_QUESTION\`, and it must not be
+-- set otherwise.
 cwMultipleChoiceQuestion :: Lens' CourseWork (Maybe MultipleChoiceQuestion)
 cwMultipleChoiceQuestion
   = lens _cwMultipleChoiceQuestion
@@ -251,7 +253,7 @@
       (\ s a -> s{_cwAlternateLink = a})
 
 -- | Assignment details. This is populated only when \`work_type\` is
--- \`ASSIGNMENT\`.
+-- \`ASSIGNMENT\`. Read-only.
 cwAssignment :: Lens' CourseWork (Maybe Assignment)
 cwAssignment
   = lens _cwAssignment (\ s a -> s{_cwAssignment = a})
@@ -694,11 +696,11 @@
     }
 
 -- | Attachments added by the student. Drive files that correspond to
--- materials with a share mode of SUBMISSION_COPY may not exist yet if the
+-- materials with a share mode of STUDENT_COPY may not exist yet if the
 -- student has not accessed the assignment in Classroom. Some attachment
 -- metadata is only populated if the requesting user has permission to
--- access it. Identifier and alternate_link fields are available, but
--- others (e.g. title) may not be.
+-- access it. Identifier and alternate_link fields are always available,
+-- but others (e.g. title) may not be.
 asAttachments :: Lens' AssignmentSubmission [Attachment]
 asAttachments
   = lens _asAttachments
@@ -738,7 +740,7 @@
     }
 
 -- | Attachments to add. A student submission may not have more than 20
--- attachments. This may only contain link attachments.
+-- attachments. Form attachments are not supported.
 marAddAttachments :: Lens' ModifyAttachmentsRequest [Attachment]
 marAddAttachments
   = lens _marAddAttachments
@@ -814,8 +816,8 @@
                   ("studentSubmissions" .=) <$>
                     _lssrStudentSubmissions])
 
--- | Material attached to course work. When creating attachments, only the
--- Link field may be specified.
+-- | Material attached to course work. When creating attachments, setting the
+-- \`form\` field is not supported.
 --
 -- /See:/ 'material' smart constructor.
 data Material = Material'
@@ -851,7 +853,8 @@
 mDriveFile
   = lens _mDriveFile (\ s a -> s{_mDriveFile = a})
 
--- | Link material.
+-- | Link material. On creation, will be upgraded to a more appropriate type
+-- if possible, and this will be reflected in the response.
 mLink :: Lens' Material (Maybe Link)
 mLink = lens _mLink (\ s a -> s{_mLink = a})
 
@@ -1214,7 +1217,7 @@
                   ("id" .=) <$> _iId])
 
 -- | Attachment added to student assignment work. When creating attachments,
--- only the Link field may be specified.
+-- setting the \`form\` field is not supported.
 --
 -- /See:/ 'attachment' smart constructor.
 data Attachment = Attachment'
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Create.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Create.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Create.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Create.hs
@@ -29,8 +29,10 @@
 -- Developer Console project. This method returns the following error
 -- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted
 -- to access the requested course, create course work in the requested
--- course, or for access errors. * \`INVALID_ARGUMENT\` if the request is
--- malformed. * \`NOT_FOUND\` if the requested course does not exist.
+-- course, share a Drive attachment, or for access errors. *
+-- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the
+-- requested course does not exist. * \`FAILED_PRECONDITION\` for the
+-- following request error: * AttachmentNotVisible
 --
 -- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.create@.
 module Network.Google.Resource.Classroom.Courses.CourseWork.Create
@@ -84,8 +86,10 @@
 -- Developer Console project. This method returns the following error
 -- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted
 -- to access the requested course, create course work in the requested
--- course, or for access errors. * \`INVALID_ARGUMENT\` if the request is
--- malformed. * \`NOT_FOUND\` if the requested course does not exist.
+-- course, share a Drive attachment, or for access errors. *
+-- \`INVALID_ARGUMENT\` if the request is malformed. * \`NOT_FOUND\` if the
+-- requested course does not exist. * \`FAILED_PRECONDITION\` for the
+-- following request error: * AttachmentNotVisible
 --
 -- /See:/ 'coursesCourseWorkCreate' smart constructor.
 data CoursesCourseWorkCreate = CoursesCourseWorkCreate'
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Delete.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Delete.hs
@@ -0,0 +1,202 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.Courses.CourseWork.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a course work. This request must be made by the Developer
+-- Console project of the [OAuth client
+-- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create
+-- the corresponding course work item. This method returns the following
+-- error codes: * \`PERMISSION_DENIED\` if the requesting developer project
+-- did not create the corresponding course work, if the requesting user is
+-- not permitted to delete the requested course or for access errors. *
+-- \`FAILED_PRECONDITION\` if the requested course work has already been
+-- deleted. * \`NOT_FOUND\` if no course exists with the requested ID.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.delete@.
+module Network.Google.Resource.Classroom.Courses.CourseWork.Delete
+    (
+    -- * REST Resource
+      CoursesCourseWorkDeleteResource
+
+    -- * Creating a Request
+    , coursesCourseWorkDelete
+    , CoursesCourseWorkDelete
+
+    -- * Request Lenses
+    , ccwdXgafv
+    , ccwdUploadProtocol
+    , ccwdPp
+    , ccwdCourseId
+    , ccwdAccessToken
+    , ccwdUploadType
+    , ccwdBearerToken
+    , ccwdId
+    , ccwdCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.courses.courseWork.delete@ method which the
+-- 'CoursesCourseWorkDelete' request conforms to.
+type CoursesCourseWorkDeleteResource =
+     "v1" :>
+       "courses" :>
+         Capture "courseId" Text :>
+           "courseWork" :>
+             Capture "id" Text :>
+               QueryParam "$.xgafv" 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 course work. This request must be made by the Developer
+-- Console project of the [OAuth client
+-- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create
+-- the corresponding course work item. This method returns the following
+-- error codes: * \`PERMISSION_DENIED\` if the requesting developer project
+-- did not create the corresponding course work, if the requesting user is
+-- not permitted to delete the requested course or for access errors. *
+-- \`FAILED_PRECONDITION\` if the requested course work has already been
+-- deleted. * \`NOT_FOUND\` if no course exists with the requested ID.
+--
+-- /See:/ 'coursesCourseWorkDelete' smart constructor.
+data CoursesCourseWorkDelete = CoursesCourseWorkDelete'
+    { _ccwdXgafv          :: !(Maybe Text)
+    , _ccwdUploadProtocol :: !(Maybe Text)
+    , _ccwdPp             :: !Bool
+    , _ccwdCourseId       :: !Text
+    , _ccwdAccessToken    :: !(Maybe Text)
+    , _ccwdUploadType     :: !(Maybe Text)
+    , _ccwdBearerToken    :: !(Maybe Text)
+    , _ccwdId             :: !Text
+    , _ccwdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CoursesCourseWorkDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccwdXgafv'
+--
+-- * 'ccwdUploadProtocol'
+--
+-- * 'ccwdPp'
+--
+-- * 'ccwdCourseId'
+--
+-- * 'ccwdAccessToken'
+--
+-- * 'ccwdUploadType'
+--
+-- * 'ccwdBearerToken'
+--
+-- * 'ccwdId'
+--
+-- * 'ccwdCallback'
+coursesCourseWorkDelete
+    :: Text -- ^ 'ccwdCourseId'
+    -> Text -- ^ 'ccwdId'
+    -> CoursesCourseWorkDelete
+coursesCourseWorkDelete pCcwdCourseId_ pCcwdId_ =
+    CoursesCourseWorkDelete'
+    { _ccwdXgafv = Nothing
+    , _ccwdUploadProtocol = Nothing
+    , _ccwdPp = True
+    , _ccwdCourseId = pCcwdCourseId_
+    , _ccwdAccessToken = Nothing
+    , _ccwdUploadType = Nothing
+    , _ccwdBearerToken = Nothing
+    , _ccwdId = pCcwdId_
+    , _ccwdCallback = Nothing
+    }
+
+-- | V1 error format.
+ccwdXgafv :: Lens' CoursesCourseWorkDelete (Maybe Text)
+ccwdXgafv
+  = lens _ccwdXgafv (\ s a -> s{_ccwdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ccwdUploadProtocol :: Lens' CoursesCourseWorkDelete (Maybe Text)
+ccwdUploadProtocol
+  = lens _ccwdUploadProtocol
+      (\ s a -> s{_ccwdUploadProtocol = a})
+
+-- | Pretty-print response.
+ccwdPp :: Lens' CoursesCourseWorkDelete Bool
+ccwdPp = lens _ccwdPp (\ s a -> s{_ccwdPp = a})
+
+-- | Identifier of the course. This identifier can be either the
+-- Classroom-assigned identifier or an alias.
+ccwdCourseId :: Lens' CoursesCourseWorkDelete Text
+ccwdCourseId
+  = lens _ccwdCourseId (\ s a -> s{_ccwdCourseId = a})
+
+-- | OAuth access token.
+ccwdAccessToken :: Lens' CoursesCourseWorkDelete (Maybe Text)
+ccwdAccessToken
+  = lens _ccwdAccessToken
+      (\ s a -> s{_ccwdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ccwdUploadType :: Lens' CoursesCourseWorkDelete (Maybe Text)
+ccwdUploadType
+  = lens _ccwdUploadType
+      (\ s a -> s{_ccwdUploadType = a})
+
+-- | OAuth bearer token.
+ccwdBearerToken :: Lens' CoursesCourseWorkDelete (Maybe Text)
+ccwdBearerToken
+  = lens _ccwdBearerToken
+      (\ s a -> s{_ccwdBearerToken = a})
+
+-- | Identifier of the course work to delete. This identifier is a
+-- Classroom-assigned identifier.
+ccwdId :: Lens' CoursesCourseWorkDelete Text
+ccwdId = lens _ccwdId (\ s a -> s{_ccwdId = a})
+
+-- | JSONP
+ccwdCallback :: Lens' CoursesCourseWorkDelete (Maybe Text)
+ccwdCallback
+  = lens _ccwdCallback (\ s a -> s{_ccwdCallback = a})
+
+instance GoogleRequest CoursesCourseWorkDelete where
+        type Rs CoursesCourseWorkDelete = Empty
+        type Scopes CoursesCourseWorkDelete =
+             '["https://www.googleapis.com/auth/classroom.coursework.students"]
+        requestClient CoursesCourseWorkDelete'{..}
+          = go _ccwdCourseId _ccwdId _ccwdXgafv
+              _ccwdUploadProtocol
+              (Just _ccwdPp)
+              _ccwdAccessToken
+              _ccwdUploadType
+              _ccwdBearerToken
+              _ccwdCallback
+              (Just AltJSON)
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CoursesCourseWorkDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Patch.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/Patch.hs
@@ -0,0 +1,244 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Classroom.Courses.CourseWork.Patch
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates one or more fields of a course work. See
+-- google.classroom.v1.CourseWork for details of which fields may be
+-- updated and who may change them. This request must be made by the
+-- Developer Console project of the [OAuth client
+-- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create
+-- the corresponding course work item. This method returns the following
+-- error codes: * \`PERMISSION_DENIED\` if the requesting developer project
+-- did not create the corresponding course work, if the user is not
+-- permitted to make the requested modification to the student submission,
+-- or for access errors. * \`INVALID_ARGUMENT\` if the request is
+-- malformed. * \`FAILED_PRECONDITION\` if the requested course work has
+-- already been deleted. * \`NOT_FOUND\` if the requested course, course
+-- work, or student submission does not exist.
+--
+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.courseWork.patch@.
+module Network.Google.Resource.Classroom.Courses.CourseWork.Patch
+    (
+    -- * REST Resource
+      CoursesCourseWorkPatchResource
+
+    -- * Creating a Request
+    , coursesCourseWorkPatch
+    , CoursesCourseWorkPatch
+
+    -- * Request Lenses
+    , ccwpXgafv
+    , ccwpUploadProtocol
+    , ccwpUpdateMask
+    , ccwpPp
+    , ccwpCourseId
+    , ccwpAccessToken
+    , ccwpUploadType
+    , ccwpPayload
+    , ccwpBearerToken
+    , ccwpId
+    , ccwpCallback
+    ) where
+
+import           Network.Google.Classroom.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @classroom.courses.courseWork.patch@ method which the
+-- 'CoursesCourseWorkPatch' request conforms to.
+type CoursesCourseWorkPatchResource =
+     "v1" :>
+       "courses" :>
+         Capture "courseId" Text :>
+           "courseWork" :>
+             Capture "id" Text :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "updateMask" Text :>
+                     QueryParam "pp" Bool :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "bearer_token" Text :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 ReqBody '[JSON] CourseWork :>
+                                   Patch '[JSON] CourseWork
+
+-- | Updates one or more fields of a course work. See
+-- google.classroom.v1.CourseWork for details of which fields may be
+-- updated and who may change them. This request must be made by the
+-- Developer Console project of the [OAuth client
+-- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create
+-- the corresponding course work item. This method returns the following
+-- error codes: * \`PERMISSION_DENIED\` if the requesting developer project
+-- did not create the corresponding course work, if the user is not
+-- permitted to make the requested modification to the student submission,
+-- or for access errors. * \`INVALID_ARGUMENT\` if the request is
+-- malformed. * \`FAILED_PRECONDITION\` if the requested course work has
+-- already been deleted. * \`NOT_FOUND\` if the requested course, course
+-- work, or student submission does not exist.
+--
+-- /See:/ 'coursesCourseWorkPatch' smart constructor.
+data CoursesCourseWorkPatch = CoursesCourseWorkPatch'
+    { _ccwpXgafv          :: !(Maybe Text)
+    , _ccwpUploadProtocol :: !(Maybe Text)
+    , _ccwpUpdateMask     :: !(Maybe Text)
+    , _ccwpPp             :: !Bool
+    , _ccwpCourseId       :: !Text
+    , _ccwpAccessToken    :: !(Maybe Text)
+    , _ccwpUploadType     :: !(Maybe Text)
+    , _ccwpPayload        :: !CourseWork
+    , _ccwpBearerToken    :: !(Maybe Text)
+    , _ccwpId             :: !Text
+    , _ccwpCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CoursesCourseWorkPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ccwpXgafv'
+--
+-- * 'ccwpUploadProtocol'
+--
+-- * 'ccwpUpdateMask'
+--
+-- * 'ccwpPp'
+--
+-- * 'ccwpCourseId'
+--
+-- * 'ccwpAccessToken'
+--
+-- * 'ccwpUploadType'
+--
+-- * 'ccwpPayload'
+--
+-- * 'ccwpBearerToken'
+--
+-- * 'ccwpId'
+--
+-- * 'ccwpCallback'
+coursesCourseWorkPatch
+    :: Text -- ^ 'ccwpCourseId'
+    -> CourseWork -- ^ 'ccwpPayload'
+    -> Text -- ^ 'ccwpId'
+    -> CoursesCourseWorkPatch
+coursesCourseWorkPatch pCcwpCourseId_ pCcwpPayload_ pCcwpId_ =
+    CoursesCourseWorkPatch'
+    { _ccwpXgafv = Nothing
+    , _ccwpUploadProtocol = Nothing
+    , _ccwpUpdateMask = Nothing
+    , _ccwpPp = True
+    , _ccwpCourseId = pCcwpCourseId_
+    , _ccwpAccessToken = Nothing
+    , _ccwpUploadType = Nothing
+    , _ccwpPayload = pCcwpPayload_
+    , _ccwpBearerToken = Nothing
+    , _ccwpId = pCcwpId_
+    , _ccwpCallback = Nothing
+    }
+
+-- | V1 error format.
+ccwpXgafv :: Lens' CoursesCourseWorkPatch (Maybe Text)
+ccwpXgafv
+  = lens _ccwpXgafv (\ s a -> s{_ccwpXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+ccwpUploadProtocol :: Lens' CoursesCourseWorkPatch (Maybe Text)
+ccwpUploadProtocol
+  = lens _ccwpUploadProtocol
+      (\ s a -> s{_ccwpUploadProtocol = a})
+
+-- | Mask that identifies which fields on the course work to update. This
+-- field is required to do an update. The update fails if invalid fields
+-- are specified. If a field supports empty values, it can be cleared by
+-- specifying it in the update mask and not in the CourseWork object. If a
+-- field that does not support empty values is included in the update mask
+-- and not set in the CourseWork object, an \`INVALID_ARGUMENT\` error will
+-- be returned. The following fields may be specified by teachers: *
+-- \`title\` * \`description\` * \`state\` * \`due_date\` * \`due_time\` *
+-- \`max_points\` * \`submission_modification_mode\`
+ccwpUpdateMask :: Lens' CoursesCourseWorkPatch (Maybe Text)
+ccwpUpdateMask
+  = lens _ccwpUpdateMask
+      (\ s a -> s{_ccwpUpdateMask = a})
+
+-- | Pretty-print response.
+ccwpPp :: Lens' CoursesCourseWorkPatch Bool
+ccwpPp = lens _ccwpPp (\ s a -> s{_ccwpPp = a})
+
+-- | Identifier of the course. This identifier can be either the
+-- Classroom-assigned identifier or an alias.
+ccwpCourseId :: Lens' CoursesCourseWorkPatch Text
+ccwpCourseId
+  = lens _ccwpCourseId (\ s a -> s{_ccwpCourseId = a})
+
+-- | OAuth access token.
+ccwpAccessToken :: Lens' CoursesCourseWorkPatch (Maybe Text)
+ccwpAccessToken
+  = lens _ccwpAccessToken
+      (\ s a -> s{_ccwpAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+ccwpUploadType :: Lens' CoursesCourseWorkPatch (Maybe Text)
+ccwpUploadType
+  = lens _ccwpUploadType
+      (\ s a -> s{_ccwpUploadType = a})
+
+-- | Multipart request metadata.
+ccwpPayload :: Lens' CoursesCourseWorkPatch CourseWork
+ccwpPayload
+  = lens _ccwpPayload (\ s a -> s{_ccwpPayload = a})
+
+-- | OAuth bearer token.
+ccwpBearerToken :: Lens' CoursesCourseWorkPatch (Maybe Text)
+ccwpBearerToken
+  = lens _ccwpBearerToken
+      (\ s a -> s{_ccwpBearerToken = a})
+
+-- | Identifier of the course work.
+ccwpId :: Lens' CoursesCourseWorkPatch Text
+ccwpId = lens _ccwpId (\ s a -> s{_ccwpId = a})
+
+-- | JSONP
+ccwpCallback :: Lens' CoursesCourseWorkPatch (Maybe Text)
+ccwpCallback
+  = lens _ccwpCallback (\ s a -> s{_ccwpCallback = a})
+
+instance GoogleRequest CoursesCourseWorkPatch where
+        type Rs CoursesCourseWorkPatch = CourseWork
+        type Scopes CoursesCourseWorkPatch =
+             '["https://www.googleapis.com/auth/classroom.coursework.students"]
+        requestClient CoursesCourseWorkPatch'{..}
+          = go _ccwpCourseId _ccwpId _ccwpXgafv
+              _ccwpUploadProtocol
+              _ccwpUpdateMask
+              (Just _ccwpPp)
+              _ccwpAccessToken
+              _ccwpUploadType
+              _ccwpBearerToken
+              _ccwpCallback
+              (Just AltJSON)
+              _ccwpPayload
+              classroomService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy CoursesCourseWorkPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/ModifyAttachments.hs
@@ -21,8 +21,9 @@
 -- Portability : non-portable (GHC extensions)
 --
 -- Modifies attachments of student submission. Attachments may only be
--- added to student submissions whose type is \`ASSIGNMENT\`. This request
--- must be made by the Developer Console project of the [OAuth client
+-- added to student submissions belonging to course work objects with a
+-- \`workType\` of \`ASSIGNMENT\`. This request must be made by the
+-- Developer Console project of the [OAuth client
 -- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create
 -- the corresponding course work item. This method returns the following
 -- error codes: * \`PERMISSION_DENIED\` if the requesting user is not
@@ -82,8 +83,9 @@
                                      Post '[JSON] StudentSubmission
 
 -- | Modifies attachments of student submission. Attachments may only be
--- added to student submissions whose type is \`ASSIGNMENT\`. This request
--- must be made by the Developer Console project of the [OAuth client
+-- added to student submissions belonging to course work objects with a
+-- \`workType\` of \`ASSIGNMENT\`. This request must be made by the
+-- Developer Console project of the [OAuth client
 -- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create
 -- the corresponding course work item. This method returns the following
 -- error codes: * \`PERMISSION_DENIED\` if the requesting user is not
diff --git a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs
--- a/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs
+++ b/gen/Network/Google/Resource/Classroom/Courses/CourseWork/StudentSubmissions/Reclaim.hs
@@ -23,7 +23,7 @@
 -- Reclaims a student submission on behalf of the student that owns it.
 -- Reclaiming a student submission transfers ownership of attached Drive
 -- files to the student and update the submission state. Only the student
--- that ownes the requested student submission may call this method, and
+-- that owns the requested student submission may call this method, and
 -- only for a student submission that has been turned in. This request must
 -- be made by the Developer Console project of the [OAuth client
 -- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create
@@ -89,7 +89,7 @@
 -- | Reclaims a student submission on behalf of the student that owns it.
 -- Reclaiming a student submission transfers ownership of attached Drive
 -- files to the student and update the submission state. Only the student
--- that ownes the requested student submission may call this method, and
+-- that owns the requested student submission may call this method, and
 -- only for a student submission that has been turned in. This request must
 -- be made by the Developer Console project of the [OAuth client
 -- ID](https:\/\/support.google.com\/cloud\/answer\/6158849) used to create
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/Get.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/Get.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/Get.hs
@@ -22,7 +22,7 @@
 --
 -- Returns a user profile. This method returns the following error codes: *
 -- \`PERMISSION_DENIED\` if the requesting user is not permitted to access
--- this user profile or if no profile exists with the requested ID or for
+-- this user profile, if no profile exists with the requested ID, or for
 -- access errors.
 --
 -- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.get@.
@@ -66,7 +66,7 @@
 
 -- | Returns a user profile. This method returns the following error codes: *
 -- \`PERMISSION_DENIED\` if the requesting user is not permitted to access
--- this user profile or if no profile exists with the requested ID or for
+-- this user profile, if no profile exists with the requested ID, or for
 -- access errors.
 --
 -- /See:/ 'userProFilesGet' smart constructor.
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Delete.hs
@@ -23,14 +23,15 @@
 -- 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
+-- if no user that matches the provided \`student_id\` is visible to the
+-- requesting user, if the requesting user is not permitted to manage
+-- guardians for the student identified by the \`student_id\`, if guardians
+-- are not enabled for the domain in question, or for other access errors.
+-- * \`INVALID_ARGUMENT\` if a \`student_id\` is specified, but its format
 -- cannot be recognized (it is not an email address, nor a \`student_id\`
--- from the API). * \`NOT_FOUND\` if Classroom cannot find any record of
--- the given \`student_id\` or \`guardian_id\`, or if the guardian has
--- already been disabled.
+-- from the API). * \`NOT_FOUND\` if the requesting user is permitted to
+-- modify guardians for the requested \`student_id\`, but no \`Guardian\`
+-- record exists for that student with the provided \`guardian_id\`.
 --
 -- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.delete@.
 module Network.Google.Resource.Classroom.UserProFiles.Guardians.Delete
@@ -77,14 +78,15 @@
 -- | 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
+-- if no user that matches the provided \`student_id\` is visible to the
+-- requesting user, if the requesting user is not permitted to manage
+-- guardians for the student identified by the \`student_id\`, if guardians
+-- are not enabled for the domain in question, or for other access errors.
+-- * \`INVALID_ARGUMENT\` if a \`student_id\` is specified, but its format
 -- cannot be recognized (it is not an email address, nor a \`student_id\`
--- from the API). * \`NOT_FOUND\` if Classroom cannot find any record of
--- the given \`student_id\` or \`guardian_id\`, or if the guardian has
--- already been disabled.
+-- from the API). * \`NOT_FOUND\` if the requesting user is permitted to
+-- modify guardians for the requested \`student_id\`, but no \`Guardian\`
+-- record exists for that student with the provided \`guardian_id\`.
 --
 -- /See:/ 'userProFilesGuardiansDelete' smart constructor.
 data UserProFilesGuardiansDelete = UserProFilesGuardiansDelete'
diff --git a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs
--- a/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs
+++ b/gen/Network/Google/Resource/Classroom/UserProFiles/Guardians/Get.hs
@@ -21,14 +21,17 @@
 -- 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.
+-- codes: * \`PERMISSION_DENIED\` if no user that matches the provided
+-- \`student_id\` is visible to the requesting user, if the requesting user
+-- is not permitted to view guardian information for the student identified
+-- by the \`student_id\`, if guardians are not enabled for the domain in
+-- question, or for other access errors. * \`INVALID_ARGUMENT\` if a
+-- \`student_id\` is specified, but its format cannot be recognized (it is
+-- not an email address, nor a \`student_id\` from the API, nor the literal
+-- string \`me\`). * \`NOT_FOUND\` if the requesting user is permitted to
+-- view guardians for the requested \`student_id\`, but no \`Guardian\`
+-- record exists for that student that matches the provided
+-- \`guardian_id\`.
 --
 -- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.guardians.get@.
 module Network.Google.Resource.Classroom.UserProFiles.Guardians.Get
@@ -73,14 +76,17 @@
                              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.
+-- codes: * \`PERMISSION_DENIED\` if no user that matches the provided
+-- \`student_id\` is visible to the requesting user, if the requesting user
+-- is not permitted to view guardian information for the student identified
+-- by the \`student_id\`, if guardians are not enabled for the domain in
+-- question, or for other access errors. * \`INVALID_ARGUMENT\` if a
+-- \`student_id\` is specified, but its format cannot be recognized (it is
+-- not an email address, nor a \`student_id\` from the API, nor the literal
+-- string \`me\`). * \`NOT_FOUND\` if the requesting user is permitted to
+-- view guardians for the requested \`student_id\`, but no \`Guardian\`
+-- record exists for that student that matches the provided
+-- \`guardian_id\`.
 --
 -- /See:/ 'userProFilesGuardiansGet' smart constructor.
 data UserProFilesGuardiansGet = UserProFilesGuardiansGet'
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.1
+version:               0.2.0
 synopsis:              Google Classroom SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -39,8 +39,10 @@
         , Network.Google.Resource.Classroom.Courses.Aliases.Delete
         , Network.Google.Resource.Classroom.Courses.Aliases.List
         , Network.Google.Resource.Classroom.Courses.CourseWork.Create
+        , Network.Google.Resource.Classroom.Courses.CourseWork.Delete
         , Network.Google.Resource.Classroom.Courses.CourseWork.Get
         , Network.Google.Resource.Classroom.Courses.CourseWork.List
+        , Network.Google.Resource.Classroom.Courses.CourseWork.Patch
         , Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.Get
         , Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.List
         , Network.Google.Resource.Classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments
@@ -81,5 +83,5 @@
         , Network.Google.Classroom.Types.Sum
 
     build-depends:
-          gogol-core == 0.1.1.*
+          gogol-core == 0.2.0.*
         , base       >= 4.7 && < 5
