packages feed

gogol-classroom (empty) → 0.0.1

raw patch · 31 files changed

+6207/−0 lines, 31 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-classroom++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google Classroom.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`gogol-classroom` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ gen/Network/Google/Classroom.hs view
@@ -0,0 +1,253 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.Classroom+-- Copyright   : (c) 2015 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)+--+-- Google Classroom API+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference>+module Network.Google.Classroom+    (+    -- * Service Configuration+      classroomService++    -- * API Declaration+    , ClassroomAPI++    -- * Resources++    -- ** classroom.courses.aliases.create+    , module Network.Google.Resource.Classroom.Courses.Aliases.Create++    -- ** classroom.courses.aliases.delete+    , module Network.Google.Resource.Classroom.Courses.Aliases.Delete++    -- ** classroom.courses.aliases.list+    , module Network.Google.Resource.Classroom.Courses.Aliases.List++    -- ** classroom.courses.create+    , module Network.Google.Resource.Classroom.Courses.Create++    -- ** classroom.courses.delete+    , module Network.Google.Resource.Classroom.Courses.Delete++    -- ** classroom.courses.get+    , module Network.Google.Resource.Classroom.Courses.Get++    -- ** classroom.courses.list+    , module Network.Google.Resource.Classroom.Courses.List++    -- ** classroom.courses.patch+    , module Network.Google.Resource.Classroom.Courses.Patch++    -- ** classroom.courses.students.create+    , module Network.Google.Resource.Classroom.Courses.Students.Create++    -- ** classroom.courses.students.delete+    , module Network.Google.Resource.Classroom.Courses.Students.Delete++    -- ** classroom.courses.students.get+    , module Network.Google.Resource.Classroom.Courses.Students.Get++    -- ** classroom.courses.students.list+    , module Network.Google.Resource.Classroom.Courses.Students.List++    -- ** classroom.courses.teachers.create+    , module Network.Google.Resource.Classroom.Courses.Teachers.Create++    -- ** classroom.courses.teachers.delete+    , module Network.Google.Resource.Classroom.Courses.Teachers.Delete++    -- ** classroom.courses.teachers.get+    , module Network.Google.Resource.Classroom.Courses.Teachers.Get++    -- ** classroom.courses.teachers.list+    , module Network.Google.Resource.Classroom.Courses.Teachers.List++    -- ** classroom.courses.update+    , module Network.Google.Resource.Classroom.Courses.Update++    -- ** classroom.invitations.accept+    , module Network.Google.Resource.Classroom.Invitations.Accept++    -- ** classroom.invitations.create+    , module Network.Google.Resource.Classroom.Invitations.Create++    -- ** classroom.invitations.delete+    , module Network.Google.Resource.Classroom.Invitations.Delete++    -- ** classroom.invitations.get+    , module Network.Google.Resource.Classroom.Invitations.Get++    -- ** classroom.invitations.list+    , module Network.Google.Resource.Classroom.Invitations.List++    -- ** classroom.userProfiles.get+    , module Network.Google.Resource.Classroom.UserProFiles.Get++    -- * Types++    -- ** ListCourseAliasesResponse+    , ListCourseAliasesResponse+    , listCourseAliasesResponse+    , lcarNextPageToken+    , lcarAliases++    -- ** Empty+    , Empty+    , empty++    -- ** GlobalPermission+    , GlobalPermission+    , globalPermission+    , gpPermission++    -- ** ListInvitationsResponse+    , ListInvitationsResponse+    , listInvitationsResponse+    , lirNextPageToken+    , lirInvitations++    -- ** Invitation+    , Invitation+    , invitation+    , iCourseId+    , iUserId+    , iRole+    , iId++    -- ** Teacher+    , Teacher+    , teacher+    , tCourseId+    , tProFile+    , tUserId++    -- ** Name+    , Name+    , name+    , nGivenName+    , nFullName+    , nFamilyName++    -- ** ListCoursesResponse+    , ListCoursesResponse+    , listCoursesResponse+    , lcrNextPageToken+    , lcrCourses++    -- ** UserProFile+    , UserProFile+    , userProFile+    , upfPhotoURL+    , upfName+    , upfEmailAddress+    , upfId+    , upfPermissions++    -- ** Course+    , Course+    , course+    , cCreationTime+    , cRoom+    , cCourseState+    , cEnrollmentCode+    , cUpdateTime+    , cOwnerId+    , cName+    , cId+    , cAlternateLink+    , cDescription+    , cDescriptionHeading+    , cSection++    -- ** ListStudentsResponse+    , ListStudentsResponse+    , listStudentsResponse+    , lsrNextPageToken+    , lsrStudents++    -- ** CourseAlias+    , CourseAlias+    , courseAlias+    , caAlias++    -- ** ListTeachersResponse+    , ListTeachersResponse+    , listTeachersResponse+    , ltrNextPageToken+    , ltrTeachers++    -- ** Student+    , Student+    , student+    , sCourseId+    , sProFile+    , sUserId+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude+import           Network.Google.Resource.Classroom.Courses.Aliases.Create+import           Network.Google.Resource.Classroom.Courses.Aliases.Delete+import           Network.Google.Resource.Classroom.Courses.Aliases.List+import           Network.Google.Resource.Classroom.Courses.Create+import           Network.Google.Resource.Classroom.Courses.Delete+import           Network.Google.Resource.Classroom.Courses.Get+import           Network.Google.Resource.Classroom.Courses.List+import           Network.Google.Resource.Classroom.Courses.Patch+import           Network.Google.Resource.Classroom.Courses.Students.Create+import           Network.Google.Resource.Classroom.Courses.Students.Delete+import           Network.Google.Resource.Classroom.Courses.Students.Get+import           Network.Google.Resource.Classroom.Courses.Students.List+import           Network.Google.Resource.Classroom.Courses.Teachers.Create+import           Network.Google.Resource.Classroom.Courses.Teachers.Delete+import           Network.Google.Resource.Classroom.Courses.Teachers.Get+import           Network.Google.Resource.Classroom.Courses.Teachers.List+import           Network.Google.Resource.Classroom.Courses.Update+import           Network.Google.Resource.Classroom.Invitations.Accept+import           Network.Google.Resource.Classroom.Invitations.Create+import           Network.Google.Resource.Classroom.Invitations.Delete+import           Network.Google.Resource.Classroom.Invitations.Get+import           Network.Google.Resource.Classroom.Invitations.List+import           Network.Google.Resource.Classroom.UserProFiles.Get++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Google Classroom API service.+type ClassroomAPI =+     InvitationsListResource :<|>+       InvitationsAcceptResource+       :<|> InvitationsGetResource+       :<|> InvitationsCreateResource+       :<|> InvitationsDeleteResource+       :<|> CoursesTeachersListResource+       :<|> CoursesTeachersGetResource+       :<|> CoursesTeachersCreateResource+       :<|> CoursesTeachersDeleteResource+       :<|> CoursesAliasesListResource+       :<|> CoursesAliasesCreateResource+       :<|> CoursesAliasesDeleteResource+       :<|> CoursesStudentsListResource+       :<|> CoursesStudentsGetResource+       :<|> CoursesStudentsCreateResource+       :<|> CoursesStudentsDeleteResource+       :<|> CoursesListResource+       :<|> CoursesPatchResource+       :<|> CoursesGetResource+       :<|> CoursesCreateResource+       :<|> CoursesDeleteResource+       :<|> CoursesUpdateResource+       :<|> UserProFilesGetResource
+ gen/Network/Google/Classroom/Types.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Classroom.Types+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Classroom.Types+    (+    -- * Service Configuration+      classroomService++    -- * OAuth Scopes+    , classroomRostersReadonlyScope+    , classroomCoursesScope+    , classroomProfileEmailsScope+    , classroomProfilePhotosScope+    , classroomRostersScope+    , classroomCoursesReadonlyScope++    -- * ListCourseAliasesResponse+    , ListCourseAliasesResponse+    , listCourseAliasesResponse+    , lcarNextPageToken+    , lcarAliases++    -- * Empty+    , Empty+    , empty++    -- * GlobalPermission+    , GlobalPermission+    , globalPermission+    , gpPermission++    -- * ListInvitationsResponse+    , ListInvitationsResponse+    , listInvitationsResponse+    , lirNextPageToken+    , lirInvitations++    -- * Invitation+    , Invitation+    , invitation+    , iCourseId+    , iUserId+    , iRole+    , iId++    -- * Teacher+    , Teacher+    , teacher+    , tCourseId+    , tProFile+    , tUserId++    -- * Name+    , Name+    , name+    , nGivenName+    , nFullName+    , nFamilyName++    -- * ListCoursesResponse+    , ListCoursesResponse+    , listCoursesResponse+    , lcrNextPageToken+    , lcrCourses++    -- * UserProFile+    , UserProFile+    , userProFile+    , upfPhotoURL+    , upfName+    , upfEmailAddress+    , upfId+    , upfPermissions++    -- * Course+    , Course+    , course+    , cCreationTime+    , cRoom+    , cCourseState+    , cEnrollmentCode+    , cUpdateTime+    , cOwnerId+    , cName+    , cId+    , cAlternateLink+    , cDescription+    , cDescriptionHeading+    , cSection++    -- * ListStudentsResponse+    , ListStudentsResponse+    , listStudentsResponse+    , lsrNextPageToken+    , lsrStudents++    -- * CourseAlias+    , CourseAlias+    , courseAlias+    , caAlias++    -- * ListTeachersResponse+    , ListTeachersResponse+    , listTeachersResponse+    , ltrNextPageToken+    , ltrTeachers++    -- * Student+    , Student+    , student+    , sCourseId+    , sProFile+    , sUserId+    ) where++import           Network.Google.Classroom.Types.Product+import           Network.Google.Classroom.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1' of the Google Classroom API. This contains the host and root path used as a starting point for constructing service requests.+classroomService :: Service+classroomService+  = defaultService (ServiceId "classroom:v1")+      "classroom.googleapis.com"++-- | View your Google Classroom class rosters+classroomRostersReadonlyScope :: OAuthScope+classroomRostersReadonlyScope = "https://www.googleapis.com/auth/classroom.rosters.readonly";++-- | Manage your Google Classroom classes+classroomCoursesScope :: OAuthScope+classroomCoursesScope = "https://www.googleapis.com/auth/classroom.courses";++-- | View the email addresses of people in your classes+classroomProfileEmailsScope :: OAuthScope+classroomProfileEmailsScope = "https://www.googleapis.com/auth/classroom.profile.emails";++-- | View the profile photos of people in your classes+classroomProfilePhotosScope :: OAuthScope+classroomProfilePhotosScope = "https://www.googleapis.com/auth/classroom.profile.photos";++-- | Manage your Google Classroom class rosters+classroomRostersScope :: OAuthScope+classroomRostersScope = "https://www.googleapis.com/auth/classroom.rosters";++-- | View your Google Classroom classes+classroomCoursesReadonlyScope :: OAuthScope+classroomCoursesReadonlyScope = "https://www.googleapis.com/auth/classroom.courses.readonly";
+ gen/Network/Google/Classroom/Types/Product.hs view
@@ -0,0 +1,891 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Classroom.Types.Product+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Classroom.Types.Product where++import           Network.Google.Classroom.Types.Sum+import           Network.Google.Prelude++-- | Response when listing course aliases.+--+-- /See:/ 'listCourseAliasesResponse' smart constructor.+data ListCourseAliasesResponse = ListCourseAliasesResponse+    { _lcarNextPageToken :: !(Maybe Text)+    , _lcarAliases       :: !(Maybe [CourseAlias])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListCourseAliasesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lcarNextPageToken'+--+-- * 'lcarAliases'+listCourseAliasesResponse+    :: ListCourseAliasesResponse+listCourseAliasesResponse =+    ListCourseAliasesResponse+    { _lcarNextPageToken = Nothing+    , _lcarAliases = Nothing+    }++-- | Token identifying the next page of results to return. If empty, no+-- further results are available.+lcarNextPageToken :: Lens' ListCourseAliasesResponse (Maybe Text)+lcarNextPageToken+  = lens _lcarNextPageToken+      (\ s a -> s{_lcarNextPageToken = a})++-- | The course aliases.+lcarAliases :: Lens' ListCourseAliasesResponse [CourseAlias]+lcarAliases+  = lens _lcarAliases (\ s a -> s{_lcarAliases = a}) .+      _Default+      . _Coerce++instance FromJSON ListCourseAliasesResponse where+        parseJSON+          = withObject "ListCourseAliasesResponse"+              (\ o ->+                 ListCourseAliasesResponse <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "aliases" .!= mempty))++instance ToJSON ListCourseAliasesResponse where+        toJSON ListCourseAliasesResponse{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lcarNextPageToken,+                  ("aliases" .=) <$> _lcarAliases])++-- | A generic empty message that you can re-use to avoid defining duplicated+-- empty messages in your APIs. A typical example is to use it as the+-- request or the response type of an API method. For instance: service Foo+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The+-- JSON representation for \`Empty\` is empty JSON object \`{}\`.+--+-- /See:/ 'empty' smart constructor.+data Empty =+    Empty+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Empty' with the minimum fields required to make a request.+--+empty+    :: Empty+empty = Empty++instance FromJSON Empty where+        parseJSON = withObject "Empty" (\ o -> pure Empty)++instance ToJSON Empty where+        toJSON = const emptyObject++-- | Global user permission description.+--+-- /See:/ 'globalPermission' smart constructor.+newtype GlobalPermission = GlobalPermission+    { _gpPermission :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalPermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gpPermission'+globalPermission+    :: GlobalPermission+globalPermission =+    GlobalPermission+    { _gpPermission = Nothing+    }++-- | Permission value.+gpPermission :: Lens' GlobalPermission (Maybe Text)+gpPermission+  = lens _gpPermission (\ s a -> s{_gpPermission = a})++instance FromJSON GlobalPermission where+        parseJSON+          = withObject "GlobalPermission"+              (\ o -> GlobalPermission <$> (o .:? "permission"))++instance ToJSON GlobalPermission where+        toJSON GlobalPermission{..}+          = object+              (catMaybes [("permission" .=) <$> _gpPermission])++-- | Response when listing invitations.+--+-- /See:/ 'listInvitationsResponse' smart constructor.+data ListInvitationsResponse = ListInvitationsResponse+    { _lirNextPageToken :: !(Maybe Text)+    , _lirInvitations   :: !(Maybe [Invitation])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListInvitationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lirNextPageToken'+--+-- * 'lirInvitations'+listInvitationsResponse+    :: ListInvitationsResponse+listInvitationsResponse =+    ListInvitationsResponse+    { _lirNextPageToken = Nothing+    , _lirInvitations = Nothing+    }++-- | Token identifying the next page of results to return. If empty, no+-- further results are available.+lirNextPageToken :: Lens' ListInvitationsResponse (Maybe Text)+lirNextPageToken+  = lens _lirNextPageToken+      (\ s a -> s{_lirNextPageToken = a})++-- | Invitations that match the list request.+lirInvitations :: Lens' ListInvitationsResponse [Invitation]+lirInvitations+  = lens _lirInvitations+      (\ s a -> s{_lirInvitations = a})+      . _Default+      . _Coerce++instance FromJSON ListInvitationsResponse where+        parseJSON+          = withObject "ListInvitationsResponse"+              (\ o ->+                 ListInvitationsResponse <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "invitations" .!= mempty))++instance ToJSON ListInvitationsResponse where+        toJSON ListInvitationsResponse{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lirNextPageToken,+                  ("invitations" .=) <$> _lirInvitations])++-- | An invitation to join a course.+--+-- /See:/ 'invitation' smart constructor.+data Invitation = Invitation+    { _iCourseId :: !(Maybe Text)+    , _iUserId   :: !(Maybe Text)+    , _iRole     :: !(Maybe Text)+    , _iId       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Invitation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iCourseId'+--+-- * 'iUserId'+--+-- * 'iRole'+--+-- * 'iId'+invitation+    :: Invitation+invitation =+    Invitation+    { _iCourseId = Nothing+    , _iUserId = Nothing+    , _iRole = Nothing+    , _iId = Nothing+    }++-- | Identifier of the course to invite the user to.+iCourseId :: Lens' Invitation (Maybe Text)+iCourseId+  = lens _iCourseId (\ s a -> s{_iCourseId = a})++-- | Identifier of the invited user. When specified as a parameter of a+-- request, this identifier can be set to one of the following: * the+-- numeric identifier for the user * the email address of the user * the+-- string literal \`\"me\"\`, indicating the requesting user+iUserId :: Lens' Invitation (Maybe Text)+iUserId = lens _iUserId (\ s a -> s{_iUserId = a})++-- | Role to invite the user to have. Must not be+-- \`COURSE_ROLE_UNSPECIFIED\`.+iRole :: Lens' Invitation (Maybe Text)+iRole = lens _iRole (\ s a -> s{_iRole = a})++-- | Identifier assigned by Classroom. Read-only.+iId :: Lens' Invitation (Maybe Text)+iId = lens _iId (\ s a -> s{_iId = a})++instance FromJSON Invitation where+        parseJSON+          = withObject "Invitation"+              (\ o ->+                 Invitation <$>+                   (o .:? "courseId") <*> (o .:? "userId") <*>+                     (o .:? "role")+                     <*> (o .:? "id"))++instance ToJSON Invitation where+        toJSON Invitation{..}+          = object+              (catMaybes+                 [("courseId" .=) <$> _iCourseId,+                  ("userId" .=) <$> _iUserId, ("role" .=) <$> _iRole,+                  ("id" .=) <$> _iId])++-- | Teacher of a course.+--+-- /See:/ 'teacher' smart constructor.+data Teacher = Teacher+    { _tCourseId :: !(Maybe Text)+    , _tProFile  :: !(Maybe UserProFile)+    , _tUserId   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Teacher' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tCourseId'+--+-- * 'tProFile'+--+-- * 'tUserId'+teacher+    :: Teacher+teacher =+    Teacher+    { _tCourseId = Nothing+    , _tProFile = Nothing+    , _tUserId = Nothing+    }++-- | Identifier of the course. Read-only.+tCourseId :: Lens' Teacher (Maybe Text)+tCourseId+  = lens _tCourseId (\ s a -> s{_tCourseId = a})++-- | Global user information for the teacher. Read-only.+tProFile :: Lens' Teacher (Maybe UserProFile)+tProFile = lens _tProFile (\ s a -> s{_tProFile = a})++-- | Identifier of the user. When specified as a parameter of a request, this+-- identifier can be one of the following: * the numeric identifier for the+-- user * the email address of the user * the string literal \`\"me\"\`,+-- indicating the requesting user+tUserId :: Lens' Teacher (Maybe Text)+tUserId = lens _tUserId (\ s a -> s{_tUserId = a})++instance FromJSON Teacher where+        parseJSON+          = withObject "Teacher"+              (\ o ->+                 Teacher <$>+                   (o .:? "courseId") <*> (o .:? "profile") <*>+                     (o .:? "userId"))++instance ToJSON Teacher where+        toJSON Teacher{..}+          = object+              (catMaybes+                 [("courseId" .=) <$> _tCourseId,+                  ("profile" .=) <$> _tProFile,+                  ("userId" .=) <$> _tUserId])++-- | Details of the user\'s name.+--+-- /See:/ 'name' smart constructor.+data Name = Name+    { _nGivenName  :: !(Maybe Text)+    , _nFullName   :: !(Maybe Text)+    , _nFamilyName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Name' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nGivenName'+--+-- * 'nFullName'+--+-- * 'nFamilyName'+name+    :: Name+name =+    Name+    { _nGivenName = Nothing+    , _nFullName = Nothing+    , _nFamilyName = Nothing+    }++-- | The user\'s first name. Read-only.+nGivenName :: Lens' Name (Maybe Text)+nGivenName+  = lens _nGivenName (\ s a -> s{_nGivenName = a})++-- | The user\'s full name formed by concatenating the first and last name+-- values. Read-only.+nFullName :: Lens' Name (Maybe Text)+nFullName+  = lens _nFullName (\ s a -> s{_nFullName = a})++-- | The user\'s last name. Read-only.+nFamilyName :: Lens' Name (Maybe Text)+nFamilyName+  = lens _nFamilyName (\ s a -> s{_nFamilyName = a})++instance FromJSON Name where+        parseJSON+          = withObject "Name"+              (\ o ->+                 Name <$>+                   (o .:? "givenName") <*> (o .:? "fullName") <*>+                     (o .:? "familyName"))++instance ToJSON Name where+        toJSON Name{..}+          = object+              (catMaybes+                 [("givenName" .=) <$> _nGivenName,+                  ("fullName" .=) <$> _nFullName,+                  ("familyName" .=) <$> _nFamilyName])++-- | Response when listing courses.+--+-- /See:/ 'listCoursesResponse' smart constructor.+data ListCoursesResponse = ListCoursesResponse+    { _lcrNextPageToken :: !(Maybe Text)+    , _lcrCourses       :: !(Maybe [Course])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListCoursesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lcrNextPageToken'+--+-- * 'lcrCourses'+listCoursesResponse+    :: ListCoursesResponse+listCoursesResponse =+    ListCoursesResponse+    { _lcrNextPageToken = Nothing+    , _lcrCourses = Nothing+    }++-- | Token identifying the next page of results to return. If empty, no+-- further results are available.+lcrNextPageToken :: Lens' ListCoursesResponse (Maybe Text)+lcrNextPageToken+  = lens _lcrNextPageToken+      (\ s a -> s{_lcrNextPageToken = a})++-- | Courses that match the list request.+lcrCourses :: Lens' ListCoursesResponse [Course]+lcrCourses+  = lens _lcrCourses (\ s a -> s{_lcrCourses = a}) .+      _Default+      . _Coerce++instance FromJSON ListCoursesResponse where+        parseJSON+          = withObject "ListCoursesResponse"+              (\ o ->+                 ListCoursesResponse <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "courses" .!= mempty))++instance ToJSON ListCoursesResponse where+        toJSON ListCoursesResponse{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lcrNextPageToken,+                  ("courses" .=) <$> _lcrCourses])++-- | Global information for a user.+--+-- /See:/ 'userProFile' smart constructor.+data UserProFile = UserProFile+    { _upfPhotoURL     :: !(Maybe Text)+    , _upfName         :: !(Maybe Name)+    , _upfEmailAddress :: !(Maybe Text)+    , _upfId           :: !(Maybe Text)+    , _upfPermissions  :: !(Maybe [GlobalPermission])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserProFile' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upfPhotoURL'+--+-- * 'upfName'+--+-- * 'upfEmailAddress'+--+-- * 'upfId'+--+-- * 'upfPermissions'+userProFile+    :: UserProFile+userProFile =+    UserProFile+    { _upfPhotoURL = Nothing+    , _upfName = Nothing+    , _upfEmailAddress = Nothing+    , _upfId = Nothing+    , _upfPermissions = Nothing+    }++-- | URL of user\'s profile photo. Read-only.+upfPhotoURL :: Lens' UserProFile (Maybe Text)+upfPhotoURL+  = lens _upfPhotoURL (\ s a -> s{_upfPhotoURL = a})++-- | Name of the user. Read-only.+upfName :: Lens' UserProFile (Maybe Name)+upfName = lens _upfName (\ s a -> s{_upfName = a})++-- | Email address of the user. Read-only.+upfEmailAddress :: Lens' UserProFile (Maybe Text)+upfEmailAddress+  = lens _upfEmailAddress+      (\ s a -> s{_upfEmailAddress = a})++-- | Identifier of the user. Read-only.+upfId :: Lens' UserProFile (Maybe Text)+upfId = lens _upfId (\ s a -> s{_upfId = a})++-- | Global permissions of the user. Read-only.+upfPermissions :: Lens' UserProFile [GlobalPermission]+upfPermissions+  = lens _upfPermissions+      (\ s a -> s{_upfPermissions = a})+      . _Default+      . _Coerce++instance FromJSON UserProFile where+        parseJSON+          = withObject "UserProFile"+              (\ o ->+                 UserProFile <$>+                   (o .:? "photoUrl") <*> (o .:? "name") <*>+                     (o .:? "emailAddress")+                     <*> (o .:? "id")+                     <*> (o .:? "permissions" .!= mempty))++instance ToJSON UserProFile where+        toJSON UserProFile{..}+          = object+              (catMaybes+                 [("photoUrl" .=) <$> _upfPhotoURL,+                  ("name" .=) <$> _upfName,+                  ("emailAddress" .=) <$> _upfEmailAddress,+                  ("id" .=) <$> _upfId,+                  ("permissions" .=) <$> _upfPermissions])++-- | A Course in Classroom.+--+-- /See:/ 'course' smart constructor.+data Course = Course+    { _cCreationTime       :: !(Maybe Text)+    , _cRoom               :: !(Maybe Text)+    , _cCourseState        :: !(Maybe Text)+    , _cEnrollmentCode     :: !(Maybe Text)+    , _cUpdateTime         :: !(Maybe Text)+    , _cOwnerId            :: !(Maybe Text)+    , _cName               :: !(Maybe Text)+    , _cId                 :: !(Maybe Text)+    , _cAlternateLink      :: !(Maybe Text)+    , _cDescription        :: !(Maybe Text)+    , _cDescriptionHeading :: !(Maybe Text)+    , _cSection            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Course' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cCreationTime'+--+-- * 'cRoom'+--+-- * 'cCourseState'+--+-- * 'cEnrollmentCode'+--+-- * 'cUpdateTime'+--+-- * 'cOwnerId'+--+-- * 'cName'+--+-- * 'cId'+--+-- * 'cAlternateLink'+--+-- * 'cDescription'+--+-- * 'cDescriptionHeading'+--+-- * 'cSection'+course+    :: Course+course =+    Course+    { _cCreationTime = Nothing+    , _cRoom = Nothing+    , _cCourseState = Nothing+    , _cEnrollmentCode = Nothing+    , _cUpdateTime = Nothing+    , _cOwnerId = Nothing+    , _cName = Nothing+    , _cId = Nothing+    , _cAlternateLink = Nothing+    , _cDescription = Nothing+    , _cDescriptionHeading = Nothing+    , _cSection = Nothing+    }++-- | Creation time of the course. Specifying this field in a course update+-- mask will result in an error. Read-only.+cCreationTime :: Lens' Course (Maybe Text)+cCreationTime+  = lens _cCreationTime+      (\ s a -> s{_cCreationTime = a})++-- | Optional room location. For example, \"301\". If set, this field must be+-- a valid UTF-8 string and no longer than 650 characters.+cRoom :: Lens' Course (Maybe Text)+cRoom = lens _cRoom (\ s a -> s{_cRoom = a})++-- | State of the course. If unspecified, the default state is+-- \`PROVISIONED\`.+cCourseState :: Lens' Course (Maybe Text)+cCourseState+  = lens _cCourseState (\ s a -> s{_cCourseState = a})++-- | Enrollment code to use when joining this course. Specifying this field+-- in a course update mask will result in an error. Read-only.+cEnrollmentCode :: Lens' Course (Maybe Text)+cEnrollmentCode+  = lens _cEnrollmentCode+      (\ s a -> s{_cEnrollmentCode = a})++-- | Time of the most recent update to this course. Specifying this field in+-- a course update mask will result in an error. Read-only.+cUpdateTime :: Lens' Course (Maybe Text)+cUpdateTime+  = lens _cUpdateTime (\ s a -> s{_cUpdateTime = a})++-- | The identifier of the owner of a course. When specified as a parameter+-- of a create course request, this field is required. The identifier can+-- be one of the following: * the numeric identifier for the user * the+-- email address of the user * the string literal \`\"me\"\`, indicating+-- the requesting user This must be set in a create request. Specifying+-- this field in a course update mask will result in an+-- \`INVALID_ARGUMENT\` error.+cOwnerId :: Lens' Course (Maybe Text)+cOwnerId = lens _cOwnerId (\ s a -> s{_cOwnerId = a})++-- | Name of the course. For example, \"10th Grade Biology\". The name is+-- required. It must be between 1 and 750 characters and a valid UTF-8+-- string.+cName :: Lens' Course (Maybe Text)+cName = lens _cName (\ s a -> s{_cName = a})++-- | Identifier for this course assigned by Classroom. When creating a+-- course, you may optionally set this identifier to an alias string in the+-- request to create a corresponding alias. The \`id\` is still assigned by+-- Classroom and cannot be updated after the course is created. Specifying+-- this field in a course update mask will result in an error.+cId :: Lens' Course (Maybe Text)+cId = lens _cId (\ s a -> s{_cId = a})++-- | Absolute link to this course in the Classroom web UI. Read-only.+cAlternateLink :: Lens' Course (Maybe Text)+cAlternateLink+  = lens _cAlternateLink+      (\ s a -> s{_cAlternateLink = a})++-- | Optional description. For example, \"We\'ll be learning about the+-- structure of living creatures from a combination of textbooks, guest+-- lectures, and lab work. Expect to be excited!\" If set, this field must+-- be a valid UTF-8 string and no longer than 30,000 characters.+cDescription :: Lens' Course (Maybe Text)+cDescription+  = lens _cDescription (\ s a -> s{_cDescription = a})++-- | Optional heading for the description. For example, \"Welcome to 10th+-- Grade Biology.\" If set, this field must be a valid UTF-8 string and no+-- longer than 3600 characters.+cDescriptionHeading :: Lens' Course (Maybe Text)+cDescriptionHeading+  = lens _cDescriptionHeading+      (\ s a -> s{_cDescriptionHeading = a})++-- | Section of the course. For example, \"Period 2\". If set, this field+-- must be a valid UTF-8 string and no longer than 2800 characters.+cSection :: Lens' Course (Maybe Text)+cSection = lens _cSection (\ s a -> s{_cSection = a})++instance FromJSON Course where+        parseJSON+          = withObject "Course"+              (\ o ->+                 Course <$>+                   (o .:? "creationTime") <*> (o .:? "room") <*>+                     (o .:? "courseState")+                     <*> (o .:? "enrollmentCode")+                     <*> (o .:? "updateTime")+                     <*> (o .:? "ownerId")+                     <*> (o .:? "name")+                     <*> (o .:? "id")+                     <*> (o .:? "alternateLink")+                     <*> (o .:? "description")+                     <*> (o .:? "descriptionHeading")+                     <*> (o .:? "section"))++instance ToJSON Course where+        toJSON Course{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _cCreationTime,+                  ("room" .=) <$> _cRoom,+                  ("courseState" .=) <$> _cCourseState,+                  ("enrollmentCode" .=) <$> _cEnrollmentCode,+                  ("updateTime" .=) <$> _cUpdateTime,+                  ("ownerId" .=) <$> _cOwnerId, ("name" .=) <$> _cName,+                  ("id" .=) <$> _cId,+                  ("alternateLink" .=) <$> _cAlternateLink,+                  ("description" .=) <$> _cDescription,+                  ("descriptionHeading" .=) <$> _cDescriptionHeading,+                  ("section" .=) <$> _cSection])++-- | Response when listing students.+--+-- /See:/ 'listStudentsResponse' smart constructor.+data ListStudentsResponse = ListStudentsResponse+    { _lsrNextPageToken :: !(Maybe Text)+    , _lsrStudents      :: !(Maybe [Student])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListStudentsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsrNextPageToken'+--+-- * 'lsrStudents'+listStudentsResponse+    :: ListStudentsResponse+listStudentsResponse =+    ListStudentsResponse+    { _lsrNextPageToken = Nothing+    , _lsrStudents = Nothing+    }++-- | Token identifying the next page of results to return. If empty, no+-- further results are available.+lsrNextPageToken :: Lens' ListStudentsResponse (Maybe Text)+lsrNextPageToken+  = lens _lsrNextPageToken+      (\ s a -> s{_lsrNextPageToken = a})++-- | Students who match the list request.+lsrStudents :: Lens' ListStudentsResponse [Student]+lsrStudents+  = lens _lsrStudents (\ s a -> s{_lsrStudents = a}) .+      _Default+      . _Coerce++instance FromJSON ListStudentsResponse where+        parseJSON+          = withObject "ListStudentsResponse"+              (\ o ->+                 ListStudentsResponse <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "students" .!= mempty))++instance ToJSON ListStudentsResponse where+        toJSON ListStudentsResponse{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lsrNextPageToken,+                  ("students" .=) <$> _lsrStudents])++-- | Alternative identifier for a course. An alias uniquely identifies a+-- course. It must be unique within one of the following scopes: * domain:+-- A domain-scoped alias is visible to all users within the alias+-- creator\'s domain and can be created only by a domain admin. A+-- domain-scoped alias is often used when a course has an identifier+-- external to Classroom. * project: A project-scoped alias is visible to+-- any request from an application using the Developer Console project ID+-- that created the alias and can be created by any project. A+-- project-scoped alias is often used when an application has alternative+-- identifiers. A random value can also be used to avoid duplicate courses+-- in the event of transmission failures, as retrying a request will return+-- \`ALREADY_EXISTS\` if a previous one has succeeded.+--+-- /See:/ 'courseAlias' smart constructor.+newtype CourseAlias = CourseAlias+    { _caAlias :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CourseAlias' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'caAlias'+courseAlias+    :: CourseAlias+courseAlias =+    CourseAlias+    { _caAlias = Nothing+    }++-- | Alias string. The format of the string indicates the desired alias+-- scoping. * \`d:\` indicates a domain-scoped alias. Example:+-- \`d:math_101\` * \`p:\` indicates a project-scoped alias. Example:+-- \`p:abc123\` This field has a maximum length of 256 characters.+caAlias :: Lens' CourseAlias (Maybe Text)+caAlias = lens _caAlias (\ s a -> s{_caAlias = a})++instance FromJSON CourseAlias where+        parseJSON+          = withObject "CourseAlias"+              (\ o -> CourseAlias <$> (o .:? "alias"))++instance ToJSON CourseAlias where+        toJSON CourseAlias{..}+          = object (catMaybes [("alias" .=) <$> _caAlias])++-- | Response when listing teachers.+--+-- /See:/ 'listTeachersResponse' smart constructor.+data ListTeachersResponse = ListTeachersResponse+    { _ltrNextPageToken :: !(Maybe Text)+    , _ltrTeachers      :: !(Maybe [Teacher])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListTeachersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltrNextPageToken'+--+-- * 'ltrTeachers'+listTeachersResponse+    :: ListTeachersResponse+listTeachersResponse =+    ListTeachersResponse+    { _ltrNextPageToken = Nothing+    , _ltrTeachers = Nothing+    }++-- | Token identifying the next page of results to return. If empty, no+-- further results are available.+ltrNextPageToken :: Lens' ListTeachersResponse (Maybe Text)+ltrNextPageToken+  = lens _ltrNextPageToken+      (\ s a -> s{_ltrNextPageToken = a})++-- | Teachers who match the list request.+ltrTeachers :: Lens' ListTeachersResponse [Teacher]+ltrTeachers+  = lens _ltrTeachers (\ s a -> s{_ltrTeachers = a}) .+      _Default+      . _Coerce++instance FromJSON ListTeachersResponse where+        parseJSON+          = withObject "ListTeachersResponse"+              (\ o ->+                 ListTeachersResponse <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "teachers" .!= mempty))++instance ToJSON ListTeachersResponse where+        toJSON ListTeachersResponse{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _ltrNextPageToken,+                  ("teachers" .=) <$> _ltrTeachers])++-- | Student in a course.+--+-- /See:/ 'student' smart constructor.+data Student = Student+    { _sCourseId :: !(Maybe Text)+    , _sProFile  :: !(Maybe UserProFile)+    , _sUserId   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Student' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sCourseId'+--+-- * 'sProFile'+--+-- * 'sUserId'+student+    :: Student+student =+    Student+    { _sCourseId = Nothing+    , _sProFile = Nothing+    , _sUserId = Nothing+    }++-- | Identifier of the course. Read-only.+sCourseId :: Lens' Student (Maybe Text)+sCourseId+  = lens _sCourseId (\ s a -> s{_sCourseId = a})++-- | Global user information for the student. Read-only.+sProFile :: Lens' Student (Maybe UserProFile)+sProFile = lens _sProFile (\ s a -> s{_sProFile = a})++-- | Identifier of the user. When specified as a parameter of a request, this+-- identifier can be one of the following: * the numeric identifier for the+-- user * the email address of the user * the string literal \`\"me\"\`,+-- indicating the requesting user+sUserId :: Lens' Student (Maybe Text)+sUserId = lens _sUserId (\ s a -> s{_sUserId = a})++instance FromJSON Student where+        parseJSON+          = withObject "Student"+              (\ o ->+                 Student <$>+                   (o .:? "courseId") <*> (o .:? "profile") <*>+                     (o .:? "userId"))++instance ToJSON Student where+        toJSON Student{..}+          = object+              (catMaybes+                 [("courseId" .=) <$> _sCourseId,+                  ("profile" .=) <$> _sProFile,+                  ("userId" .=) <$> _sUserId])
+ gen/Network/Google/Classroom/Types/Sum.hs view
@@ -0,0 +1,19 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Classroom.Types.Sum+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Classroom.Types.Sum where++import           Network.Google.Prelude
+ gen/Network/Google/Resource/Classroom/Courses/Aliases/Create.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Aliases.Create+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an alias for a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to create the alias or for access errors. * \`NOT_FOUND\` if the course+-- does not exist. * \`ALREADY_EXISTS\` if the alias already exists.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.aliases.create@.+module Network.Google.Resource.Classroom.Courses.Aliases.Create+    (+    -- * REST Resource+      CoursesAliasesCreateResource++    -- * Creating a Request+    , coursesAliasesCreate+    , CoursesAliasesCreate++    -- * Request Lenses+    , cacXgafv+    , cacUploadProtocol+    , cacPp+    , cacCourseId+    , cacAccessToken+    , cacUploadType+    , cacPayload+    , cacBearerToken+    , cacCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.aliases.create@ method which the+-- 'CoursesAliasesCreate' request conforms to.+type CoursesAliasesCreateResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "aliases" :>+             QueryParam "$.xgafv" Text :>+               QueryParam "upload_protocol" Text :>+                 QueryParam "pp" Bool :>+                   QueryParam "access_token" Text :>+                     QueryParam "uploadType" Text :>+                       QueryParam "bearer_token" Text :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             ReqBody '[JSON] CourseAlias :>+                               Post '[JSON] CourseAlias++-- | Creates an alias for a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to create the alias or for access errors. * \`NOT_FOUND\` if the course+-- does not exist. * \`ALREADY_EXISTS\` if the alias already exists.+--+-- /See:/ 'coursesAliasesCreate' smart constructor.+data CoursesAliasesCreate = CoursesAliasesCreate+    { _cacXgafv          :: !(Maybe Text)+    , _cacUploadProtocol :: !(Maybe Text)+    , _cacPp             :: !Bool+    , _cacCourseId       :: !Text+    , _cacAccessToken    :: !(Maybe Text)+    , _cacUploadType     :: !(Maybe Text)+    , _cacPayload        :: !CourseAlias+    , _cacBearerToken    :: !(Maybe Text)+    , _cacCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesAliasesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cacXgafv'+--+-- * 'cacUploadProtocol'+--+-- * 'cacPp'+--+-- * 'cacCourseId'+--+-- * 'cacAccessToken'+--+-- * 'cacUploadType'+--+-- * 'cacPayload'+--+-- * 'cacBearerToken'+--+-- * 'cacCallback'+coursesAliasesCreate+    :: Text -- ^ 'cacCourseId'+    -> CourseAlias -- ^ 'cacPayload'+    -> CoursesAliasesCreate+coursesAliasesCreate pCacCourseId_ pCacPayload_ =+    CoursesAliasesCreate+    { _cacXgafv = Nothing+    , _cacUploadProtocol = Nothing+    , _cacPp = True+    , _cacCourseId = pCacCourseId_+    , _cacAccessToken = Nothing+    , _cacUploadType = Nothing+    , _cacPayload = pCacPayload_+    , _cacBearerToken = Nothing+    , _cacCallback = Nothing+    }++-- | V1 error format.+cacXgafv :: Lens' CoursesAliasesCreate (Maybe Text)+cacXgafv = lens _cacXgafv (\ s a -> s{_cacXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+cacUploadProtocol :: Lens' CoursesAliasesCreate (Maybe Text)+cacUploadProtocol+  = lens _cacUploadProtocol+      (\ s a -> s{_cacUploadProtocol = a})++-- | Pretty-print response.+cacPp :: Lens' CoursesAliasesCreate Bool+cacPp = lens _cacPp (\ s a -> s{_cacPp = a})++-- | Identifier of the course to alias. This identifier can be either the+-- Classroom-assigned identifier or an alias.+cacCourseId :: Lens' CoursesAliasesCreate Text+cacCourseId+  = lens _cacCourseId (\ s a -> s{_cacCourseId = a})++-- | OAuth access token.+cacAccessToken :: Lens' CoursesAliasesCreate (Maybe Text)+cacAccessToken+  = lens _cacAccessToken+      (\ s a -> s{_cacAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+cacUploadType :: Lens' CoursesAliasesCreate (Maybe Text)+cacUploadType+  = lens _cacUploadType+      (\ s a -> s{_cacUploadType = a})++-- | Multipart request metadata.+cacPayload :: Lens' CoursesAliasesCreate CourseAlias+cacPayload+  = lens _cacPayload (\ s a -> s{_cacPayload = a})++-- | OAuth bearer token.+cacBearerToken :: Lens' CoursesAliasesCreate (Maybe Text)+cacBearerToken+  = lens _cacBearerToken+      (\ s a -> s{_cacBearerToken = a})++-- | JSONP+cacCallback :: Lens' CoursesAliasesCreate (Maybe Text)+cacCallback+  = lens _cacCallback (\ s a -> s{_cacCallback = a})++instance GoogleRequest CoursesAliasesCreate where+        type Rs CoursesAliasesCreate = CourseAlias+        requestClient CoursesAliasesCreate{..}+          = go _cacCourseId _cacXgafv _cacUploadProtocol+              (Just _cacPp)+              _cacAccessToken+              _cacUploadType+              _cacBearerToken+              _cacCallback+              (Just AltJSON)+              _cacPayload+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesAliasesCreateResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Aliases/Delete.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Aliases.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an alias of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to remove the alias or for access errors. * \`NOT_FOUND\` if the alias+-- does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.aliases.delete@.+module Network.Google.Resource.Classroom.Courses.Aliases.Delete+    (+    -- * REST Resource+      CoursesAliasesDeleteResource++    -- * Creating a Request+    , coursesAliasesDelete+    , CoursesAliasesDelete++    -- * Request Lenses+    , cadXgafv+    , cadUploadProtocol+    , cadPp+    , cadCourseId+    , cadAccessToken+    , cadUploadType+    , cadAlias+    , cadBearerToken+    , cadCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.aliases.delete@ method which the+-- 'CoursesAliasesDelete' request conforms to.+type CoursesAliasesDeleteResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "aliases" :>+             Capture "alias" Text :>+               QueryParam "$.xgafv" 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 an alias of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to remove the alias or for access errors. * \`NOT_FOUND\` if the alias+-- does not exist.+--+-- /See:/ 'coursesAliasesDelete' smart constructor.+data CoursesAliasesDelete = CoursesAliasesDelete+    { _cadXgafv          :: !(Maybe Text)+    , _cadUploadProtocol :: !(Maybe Text)+    , _cadPp             :: !Bool+    , _cadCourseId       :: !Text+    , _cadAccessToken    :: !(Maybe Text)+    , _cadUploadType     :: !(Maybe Text)+    , _cadAlias          :: !Text+    , _cadBearerToken    :: !(Maybe Text)+    , _cadCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesAliasesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cadXgafv'+--+-- * 'cadUploadProtocol'+--+-- * 'cadPp'+--+-- * 'cadCourseId'+--+-- * 'cadAccessToken'+--+-- * 'cadUploadType'+--+-- * 'cadAlias'+--+-- * 'cadBearerToken'+--+-- * 'cadCallback'+coursesAliasesDelete+    :: Text -- ^ 'cadCourseId'+    -> Text -- ^ 'cadAlias'+    -> CoursesAliasesDelete+coursesAliasesDelete pCadCourseId_ pCadAlias_ =+    CoursesAliasesDelete+    { _cadXgafv = Nothing+    , _cadUploadProtocol = Nothing+    , _cadPp = True+    , _cadCourseId = pCadCourseId_+    , _cadAccessToken = Nothing+    , _cadUploadType = Nothing+    , _cadAlias = pCadAlias_+    , _cadBearerToken = Nothing+    , _cadCallback = Nothing+    }++-- | V1 error format.+cadXgafv :: Lens' CoursesAliasesDelete (Maybe Text)+cadXgafv = lens _cadXgafv (\ s a -> s{_cadXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+cadUploadProtocol :: Lens' CoursesAliasesDelete (Maybe Text)+cadUploadProtocol+  = lens _cadUploadProtocol+      (\ s a -> s{_cadUploadProtocol = a})++-- | Pretty-print response.+cadPp :: Lens' CoursesAliasesDelete Bool+cadPp = lens _cadPp (\ s a -> s{_cadPp = a})++-- | Identifier of the course whose alias should be deleted. This identifier+-- can be either the Classroom-assigned identifier or an alias.+cadCourseId :: Lens' CoursesAliasesDelete Text+cadCourseId+  = lens _cadCourseId (\ s a -> s{_cadCourseId = a})++-- | OAuth access token.+cadAccessToken :: Lens' CoursesAliasesDelete (Maybe Text)+cadAccessToken+  = lens _cadAccessToken+      (\ s a -> s{_cadAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+cadUploadType :: Lens' CoursesAliasesDelete (Maybe Text)+cadUploadType+  = lens _cadUploadType+      (\ s a -> s{_cadUploadType = a})++-- | Alias to delete. This may not be the Classroom-assigned identifier.+cadAlias :: Lens' CoursesAliasesDelete Text+cadAlias = lens _cadAlias (\ s a -> s{_cadAlias = a})++-- | OAuth bearer token.+cadBearerToken :: Lens' CoursesAliasesDelete (Maybe Text)+cadBearerToken+  = lens _cadBearerToken+      (\ s a -> s{_cadBearerToken = a})++-- | JSONP+cadCallback :: Lens' CoursesAliasesDelete (Maybe Text)+cadCallback+  = lens _cadCallback (\ s a -> s{_cadCallback = a})++instance GoogleRequest CoursesAliasesDelete where+        type Rs CoursesAliasesDelete = Empty+        requestClient CoursesAliasesDelete{..}+          = go _cadCourseId _cadAlias _cadXgafv+              _cadUploadProtocol+              (Just _cadPp)+              _cadAccessToken+              _cadUploadType+              _cadBearerToken+              _cadCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesAliasesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Aliases/List.hs view
@@ -0,0 +1,207 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Aliases.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of aliases for a course. This method returns the+-- following error codes: * \`PERMISSION_DENIED\` if the requesting user is+-- not permitted to access the course or for access errors. * \`NOT_FOUND\`+-- if the course does not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.aliases.list@.+module Network.Google.Resource.Classroom.Courses.Aliases.List+    (+    -- * REST Resource+      CoursesAliasesListResource++    -- * Creating a Request+    , coursesAliasesList+    , CoursesAliasesList++    -- * Request Lenses+    , calXgafv+    , calUploadProtocol+    , calPp+    , calCourseId+    , calAccessToken+    , calUploadType+    , calBearerToken+    , calPageToken+    , calPageSize+    , calCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.aliases.list@ method which the+-- 'CoursesAliasesList' request conforms to.+type CoursesAliasesListResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "aliases" :>+             QueryParam "$.xgafv" Text :>+               QueryParam "upload_protocol" Text :>+                 QueryParam "pp" Bool :>+                   QueryParam "access_token" Text :>+                     QueryParam "uploadType" Text :>+                       QueryParam "bearer_token" Text :>+                         QueryParam "pageToken" Text :>+                           QueryParam "pageSize" (Textual Int32) :>+                             QueryParam "callback" Text :>+                               QueryParam "alt" AltJSON :>+                                 Get '[JSON] ListCourseAliasesResponse++-- | Returns a list of aliases for a course. This method returns the+-- following error codes: * \`PERMISSION_DENIED\` if the requesting user is+-- not permitted to access the course or for access errors. * \`NOT_FOUND\`+-- if the course does not exist.+--+-- /See:/ 'coursesAliasesList' smart constructor.+data CoursesAliasesList = CoursesAliasesList+    { _calXgafv          :: !(Maybe Text)+    , _calUploadProtocol :: !(Maybe Text)+    , _calPp             :: !Bool+    , _calCourseId       :: !Text+    , _calAccessToken    :: !(Maybe Text)+    , _calUploadType     :: !(Maybe Text)+    , _calBearerToken    :: !(Maybe Text)+    , _calPageToken      :: !(Maybe Text)+    , _calPageSize       :: !(Maybe (Textual Int32))+    , _calCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesAliasesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'calXgafv'+--+-- * 'calUploadProtocol'+--+-- * 'calPp'+--+-- * 'calCourseId'+--+-- * 'calAccessToken'+--+-- * 'calUploadType'+--+-- * 'calBearerToken'+--+-- * 'calPageToken'+--+-- * 'calPageSize'+--+-- * 'calCallback'+coursesAliasesList+    :: Text -- ^ 'calCourseId'+    -> CoursesAliasesList+coursesAliasesList pCalCourseId_ =+    CoursesAliasesList+    { _calXgafv = Nothing+    , _calUploadProtocol = Nothing+    , _calPp = True+    , _calCourseId = pCalCourseId_+    , _calAccessToken = Nothing+    , _calUploadType = Nothing+    , _calBearerToken = Nothing+    , _calPageToken = Nothing+    , _calPageSize = Nothing+    , _calCallback = Nothing+    }++-- | V1 error format.+calXgafv :: Lens' CoursesAliasesList (Maybe Text)+calXgafv = lens _calXgafv (\ s a -> s{_calXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+calUploadProtocol :: Lens' CoursesAliasesList (Maybe Text)+calUploadProtocol+  = lens _calUploadProtocol+      (\ s a -> s{_calUploadProtocol = a})++-- | Pretty-print response.+calPp :: Lens' CoursesAliasesList Bool+calPp = lens _calPp (\ s a -> s{_calPp = a})++-- | The identifier of the course. This identifier can be either the+-- Classroom-assigned identifier or an alias.+calCourseId :: Lens' CoursesAliasesList Text+calCourseId+  = lens _calCourseId (\ s a -> s{_calCourseId = a})++-- | OAuth access token.+calAccessToken :: Lens' CoursesAliasesList (Maybe Text)+calAccessToken+  = lens _calAccessToken+      (\ s a -> s{_calAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+calUploadType :: Lens' CoursesAliasesList (Maybe Text)+calUploadType+  = lens _calUploadType+      (\ s a -> s{_calUploadType = a})++-- | OAuth bearer token.+calBearerToken :: Lens' CoursesAliasesList (Maybe Text)+calBearerToken+  = lens _calBearerToken+      (\ s a -> s{_calBearerToken = a})++-- | nextPageToken value returned from a previous list call, indicating that+-- the subsequent page of results should be returned. The list request must+-- be otherwise identical to the one that resulted in this token.+calPageToken :: Lens' CoursesAliasesList (Maybe Text)+calPageToken+  = lens _calPageToken (\ s a -> s{_calPageToken = a})++-- | Maximum number of items to return. Zero or unspecified indicates that+-- the server may assign a maximum. The server may return fewer than the+-- specified number of results.+calPageSize :: Lens' CoursesAliasesList (Maybe Int32)+calPageSize+  = lens _calPageSize (\ s a -> s{_calPageSize = a}) .+      mapping _Coerce++-- | JSONP+calCallback :: Lens' CoursesAliasesList (Maybe Text)+calCallback+  = lens _calCallback (\ s a -> s{_calCallback = a})++instance GoogleRequest CoursesAliasesList where+        type Rs CoursesAliasesList =+             ListCourseAliasesResponse+        requestClient CoursesAliasesList{..}+          = go _calCourseId _calXgafv _calUploadProtocol+              (Just _calPp)+              _calAccessToken+              _calUploadType+              _calBearerToken+              _calPageToken+              _calPageSize+              _calCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesAliasesListResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Create.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Create+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a course. The user specified in \`ownerId\` is the owner of the+-- created course and added as a teacher. This method returns the following+-- error codes: * \`PERMISSION_DENIED\` if the requesting user is not+-- permitted to create courses or for access errors. * \`NOT_FOUND\` if the+-- primary teacher is not a valid user. * \`FAILED_PRECONDITION\` if the+-- course owner\'s account is disabled or for the following request errors:+-- * UserGroupsMembershipLimitReached * \`ALREADY_EXISTS\` if an alias was+-- specified in the \`id\` and already exists.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.create@.+module Network.Google.Resource.Classroom.Courses.Create+    (+    -- * REST Resource+      CoursesCreateResource++    -- * Creating a Request+    , coursesCreate+    , CoursesCreate++    -- * Request Lenses+    , ccXgafv+    , ccUploadProtocol+    , ccPp+    , ccAccessToken+    , ccUploadType+    , ccPayload+    , ccBearerToken+    , ccCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.create@ method which the+-- 'CoursesCreate' request conforms to.+type CoursesCreateResource =+     "v1" :>+       "courses" :>+         QueryParam "$.xgafv" Text :>+           QueryParam "upload_protocol" Text :>+             QueryParam "pp" Bool :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "bearer_token" Text :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Course :> Post '[JSON] Course++-- | Creates a course. The user specified in \`ownerId\` is the owner of the+-- created course and added as a teacher. This method returns the following+-- error codes: * \`PERMISSION_DENIED\` if the requesting user is not+-- permitted to create courses or for access errors. * \`NOT_FOUND\` if the+-- primary teacher is not a valid user. * \`FAILED_PRECONDITION\` if the+-- course owner\'s account is disabled or for the following request errors:+-- * UserGroupsMembershipLimitReached * \`ALREADY_EXISTS\` if an alias was+-- specified in the \`id\` and already exists.+--+-- /See:/ 'coursesCreate' smart constructor.+data CoursesCreate = CoursesCreate+    { _ccXgafv          :: !(Maybe Text)+    , _ccUploadProtocol :: !(Maybe Text)+    , _ccPp             :: !Bool+    , _ccAccessToken    :: !(Maybe Text)+    , _ccUploadType     :: !(Maybe Text)+    , _ccPayload        :: !Course+    , _ccBearerToken    :: !(Maybe Text)+    , _ccCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccXgafv'+--+-- * 'ccUploadProtocol'+--+-- * 'ccPp'+--+-- * 'ccAccessToken'+--+-- * 'ccUploadType'+--+-- * 'ccPayload'+--+-- * 'ccBearerToken'+--+-- * 'ccCallback'+coursesCreate+    :: Course -- ^ 'ccPayload'+    -> CoursesCreate+coursesCreate pCcPayload_ =+    CoursesCreate+    { _ccXgafv = Nothing+    , _ccUploadProtocol = Nothing+    , _ccPp = True+    , _ccAccessToken = Nothing+    , _ccUploadType = Nothing+    , _ccPayload = pCcPayload_+    , _ccBearerToken = Nothing+    , _ccCallback = Nothing+    }++-- | V1 error format.+ccXgafv :: Lens' CoursesCreate (Maybe Text)+ccXgafv = lens _ccXgafv (\ s a -> s{_ccXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ccUploadProtocol :: Lens' CoursesCreate (Maybe Text)+ccUploadProtocol+  = lens _ccUploadProtocol+      (\ s a -> s{_ccUploadProtocol = a})++-- | Pretty-print response.+ccPp :: Lens' CoursesCreate Bool+ccPp = lens _ccPp (\ s a -> s{_ccPp = a})++-- | OAuth access token.+ccAccessToken :: Lens' CoursesCreate (Maybe Text)+ccAccessToken+  = lens _ccAccessToken+      (\ s a -> s{_ccAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ccUploadType :: Lens' CoursesCreate (Maybe Text)+ccUploadType+  = lens _ccUploadType (\ s a -> s{_ccUploadType = a})++-- | Multipart request metadata.+ccPayload :: Lens' CoursesCreate Course+ccPayload+  = lens _ccPayload (\ s a -> s{_ccPayload = a})++-- | OAuth bearer token.+ccBearerToken :: Lens' CoursesCreate (Maybe Text)+ccBearerToken+  = lens _ccBearerToken+      (\ s a -> s{_ccBearerToken = a})++-- | JSONP+ccCallback :: Lens' CoursesCreate (Maybe Text)+ccCallback+  = lens _ccCallback (\ s a -> s{_ccCallback = a})++instance GoogleRequest CoursesCreate where+        type Rs CoursesCreate = Course+        requestClient CoursesCreate{..}+          = go _ccXgafv _ccUploadProtocol (Just _ccPp)+              _ccAccessToken+              _ccUploadType+              _ccBearerToken+              _ccCallback+              (Just AltJSON)+              _ccPayload+              classroomService+          where go+                  = buildClient (Proxy :: Proxy CoursesCreateResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Delete.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a course. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to delete+-- the requested course or for access errors. * \`NOT_FOUND\` if no course+-- exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.delete@.+module Network.Google.Resource.Classroom.Courses.Delete+    (+    -- * REST Resource+      CoursesDeleteResource++    -- * Creating a Request+    , coursesDelete+    , CoursesDelete++    -- * Request Lenses+    , cdXgafv+    , cdUploadProtocol+    , cdPp+    , cdAccessToken+    , cdUploadType+    , cdBearerToken+    , cdId+    , cdCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.delete@ method which the+-- 'CoursesDelete' request conforms to.+type CoursesDeleteResource =+     "v1" :>+       "courses" :>+         Capture "id" Text :>+           QueryParam "$.xgafv" 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. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to delete+-- the requested course or for access errors. * \`NOT_FOUND\` if no course+-- exists with the requested ID.+--+-- /See:/ 'coursesDelete' smart constructor.+data CoursesDelete = CoursesDelete+    { _cdXgafv          :: !(Maybe Text)+    , _cdUploadProtocol :: !(Maybe Text)+    , _cdPp             :: !Bool+    , _cdAccessToken    :: !(Maybe Text)+    , _cdUploadType     :: !(Maybe Text)+    , _cdBearerToken    :: !(Maybe Text)+    , _cdId             :: !Text+    , _cdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdXgafv'+--+-- * 'cdUploadProtocol'+--+-- * 'cdPp'+--+-- * 'cdAccessToken'+--+-- * 'cdUploadType'+--+-- * 'cdBearerToken'+--+-- * 'cdId'+--+-- * 'cdCallback'+coursesDelete+    :: Text -- ^ 'cdId'+    -> CoursesDelete+coursesDelete pCdId_ =+    CoursesDelete+    { _cdXgafv = Nothing+    , _cdUploadProtocol = Nothing+    , _cdPp = True+    , _cdAccessToken = Nothing+    , _cdUploadType = Nothing+    , _cdBearerToken = Nothing+    , _cdId = pCdId_+    , _cdCallback = Nothing+    }++-- | V1 error format.+cdXgafv :: Lens' CoursesDelete (Maybe Text)+cdXgafv = lens _cdXgafv (\ s a -> s{_cdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+cdUploadProtocol :: Lens' CoursesDelete (Maybe Text)+cdUploadProtocol+  = lens _cdUploadProtocol+      (\ s a -> s{_cdUploadProtocol = a})++-- | Pretty-print response.+cdPp :: Lens' CoursesDelete Bool+cdPp = lens _cdPp (\ s a -> s{_cdPp = a})++-- | OAuth access token.+cdAccessToken :: Lens' CoursesDelete (Maybe Text)+cdAccessToken+  = lens _cdAccessToken+      (\ s a -> s{_cdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+cdUploadType :: Lens' CoursesDelete (Maybe Text)+cdUploadType+  = lens _cdUploadType (\ s a -> s{_cdUploadType = a})++-- | OAuth bearer token.+cdBearerToken :: Lens' CoursesDelete (Maybe Text)+cdBearerToken+  = lens _cdBearerToken+      (\ s a -> s{_cdBearerToken = a})++-- | Identifier of the course to delete. This identifier can be either the+-- Classroom-assigned identifier or an alias.+cdId :: Lens' CoursesDelete Text+cdId = lens _cdId (\ s a -> s{_cdId = a})++-- | JSONP+cdCallback :: Lens' CoursesDelete (Maybe Text)+cdCallback+  = lens _cdCallback (\ s a -> s{_cdCallback = a})++instance GoogleRequest CoursesDelete where+        type Rs CoursesDelete = Empty+        requestClient CoursesDelete{..}+          = go _cdId _cdXgafv _cdUploadProtocol (Just _cdPp)+              _cdAccessToken+              _cdUploadType+              _cdBearerToken+              _cdCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient (Proxy :: Proxy CoursesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Get.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a course. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to access+-- the requested course or for access errors. * \`NOT_FOUND\` if no course+-- exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.get@.+module Network.Google.Resource.Classroom.Courses.Get+    (+    -- * REST Resource+      CoursesGetResource++    -- * Creating a Request+    , coursesGet+    , CoursesGet++    -- * Request Lenses+    , cgXgafv+    , cgUploadProtocol+    , cgPp+    , cgAccessToken+    , cgUploadType+    , cgBearerToken+    , cgId+    , cgCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.get@ method which the+-- 'CoursesGet' request conforms to.+type CoursesGetResource =+     "v1" :>+       "courses" :>+         Capture "id" Text :>+           QueryParam "$.xgafv" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "pp" Bool :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParam "bearer_token" Text :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :> Get '[JSON] Course++-- | Returns a course. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to access+-- the requested course or for access errors. * \`NOT_FOUND\` if no course+-- exists with the requested ID.+--+-- /See:/ 'coursesGet' smart constructor.+data CoursesGet = CoursesGet+    { _cgXgafv          :: !(Maybe Text)+    , _cgUploadProtocol :: !(Maybe Text)+    , _cgPp             :: !Bool+    , _cgAccessToken    :: !(Maybe Text)+    , _cgUploadType     :: !(Maybe Text)+    , _cgBearerToken    :: !(Maybe Text)+    , _cgId             :: !Text+    , _cgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cgXgafv'+--+-- * 'cgUploadProtocol'+--+-- * 'cgPp'+--+-- * 'cgAccessToken'+--+-- * 'cgUploadType'+--+-- * 'cgBearerToken'+--+-- * 'cgId'+--+-- * 'cgCallback'+coursesGet+    :: Text -- ^ 'cgId'+    -> CoursesGet+coursesGet pCgId_ =+    CoursesGet+    { _cgXgafv = Nothing+    , _cgUploadProtocol = Nothing+    , _cgPp = True+    , _cgAccessToken = Nothing+    , _cgUploadType = Nothing+    , _cgBearerToken = Nothing+    , _cgId = pCgId_+    , _cgCallback = Nothing+    }++-- | V1 error format.+cgXgafv :: Lens' CoursesGet (Maybe Text)+cgXgafv = lens _cgXgafv (\ s a -> s{_cgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+cgUploadProtocol :: Lens' CoursesGet (Maybe Text)+cgUploadProtocol+  = lens _cgUploadProtocol+      (\ s a -> s{_cgUploadProtocol = a})++-- | Pretty-print response.+cgPp :: Lens' CoursesGet Bool+cgPp = lens _cgPp (\ s a -> s{_cgPp = a})++-- | OAuth access token.+cgAccessToken :: Lens' CoursesGet (Maybe Text)+cgAccessToken+  = lens _cgAccessToken+      (\ s a -> s{_cgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+cgUploadType :: Lens' CoursesGet (Maybe Text)+cgUploadType+  = lens _cgUploadType (\ s a -> s{_cgUploadType = a})++-- | OAuth bearer token.+cgBearerToken :: Lens' CoursesGet (Maybe Text)+cgBearerToken+  = lens _cgBearerToken+      (\ s a -> s{_cgBearerToken = a})++-- | Identifier of the course to return. This identifier can be either the+-- Classroom-assigned identifier or an alias.+cgId :: Lens' CoursesGet Text+cgId = lens _cgId (\ s a -> s{_cgId = a})++-- | JSONP+cgCallback :: Lens' CoursesGet (Maybe Text)+cgCallback+  = lens _cgCallback (\ s a -> s{_cgCallback = a})++instance GoogleRequest CoursesGet where+        type Rs CoursesGet = Course+        requestClient CoursesGet{..}+          = go _cgId _cgXgafv _cgUploadProtocol (Just _cgPp)+              _cgAccessToken+              _cgUploadType+              _cgBearerToken+              _cgCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient (Proxy :: Proxy CoursesGetResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/List.hs view
@@ -0,0 +1,221 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of courses that the requesting user is permitted to view,+-- restricted to those that match the request. This method returns the+-- following error codes: * \`PERMISSION_DENIED\` for access errors. *+-- \`INVALID_ARGUMENT\` if the query argument is malformed. * \`NOT_FOUND\`+-- if any users specified in the query arguments do not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.list@.+module Network.Google.Resource.Classroom.Courses.List+    (+    -- * REST Resource+      CoursesListResource++    -- * Creating a Request+    , coursesList+    , CoursesList++    -- * Request Lenses+    , clStudentId+    , clXgafv+    , clUploadProtocol+    , clPp+    , clAccessToken+    , clUploadType+    , clTeacherId+    , clBearerToken+    , clPageToken+    , clPageSize+    , clCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.list@ method which the+-- 'CoursesList' request conforms to.+type CoursesListResource =+     "v1" :>+       "courses" :>+         QueryParam "studentId" Text :>+           QueryParam "$.xgafv" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "pp" Bool :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParam "teacherId" Text :>+                       QueryParam "bearer_token" Text :>+                         QueryParam "pageToken" Text :>+                           QueryParam "pageSize" (Textual Int32) :>+                             QueryParam "callback" Text :>+                               QueryParam "alt" AltJSON :>+                                 Get '[JSON] ListCoursesResponse++-- | Returns a list of courses that the requesting user is permitted to view,+-- restricted to those that match the request. This method returns the+-- following error codes: * \`PERMISSION_DENIED\` for access errors. *+-- \`INVALID_ARGUMENT\` if the query argument is malformed. * \`NOT_FOUND\`+-- if any users specified in the query arguments do not exist.+--+-- /See:/ 'coursesList' smart constructor.+data CoursesList = CoursesList+    { _clStudentId      :: !(Maybe Text)+    , _clXgafv          :: !(Maybe Text)+    , _clUploadProtocol :: !(Maybe Text)+    , _clPp             :: !Bool+    , _clAccessToken    :: !(Maybe Text)+    , _clUploadType     :: !(Maybe Text)+    , _clTeacherId      :: !(Maybe Text)+    , _clBearerToken    :: !(Maybe Text)+    , _clPageToken      :: !(Maybe Text)+    , _clPageSize       :: !(Maybe (Textual Int32))+    , _clCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clStudentId'+--+-- * 'clXgafv'+--+-- * 'clUploadProtocol'+--+-- * 'clPp'+--+-- * 'clAccessToken'+--+-- * 'clUploadType'+--+-- * 'clTeacherId'+--+-- * 'clBearerToken'+--+-- * 'clPageToken'+--+-- * 'clPageSize'+--+-- * 'clCallback'+coursesList+    :: CoursesList+coursesList =+    CoursesList+    { _clStudentId = Nothing+    , _clXgafv = Nothing+    , _clUploadProtocol = Nothing+    , _clPp = True+    , _clAccessToken = Nothing+    , _clUploadType = Nothing+    , _clTeacherId = Nothing+    , _clBearerToken = Nothing+    , _clPageToken = Nothing+    , _clPageSize = Nothing+    , _clCallback = Nothing+    }++-- | Restricts returned courses to those having a student with the specified+-- identifier. The identifier can be one of the following: * the numeric+-- identifier for the user * the email address of the user * the string+-- literal \`\"me\"\`, indicating the requesting user+clStudentId :: Lens' CoursesList (Maybe Text)+clStudentId+  = lens _clStudentId (\ s a -> s{_clStudentId = a})++-- | V1 error format.+clXgafv :: Lens' CoursesList (Maybe Text)+clXgafv = lens _clXgafv (\ s a -> s{_clXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+clUploadProtocol :: Lens' CoursesList (Maybe Text)+clUploadProtocol+  = lens _clUploadProtocol+      (\ s a -> s{_clUploadProtocol = a})++-- | Pretty-print response.+clPp :: Lens' CoursesList Bool+clPp = lens _clPp (\ s a -> s{_clPp = a})++-- | OAuth access token.+clAccessToken :: Lens' CoursesList (Maybe Text)+clAccessToken+  = lens _clAccessToken+      (\ s a -> s{_clAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+clUploadType :: Lens' CoursesList (Maybe Text)+clUploadType+  = lens _clUploadType (\ s a -> s{_clUploadType = a})++-- | Restricts returned courses to those having a teacher with the specified+-- identifier. The identifier can be one of the following: * the numeric+-- identifier for the user * the email address of the user * the string+-- literal \`\"me\"\`, indicating the requesting user+clTeacherId :: Lens' CoursesList (Maybe Text)+clTeacherId+  = lens _clTeacherId (\ s a -> s{_clTeacherId = a})++-- | OAuth bearer token.+clBearerToken :: Lens' CoursesList (Maybe Text)+clBearerToken+  = lens _clBearerToken+      (\ s a -> s{_clBearerToken = a})++-- | nextPageToken value returned from a previous list call, indicating that+-- the subsequent page of results should be returned. The list request must+-- be otherwise identical to the one that resulted in this token.+clPageToken :: Lens' CoursesList (Maybe Text)+clPageToken+  = lens _clPageToken (\ s a -> s{_clPageToken = a})++-- | Maximum number of items to return. Zero or unspecified indicates that+-- the server may assign a maximum. The server may return fewer than the+-- specified number of results.+clPageSize :: Lens' CoursesList (Maybe Int32)+clPageSize+  = lens _clPageSize (\ s a -> s{_clPageSize = a}) .+      mapping _Coerce++-- | JSONP+clCallback :: Lens' CoursesList (Maybe Text)+clCallback+  = lens _clCallback (\ s a -> s{_clCallback = a})++instance GoogleRequest CoursesList where+        type Rs CoursesList = ListCoursesResponse+        requestClient CoursesList{..}+          = go _clStudentId _clXgafv _clUploadProtocol+              (Just _clPp)+              _clAccessToken+              _clUploadType+              _clTeacherId+              _clBearerToken+              _clPageToken+              _clPageSize+              _clCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient (Proxy :: Proxy CoursesListResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Patch.hs view
@@ -0,0 +1,207 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates one or more fields in a course. This method returns the+-- following error codes: * \`PERMISSION_DENIED\` if the requesting user is+-- not permitted to modify the requested course or for access errors. *+-- \`NOT_FOUND\` if no course exists with the requested ID. *+-- \`INVALID_ARGUMENT\` if invalid fields are specified in the update mask+-- or if no update mask is supplied. * \`FAILED_PRECONDITION\` for the+-- following request errors: * CourseNotModifiable+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.patch@.+module Network.Google.Resource.Classroom.Courses.Patch+    (+    -- * REST Resource+      CoursesPatchResource++    -- * Creating a Request+    , coursesPatch+    , CoursesPatch++    -- * Request Lenses+    , cpXgafv+    , cpUploadProtocol+    , cpUpdateMask+    , cpPp+    , cpAccessToken+    , cpUploadType+    , cpPayload+    , cpBearerToken+    , cpId+    , cpCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.patch@ method which the+-- 'CoursesPatch' request conforms to.+type CoursesPatchResource =+     "v1" :>+       "courses" :>+         Capture "id" Text :>+           QueryParam "$.xgafv" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "updateMask" Text :>+                 QueryParam "pp" Bool :>+                   QueryParam "access_token" Text :>+                     QueryParam "uploadType" Text :>+                       QueryParam "bearer_token" Text :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             ReqBody '[JSON] Course :> Patch '[JSON] Course++-- | Updates one or more fields in a course. This method returns the+-- following error codes: * \`PERMISSION_DENIED\` if the requesting user is+-- not permitted to modify the requested course or for access errors. *+-- \`NOT_FOUND\` if no course exists with the requested ID. *+-- \`INVALID_ARGUMENT\` if invalid fields are specified in the update mask+-- or if no update mask is supplied. * \`FAILED_PRECONDITION\` for the+-- following request errors: * CourseNotModifiable+--+-- /See:/ 'coursesPatch' smart constructor.+data CoursesPatch = CoursesPatch+    { _cpXgafv          :: !(Maybe Text)+    , _cpUploadProtocol :: !(Maybe Text)+    , _cpUpdateMask     :: !(Maybe Text)+    , _cpPp             :: !Bool+    , _cpAccessToken    :: !(Maybe Text)+    , _cpUploadType     :: !(Maybe Text)+    , _cpPayload        :: !Course+    , _cpBearerToken    :: !(Maybe Text)+    , _cpId             :: !Text+    , _cpCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpXgafv'+--+-- * 'cpUploadProtocol'+--+-- * 'cpUpdateMask'+--+-- * 'cpPp'+--+-- * 'cpAccessToken'+--+-- * 'cpUploadType'+--+-- * 'cpPayload'+--+-- * 'cpBearerToken'+--+-- * 'cpId'+--+-- * 'cpCallback'+coursesPatch+    :: Course -- ^ 'cpPayload'+    -> Text -- ^ 'cpId'+    -> CoursesPatch+coursesPatch pCpPayload_ pCpId_ =+    CoursesPatch+    { _cpXgafv = Nothing+    , _cpUploadProtocol = Nothing+    , _cpUpdateMask = Nothing+    , _cpPp = True+    , _cpAccessToken = Nothing+    , _cpUploadType = Nothing+    , _cpPayload = pCpPayload_+    , _cpBearerToken = Nothing+    , _cpId = pCpId_+    , _cpCallback = Nothing+    }++-- | V1 error format.+cpXgafv :: Lens' CoursesPatch (Maybe Text)+cpXgafv = lens _cpXgafv (\ s a -> s{_cpXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+cpUploadProtocol :: Lens' CoursesPatch (Maybe Text)+cpUploadProtocol+  = lens _cpUploadProtocol+      (\ s a -> s{_cpUploadProtocol = a})++-- | Mask that identifies which fields on the course to update. This field is+-- required to do an update. The update will fail if invalid fields are+-- specified. The following fields are valid: * \`name\` * \`section\` *+-- \`descriptionHeading\` * \`description\` * \`room\` * \`courseState\`+-- When set in a query parameter, this field should be specified as+-- \`updateMask=,,...\`+cpUpdateMask :: Lens' CoursesPatch (Maybe Text)+cpUpdateMask+  = lens _cpUpdateMask (\ s a -> s{_cpUpdateMask = a})++-- | Pretty-print response.+cpPp :: Lens' CoursesPatch Bool+cpPp = lens _cpPp (\ s a -> s{_cpPp = a})++-- | OAuth access token.+cpAccessToken :: Lens' CoursesPatch (Maybe Text)+cpAccessToken+  = lens _cpAccessToken+      (\ s a -> s{_cpAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+cpUploadType :: Lens' CoursesPatch (Maybe Text)+cpUploadType+  = lens _cpUploadType (\ s a -> s{_cpUploadType = a})++-- | Multipart request metadata.+cpPayload :: Lens' CoursesPatch Course+cpPayload+  = lens _cpPayload (\ s a -> s{_cpPayload = a})++-- | OAuth bearer token.+cpBearerToken :: Lens' CoursesPatch (Maybe Text)+cpBearerToken+  = lens _cpBearerToken+      (\ s a -> s{_cpBearerToken = a})++-- | Identifier of the course to update. This identifier can be either the+-- Classroom-assigned identifier or an alias.+cpId :: Lens' CoursesPatch Text+cpId = lens _cpId (\ s a -> s{_cpId = a})++-- | JSONP+cpCallback :: Lens' CoursesPatch (Maybe Text)+cpCallback+  = lens _cpCallback (\ s a -> s{_cpCallback = a})++instance GoogleRequest CoursesPatch where+        type Rs CoursesPatch = Course+        requestClient CoursesPatch{..}+          = go _cpId _cpXgafv _cpUploadProtocol _cpUpdateMask+              (Just _cpPp)+              _cpAccessToken+              _cpUploadType+              _cpBearerToken+              _cpCallback+              (Just AltJSON)+              _cpPayload+              classroomService+          where go+                  = buildClient (Proxy :: Proxy CoursesPatchResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Students/Create.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Students.Create+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a user as a student of a course. This method returns the following+-- error codes: * \`PERMISSION_DENIED\` if the requesting user is not+-- permitted to create students in this course or for access errors. *+-- \`NOT_FOUND\` if the requested course ID does not exist. *+-- \`FAILED_PRECONDITION\` if the requested user\'s account is disabled,+-- for the following request errors: * CourseMemberLimitReached *+-- CourseNotModifiable * UserGroupsMembershipLimitReached *+-- \`ALREADY_EXISTS\` if the user is already a student or teacher in the+-- course.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.create@.+module Network.Google.Resource.Classroom.Courses.Students.Create+    (+    -- * REST Resource+      CoursesStudentsCreateResource++    -- * Creating a Request+    , coursesStudentsCreate+    , CoursesStudentsCreate++    -- * Request Lenses+    , cscXgafv+    , cscUploadProtocol+    , cscPp+    , cscCourseId+    , cscAccessToken+    , cscUploadType+    , cscPayload+    , cscEnrollmentCode+    , cscBearerToken+    , cscCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.students.create@ method which the+-- 'CoursesStudentsCreate' request conforms to.+type CoursesStudentsCreateResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "students" :>+             QueryParam "$.xgafv" Text :>+               QueryParam "upload_protocol" Text :>+                 QueryParam "pp" Bool :>+                   QueryParam "access_token" Text :>+                     QueryParam "uploadType" Text :>+                       QueryParam "enrollmentCode" Text :>+                         QueryParam "bearer_token" Text :>+                           QueryParam "callback" Text :>+                             QueryParam "alt" AltJSON :>+                               ReqBody '[JSON] Student :> Post '[JSON] Student++-- | Adds a user as a student of a course. This method returns the following+-- error codes: * \`PERMISSION_DENIED\` if the requesting user is not+-- permitted to create students in this course or for access errors. *+-- \`NOT_FOUND\` if the requested course ID does not exist. *+-- \`FAILED_PRECONDITION\` if the requested user\'s account is disabled,+-- for the following request errors: * CourseMemberLimitReached *+-- CourseNotModifiable * UserGroupsMembershipLimitReached *+-- \`ALREADY_EXISTS\` if the user is already a student or teacher in the+-- course.+--+-- /See:/ 'coursesStudentsCreate' smart constructor.+data CoursesStudentsCreate = CoursesStudentsCreate+    { _cscXgafv          :: !(Maybe Text)+    , _cscUploadProtocol :: !(Maybe Text)+    , _cscPp             :: !Bool+    , _cscCourseId       :: !Text+    , _cscAccessToken    :: !(Maybe Text)+    , _cscUploadType     :: !(Maybe Text)+    , _cscPayload        :: !Student+    , _cscEnrollmentCode :: !(Maybe Text)+    , _cscBearerToken    :: !(Maybe Text)+    , _cscCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesStudentsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cscXgafv'+--+-- * 'cscUploadProtocol'+--+-- * 'cscPp'+--+-- * 'cscCourseId'+--+-- * 'cscAccessToken'+--+-- * 'cscUploadType'+--+-- * 'cscPayload'+--+-- * 'cscEnrollmentCode'+--+-- * 'cscBearerToken'+--+-- * 'cscCallback'+coursesStudentsCreate+    :: Text -- ^ 'cscCourseId'+    -> Student -- ^ 'cscPayload'+    -> CoursesStudentsCreate+coursesStudentsCreate pCscCourseId_ pCscPayload_ =+    CoursesStudentsCreate+    { _cscXgafv = Nothing+    , _cscUploadProtocol = Nothing+    , _cscPp = True+    , _cscCourseId = pCscCourseId_+    , _cscAccessToken = Nothing+    , _cscUploadType = Nothing+    , _cscPayload = pCscPayload_+    , _cscEnrollmentCode = Nothing+    , _cscBearerToken = Nothing+    , _cscCallback = Nothing+    }++-- | V1 error format.+cscXgafv :: Lens' CoursesStudentsCreate (Maybe Text)+cscXgafv = lens _cscXgafv (\ s a -> s{_cscXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+cscUploadProtocol :: Lens' CoursesStudentsCreate (Maybe Text)+cscUploadProtocol+  = lens _cscUploadProtocol+      (\ s a -> s{_cscUploadProtocol = a})++-- | Pretty-print response.+cscPp :: Lens' CoursesStudentsCreate Bool+cscPp = lens _cscPp (\ s a -> s{_cscPp = a})++-- | Identifier of the course to create the student in. This identifier can+-- be either the Classroom-assigned identifier or an alias.+cscCourseId :: Lens' CoursesStudentsCreate Text+cscCourseId+  = lens _cscCourseId (\ s a -> s{_cscCourseId = a})++-- | OAuth access token.+cscAccessToken :: Lens' CoursesStudentsCreate (Maybe Text)+cscAccessToken+  = lens _cscAccessToken+      (\ s a -> s{_cscAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+cscUploadType :: Lens' CoursesStudentsCreate (Maybe Text)+cscUploadType+  = lens _cscUploadType+      (\ s a -> s{_cscUploadType = a})++-- | Multipart request metadata.+cscPayload :: Lens' CoursesStudentsCreate Student+cscPayload+  = lens _cscPayload (\ s a -> s{_cscPayload = a})++-- | Enrollment code of the course to create the student in. This code is+-- required if userId corresponds to the requesting user; it may be omitted+-- if the requesting user has administrative permissions to create students+-- for any user.+cscEnrollmentCode :: Lens' CoursesStudentsCreate (Maybe Text)+cscEnrollmentCode+  = lens _cscEnrollmentCode+      (\ s a -> s{_cscEnrollmentCode = a})++-- | OAuth bearer token.+cscBearerToken :: Lens' CoursesStudentsCreate (Maybe Text)+cscBearerToken+  = lens _cscBearerToken+      (\ s a -> s{_cscBearerToken = a})++-- | JSONP+cscCallback :: Lens' CoursesStudentsCreate (Maybe Text)+cscCallback+  = lens _cscCallback (\ s a -> s{_cscCallback = a})++instance GoogleRequest CoursesStudentsCreate where+        type Rs CoursesStudentsCreate = Student+        requestClient CoursesStudentsCreate{..}+          = go _cscCourseId _cscXgafv _cscUploadProtocol+              (Just _cscPp)+              _cscAccessToken+              _cscUploadType+              _cscEnrollmentCode+              _cscBearerToken+              _cscCallback+              (Just AltJSON)+              _cscPayload+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesStudentsCreateResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Students/Delete.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Students.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a student of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to delete students of this course or for access errors. * \`NOT_FOUND\`+-- if no student of this course has the requested ID or if the course does+-- not exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.delete@.+module Network.Google.Resource.Classroom.Courses.Students.Delete+    (+    -- * REST Resource+      CoursesStudentsDeleteResource++    -- * Creating a Request+    , coursesStudentsDelete+    , CoursesStudentsDelete++    -- * Request Lenses+    , csdXgafv+    , csdUploadProtocol+    , csdPp+    , csdCourseId+    , csdAccessToken+    , csdUploadType+    , csdUserId+    , csdBearerToken+    , csdCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.students.delete@ method which the+-- 'CoursesStudentsDelete' request conforms to.+type CoursesStudentsDeleteResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "students" :>+             Capture "userId" Text :>+               QueryParam "$.xgafv" 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 student of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to delete students of this course or for access errors. * \`NOT_FOUND\`+-- if no student of this course has the requested ID or if the course does+-- not exist.+--+-- /See:/ 'coursesStudentsDelete' smart constructor.+data CoursesStudentsDelete = CoursesStudentsDelete+    { _csdXgafv          :: !(Maybe Text)+    , _csdUploadProtocol :: !(Maybe Text)+    , _csdPp             :: !Bool+    , _csdCourseId       :: !Text+    , _csdAccessToken    :: !(Maybe Text)+    , _csdUploadType     :: !(Maybe Text)+    , _csdUserId         :: !Text+    , _csdBearerToken    :: !(Maybe Text)+    , _csdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesStudentsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csdXgafv'+--+-- * 'csdUploadProtocol'+--+-- * 'csdPp'+--+-- * 'csdCourseId'+--+-- * 'csdAccessToken'+--+-- * 'csdUploadType'+--+-- * 'csdUserId'+--+-- * 'csdBearerToken'+--+-- * 'csdCallback'+coursesStudentsDelete+    :: Text -- ^ 'csdCourseId'+    -> Text -- ^ 'csdUserId'+    -> CoursesStudentsDelete+coursesStudentsDelete pCsdCourseId_ pCsdUserId_ =+    CoursesStudentsDelete+    { _csdXgafv = Nothing+    , _csdUploadProtocol = Nothing+    , _csdPp = True+    , _csdCourseId = pCsdCourseId_+    , _csdAccessToken = Nothing+    , _csdUploadType = Nothing+    , _csdUserId = pCsdUserId_+    , _csdBearerToken = Nothing+    , _csdCallback = Nothing+    }++-- | V1 error format.+csdXgafv :: Lens' CoursesStudentsDelete (Maybe Text)+csdXgafv = lens _csdXgafv (\ s a -> s{_csdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+csdUploadProtocol :: Lens' CoursesStudentsDelete (Maybe Text)+csdUploadProtocol+  = lens _csdUploadProtocol+      (\ s a -> s{_csdUploadProtocol = a})++-- | Pretty-print response.+csdPp :: Lens' CoursesStudentsDelete Bool+csdPp = lens _csdPp (\ s a -> s{_csdPp = a})++-- | Identifier of the course. This identifier can be either the+-- Classroom-assigned identifier or an alias.+csdCourseId :: Lens' CoursesStudentsDelete Text+csdCourseId+  = lens _csdCourseId (\ s a -> s{_csdCourseId = a})++-- | OAuth access token.+csdAccessToken :: Lens' CoursesStudentsDelete (Maybe Text)+csdAccessToken+  = lens _csdAccessToken+      (\ s a -> s{_csdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+csdUploadType :: Lens' CoursesStudentsDelete (Maybe Text)+csdUploadType+  = lens _csdUploadType+      (\ s a -> s{_csdUploadType = a})++-- | Identifier of the student to delete. The identifier can be one of the+-- following: * the numeric identifier for the user * the email address of+-- the user * the string literal \`\"me\"\`, indicating the requesting user+csdUserId :: Lens' CoursesStudentsDelete Text+csdUserId+  = lens _csdUserId (\ s a -> s{_csdUserId = a})++-- | OAuth bearer token.+csdBearerToken :: Lens' CoursesStudentsDelete (Maybe Text)+csdBearerToken+  = lens _csdBearerToken+      (\ s a -> s{_csdBearerToken = a})++-- | JSONP+csdCallback :: Lens' CoursesStudentsDelete (Maybe Text)+csdCallback+  = lens _csdCallback (\ s a -> s{_csdCallback = a})++instance GoogleRequest CoursesStudentsDelete where+        type Rs CoursesStudentsDelete = Empty+        requestClient CoursesStudentsDelete{..}+          = go _csdCourseId _csdUserId _csdXgafv+              _csdUploadProtocol+              (Just _csdPp)+              _csdAccessToken+              _csdUploadType+              _csdBearerToken+              _csdCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesStudentsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Students/Get.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Students.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a student of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to view students of this course or for access errors. * \`NOT_FOUND\` if+-- no student of this course has the requested ID or if the course does not+-- exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.get@.+module Network.Google.Resource.Classroom.Courses.Students.Get+    (+    -- * REST Resource+      CoursesStudentsGetResource++    -- * Creating a Request+    , coursesStudentsGet+    , CoursesStudentsGet++    -- * Request Lenses+    , csgXgafv+    , csgUploadProtocol+    , csgPp+    , csgCourseId+    , csgAccessToken+    , csgUploadType+    , csgUserId+    , csgBearerToken+    , csgCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.students.get@ method which the+-- 'CoursesStudentsGet' request conforms to.+type CoursesStudentsGetResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "students" :>+             Capture "userId" Text :>+               QueryParam "$.xgafv" Text :>+                 QueryParam "upload_protocol" Text :>+                   QueryParam "pp" Bool :>+                     QueryParam "access_token" Text :>+                       QueryParam "uploadType" Text :>+                         QueryParam "bearer_token" Text :>+                           QueryParam "callback" Text :>+                             QueryParam "alt" AltJSON :> Get '[JSON] Student++-- | Returns a student of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to view students of this course or for access errors. * \`NOT_FOUND\` if+-- no student of this course has the requested ID or if the course does not+-- exist.+--+-- /See:/ 'coursesStudentsGet' smart constructor.+data CoursesStudentsGet = CoursesStudentsGet+    { _csgXgafv          :: !(Maybe Text)+    , _csgUploadProtocol :: !(Maybe Text)+    , _csgPp             :: !Bool+    , _csgCourseId       :: !Text+    , _csgAccessToken    :: !(Maybe Text)+    , _csgUploadType     :: !(Maybe Text)+    , _csgUserId         :: !Text+    , _csgBearerToken    :: !(Maybe Text)+    , _csgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesStudentsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csgXgafv'+--+-- * 'csgUploadProtocol'+--+-- * 'csgPp'+--+-- * 'csgCourseId'+--+-- * 'csgAccessToken'+--+-- * 'csgUploadType'+--+-- * 'csgUserId'+--+-- * 'csgBearerToken'+--+-- * 'csgCallback'+coursesStudentsGet+    :: Text -- ^ 'csgCourseId'+    -> Text -- ^ 'csgUserId'+    -> CoursesStudentsGet+coursesStudentsGet pCsgCourseId_ pCsgUserId_ =+    CoursesStudentsGet+    { _csgXgafv = Nothing+    , _csgUploadProtocol = Nothing+    , _csgPp = True+    , _csgCourseId = pCsgCourseId_+    , _csgAccessToken = Nothing+    , _csgUploadType = Nothing+    , _csgUserId = pCsgUserId_+    , _csgBearerToken = Nothing+    , _csgCallback = Nothing+    }++-- | V1 error format.+csgXgafv :: Lens' CoursesStudentsGet (Maybe Text)+csgXgafv = lens _csgXgafv (\ s a -> s{_csgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+csgUploadProtocol :: Lens' CoursesStudentsGet (Maybe Text)+csgUploadProtocol+  = lens _csgUploadProtocol+      (\ s a -> s{_csgUploadProtocol = a})++-- | Pretty-print response.+csgPp :: Lens' CoursesStudentsGet Bool+csgPp = lens _csgPp (\ s a -> s{_csgPp = a})++-- | Identifier of the course. This identifier can be either the+-- Classroom-assigned identifier or an alias.+csgCourseId :: Lens' CoursesStudentsGet Text+csgCourseId+  = lens _csgCourseId (\ s a -> s{_csgCourseId = a})++-- | OAuth access token.+csgAccessToken :: Lens' CoursesStudentsGet (Maybe Text)+csgAccessToken+  = lens _csgAccessToken+      (\ s a -> s{_csgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+csgUploadType :: Lens' CoursesStudentsGet (Maybe Text)+csgUploadType+  = lens _csgUploadType+      (\ s a -> s{_csgUploadType = a})++-- | Identifier of the student to return. The identifier can be one of the+-- following: * the numeric identifier for the user * the email address of+-- the user * the string literal \`\"me\"\`, indicating the requesting user+csgUserId :: Lens' CoursesStudentsGet Text+csgUserId+  = lens _csgUserId (\ s a -> s{_csgUserId = a})++-- | OAuth bearer token.+csgBearerToken :: Lens' CoursesStudentsGet (Maybe Text)+csgBearerToken+  = lens _csgBearerToken+      (\ s a -> s{_csgBearerToken = a})++-- | JSONP+csgCallback :: Lens' CoursesStudentsGet (Maybe Text)+csgCallback+  = lens _csgCallback (\ s a -> s{_csgCallback = a})++instance GoogleRequest CoursesStudentsGet where+        type Rs CoursesStudentsGet = Student+        requestClient CoursesStudentsGet{..}+          = go _csgCourseId _csgUserId _csgXgafv+              _csgUploadProtocol+              (Just _csgPp)+              _csgAccessToken+              _csgUploadType+              _csgBearerToken+              _csgCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesStudentsGetResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Students/List.hs view
@@ -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.Courses.Students.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of students of this course that the requester is+-- permitted to view. This method returns the following error codes: *+-- \`NOT_FOUND\` if the course does not exist. * \`PERMISSION_DENIED\` for+-- access errors.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.students.list@.+module Network.Google.Resource.Classroom.Courses.Students.List+    (+    -- * REST Resource+      CoursesStudentsListResource++    -- * Creating a Request+    , coursesStudentsList+    , CoursesStudentsList++    -- * Request Lenses+    , cslXgafv+    , cslUploadProtocol+    , cslPp+    , cslCourseId+    , cslAccessToken+    , cslUploadType+    , cslBearerToken+    , cslPageToken+    , cslPageSize+    , cslCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.students.list@ method which the+-- 'CoursesStudentsList' request conforms to.+type CoursesStudentsListResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "students" :>+             QueryParam "$.xgafv" Text :>+               QueryParam "upload_protocol" Text :>+                 QueryParam "pp" Bool :>+                   QueryParam "access_token" Text :>+                     QueryParam "uploadType" Text :>+                       QueryParam "bearer_token" Text :>+                         QueryParam "pageToken" Text :>+                           QueryParam "pageSize" (Textual Int32) :>+                             QueryParam "callback" Text :>+                               QueryParam "alt" AltJSON :>+                                 Get '[JSON] ListStudentsResponse++-- | Returns a list of students of this course that the requester is+-- permitted to view. This method returns the following error codes: *+-- \`NOT_FOUND\` if the course does not exist. * \`PERMISSION_DENIED\` for+-- access errors.+--+-- /See:/ 'coursesStudentsList' smart constructor.+data CoursesStudentsList = CoursesStudentsList+    { _cslXgafv          :: !(Maybe Text)+    , _cslUploadProtocol :: !(Maybe Text)+    , _cslPp             :: !Bool+    , _cslCourseId       :: !Text+    , _cslAccessToken    :: !(Maybe Text)+    , _cslUploadType     :: !(Maybe Text)+    , _cslBearerToken    :: !(Maybe Text)+    , _cslPageToken      :: !(Maybe Text)+    , _cslPageSize       :: !(Maybe (Textual Int32))+    , _cslCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesStudentsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cslXgafv'+--+-- * 'cslUploadProtocol'+--+-- * 'cslPp'+--+-- * 'cslCourseId'+--+-- * 'cslAccessToken'+--+-- * 'cslUploadType'+--+-- * 'cslBearerToken'+--+-- * 'cslPageToken'+--+-- * 'cslPageSize'+--+-- * 'cslCallback'+coursesStudentsList+    :: Text -- ^ 'cslCourseId'+    -> CoursesStudentsList+coursesStudentsList pCslCourseId_ =+    CoursesStudentsList+    { _cslXgafv = Nothing+    , _cslUploadProtocol = Nothing+    , _cslPp = True+    , _cslCourseId = pCslCourseId_+    , _cslAccessToken = Nothing+    , _cslUploadType = Nothing+    , _cslBearerToken = Nothing+    , _cslPageToken = Nothing+    , _cslPageSize = Nothing+    , _cslCallback = Nothing+    }++-- | V1 error format.+cslXgafv :: Lens' CoursesStudentsList (Maybe Text)+cslXgafv = lens _cslXgafv (\ s a -> s{_cslXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+cslUploadProtocol :: Lens' CoursesStudentsList (Maybe Text)+cslUploadProtocol+  = lens _cslUploadProtocol+      (\ s a -> s{_cslUploadProtocol = a})++-- | Pretty-print response.+cslPp :: Lens' CoursesStudentsList Bool+cslPp = lens _cslPp (\ s a -> s{_cslPp = a})++-- | Identifier of the course. This identifier can be either the+-- Classroom-assigned identifier or an alias.+cslCourseId :: Lens' CoursesStudentsList Text+cslCourseId+  = lens _cslCourseId (\ s a -> s{_cslCourseId = a})++-- | OAuth access token.+cslAccessToken :: Lens' CoursesStudentsList (Maybe Text)+cslAccessToken+  = lens _cslAccessToken+      (\ s a -> s{_cslAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+cslUploadType :: Lens' CoursesStudentsList (Maybe Text)+cslUploadType+  = lens _cslUploadType+      (\ s a -> s{_cslUploadType = a})++-- | OAuth bearer token.+cslBearerToken :: Lens' CoursesStudentsList (Maybe Text)+cslBearerToken+  = lens _cslBearerToken+      (\ s a -> s{_cslBearerToken = a})++-- | nextPageToken value returned from a previous list call, indicating that+-- the subsequent page of results should be returned. The list request must+-- be otherwise identical to the one that resulted in this token.+cslPageToken :: Lens' CoursesStudentsList (Maybe Text)+cslPageToken+  = lens _cslPageToken (\ s a -> s{_cslPageToken = a})++-- | Maximum number of items to return. Zero means no maximum. The server may+-- return fewer than the specified number of results.+cslPageSize :: Lens' CoursesStudentsList (Maybe Int32)+cslPageSize+  = lens _cslPageSize (\ s a -> s{_cslPageSize = a}) .+      mapping _Coerce++-- | JSONP+cslCallback :: Lens' CoursesStudentsList (Maybe Text)+cslCallback+  = lens _cslCallback (\ s a -> s{_cslCallback = a})++instance GoogleRequest CoursesStudentsList where+        type Rs CoursesStudentsList = ListStudentsResponse+        requestClient CoursesStudentsList{..}+          = go _cslCourseId _cslXgafv _cslUploadProtocol+              (Just _cslPp)+              _cslAccessToken+              _cslUploadType+              _cslBearerToken+              _cslPageToken+              _cslPageSize+              _cslCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesStudentsListResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Teachers/Create.hs view
@@ -0,0 +1,199 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Teachers.Create+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a teacher of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to create teachers in this course or for access errors. * \`NOT_FOUND\`+-- if the requested course ID does not exist. * \`FAILED_PRECONDITION\` if+-- the requested user\'s account is disabled, for the following request+-- errors: * CourseMemberLimitReached * CourseNotModifiable *+-- CourseTeacherLimitReached * UserGroupsMembershipLimitReached *+-- \`ALREADY_EXISTS\` if the user is already a teacher or student in the+-- course.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.create@.+module Network.Google.Resource.Classroom.Courses.Teachers.Create+    (+    -- * REST Resource+      CoursesTeachersCreateResource++    -- * Creating a Request+    , coursesTeachersCreate+    , CoursesTeachersCreate++    -- * Request Lenses+    , ctcXgafv+    , ctcUploadProtocol+    , ctcPp+    , ctcCourseId+    , ctcAccessToken+    , ctcUploadType+    , ctcPayload+    , ctcBearerToken+    , ctcCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.teachers.create@ method which the+-- 'CoursesTeachersCreate' request conforms to.+type CoursesTeachersCreateResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "teachers" :>+             QueryParam "$.xgafv" Text :>+               QueryParam "upload_protocol" Text :>+                 QueryParam "pp" Bool :>+                   QueryParam "access_token" Text :>+                     QueryParam "uploadType" Text :>+                       QueryParam "bearer_token" Text :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             ReqBody '[JSON] Teacher :> Post '[JSON] Teacher++-- | Creates a teacher of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to create teachers in this course or for access errors. * \`NOT_FOUND\`+-- if the requested course ID does not exist. * \`FAILED_PRECONDITION\` if+-- the requested user\'s account is disabled, for the following request+-- errors: * CourseMemberLimitReached * CourseNotModifiable *+-- CourseTeacherLimitReached * UserGroupsMembershipLimitReached *+-- \`ALREADY_EXISTS\` if the user is already a teacher or student in the+-- course.+--+-- /See:/ 'coursesTeachersCreate' smart constructor.+data CoursesTeachersCreate = CoursesTeachersCreate+    { _ctcXgafv          :: !(Maybe Text)+    , _ctcUploadProtocol :: !(Maybe Text)+    , _ctcPp             :: !Bool+    , _ctcCourseId       :: !Text+    , _ctcAccessToken    :: !(Maybe Text)+    , _ctcUploadType     :: !(Maybe Text)+    , _ctcPayload        :: !Teacher+    , _ctcBearerToken    :: !(Maybe Text)+    , _ctcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesTeachersCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctcXgafv'+--+-- * 'ctcUploadProtocol'+--+-- * 'ctcPp'+--+-- * 'ctcCourseId'+--+-- * 'ctcAccessToken'+--+-- * 'ctcUploadType'+--+-- * 'ctcPayload'+--+-- * 'ctcBearerToken'+--+-- * 'ctcCallback'+coursesTeachersCreate+    :: Text -- ^ 'ctcCourseId'+    -> Teacher -- ^ 'ctcPayload'+    -> CoursesTeachersCreate+coursesTeachersCreate pCtcCourseId_ pCtcPayload_ =+    CoursesTeachersCreate+    { _ctcXgafv = Nothing+    , _ctcUploadProtocol = Nothing+    , _ctcPp = True+    , _ctcCourseId = pCtcCourseId_+    , _ctcAccessToken = Nothing+    , _ctcUploadType = Nothing+    , _ctcPayload = pCtcPayload_+    , _ctcBearerToken = Nothing+    , _ctcCallback = Nothing+    }++-- | V1 error format.+ctcXgafv :: Lens' CoursesTeachersCreate (Maybe Text)+ctcXgafv = lens _ctcXgafv (\ s a -> s{_ctcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ctcUploadProtocol :: Lens' CoursesTeachersCreate (Maybe Text)+ctcUploadProtocol+  = lens _ctcUploadProtocol+      (\ s a -> s{_ctcUploadProtocol = a})++-- | Pretty-print response.+ctcPp :: Lens' CoursesTeachersCreate Bool+ctcPp = lens _ctcPp (\ s a -> s{_ctcPp = a})++-- | Identifier of the course. This identifier can be either the+-- Classroom-assigned identifier or an alias.+ctcCourseId :: Lens' CoursesTeachersCreate Text+ctcCourseId+  = lens _ctcCourseId (\ s a -> s{_ctcCourseId = a})++-- | OAuth access token.+ctcAccessToken :: Lens' CoursesTeachersCreate (Maybe Text)+ctcAccessToken+  = lens _ctcAccessToken+      (\ s a -> s{_ctcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ctcUploadType :: Lens' CoursesTeachersCreate (Maybe Text)+ctcUploadType+  = lens _ctcUploadType+      (\ s a -> s{_ctcUploadType = a})++-- | Multipart request metadata.+ctcPayload :: Lens' CoursesTeachersCreate Teacher+ctcPayload+  = lens _ctcPayload (\ s a -> s{_ctcPayload = a})++-- | OAuth bearer token.+ctcBearerToken :: Lens' CoursesTeachersCreate (Maybe Text)+ctcBearerToken+  = lens _ctcBearerToken+      (\ s a -> s{_ctcBearerToken = a})++-- | JSONP+ctcCallback :: Lens' CoursesTeachersCreate (Maybe Text)+ctcCallback+  = lens _ctcCallback (\ s a -> s{_ctcCallback = a})++instance GoogleRequest CoursesTeachersCreate where+        type Rs CoursesTeachersCreate = Teacher+        requestClient CoursesTeachersCreate{..}+          = go _ctcCourseId _ctcXgafv _ctcUploadProtocol+              (Just _ctcPp)+              _ctcAccessToken+              _ctcUploadType+              _ctcBearerToken+              _ctcCallback+              (Just AltJSON)+              _ctcPayload+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesTeachersCreateResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Teachers/Delete.hs view
@@ -0,0 +1,195 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Teachers.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a teacher of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to delete teachers of this course or for access errors. * \`NOT_FOUND\`+-- if no teacher of this course has the requested ID or if the course does+-- not exist. * \`FAILED_PRECONDITION\` if the requested ID belongs to the+-- primary teacher of this course.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.delete@.+module Network.Google.Resource.Classroom.Courses.Teachers.Delete+    (+    -- * REST Resource+      CoursesTeachersDeleteResource++    -- * Creating a Request+    , coursesTeachersDelete+    , CoursesTeachersDelete++    -- * Request Lenses+    , ctdXgafv+    , ctdUploadProtocol+    , ctdPp+    , ctdCourseId+    , ctdAccessToken+    , ctdUploadType+    , ctdUserId+    , ctdBearerToken+    , ctdCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.teachers.delete@ method which the+-- 'CoursesTeachersDelete' request conforms to.+type CoursesTeachersDeleteResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "teachers" :>+             Capture "userId" Text :>+               QueryParam "$.xgafv" 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 teacher of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to delete teachers of this course or for access errors. * \`NOT_FOUND\`+-- if no teacher of this course has the requested ID or if the course does+-- not exist. * \`FAILED_PRECONDITION\` if the requested ID belongs to the+-- primary teacher of this course.+--+-- /See:/ 'coursesTeachersDelete' smart constructor.+data CoursesTeachersDelete = CoursesTeachersDelete+    { _ctdXgafv          :: !(Maybe Text)+    , _ctdUploadProtocol :: !(Maybe Text)+    , _ctdPp             :: !Bool+    , _ctdCourseId       :: !Text+    , _ctdAccessToken    :: !(Maybe Text)+    , _ctdUploadType     :: !(Maybe Text)+    , _ctdUserId         :: !Text+    , _ctdBearerToken    :: !(Maybe Text)+    , _ctdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesTeachersDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctdXgafv'+--+-- * 'ctdUploadProtocol'+--+-- * 'ctdPp'+--+-- * 'ctdCourseId'+--+-- * 'ctdAccessToken'+--+-- * 'ctdUploadType'+--+-- * 'ctdUserId'+--+-- * 'ctdBearerToken'+--+-- * 'ctdCallback'+coursesTeachersDelete+    :: Text -- ^ 'ctdCourseId'+    -> Text -- ^ 'ctdUserId'+    -> CoursesTeachersDelete+coursesTeachersDelete pCtdCourseId_ pCtdUserId_ =+    CoursesTeachersDelete+    { _ctdXgafv = Nothing+    , _ctdUploadProtocol = Nothing+    , _ctdPp = True+    , _ctdCourseId = pCtdCourseId_+    , _ctdAccessToken = Nothing+    , _ctdUploadType = Nothing+    , _ctdUserId = pCtdUserId_+    , _ctdBearerToken = Nothing+    , _ctdCallback = Nothing+    }++-- | V1 error format.+ctdXgafv :: Lens' CoursesTeachersDelete (Maybe Text)+ctdXgafv = lens _ctdXgafv (\ s a -> s{_ctdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ctdUploadProtocol :: Lens' CoursesTeachersDelete (Maybe Text)+ctdUploadProtocol+  = lens _ctdUploadProtocol+      (\ s a -> s{_ctdUploadProtocol = a})++-- | Pretty-print response.+ctdPp :: Lens' CoursesTeachersDelete Bool+ctdPp = lens _ctdPp (\ s a -> s{_ctdPp = a})++-- | Identifier of the course. This identifier can be either the+-- Classroom-assigned identifier or an alias.+ctdCourseId :: Lens' CoursesTeachersDelete Text+ctdCourseId+  = lens _ctdCourseId (\ s a -> s{_ctdCourseId = a})++-- | OAuth access token.+ctdAccessToken :: Lens' CoursesTeachersDelete (Maybe Text)+ctdAccessToken+  = lens _ctdAccessToken+      (\ s a -> s{_ctdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ctdUploadType :: Lens' CoursesTeachersDelete (Maybe Text)+ctdUploadType+  = lens _ctdUploadType+      (\ s a -> s{_ctdUploadType = a})++-- | Identifier of the teacher to delete. The identifier can be one of the+-- following: * the numeric identifier for the user * the email address of+-- the user * the string literal \`\"me\"\`, indicating the requesting user+ctdUserId :: Lens' CoursesTeachersDelete Text+ctdUserId+  = lens _ctdUserId (\ s a -> s{_ctdUserId = a})++-- | OAuth bearer token.+ctdBearerToken :: Lens' CoursesTeachersDelete (Maybe Text)+ctdBearerToken+  = lens _ctdBearerToken+      (\ s a -> s{_ctdBearerToken = a})++-- | JSONP+ctdCallback :: Lens' CoursesTeachersDelete (Maybe Text)+ctdCallback+  = lens _ctdCallback (\ s a -> s{_ctdCallback = a})++instance GoogleRequest CoursesTeachersDelete where+        type Rs CoursesTeachersDelete = Empty+        requestClient CoursesTeachersDelete{..}+          = go _ctdCourseId _ctdUserId _ctdXgafv+              _ctdUploadProtocol+              (Just _ctdPp)+              _ctdAccessToken+              _ctdUploadType+              _ctdBearerToken+              _ctdCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesTeachersDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Teachers/Get.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Teachers.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a teacher of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to view teachers of this course or for access errors. * \`NOT_FOUND\` if+-- no teacher of this course has the requested ID or if the course does not+-- exist.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.get@.+module Network.Google.Resource.Classroom.Courses.Teachers.Get+    (+    -- * REST Resource+      CoursesTeachersGetResource++    -- * Creating a Request+    , coursesTeachersGet+    , CoursesTeachersGet++    -- * Request Lenses+    , ctgXgafv+    , ctgUploadProtocol+    , ctgPp+    , ctgCourseId+    , ctgAccessToken+    , ctgUploadType+    , ctgUserId+    , ctgBearerToken+    , ctgCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.teachers.get@ method which the+-- 'CoursesTeachersGet' request conforms to.+type CoursesTeachersGetResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "teachers" :>+             Capture "userId" Text :>+               QueryParam "$.xgafv" Text :>+                 QueryParam "upload_protocol" Text :>+                   QueryParam "pp" Bool :>+                     QueryParam "access_token" Text :>+                       QueryParam "uploadType" Text :>+                         QueryParam "bearer_token" Text :>+                           QueryParam "callback" Text :>+                             QueryParam "alt" AltJSON :> Get '[JSON] Teacher++-- | Returns a teacher of a course. This method returns the following error+-- codes: * \`PERMISSION_DENIED\` if the requesting user is not permitted+-- to view teachers of this course or for access errors. * \`NOT_FOUND\` if+-- no teacher of this course has the requested ID or if the course does not+-- exist.+--+-- /See:/ 'coursesTeachersGet' smart constructor.+data CoursesTeachersGet = CoursesTeachersGet+    { _ctgXgafv          :: !(Maybe Text)+    , _ctgUploadProtocol :: !(Maybe Text)+    , _ctgPp             :: !Bool+    , _ctgCourseId       :: !Text+    , _ctgAccessToken    :: !(Maybe Text)+    , _ctgUploadType     :: !(Maybe Text)+    , _ctgUserId         :: !Text+    , _ctgBearerToken    :: !(Maybe Text)+    , _ctgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesTeachersGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctgXgafv'+--+-- * 'ctgUploadProtocol'+--+-- * 'ctgPp'+--+-- * 'ctgCourseId'+--+-- * 'ctgAccessToken'+--+-- * 'ctgUploadType'+--+-- * 'ctgUserId'+--+-- * 'ctgBearerToken'+--+-- * 'ctgCallback'+coursesTeachersGet+    :: Text -- ^ 'ctgCourseId'+    -> Text -- ^ 'ctgUserId'+    -> CoursesTeachersGet+coursesTeachersGet pCtgCourseId_ pCtgUserId_ =+    CoursesTeachersGet+    { _ctgXgafv = Nothing+    , _ctgUploadProtocol = Nothing+    , _ctgPp = True+    , _ctgCourseId = pCtgCourseId_+    , _ctgAccessToken = Nothing+    , _ctgUploadType = Nothing+    , _ctgUserId = pCtgUserId_+    , _ctgBearerToken = Nothing+    , _ctgCallback = Nothing+    }++-- | V1 error format.+ctgXgafv :: Lens' CoursesTeachersGet (Maybe Text)+ctgXgafv = lens _ctgXgafv (\ s a -> s{_ctgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ctgUploadProtocol :: Lens' CoursesTeachersGet (Maybe Text)+ctgUploadProtocol+  = lens _ctgUploadProtocol+      (\ s a -> s{_ctgUploadProtocol = a})++-- | Pretty-print response.+ctgPp :: Lens' CoursesTeachersGet Bool+ctgPp = lens _ctgPp (\ s a -> s{_ctgPp = a})++-- | Identifier of the course. This identifier can be either the+-- Classroom-assigned identifier or an alias.+ctgCourseId :: Lens' CoursesTeachersGet Text+ctgCourseId+  = lens _ctgCourseId (\ s a -> s{_ctgCourseId = a})++-- | OAuth access token.+ctgAccessToken :: Lens' CoursesTeachersGet (Maybe Text)+ctgAccessToken+  = lens _ctgAccessToken+      (\ s a -> s{_ctgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ctgUploadType :: Lens' CoursesTeachersGet (Maybe Text)+ctgUploadType+  = lens _ctgUploadType+      (\ s a -> s{_ctgUploadType = a})++-- | Identifier of the teacher to return. The identifier can be one of the+-- following: * the numeric identifier for the user * the email address of+-- the user * the string literal \`\"me\"\`, indicating the requesting user+ctgUserId :: Lens' CoursesTeachersGet Text+ctgUserId+  = lens _ctgUserId (\ s a -> s{_ctgUserId = a})++-- | OAuth bearer token.+ctgBearerToken :: Lens' CoursesTeachersGet (Maybe Text)+ctgBearerToken+  = lens _ctgBearerToken+      (\ s a -> s{_ctgBearerToken = a})++-- | JSONP+ctgCallback :: Lens' CoursesTeachersGet (Maybe Text)+ctgCallback+  = lens _ctgCallback (\ s a -> s{_ctgCallback = a})++instance GoogleRequest CoursesTeachersGet where+        type Rs CoursesTeachersGet = Teacher+        requestClient CoursesTeachersGet{..}+          = go _ctgCourseId _ctgUserId _ctgXgafv+              _ctgUploadProtocol+              (Just _ctgPp)+              _ctgAccessToken+              _ctgUploadType+              _ctgBearerToken+              _ctgCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesTeachersGetResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Teachers/List.hs view
@@ -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.Courses.Teachers.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of teachers of this course that the requester is+-- permitted to view. This method returns the following error codes: *+-- \`NOT_FOUND\` if the course does not exist. * \`PERMISSION_DENIED\` for+-- access errors.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.teachers.list@.+module Network.Google.Resource.Classroom.Courses.Teachers.List+    (+    -- * REST Resource+      CoursesTeachersListResource++    -- * Creating a Request+    , coursesTeachersList+    , CoursesTeachersList++    -- * Request Lenses+    , ctlXgafv+    , ctlUploadProtocol+    , ctlPp+    , ctlCourseId+    , ctlAccessToken+    , ctlUploadType+    , ctlBearerToken+    , ctlPageToken+    , ctlPageSize+    , ctlCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.teachers.list@ method which the+-- 'CoursesTeachersList' request conforms to.+type CoursesTeachersListResource =+     "v1" :>+       "courses" :>+         Capture "courseId" Text :>+           "teachers" :>+             QueryParam "$.xgafv" Text :>+               QueryParam "upload_protocol" Text :>+                 QueryParam "pp" Bool :>+                   QueryParam "access_token" Text :>+                     QueryParam "uploadType" Text :>+                       QueryParam "bearer_token" Text :>+                         QueryParam "pageToken" Text :>+                           QueryParam "pageSize" (Textual Int32) :>+                             QueryParam "callback" Text :>+                               QueryParam "alt" AltJSON :>+                                 Get '[JSON] ListTeachersResponse++-- | Returns a list of teachers of this course that the requester is+-- permitted to view. This method returns the following error codes: *+-- \`NOT_FOUND\` if the course does not exist. * \`PERMISSION_DENIED\` for+-- access errors.+--+-- /See:/ 'coursesTeachersList' smart constructor.+data CoursesTeachersList = CoursesTeachersList+    { _ctlXgafv          :: !(Maybe Text)+    , _ctlUploadProtocol :: !(Maybe Text)+    , _ctlPp             :: !Bool+    , _ctlCourseId       :: !Text+    , _ctlAccessToken    :: !(Maybe Text)+    , _ctlUploadType     :: !(Maybe Text)+    , _ctlBearerToken    :: !(Maybe Text)+    , _ctlPageToken      :: !(Maybe Text)+    , _ctlPageSize       :: !(Maybe (Textual Int32))+    , _ctlCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesTeachersList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctlXgafv'+--+-- * 'ctlUploadProtocol'+--+-- * 'ctlPp'+--+-- * 'ctlCourseId'+--+-- * 'ctlAccessToken'+--+-- * 'ctlUploadType'+--+-- * 'ctlBearerToken'+--+-- * 'ctlPageToken'+--+-- * 'ctlPageSize'+--+-- * 'ctlCallback'+coursesTeachersList+    :: Text -- ^ 'ctlCourseId'+    -> CoursesTeachersList+coursesTeachersList pCtlCourseId_ =+    CoursesTeachersList+    { _ctlXgafv = Nothing+    , _ctlUploadProtocol = Nothing+    , _ctlPp = True+    , _ctlCourseId = pCtlCourseId_+    , _ctlAccessToken = Nothing+    , _ctlUploadType = Nothing+    , _ctlBearerToken = Nothing+    , _ctlPageToken = Nothing+    , _ctlPageSize = Nothing+    , _ctlCallback = Nothing+    }++-- | V1 error format.+ctlXgafv :: Lens' CoursesTeachersList (Maybe Text)+ctlXgafv = lens _ctlXgafv (\ s a -> s{_ctlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ctlUploadProtocol :: Lens' CoursesTeachersList (Maybe Text)+ctlUploadProtocol+  = lens _ctlUploadProtocol+      (\ s a -> s{_ctlUploadProtocol = a})++-- | Pretty-print response.+ctlPp :: Lens' CoursesTeachersList Bool+ctlPp = lens _ctlPp (\ s a -> s{_ctlPp = a})++-- | Identifier of the course. This identifier can be either the+-- Classroom-assigned identifier or an alias.+ctlCourseId :: Lens' CoursesTeachersList Text+ctlCourseId+  = lens _ctlCourseId (\ s a -> s{_ctlCourseId = a})++-- | OAuth access token.+ctlAccessToken :: Lens' CoursesTeachersList (Maybe Text)+ctlAccessToken+  = lens _ctlAccessToken+      (\ s a -> s{_ctlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ctlUploadType :: Lens' CoursesTeachersList (Maybe Text)+ctlUploadType+  = lens _ctlUploadType+      (\ s a -> s{_ctlUploadType = a})++-- | OAuth bearer token.+ctlBearerToken :: Lens' CoursesTeachersList (Maybe Text)+ctlBearerToken+  = lens _ctlBearerToken+      (\ s a -> s{_ctlBearerToken = a})++-- | nextPageToken value returned from a previous list call, indicating that+-- the subsequent page of results should be returned. The list request must+-- be otherwise identical to the one that resulted in this token.+ctlPageToken :: Lens' CoursesTeachersList (Maybe Text)+ctlPageToken+  = lens _ctlPageToken (\ s a -> s{_ctlPageToken = a})++-- | Maximum number of items to return. Zero means no maximum. The server may+-- return fewer than the specified number of results.+ctlPageSize :: Lens' CoursesTeachersList (Maybe Int32)+ctlPageSize+  = lens _ctlPageSize (\ s a -> s{_ctlPageSize = a}) .+      mapping _Coerce++-- | JSONP+ctlCallback :: Lens' CoursesTeachersList (Maybe Text)+ctlCallback+  = lens _ctlCallback (\ s a -> s{_ctlCallback = a})++instance GoogleRequest CoursesTeachersList where+        type Rs CoursesTeachersList = ListTeachersResponse+        requestClient CoursesTeachersList{..}+          = go _ctlCourseId _ctlXgafv _ctlUploadProtocol+              (Just _ctlPp)+              _ctlAccessToken+              _ctlUploadType+              _ctlBearerToken+              _ctlPageToken+              _ctlPageSize+              _ctlCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy CoursesTeachersListResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Courses/Update.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Courses.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a course. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to modify+-- the requested course or for access errors. * \`NOT_FOUND\` if no course+-- exists with the requested ID. * \`FAILED_PRECONDITION\` for the+-- following request errors: * CourseNotModifiable+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.courses.update@.+module Network.Google.Resource.Classroom.Courses.Update+    (+    -- * REST Resource+      CoursesUpdateResource++    -- * Creating a Request+    , coursesUpdate+    , CoursesUpdate++    -- * Request Lenses+    , cuXgafv+    , cuUploadProtocol+    , cuPp+    , cuAccessToken+    , cuUploadType+    , cuPayload+    , cuBearerToken+    , cuId+    , cuCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.courses.update@ method which the+-- 'CoursesUpdate' request conforms to.+type CoursesUpdateResource =+     "v1" :>+       "courses" :>+         Capture "id" Text :>+           QueryParam "$.xgafv" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "pp" Bool :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParam "bearer_token" Text :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           ReqBody '[JSON] Course :> Put '[JSON] Course++-- | Updates a course. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to modify+-- the requested course or for access errors. * \`NOT_FOUND\` if no course+-- exists with the requested ID. * \`FAILED_PRECONDITION\` for the+-- following request errors: * CourseNotModifiable+--+-- /See:/ 'coursesUpdate' smart constructor.+data CoursesUpdate = CoursesUpdate+    { _cuXgafv          :: !(Maybe Text)+    , _cuUploadProtocol :: !(Maybe Text)+    , _cuPp             :: !Bool+    , _cuAccessToken    :: !(Maybe Text)+    , _cuUploadType     :: !(Maybe Text)+    , _cuPayload        :: !Course+    , _cuBearerToken    :: !(Maybe Text)+    , _cuId             :: !Text+    , _cuCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CoursesUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cuXgafv'+--+-- * 'cuUploadProtocol'+--+-- * 'cuPp'+--+-- * 'cuAccessToken'+--+-- * 'cuUploadType'+--+-- * 'cuPayload'+--+-- * 'cuBearerToken'+--+-- * 'cuId'+--+-- * 'cuCallback'+coursesUpdate+    :: Course -- ^ 'cuPayload'+    -> Text -- ^ 'cuId'+    -> CoursesUpdate+coursesUpdate pCuPayload_ pCuId_ =+    CoursesUpdate+    { _cuXgafv = Nothing+    , _cuUploadProtocol = Nothing+    , _cuPp = True+    , _cuAccessToken = Nothing+    , _cuUploadType = Nothing+    , _cuPayload = pCuPayload_+    , _cuBearerToken = Nothing+    , _cuId = pCuId_+    , _cuCallback = Nothing+    }++-- | V1 error format.+cuXgafv :: Lens' CoursesUpdate (Maybe Text)+cuXgafv = lens _cuXgafv (\ s a -> s{_cuXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+cuUploadProtocol :: Lens' CoursesUpdate (Maybe Text)+cuUploadProtocol+  = lens _cuUploadProtocol+      (\ s a -> s{_cuUploadProtocol = a})++-- | Pretty-print response.+cuPp :: Lens' CoursesUpdate Bool+cuPp = lens _cuPp (\ s a -> s{_cuPp = a})++-- | OAuth access token.+cuAccessToken :: Lens' CoursesUpdate (Maybe Text)+cuAccessToken+  = lens _cuAccessToken+      (\ s a -> s{_cuAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+cuUploadType :: Lens' CoursesUpdate (Maybe Text)+cuUploadType+  = lens _cuUploadType (\ s a -> s{_cuUploadType = a})++-- | Multipart request metadata.+cuPayload :: Lens' CoursesUpdate Course+cuPayload+  = lens _cuPayload (\ s a -> s{_cuPayload = a})++-- | OAuth bearer token.+cuBearerToken :: Lens' CoursesUpdate (Maybe Text)+cuBearerToken+  = lens _cuBearerToken+      (\ s a -> s{_cuBearerToken = a})++-- | Identifier of the course to update. This identifier can be either the+-- Classroom-assigned identifier or an alias.+cuId :: Lens' CoursesUpdate Text+cuId = lens _cuId (\ s a -> s{_cuId = a})++-- | JSONP+cuCallback :: Lens' CoursesUpdate (Maybe Text)+cuCallback+  = lens _cuCallback (\ s a -> s{_cuCallback = a})++instance GoogleRequest CoursesUpdate where+        type Rs CoursesUpdate = Course+        requestClient CoursesUpdate{..}+          = go _cuId _cuXgafv _cuUploadProtocol (Just _cuPp)+              _cuAccessToken+              _cuUploadType+              _cuBearerToken+              _cuCallback+              (Just AltJSON)+              _cuPayload+              classroomService+          where go+                  = buildClient (Proxy :: Proxy CoursesUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Invitations/Accept.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Invitations.Accept+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Accepts an invitation, removing it and adding the invited user to the+-- teachers or students (as appropriate) of the specified course. Only the+-- invited user may accept an invitation. This method returns the following+-- error codes: * \`PERMISSION_DENIED\` if the requesting user is not+-- permitted to accept the requested invitation or for access errors. *+-- \`FAILED_PRECONDITION\` for the following request errors: *+-- CourseMemberLimitReached * CourseNotModifiable *+-- CourseTeacherLimitReached * UserGroupsMembershipLimitReached *+-- \`NOT_FOUND\` if no invitation exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.accept@.+module Network.Google.Resource.Classroom.Invitations.Accept+    (+    -- * REST Resource+      InvitationsAcceptResource++    -- * Creating a Request+    , invitationsAccept+    , InvitationsAccept++    -- * Request Lenses+    , iaXgafv+    , iaUploadProtocol+    , iaPp+    , iaAccessToken+    , iaUploadType+    , iaBearerToken+    , iaId+    , iaCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.invitations.accept@ method which the+-- 'InvitationsAccept' request conforms to.+type InvitationsAcceptResource =+     "v1" :>+       "invitations" :>+         CaptureMode "id" "accept" Text :>+           QueryParam "$.xgafv" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "pp" Bool :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParam "bearer_token" Text :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :> Post '[JSON] Empty++-- | Accepts an invitation, removing it and adding the invited user to the+-- teachers or students (as appropriate) of the specified course. Only the+-- invited user may accept an invitation. This method returns the following+-- error codes: * \`PERMISSION_DENIED\` if the requesting user is not+-- permitted to accept the requested invitation or for access errors. *+-- \`FAILED_PRECONDITION\` for the following request errors: *+-- CourseMemberLimitReached * CourseNotModifiable *+-- CourseTeacherLimitReached * UserGroupsMembershipLimitReached *+-- \`NOT_FOUND\` if no invitation exists with the requested ID.+--+-- /See:/ 'invitationsAccept' smart constructor.+data InvitationsAccept = InvitationsAccept+    { _iaXgafv          :: !(Maybe Text)+    , _iaUploadProtocol :: !(Maybe Text)+    , _iaPp             :: !Bool+    , _iaAccessToken    :: !(Maybe Text)+    , _iaUploadType     :: !(Maybe Text)+    , _iaBearerToken    :: !(Maybe Text)+    , _iaId             :: !Text+    , _iaCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InvitationsAccept' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iaXgafv'+--+-- * 'iaUploadProtocol'+--+-- * 'iaPp'+--+-- * 'iaAccessToken'+--+-- * 'iaUploadType'+--+-- * 'iaBearerToken'+--+-- * 'iaId'+--+-- * 'iaCallback'+invitationsAccept+    :: Text -- ^ 'iaId'+    -> InvitationsAccept+invitationsAccept pIaId_ =+    InvitationsAccept+    { _iaXgafv = Nothing+    , _iaUploadProtocol = Nothing+    , _iaPp = True+    , _iaAccessToken = Nothing+    , _iaUploadType = Nothing+    , _iaBearerToken = Nothing+    , _iaId = pIaId_+    , _iaCallback = Nothing+    }++-- | V1 error format.+iaXgafv :: Lens' InvitationsAccept (Maybe Text)+iaXgafv = lens _iaXgafv (\ s a -> s{_iaXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+iaUploadProtocol :: Lens' InvitationsAccept (Maybe Text)+iaUploadProtocol+  = lens _iaUploadProtocol+      (\ s a -> s{_iaUploadProtocol = a})++-- | Pretty-print response.+iaPp :: Lens' InvitationsAccept Bool+iaPp = lens _iaPp (\ s a -> s{_iaPp = a})++-- | OAuth access token.+iaAccessToken :: Lens' InvitationsAccept (Maybe Text)+iaAccessToken+  = lens _iaAccessToken+      (\ s a -> s{_iaAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+iaUploadType :: Lens' InvitationsAccept (Maybe Text)+iaUploadType+  = lens _iaUploadType (\ s a -> s{_iaUploadType = a})++-- | OAuth bearer token.+iaBearerToken :: Lens' InvitationsAccept (Maybe Text)+iaBearerToken+  = lens _iaBearerToken+      (\ s a -> s{_iaBearerToken = a})++-- | Identifier of the invitation to accept.+iaId :: Lens' InvitationsAccept Text+iaId = lens _iaId (\ s a -> s{_iaId = a})++-- | JSONP+iaCallback :: Lens' InvitationsAccept (Maybe Text)+iaCallback+  = lens _iaCallback (\ s a -> s{_iaCallback = a})++instance GoogleRequest InvitationsAccept where+        type Rs InvitationsAccept = Empty+        requestClient InvitationsAccept{..}+          = go _iaId _iaXgafv _iaUploadProtocol (Just _iaPp)+              _iaAccessToken+              _iaUploadType+              _iaBearerToken+              _iaCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy InvitationsAcceptResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Invitations/Create.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Invitations.Create+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an invitation. Only one invitation for a user and course may+-- exist at a time. Delete and re-create an invitation to make changes.+-- This method returns the following error codes: * \`PERMISSION_DENIED\`+-- if the requesting user is not permitted to create invitations for this+-- course or for access errors. * \`NOT_FOUND\` if the course or the user+-- does not exist. * \`FAILED_PRECONDITION\` if the requested user\'s+-- account is disabled or if the user already has this role or a role with+-- greater permissions. * \`ALREADY_EXISTS\` if an invitation for the+-- specified user and course already exists.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.create@.+module Network.Google.Resource.Classroom.Invitations.Create+    (+    -- * REST Resource+      InvitationsCreateResource++    -- * Creating a Request+    , invitationsCreate+    , InvitationsCreate++    -- * Request Lenses+    , icXgafv+    , icUploadProtocol+    , icPp+    , icAccessToken+    , icUploadType+    , icPayload+    , icBearerToken+    , icCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.invitations.create@ method which the+-- 'InvitationsCreate' request conforms to.+type InvitationsCreateResource =+     "v1" :>+       "invitations" :>+         QueryParam "$.xgafv" Text :>+           QueryParam "upload_protocol" Text :>+             QueryParam "pp" Bool :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "bearer_token" Text :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Invitation :> Post '[JSON] Invitation++-- | Creates an invitation. Only one invitation for a user and course may+-- exist at a time. Delete and re-create an invitation to make changes.+-- This method returns the following error codes: * \`PERMISSION_DENIED\`+-- if the requesting user is not permitted to create invitations for this+-- course or for access errors. * \`NOT_FOUND\` if the course or the user+-- does not exist. * \`FAILED_PRECONDITION\` if the requested user\'s+-- account is disabled or if the user already has this role or a role with+-- greater permissions. * \`ALREADY_EXISTS\` if an invitation for the+-- specified user and course already exists.+--+-- /See:/ 'invitationsCreate' smart constructor.+data InvitationsCreate = InvitationsCreate+    { _icXgafv          :: !(Maybe Text)+    , _icUploadProtocol :: !(Maybe Text)+    , _icPp             :: !Bool+    , _icAccessToken    :: !(Maybe Text)+    , _icUploadType     :: !(Maybe Text)+    , _icPayload        :: !Invitation+    , _icBearerToken    :: !(Maybe Text)+    , _icCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InvitationsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'icXgafv'+--+-- * 'icUploadProtocol'+--+-- * 'icPp'+--+-- * 'icAccessToken'+--+-- * 'icUploadType'+--+-- * 'icPayload'+--+-- * 'icBearerToken'+--+-- * 'icCallback'+invitationsCreate+    :: Invitation -- ^ 'icPayload'+    -> InvitationsCreate+invitationsCreate pIcPayload_ =+    InvitationsCreate+    { _icXgafv = Nothing+    , _icUploadProtocol = Nothing+    , _icPp = True+    , _icAccessToken = Nothing+    , _icUploadType = Nothing+    , _icPayload = pIcPayload_+    , _icBearerToken = Nothing+    , _icCallback = Nothing+    }++-- | V1 error format.+icXgafv :: Lens' InvitationsCreate (Maybe Text)+icXgafv = lens _icXgafv (\ s a -> s{_icXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+icUploadProtocol :: Lens' InvitationsCreate (Maybe Text)+icUploadProtocol+  = lens _icUploadProtocol+      (\ s a -> s{_icUploadProtocol = a})++-- | Pretty-print response.+icPp :: Lens' InvitationsCreate Bool+icPp = lens _icPp (\ s a -> s{_icPp = a})++-- | OAuth access token.+icAccessToken :: Lens' InvitationsCreate (Maybe Text)+icAccessToken+  = lens _icAccessToken+      (\ s a -> s{_icAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+icUploadType :: Lens' InvitationsCreate (Maybe Text)+icUploadType+  = lens _icUploadType (\ s a -> s{_icUploadType = a})++-- | Multipart request metadata.+icPayload :: Lens' InvitationsCreate Invitation+icPayload+  = lens _icPayload (\ s a -> s{_icPayload = a})++-- | OAuth bearer token.+icBearerToken :: Lens' InvitationsCreate (Maybe Text)+icBearerToken+  = lens _icBearerToken+      (\ s a -> s{_icBearerToken = a})++-- | JSONP+icCallback :: Lens' InvitationsCreate (Maybe Text)+icCallback+  = lens _icCallback (\ s a -> s{_icCallback = a})++instance GoogleRequest InvitationsCreate where+        type Rs InvitationsCreate = Invitation+        requestClient InvitationsCreate{..}+          = go _icXgafv _icUploadProtocol (Just _icPp)+              _icAccessToken+              _icUploadType+              _icBearerToken+              _icCallback+              (Just AltJSON)+              _icPayload+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy InvitationsCreateResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Invitations/Delete.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Invitations.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an invitation. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to delete+-- the requested invitation or for access errors. * \`NOT_FOUND\` if no+-- invitation exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.delete@.+module Network.Google.Resource.Classroom.Invitations.Delete+    (+    -- * REST Resource+      InvitationsDeleteResource++    -- * Creating a Request+    , invitationsDelete+    , InvitationsDelete++    -- * Request Lenses+    , idXgafv+    , idUploadProtocol+    , idPp+    , idAccessToken+    , idUploadType+    , idBearerToken+    , idId+    , idCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.invitations.delete@ method which the+-- 'InvitationsDelete' request conforms to.+type InvitationsDeleteResource =+     "v1" :>+       "invitations" :>+         Capture "id" Text :>+           QueryParam "$.xgafv" 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 an invitation. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to delete+-- the requested invitation or for access errors. * \`NOT_FOUND\` if no+-- invitation exists with the requested ID.+--+-- /See:/ 'invitationsDelete' smart constructor.+data InvitationsDelete = InvitationsDelete+    { _idXgafv          :: !(Maybe Text)+    , _idUploadProtocol :: !(Maybe Text)+    , _idPp             :: !Bool+    , _idAccessToken    :: !(Maybe Text)+    , _idUploadType     :: !(Maybe Text)+    , _idBearerToken    :: !(Maybe Text)+    , _idId             :: !Text+    , _idCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InvitationsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'idXgafv'+--+-- * 'idUploadProtocol'+--+-- * 'idPp'+--+-- * 'idAccessToken'+--+-- * 'idUploadType'+--+-- * 'idBearerToken'+--+-- * 'idId'+--+-- * 'idCallback'+invitationsDelete+    :: Text -- ^ 'idId'+    -> InvitationsDelete+invitationsDelete pIdId_ =+    InvitationsDelete+    { _idXgafv = Nothing+    , _idUploadProtocol = Nothing+    , _idPp = True+    , _idAccessToken = Nothing+    , _idUploadType = Nothing+    , _idBearerToken = Nothing+    , _idId = pIdId_+    , _idCallback = Nothing+    }++-- | V1 error format.+idXgafv :: Lens' InvitationsDelete (Maybe Text)+idXgafv = lens _idXgafv (\ s a -> s{_idXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+idUploadProtocol :: Lens' InvitationsDelete (Maybe Text)+idUploadProtocol+  = lens _idUploadProtocol+      (\ s a -> s{_idUploadProtocol = a})++-- | Pretty-print response.+idPp :: Lens' InvitationsDelete Bool+idPp = lens _idPp (\ s a -> s{_idPp = a})++-- | OAuth access token.+idAccessToken :: Lens' InvitationsDelete (Maybe Text)+idAccessToken+  = lens _idAccessToken+      (\ s a -> s{_idAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+idUploadType :: Lens' InvitationsDelete (Maybe Text)+idUploadType+  = lens _idUploadType (\ s a -> s{_idUploadType = a})++-- | OAuth bearer token.+idBearerToken :: Lens' InvitationsDelete (Maybe Text)+idBearerToken+  = lens _idBearerToken+      (\ s a -> s{_idBearerToken = a})++-- | Identifier of the invitation to delete.+idId :: Lens' InvitationsDelete Text+idId = lens _idId (\ s a -> s{_idId = a})++-- | JSONP+idCallback :: Lens' InvitationsDelete (Maybe Text)+idCallback+  = lens _idCallback (\ s a -> s{_idCallback = a})++instance GoogleRequest InvitationsDelete where+        type Rs InvitationsDelete = Empty+        requestClient InvitationsDelete{..}+          = go _idId _idXgafv _idUploadProtocol (Just _idPp)+              _idAccessToken+              _idUploadType+              _idBearerToken+              _idCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy InvitationsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Invitations/Get.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Invitations.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an invitation. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to view+-- the requested invitation or for access errors. * \`NOT_FOUND\` if no+-- invitation exists with the requested ID.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.get@.+module Network.Google.Resource.Classroom.Invitations.Get+    (+    -- * REST Resource+      InvitationsGetResource++    -- * Creating a Request+    , invitationsGet+    , InvitationsGet++    -- * Request Lenses+    , igXgafv+    , igUploadProtocol+    , igPp+    , igAccessToken+    , igUploadType+    , igBearerToken+    , igId+    , igCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.invitations.get@ method which the+-- 'InvitationsGet' request conforms to.+type InvitationsGetResource =+     "v1" :>+       "invitations" :>+         Capture "id" Text :>+           QueryParam "$.xgafv" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "pp" Bool :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParam "bearer_token" Text :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :> Get '[JSON] Invitation++-- | Returns an invitation. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to view+-- the requested invitation or for access errors. * \`NOT_FOUND\` if no+-- invitation exists with the requested ID.+--+-- /See:/ 'invitationsGet' smart constructor.+data InvitationsGet = InvitationsGet+    { _igXgafv          :: !(Maybe Text)+    , _igUploadProtocol :: !(Maybe Text)+    , _igPp             :: !Bool+    , _igAccessToken    :: !(Maybe Text)+    , _igUploadType     :: !(Maybe Text)+    , _igBearerToken    :: !(Maybe Text)+    , _igId             :: !Text+    , _igCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InvitationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igXgafv'+--+-- * 'igUploadProtocol'+--+-- * 'igPp'+--+-- * 'igAccessToken'+--+-- * 'igUploadType'+--+-- * 'igBearerToken'+--+-- * 'igId'+--+-- * 'igCallback'+invitationsGet+    :: Text -- ^ 'igId'+    -> InvitationsGet+invitationsGet pIgId_ =+    InvitationsGet+    { _igXgafv = Nothing+    , _igUploadProtocol = Nothing+    , _igPp = True+    , _igAccessToken = Nothing+    , _igUploadType = Nothing+    , _igBearerToken = Nothing+    , _igId = pIgId_+    , _igCallback = Nothing+    }++-- | V1 error format.+igXgafv :: Lens' InvitationsGet (Maybe Text)+igXgafv = lens _igXgafv (\ s a -> s{_igXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+igUploadProtocol :: Lens' InvitationsGet (Maybe Text)+igUploadProtocol+  = lens _igUploadProtocol+      (\ s a -> s{_igUploadProtocol = a})++-- | Pretty-print response.+igPp :: Lens' InvitationsGet Bool+igPp = lens _igPp (\ s a -> s{_igPp = a})++-- | OAuth access token.+igAccessToken :: Lens' InvitationsGet (Maybe Text)+igAccessToken+  = lens _igAccessToken+      (\ s a -> s{_igAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+igUploadType :: Lens' InvitationsGet (Maybe Text)+igUploadType+  = lens _igUploadType (\ s a -> s{_igUploadType = a})++-- | OAuth bearer token.+igBearerToken :: Lens' InvitationsGet (Maybe Text)+igBearerToken+  = lens _igBearerToken+      (\ s a -> s{_igBearerToken = a})++-- | Identifier of the invitation to return.+igId :: Lens' InvitationsGet Text+igId = lens _igId (\ s a -> s{_igId = a})++-- | JSONP+igCallback :: Lens' InvitationsGet (Maybe Text)+igCallback+  = lens _igCallback (\ s a -> s{_igCallback = a})++instance GoogleRequest InvitationsGet where+        type Rs InvitationsGet = Invitation+        requestClient InvitationsGet{..}+          = go _igId _igXgafv _igUploadProtocol (Just _igPp)+              _igAccessToken+              _igUploadType+              _igBearerToken+              _igCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient (Proxy :: Proxy InvitationsGetResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/Invitations/List.hs view
@@ -0,0 +1,218 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.Invitations.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of invitations that the requesting user is permitted to+-- view, restricted to those that match the list request. *Note:* At least+-- one of \`user_id\` or \`course_id\` must be supplied. Both fields can be+-- supplied. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` for access errors.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.invitations.list@.+module Network.Google.Resource.Classroom.Invitations.List+    (+    -- * REST Resource+      InvitationsListResource++    -- * Creating a Request+    , invitationsList+    , InvitationsList++    -- * Request Lenses+    , ilXgafv+    , ilUploadProtocol+    , ilPp+    , ilCourseId+    , ilAccessToken+    , ilUploadType+    , ilUserId+    , ilBearerToken+    , ilPageToken+    , ilPageSize+    , ilCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.invitations.list@ method which the+-- 'InvitationsList' request conforms to.+type InvitationsListResource =+     "v1" :>+       "invitations" :>+         QueryParam "$.xgafv" Text :>+           QueryParam "upload_protocol" Text :>+             QueryParam "pp" Bool :>+               QueryParam "courseId" Text :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParam "userId" Text :>+                       QueryParam "bearer_token" Text :>+                         QueryParam "pageToken" Text :>+                           QueryParam "pageSize" (Textual Int32) :>+                             QueryParam "callback" Text :>+                               QueryParam "alt" AltJSON :>+                                 Get '[JSON] ListInvitationsResponse++-- | Returns a list of invitations that the requesting user is permitted to+-- view, restricted to those that match the list request. *Note:* At least+-- one of \`user_id\` or \`course_id\` must be supplied. Both fields can be+-- supplied. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` for access errors.+--+-- /See:/ 'invitationsList' smart constructor.+data InvitationsList = InvitationsList+    { _ilXgafv          :: !(Maybe Text)+    , _ilUploadProtocol :: !(Maybe Text)+    , _ilPp             :: !Bool+    , _ilCourseId       :: !(Maybe Text)+    , _ilAccessToken    :: !(Maybe Text)+    , _ilUploadType     :: !(Maybe Text)+    , _ilUserId         :: !(Maybe Text)+    , _ilBearerToken    :: !(Maybe Text)+    , _ilPageToken      :: !(Maybe Text)+    , _ilPageSize       :: !(Maybe (Textual Int32))+    , _ilCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InvitationsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ilXgafv'+--+-- * 'ilUploadProtocol'+--+-- * 'ilPp'+--+-- * 'ilCourseId'+--+-- * 'ilAccessToken'+--+-- * 'ilUploadType'+--+-- * 'ilUserId'+--+-- * 'ilBearerToken'+--+-- * 'ilPageToken'+--+-- * 'ilPageSize'+--+-- * 'ilCallback'+invitationsList+    :: InvitationsList+invitationsList =+    InvitationsList+    { _ilXgafv = Nothing+    , _ilUploadProtocol = Nothing+    , _ilPp = True+    , _ilCourseId = Nothing+    , _ilAccessToken = Nothing+    , _ilUploadType = Nothing+    , _ilUserId = Nothing+    , _ilBearerToken = Nothing+    , _ilPageToken = Nothing+    , _ilPageSize = Nothing+    , _ilCallback = Nothing+    }++-- | V1 error format.+ilXgafv :: Lens' InvitationsList (Maybe Text)+ilXgafv = lens _ilXgafv (\ s a -> s{_ilXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ilUploadProtocol :: Lens' InvitationsList (Maybe Text)+ilUploadProtocol+  = lens _ilUploadProtocol+      (\ s a -> s{_ilUploadProtocol = a})++-- | Pretty-print response.+ilPp :: Lens' InvitationsList Bool+ilPp = lens _ilPp (\ s a -> s{_ilPp = a})++-- | Restricts returned invitations to those for a course with the specified+-- identifier.+ilCourseId :: Lens' InvitationsList (Maybe Text)+ilCourseId+  = lens _ilCourseId (\ s a -> s{_ilCourseId = a})++-- | OAuth access token.+ilAccessToken :: Lens' InvitationsList (Maybe Text)+ilAccessToken+  = lens _ilAccessToken+      (\ s a -> s{_ilAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ilUploadType :: Lens' InvitationsList (Maybe Text)+ilUploadType+  = lens _ilUploadType (\ s a -> s{_ilUploadType = a})++-- | Restricts returned invitations to those for a specific user. The+-- identifier can be one of the following: * the numeric identifier for the+-- user * the email address of the user * the string literal \`\"me\"\`,+-- indicating the requesting user+ilUserId :: Lens' InvitationsList (Maybe Text)+ilUserId = lens _ilUserId (\ s a -> s{_ilUserId = a})++-- | OAuth bearer token.+ilBearerToken :: Lens' InvitationsList (Maybe Text)+ilBearerToken+  = lens _ilBearerToken+      (\ s a -> s{_ilBearerToken = a})++-- | nextPageToken value returned from a previous list call, indicating that+-- the subsequent page of results should be returned. The list request must+-- be otherwise identical to the one that resulted in this token.+ilPageToken :: Lens' InvitationsList (Maybe Text)+ilPageToken+  = lens _ilPageToken (\ s a -> s{_ilPageToken = a})++-- | Maximum number of items to return. Zero means no maximum. The server may+-- return fewer than the specified number of results.+ilPageSize :: Lens' InvitationsList (Maybe Int32)+ilPageSize+  = lens _ilPageSize (\ s a -> s{_ilPageSize = a}) .+      mapping _Coerce++-- | JSONP+ilCallback :: Lens' InvitationsList (Maybe Text)+ilCallback+  = lens _ilCallback (\ s a -> s{_ilCallback = a})++instance GoogleRequest InvitationsList where+        type Rs InvitationsList = ListInvitationsResponse+        requestClient InvitationsList{..}+          = go _ilXgafv _ilUploadProtocol (Just _ilPp)+              _ilCourseId+              _ilAccessToken+              _ilUploadType+              _ilUserId+              _ilBearerToken+              _ilPageToken+              _ilPageSize+              _ilCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy InvitationsListResource)+                      mempty
+ gen/Network/Google/Resource/Classroom/UserProFiles/Get.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Classroom.UserProFiles.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a user profile. This method returns the following error codes: *+-- \`PERMISSION_DENIED\` if the requesting user is not permitted to access+-- this user profile or if no profile exists with the requested ID or for+-- access errors.+--+-- /See:/ <https://developers.google.com/classroom/ Google Classroom API Reference> for @classroom.userProfiles.get@.+module Network.Google.Resource.Classroom.UserProFiles.Get+    (+    -- * REST Resource+      UserProFilesGetResource++    -- * Creating a Request+    , userProFilesGet+    , UserProFilesGet++    -- * Request Lenses+    , upfgXgafv+    , upfgUploadProtocol+    , upfgPp+    , upfgAccessToken+    , upfgUploadType+    , upfgUserId+    , upfgBearerToken+    , upfgCallback+    ) where++import           Network.Google.Classroom.Types+import           Network.Google.Prelude++-- | A resource alias for @classroom.userProfiles.get@ method which the+-- 'UserProFilesGet' request conforms to.+type UserProFilesGetResource =+     "v1" :>+       "userProfiles" :>+         Capture "userId" Text :>+           QueryParam "$.xgafv" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "pp" Bool :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParam "bearer_token" Text :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :> Get '[JSON] UserProFile++-- | 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+-- access errors.+--+-- /See:/ 'userProFilesGet' smart constructor.+data UserProFilesGet = UserProFilesGet+    { _upfgXgafv          :: !(Maybe Text)+    , _upfgUploadProtocol :: !(Maybe Text)+    , _upfgPp             :: !Bool+    , _upfgAccessToken    :: !(Maybe Text)+    , _upfgUploadType     :: !(Maybe Text)+    , _upfgUserId         :: !Text+    , _upfgBearerToken    :: !(Maybe Text)+    , _upfgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserProFilesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upfgXgafv'+--+-- * 'upfgUploadProtocol'+--+-- * 'upfgPp'+--+-- * 'upfgAccessToken'+--+-- * 'upfgUploadType'+--+-- * 'upfgUserId'+--+-- * 'upfgBearerToken'+--+-- * 'upfgCallback'+userProFilesGet+    :: Text -- ^ 'upfgUserId'+    -> UserProFilesGet+userProFilesGet pUpfgUserId_ =+    UserProFilesGet+    { _upfgXgafv = Nothing+    , _upfgUploadProtocol = Nothing+    , _upfgPp = True+    , _upfgAccessToken = Nothing+    , _upfgUploadType = Nothing+    , _upfgUserId = pUpfgUserId_+    , _upfgBearerToken = Nothing+    , _upfgCallback = Nothing+    }++-- | V1 error format.+upfgXgafv :: Lens' UserProFilesGet (Maybe Text)+upfgXgafv+  = lens _upfgXgafv (\ s a -> s{_upfgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+upfgUploadProtocol :: Lens' UserProFilesGet (Maybe Text)+upfgUploadProtocol+  = lens _upfgUploadProtocol+      (\ s a -> s{_upfgUploadProtocol = a})++-- | Pretty-print response.+upfgPp :: Lens' UserProFilesGet Bool+upfgPp = lens _upfgPp (\ s a -> s{_upfgPp = a})++-- | OAuth access token.+upfgAccessToken :: Lens' UserProFilesGet (Maybe Text)+upfgAccessToken+  = lens _upfgAccessToken+      (\ s a -> s{_upfgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+upfgUploadType :: Lens' UserProFilesGet (Maybe Text)+upfgUploadType+  = lens _upfgUploadType+      (\ s a -> s{_upfgUploadType = a})++-- | Identifier of the profile to return. The identifier can be one of the+-- following: * the numeric identifier for the user * the email address of+-- the user * the string literal \`\"me\"\`, indicating the requesting user+upfgUserId :: Lens' UserProFilesGet Text+upfgUserId+  = lens _upfgUserId (\ s a -> s{_upfgUserId = a})++-- | OAuth bearer token.+upfgBearerToken :: Lens' UserProFilesGet (Maybe Text)+upfgBearerToken+  = lens _upfgBearerToken+      (\ s a -> s{_upfgBearerToken = a})++-- | JSONP+upfgCallback :: Lens' UserProFilesGet (Maybe Text)+upfgCallback+  = lens _upfgCallback (\ s a -> s{_upfgCallback = a})++instance GoogleRequest UserProFilesGet where+        type Rs UserProFilesGet = UserProFile+        requestClient UserProFilesGet{..}+          = go _upfgUserId _upfgXgafv _upfgUploadProtocol+              (Just _upfgPp)+              _upfgAccessToken+              _upfgUploadType+              _upfgBearerToken+              _upfgCallback+              (Just AltJSON)+              classroomService+          where go+                  = buildClient+                      (Proxy :: Proxy UserProFilesGetResource)+                      mempty
+ gogol-classroom.cabal view
@@ -0,0 +1,68 @@+name:                  gogol-classroom+version:               0.0.1+synopsis:              Google Classroom SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md++description:+    Google Classroom API+    .+    /Warning:/ This is an experimental prototype/preview release which is still+    under exploratory development and not intended for public use, caveat emptor!+    .+    This library is compatible with version @v1@+    of the API.++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.Google.Classroom+        , Network.Google.Classroom.Types+        , Network.Google.Resource.Classroom.Courses.Aliases.Create+        , Network.Google.Resource.Classroom.Courses.Aliases.Delete+        , Network.Google.Resource.Classroom.Courses.Aliases.List+        , Network.Google.Resource.Classroom.Courses.Create+        , Network.Google.Resource.Classroom.Courses.Delete+        , Network.Google.Resource.Classroom.Courses.Get+        , Network.Google.Resource.Classroom.Courses.List+        , Network.Google.Resource.Classroom.Courses.Patch+        , Network.Google.Resource.Classroom.Courses.Students.Create+        , Network.Google.Resource.Classroom.Courses.Students.Delete+        , Network.Google.Resource.Classroom.Courses.Students.Get+        , Network.Google.Resource.Classroom.Courses.Students.List+        , Network.Google.Resource.Classroom.Courses.Teachers.Create+        , Network.Google.Resource.Classroom.Courses.Teachers.Delete+        , Network.Google.Resource.Classroom.Courses.Teachers.Get+        , Network.Google.Resource.Classroom.Courses.Teachers.List+        , Network.Google.Resource.Classroom.Courses.Update+        , Network.Google.Resource.Classroom.Invitations.Accept+        , Network.Google.Resource.Classroom.Invitations.Create+        , Network.Google.Resource.Classroom.Invitations.Delete+        , Network.Google.Resource.Classroom.Invitations.Get+        , Network.Google.Resource.Classroom.Invitations.List+        , Network.Google.Resource.Classroom.UserProFiles.Get++    other-modules:+          Network.Google.Classroom.Types.Product+        , Network.Google.Classroom.Types.Sum++    build-depends:+          gogol-core == 0.0.1.*+        , base       >= 4.7 && < 5